Перейти к содержимому

Fingercomp's Playground

  • записи
    92
  • комментарий
    371
  • просмотра
    221 614

Об этом блоге

Gnawing the way out

Записи в этом блоге

 

Что такое IRC

Сегодня нашему каналу в IRC исполняется один годик, поэтому пришло время рассказать, что это, зачем это и как к нему подключиться.   Начнём с понятий. IRC — это протокол обмена мгновенными сообщениями через интернет. Сделанный в далёком 1988 году, и по сей день он всё ещё юзается из-за удобности, простого масштабирования, простоты и доступности буквально отовсюду, где есть подключение к интернету — вплоть до холодильников. В общении участвуют клиент и сервер. Клиенты подключаются к серверу и о

Fingercomp

Fingercomp

 

Что изменилось в Computronics с прошлых обзоров

Вкратце проедемся про изменениям с невероятно старой версии 1.5.5 до самой новой, 1.6.3.   1.5.6 / 2015-07-24 Большинство блоков из мода можно покрасить, тыкнув по ним красителем. Интеграция с модом Flamingo (самая нужная фича, конечно): через компы можно заставлять фламинго качаться. Интеграция с Armourer's Workshop. Улучшен улучшенный шифратор. Ключи быстрее генерируются. 1.5.7 / 2015-09-12 Разноцветный апгрейд добавлен, который делает роботов разноцветными. Можно вызвать compo

Fingercomp

Fingercomp

Что делать, если вы провалились под пол

hash-cc.ru Что делать, если вы провалились под пол

Первым делом, сохраняйте панику. Так интереснее. У нас есть группа в ВК, которая, в отличие от параллельных — тупиковых веток эволюции — жива и даёт продукт в виде постов. Очень интересных. Не любите ВК? Я тоже. Имеем мы канал в IRC: зайти можно даже с телнета. Но лучше с помощью какого-то клиента: HexChat, WeeChat, Quassel. Контактные данные для них: Сервер: irc.esper.net Порт: 6697 TLSv1.2 Канал: #cc.ru Впрочем, присутствует и веб-клиент для о

Fingercomp

Fingercomp

 

Ставим эмулятор OpenComputers

Наткнулся на интересный эмулятор: https://git.io/vOJaq Написан на Lua. Эмулирует OpenComputers. В этой записи небольшой я расскажу немного о том, как варить пельмени использовать этот эмулятор. Использовать его так же, как и OpenOS! Установка: Linux git clone https://github.com/gamax92/OCEmu.git. Копируем содержимое репозитория. Устанавливаем зависимости: Lua 5.2 SDL2 Далее нас потребуется версионированный luarocks. Т.е., под Lua 5.2 либы в одной директории, под 5.3 — в другой,

Fingercomp

Fingercomp

 

Разрешение зависимостей в пакетном менеджере с версиями

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

Fingercomp

Fingercomp

 

Разрешение зависимостей в пакетном менеджере

Раз уж я тут пишу понемногу свой крутой пакетный манагёр, расскажу о пакетных менеджерах немного.   Пакетный менеджер — штука сложная. Потому что, хотя задача у него, в общем-то, одна — менеджировать пакеты — сюда включается и установка, и удаление, и обновление, и, вообще, много всякого. Но а так как пока сам не напишешь, ПМ не поймёшь, здесь расскажу об установке пакетов и зависимостей с кодом.   Ещё немного предисловий, о зависимостях. Это ключевая фича ПМ: вы-то прогу скопировать/разархи

Fingercomp

Fingercomp

 

Прокачка стектрейса

Эта беспрецедентно короткая запись имеет начало своих ног в запросе @Laine_prikol, как-то спросивший в нашей ирке, можно ли стэктрейс сделать не таким тупым. Меня это заинтересовало, и спустя часик выросла очень короткая программка, которая рисует вот такие стэктрейсы: # 0: C field function yield(...) (defined in [C]) # 1: Lua local function f(f=function: 0x55bea5785ef0, a=42, b=24, ...):79 (defined in trace.lua at L78) # 2: Lua local function outer(f=function: 0x55bea608c900, g=function: 0x

Fingercomp

Fingercomp

 

Перевод постов про звуковую карту (Guide to the Sound Card, English version)

tl;dr: https://gist.github.com/Fingercomp/0773bb0714296c0cb00d70a696d39bb3   Понятия не имею, зачем я сюда об этом пишу, ведь если вы можете этот текст понять, и в оригинале можно прочитать.   В любом случае, получил намёк, что три моих статейки про звуковую карту удовлетворительны в какой-то степени, но они на русском. Видите ли, ситуация с документацией спустя полгода после первого поста не улучшилась никак, так что единственный туториал для неё недоступен для понимания тех, кто не говорит

