Решил начать днявку, потому что сегодня особенный день. Ровно два года назад я закончил контракт, который... Впрочем, обо всем по порядку. То был знатный проект! Многоуровневый комплекс решений для дата-центров со своим всем: от ОС до утилиты часов. Там я и отработал от звонка до звонка: от даты начала контракта до даты его завершения, от первого рабочего утра до последнего рабочего вечера. Не в главной роли, конечно, но свой вклад внес и много интересных задач решил. Короче, неважно...
Важно другое: вот уже два года я нигде не работал, и такая ситуация для меня уникальна. Начав батрачить после школы, я с тех пор и не останавливался. Шараги сменялись корпорациями, корпорации - стартапами, а те в свою очередь - снова шарагами. Бывало всякое: и банкротства моих лавочек, и сокращения в чужих - но уже через день я оказывался на новом месте. Так должно было произойти и в этот раз. "О, ты там закругляешься? Ну завтра созвонимся тогда!". Но завтра прошло без созвона. А потом прошли два года. Тоже, будто бы, одним днем.
И ведь не сказать, что ничего не происходило. Происходило, прямо говоря, многое. Достроил очередной дом. Начал отношения. Разорвал отношения. Начал новые. Влип в треугольник. Задолбался и послал обоих. Прочитал десятки книжек и сотни статей. Завел канал, где поясняю трем с половиной пендосам, что такое сложная проблема сознания и чем неореакционизм Ярвина отличается от MAGA-консерватизма... Короче, не скучал абсолютно, но ощущение такое, что исчезли не события, а само время. Без дедлайнов и квартальных отчетов оно будто бы перестало существовать. Я смотрю на фотки 2023 и не понимаю, как это могло быть не вчера! Хотя любой другой отрезок своей жизни помню так четко, что даже февральское утро 2016 отделено в воспоминаниях значительным количеством времени от вечера того же дня.
В общем, сегодня я проснулся с мыслью, что снова хочу на работку. В бэ говорят, айти мертво и нигде никого не берут, особенно русских. Двач, как известно, не врет, но мне-то что остается? Повспоминать теорию, порешать литкод да и пойти собеситься, сварганив невыдуманную историю, что я делал этим (и прошлым) летом.
Сегодня решил немного поторговаться криптой. Стандартная история: купить подешевле - продать подороже, ничего интересного. Вот и очередной покупатель, кажись, честно подписанный как Дилдоржонов Анусбек Вагифович. Странное дело: обычно по подписи все они Иваны Ивановы - это только деньги приходят от Дилдоржона. Можно только похвалить за прямоту! ...И, деньги пришли от Анны Ивановой! Пиздооос... Немаэ слив...
Говорят, Двач не врет. Но на сей раз он меня обманул, и это ровно та причина, по которой я закрываю дневник. Впрочем, не беда: всем всё равно было похуй и, наверное, даже поебать.
Послушав рассказы про мертвое айти, нечеловеческие допросы за каждый пропущенный месяц и прочий эпик, я столкнулся с обычной скучной реальностью. С реальностью, где тебя просят пояснить за скиллы, алгоритмы и архитектуру, а потом просто зовут на работу. Где всем глубоко насрать на подробности твоей жизни, отсутствие вышки, Гитхаб без коммитов за последний год и пустующий уголок сертификатов. Или ты умеешь, что надо, или не умеешь. Я, как оказалось, умею.
Короче, в следующий понедельник выхожу писать очередной энтерпрайз. Все настолько же уныло и буднично, как было всегда. Правда, восстановить в памяти два безработных года так и не получилось: для меня этого времени по-прежнему не было.
>>832562 Будешь тоже искать работку, или ты уже на пенсию?
Blackpill - дневник или почему я все еще листва Начиная с середины октября и по нынешнее время я
ЛистваХвоя!!v1GBh/pAqsLEbyGp23/12/25 Втр 15:51:59№832316Ответ
Начиная с середины октября и по нынешнее время я активно пытаюсь найти себе тяночку, и у меня скопилось достаточно много разных переписок, которые не хотелось бы просто так удалять, к тому же может кому будет интересно почитать. Поэтому я создаю этот тред в который буду скидывать диалоги с пояснениями, а заодно поделюсь способами, которые я использую для знакомства, ну и вообще напишу о том , как я докатился до такого.
Немного об ОПе:
1. 27 лвл - листва, нецелованная, недержанная. 2. Внешка лица - оцениваю себя примерно на 4,5/10. 3. Рост - 180 см. 4. Не жирный, думаю можно сказать, что имею спортивное телосложение. Вес где то 80кг. 5. Не имею какого либо положительного опыта общения с тянками.
Анон, я даже не знаю, с чего бы мне начать. Я - законченный неудачник.
Мне тридцать лет, я тролль, лжец и девственник. Я живу совсем один в большом городе. У меня нет здесь родных, нет друзей, нет даже сраной кошки, никого. Я живу в крошечной комнатушке в общаге предприятия, на котором работаю офисной креветкой за гроши, которых едва хватает на еду. Я жру дерьмо и хожу в вонючих обносках. Я чувствую себя никчёмной полудохлой развалиной. То ли из-за нездорового образа жизни, то ли из-за возраста, но у меня всё болит: болит спина, сердце, уши, зубы, суставы, всё замучаешься перечислять. Несколько дней назад я сломал палец, а сегодня - зуб.
А теперь самая мякотка: сегодня меня вышвырнули с работы за полной бесполезностью. Ну а на днях выкинут и из общаги, само собой.
Что же делать? Правильно, первым делом нужно завести днявочку в /dr/! Только в этом треде уникальный номер: ОП будет есть говно в прямом эфире, не переключайтесь!
Олды, помогите найти такой же древний дневник, только там баклофеновый торч был, который им "излечился от социофобии" и в итоге стал социопатом. Легендарный тредю
Анон, я даже не знаю, с чего бы мне начать. Я - всё ещё законченный неудачник.
Мне сорок лет, я тролль, лжец и уже не девственник. Я снова живу совсем один в другом большом городе. У меня нет здесь нет родных, нет друзей, нет даже сраной кошки. Я живу теперь в своей квартире, но в ней невероятнешний срач. Я пока что нормально питаюсь, да и хорошей одежды у меня хватает, но это временно. Здоровье я привёл в порядок, однако недавно пережил тяжёлую болезнь, которая меня чуть не убила, ну и после нее долго уже не живут.
За прошедшие десять лет много всего случилось. Я достиг дна, оттолкнулся от него и стал выплывать. Достиг относительного успеха, женился, сделал детей, развёлся, ушёл в загул, залез в конские долги.
Жизнь сделала круг. У меня снова нет работы, кончаются деньги и впереди неизвестность.
Я перестал вести этот дневник потому, что, в какой-то момент, погрузился настолько глубоко в задницу, что мне стало не до ведения дневников. А когда жизнь начала потихоньку налаживаться - меня затерзал страх деанона. Десять лет назад на оранжевом сайте деанон и травля были очень популярным развлечением, и я прекрасно знал, что сколь ни шифруйся, а анон всегда может вычислить тебя по мельчайшим упущенным деталям. И я перенёс свой дневник обратно в оффлайн, где я веду свои записки с 2011 года. Я ждал, что этот дневничок утонет в небытие, а он всё не тонул, и не тонул, кто-то его зачем-то бампал периодически. И тогда я пообещал себе, что если он и через десять лет не утонет - я его продолжу. Но сейчас думаю - а надо ли?
Оператор это не имя. Это состояние материи. Типа того внутреннего голоса, который ты слышишь, когда понимаешь, что жить становится слишком тяжело и непонятно.
Но Оператор был вынужден жить. Его загнали в угол платежи, долги, обещания и неслучившиеся планы. В угол, где воздух пахнет социальной ответственностью и прогорклым страхом. Там он и придумал Бобу.
Боба Семёнов, 31 год. Это не человек, а аккуратно собранный аватар для посещения реальности. Хамелеон, сделанный из обрывков чужих манер, офисной вежливости, усталого сарказма и слегка подмыленного самообмана.
Боба - это та часть личности, которую можно отправить на работу вместо себя. Что-то вроде биокостюма с интерфейсом «социальный работник по складу». Нажимаешь «enter» и он идёт. Нажимаешь «exit» и он растворяется, как вкладка браузера, закрытая без сохранения.
Оператор не хотел быть инструментом. Инструмент - это то, чем пользуются. Поэтому он создал Бобу - специальный контейнер для прожития ненужных часов.
Цель миссии: 46 смен. Не 45, не 50. Почему 46 не знает никто, включая Оператора. Просто цифра всплыла где-то на внутреннем экране, как сообщение «обновление доступно», которое ты год игнорируешь, но всё равно читаешь.
Бобу погрузили на объект. На склад. На Территорию управляемого безумия, где люди, грузчики, менеджеры и коробки смешались в один живой организм, похожий на кишечник большого корпоративного кита. Кита уже давно мёртвого, но всё ещё дергающегося от остаточных нервных импульсов.
График: 2/2. Зарплата: 130 тысяч.
Оператор заранее запустил тестовый прогон Бобы. Тот ходил по складу, делал умное лицо, смотрел на бардак с видом человека, который что-то понимает. Но внутри его головы стоял белый шум, как в телевизоре, которому забыли подключить антенну.
«Всё прилично, но непонятно», - подумал Оператор. Типичная симуляция жизни.
Сегодня День 0. Старт миссии. Момент, когда настоящий мозг выключается, а вместо него в розетку сознания вставляется дешёвая временная прошивка по имени Боба.
Завтра, в 10 утра, Оператор нажмет внутренний тумблер. Где-то в глубине висков щёлкнет. Сознание слегка перетечет, как бензин из канистры. И то, что остаётся - уже не совсем он.
Боба загружается. Его мир проявляется, как низкобюджетная 3D-графика: коробки, полосатые ленты, лица людей, которые давно смирились, что их день — ничто больше, чем перемещение предметов из точки А в точку Б.
Оператор смотрит на это издалека. Через мутное стекло другого «я».
Дальше сорок шесть смен. Сорок шесть попыток передать своё сознание в руках второго персонажа.
И самое страшное, это не то, что Боба может сломаться. Самое страшное - что однажды он может вернуться домой вместо Оператора.
От создателя "долгой дороги по Каширина" и "Гореть"
Продолжаю жить периодически пытаясь умереть Работаю работу, лечу людей и блядей. От работы кони дохнут, а у меня только переломанный позвоночник.
Наконец-то обратилась к психиатру когда спасли случайно из передоза мёдом. Назначили таблеточки, потом другие таблеточки, потом гипомания от таблеточек перешла в манию, в мании много грешила и устраивала дебоши, потеряла 1,5 литра крови, без помощи врачей восстановилась до привычного состояния. Снова на работе.
Всё как на собаке заживает, етить-колотить.
Может, сейчас кто-то, кто помнит, скажет, что скатилась и так тебе и надо, но я буду рада, если такие люди найдутся.
>>754786 Поймёшь со временем, как это всегда бывает. Любить ты умеешь, только забыла свою любовь где-то в прошлом, в одном из тех людей которые тебя сломали. Не надо пытаться её заменить, ломая людей и забирая их души. Обрети хоть что-то своё в этой жизни
Пиздос, все дневники тянок тут - случайные эмоциональные всплески, ненависть к бывшим или страдания по ним, головные проблемы. Пачему нет ссылки на старые днявки? Почитать бы
В прошлой жизни я был твиттерским тысячником. Типичным представителем нижнего твиттера с контентом уровня Б. Я специализировался на шутках про говно и мэмах про пердежь. Но это было давно. Я был совсем иным человеком: молодым, шутливым, жизнерадостным, с бутылкой пива в руке и задорным огоньком в глазах. А теперь я другой: старый, скучный, грустный и невероятно душный. Лишь одно осталось неизменно: я всё тот же графоман и всё та же вниманиеблядь.
Вообщем, собираюсь заниматься здесь тем же, чем и в тви: постить всякую рандомную хуиту, мысли, факты, квазиинтеллектуальные высеры и изредка выёбываться. Если кто узнал — ставьте лойс.
Спал сегодня в общей сложности часа три. Остальное время кашлял как туберкулёзник. Ебейше дёргается глаз, аж изображение трясется. За весь день написал 63 строчки кода. Что я делал остальное время? Да хуй его знает, блядь.
>>676041 Недавно я ощутила на себе мужские взгляды потому мне нужна защита от этих назойливых насекомых Если все увидят что у меня есть парень никому и в голову не придёт лезть с глупыми предложениями Это было весьма неожиданно но както раз дух отца был сломлен пуще моего Мать человек эмоциональный до самого конца заботилась обо мне Хотя со стороны и не сказать было что в ней такая сильная человечность Любовь матери к ребенку наверняка необходимый элемент для воспитания живого существа Она умыла руки перед сыном и позвонила в эту клинику только два года спустя
Стартовые данные: - 19 лет, XX-хромосомы. - Учёба или работа: отсутствуют. - Знание английского на B1 уровне. Цели: - Научиться выражать свои мысли в письменной форме. - Выбрать направление для поступления в ВУЗ. (Попытка номер два) - Читать каждый день. (Манга тоже литература, анон!) - Изучать японский минимум 4 дня в неделю.
>>247147 (OP) днява, мы с тобой гуляли по горпарку, ты мне тогда очень сильно запала в душу, ставлю пять звезд, надеюсь, что тебе станет приятно, что о тебе кто-то так думает. но больше не гости людей, пожалуйста.
Адаптивный значит можно совок, можно российские власти, можно сидеть дома и нихуя не делать или грустить из-за какой-то хуйни смешно убили солдата как жалко кошку социалисты прикольные Пиночет клёво вот бы тоже промывать население и править царски эх Надо почекать ещё варики по эфилизму
Сегодня понедельник и я вчера перед сном решил начать с новой недели новую жизнь. Сначала собирался проснуться как можно раньше, но уже перед сном решил не включать будильник, чтобы выспаться. В итоге проснулся в 7:55, что не так уж и плохо, ведь уснул в 00:50. Сегодня планирую сместить время сна на час. Большой путь начинается с маленьких шажков. Вот мои: отказ от политоты и /Б, отказ от поиска в дайвинчике любовницы и фокусировка на своей тян, похудеть на 5-7кг, монетизация времени и навыков.
Отписался от всех полит-каналов в телеге, пока что оставил двух коучей по саморазвитию. Удалил все диалоги с тёлками дайвинчика, сам дайвинчик удалю завтра. Чтобы в первое время не сорваться в отказе от политоты и /Б, буду сидеть в досках по саморазвитию, медицине, психологии и дневничкам. Выпишу оттуда всё полезное для себя и оттуда тоже уйду. Тренировка через 2ч после завтрака заняла 75мин: качал пресс, уреплял хват и предплечье, приседал с 20кг 4х30, удары ногами по воздуху. Часто тренируюсь, но с сегодняшнего дня буду делать это каждый день, уменьшив до 60мин и сделав более интенсивной. Тренировки дают отдых моим мозгам, удовольствие телу, плавное развитие силы и навыка самообороны.
Может, дневник поможет достичь цели. Дрочка это враг номер один для меня. Сука убивает во мне уверенность, силы, внешний вид, творит хуйню в голове. Что даёт это дерьмо? Обжорство. Пиздец какой лютый аппетит просыпается от дрочки. Исход понят.
Сходу начну с того, что я оказался в ловушке, но, думаю, создав этот тред, я смогу и сам выговориться и, возможно, кому-то помочь советом попутно. Но в последнее, на самом деле, я уже верю в меньшей степени, т.к., считаю, что по-настоящему в другую голову ничего не переложешь насильно и нам и остается, что только общаться - наравне.
Также хочу сказать перед началом, что этот дневничек не затевается как какое-то повествование сверху-вниз: без снобизма, высокомерия и негатива. Этот дневничек - не какие-нибудь бизнес-гуру просветления, инвестирирований тред и прочего скама. Скорее, некоторая попытка найти кого-нибудь, кто сможет меня понять, разделить взгляд или, просто поучавствовать прочтением или написанием. Хз, на самом деле, но если кому-то будет интересно или полезно - все будет круто. Ну и выговориться - в последнее время я чувствую, что, возможно, РКН не супер далек, депра, вполне реально действительно существующее заболевание, а DSM-5 и PID-5, вероятно, не просто аббревиатуры и цифры к ним.
Начнем с того, что моя жизнь, как я себя помню - была пиздецом. Когда я встречаю людей, которые рассказывают, что жили в нищете - мне хочется громко смеятся им в лица. Пока у тебя дома есть вода, чел, это нищета, умножай на ноль свою пиздострадалку. Не хочу преуменьшать ничьи страдания, но и не хочу осквернять термин "нищета". "Нищета" - это когда ты воду с колонке городской на улице носишь, а для того, чтобы сделать ее горячей или, хотя бы теплой, ты обязан ее греть. "Нищета" - это когда ты каждую осень утепляешь окна ватой, а куждую весну - эту вату уже снимаешь, попутно снимая и газеты, скотч и всякие дешевые утеплители. Поверьте, я очень долго могу рассказывать об этом, создав отдельный тред, где легитимно могу завидовать на уровень благосостояния из видосов детей в аврике или каком-нибудь индийском гетто/ джунглях Амазонии.
Но, не смотря на то, что я не знаю ни одного человека, который бы сталкивался с настолько по-настоящему нищенским положением, я знаю много людей, который даже более легкие ее формы ломали. И я говорю даже не о том, что люди спивались, скалывались и делали прощие, очевидные вещи, безвозвратно окнуаясь в пучину эскапизма. Совсем не про то. Я говорю про слом другого порядка. Я говорю про людей, которые ебнулись в процессе выхода из нее головой настолько, что ничего, кроме власти / богатства, и их комбинаций - не видят больше ничего. И ничего, кроме боли, презрения и какой-то невообразимой воронки модавленных проекций у них и нет.
Но, есть и третий путь слома - это те самые среднячки. Те, кто не спился и не ушел в РКН сознательно или нет, но и не ушел в миллионные игрища. Те, кто принял правила игры. Сказали себе "ладно" - и продолжили страдать каждый день, не скатываясь ни в одну из крайностей.
Я с самого детсва думал об этом всем. Думал о всех взрослых, которые меня окружают. Думал о их жизнях, о их судьбах, о их выбдорах и о них самих. Я постоянно думал, что же мне делать в жизни, чтобы не проебаться. Чтобы обойти все капли и остаться сухим, не став, как они.
Я очень боялся быть взрослым. Ни один из путей не казался эталонным. Только выбором между сортами не хорошего.
Забавно, что пока я писал о "нищете" - я понимаю, что все равно несу часть ее в себе навсегда. Не желание выкидывать порванные вещи, эконом-такси, honor x9a - эхо ментальных травм, которых, до конца, не излечить. Можно притвориться. Можно забыть. Но избавиться - никогда.
Даже президенты, выросшие в нищете, спустя двадцитилетия правления с радостью напомнят о сахаре, о хлебе и о тех, бытовых вещах, от которых бежали всю жизнь, а когда убежали - заскучали, вернулись, но это уже не тот сахар, не тот хлеб, и не тот он. Но, это безусловно лучше, чем тот же сахар, тот же хлеб и тот же он - ради этого можно и немного исказить мышление, отправив в один путь десятки тысяч людей, лишь бы все оставалось, как есть - милонхаличный симулякр вполнее милее и такие люди, поверьте, как никто другой за сам факт того, что у них симулякр - глотки собственными зубами перегрызут, лишь бы к оригиналу не вернуться.
Что же это, если не наличие травмы.
А я никогда не хотел такого. Я не хотел быть в таких местах, которые боялся бы потерять. Я никогда не хотел иметь того, что боялся бы потерять. Я бы не хотел ставить в себя положение, где я бы собственными зубами кого-нибудь сгрыз, лишь бы сохранять свое положение. Всегда считал и продолжаю считать - что это низость и суета.
Но, время шло. Шел и я. Я хотел больше не того, чтобы заработать много денег и быть успешным. Я просто не хотел быть, как они. Да, мотивация хуевая, но, лучше она, чем вообще отсутствие хоть какой-нибудь. Мысль о том, что я устроюсь на работу, буду ходить из-за дня в день - наводила на меня, буквально, ужас. Мысли о трудолюбии, о старании и об отдаче - не вызывало ничего, кроме отвращения и насмешки. Мои родители и их родители - всегда этим и занимались, проводя больше 70% жизни на работах, усердно стараясь и я видел, к чему такая стратегия привела. К ведру, в которое ты должен ходить в туалет, а ночью выкидывать на мусорку.
Когда мне было лет 9, я накнулся на объявление на стобе, где человек предлагал распечатывать что угодно на листах за деньги, потому что у него был принтер! Когда я это прочитал, я так ахуел, сразу столько возможностей быстро пронеслись. Я смотрел на это объявление и чувствовал, что это, почти как магия - можно делать другие предметы, обменяв их на другие предметы!
(Да, в 9-летние дети из не богатых семей - впечатлительны).
Придя домой я думал, как мне использовать такую возможность и, решил, что я буду делать тоже самое, только дороже! Родители мне денег не дали, и я просто пошел в то место, где меня встретил не русский мужчина и я у него попросил распечатать объявление, типо я рекламное агенство и печатаю / клею объявление. Когда он мне насчитал, сколько будет стоить набор текста, верстка, и печать - у меня сердце в пятки ушло, но я сказал, что старшие братья, которые этим занимаются заплатят, но по итогу и мне надо будет принести им распечатку, чтобы показать, что это не обман. Он мне поверил, бесплтано распечатал объявление и дал мне несколько листов - так я начал свою борьбу.
Я сам резрезал, выходил на улице и в 9 лет клеил такие объявдления. Там был мой номер телефона. Ну, как мой - родительский, но, я просил мне давать все звонки, если не забудут. И, таким образом, я и первых клиентов нашел, и первую оплату получил, и с тем мужчиной расплатился, принесши ему следующую работу.
И в моменте, особенно в детстве, меня такие вещи забавляли - настолько наебать мир взрослых людей, придумывая истории, чтобы тебе прямо верили, думал, что там какое-то агенство есть, какие-то люди, и они на мне экономят и используют бедного, не смышленного ребенка в своих целей. Меня забавляло, что никого, кроме меня одного там и не стояло. Я не хотел никого обманывать, но, объективно, никто бы в своем уме не доверил ничего 9-летнему ребенку, особенно свое какое-ни-какое дело и репутацию. Хотя, конечно, громко сказанно - всякие продавцы курток, ремонтники ботинок и так, по мелочи всякой.
И, думаю, что это было бы очень скучно продолжать в том же ритме рассказывать прямо все истории. И я просто перейду к сути - со временем меня это все заебало. Что-так, что-так - я оказался не великим бизнесменом, а просто дурачком, который мог бы ту же энергию потратить на наемную работу и, при должной организации, я бы зарабатывал бы в разы больше. Но мои искаженные когнитивные модели, воспрития, и какая-то мания не работать на кого-то, в итоге привели меня к тому, что я просто воспроизвел модель родителей - я въебывал, старался и жил в нищете, прикармливая себя историей, что я "не как все" и "я взломал систему - я умный". Знаете, как в Мафии, по-моему во втрой, хз, там по итогу главный герой понимает, что не наебал систему, а прямо повторил судьбу бати, от которого его тошнило и что угодно, лишь бы не батя. И, вспомниая тот период, мне так противно от себя - от своего высокомерие, от своей оторванности от реальности, от своего больного искажения мира. Это был как какой-то шизо-эпизод длиной, блядь, лет в 10, как не больше.
>>827507 В этом дневничке я стал сам для себя и объектом и субъектом - в суперпозиции.
Этот дневничек - не для вас, хоть я и не буду отрицать, что мне приятно получать высказанную рефлексию другого, настоящего разума.
Этот дневничек - для меня самого. Для того, чтобы через ретропеспективу себя, посредством субъектно-объектной связи, сформулировать векторы дальнейшего. И, оставить след, который, надеюсь, просуществует еще какое-то время, чтобы оглянуться на себя прошлого. Чтобы улыбнуться и сказать - как же я был долбоебом ебанным.
Я бы мог потратить тоже самое время на ту самую прокрастинацию и на потребление всех видов - от контента, до ресторанов, одежды, кроссовок, выбора дома или машины. Но все это - я уже делал, делал не раз. И каждый раз я понимал, что это не цель, а хуйня полная.
И я провожу свое время здесь, вместо потребления. Для создания того, что важно, исключительно, для себя. Для честного ответа - что же не хуйня, по твоему, Антон?
Чтобы дать себе честный ответ.
И чтобы потом создавать не хуйню. Ч чтобы потом мне это нравилось это и не воспринималось колесом в клетке Сфинка - так звали того хомячка, кто умер у меня на ладонях.
Это - сложная задача. Но - не невыполнимая.
Создавать хуйню я могу и сейчас. Устроиться на хуевую работу за 150 000 рублей я могу и сейчас. И продолжать делать хуйню, при этом чувствуя анальную, ритмическую боль, контролиуемую микроменеджментом. Также, как я могу ответить всем тем людям в личке, чтобы начать "дружить". Также, как я могу начать встречаться с кем угодно - от полной дуры не понимающий доконца, чего она сама хочет, до взрослой особи, которая понимает, чего она хочет и я это вполне успешно могу ей все дать, все, и даже больше, если перееду в регионы, особенно.
Конечно, я знаю, что не хуйня - глобальные, великолепные вещи, которые я частично реализую, частично становлюсь и отдыхаю. Но, отвечая на вопрос: "А вот в моменте, что не хуйня? Дома, тачки, хуячки, - это да. Но вот в моменте, что?" И я бы ответил, что не хуйня - чтобы меня поняли, приняли и не бросали.
Я не про вас, случайные свидетели моего внутреннего монолога. Я про искреннюю и глубокую связь, которая возможна при крайне специфических, редких и исключительных, но, тем не менее, не невозможных условиях. И, как и любое великое - это потребует усилий, надежды, обстоятельств и всего спектра не только от меня, но и от того, что за пределами меня.
От меня, на пути к этому, видится, требуется лишь одно - тотальная открытость и честность. Я думаю, что только так ты продолжаешь давать системный шанс тому, кто истинно сможет тебя понять и создать крепчайшую связь, которая, я верю, однажды не оборвется. А это - важный поинт по жизни, особенно, для таких, как я.
И, отвечая на этот очередной, душнейший мета-прогон, о том, что не хуйня? Я бы ответил:
1. Свое, любимое и получающееся дело. До миллиардов. 2. Свой, любящий и понимающий человек. До конца.
Думаю, что время настало. В этом треде я нашел свои ответы.
1. Свое, любимое и получающееся дело. До миллиардов. 2. Свой, любящий и понимающий человек. До конца.
И, если это судьба. И если само бытие вело тебя всю твою жизнь, всеми способами, и суммой всех твоих решений - до этих текстов на форуме и до этого самого поста. И ты чувствуешь, что это правда, то, напиши мне.
Напиши, если хочешь самого преданного, мудрого и доброго друга. Напиши, если хочешь самого преданного, любящего мужа-скуфа.
Не важно, кто ты, но, конечно, лучше бы тебе быть идеальной 155 см. девочкой старше 18 с IQ выше 100, влюбившейся в меня через все эти отвратильные, богомерзкие и душнейшие высеры. Я иронично, заебали. А может и нет?
Мой ТТ - Фляга Сваги. Я буду рад. Во всяком случае - я сделал все, что зависило от меня.
Я не прощаюсь - я беру осознанную паузу от форума. Конечно, я еще вернусь!
Я прочитал много историй здесь, за этот месяц. Я увидел много людей, которым намного хуже, чем мне. Я увидел много тех, особенно, в ветке депрессии, которым повезло значительно меньше моего и тех, кто страдает в разы сильнее, менее иронично и метаконцептуально, чем я.
Я посчитал, что сидеть здесь и рассказывать миру, как же мне грустно и что же мне делать, когда есть те, которым в десятки раз больнее и которым я бы мог хотя бы попытаться помочь - не правильно здесь оставаться.
Я хочу открыть свой фонд с НКО, которая бы помогла всем тем людям, кто, такие же жертвы, как и я: жертвы ужасных времен и ужасных людей, но кто - до сих пор еще жив, не сдался, но очень искалечен, но кто до сих пор находит в себе силы хотя бы написать сюда, чтобы почувствовать себя не одним.
Я думаю, что я знаю, как я бы им мог помочь. Я думаю, что я смогу найти выход если не для себя, так для них. Системный выход и стабильную помощь. Не факт, что получится. Но я - попытаюсь искренне пройти через этот, казалось бы, не проходимый вихрь, смотря на него из порта, наполненных теми, кто так хорошо выучил собственную беспомощность.
Не факт, что получится. Не факт, что я банально смогу пережить встречу, которая может случиться один-на-один с человеком, который ненавидит меня больше всех остальных и он будет вооружен Камисори 14 века и мы с ним останемся наедине - с самим собой. Но, я искренне - попытаюсь. Не ради себя.
Я попытась сделать что-то для других, если у меня есть такая возможноть. Я посчитал, что если останусь и продолжу писать здесь, не делая ничего - эта встреча, из абзаца выше, может стать только ближе. Конечно, с одной стороны я искренне хотел обрести ту самую, сильнейшую связь, через расскрытия себя здесь - по-этому, вероятно, и вымучивал все эти буквы почти каждую ночь, до рассвета. Но, со стороны другой, я, попутно, через эти публикации, только и делал, что интеллектуализировал параличь собственной воли, и в ход шли все инструменты: от рассказа о любви к квартире, до разрушительного расставания, которое случилось вот уже как 1,5 года назад.
Я попытаюсь восстановить режим сна, загранник и уехать на Бали. Я попытаюсь открыть фонд с НКО для тех, кто был здесь со мной. Я попытаюсь выжить, найти связь и обрести свое дело. Свое место. Свое счастье.
Пиши в мой ТТ, если чувствуешь, что надо. Фляга Сваги.
Чекнул сплитику, пока искал пикрил, зашел в тг, а она замуж вышла. Ну пиздец. Ей 20, с парнем я хз, года 4, и вот свадьба уже. Ну обидно, конечно, - все, блядь, хайпуют, любовь находят, зарабатывают, живые, пиздато. Пиздато.
Искренне, спасибо каждому. Я не прощаюсь - я беру паузу. Конечно, я вернусь!
ОП ты интересно пишешь, все ещё не прочёл. Но все что ты описываешь это збс даже траблы, а вот реккурентная депрессия, которая не даёт жить, это реально АД Сколько я пытался превозмогать.... За что мне это
>>827298 >Разумеется, с ходу можно сказать, что яблоко и котенок - биологические, репродуцируемы фенотипы их же ДНК. И связь очевидна. Делает ли меня это маньяком? Нет. Делает ли это меня умнее обезъяны? Возможно. Расскрывает ли человек, задающий подобный вопрос собственное слабоумие - конечно да. > Первое, что мне пришло в голову, что и яблоко и котенка приятно держать в руках.
>>827281 Ну хуй знает насчет "местных" я сам в Мск родился как и родители, есть и знакомые кто так же, кто родился обычно не готовы так въебывать и обычно на чилловых работах сидят а квартиры им покупают родители или отдают бабушкины. Если таких нет - то живут с родителями по итогу.
Алтарь белой змеи
Аноним26/01/20 Вск 02:50:14№334253Ответ
Болеть это пиздец, 4 тысячи на лекарства вышло если не больше. Гору таблеток приходится хавать три раза в день, одна из таблеток кончилась уже, но я забыл спросить сколько все мне это пить, сегодня поеду закрывать больничный и в понедельник уже работать опять в церковь, нас просят усилиться несмотря на опережение графика тк им леса снимать надо уже в одном месте...
Как хорошо что болезнь дала мне возможность отдохнуть и хоть как то развеяться от этого графика.
Выдали аванс 45 тысяч, живём и здравствуем, ещё и зарплата близко
>>745557 Поздно спрашиваю, но ты кто? Аватарки все уже сотни раз поменяли и теперь непонятно кто есть кто
Раз я заблудился и не знаю где мои напарники то сижу пишу этот пост, Я ЗАБЛУДИЛСЯ В ЛЕСАХ, В ЛЕСАХ! Никто не отвечает на телефоны, обед у меня по итогу раньше начался.
Нового ничего не происходит кроме [в телеге сказано]. Рутина рабочая и игровая, выбил себе S ранг в ZZZ, но не ту что хотел, крутил акулу либо полицая, а выпала бесполезная мейда, но хотя бы не фурри...
Думаю в pixel heroes переходить на новый сервер и начинать все с начала, на этом уже многого достиг
Когда нибудь сгенерю себе нормальный трипкод или откопаю старый, у меня же их тысячи было сгенерировано...
В общем не знаю даже о чем писать, хочу сделать новый тред, а этот закрыть, желания писать появиться в новом куда больше.
А так успел поработать в IT целых три или два месяца удаленкой за 90к в месяц, сейчас учусь на QA инженера, буду дальше двигаться в сторону айти, над наверстать упущенное и чтобы нахуй не выходить из дома совсем, не люблю эту как там её, улицу.
Привет всем если это кто-то читает и если кому-то это хоть интересно, а то кто это вообще читает? Тред полумертвый и за ним никто не следит...
В целом все гуд в жизни, я даже не знаю о чем рассказывать, когда все было хуево тем было больше, да и желания вылить весь этот звиздец, а сейчас? Сейчас обычная хорошая жизнь и более адекватная голова в разы чем раньше...
В общем как будут силы создам тред новый, над подумать на брендингом, да и сгенерить новый трипкод, да и в целом чтобы он был, не зря же купил 4070...
Да и сука купить пасскод, до сих пор сука бесит что кто то на мою подсеть поймал бан, даже реквест разбана не помог... Откуда мне знать кто словил? На мою подсеть не раз ловили, но они хотя бы кончались, а тут вечный бля, сразу как освободился решил сюда зайти и он уже был, мерзость...
Интересно конечно повернулась моя жизнь, совсем старый стал уже, из нестабильной малолетки что хотел сойти с ума и не дожить до 18, мне недавно стукнуло 25, теперь я женатый, учусь в колледже чтобы поступить на инженерку, имею амбиции, хочу завести семью, да и уже без обучения я востребованный специалист которому платят 6 тысяч за 8 часов. Теперь совсем скучно живу, мало общаюсь с людьми, да и не пишу особо, а ведь не о чем, что теперь читать? Я всегда презирал какделики, но что мне иначе писать? Блог в телеге просто стал моим вечным нытьем о том что я не знаю что писать, раньше же вроде тоже не особо больше, но писалось лучше, в чем же дело тогда? А хуй его знает, может просто стало меньше проблем с бошкой или может просто стала жизнь лучше и спокойнее. В общем оставлю этот пост тут, в телегу не буду кидать его...
Совсем старым, скучным и ненужным стал, даже бложик лень писать... Да и писать не о чем, да и никто не о чем не спрашивает чтобы хоть что-то написать, но зачем-то захожу чекать вдруг кто нибудь что-то написал, но увы...
Если кто-то боится или стесняется написать по каким либо причинам то отбросьте это и пишите, я очень открытый человек что любит поболтать. Поэтому велкам: @Irohabaka буду рад любым людям...
Дневник, принадлежащий не аутентичному дазайну, человеку, пытающийся в редкие моменты своей раздражё
Francua05/03/25 Срд 14:40:24№779139Ответ
Дневник, принадлежащий не аутентичному дазайну, человеку, пытающийся в редкие моменты своей раздражённости, вызванной теми или иными событиями, вторгающимися в его жизнь время от времени, понять, как устроен этот мир, пытая себя через робкие попытки разобраться в тех или иных концептуальных схемах, разработанных другими людьми, чтобы получить пищу для рассуждений. Но по-большей части разворачивающийся перед взором читателя горизонт представит его вниманию уже успевшие стать классикой и так всеми полюбившиеся — размышления ни о чем, рефлексия, самобичевание, попытка поднять дневник на нулевой произвольно выбранной картинкой, отправленной лишь с этой целью. В общем, будет интересно.
Но для начала, будет не лишним ввести читателя в контекст жизни автора через подробно изложенную биографию — ту выжимку из неё, которой бы хватило, чтобы понять, кого и зачем вы читаете. Начнем: В 2016 году автор окончил среднюю школу, отучившись всего девять классов. Автор всегда был человеком робкого характера, болезненно застенчивым и странным — отчего общался в средней школе с одним единственным человеком, который по совместительству был его знакомым, проживающим по тому же адресу с ранних лет, что и автор. В 2019 году автор поступил в шарагу на программиста оператора компьютерного набора/секретарь властителя; автор обзавелся социофобией, выражающейся в соматических симптомах, пока обучался в той шараге, — с чем не расстается и по сей день. Автор обзавелся там одним новым — другим старым — другом, с которым потерял связь сразу же после того, как раз и навсегда покинул стены того заведения. После окончания учебы в шараге, автор стал на службу в армию. Отслужив там свое, автор вернулся домой, где без работы и каких-либо планов на будущее сидел безвылазно дома, пока мать силой не устроила его на низкооплачиваемую работу — сначала на завод, затем и помощником в частный цех по производству мебели, откуда автор был удален, как только выяснилось, что автор всё-таки пальцем деланный. ....
Теперь, ближе к нашему времени, автор работает в доставке глово, страдает от социофобии, много думает о философии и политике, а также мало много читает и деградирует в Ютуб шортс.
>>799394 >Но вот на днях мы обанкротились. Я навел справки, банкрот должен платить администратору банкротства некую минимальную месячную сумму, сейчас это 15410 UAH в месяц.
Банкроты - богатые люди.
Я вообще не знаю, чего я хочу, не понимаю.
wawawa!V4ELguMZ7k04/12/22 Вск 21:31:52№644092Ответ
Попробовал первый раз скомпилировать хелловорлд под васм.
Компилируешь клангом с аргументами --target=wasm32 и --no-standard-libraries, то есть все используемые функции из стандартной библиотеки придётся написать самому, ну или взять откуда-то реализации (но желательно использовать другие имена функций, компилятор может затроллить). Дополнительно линковщику https://lld.llvm.org/WebAssembly.html через -Wl нужно прокинуть флаги --no-entry и --export-table.
Функции, экспортируемые из васма в жс, помечаешь атрибутом __attribute__((export_name("имя_функции"))). Объявления функций, импортируемых внутрь васма из жс, аналогичным образом помечаешь атрибутом import_name. Неймспейс, откуда по дефолту всё импортируется внутрь васма, называется "env". Чтобы узнать это, можно через wasm2wat https://webassembly.org/getting-started/advanced-tools перевести скомпилированный васм модуль в текстовый формат и посмотреть, откуда импортируются функции.
Куски памяти в васм модуле можно импортировать/экспортировать точно так же, как и функции. По дефолту память экспортируется из васма. То есть, если ты, например, со стороны жс хочешь прочесть что-то, что записал васм, тебе надо использовать объект "wasmModule.instance.exports.memory", который был создан автоматически. "memory" - это опять же, как и "env", не часть какого-то фиксированного апи, а просто дефолтный идентификатор, который кланг использует. Там так-то этих кусков памяти вообще в теории можно несколько сделать внутри одного модуля: https://github.com/WebAssembly/multi-memory/blob/main/proposals/multi-memory/Overview.md
То, насколько большим является экспортируемый кусок памяти и на сколько максимум его можно будет расширить, задаётся через --initial-memory и --max-memory флаги линковщика. Но, как мне кажется, проще наоборот импортировать память из жс внутрь васма, потому что можно тогда прямо в жс коде вручную создать кусок памяти и определить его начальный и максимальный размеры, как это сделано в самом верху на скрине. (Там, если что, размеры измеряются в количестве страниц размером 64Кб.)
Для работы с памятью со стороны жс можно использовать DataView, там есть методы, чтобы читать разные типы значений по байтовым оффсетам. Но тут неудобство в том, что его методы, например, setInt32, по дефолту используют big-endian порядок, в то время как васм использует little-endian порядок. Из-за этого приходится везде в методах DataView прокидывать true последним аргументом, чтобы переключить на little-endian. Может показаться, что Int32Array и аналогичные классы удобнее и как будто работают без этой мороки, но это всё чисто по совпадению: у них порядок байтов совпадает с порядком байтов на железе, где браузер запущен.
А в остальном там всё максимально плоско, всё передаётся по указателям ака байтовым оффсетам внутри используемого куска памяти. Получается, что на стороне джаваскрипта приходится возиться с указателями, прямо как в си, только ещё хуже, потому что нету никакой типизации для них, вручную прописываешь оффсеты. Например, на скрине, на 26 и 27 строках это я прописываю begin и end указатели для арены, которую позже передаю внутрь функции.
На скрине это я типо вызываю функцию генерации web-safe палитры из гиф энкодера и печатаю цвета в консоль.
К сожалению, ничего, связанного с васмом, невозможно тестить локально без хттп сервера: никак иначе не загрузить локальный файл с васм модулем. Единственная альтернатива - запихать содержимое файла в строку в base64. Но, с другой стороны, как оказалось, написать примитивный хттп сервер на winsock, который отдаёт захардкоженный список файлов - это вообще не сложно.
>>819171 >как оказалось, написать примитивный хттп сервер на winsock, который отдаёт захардкоженный список файлов - это вообще не сложно
Попробовал доделать это до более полноценного хттп сервера с хот релоадом для более удобного програмирования хтмлей и жаваскриптов.
Чтобы сообщать браузеру, когда ему пора перезагружать страницу для отображения изменений, можно было бы использовать лонг-поллинг, но он мне всегда виделся каким-то убогим костылём, поэтому я сделал примитивную частичную реализацию вебсокет сервера. По сути всё, что требовалось - это определённым образом ответить на хендшейк, отосланный браузером, который выглядит как обычный хттп запрос с хедером "Upgrade: websocket". Конкретно, там нужно взять строку-ключ, приходящую в одном из хедеров, сконкатенировать с другой строкой, вычислить SHA-1 хеш, закодировать в base64 и отправить обратно. Это, видимо, просто челлендж-проверка на адекватность сервера, потому что этот ключ в дальнейшем нигде использоваться не будет, как я понял. Функцию хеширования просто навелосипедил по википедии и RFC. А дальше я в нужные моменты отсылаю захардкоженную последовательность байтов, скопипасченную из RFC вебсокетов, которая представляет собой один дата-фрейм с каким-то рандом текстом.
Сложнее было разобраться с тем, как следить за изменениями файлов внутри папки. В винде есть вариант через FindFirstChangeNotification/FindNextChangeNotification, но там нету способа узнать, какое конкретно изменение вызвало уведомление, а это хотелось бы знать, чтобы минимально отфильтровать мусорные апдейты. Я слежу за изменением последнего времени записи и это репортится не только для изменённого файла, но и для содержащей его папки. Причём папка репортится несколько раз из-за того, что вим создаёт внутри неё ещё какой-то временный файл: https://github.com/neovim/neovim/discussions/30613
Но это всё равно вроде бы не гарантирует отсутствие дополнительных мусорных апдейтов: https://devblogs.microsoft.com/oldnewthing/20140507-00/?p=1053 Или он всё же чисто про то, что если одновременно следишь за несколькими видами событий (например, последнее время изменения и размер файла), то будешь получать несколько апдейтов, а не ровно один на каждый файл или папку, не особо понял.
Код сервера пришлось переписать с select на WaitForMultipleObjects, потому что сервер однопоточный и мне нужно одновременно ждать либо изменений содержимого файлов, чтобы отправить сообщения по вебсокетам, либо событий по сокетам. Ну и, кстати, вынести отслеживание изменений файлов в отдельный поток вряд ли как-то помогло бы, потому что в любом случае нет способа прервать select, пришлось бы делать таймаут, чтобы периодически проверять, изменились ли файлы, что звучит так себе.
В общем, суть в том, что для каждого сокета делаешь объект события через WSACreateEvent, через WSAEventSelect выставляешь события, в которых заинтересован (FD_ACCEPT для listen сокета, FD_READ и FD_CLOSE для client сокетов), и ждёшь. При получении события сбрасываешь событие через WSAResetEvent и снова ждёшь. С этим работать даже немного более удобно, чем с select, потому что не надо каждый раз полностью проходиться по всему fd_set в поиске прокнувших сокетов. Но вроде как по производительности это всё равно не особо лучше, чем select, а типо самый лучший вариант - это какие-то I/O Completion Ports (IOCP), не разбирался, что это.
Для хттп ради интереса попытался сделать парсилку, которая умеет жрать данные постепенно кусочками произвольного размера, не придумал ничего лучше, чем насрать стейт машиной и сохранять поступающие данные в промежуточный буфер до тех пор, пока не набирается достаточно данных, чтобы продвинуть стейт вперёд (конкретно в случае с хттп - пока не встретится перенос строки). Но я, если что, не стал это никак использовать, чтобы конкурентно обрабатывать сразу несколько хттп запросов, это было бы совсем уж переусложнение здесь, я просто синхронно высасываю все байты, пока не встречаю "\r\n\r\n".
Вообще это первый раз, когда я что-то пробовал делать с сетью и наверняка много чего неправильно делаю, не понимаю или не знаю. Например, отсюда:
я какое-то время назад рандомно узнал, что байты, отправленные по TCP через send() могут тупо не дойти до получателя, если ты сразу после отправки закроешь сокет. И типо единственный способ удостовериться в том, что всё реально дошло - это после отправки вызвать shutdown() операций на запись и хотя бы дождаться, пока получатель сам не закроет сокет. А ещё лучше, если он явно отправит по этому же TCP соединению какое-то сообщение, типо, что ок, получил, и только после этого можно закрывать сокет со стороны отправителя.
Или, например, после того, как переписал с селекта на ивенты, внезапно стали падать какие-то EWOULDBLOCK ошибки. Я их просто заигнорил, но может быть, я должен был что-то по-другому сделать? Ну и куча нюансов, типо, я сейчас не разрешаю переиспользовать старые TCP соединения для новых хттп запросов и просто их закрываю, но в теории вроде лучше держать их открытыми (keep-alive).
И ещё я сейчас никак не обрабатываю вебсокет сообщения с клиента и просто закрываю сокет, если клиент что-то пытается написать, потому что вроде бы он сам по себе, автоматом, пишет только close фрейм при закрытии вебсокета, так что это почти корректно по совпадению. Но по-хорошему мне нужно детектить close фрейм, присланный клиентом, отвечать на него тоже close фреймом и только после этого закрывать соединение. И возможно ещё детектить пинг фреймы и отвечать на них понгами, не знаю, может ли браузер рандомно мне такое прислать.
Это звучит как мелочь, но, например, из-за казалось бы эквивалентной по важности мелочи когда я в очередной раз забыл, что snprintf возвращает размер строки без нуль-терминатора, из-за чего я эффективно недосылал один последний байт из серверной части вебсокет хендшейка браузер тупо бесконечно ждал, пока я не отошлю этот несчастный последний байт ответа, держал соединения открытыми даже после рефреша или закрытия вкладки, а при достижении какого-то количества открытых соединений вообще отказывался открывать новые.
А, да, список самих файлов, которые отдаются сервером, до сих пор так и остался захардкоженным, не успел доделать.
>>820985 Ну, на деле я ещё пару дней разбирался со всякими багами, чтобы довести этот велосипед до минимально юзабельного состояния. Типо, например, я абсолютно не обратил внимание на то, что WSAEventSelect автоматически делает сокеты неблокирующими, но я при этом продолжал пользоваться сокетами так, как будто они блокирующие. Это и было причиной, почему внезапно посыпались EWOULDBLOCK ошибки. И ещё, как оказалось, необязательно создавать события для сокетов через WSACreateEvent, можно использовать обычный CreateEvent, в котором есть возможность включить авто-ресет, чтобы вручную не делать его.
И вот это >Но по-хорошему мне нужно детектить close фрейм, присланный клиентом, отвечать на него тоже close фреймом и только после этого закрывать соединение. действительно оказалось чем-то важным. Если не отправить в конце эти два несчастных байта, то после хот-релоада браузеры почему-то переоткрывают вебсокет соединение с ощутимой задержкой, причём чем больше вкладок было открыто одновременно, тем больше задержка. Я не знаю почему так происходит, типо браузер мне уже сказал, что он закрывает соединение, зачем ему ещё ждать какого-то подтверждения со стороны сервера? Сервер может максимум вместе с close фреймом ещё прислать причину закрытия соединения вроде бы, но тут она как бы очевидна.
Ну и добавил, чтобы можно было натравить сервер на папку, чтобы он отдавал все файлы из неё. Естественно без всяких предосторожностей от ".." в URL, потому что мне лень. Но я попытался хотя бы добавить поддержку юникодовых названий файлов, но, как оказалось, fopen() под виндой не умеет в UTF-8, и мне стало тоже лень доделывать это, всё меньше и меньше причин пользоваться помойной стандартной либой.
Я, кстати, не знаю, обязан ли хттп сервер корректно резолвить относительные пути, как будто бы и браузеры, и даже curl, делают это сами автоматически, может быть, можно просто игнорить сегменты с точками, да и всё.
Ещё случайно обнаружил гениальный способ сделать подобие сырых строк в си. Просто делаешь так: > #define RAW(...) #__VA_ARGS__ и можешь писать строку прямо внутрь вот так: RAW(Hello world). Непарные кавычки, непаврные круглые скобки и символ решётки не работают, их придётся заменить на \x??, в остальном, вроде бы любые символы можно пихать.
Ещё недостаток в том, что оно игнорит повторные пробелы (снаружи кавычек) и переносы строк, но это как раз то, что не имеет значения, когда в строку нужно загнать какой-нибудь кусок кода. Например, код шейдера или кусок жаваскрипта для хот релоада, как в моём случае. Даже подсветка синтаксиса в редакторах работает.
На видео для теста типо сделал элемент для драг н дропа картинок. Элемент можно просто в хтмл писать, ещё даже до того, как он был определён через жаваскрипт. И он позже просто автоматически проинициализируется сам, вызовется конструктор и колбеки жизненного цикла, и каждый инстанс компонента будет иметь своё отдельное состояние.
Там даже можно подписываться на изменение значений атрибутов. А изнутри наружу данные можно передавать через кастомные события обычные, только нужно к событию добавить параметр composed, чтобы оно пробилось наружу из shadow дома.
И удобно, что можно в <template> впихнуть рядом одновременно и стили, и разметку, а в конструкторе веб компонента всё содержимое <template> впихнуть в shadow дом, изолированный от внешнего мира (в том числе id тоже изолированные, так что это решает проблему указания уникального id для <label for="...">). Но, с другой стороны, это мешает, когда хочется определить какие-то глобальные стили, например, хотя бы reset.css или normalize.css, и непонятно, насколько адекватно будет просто взять и прописать @import внутри <style> тега, например. Будет ли это как-то серьёзно нагружать браузер, если на странице будет куча shadow домов и в каждом по импорту какого-то большого файла.
Я просто многого от браузеров не ожидаю после того, как я понял, что ту анимацию в сапёре >>795747 походу тупо невозможно нормально сделать, если ты рендеришь клетки поля через хтмл элементы. Браузер там пытается вынести каждую двигающуюся клетку в отдельный композит слой, что очевидно тут абсолютно избыточно. Всё особенно тормозит, когда браузер пытается на ходу разбить всё на слои как-то по умному, минимизируя их количество. И если изначально наивно зафорсить отдельный слой на каждую клетку через will-change, то всё начинает работать быстрее.
И я тупо не нашёл ни одного способа как-то сообщить браузеру, что мне всё равно на пересечения анимированных клеток между собой (которых там даже на деле нету, но браузер понятно этого не может знать) и они все могут быть в теории на одном слое. Единственная идея была - рендерить эти анимированные клетки на канвасе с прозрачным фоном, расположенным, поверх поля? И в этот момент задаёшься вопросом, почему бы тогда вообще всё не рендерить в канвас тогда?
По ходу того, как добавлял оставшиеся крутилки, понял, что всё это время неправильно работал с памятью в васме: я абсолютно забыл про то, что память под стек выделяется в том же куске памяти, который ты импортируешь в васм модуль, и та часть, которой ты можешь пользоваться сам, начинается не с самого первого байта.
Узнать адрес, начиная с которого идёт память, отведённая под кучу, можно так: объявляешь глобальную переменную __heap_base: > extern unsigned char __heap_base; Тип вроде может быть любым, потому что адресом начала кучи будет не значение, хранимое внутри, а адрес этой глобальной переменной. А в жаваскрипт этот адрес можно протащить экспортировав функцию, которая просто возвращает &__heap_base.
Причём вроде бы лучше делать это именно функцией, а не, например, через другую глобальную переменную. Когда попробовал экспортировать глобальную переменную, куда положил значение &__heap_base (экспортировать переменные можно через линкер флаг --export-dynamic + атрибут visibility("default")), то там оказалось значение отличное от того, что из функции возвращается. Типо на момент компиляции ещё точно не известно, какой адрес будет у __heap_base, потому что она автоматически определяется линковщиком, или что-то такое? С другой стороны, разве линковщик не должен такое уметь разрешать? Я просто не понимаю, почему в интернете есть примеры кода, где делается и так, и так.
До того, что проблема именно в этом, я вообще не сразу додумался. Как и до того, что у меня в коде случилось переполнение из-за того, что в одном месте использовал тип isize для вычислений и его, как оказалось, не хватало на 32-битном васме. По очереди делал step over в нативном и васмовом дебагерах и сравнивал значения переменных. Дебаг васма, кстати походу только в хроме работает, и то, только с расширением https://chromewebstore.google.com/detail/pdcpmagijalfljmkmjngeonclgbbannb?utm_source=item-share-cb
И в хроме дебаг какой-то малость кривой: после выбрасывания исключений невозможно посмотреть значения локальных переменных из-за чего невозможно разобраться, например, в каких переменных на момент отвала лежали какие-то подозрительные значения. Приходится заниматься принт стейтмент дебаггингом в любом случае.
Ещё вынес кодирование картинки в web worker, чтобы долгая кодировка не вешала основной поток и можно было хотя бы показать спиннер. Общение с воркером асинхронное, через ивенты, обмениваться можно только сериализуемыми объектами.
Из неудобств в воркере нельзя делать await на самом верхнем уровне и ещё не работают некоторые браузерные апи, например, нет доступа к дому и в частности, например, нельзя даже создать объект Image, чтобы отрисовать его в offscreen канвасе. Мне это нужно было, чтобы получить сырые пиксели загруженной картинки: в основном потоке я бы просто взял URL файла, присвоил бы его в src объекта Image, подождал бы события onload, после чего картинку можно было бы уже рисовать в канвас. И из канваса можно уже вытаскивать ImageData. А в воркере нельзя ни Image создать, ни передать его ивентом из основного потока.
В общем, решение такое, что в воркер передаёшь URL картинки, внутри качаешь её через fetch, сохраняешь в Blob, который, в свою очередь, конвертируешь в ImageBitmap через глобальную функцию createImageBitmap(), которая доступна как в основном потоке, так и в воркерах. И вот эту ImageBitmap можно уже отрисовать в канвас.
Благодаря тому, что теперь можно смотреть на результат применения разных комбинаций опций, не вбивая миллиард параметров текстом в консоль, стало ещё лучше видно, насколько оно всё же зачастую уёбищный результат генерирует в плане палитр, и дизеринг часто странно выглядит, подозреваю, что, я так и не осилил нормально его написать. А ещё оно адски медленное, особенно обычный median-cut, но там это, скорее всего, из-за того, что я временно заменил библиотечный qsort на сортировку вставками, лишь бы оно скомпилировалось.
Наркоманство. Хотел, чтобы пользовательский код выглядел как: TEST("Test name") { ... }
Поначалу думал, что в ассерте можно просто делать брейк, но потом вспомнил, что тогда не будут работать ассерты внутри циклов. В языке, к сожалению, нету меток для циклов, нельзя брейкнуться сразу на несколько уровней наружу. А метку для обычного goto никак не поставить: если рядом будут два теста, то они внутри одной функции создадут две метки с одним и тем же названием.
Можно было бы попробовать уникализировать название метки через __LINE__, но тогда непонятно, как обращаться к такой метке внутри ассерта. Один вариант, который пришёл на ум - это использовать computed goto: сохранить указатель на метку в переменную и потом сделать goto по адресу из переменной, но computed goto вроде бы не поддерживается в MSVC.
В коде библиотеки https://libcello.org/home которая как будто является самым страшным насилием над языком через макросы, которое я только видел, не нашёл ничего интересного.
> switch (1) { > fail: > case 0: >・・char const *test_name = "Test name"; >・・break; > case 1: > ・・// Test code > ・・goto fail; > }
Но тут со скобками ничего не сходится и опять же, метка fail не может повторяться в функции более одного раза, я постоянно забываю, что вложенная область видимости тут никак не помогает.
В итоге ни до чего не додумался, кроме как до setjmp, чтобы вернуться наверх.
Тут тестовый код внешне похож на мой, но каждый тест - это отдельная функция. И он через какой-то атрибут __attribute__((constructor)) автоматически добавляет тестовые функции в глобальный список, по которому позже проходится внутри main. > The constructor attribute causes the function to be called automatically before execution enters main().