Pull to refresh
-4
0.1
Артём @3263927

Инженер-программист

Send message

Дружба, благодаря которой Google вырос до огромных размеров

Reading time23 min
Views39K
Программируя вместе за одним компьютером, Джефф Дин и Санджай Гемават изменили курс компании — и весь Интернет. На иллюстрации: лучшие программисты Google иногда кажутся двумя полушариями одного мозга. Рисунок Дэвида Планкерта

Однажды в марте 2000 года шесть лучших инженеров Google собрались в импровизированном конференц-зале. Произошло ЧП: с октября 1999 года остановились краулеры. Хотя пользователям ещё выдавали поисковые результаты, но они устарели на пять месяцев. На карту было поставлено больше, чем предполагали инженеры. В данный момент Ларри Пейдж и Сергей Брин вели переговоры о поставке поиска Google на крупнейший в интернете портал Yahoo и обещали увеличить поисковый индекс в десять раз, чтобы идти в ногу со Всемирной паутиной, которая за предыдущий год удвоилась в размере. Если краулеры не починят, google.com застрянет в прошлом, сделка с Yahoo может провалиться, а компания рискует сжечь полученные инвестиции и кануть в небытие.
Читать дальше →
Total votes 57: ↑50 and ↓7+43
Comments36

Собираем автономную игру на C# в 2 килобайтах

Level of difficultyMedium
Reading time11 min
Views20K

Моё детство пришлось на эпоху 1,44-мегабайтных дискет и 56-килобитных модемов, поэтому я всегда любил маленькие программы. Раньше можно было записать на дискету кучу мелких игр и таскать её с собой. Если программа не помещалась на дискету, я задумывался, почему — в ней много графики? Есть музыка? Возможно, она выполняет много сложных операций? Или она просто раздута?

В наши дни дисковое пространство стало настолько дешёвым, что люди отказались от оптимизации по размеру.

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

Человек может зависеть от времени передачи как напрямую (пользователь, скачивающий программу по сети), так и косвенно (serverless-сервис, отвечающий на веб-запрос).

Люди обычно воспринимают всё, что длится меньше 0,1 секунды, как мгновенное, 3 секунды — это примерно тот предел, после которого прерывается состояние потока пользователя; а уж 10 секунд удержать внимание пользователя очень сложно.

Хотя уменьшение сегодня уже необязательно, оно всё равно лучше.

Эта статья задумывалась как эксперимент, позволяющий выяснить, каким может быть минимальный размер полезного автономного исполняемого файла C#. Могут ли приложения на C# достичь размеров, при которых пользователи будут ощущать их скачивание как мгновенное? Позволит ли это использовать C# там, где он не используется сейчас?
Читать дальше →
Total votes 98: ↑97 and ↓1+126
Comments34

Гений 21 века. Чем сейчас занимается Фабрис Беллар

Level of difficultyEasy
Reading time9 min
Views55K
Некоторые программисты настолько хорошо известны, что не нуждаются в особом представлении. Наверное, Фабрис Беллар — самая яркая звезда современности. Автор мультимедийного комбайна FFmpeg, эмулятора QEMU и десятков других полезных программ — абсолютный гений и пример программиста 100х, который в одиночку принёс больше пользы миру, чем многие корпорации с сотнями разработчиков. В общем, все знают Фабриса — про него ещё была статья на Хабре двенадцать лет назад…

… Но по просьбам молодых читателей мы решили вернуться к этой теме. Оно и к лучшему, ведь Фабрис многое сделал за это десятилетие, особенно в области нейросетей.
Читать дальше →
Total votes 156: ↑153 and ↓3+197
Comments49

Pet-проект «Наручные часы на светодиодах»

Level of difficultyEasy
Reading time9 min
Views16K

Что стоит самому разработать электронные наручные часы. Можно ли сделать часы простыми и одновременно эффектными. Как совместить в одних часах отладочное средство для изучения программирования и полезный гаджет.

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

Про наручные часы со светодиодами
Total votes 155: ↑155 and ↓0+155
Comments83

.NET CLI — Зачем загружать все родительские сборки при загрузке сборки

Level of difficultyMedium
Reading time6 min
Views2.4K

В CLR есть особенность, что при загрузки сборки через Assembly.Load или через Assembly.ReflectionOnlyLoad, загружаются все сборки по мере запроса. В отличии от констант и их типов, они заранее копируются в дочернюю сборку и больше не зависят от родительской сборки. Но в определённых случаях типы констант не копируются в дочернюю сборку и их изменение может сломать работу приложения, несмотря на то, что тип константы не должен этого делать. Эта статья Вам поможет разобраться в каких случаях это может произойти и почему так происходит.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments35

Проект выходного дня: как снять электронный поводок с газового гвозде-забивного степлера Paslode Impulse

Level of difficultyEasy
Reading time10 min
Views18K

Пару недель назад ко мне обратился старый знакомый который занимается плотницким делом — строит дома, бытовые постройки, лестницы, мебель и прочую полезную дачную утварь из дерева. В этом деле ему помогает, правильней будет сказать «помогал» (и теперь надеюсь вновь будет помогать) замечательный инструмент — ручной гвозде-забивной газовый степлер Paslode Impulse IM100Ci про-ва Франция. Данный инструмент представляет собой ударный механизм оснащенный камерой сгорания, в которой происходит искровой поджиг и детонация газовой смеси, продукты сгорания с силой выталкивают поршень ударяя бойком по гвоздю и оный со свистом заходит в доску. Всем процессом, разумеется, управляет электроника. Инструмент очень компактный, легкий, предназначен для работы на высоте и имеет адаптацию к температуре окружающей среды (может работать при -20С и ниже).

Но есть у данного инструмента одна неприятная особенность — баллончики с газом (обычный «природный газ» - пропан-бутановая смесь) оснащены RFID меткой стандарта NFC. В одной из ячеек памяти этой метки записывается счетчик «выстрелов». Всего производитель позволяет сделать не более 1250 выстрелов с одного баллончика. Баллончики с газом поставлялись только официальным дистрибьютером за совсем не малые 100+ EURO, а с введением санкций официальный канал поставки закрылся и ценник на них вырос в разы, что сделало данный инструмент практических не пригодным для применения. Разумеется такое положение дел очень сильно расстроило моего знакомого и он обратился ко мне с вопросом — а нельзя ли как-то того… отучить инструмент от этой совершено аморальной привязанности к производителю, ведь заполнить газом баллончик не представляет труда и обходится всего в 50 рублей! Посидев один свободный выходной день за приборами в нашей лаборатории мы пришли к выводу, что можно, и сделать это совсем не сложно.

Читать далее
Total votes 137: ↑134 and ↓3+167
Comments104

System Design 101

Level of difficultyMedium
Reading time42 min
Views86K



О сложных системах простыми словами.


В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.


Выражаю благодарность Анне Неустроевой за помощь в редактировании материала.


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


System Design (сборник на английском языке).

Читать дальше →
Total votes 79: ↑79 and ↓0+79
Comments17

Подделываем вашу подпись при помощи шарнирного механизма. Теорема Кемпе

Reading time5 min
Views221K
В этом посте я расскажу про программу, которая подделывает любую подпись при помощи шарнирного механизма. Программа основана на теореме Кемпе, доказанной в середине 19-го века.

Читать дальше →
Total votes 388: ↑382 and ↓6+376
Comments125

Исследуем саундбар Yamaha YAS-109

Level of difficultyHard
Reading time9 min
Views30K

Всем привет!

Краткое предисловие: я счастливый обладатель замечательного саундбара YAS-109 от Yamaha, на момент написания пользуюсь им уже целый год, и всё в целом хорошо. Но однажды я решил узнать: не подслушивает ли меня мой музыкальный друг? Ведь у него есть встроенная поддержка Alexa, а ещё Bluetooth, WiFi, Ethernet и другие прелести… Так и начинается история моего ресёрча.

Читать далее
Total votes 219: ↑219 and ↓0+219
Comments52

Клонирование голоса, замена лица по фото, удаления объектов в видео и все в одном open-source проекте Wunjo AI

Level of difficultyEasy
Reading time4 min
Views28K

Привет, читатель! В этой статье вы погрузитесь в захватывающий мир новых возможностей для создания дипфейков и синтеза речи в Wunjo AI v1.5, проект полностью с открытым исходным кодом. Вы узнаете о последних фичах, которые позволяют помимо синтеза речи, теперь клонировать голос из аудиофайлов или даже в режиме реального времени, меняют лица на видео с использованием всего одной фотографии, удаляют объекты с видеороликов и значительно повышают качество дипфейков с помощью нейронных сетей для ретуширования. К тому же остается возможность создавать анимацию лица из обычных картинок и анимирования движение губ по аудио в Wunjo AI, Вы не только увидите и услышите результаты этих функций, но и окунетесь в мир приложения, которое делает это возможным.

Важно отметить, что Wunjo AI с открытым исходным кодом доступен для установки локально на операционных системах Windows, Ubuntu и MacOS, и это абсолютно бесплатно, без ограничений.

Готовы? Погнали!
Total votes 30: ↑29 and ↓1+32
Comments37

Ортографическая проекция в фотографии и прочие интересные фокусы с объективами

Level of difficultyMedium
Reading time30 min
Views23K

С тем как работает фотоаппарат мы знакомимся еще со школьной программы. Однако привычное нам из школьного курса сведение объектива к "тонкой линзе" на самом деле не отвечает на массу практических вопросов. Например как удается создавать объективы с ортографической проекцией применяемые в системах технического зрения?

Да-да, такие тоже бывают не только в компьютерной графике, но и в фотографии: попробуйте-ка это объяснить оперируя исключительно в терминах "тонкой линзы". Размер изображения предмета в таких системах (почти) не зависит от того на каком расстоянии от объектива они находятся и это весьма удобно для измерения размеров предмета. В этой статье мы поговорим о том как этого удается добиться, как работает автофокус и пленоптические камеры и о многих других интересных вещах

Так как же работает объектив?
Total votes 132: ↑131 and ↓1+160
Comments38

Мы живем в компьютерной симуляции. Мнение программиста (2024)

Level of difficultyMedium
Reading time22 min
Views39K

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

В этой статье:

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

Обсудим квантовую запутанность (оптимизация вычислений).

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

Обсудим возможность существования мультивселенной и параллельных миров.

Также поговорим про эффект Манделы и Ложные воспоминания, что поговорит о том, что прошлое можно менять при определенных условиях.

Читать далее
Total votes 81: ↑44 and ↓37+20
Comments289

Почему атомы — величайшее чудо Вселенной

Reading time10 min
Views10K

Один из самых удивительных фактов нашего существования был впервые постулирован более 2000 лет назад: на каком-то уровне каждая часть нашей материальной реальности может быть сведена к ряду крошечных компонентов, сохраняющих свои важные индивидуальные характеристики, которые позволяют им собираться воедино и создавать все, что мы видим, знаем, встречаем и переживаем. Эта простая мысль, приписываемая Демокриту Абдерскому, со временем переросла в атомистическое представление о Вселенной.

Хотя буквальное греческое слово "ἄτομος", означающее "неразрезаемый", не совсем применимо к атомам, поскольку они состоят из протонов, нейтронов и электронов, любая попытка «разделить» атом дальше приводит к потере его сущности: того факта, что он является определённым, конкретным элементом таблицы Менделеева. Именно это свойство позволяет ему создавать все те сложные структуры, которые существуют в нашей наблюдаемой реальности: количество протонов, содержащихся в атомном ядре.

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

Читать далее
Total votes 22: ↑21 and ↓1+26
Comments11

Критерий Келли

Reading time9 min
Views13K

От умного риска до победы близко. Кто не рискует, тот не пьет шампанского. Без риска и жизнь пресна.

Эти и многие другие пословицы и поговорки про риск, знакомые нам с раннего детства, закрепляются на подсознательном уровне и, как правило, создают положительный образ риска. Однако на практике риск приносит далеко не только выигрыши. Например, портфель инвестора, который слишком часто рискует и вкладывает весь свой капитал сразу, в краткосрочной перспективе может взлететь до небес, но в долгосрочной непременно приведет к огромным финансовым потерям. Но можно ли каким‑нибудь образом найти золотую середину? Безусловно, и в этом нам поможет критерий Келли.

Читать далее
Total votes 31: ↑29 and ↓2+37
Comments11

Квантовые компьютеры. С точки зрения традиционного программиста-математика. Часть 1

Reading time8 min
Views14K

Квантовые компьютеры. С точки зрения традиционного программиста-математика.
Часть 1. Основы. Квантовый регистр.

О чем эта публикация

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

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

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

Читать далее
Total votes 37: ↑37 and ↓0+37
Comments26

Simba: Симуляция десятков тысяч частиц в потенциале Леннарда-Джонса на чистом Python с GPU-ускорением

Reading time9 min
Views18K

Добрый день, уважаемые хабровчане.

Примерно год назад я начал проект симулятора динамики частиц на Python, используя библиотеку Numba для проведения параллельных расчетов на видеокарте. Сейчас, добравшись до определенной вехи в его развитии, я решил открыть исходный код и выложить его на GitHub для всех, кому интересны подобного рода эксперименты.

Самостоятельно потыркать проект можно вот тут: https://github.com/r-aristov/simba-ps

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

В глубины симуляции
Total votes 137: ↑137 and ↓0+137
Comments78

Углекислый газ на МКС

Reading time13 min
Views60K
В октябре на МКС была установлена новая (принципиально) система регенерации воздуха, которая повысит замкнутость воздушного цикла вдвое.

Реактор Сабатье, вид сверху и снизу

Однако если с технологическим прогрессом все будет хорошо, то этот вариант просуществует недолго, — и нас ждет откат к системе предыдущего типа. А вот если прогресс будет буксовать, то новая система станет золотым стандартом на десятилетия.
Почему все так перепуталось?
Total votes 141: ↑141 and ↓0+141
Comments125

Осваиваем TypeScript: 21 лучшая практика при написании кода

Level of difficultyMedium
Reading time12 min
Views35K

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

В этой статье мы углубимся в мир TypeScript и изучим 21 лучшую практику, с помощью которых вы сможете повысить свой навык работы с этим языком. Эти практики охватывают широкий спектр тем и сопровождаются конкретными вариантами применения в реальных проектах. Независимо от того, являетесь ли вы начинающим либо опытным разработчиком на TS, эта статья даст вам ценное понимание и рекомендации, которые помогут писать более чистый и эффективный код.
Читать дальше →
Total votes 53: ↑45 and ↓8+56
Comments24

Тот, кто гасит свет. Фейнманий и глубины таблицы Менделеева

Reading time6 min
Views51K


Попробуйте почитайте англоязычные источники по истории химии и поищите в них упоминание таблицы Менделеева. Вы будете удивлены, но все-таки убедитесь, что такая формулировка тщательно избегается. Настойчиво и как-то политкорректно пишут о «периодической системе элементов». С упоминанием не только Менделеева, но и всех причастных, акцентируя роль Мейера, Деберейнера и Шанкуртуа с не меньшим пафосом, чем определяющую роль открытия второго фронта на заключительном этапе Второй мировой войны.

Отдавая должное уважаемым западным партнерам Менделеева и лично Роберту Бунзену, у которого Дмитрий Иванович учился в 1859-1861, отметим, что Менделеев вошел в историю науки не как классификатор известного, подобно Линнею, а как визионер, сумевший спрогнозировать еще не открытые элементы и, что более важно в контексте этой статьи – правильно расположить йод и теллур, несмотря на то, что теллур тяжелее йода.



В настоящее время таблицу Менделеева замыкает оганессон (Og) № 118. Он расположен ровно под радоном (№ 86) и, по логике Менделеева, должен представлять собой благородный газ, так как замыкает седьмой период. Но с завершением этого самого удивительного, эфемерного и взрывоопасного периода, вместившего в себя уран, плутоний, менделевий, флеровий и оганессон, вновь актуализируются вопросы: а где заканчивается таблица Менделеева? И до самого ли ее предела соблюдается периодический закон? Удивительно, но впервые ответ на этот вопрос довольно уверенно дал еще Ричард Фейнман.
Читать дальше →
Total votes 100: ↑80 and ↓20+97
Comments179

Согласование импедансов: как сломать и как починить

Reading time8 min
Views35K

Рано или поздно в руки любителей, начинавших с Ардуино, попадают куда более быстрые устройства. Накинув щупы осциллографа на навесные провода, они обнаруживают, что сигнал, который задумывался, как голубая линия на заглавной картинке на деле выглядит, как жёлтая. В поисках решения проблемы они приходят к весьма многогранной области знаний под названием «Целостность сигналов». И если такие её аспекты, как питание и возвратные токи относительно просты для понимания, то согласование импедансов содержит ряд контринтуитивных положений. В процессе освоения данной темы мне показалось, что материалы по ней разделены на три не слишком хорошо связанных блока:
1) теория с формулами и отсылками к 2 курсу ВУЗа
2) гипертрофированные примеры на симуляторах
3) применение на практике (с эмпирическими суевериями)

Данная статья является попыткой начать с конца. Я возьму работающую схему, выполненную в текстолите. Затем постараюсь ухудшить её характеристики так, чтобы рассогласование линий стало причиной сбоев в работе или хотя бы стало заметно на осциллографе. А затем постараюсь устранить возникшие проблемы.

Согласовать импедансы
Total votes 68: ↑67 and ↓1+88
Comments40

Information

Rating
2,704-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity