Обновить
89
0
Антон Терехов@Terehoff

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

Отправить сообщение

Тестирование приложений методом Fuzzing

Время на прочтение4 мин
Охват и читатели14K
Все, кто разрабатывает на php, да и вообще на любом другом языке программирования с нечеткой типизацией, сталкивались с подобной проблемой:
PHP Notice:  Undefined index: test in /var/www/Testing.php on line 171
PHP Notice:  Undefined index: test2 in /var/www/Testing.php on line 171

Или даже такой:
PHP Fatal error:  Cannot use object of type stdClass as array in /var/www/Testing.php on line 171

А как бы проверить метод на всевозможные входные параметры?

Пишем «рисовалку» для iPhone на HTML5 Canvas

Время на прочтение7 мин
Охват и читатели10K
Здравствуйте, Хабражители!

В этом топике я покажу как создать простой графический редактор для iPhone. Статья написана максимально понятно, поэтому даже новичку не будет сложности разобраться. Более того, я расскажу:

  • об особенностях событий touch-устройств;
  • об особенностях верстки для мобильных девайсов;
  • почему для создания нормальной «рисовалки» нужно использовать несколько холстов;
  • что такое clickjacking и зачем я использовал этот хак в своей рисовалке;
  • о всех трудностях и некоторых мелочах, с которыми я столкнулся в процессе разработки;


Больше — под катом

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

Как разместить картинку внутри QR-кода

Время на прочтение2 мин
Охват и читатели143K
Автор блога Hack A Day Брайан Бенчофф (Brian Benchoff) разобрался в алгоритме генерации QR-кодов (стандарт ISO 18004) и составил инструкцию, как можно внедрить в QR-код произвольное изображение. Например, логотип фирмы.

Для работы использовались генератор QR-кодов и Microsoft Paint для попиксельного редактирования.

Шестая версия QR-кодов представляет собой квадрат со стороной 41 пиксел.



На картинке показан шаблон QR. На нём чёрные пикселы всегда обязаны быть чёрными, а белые обязаны быть белыми. Серая зона свободна для творчества.
Читать дальше →

Геометрические фигуры на CSS

Время на прочтение4 мин
Охват и читатели994K
Отличная подборка, как нарисовать различные геометрические фигуры одним элементом HTML.

Квадрат



#square {
	width: 100px;
	height: 100px;
	background: red;
}

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

Как мы показываем дизайн сайта клиенту

Время на прочтение2 мин
Охват и читатели19K
Среди веб-студий очень часто можно встретить мнение, что дизайн сайта следует показывать заказчику только лично, с презентацией и объяснением. Это действительно справедливо для некоторых проектов, и в первую очередь для тех, в которых заложен бюджет на личные встречи. Второй часто используемый вариант — отправка картинок письмом с комментариями. Этот вариант гораздо дешевле, но обладает рядом недостатков. В моей компании мы используем третий вариант, который недорог и позволяет снять ряд недостатков при отправке дизайна в виде картинки к письму.
Читать дальше →

Паять просто (комикс)

Время на прочтение1 мин
Охват и читатели66K
Буквально неделю назад ребята из MightyOhm выпустили 8ми страничный комикс об азах пайки. Он понравился мне тем, что не смотря на свой формат и объём, в мелких деталях объясняет основные принципы этого процесса, которые совсем не очевидны для людей ни разу не державших в руках паяльник (как показывает практика, для многих державших тоже).

В общем, потратив сутки я всё там перевёл, постаравшись сохранить оригинальную верстку и стиль.

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

Веб-разработка на iPad

Время на прочтение2 мин
Охват и читатели30K
В этом посте мне хотелось бы пообщаться с вами на тему «пригоден ли айпад для создания контента». А поскольку сочинять музыку и рисовать картины я совсем не умею, мы сейчас попробуем создать веб-страничку на айпаде и выложить ее в интернет.



Инвентарь


Нам понадобится текстовый редактор (я выбрал Gusto, хотя можно было использовать, например, Textastic), графический редактор (установил на всякий случай сразу два: Adobe Photoshop Express и PhotoPad, оба бесплатные), приложение Яндекс.Фотки для загрузки картинок в интернет, и CSS3Machine — про нее расскажу прямо сейчас.

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

Атака на отказ в обслуживании методом slow HTTP POST

Время на прочтение5 мин
Охват и читатели43K
Доброго времени суток, уважаемые хабровчане!
Я хочу рассказать вам об относительно новом и интересном, на мой взгляд, механизме атаки на отказ в обслуживании — Slow HTTP POST.
Поиск показал отсутствие на хабре информации по теме, что несколько удивило меня, и я решил восполнить это досадное упущение. Тема не нова, но, как показали мои небольшие исследования, более чем актуальна. Забегая вперед, скажу, что полученные мной результаты позволяют говорить о существовании широко доступной технологии, позволяющей с одного компьютера с небольшим каналом «укладывать» небольшие и средние сайты, а при использовании нескольких машин с повсеместно распространенным сейчас скоростным доступом в Интернет причинить немало проблем и более серьезным проектам. Всех заинтересовавшихся покорнейше прошу пожаловать под хабракат.
Читать дальше →

Примеры xpath-запросов к html

Время на прочтение4 мин
Охват и читатели536K
Xpath — это язык запросов к элементам xml или xhtml документа. Также как SQL, xpath является декларативным языком запросов. Чтобы получить интересующие данные, необходимо всего лишь создать запрос, описывающий эти данные. Всю «черную» работу за вас выполнит интерпретатор языка xpath.
Очень удобно, не правда ли? Давайте посмотри какие возможности предлагает xpath для доступа к узлам веб-страниц.
Читать дальше →

Субдоменная мульти-установка mediawiki с единой БД юзеров и общим кодом

Время на прочтение4 мин
Охват и читатели3K
Что же я хотел сказать таким страшным заголовком?

На самом деле — все просто.

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

В этой статье я расскажу о том, как реализовать это на примере движка mediawiki.
Читать дальше →

Заметки об архитектуре или Интерпретатор Forth на PHP 5.3

Время на прочтение7 мин
Охват и читатели4.2K

О чем пойдет речь?


Мне очень часто приходится проводить собеседования, нанимая на работу PHP-программистов. 2-3 человека в день — это вполне нормально, хотя и на грани выносливости.

Все кандидаты разные, кто-то просто великолепен, кто-то похуже. Но у тех, кто похуже, всегда одни и те же ошибки.

Во-первых они совершенно не интересуются развитием языка, на котором пишут, и вопрос «А что нового в PHP 5.3» ставит их в тупик, а уж предложение порассуждать на тему «Чтобы Вы добавили в будущие версии языка» — просто пугает.

Во-вторых они категорически не представляют, что PHP может быть хоть чем-то кроме «скриптов для сайтов». Особенно печально это в свете того, что на работе им придется заниматься далеко не сайтами и даже скорее всего не сайтами.

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

Таким кандидатам и посвящается этот топик. С уважением к их нелегкой доле (а быть программистом на самом деле непросто) и с надеждой, что он подтолкнет их вперед по пути самосовершенствования.

Что мы будем делать?

Давайте попробуем сделать интерпретатор Форта на PHP!

Форт меня всегда манил, как далекая галактика из антиматерии. Стек, слова в словаре, обратная польская нотация… Это только кажется сложным, но на самом деле очень просто, зато здорово «просветляет» и расширяет кругозор.

Давайте сделаем наше приложение консольным, никаких браузеров и серверов. Давайте писать его на PHP 5.3, стараясь использовать язык на 100%. И, конечно же, попробуем изначально сделать так, чтобы пришедшие после нас не повесились от нашего кода в первый же день.
Читать дальше →

Кроссдоменный AJAX

Время на прочтение1 мин
Охват и читатели112K
На вопрос, как сделать AJAX запрос к другому домену, я всегда отвечал, что никак, и предлагал в качестве альтернативы jsonp, прокси, флеш, фреймы. Но, оказывается, большинство современных браузеров (IE8+, FF3.5+, Chrome 6+ и Safari 4+) вполне поддерживает кроссдоменный XMLHTTPRequest.

