Обновить
0
Дмитрий Завалкин@Zyavaread⁠-⁠only

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

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

LogParser — привычный взгляд на непривычные вещи

Время на прочтение5 мин
Охват и читатели62K
Когда я в очередной раз использовал LogParser, то чтобы проникнуться и чужим опытом, ввел его название в поиск на Хабре. Как результат — сообщение «Удивительно, но поиск не дал результатов». Вот уж воистину удивительно, когда столь интересный инструмент обойден вниманием. Пришла пора восполнить этот пробел. Итак, встречайте LogParser. Маленькая, но чертовски полезная утилита для любителей SQL.

Из названия инструмента, казалось бы, очень непросто понять, что он делает в разделе SQL. А правда заключается в том, что он такой же LogParser, как и ChartGenerator. В то смысле, что он справляется с обоими задачами с одинаковыми успехом. В целом я бы его охарактеризовал как SQL-процессор гетерогенных данных. Концепция работы в общем такова, что он берет данные из некоторого формата и преобразует их в табличный вид (собственно говоря, только на этом этапе и выполняется иногда парсинг). Затем, посредством выполнения над этими табличными данными некоторого SQL-запроса формирует таблицу с результатом и сохраняет ее опять же в некотором формате. Если коротко, то цепочка выглядит как подготовка входных данных->SQL-процессинг->генерация выходных данных.
Читать дальше →

600 книг от издательства O’Reilly доступны к прочтению на сайте лейпцигского стартапа PaperC

Время на прочтение1 мин
Охват и читатели1.7K
В недавнем анонсе создателей стартапа PaperC сообщается, что 600 книг от известного издательства O’Reilly доступны к прочтению на их сайте. Таким образом общее количество доступной литературы перевалило за 3000 наименований, причем многие из них уже и так были из IT-области.

Большинство книг предоставляются на английском языке, реже — на немецком.



Коротко о стартапе

Деревья в админке django

Время на прочтение2 мин
Охват и читатели12K
Редактировать модели, представляющие собой деревья в админке django очень неудобно и ненаглядно. Сразу возникло желание выводить вместо списка объектов дерево, для этого можно использовать замечательную библиотеку jstree.
Чтобы эффективно работать с деревьями в django существует mptt, которая добавляет в модель поля для эффективной выборки и методы для этого, а также шаблонные теги для вывода деревьев и т.п.
Если вы не используете mptt, у вас есть просто ссылка на parent — jstree можно подключить к с помощью одного javascript, про это — отдельная статья.
Далее про модели, использующие mptt.
Читать дальше →

Проверка производительности хостинга

Время на прочтение2 мин
Охват и читатели2.7K
Мой друг попросил немного попиарить его интересный проект. Я сразу откликнулся на помощь, проект действительно необычный и требует внимания со стороны других людей :)

Хочу представить вам проект hostertest.ru. Суть проекта в проверке скорости технической платформы

Предыстория

Как-то раз, давно-давно (примерно год назад), у нас с друзьями зашла речь о разных хостингах, хороших и плохих, тормозных и шустрых и т.д. О том, что у них бывает слабое оборудование, и о том, что на них бывает большая нагрузка, и о том, что их иногда банально досят, а также о том, что иногда неправильно настроенная CMS сама по себе создаёт аномальную нагрузку.

Также мы говорили о том, что в сети есть множество сервисов, которые могут помочь оценить хостинг: есть сервисы замеряющие скорость загрузки с сайта, есть сервисы следящие за доступностью, есть множество сайтов посвящённым отзывам пользователей. В конце концов есть сетевые утилиты ping и traceroute!

Но вдруг пришло осознание что нет мерила именно производительности хостинговой площадки. Нет способа измерить производительность одного хостинга и сравнить его с другим.

Так и родилась идея.
Читать дальше →

Простой и эффективный метод отразить http DDoS от 50мбит с помощью nginx и iptables

Время на прочтение7 мин
Охват и читатели68K
Здравствуй, Хабр!
Предлагаю твоему вниманию простой и в то же время эффективный метод борьбы с http DDoS. На основе сервера Xeon 2.5GHz / 4Gb RAM / SAS можно отражать атаку примерно до 300 Мбит/с (значение получено методом экстраполяции).

