В общем, я уже довольно давно ищу работу, при этом крайне желательно, чтобы она была по фрилансовому контракту, ибо у нас частное предприятие.
Где-то в январе месяце подал я заявку на очередную вакансию. Довольно скоро мне пришёл ответ, давайте, мол, общаться. Напишите-ка нам функцию на PHP и отправьте по электронной почте. Ну, думаю, ладно, странно это как-то. Написал, отправил.
Теперь, говорит HR, напишите ещё одну функцию таким же образом. Ладно, написал, отправил.
А теперь, говорит, будет настоящий кодинг-тест. Ну ладно, сделал кодинг-тест как положено на Гитхабе, отправил.
Да, говорит, всё хорошо, ты прошёл, будет звонок с другим HR'ом. Хорошо, звонок так звонок. Звонок состоял примерно в следующем:
— Привет.
— Привет.
— Сколько денег хочешь?
— Столько-то. За час.
— Хорошо, пока.
Я почти не преувеличиваю.
После этого был разговор с чуваком, который представился моим будущим боссом. Говорили о разном, о PHP, о Laravel, о рефакторинге, о платёжных системах, — в общем, расстались довольные друг другом.
И они замолчали больше чем на месяц.
Потом мне написал ещё один HR, уже третий, который сказал «Ойц! Ты знаешь, у нас тут пертурбации, компании сливаются, тех эйчаров, которые с тобой говорили, уже нету, бо уволились, — в общем, ты ещё заинтересован?» Ну да, говорю, заинтересован.
Окей, говорит, скоро приступаешь.
Ладно, подписал контракт, приступаю.
У вас, говорят, неделя онбординга (если что, неделя — это очень, ну просто оооочень, катастрофически мало!). За эту неделю нужно было написать малепусенькую API-интеграцию. Я справился за два дня, потом остальное время правил коммиты, потому что у них какое-то гиперстранное отношение к коммитам: очень важно, чтобы каждый коммит был осмысленным, потому что они не сжимают все твои коммиты в один перед вливанием в основной код, как это делается у большинства людей (так на моей прошлой работе было, так во многих опенсорс-проектах, я сам всегда так делаю), а вливают все твои коммиты в основной код по одному.
Ладно, фиг с вами, золотые рыбы. Это они назвали онбордингом, хотя никто никому никого не представил (см. ниже), только CTO (техдиректор) рассказал, типа как у них всё устроено, причём всё — это было в основном про то, как писать коммиты и как писать ежедневные планёрки-дейлики (да, здесь они не говорятся словами через рот, а пишутся, причём их формат я тогда вообще не понял, а нормально словами мне его объяснила проект-менеджер потом уже). Если что, формат такой, обязательно три пункта: что ты делал; что ты будешь делать; что тебя блокирует (ну например, нет куда-то доступа или нужна чья-то помощь).
Ладно, пошла вторая неделя. И тут меня рандомно направляют в команду совсем другого чувака, которого я в глаза не видел. Опять же, коммуникации ноль, никто ничего никому не говорит, типа-босс (менеджер) вообще не приходит в Слак, не назначает один-на один или, как это часто называют, приветственный кофе — ну такая встреча, где разговаривают о том о сём, о работе, жизни и всём прочем. Тут — тишина. Вот тебе задача, иди решай.
Задача, чтоб вы понимали, перелицевать с Фигмы (это такая дизайнерская штука, типа Фотошопа для веб-дизайнеров современная) модальное окно в CSS. Я, конечно, никому не говорил, что я незрячий (может, зря, но столько было отказов…). В итоге, побарахтавшись какое-то время, я сказал в открытую, что я не могу гарантировать визуальную привлекательность проекта. На что мне было сказано «А я думал, ты фулл-стек». Я, может, и фулл-стек, но я нанимался на совершенно другую вакансию.
В итоге поговорил я с тем чуваком, с которым интервью проходил, и перевели меня в его команду. Тут задачи… нет, Фигма тоже есть, но он мне сказал не париться, типа главное код напиши нормально.
А теперь для тех, кто понимает:
3000 строк — это маленький файлик. Те, с которыми я работаю, 12000 строк PHP и 20800 строк JavaScript;
Если файл PHP, это не значит, что в нём нет здоровенных кусков JavaScript и HTML, которые выводятся просто echo;
Если файл JavaScript, это не значит, что в нём нет каких-нибудь магических массивов, в которые подставляется какой-то HTML;
Если у вас есть пустой span или div, это не значит, что он пустой, — это значит, что где-то через третьи руки зарыт какой-то вызов, где он чем-то заполняется;
Если у вас есть вызов переменной в PHP, будьте готовы, что эта переменная находится внутри функции, а значением этой переменной тоже является уже анонимная функция строк эдак на восемьсот;
Если у вас есть функция «Перевести сообщение» (да, там типа есть многоязычная поддержка), то в неё нужно зачем-то передавать дополнительные параметры, не имеющие никакого отношения к переводу;
Если вы видите jQuery-код, то на самом деле это не jQuery, а ender.js;
Если что-то обёрнуто в try…catch, то исключение ловится так: …) catch (Exception $e) {}. Как следствие, в браузере ошибок нет даже на локальной машине, в логах ошибок нет, нигде ошибок нет, надо (как-то!) использовать отладчик. А отладчик останавливается на всех исключениях, которых там видимо-невидимо;
Если вам сказали, что нужно изменить какую-то маленькую вещь, будьте готовы, что вы увидите повторяющийся буква в букву код в шестнадцати местах. при этом если вы удалите это всё, то ошибок не будет, но и работать тоже ничего не будет;
Конечный продукт практически недоступен для пользователей скринридеров. Недоступен так, что даже я не везде могу эту доступность нормально приляпать.
При этом, повторюсь, коммуникации нет никакой, парное программирование отсутствует как класс, разговоров в команде нет вообще, ни по работе, ни тем более за жизнь. Вплоть до того, что мне приходилось спрашивать у менеджера, кто такая вот эта дама, а кто вот этот чувак. Вообще-то обычно, повторюсь, команду друг другу представляют, а ещё бывают созвоны если уж не ежедневные, то раз в неделю, минимум в две точно.
И тебе никто не хамит, никто не отказывается отвечать на вопросы, но… ты абсолютно и совершенно один на необитаемом острове, а вопросы можешь задавать телеграммой, телеграф работает.
Документация тоже как бы есть, но это куча путаных страниц в Confluence, на которых никак не описана архитектура проекта. Более или менее документировано новое приложение на Laravel, которое должно стать в итоге основным, но мои задачи не по нему.
Я не против был бы, если бы моя задача состояла в разгребании этого всего и в рефакторинге кода. Но нет, мне нужно просто налепливать заплаты на вот этот ужас.
И один тикет, который я считал суперпростым, мне уже завернули, потому что я что-то не учёл в этом чудовищном бардаке.
И честно, я не знаю, что делать, я в растрёпанных чувствах. С одной стороны это работа, она есть и это хорошо, нам, вероятно, удастся немного финансово выдохнуть. С другой стороны… вся эта обстановка так выматывает, что выходных ждёшь как праздника. С третьей стороны, спроси меня в лоб, что не так, я даже не знаю, как именно ответить, кроме вот этого отсутствия коммуникации в команде. Код лапша — так он много где лапша, увидеть более или менее чистый код штука довольно редкая (и кстати да, теперь я понимаю и полностью прочувствовал ещё один плюс фреймворков — они заставляют писать код так, чтобы его можно было потом поддерживать, ну или делают для этого всё возможное).
В общем… реально не знаю. Уже хотел обратиться за помощью к ойремагии, но даже не знаю, чего толком просить.
Ушла эпоха, умер Skype.
я познакомился с этой замечательной программой ещё с версии 1.x, в 2004-м году. Тогда у меня даже не было микрофона, и я общался только с помощью текстовых сообщений. Потом был проект SkypeTalking (да-да, когда-то у Скайпика был API!) — утилитка, которая сильно оптимизировала работу с программами экранного доступа. Потом было много чего: групповые чаты, Skype 4, покупка Скайпа Майкрософтом, переписка на веб-технологии, и вот теперь — всё.
Microsoft настоятельно рекомендует переходить на Teams, но, во-первых, интерфейс Teams, хоть и доступный на 100%, настолько неудобный, что просто ужас, а во-вторых, там нет главного — дешёвых звонков на обычные телефоны по всему миру. Придётся искать замену, однако.
Skype, мы тебя помним.
Менелион Эленсуле пишет:PHP quick tip: не используйте сериализацию массивов при работе с юникодом
Если вы хотя бы немного программировали на PHP, вы уже знаете, что с поддержкой unicode в этом языке, мягко говоря, далеко не всё гладко. Вот и я в очередной раз наступил на грабли там, где вроде бы должна была быть зелёная травка.
Иногда через форму нужно бывает передать массив строк. Можно, конечно, делать много-много input-полей типа hidden, но капитан Очевидность говорит нам, что это, во-первых, некошерно, во-вторых, просто неудобно, а в-третьих, в некоторых случаях может быть и небезопасно в плане «защиты от (любопытного) дурака».
PHP предоставляет нам неплохую функцию serialize(), которая вроде бы позволяет передавать любые объекты в виде строк, в том числе и через форму.
И передавал я так объекты очень долго, пока не пришлось мне иметь дело с большим массивом элементов, некоторые из которых были текстами в UTF-8 (причём не только по-русски). Вот тут-то и началась засада.
Хотел я вам показать, что бывает, если так сделать, но воспроизвести на тестовом файле не смог. Это-то и пишут другие программеры: когда именно вместо вашего текста отобразится весёлый набор крокозябров из высших значений unicode, никто точно не знает. И то, что я поверх сериализации использовал ещё base64, не меняет картины.
Что же делать?
Помимо сериализации можно использовать старый добрый (ну или новый, но по-любому добрый) JSON, который работает с UTF-8 и только с ней.
Для кодирования объектов в JSON в PHP имеется функция json_encode(), которая и придёт вам на помощь в трудную минуту.
Впервые пожалела потраченного на фильм времени. Были конечно и до этого те, которые не нравились, но чтобы так...) Во время просмотра то и дело пробивало на нервный, несколько истеричный смех) Ну это же надо было... снять такое) "Товарные знаки захватывают мир и порабощают людей, караул!" В общем досмотрела из принципа только) Жаль потраченного времени и денег.
Лучше Гримма сериал посмотрю, благо уже 4 серии второго сезона появились.
Скоро и пятая выйти должна) Зацепил как-то сериал этот, даже не ожидала)
Ну и вот буквально на днях читала книгу.. но увы, она была на английском( Хотя в принципе и тому рада, так как в России её в электронном виде и близко ещё нет. Но было бы желание - найти удастся, пусть даже на английском) Благо не на китайском)) Крис Брэдфорд - "Кольцо земли" - книга подростково-юношеская, но мне интересно было читать)
И место действия(ну люблю я такое, да) и сюжет) И то, что понимаю, что на самом деле, в реальности, в той эпохе отнюдь не всё так красиво и романтично, но ведь хочется почитать и о чём-то красивом, хорошем) Книга эта четвёртая в серии.
Вздумалось мне найти сказку "Золушка", нет не фильм, а книгу... онлайн. Надо ли говорить, что я нашла несколько вариантов?.. Самые знаменитые из которых это Шарля Перро и братьев Гримм. Один из них, а именно братьев Гримм, я решила прочесть, в результате чего у меня волосы встали дыбом!
В этой сказке, когда туфельку стали примерять сёстрам Золушки, а она, как мы помним, была им мала, так вот старшей сестре мешала пятка и тогда мать посоветовала отрезать ей пятку - она же будет королевой, а значит ходить ей не придётся. Так и сделали. Принц посадил девушку на коня и повёз во дворец. По дороге им встретились птички, которые спели, что башмачок-то у красавицы весь в крови, а значит не она его хозяйка. Принц посмотрел на ногу "невесты" и отвёз обратно к матери. Тогда хрустальный башмачок примерили другой дочке мачехи Золушки, ей мешала не пятка, ей мешал носок. Догадались, что матушка доченьке родной предложила? Верно, отпахать ножом носок, ведь, если она станет королевой, тогда ходить ей не надо будет. Опять принц посадил на коня девушку и повез во дворец (вот как они от потери крови не скончались? удивительно), и опять эти птички "сдали" тайну о том, что красавица не является истиной хозяйкой хрустальной туфельки. Вообщем, с третьего раза нашлась-таки обладательница волшебной обуви. Ну, и дальше как водится... жили они долго и счастливо... P.S. А сестрицам последовавшим за Золушкой в церковь птички выклевали глаза...
Я одна считаю, что детские сказки не должны быть такими страшными? Да, в них должны быть злодеи, так как разграничить добро и зло надо, но делать это надо корректно, чтобы родители сами не боялись читать такие сказки.
Что хочется сказать по этому поводу - сказка однозначно жуткая и... скорее это сказка-аллегория для взрослых, которая удивительно соответствует сегодняшним реалиям. Судите сами:
Родная мать играет по-крупному и ставки делает не детские: жертвует всем для достижения поставленной цели - стать королевской тёщей. И не жаль, что доча не соответствует указанным принцем стандартам - безжалостно прощаемся с индивидуальностью. И что в итоге? Неправильно расставленные приоритеты в результате оставили расчетливую мадам у разбитого корыта с двумя дочками на руках, которых уже ни кто замуж не возьмёт.
А что же принц? Инфантильный чудак. Ему вообще без разницы какую девушку брать в жёны - главное башмак налез. Но тут общественное мнение, в лице тех птичек, воспротивилось самозванкам и пришлось ему прислушаться, дабы не уронить королевской чести.
Эм... Золушка. Она-таки дождалась у моря погоды, то есть дошёл черёд и до неё, и окровавленный хрустальный башмак (сомневаюсь, что его каждый раз мыли) - мерило королевских стандартов, наконец-то надели и на её ножку. Она, конечно, девушка добрая, но с заниженной самооценкой... сначала жила затюканная своей мачехой и сёстрами, потом ждала, когда принц последовательно дойдёт до неё, ведь не сердцем выбирал, а мозгами. Ну, а дальше ей придётся жить в зависимости от дворцовых светских критериев, одним из которых она невольно стала, и в зависимости от общественного мнения.
Самое интересное - это Фея-Крёстная. Кто же она? А она оказывается кукловодом. Да, она всё придумала заранее и подстроила так, чтобы все действовали согласно намеченному плану. "Порезвилась", поигралась... Пора новую сказку писать...
Кстати, найти добрую сказку про Золушку мне всё же удалось.) Не представляете с каким удовольствием я её прочитала.) Это оказалась сказка Шарля Перо)
Жена ругается тонко намекает, что надо бы следующую лекцию. Да знаю я, что надо, но (как часто это бывает с quenya) встал в тупик. С прошедшим временем какие-то непонятки творятся. То, что глаголы на -ya имеют две формы в зависимости от переходности, это всем известно и понятно. Однако у Хельге в его переводах Библии читаем: hlassen — «я слышал» (почему? Если слышать — hlar-); Yenter — смотрели (почему?! Если смотреть — yéta-, причём нет указания на то, что корень yet- — тогда было бы понятно). Кроме того, мне придётся объяснять студентам, что это совершенно нормально, что прошедшее время от lelya- — lende, потому что этот глагол подвергся преобразованиям delya -> ledya -> lelya, и назальная инфиксация идёт с корнем led- (led+ne = lende). Вот. Написал в ElfLing, не знаю, ответят или нет. Подожду чуть-чуть, а потом буду давать то, что знаю и как умею).
Menelion Elensúle пишет:Поздравления начались неожиданно)
Вообще-то день рождения у меня завтра, но, придя из магазина, мы обнаружили... телеграмму. Начнём с того, что телеграммы на своё имя я если и получал, то считаное число раз). Кроме того, телеграмма у меня почему-то ассоциируется с чем-то не всегда радостным. А тут... поздравление с днём рождения от Дагмары :-))). Спасибо, Дагмарчик! Очень приятно!)
Menelion Elensúle пишет:В тему леди Джавы и нашей обожаемой профессии)
В тему поста Рины про Java вспомнилось мне видео, которое я давненько уже смотрел на Youtube. Говорят, что видеоряд этого дела на самом деле является пародией на рекламу не то среды разработки, не то системы отладки, в общем, чего-то из нашей кухни). И опять-таки: слушаем слова). Французский акцент, кстати, неподражаем — как специалист говорю :-)).
Как ни смешно, впервые воспользовался на практике heredoc-синтаксисом. Знал о нём очень давно (со времён, когда делал первые шаги в изучении PHP), но считал его излишеством.