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

Fingercomp's Playground

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

Об этом блоге

Gnawing the way out

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

 

Парсер 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

 

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

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

Fingercomp

Fingercomp

 

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

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

Fingercomp

Fingercomp

 

BuMPGold // завершён

Здрассьте! Я тут прогуливался по StackExchange, и нашёл интересную штуку: Code Golf. В общем-то, это программистский конкурс, который цель ставит эффективно расходовать ресурсы... только жёсткго диска. Надо любыми судьбами на любом языке сделать программу с наименьшим числом даже не символов, а байт! Мне показалось это очень интересным занятием. Посмотрев на вопросы, которые по той ссылке доступны, у меня и идейка пришла тоже.   Я всё расписал по идейке здесь: https://znc.hanvix.ru:1308/vori_z

Fingercomp

Fingercomp

 

MoonJam — джем с привкусом луны // завершён

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

Fingercomp

Fingercomp

 

[Moonscript] Библиотека SemVer

Имеется один проект на Питоне, который потребовал для себя парсер семантического версионирования, семвера, в общем. Ну там такие штуки как парсинг версий человеческий, обработка ввода юзверёв, умение сравнить все эти версии и выбрать из списка по указателю типа ">=1.5.17", ну, думаю, об этом вы слышали. К слову, вот тута лежит спецификация SemVer: http://semver.org/, можете почитать.   Ну и нашёл я либу интересную, semantic_version зовётся. Подключил и нарадоваться не мог фичам всяким. И та

Fingercomp

Fingercomp

 

[OC Updates] Обновление OpenComputers до версии 1.6.0 Beta 4

Недавно вышло мелкое обновление OC, которое я пропустил из-за некоторых проблем, и в нём: ДобавленоИнтернет-карты посылают событие, когда они получили данные по сокету и можно использовать :read. [*]Пофикшено Несколько мелких багов. [*]OpenOS Небольшие фиксы install, /lib/buffer.lua, ls, /lib/package.lua, rc, /lib/sh.lua. Вот и всё действительно небольшое обновление. Скачать можно по ссылкам в блоке справа сверху.

Fingercomp

Fingercomp

 

[OC Updates] Обновление OpenComputers до версии 1.6.0 Beta 3

