Время на прочтение: 9 минут(ы)

maxresdefault

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

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

Давайте поговорим как экономисты, потому что огромные гиперсервисы, как и концерны в классической экономике — это рак и зло в развитии любой отрасли и неизбежно через монополизацию приводят к стагнации и загниванию.

Давайте поговорим о том, что мы все давным давно можем сделать. Но те, у кого этого «можем» выросло больше, чем у других, очень этому сопротивляются.

Читать полностью »

  • Комментариев нет
Время на прочтение: 3 минут(ы)

3e15d-11372412_1663853267167421_128479559_n
(Спойлер: никак!)

Кластеризация в связке с контейнерами в последние годы обрела ту самую невыносимую легкость бытия, когда мы можем взять несколько серверов, поднять на них кластер докера, скомандовать поднять пару десятков контейнеров и идти дальше пить смузи — потому что docker swarm (или kubernetes) сам раскидывает контейнеры по нодам, сам следит за их работоспособностью, сам всё балансирует и вообще делать ничего не надо — только железо по мере необходимости добавляй да новую жижку для вейпа докупать не забывай.

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

Время на прочтение: 5 минут(ы)

Итак, вы наслушались модных хипстеров  на конференциях и решили стать как они. Штаны с подворотами и вейп вы уже купили, а теперь решили освоить Docker. Его всё хвалят, а вот какие там проблемы и каких граблей ждать? Щас папа вам всё расскажет по своему недавнему опыту

Читать полностью »
  • Комментариев нет
  • Метки:
Время на прочтение: 25 минут(ы)

Так как я учил английский несколько лет непрерывно каждый день, учил сам и перепробовал практически все имеющиеся методики, у меня сформировалось очень неплохое понимание, как вообще запоминается язык и почему одни методики работают паршиво, а другие не работают вообще. Этому пониманию поспособствовало моё знакомство с тем, как устроена человеческая память на уровне нейробиологии, а также моё плотное общение с лингвистикой по работе. Здесь я освещу эти вопросы и, если вас интересуют плюсы и минусы разных методик и вы не знаете, какую выбрать для изучения языка — эта статья для вас. Важное уточнение: хотя я все это буду расписывать на примере английского, мои познания в лингвистике позволяют утверждать, что все нижеизложенное будет справедливо для любого индоевропейского языка (т.е. все ваши немецкие-испанские тоже сюда же)

Дисклаймер: все нижеизложенное является моим личным мнением и я не собираюсь тут спорить с фанатами тех или иных методик, авторов и школ. Мне просто лень.

Читать полностью »

Время на прочтение: 3 минут(ы)fd81b742d27197e13eca20e68507cd2a914329c8_hq

Даже не знаю, можно ли это назвать багом, или, скорее, ошибкой проектирования, но эта «багофича» может стоить вам нескольких часов жизни, наполненных недоуменными возгласами и крепкими матюгами.

Итак, в чем суть:

В миграциях в Laravel все изменения в схеме таблицы оборачиваются в замыкание, которое передается в метод фасада Schema (table или create, неважно). Выглядит это примерно так:

Schema::table('mytable', function(Blueprint $table)
{
    $table->integer('test');
    $table->boolean('test2')->default(false);
});

Суть в том, что на момент вызова методов Schema Builder (integer(), boolean(), index()…), никаких действий над схемой ещё не происходит — соответствующие задачи просто записываются в очередь, а потом, уже после завершения выполнения замыкания, последовательно выполняются.
Но на самом планируемые изменения схемы пишутся не в одну, а в две очереди: отдельная очередь на действия с колонками (добавление, редактирование, удаление) и отдельно на всё остальное (индексы, внешние ключи, и т.д). Вот это то и есть багофича, потому что одна последовательность действий разделяется на две и выполняется сначала одна, а потом вторая (сначала выполняются все действия над колонками, а потом действия над индексами и прочее). Читать полностью »

Время на прочтение: 4 минут(ы)

В то время, как прогрессивное человечество борется с африканской чумой свиней, гомофобией и комплексами, нормальные DBA-шники, как всегда, борются с дэдлоками. И есть у дэдлоков одна интересная особенность, которая является их причиной в 90% случаев, но нигде в этих ваших интернетиках этого не написано. Сейчас мы восполним это упущение. Когда вы в следующий раз поймаете дэдлок — сначала вспомните, что здесь написано — это может сэкономить вам кучу времени.

Читать полностью »

8 ноября 2018 | Категория: Программинг

