Analitycs

пятница, 30 декабря 2011 г.

Samsung GT-C3322 Duos + Mac + Kies + долгая телефонная история в довесок

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

неБОЛЬШАЯ предыстория

Я никогда не пользовался iPhone в течении долгого времени.

Изначально - как большой любитель Palm, пользовался их КПКшниками и отдельно мобильниками, потом достаточно долго - PocketPC (простыми и с телефонными модулями). Когда я заинтересовался Маками - у меня вовсю работал Asus 750 - достаточно неплохой по тем временам агрегат, который меня вполне устраивал.


Через несколько лет он начал издыхать, но проблема в том, что моем мозгу стоит какая-то черта - телефон более чем за 700$ должен еще как минимум стирать носки, выводить гулять ребенка, раздавать торренты и делать еще много каких полезных вещей. Моя же зеленая пресноводная жаба не понимает, что в случае iPhone за 30к ты получаешь все тоже самое, что и за 10, просто чуть лучше. Причем именно покупки Маков у нее приступов не вызывают, а вот на телефоны она почему-то она начинает меня душить, причем сильно-сильно.

В итоге, после того как мой Asus издох - плюнув и матюгнувшись я пошел и спонтанно взял один из самых дешевых Samsung - GT-E1175T за (как сейчас помню - 1390 рублей). На удивление - телефон умел не только звонить, принимать SMS, хранить контакты и играть радио, но и оказался достаточно крепкой электронной штучкой. Причем он доказал это работоспособностью в условиях эксплуатации в чрезвычайно агрессивной среде - квартире с мелким (и очень непоседливым) ребенком. В итоге - его (телефон) неоднократно роняли, грызли, кидали и есть подозрение - даже играли им в футбол.


 Отдельной скупой мужской слезы удостоился пункт меню ИГРА. Вы просекли фишку? Не "Игры", не "программы" - а именно ИГРА. Вдобавок хочу добавить, что аккумулятор живет что-то около недели до сих пор - спустя уже больше полутора лет от начала работы.

Единственный критичный для меня минус - полное отсутствие синхронизации контактов

В итоге - не телефон, а просто мега-девайс за смешную цену. Причем им было очень хорошо троллить пытавшихся меня подколоть адроидоводов - у многих из них был разрыв шаблона при виде любителя Apple с ТАКИМ телефоном.

Нет, за это время, конечно же было желание обновиться - и я решил попробовать именно  iPhone.

С ним у меня отношения странные, совсем не как у Apple fanboy - я почему-то именно к нему сравнительно равнодушен, в отличие от iPad и Маков.

Но я честно предпринял попытку - мне привезли джейлбрекнутый американский аппарат, который проработал у меня примерно 2 часа - ровно столько нужно чтобы вставить симку, немного поиграться, сделать пару тестовых звонков и обновить прошивку через iTunes... ;-( А фигли - я же привык к iPad. Ну и в итоге, разумеется, я получил характерный кирпич с яблочком на спине.

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

В итоге его, конечно, потом оживили, но я понял, что мы с ним не сошлись характерами и  теперь с ним ходит моя вторая половинка.

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

Телефоны сейчас делятся принципиально на две категории - iPhone и не-iPhone, так что мне было в общем-то пофиг - чего покупать.

Но тут, зайдя в питерский магазин я увидел вполне себе приличный телефончик от Samsung - GT-C3322 Duos, который еще и умел две симки одновременно и стоил порядка 3500р. Я возбудился - и подумал - "была не была" (с), возможно - это то что нужно. Взял не отходя от кассы, и вечером начал с ним разбираться.

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

Теперь, собственно - история

Прихожу домой, начинаю эксперименты - по Bluetooth только работа с файлам, синхрится не хочет. Хорошо, будем по официальному - скачиваю с официального сайта Samsung Kies, немного улыбаюсь - "iTunes - как ты изменилась" (с) и подрубаю телефон.

Поскрипев пару минут шайтан-программа заявила - "ваше устройство не поддерживается". Штирлиц удивился еще раз заглянул в меню телефона - "синхронизировать с Kies". Минутная пауза - еще попытка. Тоже самое - вид сбоку. У меня тихая паника - "не работает, хотя должно".

Хорошо, ищу альтернативы - качаю всяческие MissedSync, FoneSync, SyncMate и иже с ними. Ни один из них этот агрегат не видит. "Моя в панике" (с), в мозгу - "stack overflow"  - ибо написано русским по белому - "Синхрить с Kies", но - не работает.

Немного почитав и подумав - решил проверить на Windows. Раскопал на одном из внешних винтов виртуалку с Виндой, сдул с нее пыль и согнал тараканов, запускаю, ставлю Kies для Windows - телефон увиделся! Ок, ладно, начинаю перепрошить... не получается, вам не хватает 3000 Мб свободного места для обновления прошивки. Лааадно, даю образу жесткого диска побольше, перезапускаю - то же самое. То есть - обновить прошивку из виртуалки НЕЛЬЗЯ.

Ладно, проехали. Давайте займемся синхронизацией - ибо эта задача приоритетней. Правда на этой виртуалке кроме Webmoney и Kies нет больше практически больше ничего, так что всяких Outlook там отродясь не было.

Отлично, в Kies есть синхронизация с Google - логинюсь, но после 3 минут обработки - заявление - у вас дескать СЛИШКОМ МНОГО КОНТАКТОВ. В моем мозгу уже полный разрыв шаблона, но я нахожу альтернативный вариант - в Google Contacts я создаю группу людей с мобильными телефонами (поиск по  "+7 (9" )  и сохраняю ее в CSV файл.

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

Я от души выматерился и ушел спать. На все про все вчера было потрачено более 3 часов.

Итог

  • Не нужно хотеть сильно много от девайса Samsung за 3500 рублей. Лучше им - просто звонить.
  • Долгое  общение с техникой Apple наносит непоправимую психологическую травму -  настраивает на то, что все должно работать так, как заявлено. Или, хотя бы - стремиться это делать

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

Итоги 2011 года

Этот год был примечателен тем, что впервые за много-много лет я устроил себе отдых - не работал и занимался преимущественно моделями почти 3 месяца. Никогда себе такого долгого отпуска не позволял, но накопилось...


Работу оставлю за кадром, кому нужно - те знают ;-)

По технологиям - занимался десктопными приложениями для MacOS на Python+Qt, написанием различных плагинов для хостинг-систем (типа ISPManager), распределенными системами для этого же хостинга, ну и самые разные веб-сервисы - эти как обычно.

Занялся этим блогом - потихоньку пишу/перевожу. Вроде  кто-то читает... и даже есть посетители из Мексики ;-)

Модельные итоги
Самолёты - 3 штуки
Еще Ил-10, отдельной статьей не выкладывал


ВИМ/солдатики - суммарно около 10 фигур, половина - заказные.

 


Аниме и фантастика - 13 штук. Тут многое сделано вместе с женой, - преимущественно -  все на заказ старым и новым клиентам-коллекционерам фигурок.






Сложно сказать, сколько именно моего - допустим 50% от гараж китов, мелкие - все мои целиком.

БТТ - 1 танчик


Ну и вышла еще одна книжка - но уже в соавторстве с коллегами.

Что потом? Как обычно - работать - кодить и пилить ;-)

вторник, 27 декабря 2011 г.

Twisted или Tornado - без разницы - все идиоты

Внимание - Важное сообщение для блоггеров-питонистов!


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

Похоже, что уже всем стало ясно что "матч века" - Twisted.web против Tornado от Friendfeed показал, что ни одна из сторон не особо победила, но и не особо проиграла - и в тоже время стопудово - что обе стороны выглядят достаточно глупо.


Во-первых, Twisted. Сейчас моя компания использует его за небольшую часть функциональности, потому что ТОГДА - это был самый простой способ, что мы нашли для отправки трафика через различные сетевые интерфейсы на Linux машинах. Мы никогда не имели с ним никаких проблем. Единственная причина, по которой мне необходимо его когда-нибудь тронуть - это чтобы увидеть, как что работает.

Тем не менее, Twisted, вероятно, самая запарная программная библиотека. Каждый раз, когда я открываю этот код, я чувствую, что я забрел в ночной бар на берегу Джерси, где все пьяные в хлам и уже давно сорвали свои рубашки. Twisted классная библиотека, но в тоже время - НЕДОСТАТОЧНО классная, чтобы действительно называться "Twisted". Это Python- программистская версия одежды и бейсболок Ed Hardy, которая все еще висит в стороне (модная вещь, которая не используется). Когда я копался в этом коде и мои коллеги спрашивают меня, что случилось, единственным адекватным ответом было я "НЕ СЕЙЧАС, шеф - я запускаю этот хренов реактор ".

Теперь вы можете понять, почему появилась и существует такая хрень, как Tornado.

Хотя я постоянно не рекомендую делать такие вещи как Tornado - Friendfeed все-таки ее сделали. Из тех графиков, которые я видел, Tornado просто незначительно быстрее, чем Twisted на обслуживании большого количества одновременных запросов. НЕЗНАЧИТЕЛЬНО. Очевидно, в Friendfeed полагали, что достаточно небольшая разница в скорости была достаточным основанием тратить свое время и что-то переписывать заново- что обычно и делает каждый разработчик, которому становится скучно на работе. Веб-фреймворк на Python? О боже - как это оригинально! Я думаю, что это один из последних уроков книжки "Изучи Python за 24 часа".

В Friendfeed потратили много времени, пытаясь оптимизировать количество запросов в секунду, отображаемого на графике, но, возможно, им следовало бы тратить больше времени на оптимизацию ВОТ ЭТОГО графика - вместо первого:

Во всяком случае, когда речь идет о выборе Twisted vs Торнадо для веб-фреймворка, я использую Django. Почему? Потому что это работает, и мое время ценно.

Достаточно вольный перевод вот этой заметки. Спасибо автору

Кстати, достаточно интересно пишет, хотя и многие слова приходится долго думать - перед тем как перевести на русский.

понедельник, 26 декабря 2011 г.

Как избавиться от залипающих клавиш в VmWare vSphere Console для Linux Guest?

Возможно, вам знакома эта проблема...

Вы залогинены в vSphere клиент, у вас открыта Linux консоль виртуалки и когда вы что-то печатаете в ней - вместо одного символа появляются несколько одинаковых. Если честно - безумно раздражает, особенно когда нужно что-то сделать БЫСТРО на удаленной машине.

Если описать суть проблемы вкратце - по причине сетевых задержек клиент думает, что вы нажимаете клавишу несколько раз - и, соотвественно, посылает несколько сигналов терминалу - клавиша как бы "залипает".

Вот тут рецепт как это сделать, правя .vmx файл, но я предпочитаю делать это прямо в клиенте vSphere.
  • Входим в клиент и "застреливаем гостя" (с) ;-)  "Shut Down Guest" (прости, друг ;-) )
  • Клик на "Edit Settings"
  • Выбираем вкладку "Options"
  • В списке под "Advanced" выбираем "General"
  • Справа нажимаем кнопку "Configuration Parameters"
  • Клик на "Add Row"
  • Вписываем имя новой переменной "keyboard.typematicMinDelay" и значение "2000000"
  • Перезагружаем виртуалку

Теперь вы сможете Войти как "root", вместо "rrrroooooott". ;-)

Весьма вольный перевод вот этой заметки, спасибо автору.

воскресенье, 25 декабря 2011 г.

Как оптимизировать сервер? - реальные данные - теория без практики мертва

Это судьба - вслед за вчерашней заметкой про оптимизацию выделенного сервера на сайте были опубликованы весьма интересные материалы, которые привели к росту просмотров страниц на 54 тысячи - это составляет рост примерно 140%.

Итак, график LI

Скачок достаточно большой, но давайте посмотрим, как машина, настроенная по описанным ранее методикам с этим справилась - на графиках Munin еще видны вчерашние значения, так что можно сравнить с ними (хотя бы на глаз).


Трафик, прокачанный через firewall - разумеется, вырос, причем - значительно



Процессы и потоки - увеличились



MySQL немного изменился в пределах погрешности; коннекты - не изменились.





Memcache немного подрос, но незначительно


А самое главное - ЦПУ и Load Average практически не изменились

Вывод

nginx с кешом HTML страниц сильно спасает от резких скачков нагрузки от незарегестрированных пользователей.

Рискну предположить, что создатели многих супер-пупер-мега-стартапов, постоянно падающих от пресловутого великого и ужасного Хабраэффекта, об этом не знают ;-)

З.Ы. Люблю, когда теоретические выкладки подтверждаются практическими данными.


суббота, 24 декабря 2011 г.

Как настроить сервер? или оптимизация сайтов на PHP (Nginx, PHP, MySQL, Memcache)

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

Если же вы еще и не профессиональный HighLoad Linux-админ, а, например, разработчик (как я), то в процессе настройки прийдется ловить много-много граблей...  ;-)

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

Ниже рассматривается достаточно часто встречаемая комбинация для сайтов: nginx + php (nginx+apache c php немного отличается - вместо fastcgi_xxx будет proxy_xxx).

Да, и считаем, что сейчас все компоненты вашей системы (nginx, php, mysql, memcache) крутятся на одной машине - как оно обычно и бывает на частных ресурсах.

PHP


  • Пускаем как fastcgi через сокет
  • Pconnect к базе - спорно
  • Не забываем акселератор (моя юзает eAccelerator) - хотя тоже есть спорные моменты

eAccelerator


Только для production машин можно отключить проверку Modified time - это абсолютно не подходит, если на сервере идет отладка скриптов - иначе будете ловить постоянные глюки и проблемы - включать только после того как сайт стал стабилен.

eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="0"
eaccelerator.shm_only="1"

Временые диски

tmpfs для /tmp и сессий PHP - все это сносится в память, если ее достаточно. В /etc/fstab добавляем

tmpfs                   /tmp                    tmpfs   defaults        0 0
tmpfs /var/lib/php tmpfs size=200M,nr_inodes=1m,nosuid 0 0

MySQL

  • Проверяем, включен ли query кэш
  • Также используем сокет
  • Если в вашей CMS используется таблица сессий - ставим для них тип MEMORY (если нет текстовых полей) - это приведет к сбросу всех залогиненных пользователей при перезагрузке сервера, но добавит немного скорости. Ну или если это неприемлемо - то надеюсь, она уже переведена в InnoDB? ;-)
  • Определяем оптимальное количество коннектов - статистика хотя бы за месяц (я юзаю munin). Ставим в 1.5-2 раза больше среднего.
Более подробно про оптимизацию MySQL можно прочитать тут.

Memcache

Если вся солянка крутится на одной машине - то также используем коннект через сокеты (по умолчанию не используется - стоит ip адрес). В таком варианте работы memcache возможны проблемы с некоторыми средствами мониторинга memcache (которые работают также по IP).

Не забываем в PHP использовать сжатие при работе с MEMCACHE.

Nginx

Ограничиваем число коннектов и запросов, особенно на ресурсоемкие скрипты
http {
...
    limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
    limit_zone three $binary_remote_addr 10m;

Включаем кэширование для неавторизованных гостей

http {
...
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=wholepage:50m inactive=15d max_size=5000m;
        location ~ .*\.php$ {
            limit_conn three 20;
            include         /etc/nginx/fastcgi.conf;
            fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass    unix:/var/run/php-fastcgi/php.socket;
            #access_log  /var/log/nginx/domain.access.log  my_combined;
            fastcgi_cache wholepage_guest;
            fastcgi_cache_valid 301 302 304 10m;
            fastcgi_cache_valid 200 360m;
            fastcgi_cache_valid 404 5s;
            fastcgi_cache_key "$request_method|$host|$request_uri";
            fastcgi_pass_header "Set-Cookie";
            fastcgi_ignore_headers "Cache-Control" "Expires";
            fastcgi_cache_bypass $cookie_phpbb_session $arg_nocache $arg_PHPSESSID;
            fastcgi_no_cache $cookie_phpbb_session $arg_nocache $arg_PHPSESSID;
    }
Где phpbb_session - имя куки по которой идет авторизация

Все запросы с ?nocache=1 и PHPSESSID попадают на PHP-бэкенд сразу без кэша не забываем открыть скрипт, по которому идет авторизация (в том числе и всякие капчи - их можно переписать на ?nocache=1) - тут возможно прийдется немного поковыряться и в коде CMS тоже.

        location /register.php {
                limit_conn three 20;
                include         /etc/nginx/fastcgi.conf;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_pass    unix:/var/run/php-fastcgi/php.socket;
        }

Nginx - общие рекомендации

Очень нежелательно использовать location с регекспами - только простые префиксы вида
location /mymodule {}
Если от регекспов никак не избавится - то лучше их обрамлять простым location (Причина - сложноуловимые перехлесты в логике парсинга URL - кто за кем будет следовать)
location /mymodule {
  location ~ \/mymodule\/(.*)\.php$ {
    чего-то
  }

}

Отрубаем access лог для картинок

Разумеется - это только основные моменты оптимизации, на самом деле их гораздо больше. А какие трюки для уменьшения нагрузки на сервер знаете вы? Пишите в комментах.

пятница, 23 декабря 2011 г.

Как удалить MacPorts?

Недавно при миграции на новый макбук я допустил стратегическую ошибку - полностью восстановился из архива TimeMachine и наступил на грабли - старый-то ноут был 32-битный, а новый - уже 64 бита.

После 2 дней попыток обойти все баги перекомпиляции MacPort, решил их снести к чертовой матери и попробовать собрать все начисто.

Итак, как удалить MacPorts?


# port -f uninstall installed

После чего ставлю/собираю заново то, что нужно - пока "коробочка жужжит" (с) ;-)

Если же нужно вычистить всю жизнедеятельность MacPorts из системы, то


$ sudo rm -rf /opt/local \
    /Applications/DarwinPorts  /Applications/MacPorts \
    /Library/LaunchDaemons/org.macports.* /Library/Receipts/DarwinPorts*.pkg \
    /Library/Receipts/MacPorts*.pkg /Library/StartupItems/DarwinPortsStartup \
    /Library/Tcl/darwinports1.0 /Library/Tcl/macports1.0 \
    ~/.macports

Да, если у вас вторая версия - то удаляемые каталоги, разумеется, меняются на те, что у вас. 

Найдено тут, HomeBrew ставить не собираюсь. ПОКА не собираюсь, во всяком случае.

среда, 21 декабря 2011 г.

Как сохранить/восстановить настройки-сайты/Sites в Panic Coda под MacOS?

Вот всем хороша Coda, но при восстановлении данных из бекапа или переносе профиля на другую машину - часто теряются настройки проектов - Sites. А если их много... и там прошита куча паролей... то жить честному разработчику становиться совсем грустно;-(

В отличие от Transmit - в ней нет встроенного механизма бекапа/переноса, но как обычно - почти любую проблему можно решить и не "в лоб" - можно "ручками" перенести файл настроек, который находится в

~/Library/Preferences/com.panic.Coda.plist

Где ~/ ваш домашний каталог.

P.S. И да, принимаю поздравления с долгожданным новым Pro 13' (MD314RS/A). Теперь Aperture ведет себя вполне прилично - и даже матрица нормальная, без цветовых искажений ;-) ;-)

/me почти счастлив ;-)




воскресенье, 18 декабря 2011 г.

Skyrim: The Dragonborn Comes - Female Cover by Malukah

Уж на что я обычно спокойно отношусь ко всяким фэнартам и прочему user-generated контенту "по мотивам" чего-бы-то-не-было... но вот эта девушка сильно зацепила.



Our Hero, our Hero, claims a warrior's heart
I tell you, I tell you, the Dragonborn comes
With a Voice wielding power of the ancient Nord art
Believe, believe, the Dragonborn comes

It's an end to the evil of all Skyrim's foes
Beware, beware, the Dragonborn comes
For the darkness has passed and the legend yet grows
You'll know, you'll know, the Dragonborn comes

Dovahkiin, Dovahkiin
Naal ok zin los vahriin
Wah dein vokul mahfaeraak ahst vaal
Ahrk fin norok paal graan
Fod nust hon zindro zaan
Dovahkiin, fah hin kogaan mu draal

пятница, 16 декабря 2011 г.

Волшебный пендель

Решил ввязаться в небольшую сетевую авантюру - поучаствовать в блогоконкурсе "Волшебный пендель", но как известный скептик и циник - ничего хорошего от этого не жду ;-)

Цели блога на ближайший год

  • не потерять интерес и возможность вести блог;
  • писать в месяц по два более-менее приличных поста и несколько технических заметок;

Целевая аудитория блога

  • разработчики и админы, которым могут быть полезны те задачи, которые я решаю; 
  • люди, уставшие от копи-пасты в блогах;
  • мои знакомые и друзья;

Выполнение условий конкурса

Я участник самого полезного конкурса от Сергея Первушина "Волшебный Пендель для вашего блога"!. Благодаря этому конкурсу я могу стать успешным и известным блоггером. А еще я могу выиграть ценные призы:
1. 3 000 рублей и книга, единственная официальная биография Стива Джобса – “Стив Джобс. Биография“.
2. 2 000 рублей и книга, которая перевернет представления о бизнесе – “Rework. Бизнес без предрассудков“.
3. 1 000 рублей и книга, которая поможет вам потрясти воображение людей – “WOW-факторы. Пора потрясти воображение людей!“.
+ все победители получат "свежий" видеокурс от Александра Борисова "Как стать блоггером тысячником".

Определять победителей будет экспертное, независимое жюри:
1. Михаил Шакин (shakin.ru).
2. Дмитрий Голополосов (blog.dimok.ru).
3. Александр Борисов (isif-life.ru).

Ты тоже можешь принять участие в этом конкурсе. Узнай легко выполнимые условия и стань по-настоящему упешным блоггером.

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

>Я участник самого полезного конкурса

Сильно сомневаюсь в его полезности, но посмотрим...

>Благодаря этому конкурсу я могу стать успешным и известным блоггером.

Не уверен, что именно об этом я мечтал всю свою жизнь ;-)

>А еще я могу выиграть ценные призы:

Вот воистину - "nobody cares" (с). Призы как таковые - неинтересны, интересен - процесс и полученный результат эксперимента.

>Михаил Шакин (shakin.ru)

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

>Дмитрий Голополосов (blog.dimok.ru).

Уважаю как человека, успешно ведущего бизнес в Интеренете, но вот блог - увы - стал абсолютно неинтересен. Давно отписался. 

>Александр Борисов (isif-life.ru).

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

>все победители получат "свежий" видеокурс от Александра Борисова "Как стать блоггером тысячником".

Почему "свежий" написано в кавычках?  Не самый лучший способ анонса своего продукта - подобное написание эпитета вопринимается как сарказм.

Ладно, посмотрим что из этого получится...

пятница, 9 декабря 2011 г.

HeadHunt: нужны Highload Python, AppManager и тестеры

Мы ищем несколько человек - специалистов по highload Python, один application manager и хороших тестировщиков в СПб.

"Мы" - это ООО «Стрим», дочерняя компания ОАО «МТС»

Разработчик платформенных решений ( Python, Highload)

Обязанности:

  • разработка и дальнейшее сопровождение серверной части медийных сервисов для проекта Омлет.ру (в первую очередь сервиса управления и распространения легального видео-контента);
  • консультирование по вопросам высоконагруженных систем.
Требования:
  • опыт разработки на Python от 2 лет;
  • хорошее знание SQL, опыт работы, а так же оптимизации и тюнинга СУБД PostgreSQL или MySQL;
  • опыт работы с no-SQL решениями,  в проектах по запуску высоконагруженных веб-сервисов (от 500 тыс показов в сутки);
  • аналитический склад ума, коммуникабельность, знание основ ООП, хорошая математическая база;
  • дополнительными плюсами являются: знание и опыт применения различных языков программирования, новейших технологий, самообучение и саморазвитие, английский язык, опыт создания несложных UI
Если будет практический опыт Tornado/Twisted - вам большой такой плюс.

Специалист по передаче в эксплуатацию (application manager)

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

Задачи:
  • написание скриптов деплоя приложений или настройка специализированной среды развертывания приложений;
  • приемка серверных приложений после тестирования;
  • передача приложения в эксплуатацию;
  • валидация документации по установке приложений;
  • написание документации по эксплуатации;
  • анализ поведения приложений при эксплуатации, выявление сложностей эксплуатации приложений; 
Требования к кандидату:
  • владение linux на уровне базового администрирования;
  • владение windows на уровне продвинутого пользователя;
  • опыт написания скриптов на shell;
  • знание одного из языков: php, ruby, python;
  • опыт написания документации;
  • аналитический склад ума;

Специалист по тестированию

Обязанности:
  • тестирование серверных компонент видео-сервиса и всего сервиса в целом, в том числе - автоматизация тестирования и нагрузочное тестирование
Требования:
  • образование в сфере ИТ, желательно понимание основ программирования;
  • опыт функционального и нагрузочного тестирования от 2 лет;
  • хорошее знание SQL;
  • опыт работы в проектах по запуску высоконагруженных веб-сервисов (от 500 тыс. показов в сутки);
  • аналитический склад ума, коммуникабельность, знание основ ООП;
  • владение инструментами JMeter или аналогичными;
  • дополнительными плюсами являются: знание и опыт применения различных языков программирования, знание английского языка.
Условия для всех вакансий:
  • вся белая ЗП, оформление по ТК;
  • ненормированный рабочий день;
  • 31 день оплачиваемого отпуска;
  • испытательный срок 3 мес.
  • ДМС после прохождения испытательного срока;
  • корпоративная мобильная связь;
  • квартальные и годовые бонусы;

Если ваше резюме удовлетворяет требованиям на 3/4 - смело шлите его на michael(dot)neradkov(dog)gmail(dot)com. 

Буду признателен, если поделитесь информацией со своими знакомыми.

Заранее спасибо!



четверг, 8 декабря 2011 г.

Итоги 2.5 месяцев отдыха...

В сентябре я понял, что уже года 4 практически не отдыхал - и устроил себе 2.5 месяца отдыха от работы.

Итоги этого мероприятия - ниже
  • 4 заказных гараж кита
     
  •  2 самолета, один - из них заказной
     
  • Значительное количество доработок на сайте,
  • Два проекта на подработке - увы, никуда от них не получилось деться ;-)
А теперь - снова работать.

суббота, 3 декабря 2011 г.

Как сделать sharding картинок в PHP между несколькими серверами?

Сегодня небольшой хак - боюсь, что скоро их будет тут больше, чем методически грамотных решений. ;-(

Когда вам нужно разшардить картинки/статические ресурсы по разным поддоменам для ускорения загрузки - можно использовать очень-очень грязный хак.

Дано

4 поддомена:
  • http://st1.xxx.ru
  • http://st2.xxx.ru
  • http://st3.xxx.ru
  • http://s4.xxx.ru
По ним и нужно раскидывать превьюшки - особенно это актуально, когда их много на страницах.

Функция получения url для превьюшки картинки после небольшой доработки выглядит так

 public function thumb_url($file = false) {
  $path = $this->path_by_file($file);
  $url = CMS_URL.'/'.$path.'/thumbs/'.$file;
  
  $key = md5($url) & 3;
  
  $static_url = 'http://st'.($key+1).'.xxx.ru/'.$path.'/thumbs/'.$file;
  
  return $static_url;
 }

Чем плох этот вариант?

В случае если добавится еще сервер, то из-за изменения функции распределения - пропадут все кеши у пользователей - и все картинки будет грузиться заново. Неприятно, но несмертельно.

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

Короче - не делайте так.

А как правильно?

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

Секс в Skyrim: поисковики веселят

"Читал перед сном статистику посещений блога, долго думал" (с)

Ключевые слова для поиска

  • cannot use object of type example as array
  • fatal error: cannot use object of type stdclass as array
  • innodb_file_per_table что это
  • innodb_table_per_file
  • macos 10.6.8 зимнее время
  • rake time:zones moscow time zone 2011
  • как исправить время в snow leopard
  • посмотреть соедтнения netstat
  • распространение app с dylib
  • секс в skyrim
Сильно задумался... ;-)