Всегда было интересно, как взломать соц.сеть вк или ок, маил и прочее, как это делается, ну типа там проги какие-то используются или еще что? м? Анонхакерский, объясни
Elixir — функциональный, распределённый язык программирования общего назначения, работающий на виртуальной машине Erlang (BEAM). Обеспечивает распределённость, отказоустойчивость, исполнение в режиме мягкого реального времени, метапрограммирование с макросами и полиморфизмом, реализованным через протоколы.
Elixir успешно применяется в Discord, Facebook, WhatsApp, Pinterest и в куче других крупных проектов.
Первые две - мастхэв для новичков (можно читать любую из), так как дают основы языка и вообще функционального программирования, что особенно полезно для перекотов из императивных языков. Вторые две - набор best practice.
>>1982487 Норм, мой первый проект на эликсире был где-то в 2015 ember + phoenix, мне понравилось. В эмбере , насколько помню, много хорошего с json-api было связанно, в эликсире есть норм либа для его поддержки. Помимо этого видел где-то еще пару проектов на связке феникс + эмбер, хотя сейчас такого меньше, сейчас в качестве протокола чаще берут GraphQL + Relay и на фронте реакт. Лично я последний раз рестовую апишку видел в 2017.
Сап, Нужен ноут для успешного погромирования 300к в наносекунду.
Собственно, желания: - сборка qemu в нескольких потоках (сейчас мой старенький Samsung NP300N5Z тянет только 2 с 4Гб памяти) - тестирование в нем новых модулей - работа в гиппервизоре, может быть несколько машин linux + windows -Желательно лёгкий, и небольшой экран, 15 хватит.
Пока что всё, может еще что-то добавится.
Да и по цене: особо не в цене дело, ищу баланс, т.к. исхожу из потребносностей, но конечно не за 150К и не за 20К. Т.е. нужен нормальный.
Сап, киберсловяне Начал разбираться с Git, но очень не нравится дизайн Git Bash Возможно ли накатить на нее какой-нибудь плагин чтобы покрасивее сделать? Если да, то как?
>>1980167 >Есть тут еще такие, как я? Есть. Но я git-овую черепаху исплоьзую, но только для оверлеев, ну и для более удобного копания в некоторых настройках. Во всем остальном она проигрывает даже SVN-кой черепахе.
Пизже всего меркуриаловский HG-Tortoise. По удобствую с его HG-Workbench, не сравниться ничто. Особенно учитывая, что через нее можно и с git репами работать. А так вообще через консоль все делаю. Даже граф дерева смотрю.
Android Development Thread #1 в 2021 году, страует здесь.
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
>Хочу вкатится в 20/30/50 лет, не поздно?
Нет, не поздно. Лично знаю несколько примеров из жизни когда вкатывались в 30+ лет.
Основы программирования, логические операции -> Джава(базовый синтаксис и особенности языка) -> ООП -> особенности различных версий Джава -> алгоритмы и структуры данных -> многопоточность -> дженерики -> функции высшего порядка -> Котлин -> Android SDK(UI, версии и различия, особенности оси на уровне работы виртуальной машины) -> работа с БД, CRUD(можно и на этапе знакомства с алгоритмами) -> git -> networking/REST API/JSON/сериализация -> актуальные фреймворки зачем и почему, спойлер: экономия времени -> архитектура, зависимости, инверсия контроля -> ?..
Вот примерный флоу, которому я бы следовал, если бы учился сейчас. Начал бы сразу с алгоритмов, если честно.
В эту же последовательность нужно вставить clean code, SOLID, DRY/DIE, KISS, YAGNI и прочие модные аббревиатуры, которые весьма актуальны. Что-то упустил, но, думаю, этого достаточно.
Нет. Не стоит. Есть точка зрения, что котлин позиционируется как "удобная/лучшая джава", подразумевая то, что ты хочешь писать на джаве, но более современно и практично. Да и глупо игнорировать джавоский мир, который является в топе по числу библиотек и решений, где тебе все равно придется погрузиться когда-то в его синтаксис.
>Прочел книгу по java/kotlin/flutter и посмотрел видосы, на деле ничего не понимаю. Куда идти дальше?
Делай свои мелкие пет-проекты, можешь копировать чужие и дополнять функциями которых там нет. Главное правильно пиши сам, гугли, трать часы и дни на мелкие функции НО сделай сам, что бы полноценно понимать что к чему. Вся суть сводится к тому, что бы ты изучив ROADMAP который указан выше, вынес знания, которых хватит на создание и понимание пет-проектов с помощью которых познаешь суть разработки. Также на собесах любят когда есть портфолио в гугл плей.
>Где взять примеры проектов?
Можешь банально поискать на ютюбе или в телеграмме. Для примера:
1. Нужно хорошее знание Java/kotlin. 2. Понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии (уже androidx), shared preferences, SQLite, Handlers, Executors, Content-Providers, firebase. 3. Знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам) + гугловские поделки jetpack, понимания СОЛИД и других паттернов проектирования. 4. Базовое понимание что вообще такое Gradle. Рекомендую хорошенько изучить XML. 5. И хотя бы несколько готовых приложений.
upd: Также стоит прочекать вакансии в вашем городе и собрать самый часто используемый стек технологий и отталкиваться от него.
Незабывай изучать английский, потому что гуглить придётся именно на нем ибо информации в разы больше.
Сериалы и шоу, для того что бы увидеть полный список нужно купить подписку. Есть двойные субтитры RU/EN. Цена 300 рублей, но часто проходят акции 300 рублей за 2 месяца подписки. https://ororo.tv/ https://ororo.tv/ref/1835272 - реф ссылка. Указал потому что: Переход по Вашей ссылке дает пользователям бонус +10% ко времени их следующего абонемента.
Также советую полностью сменить язык интерфейса на всех устройствах.
>>1994803 Слабо понимаю с чего это сервисы стали вдруг устаревшими вы, мил государь, часом не путаете их с AsyncTask? Помимо сервиса и его производных, как такового, есть WorkManager/AlertManager, Firebase. На основе этого всего, при должном понимание процессов, можно решить практически любую задачу по пропердоливанию своего говна в фоне в свои же говнобазы/сайты
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником. Исходник: https://dumpz.org/bASGKD8cCFDf
Ребят такой вопрос, нужно сделать сайт что то на подобие R-keepera, Что нужно сделать что чтобы можно было заходить сразу под 4 пользователями, Кассир, Оффициант, Администратор, и Бармен. И все работало в режиме реального времени, например если официант сделал заказ - то заказ пришел кассиру сразу, а он пробил заказ на кассе и заказ отправился бармену на готовку например. Можно ли реализовать такое в Django и как такое делать? Через многопоточность? Есть советы что почитать по этому поводу
Клуб изучающих PHP #122 /php/
Аноним05/03/21 Птн 15:54:16№1958281Ответ
Здесь мы изучаем язык PHP (а также JS/CSS/HTML/SQL) и учимся делать сайты. Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.
ОП довольно занят, но постарается ответить на все вопросы. Также, ответы и решения задач можно поискать в архиве тредов phpclub.
Это тред и для начинающих. Слово "классы" у тебя ассоциируется только со школой, а в аттестате тройка по математике? Ты наш человек.
Предыдущий тред был тут: >>1917260 (OP) . Все старые треды есть в архиве: https://phpclub.tech/ (там есть поиск, можно искать решения и обсуждения задач).
С чего начать
Наши уроки по PHP собраны по адресу http://codedokode.github.io/phpbook (вас отредиректит на другой домен, не запоминайте его, он временный). Это учебник для изучающих с нуля. Там есть задачи, их нужно решать. Но если этот учебник тебе не нравится, можно читать любой другой. Или официальный мануал. Или все сразу.
Если не знаешь как решать, запости код и попроси подсказку или поищи задачу в архиве тредов.
Ты прошел весь учебник? Молодец, но это были лишь основы языка PHP. Вот что в идеале надо изучить еще: ООП, как работает веб-сервер, HTML/CSS, SQL, PDO, работа с таблицами в БД, работа с формами, MVC, git, composer, JS, фреймворки, автоматизированное тестирование. У нас есть задачи для изучения этого:
Параллельно стоит подучивать английский, на первых порах можно без него, но по мере развития придется все чаще сталкиваться с англоязычными статьями, так что лучше не откладывать. Читать можно news.ycombinator.com - это что-то вроде их хабра.
Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492
У ОПа нет аккаунтов и групп вконтакте, в фейсбуке, в твиттере, все "пхп-треды" там поддельные.
Платиновые вопросы
- Почему PHP? Потому что вакансий море, и учить легко. - Сайт опять упал!!!!! — Не паникуй, а зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Clone or Download -> Download ZIP, распакуй на рабочий стол и получи личную копию сайта, не требующую интернетов. - Что надо знать чтобы найти работу - разработчику: PHP, SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery. У нас в треде были люди, которые практически с нуля учились и смогли найти работу (ищи в архиве по слову "устроился"). - Что будут спрашивать на собеседовании если 0 опыта - гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись - Можно подробнее про поиск работы, собеседования - нет, ОП писать не будет, но может кто из анонов захочет рассказать. Поищите тред перезвонивших, а также раздел /wrk/ - Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев - Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
Тред посвящен одной из самых гибких и требовательных в IT специальностей - обеспечение качества. Достоинством сферы является низкий порог вхождения, многогранность возможных путей развития - как с переходом на руководящие должности (тимлидство, пм-ство), так и со значительным расширением количества и/или углублением навыков, а так же возможность нассать в рот девам.
>>1999727 >что бы не подумали, что ты мамкин хакер или дурачок-игроман. Могут подумать, кстати, но а что такого - своего рода тестирование же, по Куликову вроде подходит под термины security testing и ad hoc testing. Был, например, баг, где при дописывании в конфиг определенной консольной переменной/CVar давался доступ к плейсхолдерам новых крафт-рецептов (ломающим рынок и продажи компании при использовании), было и совсем какерство вроде способов спарсить ники активных игроков/проспамить им в личку/получить логин+пароль из кэша на компьютере. Или речь шла про тех школьников, которые ставят ники "какер1488", сидят на всяких читерских форумах и гоняют с паблик читами в своей любимой игрушке? В резюме понятное дело надо максимально нейтрально описать, а вот стоит ли на собесе рассказывать? >Английский пиши b2, если ты хотя бы можешь внятно о себе рассказать в present simple Думаю, худо-бедно смогу. >Потренируйся решать задачки на тестирование Думаю на utest зарегистрироваться и повыполнять, говорят, заказы там часто прилетают. >Алсо, что за миллионник с 300 вакансиями на джуниор тестера? Новосибирск. Не на джуна 300, а вообще в разделе тестирования, но в других миллионниках вроде поменьше. Тут есть академогродок, в котором куча всякого айти.
Спасибо за развёрнутый ответ. Надеюсь, по началу возьмут хоть куда-нить стажёром за еду.
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Помогите с гитом пожалуйста. Пишу проект по мануалу. Поначалу была условная ПАПКА 1 которую я создал в гитхабе и через git clone закинул себе на ПК и делал в ней коммиты. В этой папке был фронт. Теперь я создал ПАПКА 2 отдельно для бэкенда и гит репозиторий через git init. Но как сделать чтобы эти два гит репозитория были загружены на гитхаб в одном проекте?
Сап пограмач, 26лвл вкатывалец на связи О себе: Всю жизнь интересовался инженерией и техникой, втч радиоэлектроникой, но всю жизнь сидел толком без денег - супернаебизнесы или не стреляли, или стреляли, но я их оперативно сворачивал, тк или ссал или просто не нравилась работа с тупыми людьми и далекая от интеллекта деятельность. Из более менее успешного и продолжительного зашел только перекуп автомобилей, но это бесперспективно и сейчас на том рынке все скатилось в днище. Сейчас вот без денег и работы сижу в съемной хате на пыниной неделе выходных. На программирование долго долго засматривался, вроде теоретически то что нужно - перспективно, оплачиваемо, требует IQ, конструирование сложных систем, возможность удаленок и прочие бонусы. Но переодически открывая любой учебник по программированию, сразу закрывал - непонятная душная муть... Просто не понимал как это работает, какие то скобочки, индексы, префиксы. Не мог уловить связи между этими if a==b {c=c+2} и работающей программой с гуем и всякими ништяками.
И вот впаше вижу тредскрин аля "хотите верьте хотите нет, дал своей телке учебник "учим питон" и через месяц она устроилась на работу с зп 80к"Понятно что пиздеж, но не суть. И я решил а хуле нет. Раз не понимаю высокоуровневые языки, пойду с низов. Прочитал Харрис и Харрис "Цифровая схемотехника и архитектура компьютера", и на меня снизошло озарение. После осознания ассемблера и микроархитектуры процессоров, видосики на ютубе аля "учим питон за 20 уроков" показались детским лепетом. После этого с тетрадочкой проконспектировал A Byte of Python, побаловался рисуя в консоли псевдографические узоры и немного пролистав коды программ типа калькулятора на Ткинтере и простейшего парсера Olx. В частности после парсера понял, что без знания веба никуда, изучил HTML и CSS, пробежался по учебнику JavaScripta и поковырял jQuery. Парралельно начал читать книжку по алгоритмам и SICP.
И чем больше читаю и смотрю ютуб, тем больше понимаю какие массивы информации предстоит изучить... И это напрягает. Хотелось бы изучить и С (люблю микроконтроллеры и низкий уровень), и что нибудь из функциональщины, и машоб с нейросетями и прочий кулхацкинг... Проблема лишь в том что денег осталось за квартиру платить ну максимум на 2 месяца, поэтому о высоких материях потом, надо сначала стать простой макакой. Вариантов вижу два: 1. Задрочить синтаксис и алгоритмы на зубок, и попытаться вкатиться джуном куда нибудь... Конечно есть конторы для совсем червей-пидоров, где берут студентоту, которая не различает компилятор от интерпретатора, и путем анального контракта минимум на год, заставляют пахать за еду и обучение с 8 до 8 без шанса свалить... Но в такие шараги очень бы не хотелось - чувствую что каждая неделя самообучения заметно повышает шанс нормального трудоустройства. 2.Разобраться поверхностно в основных технологиях (PHP, wordpress, либы для работы с вебом итд) и вкатиться во фриланс за еду, судорожно доучиваясь в процессе через гугление. Идея с фрилансом нравится больше - и задачи разные, и какая никакая свобода... Но порог входа там повыше, чем для джуна-пидора мне кажется. 3. Уехать в родной мухосранск, и неспешно учить фреймворки на кухне, пока мамка спит. Питаться бабкиными борщами, унижаться и слушать Соловьева через стенку. Вариант для моего самолюбия крайне болезненный.
По поводу того чем хотел бы заниматься - верстка и веб не совсем мое, все таки хотелось бы больше настоящего программирования. Вот парсеры, боты - звучит уже интереснее.
Прошу прощения за простыню текста, хотелось с кем то шарящим поделиться своими болями. Реквестую советы альфа-300к/нс-богов что делать и в идеале - "вызубри и пойми вот это, это и это, что бы умел делать хотя бы вот это и можешь идти пробовать просить денюжку."
>>1673244 (OP) какой бы я дал совет себе, перед вкатыванием? быть последовательным в изучении, сформировать дисциплину обучения, не отвлекаться, убрать лишний мусор из головы, исключить инф шум, только так можно достичь просветления, познать дзен... ну или по крайней мере освоиться в одном из языков. кстати о языках - действительно не стоит распыляться, это же касается и различных технологий. если бы я сейчас делал роад мап для новичков (для тех кто хочет быть ближе к железке) я бы порекомендовал начать с С, нарабатывать базу на нём, можно начать с ненапряжных лекций cs50, это гениально. дальше либо в c++ либо java либо python мне не кажется хорошей идеей изучения стека, который требуется на рынке (but its good to know), лучше понять что тебе интересно\прёт и двигаться в этом направлении с закрытыми глазами, никого не слушать. я уверен, так можно достичь большего прогресса, исходя из своих интересов, также это выгодно и для индустрии в целом - увеличивать diversity, формировать разносторонних специалистов. забейте на нужды бизнеса, сегодня он есть - завтра его нет. создавайте что-то стоящее, создавайте будущее! (чувствую себя как стив джоббс сейчас) вы конечно же спросите, кто ты такой чтобы раздавать советы, и тут я отвечу - да хуй простой. всем спасибо.
>>1973028 > начать с С >дальше либо в c++ либо java либо python брат ебанат, какое цэ нахер, сначала ты учишься двигать байты и делать дабл фри отстреливая себе ногу, а потом предлагаешь фактически заново научится писать лапшу на жаве.
Очередной тред про хипстерские технологии, которые не работают
Я ничего не понимаю, что делать? Без петросянства: смотри программу стэнфорда CS229, CS231n https://see.stanford.edu/Course/CS229 (классика) и http://cs231n.stanford.edu/ (введение в нейроночки) и изучай, если не понятно - смотри курсы prerequisites и изучай их. Как именно ты изучишь конкретные пункты, типа линейной алгебры - дело твое, есть книги, курсы, видосики, ссылки смотри ниже.
Почему такой фокус на нейронки? Потому что остальные чистят вилкой данные в банках с помощью LGBTboost и им некогда предлагать обновления в шапку
Какая математика используется? В основном линейная алгебра, теорвер, матстат, базовый матан и matrix calculus
Можно не python? Никого не волнует, где именно ты натренируешь свою гениальную модель. Но при серьезной работе придется изучать то, что выкладывают другие, а это будет, скорее всего, python, если работа последних лет
Где набрать первый самостоятельный опыт? https://www.kaggle.com/ | http://mltrainings.ru/ Стоит отметить, что спортивный deep learning отличается от работы примерно так же, как олимпиадное программирование от настоящего. За полпроцента точности в бизнесе борятся редко, а в случае проблем нанимают больше макак для разметки датасетов. На кагле ты будешь вилкой чистить свой датасет, чтобы на 0,1% обогнать конкурента.
Количество статей зашкваливающее, поэтому все читают только свою узкую тему и хайповые статьи, упоминаемые в блогах, твиттере, ютубе и телеграме, топы NIPS и прочий хайп. Есть блоги, где кратко пересказывают статьи, даже на русском
Где ещё можно поговорить про анализ данных? http://ods.ai/
Нужно ли покупать видеокарту/дорогой пека? Если хочешь просто пощупать нейроночки или сделать курсовую, то можно обойтись облаком. Google Colab дает бесплатно аналог GPU среднего ценового уровня на несколько часов с возможностью продления, при чем этот "средний уровень" постоянно растет. Некоторым достается даже V100. Иначе выгоднее вложиться в GPU https://timdettmers.com/2019/04/03/which-gpu-for-deep-learning/ Заодно в майнкрафт на топовых настройках погоняешь
Когда уже изобретут AI и он нас всех поработит? На текущем железе - никогда, тред не об этом
Кто нибудь использовал машоб для трейдинга? Никто не использовал, ты первый такое придумал. Готовь камаз для бабла.
Список дедовских книг для серьёзных людей: Trevor Hastie et al. "The Elements of Statistical Learning" Vladimir N. Vapnik "The Nature of Statistical Learning Theory" Christopher M. Bishop "Pattern Recognition and Machine Learning" Взять можно тут: http://libgen.io/
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>1988183 Вы проебали мое уютненькое программирование, никаких инженерных принципов, никакого желания учиться, из-за вас JS считают говном не за настоящие его слабые стороны, а из-за качества выполнения задач.
Про то, что половина из вас хачи, хохлы и фемки - я молчу.
А тем временем я реализовал тот самый "стриминг" сообщений, про который писал ранее. 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: всё древо раскрытых комментариев, и состояния для каждого из сообщений этого древа ("Показать текст полностью"). В общем, рекурсия на рекурсии, но я смог.
За кадром, конечно, было ещё много чего прочего.
А ещё я понял, что "хуки" всё-таки норм, и новые проекты можно писать на них. Пока ещё устоятся немного, народ потестирует. Плюсы: минификация кода, т.к. методы и переменные классов не минифицируются.
Сроки релиза пока можно сдвинуть на "ближе к осени", судя по всему.
Запощу маленькое обновление, чисто бампануть тред. Добавил автообновление текущего треда. Добавил раскрытие твитов по клику в модальном окне.
Добавил кнопку "Ответить" при выделении текста. Сам постинг при этом, естественно, ещё пока не сделан. В целом, было много разного рефакторинга.
Сроки готовности первой версии переезжают где-нибудь на лето.
Всякое-разное, оффтопное: Оказывается, существует свойство 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
Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ? A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна. Сейчас все советуют Hyperskill. Более продуманный план обучения. Но, как и любой %COURSENAME% не гарантирует тебе успешного вката. Выучиться можно и самостоятельно, не отдавая свои кровные васянам-наставникам.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом? A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред. Но в последнее время увеличивается количество вакансий на удаленке в связи с ковидом. Но, возможно, как вся эта мракобесия закончится, всех обратно загонят в стойло.
Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать? A: Книги: https://libgen.is
Q: Хули все книги на английском? A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо? A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко объявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять раз скопипасти этот кусок кода и выведи в консоль". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут. A: Не все конторы дрочат на подход Яндекса который спиздил подход гугла. Но для крупных фирм знать алгоритмы маст хев уже на уровне джуна/трейни, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
наверное вопрос в том ООП это что-то вроде религии или РЕАЛЬНО тебе просто необходимо всё описывать через интерфейсы и создавать какие-то сложные конструкции
тут какой-то анон постоянно постит примеры с наследованями, вот и задумался
Пасаны, учу жаву. Как в intellij idea уменьшить уровень подсказок, а то совсем однокнопочное программирование, она сама код за тебя пишет, я нихуя не запоминаю. Раньше это делалось в правом нижнем углу, был значок "мужика в кепке (похожий на марио)" и там можно было уровень выбрать, высокий, низкий, и отключено сейчас мужика убрали. Хочу чтобы подсказки появлялись по требованию ctrl + пробел.
Привет, аноны. На год вперед у меня не будет доступа к ПеКарне, ибо армия. Есть ли возможность хоть каким-либо инвалидным способом изучать программирование с телефона?
Тред о разработке игр для тех, кто брезгует заходить в /gd.
Здесь обсуждается только техническая сторона дела: алгоритмы, архитектура, паттерны и реализация всего этого. Вопросы по Unity и прочим движкам, бложеки, охуительные идеи и поиск программистов/художников/инвесторов - в соответствующем разделе. Буду репортить, ибо нехуй.
С пхп я выкатился в 2010 году, надо сказать, уже тогда он начал немного затухать. Малолетние шутки про его непригодность давно переросли в мемы. А рядом из клоаки андеграунда повылезали node.js, руби и питоны забавно, что именно питонисты смеялись больше всего, хотя у них до сих пор нет вменяемого ООП, а 2.7 был тем еще кривым говном.
Так вышло, что я в те времена тоже немного подгорел от пхп, ибо уже писал на нем 5 лет, и с радостью перекатился с динамико-говна в настоящие языки программирования. Поэтому в купе всего этого было устойчивое чувство, что пхп потеснят и потеснят очень сильно, как в свое время потеснили перл.
Думаю не секрет, что основной долей быстрой разработки в вебе, до сих пор являются CMS. Да, фреймворки более гибче, но так быстро собрать готовый и вменяемый по качеству сайт не получалось не одного решения. Были какие-то маркетинговые ходы для слов из трех букв типа CMF, но все это делалось больше для реабилитации CMS, чем реальное появление нового решения.
В общем, без детальных подробностей, CMS есть веха показателя популярности языка в вебе, просто потому, что разработка вменяемого CMS и популяризация его, ресурс довольно дорогой. И что же мы видим сейчас? А то что, такие языки или платформы как нода, руби или питон, до сих пор не высрали не одного решения в виде CMS. Не сказать что попыток не было, но в реале они так и крутятся где-то там в стороне, на низкой ступени фреймворков, которые симулируют возможности CMS. Самое забавное, на этот вопрос, мне один питонист как-то сказал, что все это не нужно, мол админка джанги из коробки может делать CRUD запросы ЧТА?.
Пхп, конечно, потерял за 10 лет некоторые позиции, как и другие топ языки. Пхп так же мне отвратен, как и тогда. Но стоит признать, что в вебе он по прежнему силен и является его основным инструментом основной лопатой для копания денег.
>>1967283 Винформс/WPF так и остались только для винды, хоть исходники и открыты. Говорят, что портировать в планах нет, ибо это просто обёртки над WinAPI. В .NET 6 будет некий MAUI, но ждать долго. Сегодня для шарпового кросс десктопа Авалония.
СЕНЬОР-ПОМИДОР ПХП @ @ ПОЛОВИНА СОБЕСОВ: @ ЧТО ТАКОЕ ООП @ КАК ВЫ ПОНИМАЕТЕ ПОЛИМОРФИЗМ @ КАК ВЕТКУ В ГИТЕ ПЕРЕКЛЮЧИТЬ ИЗ КОНСОЛИ @ ЧЕМ ИННЕР ДЖОЙН ОТЛИЧАЕТСЯ ОТ ЛЕФТ/РАЙТ ДЖОЙНА @ КАК АЯКСОМ ОТПРАВИТЬ ФОРМУ @ @ ДРУГАЯ ПОЛОВИНА: @ ХУЯРЬ ПРОТОТИП ВНУТРИ СИНГЛТОНА ВНУТРИ СТРОИТЕЛЯ НА СИМФОНИ СПАРЕННЫМ С ЛАРАВЕЛЕМ И БИТРИКСОМ С ДАННЫМИ ИЗ ЭЛАСТИКА И РЕДИСА С РАБИТОМ ЗА 2 МИНУТЫ В СТРОКЕ СКАЙПА @ ВАСЯ В БАЗЕ ОБОСРАЛСЯ И НАХУЯРИЛ 1000 ТАБЛИЦ В МУСКУЛЕ ОДНИМ ЗАПРОСОМ ХУЕРНИ ИЗ 450 ТАБЛИЦ ДАННЫЕ, КОТОРЫЕ СВЯЗАНЫ ПО ХУЙ ПОЙМИ КАКИМ КЛЮЧАМ ЕЩЕ С 450, А ОСТАВШИЕСЯ 100 СВЯЖИ С АНУСОМ ВАСИ И ПОЛУЧИ МАКСИМАЛЬНУЮ ЗАРПЛАТУ ВАСИ ЗА 37 ЛЕТ И КОГО ОН ВЫЕБАЛ ИЗ 137 ТАБЛИЦЫ С ТИПОМ CUM_INSIDE 1. @ ЗНАНИЕ ЛИНУКС - АГА, ИЗ КОНСОЛИ СОЗДАЙ СВОЮ КРИПТУ И ПОДНИМИ СЕРВЕР CS 1.5 , БОТЫ В КОТОРЫХ БУДУТ ИГРАТЬ В ШАХМАТЫ САМИ С СОБОЙ, ПОДРАЧИВАЯ НА МИЛФ ИЗ ПОТОКОВОГО ВИДЕО С ПОРНОХАБА
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.