Обновление OpenComputers до третьей беты 1.6. Сегодня в гостях у нас следующие изменения: Добавлено В русский мануал добавлена информация про saveConfiguration (PR #1855 от cyber01). Функция computer.getProgramLocations, которая используется для программы install из OpenOS. [*]Пофикшено Неожиданный баг с сохранением мира в версиях MC выше 1.8. [*]OpenOS Команда cat теперь будет читать stdin, если не указан файл. cp: поддержка путей вида /. и более мелкие фиксы. df теперь по

Fingercomp

Fingercomp

 

[OC Updates] Обновление OpenComputers до версии 1.6.0... Beta 2

Начну со слов автора мода: "давайте будем считать, что кандидата к релизу не было. Не потому, что он был сломан, нет. Просто я добавил несколько вещей, которые требуют тестирования, поэтому у нас снова будет бета".   Изменения ДобавленоНовая функция computer.getDeviceInfo() теперь возвращает список всех компонентов, имеющихся у устройства, включая планки памяти, процессоры и пр. Для показа их в OpenOS есть теперь команда lshw. [*]Изменено Большинство "магических файловых систем" у комп

Fingercomp

Fingercomp

 

[OC Updates] Обновление OpenComputers до версии 1.6.0 RC 1

И лучше поздно, чем никогда. Недели две-три назад вышла версия OC 1.6-RC1 (Release Candidate). В основном ничего особенного, только баг-фиксы.   Изменения: Фиксы LuaJ с помощью мастера по починке LuaJ. gamax92, если быть точнее. Plan9k теперь будет хотя бы запускаться. Ну замечательный прогресс уже, хотя крашиться всё так же любит. Switch и Access Point были скрыты в NEI. Поддержка энергии RotaryCraft. Обновление мануала под 1.6. Облегчённые рецепты. Из алмазов делаются алмазные ку

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 1.6. #2

Продолжаем расследовать обновление 1.6 OpenComputers. На очереди новая OpenOS с крутым функционалом и вкусными плюшками.   Так как изменений много, но они разбросаны, призываем маркеры. Новая утилита find Прогуливается рекурсивно по файлам, выводя их имена на экран. Можно задать Луа-паттерн аргументом --name для поиска файла нужного. find . --name=".+%.lua" [*]Утилита grep Тот самый монстр, который ищет паттерн в файлах. Идентичный натуральному, но паттерны Луа. grep -rin "hi" .

Fingercomp

Fingercomp

 

OpenComputers 1.6. #1

Прогулка с экскурсоводом по обновлённой части парка "OpenComputers". Глянем на новые вещи и попытаемся разобраться.   Начнём с самого значительного изменения. Серверные Стойки. Ну тут всё интересно. Пугающая штука теперь — интерфейс стойки. А на хотбаре у меня лежат орудия пыток.   Думаю, предпоследний предмет опознали — это сервер T3. По нажатию ПКМ этим предметом всё так же открывается интерфейс подобный компьютерному, куда можно вставить компоненты. Заменил я его на креативный, т

Fingercomp

Fingercomp

 

[OC Updates] Обновление OpenComputers до версии 1.6.0 Beta 1

О 1.6 было говорено ещё с очень давних пор — примерно год назад. И наконец-то первая бета OC 1.6 доступна для скачивания. Вообще, 1.6 всё это время можно было загрузить как дев-версию — достаточно перейти на Jenkins. Однако билды там не всегда блещут стабильностью.   Что изменилось: Полный ченджлог Sangar предоставит, когда отрелизится 1.6.0. Но благодаря ГитХабу я могу сравнить 1.5.22 и 1.6. Так что краткое переложение >150 коммитов: Новые серверные стойки. Модульность, крутой GUI и мног

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

 

Keep up: в ожидании обновлений

Что-то особо нового в последнее время не виднеется, а программы не пишутся. На первый взгляд. Но, как известно, перед революцией обычно образуется что-то вроде застоя. Предлагаю окунуться в это болото и глянуть, что интересного происходит с OpenComputers и аддонами.   OpenComputers Сэнгар немного прихворал, так что коммитов в последнее время немного. Идёт работа над портом 1.6 под версии MC1.8, делают OpenOS 1.6 (псст, эта игрушка обешает быть очень крутой; больше POSIX и пр.). Низкая активнос

Fingercomp

Fingercomp

 

[Lua] [OC] Лончер игр

Вот был у нас вот такой "простой" лончер от Квертика (тык), в котором без поллитра и ведра инструкций не разобраться, да. Естественно, это не вариант ни разу, особенно для меня. Потому представляю своё дитё — Крутой Графонистый Лончер Игр На Коленке!   Интерфейс интуитивно понятен. Сейчас имеется рейтинг, лайки, статистика игр (по игрокам и всего), крутой поиск (чинит даже жестокие очепятки) и воз графонистости. Файлы хранятся в директории /games (создайте её). Для каждой игры необходима своя

Fingercomp

Fingercomp

 

[Lua] [OC] Автокрафт V2: теперь без AE

Да, дамы и господа, он тут! Тот самый автокрафт, который был на старом ИТ с АЕ, обновляется до новой версии, в которой полностью отказываемся от АЕ и переходим на сундуки. Для работы нужна "стенка" из сундуков, двойные использовать нельзя. Или ставить вплотную сундуки из IronChest, или же попеременно сундук обычный / сундук-ловушка. В левой позиции ставим робота-крафтера мордой в сторону других сундуков, под него ещё один сундук. Теперь считаем размеры массива: по ширине сколько (X) и по высоте

Fingercomp

Fingercomp

 

[Other] Несколько программ на Python

Началось всё с пустого файла. Набросав костылей, ловисипедов и более-менее нормального кода... Рад представить вам свой ламповый репозиторий на ГитХабике с набором программок, написанных на Python. На текущий момент все они в какой-то мере взаимодействуют с Minecraft. По-порядку.   Чат-клиент Так как блог так или иначе обязан подчиняться правилам, я упоминаю только один чат-клиент под именем "cc-chat". Кое-как подёргав API форума, смог сделать небольшую программу, которая сейчас умеет работ

Fingercomp

Fingercomp

 

OC [OC Updates] Обновление OpenComputers до версии 1.5.20

ДВАДЦАТЬ! Новая версия, 1.5.20, готова к скачиванию. Рассмотрим изменения: Добавлено: Функция compareStackToDatabase для контроллера инвентаря и транспозера. Конвертер для обработки информации о зачарованиях. Французский перевод в мануалах. От Pyeroh. Перевод на немецкий язык в мануалах. Подготовлен Shadow1Raven. Можно отключить излучение света для голографических проекторов. [*]Изменено: Обновлено API для Forestry. [*]Исправлено: Скорость ломания кабелей с мультиблоками FM

Fingercomp

Fingercomp

 

OC [Lua] [OC] Lamp-o-mat

Lamp-o-mat! Это небольшая программулька, которая снова из категории "украшения" (предыдщую программу, часики, смотреть тут). В общем, это гирлянда такая. Для лампочек цветных из Computronics. Проста прога как дуб, но выглядит прикольно. В частности, это первая прога с принципом ООП. Писалась ночями двумя по заказу @Alex, итог меня радует.   Скачивание в репозитории. Паста. Гист.   Скриншот:     Конфигурация:  

Fingercomp

Fingercomp

 

Dark-dark Robot

Здрассьте. Давно уже назревал план сменить к чертям оформление форума, ибо текущее положение дел вызывает тошноту. Да и ночью глаза болят потом. И вот, наконец, недавно я загорелся энтузиазмом, и было принято неотвратимое решение напилировать свою тему для форума. Так как станадртные средства форума по изменению мне неизвестны, а курить доки по этому было катастрофически лень, всё сделано в виде стиля к Stylish.   Что меняется? Цвет всех элементов, расположение некоторых блоков-индикаторов, ок

Fingercomp

Fingercomp

 

[OC Updates] Обновление OpenComputers до версии 1.5.19

А вот и новая версия почти всеми любимого OpenComputers готова приземлиться на Ваш жёсткий диск. Добавлено: Редстоун-карты и блоки могут теперь считывать вход компаратора. Компы-серверы-µC при краше теперь красят индикатор работы в красный цвет. Программа в OpenOS: du (Disk Usage). Показывает свободное место на дисках. Автор: payonel. Совместимость с билдерами из BC. Работать начнёт после выхода BC 7.2. Конфигурация наноботов (см. запись) может теперь быть сохранена в ещё не скушанного

Fingercomp

Fingercomp

 

[OC] [Tutorial] Туториал по наноботам!

С недавним (1.5.18) релизом OpenComputers появилась такая хрень — наноботы. Посмотрев ролик от автора мода (он будет внизу статьи), было ясно, что запутался или я, или автор. Скорее всего первое. Потому решил отложить их на потом.   И вот, пришло то время. По-быстрому забежав на тестовый сервачок и поигравшись с ними, понял, насколько чудовищно... КРУТЫ эти мелкие штуки. Почему? А сейчас узнаем.   I. Тварелогия. Вообще, я немного наврал со словом "сейчас". Обосновывать будем по ходу раз

Fingercomp

Fingercomp

 

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

Последняя, пятая часть мастеровления полностью посвящена шеллу и его программам. Переменные окружения, алиасы и с ними связанные команды — я не врал. Сложность: высокая 75% Скучность: высокая 75% Дубовость: для продвинутых 80% Ключевой частью OpenOS является шелл. Это программа, которая выполняет команды, рисует командную строку, в общем, занимается предоставлением удобства пользователю.  ШЕЛЛ OPENOS. Сразу предупреждаю, что мы не будем рассматривать

Fingercomp

Fingercomp

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