Analitycs
вторник, 18 декабря 2012 г.
понедельник, 17 декабря 2012 г.
Apt-git
Суровые будни запаренного человека - пишу в консоли
$ sudo apt-git install makeи удивляюсь - почему не работает ;-)
вторник, 11 декабря 2012 г.
Imsanity - Wordpress Image Upload Resizer
Если дать пользователям активно пользоваться Wordpress - тут же начинается бесконтрольная загрузка больших картинок по 4-5-6 мегабайт каждая.
Да, WP использует различные размеры картинок, но их ОРИГИНАЛЫ остаются огромными, безумно расходуя дисковое пространство на сервере.
Погулив, наткнулся на кучу безумных советов и реплик, из которых "труъ" (с) вариантом оказался плагин Imsanity.
"Must have" (с), однозначно.
Да, WP использует различные размеры картинок, но их ОРИГИНАЛЫ остаются огромными, безумно расходуя дисковое пространство на сервере.
Погулив, наткнулся на кучу безумных советов и реплик, из которых "труъ" (с) вариантом оказался плагин Imsanity.
"Must have" (с), однозначно.
среда, 28 ноября 2012 г.
Ищется 3D моделер Blender
Ищется 3D моделлер, оплата - сдельная по каждому заказу, направление - скульптурка/предметка в Blender.
Если есть навык работы с моделями под 3D рост - хорошо, Украина - совсем отлично. ;-)
Писать и слать портфолио сюда.
Если есть навык работы с моделями под 3D рост - хорошо, Украина - совсем отлично. ;-)
Писать и слать портфолио сюда.
суббота, 24 ноября 2012 г.
Nginx accept() failed (24: Too many open files)
При достижения определенного уровня нагрузки на сайт Nginx начинает сыпать ошибками
2012/11/12 20:12:53 [alert] 5554#0: accept() failed (24: Too many open files) while accepting new connection on X.X.X.X:80
Диагноз
Диагноз, кстати -очевиден - слишком много открытых файловЛечение
Две строчки1) в скрипт иницаилизации - например /etc/init.d/nginx
ulimit -n 65535
2) в конфиг nginx- сразу после worker_processes
worker_rlimit_nofile 20480;
Рестарт.... и шерсть вашего любимца снова мягкая и шелковистая ;-) ;-)
вторник, 20 ноября 2012 г.
nginx Connection reset by peer) while reading response header from upstream
Иногда некоторые скрипты, запущенные на PHP-FASTCGI или PHP-FPM кидают в лог nginx странную ошибку
Вы не поверите... ;-)
Connection reset by peer) while reading response header from upstreamПогуглив - нашел много танцев с конфигами nginx и бубнами, ни один из которых не помог, кроме одного... БЕЗУМНОГО совета, который как водится - сработал в моем случае ;-)
Вы не поверите... ;-)
/sbin/service php-fpm restartУстановка Wordfence Security на Wordpress - прошла успешно ;-)
четверг, 15 ноября 2012 г.
.htaccess -> nginx конвертор
"Must have" (с) - я считаю
http://winginx.ru/htaccess
Сэкономили мне сегодня минут пятнадцать на настройку rewrite_rules. Но нужно обязательно проверять - мне например пришлось break; заменять на last;.
НО - Большое человеческое спасибо!
http://winginx.ru/htaccess
Сэкономили мне сегодня минут пятнадцать на настройку rewrite_rules. Но нужно обязательно проверять - мне например пришлось break; заменять на last;.
НО - Большое человеческое спасибо!
пятница, 2 ноября 2012 г.
Google готовится переводить Blogger для пользователя?
По некоторым косвенным данным появилось подозрение, что Google в ближайшее время собирается переводить блоги на Blogspot с помощью Google Translate.
1) Первый звоночек - в статистике Google Adsense несколько месяцев назад начали появляться зеркала блога - такие как
michael-xiii.blogspot.cz
michael-xiii.blogspot.au
и так далее.
2) Вчера заметил, что теперь блоги с суффиксом *.blogspot.com перенаправляются на домен *.blogspot.ru .
Например http://massivevoodoo.blogspot.com
А решение было бы удачное - автоперевод блогов в зависимость от языка пользователя + локализованная реклама...
Трафик растет, рекламодатели довольны, доходы Google растут... ;-)
1) Первый звоночек - в статистике Google Adsense несколько месяцев назад начали появляться зеркала блога - такие как
michael-xiii.blogspot.cz
michael-xiii.blogspot.au
и так далее.
2) Вчера заметил, что теперь блоги с суффиксом *.blogspot.com перенаправляются на домен *.blogspot.ru .
Например http://massivevoodoo.blogspot.com
А решение было бы удачное - автоперевод блогов в зависимость от языка пользователя + локализованная реклама...
Трафик растет, рекламодатели довольны, доходы Google растут... ;-)
четверг, 25 октября 2012 г.
Stream - мультфильмы для детей. Disney и Союзмультфильм в одном флаконе
На нашей видео-платформе выпущено новое приложение для iPad - на этот раз для детей и их родителей. Подписка - 3.9$ за месяц - все лицензионное и никакой рекламы.
пятница, 19 октября 2012 г.
From Skyrim to Tamriel - шаг за шагом
С каждым выходом нового DLC Bethesda потихоньку гнет свою линию...
Почитав кучу негативных отзывов про DLC: Hearthfire - удивился.
Многие игроки за деревьями и рудой не видят не только лес, но и то, что из этого леса можно будет построить. А можно будет построить многое - но только уже в The Elder Scrolls Online - ведь это готовая заготовка для целого раздела изготовления предметов, домов и прочих радостей жизни, столь любимых игроками.
Вслед за возможностью строить домики и изготавливать предметы - тянется линия добычи полезных ископаемых и переработки их в материалы - а затем приходит и экономика. Ведь чтобы добыть руду - можно искать и копать, можно купить - а можно и убить. ;-) Сразу вспоминается моя любимая когда-то Entropia Universe - с полноценным торговым рынком, завязанным на реальные деньги.
И через пару лет за несколько Iron Ingot, необходимых для достройки своего домика у озера - игроки будут убивать друга в PVP зоне ;-)
Так что Hearthfire - это не отстойный DLC: The Elder Sims - а весьма приличный такой заход на крафтинг в будущей онлайн версии игры.
Двигаемся дальше...
Только что анонсированный DLC: Dragonborn - всем известный остров Solstheim, неподалеку от Vvangerfell.
Явно прослеживается линия работы разработчиков - берем какой-то промежуточный уже ГОТОВЫЙ кусок территории, импортируем его в новый движок, затем доводим-дополировываем и выкладываем на тест большому количеству пользователей по всем у миру. Всяко проще чем рисовать с нуля ;-)
Следующий шаг - втихаря импортируем и доделываем детали на Cyrodiil из Oblivion и Vvangerfell из Morrowind.
И вот уже по факту, вместе со Skyrim - получаем больше трети территории для будущей онлайн версии. Также, и ведь из Daggerfall можно наверняка что-то позаимствовать.
Вот так вот, тихой цапой - шаг за шагом с каждым DLC мы движемся к Tamriel.
Ярлыки:
поток сознания,
games,
offtopic,
The Elder Scrolls
четверг, 18 октября 2012 г.
Язык Google Go - кто, куда и зачем?
Кстати, вот вспомнился активно продвигаемый Google язык Go. "Многие спрашивают" (с) - кто go, куда go - и главное - ЗАЧЕМ go?
Мне кажется - все гораздо проще. На японском языке - ГО - это язык...
Ну вот как то так, скорей всего.
Мне кажется - все гораздо проще. На японском языке - ГО - это язык...
- Японский язык - НихонГО
- Русский - РусияГО
- Новый типа "прикольный" язык программирования - ГО.
Ну вот как то так, скорей всего.
понедельник, 15 октября 2012 г.
Нужен тестировщик [API, mobile]
Ищем тестировщика в команду. Цитирую
"Нужно будет заниматься тестированием API, вероятно мобильных клиентов (на девайсах – Android (штук 10 планшетов), iOS, W8). Вот для этого сервиса: http://www.stream.ru/ . Хорошо, если желающий будет знать JS/Python/Bash.
Офис на Васильевском острове (7я линия). Из плюсов – дмс, отличная команда (заинтересованные в тестировании девелоперы, которые, конечно куксятся и обижаются, но слушают), хорошее руководство (по опыту скажу, очень редко встречаются люди такой квалификации и адекватности, по мне так один из огромнейших плюсов работы тут), достаточно гибкий график работы, масса оборудования (мне как гику это приятно).
Нужен средне- (а лучше сильно-) опытный тестировщик, не потерявший желания учиться и умеющий, хотя бы немного программировать (научу тестировать API через node.js – Selenium нервно курит в сторонке). " (с)
Писать можно и нужно на адрес asergeev@stream.ru
"Все вышесказанное подтверждаю, записано с его слов верно" (с)
"Нужно будет заниматься тестированием API, вероятно мобильных клиентов (на девайсах – Android (штук 10 планшетов), iOS, W8). Вот для этого сервиса: http://www.stream.ru/ . Хорошо, если желающий будет знать JS/Python/Bash.
Офис на Васильевском острове (7я линия). Из плюсов – дмс, отличная команда (заинтересованные в тестировании девелоперы, которые, конечно куксятся и обижаются, но слушают), хорошее руководство (по опыту скажу, очень редко встречаются люди такой квалификации и адекватности, по мне так один из огромнейших плюсов работы тут), достаточно гибкий график работы, масса оборудования (мне как гику это приятно).
Нужен средне- (а лучше сильно-) опытный тестировщик, не потерявший желания учиться и умеющий, хотя бы немного программировать (научу тестировать API через node.js – Selenium нервно курит в сторонке). " (с)
Писать можно и нужно на адрес asergeev@stream.ru
"Все вышесказанное подтверждаю, записано с его слов верно" (с)
суббота, 13 октября 2012 г.
Как выставить chmod 664 файлам, а 775 каталогам?
Хронический склероз - как выставить всем файлам 664, а каталогам - 775.
Может хоть так запомню - в стиле ориентира - "лежит где-то там" (с). ;-)
find ./* \( -type d -exec chmod 775 '{}' \; \) , \( -type f -exec chmod 664 '{}' \; \)
Может хоть так запомню - в стиле ориентира - "лежит где-то там" (с). ;-)
Wordpress - Briefly unavailable for scheduled maintenance. Check back in a minute.
Если вдруг ваш обнаглевший Wordpress после попытки обновления начинает грязно ругаться матом в стиле
То нужно пройти с ним в тихий уголок document_root итам ему надавать по сусалам удалить оставшийся файлик .maintenance - который и отвечает за обновление этого монстрика.
Взлетели. ;-)
Briefly unavailable for scheduled maintenance. Check back in a minute.
То нужно пройти с ним в тихий уголок document_root и
Взлетели. ;-)
понедельник, 1 октября 2012 г.
Как вывести массив из PHP в JSON без всяких UTF конвертаций?
Если нужно вывести кириллический массив в JSON для последующей обработки в Javascript, генерируя его посредством PHP, да еще и в Windows-1251 (без всяких UTF-8, encoding и прочего) - да, да - "мсье знает толк в извращениях" (с) ;-) ,
то можно воспользоваться вот такой жуткой конструкцией.
то можно воспользоваться вот такой жуткой конструкцией.
function php2js($a=false) { if (is_null($a)) return 'null'; if ($a === false) return 'false'; if ($a === true) return 'true'; if (is_scalar($a)) { if (is_float($a)) { // Always use "." for floats. $a = str_replace(",", ".", strval($a)); } // All scalars are converted to strings to avoid indeterminism. // PHP's "1" and 1 are equal for all PHP operators, but // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend, // we should get the same result in the JS frontend (string). // Character replacements for JSON. static $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"')); return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"'; } $isList = true; for ($i = 0, reset($a); $i < count($a); $i++, next($a)) { if (key($a) !== $i) { $isList = false; break; } } $result = array(); if ($isList) { foreach ($a as $v) $result[] = php2js($v); return '[ ' . join(', ', $result) . ' ]'; } else { foreach ($a as $k => $v) $result[] = php2js($k).': '.php2js($v); return '{ ' . join(', ', $result) . ' }'; } }
Страшно, да... но работает ;-). "Костыли - это кошерно" (с)
Найдено в дебрях PHP.net
пятница, 14 сентября 2012 г.
"Довакин, довакин, наал ок зин вас вахриин" (с)
Показываю нашу последнюю работу для NorthStarModels, мои - консультации в процессе разработки мастера, сборка и окраска.
Ярлыки:
figure,
garage kits,
offtopic,
skyrim,
The Elder Scrolls
суббота, 8 сентября 2012 г.
MacOS X Lion: Finder съедает всю память
После обновления MacOS X до Lion достаточно часто появляется странная проблема с Finder - без всяких видимых причин он начинает активно есть память, отъедая 1.5 и даже больше 2 Гб.
В результате - работать практически невозможно, приходится убивать процесс, но через некоторое время - проблема появляется заново.
В моем случае обновление было с версии 1.4.1 до 1.4.17 - помогло
В результате - работать практически невозможно, приходится убивать процесс, но через некоторое время - проблема появляется заново.
Решение
Обновить Dropbox. Так как у него нет автоматического обновления - старая версия может плохо работать на новой ОС.В моем случае обновление было с версии 1.4.1 до 1.4.17 - помогло
воскресенье, 19 августа 2012 г.
Почему умирают IT-блоги?
Будучи "в этих ваших интернетах" с 1997 года (с перерывами на учебу, работу и военную службу) заметил одну интересную особенность.
А именно - практически любой блог ITшника, который пишет на профессиональные темы - рано или поздно обречен на угасание и умирание.
Причины вымирания IT блогов просты как грабли
По этим причинам IT-шные блоги через несколько лет
В плане сообществ - все еще грустнее
Профессиональные сообщества - выживают только за счет user-generated контента - смотрите, кто сейчас на плаву в IT среде? ХабраХабр да Stack-Overflow либо специализированные форумы с не сильно большой посещаемостью.
Как правило - настоящим профессионалам создавать контент просто не сильно интересно (да и просто некогда). Обычно этим занимаются начинающие молодые ребята, нахватавшиеся по верхам знаний - им очень хочется почувствовать себя причастными к "элите".
Единственное исключение - это те люди, чья деятельность напрямую зависит от их ИЗВЕСТНОСТИ - это тренеры, консультанты, фотографы и так далее. То есть те люди, которые совершают сделки с большим количеством разных людей/организаций за действия, совершаемые за небольшие периоды времени.
Программисты и сисадмины к этому не стремятся - они, как правило - работают на одну-две организации долгое время, по этой причине - известность им не сильно помогает в профессиональной деятельности. Ну... если только они не закоренелые фрилансеры. ;-)
Но вот если программист хочет стать учителем-"гуру" - тогда да, блоггерство имеет смысл - генерируем контент, нагоняем учеников и продаем им секреты мастерства. Но увы - эти секреты зачастую устаревают или просто становятся неактуальными со временем - не забывайте, что если программист ДЕЙСТВУЮЩИЙ - плодить потенциальных конкурентов ему просто не выгодно.
По этому на плаву держаться либо сообщества с тысячами студентов, генерирующих сообщения ( с кнопками оценки like / facepalm, ) - в которые профессионалы иногда заходят поржать а иногда уделяют свое время чтобы написать небольшой ответ к умным вопросам (типа StackOverflow), либо небольшие групки-сообщества, зачастую закрытые от публичного доступа.
А личные IT-блоги - потихоньку вымирают, ибо многим авторам просто не нравится вещать в пустоту...
Если что - то я так... мимо проходил. Я обычный графоман - свои мысли записываю, чтобы навык их формулировать и записывать не пропадал...
Особых надежд на этот блог не возлагаю - это записная книжка ;-)
А именно - практически любой блог ITшника, который пишет на профессиональные темы - рано или поздно обречен на угасание и умирание.
Причины вымирания IT блогов просты как грабли
- Человек развивается - то, о чем он писал полгода назад активно и с горящими глазами, сейчас не представляет для него никакого интереса
- Если человеку по прежнему интересно писать - то зачастую он продолжает писать уже на другую тему, не связанную с той, с которой он начинал. Соответственно - теряются те читатели, которые подписались на него раньше из-за его профессиональных постов
- Технологии стагнируются и сворачиваются - раньше в фокусе внимания был Delphi и - где он сейчас?
- Чем более профессиональным ITшником становится человек со временем - тем меньше времени у него на написание текстов. Время - деньги ;-)
По этим причинам IT-шные блоги через несколько лет
- превращаются в "днявочки" / "жжшечки", в которых человек начинает общаться со своими знакомыми,
- тупо закрываются
- забрасываются
- продаются на сторону.
В плане сообществ - все еще грустнее
Профессиональные сообщества - выживают только за счет user-generated контента - смотрите, кто сейчас на плаву в IT среде? ХабраХабр да Stack-Overflow либо специализированные форумы с не сильно большой посещаемостью.
Как правило - настоящим профессионалам создавать контент просто не сильно интересно (да и просто некогда). Обычно этим занимаются начинающие молодые ребята, нахватавшиеся по верхам знаний - им очень хочется почувствовать себя причастными к "элите".
Единственное исключение - это те люди, чья деятельность напрямую зависит от их ИЗВЕСТНОСТИ - это тренеры, консультанты, фотографы и так далее. То есть те люди, которые совершают сделки с большим количеством разных людей/организаций за действия, совершаемые за небольшие периоды времени.
Программисты и сисадмины к этому не стремятся - они, как правило - работают на одну-две организации долгое время, по этой причине - известность им не сильно помогает в профессиональной деятельности. Ну... если только они не закоренелые фрилансеры. ;-)
Но вот если программист хочет стать учителем-"гуру" - тогда да, блоггерство имеет смысл - генерируем контент, нагоняем учеников и продаем им секреты мастерства. Но увы - эти секреты зачастую устаревают или просто становятся неактуальными со временем - не забывайте, что если программист ДЕЙСТВУЮЩИЙ - плодить потенциальных конкурентов ему просто не выгодно.
По этому на плаву держаться либо сообщества с тысячами студентов, генерирующих сообщения ( с кнопками оценки like / facepalm, ) - в которые профессионалы иногда заходят поржать а иногда уделяют свое время чтобы написать небольшой ответ к умным вопросам (типа StackOverflow), либо небольшие групки-сообщества, зачастую закрытые от публичного доступа.
А личные IT-блоги - потихоньку вымирают, ибо многим авторам просто не нравится вещать в пустоту...
Если что - то я так... мимо проходил. Я обычный графоман - свои мысли записываю, чтобы навык их формулировать и записывать не пропадал...
Особых надежд на этот блог не возлагаю - это записная книжка ;-)
суббота, 18 августа 2012 г.
Блокировка аккаунта.
Здравствуйте,
Ваш профиль будет заблокирован, в связи с жалобой, поступившей к администрации 14.08.2012.
Согласно пункту 14.3 пользовательского соглашения, Google оставляет за собой право временно приостановить либо прекратить предоставление услуг Google Mail, своевременно уведомив об этом пользователя.
Опровергнуть заявление можно, пройдя аутентификацию: http://support.google.com/cgi-bin/?start?unblocked=2008474861215660
Ознакомьтесь с пользовательским соглашением, после прохождения аутентификации. Если аутентификаци не будет пройдена в течении 2 дней, ваш почтовый аккаунт будет заблокирован.
Жалобе присвоен номер id2008474861215660.
С уважением, Google Team
Получено с адреса teame.suport.corp@gmail.com
"Божественно" (с) - я считаю... ссылка подменена, URL другой, но дизайн - один в один ;-)
Ваш профиль будет заблокирован, в связи с жалобой, поступившей к администрации 14.08.2012.
Согласно пункту 14.3 пользовательского соглашения, Google оставляет за собой право временно приостановить либо прекратить предоставление услуг Google Mail, своевременно уведомив об этом пользователя.
Опровергнуть заявление можно, пройдя аутентификацию: http://support.google.com/cgi-bin/?start?unblocked=2008474861215660
Ознакомьтесь с пользовательским соглашением, после прохождения аутентификации. Если аутентификаци не будет пройдена в течении 2 дней, ваш почтовый аккаунт будет заблокирован.
Жалобе присвоен номер id2008474861215660.
С уважением, Google Team
Получено с адреса teame.suport.corp@gmail.com
"Божественно" (с) - я считаю... ссылка подменена, URL другой, но дизайн - один в один ;-)
четверг, 9 августа 2012 г.
FileMerge exited - Compare Script Error
Диагноз
При попытке сделать Diff файла в Coda - не происходит вообще ничего.При попытке сделать Diff в Versions вываливается такая ошибка.
FileMerge exited with the following error:
You have not agreed to the Xcode license agreements, please run 'xcodebuild -license' (for user-level acceptance) or 'sudo xcodebuild -license' (for system-wide acceptance) from within a Terminal window to review and agree to the Xcode license agreements.
Решение
Собственно - нужно сделать то, чего вам и рекомендуется ;-)xcodebuild -licenseпотом Space - для пролистывания лиценций и печатаем agree - для того чтобы согласится.
Теперь - можно пользоваться. Что это было - не понял, либо обновление XCode (что вероятнее), либо Mountan Lion.
вторник, 7 августа 2012 г.
Ubuntu sudo без пароля
sudo visudoДобавляем в самый конец строчку где superpuperuser - ваш логин
superpuperuser ALL=(ALL) NOPASSWD: ALLГотово
понедельник, 30 июля 2012 г.
Stream.ru Кинотеатр на iOS с дешевым месячным абонементом
А это собственно говоря, чем мы занимаемся - обзор нашего приложения Stream.ru на iPhones.ru.
Постепенно российский App Store наполняется интересными развлекательными приложениями для любителей кино, способными в какой-то мере заменить американский iTunes, славящийся своим выбором сериалов и голливудских лент. Так, ранее на страницах iPhones.ru уже рассматривались такие приложения как MaxiFilm и aikino!, но герой сегодняшнего обзора хоть и ориентирован на ту же самую сферу и в некоторой степени пересекается с упомянутыми приложениями функционально, но при этом все же имеет ряд серьезных отличий, главное из которых — это система видеопроката.
При первом запуске клиент Stream для iOS, который является универсальным приложением, раскрывает все карты, не оставляя никакой интриги. Ну и правильно, так как без подсказки могут возникнуть вопросы, без ответов на которые разобраться с программой можно далеко не сразу.
Читаем, ставим, смотрим лицензионное видео в хорошем качестве на большинстве девайсов БЕЗ рекламы - iOS, Android, PC, TV.
Постепенно российский App Store наполняется интересными развлекательными приложениями для любителей кино, способными в какой-то мере заменить американский iTunes, славящийся своим выбором сериалов и голливудских лент. Так, ранее на страницах iPhones.ru уже рассматривались такие приложения как MaxiFilm и aikino!, но герой сегодняшнего обзора хоть и ориентирован на ту же самую сферу и в некоторой степени пересекается с упомянутыми приложениями функционально, но при этом все же имеет ряд серьезных отличий, главное из которых — это система видеопроката.
При первом запуске клиент Stream для iOS, который является универсальным приложением, раскрывает все карты, не оставляя никакой интриги. Ну и правильно, так как без подсказки могут возникнуть вопросы, без ответов на которые разобраться с программой можно далеко не сразу.
Читаем, ставим, смотрим лицензионное видео в хорошем качестве на большинстве девайсов БЕЗ рекламы - iOS, Android, PC, TV.
понедельник, 16 июля 2012 г.
Как найти долгие запросы в Tornado?
Если нужно посмотреть, какие http запросы в Tornado (ну или в чем-то подобном) выполняются больше определенного времени.
Пример лог-файла
Команда
Где 100 - минимальное время запроса
Пример лог-файла
[I 120704 17:24:50 application:264] 200 GET /session/info/ (xxx.33.251.70) 138.56ms [I 120705 18:17:15 application:264] 200 GET /catalog/xxxx/(xxx.33.251.70) 572.84ms [I 120706 12:24:53 application:264] 200 GET /session/info/ (xxx.33.251.70) 127.04ms [I 120706 13:03:12 application:264] 200 GET /session/login/ (xxx.33.251.70) 10.36ms [I 120706 13:05:04 application:264] 200 GET /session/info/ (xxx.33.251.70) 209.89ms [I 120706 13:06:59 application:264] 200 GET /session/info/ (xxx.33.251.70) 10.08ms [I 120710 16:50:53 application:274] 200 GET /session/info/ (xxx.33.251.70) 171.46ms
Команда
# grep '200 GET' ./log/webapp.log | sed 's/ms/ ms/g' | awk '{ if ($9 > 100 ) print $p0'}
Где 100 - минимальное время запроса
среда, 4 июля 2012 г.
Как восстановить ну ОЧЕНЬ большой dump MySQL?
Если дамп базы с боевого сервера MySQL весит НУ ОЧЕНЬ много, то для ускорения импорта в mysqld имеет смысл ВРЕМЕННО выставить следующие значения в my.cnf
и перезапустить сервер
Для восстановления из бекапов - этот способ не рекомендуется, он скорее - для разработческих серверов/копий.
set autocommit=0 unique_checks=0 foreign_key_checks=0
и перезапустить сервер
#sudo service mysqld restartПосле импорта дампа - нужно вернуть на место родные значения.
Для восстановления из бекапов - этот способ не рекомендуется, он скорее - для разработческих серверов/копий.
понедельник, 25 июня 2012 г.
Как перемещать 3D камеру в Blender на MacBook?
Занесла меня тут нелегкая в 3D - с которым лет 10-15 уже дела не имел ;-) Последний раз чего то пытался рисовать еще в 90-е годы в институте в VRML. Понял, что не мое - но тут - НАДО! ;-)
Скачал Blender под MacOS, поставил и вот нужно мне некоторые предметы рассмотреть в трехмерке весьма тщательно и подробно - ан нет.
Ведь на ноуте моем - ни трехкнопочной мышки - ни даже однокнопочной, если честно ;-) , ни NumPad, а с помощью touchpad - могу только крутить по одной оси, перемещать камеру вверх-вниз, вправо-влево и приближать-удалять.
Все, думаю - кранты - необходимый мне предмет ну никак не рассмотреть... ;-(
[v] Emulate 3-button mouse
[v] Emulate Numpad
В итоге с помощью цифровых клавиш 2<->8 и 4<->6 можно хоть как-то крутить камеру в трехмерке. Неудобно - но хоть как-то
Скачал Blender под MacOS, поставил и вот нужно мне некоторые предметы рассмотреть в трехмерке весьма тщательно и подробно - ан нет.
Ведь на ноуте моем - ни трехкнопочной мышки - ни даже однокнопочной, если честно ;-) , ни NumPad, а с помощью touchpad - могу только крутить по одной оси, перемещать камеру вверх-вниз, вправо-влево и приближать-удалять.
Все, думаю - кранты - необходимый мне предмет ну никак не рассмотреть... ;-(
Рецепт
Идем в User Preferences -> Input и включаем галки
[v] Emulate 3-button mouse
[v] Emulate Numpad
В итоге с помощью цифровых клавиш 2<->8 и 4<->6 можно хоть как-то крутить камеру в трехмерке. Неудобно - но хоть как-то
И да, оказывается тут еще и на Python можно писать... Ляпота ;-) ;-)
суббота, 23 июня 2012 г.
Windows Phone 7 Outlook Error Error code: 80072F0D
Если Ваш новый телефон на Windows Phone 7 не может присоединится к Exchange с самоподписанным сертификатом, выдавая что-то в стиле
То нужно попросить админа Вашего почтового сервера выслать Вам сертификат на любой другой почтовый ящик - например на gmail.com.
И установить его, собственно - прямо из письма. Краткое содержание предыдущих 500 серий.
Outlook Error Not updated There is a problem with the certificate for mymailserver.ru. Contact a support person or your service provider. Error code: 80072F0D
То нужно попросить админа Вашего почтового сервера выслать Вам сертификат на любой другой почтовый ящик - например на gmail.com.
И установить его, собственно - прямо из письма. Краткое содержание предыдущих 500 серий.
понедельник, 18 июня 2012 г.
Как скрыть версию nginx?
В конфиг nginx в раздел http добавляется строка
а в php.ini
server_tokens off;
а в php.ini
expose_php = Off
суббота, 9 июня 2012 г.
The Elder Scrolls Online: Full Gameplay
В моей жизни было три онлайн игры которые меня заинтересовали - Ultima Online, Eve Online и Entropia Universe. После Энтропии - не могу смотреть ни на одну онлайн игру, но ЭТО...
Ординаторы, Vvangefell, родные пенаты и многое другое...
"Я просто оставлю это здесь" (с)
четверг, 31 мая 2012 г.
Как передавать проекты? Или какая нужна документация?
Один старый друг задал мне хороший вопрос - как подготовить программный проект к передаче другому менеджеру - какая документация необходима?
Исходя из своего прошлого - описал ему свое видение - "на мой выпуклый глаз" (с) - как обычно это происходит в больших разработках. Потом подумал и решил оставить это тут - мало ли кому еще пригодиться?
Итак, хороший тон - есть корпоративная wiki + feature/bug-тракер, в которых ведутся документация и разработка соотвественно - они и есть основной источник всех знаний о проекте.
Большие компании обычно используют связку Jira+Confluence (но не обязательно) - есть и много других вариантов (Redmine, MantisBT и прочие). Хотя на мой вкус, сравниться с грамотно настроенной Jira, которая проинтегрирована в Конфу - не может никто ;-)
В Wiki и ведется общая документация, то есть - составляются изначальные технические требования к продукту, пишется roadmap по версиям, рисуются usecase использования и т.д.
Исходя из тех требований и версий - собственно, потом и расставляются задачи по людям в зависимости от версий и так далее.
Степень готовности проекта оценивается исходя из "выполненности" задач разработчиками и тестерами.
Все вышесказанное - хороший путь - если ресурсы позволяют делать "по уму".
Если же нет - то от продукта "в общем" необходима следующая документация - что-где-когда? - я тут смешаю технические и менеджерские знания.
Что имеет смысл запросить от предыдущего владельца?
Исходя из своего прошлого - описал ему свое видение - "на мой выпуклый глаз" (с) - как обычно это происходит в больших разработках. Потом подумал и решил оставить это тут - мало ли кому еще пригодиться?
Большие компании обычно используют связку Jira+Confluence (но не обязательно) - есть и много других вариантов (Redmine, MantisBT и прочие). Хотя на мой вкус, сравниться с грамотно настроенной Jira, которая проинтегрирована в Конфу - не может никто ;-)
В Wiki и ведется общая документация, то есть - составляются изначальные технические требования к продукту, пишется roadmap по версиям, рисуются usecase использования и т.д.
Исходя из тех требований и версий - собственно, потом и расставляются задачи по людям в зависимости от версий и так далее.
Степень готовности проекта оценивается исходя из "выполненности" задач разработчиками и тестерами.
Все вышесказанное - хороший путь - если ресурсы позволяют делать "по уму".
Если же нет - то от продукта "в общем" необходима следующая документация - что-где-когда? - я тут смешаю технические и менеджерские знания.
Что имеет смысл запросить от предыдущего владельца?
- изначальные технические требования к продукту и список того, что поменялось за время разработки - чего должно быть?
- архитектура и используемые технологии - как оно работает?
- usecases использования - желательно в UML - как используется?
- расписанный roadmap по версиям - когда, собственно?
- текущее положение проекта - что уже сделано, что осталось?
- estimate - когда сделается?
- схема и описание инфраструктуры проекта. Это список репозиториев с кодом, production/staging/test серверов, баз данных и так далее с доступами. Собственно - где и что крутится?
- How-to / база знаний - например, как настроить/развернуть новый сервер?
- имеющиеся проблемы в проекте"в-общем" и предлагаемые способы их решения - как технические, так общие и по людям, занятым в проекте (например, тестер Ипполит пьет горькую и опаздывает на работу ;-) )
Ну вот как-то так...
среда, 30 мая 2012 г.
Adsense Spam или простейший способ "слить" свой рекламный бюджет
Меня каждый раз удивляют контекстные объявления, откровенно сливающие бюджет рекламодателей.
Пример
Объявления
вылетают в трубу уходят в Google...
Пример
Объявления
- Spam Veggie Pita Pockets - Server 8
- French Fry Spam Casserole - Bake 30-40 minutes
- Spam Imperial Tortilla Sandwiches - To serve each roll in half
А простейшая настройка компании - несколько стоп-слов и фильтр по стране-языку сэкономил бы кое-кому массу денег...
Контекстная реклама - гениальное средство для законного отъёма денег у населения в карман владельца системы. Просто... и гениально.
вторник, 29 мая 2012 г.
Webmoney для iPhone
Ну в-общем, как и предполагал ранее - клиент Webmoney для iOS не заставил себя долго ждать.
Приятно.
Качать тут.
Интересно, сколько времени у них approve от Apple занял? И с какого раза
Приятно.
Качать тут.
Интересно, сколько времени у них approve от Apple занял? И с какого раза
понедельник, 21 мая 2012 г.
Memcache не запоминает данные больше чем на 30 дней (expiration time)
При при попытке сохраненить данных в Memcache на срок больше чем на 30 дней (2 592 000 секунд) - данные не запоминаются ВООБЩЕ.
Кто виноват и что делать?
Сохранять в timestamp + expiration time - на Tornado/Python это выглядит как-то такfrom datetime import datetime, timedelta import tornado.escape class MyApplication(): def get_expire_time(self): start = datetime.now() session_length = self.settings['session_time'] delta = timedelta(seconds=session_length) expires = start + delta return expires def save_session(self, data) end_time = time.mktime(self.get_expire_time().timetuple()) self.mc.set(key, tornado.escape.json_encode(data), end_time)Навеяно StackOverflow
четверг, 17 мая 2012 г.
Корректная кодировка в email - Python+UTF8
В продолжение темы корректных заголовков в письмах, отправляемых различным веб-софтом.
Вчера понадобился аналогичный вариант для Python c UTF-8 с использованием quopri
Найдено тут.
Вчера понадобился аналогичный вариант для Python c UTF-8 с использованием quopri
from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import quopri def QuoHead(String): s = quopri.encodestring(String.encode('UTF-8'), 1, 0) return "=?utf-8?Q?" + s.decode('UTF-8') + "?=" FIOin = "Андрей Петрович" emailout = "some@test.ru" emailin = "some2@test.ru" msg = MIMEMultipart() msg["Subject"] = QuoHead("Добрый день " + FIOin).replace('=\n', '') msg["From"] = (QuoHead("Ирина Федоровна") + " <" + emailout + ">").replace('=\n', '') msg["To"] = (QuoHead(FIOin) + " <" + emailin + ">").replace('=\n', '') m = """Добрый день. Это тестовое письмо. Пожалуйста, не отвечайте на него.""" text = MIMEText(m.encode('utf-8'), 'plain', 'UTF-8') msg.attach(text) print(msg.as_string())
Найдено тут.
понедельник, 14 мая 2012 г.
Как установить MySQL SSH tunnel?
Если вам нужно приконектится к внешнему MySQL, а его порт 3306 закрыт firewall, то быстрейший способ получить желаемое (кроме установки пива админу) - это установить свой собственный SSH tunnel - с гейшами и шахматами.
Делается это так.
Понятно, что SSH на firewall должен быть открыт.
После установки туннеля - уже обращаемся к самому себе:
Можно жить.
Делается это так.
ssh -f -L 8080:my.super.puper.host.ru:3306 -l remote_user another.my.super.system.org sleep 60
Понятно, что SSH на firewall должен быть открыт.
После установки туннеля - уже обращаемся к самому себе:
mysql -h 127.0.0.1 -P 8080 -u user -p database
Можно жить.
суббота, 5 мая 2012 г.
Mail.ru втихую удаляет редиректы на другие почтовые сервисы
Восстанавливая пароль на один свой аккаунт, вспомнил, что зарегистрировал его на старый ящик на mail.ru, с которого уже года 4 как идет редирект на Gmail.
Винни-Пух подождал пять минут - письма не было. Он посмотрел на часы и подождал еще 10 минут... письма не было....
После чего Винни-Пух матюгнулся и полез на web-интерфейс Mail.ru. Письмо нашлось... вместе с 4724(!!!) письмами за полгода.
Причина наипростейшая - в настройках Mail.ru редиректа ВНЕЗАПНО исчез мой адрес на Gmail. При опросе знакомых выяснилось, что случай такого деликатного слива - далеко не единичный.
Вот такая вот "честная" конкуренция - надо же убегающих пользователей хоть как-то задерживать... К слову сказать - тенденция, Facebook тоже не безгрешен.
Винни-Пух подождал пять минут - письма не было. Он посмотрел на часы и подождал еще 10 минут... письма не было....
После чего Винни-Пух матюгнулся и полез на web-интерфейс Mail.ru. Письмо нашлось... вместе с 4724(!!!) письмами за полгода.
Причина наипростейшая - в настройках Mail.ru редиректа ВНЕЗАПНО исчез мой адрес на Gmail. При опросе знакомых выяснилось, что случай такого деликатного слива - далеко не единичный.
Вот такая вот "честная" конкуренция - надо же убегающих пользователей хоть как-то задерживать... К слову сказать - тенденция, Facebook тоже не безгрешен.
понедельник, 30 апреля 2012 г.
Facebook не посылает email сообщения?
Все они были помечены как прочтенные, цифирьки-индикаторы не горели... Так как я со всеми своими партнерами общаюсь преимущественно через email - я и не знал, что эти сообщения там появились.
Оповещения на email я не получал, кстати - это точно. Единственый вариант - это то что они вдруг свалились в спам, хотя обычно этого не происходит.
Что самое обидное - в то время я еще был достаточно свободен, а сейчас - уже нет сил и возможности, да и не актуально скорей всего
Погуглив, понял, что проблема не единичная, так что теперь - буду смотреть внимательно.
воскресенье, 29 апреля 2012 г.
Востребованность Python Tornado/Twisted
Кстати - об асинхронных фреймворках и их востребованности.
Решил пробить количество вакансий на асинхронные фреймворки на Python - Twisted и Tornado.
Далее факты - и ничего кроме фактов.
Linkedin
То есть в мире - на 1 открытую вакансию на асинхронный питон приходится 100 кандидатов для twsted и 59 - tornado.
Что интересней - linkedin по запросу python django дает 208 вакансий 18469 участников - на 1 вакансию 71 потенциальный кандидат.
Что как-бы намекает...
Ну а php - вообще полный ахтунг - 2060 вакансий и 634347 кандидатов -> 308 человек на одну позицию.
Кстати, хороший Python-dev с Торнадой/Twisted по прежнему - ищется.
Решил пробить количество вакансий на асинхронные фреймворки на Python - Twisted и Tornado.
Далее факты - и ничего кроме фактов.
- python twisted - 10 вакансий против 1026 участников
- python tornado - 14 вакансий против 815 участников
HH
- python tornado - 0
- python twisted - 1 вакансия
Moikrug
- python twisted - 2 вакансии
- python tornado - 1 вакансия
То есть в мире - на 1 открытую вакансию на асинхронный питон приходится 100 кандидатов для twsted и 59 - tornado.
Что интересней - linkedin по запросу python django дает 208 вакансий 18469 участников - на 1 вакансию 71 потенциальный кандидат.
Что как-бы намекает...
Ну а php - вообще полный ахтунг - 2060 вакансий и 634347 кандидатов -> 308 человек на одну позицию.
Кстати, хороший Python-dev с Торнадой/Twisted по прежнему - ищется.
пятница, 27 апреля 2012 г.
Яндекс-Директ тестирует новый дизайн объявлений?
Сегодня несколько раз заметил случайное появление нового дизайна Яндекс-Директа на сайте.
Выглядело это так
Вид объявления - более плотный, резко изменен стиль и цвет заголовка блока, ссылка "Все объявления" выделена серым background с фигурной "фишечкой".
При перезагрузке страницы - дизайн объявления резко сменился на обычный.
Экспериментируют, видимо...
Qzminn Мы действительно тестируем новый дизайн блока на небольшой доле трафика. Для эксперимента цвета подбираются автоматически; в дальнейшем вы сможете гибко настраивать все элементы в блоке. Для нас важно ваше мнение, поэтому мы будем рады любым отзывам о новом дизайне.
среда, 25 апреля 2012 г.
MacOS X - использование mysql из Zend Server
Для использования MySQL клиента из Zend Server под MacOS вместо установленного из портов (зачем тащить еще один порт - если mysql уже есть в системе? ) нужно сделать следующее:
1) проверить есть ли /etc/zce.rc -
2) создать/отредактировать его
3) Сделать симлинк на зендовский клиент
Теперь можно работать - ну или собираем из портов, либо ставим MAMP (не люблю).
1) проверить есть ли /etc/zce.rc -
$ /usr/local/zend/mysql/bin/mysql /etc/zce.rc doesn't exist!
2) создать/отредактировать его
ZCE_PREFIX=/usr/local/zend if [ -z "$LIBPATH" ];then LIBPATH=/lib:/usr/lib:/usr/local/zend/lib else LIBPATH=$LIBPATH:/usr/local/zend/lib fi export LIBPATH APACHE_VER=2.2.11 WEB_USER=qtmhhttp WEB_GROUP=nogroup APACHE_PID_FILE= PRODUCT_NAME=ZendServer PRODUCT_VERSION=5.0.0 export INSTALLATION_UID=091708121207 DIST=pe JB_EN=true ZEND_TMPDIR=/tmp
3) Сделать симлинк на зендовский клиент
sudo ln -s /usr/local/zend/mysql/bin/mysql /usr/bin/mysql
Теперь можно работать - ну или собираем из портов, либо ставим MAMP (не люблю).
вторник, 17 апреля 2012 г.
Аниме Mass Effect: Paragon Lost - Teaser
И тут говорит, "нас так попёрло..." (с)
Предыстория качка Джеймса Веги из Mass Effect 3, как он бодался с коллекционерами, и проимел свой отряд, по поводу чего несколько рефлексировал в игре.
Вот теперь нормальные гаражки скорей всего появятся, а то e2046 зажала перелить PVC фигурку Liara T'Sony от Kotobukyia.
Ярлыки:
anime,
games,
garage kits,
mass effect,
video
пятница, 13 апреля 2012 г.
Supervisord soft-reload
Чтобы мягко перезапустить supervisord (без убивания процесса), набираем
sudo supervisorctl reread sudo supervisorctl update
вторник, 10 апреля 2012 г.
"Pretty print" - плагин JSON-formatter для Safari
Для человекочитаемого JSON в Safari ставим вот это расширение с GitHub - safari-json-formatter .
Мелочь, а приятно. ;-)
Мелочь, а приятно. ;-)
понедельник, 9 апреля 2012 г.
Ошибка: C compiler cannot create executables / can't read "build.cmd": Failed to locate 'make' in path
Если при установке/запуске MacPorts (или еще чего-нибудь консольно-компилятельного) вылезла ошибка
$ sudo /opt/local/bin/port install sshfs Warning: The Command Line Tools for Xcode don't appear to be installed; most ports will likely fail to build. Warning: See http://guide.macports.org/chunked/installing.xcode.html for more information. ---> Computing dependencies for sshfsError: Unable to execute port: can't read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it? To report a bug, see http://guide.macports.org/#project.tickets
То нужно
- установить XCode
- зарегестрироваться как разработчик (благо теперь можно это делать бесплатно)
- пойти в Xcode -> Preferences -> Downloads и установить Command Line Tools
суббота, 7 апреля 2012 г.
Немного о РИТ++ 2012
Съездил на РИТ++ 2012...
Если честно - уже лет так как 6-7 на конференции не "ездун", а тут была возможность - решил воспользоваться. Как оказалось - не зря, были достаточно интересные доклады.
Выкладываю немного фото, не все мне нравятся - ну да и шут с ним.
В первый день, понедельник 2 апреля была очень хорошая погода - поэтому решил немного поснимать столицу "на подходе".
Почему-то самым фотогеничным из докладчиков оказался финн из PostgreSQL
Аль-Джазира
Badoo
Момент, когда докладчика из Google спалили за использованием iPhone - на что он отмазался - дескать, вот и рабочий Андроид (из другого кармана) - а это подарок любимой жены на Рождество и вообще - фото на iPhone - это доказательство того, что я ДЕЙСТВИТЕЛЬНО читаю доклад на конференции в России, а не пью с друзьями в ближайшем пабе. ;-) ;-)
Из того что было полезное (лично мне) и интересное (из того что слышал вживую) - те доклады которые имеет смысл почитать-посмотреть (пока доступны только слайды, к сожалению)
Если честно - уже лет так как 6-7 на конференции не "ездун", а тут была возможность - решил воспользоваться. Как оказалось - не зря, были достаточно интересные доклады.
Выкладываю немного фото, не все мне нравятся - ну да и шут с ним.
В первый день, понедельник 2 апреля была очень хорошая погода - поэтому решил немного поснимать столицу "на подходе".
Прелюдия
Обратите внимание - у коллеги на MacbookAir крутится Windows - достаточно необычное сочетание. К слову сказать, концентрация яблок на квадрадный метр - зашкаливала, ноуты с Бубунтой были редкостью.
Докладчики
Аль-Джазира
Badoo
Момент, когда докладчика из Google спалили за использованием iPhone - на что он отмазался - дескать, вот и рабочий Андроид (из другого кармана) - а это подарок любимой жены на Рождество и вообще - фото на iPhone - это доказательство того, что я ДЕЙСТВИТЕЛЬНО читаю доклад на конференции в России, а не пью с друзьями в ближайшем пабе. ;-) ;-)
Обед
Кстати, накормить несколько сотен голодных стартаперов (и не только) - задача нетривиальная, я бы даже сказал - "высоконагруженная" ;-)
А в это время в кулуарах
Интриги, скандалы, расследования ;-)
Доклады
На client-side отделение не ходил (ну не мое ;-) ) - послушал доклады по backend, db, sysadm и немного общего руководстваИз того что было полезное (лично мне) и интересное (из того что слышал вживую) - те доклады которые имеет смысл почитать-посмотреть (пока доступны только слайды, к сожалению)
- The next generation of Google APIs / Ade Oshineye (Google)
- Окончательное решение вопроса трансляции видео в интернете / Максим Лапшин
- CUBRID in the Wild. Managing Database Performance and Scalability / Eugene Stoyanovici (CUBRID), Esen Sagynov (CUBRID)
- Новая Почта Рамблера / Андрей Шетухин (Rambler)
- DDоS: Практическое руководство к выживанию. (Часть 2: Работа над ошибками) / Александр Лямин (Highload Lab)
- Релиз-менеджмент в Badoo / Юрий Насретдинов, Илья Агеев
- 10 практических советов о том, как нанять лучшего IT-специалиста / Алена Владимирская
- Командное состояние потоков / Дмитрий Сатин (USABILITYLAB)
- HR для не HR менеджеров / Александр Зиза
Честно говоря, просмотрел еще не все слайды из пропущенного - там есть еще кое-что достойное - то, на что сходить не получилось
Тезисы всех докладов http://ritconf.ru/2012/abstracts/
Подписаться на:
Сообщения (Atom)