• 2 бесплатных бумажных шаблона для прототипирования мобильных приложений

      На сайте Smashing Magazine выложены два новых полезных инструмента для мобильных разработчиков. Это набор заготовок для рисования набросков интерфейсов распространённых типов мобильных утсройств Outline и шаблоны для подбора размеров элементов тач-интерфейса с учётом разрешения и физического размера реальных устройств Tapsize. Оба набора предназначены для распечатки на бумаге.


      Читать дальше →
    • Отдаем файлы эффективно с помощью PHP

        Если Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
        Три способа отправить пользователю файл и не повесить сервер
      • Пробиваем VMware vCenter

          Безопасность виртуальных системы – сейчас модный тренд, поэтому обойти стороной этот вопрос нельзя. Сегодня мы будем ломать самое сердце инфраструктуры VMware – сервер vCenter. При этом использовать будем 0-day уязвимости, чтобы жизнь медом не казалась. Ломать будем олдскульными методами, никак не связанными с виртуальными технологиями: тренд, конечно, модный, а вот баги все такие же банальные.

          PS: Как водится у ответственных уайт-хатов, все описанные тут баги должны быть уже закрыты, были они 0-деями на момент взлома, то есть в 2011 году. Данный текст был опубликован в журнале Хакер № 7/12 (162), а также являлся основой для докладов на CONFidence 2012, PHD 2012 и Defcon 20.

          Взломай меня полностью...
        • Коллекция паттернов поведения для элементов отзывчивого веб-дизайна

            Думаю любому современному дизайнеру или верстальщику рано или поздно в голову приходила мысль «А почему бы на этом проекте не использовать принципы отзывчивого веб-дизайна?». Пожалуй, сложно найти человека, который не слышал о responsive design в наше время, когда сёрфить веб могут с телефона, микроволновки и тапочек. Приступая к работе над подобным проектом, неплохо было бы иметь под рукой примеры возможного поведения лейаута и его отдельных элементов.
            Ну же, где паттерны то?!
          • Active Directory Replication Status Tool: Новая утилита от Microsoft для определения статуса репликации AD


              Шон Дьюби, MVP в Directory Services, сделал обзор новой утилиты от Microsoft ADREPLSTATUS, предназначенной для определения статуса репликации. Как новая утилита работает и почему Вам все равно придется пользоваться старым-добрым REPADMIN — об этом Вы можете узнать подробнее под катом.
              Читать дальше →
              • +4
              • 28.9k
              • 3
            • Почему важно делать эскизы, прежде чем переходить к прототипу

              Вольный перевод статьи о том, почему важно делать эскизы-зарисовки, прежде чем приступать к проектированию интерфейсов. Мне, как менеджеру проектов и, частично, проектировщику интерфейсов — статья показалась очень полезной. Крайне рекомендуется к прочтению всем участникам проектных команд.



              Читать дальше →
            • Настройка оборудования на раннем этапе загрузки средствами ACPI (на примере FreeBSD)

                Несколько лет назад, когда CardBus и FireWire (IEEE 1394) еще были относительно «в ходу», многие производители ноутбуков в своей продукции использовали контроллеры семейства PCIXX21 и PCIXX11 фирмы Texas Instruments: один небольшой чип обеспечивал поддержку не только упомянутых интерфейсов, но и многих популярных стандартов сменных карт памяти.

                Такой чип (а именно, PCI7411) стоит и в моей NEC Versa S950. Этот малоизвестный ноутбук я в свое время предпочел даже ThinkPad-серии практически исключительно из-за более лучшей поддержки FreeBSD (оборудования в целом и спящего режима в частности) — специально тестировал в новосибирском Техносити перед покупкой. Долгое время я не пользовался встроенным кард-ридером, по привычке обходясь USB'шными «свистками». Но недавно я обнаружил, что FreeBSD до сих пор его не поддерживает. И если лет пять-шесть назад это можно было объяснить отсутствием нормального драйвера для этих контроллеров (нужно было что-то скачивать и собирать самому), то теперь я точно знал, что они «из коробки» поддерживаются во FreeBSD драйвером sdhci(4), о чем прямо сказано на странице руководства (и позже подтвердилось чтением исходников).

                Я начал неспешно гуглить на эту тему, и картина стала вырисовываться невеселая. Оказалось, что таких «счастливчиков», как я, немало. Многие постили в рассылки и форумы «портянки» dmesg и pciconf -lv, заводили баги в трекерах (например, OpenBSD PR i386/5843), но решения никто не предлагал. Более того, фактически поставив точку в вопросе, Александр Мотин, автор драйвера sdhci(4), в 2010 г. написал на форуме, что-де TI документацию на чип не дают, а значит, если производитель сконфигурировал чип неверно, а его настройка через BIOS не предусмотрена, сделать что-либо затруднительно. В свою очередь, Theo de Raadt закрыл i386/5843 со словами: «We do what we can. This vendor, amongst other, have their sdhc controllers locked out and hidden behind little undocumented bits. We've strugged before to find this information, and failed. If you can find this information on some other operating system, or in some vendor documentation, we would be thrilled.»
                Читать дальше →
              • Удобные классы для получения статусов IM на PHP

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

                Основная концепция моего проекта такова:
                1. ООП
                2. Использование универсальных и удобных велосипедов классов для основных и вспомогательных функций
                3. Получение статуса как описанного в enum кода, но не текстовым или иным сообщением, отделение вида от контроллера.

                Подробное описание проекта
              • JSON-RPC 2.0 и PHP

                  Если вы разработчик, и у вас есть проект на PHP, и ему наконец-то понадобилось реализовать собственное API — эта статья определенно для вас ;).

                  JSON-RPC v1.0 появился в 2005 году, спустя 5 лет появилась и вторая версия. В век javascript'а и мобильных приложений многие разработчики до сих пор используют свои собственные велосипеды вместо готового простого стандарта.
                  Попробуем разобраться в вопросе
                • Правильный расчет для VDI (часть 2)

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

                    Немного математики

                    Опираясь на описанную в предыдущем посте теорию, проведем расчеты:

                    Одновременно от 6 до 9 пользователей VDI могут использовать одно физическое ядро CPU. Для упрощения возьмем среднюю цифру — 7 пользователей.

                    Согласно требованиям заказчика необходимо обеспечить работу 700 пользователей по VDI с расширением до 1000.
                    Читать дальше →
                  • Правильный расчет для VDI (часть 1)

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

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

                      Например, у одного из заказчиков, крупной отечественной софтверной компании, имеется довольно большой парк серверов и систем хранения. В том числе — несколько серверов HP ProLiant 6-го и 7-го поколения и система хранения HP EVA, которые были в резерве. Именно на их базе нужно было разработать решение.
                      Озвученными требованиями к решению VDI были:

                      • Floating Desktops Pool (с сохранением изменений после окончания сессии);
                      • Начальная конфигурация — 700 пользователей, с расширением до 1000.

                      Мне предстояло просчитать какое количество серверов и систем хранения в итоге перейдут из резерва в состав решения.
                      В качестве среды виртуализации выбрана VMware. Схема работы получилась примерно такая:
                      Читать дальше →
                    • Обзор очков-видеорегистратора Camsports Coach

                        Сегодня речь пойдет о все еще свежих впечатлениях от знакомства с таким гаджетом, как очки-видеорегистратор. Честно признаюсь, когда очки Camsports Coach оказались у меня в руках, я почти не задавался вопросом зачем оно надо вообще – определенный интерес появился сразу. Идея записать свои приключения чуть ли не видом из глаз показалась мне очень интересной, для спортсменов и любителей активного отдыха данный девайс вообще может стать откровением, в прямом смысле “развязывающим руки”. Также они будут весьма полезны при “разборе полетов” и анализе ошибок, если случится какая-то неприятность. В общем, по первым впечатлениям – вещица из раздела ”маст хэв”, осталось познакомится с ее реализацией в железе.

                        Читать дальше →
                      • Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами

                          Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.
                          Читать дальше →
                        • Оптимизация графики для Retina-экранов

                          • Translation
                          После недавнего выпуска Retina MacBook Pro и The new IPad, экраны с увеличенной плотностью пикселей начали активно входить в нашу жизнь. Что это значит для веб-разработчиков?

                          Для начала разберемся в терминологии.

                          Физические пиксели


                          Читать дальше →
                        • Гео-модуль для PHP приложений

                            image Вопрос «Где?» возникает сразу же после вопроса «Что?» эта закономерность верна и в вебразработке. Многие сайты запрашивают информацию у пользователя, предлагая ему ввести свой адрес, т. е. страну, регион, город, улицу, дом почтовый индекс. Но как потом обрабатывать эти данные, если они были указаны в свободной форме? В своих первых проектах мы использовали свой «велосипед», но по мере роста и развития это «чудо» превратилось в «чудовище», которое поставило крест на эффективной обработке гео-информации о наших пользователях. Мне была поставлена задача прибить этого монстра, заменив его стандартизованной гео-базой и простым интерфейсом для работы с ней. Гугление на эту тему не дали готового решения, поэтому пришлось отбросить простой вариант и сделать свой гео-модуль.
                            Описание сего процесса и сам модуль под катом
                          • Исследуем iOS SDK и используем недокументированные API

                              Из этой главы, да и из всей этой книги понятно, что самые лакомые куски программирования под iOS включены в публичные фреймворки, но не в SDK. Неофициальная политика Apple насчет этого проста: вы можете всё это использовать, но только на свой страх и риск. Ваш код может сломаться при следующем обновлении прошивки. Вам самим придётся искать компромисс между риском и прибылью.

                              Erica Sadun, The iPhone Developer's CookBook
                              Оригинал
                              As you’ve seen in this chapter, and throughout this book, some of the nicest bits of iPhone programming are included in the public iPhone frameworks but not in the SDK. Apple’s unofficial policy on this is clear:You can use these items in your programs, but you do so at your own risk.Your code may break at each firmware release. Striking the balance between risk and reward is up to you.

                              Дисклеймеры


                              • Приведенные здесь куски кода работают на обычных iPhone (включая 4S) и iPad (включая new iPad) и не требуют jailbreak.
                              • Все решения написаны и протестированы на iOS 5. Все решения также протестированы на совместимость с iOS 4.3, т.е. работают с iOS 4, если не сказано обратное. Основная часть статьи была написана до выхода iOS 6, так что приведенные решения не тестировались на совместимость с iOS 6.
                              • Использование недокументированных API может привести к тому, что ваше приложение не допустят в AppStore. А может и не привести :-)
                                Для тех, кому интересно, как Apple опрделяет использование приваетных API:«Как Apple узнаёт, что ты используешь приватные API?»
                              • Apple может изменить реализацию вместе со следующим релизом iOS, и в вашем коде что-то сломается. Впрочем, это решаемо, и ничем принципиально не отличается от реализации обратной совместимости для документированных API. Ниже я рассмотрел эту проблему чуть подробнее.
                              • Я не могу гарантировать, что у найденных мной API нет побочных эффектов. Используйте на свой страх и риск.
                              • Лицензионное соглашение Apple Developer Program запрещает реверс-инжинеринг iOS.
                              • Статья в процессе доработки. Конструктивная критика приветствуется!

                              Краткая инструкция по поиску в SDK


                              Допустим, вам нужно сделать что-то, выходящее за рамки официальной документации.
                              Читать дальше →
                            • Noty — необычайно гибкий плагин jQuery для вывода уведомлений


                                Почти месяц назад вышла вторая версия прекрасного и замечательного jQuery Notification plugin для вывода самых разнообразных уведомлений на сайте, странно что Хабр вообще обошёл его стороной, исправлю ситуацию.
                                Читать дальше →
                                • +107
                                • 27.1k
                                • 27
                              • Парсим русский язык


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

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

                                  "Мама мыла раму":
                                  
                                  (предложение
                                      (именная гр. (сущ мама))
                                      (глаг. гр. (глаг мыла)
                                          (именная гр. (сущ раму)))
                                      (. .)))
                                  


                                  Это называется синтаксическим деревом предложения. В графическом виде его можно представить следующим образом (в упрощенном виде):

                                  Читать дальше →
                                • CocоaPods — мощное средство в руках Objective-C разработчика

                                    CocoaPods — это мощное и одновременно изящное средство управления зависимостями Cocoa-библиотек, которые разработчики используют в своих iOS и MacOS X проектах. Как обычно для Cocoa-статей мы сфокусируемся именно на iOS разработке.



                                    Читать дальше →
                                  • Обучаем компьютер чувствам (sentiment analysis по-русски)



                                      Sentiment analysis (по-русски, анализ тональности) — это область компьютерной лингвистики, которая занимается изучением мнений и эмоций в текстовых документах. Недавно на хабре появилась статья про использование машинного обучения для анализа тональности, однако, она была настолько плохо составлена, что я решил написать свою версию. Итак, в этой статье я постараюсь доступно объяснить, что такое анализ тональности, и как реализовать подобную систему для русского языка.
                                      Читать дальше →