• Программируем Windows 7: Taskbar. Часть 1 — Progress Bar

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

      Читать дальше →
    • PHP: фрактал плохого дизайна

      • Translation

      Предисловие


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

      Тут другое дело. PHP не просто неудобен в использовании, плохо мне подходит, субоптимален или не соответствует моим религиозным убеждениям. Я могу рассказать вам много хороших вещей о языках, которых я стараюсь избегать, и много плохих вещей о языках, которые мне нравятся. Вперёд, спрашивайте! Получаются интересные обсуждения.

      PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

      PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
      Читать дальше →
    • Несколько интересностей и полезностей для веб-разработчика #27

        Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

        Highcharts.js



        В последнее время я зачастил с библиотеками предназначенными для построения графиков и диаграмм. Но против трендов на GitHub с 2500+ звезд не попрешь, да и когда есть из чего выбирать — всегда хорошо. Highcharts.js — это мощный инструмент, основанный на SVG и VML рендеринге со множеством плагинов. Минус этого проекта — лицензия, которая позволяет использовать скрипт только в некоммерческих целях. Хочу обратить также ваше внимание, что именно этот проект выбрали такие компании как Яндекс, Facebook, Twitter, Yahoo, AT&A, Nokia и др.

        Читать дальше →
        • +45
        • 30.8k
        • 7
      • Чем забит мой жесткий диск


          Сегодня хочется воздать по заслугам программе-долгожительнице SequoiaView — приложению, созданному в начале двухтысячных годов Техническим университетом Эйндховена (Нидерланды). Приложение получилось настолько практичным, лаконичным и удобным, что уже более 10 лет выручает всех, у кого вдруг внезапно закончилось место на диске, а сейчас как раз позарез нужно расчистить пару десятков гигабайт, чтобы поставить новую игру, скачать фильм или просто забить это место в очередной раз мелким мусором.
          Читать дальше →
        • Виза L1 США, один шаг до Грин Карты

            image Виза L1 выдается менеджерам высшего звена зарубежных компаний, которые открывают представительство в США. Эта виза позволяет совершить трансфер управляющего сотрудника в США, где он будет жить и работать в филиале своей компании. Получив эту визу, сотрудник может получить визы для своей жены и детей и они смогут легально приехать и жить в США. Спустя год, сотрудник должен предоставить в миграционную службу результаты работы компании в США и, в случае положительных результатов, получить продление визы на 2 года и право подавать документы на Грин Карту. В общей сложности по визе L1 можно жить и работать в США 7 лет.

            Главная проблема, которую решает виза L1,
            Читать дальше →
          • Sypex Geo 2.2 — теперь с GeoNames и ОКАТО

              Вышла новая версия Sypex Geo 2.2 — очень быстрого алгоритма определения города по IP. Теперь базы данных стали двуязычными (русский и английский), регионы и города теперь привязаны к базе данных GeoNames, и имеют постоянные ID.

              Были добавлены ОКАТО коды для городов и регионов России, КОАТУУ для Украины и СОАТО для Беларуси.

              Технические подробности


              Алгоритм работы Sypex Geo значительно не изменился, были исправлены небольшие ошибки, которые возникали при сильной неравномерности распределения IP диапазонов.
              Читать дальше →
            • Замолвим слово об отладке и профилировании [PHP]

              • Tutorial
              Все идет от лени. Вы получили чужой очень большой проект в котором нужно сделать небольшие правки, или же написали скрипт и сразу не очевидно, что в нем еще требует оптимизации. Как быть? Читать и анализировать код, выводить каждый шаг на экран или в файл (var_dump() и т.д.) не всегда эффективно, ведь можно воспользоваться средствами отладки, которых на сегодняшний день очень много. Кратко перечислю часто встречающиеся…
              Читать дальше →
              • +27
              • 36.3k
              • 7
            • EditorConfig — Одни Настройки для всех Редакторов/IDE

                EditorConfig это конфигурационный файл и набор расширений, к большому количеству редакторов кода и IDE (Далее просто IDE).

                Его задача — создать единый формат настроек, и, раз и навсегда, решить вопросы вроде “табы или пробелы” для всех IDE и всех языков программирования. Такой файл может храниться в системе контроля версий проекта, что позволит всем его разработчикам использовать одну и ту же конфигурацию.

                Файлы .editorconfig можно найти в таких проектах, как jQuery, Ruby, WordPress, и многих других.

                Плагины доступны для большого количество IDE




                Давайте разберемся, как это работает.
                Читать дальше →
              • Лучшие платные Photoshop плагины для веб-дизайнеров

                  Привет, Хабр! Относительно недавно я опубликовал "Лучшие бесплатные Photoshop плагины для веб-дизайнеров". В подборке я попытался собрать все известные мне инструменты, которые значительно помогают в работе. Кстати, по возможности я ее обновляю и несколько дней назад добавил Velositey для построения лэйаутов. Таким образом мне хочется сделать «конкретное местечко» где будут храниться удобные для работы с фотошопом штуки. Аналогично не только поста ради, мне хочется собрать и платные инструменты, которые реально окупятся через «несколько» человеко часов. Некоторыми из них я пользуюсь сам.

                  PNG HAT $39.99



                  Сей замечательный плагин от достаточно известной компании Source «символизирует» лучший способ того, как должна происходить нарезка слоев. Принцип «в один клик», которые значительно сокращает потраченное время на экспорт слоев наглядно продемонстрирован в видео выше. Что еще есть внутри: мощная оптимизация с помощью PNG Crush, PNG quant и opti PNG, которая по заявлению разработчиков в разы эффективнее стандартного способа; Base64 encoding; код на изображение копируется в буффер для HTML, CSS или Obj C; масштабирование, что очень удобно в связи с необходимостью разработки дизайна под Retina дисплеи; и даже облако объемом 1GB для хранения изображений.

                  Говоря про «нарезку» также стоит упомянуть Zeick $19.99, который экспортирует все векторные шейпы в SVG и Glifo $19, который экспортирует эти же шейпы в иконочные шрифты.

                  Читать дальше →
                • Сравнение сервисов для автодополнения адресов в форме

                    Автодополнение адреса


                    На Хабре не раз поднимался вопрос автодополнения адресов в форме (раз, два, три).

                    Но вот и перед мной появилась задача реализовать такое автодополнение для небольшого интернет магазина. Критерии были такие:
                    • Автодополнение адресов только Москвы
                    • Автодополнение адреса одной строкой
                    • Решение должно быть бесплатно (лимит запросов не менее 1000 в сутки)
                    • Возможность подключить без дополнительных JS библиотек. (Я использую AngularJS Bootstrap-UI, в котором есть директива Typeahead, реализующая автодополнение формы)
                    • Стопроцентный uptime не обязателен


                    Но какой источник данных выбрать? Я выбрал целых четыре, и решил их сравнить: в одном углу ринга заморские Google Geocode и Google Autococomplete, а в другом отечественные КЛАДР в облаке и DaData подсказки.

                    DISCLAIMER: Автор никак не причастен к разработчикам ни одного из представленных сервисов.
                    Интересно? Тогда прошу под кат
                  • Используя силу JS во всех аспектах веб-проекта

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

                      image

                      Предисловие


                      Меня всегда удручали закладки браузера или любые другие сервисы своей не информативностью. Довольно затруднительно найти нужную ссылку имея только фавиконку и заголовок. А если нужно найти конкретное видео или картинку в разросшейся коллекции закладок?
                      Одно время я просто сохранял URL-ы в txt файл, вел скрытую группу Вконтакте, делал заметки в Evernote, пользовался кучей сервисов. Все это привело меня к созданию Raindrop.io.

                      Под катом подробности и немного закулисья.
                      Читать дальше →
                    • Автоматическое назначение задач в Jira

                      image

                      Распространённая проблема менеджера проектов — определить, от кого зависит дальнейшее исполнение задачи. Часто задача назначается на разработчика, да так и остаётся “висеть” на нём вплоть до релиза. Однако разработчик отвечает только за часть исполнения. QA — тестирует, DevOps — включает в релиз, продакт-менеджер — оценивает готовую работу (в каждой организации эта цепочка своя). Задача путешествует от статуса к статусу (In Progress, Done, Tested, Shipped, Closed и т.п.), но исполнителем значится всё тот же разработчик.

                      В небольших командах это не представляет сложности, ведь и так примерно понятно, кто должен тестировать, кто релизить и т.д. Но даже команде из нескольких QA уже необходимо изобретать правила, по которым тестировщики должны разбирать себе задачи, помеченные разработчиками как Done. Либо специальный человек должен вручную распределять такие задачи между членами команды. И что самое неприятное — нет гарантии, что задача не будет позабыта и не застрянет в каких-то промежуточных статусах.
                      Как быть?
                    • 30 CSS-фреймворков для адаптивного веб-дизайна

                        Заметил, в последнее время на любое упоминание Twitter Bootstrap, минимум один человек отмечает, что «слишком много его стало». Большинство все устраивает, но некоторым он уже приелся и они хотят чего-то нового. Поэтому решил написать статью со сборником css-фреймворков, думаю каждый сможет найти что-нибудь для себя. Заодно сделаем интернет разнообразнее.

                        Читать дальше →
                      • Преобразование равномерно распределенной случайной величины в нормально распределенную

                          Этот вопрос уже давно подробно изучен, и наиболее широкое распространение получил метод полярных координат, предложенный Джорджем Боксом, Мервином Мюллером и Джорджем Марсальей в 1958 году. Данный метод позволяет получить пару независимых нормально распределенных случайных величин с математическим ожиданием 0 и дисперсией 1 следующим образом:
                          алгоритм марсалья marsaglia
                          где Z0 и Z1 — искомые значения, s = u2 + v2, а u и v — равномерно распределенные на отрезке (-1, 1) случайные величины, подобранные таким образом, чтобы выполнялось условие 0 < s < 1.
                          Многие используют эти формулы, даже не задумываясь, а многие даже и не подозревают об их существовании, так как пользуются готовыми реализациями. Но есть люди, у которых возникают вопросы: «Откуда взялась эта формула? И почему получается сразу пара величин?». Далее я постараюсь дать наглядный ответ на эти вопросы.

                          Читать дальше →
                        • Десятка лучших консольных команд

                            imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
                            Узнать больше
                          • 02 Collector: пятничный контент, 3D и типографика



                              Снова делюсь с вами подборкой интересных сайтов и ресурсов, чтобы к концу недели отвлечься от рабочего процесса. В этот раз будет много браузерного 3D и сайтов о типографике.
                              Читать дальше →
                              • +14
                              • 18.1k
                              • 7
                            • Как отключить поиск на новой вкладке Chrome

                                Chrome New Tab Page

                                Если вас, как и меня, раздражает поисковая строка с логотипом и кучей пустого места в новом варианте новой вкладки Chrome, но вы не знаете, как это отключить, то вам сюда. Если вы не можете жить без всех возможностей старой новой вкладке, которые теперь пропали (недавно закрытые окна, сайты, открытые на других устройствах), вам сюда же.

                                1. Заходим в chrome://flags.
                                2. Находим пункт «Enable Instant Extended API» / «Включить расширенный API Живого поиска» и выбираем Disable/Отключено.
                                3. Нажимаем кнопку Restart/Перезапустить в полоске, появившейся внизу окна.
                                4. Profit!