• Java 4-ever movie trailer

      Трейлер новой волнующей драмы: Java 4-ever. Она рассказывает о том, что делает с семьями программная разработка и куда приводят сражения по поводу платформ.
      А ещё это рекламный ролик для конференции JavaZone 2010 которая пройдёт в сентябре в Осло.

    • Червячки возвращаются

        Ура хабровчане!!! Уже скоро, вот вот, после 10 лет ожидания компания Team17 выпустит новую, нормальную, классическую, многими любимую стратегию Worms 2: Armageddon на PC.



        1 июля вышла версия для XBOX 360, ждём PC версию.
      • Миграционный дайджест

          Вначале было слово. И слово это было «Пора открывать блог „Я мигрирую“ :-)» Затем появился этот блог.

          И вот тут надо сказать, почему. В последнее время на Хабре всё чаще появляются темы про то, как кто-то переехал в страну заморскую и зажил там счастливой жизнью. Тема очень интересная и волнующая, поэтому хочется, чтобы все эти истории были собраны в одном блоге.

          Ожидается, что в своих публикациях счастливые мигранты будут рассказывать о том, куда перехали, с какими сложностями столкнулись, как устроились, каких сказочных существ повидали и каких яств заморских отпробовали. Фотки приветствуются.

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

          Итак, подборочка
        • Tux Droid

            Tux Droid- беспроводной робот в виде пингвина Tux'а. Удивительно, что про эту штуку тут еще не писали. Всем знакомым/девушкам линуксоидов срочно брать на заметку- лучшего подарка на 25 августа, думаю, не найти.
            Читать дальше →
          • IT-эмиграция на Кипр: личный опыт

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

              Пара слов о себе: 1.5 года работаю java-программистом в городе Лимассоле (который расположен в греческой части острова), живу там же с семьей.

              Читать дальше →
            • ITшник в Австралии

                Данной статьей я постараюсь продолжить обзор стран, начатый в Денег нет, погода дрянь и правительство ввело новые поборы. Что делать?. Я не хочу обсуждать почему, зачем, что меня двигало к переезду (кому-то весело и комфортно только в Нью-Йорке/Лондоне, а кто-то весьма доволен и в деревне), а постараюсь просто привести некоторую информацию. Здесь на сайте довольно много людей из Австралии, надеюсь где-то меня поправят, что-то добавят. С удовольствием отвечу на все вопросы в комментариях.

                Читать дальше →
              • Денег нет, погода дрянь и правительство ввело новые поборы. Что делать?

                  road
                  На Хабре, что то стали проскакивать упаднические настроение, дескать в провинции зарплаты маленькие, и вообще жить плохо. Собственно, расскажу как я решил это проблему для себя. Взял и переехал в Новую Зеландию. Ну не будем перескакивать.

                  Расскажу, что и как было, на дворе 2007, жил во Владивостоке, у меня заканчивалась аспирантура, мне было 25 и очень хотелось немного улучшить уровень жизни. Был закончен универ по специальности АСУ и было 2.5 года опыта работы программистом в довольно известном владивостокском интернет проекте.

                  Если так посмотреть, варианты были уехать в Москву, или куда еще подальше.
                  Подумал, что в Москву всегда успеется, а вот куда подальше было бы неплохо.

                  Пример друга с оказией уехавшего в Ванкувер и рассказывающего как там тепло, хорошо и мухи не кусают, очень подстегивал.

                  Итак что было сделано:
                  Читать дальше →
                • IT-эмиграция в Страну Улыбок, в Тайланд

                    На фоне серии топиков от экспатов, решил тоже поделится. Мне не жалко, а кому-то будет интересно.

                    Меня зовут Влад, я родился в г. Витебске, Беларусь. В 23 года эмигрировал в Санкт-Петербург, Россия. В данный момент живу в Бангкоке. Владею PHP и навыками технического SEO. 2 дня в неделю работаю в Американской компании, остальное время занимаюсь своими проектами. В Тайланде уже год и пока никуда двигать не собираюсь.
                    Читать дальше →
                  • Почему в Delphi делают плохие интерфейсы?

                    Часто приходится слышать – «Delphi – среда для разработки «кривых» интерфейсов». Либо Delphi-разработчики какие-то генетически ущербные в плане создания интерфейсов. Либо сама среда провоцирует на плохой дизайн GUI. Есть повод сконцентрировать на данной проблематике своё внимание.

                    В начале «эпохи прикладного бума» за счёт использования средств визуальной разработки доминировала Delphi. Конечно, были и другие средства разработки приложений с оконным интерфейсом (Visual Basic, Visual Studio и т.д.), но, вспоминая ситуацию в России периода Delphi 1…3, можно достаточно обоснованно говорить широчайшем распространении этой среды. Продукт «выстрелил», прежде всего, из-за гигантского дефицита программного обеспечения. Но и языковая простота Delphi сыграла ключевую роль – очень много было инженеров, но мало программистов. Зато в Delphi люди после институтского курса за месяц могли если не стать программистами, то хотя бы разработчиками. В смысле, могли самостоятельно создавать программные продукты.

                    Читать дальше →
                  • Variadic templates в C++0x

                      Те, кто читал книгу Андрея Александреску «Современное программирование на C++» знают, что существует обширный класс задач (в области метапрограммирования с использованием шаблонов), когда шаблону при инстанцировании необходимо указать переменное (заранее неизвестное) количество аргументов. Типичные примеры таких задач:
                      — Описание кортежей (tuples)
                      — Описание типов наподобие вариантов (variants)
                      — Описание функторов (в этом случае перечень типов аргументов зависит от сигнатуры функции)
                      — Классификация типов по заранее заданным множествам
                      — и т. п.

                      В каждой такой задаче точное количество типов, передаваемых соответствующему шаблону в качестве аргументов, заранее определить сложно. И, вообще говоря, зависит от желания и потребностей того, кто намеревается использовать соответствующий шаблонный класс.
                      В рамках действующего стандарта С++ сколь-нибудь удобного решения таких задач не существует. Шаблоны могут принимать строго определённое количество параметров и никак иначе. А. Александреску (в упомянутой выше книге) предлагает общее решение, основанное на т. н. «списках типов», в котором типы представлены в виде односвязного списка, реализованного посредством рекурсивных шаблонов. Альтернативным решением (используемом, например, в boost::variant и boost::tuple) является объявление шаблонного класса с большим количеством параметров, которым (всем, кроме первого) присвоено некоторое значение по умолчанию. Оба этих решения являются половинчатыми и не охватывают весь спектр возможных задач. По этому, для устранения недостатков существующих решений и упрощения кода новый стандарт предлагает С++-разработчикам новый вариант объявления шаблонов? «шаблоны с переменным количеством параметров» или, в оригинале, «variadic templates».

                      Читать дальше →
                    • MySQL в NGINX: использование блокирующих библиотек в неблокирующем сервере

                      Как известно, при разработке высоконагруженных серверов часто применяется событийная модель работы с сокетами. Ключевым компонентом системы при этом является epoll (во FreeBSD и Windows есть свои решения, но остановимся на Линуксе). Функция epoll_wait, будучи единственным блокирующим вызовом, возвращает нам информацию обо всех сетевых событиях, которые нас интересуют. Подобным образом, конечно, работает и всем известный сервер NGINX.

                      Событийная модель программирования делает код весьма своеобразным, как будто выворачивает его наизнанку. Но эта проблема не так страшна. Есть другая проблема — использование в событийно-ориентированном коде существующих библиотек, изначально не предназначенных для него. Если подобная библиотека делает блокирующие вызовы (например, connect, recv и т.д.), вся событийная модель может потерять смысл т.к. окончания одного такого вызова будут ждать все остальные клиенты, что совершенно неприемлемо, если вы пишете серьезный продукт.
                      Читать дальше →
                    • Как сделать конкурс так, чтобы в нём участвовало больше 2 человек

                        Думаю, почти все тут помнят недавний конкурс за MS-планшет, который призвал к жизни кучу мертворожденных топиков и вызвал некоторое бурление. Это было пример того, как можно сделать популярно, активно, динамично, но не в тему. Проблема в том, что иногда даже так сделать не получается.

                        Если вы сами проводили конкурсы и всё было ок — не читайте топик. Если где-то ждал облом — добро пожаловать под кат.

                        Читать дальше →
                      • Про C++ алиасинг, ловкие оптимизации и подлые баги

                          С удивлением обнаружил, что про явление алиасинга (aliasing) здесь постов нет. Ситуацию нужно исправить, тк. алиасинг в любой сколько-то сложной C++ программе обязательно хоть где-нибудь, да есть. Это может быть хорошо, давая возможность ловких оптимизаций, а может быть плохо, внося повышенной паршивости баги. Под катом вкратце про оба случая (ну и неизменное «компилятор бьет спина», конечно; для разнообразия сегодня это gcc).
                          Читать дальше →
                        • Вытягивание из Директа всей информации о кампаниях конкурентов

                          В продолжение статьи Евгения Ческидова «Яндекс. Директ. Анализируем конкурентное окружение» я хочу показать, как при помощи не очень сложных расчетов и API Яндекса вытащить из Директа буквально всю информацию о рекламных кампаниях конкурентов. Сразу скажу, что идея на практике еще не проверялась, сам факт наличия всей информации и, соответственно, возможности этого расчета был показан Ческидовым только вчера, а алгоритм родился буквально сейчас. Но математически вроде бы всё сходится. Осторожно, под катом много формул.
                          Читать дальше →
                        • Управление монитором по DDC

                            Что мониторы умеют DDC, думаю, знают все. Традиционно, он используется X-сервером для определения параметров изображения, и админами, с помощью ddcprobe, для изучения «что не так сделал X-сервер» (ddcprobe показывает поддерживаемые монитором режимы по мнению самого монитора).

                            Однако, ddc — это двусторонний протокол. Он не только говорит компьютеру о том, что умеет монитор, но и монитору, о том, что хочет от него компьютер.

                            Windows-пользователи мониторов Samsung знают их magic tune, который позволяет выставлять яркость/контраст из (неудобной) программы. Однако, существует более интересный метод работы с монитором: это утилита ddccontrol.

                            C помощью этой утилиты можно:
                            • Изменять яркость, контрастность, гамму изображения. Причём, изменение яркости осуществляется изменением яркости подсветки! (разумеется, если монитор это физически умеет делать)
                            • Программно переключать пресеты (movie/text/user/game); это куда удобнее, чем тыкать соответствующую кнопку на самом мониторе
                            • Играться с недокументированными возможностями мониторов, например, вызывать заблокированные из меню языки и пункты настроек. На моём мониторе, например, мне удалось подвинуть картинку при работе по DVI (обычно этот пункт меню доступен только для VGA)
                            • Блокировать кнопки монитора (думаю, это не у всех моделей, но у самсунга точно можно). Блокируются все кнопки, кроме вкл/выкл, выключение/включение монитора эту блокировку сбрасывает.
                            • Включать и выключать монитор (полностью, без мигающей в standby лампочки)


                            Итак, вот несколько примеров использования утилиты:
                            Читать дальше →
                          • Intel Atom colocation

                              Осознал сегодня, что хочу заколохостить mini-ITX сервер. Много мощностей не нужно, потому хватит и Атома. Были бы знакомые с корбиной — поставил бы на 10Мбит и в ус бы не дул, но к сожалению нет таких, а на Yota отдача ну просто никакая. Хостеры готовы ставить на коло, но лишь с небольшой скидкой. Можно брать VDS — но там свои ограничения(особенно мало памяти), и негарантированная скорость по диску. Ну и есть dedicated «дедушки» за 50$/месяц. Вобщем, ситуация грусная, и я решил покопать немного вопрос colocation/dedicated server на Intel Atom, результаты под катом.
                              Читать дальше →
                            • Лампа настроения!

                                Лампа настроения (mood lamp) является RGB лампой, которая меняет цвет в случайном порядке. Была зеленая, плавно стала голубой, потом фиолетовой… какого цвета она станет в следующий момент времени не знает никто)

                                image

                                Купить такую проблематично, сделаем ее сами!)
                                Читать дальше →
                              • Мощный лазер своими руками за один вечер

                                  image

                                  Кратко.


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

                                  Предупреждение!


                                  В статье описано изготовление мощного лазера (300мВт ~ мощность 500 китайских указок), который может нанести вред вашему здоровью и здоровью окружающих! Будьте предельно осторожны! Используйте специальные защитные очки и не направляйте луч лазера на людей и животных!
                                  Читать дальше →
                                • Основы репликации в MySQL

                                    С репликацией серверов MySQL я познакомился относительно недавно, и по мере проведения разных опытов с настройкой, записывал, что у меня получалось. Когда материала набралось достаточно много, появилась идея написать эту статью. Я постарался собрать советы и решения по некоторым самым основным вопросам, с которыми я столкнулся. По ходу дела я буду давать ссылки на документацию и другие источники. Не могу претендовать на полноту описания, но надеюсь, что статья будет полезной.
                                    Читать дальше →