Способ реализация

Производится тонкая настройка параметров системы. Так что север будет способен выдерживать больше подключений от ботнета, чем канал до сервера сможет пропустить.

Область применения

Борьба с Http DDoS на выделенном сервере или ВПС. Максимальная возможная мощность сдерживания DDoS атаки ограничивается физическими возможностями сервера и пропускной способностью канала.

SEO под DDoS-ом

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

Стоимость и эффективность

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

Об экстремальных способах подтянуть уровень английского

Время на прочтение2 мин
Охват и читатели13K
Тема изучения иностранных языков не раз уже поднималась на хабре. Смотреть фильмы, читать статьи и книги в оригинале, слушать BBC — эти методы уже обсуждались неоднократно.

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

Небольшой обзор веб-радио сервисов и интернет плееров

Время на прочтение4 мин
Охват и читатели49K
В последнее время, особенно когда нечего делать, часто хочется включить какую-нибудь музыку для фона (Работаю я чаще в тишине). Искать и заполнять плеер каждый раз разными хорошими песнями меня дико раздражает. Лень взяла свое или фантазия иссякла, но мне надоело каждый раз составлять плейлист подобным образом, как, впрочем, и обычным шаффлом. Решено было попробовать то, что предлагает веб. Что я там нашел для себя, попробую рассказать. Если вы можете добавить вкусный url, предлагайте.
Читать дальше →

nodeJS и nonblocking I/O

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

Добрый вечер уважаемые читатели,


На хабре последнее время проскакивало несколько упоминаний о node, быстрой платформе для создания вэб приложений на javascript, обладающей довольно уникальной на сегодняшний день особенностью, неблокирующим I/O (вводом/выводом).

Для начала о nodeJS:


1) В качестве языка используется JavaScript
2) Для выполнения JavaScript используется движок V8 от Google, который работает довольно быстро благодаря компиляции в машинный код перед выполнением.
3) Для реализации неблокирующего I/O используются libev и libeio, (libev показывает более хорошие результаты по сравнению с libevent)
4) Для реализации подключения библиотек выбран синтаксис commonJS
5) Есть возможность писать модули ещё и на C/C++, при этом подключаются они точно так-же как и js модули, это позволит Вам, к примеру, любое узкое место в вашем приложении переписать на C++ без каких либо трудностей.

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

Неофициальная трансляция ACM ICPC 2010 — как это было

Время на прочтение6 мин
Охват и читатели1K
Пост по мотивам прошедшего в пятницу финала ACM ICPC 2010, о том, как в буквальном смысле слова «на коленке» поднять зеркало умирающей под нагрузкой странички, прикрутить к нему чат с ее обсуждением, и не загнуться от нагрузки самому :)

Пост будет интересен скорее веб-программистам, нежели олимпиадникам.

Немного статистики, конфигов nginx, полезные трюки, а также ряд граблей, которые должны быть прекрасно известны людям с опытом, но на которые многие все равно часто наступают…

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

Конструктор/редактор Яндекс.Карт

Время на прочтение1 мин
Охват и читатели14K
Внезапно потребовалось выводить на странице виджет Яндекс.Карт с какими-то накладываемыми слоями. Проблема заключалась в необходимости дать пользователю редактировать эти слои.

Быстрый поиск редакторов накладываемых примитивов дал только конструктор схем проезда от Яндекса и какой-то убогий php'шный конструктор карт (к тому же ещё и платный). А редактор был нужен. По этому пришлось сесть и быстренько написать.


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

Введение в Continuous Integration

Время на прочтение5 мин
Охват и читатели178K
Недавно я попал на новый проект, с задачей создать небольшое приложение с нуля. Разговариваю с тестером:
— А как тебе новые версии поставлять?
— Можешь как все остальные на проекте, через SVN.
— То-есть ты сама билдить будешь?
— Да нет… Бинарники оттуда беру.


Оказывается, очень много программистов, даже имеющих в подписях слова вроде Senior или Superior никогда в жизни не стыкались с понятием CI, или слабо себе представляют что это такое. Не найдя отдельных публикаций на Хабре на эту тему, решил восполнить пробел, а заодно и по возможности заработать желанный инвайт.
Читать дальше →

Sikuli — program ANYTHING using GUI screenshoots

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

Сказка


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

К счастью, транспортная компания (которая не удосужилась составить четкого расписание) содержит сайт, на котором в реальном времени с помощью Google Maps можно узнать, где сейчас находится тот или иной автобус. И вот в один прекрасный день Ваше терпение лопается и Вы садитесь писать скрипт, который будет отправлять ту желанную SMS-ку. Но все не так просто. Придется долго повозиться, чтобы по карте и маленькому кружочку на ней оценить скорость и время прибытия реального транспортного средства на Вашу остановку. Вы ведь не можете просто написать: «хочу получать SMS, когда вот эта точка попадет вот в этот прямоугольник на карте». Или все-таки можете?

Проходя, не проходите мимо

Тюнинг консольного клиента MySQL

Время на прочтение2 мин
Охват и читатели4.6K
Мне довольно часто, даже постоянно приходится обращаться к разным базам данных MySQL. Испробовав немало разных GUI клиентов я понял, что они все меня не удовлетворяют. То проблемы с кодировкой, то отсутствует автодополнение кода, то не работает история запросов. В общем пришел я к использованию консольного клиента mysql. И вроде все хорошо, но была пара проблем.
Во-первых заходя в очередную закладку с открытым соединением mysql я тупо смотрел в строку приглашения и старался понять на каком я сервере нахожусь и к какой базе данных подключен. Во-вторых при выводе большого количества полей или при выводе поля с длиной превышающей ширину терминала получалась каша из черточек, букв и палочек :). На днях я покопался в документации и с кое-чем разобрался.
Читать дальше →

Да это же Просто Плеер какой-то!

Время на прочтение2 мин
Охват и читатели1.7K
image
Нашел только что в сети интересный сервис: Просто Плеер!
Подумал, что название и только, но решил зайти, а там такое…
Подробности далее

Linux Mint: первые впечатления

Время на прочтение4 мин
Охват и читатели15K
image
Некоторое время назад увидел на Хабрахабре анонс русскоязычной Linux Mint 8 Helena, впечатлился красивыми картинками и обещанием различных плюшек при переходе с Windows. И вот, два дня назад свершилось — вечером от нечего делать записал болванку, установил, попробовал, потыкал и… совсем забыл про Windows. Так уж получилось, что семерка со всеми своими красивостями отошла на второстепенную роль «операционки для игр».

Почему так получилось, первые впечатления и несколько полезных советов чуть ниже.

Реализация 960gs в Drupal (NineSixty theme)

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

О NineSixty


NineSixty это тема для Drupal на основе 960gs, предназначенная для использования в качестве базовой темы.
image

Преимущества NS:


  • контент-ориентированная разметка с использованием классов «push» и «pull»
  • динамическая ширина блоков в зависимости от контента
  • инструменты для отладки и визуализация сетки
  • поддержка языков с направлением письма справа налево

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

Все о 960gs — отличном css-фреймворке для построения модульных сеток

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


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


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

jQuery 1.4: 15 новых возможностей

Время на прочтение7 мин
Охват и читатели6.5K
14 января появился на свет jQuery 1.4. Этот релиз содержит множество новых возможностей и улучшений. В этой статье рассматриваются те, которые вы, возможно, найдёте самыми полезными.
Читать дальше →

Шпаргалка по расшифровке имен видеофайлов

Время на прочтение8 мин
Охват и читатели334K
Как то стало интересно что значат разные буковки/цифарки через точку в названиях видеофайлов.

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

phpDaemon — фреймворк асинхронных приложений

Время на прочтение6 мин
Охват и читатели45K
Сегодня речь пойдет о phpDaemon — асинхронном модульном демоне-фреймворке, который берёт на себя обработку I/O (libevent) и другие низкоуровневые задачи, присущие демонам. С его помощью легко писать правильные сетевые приложения с блэкджеком и шлюхами.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самый волшебный пендаль новый протокол от Google. И клиенты mysql, memcached, mongodb… И многое другое, полный список под катом. Работать с сетью действительно просто. Программист средней руки может написать, к примеру, IRC-бота за считанные часы.
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность