2of1
half a nibble of another

Home
Projects
About
Sep

01

Mini-Namco #3: (Almost) Finished

Filed Under (Open source, Other stuffs) by 2of1 on 01-09-2011

And the (almost) finished machine running Namco Museum’s Ms. Pacman…

(Sorry for the grainy 3.2MP mobile-phone pic)

No Comments
Read More
Aug

31

Mini-Namco #2: Unit construction

Filed Under (Open source, Other stuffs) by 2of1 on 31-08-2011

Ok, so I constructed the unit over the past two evenings.
I stupidly didn’t take photos during the construction and seriously messed up the paint job.
Read the rest of this entry »

No Comments
Read More
Aug

02

Mini-Namco #1: Design

Filed Under (Open source, Other stuffs) by 2of1 on 02-08-2011

After being inactive for a long while on my fullsize Mame cabinet project (put on hold indefinitely until I get some perspex/stop being lazy), I was inspired by Victor Coleiro’s “Worlds Smallest Space Invaders” project to do something similar myself.
Read the rest of this entry »

No Comments
Read More
Jul

11

Simple C hashtable code

Filed Under (C, Coding, Open source) by 2of1 on 11-07-2011

Here’s some code for a simple C hashtable.
Read the rest of this entry »

(3) Comments
Read More
Jul

10

My Xmonad setup

Filed Under (Linux, Open source, Tips & tricks, Xmonad) by 2of1 on 10-07-2011

Recently my WM of choice has been xmonad.

Configuring the desktop to my specification has been fun yet sometimes quite tedious as i messed around with the Haskell config (my knowledge of haskell == NULL), dzen2, conky, etc.

Here’s a screenshot from my main xinerama screen:

If anyone wants some inspiration for their setup, here are the relevant config files / scripts:

xmonad.hs

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.XPropManage
import XMonad.Hooks.FadeInactive
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import XMonad.Prompt
import XMonad.Prompt.RunOrRaise
import System.IO
import qualified XMonad.StackSet as W
import XMonad.StackSet(stack)
import XMonad.Actions.TagWindows
 
main = do
  workspaceBarPipe <- spawnPipe myStatusBar
  spawn myConkyBar
  xmonad $ defaultConfig
    { manageHook = manageDocks <+> manageHook defaultConfig <+> myManageHook
    , layoutHook = avoidStruts $ layoutHook defaultConfig
    , terminal = "urxvt"
    , workspaces = myWorkspaces
    , startupHook = myStartupHook
    , logHook = myLogHook workspaceBarPipe >> fadeInactiveLogHook 0xdddddddd
    , modMask = mod4Mask
    } `additionalKeys`
    [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock")
    , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
    , ((0, xK_Print), spawn "scrot")
    , ((mod4Mask, xK_x), runOrRaisePrompt defaultXPConfig)
    , ((mod4Mask, xK_m), focusUpTaggedGlobal "mail")
    , ((mod4Mask, xK_i), focusUpTaggedGlobal "irc")
    , ((mod4Mask, xK_c), focusUpTaggedGlobal "chat" >> spawn "cat /dev/null > /tmp/centerim.msgs")
    , ((mod4Mask, xK_b), focusUpTaggedGlobal "web")
    , ((mod4Mask, xK_d), focusUpTaggedGlobal "dev")
    ]
 
ws_term = "1:term"
ws_web = "2:web"
ws_dev = "3:dev"
ws_comms = "4:comms"
ws_rce = "5:rce"
ws_vms = "6:vms"
ws_stats = "7:stats"
 
myStatusBar :: String
myStatusBar = "dzen2 -fn '-*-terminus-bold-r-normal-*-10-*-*-*-*-*-*-*' -bg '#000000' -fg '#444444' -h 22 -sa c -x 0 -y 0 -e '' -ta l -xs 1"
 
myConkyBar :: String
myConkyBar = "sleep 1 && conky -c ~/.conkyrc | dzen2 -fn '-*-terminus-bold-r-normal-*-10-*-*-*-*-*-*-*' -bg black -fg green -h 22 -sa c -x 1000 -y 0 -e '' -ta r -xs 1"
 
myLogHook :: Handle -> X ()
myLogHook h = dynamicLogWithPP $ defaultPP
      {   ppCurrent	= dzenColor "black" "green" . pad
	, ppVisible	= dzenColor "black" "lightgreen" . pad
	, ppHidden	= dzenColor "#cccccc" "" . pad
	, ppHiddenNoWindows = dzenColor "#444444"  "" . pad
	, ppUrgent	= dzenColor "" "red"
	, ppWsSep    = " "
	, ppSep      = " | "
	, ppTitle    = (" " ++) . dzenColor "green" "" . dzenEscape
	, ppOutput   = hPutStrLn h
 
      }
 
myWorkspaces = [ ws_term,ws_web,ws_dev,ws_comms,ws_rce,ws_vms,ws_stats ]
 
myManageHook = ( composeAll
    [ appName =? "mutt" --> doShift ws_comms
    , appName =? "irssi" --> doShift ws_comms
    , appName =? "centerim" --> doShift ws_comms
    , className =? "Chromium" --> doShift ws_web
    , className =? "Eclipse" --> doShift ws_dev
    , className =? "Vmware" --> doShift ws_vms
    , className =? "Idaq" --> doShift ws_rce
    , appName =? "htop" --> doShift ws_stats
    , appName =? "feh" --> doShift ws_stats
    , appName =? "dev1" --> doShift ws_dev
    , appName =? "dev2" --> doShift ws_dev
    ] ) <+> xPropManageHook xPropMatches
 
myStartupHook = do
  spawn "urxvt -title mutt -name mutt -e mutt"
  spawn "urxvt -title irssi -name irssi -e irssi"
  spawn "urxvt -title centerim -name centerim -e centerim"
  spawn "urxvt -title htop -name htop -e htop"
  spawn "urxvt -title feh -name feh -e feh ~/pictures/"
  spawn "chromium"
  spawn "urxvt"
  spawn "urxvt -title dev1 -name dev1"
  spawn "urxvt -title dev2 -name dev2" >> sendMessage NextWorkspace
  spawn "eclipse"
  spawn "vmware"
  spawn "schroot -p /home/dk/tools/ida/idaq"
 
xPropMatches :: [XPropMatch]
xPropMatches = [ ([(wM_CLASS, any ("mutt"==))], pmX(addTag "mail"))
               , ([(wM_CLASS, any ("irssi"==))], pmX(addTag "irc"))
               , ([(wM_CLASS, any ("centerim"==))], pmX(addTag "chat"))
               , ([(wM_CLASS, any ("chromium"==))], pmX(addTag "web"))
               , ([(wM_CLASS, any ("Eclipse"==))], pmX(addTag "dev"))
               ]

.centerim/external

%action nnotification
event msg
proto all
status all
options nowait
 
%exec
#!/bin/bash
nick=$(head -n 1 $CONTACT_INFODIR/info)
echo $nick $EVENT_TYPE >> /tmp/centerim.msgs

centerim-notify.sh

#!/bin/bash
 
TEMPFILE=/tmp/centerim.msgs
 
if [ -e "$TEMPFILE" ]
then
  MSGS=`wc -l ${TEMPFILE} | awk '{ print $1 }'`
else
  MSGS=0
fi
 
if [ "$MSGS" -lt 1 ]
then
  echo -n $'^fg(green)'
  echo -n $'^bg(black)'
  echo -n $'^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/pacman.xbm) ^fg(#cccccc)'${MSGS}' ^bg(black)'
else
  echo -n $'^fg(black)'
  echo -n $'^bg(red)'
  echo -n $' ^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/pacman.xbm) '${MSGS}' ^bg(black) '
fi

check-gmail.pl
(I pulled this off the net from somewhere and hacked it for my needs)

#!/usr/bin/perl
 
use Switch;
use Text::Wrap;
 
my $what=$ARGV[0];
 
$user="user"; #username for gmail account
$pass="pass"; #password for gmail account
$file="/tmp/gmail.html"; #temporary file to store gmail
 
#wrap format for subject
$Text::Wrap::columns=45; #Number of columns to wrap subject at
$initial_tab=""; #Tab for first line of subject
$subsequent_tab="\t"; #tab for wrapped lines
$quote="\""; #put quotes around subject
 
#limit the number of emails to be displayed
$emails=5; #if -1 display all emails
 
&passwd; #give password the proper url character encoding
 
switch($what){ #determine what the user wants
    case "n" {
        &gmail;
        if($new==0){print "^fg(green) ^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/mail.xbm) ^fg(#cccccc)0";}
        else{print "^fg(black)^bg(red) ^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/mail.xbm) $new ^bg(black)";}
    } #print number of new emails
    case "s" { #print $from and $subj for new email
        &gmail;
        if ($new>0){
            my $size=@from;
            if ($emails!=-1 && $size>$emails){$size=$emails;} #limit number of emails displayed
            for(my $i=0; $i<$size; ++$i){
                print "From: $from[$i]\n"; #print from line
                $text=$quote.$subj[$i].$quote."\n";
                print wrap($initial_tab, $subsequent_tab, $text); #print subject with word wrap
            }
            $size=@from;
            if ($emails!=-1 && $size >$emails){print "$emails out of $size new emails displayed\n";}
        }
    }     
    case "e" { #print number of new emails, $from, and $subj
        &gmail;
        if($new==0){print "You have no new emails.\n";}
        else{
            print "You have $new new email(s).\n";
            my $size=@from;
            if ($emails!=-1 && $size>$emails){$size=$emails;} #limit number of emails displayed
            for(my $i=0; $i<$size; ++$i){
                print "From: $from[$i]\n"; #print from line
                $text=$quote.$subj[$i].$quote;
                print wrap($initial_tab, $subsequent_tab, $text); #print subject with word wrap
            }
            $size=@from;
            if ($emails!=-1 && $size >$emails){print "$emails out of $size new emails displayed\n";}
        }
    }
    else {
        print "Usage Error: gmail.pl <option>\n";
        print "\tn displays number of new emails\n";
        print "\ts displays from line and subject line for each new email.\n";
        print "\te displays the number of new emails and from line plus \n";
        print "\t\tsubject line for each new email.\n";
    } #didn't give proper option
}
 
sub gmail{
    if(!(-e $file)){ #create file if it does not exists
        `touch $file`;
    } 
 
    #get new emails
    `wget -O - https://mail.google.com/a/2of1/feed/atom --user=$user --password=$pass --no-check-certificate> $file`;
 
    open(IN, $file); #open $file
 
    my $i=0; #initialize count
    $new=0; #initialize new emails to 0
 
    my $flag=0;
 
    while(<IN>){ #cycle through $file
        if(/<entry>/){$flag=1;}
        elsif(/<fullcount>(\d+)<\/fullcount>/){$new=$1;} #grab number of new emails
        elsif($flag==1){ 
            if(/<title>.+<\/title>/){push(@subj, &msg);} #grab new email titles
            elsif(/<name>(.+)<\/name>/){push(@from, $1); $flag=0;} #grab new email from lines
        }
    }
 
    close(IN); #close $file
}
 
sub passwd{ #change to url escape codes in password
    #URL ESCAPE CODES
    $_=$pass;
    s/\%/\%25/g;
    s/\#/\%23/g;
    s/\$/\%24/g;
    s/\&/\%26/g;
    s/\//\%2F/g;
    s/\:/\%3A/g;
    s/\;/\%3B/g;
    s/\</\%3C/g;
    s/\=/\%3D/g;
    s/\>/\%3E/g;
    s/\?/\%3F/g;
    s/\@/\%40/g;
    s/\[/\%5B/g;
    s/\\/\%5C/g;
    s/\]/\%5D/g;
    s/\^/\%5E/g;
    s/\`/\%60/g;
    s/\{/\%7B/g;
    s/\|/\%7C/g;
    s/\}/\%7D/g;
    s/\~/\%7E/g;
    $pass=$_;
}
 
sub msg{
    #THE HTML CODED CHARACTER SET [ISO-8859-1]
    chomp; s/<title>(.+)<\/title>/$1/; #get just the subject
    #now replace any special characters
    s/\&\#33\;/!/g;        #Exclamation mark
    s/\&\#34\;/"/g; s/\&quot\;/"/g;      #Quotation mark
    s/\&\#35\;/#/g;        #Number sign
    s/\&\#36\;/\$/g;        #Dollar sign
    s/\&\#37\;/%/g;        #Percent sign
    s/\&\#38\;/&/g; s/\&amp\;/&/g;        #Ampersand
    s/\&\#39\;/'/g;        #Apostrophe
    s/\&\#40\;/(/g;        #Left parenthesis
    s/\&\#41\;/)/g;        #Right parenthesis
    s/\&\#42\;/*/g;        #Asterisk
    s/\&\#43\;/+/g;        #Plus sign
    s/\&\#44\;/,/g;        #Comma
    s/\&\#45\;/-/g;        #Hyphen
    s/\&\#46\;/./g;        #Period (fullstop)
    s/\&\#47\;/\//g;        #Solidus (slash)
    s/\&\#58\;/:/g;        #Colon
    s/\&\#59\;/\;/g;        #Semi-colon
    s/\&\#60\;/</g; s/\&lt\;/</g;        #Less than
    s/\&\#61\;/=/g;        #Equals sign
    s/\&\#62\;/>/g; s/\&gt\;/>/g;        #Greater than
    s/\&\#63\;/\?/g;        #Question mark
    s/\&\#64\;/\@/g;        #Commercial at
    s/\&\#91\;/\[/g;        #Left square bracket
    s/\&\#92\;/\\/g;        #Reverse solidus (backslash)
    s/\&\#93\;/\]/g;        #Right square bracket
    s/\&\#94\;/\^/g;        #Caret
    s/\&\#95\;/_/g;        #Horizontal bar (underscore)
    s/\&\#96\;/\`/g;        #Acute accent
    s/\&\#123\;/\{/g;        #Left curly brace
    s/\&\#124\;/|/g;        #Vertical bar
    s/\&\#125\;/\}/g;        #Right curly brace
    s/\&\#126\;/~/g;        #Tilde
    s/\&\#161\;/¡/g;        #Inverted exclamation
    s/\&\#162\;/¢/g;        #Cent sign
    s/\&\#163\;/£/g;        #Pound sterling
    s/\&\#164\;/¤/g;        #General currency sign
    s/\&\#165\;/¥/g;        #Yen sign
    s/\&\#166\;/¦/g;        #Broken vertical bar
    s/\&\#167\;/§/g;        #Section sign
    s/\&\#168\;/¨/g;        #Umlaut (dieresis)
    s/\&\#169\;/©/g; s/\&copy\;/©/g;        #Copyright
    s/\&\#170\;/ª/g;        #Feminine ordinal
    s/\&\#171\;/«/g;        #Left angle quote, guillemotleft
    s/\&\#172\;/¬/g;        #Not sign
    s/\&\#174\;/®/g;        #Registered trademark
    s/\&\#175\;/¯/g;        #Macron accent
    s/\&\#176\;/°/g;        #Degree sign
    s/\&\#177\;/±/g;        #Plus or minus
    s/\&\#178\;/²/g;        #Superscript two
    s/\&\#179\;/³/g;        #Superscript three
    s/\&\#180\;/´/g;        #Acute accent
    s/\&\#181\;/µ/g;        #Micro sign
    s/\&\#182\;/¶/g;        #Paragraph sign
    s/\&\#183\;/·/g;        #Middle dot
    s/\&\#184\;/¸/g;        #Cedilla
    s/\&\#185\;/¹/g;        #Superscript one
    s/\&\#186\;/º/g;        #Masculine ordinal
    s/\&\#187\;/»/g;        #Right angle quote, guillemotright
    s/\&\#188\;/¼/g; s/\&frac14\;/¼/g;       # Fraction one-fourth
    s/\&\#189\;/½/g; s/\&frac12\;/½/g;       # Fraction one-half
    s/\&\#190\;/¾/g; s/\&frac34\;/¾/g;       # Fraction three-fourths
    s/\&\#191\;/¿/g;        #Inverted question mark
    s/\&\#192\;/À/g;        #Capital A, grave accent
    s/\&\#193\;/Á/g;        #Capital A, acute accent
    s/\&\#194\;/Â/g;        #Capital A, circumflex accent
    s/\&\#195\;/Ã/g;        #Capital A, tilde
    s/\&\#196\;/Ä/g;        #Capital A, dieresis or umlaut mark
    s/\&\#197\;/Å/g;        #Capital A, ring
    s/\&\#198\;/Æ/g;        #Capital AE dipthong (ligature)
    s/\&\#199\;/Ç/g;        #Capital C, cedilla
    s/\&\#200\;/È/g;        #Capital E, grave accent
    s/\&\#201\;/É/g;        #Capital E, acute accent
    s/\&\#202\;/Ê/g;        #Capital E, circumflex accent
    s/\&\#203\;/Ë/g;        #Capital E, dieresis or umlaut mark
    s/\&\#204\;/Ì/g;        #Capital I, grave accent
    s/\&\#205\;/Í/g;        #Capital I, acute accent
    s/\&\#206\;/Î/g;        #Capital I, circumflex accent
    s/\&\#207\;/Ï/g;        #Capital I, dieresis or umlaut mark   
    s/\&\#208\;/Ð/g;        #Capital Eth, Icelandic
    s/\&\#209\;/Ñ/g;        #Capital N, tilde
    s/\&\#210\;/Ò/g;        #Capital O, grave accent
    s/\&\#211\;/Ó/g;        #Capital O, acute accent
    s/\&\#212\;/Ô/g;        #Capital O, circumflex accent
    s/\&\#213\;/Õ/g;        #Capital O, tilde
    s/\&\#214\;/Ö/g;        #Capital O, dieresis or umlaut mark
    s/\&\#215\;/×/g;        #Multiply sign
    s/\&\#216\;/Ø/g;        #Capital O, slash
    s/\&\#217\;/Ù/g;        #Capital U, grave accent
    s/\&\#218\;/Ú/g;        #Capital U, acute accent
    s/\&\#219\;/Û/g;        #Capital U, circumflex accent
    s/\&\#220\;/Ü/g;        #Capital U, dieresis or umlaut mark
    s/\&\#221\;/Ý/g;        #Capital Y, acute accent
    s/\&\#222\;/Þ/g;        #Capital THORN, Icelandic
    s/\&\#223\;/ß/g;        #Small sharp s, German (sz ligature)
    s/\&\#224\;/à/g;        #Small a, grave accent
    s/\&\#225\;/á/g;        #Small a, acute accent
    s/\&\#226\;/â/g;        #Small a, circumflex accent
    s/\&\#227\;/ã/g;        #Small a, tilde
    s/\&\#228\;/ä/g;        #Small a, dieresis or umlaut mark
    s/\&\#229\;/å/g;        #Small a, ring
    s/\&\#230\;/æ/g;        #Small ae dipthong (ligature)
    s/\&\#231\;/ç/g;        #Small c, cedilla
    s/\&\#232\;/è/g;        #Small e, grave accent
    s/\&\#233\;/é/g;        #Small e, acute accent
    s/\&\#234\;/ê/g;        #Small e, circumflex accent
    s/\&\#235\;/ë/g;        #Small e, dieresis or umlaut mark
    s/\&\#236\;/ì/g;        #Small i, grave accent
    s/\&\#237\;/í/g;        #Small i, acute accent
    s/\&\#238\;/î/g;        #Small i, circumflex accent
    s/\&\#239\;/ï/g;        #Small i, dieresis or umlaut mark
    s/\&\#240\;/ð/g;        #Small eth, Icelandic
    s/\&\#241\;/ñ/g;        #Small n, tilde
    s/\&\#242\;/ò/g;        #Small o, grave accent
    s/\&\#243\;/ó/g;        #Small o, acute accent
    s/\&\#244\;/ô/g;        #Small o, circumflex accent
    s/\&\#245\;/õ/g;        #Small o, tilde
    s/\&\#246\;/ö/g;        #Small o, dieresis or umlaut mark
    s/\&\#247\;/÷/g;        #Division sign
    s/\&\#248\;/ø/g;        #Small o, slash
    s/\&\#249\;/ù/g;        #Small u, grave accent
    s/\&\#250\;/ú/g;        #Small u, acute accent
    s/\&\#251\;/û/g;        #Small u, circumflex accent
    s/\&\#252\;/ü/g;        #Small u, dieresis or umlaut mark
    s/\&\#253\;/ý/g;        #Small y, acute accent
    s/\&\#254\;/þ/g;        #Small thorn, Icelandic
    s/\&\#255\;/ÿ/g;        #Small y, dieresis or umlaut mark
    s/^\s+//;
    return $_;
}

.conkyrc

background yes
out_to_console yes
update_interval 1.0
no_buffers yes
text_buffer_size 512
 
 
TEXT
^fg(\#444444)| ^fg(green)^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/cpu.xbm) ^fg(\#cccccc)${cpu cpu0}% ^fg(\#444444)| ^fg(green)^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/mem.xbm) ^fg(\#cccccc)$mem ^fg(\#444444)| ^fg(green)^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/net_down_03.xbm)^fg(\#cccccc)${downspeed eth0} ^fg(green)^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/net_up_03.xbm)^fg(\#cccccc)${upspeed eth0} ^fg(\#444444)| ^fg(\white)${execi 3 /home/dk/.xmonad/dzen2/scripts/centerim-notify} ^fg(\#444444)| ^fg(\white)${execi 30 /home/dk/.xmonad/dzen2/scripts/check-gmail-davkaplan.pl n 2>>/dev/null} ^fg(\#444444)^fn(-*-*-normal-*-*-*-9-*-*-*-*-*-*-*)[dk]^fn(-*-*-bold-*-*-*-10-*-*-*-*-*-*-*) | ^fg(\white)${execi 30 /home/dk/.xmonad/dzen2/scripts/check-gmail-2of1.pl n 2>>/dev/null} ^fg(\#444444)^fn(-*-*-normal-*-*-*-9-*-*-*-*-*-*-*)[2of1]^fn(-*-*-bold-*-*-*-10-*-*-*-*-*-*-*) | ^fg(green)${time %d-%m-%y %l:%M%p}
No Comments
Read More
Jul

07

Installing IDA Pro (32-bit) on 64-bit Arch Linux

Filed Under (Hacking, Open source, Reverse engineering) by 2of1 on 07-07-2011

Installing IDA Pro on a 64-bit flavour of Linux is a bit of a business – mostly because there is no 64-bit version of IDA (yet).
Read the rest of this entry »

No Comments
Read More
Jul

04

DC9723 – Hackathon 2011

Filed Under (DC9723, Hacking, Open source, Social) by 2of1 on 04-07-2011

Two Thursday evenings ago saw the first ever DC9723 hackathon.

The evening was a great success and I certainly enjoyed it; both the social aspects and the ‘hacking’ (not to mention the free Pizza, Elbit laptop bag and fantastically fun RSA challenge which I partially did a few days later)! Kol HaKavod to Iftach Ian Amit and Itzik Kotler for making this – and DC9723 in general – happen!

I worked in a group together with a bunch of other guys dealing with creating a PoC mobile botnet for the Android platform (yes I know one already exists – but that was based on a slightly different concept). As the evening was only 5 hours long (hoping for a 24 hr hackathon next year!!), we didn’t get much coding done – except for the client-side guys; they did great!
We’re hoping to continue working on the project in our spare time to see what we can come up with, so *watch this space*.

For those who didn’t attend and want (read: must) to see what the fuss is all about, check out here and here (nice paper scan version).
Some pics from the event are available here.

No Comments
Read More
Jul

04

DC9723 – Exploiting LD_PRELOAD slides and code examples

Filed Under (C, Code injection, Coding, Compilers, DC9723, Hacking, Linux, Linux kernel, Open source, Reverse engineering, Social, Tips & tricks) by 2of1 on 04-07-2011

Here are the slides and code examples of the talk that I gave at the 7th DC9723 meet a few weeks ago.

To all those that came; thanks – I hope you found it interesting!

No Comments
Read More
May

24

JS/Linux – Linux running in a x86 JavaScript emulator!

Filed Under (Coding, Linux, Open source) by 2of1 on 24-05-2011

Just too cool: http://bellard.org/jslinux/

No Comments
Read More
Mar

29

Hebrew, Wine and Ubuntu

Filed Under (Linux, Open source, Tips & tricks) by 2of1 on 29-03-2011

If you’re having problems with Hebrew text coming up all garbled with Wine under Ubuntu, here’s the solution:
Read the rest of this entry »

(2) Comments
Read More
« Older Entries
  • Recent Posts

    • ARM long branch
    • Mini-Namco #3: (Almost) Finished
    • Mini-Namco #2: Unit construction
    • Mini-Namco #1: Design
    • Simple C hashtable code
  • Archives

    • January 2012
    • September 2011
    • August 2011
    • July 2011
    • May 2011
    • March 2011
    • February 2011
    • January 2011
    • November 2010
    • October 2010
    • September 2010
    • August 2010
    • July 2010
    • June 2010
  • GitHub

    • code
    • d2d1headers
    • locateme
    • findjerusalem
    • seg7
    • userspace-krb
    • libgmail
    • preloader
    • linhook
  • qrcode

  • Site Search

  • Categories

    • Apps (7)
      • Preloader (1)
      • Symbian S60 (1)
      • VLC (4)
      • Wordpress (1)
    • Coding (28)
      • Assembly (1)
        • ARM (1)
      • C (12)
      • Compilers (5)
      • Direct2D API (4)
      • Linux kernel (2)
      • Networking (4)
      • Python (1)
      • Sqlite (1)
      • Version control (5)
        • Git (5)
    • Hacking (4)
      • Code injection (1)
      • Reverse engineering (3)
    • Hardware (4)
      • Arduino (1)
      • PCBs (3)
    • Linux (21)
      • Bash (1)
      • Tips & tricks (13)
      • Virtualization (1)
      • VNC (2)
      • Xmonad (1)
    • Open source (30)
    • Other stuffs (3)
    • Social (3)
      • DC9723 (2)
  • OctoFinderProgramming Blogs - Blog Catalog Blog Directory

    Locations of visitors to this page

© 2of1.