• Простой геокодер

      Несколько раз приходилось сталкиваться с необходимостью загрузить N десятков точек на Карту Google. Плюс еще знакомые спрашивали как это сделать. Самое простое что сейчас предлагает Google — импортировать файл KML, KMZ, или GeoRSS. Вопрос только один. Где взять такой файл? Как его быстро сделать обычному пользователю?

      Пинком к действию стал пост в сообществе ru_google.
      Читать дальше →
    • Выбор дней рождения на MySQL + мелочи

        Дали задание: выбрать из базы пользователей, у которых на днях день рождения, — для вывода на главной странице сайта.
        Используем PHP (ZF) & MySQL.

        Поле в нашей БД имеет тип “date”, что уже хорошо. Задание простое, начал писать, …
        Быстрее, думаю, погуглить, зачем велосипед изобретать, явно уже решалось сотни раз.
        Посмотрел первый запрос, — неправильно он работает, второй – тоже…
        Нашел правильный, но он оказался таким монстроподобным.
        Удивлению не было предела – некоторые из этих «велосипедов» изобретены в текущем году!
        Читать дальше →
      • Купил новый компьютер? Старый тоже пригодится!

          Так получилось, что я люблю программирование и компьютеры. Поэтому у каждого члена моей семьи было по одному PC. У меня стационарный (Ubuntu), у мамы тоже (Windows XP), а у жены — ноутбук (Windows Vista). Была задача — организовать интернет для всей этой техники. Провайдер мне его отдает по PPTP. Недолго думая (и будучи лентяем) я докупил обычные Ethernet-сетевые карты, вставил на стационарные компы и соединил все компьютеры проводами (если честно, я еще купил WiFi модуль для своего компа, но тупо не смог настроить для ubuntu).

          Шло время, потребности росли (особенно потребности в мобильности рабочего места) и я стал обладателем ноутбука MacBook Pro. Что делать со старым компьютером? Выбрасывать? Было жалко… Ведь почти руками его собирал в течение двух лет. И тогда я решил — будет сервером! Я почистил компьютер и заново поставил туда Ubuntu Linux.
          Читать дальше →
        • Переход с Windows 7 RC на RTM

            Как вы помните, Windows 7 RC прекратит хорошо себя вести в начале весны. Не все знают, что таки можно перейти с RC на RTM без переустановки системы. А я знаю, и с удовольствием расскажу.

            Прежде всего, в ветке HKLM\Software\Microsoft\Windows NT
            в значениях параметров EditionID и ProductName заменить слово Ultimate на слово Enterprise.

            Затем взять образ w7 Enterprise, открыть каким-нибудь редактором, UltraISO или еще чем-то, найти файл Sources\cversion.ini, и в строчке MinClient поставить номер билда поменьше, чем который у Вас сейчас.

            Сохраняем, поджигаем, обновляем.

            P.S. Само собой разумеется, что у Вас есть юридическое право использовать Windows 7 Enterprise RTM. :-)

            Удачного апгрейда.
          • Построение нейронных сетей в php используя FANN, пример реализации

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

            Поскольку данные для анализа формируются в php и мне этот язык сейчас ближе всего, то искалась библиотека с интерфейсом для php. В связи с этим мне порекомендовали FANN (Fast Artificial Neural Network) — открытое программное обеспечение для построения сетей. У этого решения есть апи для 15 языков, так что почти каждый сможет выбрать что-то для себя.

            Пример. Распознавание языка текста на странице

            Для примера возьмем задачу легкую, но недалекую от нашей реальности и от серьезных задач. Допустим есть 1000 документов, на 3-х разных языках. Пусть это будут французский, английский и польский. Наша задача научить нейронную сеть распознавать язык документа. Для этого мы используем самый простой частотный механизм. Но тем не менее его результаты неплохи. Его суть в том, что у каждого языка с разной частотой в тексте встречаются одни и те же символы. Мы подготавливаем 3 больших куска текста для каждого из языков (английский, французкий, польский), посчитаем для каждого символа частоты. Эти данные мы передадим в нейронную сеть, с указанием какой набор частот принадлежит каждому из языков. Дальше нейронная сеть все сделает сама.
            Читать дальше →
          • Защита от ботов, основанная на различии в работе с большими числами в JavaScript и PHP

            Недавно мне пришлось разбираться с защитой от ботов, используемой на нескольких довольно популярных ресурсах.
            На первый взгляд защита показалась обычной установкой куки через javascript, справиться с которой — дело 15-ти минут. В самом деле, после небольшого исследования стало понятно где что делается и какие параметры куда передаются, остается только переписать небольшую функцию с javascript на php и дело в шляпе.
            Но все оказалось не так просто. И хотя в итоге защита была сломана, на это потребовалось далеко не 15 минут, и сам принцип защиты оказался для меня новым и довольно интересным.

            Итак, обо всем по порядку.
            Читать дальше →
          • Пять способов ускорить запросы API Facebook на практике

              Ни для кого не секрет, что самым узким местом веб-приложений чаще всего являются HTTP-запросы к внешним серверам. Так, время загрузки данных запроса API много больше чем время, необходимое для выполнения большинства самых сложных скриптов веб-приложения.

              За время работы с API Facebook я накопил несколько рецептов оптимизации запросов: как увеличить скорость работы скриптов, уменьшить их количество и ресурсоёмкость.



              Способы, изложенные в этой статье, работают только с API Facebook. Но я не исключаю, что они могут быть применимы и в других сервисах, предоставляющих API.
              Читать дальше →
            • Пишем модуль для Ejabberd

              Если вам нужна нестандартная функциональность от XMPP сервера ejabberd, вы не знаете, как это настроить штатными средствами и не нашли подходящего для этого модуля, то можно написать этот модуль самим.

              Так я решил, когда начальство объявило войну пустой болтовней в jabber-е, для чего необходимо было запретить некоторым пользователям чатица с другими, но разрешить с третьими. И хотя у меня всё ещё есть смутное подозрение, что это можно настроить с помощью списков доступа, я решил написать модуль, которым мне будет удобно пользоваться. Этот модуль и послужит примером для рассказа.
              Читать дальше →
            • Самодельные деревянные устройства

                Некий Matthias Wandel из Канады увлекается созданием различных машин и устройств из дерева.


                Первое устройство, на которое я наткнулся — это устройство созданное с помощью конструктора Lego для постоения рядов доминошный деревянных костяшек.



                Читать дальше →
              • Колоночная верстка

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

                  Плюсы
                  • Есть прижимающийся к полу футер
                  • Колонки меню растягиваются по 100% высоте
                  • Колонок может быть сколько душе угодно
                  • Колонки могут быть как лево- так и правосторонними, а также совмещенными, например 2 справа и 1 слева
                  • Ширина как резиновая, так и фиксированная
                  • Критический минимум хаков
                  • Не используется Javascript
                  • Не используются бекграундовые изображения для создания эффекта колонки
                  • Никаких таблиц
                  • Одинаковый результат в ie5.5, ie6, ie7, ie8, ff3.5, o10, chrome4 (Если у вас не работает в каком-то браузере — отпишитесь, пожалуйста, в комментах. Исправим и приведем к универсальному виду)

                  Минусы
                  • Есть несколько «лишних» блоков. (Я бы и сам рад от них избавиться)
                  • Есть несколько абсолютно-позиционируемых блоков
                  Читать дальше →
                • Инструменты быстрого прототипирования

                  • Перевод
                  Прототипы, как инструменты дизайна, находятся на подъёме, и вот почему. Я твёрдо верю, что прототипирование помогает нам в процессе создания качественных пользовательских интерфейсов. Мы работаем в мире богатых, обладающих динамикой интерфейсов пользователя как в сети, так и на наших устройствах. Интерфейсы, которые мы создаём, интерактивны, откликаются на воздействие пользователя и обладают эмоциями. Прототипы позволяют сформулировать чувства и функции дизайна так, как этого не могут сделать простые экранные формы. Но как выбрать лучший инструмент прототипирования для работы?
                  Много текста. Читать дальше
                • Список полезных инструментов для CSS разработчика

                  • Перевод
                  Это не попытка создать список всех существующих инструментов для CSS разработки. Только некоторые, наиболее полезные были отобраны и размещены в соответствующих категориях.


                  Чтобы инструмент был по-настоящему полезен, у него должна быть хорошая документация и дружелюбный интерфейс. К сожалению, некоторые инструменты в списке не полностью попадают под данные критерии. Если кто-то знает лучшие альтернативы с более дружелюбным интерфейсом и большей функциональностью, пишите в комментариях.
                  Читать дальше →
                  • +161
                  • 60,2k
                  • 65
                • Никогда не говорите слово …, или регистрация в 2 щелчка мышью


                    Люди не очень любят регистрироваться. Это же нужно (в общем случае) придумать логин и пароль, зайти в свою почту, дождаться письма, открыть его, перейти по ссылке активации аккаунта, а потом еще этот логин с паролем не забыть. Но ведь уже давно есть способ, с помощью которого все эти шаги не нужны. Более того, не нужно вообще ничего вводить с клавиатуры, 2 щелчка мышью и все, человек зарегистрирован.

                    Читать дальше →
                  • Точка доступа на основе wi-fi карточки D-link DWA-520 (ath5k)

                      Хотите получить wi-fi точку доступа из барахла которое завалялось в гараже? Тогда вам под кат т.к., сегодня мы будем собирать программную точку доступа (AP) на основе wi-fi карточки D-link DWA-520 на чипсете Atheros AR5001X+ (ath5k) и Ubuntu Server 9.04.

                      заинтересовало?
                    • Еженедельный чеклист руководителя проекта

                        Вот такой список обнаружил когда-то в одном давно заброшенном блоге англоязычного менеджера проекта. Адрес блога к сожалению давно потерялся, но сами список с небольшими исправлениями оказался очень полезным в работе — еженедельно просматриваю его. Очень помогает приводить мысли и информацию по проекту в порядок.
                        Читать дальше →
                      • Рисоваська, часть 3: Амазоновские веб-сервисы в действии

                          В данной статье я расскажу, что же такое Amazon Web Services или сокращенно AWS, для чего это можно использовать, и приведу пошаговую инструкцию, как настроить их у себя с самого начала. В статье основной упор будет сделан на Amazon Elastic Compute Cloud или EC2 и Amazon Simple Storage Service или S3. Amazon CloudFront, являющийся логическим продолжением S3, хорошо рассмотрен в статье mish: Настраиваем CloudFront для работы с S3. С остальными амазоновскими сервисами вы можете познакомиться самостоятельно: Amazon SimpleDB, Amazon Simple Queue Service или SQS, а также другими сервисами Амазона. Данная статья является продолжением первой и второй статей. Итак:

                          Что такое Amazon Web Services


                          Это набор удобных сервисов, которые можно использовать как по отдельности, так и вместе. В первую очередь это «облачные вычисления» (анг. Elastic Compute Cloud). Что это значит? Это значит, что вы можете запустить в «облаке» любое кол-во компьютеров нужной вам конфигурации c нужной вам операционной системой всего за пару минут. Это действительно так. Время запуска одного инстанса (instance называется один виртуальный сервер в амазоне) обычно не превышает двух минут. Сразу после запуска инстанс начинает работать, к нему есть root-доступ по SSH или Remote Desktop, если там установлен Windows. Не правда ли, здорово! С момента запуска оплата за инстанс идет по часам. В любой момент вы можете остановить инстанс и деньги за его использование перестанут сниматься. Помимо времени работы инстанса, так же отдельно оплачивается входящий и исходящий трафик.
                          Читать дальше →
                        • Новые возможности Амазоновских облаков: Elastic Load Balancing, Auto Scaling и CloudWatch

                            На прошлой неделе Амазон выпустил несколько чрезвычайно интересных сервисов, расширяющих функциональность Amazon Elastic Clouds (EC2): Elastic Load Balancing, Auto Scaling и CloudWatch. Если бы они еще были бы бесплатными, то было бы совсем клево! Но обо все всем по порядку.

                            Elastic Load Balancing


                            Представьте, что у вас запущено несколько инстансов в амазоновском облаке, выполняющих одну и туже задачу. Elastic Load Balancing позволяет автоматически распределять входящие запросы по заданным инстансам. Причем он может выявлять упавшие инстансы и автоматически перенаправлять трафик на рабочие, пока неработающие инстансы опять не заработают, что конечно сильно повышает надежность всей системы в целом. Балансировщик может работать как внутри одной зоны (имеется ввиду физическое расположение серверов) так и между инстансами находящимися в разных зонах, что еще больше повышает надежность вашей системы в целом.
                            Читать дальше →
                          • Хостинг на AWS (EC2, EBS, S3) для чайников

                              На хабре уже проскакивали периодически заметки посвященные AWS (Amazon Web-Services) — так что тема не новая. Однако, если для меня лично (да и для многих моих знакомых как выяснилось) — этот термин был знаком — однако каких-либо деталей я не знал. Попробую на основании только-что полученного опыта рассказать немного подробней, а так же изложить основные шаги по организации хостинга сервера на AWS и его преимущества. Как и несколько ссылок, которые могут оказаться полезными.
                              image
                              Читать дальше →