Обновить
0
@MacInread⁠-⁠only

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

Отправить сообщение

Ботулотоксин и пептиды: как частично отключить мимику

Время на прочтение10 мин
Охват и читатели15K
image
Примерно так выглядит мускулатура полностью расслабленного человека. (Источник: Атлас анатомии человека. В 3-х томах. Том 2. Автор: Билич, Крыжановский).

Ботулотоксин — очень крутая штука. Всего один нанограмм этого белка на один килограмм вашей массы убьёт вас с вероятностью в 50 %. Наиболее близкий к нему биологический токсин — это тетаноспазмин от другой клостридии, которая является возбудителем столбняка.

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

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

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

  • Что такое мимическая мускулатура и почему она нестандартно прикреплена?
  • Как формируются морщины?
  • Где грань между аминокислотами, пептидами и белками?
  • Как работают ботулотоксин, аргирелин и леуфасил?
  • Что будет, если неправильно уколоть ботокс?
Читать дальше →

Вторая микросхема :)

Время на прочтение5 мин
Охват и читатели24K
В 2018 году у себя гараже я изготовил первую интегральную схему, это был двойной дифференциальный усилитель Z1. Тогда я заканчивал школу, а сейчас уже выпускаюсь из колледжа. Очевидно, пришло время улучшить производственный процесс.



Z1 с шестью транзисторами представлял эксперимент для отработки всех процессов и проверки оборудования. В теперешнем Z2 уже 100 транзисторов c поликремниевым затвором 10 мкм — та же технология, что и в первом процессоре Intel. Здесь просто массив 10×10 транзисторов для тестирования, определения характеристик и настройки процесса, но это огромный шаг к более продвинутым самодельным чипам. В Intel 4004 было 2200 транзисторов, а я разместил 1200 на такой же пластине.
Читать дальше →

Почему любой Android снимает видео хуже iPhone?

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

Привет, камрады, киноделы и просто читатели! 

Некоторые из вас меня знают как разработчика Андроид-приложения mcpro24fps, предназначенного для профессиональной видеосъёмки на телефон. И сегодня я бы хотел обсудить такую тему: «Почему iPhone остается лидером в видеосъёмке?»

Читать далее

«У agile-самурая нет цели, только Путь». Как я пришел в IT после 35

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

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

Тогда я просто верил, что смогу в свои «около 40» лет измениться и найти работу своей мечты. Но настоящие испытания были еще впереди…

Читать далее

Как хакнуть систему фитнеса, которая не менялась в течение 50 лет

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

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

Читать далее

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

Время на прочтение7 мин
Охват и читатели74K
Получив новый телефон, я всегда его разбираю. Не из любопытства и не по политическим причинам, а просто для безопасности. Первый шаг — удаление двух или трёх крошечных микрофонов на плате. Это лишь начало сложного процесса. Но даже после нескольких дней работы с паяльником смартфон всё равно остаётся самым опасным предметом в моей квартире.


Микрофоны на материнской плате смартфона перед удалением

До публикации проекта Pegasus — разоблачения фатальных последствий деятельности NSO Group, ещё одной коммерческой фирмы, которая вышла из-под контроля индустрии безопасности — большинство производителей смартфонов и большая часть мировой прессы дружно закатывали глаза, когда я публично называл новенький iPhone потенциальной угрозой для жизни.

Теперь все поняли, о чём речь.
Читать дальше →

Bitwise — обучающий проект по созданию программного и аппаратного стека компьютера с нуля

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

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

В 2017 году, Per Vognsen - программист с более чем 15-летним стажем, работавший в таких компаниях как NVIDIA и Oculus берет паузу и в марте 2018 стартует амбициозный обучающий проект Bitwise, в котором он собирается разработать и написать весь программно-аппаратный стек для простого компьютера с нуля и запустить его на FPGA. 

Проект должен был включать в себя операционную систему, компилятор, системные библиотеки, а также HDL код для центрального процессора и периферийных контроллеров. Пререквизиты к нему минимальны - свободное владение языком Cи (и немного Python), а также знание некоторых алгоритмов и структур данных из стандартных CS курсов. Все остальное объясняется по ходу написания кода.

Проекты подобные Bitwise можно пересчитать по пальцам (думаю многие еще вспомнят о знаменитом Handmade Hero от Casey Muratori). Автором данного проекта выступает отличный программист, который в формате скринкастов показывает и объясняет каждое решение по ходу написания кода. Этой короткой статьей я бы хотел заполнить пробел и познакомить большее число людей с проектом Bitwise, так как сам извлек из него много нового.

Читать далее

Quad-engine. Свой 2D-движок. Когда приперло со всех сторон

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

Предисловие.


Было начало 2010 года, когда я расстроился при просмотре очередного фреймворка с поддержкой Delphi. В тот момент я искал замену уже сильно устаревшему и заброшенному PowerDraw. Как говорится, тоже самое, только с перламутровыми пуговицами. Пересмотрев всё, что было из 2Д, я так и не нашел искомого. То не было шейдеров, то черезчур нагроможденный с точки зрения кода, то вообще какой-то убогий. А душа просила простоты использования и шейдеров.

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



Под катом прилично картинок.
Читать дальше →

Самодельный компилятор и игровая библиотека Raylib. Опыт стыковки

Время на прочтение4 мин
Охват и читатели6.9K
image

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

О моём компиляторе XD Pascal уже было несколько постов на Хабре. Компилятор написан предельно просто и целиком вручную, при этом язык имеет весьма нетипичные расширения — методы и интерфейсы, позаимствованные из Go. На сегодняшний день базовый язык реализован полностью, работает самокомпиляция, введены простейшие оптимизации. Тут и возникло естественное желание наладить взаимодействие компилятора с какой-нибудь несложной игровой библиотекой. Выбор пал на Raylib — но никогда бы он на неё не пал, если бы я сразу предвидел её подводные камни. Невинная затея превратилась в борьбу с соглашениями о вызове.
Читать дальше →

Использование FPC-библиотеки «InternetTools» в Delphi

Время на прочтение12 мин
Охват и читатели5.1K
На самом деле, статья несколько шире – она описывает способ, позволяющий прозрачно задействовать и многие другие библиотеки (причём не только из мира Free Pascal), а InternetTools выбрана из-за своего замечательного свойства – это тот случай, когда (как ни удивительно) отсутствует Delphi-вариант с такими же широкими возможностями и удобством использования.

Эта библиотека предназначена для извлечения информации (парсинга) из веб-документов (XML и HTML), позволяя использовать для указания нужных данных как языки запросов высокого уровня, такие как XPath и XQuery, так и, в качестве одного из вариантов, предоставляя прямой доступ к элементам дерева, построенного по документу.
Читать дальше →

Меняем промежуточное представление кода на лету в Ghidra

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

Когда мы разрабатывали модуль ghidra nodejs для инструмента Ghidra, мы поняли, что не всегда получается корректно реализовать опкод V8 (движка JavaScript, используемого Node.js) на языке описания ассемблерных инструкций SLEIGH. В таких средах исполнения, как V8, JVM и прочие, один опкод может выполнять достаточно сложные действия. Для решения этой проблемы в Ghidra предусмотрен механизм динамической инъекции конструкций P-code — языка промежуточного представления Ghidra. Используя этот механизм, нам удалось превратить вывод декомпилятора из такого:

Читать далее

Компиляция. 7: назначение регистров

Время на прочтение18 мин
Охват и читатели6.4K
File names are infinite in length, where infinity is set to 255 characters.
--Peter Collinson: The Unix File System

Итак, у нас есть программа на п-коде, и в её распоряжении неограниченное количество регистров (т.е. 255). Число регистров у реального процессора куда меньше (предположим, четыре). Что будем делать?

Далее в посте:

  1. Разбор п-кода
  2. Время жизни
  3. Реализация
  4. Простые оптимизации
  5. Расщепление версий
  6. Работа с памятью
  7. Что получилось?
Читать дальше →

Умные пайетки (часть 3)

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

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

Читать далее

OllyDbg при смерти — спасение наработок отладочной сессии

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

Если вы используете OllyDbg не для отладки собственных приложений, для которых у вас есть отладочная информация, а для реверс-инжиниринга или исследования сторонних, типичная ваша деятельность — это вникание в машинный код чужого продукта, осознание сути происходящих вещей и расстановка большого числа меток (labels) и комментариев по всему коду, а также по секциям данных. Вы планомерно разведываете суть процедур/функций и переменных и даёте им имена, отражающие ваше понимание их предназначения.


