Category: it

Category was added automatically. Read all entries about "it".

Улыбка

Сетевой диск сделай-сам

Чего только народ не строит на процессорах MIPS. Вот, к примеру, самодельное сетевое хранилище на шесть жёстких дисков. Процессор MediaTek MT7621A (MIPS 1004Kc), два двухпоточных ядра до 1.2ГГц под управлением Debian Linux. Документация и схемы выложены на Гитхаб.

Cross-post from: http://vak.dreamwidth.org/448964.html

Улыбка

Хранение паролей

Я наконец нашёл приемлемый способ хранения интернетовских паролей: утилита pass. Пароли шифруются посредством GPG и хранятся на закрытом GIT-сервере. В базовом виде pass это утилита командной строки. Есть GUI для Linux, MacOS, Windows, а также приложение для Android. Вариант для iOS пока в разработке.

Cross-post from: http://vak.dreamwidth.org/447573.html

Улыбка

Куда мигрируют программисты

В таблице для каждой пары языков X и Y показана активность обсуждения темы "Почему мы мигрировали с языка X на язык Y". Что интересно - побеждает язык Go (16.41%). На втором месте Си (14.26%).



Cross-post from: http://vak.dreamwidth.org/447155.html

Улыбка

The Go programming language

Тридцать лет назад у меня родился сын, и я проводил много времени, прогуливаясь с детской коляской по живописным окрестностям славного города Долгопрудного. Под мышкой я держал невероятную ценность, доставшуюся мне по удачному стечению обстоятельств: книжку "Язык программирования Си" Кернигана/Ритчи. Присаживался на лавочки и тщательно штудировал мудрость далёкий американских инженеров. Это было еще первое издание, аж 1985 года. Пытался найти обложку в сети - не смог.

Сейчас получаю такое же интеллектуальное удовольствие от книжки "The Go Programming Language" Кернигана/Донована. Великое дело сделали товарищи: сваяли язык 21 века. Не зря он сейчас вытесняет Джаву и прочих из серьёзных проектов.



Cross-post from: http://vak.dreamwidth.org/441453.html

Улыбка

Однопортовые асинхронные компоненты

В мире асинхронной логики всё не так. Если для традиционной логики основные кубики это триггеры, защёлки, мультиплексоры и т.п., то здесь набор элементарных компонентов совсем другой. Теоретическое обоснование дал математик Кис ван Беркель в книжке "Handshake circuits: an asynchronous architecture for VLSI programming" (есть ранний вариант в виде PDF). Более практичный список асинхронных примитивов можно найти в главе 13 "The Breeze Components" документации по компилятору Balsa.

Принципы построения асинхронных компонентов:
1. Каждый компонент имеет один или несколько портов.
2. Каждый порт состоит из двух направлений: передача и приём.
3. Направление передачи может состоять из нескольких проводов, при этом приём имеет всего один провод. Такой порт называется передающим (output).
4. Направление приёма может состоять из нескольких проводов, при этом передача имеет всего один провод. Такой порт называется принимающим (input).
5. Направление приёма и направление передачи могут иметь по одному проводу. Такой порт называется синхронизирующим (sync или nonput).
6. Порт называется ведущим (master), если сначала становится активным (ненулевым) передающее направление, и затем ожидается ответ на приёмном направлении.
7. Порт называется ведомым (slave), если сначала ожидается ненулевой сигнал на приёмном направлении, и затем формируется ответ на передающем направлении.
8. Компонент обязан подчиняться принципу самоинициализации: когда все входные сигналы всех портов равны нулю (неактивны), все выходные сигналы также обязаны перейти в нулевое состояние.

Таким образом, возможны шесть типов портов: master_output, master_input, slave_output, slave_input, sync_output и sync_input. Используя конструцию interface языка SystemVerilog из предыдущего поста эти шесть типов можно определить следующим образом:
Collapse )


Cross-post from: http://vak.dreamwidth.org/438026.html

Улыбка

Разница между АйТи и программистом

Часто наблюдаю, как профессию программиста называют "IT-специалистом", обычно в рекламе разных образовательных услуг в странах бывшего СССР. Тут есть определённая ловушка. Между этими специальностями есть две большие разницы, как говорят в Одессе. Вот данные с сайта glassdoor.com:





Для IT-специалиста: количество вакансий 88250, средняя зарплата $69k, в кремниевой долине $77k.

Для программиста: 181173 вакансий, средняя зарплата $95k, в долине $110k.

Если вы укажете в резюме, что вы IT-специалист, вы не пройдёте на вакансию программиста. Не ошибитесь.

Cross-post from: http://vak.dreamwidth.org/434895.html

Улыбка

Фортран для БЭСМ-6 это сила

Сижу в центре кремниевой долины и программирую на фортране для БЭСМ-6. На дворе 2016 год, а вот поди ж ты, возникла настоятельная потребность. Нужно извлечь с диска некий бинарный образ и преобразовать в текстовый HEX файл. Надо сказать, Фортран-ГДР отличный инструмент для подобных задач. Мониторная система Дубна, симулятор ОС Диспак, книжки Мазного и Салтыкова-Макаренко под рукой. Решение выглядит так: hexdump.b6

История вопроса следующая. Есть процессор микро-БЭСМ, и для него есть тест системы команд. Тест написан на языке ассемблера, а сам ассемблер имеется в исходных текстах для БЭСМ-6. К ассебмлеру также прилагается линкер. Всё это запускается под мониторной системой "Дубна" на симуляторе ОС Диспак. На самом деле написана эта кросс-система была под ОС Дубна, и пользуется некоторыми её особенностями, поэтому пришлось на скорую руку привинтить несколько дубненских экстракодов к симулятору Диспака. Но это всё мелочи. В конце концов ассемблер с линкером заработали и на диске получился двоичный образ теста, размером около 24 килобайт. Как его извлечь оттуда? Тем более, что хранится он под управлением некой "библиотеки виртуальной памяти", и формат хранения не описан. Но есть API, набор фортрановских вызовов. Не вопрос: пишем програмулину и получаем нужный результат. Теперь можно смело запускать тест на симуляторе Verilog.
Улыбка

Архитектура микро-БЭСМ с точки зрения программиста

Набросал краткое описание архитектуры процессора микро-БЭСМ в режиме математика. Коды команд взяты непосредственно из таблицы микрокода, так что в них я уверен, а вот перечень команд надо будет сравнить с таблицей.