Monday, May 27, 2013

2013-05-27 Monday - Book Review

Database Design for Mere Mortals, Third edition, by Michael J. Hernandez
Addison Weseley
http://www.amazon.com/gp/product/0321884493

You can read my review here:
http://www.amazon.com/review/RR23UR4KIVUQH/ref=cm_cr_pr_perm?ie=UTF8&ASIN=0321884493

What a pleasure to read Michael J. Hernandez's recent update to Database Design for Mere Mortals, Third Edition

I wasn't familiar with this book previously, and so had the chance to write a fresh review with no preconceived ideas from previous editions.

First, the text is well organized
Second, the examples are clear and concise
Third, the principles and underlying ideas are explained so that the reader understands not just the WHAT, but the WHY

This book is an excellent reference book for the developer who hasn't yet established a solid grounding in database design concepts. The thoroughness with which Mr. Hernandez covers the subject matter will go a long way to smoothing any gaps in one's conceptual understanding and approach to database design.

Saturday, April 13, 2013

2013-04-13 Saturday - Go Programming Learning Resources

I'm spending some time today exploring the Go Programming Language
http://golang.org/
http://code.google.com/p/go/
http://code.google.com/p/go/source/browse
http://code.google.com/p/go/issues/list


Go Programming Language Blog
http://blog.golang.org/

Google Group: golang-nuts
https://groups.google.com/forum/?fromgroups#!forum/golang-nuts

...and working my way through some of the various articles and documentation
http://golang.org/doc/install
http://code.google.com/p/goclipse/wiki/GettingStarted
http://golang.org/doc/effective_go.html
http://golang.org/doc/code.html
http://golang.org/doc/articles/wiki/
http://golang.org/doc/


"GoClipse is an Eclipse plugin that adds IDE functionality to the Eclipse platform for the Go programming language. The purpose of GoClipse is to create an environment in which development of Go is easy for a beginner to intermediate user"
https://code.google.com/p/goclipse/

I've installed the goclipse 0.7.6 plugin  into Eclipse Juno (4.2) SR2
http://goclipse.googlecode.com/svn/trunk/goclipse-update-site/

 3:15pm update...

After experimenting with the goclipse plugin for a few hours...I've experienced what seems to be a number of issues with it...

1) The goclipse wiki documentation appears to be woefully out of date (see references to a non-existent /cmd directory)
See: http://stackoverflow.com/questions/9957449/cant-use-packages-in-goclipse

The goclipse exemplar code in the wiki (for the clock.go module) needs to be modified as follows:

package clock

import (
    "time"
)

func IsAM() bool {
    localTime := time.Now()
    return localTime.Hour() <= 12
}

2) Moving a directory/file from the pkg folder to the src folder doesn't appear to trigger auto-rebuild(?)

3) Directories/packages created under /src are not automatically detected by goclipse

4) Adding a new directory (in either src or pkg) to the build path doesn't appear to help goclipse find the source file

5) When executing via the Run-As command, a Go console sometimes (?) didn't open

6) Finding/Importing a system library in a source file under the /src directory failed (e.g. "time" - works fine, if the source file is under the \pkg directory, but won't work if it is in the /src directory)?

7) Creating a custom package in the /pkg directory can't be found
8) Sometimes(?) unable to delete the .exe generated in the \bin directory, from within Eclipse.




As of today, there were 51open issues for the goclipse project (which is 50% of all bugs to-date)
http://code.google.com/p/goclipse/issues/list

Note: there were [5] updates to the update site (under subversion)  in all of 2012 (rev 440 ==> 0.7.6) was the last on 12/18/2012  - and no updates in 2013 (yet)
http://code.google.com/p/goclipse/source/browse/

Google User Group for goclipse
https://groups.google.com/forum/?fromgroups#!forum/goclipse
NOTE: doesn't seem to be very active...


If you prefer vim or emacs as your editor, you may want to investigate Gocode (an auto-completion daemon) http://marketplace.eclipse.org/content/goclipse

For users of the Sublime editor:
http://www.sublimetext.com/2
https://github.com/DisposaBoy/GoSublime

Notepad++
http://go-lang.cat-v.org/text-editors/notepad-plus-plus/

Another possible IDE:
https://code.google.com/p/golangide/


stackoverflow articles that reference goclipse
http://stackoverflow.com/search?q=goclipse