Работает это на удивление просто

Сборник советов и фактов по оптимизации PHP-скриптов

Время на прочтение9 мин
Охват и читатели46K
image Эту статью давно стоило переписать (слишком много «экономии на спичках»), но руки не доходят. Пускай весит и напоминает о том, как мы глупы в молодости.
Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
Читать дальше →

TOP'ай сюда

Время на прочтение5 мин
Охват и читатели190K
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

top

Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

atop


Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
Читать дальше →

Поможем Сбербанку

Время на прочтение5 мин
Охват и читатели14K
Краткое содержание предыдущей серии: Сбербанк приходит на Хабр, декларирует намерение радикально измениться, собирает море гневных комментов, благодарит всех за полезные отзывы.

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

Но все мы немножко верим в чудо :) Почему бы не попробовать помочь Сбербанку, раз уж они так настойчиво просят?

Дорогая служба качества, я (а со мной, думаю, и большинство присутствующих) очень хотели бы донести до вас одну простую мысль: вам нужно оптимизировать ровно ОДИН параметр — ВРЕМЯ. ВРЕМЯ КЛИЕНТОВ. Всё остальное — маркетинговые рюшечки, которые никому никуда не впились, кроме маркетологов. Если Вы сможете сделать так, чтобы ваши клиенты перестали чувствовать, что только что потратили зря два часа жизни — вам всё простят.

Под катом — небольшое руководство к действию, каким вижу его я.

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

Fullmetal NAS

Время на прочтение5 мин
Охват и читатели12K


Предыстория

Каких только корпусов не было на хабре и в этих ваших интернетах. Железо переставляли во все начиная от фабричных корпусов и кончая тостерами. Все сводились примерно к следующему —давайте сделаем это на мамке с atom – процом, максимально уменьшим шум, запихнем в маленький корпус и поставим на стол где он будет шуршать жестаком, или наоборот заморочаемся со старым железом – предварительно перебрав его, спрячем сей девайс куда-нибудь в туалет/ кладовку/шкаф.

Ну на atom’e я ничего не собирался собирать, так как у меня его банально нет. Я предпочёл второй вариант, он подходил мне больше, но у меня нет такого туалета, куда бы все это поместить и был придуман вариант немного другой.

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

Автоматизированная проверка PHP кода при комитах

Время на прочтение6 мин
Охват и читатели35K
В свое время работая в узком кругу программистов, отдельными задачами и даже проектам, мы не задумывались о проблемах связанными с текучкой кадров. Точнее думать — думали, но ни каких мер не применяли, да и в целом коллектив был сплоченный никто не уходил и никого «не уходили». С ростом внутренних проектов и корпоративных клиентов, штат начал разрастаться и казалось, что все отлично — нас больше, значит будем больше успевать и делать, но не тут то было. Мы начали тратить кучу времени на “бесполезные” обсуждения, проверки, излишние проектирование и т.д, больше всего раздражает — это проверка кода. И тут я начал думать, что “мудрые и древние” наверняка решали эти проблемы с сотнями, тысячами программистов, неужели мы не справимся? Я решил провести эксперимент, под названием “автоматизированная проверка стиля кода при комитах”. Для большинства из Вас это не новость и наверняка вы этим пользуетесь, но поделиться опытом внедрения думаю, не будет лишним.
Читать дальше →

HTML в PDF

Время на прочтение2 мин
Охват и читатели121K
html to pdf

В далеком 2008 году уже была написана подобная статья и я попытался применить знания, но, к сожалению, не справился с русским языком (на denwer-е работал, на хостинге нет). Возможно сказалось отсутствие опыта. А недавно нашел хорошую библиотеку и решил поделиться. Топик, скорее всего, адресован начинающим программистом и ни на, что не претендует.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Рязань, Рязанская обл., Россия
Дата рождения
Зарегистрирован
Активность