понедельник, 18 ноября 2013 г.

Новый блог

Я потихоньку переезжаю с Google Blogger на Jekyll на GitHub Pages, хочется сделать сайт более легковесным и немного сменить направление развития.

Новый блог будет вестись на английском, основными темами будут веб, непрерывная интеграция и всякое цифровое искусство (музыка, фотографии).

Сейчас он располагается по адресу new.rudeshko.com. Там почти всё написано с нуля, поэтому подписывайтесь, комментируйте и не стесняйтесь поправлять меня и репортить баги =)

Всем хорошего дня!

четверг, 3 октября 2013 г.

Oxycanta III

В замечательный день 30-го сентября вышла очередная серия эмбиент сборника Oxycanta под номером III.



Не пропустите.

четверг, 29 августа 2013 г.

Помощь в отладке JS

Бывает очень много случаев когда хочется отладить одну конкретную функцию с нужными аргументами и простым брейкпоинтом тут не отделаешься. На помощь спешит команда debugger!


суббота, 24 августа 2013 г.

Искушённые маководы

Привет, сегодня у нас краткие заметки про настройку макоси. Пишу для себя или для любого другого любителя-виндовода, разрабатывающегося под макосью =)

вторник, 20 августа 2013 г.

Разделяем элементы массива

Последнее время меня мучила небольшая задачка по добавлению разделителей любого типа (не только строки, но и объекты, другие массивы) между всеми элементами данного массива. То есть что-то вроде Array#join(separator), но чтобы на выходе получался массив, а не строка.

Например:
[1, 2, 3] => [1, 'sep', 2, 'sep', 3]

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

Я перепробовал массу вариантов, но постоянно внутренний мир был недоволен. Хотелось, конечно, сделать в функциональном стиле, но красиво не вышло.

Совесть замолчала на следующей конечной реализации:

function insertSeparator(array, separator) {
    var index = array.length - 1;
    while (index) array.splice(index--, 0, separator);
    return array;
}

Можно легко переделать как на расширение прототипа, так и на неразрущающий вариант.

А как выглядит элегантное решение на вашем языке?

Хорошего дня!

четверг, 25 июля 2013 г.

Я никогда не знал Сегаловича. Встречал пару раз на этаже. Но он был с нами. Я чувствовал это.

пятница, 19 июля 2013 г.

Команда copy в Chromium DevTools

А вот и ещё одна команда, которая может оказаться чрезвычайно полезной как при отладке, так и при разработке веб приложений.

воскресенье, 14 июля 2013 г.

Debuggex

Debuggex — отличный сервис, который надёжно избавит вас от боли отладки регулярных выражений в вашем JS. Бесплатно и без СМС!

Например, не так то просто понять регулярное выражение для IPv4:

(?:(1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9])\.){3}(1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9])

Но debuggex мгновенное превращает это в наглядную схему:


И дальше можно пройтись по любому тексту используя это регулярное выражение шаг за шагом, выявить проблемы. Кроме того, сервис предлагает несколько рандомных совпадений, а так же различные примеры регулярных выражений (как, например, упомянутый IPv4). А вот пример для IPv6:


Есть и краткий туториал:


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

Хорошего дня!

понедельник, 1 июля 2013 г.

Мониторинг веб-сервера

Опишу неизощрённый и простой способ определения доступности веб-сервера.

Допустим у вас длительный процесс поднятия веб-сервера (например, клонирование виртуалки) и хотелось бы не пялиться в логи, а получить уведомление о доступности сервера. Достаточно в цикле выполнять команду curl, которая бы дёргала интересующий нас url:

curl -Is test.rudeshko.com

-I - вывести только заголовки ответа;
-s - silent, ничего не выводить. Я так понял, что это про ошибочный вывод, ибо над обычным (http) силы не имеет. Есть смысл использовать в скриптах в совокупности с кодом возврата команды, например, RESULT=$?:

curl -Is test.rudeshko.com > /dev/null
RESULT=$?

Осталось только набросать вокруг цикл со sleep =)

Хорошего дня!

четверг, 27 июня 2013 г.

Символические ссылки

Сегодня у нас краткая заметка про символические ссылки.
Удалить ссылку очень просто:
rm link
А как удалить файл, на который указывает ссылка? Вот так:
rm `readlink link`

Хорошего дня!

вторник, 25 июня 2013 г.

jQuery return false

Привет!

Небольшая заметка про обработчики событий в jQuery.

вторник, 2 апреля 2013 г.

Music update


Всем привет!

Немного интересных названий за последнее время.

Solar Fields - Origins #2. Просто без комментариев. До сих пор не могу выключить. На самом деле сюда вдогонку можно положить Aes Dana - Pollen, если вы нечаянно пропустили в ушедшем году. Да, вот ещё троечка лайвов с Live Nuit Hypnotique #4: Scann-Tec - Morpheus, Circular - Nordic Circles, Hol Baumann - Human (обзорная ссылочка). Меньше всего порадовал Бауманн, что-то ничего нового или интересного не сыграл. Короткий, но вполне зажигательный свежачок с парочкой запоминающихся треков: Infected Mushroom - Friends On Mushrooms, Vol. 1. Ну и к ним же New Clown in Town.   Порадовали и альтернативщики, на своей позитивной волне играют OneRepublic - Native, к ним положу и экспериментаторов Muse - The 2nd Law. Кстати, благодаря Яндекс.Музыке узнал что некто Стивен Сигал неплохо так гитарирует. Можно послушать прямо там, Steven Seagal - Songs From The Crystal Cave. Местами даже регги есть =) Отлично-эпичный отобранный кусочек из саундтрека к старкрафту, тема с заглавным названием StarCraft 2 - Heart of the Swarm. У Parov Stelar давненько уже вышел замечательный альбом The Princess в том же неповторимом стиле, что и всегда.
Внезапно новый альбом Pur:Pur - Nevertheless. Музыка у них бесплатная, любим и жалуем. Не зацепил, но сам по себе неплох. Ну и напоследок немного качественного дапстепа, последний месяц под эгидой Fonik - Oblivion и Pegboard Nerds
Хорошего дня!

четверг, 28 марта 2013 г.

График работы


Подумалось мне тут, что было бы интересно, если бы в дневную рабочую норму (8-9 часов) по закону было включено ещё и время, затрачиваемое на поездку. Тогда и сам работодатель был бы заинтересован в расположении работников ближе к работе, и люди бы так не уставали.

И овцы живы, и волки сыты)

Хорошего дня!

Google Keep

Не то, чтобы гугл кип был сильно хорош, но вот что точно хорошо, так это автоматическая синхронизация где-то в фоне. Синхронизация - прямо таки бич нашего века, даёшь гит репозиторий в каждую софтинку =)

Можно ехать в метро и действительно делать всякие заметки, как, например, сейчас) Тот же евернот мне сразу не понравился - слишком уж тяжеловесный и тормозной, постоянно ломал форматирование (даже то, которого нет); гугл докс тоже отпадает - не попишешь в оффлайне.

Ничего не отвлекает, только текст - сиди записывай! =) И не тормозит даже! В последнем андроиде заметки можно делать прямо с локскрина.

И да, сотый пост =)

четверг, 7 февраля 2013 г.

Тормозной Android

Думаю, не я один столкнулся с проблемой достаточно существенного и необъяснимого замедления операционки на базе HTC. Переломный момент я не отследил, но говорят, что подобная фигня произошла после крайнего обновления системы.

Пытаясь решить проблему я нагуглил весьма незамысловатое решение - factory reset. Ну что же, терять особо нечего, подумал я. Контакты синхронизируются, SD карточку оно не чистит, только внутреннее хранилище.

И поресетил.

воскресенье, 6 января 2013 г.

Тонкости Picasa

Пока разгребал фотки, наткнулся на очень интересную особенность Picasa и Google+ в целом.

Как вы, возможно, могли заметить на сайте picasaweb, внизу страницы указан объём, сожранный вами от бесплатных 5 Гб. Примечательна политика расходования этого бесплатного места. Мало того что оно распространяется на все сервисы Google (GPlus, Picasa, GMail, GDrive) и само по себе невероятно дёшево (100 Гб за $5 в месяц ≈ 150р, в дропбоксе - в два раза дороже), так оно ещё и тратиться очень хитро.

воскресенье, 9 декабря 2012 г.

Word Masterpiece

Вполне себе кричащий заголовок, не правда ли? =)

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

среда, 7 ноября 2012 г.

Хабраюзер

Последнюю неделю довольно активно разрабатывал это расширение для Google Chrome. Посвящается всем, кто более-менее активно читает хабр. Сегодня выкатил достаточно большое обновление и хотел бы немного рассказать о нём.

К слову, несмотря на то, что расширение называется Хабраюзер, чтобы им пользоваться, зарегистрированным хабраюзером быть не обязательно =) Достаточно быть просто читателем, на функционал это никак не влияет.

Начиналось всё с того, что я просто пытался сделать быстрый доступ к карме пользователя. Это вызвало двоякий резонанс на хабре, но я всё равно остался вполне доволен результатом. Примерно там же в обсуждении и родилась довольно банальная идея для второй фичи: подсветка автора.

Прошло немало времени, прежде чем у меня дошли руки и я реализовал этот функционал и обновил расширение (которое в то время называлось Habrauser popup).

В то время я стал замечать за собой такое поведение при чтении комментариев: листаем-листаем-листаем, считаем голоса и читаем сильно заплюсованные комментарии и их эпсилон-окрестность. А почему бы не делать это программно? Подсветим топовые комментарии!

Пока разрабатывал эту фичу, совершенно случайно наткнулся на пост, в комментарии к которому автор вопрошал, чегойто у него один из людей красненький! Я даже попытался на месте всё объяснить, но не очень успешно. Хм, людей надо как-то уведомлять об обновлениях и новых фичах. Да и может не всем по вкусу эти фичи.

Это послужило стимулом для инфраструктурной разработки: страница опций! Почему-то именно она выпила больше всего крови! Но была успешно допилена в версии 0.8.6, в которой я только и пытался уведомить о том, что расширение - это теперь не только ценный попап. Название было обновлено.

Закончив с подсветкой топовых комментариев, я стал оптимизировать. Немного покопавшись в Chrome Extension API я избавился от кучи лишнего неочевидного тяжеловесного кода, значительно упростил и включил синхронизацию настроек. Вот и опубликована версия 0.9.2 (нолик в начале ужасно читерски спасает от излишних придирок, типа: это бета-версия, чо вы хотите! Усё исправим! =) )

Надеюсь, кому-нибудь кроме меня покажется полезным =)

Собственно, установить отсюда.

Исходный код на GitHub: репортим баги, реквестим фичи, ставим звёздочки, присылаем пул-реквесты =)

Хорошего дня!

пятница, 2 ноября 2012 г.

Код в Blogger

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

Недавно задумался о том, что у гитхаба есть ничего так себе гисты (gist), с подсветкой, версионированием и форками, и их, к тому же, уж очень удобно встраивать! Посмотрим как это в будущем спасёт мир!

В самом редакторе они, почему-то, не отображаются, пустое место. Ну и фиг с ним. Заэмбеддим мальца!


И ещё сиквела!



Расскажите, как это в RSS это читается? Всё видно?

пятница, 26 октября 2012 г.

Intangible EP

Вчера положил старый вечно-недоделанный-с-2009-и-по-никогда трек на SoundCloud. Трек хороший, мне нравится, пусть и недопиленный, но вполне слушабельный.

Можно послушать прям тут:



Сегодня от нечего делать оформил 7 старых и вечно-недоделанных треков 2009 года розлива в Intangible EP (EP = extended play - это уже не сингл, где только 1-3 трека, но и не полноценный альбом, который > 70 мин). Перевёл в статус общественного достояния, а то чё я только один слушаю.

Треки все старые потому что получены с восстановленного винчестера, который подох в 2009 и только недавно дошли руки его уже наконец оживить.

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

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

Часть названий и картинку тоже придумал только вчера.

Собственно, линк на рутрекер. Enjoy'n'share.

И да... хорошего дня!