Pull to refresh
34
1.7
Send message

Как улучшить английский в документации. Часть 2: ловушки двусмысленности

Level of difficultyMedium
Reading time9 min
Views6.8K

Привет, Хабр! Я работаю техническим писателем в компании documentat.io, мы занимаемся заказной разработкой технической документации, в том числе на английском языке.

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

В этой статье разберём другую разновидность подводных камней английского — двусмысленные конструкции. Даже носители языка иногда упускают их из виду. А ведь любое двусмысленное выражение может затруднить понимание текста, особенно для пользователя, который только начинает разбираться в предмете. Каждая запинка при чтении приближает пользователя к тому, чтобы бросить документацию и пойти дёргать техподдержку или писать про продукт гадости в интернете. Таким образом, двусмысленность в конечном счёте может стоить бизнесу денег.

Читать далее
Total votes 10: ↑9 and ↓1+10
Comments5

Практичные и не очень проекты на базе Raspberry Pi и не только: DIY-проекты весны 2024 года

Reading time4 min
Views23K

«Малинка» — один из наиболее популярных одноплатников, который, собственно, и положил начало экспансии одноплатных ПК на рынок. На основе Raspberry Pi различных версий созданы десятки тысяч проектов, от just for fun до промышленных систем. Под катом расскажем про новые идеи, которые, возможно, кто‑то из читателей Хабра захочет повторить.

Читать далее
Total votes 18: ↑15 and ↓3+22
Comments34

Культурный феномен клипа Bad Apple и мой BAD AON

Level of difficultyEasy
Reading time20 min
Views17K

Уже десять лет на демосцене существует довольно странная, но интересная традиция. Нет, в баню с друзьями ходят без неё, но очень многие делают конверсии популярного видеоклипа Bad Apple на различные маломощные платформы прошлых лет. Как-то: ZX Spectrum, Game Boy, Sega Genesis, БК-0011М, и чем дальше, тем страньше и страньше. Это одновременно и упражнение в реализации цифрового видео в условиях крайне ограниченных ресурсов, и в адаптации контента под возможности максимально хардкорных ретро-платформ.

Сегодня рассмотрим само явление Bad Apple — откуда оно взялось и какое отношение имеет к компьютерам, а также мою новейшую разработку в этой области, демонстрацию BAD AON. В прошлом я уже делал подход к этому снаряду с версией для 8-битной NES, а в этот раз сделал адаптацию для, смею надеяться, одной из наиболее необычных платформ. Разглядеть клип будет трудновато, но если хорошенько прищуриться (я серьёзно), он всё ещё вполне узнаваем.
Читать дальше →
Total votes 132: ↑132 and ↓0+174
Comments35

Файлы, отображаемые в память

Reading time3 min
Views93K
В этой статье я хотел бы рассказать о такой замечательной штуке, как файлы, отображаемые в память(memory-mapped files, далее — MMF).
Иногда их использование может дать довольно таки существенный прирост производительности по сравнению с обычной буферизированной работой с файлами.
Так что ж это такое?
Total votes 58: ↑51 and ↓7+44
Comments95

Как я запрограммировала собственный рукописный шрифт

Level of difficultyMedium
Reading time5 min
Views25K

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

Недавно я создала на JavaScript собственный блочный шрифт, решив, что запрограммировать слитное рукописное письмо будет слишком сложно. Но не прошло и двух месяцев, как вот я здесь и готова рассказать о созданном мной механизме слитного письма. Пожалуй, в этом есть свой урок, но мы в его смысл углубляться не станем.
Читать дальше →
Total votes 102: ↑100 and ↓2+127
Comments59

Уже зовёт меня в полёт мой «Дельта-С». Как я купил старый советский «Спектрум», и что из этого получилось

Level of difficultyEasy
Reading time6 min
Views20K


Если на старости лет ты начал заниматься «Спектрумами», остановиться уже невозможно. Совсем недавно я вернул к жизни подаренный мне друзьями клон ZX Spectrum под названием «Композит», и вот мне представился случай приобрести прекрасно сохранившийся экземпляр советского персонального компьютера «Дельта-С» 1990 года выпуска. Удержаться от соблазна было решительно невозможно: я купил этот ПК и с нетерпением принялся ждать его доставки из далёкой Перми. Конечно, оставалась вероятность, что машина на деле окажется неисправной, но кто не рискует, тот не играет в Lode Runner.
Читать дальше →
Total votes 83: ↑82 and ↓1+107
Comments140

Медицинский детектив: как я разрабатывал матмодель и софт для хирургии по пересборке черепа

Reading time13 min
Views8.5K
image

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

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

Мы разработали новый протокол операции. Через 3 года прошла первая операция.