Fingercomp

Fingercomp

 

Парсер CSV

CSV идёт от Comma-Separated Values, что, в общем, довольно точно описывает этот формат хранения таблиц. Вот типичная таблица: aaa,bbb,ccc,dddeee,fff,ggg,hhh Как видно, строки отделяются \n, а ячейки ­— запятой. Последняя строка может иметь или не иметь \n.   Формат очень простой. Описывается он в RFC 4180. Там всего 7 пунктов. Ну а раз простой, давайте соорудим парсер.   Вот у нас есть строка aaa,bbb,ccc,ddd\neee,fff,ggg,hhh. Задача: сделать из неё [ [ "aaa", "bbb", "ccc", "ddd" ], [ "ee

Fingercomp

Fingercomp

 

Пара трюков OpenComputers

Здесь опишу такие штучки, которые могут потребоваться продвинутым OC-программистам (да и просто Луа-программистам).   Busy Idle С помощью этого трюка можно делать довольно точные задержки, причём с длительностью менее тика. local lastSleep = os.clock()local function sleep(t) local begin = os.clock() while os.clock() - begin < t do if lastSleep - os.clock() >= 3.5 then -- В конфигурации дефолтное значение = 5 секунд, ставим на 1.5 меньше для безопасности. os.sleep(0.05) -- Выну

Fingercomp

Fingercomp

 

Палитры OpenComputers

Немногие знают, как работают палитры в OpenComputers. Расскажу здесь, как избавиться от необходимости прописывать гектары цветов в палитре, покажу, как упаковываются цвета в OpenComputers и дам пару алгоритмов для работы с индексами.   Сразу условимся, что индексы палитр у нас будут начинаться с нуля.   На каждой из трёх уровней видеокарт и мониторов своя поддерживаемая палитра цветов. Будем двигаться снизу вверх.   Первый уровень Палитра состоит из двух цветов: чёрного и заданного в конфи

Fingercomp

Fingercomp

 

Обновление OpenComputers до версии 1.7.3

Эм, здрассьте. Предлагаю поглядеть на новое обновление мода. Очень толстого обновления. Отрегулировали частоту выполнения хука, который шлёт этот ненавистный "too long without yielding", так что теперь и скорость исполнения кода должна гораздо возрасти, и с ошибкой этой код падать реже. Мы проверяли: некая гуи-либа с 1.6 fps до 2.5 fps только благодаря этому работать стала. Оптимизировали производительность ещё и записи на диск. Пошустрее будет — обещают, что в 5–500 раз. С

Fingercomp

Fingercomp

 

Обновление OpenComputers 1.7.2

Он вышел раньше, чем я предполагал — ниже список нового. Сила овец и оцелотов в их пушистости. Теперь пушистость можно приложить к делу и питать компы — с помощью ковровых конденсаторов. От обычных конденсаторов они толком не отличаются, но могут генерировать энергию, если по ним ходят минимум 2 пушистых животных: овцы или оцелоты, которые генерируют больше энергии. Все новые процессоры, которые будут скрафчены, будут с Lua 5.3 по умолчанию. Сменить можно так же — шифт-пкм. К беспроводной

Fingercomp

Fingercomp

 

Обновление OpenComputers 1.7.1

Багофиксы, в основном только они. Вот из того, что добавилось: У планшетов можно получать полноценное направление взгляда игрока. Количество максимальных частей пакета добавлено в информацию об устройстве (та, что computer.getDeviceInfo(). [1.10.2] Интеграция с ExtraCells и Mekanism. [1.12.2] Интеграция с ComputerCraft. Остальное: Изменили рецепт алмазных кусков по умолчанию. Пофиксили область видимости датчика движения. Планшетам разрешили отрубать экран. Дроны адекватно за

Fingercomp

Fingercomp

История одного дронодома

анналы кк.ру История одного дронодома

Многие игроки здесь видели или хотя бы слышали про огромный дронодом, который построил @Asior в былые времена на сервере RoboCraft. С тем чтобы прояснить происхождение этой хаты и оставить о ней заметку в этом клубе, специально для «Новостей подполья» @Fingercomp обратился к создателю постройки и попросил рассказать про неё. Редакция представляет обработанную версию истории.   История начинается в начале мая 2016 года, когда запустился сервер RoboCraft, на который сразу же хлынули толп

Fingercomp

Fingercomp

Дискорд

hash-cc.ru Дискорд

Всем ку! Наконец-то форум ожил и соответственно выползли мы из подполья 😃 Приглашаю всех желающих и участников форума в наш канал в Discord! Инвайт - ссылка в наш канал в Discord : https://discord.gg/tpjbgjG Заходите, общайтесь. Там (иногда) бывает мой бот, который мост между каналом в IRC и Discord, так что иногда появляется возможность переписываться с ирковчанами 😃

MeXaN1cK

MeXaN1cK

 

Автокрафт OpenComputers

Первая публичная реализация автокрафта на OpenComputers. Исполнительным элементом является робот, командующим же — компьютер. Хранилищем предметов здесь выступает МЭ-сеть, с интерфейсом в роли передатчика предметов в обе стороны. Для начала использования автокрафта Вам потребуется: Компьютер. Это главная часть системы, хранящая базу данных рецептов и экспортирующая предметы из дерева крафта в нужном порядке. Требования: Графическая карта второго уровня. Беспроводная сетевая карта. Процесс

Fingercomp

Fingercomp

 

Автозапуск программ

Если до версии 1.6 все использовали файл /autorun.lua и были довольны, то теперь ситуация несколько изменилась. Поэтому я опишу все варианты автозапуска программ в этой небольшой заметке.   С версии OpenOS 1.6 файл autorun.lua больше не запускается на rootfs (то есть на файловой системе работающей операционной системы). Вот все пять способов, которые можно использовать для автозапуска программ. Модифицировать /init.lua. Это самый плохой и ужасный вариант из всех. Во-первых, программа будет

Fingercomp

Fingercomp

Upong

Upong

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

Totoro

Totoro

 

Sound Card / спектр, преобразование Фурье, PCM и WAV

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

Fingercomp

Fingercomp

 

Sound Card / как сгенерировать простой звук

Перед тем, как я начну, хочу сразу обратиться к забугорным ребятам, читающим эту запись.   Hey! If you are reading this, please tell Vexatos to document the sound card. The in-game manual page is a meaningless piece of text that explains nothing. Documentation is written to help others to get an idea of how something works. The sound card is a complex thing that definitely needs a how-to guide to be used in programs. So if he wants the sound card to be used in programs, he should write the pro

Fingercomp

Fingercomp

 

Sound card / звуковые волны, модуляция

Продолжаю рассказывать про Computronics и, в частности, про офигенную звуковую карточку из этого мода. На очереди модуляция: частотная и амплитудная. Помимо этого восполняю долг по основам.   Юзать будем мою прогу synth, которую я недавно зарелизил. Она здесь невероятно поможет.   Звуковая волна Вы же знаете, как выглядит звуковая волна?     Вот, например, синусоида. Как видно, здесь есть некоторый фрагмент, который повторяется несколько раз. Частота показывает, сколько раз в сек

Fingercomp

Fingercomp

 

OpenOS. Потоки

Потоки — очень полезные штуки, позволяющие исполнять несколько кусков кода. Раньше для их использования приходилось скачивать отдельную библиотеку, работающую через костыли. Начиная с OpenOS 1.6.4, они есть в стандартной поставке ОС — в модуле thread. Давайте посмотрим, из чего она состоит — и в чём её преимущество перед любыми другим библиотеками.   Начнём с версий. OpenOS 1.6.4 — версия, включённая в OpenComputers 1.7.0. Если не хотите возиться с обновлением системы вручную, требуется иметь

Fingercomp

Fingercomp

 

OpenOS. От дуба до Мастера. Часть четвёртая. [||·]

Продолжаем беседу об операционной системе Bolge OpenOS. В этой записи речь пойдёт про те самые оставшиеся утилиты, которые облегчат жизнь программисту. Сложность: средне 60% Скучность: высокая 80% Дубовость: для продвинутых 65% Операционная система OpenOS в первую очередь покрывает вопросы (относительно) удобного программирования для OpenComputers. Конечно, это не исключает сторонние редакторы типа Sublime Text или Notepad++, но иметь такие средства нужно

Fingercomp

Fingercomp

 

OpenOS. От дуба до Мастера. Часть третья. [||·]

Третья часть мануала по OpenOS, где я расскажу об идее монтирования файловых систем, а затем разбавлю повестью о пайпинге. Сложность: средне 60% Скучность: средне 55% Дубовость: для продвинутых 50%   ФАЙЛОВЫЕ СИСТЕМЫ, ЗАКЛЮЧЕНИЕ. УСТРОЙСТВА И МОНТИРОВАНИЕ Приступаем к самой сложной штуке в OpenOS — это монтирование файловых систем. Итак, начнём.   Логика работы Итак, начнём с того, что каждый накопитель — это устройство. У устройства есть свой адрес

Fingercomp

Fingercomp

×
×
  • Создать...