← All posts tagged life

Вот Karpathy рассказывает ( vimeo.com ) как он возбужден software 2.0, как его ставят в тупик редкие случаи интересные для распознавания изображений в наборе данных для программирования тесла-автомобилей, как это все восхитительно и возбудительно, он делает интересную лекцию, зрители слушают и тащутся, и у них возникает мечта сделать тоже свое офигенно.

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

Блин, парился через teamviewer заокеан, там xcode, а к xcode подключен iphone, а в iphone торчит t-mobile, а на iphone наш Qt application, который не коннектиццо к серверу в упор.

А в qt creator видно что приходит ошибка NetworkError, логи не пишет, а кто отправляет и почему — непонятно, а отладчик не ставит брякпойнты в сорцах Qt, а приходит qt сигнал — и понятно, что никаких тебе стектрейсов. Плакал, пока не запустил НЕ через отладчик Qt Creator, а прямо в xcode, там брякпойнты ставит.

Написал ему bsd socket-ное: sock = socket(); sockaddr = getaddrinfo("33.44.55.66"); connect(sock, sockaddr) — коннектиццо, а через QTcpSocket — network error.

Долго ли коротко, дошел по приборам до побайтового сравнения addrinfo, и оказалось, что getaddrinfo("33.44.55.66") работает нормально и возвращает addrinfo_t с address_family af_inet6, потому что t-mobile не дает ipv4 совсем, а Qt видит этот ip и (справедливо?) думает что я хочу ipv4 (там намудрено внутре Qt, кароч).

Все это через тормозное teamviewer, думал я сдохну. (А когда заметил в конце, что сигнал приходил не асинхронный, а таки синхронный, снова плакал, но недолго).

Захотел законтачить одного удаленного tech savvy коллегу, а у него в скайпе ссылка на его телеграм. Запустил телеграм, пообщались текстом. Говорю, "а голосом ты как с людьми общаешься? Через телегу?" Говорит не, через FaceTime.

Я заподозрил неладное. FaceTime — это ж типа секта аппаратно-ограниченных.

А я никогда не запускал даже. Думаю, время посмотреть хоть. Запустил на десктопе, набираю его номер, оно мне и говорит "не коннектиццо, офлайн шоле?". Пишу в телеге "гонишь брателло". Он почухался, звонит сам. Нажимаю "ответить", и приложение зависает в UI thread-е. Нотификейшн с кнопкой "ответить" перестает реагировать, окно не рисуется.

Во, думаю, цирк. Коллега говорит "может ты за натом". Шо?? Нат? Ну у них и развлечения там в секте.

Стал апологетом wire (wire messenger). Новый скайп в телефоне говно, мерзкие звуки, крешится (android/nexus), говнодизайн. На линуксе, говорят, умирает. На винде там реклама, на гейбуке еще куда ни шло, но чувствую, это не надолго. Короче, все против него.

По работе уже сижу на нем. На скайпе оставил записку.

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

Такие дела.

Зарисовочка из жизни

Гребаные хипстеры. Вот react native, чуваки постят код на stackoverflow, там проблемы с layout (у меня тоже вопросы, учусь), и там в этом реакте стили inline можно делать вместе со структурой тегов, а можно хрен знает где отдельно в другом месте.

И вот хипстер нашел хипстера. Дело в том, что более ранние хипсторы изобрели CSS, или, в общем, вообще style sheets. И напихали туда вперемешку!! и геометрию/layout и раскрашивание цветами, шрифтами и прочей фигней (третьи хипсторы добавили туда анимацию, но то уже вне нашей темы).

Так react native хипсторы вместо чтобы писать геометрические свойства (flex layout) вместе с тегами, где им место, читабельности, мля, ради!, а прочую не относящуюся к структуре фигню вынестни нафиг в style sheet — они вынесли нафиг туда все, и теперь для чтения их кода и понимания layout нужно листать в бровзере их код туда-сюда в маленьком очке.

Это было бы еще ничего, но мне тут нужно провести время около полутора часов, я приехал в 8.20 к кафе, срочно сходить в тубзик и попить кофе, кафе оказывается открывается в 9, сижу в машине, мучаюсь страдаю, и чтобы отвлечься, открыл тек. проект на ноуте, а тут эти гребаные хипсторы. Коварная комбинация пыток. На улице пошел гадкий снег, шляться еще хуже.

Жизнь это боль. Каждый создает сам себе ад еще на земле.

Люди на проекте, которые пользуются "более мощными" GUI-средствами в Jetbrains/IDEA для того чтобы коммитить в GIT — всякие там change sets, без которых они не могут жить, гуевый 3-way merge, не знаю шо там еще — чаще других коммитят несобирающийся код или некоторым мержами под корень херят работу других (я всех заставил делать только pull --rebase через конфиг или руками, и они вроде почти всегда делают rebase, но регулярно у них почему-то прорывается merge). Сам пользую только командной строкой, и другим рекомендую, но не все делают через командную строку. Продолжают колоться и кушать кактус, но не переходят. Да и хрен бы с ними, но фигня продолжается.

Шоделоц?

Вот я написал значит в свое время шелл скрипт, которому даешь чистенький амазонский сервер, он на него ставит софт, настраивает всякие постгресы, ключи пермишны, юзеров, конпеляет наш сервачок. 100 строк на шелле, смотришь и все понятно. И всьо работает. Но чтобы поднять 5 таких серверов (у каждого своя роль), скрипт не написал, не время было.

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

В определенный момент развития проекта появляется несоменный (без шуток) специалист в девопсе и говорит "надо все на Ансибле переписать". И я понимаю что это вроде сцуко системный подход и стандарт (гмгм), но где та сцуко легкость, когда посмотрел на экран и сразу все видно на 2 страницах? В ансибле все размазано по 100 мелким файлам, роли, переменные, конфигурации, наследование, прочая фигня, не охватишь все одним взглядом. Последовательности выполнения нет.

И вот значит размышляю я, и вот чувствую, знаете ли, себя эдаким говноскриптером, к которому пришел мастер и давай вещать мне про Java, Scala, Maven... или про Хаскель и декларативные языки. Ничего не скажешь против, но ощущение что излишне все.

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