• Родной Sinclair ZX Spectrum

      Не удержался я и купил таки на Ebay'е за 50 фунтов (2500р) ЕГО — родной Sinclair ZX Spectrum, модель с 48КБ ОЗУ. Когда-то у меня он был, но в отечественном исполнении «Ленинград» по схеме Зонова.

      (фото из Википедии)



      А тут — родной!
      Читать дальше →
    • Энигма, Колоссус или история Британской криптографии в Блетчли-парке

        Сегодня ездил в Bletchley Park, благо час на машине от дома. Это место было объектом максимальной секретности в годы Второй Мировой. На этой военном базе, например, Алан Тьюринг взламывал коды Энигмы, и тут был построен Колоссус, ламповый компьютер, использовавшийся для взлома шифров.

        Сейчас тут музей криптографии и шифрования. Недавно Колоссус был восстановлен, и можно посмотреть его в действии. У меня была цель посмотреть Колоссус и Энигму.
        Читать дальше →
      • Микрокомпьютер GMC-4

          По наводке Сергея Вакуленко, я купил GMC-4. Все-таки в подобных устройствах есть какой-то неповторимый шарм. Заказал в забавном японском магазине гаджетов Japan Trend Shop.



          GMC-4 — это четырех битный микро-компьютер. Характеристики компьютера:
          • размер слова 4 бита
          • восемь регистров, один регистр-флаг
          • 15 однословных и 16 двухсловных машинных инструкций
          • память программ 80 слов
          • память данных 16 слов
          • ПЗУ c набором из 7 игр: орган, угадай мелодию, дави моль, теннис, таймер, музыкальный плеер, генератор морзе
          • семь светодиодов — порт вывода шины адреса
          • семисегментный индикатор — порт вывода шины данных
          • 20-кнопочная клавиатура — порт ввода
          • динамик для вывода звука
          • кнопка сброса
          • питание от 3-х батареек AA

          Читать дальше →
        • Мини-компьютеры: MK802, CuBox, Raspberry PI

            Тема микрокомпьютеров однозначно пошла на взлет. Про сборку Maximite я уже писал.

            За последнее время удалось пощупать еще несколько мини машин, правда несколько иного класса, чем Maximite, построенных на ARMах.
            Читать дальше →
          • Формат 32nd (thirty seconds)

              В работе с трейдинговыми системами наткнулся на необычный формат представления чисел, представляющих котировки ценных бумаг, в частности для государственных облигаций правительства США. Например, цена, представленная как 100-31 далеко не означает 100 долларов и 31 цент, или 100-127 вообще имеет мало смысла, так как в одном долларе всего 100 центов, а не 1000, и нет необходимости резервировать под дробную часть три знака после запятой.
              Далее...
            • Платежный терминал OMNI-395 изнутри

                Мое реальное знакомство с «недо» PC случилось (случайно) в начале 2000-х, когда я устроился в отдел процессинга пластиковых карточек одного банка. А конкретнее, в разработку софта для платежных терминалов, POS-ов. ПОС для приема платежей пластиковыми карточками — это обычно законченный девайс, мини- или микро- компьютер, с экраном, клавиатурой, с читалкой магнитной полосы с карты, часто с принтером, а сейчас еще и ридером для чиповых карт.

                Я начал с OMNI-395. Построен на Zilog Z180, имеет до 1М non-volatile памяти для хранения данных (журналов операций, например), AT-модем на 2400 (даже с какой-то коррекцией), двенадцативольтовые порты RS232 для PIN-клавиатуры, принтера и просто порт общего назначения (мы его использовали для подключения к мультипортовому шлюзу в TCP/IP) (увы, не все порты имеют полный набор линий RS232, что вынуждает изобретать программные велосипеды), ну и LCD экран.
                Читать дальше →
              • Цветной микрокомпьютер Maximite на базе PIC32

                  На сегодняшний момент проект Maximite является моим любимым в области рукодельных микрокомпьютеров. Собрав его оригинальный черно-белый вариант, я после запустил на нем RetroBSD, затем даже свой эмулятор Радио-86РК. Что подкупает в проекте, так это законченность. Конструктивно Maximite простой, PIC32 делает почти всю работу. Но Maximite — это не просто идея в виде схемы. Для Maximite разработана плата, корпус и, собственно, прошивка — MMBasic, продвинутый диалект Бейсика, дающий доступ ко всей периферии, а она у Maximite внушительна. В небольшом интервью автор и разработчик Maximite, Джеф Грэхем, рассказал, почему ему фактически пришлось довести проект для столь законченного вида.

                  Недавно автор выпустил новую, цветную версию, и данный обзор посвящен именно ей.
                  Читать дальше →
                • Пример использование Splunk для анализа логов

                    Splunk — это система хранения и анализа логов. В двух словах принцип работы можно описать так: есть сервер Splunk, который хранит, индексирует и позволяет анализировать логи, и есть рабочие машины (сервера), которые эти логи создают и передают на сервер Splunk. Сервер Splunk в свою очередь может быть кластером из нескольких физических машин, между которыми распределяется хранение информации, и которые используются для ее обработки по технологии MapReduce. Способов передавать логи с рабочих машин очень много: через специальную программу forwarder, которая умеет быстро и эффективно отсылать изменения логов на сервер, через технологии типа NFS/SMB, или SNMP, можно самостоятельно отсылать данные в Splunk по TCP/IP (например, вместо того, чтобы писать в файл). Под Windows Splunk умеет брать данные из Windows Events, Performance Counters или Реестра.
                    Читать дальше →
                  • Мини-компьютер на базе микроконтроллера Parallax Propeller

                      Микроконтроллер фирмы Parallax под названием Propeller, в сравнении с «классикой» жанра типа PIC или AVR занимает несколько странную нишу. Про первые два можно сказать, что это архитектуры общего назначения. Создатели же Пропеллера подошли к вопросу «с фланга».
                      Читать дальше →
                    • Эмулятор Радио-86РК на JavaScript / Перезагрузка



                        В 2009 я написал первую версию эмулятора Радио-86РК на JavaScript. Тогда мне очень хотелось проверить саму идею подобного эмулятора, поэтому непосредственно реализация вышла несколько сумбурной, хотя и работала в итоге. Тогда я тестировал эмуляцию процессора Intel 8080 в основном визуально, на играх. Поэтому какой-либо рефакторинг кода был мучителен, так как было элементарно что-то сломать.

                        Недавно я запустил эмулятор РК на микрокомпьютере Maximite. В процессе работы эмуляция ядра Intel 8080 выделилась в отдельный проект i8080-core, в котором также появилась система тестирования. Тесты, особенно, 8080 CPU Execercier, позволяют весьма тщательно проверить качество эмуляции, особенно на предмет недокументированного поведения.

                        И тут пришла идея вернуться к эмулятору на JavaScript и перетестировать его. В итоге я фактически переписал эмулятор с нуля, разделив его на ядро процессора i8080-js, и, собственно, эмулятор РК.
                        Читать дальше →
                      • US Visa: Мое первое приложение для iPhone

                          Почему, собственно?


                          Имея Mac и iPhone, не попытаться написать мобильное приложение? Как-то неправильно. Благо тут подвернулась задачка, которая прекрасно легла в тему, как весьма полезная и в то же время не очень сложная в реализации. Итак, я погрузился в Objective-C и Cocoa.
                          Читать дальше →
                        • Уровни для Сокобана

                            Во времена XTшек и ДОС был у меня вариант Сокобана, реализованный в виде махонького бинаря, размером менее десяти килобайт. Называлось это чудо pusher.exe и выглядело вот так:



                            Это был простой уровень, но как насчет вот такого?
                            Читать дальше →
                          • Интервью с Чарльзом Уэзереллом, автором книги «Этюды для программистов»

                              Не секрет, что не одно поколение программистов зачитало до дыр книгу «Этюды для программистов» Чарльза Уэзерелла, оригинал которой на английском вышел аж в 1978.



                              Книга содержит 27 “этюдов”. Каждый этюд – это законченная содержательная задача для обучающихся программированию. Удивительно, книге более 30 лет, но любой из этюдов может быть до сих пор использован по назначению. Сам, будучи фанатом книги, до сих пор храню родной бумажный вариант русского издания, а относительно недавно таки приобрел оригинал на английском.

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

                              Волею судеб, недавно у меня появилась возможность связаться с Чарльзом и взять у него интервью.
                              Читать дальше →
                            • Радио-86РК на железе Maximite

                                Сначала было слово, затем оригинальный Радио-86РК, который собрал старший брат вместо или во время диплома. Это был хардкор в виде трех разных питаний, вечно горевших микросхем памяти РУ3, загрузки бейсика с кассет (желательно, хромовых) и т.д.

                                Потом был эмулятор под ДОС, потом под Windows, потом на JavaScript'е.

                                Но мы возвращаемся к истокам, к железу. Итак, четвертая реинкарнация Радио-86РК в новом, на этот раз железом теле.
                                Читать дальше →
                              • Онлайновый учебный курс «Algorithms: Design and Analysis, Part I»

                                  Закончил я онлайновый курс Algorithms: Design and Analysis, Part I на coursera.org

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

                                  Вкратце.
                                  Читать дальше →
                                • RetroBSD on Maximite

                                    Я уже писал, как собирал Maximite.

                                    Вчера как-то был настрой, и решил я поставить туда RetroBSD.

                                    RetroBSD — это настоящий UNIX, являющийся наследником 2.11BSD и предназначенный для встраиваемых систем с фиксированной структурой памяти. На текущий момент работает на микроконтроллере Microchip PIC32 с 128 килобайтами памяти и 512 килобайтами Flash. Данный процессор позволяет разделять адресное пространство ядра и пользовательских процессов.

                                    RetroBSD обеспечивает защиту памяти ядра, используя аппаратные возможности микропроцессора, полноценную вытесняющую многозадачность, POSIX API (fork, exec, wait4 и т.д.). Можно писать программы прямо на устройстве, так как есть компилятор С. Ядро системы прошивается в кристалл, а файловая система загружается с SD-карты.

                                    RetroBSD поддерживает не только аппаратуру Maximite, но и ряд альтернативных устройств на базе PIC32 (chipKIT Max32, Sparkfun UBW32, Microchip Explorer 16, Microchip PIC32 USB/Ethernet Starter Kit, Olimex Duinomite, Duinomite-Mini и Duinomite-Mega, eflightworks).

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

                                    Торжественный момент включения, и…
                                    Читать дальше →
                                    • +39
                                    • 2.5k
                                    • 5
                                  • Многопоточный QuickSort на С++ 2011

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

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

                                      Вот мой наивный велосипед:
                                      Читать дальше →
                                    • Взлом программы однокомандного процессора

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

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

                                        Итак, имеется модель некоторого виртуального процессора, выполняющего только одну логическую операцию — Стрелку Пирса.
                                        Читать дальше →