jj_killer @jj_killer
User
Java по-русски. Часть первая: Книги
2 min
497KНе так давно я проводил опрос «Какие материалы о Java вас интересуют на русском языке?» среди посетителей Хабра. Вторым этапом моего исследования будет обзор существующих русско-язычных ресурсов.
За 2009 на Ozon.ru можно найти 8 книг по Java (всего за последние 3 года их вышло 22 — примерно по 7 в год, на books.ru набор примерно такой же, так что наша выборка довольно репрезентативна). Посмотрим, что это за книги?
Книги
За 2009 на Ozon.ru можно найти 8 книг по Java (всего за последние 3 года их вышло 22 — примерно по 7 в год, на books.ru набор примерно такой же, так что наша выборка довольно репрезентативна). Посмотрим, что это за книги?
+20
+20
Sokso: сам себе last.fm
1 min
1.1KСколько уже ищу, но никак не могу найти нормальный плеер. XMMS и клоны, Listen Music Player, Rhythmbox Music Player, VLC Media Player, Banshee, mpd + обвязки — какое-то оно все не такое.
В результате гугления был нарыт Sockso — sockso.pu-gh.com — Personal Music Server под платформы Windows, Mac OSX, Linux.
Свободный, с открытыми исходниками, “ПМС” для всех и каждого. Основной упор в дизайне сделан, так что любой кто имеет мышку и несколько MP3 мог делиться с друзьями музыкой по интенету за секунды. Этакий сам себе last.fm. Sockso Personal Music Server умеет на сегодня:
* Без установки. Развернул файлы и понеслась!
* MP3, OGG Vorbis, Flac, and WMA
* Веб интерфейс для друзей и GUI для себя любимого.
* Онайновые флеш плееры, плейлисты, поиски и т.д.
* Скачивание из своей библиотеки песен, альбомов, или плейлистов.
* Статистика, что игралось, самое популярное и т.д.
* «Шкуркабельный» веб интерфейс
* Пользовательские и библиотечные плейлисты.
* Выключения GUI для запуска на headless серверах
* UAC (User account control) и собственные плейлисты
* Загрузка музыки в библиотеку через веб
* Подкачивает обложки для треков / альбомов
* Умеет перекодировать «вывод» если полосы пропускания не хватает
* «Cover Flow» стиль — выбор плейлиста из оболожек
* Умеет дружить с last.fm и скроблить туда
* Умеет SSL «искаропки»
p.s. Установка в убунту зависимостей: sudo apt-get install sun-java6-bin flac lame ffmpeg
В результате гугления был нарыт Sockso — sockso.pu-gh.com — Personal Music Server под платформы Windows, Mac OSX, Linux.
Свободный, с открытыми исходниками, “ПМС” для всех и каждого. Основной упор в дизайне сделан, так что любой кто имеет мышку и несколько MP3 мог делиться с друзьями музыкой по интенету за секунды. Этакий сам себе last.fm. Sockso Personal Music Server умеет на сегодня:
* Без установки. Развернул файлы и понеслась!
* MP3, OGG Vorbis, Flac, and WMA
* Веб интерфейс для друзей и GUI для себя любимого.
* Онайновые флеш плееры, плейлисты, поиски и т.д.
* Скачивание из своей библиотеки песен, альбомов, или плейлистов.
* Статистика, что игралось, самое популярное и т.д.
* «Шкуркабельный» веб интерфейс
* Пользовательские и библиотечные плейлисты.
* Выключения GUI для запуска на headless серверах
* UAC (User account control) и собственные плейлисты
* Загрузка музыки в библиотеку через веб
* Подкачивает обложки для треков / альбомов
* Умеет перекодировать «вывод» если полосы пропускания не хватает
* «Cover Flow» стиль — выбор плейлиста из оболожек
* Умеет дружить с last.fm и скроблить туда
* Умеет SSL «искаропки»
p.s. Установка в убунту зависимостей: sudo apt-get install sun-java6-bin flac lame ffmpeg
+37
ОС и вебсервер — вместе веселей
3 min
6.1KПривет всем. Сначала я думал, что лучше всего продолжить тему nginx на примере подчищенного и откомментированного конфига с одного из боевых серверов, но потом понял, что это потребует довольно большого объёма дополнительной информации. Поэтому, я решил попробовать, для затравки, рассказать в общих чертах о том, как nginx устроен, и почему он работает так быстро.
+54
Поддержка nginx в IntelliJ IDEA
2 min
7K
Я использую nginx как фронт сервер для своего проекта. Сам проект пишется на Java в IntelliJ IDEA. Захотелось редактировать конфиги nginx и запускать nginx сразу в IDEA. Сел и написал плагин.
+32
SketchFlow: прототипирование интерфейсов по-новому
13 min
24KTranslation
Все хорошие разработчики и дизайнеры, с которыми я знаком, в той или иной мере занимаются прототипированием. Как мне кажется, прототипирование напоминает канал между заказчиком и разработчиком, по которому передаются идеи и отзывы заинтересованных сторон, что позволяет вносить изменения в проект еще на раннем этапе разработки.
Как вы, наверное, замечали, прототипы могут быть представлены в разнообразных формах: от каких-то набросков на салфетке, до дизайна созданного в профессиональном пакете, который выглядит очень близко к желаемому результату. Несмотря на такое количество вариантов, мы можем выделить два основных типа прототипов: малодостоверные (Low fidelity) и высокодостоверные (High fidelity ). Малодостоверный прототип – это простое описание, набросок на рисовальной доске или скетч, которые приблизительно показывают кусочек пользовательского интерфейса. Пример такого прототипа представлен на рис. 1.

Рис. 1 – Пример малодостоверного прототипа, который демонстрирует форму входа в систему
Как вы, наверное, замечали, прототипы могут быть представлены в разнообразных формах: от каких-то набросков на салфетке, до дизайна созданного в профессиональном пакете, который выглядит очень близко к желаемому результату. Несмотря на такое количество вариантов, мы можем выделить два основных типа прототипов: малодостоверные (Low fidelity) и высокодостоверные (High fidelity ). Малодостоверный прототип – это простое описание, набросок на рисовальной доске или скетч, которые приблизительно показывают кусочек пользовательского интерфейса. Пример такого прототипа представлен на рис. 1.

Рис. 1 – Пример малодостоверного прототипа, который демонстрирует форму входа в систему
+87
Хранение кода в бд или собираем код по кирпичикам
7 min
10KДанная статья написана Napolsky. По известным причина он не смог ее опубликовать. Если статья вам понравилась — поощрите автора известным способом.
В этом топике я расскажу об одном разрабатываемым мною подходе в веб программировании, сердцем которого является хранение кода в базе данных. Несколько замечаний по дальнейшему тексту:
- Под словосочетанием «код страницы» имеется ввиду исполняемый (php) код
- Во всех вопросах, касательно производительности, имеется ввиду чистое время генерации страницы, без использования акселлераторов, систем кеширования и т д
Как все начиналось
Для того чтобы понять, а «зачем оно собственно надо» быстренько пройдем тот путь, который и привел меня к хранению кода в бд. Так сложилось, что свой путь в веб программировании я начинал не с написания каких-либо скриптов или модулей для существующих систем, а сразу с написания собственного движка сайта с абсолютного нуля. К этому моменту я имел двухлетний опыт программирования на C++ и, конечно же, по накатанной пытался строить свой веб движок на ООП (правда в то время в PHP от ООП было одно название :) ). В пределах разумного, я очень люблю свои «велосипеды». Особенно большие. И прежде чем воспользоваться готовым решением, всегда задаюсь вопросом «а нельзя ли написать получше?».
+18
Очищаем веб-страницы от информационного шума
5 min
3.7KПриветствую всех!
Предыдущие мои статьи были, в основном, о теоретической части Data Mining, сегодня хочу рассказать о практическом примере, который используется в кандидатской диссертации (в связи с этим данный пример на данном этапе развития нельзя считать полноценным работающим проектом, но прототипом его считать можно).
Будем очищать веб-страницы от «информационного шума».
Предыдущие мои статьи были, в основном, о теоретической части Data Mining, сегодня хочу рассказать о практическом примере, который используется в кандидатской диссертации (в связи с этим данный пример на данном этапе развития нельзя считать полноценным работающим проектом, но прототипом его считать можно).
Будем очищать веб-страницы от «информационного шума».
+40
+35
Русская документация по пакетному фильтру OpenBSD (PF)
1 min
2.1KВсем привет!
Пару месяцев назад перевёл первую часть документации PF(на остальное нет времени).
Но опубликовать получилось недавно. Думаю многим документация будет полезна, а может кто даже захочет помочь в этом деле, что было бы просто замечательно.
От себя хочу добавить, что PF это великолепный брандмауэр, он обладает огромными возможностями и в тоже время его синтаксис очень прост.
P.S
Если есть какие либо замечания по переводу, буду рад их услышать.
Пару месяцев назад перевёл первую часть документации PF(на остальное нет времени).
Но опубликовать получилось недавно. Думаю многим документация будет полезна, а может кто даже захочет помочь в этом деле, что было бы просто замечательно.
От себя хочу добавить, что PF это великолепный брандмауэр, он обладает огромными возможностями и в тоже время его синтаксис очень прост.
P.S
Если есть какие либо замечания по переводу, буду рад их услышать.
+18
Анимированные меню на jQuery
6 min
5.5KTranslation

Смотрим демо
+126
Black Hat 2009: слайды команды Invisible Things Lab
2 min
1.4KСегодня завершается всемирно известная конференция специалистов по информационной безопасности Black Hat 2009 (Лас-Вегас, США). В связи с этим стали доступны слайды экспертов команды Invisible Things Lab (на английском языке).
Александр Терешкин и Рафаль Войтчук расскрывали следующие темы:
1. Знакомство с руткитами кольца -3-го уровня (ориг.: Introducing «Ring -3» rootkits).
2. Атакуем Intel BIOS (ориг.: Attacking Intel BIOS).
Александр Терешкин и Рафаль Войтчук расскрывали следующие темы:
1. Знакомство с руткитами кольца -3-го уровня (ориг.: Introducing «Ring -3» rootkits).
2. Атакуем Intel BIOS (ориг.: Attacking Intel BIOS).
+28
Чеклист запуска сайта
3 min
25K
Этот чеклист будет полезен всем, кто запускает сайты или следит за этим увлекательным процессом. Ничего не пропустите!
+112
Лампа настроения!
2 min
38KЛампа настроения (mood lamp) является RGB лампой, которая меняет цвет в случайном порядке. Была зеленая, плавно стала голубой, потом фиолетовой… какого цвета она станет в следующий момент времени не знает никто)

Купить такую проблематично, сделаем ее сами!)

Купить такую проблематично, сделаем ее сами!)
+156
pv — маленькая, но очень полезная утилита
2 min
86KОдин мой друг сказал по поводу pv следующее «Я админю семь лет, мне нужна была эта тулза десятки раз, а я даже не знал что она существует». В размышлениях над тем как заполучить инвайт на Харбе, я набрал в поиске pv. И ничего не нашел.
+270
DNS Tunneling via iodine: сыр действительно бесплатный
3 min
26KЕсть:
— отключенный за неуплату интернет (adsl, lan, etc)
или
— нешифрованная wi-fi сеть c закрытым интернетом, но работающим dns
или
— очень строгий firewall с открытым dns
Хочется:
полноценный интернет, пусть даже очень медленно
— отключенный за неуплату интернет (adsl, lan, etc)
или
— нешифрованная wi-fi сеть c закрытым интернетом, но работающим dns
или
— очень строгий firewall с открытым dns
Хочется:
полноценный интернет, пусть даже очень медленно
+71
cogear — релиз 1.0
2 min
947Доброго времени суток, %username%.
В начале лета был опубликован анонс системы управления сайтами cogear.
В начале лета был опубликован анонс системы управления сайтами cogear.
Особенности движка:
- Работает на фреймворке CodeIgniter.
- Модульная архитектура. Установка/удаление модулей в один клик.
- Широкий спектр применения системы. Дистрибутив предоставляет возможность создать сообщество с многопользовательскими блогами, но благодаря расширяемой архитектуре возможностей трансформации движка существует великое множество.
- Гибкая система хуков. Позволяет модифицировать любые контроллеры и модели, не затрагивая их код.
- Открытый исходный код.
- Интернационализация.
- Автоматическая загрузка классов/моделей.
- Оптимизация скорости загрузки (объединение файлов CSS и JavaScript).
- Кеширование с поддержкой тегов (работает с файловой системой и Memcached).
- Возможность подгружать стили и скрипты для определенных браузеров (прощай IE6).
- Собственный шаблонизатор, дающий возможность работать и с PHP-Native.
- Подробная документация, в том числе и в PDF.
+55
Siege — утилита для нагрузочного тестирования веб-серверов
7 min
83KTranslation
Надеюсь, что данный материал будет кому-нибудь полезен.
Siege – это утилита для нагрузочного тестирования веб-серверов. Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества пользователей и количества их обращений к серверу. Например 20 пользователей, обратившись по 50 раз, создают в общей сложности 1000 запросов. Результат, выводимый программой после тестирования, включает в себя время затраченное на проверку, общее количество переданной информации ( включая заголовки ), среднее время ответа сервера, его пропускную способность и число запросов на которые пришёл ответ с кодом 200. Эти данные формируются и выдаются при каждой проверке. Подробно они описываются ниже. Siege имеет 3 основных модели работы – режим регрессионного тестирования, режим имитации Интернета и режим грубой силы. Программа считывает порцию ссылок из конфигурационного файла и обращается к ним по очереди ( режим регрессионного тестирования ) или случайно ( имитация интернета ). Или же пользователь может указать один единственный адрес к которому будут производиться все обращения – режим грубой силы.
UPD: спасибо за плюсы, перенес в тематический блог.
Siege – это утилита для нагрузочного тестирования веб-серверов. Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества пользователей и количества их обращений к серверу. Например 20 пользователей, обратившись по 50 раз, создают в общей сложности 1000 запросов. Результат, выводимый программой после тестирования, включает в себя время затраченное на проверку, общее количество переданной информации ( включая заголовки ), среднее время ответа сервера, его пропускную способность и число запросов на которые пришёл ответ с кодом 200. Эти данные формируются и выдаются при каждой проверке. Подробно они описываются ниже. Siege имеет 3 основных модели работы – режим регрессионного тестирования, режим имитации Интернета и режим грубой силы. Программа считывает порцию ссылок из конфигурационного файла и обращается к ним по очереди ( режим регрессионного тестирования ) или случайно ( имитация интернета ). Или же пользователь может указать один единственный адрес к которому будут производиться все обращения – режим грубой силы.
UPD: спасибо за плюсы, перенес в тематический блог.
+72
Использование составных ключей для манипуляции данными в memcached
7 min
3.3KЧасто, при работе с memcached, возникает ситуация, когда необходимо удалить данные в самых различных местах. Например, при добавлении нового комментария, необходимо обновить не только кеш самих комментариев этой страницы, но и ленты комментариев на главной странице, списока комментариев пользователя, счетчика комментариев пользователя, общего счетчика комментариев сайта, счетчика комментариев статьи и т.д. Можно запомнить все ключи этих данных и множество раз вызвать delete() с этими ключами.
Как известно, memсached хранит данные плоско, то есть одному ключу соответствует всегда одно значение. Вложенных ключей не существует. Так же нет возможности удалить группу ключей, скажем по маске. Хорошо бы было, если бы можно было сделать, например, так: $cache->delete('comments*'); Но так нельзя.
Но если нельзя, но очень хочется, то можно ;)
<?php
$cache->delete('comments_art123');
$cache->delete('comments_tape');
$cache->delete('comments_user123');
$cache->delete('comments_counters_art123');
$cache->delete('comments_counters_user123');
......
?>
* This source code was highlighted with Source Code Highlighter.
Как известно, memсached хранит данные плоско, то есть одному ключу соответствует всегда одно значение. Вложенных ключей не существует. Так же нет возможности удалить группу ключей, скажем по маске. Хорошо бы было, если бы можно было сделать, например, так: $cache->delete('comments*'); Но так нельзя.
Но если нельзя, но очень хочется, то можно ;)
+16
Information
- Rating
- Does not participate
- Location
- Киев, Киевская обл., Украина
- Registered
- Activity