А тем временем я реализовал тот самый "стриминг" сообщений, про который писал ранее. https://github.com/catamphetamine/virtual-scroller Непростая задача была. Выкачен на сайте: https://catamphetamine.github.io/chanchan/ Если открыть DevTools, то можно увидеть, что рендерится "обманка": только несколько сообщений из всего списка ~500 сообщений, которые попадают в экран, а остальное — padding-top и padding-bottom. При скроллинге это всё подменяется в режиме "кручу-верчу, следите за руками". Как результат, рендеринг всего списка сообщений теперь не занимает секунду или более на современных настольных CPU.
Вторым фактором был парсинг сообщений — оказалось, что это тоже долго. Использовав встроенный в Хром "профайлер" увидел узкие места и кое-где кое-чего оптимизировал, плюс со стримингом теперь парсятся не все 500 сообщений сразу, а только те, которые видны. Итог: аниме-тред на 2500 сообщений теперь не виснет на 5-10 секунд, а парсится за 50 миллисекунд и рендерится так же быстро.
Ещё одна сложность была в том, чтобы правильно обновлять высоту элементов списка: всё достаточно просто, когда элементы списка не растут по высоте, но в данном случае можно нажать "Показать ответы", после чего высоты переизмерятся. К тому же, React не сохраняет компонент, когда он уже не виден, поэтому возникла ещё одна задача: сохранять state где-то, и потом, когда сообщение снова видно — восстанавливать этот state: всё древо раскрытых комментариев, и состояния для каждого из сообщений этого древа ("Показать текст полностью"). В общем, рекурсия на рекурсии, но я смог.
За кадром, конечно, было ещё много чего прочего.
А ещё я понял, что "хуки" всё-таки норм, и новые проекты можно писать на них. Пока ещё устоятся немного, народ потестирует. Плюсы: минификация кода, т.к. методы и переменные классов не минифицируются.
Сроки релиза пока можно сдвинуть на "ближе к осени", судя по всему.
>>1414508 (OP) > Если открыть DevTools, то можно увидеть, что рендерится "обманка": только несколько сообщений из всего списка ~500 сообщений, которые попадают в экран, а остальное — padding-top и padding-bottom. Ты освоил виртуализованные списки?) Ох вау, со импрессинг, со смус, со мач перфоминг.
>>1414699 > Ты освоил виртуализованные списки? На самом деле, просто зачем-то полез смотреть, как работает новый Твиттер, и осенило. А так, пытался в своё время устроиться iOS-разработчиком (чё-т не взяли, хз, прост))), там эту виртуализацию использовали по "дефолту" все таблицы, потому что процессоры тогда ещё были не такими накачанными.
> у вас unclosed parenthesis, перекомпильте Хз, вроде ничё не пишет.
> ОП, ты сколько часов в день работаешь, откуда столько времени на велосипеды? Самое смешное, что я сначала написал свою первую оупен-сорс библиотеку, потом уволился, а потом уже нашёл работу, потому что библиотека набрала звёздочек. Так что путь не "сначала будет время, потом займусь", а "сначала займусь, а потом посмотрим". Это как я думал: вот, не буду ходить на работу, будет много свободного времени, напишу свой стартап. На деле понятно, что это всё просто отговорки. А так, если работать за доллары, то можно на неполный рабочий день, плюс если знаешь, что куда, то можно работать пару часов, а писать "четыре". Но "там" своих Вась хватает, там работают только с теми, кто умеет работать, а это не всем дано (профессор Савельев подтвердит).
Сегодня ещё некий ловкий китаец по имени "Long Ho" (ладно ещё не "Long Hui") задвинул меня в конец списка библиотек, радостно воткнув свою на первое место. Вот, бодаемся: https://github.com/tc39/proposal-intl-relative-time/pull/112 На самом деле, май-июнь эти выдались занятые, и у меня завал по багам (забил на них), да и двачи стоят, вот вроде начали шевелиться немного (работу сдал позавчера). Ещё летом надо гулять, чтобы не было потом мучительно за ещё одно лето перед комплюктером.
>>1414508 (OP) Норм. Сделай так чтобы развернутые картинки открывались в галерее, в которой можно будет переключаться с помощью стрелок и фильтровать по типу файла (картинка, гиф, видео).
>>1427121 > Сделай так чтобы развернутые картинки открывались в галерее, в которой можно будет переключаться с помощью стрелок и фильтровать по типу файла (картинка, гиф, видео).
Выкатил бета-версию такой кнопки наверху страницы треда. (Если речь была об этом) Когда-нибудь в будущем доработаю на автоплей роликов при листании в таком слайдшоу.
Выкатил также бета-версию кнопки "Развернуть картинки". Там тоже будут доработки в будущем: не увеличивать картинки свыше их максимальной ширины, а также уменьшать картинки, высота которых выше высоты экрана ("постеры").
> Ох, ну наконец-то пидорасов-хреньворкщиков изгнали из JS-треда.
Только ваниль, только хардкор. Всё пишем сами, так приходим к пониманию. У нас в родных краях ходили легенды про какого-то местного хакера, который пользовался только теми утилитами, которые он сам написал, включая всякие "тотал коммандеры" и прочие сетевые штуки.
> Объясните, кому не трудно, щито это такое? Типо дашчана? Капчевать можно будет?
Это новая-модная сычевальня-капчевальня, которая прикручивается к любому %channame% Только современные браузеры, только яваскрипт. Где-нибудь к концу года будет юзабельной. Попробую пропихнуть её во все чаны. В любом случае это интересный опыт, много чего узнал нового.
> Идея хорошая. Вот бы еще реализацию цепочки ссылок на реплаи к другим постам.
Давайте подробнее. Где конкретно что конкретно как конкретно. А не вот эти ваши вот "я что-то нажала и всё исчезло".
Тут ещё на работе постановили, что весь новый код будет писаться на "хуках", и скажу я вам: изначально я был скептичен по отношению к "хукам", но сейчас уже понял, что это удобная вещь — во-первых, минификация кода возможна в более широких масштабах; во-вторых, разделение функционала на части удобнее. Например, есть компонент Таблица, который имеет кучу разных "фич". По классике (как писали раньше в вакансиях, "знание основных шаблонов программирования") это делается "декораторами", то есть обёртыванием Таблицы в ТаблицуССортировкой, а её — в ТаблицуСЭкспортомВЭксель, а её — в ТаблицуСЧекбоксами, и так далее: в итоге получается такая "капуста". С "хуками" цепочка декораторов уплощается, и получаются своего рода "микс-ины", которые раньше были в Реакте, но были убраны. В общем, "хуки" в Реакте создают свой немного особый язык программирования (мета-язык), который уже не совсем яваскрипт, потому что Реакт здесь выступает как своего рода Виртуальная Машина, предоставляющая свой "рантайм", на котором работают эти "магические" "трюки". Прикольно получается, более функционально. Такая "хипстерская" штука. В общем, пишите на "хукахъ".
Ещё удобная вещь — sentry.io. Если не полениться и установить его на сайт (что делается минут за 15), то можно отлавливать все ошибки с "стектрейсами". Кто, с чего, откуда, где, на какой строке, что делал до этого. И бесплатно.
>>1434579 >то можно отлавливать все ошибки с "стектрейсами". Что это за ошибки с "стектрейсами"? И зачем для их отлова нужен отдельный вот такой инструмент?
>>1434741 Эта хуйня для сбора статистики. В рантайме у кого-то ещё бывают ошибки? ТС плюс валидаторы разве не закрывают львиную долю подобных рантайм ошибок? Крч, сентри для слабаков.
>>1434666 > Нужно написать конкурента на Scala и продавать за даллары! Ох, Скала. Помню это время: период расцвета "ШвабраШвабра", новый язык каждый месяц, новая NoSQL база данных каждую неделю, новый фреймворк каждый день. И какой-то непонятный "биткоин", даже читать про него не стану, кому он вообще может быть нужен. Было время весёлое. Вроде как 2009-ый, или типа того.
> Что это за ошибки с "стектрейсами"? И зачем для их отлова нужен отдельный вот такой инструмент? Ну вот, представьте, что у вас сайт по продаже билетов, и оборот так скажем миллион рублей в день (условно). Вроде чё-то работает, а как на самом деле — хз. Вроде есть какой-то Лёша тестер, он потестит. А ничего, что даже баг с вероятностью 0.1% может приносить в день до 1000 рублей убытка. Вот в медицине есть такое понятие как диспансеризация, или как там её. Это типа того же.
> Эта хуйня для сбора статистики. В рантайме у кого-то ещё бывают ошибки? ТС плюс валидаторы разве не закрывают львиную долю подобных рантайм ошибок? Крч, сентри для слабаков. Ну, это как советовать всем "заниматься спортом", есть гречку и ложиться на пустой желудок (см. выше). На ТС вообще ни разу не писал. Мне периодически пишут баг-репорты, мол, вот, смотри, компилятор пишет, что index.d.ts не найден. А ЕГО ТАМ И НЕТУ, КЭП. Я вертел этот ТС. Как вижу исходники на нём, так сразу закрываю, ибо белиберда какая-то нечитаемая. Валидаторы тоже не юзаю, линтеры эти всякие. Я вообще человек старой школы, я начинал с "Блокнота" и языка Perl на Windows 95.
> ОП, ты объясни откуда у тебя столько времени, ты на полставки работаешь? Сколько часов в неделю уделяешь пет-проектам? Да, что-то я в эти пару месяцев много писал. В июне там на старых переработках выехал. В этом месяце потребовалось эти две недели заниматься работой, чтобы "закрыть" часы по июлю. Миграция легаси данных на новый формат, со слоем обратной совместимости, поэтапный деплой на перекладных, пара-тройка новых форм и прочее веселье. Ну, зато платят. И то хлеб, и то хлеб...
Павел Дуров свой "epic" конкурс "в конце June / начале July" ожидаемо не объявил (они всегда сроки просирают, что намекает). Тем не менее, вроде как будет ещё что-то, так что можно пока по работе запасти кое-какие заготовки, чтобы потом можно было часы закрыть в случае чего. Чем удобна работа за часы: не нужно приходить каждый день в офис, чтобы там просиживать жёпу и чесать яйца, ведь платят за нормо-часы — тут просто занюхиваешь кокса или амфика (на самом деле не употребляю даже кофе/чай) и шпаришь сколько надо, с разумным коэффициентом.
>>1446308 Когда был Вин-95, я прогал на C по ДОС на Borland C 2.0/3.1, кажется, и под ДОС там была какая-то IDE, и под винду тоже что-то ещё более-менее нормальное. Ещё был компилятор от watcom в 32-х разрядном режиме ДОС работающий и оптимизирующий. По-моему в нотепаде всегда зашкварно работать было.
>>1446313 > Когда был Вин-95, я прогал на C по ДОС на Borland C 2.0/3.1, кажется, и под ДОС там была какая-то IDE, и под винду тоже что-то ещё более-менее нормальное. Ещё был компилятор от watcom в 32-х разрядном режиме ДОС работающий и оптимизирующий. По-моему в нотепаде всегда зашкварно работать было.
Немного приврал, кстати — на самом деле комп мне купили только в седьмом классе, и там уже была 98-ая SE. Забавный факт: в университетской общаге с одним челом скорешились, когда он назвал первую половину серийника WIndows 98SE, а я — вторую. Типа, добро пожаловать в клуб, чувак. Borland Builder C++, да, диски "Самоучитель программирования" с архивами сайтов ishodniki.ru. Тогда это всё воспринималось как волшебство, и иной раз вместо диска с неизведанной игрой покупали диск с неизведанным Microsoft Visual C++, или чем-то подобным. Вот почему я порою ностальгирую по 90-ым: потому что был модернистский оптимизм о том, что компьютеры откроют нам новый волшебный виртуальный мир, куда мы все переместимся — как космос для людей в 60-ые. А потом всему этому настал полный постмодерн. Так что это не старпёрская тоска по "трава была зеленее" — это тоска по технологическому оптимизму в целом.
>>1447458 > ОП, мне не чем заняться. Знаю React, Redux, Spring. Скажи, чем можно помочь тебе.
Я пока буду делать эту штуку в режиме художника, чтобы был единый вектор и направление. А вы могли бы писать свой собственный, с нуля, например — просто так, чтобы подкачаться. Я сам лично ловлю кайф просто с того, что делаю какую-то вещь, и вылизываю её до мелочей. Или, например, мобильный клиент, если хотите изучить Андроид какой-нибудь. Я когда-нибудь `chan-parser` зарелижу в виде отдельного пакета: можно будет его и в мобилках использовать. То есть, если есть желание чего-нибудь писать — пишите что угодно: это лучше, чем мучительно искать, чего бы такого написать. Это что-то потом можно будет показывать в откликах на вакансии, например. Я вот всё ждал, когда ко мне придёт идея офигеть какого стартапа, ведь не нужно тратить время впустую, но в итоге сублимирую в оуперсорс и вполне себе доволен процессом.
1. В прошлый раз добавил подсветку кода по запросу одного китайца ( https://github.com/catamphetamine/captchan/issues/3 ) вместе с lainchan и arisuchan. Подсветка кода оказалась непростой задачей, но в итоге нашёл вот такой пакет, оборачивающий либо Prism, либо Highlight.js (больше нету подсветчиков): https://www.npmjs.com/package/react-syntax-highlighter . Смысл этой обёртки в том, что она даёт нормальный интерфейс для использования этих подсветчиков в Реакте (по умолчанию они работают в стиле jQuery), а также даёт возможность загрузки подсветчика не целиком сразу всего, а по потребности. То есть, сначала не грузится вообще никакой код. Потом, если появляется код на странице где-нибудь, эта библиотека грузит сама себя в виде отдельного файла. Далее, смотрит, какой указан язык программирования, и грузит его отдельным файлом тоже (потому что все языки занимают несколько мегабайтов). Достигается такая динамическая загрузка средствами Webpack dynamic `import()`. Могу рассказать подробнее, если кому надо, но читайте сначала доки Webpack dynamic `import()` — там вся асинхронная магия.
2. Про разворачивание картинок и слайдшоу по треду я уже писал, вроде. В общем, оно есть.
3. Пришёл к выводу, что "классический" стиль чана с картинкой слева более читабелен (почему-то), и поэтому теперь первая картинка выносится налево. Звучит просто, но делал я это всю неделю. В итоге получилось элегантно, по пути всё перерефакторил в N-ный раз. Много чего было под капотом интересного, много всяких мелких решений вроде того, что текст всегда центрирован по центру (хитрый flexbox с пропорциями). Ещё пришёл к выводу, что "тёмный режим" порою смотрится лучше светлого по читаемости, поэтому поставил его по умолчанию пока.
>>1451163 >Или, например, мобильный клиент, если хотите изучить Андроид какой-нибудь. Через React Native это делается? Ничего не путаю или там какие-то другие технологии?
>>1452321 > Через React Native это делается? Ничего не путаю или там какие-то другие технологии? AirBnB в своё время сели на поезд хайпа по React Native, в итоге несколько лет патчили его исходники своими хаками, и в конце 2018-ого объявили, что всё перепишут на нативном коде: https://medium.com/devschacht/sunsetting-react-native-cae979e08eb2 Примерно в то же время (тремя днями ранее) (совпадение? не думаю) разработчики React Native спохватились, и выпустили запись в блоге о том, что "пацаны, не расходитесь, мы щас всё нормально перепишем и будет короче ваще". https://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018 Резюме: Я бы не писал на React Native. Да, простые приложения на нём делать можно (типа калькулятора калорий), но что-то более сложное — и вы ступаете на тропу хаков и патчей, судя по всему. В своё время писал на Objective C для айфона с хакинтоша: вполне приятный процесс был, ничего сложного. У нас в конторе студенты-второкурсники писали приложения для айфонов, и ничего, релизили. Сейчас у них язык Swift — один из самых передовых, так что можно писать на нейтиве, суть такова: Реакты приходят и уходят, а Знания остаются, и чтобы не оказаться очередной "фронтенд-макакой" в глазах нативных программистов через несколько лет, я всё-таки порекомендовал бы инвестировать в "базу", а не в "надстройку", даже если она захайплена была в своё время.
Для Андроида уже давно не Ява, и есть нормальный (видимо) язык Kotlin от питерской студии JetBrains, компилируемый в байт-код Явы.
>>1452321 > Через React Native это делается? Ничего не путаю или там какие-то другие технологии?
Кстати, вот Андрей Константинов ещё в 2018-ом статью на ШвабраШвабре писал про React Native: https://habr.com/ru/company/qlean/blog/416097/ Я в целом с ним, наверное, согласен по этому вопросу. Я и работал с ним в 2016-ом в qlean.ru в своё время: я там был фронтендером, а он там был Главой Отдела Мобильной Разработки численностью в одного человека. А до этого он написал что? Тот самый Двач.Браузер: https://github.com/8of/2ch-Browser-iOS Так что человек знает, о чём пишет.
>>1452587 если честно, я не знаю, что делать с теми знаниями, что у меня есть. По сути, могу написать сайт или интернет-магазин, но зачем... Я трогал андроид разработку в Qt на плюсах. В одном из обновлений всё отваливалось при попытке запустить на телефоне, да и не работали некоторые вещи в самом фреймворке. Я могу учить разные вещи, но не понимаю, зачем мне это.
>>1452601 > если честно, я не знаю, что делать с теми знаниями, что у меня есть. По сути, могу написать сайт или интернет-магазин, но зачем... Я трогал андроид разработку в Qt на плюсах. В одном из обновлений всё отваливалось при попытке запустить на телефоне, да и не работали некоторые вещи в самом фреймворке. Я могу учить разные вещи, но не понимаю, зачем мне это.
Ну так нужно выбрать какое-то одно направление и работать в нём. Не хватать всего понемногу, а методично грызть какой-то один из гранитов науки: в некоторый момент времени накопится критическая масса, которая запустит цепную реакцию приёма на работу. Самое простое — вкатиться либо во фронтенд, либо в мобилки (iOS, Android). iOS — сложнее, потому что нужен настоящий мак или желание трахаться с хакинтошем. Плюс айфоны в недавнее время стали совсем неоч, я уже сам подумываю перейти на Андроид в следующей итерации.
>>1452601 > если честно, я не знаю, что делать с теми знаниями, что у меня есть. По сути, могу написать сайт или интернет-магазин, но зачем... Я трогал андроид разработку в Qt на плюсах. В одном из обновлений всё отваливалось при попытке запустить на телефоне, да и не работали некоторые вещи в самом фреймворке. Я могу учить разные вещи, но не понимаю, зачем мне это.
Для устройства на работу нужно будет иметь пару сайтов или приложений показать: для этого и нужно писать. Тот же Андрей Константинов показывал свой Двач.Браузер, когда ходил на свои первые собеседования, и его взяли, когда человек, его собеседовавший ответил: "о, да я же им пользуюсь каждый день. вы приняты (с)".
Блядь, придется самому колхозить UI для двача, ну шо за ебанный в нос? Где сукаблядь сервисворкеры? Где IndexedDB? Где экспорт тредиков? Хуня, блядь, а не оболочка. Ладно, хоть нотификейшны запилил. Пиздец, придется самому все пилить.
>>1466316 > Блядь, придется самому колхозить UI для двача, ну шо за ебанный в нос? Где сукаблядь сервисворкеры? Где IndexedDB? Где экспорт тредиков? Хуня, блядь, а не оболочка. Ладно, хоть нотификейшны запилил. Пиздец, придется самому все пилить. Спокойно. Вторую половину августа в основном занимался подработкой, лечился от ОРВИ и жил с родственниками в одной квартире. В сентябре что-нибудь запилю. На днях начал отслеживание тредов делать.
> Где сукаблядь сервисворкеры? Как раз тоже подумал про какие-нибудь Service Workers в контексте обновления тредов: чтобы всё это дело обновлялось не при открытии сайта, а само как-нибудь, в фоне (когда есть связь). https://developers.google.com/web/updates/2015/12/background-sync Что ещё... Теоретически (но совсем не обязательно) какое-нибудь кеширование, да: сохранение в кеше самого JSON файла с данными треда и всех миниатюр картинок; таким образом, "обновлённый" в фоне тред может быть открыт и просмотрен даже когда нет сети. Я вообще про все эти Service Worker'ы не читал ещё, как раз почитать можно... https://developers.google.com/web/fundamentals/primers/service-workers/
> Где экспорт тредиков? Будет, когда-нибудь далеко. Я уже и схему придумал: экспорт JSON файла, в котором картинки будут закодированы как base64 URL (и миниатюры, и оригиналы). И в интерфейсе будет специальная страница "Открыть тред из файла", куда кидается такой JSON файл, и она рендерит тред с картинками.
> Где IndexedDB? "А что, можно было?" На самом деле, даже не вспомнил, что такая существует, и уже написал древовидное хранилище всей фигни в `localStorage`. https://github.com/catamphetamine/captchan/tree/master/src/UserData Пока только отслеживаемые треды, свои комментарии и т.п. Была мысль хранить ещё все свои комментарии, и сделать страницу, на которой можно было бы смотреть "Мои комментарии" / "Мои треды". Типа, всё удаляется же со временем, а тут можно будет посмотреть комментарии годичной давности, и чего-нибудь перекопипастить. Потом подумал: а квоты какие? Судя по всему, на мобильных — около 50 Мб на домен, но при этом 500 Мб на все домены, и если каждый так офигеет, то хз, что будет. На десктопе — пол-гигабайта на домен, и раз в десять тоже больше на все домены. https://love2dev.com/blog/what-is-the-service-worker-cache-storage-limit/ Хз, короче. Пока не стал такое ультимативное хранение устраивать.
> нотификейшны запилил. Да не, пока ещё не запиливал. Настоящие уведомления — системные. А это — так, осталось с других проектов.
> придется самому колхозить UI для двача Ага, давай-давай, посмотрим... Языком трепать-то вы все мастера.
>>1467775 >Ага, давай-давай, посмотрим... Языком трепать-то вы все мастера. Уже начал на Svelte/Sapper. Думаю, целиком offline-first пилить, с интерцептом фетча в сервис воркерах и последующим складированием всего содержимого в indexedDB просто фана ради, не думаю, что это серьезный выигрыш будет. Основной функционал вижу себе таким: 1) индексация апи-респонсов в indexedDB; 2) избранное не только на уровне подписок на треды, но и на отдельные мессаджи; 3) простейшие нотификашки (правда, хз как быть с постингом, наверное пасскод придется приобрести) 4) отложенная идея - сделать универсальный сёрчбар, который ищет по названию/ид доски и среди мессаг/тредов. Вот здесь может понадобиться локальная БД.
В вёрстке не силен, поэтому сделаю просто рип чего-нибудь минималистичного а-ля хакерньюс. Кстати, спасибо за корс-прокси. И еще вопрос, как ты сделал подпсветку ответов в мессагах БЕЗ ссылок (т.е. в мессаджах, НА которые ссылаются). Парсил мессадж и добавлял в словарь?
>>1467775 >Как раз тоже подумал про какие-нибудь Service Workers в контексте обновления тредов: чтобы всё это дело обновлялось не при открытии сайта, а само как-нибудь, в фоне (когда есть связь). Да, кстати, UI у тебя безбожно фризится в момент UI запросов, охуеть просто. Что там за Вьетнам происходит у тебя? Для этого, по идее, не нужны не только SW, но и вебворкеры, ведь реквест и парсинг (в фетче через payload.json()) асинхронные.
>>1467869 > Уже начал на Svelte/Sapper. ммм, посмотрим... Пишут, что этот ваш Svelte быстрее Реакта. На данном проекте как раз столнулся с этим: Реакт очень медленный. На типичной работе на такое и внимания не обратишь.
> Думаю, целиком offline-first пилить, с интерцептом фетча в сервис воркерах и последующим складированием всего содержимого в indexedDB Ну да, смысл таких проектов — научиться работать с чем-то, с чем по работе не встретишься, для общего развития.
> индексация апи-респонсов в indexedDB; Локальная база всех сообщений. Ну может быть, интересная идея.
> отложенная идея - сделать универсальный сёрчбар, который ищет по названию/ид доски и среди мессаг/тредов. Ну, это всё-таки серверная задача: не будете же вы весь двач выкачивать, плюс на сервере и архив хранится, а с телефона он будет стираться при истечении тредов.
> В вёрстке не силен, поэтому сделаю просто рип чего-нибудь минималистичного а-ля хакерньюс. Я вам сверстаю, если надо будет. Картинки рисуйте.
> Кстати, спасибо за корс-прокси. Да, кстати, бесплатный год амазонового сервера уже истёк в сентябре, буду переезжать на новый аккаунт на перекладных. Удобно, что у Тинькова можно в два клика создать "виртуальную" MasterCard для продления всей бесплатной фигни.
>>1467884 > Да, кстати, UI у тебя безбожно фризится в момент UI запросов, охуеть просто.
Ну, да, там запрос-то без разницы, а вот парсинг ответа — занимает время. В среднем было около половины секунды на тред. На "сложных" тредах (например, news, po) — до двух секунд доходило. "Посоветуй-тред" в аниме на три тыщи сообщений — вообще секунд на десять вешал браузер.
После этого я сделал так: парсятся только те сообщения, которые выводятся на экран в текущем "окне скролла". Это сразу ускорило всё дело.
Теперь, вы можете путать "фризинг" UI с временем ответа прокси, потому что оно обычно около 300 мс просто потому что пока до прокси дойдёт, пока обратно с него придёт, пока снова до него, пока снова с него. Смотрите только красные области в профайлере — там и фризится.
Хотя, вот, посмотрите картинку. На ней видно, что сетевой запрос прошёл за 300 мс. "Get thread API request finished in 0.332 secs" Сходится. Дальше: "Thread parsed in 0.108 secs" Это распарсился тред, но без парсинга самих сообщений: просто распарсилась "структура", отработали регулярки по поиску ответов на посты, и сгенерирована структура постов (всё, кроме текста). Смотрим вторую картинку ("Main") — сходится. Далее идёт "жёлтое" — это рендеринг/перерендеринг Реакта, занимающий примерно 300 мс. Вот это тормоза, да, но это на dev сборке Реакта. На production сборке посмотрел — около 100 мс, что гораздо меньше. Таким образом "просадка FPS" происходит на этом вот участке в 250 мс (включая 50 мс на "всякое-разное").
Чем можно контрить такие фризы? Ну, парсинг треда можно распараллелить, да: можно парсить его в `requestIdleCallback()`, или можно парсить в Web Worker-е (отдельный тред). Рендеринг Реакта — это когда они зарелизят Реакт 17 с асинхронным рендером Fiber, который уже пару лет как анонсировали. Время это не сократит, но отзывчивость интерфейса может увеличить за счёт непросадок FPS, хотя кто там что делает во время загрузки треда — думаю, разницы не будет.
> Что там за Вьетнам происходит у тебя? Для этого, по идее, не нужны не только SW, но и вебворкеры, ведь реквест и парсинг (в фетче через payload.json()) асинхронные.
>>1468430 > Смотрим вторую картинку ("Main") — сходится. Не прикрепилась, вот она.
>>1467869 > Кстати, спасибо за корс-прокси. Я ещё для chan-chan.tk возможно буду менять доменное имя (посмотрим) во время переезда в этом месяце, так что если CORS-прокси отвалится, то имейте ввиду.
>>1467886 > И да, спасибо еще за детальное описание жсон полей, это поможет мне, когда я захочу при крутить валидатор.
Да, у меня задумка такая и была: что народ сможет воспользоваться тем, в чём я там разобрался. Я эту ссылку Абу отправлял: он сказал, что добавит в пост "API Двача" в /api, но так и не добавил. Ещё раз ссылка для всех: https://github.com/catamphetamine/captchan/blob/master/docs/2ch.hk.md
>>1467970 > ОП-наркоман, прочитай что-нибудь про early return, это же пиздец какой-то.
Сначала завалить, а там — запинаем. Сначала зарелижу с трекером и постингом, а уж что там внутри — дело десятое. Иногда рефакторю, когда идеи приходят.
Кстати, дизайн списка отслеживаемых тредов я позаимствовал на днях, когда читал один твитор: там постили скриншоты дизайна нового Фейсбука для корпораций.
Оффтоп: Там же увидел летний лол-кек о том, что Житхаб отключил все платные репозитории для китайцев из-за торговых войн Трампа, отчего у тех случился лютый бугурт. Все критики "русского национального интернета" в очередной раз "соснули": "цивилизованный" Запад отключит вам всё, что можно, если им это будет выгодно. Ничего личного — просто бизнес. Сейчас идёт тренд на сворачивание глобализации и распад на отдельные экономические зоны: США + Мексика + Канада + Австралия, Евросоюз ("старая Европа"), Англия, Россия + СНГ, Китай. Как бы ни были удобны AWS и CloudFlare, Visa и MasterCard, Windows и Intel, а создавать и использовать свои альтернативы придётся, иначе однажды чиновник американской администрации придёт и нажмёт кнопку, если решит, что вы ему чего-то там должны, и не помогут никакие "демократия" и "свобода личности", которые только на словах.
>>1468451 >а создавать и использовать свои альтернативы придётся, А хорошо это или плохо для отечественного программиста, ведь по идее работы должно добавиться, а соответственно потребности в кадрах и зарплаты, c другой стороны конечно же западная модель организации разработки гораздо лучше нашей, сравните хотя бы англоязычный StackOverflow и какой-нибудь наш говнофорум, где у людей задача не отетить на вопрос и добраться до истины, а доказать, что они правЫ. Это у нас какой-нибудь программист 1С Иван Хуяныч настрогает шаблонов и ни с кем не будет делиться, не понимаю, что делясь знаниями, ты еще и приобретешь новые/увидишь свои в новом свете. Они как преподы говновузов, застрявшие где-то в 70х, настрочили когда-то "что-то умное" и сидят в своём манямирке, подбирая крохи с предыдущей работы. В нашем менталитете нет понятия "опен сурса"
>>1469129 > и какой-нибудь наш говнофорум А помните, были времена... GameDev.ru, MSDN.ru, xakep.ru, да куча всего было в нулевые. Потом как-то подсдулось. Те самые "мозги" утекли на Запад, наверное (в прямом и переносном смысле). Тогда, вроде бы, просто английского никто не знал, и даже это было как-то не по-пацански — изучать английский. Вот и писали все на русском. А сейчас английский все уже знают со школы, как в Европе. И правильно: нужно интегрироваться, потому что мы — догоняющие. Так что на форумах, наверное, "отрицательный отбор": самые способные либо эмигрировали на Запад, и читают Твитор/Медиум, либо просто изучили английский и читают Твитор/Медиум. А те, кто остались — это те, кто не смогли, вот у них и уровень ПТУ. Удачно, что всё-таки в 90-ые на стартовой тяге у нас что-то получилось состряпать: Яндекс, Касперский, 1С, Акронис, там. В нулевые "догнались" Вконтактом. Задумывались ли вы когда-нибудь, насколько мощный след на всём русскоговорящем сегменте оставил Вконтакт? Насколько он поднял наш уровень. Сколько людей друг друга нашли. Сколько совместных проектов сделали. Сколько взаимодействий было. Повезло нам с Павлом Дуровым (и его братом, видимо). Был период "дикого капитализма", "гуляй-поля", когда интернет был ещё пока свободным, как только что открытая Америка: "берите суверенитета сколько хотите" (в политике у нас в 90-ые аналогично было весело). А потом всё, поляна была поделена, основные игроки устаканились, и теперь всем заправляют монополии. И догонять какой-нибудь Гугл сейчас с нуля — это такая себе затея. Вон, RuTube сдулся, Яндекс.Видео сдулся, Вконтактовский ВКадре тоже сдулся, и всё, теперь только Ютуб, и жалуйтесь в СпортЛото теперь. И хрен вы теперь заставите кого-то пересесть с Ютуба в другое место. Кто успел — тот и сел. Мы вроде как успели в целом по интернету, так что нормально. У мессенджеров — такая же война сейчас. Вроде как WhatsApp выигрывает: Viber сдулся, все родственники родственников сидят в WhatsApp'е. В телеге — только молодые и продвинутые. А тётю Машу теперь попробуй заставь в телегу пересесть — "все" в ВотсАппе.
> А хорошо это или плохо для отечественного программиста, ведь по идее работы должно добавиться, а соответственно потребности в кадрах и зарплаты. Да, хорошо конечно. У нас страна широкая — поле не паханное. Столько Кулибиных по всей стране... Им только дать себя проявить, дальше они всем покажут. Сами себя накормят, если дать им старт. Нужно обеспечивать условия, чтобы таланты не прозябали в офисах на проперженных стульях, а имели возможность сами себя вытаскивать из болота. Самые умные из них — эмигрируют, но середнячки останутся, и будут полезны для страны.
> c другой стороны конечно же западная модель организации разработки гораздо лучше нашей У нас вообще в стране со словом "организация" не очень. Вот слово "раздолбайство" — это наше...
> В нашем менталитете нет понятия "опен сурса" Ну, есть такое. Но смотрю на молодёжь: она гораздо менее зашоренная. И они уже давно жгут. Так что перспективы есть.
Можете плиз немного ввести в курс дела, что именно разрабатывается ИТТ , просто в моем понимании React это JS фреймворк аналогичный Angular, YII итд, то есть он сущшествует исключительно для создания фронтенда сайта. Отсюда вытекает вопрос, а зачем понадобилось писать новый фронт заместо вакабы и как он пишется ? В написанном на Реакте приложении автор обращается к API двача ?
>>1469462 > Отсюда вытекает вопрос, а зачем понадобилось писать новый фронт заместо вакабы и как он пишется ? Я понимаю, что на дваче произошёл тот же самый "отрицательный отбор", который я описал выше: остались только те, кого вообще не парит дизайн из нулевых. Но многие люди, которые могли бы участвовать в сообществе, просто не заходят сюда, просто потому что их отталкивает дизайн и юзабилити (Убермаргинал так и говорил в старом эфире года 2016-ого на MadFM, что ему не нравится дизайн двача, и поэтому он на нём не сидит). Далее, фиг с ним с двачем, есть же нормальные чаны: тот же форчан, например, где люди не такие токсичные и без манькозакидательства. Поэтому возникла идея написать современный GUI для любого чана. Далее, сейчас пошёл тренд на анонимность, и анонимные доски гипотетически снова могли бы стать актуальными (возможно, в даркнете, или что-то типа того), то есть ещё пока рано списывать имиджборды — возможно они останутся в каком-то виде в современном мире тотальной слежки и тотальной цензуры (уже на стримах не скажи слово на букву "н", в игре попробуй не вставь лесбиянку, в твиторе попробуй сравни мужчину и женщину). Далее, недавно прикрыли 8chan и вызвали для дачи показаний в прокуратуру его владельца, заводчика свиней Джима Уоткинса. https://www.youtube.com/watch?v=a_MhRR31Zjc Его сын — Рон Уоткинс — тем временем оказался программистом-любителем, и пишет некий децентрализованный чан, основанный на блокчейне. https://twitter.com/CodeMonkeyZ Гипотетически, если кто-то напишет в будущем такой децентрализованный неубиваемый peer-to-peer анонимный чан, то и к нему можно будет прикрутить этот готовый GUI. Потому что ни один программист не сможет одинаково хорошо написать и бек, и фронт. Нужно разделять обязанности. Я по жизни получился фронтом, вот я и напишу фронт, а какой-нибудь умник ещё напишет какой-нибудь инновационный бек, и можно будет слепить из этого Супертрансформера, который задоминирует всех во все щели. Вкратце, как-то так.
>>1469543 >Я понимаю, что на дваче произошёл тот же самый "отрицательный отбор", который я описал выше: остались только те, кого вообще не парит дизайн из нулевых. Какой дизайн из нулевых, в нулевых не было такого дизайна. Этот дизайн всегда выглядел непривычно, потому что он родом из Японии. Отрицательный отбор - охуеть вообще, нет, давайте сюда дизайн с нескучными обоями, чтобы положительным отбором привлечь каких-то уебков.
>>1469543 >Я понимаю, что на дваче произошёл тот же самый "отрицательный отбор", который я описал выше: остались только те, кого вообще не парит дизайн из нулевых. >Но многие люди, которые могли бы участвовать в сообществе, просто не заходят сюда, просто потому что их отталкивает дизайн и юзабилити (Убермаргинал так и говорил в старом эфире года 2016-ого на MadFM, что ему не нравится дизайн двача, и поэтому он на нём не сидит). >Далее, фиг с ним с двачем, есть же нормальные чаны: тот же форчан
дооо, дизайн форчана прямо так сильно отличается лол
>>1469480 Я лично пишу свой гуй ради знакомства и практики с новыми технологиями, которые едва опробуешь на работе. Вдогонку, хотелось бы иметь некоторые фичи, которые невозможно реализовать просто внедрив юзерскрипт на страницу.
>>1469564 > Он просто английский не знает и не втыкает в степень токсичности и тупости тамошних аутистов. Да вы чего, форчан — на несколько голов выше, чем эти ваши двачи. Здесь уровень дискуссии вообще ни о чём. Не хотите признавать, понимаю. Первая стадия — отрицание. Потом будет гнев.
>>1469586 > Я лично пишу свой гуй ради знакомства и практики с новыми технологиями, которые едва опробуешь на работе. Ну, основная причина, конечно, эта. Надо просто чем-то в жизни заниматься. Если не смотреть бесконечные сериалы и не играть в онлайновые дрочильни, не ходить по концертам и клубам, то чем вообще в жизни заниматься? Программировать, рисовать, работать, хз. Читать надоедает достаточно быстро: не так интересно быть простым потребителем контента, интереснее быть производителем контента, так как это качественно новый уровень.
>>1469587 > Почему на некоторых сайтах с темными темами до сих пор нет автопереключения по css? Я что руками должен это делать, тянутся и нажимать на кнопку? Нет пока API для того, чтобы узнавать, какая тема установлена в системе. Сделают, наверное, когда-нибудь стандартный флаг типа `navigator.darkMode = true/false`. После того, как Эппл на прошлом WWDC анонсировала тёмные темы в iOS и macOS, все сразу засуетились, и хайповый поезд поехал.
>>1469595 > От времени суток? Хм, а чо, хорошая идея... Была такая идея тоже: ставить ночной режим в ночное время суток. Но, например, я вообще не пользуюсь ночными темами: люблю, когда в помещении светло, и всё на привычном белом фоне. У меня пять лампочек в люстре, каждая из которых по полторы тыщи люменов. Когда живёшь по съёмным квартирам, это отдельный запар: не всегда ставят нормальную люстру на пять ламп, чаще вешают что-то минималистичное, создающее атмосферу, но не имеющее функционала. Некоторые же, наоборот, сидят в полутьме, и ставят тёмные темы (глаза у людей не устают, что сделаешь). Это как война кондиционеров: "Ребята, вечер скоро, я включу свет, никто не против?" "..." "(включаешь свет)" "(недовольное молчание в оупенспейсе)".
>>1469597 > Нет, по системной теме > https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme Ого. "А что, так можно было?" Ну, это такой себе "all-in" подход: либо делать полностью на этих media queries вместо классов `.light` и `.dark`, либо не использовать эти media queries и делать классами `body.classList.add('light')`. К тому же, сейчас мощный тренд на css-in-js (сам не пользуюсь, потому что знаю и не боюсь CSS), и такие подходы не прокатят. Так что пусть пилят флаг в `navigator`.
Небольшой апдейт, чтобы тред не исчезал. Обновления:
0. Зарелизил библиотеку для доступа к API имиджборд (отдельный пост снизу).
1. Боковая панель. Раздел "Отслеживаемые треды". Добавление тредов в "отслеживаемые". Удаление тредов из "отслеживаемого". Статус треда: ещё есть или уже уплыл.Обновление тредов в "отслеживаемом" при заходе на доску. Счётчика новых сообщений пока нет.Фонового обновления пока нет.
2. Боковая панель. Раздел "Доски" ("Избранное"). Добавление досок (автоматически при заходе на доску).Добавление досок (поиск по подстроке).Удаление досок.Перетаскивание досок (изменение порядка).
3. Синхронизация настроек и пользовательских данных между вкладками Получение событий изменения данных в `localStorage` из других вкладок по `window.addEventListener('storage', listener)`.
JS движок от Фейсбука для мобильных приложений (React Native) — более быстрое время запуска, но без компиляции "горячих" участков кода.https://engineering.fb.com/android/hermes/
Там в README есть рабочий пример, который можно запустить из консоли. Учитывая, что яваскрипт-машины есть почти везде, её можно использовать и в мобильных приложениях. Документация, все дела.
Так, и ещё там Павел Дуров объявил новый конкурс. Предыдущий был на интерфейсную часть: графики, анимации. Сейчас, видимо, чисто на алгоритмику (ещё не читал): https://pastebin.com/FG0ixyeb Видимо, что-то про криптовалюты (я про них не читал, и не покупал ни разу — вертел их вообще, пирамида из воздуха). Судя по всему, до середины октября буду заниматься этим. Только закончу аврал на работе (релиз нового продукта 1 октября).
Профилактический ежемесячный бамп. Что было нового (немного).
1. (по совету анонов с форчана) Автоматически сгенерированные цитаты теперь выделяются "обычным" цветом, а написанные пользователем вручную — зелёным. Так понятнее, какие цитаты можно не читать, а какие — можно читать.
4. Новый конкурс Телеграма — интересный конкурс, но отсылать туда я ничего, конечно же, не буду. За эти две недели удалось прочесть все эти манускрипты от доктора Николая Дурова. Понаписал он там, конечно, много всего интересного... Включая стековый язык программирования, где "(1 + 2) 3" пишется как "1 2 + 3 ", и на этом языке предлагалось писать код для конкурса, я вертел... Сначала читал про блокчейн две монографии, потом монографию по ассемблеру их виртуальной машины, потом монографию по стековому языку Fift для этой виртуальной машины, потом исходники уже более-менее человеческого языка FunC, наверченного вокруг всего этого хозяйства, по которому нет доков в принципе, и написано просто "пацаны, короче, там есть несколько листингов без комментариев, ну, вы сами разберётесь, в общем. если что — читайте исходники компилятора на C++, ага".
Вроде бы как ожидается ещё какой-то конкурс в ноябре на написание "веб-клиента Телеграма", так что, возможно, весь октябрь и ноябрь будет занят этими делами. В целом, криптовалюта у них интересная. Инвесторы заходили по $0.3 за монету, сейчас уже торговать будут по $1.3 за монету, а рекомендованная цена — так вообще $3.3 за монету. Мистеры Дуровы получат 200 миллионов монет, ещё 200 миллионов монет получат прочие разработчики всей этой бодяги. Всё-таки гениальный тандем у них: один гений программирования и математики, а второй — гений пиара и маркетинга.
>>1512381 Ну что, ОП, посмотрел уже дизайн веб-версии телеги, сможешь запилить за 2 недели (без готовых фреймворков)?. Я перед конкурсом хотел отпуск на работе взять, чтобы покодить в кайф с нуля что-нибудь, поучаствовать в конкурсе, но когда увидел объём работ, то прихуел.
>>1515081 > Ну что, ОП, посмотрел уже дизайн веб-версии телеги, сможешь запилить за 2 недели (без готовых фреймворков)?. Я перед конкурсом хотел отпуск на работе взять, чтобы покодить в кайф с нуля что-нибудь, поучаствовать в конкурсе, но когда увидел объём работ, то прихуел.
Ну, в общем, уже три дня прошло. Я специально доделал дела по работе на выходных, чтобы освободить себе время для конкурса. Подумал: ну вот он, мой шанс — другие-то на работах сидят как сычи, дедлайны и т.п., а я пинаю болт весь день, вот сейчас всех и обскочу. Иии... и уже три дня ничего не хочется делать. Не начинал, в общем. Хз. Я о Павле Дурове вообще понял, что его философия вся эта — про 300 спартанцев и "человека эпохи возрождения", который не пьёт таблетки и питается солнцем. Соответственно, и в работе у него подход — требовать невозможного, достигать недостигаемого, быть сверхчеловеком. Даже если как-то, запотев, пролезть в его команду через этот конкурс, мало кто выдержит работу в таком режиме. По крайней мере, для себя я понял, что я не Нео, и вообще, за тридцать уже, временами есть настроение только сидеть-пердеть под стримы Меддисона. Вот молодые, шутливые, они жгут, а моё время уже давно прошло. Вот допишу этот проектик, да и хватит с меня. Молодость прошла интересно, ни о чём не жалею. Чем старее становишься, тем меньше хочется вообще чем-либо шевелить. Работа есть, всё есть, сидишь-пердишь себе. Ничего и никого не идеализируешь (скорее наоборот). Может быть, только у меня так.
Но вообще, конечно, про "прихуел" — аналогично. Когда мне такой объём работ показывают на работе, и говорят «Срочно, бросай всё, бизнес-стратегия поменялась: теперь надо сделать вот этот новый сайт. Вот тебе пачка дизайнов. За сколько сможешь?», я отвечаю сразу «Полгода». Наверное, просто наелся этого всего уже, и банально не хочется. Судя по всему, есть энерджайзеры, которые могут и за две недели. Если такие побеждают в конкурсах и зарабатывают миллионы долларов — ничего против не имею. Респект таким ребятам. Моя батарейка уже просто, видимо, готова отправляться на пенсию.
Кстати, есть у меня компонент один, для ввода телефонных номеров — как раз такой, какой требуется для этого задания. https://github.com/catamphetamine/react-phone-number-input Только вот весит он дофига. Если даже не возьмусь делать всё задание, то хотя бы попробую сделать вот это единственное поле ввода номера телефона. Так, чтобы быстро, компактно и идеально.
А так, конкурсы хорошие, и призы жирненькие, так что в целом очень интересно.
Время выдалось занятое: с лета как-то постоянно дела различные... В ноябре немного лечился от простатита. В перспективе ещё дела привалили, на декабрь. Челы с житхаба спрашивают в полугодовалой issue, когда исправлю: а я так и не добрался пока.
Частично переписал слайдшоу: компонент за всё время сильно разросся, и чтобы добавить новый код для анимаций, пришлось как-то разнести этот монолит по файлам, более-менее тематическим образом: получилось "по-быстрому", но уже лучше, чем было, и с этим кодом хоть как-то стало можно снова работать. Картинки теперь открываются непосредственно над их миниатюрами, а не в центре. На мобильных теперь картинки как бы "вылетают" из своих миниатюр при раскрытии, а при закрытии — "влетают" обратно в миниатюры (как приложения на экране приложений на телефоне, или как фотографии в приложении "Фото" в телефоне). На десктопах такую анимацию не стал включать: слишком много движения получается. Сделал просто мгновенное открытие/закрытие на десктопах. Ещё убрал нижнее меню ("футер") на мобильных: посчитал, что пальцем тянуться каждый раз вниз сложно, а тянуться может потребоваться только за кнопкой "показать сайдбар/меню", поэтому саму эту кнопку вынес на правый край экрана, в середину: так большому пальцу удобно её нажимать. На странице треда эта кнопка превращается в кнопку "назад": так можно выйти из треда обратно на список тредов доски. Анимацию ещё потом какую-нибудь наверчу поверх.
Ещё чего-то видел тут:
Какой-то каталог чанов, самопровозглашённый «Альтернативный Альянс Чанов»: https://imageboard.net/
1. (по мелочи) Анимировал кнопку мобильного меню: три палочки, которые перетекают из "гамбургера" в "крестик" (и обратно), а также из "гамбургера" в "стрелку назад" (и обратно).
2. (по мелочи) Добавил кнопку "Назад" слева на десктопах: для перехода из треда обратно на доску. Анимацию стрелки влево выбрал из этого очень широкого списка: https://freefrontend.com/css-arrows/
3. (по мелочи) Сделал переход по цитатам комментариев по клику. Пока только для тех комментариев, которые показаны на странице. Для тех, которые скрыты за кнопкой "Показать предыдущие комментарии", пока ещё не сделано.
4. Добавил статус прочтённости комментариев: при появлении нижней границы комментария на экране он считается "прочитанным". Таким образом, сейчас, повторно заходя в тред, пользователю не требуется листать вниз: комментарии выводятся сразу с первого "непрочтённого". Определение видимости нижней границы комментария на экране сделано через `IntersectionObserver`, который вроде бы как есть везде, кроме IE. https://developer.mozilla.org/ru/docs/Web/API/Intersection_Observer_API https://caniuse.com/#search=intersectionobserver
Данный способ засекания "прочитанности" годится для статического списка сообщений, но в будущем, когда список будет обновляться динамически ("автообновление" треда), потребуется добавить какое-нибудь дополнительное условие, как вконтакте: отображаемый на экране комментарий "прочитывается" только если нажать мышку или клавиатуру, или если подвигать мышью, но при этом с задержкой около полусекунды, т.к. пользователь мог просто потянуться мышью к кнопке закрытия вкладки и пропустить таким образом сообщение, которое пометится прочитанным, а пользователь его и не читал.
До конца года, как впоследствии предполагалось, очевидно, не закончу.Возможно, когда-нибудь весной следующего года.
>>1547959 > Зачем ты тред создал? Понтонуться? Нашёл перед кем понтоваться.
> На вопросы не отвечаешь. Задавайте.
> Толком не расписал что ты там запилил. ОП-пост не редактируется. В теме, в принципе, всё написано: пилю альтернативную графическую оболочку двача на библиотеке «Реакт». Свой прогресс обновляю в данном треде: уже получил несколько нормальных советов (пару здесь, пару на форчане), так что смысл имеется.
ОП, я просто зашел напомнить в тред, что каждый раз, когда на твоем сайте появляется нативный спиннер/лоадер при клике на какую-либо ссылку, на планете Земля погибает хороший человек. Недавно, например, умер Лужков.
>>1549107 > ОП, я просто зашел напомнить в тред, что каждый раз, когда на твоем сайте появляется нативный спиннер/лоадер при клике на какую-либо ссылку, на планете Земля погибает хороший человек.
Вы имеете ввиду системный курсор? Надо изолировать точнее. Пока я вижу только одно место, где оно может зависнуть на несколько секунд: кнопка "Показать все" в треде на тысячу комментариев. Например, здесь: https://catamphetamine.github.io/captchan/a/6504886 По нажатию на кнопку "Показать всё" парсятся все полторы тысячи сообщений (около 1.3 секунд при включенном профайлере), затем все полторы тысячи сообщений показываются (около 7 секунд при включенном профайлере). Самое медленное здесь — «маунтинг» компонентов в Реакте. Я уже упоминал это ранее: здесь лечится только использованием нативного DOM. В конкурсе Телеграма на создание веб-клиента мессенджера не просто так было требование не использовать фреймворки: истина состоит в том, что любой фреймворк будет медленнее нативного DOM-а (обычно — очень значительно медленнее). Минус нативного DOM-а — адская сложность разработки. Для микро-штук или для команд, которые могут себе это позволить (Телеграм) такое уместно. Для хобби-проектика — такое... Скорость разработки на Реакте — гораздо быстрее, проще итерировать, переписывать, не ловить никаких багов (в коде на нативном DOM-е — много багов по определению).
Что можно сделать конкретно с этим случаем: переделать то, как работает кнопка "Показать все". Например, можно просто мотать наверх, и рендерить только верх сообщений. В принципе, да, замечание правильное — перепишу потом таким образом.
> 1) выбрал шрифт маленький, так он все равно большой чем на 2ch.hk, (1366x768 15') в сообщениях треда, при этом в панели навигации - идеального размера Хмм, можете прикрепить скриншот? Я специально сделал "мелкий" шрифт для тех, кто жалуется, что "шрифт огромный" (как может быть хорошим зрение у человека, который капчует), но для вас он всё ещё большой. Я бы мог сделать настройку "крошечный", но, возможно, тут дело в чём-то другом: возможно, нужно как-то по особому настраивать шрифт для мобильных или планшетов, и т.п.
> 2) зашел в тред, тут же нажал назад, снова вернулся - показывает что я прочитал первые три сообщения (они скрылись), повторил - скрылись 6 сообщений. При этом на моем экране видна была только шапка треда Да, я тоже только вчера заметил этот баг. Исправлю на днях.
> 3) кнопка "раскрыть картинки" это NSFW? так не все изобр-я скрывает Я хз, я просто скопировал эту кнопку "Развернуть картинки" с двачей (и других чанов). Ну, есть же такая — жмёшь, и она распахивает картинки на всю ширину. Мб как-то перефразировать, хотя там нажать и сразу понять не сложно. Что за страх нажатия.
> 4) нет четкого разделения начала и конца сообщений, может в отдельный бокс светло-серого цвета? Ммм, то есть, вам кажется, что серой горизонтальной линии и шапки поста не достаточно? Вам больше нравится, как на странице треда? Серый фон и белая подложка под каждым отдельным сообщением. Или как. Я изначально делал каждое сообщение в таком стиле, но потом понял, что, во-первых, так влезает меньше сообщений по вертикали, и, во-вторых, когда всё на едином белом листе, читается как-то лучше "в потоке", без прерывания, то есть взгляд как бы скользит по сообщениям, без визуальных преград. Кстати, вконтакте комментарии именно так разделены. Там просто за счёт аватара сразу видно, где кончается одно и начинается другое. Поскольку на двачах не аватаров, то тут в роли визуального разделителя — только дата и кнопка "ответить", и линия серая.
> 5) часть картинок слева от сообщений, часть над сообщениями Да, тут можно подумать. Может быть как-то выводить картинки сверху текста, а не снизу его. Я выводил снизу по образу и подобию социальных сетей типа вконтакта.
> 6) черная обводка вокруг изображений напоминает стиль сайтов конца нулевых ммм, ну допустим. Чем бы вы её заменили? Убрали совсем? А не будет колхозно смотреться вообще без рамки? Вообще, вконтач выводит без рамок, да. Но закон ли нам вконтач. У него уже дизайн староват. Надо мыслить в будущее. Хз, поэкспериментирую. Может и убрать. Попробую без них.
> вкладку Настроек может всплывающей? В принципе, зачем? На неё зайти один раз, и всё. То есть, на неё же не будут заходить много раз. Можно, конечно. Идея-то здравая. Например, это могло бы быть модальное окно на десктопах, и часть выезжающего сайдбара на мобильных. Ну, да, стоит попробовать. Попробую так сделать.
> понравилось: > 1) нравится что раздел новостей скрыт - все равно помойка Ох, это да. Политика протекает.
> 2) альбомный просмотр фото Видимо, имеется ввиду свайпинг влево-вправо.
> 3) убраны бесполезные названия имен юзера и даты, но тут нужно бы сделать номер поста вида #1, а не №9854893 Да, я по максимуму убирал "визуальный мусор". Только зачем вам теперь порядковые номера сообщений? Единственное, зачем они обычно нужны — это определение бамп-лимита, но код уже показывает иконку бамп-лимита на всех сообщениях после (условно) 500-ого.
>>1552829 > Почини плез Вы имеете ввиду, чтобы вместо "(комментарий)" было что-то другое? Сейчас настроено условие, что если ссылка вида ">>номер" — единственная на строке, то она разворачивается в блок цитаты. Но бывают и "инлайновые" ссылки вида ">>номер". Например: "В предыдущем треде >>12345 обсуждалось ...". Как можно улучшить: можно смотреть, если ссылка вида ">>номер" находится с левого или правого края, и в таких случаях тоже разворачивать её в блок цитирования. Вы это имели ввиду?
>>1552829 > Почини плез Или лучше так: если есть инлайновая ссылка вида ">>12345", то разворачивать её в текст тоже, но не в блок текста, а в «инлайновый» текст («блок», «инлайновый» — в смысле HTML: block / inline). Например, было бы так:
Проблема не«Сап /pr/, возник такой вопрос.» Не оч понял, что это, исходники react?
Где «Сап /pr/, возник такой вопрос.» — это развёрнутая цитата того комментария, со ссылкой на сам комментарий.
>>1553668 >>1553675 Я просто сначала не понял что это ссылка на коммент, подумал что макаба парсер поломался. Если разворачивать в весь пост - может получится нечитабельно, т.к. пост большой хотя маловероятно, в таких случаях наврное все же конкретные места указываеют через ">". Я бы наверное понял если бы на этом месте была иконка со стрелочкой - как у ответов на пост - которая бы разворачивала цитируемый пост по клику прямо в теле текущего поста. Но это так, на подумать.
сделай вместо ">>" хекс числа, вида #FFFFFF, так будет проще понимать к кому идет ответ, еще неплохо былобы на основе числа подсвечиват соотвествующим цветом пост
>>1557480 > сделай вместо ">>" хекс числа, вида #FFFFFF, так будет проще понимать к кому идет ответ, еще неплохо былобы на основе числа подсвечиват соотвествующим цветом пост Не понятно, что конкретно имелось ввиду. Сразу можно предложить контр-аргумент, что любые числа, требующие дешифровки — не оч дизайн в плане юзабилити, где под пользователем может пониматься любая домохозяйка.
>>1554062 > Я бы наверное понял если бы на этом месте была иконка со стрелочкой - как у ответов на пост - которая бы разворачивала цитируемый пост по клику прямо в теле текущего поста. Но это так, на подумать. ммм, да, были идеи разворачивать посты прямо на месте, вместо перехода через скролл, но пока есть ощущение, что получилось бы слишком замороченно. но вариант конкретно с разворотом инлайна в блок цитаты по клику — вполне нормальный. Делать я его, конечно же, не буду (с). И так сойдёт (с).
>>1554287 > вот скриншот с пека, это выбран самый маленький ммм, хороший скриншот. Он навёл меня на кое-какие мысли... Выкатил тут небольшой редизайн, в общем, по мотивам этого скриншота.
---------------------------------
1. По совету из этого треда, сделал менее заметной рамку вокруг картинок: убрал её в "ночном режиме", и сделал менее заметной в "дневном режиме". Совсем убирать её в дневном режиме не стал, т.к. картинки с белым фоном сливались бы с фоном страницы (аниме/манга). Также убрал стилизацию рамки в состоянии :focus — хоть гайдлайны по accessibility и требуют, чтобы каждый кликабельный элемент имел выделение в состоянии :focus, в данном случае стиль и дизайн приоритетнее. Можно было бы сделать картинки не кнопками, а ссылками, что решило бы вопрос с outline при :focus, но тогда при наведении на каждую картинку внизу мелькал бы адрес ссылки на картинку, что без нужды отвлекало бы.
2. По совету из этого треда, добавил настройку шрифта "Мелкий", при этом старый "Мелкий" теперь "Мельче", а старый "Крупный" — "Крупнее". Получается: "Крупный", "Крупнее", "Средний", "Мельче", "Мелкий". В идеале, это был бы горизонтальный ползунок без названий, от "a" до "A", как на айфонах, но это не приоритетная фича (лучше другое поделать), поэтому оставил в виде select-а. https://github.com/catamphetamine/captchan/blob/master/src/styles/font-size.css
Ещё сначала думал немного уменьшить размер шрифта. Посмотрел на остальных сайтах: в основном используют 16px. Решил посмотреть, "что там у Apple", потому что в плане юзабилити и прочего Apple обычно на высоте. У них размер шрифта — 17px. Ещё нашёл статью: https://learnui.design/blog/mobile-desktop-website-font-size-guidelines.html (убрать пробелы в конце) Там пишут, что Medium использует размер шрифта аж 21px. В итоге решил, что в рамках Федеральной Программы по Борьбе с Преждевременной Потерей Зрения Молодёжью пока оставлю размер "среднего" шрифта на 20-ти пикселях. А кому много — те уменьшат в настройках. А кто забьёт или смирится, тем я навяжу свою позицию — это всегда приятно, подоминировать... В общем, боремся за права маловидящих в интернете. Как Варламов борется за лифты, пандусы и велодорожки — будем так же.
3. По скриншоту из этого треда, пришла мысль перенести кнопку с количеством ответов из "футера" сообщения в "хедер" сообщения, сразу после кнопки "ответить". Таким образом, в высоту экрана теперь помещается чуть больше сообщений.
4. По совету из этого треда, экспериментировал с большей заметностью границы между сообщениями треда. В итоге вернулся к «старой» схеме: лента в стиле твиттера/вконтакте с серым фоном страницы. Действительно, так лучше смотрится.
5. По скриншоту из совета в этом треде, в первый раз сравнил «1 к 1» интерфейсы Двача и captchan'а. Раньше я относился ко «старому» интерфейсу с пренебрежением: «Понаписали не пойми кто, в своих нулевых, в серых цветах». В итоге, «старый» интерфейс совершенно неожиданно утёр мне нос, когда меня ткнули лицом в то, что «старый» интерфейс по какой-то причине намного читабельнее captchan'а. По какой-то причине, взгляд с лёгкостью «парсит» комментарии в «старом» интерфейсе, а в дизайне captchan'а отдельные комментарии не особо различимы на уровне «парсера» мозга, несмотря на притемнённую и утолщённую границу между комментариями. В итоге, немного подумав, я пришёл к выводу, что ключ к лёгкому чтению комментариев такой же, как при чтении текста: во-первых, различение отдельных линий текста (оптимальная «высота строки»: ни больше, ни меньше; обычно около 1.35), а во-вторых, лёгкость слежения мозгом за тем, на какой линии текста он сейчас находится и где находится следующая линия текста (ширина строки; обычно около 70 символов). В данном случае, вместо линий текста — комментарии, а вместо ширины строки — ширина комментариев. Для того, чтобы комментарии легко отличались друг от друга при расфокусированном взгляде, их следует делать не только отделёнными границей, но и разной ширины: именно при такой конфигурации взгляд не напрягаясь может читать страницу, и переходить с комментария на комментарий без напряжённого поиска «где я был, и куда мне надо»: контент не смешивается в одну кучу, его части остаются различимыми друг от друга даже при расфокусировке. Поэтому я тоже сделал комментарии переменной ширины вместо растягивания их на 100% ширины. И добавил отступы между комментариями. И оказалось, что контрастные границы (border) сообщений тоже улучшают читабельность (при быстром полу-расфокусированном прочтении). В общем, скопировал «старый» дизайн.
---------------------------------
Ещё добавил локализацию через гугло-транслейт на немецкий для всякой немчуры, коя сидит на Кольчане, судя по Гугл-Аналитике.
---------------------------------
Тем временем, 8ch.net уже давненько работает как 8kun.top https://www.lastcryptocurrency.com/93-days-dark-8chan-coder-explains-how-blockchain-saved-his-troll-forum/ Как они поднялись, так их сразу дудосить принялись, так что Рон (сын владельца) смастерил там какой-то анти-дудос от (ходят слухи, что) фейковой компании VanwaTech, (якобы) предоставляющей услуги анти-дудоса. Прежний владелец форума уже написал разгромную статью: https://steemit.com/cloudflare/@kopipe/8chan-is-still-using-cloudflare Ну и, конечно, я тоже немного поковырял этот (судя по всему) колхозненький анти-дудос, потому что он не пускает `captchan` на `8kun.top` (яваскрипт не разрешает поставить куку для сайта vanwatech.com): https://github.com/OpenIB/OpenIB/issues/302 Рон, конечно, не отвечает, как не ответил он ни на один мой баг репорт движка восьмичана. Ожидаемо. Ну, я и не для него описание писал: больше для себя, пока разбирался. Короче, восьмичан с таким анти-дудосом работать не будет (из-за куки). А так, конечно, такой дудос вскрывается за 5 минут любым «кулхацкером».
>неизвестная ширина постов >при этом нативный скроллбар сам столкнулся с этой хуйней в своем клиенте, будет неплохо если кто то из нас напишет скроллбар, который будет прыгать по постам + расширяться/сокращаться когда надо, а не телепортироваться.
>нет стейта >нет открытых серьезно? странички бы с роутами сделал хотя бы... ну а стейт тоже не сложно, что мешает?
>>1468473 > макаки ебаные, когда уже в веб добавят нормальный рендер, а не dom-залупу он есть, даже в двух вариантах.
webgl, и еще какая та параша, которые можно юзать через жсы/расты/плюсы/си, но увы все это туда загонять, по крайней мере изжса в нормальный язык потребуется дохуя нервов и маняоптимизаций которые серавно отсосут хуй, так как все операции с инторнетиками идут через жс.
>>1562349 > сам столкнулся с этой хуйней в своем клиенте, будет неплохо если кто то из нас напишет скроллбар, который будет прыгать по постам + расширяться/сокращаться когда надо, а не телепортироваться.
Вы имеете ввиду плавный переход к нужному посту, а не мгновенный, как сейчас? Там дело в том, что рендерится только область, видная при текущей прокрутке. Если делать анимированный скролл при переходе, то как решать вопрос с тем, что скроллиться он будет через пустоту? Да и в чём смысл, если расстояние большое. У меня была такая идея: если расстояние — меньше пары высот экрана, то просто анимированно скроллить. Если же расстояние — больше, то нет смысла скроллить через пустоту, и придётся "телепортироваться", так как глаз в любом случае не увидит промежуточных положений (если не заставлять пользователя ждать, пока оно докрутит — юзабилити вперёд дизайна). Можно применить «трюк»: например, начать анимированно скроллить вверх, чтобы у пользователя не потерялась ориентация, затем «телепортироваться», и уже на месте сэмулировать медленную остановку. Да, будет виден скачёк при этом, но пользователь не будет дизориентирован — уже лучше, чем простая «телепортация».
Если вы пишете на Vue, то как у вас там дела с производительностью? Реакт, например, очень медленно маунтит компоненты, поэтому я написал виртуальный скроллер. У вас тоже медленно? Может лучше на «нативном» DOM-е будете писать?
> скроллбар, который будет расширяться/сокращаться когда надо. Это в случае, если неизвестны высоты предыдущих элементов. У меня — известны по определению, так как список всегда рендерится, начиная с первого элемента (поэтому сделана кнопка «Показать предыдущие»). Если делать без изменения всех предыдущих постов, то тогда такому решению потребуется делать «расширяюще-сокращающийся» скроллбар, а точнее: на лету менять `padding-top` у DOM элемента списка, после измерения высоты комментариев, отрендеренных впервые. В принципе, наверное это тоже рабочий вариант, если выводить весь список сразу. Я выбрал другой подход: прятать все предыдущие комментарии за кнопку "Показать предыдущие".
>нет стейта >нет открытых >серьезно? странички бы с роутами сделал хотя бы... ну а стейт тоже не сложно, что мешает? Не понятно, что вы имеете ввиду.
> макаки ебаные, когда уже в веб добавят нормальный рендер, а не dom-залупу DOM — замечательный фреймворк, но он не предназначен для realtime графики, потому что это не OpenGL какой-нибудь. У DOM-а вагон преимуществ даже для веб-приложений. Можно ли сделать быстрее? Можно, но никому это не нужно: с точки зрения бизнеса, либо так (дёшево и на скорую руку), либо никак (10 лет).
>лента в стиле твиттера вот только в твиттере по-другому и оно удобней
все же считаю нужен номер поста, чтобы знать где остановился читать
>рамках Федеральной Программы по Борьбе... какие же идиотские современные требования, раньше все вмещалось на одну страницу, сегодня заходишь на любой сайт и листай-листай-листай... Все элементы крупные, шрифт большой, при этом диагонали диплеев явно увеличились в несколько раз, а получается что помещается меньше!
>>1571079 > вот только в твиттере по-другому и оно удобней Так, хватит бухтеть и дестабилизировать ситуацию в треде. Как говорил Товарищ Сталин: «Критикуешь? Предлагай!».
> все же считаю нужен номер поста, чтобы знать где остановился читать Каков сценарий использования? Я просто не закрываю вкладку, если не дочитал. А вы что? На бумажку записываете номер поста, до которого дочитали, и выключаете компьютер? А назавтра включаете компьютер, смотрите номер по бумажке, и крутите весь тред до этого 250-ого номера?
> какие же идиотские современные требования, раньше все вмещалось на одну страницу, сегодня заходишь на любой сайт и листай-листай-листай... Чего? Вам не нравится листать уже? Что вы предлагаете?
> Все элементы крупные, шрифт большой Вообще-то, во всех нормальных сайтах и приложениях сейчас есть настройка шрифта. Или вам надо 10 пикселей, как в старые-добрые, и очки с диоптриями?
> при этом диагонали диплеев явно увеличились в несколько раз Ага, в полтора, если быть точным.
> а получается что помещается меньше! Ну так высота уменьшилась, а ширина выросла. Медиа правил бал, а не текст. Вы — погрешность. Нормальные люди — не читают. На
ОП репортинг ин. Тут с Нового Года подъехал ремонт, так что я пока прописался на Каширском Дворе, хожу, щупаю потолочные карнизы, декоративные штукатурки, ламинаты, подложки, керамическую плитку и прочее. Занятие в целом интересное, но занимающее очень много времени. Ладно ещё я не работаю с 9 до 18, а так, если в офисе работать, то хз: проще и дешевле покупать квартиры с отделкой от застройщика (даже если и ПИК, который принято ругать). В целом, электрика распланирована, ламинат выбран, плитка заказана, декоративная штукатурка в целом отсмотрена и отщупана, пол-ютуба отсмотрено, так что в марте астрологи объявляют месяц свободного времени, и можно снова слушать хайлайты стримеров, смотреть летсплеи и покодить данную штуковину, а то, вон, график количества посетителей на картинке наглядно иллюстрирует. Кстати, ещё закрывал в январе прошлогодние баги в библиотеке парсинга телефонных номеров (libphonenumber-js, react-phone-number-input, country-flag-icons), а то челы там уже по полгода писали, типа, «ну чё там, живой вообще». По работке часы закрыл пока вроде тоже.
Бампану старым (январским) мини-чейнджлогом.
1. (по мелочи) Передизайнил дневную тему Евангелиона (меньше розового).
2. (по мелочи) При цитировании сообщения, содержащего только картинку, в цитате показывается эта картинка (раньше было слово «Картинка»).
3. (по мелочи) На странице доски теперь показывается только по одной картинке у каждой темы, даже если их несколько.
4. (по мелочи) Ограничение максимальной длины комментария до его сокращения под кнопку "Показать полностью" теперь зависит от ширины экрана (примерно в два раза меньше для мобильных устройств).
5. Переделал навигацию по ссылкам на комментарии: кручение скроллом оказалось не особой идеей, т.к. пользователь «терял контекст». Вместо этого, делается что-то похожее на Твиттер: по клику на цитату комментария открывается модальное окно, и в нём показываются комментарии по ссылке, причём оно работает как мини-браузер, в котором есть кнопка «Назад», и можно кликать по цитатам дальше «Вперёд». Это заодно решило вопрос о том, как показывать цитируемые комментарии, которые находятся за кнопкой «Показать предыдущие» (например, если 350-ый комментарий цитирует 50-ый комментарий: парсить и рендерить все 300 комментариев по клику было бы долго).
>>1582315 > ОП, сделай отображение ответов как в дашчане, тапаешь на кнопочку с количеством ответов и открывается модалка с постами
То есть, показывать ответы в модальном окне, а не под комментарием? Может быть. А чем это удобнее текущего поведения кнопки показа ответов?
>>1583493 > ОП сделай проксирование загрузки имаг. В адалт разделах не видно жеж ничего. Да там, наверное, просто куки достаточно ставить. Куки ставятся при запостинге сообщения, а это пока ещё не сделано. Там посмотрим. Запостинг сообщения, скорее всего, пора уже в марте выкатывать. Думаю, там сложностей никаких не будет.
Ну, я хз, никто пока не знает. Ничего не писали, просто заблочили без объяснения причин. Даже не было емейла о том, что "бла бла бла, ваш звонок очень важен для нас, оставайтесь на линии". Хз, отписал им, типа, "чё, охуели?". Заодно заготовил уже небольшой текстик о том, почему корпорации типа GitHub, Inc. — зло, со ссылками на пару-тройку примеров СЖВ-репрессий на житхабе (сколько всего интересного, оказывается, происходит в мире; не только наших на олимпиаду не пускают). Как челов банят за слово "retard" ("сокращаться"), как трансы/геи/лесбиянки пропихивают в популярных репозиториях импичменты core-разработчиков, которые имели смелось высказаться не в поддержку всей этой ЛГБТ-СЖВ-вакханалии в личном твиттере, и т.п.
Да ваще, без разницы. Как будто бы мне есть до них дело. Ха ха! Хорошо, хоть npm не под ними. Хотя, если так подумать, npm-то — тоже корпорация, и бывали уже случаи (типа leftpad) с переливанием говн. В общем, ЛЮДИ, ОДУМАЙТЕСЬ. РИЧАРД СТОЛЛМАН, МЫ ВСЁ ПРО#БАЛИ.
Ещё, кстати, на прошлой неделе слетела программка для переключения раскладки в Win 10 по капс-локу. Для этого использовал прогу, написанную каким-то челом: http://flydom.ru/capslang/ Теперь она не скачивается, и чел на этой странице пишет, что, мол, вот, есть один такой пидар, который отправил жалобу, и прогу заблочили, и вот можете ему написать, что он пидар. Ну я пошёл в его твиттер, оттуда ссылка на житхаб, ну я и написал ему, что он пидар. https://github.com/zbetcheckin/Security_list/issues/14 Он чё-то там вроде отвечал, но я не читал — пидаров не читаю. Хз, мож это он подсуетился. Пидары, они такие.
>>1629283 Все правильно делают. Надеюсь выдавят ваших токсик петухов столманов, торвальдсов и всю остальную бумерскую отрыжку 80х нахуй. Во всяком случае сознательная часть комьюнити активно работает в этом направлении.
>>1629294 > Надеюсь выдавят ваших токсик петухов столманов, торвальдсов и всю остальную бумерскую отрыжку 80х нахуй. Во всяком случае сознательная часть комьюнити активно работает в этом направлении. Лолирую с зумерков-петушков, которые ничего в своей жизни ещё не сделали, а уже гонора — вагон. Маня, ты сначала свой Линукс напиши, компилятор C++, там, потом кукарекать будешь.
>>1629849 > где чанчан можно достать? Да всё будет. Допилю увеличение/уменьшение картинок мышью/тачем на этой неделе, и задеплою куда-нибудь, хз, что там есть у нас, мож Амазон какой-нибудь, или now.sh, или surge.sh. Домен мож даже куплю, как у реального пацана-хакера, свой, именной. И PGP ключ там ещё вывесить, чтобы прямо как у пацанов/девчонок. Я тут просто что-то со всех сторон, меж огня и пламени: то в житхабе забанят, то курс доллара скакнёт, то шкаф надо уже заказывать, то батареи переварить, то цветы на 8-ое марта подарить, то на работе снова сказали сделать новый сайт, на новых технологиях, естественно, которые я ещё не читал (что там навыходило: react suspense, relay modern, next.js, jwt). Все исходники будут либо на житхабе, если они вообще ответят что-то, либо на GitLab'е. За меня даже начальник вписался — говорит, мол, Nikolay, davai napishem razgromnuyu statyu na medium.com, i na hacker news zapostim. https://news.ycombinator.com/item?id=22537501
Переезд — это всегда дело такое: сколько раз ни переезжал, всегда думаешь, что это просто, а на деле заканчиваешь кое-как в четыре часа ночи. Ну, вроде как заселился на ЖитЛаб. В принципе, всё как на ЖитХабе. Дизайн, конечно, не особо "дружественный", но зато узнал, что такое "gitlab pages", и что "github pages" — это недофича какая-то. И вообще, ГитЛаб, оказывается, очень feature-rich, и в целом какой-то сразу дух такой чувствуется, олд-скульный такой, "сначала читай, потом нажимай", как будто бы снова сижу на потном проперженном стуле в банке вечером в пятницу, настраивая очередную yoba-систему, прямо как в старые-добрые, "ух, бля!" (с). Накатал ещё пост на Медиум: https://medium.com/@catamphetamine/how-github-blocked-me-and-all-my-libraries-c32c61f061d3 Естественно, всем без разницы, ну я и не собирался раскачивать лодку. Просто добавил в каждую библиотеку на видное место, какие на Западе все на самом деле "свободные" и "демократичные".
>>1629975 > оп, можно влиться к тебе в проект? Хочу поучаствовать в опен сорсе) Вообще, вкатываться в проект — гораздо сложнее, чем начинать свой. Хотите научиться — можете запилить свой, на основе открытого API. Вот инструкция по настройке прокси-сервера: https://gitlab.com/catamphetamine/captchan/-/blob/master/CORS-PROXY-HEROKU-CORS-ANYWHERE.md Вопросы будут — спрашивайте. Можно и на почту: kuchumovn@gmail.com А так, если влезете в мой проект, то я хз, как вы в нём вообще распутаете мою писанину.
>>1634066 > Вообще, вкатываться в проект — гораздо сложнее, чем начинать свой. Двачую это. Даже не представляю как кто-то может этим заниматься не за деньги.
Так, ответ от ЖитХаба подъехал. Как и ожидалось, тот пидар меня сразу побежал репортить. Всё сходится: всё, как и описывал автор удалённой программы "capslang".
Specifically, the activity that was reported included opening an issue containing a homophobic slur, which we found to be against the spirit of our Community Guidelines.
То есть, слово "pidar" они каким-то образом увязали с "homophobic slur", несмотря на то, что такого слова нет в английском языке, и это вполне мог быть кот, прошедший по клавиатуре. Всё ясно с ними, сжв-шниками. Хорошо, что перекатился. Срал им в рот.
Хорошо, что наш предводитель Владимир Владимирович Путин закрепил на днях в конституции бога и семью как союз между мужчиной и женщиной. А как иначе защититься от этой заразы? Она похлеще этого вашего короновируса. Сегодня они не хотят быть девочками/мальчиками, а завтра — блокируют ваши open-source репозитории, не умея писать ни строчки кода.
Ещё из смешного: пока писал этот пост, пришло весёлое письмо от npm'а. Ещё подумал: хорошо же, что хоть npm не из этих... Ага... Читайте:
We are excited to share the news that npm will be joining GitHub!
This is great news for all npm users: Our commitment to keeping the npm Registry free for open source development will continue with no change. We are looking forward to being part of GitHub,
a company as committed to open source and the long-term success of the JavaScript community as we are.
Whether you use the Registry for free, or with one of our premium products, today's announcement does not change anything in your day-to-day work.
For more details on the next chapter for npm, check out Isaac’s blog post. And if you have immediate questions, please reach out.
-The npm Team
---------------------
Перевожу: теперь, если какому-то пидару не понравится ваш npm-пакет, его выпилят, а аккаунт — забанят. До свидания.
---------------------
>>1634451 > Чего с жавы перекатился? А вы на ней писали вообще? Паблик статик воид мейн... Декоратор, визитор, листенер, "знание основных шаблонов проектирования". Это же язык настолько простой, что на нём пишет любой индус. Язык сам-то по себе хороший: быстрый, безопасный (в отличие от плюсов). Но скучный сам по себе. Очень много букв. Нет хакерского духа. Это, наверное, как ездить на какой-нибудь Тойоте Королле в 2к20-ом: вроде ездит, вроде надёжно, и у соседа такая, но пипец как скучно.
>Хорошо, хоть npm не под ними. >Хорошо, хоть npm не под ними. >Хорошо, хоть npm не под ними. >Хорошо, хоть npm не под ними. >Хорошо, хоть npm не под ними. >Хорошо, хоть npm не под ними.
Небольшое обновление: один известный JS React разработчик запостил мою статью на Hacker News, после чего пошёл поток лайков и комментов (переписал даже пост на Медиуме, чтоб было поменьше кринжа), и ЖитХаб сразу же ответил в тикете и разбанил меня после того, как я согласился больше никого пидаром не называть. Решил, что ЖитХаб теперь у меня остаётся для работы (serious business edition), а личное — будет на ЖитЛабе. Вообще, я уже подумывал о том, что может пора на пенсию, а то что-то разогнался я штамповать всякие разные оупен-сорс библиотеки, а надо ли это всё вообще? Может быть, настало время как-то изменить свою жизнь. И это такой знак свыше. Уже полгода или год говорю себе: "Вот допишу интерфейс имиджборда, и тогда — свободен". Правда, не придумал пока, чем ещё заниматься. Но какое-то такое чувство на фоне было. А сейчас, вот, что-то потянуло в активизм. Писать-то интерфейс я начал просто так, а сейчас подумал: с этим всем закручиванием гаек, вроде как мы и общаемся в сети, а вроде как это и по большей части в руках корпораций: все эти твиттеры, инстаграмы, фейсбуки, вконтакты. Пробовали уже делать Open Source социальные сети — не "взлетело". Слишком сложно. Нужно проще. Вот, имиджборды — самое оно. Чем проще, тем понятней. Инстаграм и твиттер доказали это.
Лол, а тред-то на последней позиции на последней странице. Ну, раз такое дело, то думаю, это не спроста, и надо бампануть по такому случаю. Эти два месяца — ничё не писал. Отчасти по работе работка, отчасти ремонт. Переехал ещё недавно со съёмной квартиры, пока живу у родителей. Завёл строителю инстаграм: https://www.instagram.com/kornienkoremont/ Визитку нарисовал в Иллюстраторе, пойду потом напечатаю (1000 штук за 2000 руб.). Начну чё-нибудь писать в июле. Блиа, ещё простатит этот. Запарил. Ну ничё, ремонт ща доделается, осталось стены докрасить и двери поставить. Я теперь магистр ламината и профессор краски, а также научился делать разводку щитка и считать всякие номиналы/сечения. Скажу я вам, интересное занятие вообще этот ремонт — раз в жизни имеет смысл попробовать, если вы технарь.
Кстати, вот что я сегодня подумал: вся эта нездоровая педерастия в западном обществе постепенно вылилась в нарочито прилизанный и "дружелюбный" кругленький дизайн интерфейсов. Вон, ЖитХаб выкатил новый интерфейс — пипец, как будто попал куда-то в МакБук очередного хипстера: всё такое кругленькое, дружелюбненькое, unoffensive, и вообще diversity и inclusive, беленькое/голубенькое. В этом смысле, порою глоток свежего воздуха, когда заходишь на какой-нибудь Двач или Форчан, или прочие "имиджборды": сразу веет прохладным духом девяностых. Или, вон, взять тот же феномен Киберпанка: на будущее вообще есть два диаметральных взгляда — взгляд Apple/MirrorsEdgeCatalyst и взгляд Cyberpunk 2077. В одном случае — идеальный порядок, чистота и утопия, вылизанность; в другом случае — суровость, подпольность, жёсткость и угар. Что кому ближе? Большинству людей, конечно, ближе путь Apple. Да я и сам айфоновод со стажем, и Андроид пока не хочется покупать. Но, при этом, как приятно иногда посмотреть какой-нибудь ролик про Windows 95, или вот зайти на Двач, попродираться через этот древний UI, поностальгировать. Только ли ностальгия? А как же быть тогда с молодёжью, которой нравится Киберпанк 2077? Всё-таки есть, значит, что-то в этом нарочито жестковатом дизайне, что привлекает определённых людей. Меньшинство, да. Возможно, есть какой-то "профит" в том, чтобы делать дизайн не математически идеально выверенным, а намеренно слегка неряшливым, слегка "перегруженным", слегка неуклюжим по современным меркам. Это уже что-то сродни тому, как самый дорогой испанский керамогранит намеренно кривоватый, с эффектом "слепленности руками человека", намеренно покрытый какими-то якобы дефектами, эффектами старины, эффектами потёртости и прочего. Как то, что итальянская декоративная штукатурка под потёкший ржавый кусок жести, какие в обилии присутствовали в облицовке любых гаражных кооперативов в 90-ых, стоит бешеных денег и её заказывают всякие мажоры (мне в салоне рассказывала девушка-консультант, как какому-то мажору вроде как 4 квадратных метра стены сделали под итальянское ржавое железо с подтёками то ли за 100 тысяч, то ли типа того). (Это был оффтопик. Всё ещё ничё не делал. Сидим-пердим)
>>1734715 Между прочим, кстати, Киберпанк 2077 делает CD Projekt RED, которые поляки (Восточная Европа), и Observer тоже делали поляки, и замечательный Disco Elysium тоже сделали в Восточной Европе (эстонцы), что уже намекает на то, что запад больше "неудобных" тем поднимать не станет, и поэтому его продукция скатилась в постный "фаст-фуд", как и их Голливуд, и, возможно, возрождение придёт откуда-то из Восточной Европы, которая, будучи под СССР, сохранила где-то в заднем мозге остатки здорового консерватизма. Россия тоже мб подтянется когда-нибудь (если воровать перестанут, ха ха). Так что, Джордж, СКОРО ВСЯ СТРАНА ТВОЯ БУДЕТ ПОД ВОДОЙ! ТЫ С КЕМ ШУТИШЬ, БЛ...?!
>>1734715 Это нормально. Диды вон по сталену скучают, сейчас-то всё так аккуратненько и дружелюбненько, а тогда-то проезжали воронки и все срали под себя. З/к умирали тысячами, а вся страна жила в клоповниках — не то что сейчас хипсторы ебаные, и срут в тепле и моются ежедневно, даже дороги прокладывать и фонари ставить (а я напомню — красить корни деревьев в белый — это послевоенная традиция, т.к. не было не дорог не освещения, а ехать с керасиновой лампой как-то надо), брущаточку сука выкладывают вместо стандартной осенне-весенней дрисни как в деревнях, всё такое чистенькое и unoffensive.
>>1736022 Офк раньше было лучше. Как вообще можно сравнивать какую-то ж/б будку с божественным коммунальным бараком на 20 семей? Там же было всё — и отсутствие санузла (как канализации и воды вообще), о общая кухня, и отсутствие отопления (целую печку на целый дом могли поставить! не то что сейчас у всех свои регулируемые батареи и кондиционеры, уууу блядь перемоха) и отсутствие электричества/газа, и куча клопов и картонные стены/полы.
Чел, в то время даже 20м будка в хруще была на голову выше среднего жилья по больнице, ты совсем поехавший?
>>1735995 >это послевоенная традиция, т.к. не было не дорог не освещения, а ехать с керасиновой лампой как-то надо) Пиздёшь, это от зайцев красили, чтобы те деревья не грызли, даже в деревнях красили, где сроду кроме лошадей и тракторов ничего не было.
Ребята, а объясните что ОП сделал, покидайте скриншотов, а то скачивать неохото. А то написано про оболочку двача и в то же время какой то аниме тред на 2500 сообщений, какие то оптимизации, о чем речь идет не понимаю
>>1736133 >даже в деревнях красили, где сроду кроме лошадей и тракторов ничего не было. Именно потому и красили, долбоёб. Или лошади по твоему видят в темноте как кошки?
Странно что у нас вообще где-то остались деревья если зайцы для них такая уж угроза.
>>1741269 Во всём цивилизованном мире никто не догадался до такой прорывной технологии, а наши-то! Да нет там таких причин, но началось это точно после войны и адекватное объяснение одно.
>>1414508 (OP) ОП, зачем??? я не знаю как замерить сколько памяти требует, но процесс резко подрос на сотку и рос дальше всего лишь при прокрутке 4chan/b на 50 постов вниз. тормозит просто адово.
--------------------------------------------- --- скриншот сделать и приаттачить --- ---------------------------------------------
>>1736151 > Ребята, а объясните что ОП сделал, покидайте скриншотов, а то скачивать неохото. А то написано про оболочку двача и в то же время какой то аниме тред на 2500 сообщений, какие то оптимизации, о чем речь идет не понимаю Да, да, не редактируемая шапка. ОП делает универсальный альтернативный интерфейс имиджборд, и пишет в данный тред как в бортовой журнал.
>>1753263 > Опчик, можешь починить сайт? Ничего не трогал. Немного порефакторил код и немного изменил дизайн комментариев. Выкатил. Вроде работает? https://captchan.surge.sh/2ch (кольчан разве что не грузился, но они там немного шатали API; исправлено)
>>1768517 > ОП, зачем??? > я не знаю как замерить сколько памяти требует, но процесс резко подрос на сотку и рос дальше всего лишь при прокрутке 4chan/b на 50 постов вниз. > тормозит просто адово. Да, тормозит. Что тормозит конкретно? Ящитаю, рендеринг Реактом. Ещё там есть парсинг из HTML в "древовидную" JSON-овую структуру, но по сравнению с ним рендеринг занимает может быть на порядок больше процессорного времени. Потому что:
>> 1768518 > охуеть достижение. это же просто текст с картинками блеать. А вот так вот: не может Реакт просто так взять и отрендерить "просто текст и картинки". Казалось бы... Зато он удобен для того, чтобы фигачить быстро и менять на ходу. А вот ежели устаканится, то можно будет и переписать на православных шаблонах, как деды делали. Вон, у Абу до сих пор работает, и причём быстрее всех новомодных технологий.
>>1768520 > только не иди в авиакомпании, медицину и банковский сектор, умоляю! Да мне уже идти куда, после 30-ти. Разве что на "пенсию". Но на "пенсию" (так называемый "early retirement") я ещё не заработал, потому что пинал болт в свои 20-ые годы.
>>1768524 > в чем ты пишешь стили и js, что там строки без переносов длинные. как это читать? Комментарии, скорее всего. Я хз, как этот JSDoc писать — я чё-то просто фигачу в одну строку всю документацию параметров (@param). Хз, можно ли там её переносить по строкам. Вообще, читать код, особенно через полгода, скажем, даже свой — это то ещё развлечение...
--------------------------------
Чейнжлог, по мелочам:
1. Немного изменён дизайн комментариев: значки и время теперь внизу и справа. Время теперь в стиле твиттера. Автоматически сгенерированные цитаты теперь по умолчанию скрыты — выяснилось, что так легче читать тред "беглым взглядом". Потом сделаю автоматическое раскрытие их по наведению курсора мыши (с небольшой задержкой), как здесь сделано. Убрана кнопка "ответить" — это дело будет по "long press" или по double click.
2. (по мелочи) При повторном заходе в тред показывается самое позднее из уже прочитанных сообщений (но в "сером" цвете). Сделано это для того, чтобы пользователь мог сразу увидеть, действительно ли он их читал ранее, и что программа не глючит и что сообщения не были пропущены. Потом допишу, чтобы при заходе в тред автоматически перематывало scrollbar так, чтобы новое сообщение (или надпись "Нет новых комментариев") было наверху экрана, мб где-то на 25% высоты от верха. И выводить будет не одно "предыдущее прочитанное", а, например, штуки 3-4.
3. (по мелочи) Индикатор загрузки вида "крутилка" заменён на индикатор загрузки вида "полоска сверху".
4. (по мелочи) Убран "плавающий хедер".
5. (по мелочи) У названия треда добавлен индикатор статуса "онлайн": жёлтый, если были комментарии за сутки, зелёный, если были комментарии за час, зелёный с пульсацией, если было два и более комментария за 15 минут.
6. (заморочки) Комментарии помечаются как "прочитанные" в localStorage. Соответственно, на каждом проскролленном комментарии происходила запись в localStorage. Если учесть, что у современных SSD не бесконечное количество циклов перезаписи, возникал вопрос: насколько вообще такое поведение сайта законно. Нашёлся багрепорт где-то в issue-трекере Хрома, в котором разработчикам указывали на это, и они кое-как добавили где-то внутри Хрома ограничитель, пишущий в localStorage не чаще одного раза в 5 секунд. https://bugs.chromium.org/p/chromium/issues/detail?id=52663#c161 . Далее, возник вопрос о том, насколько активно вообще Хром, да и все остальные, пишут что-то на диск. Было нагуглено, что в Windows можно запустить программу "Resource Monitor", в которой видно, что Хром в "положении без движения" пишет около 200 KB каких-то данных в секунду, что почти сравнимо с тем, что пишет на диск сама Операционная Система по каким-то там своим делам. В общем, все пишут на диск, и пишут неслабо так, и вроде как диски живут, так что хз. На всякий случай, написал кеширующую обёртку над LocalStorage, которая сохраняет статус прочитанности комментариев на диск раз в минуту, или каждый раз при изменении "visibility" текущей вкладки (см. Visibility API): visibility меняется каждый раз, когда пользователь закрывает вкладку, или переходит на другую вкладку, или сворачивает окно, или нажимает кнопку "Домой" на мобильном устройстве.
Запощу маленькое обновление, чисто бампануть тред. Добавил автообновление текущего треда. Добавил раскрытие твитов по клику в модальном окне.
Добавил кнопку "Ответить" при выделении текста. Сам постинг при этом, естественно, ещё пока не сделан. В целом, было много разного рефакторинга.
Сроки готовности первой версии переезжают где-нибудь на лето.
Всякое-разное, оффтопное: Оказывается, существует свойство CSS: "content-visibility: auto". Его можно, в теории, применять для "виртуализованных списков" (то, что сейчас делает `virtual-scroller`). https://web.dev/content-visibility/ Суть этого свойства в том, что какой-нибудь <div/> помечается как "content-visibility: auto", и ему проставляется "contain-intrinsic-size" в пикселях (предполагаемая высота блока), и в таком случае этот блок не рендерится, пока пользователь до него не докрутит. Когда пользователь докрутил — рендерится. Когда прокрутил дальше — снова не рендерится. При этом обозреватель правильно обрабатывает скролл, чтобы ничего не скакало и не прерывалось. Также можно ставить это свойство не в "auto", а в "hidden" (в статье написано), и в таком случае оно даже без "contain-intrinsic-size" не будет рендериться. Чем это лучше "display: none"? Тем, что "состояние" DOM элемента не обнуляется, то есть, можно спрятать и потом снова показать. Чем это лучше "visibility: hidden"? Тем, что "visibility: hidden" — рендерит, даже если и не показывает. Доступно в обозревателях Chrome и Firefox (вроде в них).
Ещё как-то давненько заметил, что этот проект в хроме стал подлагивать: то меню открывается с задержкой, то слайдшоу закрывается с задержкой, то ещё чего. В итоге выяснилось, что это в Chrome в край офигевшие гугловцы добавили ещё один свой "костыль": задержку на неопределённое время на любой `setTimeout()`. То есть, допустим, пишете вы `setTimeout(30)`, то есть через 30 миллисекунд, а он вызывается через две секунды. А чё, нормально, мы с пацанами тут обсудили: нашей корпорации выгодно, чтобы пользователи залипали в интернете, и чтобы наша реклама не лагала, а эти ваши сайты нас не колышат, поэтому вот. Вот к чему монополия приводит.Пришлось написать эмулятор `setTimeout()` через `requestAnimationFrame()`: https://www.npmjs.com/package/request-animation-frame-timeout Казалось бы, всё просто. Ан нет. Оказалось, что `requestAnimationFrame()` не работает, если вкладка обозревателя находится в фоне. Короче, есть два стула: на одном — setTimeout(), который может быть вызван через любое время, на другом — requestAnimationFrame(), который не будет никогда вызван, пока вкладка находится в фоне. На каком интерфейсный компонент напишешь, а на каком — автообновление треда повесишь?
Ещё узнал, что есть какой-то новый клиент iChan. В мессенджере на букву Т есть по названию "ichan_android". Или автор немного дизайнерских фишек у меня подглядел, или сам придумал. Судя по всему, какой-то грамотный чел пишет. Ещё заметил, что на сайте Двача добавили плавную анимацию показа ответов при наведении мышью. Я сначала воспринял не особо, а потом посмотрел — вроде тоже нормально. Как лучше? Я бы сказал, что мгновенно — лучше, потому что это "не встаёт на пути" у пользователя, который просто хочет посмотреть, чего там написано, без задержек, без "кина". С другой стороны, с анимацией более "человечный" интерфейс. Более человечный — не всегда лучше, зависит от аудитории. Кому-то, наоборот, окошки Windows 95 — ностальгия и атмосфера. В общем, критиковать не стану (изначально собирался).
Также, поймал на Дваче баг с "подмешиванием" чего-то к чему-то у JSON API: https://2ch.hk/d/res/421281.html#795654Суть такова: есть предположение, что иногда (достаточно редко) API возвращает невалидный JSON вследствие некоего "перемешивания" данных (вероятно происходящего по неизвестным причинам). Что к чему подмешивается — хз. Написал простой скриптик, который, после может быть получаса работы, поймал баг невалидного JSON-а.Пример невалидного JSON-а: https://pastebin.com/1Sxid7Fc Как проверяется: копируется, вставляется в форму на сайте https://jsonlint.com/ , и жмётся кнопка "Validate JSON". Скрипт на Node.js, ловящий баг, если нужно: https://pastebin.com/n4PKxHG7
Ещё переписал свою давнишнюю библиотеку форматирования времени вида "time ago": https://www.npmjs.com/package/javascript-time-ago https://www.npmjs.com/package/react-time-ago А то руки не доходили. Теперь можно пользоваться. Пока искал в очередной раз по работе компонент Date Picker'а (извечная тема), увидел интересную дизайнерскую систему компонентов от IBM (зумера походу уже не знают, что это за компания). Называется "Carbon Design System": https://www.carbondesignsystem.com/components/dropdown/usage/ Прикольно смотрится, прямо веет от неё 80-ыми и 90-ыми. Шрифты рублёные, моноспейсовые. Всё прямоугольненькое такое, без гейских анимаций. В реальном проекте я бы такое использовать не стал, т.к. стиль достаточно "холодный": подошёл бы для какого-то интерфейса администрирования какой-нибудь установки, но не для сайта, и даже не для среднестатистической админской панели.
Ещё тут начал варить супы, потому что от остального что-то как-то в желудке было не совсем комфортно. Борщ — это круто. Я теперь каждый день варю, из говяжьих рёбер или говяжьих костей. Кости — вообще тема, стоят 110 рублей за килограмм, и с одного килограмма можно за 5 часов наварить наваристого бульона. Свеклу только не ем (вынимаю), а то от неё газы. Ем без сметаны, потому что от сметаны кислотность что-то того. Ещё, на "волне" газов, немного занялся темой восстановления микрофлоры кишечника: https://www.youtube.com/watch?v=O-55HZ5GiKY https://www.youtube.com/watch?v=lkgV0PR5aiw
Ещё слушал старые подкасты профессора Савельева, и он там сказал, что в день нужно минимум 2 часа находиться на солнце, чтобы вырабатывался серотонин, из которого потом будет вырабатываться мелатонин. И что стекло фильтрует ультрафиолет, поэтому за стеклом вроде как "не считается". https://www.youtube.com/watch?v=VE8v2lbPG3A
Ещё у профессора недавно вышло очередное видео про его "проект" создания искусственного разума: оказывается, электрические сигналы в мозге не несут информации, а являются лишь управляющими сигналами, а информация передаётся какой-то комбинацией двадцати нейромедиаторов, или типа того. И они там что-то моделируют по этой теме. И желающим предлагают присоединиться. Я отправил заявку, уже год прошёл, но мне не написали. Видимо, "веб-макаки" там не особо требуются) Видимо, надо выбираться постепенно из фронтенда, чтобы не деградировать. https://www.youtube.com/watch?v=dOGVmAACTLU
>>2081072 > Наебал с постом получается Блиа, пацаны, всё никак руки не доходили. Допиливаю автообновление просто. Смешно, конечно — полгода уже прошло без новостей. Но всё будет: запилил отображение каталога в режиме "с последними комментариями", добавил поддержку архивных тредов, допилю ещё автообновление избранного и выкачу.
Пока вот вам ссылок на чё-нибудь интересное-воскресное:
Посмотрел интересную документалку канала HBO про почивший 8chan и его админа Рона Уоткинса (сына Джеймса Уоткинса). Называется "Q. Into the Storm", потому что она про движение Q.Anon.
https://www.youtube.com/watch?v=rK_Gf9H2CWI Торрент: https://rarbgmirror.org/torrent/18gtmrf Ссылка magnet (тот же торрент, только без файла торрента):magnet:?xt=urn:btih:e6354d9cf5753422ca787c2882710fafac0100fd&dn=Q.Into.the.Storm.S01.1080p.AMZN.WEBRip.DDP5.1.x264-WHOSNEXT%5Brartv%5D&tr=http%3A%2F%2Ftracker.trackerfix.com%3A80%2Fannounce&tr=udp%3A%2F%2F9.rarbg.me%3A2910&tr=udp%3A%2F%2F9.rarbg.to%3A2890
Оказался он каким-то очередным загадочным Нео типа Павла Дурова (не дотягивает, конечно), хакиром чуть ли ни со связями в администрации Дональда Трампа.
В общем, занимательный сериал из шести часовых серий.
После переноса 8ch на 8kun такое ощущение, что там больше никто не сидит. Если интересно, у Рона есть канал в Телеграме под названием CodeMonkeyZ, но он там пишет про какие-то машины для голосования производства фирмы Dominion, про их уязвимости, про подсчёт голосов в каком-то там county и фальсификации демократической партии. Мне, как русскому человеку, всё это до одного места, сами понимаете.
Последние новости: по весне я поднял жёпу и начал перекапывать старый код аки грядки на даче. А чем ещё заняться программисту-пенсионеру на майские праздники? Чтобы тред не утонул, бампаю картинкой. На работе уже год как увеличился объём, взяли новых разработчиков, повесили на меня всякого разного: митинги-хуитинги, код-ревью, отписки в тасках, комплаенс со всякими бюрократическими дата-секьюрити-полисиз (типа обязательной установки скрин-сейвера с паролем у каждого сотрудника и т.п.). Но, я немного подтянул штаны, научился время от времени класть болт на работу, не забывая начислять себе зарплату, и планирую в этом-следующем месяце доделать эту ср... замечательную программу, чтобы она меня не преследовала по жизни. Ну и всех с праздником Победы.
Вообще, с 2020-ого года как-то повседневность закрутилась-завертелась. Десятые годы в целом для человечества оказались достаточно зажиточными и спокойными. Конечно, их не сравнить с прорывными 80-ыми, волшебными 90-ыми и высокотехнологичными 00-ыми. Но по сравнению с 20-ыми, 10-ые оказались достаточно мягкими.
Но что поделаешь. Наше дело — жить, а не выбирать времена, в которых жить.
Вижу, что тред снова близок к потому, потому бампаю скриншотом новой фичи просмотра каталога в режиме "недавних комментариев" (стандартный режим на имиджбордах).
До нового года планирую допилить ещё пару фич и выкатить тот самый релиз, который планировался на май.
Времени свободного всё так же немного, но я доделаю до минимально-более-менее состояния.
Ещё попробую постинг потом припилить. Раньше по причине использования гуглокапчи это было не реализуемо (только если с пасскодом), т.к. капча не работала в принципе при запуске приложения на любом домене, отличном от домена имиджборда. С новой капчей я вроде чё-то глядел мельком, но это было давно, и я хз, какое там было заключение. Так что может быть даже и будет работать, если там нет таких же анальных ограничений по "same origin policy".
Потом как-нибудь накидаю простенький веб-сайт, и попробую запилить постинг. Баги есть, они известны, но это всё как-нибудь потом. Пока надо отдохнуть.
Вообще, пришли мысли такие, что всё это, вся эта жизнь в виртуальности — она уже для меня не актуальна, и настаёт время из неё начинать выходить в реальный мир. Больше заниматься здоровьем, пытаясь его восстановить, и в целом жить вне компьютера. Возможно этот мини-проект является моим небольшим финальным аккордом, которым я поставлю для себя своеобразную точку.
Ещё я научился солить свежую форель, которую развозят в местном Вотсап-чате, и теперь солю форель и ем её с варёным рисом. Сначала не решался вообще её в рот взять, но, как оказалось, это вещь вполне съедобная. Да и мы по сути животные, так что это нормально.