← All posts tagged работа

cancel
работа Сырые данные гзипом сжимаются в 30 раз. Это круто, нужно в тридцать раз меньше дискового пространства для их хранения.
cancel
работа Взялся было опять за формализацию одного легаси-говно-проекта. Такого легаси, что даже уже не воняет. И опять забил, жуткие мизантропические мысли посещают при попытке это говно описать. Сначала попытался в виде блок-схемы сделать, но схема разрослать до абсолютно непомерных размеров, после чего стало понятно, что так дело не пойдёт. А других способов описания не знаю, и от этого ещё мизантропичнее становится.
cancel
работа Попытался втащить в проект babel, чтобы файлы перевода процессить подёргиванием за методы babel. И понял, что это всё тлен и ад, проще таскать за собой cygwin с gettext-утилитами, чем babel встроить в текущее окружение. Мне оттуда нужен по сути только merge, однако он так туда вхерачен, что отдельно его никак не вытащить. Печально, придётся велосипедить дальше.
cancel
работа У нас сейчас в качестве прослойки между XML-RPC сервисов и браузером используется PHP, это именно что прослойка, там минимальный слой бизнес-логики, по сути нужный для скрытия части API-обвязки. И вот этот PHP нас так конкретно заебал, что словами не передать.
Он у нас исторически завёлся, тогда других вариантов почти что и не было, а вот теперь очень хочется от него избавиться, ибо проблем уже больше, чем пользы. Коллега предложил заебенить эту прослойку на основном языке продукта — на ерланге, раньше я её отметал, а теперь вот уже всерьёз рассматриваю.
Заодно окончательно решил всю API-документацию из confluence перетащить в sphinx и завести разные бранчи для разных версий/модификаций. А ещё завести git-репозиторий, где всё это говнище хранить, завести док-сервер, где будет сборщик доков с разграничением прав доступа по доменному аккаунту.
И я прям даже не знаю, что ещё сделать такое клёвое.
cancel
работа Заебашил новую локализационную поебень в проекте, добавил поддержку plural forms, в gettext-стиле, но более адекватно, ближе к Qt, чем к gettext. Теперь вообще заебись счастье есть.
cancel
работа Меня каждый раз ставит в тупик вопрос типа «О, а на чём ты программируешь?»
До сих пор не придумал вменяемого ответа.
cancel
работа Документирование и описывание всего адске рулит. Я во всём своём опенсорсе делаю детальнейшие инструкции к нетривиальным вещам. Впрочем, и к тривиальным тоже, чтобы не было мучительно больно вспоминать, как же дев-версию программы развернуть.
Вот примерно в таком стиле: bitbucket.org
И это реально ОЧЕНЬ полезно, в первую очередь для себя самого.
cancel
работа Подсчёт статистики дописал. Посчитал времена, огорчился: на обработку сырых логов уходит примерно в 4-5 раз больше времени, чем на операции с базой. Очевидно, нужно что-то оптимизировать. Весь подсчёт базируется на dict'ах, не факт, что именно в этом проблема, но вдруг.
Однако dict'ы — удобны и понятны. Менять их на что-то велосипедное совсем не хочется.
Как работает система, я уже описывал: приезжают сырые данные, которые слегка препроцессятся и записываются в буфер в виде построчных json-ов (т.е. одна строчка — один json-объект, почему именно json был выбран, объяснять тут не буду, но это специально и осознанно по куче причин); затем из буфера строчки выгребаются и считаются, затем обновляется база.
Вот вроде тупейшая задача, а на неё ушло суммарно недели полторы рабочего времени.
cancel
работа программинг После долгих размышлений и прикидок решено было сделать так:
* dbconfig-common фтопку, он абсолютно непрозрачен и непредсказуем для пользователя;
* поэтому велосипедим: в postinst вставлям вызов скрипта инициализации субд, который будет делать стандартные вещи молча (создавать юзеров, базы, генерить пароли и конфиги);
* добавляем признаки-маркеры наличия инициализированной бд, если при установке они есть, то шаг инициализации пропускаем.
Такой вариант кажется совсем оптимальным.
P.S. Нужно уже тег *маинтейнинг заводить, похоже.
cancel
работа Нельзя пускать разработку продукта на самотёк и делать только dev-only версию. С самого начала нужно делать продукт, чтобы его можно было развернуть на другом сервере. Как минимум нужна детальная инструкция по развёртыванию. Иначе будет жопа. Самая типичная — внезапно (даже не так, ВНЕЗАПНО) окажется, что реально продакшн окружение разительно отличается от девелоперского. Другая типичная: нужно продукт потестировать на другой машине (или у другого разработчика, который является, скорее, пользователем этого продукта, чем разработчиком); и тут тоже внезапно выясняется, что для развёртывания на другой машине нужно основательно понаоткусывать мозгов у разработчиков продукта, в процессе обязательно будет что-то не работать, внимание отвлекается, раздражение, ненависть.

Что конкретно было у нас: человеку дали задание написать веб-интерфейс на похапе, он его начал херачить в development mode, т.е. тупо поставил локально апач и попёр там херачить код. А на продакшне апача-то нет и когда разработчик сказал, что типа готово, оказалось, что нихера вообще не готово и понадобилось несколько месяцев, чтобы довести это до ума.
cancel
работа PHP-программист отвалился, опять ищем.
Точнее, даже не так, договорились уже обо всём, но вместо первого дня работы товарищ позвонил и сказал, что передумал.
cancel
работа Понадобилось тут поработать с административно-территориальным делением РФ. Узнал много нового. Например, что Читинской области нет. И Пермской области тоже нет. Есть Забайкальский край и Пермский край. Ну и ещё куча всего подобного. Однако.
cancel
работа Мы опять ищем PHP-программиста. Новосибирск, академгородок, работа только в офисе, полный рабочий день, график работы настраиваемый. Внутренняя разработка и поддержка существующих систем (сайт, sugarcrm, остальные внутренние веб-системы). Ничего особенно сложного, экстремального опыта и супер-пупер-гуру не требуется.
По деньгам — 30-40 т.р.
cancel
работа программинг Избавление от ref в ExtJS3-кода для средней сложности проекта заняло ровно одну человеко-неделю. Следующий мажорный этап — исправление сторов, тут пока оценить сложно, но предварительно кажется, что по монотонности это будет гораздо легче, чем корректное выковыривание ref.