Время от времени мне задают по e-mail, казалось бы, простые вопросы, но на которые почему-то очень сложно ответить. И вот мне в голову пришла странная мысль. А что, если взять один из таких вопросов, задать его десяти широчайше известным в узких кругах людям, и объединить ответы в один пост? Собственно, с результатами такого эксперимента вы можете ознакомиться под катом. Вопрос, который был задан: «Какой язык программирования вы бы посоветовали учить первым, и почему именно его?»
В прошлый раз мы поговорили об отображении файлов в память при помощи WinAPI, а сегодня разберемся, как то же самое делается под nix-системами, в частности Linux и MacOS. Проверить код под FreeBSD я поленился, но по идее все должно работать и в этой операционной системе. Повторюсь — я почти уверен, что многие читатели сего блога уже знакомы с отображением файлов в память, поэтому пост предназначен для всех остальных читателей.
Вы все правильно поняли — настало время для очередной пачки рецензий на недавно прочитанные мной книги. В этом выпуске очень мало функционального программирования и NoSQL. Видимо, эти темы мне уже немного наскучили. Предыдущие рецензии: двенадцатый десяток, одиннадцатый десяток, десятый десяток, девятый десяток.
Отображением файла в память мы с вами пользовались в заметках об OpenGL, посвященных работе с моделями и текстурами, но не рассматривали подробно, как именно это работает. И хотя я почти уверен, что многие читатели этого блога уже знакомы с отображением файлов в память, я все же посчитал необходимом написать соответствующие заметки для тех читателей, кому данный механизм не знаком. Сегодня мы рассмотрим, как все это работает под Windows.
В предыдущих заметках об OpenGL мы научились управлять камерой и работать с текстурами. К сожалению, все это время мы кодировали модели (такие, как ящик или покрытый травой кусок земли) вручную. Это не только приводит к распуханию исходного кода, но еще и крайне неудобно. Ящик еще куда не шел, но забить вручную, скажем, модель человека практически нереально. Поэтому прежде, чем двигаться дальше, нам нужно изучить вопрос, не очень-то связанный с самим OpenGL — создание моделей в Blender и загрузку их в коде программы из внешних файлов.
Данный пост представляет собой небольшую шпаргалку по сканеру портов Nmap, а также утилитам, идущим с ним в комплекте — Ncrack, Ncat, Ndiff и Nping. Уметь пользоваться Nmap полезно не только злобным хакерам, но и системным администраторам, а также devops. Как еще, например, проверить, не осталось ли в системе лишних открытых портов? Или избавиться от сигнатур, по которым можно удаленно определить используемую на сервере ОС? Как обычно, здесь мы рассмотрим самые основные параметры и флаги, а более подробную информацию всегда можно найти в man.
Недавно исполнилось ровно шесть лет со дня публикации в этом блоге самого первого поста — Моя шпаргалка по работе в Vim. По сложившейся традиции, настало время подвести итоги еще одного ушедшего года. Аналогичные посты за предыдущие годы можно найти здесь: пять лет, четыре года, три года, два года, один год.
Сегодня снова тематический выпуск «находок в сети». В этот раз я решил разгрести накопившиеся ссылки, связанные со всякой низкоуровщиной, а следовательно и с C/C++. Предыдущие выпуски: август 2015, июль 2015, июнь 2015, май 2015.
В последней заметке, посвященной OpenGL, мы нарисовали вращающийся разноцветный куб, а также научились управлять камерой при помощи мыши и клавиатуры. Сегодня же мы наконец-то научимся работать с текстурами. Теоретическая часть касательно текстур ранее уже объяснялась в заметке Учимся работать с текстурами в Haskell’евом OpenGL. Поэтому в рамках этой заметки предполагается, что с теорией читатель уже знаком, и основной акцент будет сделан на практике.
Thrift — это такая штука для сериализации данных. Вы описываете схему данных в специальном формате. Из этого описания генерируются классы. Эти классы легко сериализуются и десериализуются. При этом схему можно изменять (например, добавлять-удалять поля в классах) так, что данные, сериализованные по старой схеме, будут успешно десериализованы по новой. Одну и ту же схему можно использовать в проектах на разных языках, и они будут успешно друг с другом взаимодействовать. Плюс к этому еще накручена возможность объявлять исключения и генерировать код для RPC. В этой заметке мы разберемся, как работать с Thrift на языке Scala.