Pull to refresh
45
@Mirowindread⁠-⁠only

User

Send message

Tornado Web Server

Reading time1 min
Views16K


Команда friendfeed.com, недавно присоединившаяся к Facebook, выложила в открытый доступ собственный неблокирующий веб-сервер на Python. Из-за своей неблокирующей природы (используется epoll) сервер легко выдерживает тысячи одновременных подключений. У Tornado есть все шансы стать лучшим выбором для реализации технологии Comet средствами языка Python.

Производительность впечатляет:


Документация (на англ.) — www.tornadoweb.org/documentation

Karma checker в виде расширения для Google Chrome

Reading time4 min
Views1.4K
Так как dev версии Google Chrome поддерживают расширения и я об этом узнал совсем недавно, я решил написать это самое расширение.
Быстро решив, что аддон будет для хабра я начал писать код...

Процесс этот оказался довольно долгим в виду того, что я не сразу познал все тонкости API.
Так что если вам интересно, ткните сюда

Почему программистов не учат?

Reading time2 min
Views24K
Еще будучи студентом, особенно на последних курсах, я часто ловил себя на мысли, что тот или иной предмет мне совершенно не интересен и никак не помогает мне стать хорошим программистом. Это усугубилось тогда, когда на 4м курсе пошел работать программистом и где-то почти год я только и делал, что учился работать программистом. Не могу себя назвать отличником, скорее наоборот, но так или иначе институт (ИТМО в Питере, кафедру Парфенова) я закончил, получив магистра математики.

Большинство из моих коллег-студентов также как и я к шестому курсу уже работали программистами в разных IT-компаниях. Дипломы у нас почти все были про всевозможные информационные системы, порталы, базы и так далее. Однако дипломная комиссия каждого, кто защищал подобный диплом, спрашивала: «Где здесь математика? Вы же готовитесь стать магистром математики!». Думаю, вам не нужно объяснять, что в большинстве случаев ответить на этот вопрос было очень сложно. Некоторые, как например я, нарочито придумывали, прикручивали, допиливали, чтобы хоть какие-то формулы в презентации фигурировали, но возникает вопрос, почему?
Читать дальше →

Ubuntu on Rails

Reading time1 min
Views1.9K
Недавно на просторах Launchpad.net был создан тим Ubuntu on Rails.

Миссия тима заключается в поддержании пакетов для инструментария, необходимого в Ruby/Rails разработке. В первую очередь это актуальные версии rubygems (вы все еще инсталите их из исходников?) и passenger.

В тиме участвуют ребята из Brightbox, которые до сих пор поддерживали пакеты passenger, nginx-passenger, ruby-ee для Ubuntu и Debian.

В своем блоге я опубликовал небольшой howto для тех кто хочет помочь.

Под катом инструкции по удалению rubygems установленных из исходников и установке правильных :)

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

Обзор ASUS EeePC 1000HE

Reading time9 min
Views54K
Когда я был маленьким, мне приходилось ходить за интернетом по 7 километров в соседнюю деревню. Хорошо, если встречалась попутная телега. Тогда какой-нибудь старый колхозник говорил «залезай, малец», и можно было подремать в соломе, пока телега неспешно едет по ухабам. И вот, не проходит и часа, как я оказываюсь в холодном зале с мерцающей тусклой лампочкой. Интернет был почти чудом. Старухи крестились, проходя за окнами интернет-клуба.

image

Подробный обзор, трафик.
Читать дальше →

Про Git на пальцах (для переходящих с SVN)

Reading time8 min
Views280K
Год назад мы с командой решили перейти с SVN на Git. Зачем это было надо — писать не буду, т.к. на эту тему уже и так много написано. А хочу я описать типичные алгоритмы работы, понятные человеку, который долгое время пользовался SVN. Ниже — памятка, написанная для команды год назад, чтобы легче было мигрировать. Надеюсь, кому-нибудь пригодится.
Читать...

Защищаемся от HTTP DDoS и прочих Хабраэффектов

