Skip to content

Instantly share code, notes, and snippets.

Avatar

Fingercomp Fingercomp

View GitHub Profile
@Fingercomp
Fingercomp / lamp.lua
Created Nov 12, 2015
Lamp-o-mat. Controls CX lamps using OC computer [Minecraft]
View lamp.lua
-- Lamp-o-mat. Controls CX lamps using OC computer. Minecraft. --
global_lamps = {"cf0", "95c", "ad9", "a1a", "d97", "afb", "cc5", "335", "a75"}
global_exit = false
local com = require("component")
local event = require("event")
base = {__index = base}
function base.__call(self, count)
if not global_exit then
count = count or math.huge
View progress-bars.txt
2.999 G / 2.999 G▕ ▏ 0.00% -- 10.00 k/s 02:50:00
9999 B / 9999 B▕██████████ ▏ 50.00% -- 10.00 k/s 00:59:59
10.00 k / 10.00 k▕██████████▏ ▏ 50.12% -- 10.00 k/s 55:59
99.99 k / 99.99 k▕██████████▎ ▏ 50.25% -- 99.99 k/s 10:00
100.0 k / 100.0 k▕██████████▍ ▏ 50.37% -- 100.0 k/s 09:59
999.9 k / 999.9 k▕██████████▌ ▏ 50.50% -- 999.9 k/s 01:30
1.000 G / 1.000 M▕██████████▋ ▏ 50.62% -- 1.000 G/s 00:05
9.999 G / 9.999 M▕██████████▊ ▏ 50.75% -- 9.999 G/s 00:00
10.00 G / 10.00 G▕██████████▉ ▏ 50.87% -- 10.00 G/s 2d, 22:22:22
99.99 G / 99.99 G▕███████████ ▏ 51.00% -- 99.99 G/s 9999d, 11:11:11
View x509v3-certificate-structure.txt
Certificate = SEQUENCE {
tbsCertificate = TBSCertificate = SEQUENCE {
version = EXPLICIT (Version = INTEGER {v1(0), v2(0), v3(2)}) DEFAULT v1,
serialNumber = CertificateSerialNumber = INTEGER,
signature = AlgorithmIdentifier = SEQUENCE {
algorithm = OBJECT IDENTIFIER,
parameters = ANY DEFINED BY algorithm OPTIONAL
},
issuer = Name = CHOICE {
-- only one possibility for now --
@Fingercomp
Fingercomp / https-oc-compat.lua
Created Aug 16, 2016
Luascket's https ⟷ OC http libraries compatibility layer
View https-oc-compat.lua
local ltn12 = require("ltn12")
local http = require("http")
local https = {
request = function(params)
local body = nil
if params.source then
body = ""
for chunk in params.source do
body = body .. chunk
View crash.lua
local shell = require("shell")
local fs = require("filesystem")
local args = {...}
local elog = shell.resolve(table.remove(args, 1))
local path = shell.resolve(table.remove(args, 1))
if not elog or not path then
print("USAGE: crash <error log path> <path to program> [arguments...]")
return 1
View eta.lua
local scale = 0.75
local avgs = {}
local function calcAvg(last)
if #avgs == 0 then
table.insert(avgs, last)
return last
end
local len = #avgs
local sum = 0
View particly-draw.lua
local com = require("component")
local event = require("event")
local p = com.particle
local image = [[
####...###....#...#####
....#.#...#...#.......#
.###..#...#...#......#.
#.....#...#...#.....#..
View 00_weather_readme.markdown

Установка

  1. Скачать файлы unicodedata2.py, wttrin_png.py, parse_query.py и set-bg.sh в ~/.local/share/scripts/background/.
  2. Заменить $CITY_NAME в set-bg.sh на нужное имя города.
  3. Прописать pip3 install pyte pillow requests.
  4. В /usr/share/fonts/truetype создать ubuntu-font-family и запихать туда файл UbuntuMono-R.ttf [откуда-то отсюда][ubuntu-fonts].
  5. Там же должна быть директория ttf-dejavu с файлом DejaVuSansMono.ttf.
  6. Установить feh и imagemagick, если ещё не.
  7. Создать директорию ~/img/bg/ и поместить туда файл background.png с фоном.
  8. Сделать выполняемым файл: chmod +x ~/.local/share/scripts/background/set-bg.sh.
@Fingercomp
Fingercomp / table-pack.md
Last active Jun 13, 2019
О функции `table.pack` и операторе `#` на примере REPL
View table-pack.md

Lua — прекрасный язык программирования. Прежде всего благодаря своей предельной простоте. Но даже в Lua есть свои нюансы.

Допустим, мы хотим создать свой Lua REPL. REPL — Read–Eval–Print Loop — также называется оболочкой (shell) или интерпретатором (interpreter). Из аббриевиатуры должно быть понятно, что эта прога будет делать:

  1. читать ввод
  2. интерпретировать его
  3. принтить выхлоп

Программа и так несложно выглядит, а в Lua ещё есть функция load, о которой

@Fingercomp
Fingercomp / stacktrace.lua
Last active Jun 20, 2019
A simple stacktracer for lua.
View stacktrace.lua
local function insertNonNil(t, v)
if v then
v = tostring(v)
if #v > 0 then
table.insert(t, v)
end
end
end
local function traceback(c)