Илья Винокуров

Записки быдлокодера

Зачем нужны спицы DT Swiss
iv77rus
В прошлом сезоне я каждую неделю менял спицу на своем велосипеде. А это ведь еще тот геморрой: Сначала в пути у тебя прокалывается камера, т.к. "крючок" спицы обламывался у каретки и спица, как шило, пробивала камеру. Ты убираешь спицу, меняешь камеру, доезжаешь до гаража и далее: снимаешь колесо, покрышку, отвинчиваешь корзину шестерен, вставляешь новую спицу и все в обратном порядке.
Я стал профи в этом деле - сменить в пути камеру - до 30 мин, сменить спицу - до часа.

Однако, я устал от частых поломок и купил себе комплект дорогущих спиц DT Swiss (по 20р за штуку). За комплект отдал 700 рублей (проблемы были только с задним колесом). При этом продавщица магазина "Форвард", что на Тушинской, смотрела на меня с нескрываемым удивлением: какой-то странный чел покупает то, что у нее лежит и никто не берет (она из-за нескромной цены даже и не предлагает эти спицы покупателям).

И вот уже 3 недели я катаюсь на DT спицах и Бог миловал. Считаю, что затраты окупились сполна :)

PS: А еще я приобрел шины для велосипеда Continental Comfort. И понял, что для асфальта лучше сликов ничего нет - прибавка к скорости 5 км/ч :) Кстати, проколов за 1500км не было. Надеюсь и не будет. :)

Завтра последний дени в Виктори Плаза.
iv77rus
Послезавтра - первый день в Скайлайте.

Ничего оптимистичного не предвкушаю...

Поиметь MySQL на node.js
iv77rus
Решил глянуть одним глазком в сторону node.js. Здесь буду перечислять найденные модули для сего рукоблудства:

  1. node-mysql — A node.js module implementing the MySQL protocol

  2. node-mysql-native — Yet another pure JS async driver. Pipelining, prepared statements.

  3. node-mysql-libmysqlclient — MySQL asynchronous bindings based on libmysqlclient

  4. node-mysql-pool — connection pool for node.js on top of Felix Geisendörfer’s MySQL client node-mysql.

  5. node-dbslayer - ??

  6. node-nodejsdb - Конструктор запросов к БД в стиле this.query().select(["id", "user", "email"]).from("users")...

Полный зверинец коннекторов :(

Говнокод, блин... :)
iv77rus
Встала задача определить дату китайского нового года для обозримого будущего. Тыкнулся туда, сюда и не нашел вменяемого алгоритма сего действия, зато нашел табличку дат до 2100 года. В результате родился такой говнокод:
[Говнокод]
DELIMITER $$

CREATE FUNCTION `ChineseNewYear` (  YYYY INTEGER
) RETURNS DATE
    READS SQL DATA
    DETERMINISTIC
    SQL SECURITY INVOKER
BEGIN
DECLARE BUF VARCHAR(2010) DEFAULT '1900-01-311901-02-191902-02-081903-01-291904-02-161905-02-041906-01-251907-02-131908-02-021909-01-221910-02-101911-01-301912-02-181913-02-061914-01-261915-02-141916-02-031917-01-231918-02-111919-02-011920-02-201921-02-081922-01-281923-02-161924-02-051925-01-241926-02-131927-02-021928-01-231929-02-101930-01-301931-02-171932-02-061933-01-261934-02-141935-02-041936-01-241937-02-111938-01-311939-02-191940-02-081941-01-271942-02-151943-02-051944-01-251945-02-131946-02-021947-01-221948-02-101949-01-291950-02-171951-02-061952-01-271953-02-141954-02-031955-01-241956-02-121957-01-311958-02-181959-02-081960-01-281961-02-151962-02-051963-01-251964-02-131965-02-021966-01-211967-02-091968-01-301969-02-171970-02-061971-01-271972-02-151973-02-031974-01-231975-02-111976-01-311977-02-181978-02-071979-02-101980-02-161981-02-051982-01-251983-02-131984-02-021985-02-201986-02-091987-01-291988-02-171989-02-061990-01-271991-02-151992-02-041993-01-231994-02-101995-01-311996-02-191997-02-071998-01-281999-02-162000-02-052001-01-242002-02-122003-02-012004-01-222005-02-092006-01-292007-02-182008-02-072009-01-262010-02-142011-02-032012-01-232013-02-102014-01-312015-02-192016-02-082017-01-282018-02-162019-02-052020-01-252021-02-122022-02-012023-01-222024-02-102025-01-292026-02-172027-02-062028-01-262029-02-132030-02-032031-01-232032-02-112033-01-312034-02-192035-02-082036-01-282037-02-152038-02-042039-01-242040-02-122041-02-012042-01-222043-02-102044-01-302045-02-172046-02-062047-01-262048-02-142049-02-022050-01-232051-02-112052-02-012053-02-192054-02-082055-01-282056-02-152057-02-042058-01-242059-02-122060-02-022061-01-212062-02-092063-01-292064-02-172065-02-052066-01-262067-02-142068-02-032069-01-232070-02-112071-01-312072-02-192073-02-072074-01-272075-02-152076-02-052077-01-242078-02-122079-02-022080-01-222081-02-092082-01-292083-02-172084-02-062085-01-262086-02-142087-02-032088-01-242089-02-102090-01-302091-02-182092-02-072093-01-272094-02-152095-02-052096-01-252097-02-122098-02-012099-01-212100-02-09';
IF (YYYY > 2100) OR (YYYY < 1900) THEN
  RETURN DATE('0000-00-00');
END IF;
RETURN DATE(SUBSTR(BUF, (YYYY-1900)*10+1, 10));
END

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

Домашний Git репозиторий
iv77rus
Захотел вести свои проекты "по-взрослому", т.е. с контролем версий. Но, заводить отдельный git-hub сервер для этого не хотелось. Выход получился оригинальным: завел репу в Dropbox директории - это серверная репа. Склонировал эту репу куда надо - это локальная репа. А все остальное как у взрослых...
Профит - резервное копирование git реп аж в 4 места! :)

Ох уж эти туннели!!!
iv77rus
Купил себе сервер на clodo.ru. Красота - что заюзал, то и оплатил. В результате выходит до 7 рублей в день. Т.е. где-то 220 руб в месяц. XEN виртуалка, реальный IPv4.
И тут меня осенило: мне больше не нужен IPv4 от моего провайдера! Настраиваем туннель так, чтобы мой комп-роутер сам звонил на clodo сервер. А я из любого места сети могу зайти по SSH на clodo, а потом по туннелю на домашний роутер! А сэкономленные 150 руб/мес можно пустить на клодо!
Цель поставлена: строим туннель. Сначала ринулся настраивать L2TP туннель. Попробовал пакет xl2tp - не осилил настройки. Перешел на openl2tp - на виртулках осилил взвести туннель, но в бою стабильный туннель взвести не получилось. Вероятно где-то что-то режет UDP пакеты. (Лирическое отступление: бедные, бедные клиенты Билайна - уж они-то имеют секс с их долбанным L2TP интернетом!!!) Поставил OpenVPN на TCP протоколе и, о чудо, оно заработало так, как было задумано!
К тому же iptables TCP протокол фильтрует стабильнее... Потому, что у TCP протокола есть состояние ESTABLISHED...
Tags:

Делаем русскую локаль убунте на clodo.ru
iv77rus
#sudo dpkg-reconfigure locales
#sudo locale-gen ru_RU.UTF-8 en_US.UTF-8
#sudo update-locale LANG=ru_RU.UTF-8 LANGUAGE=ru_RU:ru:en_US:en
#sudo localedef ru_RU.UTF-8 -i ru_RU -f UTF-8

И не забываем про .profile
http://wiki.debian.org/Locale

Используем VISA Electron & Meastro в Интернете.
iv77rus
Раплодилось у меня пластиковых карточек: VISA Electron & Maestro. Всем известно, что оплачивать с их помощью в Интернете нельзя, но оказывается можно!
А все началось с того, что я стал искать способ оплаты услуг МГТС в обход сбера. Так вот МГТС процессится через Хронопей, который процессит и Maestro!!! Так значит можно платить в Интернете, если хочется! Второй каплей был ресурс mobile.mastercard.ru - эти ребята пошли дальше: они выпускают виртуальные MasterCard, принимая оплату с карты Maestro. При этом приходится платить большой процент за услугу. Вот так нежелание онлайн магазинов связываться с Maestro обогащает более продвинутых дармоедов.
Но я пошел дальше: попытался привязать свою Maestro к Деньги@Mail.Ru - с первого раза не получилось. После общения с Максом и месяца ожидания ДМР осилили привязку Maestro к Кошельку Денег@Mail.Ru. В результате я могу платить в магазинах ДМРами, а деньги будут списываться с моей Maestro.
Но не все магазины принимают ДМР. Некоторые принимают только Я Деньги и WMR... Я попытался привязать Maestro к кошельку Я-денег, но не получилось. Я Деньги не умеют блокировать парольную сумму на карточке Maestro. Печалька :( Но я не унывал - я попытался привязать к Я-кошельку VISA Electron... И, о чудо, получилось!
В результате я имею 2 распространенные платежные системы, которые снимают деньги с моего счета в банке, передают их магазину и при этом не берут комиссии!!!
Конечно, самое простое - это взять да купить настоящие VISA Classic и MasterCard, но мой банк уж очень прожорлив: годовое обслуживание этих карт стоит 750 руб/год, когда VISA Electron & Maestro стоят 150 руб/год.

Хостинг - сложная задачка...
iv77rus
Захотелось вдруг немного стабильного хостинга для статики. Как всегда - хочется подешевле... И наткнулся я на http://hosting.reg.ru/vps/?xen. Интересно: 128Mb хватит, чтобы постивить туда Ubunta и nginx ?
Решил провести эксперимент на виртуальной VMware. Установить убунту на 128 мегабайтах не удалось - инсталлятор вызвал панику ядра. Пришлось увеличить память до 256Мб для инсталлятора, а после установки уменьшить до 128Мб.
Убунта стартует и отъедает 80 мегабайт для своих нужд. Думаю, что система сможет жить с nginx... :)
Други, кто решал подобную задачу? Подскажите пожалуйста что можно отпилить... Устанавливал c Ubuntu 12.04 "Precise Pangolin" Minimal CD. GUI не устанавливал :)
Tags:

[reposted post]Как я обрабатываю фотографии 2.0
sergeydolya
reposted by iv77rus


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

Как я обрабатываю свои фотографииCollapse )





Я в Твиттере, Инстаграме, Фейсбуке и во Вконтакте. Присоединяйтесь!

P.P.S. Приходите ко мне в Долькабар на Маяковке по адресу Красина 7. Вкусная еда и приятная атмосфера. В баре висят мои фотографии и сувениры, которые я привожу из поездок. Сам я там бываю каждый вечер, когда не в путешествиях.

?

Log in