Reading time5 min
Views11K
Простой способ защиты от HTTP DDoS — включить syn-cookies и заблокировать подонков. Но что делать если атакует 5к-10к хостов да еще и с динамическими IP? Тут нам на помощь придет frontend-backend архитектура c промежуточным кэшированием! Почему с промежуточным кэшированием? А потому что в моем случае от шквала запросов от frontend'а backend умирал унося за собой систему.
Читать дальше →

Первый пак футболок для хабранарода

Reading time1 min
Views716
На днях от скуки начал перелистывать страницы хабра. наткнулся на очень интересные концепты для футболок. и решил внести свою лепту. если хорошо воспримется то будет продолжения.
вот собственно смотрим.



Смотреть дале

Синтез русской речи в Linux

Reading time3 min
Views56K
Прочитал статью про SAPI и Powershell (Учим PowerShell разговаривать), и мне стало интересно как же с синтезом русскоязычной речи в родной для меня операционке, Linux'e. Как выяснилось все далеко не так радужно, да и качество синтеза далеко до голоса Алены, но все же.
Узнать что было дальше

Недорогой способ защиты от HTTP-флуда

Reading time3 min
Views16K
Случилась на днях, как всегда, не в самый подходящий момент, DDoS-атака на один из сайтов, размещенных на моем сервере. DDoS-атаки бывают разные, в этот раз злоумышленники запустили HTTP флуд.

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

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

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

И без Javascript всё спокойно

Reading time3 min
Views7K

Задача


Совместить lite-версию сайта (работающую без JavaScript'а) с обычной. Иными словами, сделать graceful degradation для JavaScript-решений. Далее в посте небольшое руководство для тех, кому актуальна данная проблема.
Читать дальше →

Установка Ubuntu Linux с винчестера. Скрипт

Reading time5 min
Views24K
image
Никогда не любил устанавливать Ubuntu с Live-CD/DVD. Иногда может быть диск поцарапан и установка прерывается на самом интересном месте, музыку не послушаешь, фильмы не посмотришь. Я устанавливаю Ubuntu из iso-образа со своего жесткого диска на другой винчестер или раздел. Читая раньше в инете статьи, как ставить с жесткого диска, я просто слепо следовал инструкциям, копируя и выполняя команды. Бывали проблемы с загрузчиком grub, приходилось дополнительно искать в интернете решения, как исправить эти ошибки. Затем, чтобы не мучаться, я сделал свой скрипт установки.

Задача: Нужно, используя уже установленную Ubuntu, установить систему на другой винчестер.
Читать дальше →

Установка nginx + php-fpm + memcache + eaccelerator на FreeBSD

Reading time3 min
Views49K
Зачем всё это? — спросите вы. Да просто захотелось поделиться с общественностью некоторым опытом, полученным в процессе оптимизации vds под нужды одного общеизвестного блого-социального движка, который на обычном хостинге чувствует себя, мягко скажем, некомфортно.

Началось всё с того, что я ушёл от firstvds, где уже ничто не спасёт от тормозов. Ушел на ганди.нет, взял одну шару (1 share), которую дали на месяц бесплатно. Кстати, акция эта (This summer, your server is free!) вроде еще не закончилась. ;) И начал на этой шаре проводить зверские эксперименты с установкой разного ПО. Тестировал результаты с помощью siege.

В итоге конфигурация из сабжа оказалась самая быстрая. Опытом её установки и настройки я и хотел бы с вами поделиться.

Поехали!

8 полезных регэкспов с наглядным разбором

Reading time2 min
Views274K
О мощи и гибкости регулярных выражений написано много, и их использование давно уже является стандартом для различного рода операций над текстом. Пожалуй, чаще всего регэкспы работают при валидации вводимых данных — здесь им практически нет альтернативы, если не считать громоздкий циклический разбор с кучей неочевидных проверок. Начнём с самого простого:

1. Часть ЧПУ (человекопонятный URL)


