func log(s ...interface{}) { f, err := os.OpenFile("info.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) if err != nil { fmt.Printf("error opening log file: %v", err) os.Exit(1) } defer f.Close() log.SetOutput(f) ss := "" for _, p := range s { switch p.(type) { case bool: ss += fmt.Sprintf("%t ", p.(bool)) case int: ss += fmt.Sprintf("%d ", p.(int)) case float64: ss += fmt.Sprintf("%.2f ", p.(float64)) case string: ss += fmt.Sprintf("%s ", p.(string)) } } log.Println(ss) }

I don't play the lottery but I find random number generators and the Linux Kernel interesting so I wrote a simple Linux Kernel module that does a PowerballTM "quick pick".   You can download it from GitHub: https://github.com/gdonald/linux-kernel-powerball-module

Ever want to know how to drop an argument (and value), --dir in this case, from a Bash script? Someone from my local LUG asked how to do it and this is what I came up with: Fun ;) #!/usr/bin/env bash args=("$@") myargs=() nextarg=-1 for ((i=0; i<$#; i++)) { if [ $nextarg == $i ]; then continue; fi case ${args[$i]} in --dir) nextarg=$((i+1)) ;; *) myargs+="${args[$i]} " esac } echo $myargs ./remove_dir.bash --dir foo --bar baz --bar baz
Recently some guys from my flying club were circulating an email filled with FUD about the latest incoming Microsoft virus. Here is the response I sent them: Why not just use an operating system that doesn't require participation in the Microsoft/Norton/McAfee virus racket to start with? I've made a career out of replacing virus ridden Microsoft software with free open source Linux software. I don't have a "high up" Microsoft status like "Dave's brother", nor would I ever want one. In fact I'd imagine Microsoft thinks of me and my kind as enemies of the state. And that's fine.. meanwhile I never have virus infestations because I simply don't use broken M$ software that is vulnerable to virus attacks. Don't get me wrong, I do use some Windoze-only software.. RealFlight for example. But I only do this using Wine, a free open source Windoze emulator that runs on Linux. As a result I've never purchased or ran any Norton or McAfee products or participated in the virus protection racket at all. Un
It doesn't seem you can lose data even when you might otherwise expect to ;) I setup a small replica set using mongod --fork --logpath a.log --smallfiles --oplogSize 50 --port 27001 --dbpath data/z1 --replSet z mongod --fork --logpath b.log --smallfiles --oplogSize 50 --port 27002 --dbpath data/z2 --replSet z mongod --fork --logpath c.log --smallfiles --oplogSize 50 --port 27003 --dbpath data/z3 --replSet z And initalized it: > rs.initiate( { _id:'z', members:[ { _id:1, host:'localhost:27001' }, { _id:2, host:'localhost:27002' }, { _id:3, host:'localhost:27003' } ] } ); Then I killed all three processes: kill -9 25542 25496 25483 Next I brought one of them back up mongod --fork --logpath c.log --smallfiles --oplogSize 50 --port 27003 --dbpath data/z3 and inserted a doc > db.foo.insert({a:1}) Then I killed that process kill -9 25885 and brought the replica set back online using mongod --for

alias ls='ls -ah --color=always' alias ll='ls -lavh --color=always' alias cp='cp -i' alias vi='/usr/bin/emacs' alias ..='cd ..' alias ...='cd ../..'

I made a gourse movie from CallProof src :)
Here are the URLs for creating a Google Single Sign On. Access Google OAuth via your web server: http://code.google.com/apis/accounts/docs/OAuth2WebServer.html Google Access Tokens: https://accounts.google.com/b/0/IssuedAuthSubTokens Google APIs: http://code.google.com/apis/gdata/docs/directory.html Android OAuth: https://sites.google.com/site/oauthgoog/oauth-practices/mobile-apps-for-complex-login-systems/samplecode#TOC-3.2.-Android Service Connection Example: http://developer.android.com/training/id-auth/authenticate.html#ConnectToService Google OAuth Playground: http://googlecodesamples.com/oauth_playground/ Google Data AuthScopes: http://code.google.com/apis/gdata/faq.html#AuthScopes Google Python Client Library: http://code.google.com/p/google-api-python-client/ Google Oauth2 Login: http://code.google.com/apis/accounts/docs/OAuth2Login.html
If you want to leave Github for whatever reason, you probably want to take all your code with you, and all your history and branches, etc. Here's an example for how I moved my Android Eclipse workspace from Github to my own remote server. First I make a new git repo on my remote server: $ git --bare init ~/git/workspace The --bare option means I'm not going to work on the code in the remote git repo directly. Next I push my current local 'master' to the new repo: $ git checkout master $ git push ssh://me@myserver.com/git/workspace master After that I push my working branch: $ git checkout work $ git push ssh://me@myserver.com/git/workspace work You could repeat this step if you have more branches. I created my local repo using 'clone' so it has an 'origin' remote branch defined. This 'remote' branch is where git fetches and pushes changes. Right now my 'fetch' and 'push' remote origins point to Github: $ git remote -v git@github.com:gdonald/workspace.git (
Here's the part where Apple proves iOS isn't ready for "Enterprise" apps: NSString *p=@"/private/var/wireless/Library/CallHistory/call_history.db"; sqlite3 *d; if(sqlite3_open([p UTF8String], &database) == SQLITE_OK) { NSLog(@"call_history present"); } else { NSLog(@"Failed to open database with message '%s'.", sqlite3_errmsg(d)); sqlite3_close(d); }
   Recent articles
Console Blackjack in Elixir
Git commands for pair programming
Change default SSH port on Fedora
Console Blackjack in Crystal
Nautical War
   Tags
android (1) apache (1) apple (1) bash (2) bashrc (1) battleship (1) blackjack (9) c (2) c++ (1) callproof (1) clang (2) clang++ (1) console (2) crm (1) crystal (1) data (1) debian (4) diff (1) django (2) elixir (1) enterprise (1) fedora (1) firewall (1) freebsd (1) g++ (1) games (1) gcc (1) git (4) github (1) gmail (1) go-lang (3) google (1) gourse (1) kernel (3) latin1 (1) linux (4) lottery (1) microsoft (1) module (1) mongodb (1) mp3s (1) mutt (1) nautical (1) pairing (1) pair-programming (1) patch (1) perl6 (1) postgresql (2) powerball (1) psql (1) python (2) python3 (1) raspberrypi (1) reactjs (2) reversi (1) sdl (1) sed (1) selinux (1) ssh (1) stack (1) testing (2) trace (1) typescript (2) ubuntu (2) utf8 (1) virus (1) war (1)
   Twitter

Copyright © 2019

GregDonald.com · Contact

All Rights Reserved