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

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

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

Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

Время на прочтение26 мин
Количество просмотров343K
Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже множество? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера опыт (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас распирает от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.

Что мы будем рассматривать в данной статье?

В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят
В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.
В Части 6 — послесловие
Читать дальше →
Всего голосов 108: ↑107 и ↓1+106
Комментарии36

Чтобы пацанам было не стыдно показать

Время на прочтение3 мин
Количество просмотров107K
Я стар и уже глуп, а у вас всё впереди, уважаемый программист. Но позвольте дать вам один совет, который наверняка поможет в вашей карьере – если, конечно, вы планируете остаться программистом.

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

Вот это главное качество: пытливый ум.
Читать дальше →
Всего голосов 251: ↑227 и ↓24+267
Комментарии172

Проектирование процессора Logisim

Время на прочтение4 мин
Количество просмотров68K
Часть I
Часть II
Часть III
Часть IV
Часть V

Одна из глав книги «Код» Чарльза Петцольда посвящена проектированию блоков CPU и в начале главы описывается устройство, позволяющие суммировать наборы чисел, хранящихся в памяти. Спроектируем похожую схему в Logisim. Возьмем набор восьмиразрядных чисел и подключим его к мультиплексору, переход от одного числа к другому будем осуществлять с помощью счетчика, подключенного к выбирающему входу мультиплексора, а к выходу мультиплексора подключим сумматор и аккумулятор. В качестве тактового генератора будем использовать кнопку. Данные будут загружаться в аккумулятор при отпускании кнопки. Это осуществляется с помощью элемента НЕ, подключенного к кнопке. Про реализацию этих функциональных блоков в виде отдельных микросхем далее в статье.

Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии7

Печатная плата заменяет два линейных двигателя

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


Предлагаемая конструкция показывает, насколько безграничны возможности двух довольно старых изобретений — печатной катушки и линейного двигателя. Одна плата заменяет сразу два таких двигателя. Положите на неё магнит, и он будет перемещаться в двумерном пространстве. Положите несколько — они будут перемещаться синхронно. Новую электронику разрабатывать не придётся, подойдут существующие драйвера шаговых двигателей.
Читать дальше →
Всего голосов 114: ↑114 и ↓0+114
Комментарии101

Штормгласс – кристаллы предсказатели

Время на прочтение10 мин
Количество просмотров27K
Однажды мне в журнале «ЮТ для умелых рук» №1, 1989 г. попалась статья с названием «Загадочная ампула», рассказывающая о необычном старинном метеорологическом приборе – штормглассе (stormglass, camphor glass, weatcher glass, склянка Фицроя, штормовая склянка), изготовил прибор по предложенной рецептуре, стал изучать дальше, некоторыми сведениями и своим опытом, в основном практического плана, далее и поделюсь.

Есть информация, что штормгласс использовался уже в XVIII веке, но самое известное упоминание связано с Робертом Фицроем, капитаном судна Бигль, на котором путешествовал Чарльз Дарвин, ему же (Р. Фицрою) часто ошибочно приписывают изобретение прибора. Классический штормгласс представляет собой герметичный вытянутый стеклянный сосуд, заполненный почти доверху прозрачной жидкостью с бесцветными кристаллами разнообразной формы. По изменению внешнего вида, положению и высоте этих кристаллов полагается судить о погоде на следующие часы и дни. В своё время его применяли совместно с барометром, а в настоящее время штормгласс рассматривается больше, как необычное украшение для интерьеров, многие современные исследователи пришли к мнению, что основную свою функцию прибор не выполняет, но исследования и споры вокруг него всё ещё ведутся. Даже если штормгласс и не реагирует ни на что кроме температуры, всё равно это интересная и красивая вещь, которая вполне может выполнять роль украшения. Можно, конечно, купить готовый, в сети довольно много предложений (особенно на eBay и AliExpress), но в таком случае отсутствует информация о том, как и из чего прибор был изготовлен, а также удовольствие от вещи, сделанной своими руками.

Читать дальше →
Всего голосов 69: ↑64 и ↓5+59
Комментарии53

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

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

Цель публикации: рассказать, как с минимальными затратами времени и денег изготовить несложную печатную плату.


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


В этой статье описано: как подготовить и выгрузить из CAD Eagle 7.7.0 задание в формате Gerber RS274X для CAM, расположенной в КНР; как оформить заказ на изготовление печатной платы и её доставку в РФ.

Читать дальше →
Всего голосов 35: ↑26 и ↓9+17
Комментарии37

Домофонный мультиключ и всё про имитацию «таблеток»

Время на прочтение9 мин
Количество просмотров520K
Да, это жутко избитая тема. Универсальный домофонный ключ «таблетку» делал наверное каждый второй, кто начинал изучать микроконтроллеры. В Интернете очень много и статей на эту тему, и готовых решений. Однако, интерес к этому угасать не перестаёт даже с массовым переходом на RFID. Это не удивительно, ведь многим хочется собрать такое устройство, которое выполняет не только весьма интересную задачу, но ещё и всегда с собой. К тому же оно не такое уж сложное в изготовлении.

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



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

Читать дальше →
Всего голосов 206: ↑204 и ↓2+202
Комментарии113

Наглядное пособие по разработке продуктов: дизайн

Время на прочтение7 мин
Количество просмотров8.4K
Это вторая часть из цикла четырех статей о разработке физических продуктов. Если вы пропустили Часть 1: Формирование идеи, обязательно её прочтите. Вскоре вы сможете перейти к Части 3: Конструирование и Части 4: Валидация. Автор: Ben Einstein. Оригинал Перевод выполнен командами фаблаба FABINKA и проекта РУКИ.

Часть 2: Дизайн

Каждый шаг на стадии дизайна – изучение клиента, каркасное моделирование (wireframing, подробнее по-русски), визуальный прототип – нужен для проверки гипотез, как будет выглядеть продукт и как пользователи будут взаимодействовать с ним.

image
Рисунок 2.1 Этапы дизайна продуктов
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии2

Наглядное пособие по разработке продуктов: формирование идеи

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

Это перевод первой части цикла из четырех статей о разработке и производстве физических продуктов. Автор, источник: Ben Einstein.

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

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

Эта серия статей расскажет о том, какими могут быть качественные процессы разработки физических продуктов.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии1

Ардуино термометр & гигрометр с E-PAPER на nRF52832 — или о том, что забыли выпустить производители

Время на прочтение3 мин
Количество просмотров29K
Приветствую всех читателей Habr! В своей очередной статье снова поведу речь о ARDUINO. Хочу поделиться с вами очередным своим проектом, реализованном на микроконтролере nRF52832. Это датчик температуры и влажности на sht20 | (даташит) c монохромным дисплеем на электронных чернилах(E-INK|E-PAPER), который является частью экосистемы MySensors.

Всего голосов 61: ↑57 и ↓4+53
Комментарии19

Защищаем сайт с помощью ZIP-бомб

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

Старые методы по-прежнему работают


[Обновление] Теперь я в каком-то списке спецслужб, потому что написал статью про некий вид «бомбы», так?

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

Когда я в возрасте 13 лет впервые захостил свою маленькую Linux-коробочку с доступом по SSH, я смотрел логи и каждый день видел IP-адреса (в основном, из Китая и России), которые пытались подключиться к моей сладенькой маленькой коробочке (которая на самом деле была старым ноутом ThinkPad T21 со сломанным дисплеем, жужжавшим под кроватью). Я сообщал эти IP их провайдерам.

На самом деле если у вас Linux-сервер с открытым SSH, то можете сами посмотреть, сколько попыток подключений происходит ежедневно:

grep 'authentication failures' /var/log/auth.log
Читать дальше →
Всего голосов 157: ↑155 и ↓2+153
Комментарии184

Ещё лучшая ZIP-бомба

Время на прочтение25 мин
Количество просмотров130K
В статье показано, как создать нерекурсивную zip-бомбу, которая обеспечивает высокую степень сжатия путём перекрытия файлов внутри zip-контейнера. «Нерекурсивная» означает, что она не зависит от рекурсивной распаковки декомпрессорами файлов, вложенных в zip-архивы: здесь всего один раунд. Выходной размер увеличивается квадратично от входного, достигая степени сжатия более 28 миллионов (10 МБ → 281 ТБ) в пределах формата zip. Ещё большее расширение возможно с помощью 64-разрядных расширений. Конструкция использует только наиболее распространённый алгоритм сжатия DEFLATE и совместима с большинством парсеров zip.

  • zbsm.zip 42 kB → 5.5 GB
  • zblg.zip 10 MB → 281 TB
  • zbxl.zip 46 MB → 4.5 PB (Zip64, менее совместима с парсерами)

Исходный код:
git clone https://www.bamsoftware.com/git/zipbomb.git
zipbomb-20190702.zip

Данные и исходники иллюстраций:
git clone https://www.bamsoftware.com/git/zipbomb-paper.git
Читать дальше →
Всего голосов 176: ↑176 и ↓0+176
Комментарии53

Первый программируемый компьютер на ДНК

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

Экспериментальный протокол и реализация алгоритма сортировки на программируемом ДНК-компьютере

Учёные давно ведут эксперименты с хранением информации в ДНК и с обработкой этой информации. Например, учёные из Вашингтонского университета и Microsoft недавно построили «первый в мире DNA-винчестер» (фото). Эта конструкция способна впервые обеспечить запись и считывание информации в ДНК-хранилище без участия человека. Весьма значительное достижение, если учесть, что в ДНК можно записывать информацию с плотностью 2,2 петабайта на грамм. ДНК — компактный контейнер с плотностью записи в тысячи раз больше, чем у существующих носителей.

Однако у всех существующих ДНК-систем есть проблема: всё это уникальные проприетарные разработки, у которых напрочь отсутствует какая бы ни было гибкость. Если сравнить с кремниевой техникой, то каждая группа исследователей с нуля разрабатывает новую архитектуру компьютера, для которого нужно писать новый софт. Но ситуация может измениться благодаря первому программируемому ДНК-компьютеру, разработанному в Калифорнийском университете в Дейвисе (UC Davis), Калифорнийского технологического института и Университета Мейнут.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии15

Государственный университет Адамс. Как взламывать веб-сайты. Часть 2

Время на прочтение11 мин
Количество просмотров11K
Государственный университет Адамс. Как взламывать веб-сайты. Часть 1

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



Однако он помнит вас, пока вы пользуетесь веб-приложением, потому что когда вы кладёте в корзину вещи, которые собираетесь купить, то можете продолжить покупки и снова вернуться, чтобы просмотреть содержание своей корзины. Реализация «запоминания» происходит при помощи кукиз идентификации сеанса. Как только вы залогинились на сервере, он генерирует файл куки, который представляет собой уникальную последовательность букв и цифр, и отправляет его вашему браузеру, который сохраняет это куки локально на вашем компьютере. После этого браузер возвращает кукиз серверу с каждым вашим запросом на протяжение одного сеанса. Получая эти кукиз, сервер понимает, что за пользователь обращается к нему с данным запросом. Это самый распространенный способ идентификации пользователя, который пользуется веб-приложением.
Всего голосов 19: ↑19 и ↓0+19
Комментарии4

Правильно «готовим» прототип. Технологии прототипирования корпуса

Время на прочтение5 мин
Количество просмотров19K
Как выбрать правильную технологию для прототипа корпуса любого устройства, какие головные боли возникают у разработчиков, когда виртуальная 3D-модель становится физической, и как их лечить? Смотрите инструкцию. Главное здесь — понять, что конкретная технология прототипирования предназначена для решения конкретной задачи.

image

Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии16

Защита микросхем от реверс-инжиниринга и несанкционированного проникновения

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

“CVAX — когда вы забатите довольно воровать настоящий лучший”.
Надпись, оставленная американскими инженерами для советских коллег в топологии микропроцессора.

Реверс-инжиниринг микросхем — головная боль производителей с самых первых лет существования микроэлектроники. Вся советская электроника в какой-то момент была построена на нем, а сейчас с гораздо большим размахом тем же самым занимаются в Поднебесной, да и не только в ней. На самом деле, реверс-инжиниринг абсолютно легален в США, Евросоюзе и многих других местах, с целью (цитирую американский закон) “teaching, analyzing, or evaluating the concepts or techniques embodied in the mask work or circuitry”.

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

Другое не менее (а то и более) важное направление защиты микросхем от реверс-инжиниринга — обеспечение безопасности информации, хранимой в памяти. Такой информацией может быть как прошивка ПЛИС (то есть опять-таки интеллектуальная собственность разработчика), так и, например, пин-код от банковской карты или ключ шифрования защищенной флэшки. Чем больше ценной информации мы доверяем окружающему миру, тем важнее защищать эту информацию на всех уровнях работы обрабатывающих ее систем, и хардварный уровень — не исключение.
Читать дальше →
Всего голосов 237: ↑234 и ↓3+231
Комментарии130

Заказные блоки в микросхемах (Silicon IP): как это работает

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


Читать дальше →
Всего голосов 66: ↑65 и ↓1+64
Комментарии149

Операционные системы с нуля; Уровень 0

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

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


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

Читать дальше →
Всего голосов 80: ↑78 и ↓2+76
Комментарии55

Как мы разработали девкит Librem 5 полностью на свободном ПО

Время на прочтение8 мин
Количество просмотров15K
От переводчика: Librem 5 (на рендере) — защищённый смартфон под Linux от компании Purism, который создаётся на максимально открытом железе и софте за счёт краудфандинга.

Сегодня расскажем о разработке Librem 5 Developer Kit и о том, как мы использовали в его разработке только на 100% свободные программы.

Дизайн девкита опубликован на условиях лицензии GNU GPLv3+, аппаратный репозиторий Git лежит здесь.

KiCad — очевидный выбор EDA

Перед началом разработки было не совсем ясно, по какому пути разрабатывать проект. В частности, какой инструмент выбрать для автоматизации проектирования электроники (EDA). Изначально идея состояла в изменении платы i.MX 6QP OpenRex от FEDEVEL для соответствия всем требованиям к девкиту, но мы сразу столкнулись с двумя основными проблемами: там использовался архаичный процессор i.MX 6QP, а ещё хуже, что плата была разработана в проприетарной системе Altium. К счастью, у меня уже был опыт проектирования электроники с помощью EDA KiCad, поэтому мы сумели создать дизайн девкита, используя на 100% свободное ПО.
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии50

Написание простого процессора и окружения для него

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

Здравствуйте! В этой статье я расскажу какие шаги нужно пройти для создания простого процессора и окружения для него.

Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии19
1

Информация

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