Skip to content

Instantly share code, notes, and snippets.

@fbstj
fbstj / CANframe.rs
Last active August 29, 2015 14:13
Rust things
enum ID {
Standard(u16),
Extended(u32)
}
enum Payload {
Value {
length : u8,
data: [u8; 8]
},
Remote(u8)
@fbstj
fbstj / book-search.php
Created March 31, 2015 10:11
A search utility for unzipped epubs
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<style>
#view { float: right; width: 75vw; height: 98vh; }
nav { float: left; width: 20vw; height: 98vh; }
#nav { height: 100%; max-height: 90vh; overflow-y: scroll; }
.active { font-weight: bold; }
</style>
<title>Book search</title>
<iframe name=bob id=view src=blank.html></iframe>
<nav>
@fbstj
fbstj / smf-sql.php
Created March 16, 2010 20:56
SMF SQL wrapper (php)
<?php
#ini_set('display_errors',0);
header('Content-Type: application/json');
interface SQL { function sql(); }
interface RecordSet{ function add(Field $f); function field($name,$as=''); function fields();}
class DB
{
const USERNAME = 'root', PASSWORD = 'password';
const HOST = 'localhost', DB_NAME='smf';
const TABLE = "smf_%s";
@fbstj
fbstj / memlib.c
Created July 8, 2011 15:42
memory operations free of the standard libraries
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long LONG;
BYTE BYTE_get(BYTE **buf_ptr) { return *(*buf_ptr)++; }
void BYTE_put(BYTE **buf_ptr, BYTE value) { *(*buf_ptr)++ = value; }
void WORD_put(BYTE **buf_ptr, WORD value)
{
@fbstj
fbstj / C_CAN.c
Created August 4, 2011 13:53
Module for communicating with C_CAN device on C8051F500 and other
/*
Module for communicating with C_CAN device on C8051F500 and F580.
*/
#include "myPlatform.h"
#define __C_CAN_H 1
# include "C_CAN.h"
#undef __C_CAN_H
// CAN0STAT masks
@fbstj
fbstj / Buffer.js
Created January 7, 2012 01:21
some extension methods and utility functions for ArrayBuffer
var Buffer = {
_for: function(n, cb){ for(var i = 0; i < n; i++) cb(i) },
_to: function(x, size, cb) {
var v = new DataView(x), out = [], l = x.byteLength/size
this._for(l, function (i) { out[i] = v[cb](i*size) })
return out
},
toBytes: function(b) { return this._to(b, 1, 'getUint8') },
toWords: function(b) { return this._to(b, 2, 'getUint16') },
@fbstj
fbstj / greystring.js
Created January 11, 2012 19:28
detects strings who's characters are in a Grey-code sequence
// detects strings whos bytes are greycoded
function greystring(str){
var a, b
function bitcount(v){
var c;
for (c = 0; v; c++)
v &= v - 1;
return c;
}
for(var i = 1; i < str.length; i++)
@fbstj
fbstj / Components.cs
Created March 23, 2012 14:32
some extension methods for Control
public static int Value(this Control _, NumberStyles s, IFormatProvider p)
{
int d;
if (int.TryParse(_.Text, s, p, out d))
return d;
return 0;
}
public static double Value(this Control _)
{
double d;
@fbstj
fbstj / gist:2216990
Created March 27, 2012 15:27
Some abstract algebra interfaces/structs for Csharp
This gist has moved to FallingBullets/lib.cs on branch algebra
@fbstj
fbstj / ini.c
Last active December 11, 2015 23:09
ini file parsing
#include <string.h>
#include <stdio.h>
enum ini_parts {
ini_section, ini_key, ini_value,
ini_section_start = '[', ini_section_end=']',
ini_key_value = '=',
ini_comment = ';'
};