Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Как я намайнил первое* в мире биткоин**-стихотворение

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели10K

Привет, Хабр. Так получилось, что по специальности я программист, а по призванию — поэт. Не просто рифмую палку с селёдкой, а публикуюсь в литературных журналах, взял парочку небольших премий — в общем, это немного больше, чем хобби.

Иногда хочется как-то объединить эти две стороны своей жизнедеятельности. Написать скрипт четырёхстопным ямбом. Или наоборот — скрипт, который напишет четырёхстопный ямб. Обычно это желание мимолётно и ни к чему не ведёт. Но недавно мне очень захотелось написать биткоин-стихотворение — и я это сделал.

Ниже вы сможете познакомиться с моим великим творением и историей его создания, а также выяснить, что это вообще за ерунда — биткоин-стихотворение, и чем оно полезно народному хозяйству. Я постараюсь, чтобы статья была интересна и понятна как моим коллегам-программистам, так и моим коллегам-литераторам.

Испить мёда поэзии

«Чистый» код, ужасная производительность

Время на прочтение16 мин
Охват и читатели69K
Один из самых часто повторяемых советов программистам, особенно начинающим — это рекомендация писать «чистый» код. Она сопровождается длинным списком правил, сообщающих, что нужно делать, чтобы код был «чистым».

На самом деле, большая доля этих правил не влияет на среду исполнения кода, который вы пишете. Подобные правила невозможно оценить объективно, да это и необязательно, ведь на этом этапе они достаточно произвольны. Однако есть правила «чистого» кода, на которые делают особый упор — это правила, которые можно измерить объективно, поскольку они влияют на поведение кода в среде исполнения.

Если посмотреть на список правил «чистого» кода и вытащить из него правила, которые действительно влияют на структуру кода, то мы получим следующее:

  • Отдавайте предпочтение полиморфизму, а не «if/else» и «switch»
  • Код не должен знать о внутреннем устройстве объектов, с которыми он работает
  • Функции должны быть маленькими
  • Каждая функция должна выполнять одну задачу
  • Принцип «DRY» — Don’t Repeat Yourself («не повторяйся»)

Эти правила достаточно чётко формулируют то, как должен создаваться конкретный фрагмент кода, чтобы быть «чистым». Но я задам такой вопрос: если мы создадим фрагмент кода, соответствующий этим правилам, какова будет его производительность?
Читать дальше →

Одной К155ЛА3 недостаточно

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели22K

Из предыдущей части публикации мы узнали, что на одной микросхеме К155ЛА3 можно реализовать достаточно много устройств. Причём у неискушённого читателя мог возникнуть вопрос, зачем же потребовалась разработка других микросхем серии 74, если функциональность любой из них можно реализовать на логических элементах типа 2И-НЕ?

В этой части мы рассмотрим схемотехнические решения на элементах 2И-НЕ более сложных устройств, а также дадим ответ на вопрос неискушённого читателя по результатам анализа работы этих решений.
Не всё так просто

Запуск аналогов ChatGPT на домашнем ПК в пару кликов и с интерфейсом

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели32K

--- Обновление статьи 9 Августа 2023 ---

В течении последнего полугода в сфере текстовых нейронок всё кипит - после слитой в сеть модели Llama, aka "ChatGPT у себя на пекарне" люди ощутили, что никакой зацензуренный OpenAI по сути им и не нужен, а хорошие по мощности нейронки можно запускать локально.

Основная проблема в том, что всё это требует глубоких технических знаний.

Но в этой статье я расскажу, как запустить добротную нейросеть на домашнем ПК с 16ГБ ОЗУ в несколько кликов. Буквально в несколько кликов - копаться в консоли не придётся.

Читать далее

Разработка BIOS на языках высокого уровня

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели33K
Ничего лишнего: материнская плата, видеокарта и ROM-BIOS

Меня давно волнует вопрос, как подступиться к разработке на голом железе, на чистом си. Хотелось понять, каким же образом идёт запуск BIOS, u-boot, grub и прочих первичных загрузчиков. Ведь необходимо перейти от ассемблера к тёплому ламповому си и соблюсти условие, собрать всё это в линукс любимым компилятором gcc.

Хотя я и имею достаточный опыт BareMetal-разработки, тем не менее, всё это были чужие проекты со своим кодом. А мне хотелось понять, как начать свой проект с чистого листа, когда есть только чистая железка и идея. Толковых статей как подступится к этой задаче достаточно мало, при этом совершенно непонятно, с какого же края к ней подходить.

Здесь я хочу свести основные моменты разработки BIOS в одном месте и разобраться обо всех проблемах, которые я получил во время своих опытах в разработке (первая и вторая части).
Читать дальше →

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все

Время на прочтение20 мин
Охват и читатели84K

Три месяца назад здесь на Хабре была опубликована статья “Интернет-цензура и обход блокировок: не время расслабляться”, в которой простыми примерами показывалось, что практически все популярные у нас для обхода блокировок VPN- и прокси-протоколы, такие как Wireguard, L2TP/IPSec, и даже SoftEther VPN, SSTP и туннель-через-SSH, могут быть довольно легко детектированы цензорами и заблокированы при должном желании. На фоне слухов о том, что Роскомнадзор активно обменивается опытом блокировок с коллегами из Китая и блокировках популярных VPN-сервисов, у многих людей стали возникать вопросы, что же делать и какие технологии использовать для получения надежного нефильтрованного доступа в глобальный интернет.

Мировым лидером в области интернет-цензуры является Китай, поэтому имеет смысл обратить на технологии, которые разработали энтузиасты из Китая и других стран для борьбы с GFW (“великим китайским файрволом”). Правда, для неподготовленного пользователя это может оказаться нетривиальной задачей: существует огромное количество программ и протоколов с похожими названиями и с разными не всегда совместимыми между собой версиями, огромное количество опций, плагинов, серверов и клиентов для них, хоть какая-то нормальная документация существует нередко только на китайском языке, на английском - куцая и устаревшая, а на русском ее нет вообще.

Поэтому сейчас мы попробуем разобраться, что же это все такое и как это использовать и не сойти с ума.

Читать далее

Остановись, мгновенье. Медленное программирование — тренд для уставших разработчиков

Время на прочтение5 мин
Охват и читатели43K

Как же хочется иногда остановить дикую гонку разработки и получить удовольствие от вдумчивого, размеренного написания кода. Как же не хватает времени на обдумывание алгоритмов и исследование перспективных архитектурных вариантов системы. Как же тянет отыскать стоп-кран и остановить взбесившийся конвейер по штамповке недолговечных решений.

Если вы устали от бесконечных дедлайнов, совещаний и спринтов, то, возможно, вам придётся по душе концепция медленного программирования. По своей сути она полностью противоположна мейнстриму — постоянному ускорению разработки. Попробуем рассмотреть все плюсы и минусы этой концепции.

Читать далее

Достаточно одной К155ЛА3

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели85K

Продолжая тему легендарных микросхем, нельзя обойти вниманием замечательнейшую микросхему 7400, также известную на постсоветском пространстве, как К155ЛА3.

Давным-давно, когда деревья были большими, а я ещё учился в старших классах, на меня снизошло откровение от старших товарищей, что практически любое цифровое устройство можно собрать только на микросхемах К155ЛА3. Утверждение может показаться спорным, но ничто не мешает нам его проверить.

И поможет нам в этой проверке другое откровение: «Инверсия конъюнкции есть дизъюнкция инверсий». Заодно и разберёмся, что есть «конъюнкция», что есть «дизъюнкция», и причём здесь «инверсия».
И это совсем несложно

Человечество против искусственного интеллекта: может ли развитие нейросетей привести к катастрофе

Уровень сложностиПростой
Время на прочтение21 мин
Охват и читатели71K

История про «восстание машин» давно знакома всем любителям научной фантастики, но после взрывного роста возможностей нейросетевых языковых моделей (вроде ChatGPT) об этом риске заговорили и вполне серьезные исследователи. В этой статье мы попробуем разобраться – есть ли основания у таких опасений, или это всего лишь бред воспаленной кукухи?

Читать далее

Кидалово mytonwallet.io. Почему не стоит делать тестовые задания

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели2.8K

Представьте себе гипотетическую ситуацию, когда вы оказались в другой стране и без работы, а 22го сентября к вам домой приходили полицаи и интересовались, где вы находитесь, и возращаться немного сыкотно, хоть и ничего незаконного не делал. В такой ситуации при поиске работы можно совершить такую глупость, как взяться за большое тестовое задание, ведь и вроде вакансия хорошая и за него обещали заплатить. Что же может пойти не так.

Читать далее

После GPT-4

Уровень сложностиПростой
Время на прочтение24 мин
Охват и читатели1.7K

Если одной метафорой, то произошли первые испытания термоядерной бомбы. Специалисты с благоговейным ужасом и радостью смотрят на поднимающийся над планетою гриб. Остальное человечество живёт обычной жизнью, пока не зная, современниками какого события они являются. Мне нравилось изучение цифровых технологий, сильнее интересовала только работа человеческой психики и междисциплинарное знание, которое можно объединить под условным названием «общая теория информации». Эти увлечения позволили увидеть в смене цифр смену эпох. Постараюсь объяснить суть случившегося максимально доступно.

Далее

Kandinsky 2.1, или Когда +0,1 значит очень много

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели90K

В ноябре 2022 года мы выпустили свою первую диффузионную модель для синтеза изображений по текстовым описаниям Kandinsky 2.0, которая собрала как позитивные, так и отрицательные отклики. Её ключевой особенностью была мультиязычность и использование двойного текстового энкодера на входе сети: XLMR-clip и mT5-small. Рефлексия после релиза подтолкнула нас к перестройке планов по развитию архитектуры и к сильному стремлению получить буст в качестве генераций, чтобы выйти на уровень аналогичных решений, названия которых слишком хорошо известны, чтобы их называть. В то же время мы могли наблюдать за появлением новых генеративных моделей и их файнтюнов, таких как ControlNet, GigaGAN, GLIGEN, Instruct Pix2Pix и др. В этих работах представлены и новые взгляды на генерацию, и новые возможности использования латентного пространства для внесения контролируемых изменений через текстовые промты, а также для смешивания изображений — возможности использования генеративных моделей расширяются постоянно. Бурное развитие прикладных кейсов привело к интенсивно нарастающему числу различных привлекательных для пользователей реализаций этих функций — визуализация городов, изображения известных личностей в нетипичных ситуациях и многие другие.

Читать далее

Исправление аппаратных ошибок на серийных изделиях

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели14K

Приветствую, Хабр!

В этой статье я приведу пример того, как достаточно эстетично можно исправлять ошибки, допущенные при разработке устройств. Идея у меня возникла после того, как я вносил некоторые изменения в Nintendo Switch, если вы понимаете, о чем я. В случае с консолью все относительно просто, так как наборы для доработки можно приобрести.

Читать далее

Ближайшие события

Простой испытатель ферритов

Время на прочтение7 мин
Охват и читатели31K

Реалии нашей жизни поменялись. Если раньше мы шли в магазин и покупали нужное ферритовое кольцо для трансформатора, то теперь порой приходится довольствоваться тем, что удалось найти. В ящике стола, в лампочке-экономке из ближайшей мусорки, у китайцев на Алиэкспрессе... Зачастую без маркировки, тип которого известен лишь приблизительно. И вопросы, вопросы... Действительно ли из Китая выслали то, что просили? Подойдет ли для двухтактного трансформатора это зеленое кольцо? А что будет, если намотать трансформатор на феррите с мю 10000? Каким выбрать число витков на вольт, когда формула из статьи в журнале "Радио" дает 0,4 витка на вольт, а популярная программа -- 1,2 витка?

В статье описывается небольшой стенд для испытания ферритовых сердечников, главным образом, колец, в режиме двухтактного преобразователя.

Читать далее

[1 апреля] Все новые возможности C# 13 | Что нового в .NET 10, почему нет .NET 9

Время на прочтение3 мин
Охват и читатели27K

Я являюсь студентом по обмену из российского ГМИГ имени Трофима Лысенко (Главный Мурманский Институт Генетики). Учился на инженера-программиста и пол года назад был отправлен в Америку в качестве студента по обмену. Это у меня получилось благодаря двойному гражданству (я гражданин Ирана и России).

К нам на лекцию пришел один из разработчиков Microsoft и рассказал про .NET 10, подробнее в самом низу статьи под спойлером.

.NET 10 или как его теперь начнут называть .NET X - это новая версия .NET, которая выйдет уже в 2024 году. Большая часть этой статьи посвящена именно новым возможностям C# 13.

Почему .NET 10 и где .NET 9?

"У нас так принято." - Дословный перевод. Больше комментариев разработчик не дал.

Читать далее

Как разрабатывали StarCraft

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели42K
image

Хотите себе «Дарк Соулса» от стратегий — добро пожаловать в «СтарКрафт».

Сегодня мы вспомним культовую стратегию в реальном времени, созданную корпорацией Blizzard в самом конце 90-х, когда они ещё были эталоном качества, делали только хорошие игры и никогда не проваливались.

Ту игру, которая была настолько популярной, что даже стала официальной религией национальным кибер-спортом одной азиатской страны. Бородатые легенды гласят, что отцы этого государства отдавали дочерей только за женихов, способных обыграть их в мультиплеере один на один.

Эта игра запала в сердечко всем любителям годных RTS, ведь в ней нужно просчитывать каждый шаг, как в шахматах.

В общем, в это надо играть, про это приятно вспомнить и поговорить.

Тем более, если я правильно подсчитал, игре сегодня стукнуло 25 лет. Одним словом, праздник!
Читать дальше →

Мы добавили markdown-режим в новый редактор

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.4K

Вы просили — мы сделали.

Читать далее

Как 10 лет разрабатывать электронику по контракту и не загнуться

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели21K

Привет, меня зовут Иван Ларионов. В 2011 году мы вместе с братом основали компанию «Третий пин». Я хочу поделиться своей историей эволюции из инженера-фрилансера в руководителя компании, занимающейся контрактной разработкой электроники. Как и почему удалось не обанкротиться, не закрыться и не выгореть, а нарастить мощности и сохранить кураж.

Читать далее

Made at Intel. Дела продажные

Время на прочтение11 мин
Охват и читатели25K

Я всю жизнь работал в R&D. И, тем не менее, с продажами мне приходилось пересекаться довольно плотно. Дело в том, что подразделение наше называлось Developer Relations Division. А отдел Сustomer Response Team занимался по большей части поддержкой продаж. В основном, pre-sales, но иногда бывало, что и post. Ну и по долгу службы мне приходилось часто взаимодействовать с Sales and Marketing Group (SMG). Продажи в Интел были вынесены в отдельную бизнес группу, которая занималась всем от wearables до махрового Нigh Performance Computing. Ибо считалось, что взаимоотношения с клиентом первичны, а что продавать, уже не суть важно. Ну и поскольку парнишкой я был от природы любопытным, мне было страшно интересно, как же у сейлов все работает. Тому, что удалось понять, и посвящена эта глава.

Читать далее