Как стать автором
Обновить
14
0

Химик и программист.

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

Ломаем простую «крякми» при помощи Ghidra — Часть 1

Время на прочтение9 мин
Количество просмотров104K
О том, что это за зверь такой — Ghidra («Гидра») — и с чем его едят она ест программки, многие уже, наверняка, знают не понаслышке, хотя в открытый доступ сей инструмент попал совсем недавно — в марте этого года. Не буду докучать читателям описанием Гидры, ее функциональности и т.д. Те, кто в теме, уже, уверен, всё это сами изучили, а кто еще не в теме — могут это сделать в любое время, благо на просторах веба сейчас найти подробную информацию не составит труда. Кстати, один из аспектов Гидры (разработку плагинов к ней) уже освещался на Хабре (отличная статья!) Я же дам только основные ссылки:


Итак, Гидра — это бесплатный кроссплатформенный интерактивный дизассемблер и декомпилятор с модульной структурой, с поддержкой почти всех основных архитектур ЦПУ и гибким графическим интерфейсом для работы с дизассемблированным кодом, памятью, восстановленным (декомпилированным) кодом, отладочными символами и многое-многое другое.

Давайте попробуем уже что-нибудь сломать этой Гидрой!
Читать дальше →

Таблица Менделеева на школьной информатике

Время на прочтение16 мин
Количество просмотров12K
(Управляющие карты)
(Посвящается Международному году Периодической таблицы химических элементов)
(Последние дополнения сделаны 8 апреля 2019. Список дополнений сразу под катом)

image
(Цветок Менделеева, Источник)

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

Вениамин Каверин, Два капитана

В приведенной цитате Вениамин Каверин мастерски показал недостатки комплексного метода обучения, однако в некоторых (может быть, довольно редких) случаях элементы этого метода бывают оправданы. Один из таких случаев — это Периодическая таблица Д.И.Менделеева на уроках школьной информатики. Задача программной автоматизации типовых действий с таблицей Менделеева наглядна для школьников, начавших изучать химию, и разбивается на многие типовые химические задачи. В то же время в рамках информатики эта задача позволяет в простой форме продемонстрировать способ управляющих карт, который можно отнести к графическому программированию, понимаемому в широком смысле слова как программирование с помощью графических элементов.
Читать дальше →

Крадущийся в тени или поиски того света

Время на прочтение7 мин
Количество просмотров4.8K

Assembler – мой любимый язык, … но жизнь так коротка.

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

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

Дом, который построил Джек

Время на прочтение1 мин
Количество просмотров5.2K
Хабр не дает опубликовать текст программы не запихивая его под кат, или не разбивая его катом, это очень печально — читайте под катом:

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

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

Мои маленькие реле: Тройной Brainfuck, или что такое безумие

Время на прочтение13 мин
Количество просмотров29K

Рис.1: Релейный компьютер BrainfuckPC на фоне его автора

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

В прошлых сериях:


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

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

С таблицей Менделеева по жизни

Время на прочтение13 мин
Количество просмотров31K
2019 год провозглашен Генеральной ассамблеей ООН (A/RES/72/228) и одобрен Генеральной конференцией ЮНЕСКО (39 C/60) Международным годом Периодической таблицы химических элементов в честь 150-летия открытия Периодического закона химических элементов Д.И. Менделеевым. В 1869 году Д.И. Менделеев впервые опубликовал свою первую схему Периодической таблицы в статье «Соотношение свойств с атомным весом элементов» в журнале Русского химического общества.


Как ни прискорбно осознавать, но для абсолютного большинства людей, знакомство с периодической системой элементов Д.И.Менделеева (и одноименной таблицей) начинается, и как правило, заканчивается в средней школе (часто вообще вспоминают только «водку придумал»). В случае небольшой части населения — знакомство продолжается на первых курсах института, и только очень маленькая часть счастливчиков могут похвастать тем, что таблицей Менделеева они активно пользуются на протяжении всей жизни. Я отношусь к последней категории, поэтому попробую внести свою посильную хабра-лепту в празднование Международного года Периодической таблицы химических элементов и рассказать про свой опыт работы с одним из величайших достижений мировой химической науки. Так что, если интересно проследить за эволюцией таблиц Менделеева от древнего Palm-а и Casio Pocket Viewer до современного и вездесущего Android, и узнать какую таблицу не стыдно (=все лучшее-читателям Хабра) установить профессиональному химику на свой гаджет — идем под кат, читать очередную историю из жизни.
Читать дальше →

Лабиринты: классификация, генерирование, поиск решений

Время на прочтение44 мин
Количество просмотров93K

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

Классификация лабиринтов


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

Создание системы боёв в RPG

Время на прочтение14 мин
Количество просмотров18K
image

Боевые системы наших игр Rimelands: Hammer of Thor и Trulon: The Shadow Engine были высоко оценены игроками. Несмотря на то, что это два сильно отличающихся взгляда на систему боя в RPG, они имеют много общего в дизайне механик и иллюстрируют мою личную философию дизайна. В обоих играх используются пошаговые бои, но Trulon они основаны на колоде карт, а в Rimelands — на наборе кубиков. В первой вы управляете целой партией персонажей, во второй — только одним героем. У этих игр есть сходства и различия не только в боях, но в данной статье я расскажу только о базовых боевых механиках.
Читать дальше →

Как я написал и издал книгу об МГУ, или 12 критических ошибок

Время на прочтение20 мин
Количество просмотров28K
Три года назад я решил сделать книгу о высотке МГУ на Ленинских горах — большую, иллюстрированную, с привлечением выпускников и т.п. История этой работы — настоящее кино (местами фарс, местами хоррор) с кучей драматических поворотов. Сверхудачный краудфандинг, широкая аудитория, множество энтузиастов, полный провал с планированием, собирание всех возможных грабель и в итоге абсолютный факап по бюджету и срокам. В общем, классическая история «управления проектами» — поэтому я и решил рассказать ее здесь.



TL;DR – если хотите написать нон-фикшен ради денег – сразу забудьте. Но если душа просит приключений, жизнь кажется слишком простой — дерзайте! Приобретете массу ненужных связей и откроете в себе уйму недостатков. Зато будет весело :-)

Да, и это лонгрид; примерное время чтения – 20 минут.
Читать дальше →

Что такое интеллект?

Время на прочтение8 мин
Количество просмотров17K
Этот вопрос волнует многих. Строятся теории с привлечением разных сложных понятий, от магии до квантовой физики. Что если всё проще? В статье размышления о некоторых аспектах естественного и искусственного интеллекта, а также определение того, что такое интеллект.
Читать дальше →

Внезапный диван леопардовой расцветки

Время на прочтение8 мин
Количество просмотров83K
Если вы интересуетесь искусственным интеллектом и прочим распознаванием, то наверняка уже видели эту картинку:


А если не видели, то это результаты Хинтона и Крижевского по классификации ImageNet-2010 глубокой сверточной сетью

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

Это вообще довольно любопытный результат, если задуматься. Потому что… скажем, вы знаете, как отличить одного большого пятнистого котика от другого большого пятнистого котика? Я, например, нет. Наверняка есть какие-то зоологические, достаточно тонкие различия, типа общей стройности/массивности и пропорций тела, но мы же все-таки говорим о компьютерном алгоритме, которые до сих пор допускают какие-то вот такие достаточно глупые с человеческой точки зрения ошибки. Как он это делает, черт возьми? Может, тут что-то связанное с контекстом и фоном (леопарда вероятнее обнаружить на дереве или в кустах, а гепарда в саванне)? В общем, когда я впервые задумался над конкретно этим результатом, мне показалось, что это очень круто и мощно, разумные машины где-то за углом и поджидают нас, да здравствует deep learning и все такое.

Так вот, на самом деле все совершенно не так.
под катом пятна

Читабельность кода

Время на прочтение10 мин
Количество просмотров10K


С помощью кода создаются интерфейсы. Но и сам код — это интерфейс.


Несмотря на то, что читабельность кода очень важна, понятие это определено плохо — и часто в виде просто набора правил: использовать осмысленные имена переменных, большие функции разбивать на меньшие, применять стандартные шаблоны проектирования.

При этом наверняка всем приходилось иметь дело с кодом, который соответствует этим правилам, но почему-то представляет собой какую-то кашу.

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

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

Таким образом, набор инструкций — не выход. Поэтому нам придется сформировать более широкое представление о читабельности кода.

Для чего нужна читабельность


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

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

Читабельность текста и читабельность кода — не одно и то же.

Переведено в Alconost
Читать дальше →

Самогонный аппарат — полный автомат. Часть 2. Сепаратор. Холодильник. Куб. Алгоритмы

Время на прочтение18 мин
Количество просмотров50K
Прошло 4 года с тех пор, как я опубликовал статью «Концепт: самогонный аппарат — полный автомат». 4 года, Карл!

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

Красивый самогонный аппарат
КДПВ. Красивый рабочий аламбик. «Montanya distillers Co», Crested Butte, Colorado, USA.

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

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

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

4. От жидкостного охлаждения холодильника в силу объективных причин (подводка, замерзание в случае двухконтурности и тому подобных проблем).

Я постараюсь рассказать обо всех решениях, к которым пришел в процессе реализации идеи.

Много тяжеловесных изображений и спойлеров.
Да, я же ждал эту статью!

Электронная почта, взгляд изнутри

Время на прочтение112 мин
Количество просмотров13K
Работаю я системным администратором в одной фирме. И вот произошла интересная ситуация с отправкой к нам на электронную почту некоторой информации. Дабы не углубляться в подробности с реальной ситуацией (дело касается тендерных предложений, где огромное количество условий), приведу свой пример.
Читать дальше →

Новый взгляд на изучение и документирование исходного кода

Время на прочтение3 мин
Количество просмотров27K
TL;DR Привет. Меня зовут Богдан и я изучаю проблемы чтения кода. Я только что закочнил первую рабочую версию «codecrumbs» — визуального инструмента для изучения исходного кода с помощью «хлебных крошек». Гитхаб репозиторий можно посмотреть тут.

image

Проблема


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

[Пятничное] Как пожарить курицу с точки зрения физики

Время на прочтение2 мин
Количество просмотров27K
Еще из школьного курса физики мы знаем, что энергия не возникает сама по себе и не исчезает в ничто. Её нельзя просто так создать или уничтожить, можно лишь преобразовать из одной формы в другую. В этой небольшой статье я хотел прояснить, как поступать в ситуации, когда у вас есть курица, нет в распоряжении никаких предметов, но вам крайне необходимо эту курицу пожарить.

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

Прекратите говорить о «серьёзном отношении к безопасности и приватности пользователей»

Время на прочтение3 мин
Количество просмотров8.6K


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

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

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

Линус Торвальдс не верит, что серверы на ARM-архитектуре заменят x86. «Продавать 64-битную модель — идиотизм»

Время на прочтение4 мин
Количество просмотров77K


На прошлой неделе компания ARM Holdings объявила, что разрабатывает новую микро-архитектуру для серверных процессоров. Вычислительное ядро, которое будет в ней использоваться, носит кодовое имя Ares, и по обещаниям должно дать 60% прирост по сравнению с текущей платформой. С каждым следующим поколением производительность должна расти еще на 30%.

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

Тем не менее, создатель Linux Линус Торвальдс скептично прокомментировал анонс. Он считает, что будущее новой архитектуры не так радужно.
Читать дальше →

Основная проблема искусственного интеллекта в том, что никто до конца не понимает, как он работает

Время на прочтение7 мин
Количество просмотров20K


В прошлом году по дорогам округа Монмут, Нью-Джерси, стал колесить странный робомобиль. Это экспериментальное транспортное средство, разработанное специалистами компании Nvidia, по внешнему виду не слишком отличается от других автономных машин других производителей, таких как Google, Tesla или General Motors. Но специально для этого автомобиля разработана новая система управления. Она самообучается, и не зависит от настроек, заданных на производстве. Вместо этого робомобиль следит за действиями человека-водителя и учится у него.

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

Новый подход к пониманию мышления машин

Время на прочтение8 мин
Количество просмотров9.1K

Нейросети известны своей непостижимостью – компьютер может выдать хороший ответ, но не сможет объяснить, что привело его к такому заключению. Бин Ким разрабатывает «переводчик на человеческий», чтобы, если искусственный интеллект сломается, мы смогли это понять.



Бин Ким, исследователь из Google Brain, разрабатывает способ, который позволит расспросить систему, использующую машинное обучение, по поводу принятых ею решений

Если доктор скажет вам, что вам нужна операция, вы захотите узнать, почему – и вы будете ожидать, что его объяснение покажется вам осмысленным, даже если вы не обучались на врача. Бин Ким [Been Kim], исследователь из Google Brain, считает, что мы должны иметь возможность ожидать того же от искусственного интеллекта (ИИ). Она — специалист по «интерпретируемому» машинному обучению (МО), и хочет создать ИИ, который сможет объяснять свои действия кому угодно.

Информация

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