OllyDbg не нуждается в представлении для всех, кто занимается отладкой, реверс-инжинирингом приложений, исследованием или обходом механизмов защит и т.п. Это один из лучших user-modeных отладчиков для Windows, хотя нельзя замалчивать и большое число недостатков и недоработок в нём.
И вот спустя несколько часов (а то и дней) работы, когда вы разобрались и подписали сотни, а то и тысячи процедур и переменных, OllyDbg внезапно зависает или вылетает, унося в небытие все ваши наработки (в которые могут входить не только labels и comments в большом числе, но и расставленные в нужных местах брекпоинты и модификации). Это потеря времени и чудовищно демотивирующий фактор, от которого опускаются руки и бледнеет лицо.


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

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

Тёплый ламповый звук как норма жизни: лучшие советские радиолы

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

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

Читать далее

GObject: основы

Время на прочтение7 мин
Охват и читатели24K
GObject — часть библиотеки GLib, реализующая объекто-ориентированнные расширения для чистого Си. Подобная концепция, помимо самой GLib, используется в таких проектах, как GStreamer, GSettings, ATK, Pango и весь проект GNOME в целом, а также в большом количестве прикладных приложений: GIMP, Inkscape, Geany, Gedit и многих других. Большое количество языков программирования, начиная от таких мейнстримовых, как Python и Java, и заканчивая изысками вроде Haskell или D, имеют привязки к GLib/GTK+, а для значительного количества языков биндинги к GTK+ вообще является единственным способом построения GUI.

В отличие от других схожих проектов, GObject отличают архитектурные особенности, целью которых является лёгкая и прозрачная реализация привязок библиотек, написанных с применением чистого Си и GObject, к другим языкам программирования, в том числе с динамической типизацией и управлением памятью при помощи сборщика мусора. Именно этим объясняется некоторое ощущение переусложнённости, которое может возникнуть у программиста, приступившего к знакомству с GObject API. Тем не менее, эта система очень продуманная и логичная, так что проблем с пониманием всего изложенного ниже у программиста, знакомого с C++ или Java, возникнуть не должно.

Данная статья иллюстрирует самые основы работы с объектной системой типов GLib.
image
Читать дальше →

Миниатюрные ПК последнего времени в форм-факторе флешки, на которые стоит обратить внимание

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

Портативность электронного оборудования — ценнейшее качество, как для компаний, так и обычных пользователей. Чем меньше места занимает оборудование, тем эффективнее использование полезного пространства. Одними из лучших в плане портативности являются компьютеры в форм-факторе флешки. Вставил в HDMI-разъем монитора или ТВ, и радуйся полноценному десктопному ПК, мало того, что компактному, так еще и почти бесшумному.

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

Как я портировал игру с Visual Basic 6 на С++, сделав её кросс-платформенной

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

Всем доброго времени суток! Это моя история о том, как я портировал исходный код одной фанатской Windows-игры о Марио с Visual Basic 6 на C++, и с какими трудностями я столкнулся в процессе создания порта.

Эта статья рассказывает о портировании Super Mario Bros. X, фанатской игры Эндрю Спинкса, созданную им в 2009 году, которую он затем бросил 2011 году в пользу более серьёзного и масштабного проекта в лице Terraria.

Читать далее

Аппроксимация синуса: полиномы Чебышёва vs. ряды Маклорена

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

В комментариях к моей статье про быстрое вычисление синуса был задан вопрос: "А чем не устроило разложение в ряд Тейлора?"

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

Читать далее

Углубляем озеро в 100 раз

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

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

Итак, дано: небольшое пресноводное озеро, не озеро даже – скорее огромная лужа, глубиной три с мелочью метра. Вопрос: как без смс и регистрации утопить там две буровые установки, одиннадцать(!) барж и буксир? Причём без читерства, типа штормов, ураганов и прочих бедствий? Интересно? Сейчас я вам всё расскажу.

Осенью далёкого 1980 года на озере Пенёр, что в штате Луизиана, компания Wilson Brothers Corporation искала нефть по заказу компании Texaco. На дворе конец ноября, погода ясная, установка исправная, буровики опытные — ну что может пойти не так? Поэтому, когда утром двадцатого бур заклинило на глубине трёхсот семидесяти метров, никто не мог и предположить, во что это в итоге выльется.

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность