• За красивый Android

    Тема 1: Фразы о Android


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

    Осуждения фраз:

    • ANDROID для программистов.
    • ANDROID тормозит, а вот IOS нет.
    • ANDROID'у нужно сильный процессор и много оперативной памяти.
    • Не красивый интерфейс.


    ANDROID для программистов

    Когда я услышал эту фразу, я подумал что человек в глаза не видел и не работал с ANDROID (это оказалось правдой, человек считай IOS лучшем даже не держа в руках других ОС). Я спросил: «Почему?», и не услышал никакого ответа потому, что нет ни одного факта который бы подтверждал это. Человек просто выдумал себе это.


    Читать дальше →
  • Парсер на PHP – это просто

    Вебмастеры часто сталкиваются с такой проблемой, когда нужно взять с какого-либо сайта определенную информацию и перенести ее на другой. Можно сначала сохранить информацию на промежуточный носитель, а уже с него загрузить куда-либо, но подобный подход не всегда удобен. В некоторых случаях гораздо быстрее залить парсер на сам сайт, поддерживающий PHP и запустить его удаленно, чтобы он автоматически спарсил информацию и загрузил ее в базу данных ресурса.
    Среди уже готовых решений имеются популярные вроде Content Downloader и ZennoPoster, они конечно очень удобны и понятны любому человеку, даже незнакомому с программированием, однако имеют некоторые минусы. К примеру, они платные и не обладают достаточной гибкостью, которую можно вдохнуть в обычный php скрипт. Тем более, что разработка сложного парсера на них нисколько не уступает по времени написанию аналога на php.
    Еще есть такая бесплатная вещь как iMacros – скриптовый язык, который может эмулировать действия пользователя в браузере, но тоже не везде такой подход работает лучшим образом.
    Читать дальше →
  • Получение доступа к API Почты России

    Здравствуйте, меня зовут Андрей и я по роду деятельности и не только, получаю много посылок с помощью Почты России. Соответственно очень мне нравится отслеживать их перемещение через сеть Интернет с помощью сервиса на сайте Почты России и сторонних сервисов. Те кто когда либо пробивал посылку на сайте Почты России знают насколько это неудобно, а может и не знают, может кому то нравится, мне нет, одну посылку еще можно отслеживать заучив трек номер наизусть, а если несколько то неудобно. У сторонних сервисов все намного лучше, но на бесплатном обслуживании проверка статуса посылки раз в сутки и нет приятных мелочей типа смс уведомления. Если оплатить тариф то становится совсем хорошо, почти все меня устраивало, пока не вспомнил что когда Почта ввела у себя на сервисе отслеживания каптчу, здесь на Хабре проскакивали сообщения о том что у Почты есть api для доступа к сервису трекинга.
    Читать дальше →
  • Калькулятор и числа Фибоначчи

    Как с помощью обычного калькулятора получать числа из ряда Фибоначчи


    Всем привет. Однажды скучным вечером, лет 15 назад, я случайно обнаружил, как на обычном «китайском» калькуляторе получать последовательно числа из ряда Фибоначчи. Это никак не изменило мою жизнь, но однажды помогло на олимпиаде по математике (хе-хе, там можно было пользоваться калькулятором), и, возможно, сейчас поможет. Я вам сейчас всё расскажу, а вы готовьте калькуляторы и проверяйте. Это совсем просто и даже весело.
    Читать дальше →
  • Робот для Хедхантера

    Добрый день уважаемые читатели.
    На повестке моего дня стоит поиск работы, и для этого я традиционно пользуюсь сайтом www.hh.ru.
    На данном сайте размещаются резюме людей, ищущих работу. Сайт очень популярен в среде IT специалистов и можно смело сказать, что в другие места ходить не придется — все работодатели уже здесь.
    Сайт устроен по принципу работы с обеих сторон. Если работнику очень нравится вакансия в определенной компании, то он может откликнуться на неё, если работодателю понравилось резюме работника, то он может откликнуться на его резюме.
    Работодатель получает список резюме по запросу. Список формируется в зависимости от даты размещения каждого резюме, поэтому важно обновлять дату размещения своего резюме.
    Для этого существует специальная кнопка «Обновить дату»:
    Читать дальше →
  • Что будет с MeeGo Harmattan?

    Последний месяц я после некоторого перерыва пользовался Nokia N9 в качестве основного смартфона. Естественно начал настраивать его под себя, искать недостающие приложения, и к своему удивлению обнаружил, что по комплекту основных приложений MeeGo Harmattan ничуть не устарела. Параллельно приходили известия с IT-политических фронтов, ставившие крест даже на самых фантастических мечтах о появлении нового девайса на MeeGo Harmattan. Тем не менее, сама ОС показалась мне абсолютно живой и не просто пригодной для использования, но по интерфейсу по-прежнему куда более дружественная пользователю, чем все существующие. Вот бы нанизать ее на современное, актуальное железо, чтобы процессор был хотя бы 2-ядерный, а лучше и вовсе 4-ядерный, чтобы оперативки было 2 гб и пр.

    Читать дальше →
  • Библиотека для сканирование разных типов кодов в Android

    image

    В этой статье я хотел бы рассказать про библиотеку для Android, которая упрощает процесс сканирования кодов. Библиотека использует модуль zbar для распознавания.
    Читать дальше →
  • P2P взаимодействие с помощью TomP2P

    Доброго всем времени суток!

    Взялся писать P2P приложение на Java с помощью библиотеки P2P. Ознакомился с example-ами, да вот беда: не нашел нигде как «связать» два пира, которые никогда друг о друге не знали. В example-ах есть приводится пример взаимодействия пиров через заранее известный мастерпир. Я же хочу, чтобы пир при старте слал broadcast сообщение и слушал, кто на них ответит. Вследствие у меня возникло много вопросов: Как отправить конкретное сообщение по broadcast (в example-ах это делатся через ping)? Как создать handler входящих сообщений и как послать request в ответ (опять-таки в примерах это делается через ping)?

    Те, кто знаком/работал с этой библиотекой или видел толковые примеры на хабре/просторах интернета, отзовитесь.

    Пример кода, который выполняет требуемые действия, но через стандартный пинг:
    Читать дальше →
  • Беспарольная аутентификация с помощью телефона

    Несколько лет назад на работе приходилось решать вопрос интеграции linux-машин в структуру домена active directory. Именно тогда я познакомился с такой замечательной вещью как PAM (Pluggable Authentication Modules). Это система подключаемых модулей аутентификации. Возможности этой библиотеки может использовать любое приложение. Для реализации аутентификации на linux-машине с помощью пароля, хранящегося в AD, я и использовал специальный модуль pam_winbind, для кэширования пароля на машине и последующей оффлайн авторизации pam_ccreds и pam_mount для монтирования сетевых «дисков».
    Меня очень впечатлила такая гибкость системы аутентификации в Linux. Довольно много времени я потратил на игры с различными модулями. В этой заметке я расскажу, как сделать беспарольную аутентификацию с использованием Bluetooth.
    Читать дальше →
  • Архитектура MySQL

    Данный топик является переводом части первой главы отличной книги для администраторов баз данных вообще и администраторов MySQL в частности, «High Perfomance MySQL, Third Edition»

    Логическая архитектура MySQL

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

    image

    Первый (верхний) уровень содержит сервисы, которые не являются уникальными только для MySQL. Они предоставляют основной сетевой клиент/серверный инструментарий, необходимый серверу: обработка и управление коннектами, аутентификацию, безопасность и т.д.

    Второй уровень более интересен. Большинство важнейших компонент MySQL находятся здесь, включая код для разбора запросов, анализа, оптимизации, работу с кешем, и все встроенные функции (даты, времени, математические, и т.д.). Любой функционал, который является общим для всех систем хранения (таких, как MyISAM, InnoDB и т.д.), находится здесь — хранимые процедуры, триггеры, представления, например.

    Третий уровень содержит системы хранения данных. Они ответственны за хранение и получение данных, хранящихся «в» MySQL. Подобно разным типам файловых систем в GNU/Linux, каждая система хранения имеет свои преимущества и недостатки. Сервер обменивается информацией с системами хранения через API систем хранения. Этот интерфейс скрывает различия между разными системами хранения, и делает их относительно прозрачными на уровне запросов. Этот API содержит большое количество низкоуровневых функций, которые выполняют операции с базами данных, например «начать транзакцию» или «вернуть строку, содержащую этот первичный ключ». Системы хранения не занимаются разбором SQL и не взаимодействуют друг с другом, они просто отвечают на запросы сервера.

    Оптимизация и выполнение

    MySQL разбирает запросы для создания внутренней структуры запроса (дерева), затем выполняет несколько различных оптимизаций.
    Читать дальше →
  • Как дорасти до Senior PHP Developer в Украине?

    Хочу сразу предупредить: эта статья очень субъективная и, возможно, покажется вам очень неоднозначной.
    С 1 октября я начал работать именно в той компании, в которой очень хотел. А точнее, в её днепропетровском офисе в Украине. Но речь пойдет не о компании. Речь пойдет очень абстрактно про разработку, задачи.
    Кто-то может посчитать эту статью полнейшим бредом, а кто-то — вбросом на вентилятор, а ещё кто-нибудь, я надеюсь, — поймает себя на такой же мысли.

    В общем, если интересно, добро пожаловать под кат.
    Читать дальше →
  • Устройство памяти в .NET



    Существует много устойчивых заблуждений об устройстве памяти в .NET, которые кочуют из учебника в учебник, и из совета в совет.
    Например, что вся память находится под управлением сборщика мусора. Увы, но это не так. Есть области памяти, которые находятся под управлением системы и которыми можно управлять лишь опосредовано и выделенная в них память НЕ освобождается.
    Читать дальше →
  • Установка postfix+dovecot на Debian 6.0

    Установка postfix+dovecot на Debian 6.0 (squeeze)
    postfix+dovecot+clamav+antispam+ldap+sieve+shared_foolders

    Прочитал недавно статью Идеальный корпоративный почтовый клиент на хабре
    и возрадовался, а прочитав кое-какие каменты — всплакнул.
    Возрадовался от того что есть люди как и я считающие что на мелкософте свет клином не сошелся,
    а всплакнул потому, что некоторые мелкофаны пытаются ввести в заблуждение людей своими высказываниями.
    Мол, дескать, где СПО там костыли, глючные самописные скриптики и танцы с бубном.
    Это все неправда.
    Читать дальше →
  • Очищаем сайт (форум+вордпресс) от последствий вирусного взлома

    На днях ко мне обратилась знакомая, которая ведет свой небольшой бизнес посредством собственного блога и форума, размещенных на одном хостинге.
    Это молодая девушка, не имеющая абсолютно никаких познаний в программировании, веб-дизайне, верстке и тому подобных областях. На её веб-сервере были установлены Wordpress и phpBB 3.0.11, сайт используется для проведения различных тренингов по воспитанию детей, а также для обмена опытом между мамочками.
    Внезапно, на ее форуме перестала работать система личных сообщений…
    Алексей, здравствуйте!
    Помогите!
    Что-то на форуме с личными сообщениями!!! Они не работают, при клике открывается пустая страница!!!
    Мы тренинг запускаем, в выходные уже надо рассылать сообщения

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

    Доброго времени суток!

    Работая со звездочкой достаточно продолжительное время, мне периодически приходится решать тривиальную задачу: организовать вариант очереди входящих звонков в call-центре, который по максимуму задействует имеющиеся ресурсы (операторов, линии и т.д.).

    Вроде все просто: настраиваешь queues и раскидываешь по операторам, но…понаблюдав за работой этой схемы я заметил одну не очевидную с первого взгляда вещь – пока не будет обработан первый входящий звонок в очереди, остальные клиенты этой очереди будут просто висеть и не попадать на свободных операторов (см. схему). А операторы, как известно, тоже люди…и без должного контроля очень даже ленивые!

    Схема работы queue в Asterisk
    image

    Поразмыслив над задачей, я решил полностью отказаться от queue и сделать все на dial-ах.
    Читать дальше →
  • Релиз NetBeans 7.4

    Вышло обновление популярной среды разработки для языков JAVA, C++ и PHP. Несмотря на то, что на главной странице все еще не обновили информацию об актуальной версии, стоит поделиться о нем. Эта версия привносит ряд приятных особенностей для WEB-разработчиков, таких как расширенную поддержку HTML5? популярных JavaScript-фреймворков а также Chrome Connector для отображения изменений в HTML-коде без перезагрузки страницы.

    NetBeans 7.4


    Что же нового?
  • Простейшая защита от DDOS на PhP

    Многие задаются вопросом, возможно ли бороться с DDOS при помощи PhP? Казалось бы, ответ очевиден — нет. Другие скажут, что это полнейший бред и не нужно страдать ерундой. Я, конечно же, никого переубеждать не стану. Однако, хотелось бы рассказать о своем подходе к решению этой столь нетривиальной задачи.
    Читать дальше →
  • Гонки ROBORACE

    Так как тут ещё не было статьи о ROBORACE, я решил восполнить этот пробел. Я немного расскажу вам о самих соревнованиях и о моём роботе.

    image

    Roborace — это проект робототехнических соревнований. Эти соревнования во многом черпают идеи из соревнований Формулы 1, но с тем отличием, что соревнуются не управляемые пилотами болиды, а полностью автономные роботы. Роботы полагаются на показания своих датчиков что бы ориентироваться по трассе. Турнир включает соревнования, в которых могут принимать участие как простые узконаправленные конструкции, созданные начинающими, так и комплексные робототехнические устройства со сложной программной частью. Регламенты соревнований формируются таким образом, чтобы охватить как можно более широкий спектр характеристик и возможностей робототехнических конструкций.


    Кому интересно, прошу под кат:
    Читать дальше →
  • Функция для постраничного вывода статей в блоге со встроенным paginatorom

    Целью данной функции является минимизация кода, и возможность использовать одну функцию как для поиска, так и для основного отображения статей на сайте.
    В целом все началось с того, что мне потребовался paginator для главной страницы создаваемого мной блога. Но, я был крайне удивлен тому, что все готовые решения, либо заточены под какую-либо CMS, либо настолько громоздки, что количество кода превышает общее количество кода самого блога. Далеко не буду ходить, думаю многим известен Pagination.ru.
    Конечно же проще чем использовать MySQL LIMIT, думаю искать ничего не стоит. Идея не нова, использовалась и описывалась сотни раз, поэтому на оригинальность я не претендую, всего лишь делюсь удобной, по моему мнению, функцией, которую можно допиливать под множество потребностей.
    Читать дальше →
  • Шифрованный не шифрованный трафик

    Предисловие

    «Устами младенца глаголет истина». О чём эта поговорка? С моей точки зрения эта пословица относится не только непосредственно к младенцам. Бывают такие случаи, когда человек совершенно непосвящённый в тему вопроса может высказать очень полезную мысль, до которой несколько опытных разработчиков (проецируя ситуацию на близкую нам тему) даже и не догадывались в силу своей ограниченности мышления. Другими словами «младенцу» не мешают всякие технические подробности и ограничения, которые могли засесть у «бывалых».
    К чему это всё сказано? Я решил подвести тему к своему предложению именно так. Я программист, 6 лет занимаюсь этим делом и так довелось, что ни разу не сталкивался с шифрованием информации. Сейчас, хочу рискнуть и высказать свои мысли по поводу шифрования информации и передачи её в интернете.


    Читать дальше →