Other blog postings related to using goclipse
http://richitexperience.wordpress.com/2012/10/19/goclipse_preferences/
http://richitexperience.wordpress.com/2012/11/05/goclipse-project-properties-dont-forget-it/

Interesting Blogs that discuss aspects of Go programming
http://blog.natefinch.com/2013/01/go-is-for-open-source.html
http://jordanorelli.tumblr.com/post/42369331748/function-types-in-go-golang

Other Go Language Resources
http://go-lang.cat-v.org/

John Graham-Cumming's CloudFlare presentation: Go Concurrency
http://www.slideshare.net/jgrahamc/go-oncurrency

A List of Go Projects
http://code.google.com/p/go-wiki/wiki/Projects

Tuesday, April 02, 2013

2013-04-02 Tuesday - Book Review, Database Design for Mere Mortals

Received a copy of a new book to review for Pearson Education.  Database Design for Mere Mortals by Michael Hernandez



Friday, March 22, 2013

Thursday, March 07, 2013

2013-03-07 Thursday - On Creativity


I've been pondering the proceses of creativity and inspiration lately...and happened to stumble upon the excellent  brainpickings.org - where I found these two gems:


John Cleese on the 5 Factors to Make Your Life More Creative [link]

...which ties in nicely with this quote...
"A wise man once said that all human activity is a form of play. And the highest form of play is the search for Truth, Beauty and Love. What more is needed? Should there be a ‘meaning’ as well, that will be a bonus?
If we waste time looking for life’s meaning, we may have no time to live — or to play."
- Arthur C. Clarke [link]

Some of the 'triggers' I usually find helpful in stimulating my own creative thought processes:

  • A long drive.  Some of my best thinking - and innovative breakthroughs to problems - have occured while driving along the coast, or through the countryside
  • Walking through a museum or gallery.  When I lived in the Washington D.C. area - a favorite Sunday activity was to walk through the National Gallery of Art - where I fell in love with one particular painting [Ships in Distress off a Rocky Coast], by Ludolf Backhuysen, a Dutch painter who lived from 1631-1708. 
  • Quiet Contemplative Meditation after a vigorous workout or 
  • A long run.
  • A long hot shower
  • A professional one hour massage, followed by a sauna
  • Reading  deeply on a complex, subject completely unrelated to the problem at hand.  Somehow the mind finds the tangents and serendipity spreads her magic dust - and Viola! - inspiration arrives with a grand entrance.
  • Music. Vivalidi's Four Seasons, for some reason, has the power to inspire me in ways that are hard to describe.




Sunday, March 03, 2013

2013-03-03 Sunday - OAuth 2.0 ?


This post is a reminder for me to come back and do some additional reading on a few interesting things I found this weekend...

 hapi appears to be an interesting Node.js HTTP Server framework which is under development - led by Walmart Labs

This led me to Eran Hammer's personal web site [http://hueniverse.com]

...which led me to some interesting things he has said about OAuth 2.0
http://hueniverse.com/2012/07/oauth-2-0-and-the-road-to-hell/
http://hueniverse.com/2012/11/fuckoauth-realtimeconf/


 He's also written a series of articles about his experience working with Node.js
http://hueniverse.com/2011/06/6-months-with-node-js/
http://hueniverse.com/2011/06/the-style-of-non-blocking/
http://hueniverse.com/2011/06/node-js-from-couch-to-mongo/

Sunday, February 17, 2013

2013-02-17 Sunday - JDK 8


link to the JDK 8 Milesstones
http://openjdk.java.net/projects/jdk8/milestones

2013-02-17 Sunday - Graphing in the Browser


I've been interested for a number of years in the Graphviz tool.

It seems to me that there are some interesting uses that this type of tool would lend itself to quite well...

Recently I wondered if a JavaScript implementation might have already been developed...and found the following that might be of interest to others:

http://code.google.com/p/canviz/

http://ushiroad.com/jsviz/

https://github.com/mdaines/viz.js


Another possibly interesting JavaScript library, along similar lines, might be jsPlumb

http://code.google.com/p/jsplumb/

https://github.com/sporritt/jsPlumb

http://jsplumb.org/doc/usage.html

Some blogs/articles that reference graphviz usage:

http://spin.atomicobject.com/2013/01/30/making-diagrams-with-graphviz/