Страница 3 из 3

inet_ntop() для Windows одним макросом

inet_ntop() используется для преобразования структуры, содержащий сетевой адрес в строку. Для Windows (WinSock2) зачем-то выдумали мудрёную WSAAddressToString. Собственно.

#ifdef _WIN32
/** @brief inet_ntop for WinSock. */
/** @param af	Address family. */
/** @param src	Pointer on source address struct. */
/** @param dst	Pointer on destination string. */
/** @param cnt	Length of the string. */
#define inet_ntop(af, src, dst, cnt)	WSAAddressToString((struct sockaddr*) src, sizeof(struct sockaddr_in), NULL, dst, (LPDWORD)&cnt)
#endif

Единственный нюанс заключается в том, что необходимо поместить размер строки (cnt) в отдельную переменную, т.к. WSAAddressToString принимает указатель на размер (зачем это было нужно мне решительно непонятно).

Плохой С++

Вот уже некоторое время при разработке ПО я всегда отдаю предпочтение либо С, либо C#/Python, сознательно обходя стороной С++. Почему?

Представьте, что вам нужно забить гвоздь. Но вместо обычного молотка вы используете супер-молоток Х-1000, который разрабатывается на протяжении 30 лет путем консенсуса 100500 забивателей гвоздей со всего мира, большая часть из которых является учеными-математиками и забивала гвозди только в теории, а остальные явно имеют философские наклонности. В итоге, вы в течение трёх суток генерируете на основе супер-молотка 13 специализированных молотков для забивания конкретно вашего гвоздя, но часть из них разваливается при попытке удара, а часть получилась с дыркой в центре. Через пять суток, после того, как вами подробно был описан гвоздь, молоток, фактура стены, были созданы абстракции-связки между всеми этими объектами вы обнаруживаете на супер-молотке Х-1000 кнопку работы в режиме обычного молотка и просто забиваете гвоздь.

Читать далее

О локализации Куликовской битвы

Очерк о сложностях локализации места Куликовской битвы, а также о распространённых псевдонаучных мифах по её поводу.

Автор текста и иллюстрации — Андрей Виницкий.

Читать далее

Об историческом ревизионизме, негационизме и сектантах

Что такое исторический ревизионизм? Это, по факту, попытка сказать: «всё было совсем не так». Это попытка пересмотреть (обычно — радикально) устоявшиеся в науке и обществе взгляды на историю и происходившие события. Казалось бы, ну и что? Научные концепции регулярно пересматриваются и корректируются согласно новым фактам. Однако именно современный исторический ревизионизм отличается особым пренебрежением к, собственно, фактам и анализу, заменяя их литературно-художественными приёмами и постоянно превращаясь в негационизм — полное и твёрдое отрицание или игнорирование достоверно установленных наукой фактов.

Читать далее

Рецензия на фильм «Горько! 2»

Хотя я, как и большинство адекватных пользователей интернета, имел крайне негативное предубеждение насчет фильма «Горько! 2», который недавно был выпущен в прокат. Негатива дополнительно добавлял крайне отвратительный пиар фильма посредством попытки выдвижения на Оскар, как фильма от РФ. В целом, мой негативный настрой оказался обоснованным.

Читать далее

Академический спам и Lambert Academic Publishing

Недавно, как раз после того, как я выложил в Сеть информацию о своих скромных научных публикациях, мне пришло письмо от представительницы некоего «международного издательского дома» Lambert Academic Publishing («LAP»), которая предлагала совершенно бесплатно (!) опубликовать одну из моих статей. Я не ответил на первое письмо, но собеседница продолжила настойчиво вопрошать. Проверив данные об этом издательстве в Интернете, я выяснил много интересного о нём и его сомнительных методах.

Читать далее

Тестовая задачка по С++ от одного работодателя

У нас и в западных интернетах распространяется информация об одной очень странной тестовой задаче по С++ программированию, которую дают соискателям на собеседовании некоторые компании (даже шарашкины конторы). Достоверно «правильного» её решения я не смог найти. И ниже объяснено почему.

Читать далее

Наш суперкластер Ланиакея

Объединенная команда астрофизиков из Франции, Израиля и США, изучив движение огромного числа наблюдаемых галактик, создали трёхмерную визуализацию локального суперкластера, куда входит наш Млечный Путь. Суперкластер был назван Laniakea, что означает «Неизмеримые небеса» на гавайском.

Основная же научная заслуга учёных заключается в том, что они создали «карту течений» наблюдаемых галактик, выявили центры их притяжения и на основе этого впервые дали конкретное научное определение суперкластера: это скопление галактик, влекомое одним суперцентром притяжения. Карта была создана на основе крупнейшего каталога галактик Cosmicflows-2.

До этого считалось, что Млечный Путь принадлежит «суперкластеру Девы», что, как показали учёные, неверно.

P.S. Действительно классная визуализация.

Легковесный FTP сервер на Python

Задача: всё та же, настроить индивидуальный FTP-доступ к директориям веб-сайтов (/var/www/<имя хоста>) на основе виртуальных пользователей в ОС CentOS 6.5.

Однако решение проблемы будет совершенно иным. Вместо того, чтобы использовать громоздкий бюрократический аппарат аутентификации и авторизации Linux, я предлагаю за час сделать свой собственный FTP-сервер, который бы работал в точности так, как хочется мне (и вам).

Читать далее

Как настроить FTP с виртуальными пользователями на CentOS и сохранить рассудок

Задача: настроить индивидуальный FTP-доступ к директориям веб-сайтов (/var/www/<имя хоста>) на основе виртуальных пользователей в ОС CentOS 6.5.

Настройка простого FTP-доступа с виртуальными пользователями в Linux это, как оказалось, сложная и многоуровневая административная задача, сравнимая со самостоятельной сборкой среднего по размерам приложения.

 

Читать далее

О ситуации в науке и образовании РФ

Поговорка «государство делает вид, что оно нам платит, а мы делаем вид, что работаем» ходила в научной среде уже в 80-х годах прошлого века.

Читать далее

HTML — язык программирования

Намедни мне довелось развлечения для заметить одному программисту в одном вконтачном паблике, что HTML — это скриптовый язык программирования. Просто заметил. И тут понеслась! Достаточно было лишь отвечать на входящие воинственные тирады, начиная от предложения написать на HTML программу сложения двух чисел, заканчивая прямым указом на мою некомпетентность. Удивительная солидарность. Не помогло даже приложение к их ушибу подорожника собственноопределения языка программирования и языка сценариев. В итоге, исчерпав ресурс аргументов мои оппоненты пошли на крайние меры — тихо нажаловались на меня администратору группы, после чего он лично попросил прекратить спорить со школьниками.

Читать далее