Задача определения города и страны по IP-адресу встречается довольно часто. Когда пользователь заходит на сайт, желательно сразу показать ему интерфейс на том языке, который пользователь с наибольшей вероятностью понимает. А зная приблизительные координаты пользователя, можно перенаправить его запросы на ближайший сервер, уменьшив тем самым время ответа. В этой небольшой заметке мы посмотрим, как эта задача может быть решена на Scala или любом другом JVM-языке.

Выпуск сегодня не тематический. Вас ждет подборка интересных статей, вы узнаете, каким был Си в 1978 году и почему под Android нужно писать только на C++, как затюнить Cassandra, как автоматически поставить все необходимые драйверы под Windows, и не только. Предыдущие выпуски: октябрь 2015, сентябрь 2015, август 2015, июль 2015.

Сегодня благодаря радушному приглашению добрейшего хозяина этого блога я спешу поделиться с уважаемыми читателями знаниями о квантовой криптографии. Дело это достаточно простое, хоть и немного контринтуитивное, поэтому далее постараюсь описать этот вопрос так, чтобы любой прочитавший мог уяснить суть и смысл новой технологии, находящейся на стыке квантовых вычислений, криптографии и теории информации.

Прямо скажем, использование Scala в качестве языка для написания скриптов — довольно сомнительная идея. Язык действительно можно использовать таким образом. Но проблема заключается в том, что скрипты довольно долго стартуют. На моей машине время запуска одного скрипта на Scala составляет около 4-5 секунд. На всяких же там ультрабуках это время еще больше.

За последнее время мы довольно много узнали об OpenGL, в том числе научились управлять камерой, работать с текстурами, а также с моделями. Настало время поговорить о чем-то намного более интересном, а именно — об освещении. Интересна эта тема, потому что ничего готового для работы со светом в OpenGL нет, все нужно писать самостоятельно на шейдерах. В рамках этой заметки мы рассмотрим освещение по Фонгу. Это довольно большая тема, поэтому говорить мы будем исключительно об освещении. В том, как делаются тени, придется разобраться в другой раз.

Некоторое время назад на сайте xakep.ru была опубликована занятная статья Что отпугивает на собеседованиях: 20 практических советов от работодателей. Мне стало интересно, а что, если написать такую же статью, только наоборот? То есть, вместо того, чтобы спросить работодателей о том, что отпугивает их от кандидатов, спросить айтишников, что их отпугивает от работодателей во время собеседования. Что из этого получилось — смотрите под катом.

Злые языки говорят, что CLion подходит только для проектов, использующих CMake. Что даже проекты на CMake он может индексировать 12 часов, а потом упасть с out of memory. А если каким-то чудом CLion не упадет, то будет адски тормозить и подсвечивать весь код красным. Что единственной нормальной IDE для C++ якобы был и во веке веков останется Visual Studio. Сегодня мы с вами убедимся, что к таким выводам люди приходят не от большого ума, и что за пять минут несложных рассуждений в CLion можно успешно открыть любой проект — неважно насколько большой и используется ли в нем CMake.

По моим наблюдениям, в России компания Parallels больше всего известна, как разработчик популярной виртуальной машины для MacOS. Особо продвинутые также могли слышать, что компания имеет какое-то отношение к OpenVZ и CRIU. Но мало кто знает о других продуктах компании. Сегодня мы познакомимся с некоторыми такими продуктами, а именно Parallels Virtual Automation и Linux дистрибутивом Parallels Cloud Server. С их помощью мы за считанные минуты поднимем IaaS на собственном железе, который будет мало чем уступать Amazon Web Services или, скажем, Google Cloud, а в чем-то будет и превосходить.

В холиварах на тему Erlang/OTP против Scala/Akka сторонники Erlang часто используют аргумент, что дескать в Akka нет интроспекции. Имеется в виду, что нельзя получить текущее состояние актора, нет аналога etop или Observer, и вот это все. Это правда, сама по себе Akka таких инструментов не предоставляет. Но, оказывается, на практике их можно очень просто реализовать своими силами.

Некоторое время назад мы научились создавать контейнеры в Linux, используя OpenVZ. Сегодня мы познакомимся с OpenVZ Web Panel. Это приложение, которое позволяет управлять OpenVZ-контейнерами на нескольких физических машинах через веб-интерфейс. Фактически, при помощи OpenVZ и OpenVZ Web Panel вы можете за час работы построить маленький AWS или Google Cloud на собственном железе.