Перевод цикла Скотта Влащина о том, как типы помогают проектировать программы. Первая глава, она же введение, посвящена тому, как делать дизайн прозрачнее и при этом улучшить корректность.
User
Как я избавляюсь от компьютерной шеи (text neck). Часть 1

Нагрузка на позвоночник в зависимости от наклона головы
Маленькое отступление: мне 43, первый компьютер «Сура ПК8000» появился у меня в 6 лет. С тех пор дома всегда были компы, за которыми я проводил довольно много времени. До 40 лет я ни разу не лежал в больнице, и со здоровьем, в целом, все хорошо.
Но сидячий образ жизни и работа за компьютером берут свое, поэтому есть небольшая сутулость, близорукость и начинается проявляться «компьютерная шея», а уставшие под конец дня спина, шея и глаза сводят работоспособность к нулю. Массаж, пешие прогулки и какая-то физическая активность в течение дня глобально ничего не меняют. Скорее, не дают ситуации ухудшиться.
В статье ― мой сугубо личный опыт и мнение о том, что помогает избавиться от синдрома без вреда здоровью. Я намеренно упростил тему и понимаю, что проблема гораздо глубже. Она относится к полноценному лечению под надзором врачей. Буду рад за комментарии и указание на фактические ошибки, а еще больше ― если кому-то мой опыт откликнется и поможет.
О синдроме компьютерной шеи или «техношеи» я слышал давно, но особенно внимания не обращал, т.к. считал, что ко мне это не относится. И только когда в прошлом году стало садиться зрение, периодически хрустеть шея и неметь руки, я решил обратиться к неврологу, чтобы точно определить диагноз, чтобы не заниматься самолечением.
В первой части опишу результаты обследования, а также техники самостоятельной профилактики (по рекомендации невролога), а во второй расскажу про результаты лечения, посещения мануального терапевта и зала со специфическими тренажерами.
Но сначала определимся с терминами и откуда они взялись.
Клон ChatGPT в 3000 байтах на C, основанный на GPT-2
Эта программа представляет собой свободную от зависимостей реализацию GPT-2. Она загружает матрицу весов и файл BPE из оригинальных файлов TensorFlow, токенизирует вывод при помощи простого энкодера, работающего по принципу частотного кодирования, реализует базовый пакет для линейной алгебры, в котором заключены математические операции над матрицами, определяет архитектуру трансформера, выполняет инференс трансформера, а затем очищает вывод от токенов при помощи BPE-декодера. Всё это — примерно в 3000 байт на C.
Код достаточно эффективно оптимизирован — настолько, что малый GPT-2 на любой современной машине выдаёт отклик всего за несколько секунд. Чтобы этого добиться, я реализовал KV-кэширование и применил эффективный алгоритм перемножения матриц, а также добавил опциональный OMP-параллелизм.
Взяв это за основу, можно создать некий аналог Chat GPT — при условии, что вас не слишком волнует качество вывода (объективно говоря, вывод получается просто ужасный… но решение работает). Здесь есть некоторые глюки (особенно с обработкой символов в кодировке UTF-8), а для эксплуатации модели размером XL с широким контекстным окном может потребоваться ~100 ГБ оперативной памяти. Но, если вы просто набираете текст в кодировке ASCII при помощи малого GPT2, то такая модель должна нормально работать примерно везде.
Я выложил весь код на GitHub, поэтому можете свободно брать его там и экспериментировать с ним.
Про Rust — просто. Что читать в каком порядке?

Друзья! Многие из вас, возможно, как и я, интересовались изучением и использованием в работе очень эффективного и востребованного языка программирования Rust но, как и я, оставляли свои попытки из-за сложности, запутанности и многослойности доступного материала и книг по этой теме.
Лично я делал не меньше 5 попыток на протяжении последних 10 лет, прорабатывая, большей частью в свободное и личное время, литературу, некоторые книги по несколько раз, в поисках ответов на простые человеческие вопросы - как свободно писать на Rust и решать, как орешки, ежедневные задачи, не страдая от головной боли и хорошо понимая, что происходит и почему простая программа не компилируется.
В результате, сейчас, наконец-то, стало понятно все в деталях, код пишется быстро, задачи решаются легко, результаты применения языка поражают своей эффективностью и точностью и возникло желание восполнить пробел и поделиться с вами накопленным опытом, но, главное, провести и привести вас к совершенному пониманию простоты и лаконичности этого удивительно эффективного языка наиболеее коротким и приятным путем. Приготовьтесь к увлекательной и познавательной прогулке и подъему по ступеням вверх, к мастерству написания полезного кода на Rust.
Дашборд — что это и почему он будет вам полезен или современный способ сделать тайное явным

Наверное, мало кто из нас задумывался, что практически с рождения пользовался дашбордами. Мы получали некую информацию, анализировали, принимали решение или даже испытывали какие-то эмоции благодаря им. Да-да, градусник, измеряющий температуру, когда вы болели; часы; стрелка спидометра, перевалившая за 200 км/час (ну, это может быть не у всех) — все эти приборы по сути являются дашбордами или их элементом. Но мне бы хотелось рассказать об интерактивных аналитических дашбордах. И, самое главное — показать, что в наше время такие дашборды могут быть полезны каждому человеку, а не только крупным банкам или корпорациям.
Если у вас есть данные — не важно, домохозяйка вы с пачкой чеков от закупок продуктов, спортсмен с данными о пробежках из Strava или кто-либо ещё — вы сможете представить это наглядно, оценить важные показатели, в результате чего принимать более оптимальные решения.
Вы не используете дашборды и думаете, что вам это не нужно? Мнение может поменяться, а кругозор расширится, так как далее: что такое дашборды, какие цели достигаются с помощью них, ключевые понятия и сферы использования, существующие инструменты, множество ссылок на актуальные ресурсы по теме, а также реальный пример, как из обычных на первый взгляд данных, можно извлечь интересные знания…
Senior. Туда и обратно: что я сначала не понимал в своей карьере, а потом как понял

Что я понял к 35 годам о карьере в айти и об отношениях

Я прошел путь в IT: около 5 лет был разработчиком, а последние 6 лет — DevOps‑инженер. Но сегодня я хочу поговорить о другом. По‑настоящему задуматься о жизни меня заставил серьезный кризис, когда одновременно случились развод, увольнение и всплыли детские травмы. И знаете, тот случай когда психология мне помогла.
Здесь не будет технических деталей. Скорее только психологический аспект и моё видение. Так что я понял о карьере в айти и отношениях на личном опыте?
250 откликов за 20 минут: как я автоматизировал процесс ответов на вакансии

Будем откровенны: поиск работы — это отстой.
Это мучительный цикл многократного копипастинга одной и той же информации, внесения сотен мелких правок в резюме и написания сопроводительных писем, которые должны выглядеть, как мольба, но не слишком очевидная.
Обратим внимание на следующее: повторяющиеся задачи + структурированный процесс = идеальный кандидат для автоматизации.
Поэтому я поступил так, как поступил бы любой разработчик в здравом уме — создал систему автоматизации всей этой фигни. В конечном итоге я смог разослать 250 откликов на вакансии за 20 минут. (Ирония заключается в том, что я получил оффер ещё до того, как закончил создавать эту систему. Подробнее об этом ниже.)
В статье я расскажу, как я это сделал.
Как действительно понять нейронные сети и KAN на интуитивном уровне

Вот вы читаете очередную статью про KAN и ловите себя на мысли, что ничего не понимаете.
Знакомая ситуация?
Не переживайте, вы не одни. И дело тут не в вас, суть в том, что множество материалов описывают концепции по отдельности, не объединяя их в единую картину.
И чтобы решить эту проблему раз и навсегда и окончательно понять KAN, нам необходимо переосмыслив всё с нуля и постепенно двигаясь от базовых принципов линейной алгебры через нейронные сети, завершив, обобщая всё с помощью множеств. В процессе мы также рассмотрим некоторые довольно уникальные и новые идеи!
Как превратить свой пет проект из хобби в карьеру

Привет, Хабр!
Меня зовут Алексей Хрисанфов. В этой статье я хочу рассказать почему и как ваши pet-проекты могут стать ключом к развитию вашей карьеры и почему нельзя недооценивать важность pet-проектов.
Ory Kratos — конструктор для сборки цифрового продукта любой сложности

Привет! Я Андрей Баронский, бэкенд-тимлид в KTS.
Одно из ключевых направлений деятельности нашей компании — это аутсорс-разработка цифровых продуктов. При создании очередной системы мы хотим уделять больше времени и сил необходимым фичам для клиентов, а не настройке рутинного взаимодействия с юзерами, и для ускорения проработки основных пользовательских сценариев мы используем технологию Ory Kratos. В статье я расскажу, почему я рекомендую обратить на нее внимание и как с ней работать.
Для тех, кто впервые сталкивается с этим названием, дам немного контекста. Ory Kratos — это система API-first Identity и User Management. Она управляет всеми аспектами работы с пользователями, включая регистрацию, вход, восстановление пароля, многофакторную аутентификацию, верификацию данных и управление профилем.
Иными словами, Ory Kratos берёт на себя рутинные технические задачи, предлагая готовое, гибкое и удобное в интеграции решение.
Эволюция рабочего места одного программиста

Начались боли в спине — пошли эксперименты. Год за годом, стол за столом приходил к идеалу: ортопедический стул, стол с вырезом и регулировкой высоты, кронштейн для фиксации монитора на уровне глаз.
Спустя два года обнаружил себя буквально прикованным к положению лежа с противоречивыми диагнозами от неврологов, ортопеда и нейрохирурга.
Расскажу о самых интересных организациях рабочего пространства, которые попробовал, поделюсь наблюдениями, поспекулирую о вреде конвенциальных подходов.
Мой опыт ремонта платы газового настенного котла «NEVALUX 8224»

Настенные газовые котлы в настоящее время довольно популярны. Они не только предназначены для отопления помещений, но и служат в качестве проточного водонагревателя. Электронная плата, как основной компонент, является самым дорогим элементом котла, поэтому в целях её защиты, как говорят, крайне рекомендуется подключать котёл через стабилизатор напряжения. У одного из моих знакомых летом произошёл перебой с сетевым напряжением, стабилизатора не было, и плата котла вышла из строя. Модель котла – «NEVALUX 8224» 2014 года выпуска (г. Армавир). В данной статье я в подробностях напишу, каким образом я диагностировал и ремонтировал плату.
Как я быстро превратил кладбище ссылок из сохраненок в садик полезностей

Многие не хотят в этом признаваться, но почти у каждого из нас есть одно постыдное удовольствие. Мы создаем огромные хранилища ссылок, закладок и источников в самых невероятных местах. Пару недель назад я провел опрос который только подтвердил опасения - у порядка 70% моих подписчиков есть такая личная мусорка. Мало того что найти в этом хламе что-либо получается редко, так еще и реально полезные источники регулярно теряются.
Я прошел длинный путь от all-in-one инбокса в Evernote через plain-text систему в Obsidian c навешенными плагинами и сейчас использую простое решение с использованием ИИ которое кроме того что экономит массу времени так еще и позволило быстро разобрать старые завалы.
В Испании все программисты сеньоры

Моя текущая позиция и аутсорсы последних пяти лет на 90% были в западных gamedev студиях, соответственно и общение было преимущественно с не‑ру коллегами. А когда надолго отрываешься от славянских коллективов разработки, то отличия начинают проявляться очень четко, начиная от модели управления командой и заканчивая культурой разработки. Хотя вот культурой я бы это не назвал, скорее плясками варваров‑полуиндусов на останках штатовской империи софтостроения. Индийцы тут ни при чем, а вот практики и сам процесс написания кода очень попахивает этими жителями полумифической страны Индустана. Есть немало книг по истории развития игровой индустрии и истории успехов и провалов разных студий, в основном западных, оставлю в статье список самых интересных и захватывающих, если решите углубиться в историю (кому интересно, будет под спойлером).
Одна из последних — «Not All Fairy Tales Have Happy Endings» (Ken Williams), мемуары одного из основателей Sierra On‑Line, прочитана была около года назад и понравилась больше других, наверное потому, что читая книгу — я, наконец, понимал большинство решений и причин которые привели к тому или иному результату. Этого понимания точно не было десять лет назад, это сложно объяснить, если не работал непосредственно сам долгое время с людьми с иным образом мыслей, культурным кодом, как сейчас принято говорить. Нынешняя команда на 95% франко‑испано‑английская — австралийцы, немного европейцев и американцы. В студии по‑русски говорят трое, включая меня. До этого в карьере были по большей части все же ру‑студии с привычным менталитетом, пускай и под управлением все тех же американцев, но менеджмент скрадывал все огрехи и брал «разговоры как надо» на себя, а нам доставались только технические задачи, грамоты и иногда премии. Десять лет назад, придя в индустрию создания игр, я не задавался вопросом — чем отличаются мои таски, мой код, мои идеи от тасок, кода и идей Джона из Кемпбеловки под Сан‑Хосе, потому что вокруг были все «свои». Сейчас уже тоже все «свои», но те «свои», от этих «своих» отличаются примерно — всем.
Как наш мозг мешает нам изучать языки и как убрать эти преграды
Я учился в Гарварде работе мозга, и мы изучали две его части:
1. Префронтальная кора — то, что мы обычно называем мозгом и интеллектом.
2. Амигдала — это его эмоциональная часть, которая не контролируется нами в основном.
Разница в том, что префронталка очень молодая, она появилась довольно недавно, по историческим меркам, конечно. И поэтому она слабее, чем амигдала в разы.
Амигдала с нами с момента формирования того, что мы считаем головой. И если бы мы могли отключать амигдалу во время изучения языков, мы бы делали это настолько быстро, качественно и эффективно, что это были бы жалкие месяцы. Мы не бросали бы занятия, нам бы не было страшно, стыдно, неприятно, мы не парились бы на счет акцента и так далее. Нам не нужна была бы мотивация, не было бы сомнений в подходах, которые мы используем.
И здесь я расскажу, как именно мешает и как от этого избавиться.
Во время изучения языка амигдала всегда выигрывает у префронтальной коры. Всегда.
Наши эмоции более сильные, чем префронтальная кора и интеллектуальная часть — это абсолютное правило. Поэтому, если вы испытываете стресс, страх; вы волнуетесь о том, правильно ли разговариваете, вам кажется, что ошибка — это ужас и так далее, вы не сможете. Насколько бы вы не понимали, что это нормально, ошибаться, неидеально говорить, акцент, вам просто это все равно не даст разговаривать свободно, потому что это прямой конфликт и прямая конфронтация.
В этом моменте, чтобы префронтальная кора сработала как надо, она должна убедить эмоциональную часть в том, что это окей, и здесь не имеет смысла бояться, здесь можно расслабиться или пробояться.
Бенчмарки JavaScript — это полный хаос

Я ненавижу код бенчмаркинга, как и любой другой человек. Гораздо веселее притвориться, что твоё кэширование значения увеличило производительность на 1000%, чем проверять это тестами. Увы, бенчмаркинг JavaScript по-прежнему необходим, особенно потому, что JavaScript используется (когда не должен?) во всё более чувствительных к производительности приложениях. К сожалению, из-за множества базовых архитектурных решений языка, JavaScript никак не упрощает выполнение бенчмаркинга.
Диаграмма Ганта не работает. Показываем на примере правительства США, Airbus и Amazon

Его используют везде: преподаватели — для расписания занятий и экзаменов, логисты — для поставок товаров и графиков инвентаризации, учёные — для клинических испытаний и тестирования препаратов.
Моя рецензия на «кабанчика» Мартина Клеппмана и главная идея проектирования быстрорастущих баз данных
Здравствуйте. Меня зовут Олег Юрченко.
Здесь моя рецензия на эту книгу: «Клеппман М. Высоконагруженные приложения. Программирование, масштабирование, поддержка. — СПб.: Питер, 2018.»
Я видел много рекомендаций прочитать это творение, а начав читать, решил написать рецензию.
Содержание книги соответствует второй части оригинального названия «Designing Data‑Intensive Applications. THE BIG IDEAS BEHIND RELIABLE, SCALABLE, AND MAINTAINABLE SYSTEMS».
Можно утверждать, что многие «THE BIG IDEAS BEHIND...» рассмотрены с подробной библиографией. А вот название перевода вводит в заблуждение каждым словом. В книге только идеи, а не это вот всё.
Но главной идеи в книге нет. Мартин Клеппман не знает про основной способ устранения зависимости нагрузки на сервер баз данных от размера базы данных, главной проблемы с быстрорастущими базами данных. Эта идея важнее всего написанного в этой книге, я её объясню с примером из моей практики.
Содержательно комментировать можно только три главы из всей книги, там есть что‑то от автора, всё остальное выглядит как реферат студента со ссылками на первоисточники по любому поводу.
Рекомендовать эту книгу к прочтению я не могу. Главная проблема этой книги в том, что она была издана. Возможно, другие рецензенты смогли бы помочь автору исправить недостатки текста. Но вот уровень самого автора...
Сначала про способ решения проблемы быстрорастущих данных, а потом мои комментарии по трём главам книги.
Как разработчик вышел на $400 000/мес на AI-сервисе для написания эссе

Разбираю, как разработчик вывел свой простой сервис для написания эссе в топ Google, несмотря на кучу конкурентов. Монетизировал продукт по подписке $30/мес и вышел на доход более, чем $400 000 в месяц.
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity