Как стать автором
Обновить
59
0
Танасийчук Степан @stfalcon

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

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

Контроль версий структуры базы данных

Время на прочтение6 мин
Количество просмотров15K
imageЭта статья — How To, которое поможет вам легко обеспечить миграцию между версиями БД ваших PHP приложений с помощью Phing и dbdeploy.
Читать дальше →
Всего голосов 54: ↑48 и ↓6+42
Комментарии36

Бэкапим без расходов

Время на прочтение9 мин
Количество просмотров4.5K
image
Бэкапы — это вечная проблема: то объемы данных сумасшедшие, то вообще забываешь про них. В своем предыдущем проекте dvice.ru (он пока закрыт, так что без ссылки) я допустил досадную ошибку в самом начале его запуска. Я написал небольшой крон, который в 12 часов ночи удалял всех неактивированных пользователей, зарегистрировавшихся больше 24 часов назад. Но я ошибся в запросе и потерял данные пользователей, которые зарегистрировались до первого запуска этого запроса. Слава Богу, у меня были все данные в сессиях, поэтому я восстановил всех тех, кто логинился и ставил галку на чекбоксе — запомнить меня. Обидно и глупо, но на ошибках учатся. Поэтому перед запуском своего крайнего проекта — inwhite.ru, я сделал систему бэкапов.

Бэкапы делались и копились, старые удалялись, и все было отлично. Пока внезапно я не понял, что страдаю полной фигней. Бэкапы-то я делаю, а вот забирать — не забираю. Объемы данных, лежащих на моем VPS, не такие большие, но по почте тоже особо не наотправляешься. Покупать еще один VPS и складывать туда все по FTP/SVN/CVS/SSH не особо хочется, хотя тоже вариант интересный.

До вчерашнего дня я был озадачен мыслью: а как все же забирать эти данные? И вот вечером меня осенило.
Читать дальше →
Всего голосов 101: ↑88 и ↓13+75
Комментарии41

Угон JSON

Время на прочтение1 мин
Количество просмотров5.5K
imageВ статье рассматривается метод перехвата данных отдаваемых через JSON с использованием метода "__defineSetter__", Этой уязвимости подвержены сайты JSON с которых: содержит конфиденциальные данные (иначе не спортивно), является валидным JS объектом, отдается по GET запросу. Требования к жертве: браузер поддерживает JavaScript, он включен, поддерживается метод __defineSetter__.
Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии45

МегафонМодем+ в Mandriva Linux

Время на прочтение2 мин
Количество просмотров2K
E160GНеоднократно видел и читал как народ настраивает модемы, которые видны как флешка+модем в Linux, видел страшные скрипты, куча пакетов, кто-то даже ядро пересобирал. Но вот я стал счастливымвынужденным обладателем EDGE модема Huawei e160g, который входит комплект Мегафон Модем Плюс.

Настраивалось на Mandriva Linux 2009.0, в других дистрибутивах будет иначе, так как не везде есть drakconnect.
Читать дальше →
Всего голосов 42: ↑32 и ↓10+22
Комментарии24

prettyPrint

Время на прочтение1 мин
Количество просмотров8.8K
imageТе из вас кто следит за автором на Github могли заметить, что недавно он добавил новый проект под названием «prettyPrint».
«prettyPrint» — браузерный дампер переменных для JavaScript аналогичный cfdump для ColdFusion. Он позволяет выводить на экран объекты любого типа в виде таблиц для просмотра во время отладки.
Посмотреть пример.
Читать дальше →
Всего голосов 44: ↑38 и ↓6+32
Комментарии16

Делаем скриншоты сайтов

Время на прочтение3 мин
Количество просмотров17K
Бродя по просторам PHP документации случайно наткнулся на две функции: imagegrabwindow и imagegrabscreen. Они умеют делать скриншоты в Microsoft Windows.
Заинтересовало. Кончилось дело тем, что был написан скриптик генерирующий полный скриншот любого сайта.
Итак нам необходимы:

Читать дальше →
Всего голосов 82: ↑64 и ↓18+46
Комментарии63

Lotus Symphony 1.3 как альтернатива Microsoft Office 2007

Время на прочтение2 мин
Количество просмотров10K
image
Корпорация IBM выпустила новую версию пакета Lotus Symphony. Она позволяет открывать документы Microsoft Office 2007. Предприятия со всего мира смогут сэкономить миллионы долларов, если откажутся от использования Office 2007 и перейдут на Lotus Symphony, который является абсолютно бесплатным. Подробнее о продукте и возможности тестирования…
Читать дальше →
Всего голосов 91: ↑68 и ↓23+45
Комментарии182

Google App Engine и High load

Время на прочтение3 мин
Количество просмотров2.8K
Гаджет «Евровидение 2009», который мы, Sterno.ru, сделали для компании Google, оказался отличным опытом в тестировании App Engine и проверки того, на что способна эта технология. Теперь мы гораздо лучше понимаем, как работает «Движок приложений» при высоких нагрузках. Эта статья описывает сильные и слабые стороны Google App Engine, а также подводные камни, с которыми разработчики могут столкнуться в ходе ее использования.
Читать дальше →
Всего голосов 77: ↑67 и ↓10+57
Комментарии22

Установка Web Optimizer версии 0.5

Время на прочтение4 мин
Количество просмотров705
Не так давно вышла версия 0.5 (RC3) приложения для автоматического ускорения сайтов — Web Optimizer. Поскольку с момента написания предыдущего руководства по установке прошло уже три месяца, интерфейс и логика работы приложения существенно изменились (стали проще и нагляднее), то стоит осветить процесс установки еще раз, в новом виде и с новыми подробностями.

Шаг 1: загрузка архива


Web Optimizer поставляется в двух вариантах: ZIP-архив и мини-установщик. Для загрузки первого варианта идем по адресу code.google.com/p/web-optimizator/downloads/list и выбираем Featured версию 0.5 или выше.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии14

Фильтрация изображений методом свертки

Время на прочтение6 мин
Количество просмотров85K
Автором данного топика является хабраюзер Popik, который сам не может запостить этот топик в силу астральных причин.

Введение.


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

Что же там дальше?
Всего голосов 93: ↑89 и ↓4+85
Комментарии63

Хостинг на AWS (EC2, EBS, S3) для чайников

Время на прочтение4 мин
Количество просмотров138K
На хабре уже проскакивали периодически заметки посвященные AWS (Amazon Web-Services) — так что тема не новая. Однако, если для меня лично (да и для многих моих знакомых как выяснилось) — этот термин был знаком — однако каких-либо деталей я не знал. Попробую на основании только-что полученного опыта рассказать немного подробней, а так же изложить основные шаги по организации хостинга сервера на AWS и его преимущества. Как и несколько ссылок, которые могут оказаться полезными.
image
Читать дальше →
Всего голосов 101: ↑98 и ↓3+95
Комментарии62

В Linux встроена поддержка мультитач

Время на прочтение1 мин
Количество просмотров1.8K


Подробности на английском языке(детали, установка): Linux native multitouch support

Поддерживаются стандартные жесты: свайп, флип, поворот и щипки.
На основе ядра 2.6.30 французские разработчики реализовали поддержку технологии мультитач.
Всего голосов 91: ↑78 и ↓13+65
Комментарии91

этот удивительный tabindex

Время на прочтение1 мин
Количество просмотров18K
Многие веб-разработчики часто забывают или совсем не используют параметр tabindex, который определяет последовательность перехода между полями при нажатии на клавишу «Tab». Таким образом, при переходе из одного поля в другое прощелкиваются еще несколько элементов, что рано или поздно начинает уничтожать нервные клетки пользователей.

image

Читать дальше →
Всего голосов 156: ↑111 и ↓45+66
Комментарии88

Определяем порядок столбцов в составном индексе

Время на прочтение5 мин
Количество просмотров22K
Хочу поделиться простым эмпирическим методом, который я использую для определения того, в каком порядке должны идти столбцы в составном индексе. Этот способ подходит не только для MySQL, он также применим к любым СУБД, в которых используются b-tree индексы.

Давайте начнем с запроса, который возвращает пустой результат, но при этом делает полный скан таблицы. EXPLAIN покажет на нем, что нет доступных индексов (т.е. possible_keys = NULL)

SELECT * FROM tbl
WHERE
  status='waiting' AND
  source='twitter' AND
  no_send_before <= '2009-05-28 03:17:50' AND
  tries <= 20
ORDER BY date ASC LIMIT 1;
Читать дальше →
Всего голосов 52: ↑47 и ↓5+42
Комментарии17

Превентивная защита ваших и не ваших скриптов

Время на прочтение1 мин
Количество просмотров30K
Наверное не ошибусь если скажу, что очень большая часть мегахакерских_взломов основаны на закачке PHP-скрипта в каталог, доступный для записи в него файлов скриптами (0777, например). Это каталоги для заливки фотографий товаров, аватарок и т.п.

Я еще несколько лет назад «допер» до способа предотвратить на корню подобные вещи. Закачать — может и закачают, а воспользоваться не смогут. Это казалось очевидным все это время, но мало кто это реализовывает. К примеру, только в последнем патче популярного форума SMF была добавлена подобная штука.
Поэтому, для тех, кто не задумывался…

Всё просто. Во все каталоги, доступные для записи, закачиваем (или добавляем строчки к существующему) .htaccess с содержимым:

php_flag engine 0
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp

Этим самым мы отключаем PHP в данном каталоге и заставляем все скрипты отображаться как HTML.
Это можно сделать просто на всякий случай. Лишним уж точно не будет.
Разумеется, только для Apache. Если кто-то знает как подобное реализовать в IIS — напишите. :)
Всего голосов 132: ↑100 и ↓32+68
Комментарии90

jQuery Ui.datetimepicker

Время на прочтение1 мин
Количество просмотров32K
Привет! Сегодня решил сойти с ума! Конечно родной datepicker в ui это хорошо, но когда нужно и параметр «время» – данного виджета не хватает.
Внимание! Писал все быстро, инструкцию не пишу т.к. хватает этой.
Думаю разберетесь.
Демо тут.

Всего голосов 78: ↑59 и ↓19+40
Комментарии24

Локализация с помощью сущностей

Время на прочтение3 мин
Количество просмотров2.6K
Существует довольно много способов локализации XSLT-шаблонов, некоторые способы описаны студией Лебедева, но сегодня я расскажу о локализации с помощью сущностей.

ENTITY


C начала о том, что же такое «сущности», не углубляясь в DTD. Сущности — это своеобразные константы в XML-документе, описываемые с помощью DTD, и используемые в качестве сокращений. Примером такой замены могут служить буквенные обозначения символов, не присутствующих на стандартной раскладке клавиатуры (©, ®, ₤ и т.д.). Сущности описываются следующим образом:
Читать дальше →
Всего голосов 48: ↑42 и ↓6+36
Комментарии29

ExtJS 3.0 RC2 — а мы идем в сторону RESTful

Время на прочтение3 мин
Количество просмотров1.2K
30bubbleЧто-то давненько мы не обсуждали наш любимый фреймворк ExtJS, и зря, так как за это время появилось несколько интереснейших новостей из мира этого инструмента. И о последней, видимо, самой интересной, мы сегодня и поговорим.

Итак, сегодня вышел следующий кандидат-релиз 3-й версии ExtJS, а также вторая бета-версия Ext Core, они обновляются синхронно, так как сам ExtJS теперь базируется на открытом ядре. Рассмотрим основные изменения, кроме заявленных улучшений в производительности и стабильности.
Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Комментарии26

Как стать Zend PHP 5 Certified Engineer

Время на прочтение3 мин
Количество просмотров27K
Свершилось, ура! Теперь я имею почетный статус ZCE :)

Поэтому хотел бы поделиться своим опытом подготовки к сертификации, ну и заодно провести небольшой ликбез на тему сертификации по PHP.

Читать дальше →
Всего голосов 117: ↑104 и ↓13+91
Комментарии93

Информация

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