Category: it

Category was added automatically. Read all entries about "it".

beyond

Нопешу итоге тоже

Собсна, этот год для меня

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

2. Рывок вперёд в плане $$$. Вначале накручивая адсенсу, потом своими силами. Хотя пока стабильности нет от слова "совсем", бо амбиции заставляют повышать расходы на разного рода проекты, а окружающая ситуация то даёт хороший плюс, то ухает в глубокий минус.

3. Переход от соло к полноценной командной работе. Год начинался с попыток прокачать стокерскую команду. Увы, не получилось. Но зато получилась неплохая распределённая команда в сфере веб. Правда, картинка тоже вышла отнюдь не гладкой-спокойной, так как
а) координация работы стала куда сложнее, в результате чего наловил знатных лещей прямо с начала года;
б) ответственность тоже серьёзно возросла.

4. Трудности дали достаточно неплохой левелап в плане понимания приоритетов, общего положения дел и внутренней устойчивости.

5. Начало давать о себе знать здоровье, как бы намекая, что сидячий образ жизни пора подводить к концу - иначе пиздец.

Ну а новый год - в марте станет понятно, куда всё будет двигаться дальше. Или получится преобразовать всю окружающую кутерьму в стойкий плюс, и можно будет начать плавный переход уже в сторону устоявшейся IT-компании, или дать по тормозам и откатиться до более соло-вариантов.
beyond

Разработка / Игры / Будни

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

По одному всё довольно просто - это WordPress-сайт с рядом довольно простых сервисов, за которыми я регулярно лазаю в гугл. Дизайн готов не полностью, но основу набросал, а дальше уже добью как время будет. Бо главное тут - запуститься for fun and profit, а не красивости рисовать.

Со вторым всё куда сложнее. Он Очень нужен, но я выбрал не самый простой путь для реализации проекта. Это кризис-ориентированный таск менеджер. Делаю его на Meteor.js/React, заодно осваивая как передовую фронтенд-разработку, так и сам подход к созданию веб-сервисов на базе Node.js (Метеор - это платформа поверх платформы, да). Собственно, наброски дизайна уже есть, но, по-видимости, они будут жёстко скорректированы, поскольку в качестве UI-фич придётся использовать не давно знакомые штуки вроде бутстрапа или jQ UI, а какой-нибудь Material UI. В целом по дизайну и виджетам тут та ещё терра инкогнита, но - рассчитываю на возможности платформы и выбранных библиотек.

Параллельно в разработке есть несколько вещей для WP - плагин для попапов, фреймворк для опций/настроек WP, и пара других решений, которые потом можно будет закинуть на CodeCanyon

Из отвлечённого.

Наконец познакомился с миром Mass Effect. Хороший мир, но к концу каждой из двух пройденных частей приходит ощущение щемящей пустоты окружающего игрового мира. И да, романтическая линия в каждой из частей - фейспалмовый треш. Подошёл пару раз пообщаться с персонажем - и уже обсуждаешь с ним нюансы межвидовых половых отношений, в которые оказываешься с ним вовлечён.

Ещё начал некоторое время назад читать завершающий вроде бы эпос Перумова по теме Хьёрварда - "Гибель Богов-2". Впечатление то же, что и от прочих книг - отличный сеттинг и наглухо упоротые персонажи.

P.S. Подумываю о том, чтобы уходить из ЖЖ в мордокнигу. Бо что-то пусто и безрадостно стало в жежешечке. Вот прямо совсем.
beyond

А кто какими PM-сервисами пользуется?

Одно время считал, что рулит Битрикс24 - всё удобно так, по уму вроде. Но в последнее время столкнулся с большим количеством задач и обнаружил, что работать в нём не очень хорошо. Что-нибудь обязательно потеряется, где найти задачу после передачи - неочевидно. То есть, если покопаться, то норм, но вот чтобы прямо сразу в запарке ничего не упустить - сложно. Например, я по инерции просматриваю вкладку своих задач, а "Помогаю" игнорирую (вообще правильнее было бы не "Помогаю" писать, а "Соисполнитель", для сохранения единой семантики со статусами пользователей в задаче). А там, вдруг, откуда ни возьмись, с десяток задач на меня висит. И никто из коллег их не видит, потому что исполнителем сам постановщик себя и выбрал.

Начал думать, чем можно заменить. Знаю про Мегаплан, но он как-то колхозно выглядит. Сейчас присматриваюсь к Jira - достаточно интересная платформа, плюс она вроде завязана на BitBucket, в котором у меня все репозитории.

А чем all пользуется?
beyond

Холивор?

Отличная тема для холивора, кстати.

Во-первых, это отступы стиля K&R. То есть, когда

if (condition) {
    statement;
    statement;
}

Читать блоки длиной более экрана люто напрягает - нужно глазами искать то первую скобочку, бегая взглядом по концам строк, то последнюю, определяя, откуда этот блок начался. И оно блеать проникло почти везде. WP-гайдлайны - есть, PHP-гайдлайны - есть. Отвратительно! И да, йа, как выяснилось, одепт Оллмана:

if (condition)
{
    statement;
    statement;
}

Идеально, кмк - просто проводим взглядом вверх или вниз, и ловим начало/конец блока.

Но что хуже, у меня возникает ощущение, что Оллман не катит для ряда случаев - например, когда в качестве аргумента передаётся анонимная функция:

jQuery(item).click(function()
{
    statement;
    statement;
});

- вот в этом есть что-то очень неправильное(КнР даже и смотреть не стоит, дабл-фу!). А вот в стиле GNU смотрится куда более приятно:

jQuery(item).click(function()
    {
        statement
        statement
    });

И последняя гадость - это нотация Йоды. Тоже пролезла везде, где можно. Как утверждает вики, оно придумано для того, чтобы не спутать "=" с "==" . То есть, для того, чтобы не допустить новичковую ошибку, эти ушлёпки решили пустить под нож читаемость кода!

if (a == 5)
{
}

- приятно, гуманно и семантически оправдано

if (5 == a)
{
}

- пиздец-пиздец-пиздец.

Предлагаю вырывать глаза и руки всем, кто делает K&R и Йоду, и развешивать их в качестве фетишей в своих кабинетах и на рабочих местах!
beyond

Долбаный linux way

Решил поставить себе Node.js . Потому что было бы прикольно поделать приложения с веб-интерфейсом, да и вообще есть пара задачек, под которые хотелось бы освоить что-нибудь покавайнее.

Казалось бы, что сложного?
а) Поставил
б) Начал использовать.

Но не тут-то было! Скачиваю его, значит, с сайта. Ставлю. Пробую:

npm install -g learnyounode

Хуй. Светит ошибками, советует отправить куда-то лог. Смотрю, где лог лежит - а лога нету. Читаю тырнеты. В тырнетах совет отключить хттпс. Делаю команду. Снова пишу команду... О! Работает! Тааак, надо поставить sqlite3... Набираю:

npm install sqlite3 --build-from-source

... Хуй! Ошибки в духе "проблема с пакетом". Пробую разные варианты, "npm install sqlite3" после "npm install -g node-gyp" прокатывает. Гуд! А ну-ка теперь "var sqlite3 = require("sqlite3");" в файлике...node [имя файла].js ... "Error: Cannot find module 'sqlite3'". Пробую так, пробую эдак. Ничего.

Ну ок. Думаю, может, что не так поставил. Нахожу мануал - "Пошаговая установка Node.js на Windows без виртуалок". О как, это ж мой вариант! Читаю. Ставлю cygwin. Из-под него ставлю node. Оттуда конфигьюр и мейк... Мейк вываливается с ошибками - что-то про переопределение определённого. Забиваю, смотрю дальше. Ставлю sqlite3. Пробую создать объект sqlite3 - "Error: Cannot find module 'sqlite3'"

При этом, в папке с модулями sqlite3 есть. Я, конечно, хз, - может, там что ещё нужно сделать или куда в файл чего дописать, но почему, сука, об этом нет ни слова в Сети? Что вообще за существа с нестандартной ориентацией делают код для никсовых систем? Вот реально, стоит только сесть что-то изначально под никс сделанное настраивать - как граблей столько вокруг, что начинаешь думать, а не бросить ли всё нафиг и уйти в балет. Почему блеать в виндовсе всё решается двойным кликом по сетап.екзе с добавлением пакетов в гуе, а тут команд лайн, которая в добавок не может отработать нормально? Ааааааа!

Расстроен. Пойду питон учить.
beyond

AWeber API - адЪ и безысходность

Один из заказов, оказавшихся для меня роковым - WP-плагин, собирающий статистику с нескольких сервисов рассылки, включая AWeber. Начавшись довольно-таки праздно, тема обросла таким количеством нюансов и подробностей, что без дрожи эту работку не вспоминаю :)

Первая из проблем, с которой я столкнулся, работая с AWeber'ом - нестабильность отдачи результатов. Их родной wrapper через раз сыпал ошибками вроде таймаута соединения. И если поначалу это было относительно терпимо, то с увеличением количества запросов на один просмотр страницы вероятность встретиться с ошибкой стала приближаться к единице.

Дальше - больше: более-менее нормальный список насчитывал несколько тысяч подписчиков. Собрать по ним всем данные было можно, но за значительный промежуток времени. А учитывая, что на хостинге часто бывает ограничено время выполнения скрипта, задачка вдруг оказалась невыполнимой. Причём в ряде случаев (связка Apache + nginx) выполнение не просто сбрасывалось - сайт на некоторое время уходил в HTTP 504.

Добавим к проблемам с выдачей вероятность появления ошибки практически в любом месте - и получим пушного зверя в приближении. Я начал думать над решениями. Ну, допустим, пагинация. Ограничим выдачу n пользователями, и юзер сможет сам управлять количеством выдаваемых результатов, получая приемлемое время работы! Авотхуй - по ТЗ нужна сортировка, для составления которой так или иначе дёргать всех юзеров разом.

Ну ок, оборачиваю каждый запрос в цикл, в котором проверяю, было ли брошено исключение, и если да - то до n раз запрос повторяется. Ошибка №1 пройдена. Делаем своп основных моментов в БД, обновляя её по запросу через AJAX с контролем времени выполнения скрипта и сохранением состояния, чтобы следующий AJAX-запрос начал с нужного места. Вроде, проблема №2 решена. И тут прилетает проблема №3 - оно ещё лимит на количество обращений имеет, 60 в минуту.

В итоге задачка разбита на две части - фронтенд, занимающийся анализом результатов запроса и контролем времени их отправки, и бек-энд, следящий за временем работы своих задач и сохраняющий состояние. Надо это в виде библиотечки оформить, что ли? А то вдруг где ещё с таким вот геморройцем поработать придётся....