Skip to content

Instantly share code, notes, and snippets.

@jocap
jocap / draw_line_between.js
Created March 27, 2014 01:04
Draw a line between two coordinates (pixels). According to my calculations, Dx should be divided by 2, but for some reason in reality, it shouldn't. Hm.
function draw_line_between(ax, ay, bx, by)
{
var comp_x = ax - bx
var comp_y = ay - by
var _angle = Math.atan(comp_y/comp_x)*180/Math.PI // Yes, I like my angles in degrees...
var _distance = Math.sqrt(Math.abs(comp_x*comp_x + comp_y*comp_y))
var div = document.createElement("div")
var Dy = Math.cos((180-90-_angle)*(Math.PI/180))*(_distance/2);
var Dx = Math.sin((90-(180-_angle)/2)*(Math.PI/180))*Math.sin((_angle/2)*(Math.PI/180))*(_distance)
document.getElementsByTagName("body")[0].appendChild(div)
@jocap
jocap / MathLayer.ahk
Last active August 29, 2015 14:00
The Space Cadet `Top` key for Windows. (Inspired by http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#math)
; MathLayer.ahk
; Created by John Ankarström (jocap)
; Inspired by Steve Losh: http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#math
; Compatible with US key layout
; Todo: Caps Lock support
; Issues: Selecting with LShift + arrow keys doesn't work great, RShift + arrow keys doesn't work at all
global MathMode := 0
@jocap
jocap / get_jaiku_timeline.py
Created August 13, 2010 13:18
Get the Jaiku timeline with user's API key using the old JSON API: http://api.jaiku.com/key
import urllib, json
url = "http://%s.jaiku.com/contacts/feed/json" % username
params = {'user': username, 'personal_key': api_key}
result = urllib.urlopen(url, urllib.urlencode(params)).read()
data = json.loads(result)
title = data['title'] # Jaiku | Overview
# print timeline
for presence in data['stream']:
@jocap
jocap / app.rb
Created December 5, 2010 14:07
Ruby Pagination Logic with DataMapper and Sinatra: http://jocap.github.com/Ruby-Pagination-Logic/
# @app.rb
[...]
require "ruby_pagination_logic"
get '/page/:page' do |page|
@page = page.to_i
limit = 5
offset = RPL::paginate @page, limit
@post = Post.all :limit => limit, :offset => offset, :order => 'date'
$ (sudo) gem install ruby_pagination_logic
require "dm-core"
require "dm-migrations"
# Configure DataMapper
DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://database.db")
# model Article
class Article
include DataMapper::Resource
get '/archive' do
@articles = Article.all :limit => 10, :order => 'created_at'
erb :articles # or haml, whatever
end
get '/archive/:permalink' do |permalink|
@article = Article.first :permalink => permalink
erb :article
end
def text(text, htmloutput = true)
if htmloutput
return text.rm_ln
else
return text.rm_ln!
end
end
$ (sudo) gem install dm-core dm-migrations
@jocap
jocap / ArmaDev.bat
Last active December 24, 2015 06:09
Arma + Sublime Text Development Environment Change all three of E:\Doccuments\Arma... to your Arma missions path. Make sure that your Sublime Text installation directory is in your PATH (add ;your_install_dir to Computer -> Properties -> Advanced -> Environment Variables -> PATH -> Edit)
@echo off
set /a c=1
setlocal ENABLEDELAYEDEXPANSION
for /f "usebackq delims=|" %%f in (`dir /b "E:\Documents\ArmA 2 Other Profiles\JohnAJ\missions"`) do (
set files[!c!]=%%f
echo !c!, %%f
set /a c+=1
)