• PC-3000 Flash: восстанавливаем данные с карты microSD

    • Translation


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

    До недавнего времени все карты памяти типа SD, Sony MemoryStick, MMC и других, использовали простую «классическую» структуру с отдельными частями – контроллер, плату и чип памяти NAND в корпусе TSOP-48 или LGA-52. В таких случаях процесс восстановления был очень простым – мы выпаивали чип памяти, читали его в PC-3000 Flash, и вели ту же подготовку, что и в случае с обычными USB-флэшками.

    Однако что делать, если наша карта памяти или UFD-устройство имеет монолитную структуру? Как получить доступ к чипу памяти NAND и прочесть данные с него?
    Читать дальше →
  • Проект «Радуга» – попытка показать цветное изображение на чёрно-белом мониторе

    • Translation
    Целью данного проекта было вывести цветное изображение на чёрно-белый монитор путём наложения на экран распечатанного на ацетатной плёнке (на струйном принтере) фильтра Байера. Цветное изображение получается как мозаика.

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

    На фото ниже дано увеличенное дешёвым USB-микроскопом в 500 раз изображение пикселей, из которых состоит ч/б ЖК-дисплей. Сначала я подумал, что каждый пиксель составлен из 4 субпикселей, но потом пришёл к выводу, что каждый пиксель состоит из трёх групп светодиодов в форме < (см. далее).

    Читать дальше →
  • Делаем копию карты-пропуска по фото

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


      Читать дальше →
    • Декодируем JPEG-изображение с помощью Python

      • Translation

      Всем привет, сегодня мы будем разбираться с алгоритмом сжатия JPEG. Многие не знают, что JPEG — это не столько формат, сколько алгоритм. Большинство JPEG-изображений, которые вы видите, представлены в формате JFIF (JPEG File Interchange Format), внутри которого применяется алгоритм сжатия JPEG. К концу статьи вы будете гораздо лучше понимать, как этот алгоритм сжимает данные и как написать код распаковки на Python. Мы не будем рассматривать все нюансы формата JPEG (например, прогрессивное сканирование), а поговорим только о базовых возможностях формата, пока будем писать свой декодер.
      Читать дальше →
    • Анализ безопасности роутера Smart box

      Здравствуй, дорогой читатель!

      Сегодня мы начнем с того, что в один момент я решил вместо того, чтобы тренироваться на уязвимых машинах, протестировать свой собственный Wi-Fi роутер на уязвимости, который я получил еще в 2015 году. Тогда был очень популярный тариф у Билайна, когда вместе с подключением интернета, в аренду за 1 рубль шел и сам Wi-Fi роутер, который я и решил протестировать.

      Роутер Smart Box, последняя версия прошивки — 2.0.38 (Релиз прошивки 2017 года), с тех пор, обновлений не поступало.

      image
      Читать дальше →
    • Терраформинг: как создавался Doom 64

      • Translation
      image

      Глаза Джона Ромеро следили за инженером, раскладывавшим свой груз на бильярдном столе. Посетитель прибыл в id Software из Sega, а на стол он положил материнскую плату, пока находящуюся на стадии прототипа. После завершения проекта она должна была стать основой 32X — дополнительного оборудования Sega, которое превратит консоль Genesis из 16-битного динозавра в 32-битного гиганта.

      Ромеро и остальные сотрудники id Software собрались вокруг, а инженер установил на сукно монитор, подключил к нему прототип и включил питание. Экран заполнился кодом. Часть его Ромеро узнал. Узнал его и Джон Кармак, вместе с Ромеро основавший id. Это был код того, что должно стать портом Doom. На тот момент работа ещё не завершилась. Чтобы перенести код на свою консоль, Sega нужна была помощь в модифицировании исходников Doom так, чтобы он мог запускаться на 32X.

      «Кармак выудил из него максимально подробную информацию о процессоре » — рассказывает Ромеро — «А затем дал инженеру рекомендации, как ускорить работу блиттера. Вот так Sega удалось создать версию для 32X». (Блиттер — это устройство для изменения и быстрого перемещения данных в памяти.)
      Читать дальше →
      • +20
      • 9.4k
      • 1
    • Клон Doom в 13 килобайтах JavaScript

      • Translation
      В прошлом году я участвовал в соревнованиях JS13K 2019, на которых людям предлагается разрабатывать игры в менее чем 13 КБ кода на JavaScript. Я участвовал с клоном Doom, который назвал… «Ещё один клон Doom» (Yet Another Doom Clone).


      Поиграть в него можно здесь. Исходный код выложен сюда.

      Зачем создавать клон Doom?


      Зачем писать FPS на JavaScript всего в 13 КБ (с учётом сжатия)? По нескольким причинам. Но лучше всего на этот вопрос отвечает раздел FAQ соревнований JS13K «Можно ли использовать WebGL?»:

      «Да, но может быть сложно уместить его в 13 килобайта, если вы планируете писать FPS».

      Кроме того, в то время я как раз написал 3D-рендерер и хотел поработать над ним ещё. К тому же мне нравится создавать сильно сжатый код. (Например, много лет назад я создал язык и написал компилятор для нового языка, предназначенный специально для использования в код-гольфинге.)

      Именно поэтому я выбрал FPS. Остаётся вопрос: «Почему Doom?» На него ответить проще: если вы хотите написать FPS, и чтобы он при этом был небольшим, то Doom — практически самый минималистичный вариант.
      Читать дальше →
    • Вид космоса из субсветовой ракеты. Фото субсветового объекта. Вывод аберрации света без преобразований Лоренца

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

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

        Современный мир дает возможность многим работать из дома. Особенно сейчас, в «короновирусную» эпоху еще больше людей работают удаленно и перестали ездить на работу. Это значит, что в домашней обстановке в основном сидят, долго сидят и смотрят в монитор. Справедливости ради, надо сказать, что и офисная жизнь не располагает к подвижности. Про вред долгого смотрения в монитор я пока не готова рассказать, а вот долгое сидение точно приводит к проблемам с ЖКТ (желудочно-кишечный тракт). Плюс многие не пьют достаточное количество воды, не едят клетчатку, стрессуют, а это все приводит к некоторым проблемам, которые могут длиться годами. Рано или поздно многие приходят к необходимости сделать колоноскопию. Если хотите узнать про это деликатное исследование подробнее – добро пожаловать под кат. В статье есть описание многих физиологических тем, которых принято стесняться, кому-то может быть просто неприятно, также есть немного ужастиков, так что впечатлительным особам лучше воздержаться от чтения.
        Читать дальше →
      • Реверс-инжиниринг микросхем по фото

        • Translation
        Тем, кто любит гикпорн-фотографии от BarsMonster и его товарищей по цеху, наверняка интересно научиться расшифровывать логическую схему по её фотографии. Например, что делает вот этот кусочек Z80?


        Яркие вертикальные полосы — это металлические проводники; горизонтальные полосы, от которых видны только тёмные границы — это проводники из поликремния; область неправильной формы с ярко-чёрной границей — это легированная часть кремниевой подложки; желтоватые круги — это соединения между слоями микросхемы.

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



        По традиции, такие транзисторы называют MOSFET («металл-оксид-полупроводник»), даже когда затвор не металлический, а поликремниевый. Автор вполушутку предположил, что ни один производитель поликремниевых транзисторов не хотел называть их POS.

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

        Вот та же самая фотография с размеченными транзисторами и проводниками: (я добавил в авторскую иллюстрацию обозначения соединений между слоями)

        Читать дальше →
      • Программист создал игру в заголовке вкладки браузера



          Программист из Австрии Янник Зиберт (Jannik Siebert) создал простую браузерную игру TitleRun, которая умещается в заголовке вкладки браузера. По механике это аналог игры T-Rex Runner с бегущим динозавриком, которая появляется в браузерах на базе Chromium, когда нет интернета. Только в TitleRun вся игровая вселенная уменьшена до одной строки, а вместо динозавра и препятствий — блочные символы из юникода. Управление прыжком героя в игре осуществляется клавишами пробел или Page Up. В текущей версии (1.0.0) скорость игры TitleRun менять нельзя. Рекомендуемые браузеры для игры — Chrome или Firefox.
          Читать дальше →
        • Система DeepFace дорисовывает лица по простым эскизам

            Команда исследователей из Китайской академии наук и Городского университета Гонконга представила алгоритм DeepFace, который может создавать реалистичные человеческие портреты из простых набросков.

            Читать дальше →
          • Как я использую AirDrop вместо Тиндера



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

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

              Под катом я расскажу за всю хурму.
              Читать дальше →
            • Советы по выбору усилителя сигнала сотовой связи 2G/3G/4G/5G

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


                Существует два основных варианта усиления сотовой связи:


                1. С помощью антенны, модема и роутера.
                2. С помощью активного усилителя (репитера).

                Первый вариант для усиления интернета 3G/4G/5G, не усиливает голосовую связь в обычном для нас формате (но можно пользоваться звонками через мессенджеры: WhatsApp, Viber, Skype, Telegram).


                Второй вариант универсальный – усиливает интернет и голосовую связь, но имеет ряд ограничений (о ограничениях ниже).


                Читать дальше →
              • Тёмная сторона работы в Яндекс.Маркете

                  Я уволился из Яндекс.Маркета, отработав там почти 15 месяцев. Сегодня я хочу поделиться своим взглядом на работу в Яндекс.Маркете и рассказать о причинах ухода.


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


                  Я ни в коем случае не претендую на объективность, это моё личное мнение.


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


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


                  Читать дальше →
                • 60+ игр для гиков

                  Приветствую всех брутальных Хабрачан и чувственных Хабрачаночек!

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

                  Что же, как я и обещал — подборка 60+ игр для гиков перед вами. Сразу хочу оговорить один момент. Все мы гики. У кого-то есть любимые игры, которые могли сюда не попасть. Напишите о них в комментариях. Все ваши комментарии очень ценны и добавляют интереса в наш диалог. Часть из игр моей подборки непосредственно про IT и вокруг нас с вами, часть — не про IT, но гику эти игры наверняка понравятся. Часть игр чему-то учат, часть — просто веселят и развлекают.

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

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

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


                  Читать дальше →
                • SwiftUI по полочкам: Анимация. Часть 1

                  • Tutorial
                  image

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

                  image

                  Я с интересом изучил их код, но испытал некоторое разочарование. Нет, не в том смысле, что они что-то сделали неправильно, вовсе нет. Просто я не узнал из их кода практически ничего нового. Их реализация, это скорее про Combine, нежели про анимацию. И я решил построить свой лунопарк написать свою статью об анимации в SwiftUI, реализовав примерно тот же концепт, но используя на 100% возможности встроенной анимации, даже если это не совсем эффективно. Изучать — так до конца. Экспериментировать — так с огоньком:)

                  Вот что получилось у меня:


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

                  В этой статье же, я расскажу об основах, без понимания которых можно легко запутаться в более сложных примерах. Многое из того, о чем я буду говорить, в том или ином виде уже было рассказано в англоязычных статьях например этой серии (1, 2, 3, 4). Я же, сосредоточился не столько на перечислении способов работы, сколько на описании того, как именно это работает. И как всегда, я много экспериментировал, так что самыми интересными результатами спешу поделиться.

                  warning: под катом много картинок и gif-анимаций.
                  Читать дальше →
                  • +12
                  • 2.4k
                  • 9
                • Как живые: наш опыт редактирования старых фотографий

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

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

                    Хотим поделиться со всеми, кому интересно это ремесло, теми программами, которые мы открыли, а также некоторыми способами их комбинирования в правильном порядке. Речь пойдет об онлайн-приложении Remini, сервисе «Компьютерное зрение от почты mail.ru», приложении Google Snapseed, а также о ряде других штуковин. 

                    Читать дальше →
                  • Экспресс-курс создания масок для Instagram

                      Не так давно на одном из наших проектов накануне релиза появилось несколько свободных дней (потому что Apple review team не могла понять, что для тестирования приложения с функцией чата недостаточно одного телефона/аккаунта. Хинт: не ленитесь снимать поясняющие видео — проверено, помогает!).

                      Как раз в это же время я готовил корпоративные поздравительные маски для Instagram по случаю гендерных праздников (23 февраля и 8 марта) и решил, что дополнительная маска будет не лишней и для проекта нашего заказчика.


                      Читать дальше →
                      • +11
                      • 2.7k
                      • 1