• Мой опыт восстановления зрения

    • Tutorial
       Этим летом я был на некоторое время предоставлен сам себе – всех своих я отправил подальше от дыма, а сам, недолго думая, решил немного подтянуть здоровье. Не просто записаться в тренажерный зал и накачать «квадратиков» для пляжа, а именно обследоваться у некоторых врачей, чтобы выработать для себя вектор дальнейших действий, дабы совсем не превратиться в «овоща».

    image

       Расскажу лишь про свой опыт восстановления зрения – именно оно больше всего подвержено риску у любого «компьютерного» человека.
    Читать дальше →
  • Обзор игры Savage для Linux

      «Когда не находилось врагов внешних,
      мы воевали между собой...»


      Вышел из крепости. Спереди — холмы, сзади — холмы, налево и направо простирается дорога. Вокруг привычно суетятся рабочие, возводя стены Арсенала. «Build here!» — раздается сзади голос. Подпрыгнув от неожиданности, бегу помогать рабочим. Краем глаза отметил, как толпа моих сотоварищей гурьбой унеслась куда-то на юго-восток, огибая холмы. Возле крепости остались рабочие и мы с еще одним бедолагой. Вскоре Арсенал был построен, за ним пришла очередь гарнизона, после — башен. Не успели мы возвести первую, как с юго-запада пришли враги. Монстры. Beasts. «Attack this unit!» — голос Командующего, как всегда, раздался из-за спины. В тщетной попытке отбить нападение, мы с моим сотоварищем рванули навстречу. Их было слишком много, к тому же рядом с рядовыми Scavenger'ми, к нам приближалось несколько Stalker'ов. Получив от одного из них когтями в лицо, вырубился, чувствуя, как по венам разливается яд…

      Читать дальше →
    • html в pdf своими руками за N < 60 секунд

        Итак, надо Вам сделать PDF'ку из какой-нибудь HTML'ки. У меня вот часто такая необходимость возникает со статьями из Wikipedia (формулки там, закорючки; для всего остального хватает W3M). А запускать браузер, чтобы сделать еxport as или print в pdf, естественно, для этого совсем нет желания, да и времени, ибо браузинг имеет свойство затягивать. Хочется решить проблему из консоли, или не выходя из VIM. Решение существует, командочки вот такие:

        firefox -print http://some.url.ru/page.html -printmode pdf -printfile /some/pdf/file.pdf

        Это работает не со всеми сборками firefox, но с некоторыми работает, например, с той, которая Portable и под Windows. Угу :) некоторые хардкорные герои IT-прома генерируют PDF'ки, запуская именно эту версию через WiNE из скриптов на PHP.

        midori -s http://some.url.ru/page.html

        Midori — это вообще замечательная штука, если бы не огромное количество багов, цены бы ей не было.

        Всё :) Спасибо за внимание и успешной Вам векторизации.
      • Безразмерная флэшка

          Большими USB-накопителями сейчас уже никого не удивить, но даже USB-HDD имеет ограниченный объем. И к тому же, немалые физические размеры. Что, если вы хотите посмотреть HD-фильм, хранящийся на домашнем компьютере, а телевизор у вас на кухне? Если у телевизора есть USB-вход либо он подключен к аппаратному плееру, вы возьмете флэшку, освободите на ней место, запишете фильм и понесете на кухню. Посмотрев, удалите и на следующий день запишете новый. В случае хранения фильмов на USB-HDD, ничего переписывать не придется, но таскать его по квартире банально неудобно.

          Всего этого можно избежать, если воспользоваться представленным устройством. Вы вставляете его, как обычно, в USB-вход, и все ресурсы, которые доступны в вашей домашней Wi-Fi сети, будут виртуально доступны и на этой «флэшке». Если коллекция фильмов организована на NAS c Wi-Fi, то вообще не придется ничего делать дополнительно. Объем флэшки ограничен лишь объемом доступных сетевых ресурсов.

          Дата выхода гаджета — 1 марта. Цена пока неизвестна, но вряд ли будет дорого.

          P.S. Я понимаю, что все подобные гаджеты можно назвать излишествами, и что когда-то мы записывали и смотрели кино через «видик» и были очень счастливы. Но, елки-палки, удобно же! :)
        • Пресс-релиз нового ионного неттопа Wexler VisION-2

            image

            Сегодня, представители компании БТК прислали мне пресс-релиз нового продукта на базе платформы nVidia ION, преемника уже оттестированного мной неттопа. С названием видимо решили не морочиться и назвали его достаточно тривиально — Wexler VisION-2.

            Немного технических деталей и ориентировочные цены...
          • PHP: Определение языка текста с помощью N-грамм. Часть 2

            • Translation
            Вторая часть статьи Яна Барбера об определении языка текста с помощью PHP. Первую часть можно найти тут.

            Разбить на две части пришлось из-за большого объема текста с форматированием («Some error… We know...).
            Читать дальше →
          • Nokia отзывает свои зарядки из-за возможности поражения током

              Nokia сегодня выпустила пресс-релиз, в котором призывает владельцев сотовых телефонов как можно скорее обменять несколько зарядных устройств из-за риска поражения электрическим током при их использовании. Речь идет о зарядках AC-3E и AC-3U (выпущены в период с 15 июня 2009 по 9 августа 2009) и AC-4U (выпущена между 13 апреля и 5 октября 2009 года).
              image
              Компания не называет точное число бракованных аксессуаров, хотя уже подсчитали, что их около 14 млн.
              Кстати, а вот и сайт акции по обмену
            • Обзор корпусов форм-фактора mini-ITX для HTPC (часть 1)

                Данный обзор будет первым в цикле статей о корпусах для полюбившейся мне платформы nVidia ION. В нем будут рассмотрены некоторые корпуса, которые можно купить на нашем свободном рынке за обычные российские рубли. Жаль конечно, но огромное количество прекрасных моделей просто не доехало до нас. Кто-то скажет, что есть Ebay, но это все-таки не самый простой вариант покупки корпуса.

                image

                Далее много текста и картинок...
              • Классические паттерны проектирования на Scala

                • Translation
                Об авторе:
                Pavel Fatin работает над Scala plugin'ом для IntelliJ IDEA в JetBrains.

                Введение



                В этой статье будут представлены примеры того, как реализуются классические паттерны проектирования на Scala.

                Содержание статьи составляет основу моего выступления на JavaDay конференции (слайды презентации).

                Читать дальше →
              • PHP RUtils — небольшая библиотека для обработки русского текста

                  В работе на языке Python я частенько использую библиотеку Pytils для работы с русским текстом, и мне очень не хватало этой библиотеки при работе на PHP. Возможно, я искал плохо, но все, что я находил, не предоставляло подобных возможностей либо не слишком отвечало моим понятиям о чистом коде.

                  И вот, однажды я решил портировать библиотеку на PHP, и теперь хочу поделиться ею с народом и очень надеюсь на помощь в ее улучшении: буду рад советам, баг-репортам и особенно pull-реквестам. Библиотека находится на GitHub'е: github.com/Andre-487/php_rutils

                  UPD от 26.10.2013: теперь библиотека так же доступна через Composer: packagist.org/packages/andre_487/php_rutils
                  Так же хочу сказать спасибо всем, кто помог улучшить библиотеку и довести ее до стабильного релиза.

                  Возможности библиотеки


                  PHP RUtils — порт Pytils на PHP. Это утилиты для работы с русским текстом. Утилиты разделены на следующие модули (классы):

                  • Numeral — работа с числами: склонение существительных в зависимости от количества, числа прописью, суммы денег в рублях и копейках прописью.
                  • Dt — работа с датами: расширение формата дат PHP русскими именами месяцев, дней недели; временные периоды (например, 24 976 дней назад).
                  • Translit — транслитерация, подготовка строк для использования в URL'ях, именах файлов.
                  • Typo — небольшой набор правил типографики простого текста.

                  Примеры кода и подробности
                • Готовимся к пятнице: светящиеся напитки из бара TRON: Наследие

                    Те, кто видел фильм «TRON: наследие» наверняка хорошо помнят сцену в баре с Daft Punk в роли диджеев и волшебным освещением, где даже напитки светятся.

                    Некоторые хабраюзеры знают мое увлечение всяческими «светяшками». Одна из первых тем. Сегодня делюсь с вами результатами простого рецепта приготовления безопасных и «ленивых» светящихся коктейлей.

                    Мало кто знает о специфическом свойстве витаминов группы «B» — способности светиться в ультрафиолетовых лучах. Именно его мы и будем использовать для создания светящихся напитков. Вещества, которые отвечают за свечение – это рибофлавин (B2) и хинин (содержится в тонике и многих других сильногазированных напитках).

                    Всего 4 ингредиента отделяют нас от готового напитка.
                    Читать дальше →
                  • Медиацентр из MacMini и Rapsberry PI

                    Или самый простой и удобный медиацентр, понятный всем домочадцам



                    картнка для привлечения внимания

                    Привет, Хабр! С каждым днем собрать дома медиацентр становится все проще. Вариантов много – от HTPC из старого железа до безымянных устройств размером с флэшку. На хабре было много обзоров самодельных бесшумных HTPC, android-боксов и нет-топов для реализации домашних медиасерверов. Я испытал много разных вариантов, прежде чем найти самый подходящий для себя и, самое главное, для домочадцев.

                    Задача-минимум:
                    1. Собрать и структурировать всю медиатеку воедино
                    2. Сделать ее максимально доступной к просмотру на двух телевизорах в разных комнатах
                    3. Иметь возможность просмотра или загрузки (для оффлайн просмотра) фильмов из медиатеки на мобильных устройствах
                    4. Удаленный запуск торрентов с мобильных устройств
                    5. Бесшумная работа устройств.

                    Путем проб и ошибок, я пришел к использованию XBMC на стареньком Mac-mini + Rapsberry Pi.
                    Пробы, ошибки, и удобная конфигурация под катом.
                    Читать дальше →
                  • Немного об управлении HTPC


                    Я — человек ленивый. И, как и всякий IT-шник, готов горы свернуть, лишь бы потакать своей лени. Поэтому, когда в моей квартире появился самосборный HTPC, я решил довести удобство управления им до идеала. Сразу скажу, что абсолютно удобного способа у меня не получилось. Но в своих попытках создать оный я перебрал множество вариантов, от обычной радиоклавиатуры до HDMI-CEC адаптера, и, думаю, рассказ о них будет многим небезынтересен.
                    Читать дальше →
                  • Изучаем Storm Framework. Часть I

                    • Tutorial
                    В 2011 году Twitter открыл, под лицензией Eclipse Public License, проект распределенных вычислений Storm. Storm был создан в компании BackType и перешел к Twitter после покупки.

                    Storm это система ориентированная на распределенную обработку больших потоков данных, аналогичная Apache Hadoop, но в реальном времени.

                    Ключевые особенности Storm:
                    • Масштабируемость. Задачи обработки распределяются по узлам кластера и потокам на каждом узле.
                    • Гарантированная защита от потери данных.
                    • Простота развертывания и спровождения.
                    • Восстановление после сбоев. Если какой либо из обработчиков отказывает, задачи переадресуются на другие обработчики.
                    • Возможность написания компонентов не только на Java. Простой Multilang protocol с использованием JSON объектов. Есть готовые адаптеры для языков Python, Ruby и Fancy.

                    В первой части рассматриваются базовые понятия и основы создания приложения c использованием Storm версии 0.8.2.
                    Читать дальше →
                  • Development Environment при помощи Vagrant и Chef






                    В данной статье я постараюсь познакомить вас с замечательными утилитами Vagrant и Chef на примере автоматического конфигурирования development environment для PHP разработчика (на самом деле, PHP здесь только как пример, все нижеописанное может быть использовано для любого стека технологий).

                    Что будем делать?



                    Будем настраивать виртуальную машину (ВМ) с Ubuntu 12.04 для работы над проектом на PHP, а именно:

                    • Apache
                    • MySql
                    • PHP 5.4
                    • xDebug
                    • Memcached
                    • Composer
                    • Настроим сразу Virtual Host на определенную папку, доступную как с виртуальной машины, так и с реальной. Всё это параметризируем для удобства создания и использования.
                    • и другое..


                    Довольно занудное занятие, особенно если заниматься этим с некоторой периодичностью, поэтому мы заставим компьютер делать это самостоятельно.

                    Как это может помочь вам?



                    • Вы не хотите «засорять» свою систему множеством утилит, программ
                    • Вы хотите тестировать свой код в приближенных к production условиях
                    • Вы хотите тестировать свой код на разных версиях той или иной платформы (помните, как Travis тестирует билды в различных конфигурациях, например Symfony на разных версиях PHP)
                    • Вы не хотите больше помогать новому человеку на проекте (верстальщик, программист) устанавливать всё с нуля
                    • Вы хотите, чтобы у каждого человека в команде была идентичная среда для работы над проектом


                    Всё это — реальность. Вопрос только «как?».

                    Читать дальше →
                  • Time Machine: бекапим OS X Lion на Ubuntu 12.04 LTS сервер




                    Если кто не знает, Time Machine — это такой замечательный бэкап-сервис из коробки для Apple OS X, тут и тут можно почитать поподробнее. Если у вас есть мак, и вы не пользуетесь «машиной времени», то это совершенно напрасно. Time Machine делает постоянные дифференциальные бэкапы, поэтому она удобна даже в случае прекрасной жизни ваших HDD / SSD. Можно в любой момент открутить назад историю и восстановить случайно удаленный файл, или, что еще важнее, предыдущую версию измененного файла.

                    Предполагается, что пользователи будут использовать либо обычный жесткий диск, либо специальный сетевой девайс Time Capsule. Традиционный внешний жесткий диск — решение для очень организованных людей, которые регулярно (хотя бы ежедневно) будут его подключать для автоматического бэкапа, иначе польза от тайм машины будет весьма ограничена (хотя прошлогодний бэкап все же лучше, чем совсем ничего). С тайм-капсулой будет гораздо удобнее и надежнее. Кроме функции бэкапа, она может выполнять еще и функцию сетевой шары, раздачи Wi-Fi (фактически Time Capsule — это Wi-Fi роутер с HDD). Но устройство стоит денег, и оно не такое универсальное. Мне захотелось прикрутить на свой сервер работающий на Ubuntu возможность делать бэкапы тайм-машиной. И это не так сложно, о чем и будет эта заметка.

                    Читать дальше →
                  • А как же всё-таки работает многопоточность? Часть I: синхронизация

                    • Tutorial
                    картинка для привлечения внимания(пост из серии «я склонировал себе исходники hotspot, давайте посмотрим на них вместе»)
                    Все, кто сталкивается с многопоточными проблемами (будь то производительность или непонятные гейзенбаги), неизбежно сталкиваются в процессе их решения с терминами вроде «inflation», «contention», «membar», «biased locking», «thread parking» и тому подобным. А вот все ли действительно знают, что за этими терминами скрывается? К сожалению, как показывает практика, не все.

                    В надежде исправить ситуацию, я решил написать цикл статей на эту тему. Каждая из них будет построена по принципу «сначала кратко опишем, что должно происходить в теории, а потом отправимся в исходники и посмотрим, как это происходит там». Таким образом, первая часть во многом применима не только к Java, а потому и разработчики под другие платформы могут найти для себя что-то полезное.

                    Перед прочтением глубокого описания полезно убедиться в том, что вы в достаточной мере разбираетесь в Java Memory Model. Изучить её можно, например, по слайдам Сергея Walrus Куксенко или по моему раннему топику. Также отличным материалом является вот эта презентация, начиная со слайда #38.
                    Читать дальше. Много.
                  • Андрей Бреслав — Язык Kotlin для платформы Java

                      Привет, Хабр!

                      С любезного разрешения сообщества Java-разработчиков JUG.ru мы публикуем видеозапись выступления Андрея Бреслава о новом языке программирования Kotlin для платформы Java, которое состоялось на встрече 26 апреля.
                      Читать дальше →
                    • Веб-сервисы играют в покер

                        imageЗдравствуй, Хабр.

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

                        В отличие от других подобных мероприятий, программа участника может быть реализована в виде веб-сервиса, с которым «крупье» будет общаться через HTTP.

                        Изначальная идея проекта принадлежит моему другу (он не с Хабра). Первый раз она прозвучала примерно так:
                        Я считаю, что нет ничего дурного в том, чтобы боты играли в покер-румах. Хотя, может быть, честнее было бы организовать специальный покерный клуб, где роботы играли бы только друг с другом. Вот я бы с удовольствием написал такого бота. А ты?
                        Не помню, что я ответил. Мне интереснее было именно сделать такой сервис. Challenge accepted ;)
                        Читать дальше →