%% Modified version of random module | |
%% to use Wichmann-Hill algorithm published on 2006 | |
%% which succeeds the old AS183 algorithm in 1982. | |
%% Copyright (c) 2010 Kenji Rikitake All rights reserved. | |
%% | |
%% %CopyrightBegin% | |
%% | |
%% Copyright Ericsson AB 1996-2009. All Rights Reserved. |
#!/bin/bash | |
#=============================================================================== | |
# | |
# FILE: iso2wbfs | |
# | |
# USAGE: ./iso2wbfs [option] FILE... [wbfs directory] | |
# | |
# DESCRIPTION: Uses wit to convert one or more Wii ISO into a WBFS file | |
# properly named for use on non-WBFS partitions. | |
# |
import Control.Parallel.Strategies (using, parBuffer, rseq) | |
import Data.List (partition) | |
-- *** Example Haskell functions *** | |
-- Is a list of integers sorted? | |
isOrdered :: [Int] -> Bool | |
isOrdered (x:y:zs) = x <= y && isOrdered (y:zs) | |
isOrdered _ = True |
This is my xmonad+unity panel config. With this config, you'll have a well integrated panel from unity but still have xmonad as your window manager with your gnome apps, including the pretty gnome-terminal
(for those too lazy to learn xmoobar).
This config doesn't have the unity launcher, mainly becuse it causes windows to be unfloatable, besides I'm not fond of it anymore.
Copy and paste these lines (or understand what it does and do it manually).
{-# LANGUAGE DeriveDataTypeable, GeneralizedNewtypeDeriving #-} | |
import System.Environment (getArgs, getProgName) | |
import Control.Monad (forM_, replicateM_) | |
import Data.Binary (Binary, encode, decode) | |
import Data.Typeable (Typeable) | |
import Data.ByteString.Lazy (ByteString) | |
import Control.Concurrent (threadDelay) | |
import Data.Rank1Dynamic (toDynamic) | |
import Control.Distributed.Static | |
( Static |
"""Information Retrieval metrics | |
Useful Resources: | |
http://www.cs.utexas.edu/~mooney/ir-course/slides/Evaluation.ppt | |
http://www.nii.ac.jp/TechReports/05-014E.pdf | |
http://www.stanford.edu/class/cs276/handouts/EvaluationNew-handout-6-per.pdf | |
http://hal.archives-ouvertes.fr/docs/00/72/67/60/PDF/07-busa-fekete.pdf | |
Learning to Rank for Information Retrieval (Tie-Yan Liu) | |
""" | |
import numpy as np |
I'm tired of massive delay (500-1000 ms pings) while uploading large files. QoS helps some, but a significant portion remains due to bufferbloat (100-150ms). This leads to delay in VoIP calls and generally sluggish web browsing while uploading.
The new Codel algorithm in OpenWRT / Attitude Adjustment should help a lot. The results below show only ~5-6ms of added latency during uploads (i.e. 14ms vs 500+ms before!). Insane.
These instructions are for the TP-Link TL-WDR4300, because I got a good deal. If you have the money, buy a Netgear WNDR3800 and install CeroWRT, you'll probably see even better results.
In short, its fully supported in OpenWRT Attitude Adjustment and works well for my needs:
- Cheap
#!/usr/bin/env escript | |
%% -*- erlang -*- | |
%% * slurp in terms using inlined version of kernels file:consult/1 | |
%% * convert to abstract syntax tree | |
%% * annotate all tuples | |
%% * pretty print using a hook to prefix the annotated nodes with newline | |
main([]) -> | |
io:format("%% -*-erlang-*-~n"), |
Ideas are cheap. Make a prototype, sketch a CLI session, draw a wireframe. Discuss around concrete examples, not hand-waving abstractions. Don't say you did something, provide a URL that proves it.
Nothing is real until it's being used by a real user. This doesn't mean you make a prototype in the morning and blog about it in the evening. It means you find one person you believe your product will help and try to get them to use it.