Search
Write a publication
Pull to refresh
56
0
frexin @sindrom

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

Send message

Слушаем музыку из Vkontakte через Амарок

Reading time1 min
Views11K
Дело было вечером, делать было нечего… Дернуло меня поглядеть на QtScript, на котором пишутся плагины для Амарока, ну, думаю, просто смотреть неинтересно — надо чего-то написать. Ну, а так как я в это время слушал музыку именно из Контакта, так как не для кого не секрет, что там можно найти практически все, то было решено заменить совсем неудобный плеер контакта на Амарок, дабы была возможность нормально этим делом управлять посредством мультимедийныйх клавиш и да и просто для объединения в один плейлист композиций локальных и сетевых.
Читать дальше →

Unlimited Detail — интересно, но есть у меня вполне конкретные сомнения…

Reading time9 min
Views8.8K
Несколько дней назад проскочило видео по Hacker News (и спасибо ayambit за напоминание о них на Хабре) про компанию Unlimited Detail, которая обещает сделать самые современные карточки NVidia и ATI бесполезными и рендерить сцены в миллиарды точек на обычном процессоре (CPU), без 3D ускорения(!) вообще. Превышая возможности современных видеокарт в сотни раз (тысячи, по заявлениям авторов, которые я ниже оспорю).

Если кто еще не видел:



Сначала на всякий случай о том чего это такое, а потом о том, что у меня, как у программера, сомнения вызывает, что на нетбуках без 3D карт, скоро будут в Crysis 3 играть…

(дальше очень много слов и технических деталей)
Читать дальше →

Немного про py2exe

Reading time4 min
Views128K
Есть такое приложение. Называется py2exe. Оно позволяет упаковать, сконвертировать программу на python в exe файл (ну, точнее, exe и еще кучку других). Зачем оно все надо? Ну, далеко не у всех пользователей windows установлен интерпретатор python с нужными библиотеками. А вот упакованная программа в идеале должна запуститься на любой windows-машине.
Читать дальше

«Твоё Радио» — ещё один бесплатный способ слушать last.fm-радио

Reading time2 min
Views1.1K
Твоё РадиоИнтересно у некоторых людей мысли сходятся. Буквально за день до анонса freelast radio я отправил на модерацию своё приложение, которое фактически делает то же самое, но, на мой взгляд, несколько лучше справляется с задачей.

Как известно, сервис Last.fm предоставляет услугу персонализованного радио: выбираете исполнителя — слушаете похожих на него. Раньше эта услуга была бесплатной, теперь за это просят денег. Да, три доллара — это не так много, но всё-таки хочется бесплатной альтернативы. Да и возникло желание написать что-нибудь такое.

«Твоё Радио» — это IFrame-приложение для социальной сети «В Контакте», которое подбирает похожие треки при помощи Last.fm API, ищет по огромной базе музыки и воспроизводит их нон-стоп.

Что оно умеет?

Test Infected

Reading time5 min
Views4.7K

Все, все будут писать тесты


Уже 3 года прошло, с тех пор как я увидел свою первую красную полоску. Что меня дернуло начать писать тесты, уже не важно. Я начал собирать информацию, перечитал весь wiki.agiledev.ru и торжественно запустил свой первый тест на SimpleTest. Конечно, эти тесты были ужасны, да и архитектура тоже (в моем сегодняшнем понимании). Тогда я, наверное, словил большинство ошибок, но зато замечательно провел время :)

Потом перешел на PHPUnit — просто было интересно, чем он отличается от SimpleTest и что в нем такого «навороченного».
А lime — гадость. Чего ребята из Symfony в него так вцепились? Понимаю ветка 1.*, наследие и все такое. Но 2.0 можно было бы и на PHPUnit начинать.
Да, мне это было интересно. Я активно писал тесты, даже честно пытался делать это перед тем, как писать код. Что-то не получалось, читал разные статьи на тему, как надо и не надо писать тесты, перечитывал wiki.agiledev.ru. Но внутри явно чего-то не хватало.
Читать дальше →

Перегрузка функций в JS

Reading time4 min
Views57K
Как известно, в JavaScript нельзя создать несколько функций, различающихся только списком параметров: последняя созданная перезапишет предыдущие. Про различие на уровне типов параметров говорить не приходится вообще. Обычно, если программист хочет создать функцию с множественным интерфейсом, он пишет что-то вроде такого:
  1. // getRectangleArea(x1, y1, x2, y2) или
  2. // getRectangleArea(width, height)
  3. function getRectangleArea(x1, y1, x2, y2) {
  4.   if(arguments.length==2) return x1*y1;
  5.   return (x2-x1)*(y2-y1);
  6. }
* This source code was highlighted with Source Code Highlighter.

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

Opera Mini 5 beta 2 — теперь и для Windows Mobile

Reading time2 min
Views16K
image


В то время, как оперные разработчики готовили к выпуску новую версию Opera 10.50 для десктопов, отдел мобильной разработки тоже не сидел сложа руки и сегодня без особой помпы выкатил очередную версию Opera Mini 5 beta 2, на этот раз — для счастливых обладателей смартфонов под управлением Windows Mobile 5.х и 6.х версии. Казалось бы — зачем оно надо? Ведь для такой платформы как бы предназначена более функциональная версия Opera Mobile, да и популярность этой навсегда устаревшей платформы от редмондского гиганта оставляет желать лучшего. На самом деле есть несколько причин, зачем мы это сделали.

Во-первых, как это ни банально звучит, об этом нас просили сами пользователи. Ну не устраивает их штатный браузер, что тут поделаешь. Правда, при желании можно установить и версию Opera Mobile 10 бета 3, которая сможет выполнять всё то же самое, что и встроенный IE, только гораздо лучше (плюс ускоритель Турбо, естественно). Но по ряду причин многие предпочитают именно легковесную Opera Mini, пусть она даже и несколько ограничивает работу с нагруженными JavaScript страницами. Что ж, раз просят — почему бы не сделать. Тем более, что мы никогда не отказывались расширить число поддерживаемых устройств, и это уже во-вторых.
Читать дальше →

Что нас ждет в WordPress 3.0 (обзор новых функций)

Reading time5 min
Views3.3K
Очередная версия самой популярной платформы для блогов WordPress 3.0 должна выйти 1 мая в один день с проведением конференции WordCamp в San Francisco. При этом окончательный вариант всех новых функций был утвержден и «заморожен» 1 марта. Таким образом, все новинки функционала стали известны, никаких дополнительных возможностей добавляться не будет, только работа на багами. Предлагаю почитать про набор самых основных и существенных изменений, которые грядут в WordPress 3.0. А там есть на что посмотреть!
Читать дальше →

LinguaLeo.ru — освоение английского языка онлайн. Сделано в Таиланде!

Reading time2 min
Views5.1K
LinguaLeo Logo -- английский онлайн 1 марта родилась бета-версия нового веб-сервиса для изучения английского языка — LinguaLeo.ru.

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

Конкурс для читающих хабраюзеров

Reading time1 min
Views590
imageПривет, %username%!

Я координатор проекта "Только для чтения" — коллективного блога о мире литературы и вокруг него. В ноябре у нас произошел неприятный инцидент с инвайтами и «черным пиаром» проекта, который мы не планировали.

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

Паттерн проектирования «Декоратор» / «Decorator»

Reading time4 min
Views94K
Почитать описание других паттернов.

Проблема


Возложить дополнительные обязанности (прозрачные для клиентов) на отдельный объект, а не на класс в целом.

Описание


Для более детального понимания проблемы, рассмотрим конкретную ситуацию. Пусть имеется некоторый объект — «кнопка», принадлежащий классу объектов «Кнопка», на который понадобилось возложить дополнительные обязанности. Под обязанностями, в данном контексте, понимаются какие-либо особенности поведения объекта. В случае с кнопкой, можно рассмотреть поведение объекта при его отображении на экране. При этом, будем считать, дополнительными обязанностями — отображение рамки кнопки, надписи, иконки. Важно понимать, что все эти обязанности должны иметь возможность быть наложенными как одновременно, так и по отдельности. Очевидно, первое, что приходит на ум — порождение классов (механизм наследования). Для данной задачи возможно это и выход — расширить класс «Кнопка» семью (23-1 = 7) различными классами, сочетающими в себе всевозможные комбинации обязанностей. Это классы: «Кнопка_С_Надписью», «Кнопка_С_Рамкой», «Кнопка_С_Иконкой», «Кнопка_С_Надписью_И_Иконкой», «Кнопка_С Рамкой_И_Иконкой», «Кнопка_С_Надписью_И_Рамкой», «Кнопка_С_Надписью_И_Рамкой_И_Иконкой». А если таких обязанностей будет не три, а хотя бы десять, не говоря уже про неудобство работы с подобной структурой. Безусловно, порождение классов в таком случае — заведомо проигрышный вариант. Однако, из этой ситуации есть выход — паттерн «Декоратор».
Читать дальше →

Трехмерный движок для Флеша — Papervision3D. Как и с чем его едят

Reading time6 min
Views12K


Papervision3D — это библиотека классов для ActionScript 3.0, которая позволяет создавать полноценные 3D флеш-ролики.
Таким образом пользователю не требуется качать какие-то альтернативные плагины (как это было с VRML, например), кроме собственно Flash Player'a.

Итак, что же повзоляет нам Papervision3D:

— Добавлять во флеш-ролик встроенные примитивы: Plane, Sphere, Cylinder, Cone, Cube, Paperplane, Arrow
— Импортировать модели созданные в 3D-редакторах, вместе с анимацией.
— Накладывать на объекты в качестве материалов однородные цвета, битмапы, мувиклипы и даже потоковое видео
— Использовать источники света
— Накладывать встроенные во флеш фильтры (Blur, Glow и т.п.) на 3D объекты
— Управлять отдельными вершинами и фейсами объектов. Пример
— Назначать на 3D объекты и материалы обработчики событий (клик, наведение мышки и т.п.)

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

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

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

Свобода или страх. Делайте свой выбор

Reading time3 min
Views2.6K
Сегодня на хабре для меня получился занимательный микс из статей — волчьи будни и эффект бабочки. Вроде разные такие статьи, а обе зацепили, заставили думать. Причем поначалу я не могла собрать мысли воедино и понять, что же объединяет эти казалось бы разные статьи. И через некоторое время меня осенило – свобода самовыражения.

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

Торренты, скайп и безопасность

Reading time3 min
Views9.6K
Дисклаймер: все нижесказанное — мои личные мысли, не ставящие целью дискредитировать упомянутые системы и их производителей.

Коротенько о себе: я занимаюсь сетевой безопасностью. 8 лет. Специализируюсь на cisco (CCIE Security).

Я сам настороженно отношусь к обоим системам (Торрент, Скайп). Но все никак не мог сформулировать, что же мне так не нравится. И вот сейчас я попробую по возможности объективно рассказать, что же меня тревожит.

Но для начала я напомню уважаемым хабрачитателям, что такое ботнет, с чем его едят и почему он так опасен.

Ботнет — объединение разрозенных компьютеров, находящихся под одним вредоносным управлением. Ботнеты делятся на активные и пассивные. Компьютеры в активном ботнете знают, что ими удаленно управляют. В пассивном — нет.

Как же компьютеры попадают в ботнет? Как правило, для этого используются трояны (устанавливаешь на компьютер одно, а параллельно тебе ставится незаказанное), рассылаемые с почтой, черви (самораспространяющийся по сети вредоносный код), программы на самозапускающихся флешках и т.д. Главная задача — установить на компьютер программу, которая будет «стучаться» (пытаться соединиться) изнутри межсетевого экрана наружу на хосты управления (call-home). Как только зараженный компьютер достукивается до сервера управления, по установленной сессии им можно поуправлять.
Читать дальше →

Несколько фишек для изучающих английский язык

Reading time1 min
Views48K
1. Анонимные чаты: omegle.com, chatroulette.com
2. Сайты-помощники: kwiz.me, kimir.org, englishtips.org
3. Подкастинг: eslpod.com, effortlessenglish.com, npr.podcast.com, businessenglishpod.com,
4. Качаем фильмы/сериалы, затем субтитры к ним. Просматривать можно с замедлением в VLC плеере чтобы лучше переваривать. Еще рекомендую комик шоу, например Important Things with Demetri Martin — не пожалеете.
5. В скайпе ищем каких нибудь индусов со статусом SkypeMe и не стенсняясь знакомимся.
6. При прочтении какой-то книги или просмотра фильма неплохо бы подготовится таким образом: берем текст, устанавливаем длину слова и частоту употребления в тексте и запускаем, например, этот скрипт (PHP): pastebin.com/m7672c2a9
В итоге имеем дайджест слов большинство из которых вы уже знаете но остальные стоит подучить. И когда вы будете смотреть фильм или читать книгу вы автоматом поймете это слово.
7. Произношение слов — ставим в Google.translate режим Русский->English и в поле текста пишем английское слово — оно без перевода встанет справа вместе с флэшкой которое произносит слово. Также forvo.com, howjsay.com
8. Социальные сервисы ответов:
answers.yahoo.com, vark.com
9. Социальные сети для изучения языка:
livemocha.com, lingq.com, italki.com
10. Остальное:
nytimes.com, ecenglish.com, urbandictionary.com
allengl.narod.ru/top/phvTOP170.htm

Надеюсь каждый нашел для себя что-то полезное:)

Down Notifier — бесплатный сервис мониторинга работы сервера

Reading time1 min
Views1.1K
«А этот сайт у тебя работает? А этот?»
Знакомы ли вам эти вопросы? Думаю да.
Мне не хватало простого как доска сервиса для определения, работает ли сайт или это проблемы моего соединения.

В общем-то ничего сложного в таком сервисе быть не может, поэтому я решил быстренько набросать его. И, чтобы не заморачиваться с хостингом (и его стабильностью :)), написал всë как приложение для гугль ежа.

Сварганил чтоб работало кое-как, показал друзьям и мне посоветовали добавить пару фич, которые мне показались приятными. Вот теперь решил показать сервис вам — ничего нового, зато он простой, бесплатный, ненапряжный и работает. ;)
Собственно сам сервис – Down Notifier.

В чем фишка:
1) бесплатный
2) быстрый (примерно нужно10 секунд на то чтоб подписаться на уведомление)
3) не требует регистрации
4) уведомление через email, twitter, xmpp, sms (про это чуть дальше)
5) проверка каждые 10 минут (возможно, потом будет меньше, сейчас все в режиме тестирования)
6) после проверки ресурса можно получить proof link на состояние.
7) отказоустойчивый (находится на серверах Google)

Про регистрацию хочу отдельно сказать: не знаю как вас, но меня от одной формы регистрации воротить начинает и хочется поскорей сбежать с такого сайта. Поэтому решил упростить ситуацию тем, что можно залогиниться, используя аккаунт гугля или твиттера (думаю людей у которых нет ни того ни того ОЧЕНЬ мало :) )

Насчет уведомления через SMS хочу сказать следующее: поскольку сервис бесплатный, то изощряться не стал и сделал возможность уведомлений через стандартные шлюзы.
Этот пункт в настройках пользователя представлен как «Additional email».
Вот тут есть список шлюзов (правда он устаревший, насколько он актуален я ответить не могу).

HABRAтопик в PDF

Reading time2 min
Views1.6K
Это еще не полноценный сервис, но…

Уже несколько раз проблема перевода html-страницы в pdf проскакивала в постах на хабре. К сожалению, все предложенные решения меня не устроили и пришла идея сделать свой сервис.

Так появилась "Сохраняшка".

Сохраняшка

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

Flattr: Новая система онлайн-платежей от создателя The Pirate Bay

Reading time1 min
Views2.5K
Петер Сунде, один из основателей всем известного торрент-трекера The Pirate Bay, занялся созданием новой системы, призванной переосмыслить оплату цифрового контента.

Flattr (игра слов flatter — угождать, льстить — и flat rate — равная стоимость) представляет собой систему так называемых социальных микроплатежей: пользователь оценивает понравившийся ему контент одним нажатием. Схема работы очень похожа на Digg — создатели и распространители контента смогут поместить на свой сайт кнопку со счетчиком нажатий, каждое из которых — небольшая часть регулярно пополняемого баланса пользовательского Flattr-аккаунта.
Читать дальше →

Делаем простое веб приложение на Spring Framework MVC

Reading time13 min
Views253K
image
В данной статье я хочу рассказать начинающим Java разработчикам, как написать простое веб приложение, используя популярный фреймворк Spring Framework.

При разрабокте приложения мы будем использовать утилиту Ant для автоматизации действий и изучим, как писать простой тест с помощью библиотеки JUnit. Весь код будем писать в Eclipse IDE.

Статья написана на основе первой части руководства «Introduction to Spring MVC». Вам достаточно иметь лишь общее представление о Spring, чтобы прочитать статью с пользой.

Так что милости просим :)
Читать дальше →

QUnit. Тестирование javascript кода

Reading time5 min
Views64K
Наткнулся вчера на этот инструмент и не смог пройти мимо, провел ночь за написанием тестов, а теперь хочу поделиться находкой. QUnit — это библиотека от разработчиков jQuery, позволяющая писать unit-тесты для кода на javascript. Удобна в использовании, ничего лишнего, осваивается за 20 минут, выгода от применения — колоссальная.

Самым нетерпеливым сразу ссылки:
Официальная документация на сайте jquery: docs.jquery.com/QUnit
Реальные примеры тестов (для модулей jquery): view.jquery.com/trunk/jquery/test/unit
Руководство для начинающих (англ): www.swift-lizard.com/2009/11/24/test-driven-development-with-jquery-qunit
Система распределенного тестирования (гениально и просто): testswarm.com

Под катом информация о преимуществах юнит-тестирования применительно к js и разбор возможностей библиотеки на примерах.
Читать дальше →

Information

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