Analitycs

вторник, 10 сентября 2013 г.

Вакансии Stream.ru

Нам нужны талантливые, свободномыслящие специалисты для тестирования и развития нашей видео-платформы (Video on Demand сервис).

Открыты вакансии

  • Разработчики Python
  • Тестировщики мобилок/backend
  • Разработчики мобильных приложения
  • Инженероадмин-эксплуататор ;-)

Тестировщик Видео платформы

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

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

  • тестирование платформенной части сервиса stream.ru или клиентских приложений на iOS, Android, WP7+ и TV (на реальном оборудовании). Область зависит от навыков и пожеланий кандидата
  • анализ требований к новой функциональности
  • написание тест кейсов и составление планов тестирования
  • написание автотестов для API (node.js, coffee script) и мобильных клиентов (MonkeyTalk)

Требования:

  • опыт работы тестировщиком ПО не менее 2 лет, желателен опыт написания авто-тестов (в идеале с использованием Java Script)
  • знание одного скриптового языка программирования (например Python, PHP, Perl, Java Script)
  • знание инструментов для тестирования API (HTTP, JSON) или мобильных приложений
  • "деструктивное" мышление (мы хотим, чтобы наши тестировщики все ломали)
  • хороший кругозор и логическое мышление

Тестировщик мобильных приложений


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

  • тестирование клиентских приложений на iOS, Android, WP7+
  • взаимодействие с разработчиками и дизайнерами
  • анализ требований к новой функциональности
  • написание тест кейсов и составление планов тестирования

Требования:

  • опыт работы тестировщиком ПО не менее 2 лет
  • не менее одного года тестирования мобильных приложений на iOS, Android или WP7+
  • общие знания о JSON, HTML, HTTP.
  • "деструктивное" мышление (мы хотим, чтобы наши тестировщики все ломали)
  • знание инструментов для автоматического тестирования мобильных приложений будет плюсом
  • знание obj-c, java или c# будет очень большим плюсом
  • хороший кругозор и логическое мышление 

Разработчик Python

Обязанности 
  • Разработка premium видео платформы, сайтов и сервисов компании
Требования


  • Опыт работы разработчиком от 2 лет
  • Опыт разработки на Python / Django
  • Высшее техническое образование
  • Опыт работы с MySQL, MongoDB, Redis, Git
Возможность выбора специализации - Tornado / Django 



Эксплуататор сервисов

Обязанности:
  • Администрирование серверов, сетей;
  • Администрирование ПО;
  • Настройка мониторинга ПО;
  • Анализ функционирования платформы;
  • Предоставление отчетов по функционированию сервиса;
  • Решение аварийных ситуаций в режиме 24х7;
  • Проведение мероприятий для предотвращения аварийных ситуаций;
  • Формализация требований для улучшения функционирования и эксплуатации сервиса;
  • Взаимодействие с подрядчиком и партнёрами в рамках эксплуатации и решения аварийных ситуаций;
Требования:
  • Продвинутый пользователь *nix систем;
  • Понимание сетей;
  • Знание основ сетей GSM;
  • Понимание функционирования VAS-платформ;
  • Понимание схем предоставления VAS-сервисов;
  • Опыт эксплуатации \ поддержки VAS-платформ
Время работы – не нормированный рабочий день.
РАБОТАТЬ ПРИДЕТСЯ НЕ ПО ВРЕМЕНИ, А ПО РЕШЕНИЯМ ЗАДАЧ.

Общие условия

  • хороший молодой коллектив, интересные задачи и возможность создавать хорошие продукты
  • белая, солидная заработная плата
  • ДМС
  • оплачиваемая мобильная связь 
  • премиальный пакет (До 18% от годового оклада) 
  • офис около метро Василеостровская 
  • 40-часовая рабочая неделя, график гибкий
  • оплачиваемый отпуск 28 дней + 3 дня отгулов
  • испытательный срок 3 месяца 
  • Полная занятость, полный день
  • Присутственное время на рабочем месте с 11:00 до 19:00;
Писать на mneradkov@stream.ru 



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

Зависание Safari 6.0.x - процесс npgtpo3dautoplugin

Симптомы

Safari начинает подвисать, в списке процессов npgtpo3dautoplugin жрет по 200-300%.
После убивания процесса - он восстанавливается и продолжает тормозить

Лечение

Убить этот плагин, который по факту - является какой то приблудой для Video Google Talks.

$ locate npgtpo3dautoplugin
$ sudo rm -fr "/Library/Internet Plug-Ins/npgtpo3dautoplugin.plugin"

Источник

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

Вакансия Инженер-конструктор по разработке фототравления

В компании NorthStarModels открыта вакансия инженера-конструктора по разработке фототравления.

Требования

Навыки работы с фототравлением, работа в програмах Autocad, SolidWorks, Компас 3Д (Corel - желательно, но не обязательно).

Обязанности

Изготовление деталей для макетов фототравления. Направления - флот, БТТ, Авиация. 

Территориально - Украина, возможен переезд кандидата в Житомир, жилье предоставляется за счет компании.

 Удаленная работа - возможна. 

Официальный договор на работу с латвийской компанией.

Оплата сдельная.

Контакт northstarmodels@gmail.com

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

chef-client 11.4.4 - ArgumentError: wrong number of arguments (2 for 1)

Некоторые версии chef-client (11.4.4 в моем случае) падают с диагнозом

ArgumentError: wrong number of arguments (2 for 1)

Причина - нарушена обратная совместимость с Ruby 1.8

Лечение

Хачим Chef хирургическим вмешательством в код - facepalm ;-)

sudo nano /var/lib/gems/1.8/gems/chef-11.4.4/lib/chef/resource/lwrp_base.rb

Заменяя

-        if Resource.const_defined?(class_name, false)
+        if Resource.const_defined?(class_name)

Взлетели ;-)

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

Почему я не люблю ORM? или ORDER BY RAND() и все-все-все

Сервак тормозит так, что приехали, в базе - очередь как за колбасой в 1992 году.

SELECT TOP 1 g2_ImageBlockCacheMap.g_itemId FROM 
 g2_ImageBlockCacheMap LEFT JOIN
 g2_ImageBlockDisabledMap ON 
 g2_ImageBlockCacheMap.g_itemId=g2_ImageBlockDisable
 dMap.g_itemId WHERE g2_ImageBlockCacheMap.g_userId = 6 
AND g2_ImageBlockCacheMap
 .g_itemType = 1 AND g2_ImageBlockDisabledMap.g_itemId 
IS NULL ORDER BY RAND()

НИКОГДА!! СЛЫШИТЕ - НИКОГДА!! Не делайте "ORDER BY RAND()" на каждой странице(!) сайта под нагрузкой!!!

Екарный бабай, это ж FAQ любого собеседования.

 Вот именно поэтому я не люблю ORM и прочих "паразитов".

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

В продолжение темы MySQL InnoDB

Так как Google+ не дает ответить на комментарий, то приведу кусок одной реплики тут

Отвечаю на свой же вопрос: можно. Тут вот есть описание миграции: http://dev.mysql.com/doc/refman/5.6/en/innodb-migration.html

Однако, я все же отказался от InnoDB в пользу MyISAM, после того, как сделал 30 Гб-ый дамп InnoDB базы и она восстанавливалась из дампа 8 дней (на Core i7 с 32Гб RAM).
Советовал бы всем кто столкнется с таким выбором, забить базу тестовыми данными ожидаемого объема и попробовать с ней поиграться: сделать дамп, восстановиться и т.д. Это наилучший показатель производительности..

Сейчас я работаю с MyISAM базами по 250-500 Гб, не хочу даже себе представлять, сколько бы занял перенос базы через mysqldump при использовании InnoDb..

Не все так однозначно.

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

 >Это наилучший показатель производительности.

"Запорожец лучший в мире автомобиль, потому что влезает в самый маленький гараж" (c) ;-)
Это не так.

пятница, 10 мая 2013 г.

MacPorts port selfupdate fail

После попытки обновления MacPorts - издыхаем с предсмертными словами

--->  Updating MacPorts base sources using rsync
MacPorts base version 2.0.3 installed,
MacPorts base version 2.1.3 downloaded.
--->  Updating the ports tree
--->  MacPorts base is outdated, installing new version 2.1.3
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl

Error:/opt/local/bin/port: port selfupdate failed:Error installing new MacPorts base: command execution failed

Причина - при обновлении XCode Apple в очередной раз забывает поставить Command Line Tools. Ставим - и обновляемся нормально

Как удалить пакет через YUM без удаления других пакетов без зависимостей? (dependencies)

Ответ - НИКАК. Использовать чистый rpm

rpm --nodeps -e GeoIP


А то некоторые yum под попытку удаления GeoIP пытаются еще и nginx похерить - "за компанию" (с)

суббота, 20 апреля 2013 г.

DevOps reaction

Это 10 из пяти возможных!


http://devopsreactions.tumblr.com

Порвало в клочья!

суббота, 6 апреля 2013 г.

Как добавить Product-Per-Page для WooCommerce?

Для создания виджета Product-Per-Page (выбор количества продуктов на странице) в WooCommerce нужно использовать вот такой сниппет

Добавлять в functions.php вашей темы

вторник, 26 марта 2013 г.

Как удалить/переименовать Chef node?

Если нужно переименовать ноду в Chef
  1. [Server] - открываем админку Chef-Server
  2. [Server] - удаляем ноду из списка доступных на сервере
  3. [Node] - удаляем /etc/chef/client.pem
  4. [Node] - открываем  /etc/chef/client.rb и дописываем/правим

    node_name "my-new-node-name"

  5. [Node] - запускаем chef-client 
  6. [Server] - редактируем свежесозданный экземпляр - устанавливаем список задач на выполнение и  environment
  7. [Node] - снова запускаем chef-client 

Важно - не забываем что имя Chef-node должно удовлетворять регекспу  /^[\-[:alnum:]_:.]+$/.

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

Контекст-конкуренция - Яндекс-Директ vs ВКонтакте/SocialTank

А Яндекс-Директ начал активно шевелиться после появления SocialTank от ВКонтакте.

Осенью 2012 - внедрение RTB с переподписанием договоров у физиков, теперь вот - новые картинки в объявлениях.

Очевидно - увеличится кликабельность объявлений.

Какие еще вероятные последствия? 

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

Так же Яндекс-Директу наверняка очень хочется данных пользователей из социалочек - "ДА ПОБОЛЬШЕ" (с)
  • Google - вычеркиваем сразу
  • Вконтакте... Понятное дело - с Яндексом дружить не светит
  • МойКруг особо не взлетел - там нет никого, кроме толпы начинающих HR-менеджеров, пытающихся отчаянно захантить случайного IT-шника  ;-)
  • Так что остается только - интеграция с Facebook или Одноклассниками. 
  • Ну или пытаться делать что-то свое...
Запасаемся попкорном - и ждем развития событий дальше ;-)

Да, подробности про картинки тут.

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

Ruby: require': no such file to load -- mkmf


При установке всякой дополнительной обвязки вокруг Chef на Ruby вываливается ошибка

$ sudo gem install knife-github-cookbooks
Building native extensions.  This could take a while...
ERROR:  Error installing knife-github-cookbooks:
 ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
 from extconf.rb:1


Gem files will remain installed in /var/lib/gems/1.8/gems/json-1.7.7 for inspection.
Results logged to /var/lib/gems/1.8/gems/json-1.7.7/ext/json/ext/generator/gem_make.out

Решение

$ sudo apt-get install ruby1.8-dev

Наслаждаемся ;-)

пятница, 11 января 2013 г.

Как решить проблему с неверным product slug в Woocommerce 1.6 с WPML?

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

Мало того что WPML платный, так еще и с WooCommerce наблюдаются постоянные геморрои, особенно с permalinks/slug.

Суть проблемы

Если включена мультиязычность - то после  русифицикации URL продуктов вида

http://mysupersite.com/woocommerce/product/my-super-item/

превращается в

http://mysupersite.com/woocommerce/товар/мой-супер-товар/

и при редиректах превращается либо в 404, либо в

http://mysupersite.com/woocommerce//мой-супер-товар/

Причем по

http://mysupersite.com/woocommerce/product/мой-супер-товар/


Страница доступна

Путем гугления по запросам how to fix product slug in woocommerce wpml, how to change product slug in wpml woocommerce  выяснилось, что проблема упорно возникает в течении прошлого года у разных людей.

Рекомендации извлеченные из официального форума WPML.

  • залить исправленный .po файл - в котором нужно удалить перевод product slug - не помогло.
  • скачать обновленную версию WooCommerce Multilingual. Почему его не видел Plugin Update - загадка.  А вот это вроде помогло - взлетело. 
Да, это проверялось для WooCommerce 1.6 - для 2.0 вероятно работать не будет

В этом гаджете обнаружена ошибка