По сути, слово с дефисами.

Паттерн: /^[a-z0-9-]+$/
short_url

Примеры посерьёзнее

CSS Sticky Footer / Прилипающий футер

Reading time4 min
Views78K

Как использовать прилипающий футер


Введение


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

Решения Райана Фэйта хорошо известно и работает, но требует лишний пустой <div>. Приверженцы чистого HTML-кода могут найти это богохульство несемантичным. В нашем решении лишнего <div> нет.
далее

Разворачивание коротких ссылок в Firefox

Reading time4 min
Views6.1K
В какой-то момент мне надоело, что сервисы сокращения ссылок посылают меня неизвестно куда. Не так давно я писал о pdf эксплойте, и риск наткнуться на такое чудо, кликая по короткой ссылке в чьём-нибудь твиттере меня совершенно не радовала.

Способов бороться с этим я нашёл два: разворачивание ссылок и контроль переходов (коды HTTP 3xx).
Читать дальше →

Nemerle и спутник, или ФП для самых маленьких

Reading time7 min
Views1.5K

В последнее время на Хабре зачастило упоминание о Nemerle. Хотите узнать, что это такое и как его едят, а вернее — как с его помощью едят (задачки)?

Попробую показать на простом примере, но для этого вам придется
принести свой мозг в жертву богу Nemerle

Возвращаем в Оперу то, за что мы её так любим (или ещё раз про ускоритель интернета ;)

Reading time1 min
Views5.7K
Я — один из преданных пользователей браузера уже 10 лет. Несмотря на сильную закрытость Оперы (ладно уж расширения, но даже в буфер обмена она копирует не так, как остальные), её движок — настоящий наркотик, который удерживает меня в стане фанатов все эти годы.

Однако в последнее время я замечаю довольно досадную вещь: страницы не показываются на лету, сразу же после начала загрузки, а отображаются с задержкой. Причину я выяснил в ходе одной из дискуссий на Хабре, когда мой оппонент ( egorinsk ) не мог понять, чего это у меня рендеринг страниц, открытых из кеша в Гугле, тормозит (у него всё летало). Оказалось, что у него постоянно отключен javascript!

Порефрешив страницы с включенным и отключенным javascript, я выяснил, что Опера отдаёт просто бешеный приоритет рендерингу с javascript. Логику понять можно: сейчас некоторые сайты вообще являются веб-программами, которые без js не представляют никакого интереса. Однако разработчики Оперы всегда славились тем, что отдавали предпочтение быстроте рендеринга, прорисовке страницы на лету, комфорту пользователя. Ведь с CSS дела обстоят именно так: во время загрузки тех же блогов с CSS-темами, мы сначала видим ugly plain html, который затем одевается в CSS-одёжку.

Возможно, хабраюзер с 10 мегабитами ничего и не заметит, поэтому я хочу спросить — а как обстоят дела у товарищей с не очень быстрыми соединениями? Также? А может, кто-то нашёл решение этой проблемы?

Решение не замедлило появиться!


Мегаспасибо кам. Kalan!

Врубаем параметр opera:config#Extensions|DelayedscriptExecution — и наслаждаемся тем, за шо мы так любим Оперу!

P. S. У некоторых параметр ни в какую не сохраняется при перезагрузке Оперы. Его можно найти и поправить в operaprefs.ini

17 usability tips to make your CMS rock

Reading time11 min
Views1.9K
image
К вашему вниманию перевод статьи Патрика Кеннеди о том, какой должна быть удобная система управления контентом.

Более чем вероятно, что в вашей CMS будет множество проблем с юзабилити, если вы будете использовать ее в сыром виде. Участвуя в проектах, в которых на меня было возложено внедрение таких систем — систем управления веб-сайтами, интранет-порталами и вики, я заметил, что в их пользовательских интерфейсах есть ряд ключевых областей, требующих исправления с точки зрения удобства использования.
Читать дальше →
12 ...
12

Information

Rating
Does not participate
Registered
Activity