В старом протоколе хирург бы снял слепки зубов, разместил бы модель фрагментов пациента в артикулятор и подготовил бы набор ручных вмешательств. Наша методика расчёта показала, что то, что мы всегда считали «визуально правильным», таким не является. Мы долго проектировали ту операцию за матмоделями, проверяя, что будет с костями. Во время операции хирург открывал мягкие ткани, ставил навигационный шаблон на костную ткань, перекраивал кости под новыми углами. Углы, под которыми скреплялись кости, выглядели контринтуитивно. Их рассчитывала матмодель на основе КТ и фотограмметрии. Она же дала сверхточную навигацию: ничего не делалось вручную, только по трёхмерной координатной привязке. Хирург быстро разрезал, поставил шаблоны, наложил пластины, скрепил пластины в расчётных точках. Что-то похожее я видел в ролике к игре Deus Ex. Хирург во время самой операции был лишь исполнителем своей заранее созданной программы.

Пациент восстановился за 4 месяца. Старый протокол подразумевал, что общее время лечения будет длиться 30 месяцев, а с этим протоколом мы сократили общее время лечения до 4–12 месяцев.

Сегодня эта операция стала новым стандартом сферы.

Потому что мы поставили под сомнение догму.
Читать дальше →
Total votes 86: ↑86 and ↓0+86
Comments7

История очень терпеливого пациента, который чуть не умер прямо у нас в кабинете

Reading time7 min
Views69K
Что может случиться, если долго не ходить к стоматологу и терпеть зубную боль?

Понятно, что хорошего — ничего. Но хотелось бы конкретики.

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

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

Терапевт сделал снимок, не увидел на нём ничего предосудительного и провёл стандартное лечение: вскрыл причинный зуб, обработал канал и установил лекарство, чтобы купировать начавшееся воспаление. Словом, поначалу всё выглядело совершенно обычно. Но дальше началось самое интересное.


Снимок того пациента и причинный зуб
Читать дальше →
Total votes 145: ↑133 and ↓12+156
Comments123

Как мы переворачиваем платную медицину

Reading time10 min
Views11K
image

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

Это неизбежный конфликт между тем, что нужно было помогать людям, — и коммерческими целями клиники.

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

То есть мы берём не за процесс и промежуточные операции, а за переход в целевое состояние.

Это значит сразу три очень интересных вывода:
  1. Окончательная цена называется сразу до лечения. Она не будет меняться от длительности лечения, возможных осложнений, ошибок, дополнительных процедур и так далее. Наша задача — всё это спрогнозировать.
  2. Мы даём очень долгую гарантию на результат. Например, на ряд сложных вмешательств — 5 лет, на более простые — 3 года.
  3. Эта гарантия — не цена «за ремонт» при гарантийном случае, а полноценное обслуживание все эти годы, включая профилактики.

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

Что самое удивительное, при таком подходе и высоких ценах нашего верхнего сегмента, получается иногда дешевле, чем в клиниках среднего сегмента. Не всегда, но сейчас объясню, в чём дело.
Читать дальше →
Total votes 61: ↑54 and ↓7+61
Comments34

Разглядывая JTAG: самый быстрый программный JTAG на Arduino

Level of difficultyMedium
Reading time26 min
Views10K

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

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

Субъективно, практическое применение программного JTAG мне по‑прежнему видится не вполне оправданным.
Но, во‑первых, это хороший повод рассмотреть предельные возможности микроконтроллеров.
А во‑вторых, есть формальная причина сказать, что в данной статье предлагается Решение Прикладной Задачи :)

Итак, сегодня мы поговорим про прерывания, поллинг и прочее. А протокол JTAG станет фоном для повествования.

jmp start
Total votes 40: ↑40 and ↓0+55
Comments30

Сумасшествие «Артемиды» или почему она обречена на провал

Reading time27 min
Views27K

Более полувека назад, 7 декабря 1972 года, с космодрома на мысе Канаверал стартовала ракета, уносящая к Луне трех астронавтов и луноход. После трехдневного полета двое из них спустились на поверхность Луны в хрупком посадочном модуле. В течение трех дней астронавты исследовали лунный ландшафт, собирали образцы пород и испытывали луноход. Затем они вернулись на орбиту, где их ждал третий член экипажа. Вместе они отправились обратно на Землю, приводнившись в южной части Тихого океана 19 декабря 1972 года. Эта миссия, получившая название «Аполлон-17», стала последним на сегодняшний день случаем, когда человек покидал пределы низкой околоземной орбиты.

NASA планирует вернуть американских астронавтов на Луну в конце 2026 года в рамках миссии «Артемида-3». Подобно «Аполлон-17», два астронавта проведут около недели на лунной поверхности, собирая образцы и делая памятные селфи. Однако, в отличие от исторической миссии, «Артемида-3» будет осуществлена без лунохода.

Несмотря на внешнюю схожесть с «Аполлон-17», «Артемида-3» значительно отличается по сложности и стоимости. В то время как «Аполлон-17» была запущена одной ракетой и стоила $3,3 миллиарда (в пересчете на 2023 год), «Артемида-3» потребует десятка запусков тяжелых ракет и обойдется в астрономическую сумму, которую NASA отказывается раскрывать. По оценкам экспертов, стоимость миссии может достигать 7–10 миллиардов долларов.

Сложность «Артемиды-3» поражает: одноразовый посадочный модуль станет самым тяжелым космическим аппаратом в истории, а научный результат миссии — небольшая коробка с лунными образцами — будет меньше, чем у «Аполлона-17». Более того, вся программа зависит от технологий, которые еще предстоит разработать и протестировать в течение ближайших полутора лет.

Возникает закономерный вопрос: если мы смогли отправить человека на Луну полвека назад, почему это так сложно сделать сейчас, учитывая технологический прогресс?

Читать далее
Total votes 109: ↑93 and ↓16+102
Comments364

Моё лучшее вложение 13 тыс. рублей (какой ботаник без микроскопа?)

Level of difficultyEasy
Reading time11 min
Views20K


Сидел я тут недавно перед монитором и размышлял чем бы себя ещё порадовать, а надо сказать, что порадовать меня не так просто (смайл). Долго я размышлял и решил остановить свой выбор на… микроскопе. Почему бы и нет? У меня уже давно стояло в планах оснастить лабораторию подобным инструментом.

И вот этот девайс неожиданно не просто меня порадовал, а вызвал настоящий вау-эффект. Это реально просто обалденная штука (простите за мой французский) и у меня возник только один вопрос — почему я не купил его раньше?

Далее я попробую простыми словами описать что это такое и приведу примеры фото и видео с этого микроскопа, после которых вы всё бросите закажете себе такой же (или даже лучше).
Читать дальше →
Total votes 75: ↑73 and ↓2+96
Comments62

Как я разработал квадрокоптер на ESP32 с нуля (ушло 4 года)

Level of difficultyMedium
Reading time12 min
Views55K

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

Занимаясь БПЛА с 2016 года, я решил разобраться в устройстве полетных контроллеров максимально глубоко и создать квадрокоптер с нуля, не используя готовый полетный контроллер и готовый софт. Спустя долгое время разработки мне удалось это сделать. Я написал прошивку с максимально простым исходным кодом и выложил ее на GitHub. В этой статье я расскажу о теории и практике разработки полетного софта для квадрокоптера и проиллюстрирую это на примере своего дрона на базе микроконтроллера ESP32, который можно увидеть на картинке выше.

Читать далее
Total votes 312: ↑312 and ↓0+371
Comments132

Книга: «C++20 для программистов»

Reading time20 min
Views9.6K
image Привет, Хаброжители!

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

200+ практических примеров реального исходного кода позволят быстро овладеть идиомами современного С++, используя популярные компиляторы: Visual C++®, GNU® g++, Apple® Xcode® и LLVM®/Clang. Знание базы позволит перейти к контейнерам стандартной библиотеки С++ array и vector; функциональному программированию с диапазонами и представлениями C++20; строкам, файлам и регулярным выражениям; объектно-ориентированному программированию с классами, наследованием, динамическим и статическим полиморфизмом; перегрузке операторов, семантике копирования и перемещения, RAII и умным указателям; исключениям и ожидаемым в С++23 контрактам; контейнерам, итераторам и алгоритмам стандартной библиотеки; шаблонам, концептам С++20 и метапрограммированию; модулям С++ 20 и технологии разработки больших программ; конкурентности, параллелизму, параллельным алгоритмам стандартной библиотеки С++17 и С++20 и корутинам С++20.
Читать дальше →
Total votes 7: ↑7 and ↓0+12
Comments17

Из ASCII в Pixel Art и обратно

Level of difficultyEasy
Reading time3 min
Views6K

Привет, ребята! Новую игру я делаю на своем старом движке текстового режима. Однако это псевдотрехмерная (2.5D) пиксельная игра с перспективой. Оказалось, что символьный ASCII движок может справиться с этой задачей, нужно только сделать пару апгрейдов.

Читать далее
Total votes 57: ↑55 and ↓2+77
Comments23

Миниатюрный шаговый двигатель SM1007

Level of difficultyEasy
Reading time3 min
Views9.3K

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

Что было дальше?
Total votes 27: ↑18 and ↓9+16
Comments16

Еще про фото неба

Level of difficultyEasy
Reading time10 min
Views3K

Навеяно постом Фотографируем небесные явления и астропейзажи в городе от engine9. Будет некоторое количество собственных снимков с пояснениями, так или иначе связанных с наблюдениями природных и астрономических явлений.

Читать далее
Total votes 17: ↑16 and ↓1+19
Comments8

Форма, преобладающая над содержанием: любовь к бракованным кадрам, переросшая в бренд

Level of difficultyEasy
Reading time10 min
Views11K
image

Уже год я снимаю на плёнку. Не часто, но периодически уезжаю из Москвы в родной город с проявленной катушкой плёнки. И чем больше снимаю, тем чаще прихожу к выводу, что, по сути, занимаюсь ломографией тоже. А ведь ломография — вещь очень интересная!
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments23

Мастер-класс по съемке и сшивке панорамных изображений

Reading time12 min
Views3.3K

Введение

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

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

Читать далее
Total votes 10: ↑10 and ↓0+11
Comments44

Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода

Level of difficultyMedium
Reading time7 min
Views3.4K

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

Читать дальше →
Total votes 7: ↑7 and ↓0+9
Comments14

Information

Rating
1,306-th
Registered
Activity