Pull to refresh
52
0
Павел Власов @zencd

Java/Python

Send message

Раздельное логгирование методов в Java/logback

Reading time5 min
Views25K

Bart writing some logs


Задача


Допустим, нам захотелось логгировать каждый метод некого Java-класса по разному:


  • Для каждого метода свой лог-файл,
  • … свой формат лога,
  • … свой минимальный уровень логгирования,
  • формат лога расширяем собственными %переменными,
  • возможность обновлять эту конфигурацию на лету.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments6

Мгновенная настройка привычных файловых ассоциаций

Reading time3 min
Views19K

Автоматизировал задание файловых ассоциаций, то есть выбор программы которая будет открывать файл из Explorer/Finder. И делюсь.


Сначала проблематика. Файлы нужных расширений часто не открываются по умолчанию ничем, а если открываются, то каким-нибудь iTunes. Под windows нужные ассоциации, бывает, и вовсе теряются при установке (или даже деинсталяции) программ: снесёшь, бывало, GIMP, а ico-файлы перешли во владение от привычного просмотрщика файлов к стандартной Photo Gallery. Почему? Зачем? Неизвестно… А если нашёл новый редактор или, по разным причинам, свежая инсталляция? А если компьютер не один? В общем, кликать мышками в диалогах — развлечение такое себе.


Вместо этого я сохранил два файлика на Dropbox и теперь привести компьютерный мир к привычному состоянию можно почти мгновенно. И чего ждал столько лет… Далее рецепт для Windows и macOS.

Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments10

Подсчёт md5-хэша для mp3-файла

Reading time4 min
Views12K
Итак, нам нужно подсчитать хэш-сумму для файла MP3. Простой прогон файла через md5.exe не годится, так как файл содержит метаинформацию — теги, которые имеют тенденцию со временем меняться. Таким образом, всего лишь обновив теги в файле, мы получаем уже другую хэш-сумму, что не годится совершенно.

Кстати, для форматов FLAC и APE данная проблема практически отсутствует, так как они обычно изначально содержат хэш-сумму аудио-данных, прописываемую кодировщиком. Для FLAC’а значение можно получить командой metaflac --show-md5sum.

Далее — достаточно надёжный способ подсчёта (не перцептивного) хэша на основе бинарных данных, хранимых в MP3.

1) Подход №1
2) Подход №2
3) Теги Xing и Lame
4) Resync
5) Надёжность подсчёта

Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments13

Братство капчи

Reading time1 min
Views887
Многие файло-хостинги (рапидшары) уже перешли на использование рекапчи, взлом которой — задача до сих пор не решённая, по крайней мере для популярного скачивальщика JDownloader. Когда JD встречает рекапчу, пользователю предлагается ввести её в течении 30 секунд. Вроде бы неплохо, но на ночь такие закачки уже не оставишь.

Проблему решил турецкий программист Selim, основав сервис Братство Капчи. Принцип простой: некоторое время ты набираешь кредит, решая чужие капчи подряд, потом другие участники братства решают твои капчи.

1) Нужно скачать клиент под Windows, captcha solver, который при установке сразу подключается к установленному JDownloader'у и отбирает у него рекапчи — руками их интегрировать не нужно.

2) При запуске регистрируется аккаунт, на котором будут копиться кредиты. Одна решённая пользовтелем капча прибавляет 8 балов, капча решённая для пользователя снимает 10 — немного больше чтобы система оставалась на плаву.

3) Далее, по мере личной необходимости, пользователь набирает кредит, решая чужие капчи (сейчас они появляются где-то раз в полминуты). Потом программа ставится на паузу или закрывается.



Не знаю как другие, но я встретил такую проблему что не все капчи передаются на сервер Братства, некторые появляются через стандартный поп-ап JDownloader'а (может оттого что не было решателей онлайн?), но всё же значительная их часть решается «сама».
Total votes 9: ↑6 and ↓3+3
Comments7

Оптимизация HTTP-сервера через версионность ресурсов. Особенности реализации

Reading time5 min
Views3.2K
  1. Суть оптимизации
  2. Page load vs forced refresh
  3. Потребуется автоматизация
  4. Реализация серверной части
  5. Оптимизация серверной части
  6. Особенности google app engine
  7. Исходный код
  8. Резюме


Рассматривается пример реализации для Google App Engine / Python.

Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments23

Быстрая публикация скриншотов

Reading time2 min
Views5.4K
Постить скриншоты довольно заморочно если всё делать руками. Но возможен и более лёгкий сценарий:
1) жму Alt+Ctrl+S
2) появляется редактор с готовым скриншотом
3) обрезаю картинку, закрываю редактор
4) картинка сама загружается; ссылка на картинку оказывается в буфере обмена

Как это сделать — для тех кто знает что такое bat-файлы и сумеет установить пару Python-модулей.
Читать дальше →
Total votes 20: ↑13 and ↓7+6
Comments30

Вышел Firefox 3.7 alpha 4. Изменения

Reading time2 min
Views857
Четвёртый пре-релиз Firefox 3.7 / Gecko 1.9.3 готов. Изменения с прошлого пре-релиза.

Пользовательский интерфейс


— Если уже открытая вкладка подпадает под критерии вашего запроса в адресной строке, то в выпадающем списке отобразится предложение «переключиться к этой вкладке».
— Размеры многострочных полей ввода (textarea) изменяемы вручную (теперь фича включена по умолчанию).

Читать дальше →
Total votes 82: ↑67 and ↓15+52
Comments111

Изменения относительно селектора :visited в Firefox

Reading time1 min
Views2.6K
CSS-селектор :visited представляет собой известную опасность когда злоумышленный сайт с помощью вызова getComputedStyle() может узнать какие другие сайты вы уже посетили до этого, причём делать это со скоростью до 210 тысяч проверок в минуту (в Сафари значительно больше).

Серьёзно относясь к privacy, мы в Mozilla в скором времени собираем залатать эту дыру. Ещё неизвестно в какой билд Firefox будут включены нижеследующие изменения, но приглядеться к ним можно уже сейчас:

— функция getComputedStyle (и такие функции как querySelector) отныне будет говорить не совсем правду. Она будет возвращать такое значение, будто пользователь никогда не посещал заданный адрес;
— посещённые ссылки по прежнему можно будет стилизовать по своему, но только ограниченным набором CSS-свойств: color, background-color, border-*-color, outline-color, fill и stroke. В остальном, для стилизации посещённых ссылок будет использоваться стиль какой бы применялся для непосещённых. Также, для установки значений вышеприведённых CSS-свойств вы не сможете использовать функции rgba() и hsla() и использовать прозрачность с ними.

Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments52

Как сделать неудаляемое расширение или вобще спрятать его

Reading time1 min
Views1.6K
Прописываем в реестр Windows ключ:

[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Firefox\extensions]
«xxx@yyy»=«F:\WINDOWS\Temp\xxx@yyy»

Где имя ключа — UID вашего расширения, а его значение — абсолютный путь к папке расширения (там должны лежать install.rdf и прочее — всё как обычно).

При ближайшем запуске лиса это расширение найдёт и оно будет вечно висеть в списке Tools/Addons, ибо пункт «Uninstall» для таких недоступен. (Задизейблить его всё-таки можно — налицо просчёт Мозиллы.) Причём установится оно без уведомлений, то есть средний пользователь лисы может о нём и не узнать никогда.

Есть и другая опция — скрыть расширение из общего списка. Достаточно в install.rdf расширения установленного по вышеописанному методу прописать строку <em:hidden>true</em:hidden> и — вуаля! — код работает втихую, в списке аддонов не показывается, а пользователь спит крепче прежнего. И не придерёшся — всё согласно API.

Но. Буквально следующей версии Firefox 3.6 «Namoroka» последняя (hidden) лавочка будет прикрыта — наверное закончился контракт с силами тьмы. А просуществовала она со времён версии один ноль.

Мой пример такого расширения. Ещё.
Читать дальше →
Total votes 29: ↑12 and ↓17-5
Comments9

Магазин виджетов с информационной и новостной графикой для интернет-изданий

Reading time1 min
Views1.3K
Дизайн-бюро Артёма Горбунова открыло сайт infograms.ru через который будут распространятся инфограммы — интерактивные диаграммы на Flash, каждая на свою тему. Такую инфограмму можно безвозмездно вставить в личный блог; для коллективных блогов, форумов и СМИ это стоит 1000 руб./штука.

Вот скриншот первой ласточки (извините, тысячи на флэшку не нашлось):



Говорит и показывает Артём Горбунов:
Эту инфографику мы сделали в виде виджета, который можно вставить на сайт издания в статью вместо иллюстрации. Это первый продукт в магазине инфограмм который мы открываем через несколько часов и это будет первым продуктом который выйдет здесь. Дальше, начиная с 15 января, мы будем выпускать по три инфограммы в неделю, дальше будем наращивать это количество. Сейчас интерактивная инфографика — это достаточно горячая тема, наилучшие вещи сейчас происходят на Западе, в газете, например, “Нью-Йорк Таймс” — там делаются совершенно сумашедшие вещи. Мы хотим чтобы на сайтах наших изданий и СМИ появился тоже такой формат.

Мы работаем с информационными партнёрами, первым из которых стал Фонд “Общественное Мнение”. Вместе с ними мы будем делать инфографику в разрезе социологии на самые разные темы: политика, общество… на более популярные, скорее научно-популярные темы. Например у нас будут вещи связанные с научной визуализацией… рассказать людям чуть больше о том что такое грипп, как он работает, почему он свиной, козий и так далее. Другим партнёром является “Фонд дикой природы” и совместно с журналом National Geographic мы делаем инфографику на тему сохранения тигров.
Total votes 48: ↑40 and ↓8+32
Comments29

Концепт мобильного телефона для пожилых

Reading time4 min
Views6.6K
Что нужно от телефона:
— принимать звонки;
— звонить на новые номера, с ручным набором;
— звонить из телефонной книги;
— самостоятельно заполнять телефонную книгу.

Список из четырёх пунктов не такой уж маленький потому что с «обычными» аппаратами мои пожилые родственники могут ещё меньше: приём, ручной набор, и fast dial одной цифрой. На практике, телефонные книги забиваются и обновляются более младшими родственниками, всё что сверх fast dial'а записывается ручкой на обычной бумаге. Случайные смс вслух читают те же родственники.

В своём проекте я попытался дать им возможность воспользоваться всеми этими базовыми функциями за счёт урезания остальных. Вот видео-макет концепта, а ниже подробно расписано что и почему было сделано:


Сделано целиком на Sony-Ericsson W880i, кстати.

 

Проблемы «обычных» телефонов


— Непонимание целевой аудиторией структуры меню — базового механизма управления устройством.
— Как следствие, лёгкость попадания на непонятные скрины и такая же трудность выхода оттуда.
Читать дальше →
Total votes 48: ↑35 and ↓13+22
Comments79

Нужны ли все эти файлы в C:\Windows

Reading time1 min
Views10K
Папка Windows XP занимает на моей машине 2309 МБ. Стало интересно — действительно ли всё это добро ей необходимо, особенно если учесть что RAM в 10 раз меньше, а свопится она не то чтобы уж очень сильно :-) Свежая инсталяция занимала, кажется, мегабайт 800, и вот так вот разрослась… При этом прибавления функционала я не заметил, а тормозов прибавилось.

Я натравил маркоруссиновичевскую программу Process Monitor следить за любыми обращениями к файловой системе с момента следующей загрузки. После перезагрузки запустил браузер, посмотрел ролик на ютуб, пара раундов в КС, запустил торренты, посмотрел фильм — успел за 15 минут. Проанализировал лог.

Оказалось что за мою сессию были использованы:
— 7% регулярных файлов по объёму или
— 4% по числу.

Интересно, сделают ли когда функцию выкачать с сервера MS недостающие или повреждённые файлы дистрибутива...

Техническая информация...
Total votes 46: ↑16 and ↓30-14
Comments29

82 домена Google — продолжение

Reading time1 min
Views1.2K
Два года назад Google в один день зарегистрировала 82 домена. С тех пор:

один, выставлен на продажу неизвестным товарищем,
другой редиректит на www.google.com/finance,
— остальные 80 так и не припаркованы.

«по мнению многочисленных блоггеров, масса имен проливает свет на планируемые компанией проекты и разработки»
И как, пролило?
Total votes 73: ↑58 and ↓15+43
Comments40

Плюсы и минусы мульти-мониторной конфигурации

Reading time4 min
Views32K
Желание стать эффективнее и производительнее приводит многих дизайнеров к поиску методов улучшения рабочего процесса. Одно из распространённых решений — использование нескольких мониторов, способное дать значительные преимущества. В этой статье рассматриваются «за» и «против» такого решения.

«ЗА»


+1) Производительности труда растёт


Наибольшее преимущество — это, конечно, рост производительности труда.

Было проведено немало исследований, которые пытались подсчитать как именно меняется производительность труда от внедрения мульти-мониторной системы. В соответствии с исследованием Jon Peddie Research производительность вырастает на 42%.

В отчёте Pfeiffer 2005 года говорится что в результате повышения производительности, инвестиция во второй монитор (или увеличение диагонали первого) может дать годовой прибыли до нескольких тысяч американских долларов.

Читать дальше →
Total votes 52: ↑41 and ↓11+30
Comments105

Как поделить пирог чтобы все остались довольны

Reading time2 min
Views2.8K
Есть задача — разделить некое целое между несколькими претендентами и чтобы при этом каждый остался доволен. Причём разделить в реальных бытовых условиях — пирог, например — с линейкой и циркулем вокруг него не сильно удобно бегать, да и целое бывает неоднородным.

На двоих


Первый делит, второй выбирает. Соответственно, первый старается поделить поровнее, чтобы впоследствии порадоваться любой доставшейся доле.

Философская идея


Почему не остаётся недовольных? Потому что каждый обладает всей полнотой выбора, при этом — о чудо — не притесняя соседей. Почти 200% свободы :-) С решением внешнего судьи — выбранного человека или судьбы при жеребьёвке — всегда могут несогласиться (хотя бы внутренне), здесь же каждый участвует в вершении своей судьбы потому что что-то делает, а не только принимает чужой вердикт.

Альтернативные решения и подобные задачи приветствуются.

На троих (уже посложнее)


Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments28

Audiotag.info — новый сервис распознавания музыки

Reading time2 min
Views40K


Александр Радзишевский, владелец небезызвестого ресурса www.websound.ru, на днях открыл сервис AudioTag, позволяющий узнать имя исполнителя и название композиции по небольшому фрагменту композиции — достаточно загрузить лишь 15-30 секундный отрывок (или композицию целиком).

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

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

Секреты алгоритма создания слепков и источника музыкальной базы автор не раскрывает. Однако, что касается первого — они уже существуют (хоть я и не понимаю как это чудо работает, но по форме это что-то вроде MD5), а по второму вопросу, возможно, были задействованы ресурсы какого-нибудь «знакомого» онлайн-магазина — всё-таки миллион треков это очень много, да и вряд ли Алекс держит в личном архиве столько попсы :)

Читать дальше →
Total votes 51: ↑45 and ↓6+39
Comments49

Теперь новые комментарии скроллятся ещё и горизонтально :-/

Reading time1 min
Views513
Раньше по Alt+Shift+C страница скроллилась вертикально, а теперь ещё и горизонтально. Таким образом, текущий комментарий оказывается всегда в верхнем левом углу. Firefox only feature seems.

1) Текст с нулевым левым марджином труднее читать.
2) Ухудшилась ориентация в пространстве, т. к. нельзя оценить уровень вложенности, отступа.
3) Приходится скроллить горизонтально (влево), когда отказываешься от услуг этой механики и начинаешь перемещаться по странице комментариев обычными средствами.
4) Вертикального скролла достаточно (чтобы выделить текущий комментарий средь прочь их).
5) Если снизу находятся комментарии с меньшим уровнем вложенности, их невозможно окинуть быстрым взглядом (таким взглядом обычно и «читаются» интернеты), ибо они будут обрезаны слева.

Верните как было!

«Нехорошо! Я сообщу. Я доложу.» (с) НОМ, «любовь инженера»
Total votes 15: ↑8 and ↓7+1
Comments5

Скорость имеет значение

Reading time1 min
Views1.1K
Вице-президент Google, Марисса Мейер, на конференции Web 2.0 поведала историю об одном пользовательском тестировании. Группа пользователей Google была опрошена на предмет, сколько результатов поиска они хотели бы видеть на одной странице. Те просили показать побольше, больше чем те 10 штук что поисковик выдаёт обычно. «Много не мало», говорили они.

Специально для них, Гугл увеличил выдачу до 30 результатов. Объём трафика и доходность сократились на 20%.

Почему им не понравилось? Ведь всё было сделано именно так как они сами хотели.

Оказалось, изменилось кое-что ещё. На генерацию страницы с десятью результатами у сервера уходило 0,4 секунды, на страницу с тридцатью — 0,9.

Всего лишь полсекунды разницы уменьшило трафик на 20% и испортило впечатление пользователей о сайте.

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

Потом Марисса рассказала что после того как, в своей новой версии, страницы Google Maps стали весить меньше, а карты отрисовываться быстрее, объём трафика незамедлительно вырос, как и использование сервиса вообще.

Урок в том, сказала Марисса, что скорость имеет значение. Люди не любят ждать, так что не заставляйте их делать это.

Via Fresh GUI.
Total votes 80: ↑77 and ↓3+74
Comments56

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity