Pull to refresh
Максим@wikiproread⁠-⁠only

Пользователь

1
Subscribers
Send message

Делаем свой Telegra.ph на маркдауне за три минуты и один промпт

Level of difficultyEasy
Reading time8 min
Reach and readers17K

Последние два года я почти не пишу код. Наверное, только 10% кода в моих личных и коммерческих проектах написано мной, все остальное генерируют нейронки. За это время у меня выработался определенный подход к созданию проектов и появились инструменты, которые я для этого использую. Этим я и хочу поделиться с вами под катом.

Под кат →

Вайб-кодинг? Да я так уже два года работаю

Level of difficultyEasy
Reading time5 min
Reach and readers98K

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

Под кат →

Собрал в одном большом гайде всё, что хотел бы знать, когда изучал язык C

Reading time27 min
Reach and readers102K

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

Своим постом автор Jenny Jam* пытается заполнить этот пробел. Он рассуждает, когда C — идеальный выбор, а когда лучше обратиться к другим языкам. Описывает, как настроить среду разработки и выбрать инструменты, разобраться в версиях, особенностях сборки и тонкостях работы с библиотеками.

Цель статьи — упорядочить представление о языке C и его экосистеме, и, конечно, дать практические советы, которые пригодятся в реальных проектах.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис

Читать далее

Компилятор за выходные: синтаксические деревья

Level of difficultyMedium
Reading time11 min
Reach and readers34K

Вам когда-нибудь приходилось задаваться вопросом, как работает компилятор, но так руки и не дошли разобраться? Тогда этот текст для вас. Мне тоже не доводилось заглядывать под капот, но тут так случилось, что мне нужно прочитать курс лекций о компиляторах местным третьекурсникам. Кто встречался с некомпетентными преподавателями? Здравствуйте, это я :)

Итак, чтобы самому разобраться в теме, я собираюсь написать транслятор с эзотерического языка программирования wend (сокращение от week-end), который я только что сам придумал, в обычный ассемблер. Задача уложиться в несколько сотен строк питоновского кода. Основной репозиторий живёт на гитхабе (не забудьте заглянуть в мой профиль и посмотреть другие tiny* репозитории).

Читать далее

Смогу ли я уложить оптимизирующий компилятор в тысячу строк питона? Прогон первый: mem2reg

Level of difficultyMedium
Reading time22 min
Reach and readers7.7K

Год назад мне пришлось взять на себя курс лекций по теории компиляторов. Вы встречались некомпетентными преподавателями? Это я, здравствуйте! Прежде чем учить других, я всё-таки решил заглянуть в учебник сам, и это вылилось в серию статей "компилятор за выходные" (да, я помню, что за мной должок с описанием лексера/парсера). В итоге я уложил компилятор со мной придуманного си-подобного языка на GNU ассемблер в шестьсот строк кода, причём без внешних зависимостей, включая парсинг.

Всё бы хорошо, вроде работает, но кажется, самое веселье осталось за бортом. Мой компилятор, по факту, это простой pretty print вокруг синтаксического дерева, подумаешь. А как работают оптимизирующие компиляторы? И поставил я себе задачу попробовать уложить игрушечный, но всё же рабочий оптимизирующий компилятор в тысячу строк кода. Как думаете, получится?

Итак, тема сегодняшнего разговора - вынос переменных из памяти в регистры, оно же оптимизационный проход mem2reg, см. кпдв.

Читать далее

Горе от ума – почему рост знаний приводит к росту страданий

Reading time19 min
Reach and readers174K

Психика – довольно парадоксальная вещь, которая подчиняется иной логике, нежели к которой мы привыкли. Несмотря на то, что главная функция психики – это обеспечение выживания индивида, на основе «субъективного отражения объективной реальности», иногда она работает против этой цели. И я говорю сейчас не про экстремальные варианты, вроде появления сверхидеи о питании солнечным светом и не про религиозные суициды во благо вечной жизни. Нет, я говорю об… учёбе, саморазвитии и познании мира.

И это странно, ведь для выживания нужно понимать мироустройство. Но почему же погружение в изучение этого самого мироустройства приводит к обратному результату – ступору, постоянному избыточному планированию, стрессу и дезадаптации? Почему люди, обладающие выдающимися знаниями: ученые, исследователи, профессора – уходят в эзотерику и лженауку? Почему многие из тех, кто должен лучше других понимать этот мир, сталкиваются с таким регрессом и отказываются от своих знаний? И можно ли с этим что-либо сделать?

Я достаточно давно изучаю особенности психики и личности как IT-специалистов, так и людей «от головы» в целом. И про особенности их личности писал ряд статей (часть 1, часть 2, часть 3, часть 4). Но сейчас, когда выборка стала больше и количество наблюдений кратно возросло, мне хочется копнуть чуть глубже и посмотреть не просто на личностные особенности, а на механизмы формирования этих особенностей у людей, обладающих эрудицией, интеллектом и способностью к абстрактному мышлению на более высоком уровне, чем в «среднем по больнице».

Взгрустнуть с пользой

Симулятор электронных схем Qucs-S снова жив

Reading time6 min
Reach and readers74K

Qucs-S является программой с открытым исходным кодом для моделирования электронных схем. Qucs-S кроссплатформенный (поддерживаются Linux, Windows и FreeBSD), написан на С++ с использованием набора библиотек Qt и разрабатывается полностью в частном порядке (в отличие, например от KiCAD, который имеет спонсора в лице CERN). В феврале этого года проект восстал из мёртвых и вышел релиз 0.0.23. Главным новшеством версии 0.0.23 было то, что программа теперь портирована на Qt5, чем обеспечена собираемость на современных дистрибутивах Linux. Актуальным релизом на текущий момент является 0.0.24 https://github.com/ra3xdh/qucs_s/releases/tag/0.0.24, в котором добавлено несколько новых видов моделирования. Далее будут рассмотрены основные возможности программы и показано как в Qucs-S смоделировать схему.


Читать дальше →

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

Level of difficultyEasy
Reading time7 min
Reach and readers14K

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

Читать далее

Переосмысление PID 1. Часть 1

Reading time3 min
Reach and readers24K

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

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

Здесь код. А вот здесь история:
Читать дальше →

Сложно о простом. Самые популярные заголовки уровня L2 модели OSI в Ethernet

Level of difficultyMedium
Reading time12 min
Reach and readers54K

Приветствую, коллеги! Меня зовут @ProstoKirReal. Сегодня мы обсудим заголовки, относящиеся к уровню L2 модели OSI в Ethernet-кадре.

Читать далее

Сложно о простом. Самые популярные протоколы и принципы их работы. ARP, ICMP, IGMP, TCP, UDP, SCTP, DNS и DHCP. Часть 1

Level of difficultyEasy
Reading time11 min
Reach and readers181K

Приветствую, коллеги! Меня зовут @ProstoKirReal.

Сегодня хотелось бы с вами обсудить самые распространенные протоколы, а также принципы их работы.

Читать далее

Математическая продлёнка. Изобретаем гиперболические числа

Level of difficultyMedium
Reading time9 min
Reach and readers9.3K

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

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

Читать далее

Ассемблер для программистов на языках высокого уровня: Hello World

Level of difficultyMedium
Reading time6 min
Reach and readers71K

Если вы начинали изучение программирования с JavaScript, Rust, C или любого другого высокоуровневого языка, то ассемблерный код может показаться вам непонятным или даже пугающим.

Рассмотрим следующий код:

section .data
  msg db "Hello, World!"

section .text
  global _start

_start:
  mov rax, 1
  mov rdi, 1
  mov rsi, msg
  mov rdx, 13
  syscall

  mov rax, 60
  mov rdi, 0
  syscall

К счастью, по второй строке мы можем понять, что он делает.

Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён!

С чего же вообще начать?

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

Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.
Читать дальше →

Как создать простую операционную систему с нуля

Level of difficultyEasy
Reading time3 min
Reach and readers48K

Многие разработчики хоть раз задумывались о том, чтобы создать свою собственную операционную систему (ОС). Это может показаться сложной задачей, но, если разбить процесс на этапы, создание минимальной ОС становится более реалистичным. В этой статье мы рассмотрим основные шаги создания простой операционной системы с нуля, а также инструменты и знания, которые могут вам понадобиться.

Читать далее

Большие и чёрные (ящики): что мы знаем о том, как «думают» нейросети?

Level of difficultyMedium
Reading time30 min
Reach and readers111K

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

Узнать →

Драйвер Ethernet для xv6

Level of difficultyMedium
Reading time7 min
Reach and readers3.8K

Xv6 - учебная ОС - рассказывает об идеях, что лежат в основе операционных систем.

Научим xv6 работать в сети, познакомимся со стандартом виртуальных устройств VirtIO, деревом устройств DeviceTree, технологией Ethernet, сетевыми протоколами, возведем сетевой мост между виртуальными машинами.

Читать далее

Распределенные вычисления на Elixir: основные варианты реализации

Level of difficultyEasy
Reading time7 min
Reach and readers3.4K

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

Elixir — это язык программирования, который вырос на основе мощной виртуальной машины BEAM, используемой в Erlang. Это сразу даёт нам ряд фич: хорошую масштабируемость, встроенную поддержку конкурентности и возможность строить распределённые системы.

В этой статье мы рассмотри основные инструменты для реализации распределённых вычислений Elxir.

Читать далее

Архитектура на основе событий в Rust

Level of difficultyEasy
Reading time5 min
Reach and readers5.1K

Сегодня мы рассмотрим, как реализовать так называемую event-driven архитектуру с использованием Rust.

Архитектура на основе событий (event-driven architecture, EDA) — это подход к созданию систем, где взаимодействие между компонентами системы происходит с помощью событий. Все это позволяет развязывать компоненты друг от друга и повышать их независимость, что, в свою очередь, увеличивает масштабируемость и гибкость системы.

Читать далее

Три столпа функционального программирования в Rust: map, filter и fold

Reading time8 min
Reach and readers10K

Представьте себе вот такую картину: вы сидите дома, и вокруг вас мирно мурлыкают котики. Но вдруг, что-то пошло не по плану: один начал ловить лазерный указатель, другой карабкается на шторы, третий — нагло укладывается на вашу клавиатуру. Ну, вы поняли, полный хаос. И тут возникает вопрос: как навести порядок в этом котячьем хаосе? Как упорядочить этот бесконечный поток пушистых данных?

Вот тут-то и приходит на помощь наш добрый друг — Rust, а точнее его функции map, filter и fold. Они помогают не только приручить самых неугомонных data-котиков, но и сделать это без компромиссов по производительности.

Читать далее

Фазовое состояние мозга и готовность провалиться в неизвестность

Level of difficultyEasy
Reading time3 min
Reach and readers11K

Может кто еще помнит сериал «Грань», в котором Дэнетор накачивался ЛСД, держал в лаборатории коров и путешествовал между параллельными вселенными. Так уж сложилось, что реальность предлагает теории, куда более смелые. Новое открытие описывает наше состояние мозга, как «застывшее в точке перехода». Но между какими стадиями находится эта точка?

Читать далее
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity