Рубрика «Программирование» - 9

SectorC: компилятор Си в пределах 512 байт - 1


SectorC (github) – это компилятор Си, написанный на ассемблере x86-16 и умещающийся в загрузочный сектор 512 байт машины x86. Он поддерживает достаточное обширный функционал Си для создания реальных и интересных программ, являясь при этом, пожалуй, самым миниатюрным компилятором Си из когда-либо написанных.Читать полностью »

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

Ему сказали, что он будет работать над веб-сайтами и иметь дело с JavaScript, Node.js, JSON и тому подобным. Звучало вполне логично для веб-разработки; странным был только комментарий нетехнического собеседователя, что всё «построено на основе Subversion»; Джейк решил, что просто чего-то недопонял.

Эффект внутреннего JSON - 1

Его поставили на проект, в котором использовался собственный «JSON-based Domain Specific Language» компании, или JDSL. Его начальник посоветовал ему изучить копию проекта, на который его назначили, и дал неделю-две на освоение. «Если возникнут вопросы, просто спрашивай, кого угодно, но, судя по твоему опыту, проблем у тебя возникнуть не должно».
Читать полностью »

Привет! Меня зовут Арсений, я — тимлид в команде разработки инструментов разработчика KasperskyOS. Работа нашей команды заключается в том, чтобы делать жизнь разработчика ПО под нашу собственную микроядерную OS удобной, так что любые технологии, упрощающие жизнь разработчика, не оставляют нас равнодушными. Вместе со всеми мы следим за хайпом вокруг нейросетей и решили сделать небольшой обзор AI-плагинов автодополнения кода, которые каждый из нас может использовать уже сейчас.

image

В этой заметке попробуем сравнить следующие AI плагины VSCode:

  • Copilot v1.84.61 — самый нашумевший робот
  • Tabnine v3.6.45 — самый старый из трех и самый дорогой
  • Codeium v1.2.11 — самый свежий и самый малоизвестный
  • FauxPilot — Open source, self-hosted аналог Copilot, использующий модели от CodeGen; посмотрим, что может противопоставить коммерческим продуктам OSS-проект, развернутый на моем запечном сервере.

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

Читать полностью »

Колин Персиваль, автор tarsnap — математик, криптограф и программист. Невольный пособник крипты - 1Выдающиеся программисты современности часто оказываются самоучками. Иногда попадаются специалисты с официальным академическим образованием в области компьютерных наук. Или учёные из других областей: физики, математики, криптографы. Все они вносят в программирование академические знания и научную основательность.

Типичный пример — д-р математических наук Колин Персиваль (Colin Percival), бывший директор по безопасности FreeBSD, автор уникального сервиса резервного копирования Tarsnap и других проектов.

Выдающийся криптограф, который без своего желания оказался причастен к созданию Litecoin. Сотни криптовалют основаны на алгоритме, который придумал и написал скромный математик из Канады.
Читать полностью »

Привет! В одной из прошлых своих статей я уже писал про API для работы с SMS-сообщениями от компании МТТ (входит в экосистему МТС). На этом можно было бы и остановиться, если бы не одно «но». Не так давно вышла в свет платформа МТС Exolve за авторством всё той же компании МТТ. Методы для работы с SMS у MTT Telecom API и MTC Exolve очень похожи, за исключением одного: чтобы «покрутить в руках» MTC Exolve, не нужно заключать договор.

Читать полностью »

Куда подевались все хакеры? Как правильно обсуждать языки программирования - 1


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

▍ Что мы на самом деле сравниваем, сравнивая языки программирования?

Придя в гости к другу, я увидел, что на нём надета футболка Golang. Он сказал, что любит Golang, я ответил, что мне нравится футболка, а сам язык чуть меньше. Ему понравилась мысль «обсудить это позже», и после ужина мы уселись на диванах и приступили к разговору. Я хотел поговорить о сборщике мусора (1, 2), о том, что горутины/каналы — это удобная абстракция, но я предпочитаю абстракции BEAM, потому что они позволяют использовать супервайзоры, обсудить очень свободное отношение Golang к корректности, но… он не горел желанием говорить обо всём этом. Мой друг с восторгом рассказывал о том, что ему нравится, что «разработчики на Go знают, что достаточно одного цикла for. Кто-то притащил в мою компанию Scala, и мне очень не нравится смена образа мышления».

Разговор был бесплодным, и мы оба ощущали, что собеседник не ценит то, что было важно другому. Когда люди говорят о языках, которые им нравятся или не нравятся, я группирую аспекты обсуждения на три большие категории, которые назову почва, поверхность и атмосфера:
Читать полностью »

В предыдущих сериях

Lua — это, пожалуй, мой любимый "маленький язык", с низкой когнитивной нагрузкой и простотой в изучении и использовании. Он встроен во многое ПО, такое как Redis, NGINX через OpenResty и Wireshark (прим. перевод.: и многие другие). Он также используется в качестве скриптового языка в таких играх, как World of Warcraft и Roblox через Luau (прим. перевод.: Читать полностью »

Итоги двадцати лет работы — технический долг и неподдерживаемый код - 1

Технический долг — один из самых популярных сегодня терминов. Люди говорят: «Мы быстро развиваем свой MVP, минимизируя технический долг!» Они говорят о техническом долге, чтобы звучать круто или выделиться.

А я просто смеюсь, ведь всё рано или поздно превращается в технический долг.

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

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

image

1. Вступление

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

Год спустя, написав немало кода, я создал одну из самых быстрых библиотек датафреймов, применимую в Rust и Python. Вот мой первый официальный «Hello World» на polars, размещённый у меня в блоге. Надеюсь, что с помощью этого поста я смогу пояснить читателю некоторые решения, которые мне довелось принять при проектировании, и вам станет понятнее, как Polars работает под капотом.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js