feature-тесты спасут мир

Время на прочтение: 5 минут(ы)

Все мы знаем, что unit-тесты — это хорошо. Об этом пишут всюду — на Хабре, на форумах, в книжках, в вакансиях и на освежителях воздуха (даже на казахском и киргизском).

Но вот чего нигде не пишут: Практически не бывает больших и успешных проектов, которые бы покрывались с самого начала. Если не считать сервисов в рамках уже больших и прибыльных компаний (Яндекс, Гугл, Челябинский мыловарный завод имени Красного Октября), то всем остальным на этапе зарождения необходима в первую очередь скорость разработки и рентабельность. По сути в самом начале пути любой сервис пишется как MVP (даже если его создатели не знают об этом).

В результате некоторые из этих стартапов выходят на самоокупаемость, потом на прибыль, нервный мандраж проходит и на первое место выходит не «быстро и шоб как-то работало», «шоб рабоало и не падало от каждой второй правки». То есть люди приходят таки в unit-тестам. Другой вопрос, что на этом этапе обычно уже имеется куча черте как написанного кода, с легаси, костылями, отсутствием инверсии зависимостей и матерными комментариями. Покрыть все это дело тестами разом — это целый настоящий кошмар, в первую очередь для руководителя бизнеса, который вот так, не за хуй свинячий, должен посадить всю команду разработки на год, чтобы они пилили не новые фичи, а тесты. И не просто посадить, НО И ПЛАТИТЬ ИМ СУКА ЗАРПЛАТУ!

Некоторые, особо волевые руководители с серьезным штатом выделяют под эту задачу 20-30% разработчиков и планомерно, ГОДАМИ, покрывают всё тестами (например, на хабре можно почитать истории немаленькой такой компании Badoo, которая планомерно замаливает грехи покрывает своё наследие тестами уже несколько лет, и добрались примерно до 80% покрытия)

Что же делать, если таких ресурсов у вас нет, а постоянные падения прода уже невозможно объяснять клиентам их плохим интернетом? Ответ под катом, бесплатно, без регистрации и СМС

Читать полностью »

  • Комментариев нет
  • Метки:

Время на прочтение: 2 минут(ы)vlcsnap-2018-06-08-00h11m21s538

Итак, на дворе 2018 год, вышла новая версия мускула, вы наслушались песен о том, как там все круто и решили это дело затестить. Скорее всего вы, как и я, быстренько проскочили установку и после попытки подключитсья к базе начали получать вышеозначеную ошибку.

Почему она возникает, можно почитать в инете (если коротко — нечего было щелкать клювом во время установки, вместо дефолтного типа авторизации надо было выставлять старый, потому что новый никакие библиотеки ещё не поддерживают, только через консоль можно войти).

Как же порешать этот вопрос? Лехко! Читать полностью »

Время на прочтение: 2 минут(ы)The.Matrix.1999.Bdrip.mkv_snapshot_00.07.46_[2018.03.26_23.34.09]

Итак. Предположим по каким-то причинам вам нужно выбрать два набора данных объединив их во всех возможных комбинациях, т.е. каждый с каждым. Например, у нас есть выборка болтиков и выборка гаечек и мы хотим получить все потенциально возможные пары. Опустим, на хер вам это понадобилось — может нужно некоему пулу пользователей добавить одним махом десяток прав и вы хотите уложить все это в один insert select, может вы считаете потенциальную скорость распространения сифилиса в каком-то замкнутом сообществе и нужны все возможные комбинации пар, а может ни для чего, просто душа просит и тело жаждет.

Короче, бля. Читать полностью »

  • Комментариев нет
  • Метки:

Время на прочтение: 9 минут(ы)The.Hateful.Eight.2015.BDRip-AVC.Dub.2.18Gb.stalkerok.new-team.mkv_snapshot_02.42.01_[2017.09.21_22.14.23]

Итак. Пройдя это неимоверно увлекательное действо и получив свою немалую порцию адреналина, я думаю, что стоит поделиться нюансами по поводу правильного составления заявления, которых нет в интернете, плюс некоторые общие рекомендации. Ибо сотрудники ФМС (который уже давно не ФМС) в первую очередь докапываются именно до заявления. Некоторым товарищам приходится по 6-7 раз по новой повторять попытки подачи. Что, с учетом диких очередей и ночевок под дверями ФМС, весьма напряжно. В общем, слушайте и не говорите, что не слышали.

Читать полностью »

Мои проекты

1. Словарь сленга Slanger.ru