• Сервис такси разыгрывает базу контактов клиентов и водителей

      Популярный украинский сервис такси Uklon регулярно устраивает розыгрыши среди своих водителей и клиентов. По результатам каждого розыгрыша они публикуют на свою facebook страницу видео с контактными данными участников: имя и адрес электронной почты (пример, видео удалили). Фрагмент кадра:


      В оригинальном видео адреса не размыты, их для статьи размыл я, чтобы не распространять эти данные дальше. На мое письмо в их поддержку, что это не очень хорошая идея:
      Добрый день!
      Нельзя в видео (ссылка) выкладывать адреса и имена людей.
      1. Во-первых, ваши конкуренты могут получить список ваших клиентов и водителей
      2. Во-вторых, вы нарушаете закон Украины про доступ к персональным данным

      Они ответили, что им все равно:
      Здравствуйте, Денис, при регистрации каждый пользователь дает согласие на использование его персональных данных uklon.com.ua/document/useragreement — пункт 2.6. Большое спасибо за ваш отзыв.

      Поэтому я решил написать небольшой пост, как можно получить контактные данные с видео, не используя какие-то специальные умения. Дисклаймер: этот пост носит образовательный характер, и демонстрирует как не стоит обращаться с данными клиентов.
      Читать дальше →
    • Эрланг для веб-разработки (2) -> БД и деплой;

      • Tutorial

      В первой статье мы познакомились с Эрлангом и фреймворком n2o. В этой части мы продолжим делать наш блог:
      • добавим авторизацию через фейсбук, для этого будем из клиента вызывать функции на сервере;
      • будем сохранять комментарии и посты в NoSQL базе;
      • развернем наш блог на DigitalOcean и замерим производительность (спойлер — 1300 запросов в секунду).


      Код из статей https://github.com/denys-potapov/n2o-blog-example, готовый проект можно посмотреть по адресу http://46.101.118.21:8001/.

      Читать дальше →
    • Эрланг для веб-разработки (1) -> Знакомство;

      • Tutorial

      Продолжение о базе данных и деплое во второй статье.

      Я начинаю публиковать серию статей о веб-разработке на Эрланге. Многие хотят попробовать Эрланг, но сталкиваются с проблемой, что вводные курсы в основном касаются Эрланга как функционального языка и далеки от реальных проектов (Learn You Some Erlang for great good! — хорошая и подробная книга). С другой стороны все обучающие материалы по веб-разработке подразумевают, что читатель уже хорошо знает Эрланг.

      Эта серия статей рассчитана для разработчиков, у которых есть опыт в веб-разработке (PHP, Ruby, Java), но не имеют опыта разработки на Эрланге.

      Задачей будет сделать блог. Код из статей https://github.com/denys-potapov/n2o-blog-example, готовый проект можно посмотреть по адресу http://46.101.118.21:8001/. Особенности проекта:
      • обновление комментариев в реальном времени;
      • авторизация через фейсбук;
      • данные храним в mnesia.

      В основе проекта феймворк n2o. Выбор довольно субъективен, но из живых Эрланг фреймворков, n2o мне показался наиболее «эрлангоподобным», в тоже время ChicagoBoss больше похож на MVC фреймворки в других языках.
      Читать дальше →
    • Простыми словами о Twelve-Factor App

        Известный провайдер heroku поддерживает манифест, который называется «12-факторное приложение» (Twelve-Factor App). Это набор лучших практик для разработки современных веб приложений на любой платформе. Практики описывают приложения, которые готовы:
        • к горизонтальному масштабированию;
        • к непрерывному развертыванию;
        • к современным облачным хостингам.

        Можно считать, что манифест отчасти рекламный — 12-факторные приложения удобней всего разворачивать на heroku. Но поскольку, манифест становиться все популярней, то часть облачных провайдеров включают лучшие практики в свое окружение, и эти практики будут полезны как разработчикам, так и тем, кто разворачивает и администрирует приложения.

        Манифест (на хабре есть отличный перевод) слишком подробен и хорош для детального изучения. В этой же статье, я коротко остановлюсь на основных преимуществах.
        Читать дальше →
        • +9
        • 14,8k
        • 1
      • Открытая бухгалтерия в Министерстве образования и науки Украины

          В 2009 Тим Бернерс-Ли в своем выступлении на TED говорил об открытых данных и будущем интернета. На 10 минуте он вместе с залом скандирует «Raw data, now!» (сырые данные, сейчас же). Рекомендую всем, кто этого еще не сделал, посмотреть это выступление.



          21 февраля 2014 года студенты заняли здание Министерства образование и науки Украины с требованиями перемен. Вместе с политическими требованиями, они выдвинули требования открытой бухгалтерии. Уже 24 марта новый министр подписал указ №85-а о ежедневной публикации всех бухгалтерских проводок за день на сайте министерства. Само по себе открытие данных не должно было занять время, но оказалось, что в МОН фактически не было учетной системы, и, например, главная книга велась на бумаге.

          Сегодня данные доступны на сайте министерства (UPD: спасибо за новую ссылку sad. Дамп можно скачать по ссылке), а под катом короткая инструкция как обрабатывать данные, кабель на миллион гривен (около 50 тыс. долларов), и почему пока открытая бухгалтерия не так эффективна.
          Читать дальше →
        • Стартапы вдохновленные сексом: плюсы, минусы, подводные камни

          • Перевод
          Когда стартап сосредоточен на сексе, он встречает массу препятствий на пути от финансирования до рекламы. Вивьен Зянг рассказывает, как ориентированные на секс стартапы ищут пути чтобы оплатить счета без ущерба для своей миссии.

          От переводчика: Статья рассказывает о трудностях со стартапами только для взрослых на западе, и надо помнить, что в постсоветских реалиях большинство из описанных стартапов попадают под действие статей 242 УК РФ (до шести лет) или 301 УК Украины (до семи лет).

          Текст без картинок
        • Дэвид Чэппел о облаках и будущем разработки

            На конференции DevDay*Kyiv 2014 мне удалось пообщаться с автором ключевого доклада Дэвидом Чэппелом. Дэвид — известный спикер, консультант и автор книг, многие из которых используются для обучения в MIT и ETH. В своей работе он стремится помочь людям в ИТ понимать, использовать и принимать решения о новых технологиях.

            image

            Дэвид — специалист в облачных технологиях в корпоративном секторе, и поэтому ответы интересны, как взгляд из корпоративного мира на современные технологии и их разработку:
            • Какая компания сейчас сможет выйти на рынок публичных облаков?
            • Будут ли компьютеры частью интернета вещей?
            • Как плавающие релизы связанны с маркетингом?

            Вопросы и ответы
            • +17
            • 13,6k
            • 3
          • Генерация xkcd паролей на PHP

              Известный комикс xkcd подсказывает нам, что пароль, который состоит из 4 часто употребляемых слов — легко запомнить и сложно подобрать.


              Перевод, оригинал

              Все текущие реализации этого метода генерации паролей рассчитаны на английские слова, а значит пароли сложнее запомнить русскоязычным. Я вооружился частотным словарем русского языка, и сделал PHP библиотеку, которая поддерживает генерацию паролей из нескольких наборов слов:
              • английские слова (например, «idea critic happy chinese»);
              • русские слова (например, «порошок земля нуль платье»);
              • транслитерированные русские слова (например, «vysota razum bumazhka razmer»).

              Код и списки слов на GitHub.

              Описание библиотеки
            • Объектная гимнастика

              • Перевод
              В первых двух абзацах оригинального текста автор описывает как он пил пиво с друзьями. Я заменил их пятничной картинкой о гимнастике из детства.

              Объектная гимнастика (англ. Object Calisthenics) — это упражнения в программировании, которые состоят из 9 правил, которые Джефф Бей описал в своей книге «The ThoughWorks Anthology». Пытаясь как можно точней следовать этим правилам, вы измените свои привычки написания кода. Это не значит, что вы должны постоянно соблюдать все эти правила. Найдите баланс и используйте только те, которые вам удобны.

              Эти правила сфокусированы на читаемости, тестируемости, понятности и поддерживаемости вашего кода. Если вы уже пишите код, который читаем, тестируем, понятен и поддерживаем, тогда эти правила помогут сделать его более читаемым, тестируемым. Понятным и поддерживаемым.

              Ниже я прокомментирую этих 9 правил:
              1. Только один уровень отступа в методе
              2. Не используйте Else
              3. Оберните все примитивные типы и строки
              4. Коллекции первого класса
              5. Одна точка на строку
              6. Не используйте сокращения
              7. Сохраняйте сущности короткими
              8. Никаких классов с более чем 2 атрибутами
              9. Никаких геттеров, сеттеров и свойств

              Читать дальше →
            • Идеи для конкурса Nokia

                К выходу Lumia 1020 Nokia организовывала конкурс Future/Capture (о нем писали на хабре). На конкурс можно было подать три идеи приложений, которые в полной мере используют 41-мегапиксельную камеру. Я воспользовался этой возможностью, но не прошел отбор.

                Мои идеи довольно сильно привязаны к большому разрешению фотографий, и я не вижу как их реализовать в таком виде. Обидно оставлять их пылиться, поэтому, я передаю три идеи приложений в общественное достояние (CC0), и буду рад если они кому нибудь пригодятся или натолкнут на какие-нибудь другие идеи.

                1. Где Вальдо?


                Интерактивное приложение с игровым процессом похожим на книги и игры "Где Вальдо".

                Как работает?

                1. Вы делаете фотографию с большим количеством мелких деталей, например концерт, пляж или лес.
                2. Вы делаете квест из вашей фотографии — отмечаете маленькие зоны интереса (например вас, котят, небольшие предметы).
                3. Делитесь квестом с вашими друзьями.
                4. Задача ваших друзей найти точки, которые вы отметили. Это могут быть соревнования между друзьями, поиски на время или рейтинги.

                3 котенка


                Еще 2 идеи ...
                • +10
                • 10,2k
                • 5
              • Притча о покрытии кода тестами

                • Перевод

                Ранним утром программист спросил великого мастера:
                — Я готов писать модульные тесты. К какому покрытию кода я должен стремиться?
                Великий мастер ответил:
                — Не переживай о покрытии, просто пиши хорошие тесты.
                Программист улыбнулся, поклонился и ушел.

                Немного времени спустя другой программист задала этот же вопрос. Великий мастер указал на котел с кипящей водой и сказал:
                — Сколько зерен риса я должен положить в этот котел?
                Программист с озадаченным видом ответила:
                — Как я могу ответить наверняка? Все зависит от того, сколько людей вам надо накормить, насколько они голодны, какие еще блюда вы подаете, сколько риса у вас есть и от многого другого.
                — Совершенно верно. — сказал великий мастер.
                Второй программист улыбнулась, поклонилась и ушла.
                В конце дня...
              • Таблица для выбора диагонали экрана и разрешения

                  Когда у вас возникнет вопрос, как выбрать диагональ экрана, или в каком разрешении скачать фильм, предлагаю воспользоваться таблицей Головина для выбора диагонали экрана (pdf, 85 Кб). Название я придумал сам, надеюсь, Головин был бы не против.



                  С появлением первых телевизоров с разрешением 4к (3840 × 2160), я хотел обновить график для определения оптимального расстояния до экрана. Но, поскольку там указаны рекомендуемые расстояния, это бы снова вылилось в субъективные обсуждение возможностей зрения каждого. Новая таблица, теоретически, должна помочь каждому сделать выбор, в не зависимости от остроты зрения.

                  Инструкция и теория
                • Баннер Автокадабры и ГОСТ Р 52289-2004

                    Баннер Автокадабры на Хабре висит лет 5 (ссылка для тех, кто не видит рекламу). На привычные вещи не обращаешь внимания годами, пока не увидишь на них изъян, который потом будешь замечать каждый раз.

                    Поэтому, я не могу больше это видеть, и прошу администрацию исправить баннер:
                    1. Машинки должны двигаться в правильном направлении.
                    2. Заменить одинарную на двойную сплошную, а прерывистую перед пешеходным переходом на сплошную.



                    Разметку можно посмотреть на панорамах Яндекса или почитать в ГОСТ Р 52289-2004 пункты 6.2.3. и 6.2.7.

                    UPD: С подачи Werdas — тротуар с противоположной стороны.
                  • Анимированный GIF со звуком

                      «Что позволило остаться GIF, это — циклическое проигрывание анимации, которое добавил Netscape. Если бы Netscape не добавил поддержку GIF в свой браузер, GIF умер бы в 1998»

                      — Александр Тревор (Alexander Trevor),
                      руководитель команды по созданию GIF в CompuServe

                      Формат GIF в июне этого года отпраздновал свое 25-летие, и является сегодня самым старым графическим форматом, который распространен в интернете. Посвящая выходные просмотру смешных анимированных гифок понимаешь, что некоторые из них были бы в разы лучше со звуком. Все текущие решения для циклической анимации со звуком (например: coub.com, gifsound.com) предлагают отказаться от GIF, но это — не выход. И я решил пожертвовать просмотром гифок на выходных для решения этой крайне важной проблемы.

                      Первая в интернете гифка со звуком по ссылке. Надо нажать на синюю кнопку, а потом на гифке. Плеер должен работать во всех современных браузерах (тестировался в последнем Firefox и Chrome).

                      Гифок под катом не будет, а будет процесс создания расширения для стандарта, написания конвертера и плеера.
                      детали реализации
                    • Что записано внутри бесконтактных карт Киевского метрополитена?

                        Бесконтактные карты в киевском метро начали вводить в 2007 году (информация на сайте метро, укр), но широкое распространение и внедрение они получили только к концу 2008 года. На сегодняшний день существуют два основных типа проездных билетов: проездные со сроком действия, и проездные на количеств поездок. В проездных используются бесконтактные карты MIFARE Classic 1K.


                        Фото — Metromuseum.net

                        Об уязвимостях чипов MIFARE Classic стало известно в 2007 году. Подробную историю открытия уязвимостей можно почитать в статье. Статья хоть и 2008 года, но до сих пор актуальна, и в ней перечислены основные этапы нахождения уязвимостей. Совместив эти знания можно посмотреть, что же записывается в карты киевского метро на примере проездного на количество поездок.

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

                        Согласен
                      • Вертикальные экраны в digital signage

                          «Пользователь, который проводит за компьютером 6 часов в день, в среднем в год на скроллинг тратит 86 часов»

                          portrait vs landscape
                          В эпиграф я вынес аргумент, который используют в бесконечных спорах обсуждениях о вертикальной ориентации мониторов в работе (Например, в комментариях к этому посту развернулось подобное обсуждение). При таком количестве информации о вертикальном и горизонтальном расположении экрана, я не нашел информации об ориентации экранов в digital signage.

                          Digital signage — это любые вывески, таблички, плакаты, которые были заменены на цифровые дисплеи: рекламные экраны в магазинах, информационные табло в аэропортах, LED экраны, вывески и т.д. Я не нашел корректного перевода словосочетания digital signage, поэтому заранее прощу прощение у тех, кому не нравится использование английского в русском тексте.

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

                          Аргументы
                        • Просмотри видео на сканере штрихкодов


                            «Из всех искусств для нас важнейшими являются кино и цирк»
                            — В.И. Ленин


                            Просмотр видео — одно из любимых развлечений в современном мире, фильмы сейчас смотрят практически на всех устройствах, даже на холодильниках. К сожалению, рядом не оказалось подходящего холодильника, и я решил просмотреть фильм на сканере штрихкодов. Под рукой оказался сканер Cipher Lab 8001. Технические характеристики плеера сканера:
                            • 16-битный CMOS процессор
                            • 1 Мб памяти для программ
                            • 1 Мб SRAM для данных
                            • FSTN дисплей с LED подсветкой разрешением 100×64

                            Читать дальше →
                          • Всемирный день футбола — праздник, которого нет. Часть 2

                              Год назад я писал о Всемирном дне футбола, сегодня повторю идею прошлогоднего поста.

                              10 декабря информационные сайты поздравляют с Всемирным днем футбола, который якобы утвержден ООН. На сайте ООН информация о празднике отсутствует, и даже гугл в ответ на «World Football Day» (так его называют в газетах), выдает преимущественно русскоязычные ресурсы. Вероятней всего праздник придумали редактора газеты Обозреватель в 2006 году. С каждым годом текст той заметки практически в неизменном виде переходит из издания в издание, и иногда уже выходит в офлайн. Например, в одном из киевских заведений будет вечеринка в честь Всемирного дня футбола.

                              Я вовсе не против футбола, и тем более не против праздника футбола. Но считаю, что нельзя позволять заблуждениям и невнимательности редакторов распространяться. На мои письма в редакции нескольких сайтов с этим замечанием, я ответа не получил.

                              Чтобы добавить азарта в пост, я считаю, что первым о «Всемирном дне футбола» напишут Вести с несуществующей ссылкой на ИТАР-ТАСС.
                            • Эффективность использования пространства двухмерными штрихкодами Data Matrix и QR Code

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

                                Размер двухмерного штрихкода измеряется в количестве модулей сетки вдоль каждой стороны. Каждый модуль сетки может быть или включенным (черным) или выключенным (белым). Размер каждого модуля называется «X размер» (англ. «X Size»). У каждого сканера есть минимальный «X размер», который он способен прочитать. Этот параметр не зависит от типа считываемого штрихкода. Общий размер штрихкода будет вычисляться как произведение «X размера» на количество модулей.

                                Под катом перевод фрагмента доклада компании Semacode о выборе оптимального формата двухмерного штрихкода для мобильных приложений.

                                Читать дальше →
                              • Как выбрать диагональ и разрешения экрана?

                                  Ниже представлен график в помощь тем, кто выбирает экран для домашнего кинотеатра.

                                  График зависимость расстояния просмотра от диагонали экрана

                                  THX (Tomlinson Holman’s eXperiment) — требования к высококачественным системам домашнего кинотеатра. Чтобы кинотеатр соответствовал THX, сидящий на заднем ряду кинотеатра должен иметь угол просмотра экрана по крайне мере 26°. Рекомендуемый угол просмотра 36° (англ).

                                  Видимость преимуществ 480р, 720р и 1080р рассчитана на основе характеристик человеческого зрения. Человек с нормальным зрением способен обнаружить или отделить детали размером в 1 угловую минуту (англ).

                                  Рассчеты взял тут, идею графика взял на Engadget. Этот же график в SVG. Для диагоналей 40—200": png и svg.

                                  UPD (18.03): С подачи MaximKat заменил в графиках текст «Видны преимущества ...» на более точный «Видны все преимущества ...».