Skip to content

Instantly share code, notes, and snippets.

View nvlled's full-sized avatar

Ronald T. Casili nvlled

  • Philippines
View GitHub Profile
// Changes the first argument of a function type to *anyopaque
// Example:
// AnyOpaquify(fn(*Self, u8) void) will result to fn (*anyopaque, u8) void
pub fn AnyOpaquify(func: anytype) type {
const T = @TypeOf(func);
const info = @typeInfo(T).@"fn";
var P: [info.params.len]type = undefined;
for (info.params, 0..) |p, i| {
P[i] = p.type.?;

Scribble installation instructions for Ubuntu/Debian

This is an installation instruction Scribble: The Racket Documentation Tool

  1. Install dependencies (required for generating PDF files, skip if not needed)
    $ sudo apt-get install texlive-latex-base texlive-science texlive-fonts-recommended texlive-fonts-extra texlive-latex-extra
  2. Install racket

$ sudo apt install racket

// examples:
// makePermissionDescription'oneTwoThree') == 'one two three'
// makePermissionDescription('hasFooBarXYZ') == 'foo bar XYZ'
// makePermissionDescription('isFOOBar') == 'is FOO bar'
// Note: output is meaningful only for inputs that consists only of letters
const splitByUpperCase = keyName => {
const words = [];
let desc = keyName.replace(/^can/, '');
let loops = 4096;
@nvlled
nvlled / add-monitor-resolution.sh
Created May 22, 2019 11:38
Adds a temporary monitor resolution (linux)
#!/bin/bash
# example usage:
# ./add-monitor-resolution.sh VGA-1 1920 1080
# Note: replace VGA-1 with the name of your device
# run `xrandr --list-monitors` to see the name of your device
monitor=$1
width=$2
height=$3
modeline=`cvt $width $height | tail -n1 | cut --complement -d" " -f 1`
@nvlled
nvlled / sfb.json
Created January 11, 2019 10:00
Svenska FolkBibeln 1998
This file has been truncated, but you can view the full file.
{
"XMLBIBLE": {
"$": {
"version": "2.0.1.22",
"p1:noNamespaceSchemaLocation": "zef2005.xsd",
"biblename": "Svenska Folkbibeln (1998)",
"type": "x-bible",
"status": "v",
"revision": "0",
"xmlns:p1": "http://www.w3.org/2001/XMLSchema-instance"
@nvlled
nvlled / stein.js
Last active December 9, 2018 12:01
A CLI time-tracking tool
#!/usr/bin/env node
const path = require("path");
const readline = require("readline");
const fs = require("fs");
const logFilename = "stein.txt";
const getArgv = () => {
const argv = process.argv.slice(0);
if (path.basename(argv[0]) == "node") {
/**
Purpose: Set the size of html element to the paper size
Example/Usage:
<div class="a0 landscape"></div>
<div class="a4"></div>
<div class="letter"></div>
*/
#!/bin/bash
# Gets the main activty of the android project
# Run at project root folder
# output like: com.package.sub/com.package.sub.MainActivity
# Purpose: use with android am for running the installed apk
activity=$(cat `find app/src -iname "AndroidManifest.xml"` | grep -i '<activity android:name' | sed 's/.*="\(.*\)".*/\1/')
activity=$(echo $activity | sed 's/^\.//')
Thu Jul 26 02:46:13 EDT 2018
Tadah. I finally installed Debian 9 with Xfce4.
Everything is noticeably smooth and faster,
compared to Winlag 10. I initially tried installing
Debian testing, but it seems there was a problem
with the build (something about lvm modules not being loaded).
No matter, not having the latest packages from apt repository
shouldn't be much of a problem.
@nvlled
nvlled / rc.lua
Created April 7, 2018 08:01 — forked from yvon/rc.lua
Awesome (window manager) configuration opening terminal in focused client working directory
awful.key({ modkey, }, "Return",
function ()
pid = client.focus.pid
cpid = string.gsub(awful.util.pread('pgrep -P ' .. pid), "[\r\n]+$", "")
cwd = string.gsub(awful.util.pread('readlink /proc/' .. cpid .. '/cwd'), "[\r\n]+$", "")
if string.len(cwd) > 0 then
awful.util.spawn(terminal .. ' -cd ' .. cwd)
else
awful.util.spawn(terminal)
end