Pull to refresh
1
0
Алексей @NeLexa

Пользователь

Send message

Как улучшить выбор страны из списка

Reading time6 min
Views14K
Представляю вашему вниманию перевод статьи под названием "Redesigning The Country Selector" от Christian Holst. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.

Выбор страны. Обычно он встречается тогда, когда вы регистрируетесь на новом веб-сервисе, оформляете заказ в интернет-магазине, или же оформляете участие в конференции. Что обычно представляет из себя выбор страны? Выпадающий список с перечнем всех доступных стран.



Однажды, проводя масштабные юзабилити-тестирования (о которых мы писали на Smashing Magazine в апреле 2011. Примечание переводчиков: мы перевели и эту статью тоже. Обязательно ознакомьтесь :), мы последовательно столкнулись с несколькими проблемами, связанными с выбором страны. Якоб Нильсен сообщал о похожих моментах в 2000 и 2007 годах, когда он тестировал выпадающие списки с большим количеством внутренних элементов, к примеру, таких, как перечни штатов или стран.

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

Валидаторы ввода под Android

Reading time3 min
Views9K
Validation
Не так давно мне понадобилось добавить в андроид-приложение валидаторы для полей ввода (EditText), но ничего подходящего в сети не нашлось: пришлось писать свои собственные. Теперь, когда все готово, можно раздать результаты всем желающим под Apache лицензией и немного рассказать, как все устроено. Тех, кому интересно,
прошу под кат

Модификация игр на примере Arcanoid

Reading time4 min
Views3.8K
Доброго времени суток!

Введение


На протяжении некоторого времени я наблюдал за блогом Assembler на хабре в виду того, что там начали появляться более чем отличные статьи по анализу различных keygen'ов и «reverse engineering». Я давно хотел заняться чем-то подобным и модифицировать какую-нибудь игру на J2ME. Я долго бродил по интернету в поисках хорошей, но в тоже время лёгкой для понимания (в плане анализа) игры. Однажды, я копался на сайте моего друга программиста (кстати, он тоже пишет программы для J2ME. Кто использовал ProPaintMobile — тот знает, о ком я говорю. И я нашёл её — это был простенький Арканоид. Видимо, это было чьё-то домашнее задание, или же он писался просто «just for fun», но тем не менее эта игра оказалась именно тем, чем нужно.
Поехали!

Как воспользоваться вебкамерой в эмуляторе Android

Reading time8 min
Views30K

Многие разработчики, особенно начинающие, пользуются эмулятором Android для создания своих приложений. Это позволяет делать очень многое без подключения телефона. Почти всё. Вот именно это «почти» и относится, например, к вебкамере. Для большинства приложений может быть и достаточно будет такого вида, ведь можно передать «нужное» изображение на обработчик, а окончательно протестировать уже на реальном устройстве. Для приложений которые работают с дополненой реальностью так работать будет совсем не удобно. Хотелось бы иметь видеопоток. В случае если телефона с андроидом под рукой нет — это проблема.
В прошлой заметке я писал о том, как работают методы распознавания маркера дополненой реальности. Данная статья будет посвящена тому, как воспользоваться вебкамерой в эмуляторе Android.
Читать дальше →

Топ-5 самых впечатляющих книг, которые должен прочесть каждый разработчик ПО

Reading time3 min
Views382K
Не так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием "самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения" и описанием:

Если бы вы могли вернуться в прошлое, к самому началу своей карьеры разработчика и сказать самому себе: «прочитай именно эту книгу», в самой начале своей карьеры разработчика, какую бы книгу вы рекомендовали?

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

Однако в данном небольшом посте я возьму на себя смелость перечислить ТОП-5 тех самых книг, победивших в голосовании, переведенных на русский язык. И дать небольшие комментарии, ведь книги действительно этого достойны. Да, лично я бы поменял некоторые места, однако положимся на «мнение зала» ресурса Stack Overflow.
Читать дальше →

Черное SEO с мобильным подтекстом

Reading time2 min
Views19K
В последнее время пользователям мобильного интернета нельзя и шагу ступить, чтобы не напороться на молниеносное заражение системы. Об этом уже сказано немало. В этом посте мы рассмотрели один из популярных запросов в Google и узнали, что результаты по нему выдаются весьма интересные. Для исследования был использован браузер Mozilla Firefox с установленным плагином «User Agent Switcher». В этом плагине можно выставлять произвольный user-agent. Чтобы сымитировать работу смартфона, был выставлен такой user-agent, как будто браузер работает с мобильного устройства под управлением Android:

“userAgent : Mozilla/5.0 (Linux; U; Android 1.5; de-ch; HTC Hero Build /CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1”

Чтобы найти малвару, в Google был введен достаточно популярный запрос «opera mini скачать»:
image
Читать дальше →

Уязвимости серверов к медленному чтению

Reading time2 min
Views28K
Приветствую.
Хочу рассказать, чем я баловался в свободное от работы в Qualys время. Так как в англоязычном интернете на удивление много шума про Slow Read DoS attack, и уверен что получу здесь много полезной критики и дельных предложений.

В августе 2011 года написал програмку slowhttptest, которая тестирует веб-серверы на наличие уязвимостей, связанных с обработкой медленных HTTP запросов, таких как slowloris и slow HTTP Post. Цель — создать конфигурируемый инструмент, облегчающий работу разработчиков и позволить им концентрироваться на создании эффективных защит, а не ковырянии в питоне, на котором написаны большинство proof-of-concept эксплоитов.

А потом решил попробовать, как реагируют серверы на медленное чтение клиентами HTTP респонсов. На удивление плохо реагируют. Дефолтные apache, nginx, lightpd, IIS отказывают в обслуживании на ура.

А суть такова:
Читать дальше →

XMPP-SMS шлюз на Android

Reading time11 min
Views20K


Введение

Причиной написания данной статьи послужила необходимость создания программы для системы Android, с помощью которой можно отправлять данные заказа в виде SMS сообщений владельцам интернет магазинов о том, что был совершен заказ товаров или услуг. Ранее мною использовалась система включающая GSM-модем и программу написанную на языке С++, использовавшая AT-команды для общения с модемом и библиотеку gloox для получения сообщений по протоколу XMPP, на стороне web-сайта использовалась библиотека xmpphp, для отправки данных заказа. При такой схеме приходилось держать включенным компьютер постоянно, так как система приема заказов работала круглосуточно, соответственно отсюда дополнительный расход электроэнергии, шум от вентиляторов ночью и постоянный контроль интернет соединения.
Читать дальше →

Двойная буферизация или Назад в прошлое. Часть вторая

Reading time3 min
Views11K
Доброго времени суток!

Введение


На дворе уже четвёртое января, а моя душа всё не успокаивается. Поэтому я решил продолжить тему написания J2ME приложений. Плюс ко всему, несколько человек проявили нешуточный интерес к данной теме. Причём это были не только рядовые пользователи хабра, но и read-only аккаунты. Ну да ладно, ближе к теме.
Буквально сразу же после публикации топика, были получены очень дельные комментарии от хабраюзера barker, а именно замечание, по сути являющееся прописной истиной и второй комментарий — поправка, не менее дельная.

О чём мы поговорим сегодня

Бесплатный облачный PHP-MySQL хостинг для небольшого сайта на основе Amazon AWS

Reading time8 min
Views87K
Данная инструкция не претендует на абсолютную точность, какую-либо новизну и предназначена для делающих самые первые шаги. Поэтому не судите особо строго.

Боевая задача.


Предположим нам хочется захостить небольшой проектик где-нибудь в надежном и не особо тормозящем месте. А поскольку сайт небольшой, то не будем заморачиваться и захотим от хостинга что-нибудь самое простое. Для наших целей вполне хватит PHP, MySQL и доступа по FTP.
Для решения этой задачи идеально подходит Веб сервис от Амазона в котором удивительным образом сочетается способность выдерживать большие нагрузки с бесплатным пакетом ресурсов на первый год после регистрации. В бесплатный пакет входит много чего, но в данный момент нас будут интересовать:
  • Виртуальный сервер в формате micro на основе Linux с доступом по SSH.
  • 30Гб места в Elastic Block Storage плюс 1Гб под бэкапы.
  • 15 Гб трафика в месяц.
  • Выделенный внешний IP адрес.

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

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

Красивый вывод изображений

Reading time3 min
Views46K
image
Всегда мне не нравилось, как выводятся изображения на моих сайтах. Хотелось какой-то упорядоченности, зависимости. Поэтому, я полез искать скрипты и решения в гугле. После безуспешных поисков, решено было делать что-то самому.
Но что? Я стал смотреть, как сделан вывод картинок у популярных сайтов. Всё мне не нравилось, пока я не додумался посмотреть вывод в google images и google+. Меня поразило то, что я никогда этого не замечал картинки выравниваются по ширине и высоте не обрезаясь. Такой принцип я и захотел реализовать. Получается мозаика. И всё будто на своём месте.
Не долго думая, я сел писать код, который сможет вывести картинки так же.
Читать дальше →

«Правильный» system() для PHP-CLI

Reading time2 min
Views13K
Внимание! Все рассуждения относятся к запуску PHP в режиме CLI, а не как модуль веб-сервера!

Если вы когда-либо использовали функцию system() в PHP, вы наверняка задавались вопросом: каким образом system() возвращает последнюю строку для команды, да ещё и выводит результаты исполнения команды на веб-страницу, а не себе куда-то в stdout веб-сервера? И почему system() работает не так, как system() в Си? Ответ, в общем-то, проще, чем может показаться.
Читать дальше →

База IP мобильных операторов

Reading time1 min
Views28K

Немного о том, кому и зачем?


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

В общем к сути.


Сайт проконтент собирает под своим крылом базу мобильных айпи и выкладывает вот здесь: www.procontent.ru/dev/gateway-ips.html
Но попробуйте кто то применить ее для дела и тут сразу же все неудобства всплывают. Нету четкого разбиения по странам, а страна и не для всех диапазонов указана, нету экспорта хоть в какой нибудь пригодный для нормальной обработки формат.
Так вот был написан парсер, который «причешет» этот неудобный набор и даст в правильном виде.
Брать можно тут:
wapobzor.ru/3dparty/procontent_ips.php — csv версия
wapobzor.ru/3dparty/procontent_ips.php?long — csv, но ip в числовом виде
wapobzor.ru/3dparty/procontent_ips.php?php_array — в виде массива, что бы скопировать в скрипт сразу.
wapobzor.ru/3dparty/procontent_ips.php?php_array&long — аналогично
www.logofon.ru/xml/ips.xml — еще один вариант предложенный Nc_Soft

Если кому то пригодится — буду рад.
Спасибо за внимание =)

