Pull to refresh
0
0

User

Send message

Электронное табло

Reading time1 min
Views3.8K
В одном из моих проектов, которому возможно никогда не суждено родиться (из-за отсутствия времени), понадобилось электронное табло.
Но прилагательное «электронное» носит исключительно образный характер. Нужна была реализация электронного табло в Веб, такого, чтобы никого не убило током и визуально было похоже на своих настоящих электрородителей.
Что же получилось?

jQuery.live в деталях

Reading time5 min
Views33K
Ввиду недавнего обсуждения скорости работы jQuery.live и благоразумности писать свое собственное делегирование обработчиков событий, решил по полочкам разобрать работу jQuery.live. Т.е. целью данного топика поставлена задача выявления всех особенностей при использовании live-биндера и анализ кода. Без сравнительных характеристик, без приведения оптимальных методов делегирования.

Принцип работы live основан на делегировании обработчиков событий.

Делегирование — паттерн, в основе которого лежат 2 принципа javascript: всплытие событий (event bubbling stage) и возможность определения элемента, отследившего событие.

Тот факт, что делегирование отслеживает исключительно стадию всплытия события, объясняет невозможность обвешивания live-биндеров на события blur, focus, mouseenter, mouseleave, change и submit: все эти события не имеют стадий захвата и всплытия.

Дальше много букв и кода

4 способа как создать блоки одинаковой высоты

Reading time5 min
Views232K
fourmethodsbanner
Раньше, когда все верстали с использованием таблиц, создать колонки одинаковой высоты было очень просто.  Достаточно создать таблицу, например, с 3мя колонками и все они автоматически будут иметь одинаковую высоту.  Но в блочной верстке не все так просто.
В этой статье я расскажу вам о некоторых способах создания колонок равной высоты и о совместимости этих методов с браузерами (включая IE6). Все эти способы описывают создание 3х колоночного макета.
Читать дальше →

Правила работы с e-mail в нашей компании

Reading time2 min
Views4.4K
За четыре года наш коллектив вырос с 3 до 70 человек, появилось три офиса плюс общение со штаб-квартирами. Поэтому по ходу пришлось менять и стиль, и правила работы в компании. В итоге в области коммуникаций это вылилось в следующий свод правил — часть уже можно встретить в литературе по тайм-менеджменту, часть придумали сами. Возможно, это будет полезно и вашей компании. Подходит для компаний, где у всех есть компьютер и e-mail.
Читать дальше →

IMemcacheClient: нереляционность как религия

Reading time2 min
Views963
Никакой проект не обходится без базы данных. Мы привыкли видеть в ней хранилище множества связанных объектов, с множеством условий. Это бесспорно очень удобно, но в силу разных обстоятельств, в нагруженной системе, чаще всего приходится прибегать к другим методам, т.к. кол-во выборок и транзакций ограничено современным железом, а запросто распределить на несколько серверов не получится. В ряде случаев можно использовать репликацию, но и это не паноцея на данный момент.
Читать дальше →

Портировали сайт Рисоваськи на Django

Reading time3 min
Views1.8K
I wish this site was powered by Django. Когда мы делали Рисоваську, то сайту отвели не очень много внимания. «Простой, быстрый, „продающий“ нашего скачиваемого клиента» — такие требования получил dmalinovsky. В итоге сайт был написан на PHP с использованием авторского мини-фреймворка. Когда же Денис переключился на другие задачи, то стало понятно, что сайт никто не хочет расширять — не прикольно. На Эрланге писать — прикольно, на C++ — тоже прикольно (но после Эрланга конечно же все ворчали), на PHP — «не-не-не, я лучше на Эрланге попишу».

Меня это всё не устраивало, поэтому как только у меня выдалось время, я начал портирование сайта на технологии, поработать с которыми захочет каждый из нашей команды. Кандидатами были — Ruby on Rails и Django. Оба фреймворка — прекрасны! И самое главное — подходят по уровню инноваций, фана, красивого кода. Django я выбрал из-за языка — Python мне как-то сразу запал в душу.
Читать дальше →

Как стать разносчиком спама ВКонтакте из-за любопытства

Reading time2 min
Views16K
Буквально несколько минут назад я умудрился разослать 200+ сообщений своим друзьям ВКонтакте.
Естественно это было спам сообщение следующего содержания:
привет я удаляюсь из контакта, оч много спама приходит((сейчас удалю свою страничку, если что-то будет нужно, то звони мне на моб.телефон или ищи меня здесь vkontakte.ru/away.php?to=… у меня там есть своя страничка под мои именем.это не спам, рассылаю всем своим друзьям...).

Собственно удивление было связано с тем, что:
1. Я использую Linux и только Linux везде где только можно.
2. ВКонтакт используется только из дома опять же сугубо из-под Linux
3. На ВКонтакт и на почту, привязанную к нему стоят достаточно криптостойкие пароли из 10+ символов латинского алфавита и цифр Да, я параноик

Так что же случилось?

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

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

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

Декодирование/нарезка/кодирование аудиофайлов

Reading time3 min
Views6.3K
публикуется по просьбе замечательного юзернэйма catdog

Предыстория:

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

И все бы хорошо, но когда у тебя средняя длинна трэка 6 минут, то волей неволей задумываешься как бы сделать нарезку, сократив тем самым размер превьюшек на жестком диске и облегчив задачу в прослушивании материала пользователю. Когда-то давно для этого я использовал набор утилиток POC, они работали только с mp3 и умели быстро считать длинну, резать/склеивать по времени. Тогда я быстренько написал враппер вокруг этого безобразия и на какое-то время забыл об этом.

Однако пришли новые времена и народ начала закачивать музыку во flac-е, monkey audio и других lossless форматах. Да и сам mp3 со временем видоизменился и в него частенько начали добавлять альбомные картинки, что стало большой проблемой и причиной частых сегфолтов POC.

Именно тогда я решил написать приложение которое бы вбирало в себя весь комплект утилиток POC по нарезке склейки и плюс к этому имело бы encoder для mp3.

А теперь о том что получилось:

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

Рисоваська, часть 3: Амазоновские веб-сервисы в действии

Reading time10 min
Views36K
В данной статье я расскажу, что же такое 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. Не правда ли, здорово! С момента запуска оплата за инстанс идет по часам. В любой момент вы можете остановить инстанс и деньги за его использование перестанут сниматься. Помимо времени работы инстанса, так же отдельно оплачивается входящий и исходящий трафик.
Читать дальше →

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

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

Умные сессии

Reading time2 min
Views3.8K
Решаем проблемы производительности.

Исходные данные.
Транслируем футбольные матчи через интернет. Посетителей: в обычные дни 5 000 — 10 000, в дни матчей 100 000 — 150 000.

В дата-центре
  • 5 веб-серверов с апачем и ПХП, наружу вывешены через аппаратный балансировщик загрузки
  • 2 пула мемкеша: для сессий и данных из веб-сервисов

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

Стэнфордский видео-курс по языкам программирования

Reading time1 min
Views6.3K
Стэнфордский курс по основам языков программирования выложен на YouTube.



27 лекций минут по 20 каждая ведут стэнфордский преподаватель Джерри Кейн (экс-Стэнфорд, нынче Facebook), последняя лекция по Haskell преподается Сашей Рашем (Facebook). Рассматриваются концепции и основы C (куда ж без него), ассемблера, C++, Scheme, Python и Haskell.

Расширенный сборник CSS-хаков

Reading time4 min
Views37K
Статья является расширенным сборником CSS-хаков в сравнении с аналогичной статьей.
Под хаком подразумевается метод, позволяющий воспринимать CSS только определенному браузеру.
Хаки могут использоваться не только для исправления багов в верстке, но и в случае использования определенных особенностей браузера для ускорения рендеринга web-страницы в нём (к примеру CSS3-свойства)

Подробности под катом

Учебник по языку программирования Python (хабраиндекс)

Reading time1 min
Views314K

Серия статей «Основы Python»


I, Начало
II, Строки
III, Списки, кортежи, файлы
IV, Генераторы списков
V, Определение функций, основы
VI, Расширенное определение функций

Об основах языка Python в сжатой форме

Продвинутый уровень


Сила и красота декораторов Короткий экскурс в метапрограммирование.
Итерируем все и вся Специфика циклов в Питоне.
Как я учился работать с XML
Консервация объектов в Python Использование модуля Pickle.
Memoization в Python Оптимизация работы программ.
Простейшее рисование с помощью PIL
Regexp и Python: извлечение токенов из текста
Как писать маленькие приложения на python с графическим интерфейсом (библиотека Qt).

http://netsago.org/ru/docs/1/12/
Одеваем скрипты Python с помощью EasyGui (добавляем простой диалоговый интерфейс)

http://djbook.ru/
Учебник по Django (Python-фреймворк для веб-приложений)

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

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

Reading time5 min
Views23K
Хочу поделиться простым эмпирическим методом, который я использую для определения того, в каком порядке должны идти столбцы в составном индексе. Этот способ подходит не только для 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;
Читать дальше →

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

Reading time1 min
Views30K
Наверное не ошибусь если скажу, что очень большая часть мегахакерских_взломов основаны на закачке 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 — напишите. :)

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

Reading time3 min
Views27K
Свершилось, ура! Теперь я имею почетный статус ZCE :)

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

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

Information

Rating
Does not participate
Location
Киевская обл., Украина
Date of birth
Registered
Activity