Things I would like to Learn/Experience/Improve-Upon This Year [2013]

Since this is the time of the year that many making resolutions relating to self improvement, here are a few of mine:

  1. Finally get around to learning GridGain.   [I would love to see a well published book, or at least a Kindle eBook to get some headway on this] HazelCast would also be interesting, but GridGain has more of what I’m looking for.
  2. Finish the massive tomb that is “Groovy In Action”
  3. Finally understand how network routing works.
  4. Get more experience with DNS, and DNS tools
  5. Master NMap [not just learn the basic uses of it, but to really excel with the tool] This would be similar with the reading up on SSH I did last year.
  6. Get up to conversational level German. [Living outside of German speaking nations makes this incredibly difficult]
  7. Finally develop some strong time management habits.
  8. Learn how to use Python [to the point where you can do some cool stuff with it]
  9. Learn R [rather than haphazardly hack]
  10. Meet/talk with some of the gurus of airfare scheduling/decoding, and the famous Tom Stuker.
  11. Learn how to use GraphViz [This is one of the odd ones here, but it’s interesting]
  12. Get better with Erlang and to find/make real world uses.
  13. Learn/Create a GUI in Apache Pivot, and a web interface with either Stripes and/or Wicket.

How am I planning to accomplish these things? Having goals, and putting them on my task list.

Currently, I am reading up on Maven, and Groovy. I read a book on GIT, and got some practice w. A review of the strengths and weaknesses may be coming up in a later post on this blog.

To the 1.5 readers left reading this blog: What are your goals for the New Year? Leave the response as a blog post linking back to this post or in the comments below.

Some of the Articles/Links/Video That I found Interesting in the Last Week

  • System Rebuild for Gentoo– This is the equivalent of formatting your computer and installing everything to the latest version. It will rebuild your dependencies and any new use flags that you may have added after the install.
  • SVN Status Codes– If you are dealing with the SVN command line client, this will explain some of the non-obvious status codes. [I.e. L and +]
  • Brute Force Hash Checker– This is an interesting attempt at speedily generating hashes [for the generation of rainbow tables] by using GPUs.
  • Torturing Interview Candidates: I’ve seen many of these techniques employed in interviews. I’m rather pleased that someone brought these to light.
  • How John Deer Uses R–  this was more of a presentation of a case study. However, it was quite interesting how some that is incredibly accessible is being used to benefit business decisions. I’ve done a few things with R, but its something I’d like to learn better.

Really Cool Things I’ve Learned This Week (R, Random Numbers, Java, Hypervisiors, and fan maintenance)

Within the last week I’ve learned a few interesting and strange things:

  • Given the right connectors, R and PostgreSQL can work with each other to produce graphs, and use each other’s functions. I believe that the strongest use forthesetoolsare: to create windowing functions that aren’t already provided in PostgreSQL and to generate charts directly from the database.
    • R can operate within PostgreSQL with the Pl/R module. This means that you can create a graph from an SQL query. In addition, with Pl/R, you can make R functions callable from SQL. For an example on getting Pl/R to work, and generate a graph see this. One example, is that R can provide an aggregate function, that PostGreSQL does not contain: median. Warning: At this time, PostgreSQL 9.1 is the most recent supported DB for Pl/R.
    • R can work with PostgreSQL with the RPostGresSQL driver. This is pretty cool, as that the data it brings in is an ordinary data frame, in-which you can perform any R related function as if it came from any other source. Instructions can be found on it’s project page.
    • This may sound crazy, but the lack of random numbers on Linux may cause WebLogic to double the time needed to start. My own personal test has confirmed this to be the case. This is typically an issue with Linux, /dev/random’s behavior, and WebLogic’s usage of SecureRandom [Java].  Under Linux, SecureRandom uses /dev/random for its default source of random numbers. However, under Linux /dev/random blocks until it can get the next random number, and the numbers are based on activity from system drivers.  Within a VM, the performance of /dev/random is exacerbated by a lack of driver noise. As of the time of writing, the only hypervisor to provide a driver to assist in this issue is KVM; VMware and Xen do not provide a driver. The solutions provided by Go-Integral are: redirect /dev/random to urandom(not advisable), use a hardware key, use a broker, or use the hypervisor driver (if it exists).
      • TL;DR: Using VMs and plan on generating lots of random numbers for SSL and/or crypto? Use a hardware key, entropy broker, or a hypervisor driver if you’re using KVM.
    • Recently, a lower powered box that I own refused to operate. This was due to a fan underperforming, and would let the box get too hot, to the point that the BIOS just halted the machine from running. Instead of replacing a functional fan, I found out that a little machine oil [for sewing machines] can actually fix the issue. Oiling the fan should be in every computer user’s periodic maintenance schedule along with backing up their data, and cleaning out the dust. Due to fan size this is incredibly important on laptops and GPUs.
    • If you need numbering for groups within a PostgreSQL query, you should use the rank function. It is a Windowing function, that will give you the number for that particular group, based on a criteria. See the documentation yourself for a better explanation.