UPD: перенес в тематический блог, спасибо за подкинутую карму :-)
UPD2: добавил еще два варианта вывода.
UPD3: еще вариант базы с другого источника.

MongoDB или как разлюбить SQL

Reading time6 min
Views67K
Введение

Коллеги, при разработке приложений, мы каждый день сталкиваемся с потребностью в гибком хранении информации (обновлении, поиске по ней, и т.д.). Класс продуктов, которые решают этот круг задач, как все мы знаем — Базы данных. Но что это такое в нашем понимании? У многих «база данных» твердо ассоциируется с MySQL, таблицами и SQL-запросами. И это устраивает до определенного момента. Действительно, реляционные базы данных дают массу преимуществ в работе: поскольку данные имеют сильную связанность, не нужно контролировать целостность базы данных. Используя простой под-запрос можно выбрать количество комментариев к каждому посту в блоге. Используя JOIN нетрудно делать сложные связанные выборки и получать данные сразу о нескольких сущностях.
Читать дальше →

Используем $_COOKIE как $_SESSION

Reading time2 min
Views12K
Тема пришла из далекого детства, когда я только начинал программировать, разбирал особенности PHP. На тот момент меня удивляла такая несправедливость: c сессией можно было работать как с обычным ассоциативным массивом($_SESSION), а для кукисов необходимо было использовать функцию setcookie(). Потом я уже поднабрался опыта и понял зачем это сделано именно так.
Время идет и PHP не стоит на месте, в нем появилась такая прекрасная вещь как SPL, одна из возможностей которой — обращение к объекту как к массиву, т.е. реализация ArrayAccess интерфейса.
И вот сейчас я вспомнил о своей детской идее, о массиве $_COOKIE, и реализовал ее:

<?php
/*
достаточно этой строчки чтобы создать куку как на стороне сервера так и клиента
*/
$_COOKIE['lang'] = 'ru'; 


Реализацию можно посмотреть под катом
Читать дальше →

Быстрый роутинг на PHP

Reading time3 min
Views45K
image
Уходя от использования роутинга в .htaccess файле, в первую очередь пришёл к стандартному направлению на index.php: разбирал там URL и вызывал соответствующие контроллеры — долгое время был доволен такой техникой. Однако совсем недавно осознал, что что-то делаю не так, что можно сделать эффективнее и лучше.
Далее я расскажу о своём роутинге, использующем XML для хранения правил и в последующем использующем его сериализованный вид.
Читать дальше →

Нужна ли авторизация после регистрации?

Reading time1 min
Views5K
Занимаясь проектированием одного сервиса, я задумался: имеет ли смысл авторизовать пользователя сразу после регистрации или лучше не делать этого? С одной стороны, опыт подавляющего большинства сайтов говорит нам о том, что посетители привыкли к тому, что после процедуры регистрации им больше ничто не мешает пользоваться услугами сайта. С другой, многие используют всевозможные приложения и менеджеры паролей (интегрированные в браузер или сторонние сервисы), а значит, при следующем входе им придется вспоминать свои логин-пароль вместо того, чтобы войти почти автоматически.

image


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

Если кто-то захочет попробовать, я сделал простой пример системы, который показывает общее развитие сценария.
Читать дальше →

VirusTotal для «своих»

Reading time3 min
Views14K
Сегодня мы выпускаем очередной пост для Хабрахабра. Наш старший вирусный аналитик Закоржевский Вячеслав расскажет про интересную сторону киберкриминала.

Всем понятно, что большинство малварщиков заинтересованы в том, чтобы их детища как можно дольше «жили» у пользователей. Чем больше времени малвара находится на компьютере, тем больше денег потенциально можно заработать. Основная угроза для них — антивирусы. В подавляющем большинстве случаев для защиты зловреда от сигнатурного/эвристического детекта антивирусом вирусописатели применяют крипторы. Рынок крипторов достаточно обширен, на нём много предложений, поскольку крипторы пользуются спросом.

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

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity