Pull to refresh
635
0
mobilz@mobilz

Пользователь

Send message

Оптимизируем рабочее время, эксперимент

Reading time2 min
Reach and readers4.7K
После прочтения статьи «Спать мало, но правильно?» проникся темой. Я очень благодарен автору. Он не сказал ничего нового, но собрал всё в одно целое и правильно подобрал слова, чтобы донести их до публики.
Я солидарен с автором по поводу кофе, сигарет и энергетиков. Никогда не питал к энергетикам страсти, курил 1 раз в жизни и бросил через 10 секунд, а кофе и подавно сделал один глоток, обжог губу и отхаркивал противный вкус еще в течении дня. Однако камнем преткновения на «сегодня» для меня стал не только алкоголь, как для автора, но и режим. Последние лет 6 я работаю на постоянной работе периодами. Когда из-за денег, когда из-за скуки. Основной мой заработок всегда оставался удалённым, отсюда и сбитый график работы.

p.s. Система предусматривает учет времени, а не уменьшение сна. Точнее систему учета времени для людей со сбитым графиком работы. Перед тем как писать коммент — прочитайте пост.
p.p.s. Время «высыпания» для каждого человека уникально, не верьте в байки про 3, 6 или 8 часов. Есть среднее число, но в целом оно уникально. Кто-то из великих спал по 4 часа, кто-то по 10, но это не мешало быть им великими =)
Читать дальше →

Сохранить HTML страницу как PDF, JPEG

Reading time1 min
Reach and readers23K
Приветствую сообщество. Думаю я не первый и не последний, перед кем встал вопрос, как же сохранить html страницу в pdf или jpeg формате. Ситуация простая. Разрабатываем crm, есть генератор документов для документооборота. Генератор, соответственно, всего на всего html шаблонизатор, адаптированный для документации. Короче говоря на выходе имеем html. Система сама рассылает заявки производителям, письма партнерам итп. Отправлять их в html виде совершенно не целесообразно, в pdf или jpeg самое оно.
Стандартные консольные средства конвертации html во что-то более «печатоудобное» не подошли. Это и понятно, верстка многих документов достаточно специфична и в любом случае без процессора (в нашем случае браузера) не обойтись. Было опробовано куча соответствующего ПО и модулей. От php скриптов до консольных приложений. Ближе всех оказался dompdf, однако он не был идеальным + частенько сбоил, что в нашем случае недопустимо.

В итоге пришли к решению, что ничего не остается, как брать виндовый сервак, ставить его в нормальный ДЦ, поднимать там фаерфокс итп и делать сервис.
Уважаемые знатоки, внимание вопрос :) Не изобретаем ли мы велосипед? Может кто знает такой сервис, куда денежков заплатил, а на выходе из html получаешь копию firefox-like но уже в jpeg и pdf?

p.s. соответственно советы и способы типа «а ты сверстай документы не firefox-like, а как понравится консольному софту» не годятся, т.к. речь именно о достаточно простом генераторе документов. Не заставлять же каждого пользователя crm учить особенности рендера того же html2ps, а с вёрсткой под великую тройку справится и начинающий верстальщик.

Пост — вопрос

Reading time1 min
Reach and readers747
Приветствую.
По долгу службы иногда приходится давать оценку сторонним разработкам, людям и так далее. Сегодня был в крупной конторе, лидере рынка в своей области. Обычно моя задача в подобных мероприятиях подобна поиску иголки в стоге сена — я ищу издержки, дыры в бюджетах и лишних сотрудников. Довольно трудно найти изъяны в системах, которые поднимают и ведут вменяемые, умные люди. Однако сегодня было исключением. С порога тех.руководитель начал говорить, что их узкое место — RnR, т.е. бэкенд. Я уточнил, действительно ли это не база. Однако посмотрев на вывод htop (linux на борту) действительно увидел, что 2 сервера (по 6 гигов оперы и по 2 ксеона последнего поколения с 4-мя ядрами) загибаются под «тяжбой» проекта с посещаемостью 30к хостов в день и 300к хитов в день. Причем узким место действительно является RnR, судят по htop. Ну, или кривые руки разработчика.
Собственно поэтому и вопросы к вам, уважаемые коллеги, т.к. у меня пробел по части RnR:

1) Действительно ли RnR способно жрать столько программного процессорного времени, или же искать узкие места в ПО? И если искать, то чем? Существуют ли дебагеры?
2) Проблема есть, но решить её надо быстро, до декабря. Существуют ли какие-то акселераторы для Ruby? Кеши?
3) В качестве решения проблемы их техруководителем предложено купить дорогущий сервер 100к+ рублей для его дальнейшей кластеризации с другими. Я предлагаю за те же 100к купить 4 слабых сервера, накинуть на них RnR, сурсы и балансировать нагрузку. С одной стороны это переплата за место в стойке, с другой это явно лучше, чем один мощный сервер. С моей точки зрения.
Читать дальше →

Были получены исходники 3300 глобальных интернет-проектов

Reading time5 min
Reach and readers287K
Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
Читать дальше →

Zend 5.5 + Windows 7

Reading time2 min
Reach and readers2K
После установки Windows 7 x64 на десктоп появилось очень большое желание не сносить его. Работает быстро, не глючит, красивая в конце концов + наконец-то по уму разграничены права пользователей итп. В общем ну прям всем устраевает… Кроме одного…
Так уж повелось, что на Zend Studio Client сижу еще с 3-ей версии и всем она меня устраевает. Однако 6-ая и 7-ая ветка на еклипсе получилась на удивление тормозной, сырой и глючной. Попытки запустить Zend 5.5 на Windows 7 не увенчались успехом. Zend ни слова не говоря просто вылетал на этапе загрузки. Решил, что я устарел и пора привыкать к новым технологиям.
Порядка 2-3 недель я тестировал Zend 7, PDT, NetBeans и прочие там Aptana. Zend 7 сразу вызывала отвращение, очень тормозная. PDT показалась интересной штукой. Да и вообще eclipse в общем понравился. Поставил пару плагинов и казалось вообще то что надо. Однако быстро надоело, что почему-то постоянно сбивается кодировка. А потом и вовсе eclipse перестал работать. При попытке открыть любой php файл, писал что мол TextEditor error и усё тут. Даже выгружаться нормально не мог, при попытке закрыть вылетала ошибка и он не закрывался =)
NetBeans показался сначала очень интересным, однако отказался нормально работать с sftp (ну вот такой я параноик), поэтому так же отправился в корзину. Aptana по сути является аналогом PDT и наследовала всё те же баги, с которыми я столкнулся в eclipse и PDT.
Но прежде чем орать «Я идиот, убейте меня кто-нибудь!!1!11» и поставить что-то вроде phpEdit от отчаяния, я всё же решил попробовать разобраться с Zend 5. Вспомнил, что одному подчинённому в офисе ради теста поставил Windows 7 x32 на десктоп, у него тоже были проблемы с Zend 5, однако она загружалась, просто интерфейс не пахал. Немного прикинув тему, до меня дошло, что возможно просто стоит обновить jre, шедший в комплекте с Zend 5, и вот ведь счастье, заработало!!!
image
Читать дальше →

Звуки при событиях — это просто

Reading time3 min
Reach and readers2.2K
Современные проекты всё больше и больше персонализируются. Один из последних проектов предполагал постоянное присутствие пользователя на сайте. Пользователь является диспетчером и отслеживает появление новых заказов, участвует в аукционах итп. Помимо уже стандартных SMS уведомлений итп, хотелось сделать звук, т.к. пользователи действительно постоянно находятся на проекте. Самым простым способом показался флеш. Флеш уже есть почти у всех, все смотрят ютуб, играют в фермера и так далее. И не смотря на мои антифлешевские взгляды, решил что для проигрывания звука флеш подходит лучше всего.
Однако при попытке написать флешку для проигрывания звуков я вдруг вспомнил, что не работал с флешем уже лет 5 =( и вместо того, чтобы написать свой компонент, стал искать готовые…
Читать дальше →

Жизнь без IE6

Reading time1 min
Reach and readers1.4K
При обновлении очередного проекта решил полностью забить на IE6. Его доля сильно падает, а времени на оптимизацию под этот браузер уходит достаточно много. Сначала всё же хотел оптимизировать сидеть, но потом решил что моё время дороже. Не смотря на то, что верстаю уже давно, IE всегда преподносит что-то новое =) Да и профиль не мой немного.
Однако совесть не позволяла выгрузить простой текст типа «обновите браузер», хотелось сделать доступно и понятно. Сделал, получилось приятно, настолько приятно, что захотелось поделиться =) Владельцы IE6 принудительно видят такую картину, при попытке обратиться к любой станице сайта
image
Читать дальше →

Плавающие якоря

Reading time1 min
Reach and readers9.3K
Верстал комменты для очередного проекта. Всегда напрягало, что якорь в комментариях опускал экран до нужного комментария «впритык», тогда как с эстетической точки зрения было бы приятно, если бы сверху от границы экрана до самого комментария все же был бы какой-то отступ.
image
Читать дальше →

Элементарные PHP скрипты для резервного копирования данных

Reading time2 min
Reach and readers11K
В ответ недавнему топику о бэкапах на Bash. Топик полезный, без сомнений, однако я хочу продемонстрировать более гибкий способ…
Основной недостаток приведенного способа в топике выше — ненадобность. Ну честно, кому надо бэкапить файлы и базу одновременно? Т.е. бэкапить каждый день и файлы и базу — глупо, но и делать раз в месяц это глупо. Поэтому мой пример я разбил на 2 части. Отдельно делаем бэкап базы ежедневно и отдельно делаем бэкап файлов раз в неделю.
Соответственно, нам понадобится php на сервере. Что в наше время уже не роскошь, а банальщина.
Читать дальше →

Недостартап, рунет.

Reading time2 min
Reach and readers701
Всем привет. Ненавижу недоделанные проекты, ненавижу надписи вроде «оставте ваш email тут и мы вас известим…» итп. Однако, данный проект, возможно, будет кому-то полезным. Т.к. денег на его развитие пока нет, показываю что есть.
http://whoisyou.ru, если кто заинтересовался инвестированием — изучайте 404 страницу проекта. Их там много =)
Идея родилась давно. Поддерживал несколько больших проектов, которых постоянно парсили. Найти IP не проблема, но понять по IP кто это был — интересней, но сложнее. Все мои попытки найти ip2domain сервис ничем не кончились =( Сделать свой подобный сервис тогда казалось бредом, пинговать 2 миллиона доменов…
Читать дальше →

Полезный совет: Аватары

Reading time2 min
Reach and readers4.8K
Не переставая петь хвалебные песни nginx`у, представлю публики моё решение для очень простого отображения аватаров на проектах.
Задача простая — вывести аватар пользователя, если он у него есть и вывести дефолтовый, если нет аватара у пользователя.
Допустим, все аватары физически у нас хранятся в /img/avatar/, без разницы с какими именами. Решение «в лоб» будет тоже простым — писать в базу, загрузил пользователь аватар или нет. Но это потребует каждый раз обращаться в базу. Конечно, можно юзать мемкеш и прочее, но есть более элегантный выход из ситуации, на мой взгляд ­— переложить эту задачу на плечи nginx`а. И nginx очень легко с этим справляется:

error_page 404 =200 /img/avatar/default.gif;

Читать дальше →

Nginx UploadProgress Module

Reading time2 min
Reach and readers7.5K
Модуль для nginx, с помощью которого достаточно просто мониторить прогресс загрузки файлов на сервер. Ранее были подобные решения, через модули к php, ruby, через стороние скрипты, flash объекты итп. Автор предлагает универсальное решение на уровне web сервера. Подробную информацию и инструкции вы можете найти на wiki.codemongers.com (кстати, один из лучших проектов, посвященных nginx`у). Тут я хотел обратить внимание на другое.
Использовал модуль совместно с nginx upload module, работает на ура. Однако файлы, что я заливаю, достаточно большие (поддерживаю файлообменник), пытался запихнуть в директиву upload_progress размер обрабатываемых файлов — 1g, при релоаде nginx`а получил варнинг, мол непонятный размер вы поставили. Странно, т.к. в client_max_body_size у меня стоит 1g и нормально себя чувствует. Глянул исходники nginx`а и модуля, выяснелось, что модуль обрабатывает директиву upload_progress функцией ngx_parse_size, тогда как сам nginx обрабатывает ту же client_max_body_size соседней функцией ngx_parse_offset, функции абсолютно идентичны (на мой взгляд), разве что первая не понимает размерность «g», а вторая понимает =) Для того, чтобы модуль нормально обрабатывал размерность в директиве upload_progress, надо в исходнике модуля (ngx_http_uploadprogress_module.c) в строчке 1151 исправить ngx_parse_size на ngx_parse_offset.
В общем это не критично, т.к. директива нормально обрабатывает значение 1024m, но как-то нелепо выглядит подобная запись =)))
А вообще модуль очень понравился, очень удобное решение, не зависящее от бэк-енда.

update: Внимание, совершил глупую ошибку. Стыдно. Деректива upload_progress задает не максимальный размер загружаемых файлов для указанной зоны, как я думал, а размер оперативной памяти, выделяемой для обсчета одной загрузки в эту зону. Значение для этой дерективы — 1,2m, максимум 10-20m. Задавая 1g вы будете тратить гигабайт оперативки на каждую загрузку. Стыдно, ошибку не повторяйте.
p.s. тем не менее баг найден, автору сообщил, он обещал исправить.

Старт блога

Reading time1 min
Reach and readers1.1K
Странно, что подобного блога еще нет на Хабре. Имею честь начать.
Я не претендую на гуру nginx, но использую его уже значительное время и имею представление, что это.
Всем привет, вливайтесь.

Программисты. Отношение между сотрудниками и владельцами проектов.

Reading time1 min
Reach and readers631
Всем привет.Я обычный разработчик в фирме, базирующейся на интернет решениях. Разве что фирме уже за 10 лет и у неё всего один проект, а я специалист широкого профиля, заниющийся и разработкой, и версткой и менеджментом. У нашего проекта порядка 20 лямов хитов в сутки и мы являемся лидером своего рынка. Всего нас человек 10 в команде, владелец один. Его доходы я не знаю, но в одном из выпусков Forbes, не так давно, он был на обложке. Я получаю среднерыночную зарплату php-разработчика по Москве. Конечно, у меня есть свое дело, свои проекты + старые, удаленные связи, я не бедствуют. Но меня раздражает то, что на крупном проекте, где я играю не малую роль, я получаю среднюю зарплату. Скажите пожалуйста, бизнесмены, что движет вами, когда вы покупаете себе последние топовые модификации люксовых иномарок, при этом, считаете, что в вашей ИТ конторе программисты — это рабы и дешевый рабочий класс. Про системных админов, которые поддерживают десятки серверов, я молчу. Да, черт подери, это крик души, но разве вы видели старых веб-разработчиков? В очередной раз, когда вы решите отказать повысить ЗП своим разработчикам, задумайтесь, а что будет, если они уйдут к конкурентам и начнут реализовывать ваши проекты.Арбайтен.

Создание и управление виртуальными командами

Reading time6 min
Reach and readers2.3K
Крис Найджел создал Wildbit, и вот уже 8 лет работают виртуальной командой над Beanstalk. Он живет в Филадельфии а его команда — по всему миру. Ему точно есть что сказать по поводу виртуальных команд, и он сделал это в данной статье.
Меня постоянно спрашивают «Как вы управляете виртуальной командой и, фактически, добиваетесь поставленных целей?». В Wildbit каждый из десяти членов команды работает из дома или из коворкинг центра. Мы разбросаны по четырем странам и многим часовым зонам. Даже с такими условиями мы можем сделать многое и получать удовольствие от нашей работы.
До того как написать эту статью, я не слишком задумывался о том как мы работаем в виртуальной среде. Моим первым ответом был — простая практика и много ошибок. Знания добытые из этих ошибок могут быть сведены к трем главным направлениям: люди в команде, процессы управляющие командой и коммуникация.
Читать дальше →

munga.ru, намек на соц.сеть для коворкеров.

Reading time3 min
Reach and readers879
Всем привет.
Когда я года 4 назад переехал в Москву, жить приходилось кое-как, кое-где. На последние 150 рублей с другом мы купили телефонную разетку для интернета, вилку и продуктов на неделю. Тогда мы жили в бутово, на м. «Бунинская аллея», за домом, квартиру в котором мы таки сняли, был только лес и трасса.
Каждый раз, проезжая над пустотами бутово на воздушном метро от какого-нибудь заказчика, я смотрел и думал: «Хорошо бы тут построить большой офис для веб-разработчиков всех мастей. Чтобы люди со всей страны могли приехать, тут бы у них были маленькие комнатки для сна и уединения + офисные места для работы… Они бы искали себе работу, либо бы брали её из общей биржи офиса, либо делали бы вообще свои проекты. Централизованное питание, нормированный режим, общение с себе подобными, а главное — не надо пытаться выживать и доказывать каждому заказчику, что ты действительно ему нужен…». Мы жили в том районе порядка полугода, пока не кончились деньги и мы не перестали платить за квартиру. И каждый раз, проезжая на воздушном метро, я всегда думал о таком офисе. В какой-то момент времени, глядя в окно, я начал рисовать его себе…
2-3 месяца назад на хабре я прочитал о новом способе работы фрилансеров — co-working`е, сердце мое забилось…
Читать дальше →

Штаны для Гика

Reading time1 min
Reach and readers1.5K
Дизайнер Эрик Де Нийс разработал джинсы для тех кто не смыслит жизнь без компьютера. Оригинальная, главное прогрессивная конструкция штанов включает в себя:
Клавиатуру, мышь на модном ремне и джойстик для геймеров, который прячется за молнией.

Читать дальше →

Ручной зверек

Reading time1 min
Reach and readers1.4K
Совсем недавно во многих интернет-магазинах появился интересный гаджет — оптическая мышь, надеваемая на указательный палец. При цене чуть больше $17 у вас появляется большая свобода действий, чем с обычной мышкой. Вы больше не будете шарить в темноте разыскивая манипулятор и ваши руки всегда будут свободны.
картинка


Читать дальше →

Information

Rating
Does not participate
Registered
Activity