Posts By jhaluska

Most programmers should learn Regular Expressions

There was a time when I didn’t know regular expressions.  Lately I have been having to parse a lot of textual based files, and I have found even a small use of regular expressions speeds up my development.  However, I think the problem is if you try to do everything with them, then you’re using them wrong.  I think this is mainly due to the fact that it’s hard to comment a regular expression.  So if you can’t quickly look at the regular expression and figure out what it means, it’s no better than code you can’t read.

One site, that I have used a lot when programming regular expressions is https://regex101.com/.  It makes writing and understanding regular expressions much easier.

How a Transistor Works

I have used computers for decades now but I never fully understood the physics behind a semi conductor until I watched this short educational video.

Transitor Schematic Image

Transitors!

The $1 MP3 Player

I saw this referred to on Reddit.  Although it lacks headphones, a memory card, or even a USB cable.  You can apparently buy an MP3 player off Ebay for $1.  Or about $1.50 shipped.  I remember buying an MP3 player for $200.  I’m tempted to buy one just to take it apart or to use as some sort of a small mobile product case.  I find this a bit mind blowing.

Picture of the Mini Mirror Surface Clip

Mini Mirror Surface Clip

Linux-based clock radio

I found this really amazing as I had thoughts of doing something similar.  This gentleman overhauled his alarm clock to run Linux.

SpriteMod's Linux Alarm Clock

 

Faking out WebClient

I spent an hour or two to find this correct solution for how to unit test System.Net.WebClient in Visual Studio 2012.  I found one page that actually had a minor typo in the implementation that caused me quite of a bit of aggravation.  I won’t link to it, cause I don’t want to bump it up higher on Google.  Here’s what my System.Fakes looks like:

<Fakes xmlns=”http://schemas.microsoft.com/fakes/2011/”>
<Assembly Name=”System” Version=”4.0.0.0″/>
<ShimGeneration>
<Add FullName=”System.Net.WebClient”/>
</ShimGeneration>
</Fakes>

I’ve been experimenting with writing unit tests as I write my code.  I find it a very organic way of development and makes the unit tests almost free.  My experience so far is that unit tests are best for back end testing.

Circuit Playground

Adafruit Industries started a series of YouTube videos aimed at people new to electronics called Circuit Playground.  I consider myself a hobbyist electrical engineer, and am always looking for videos to keep my knowledge correct and up to date.  These videos feel like Sesame Street crossed with an introduction to Electrical Engineering.

Quad Core Arm Computers

I have always been fascinated with small computers.  I have a Chumby, some ZipIt Z2s and I had a plug computer that recently died.  I’ve been considering replacing the plug computer with a small Linux arm computer.  My prerequisites are: Wired Ethernet, Silent, Low Power, ability to host source control and ssh.  Video output would be nice.  I have been hesitant to spend too much, because I have previously bought them and barely used them.  So far I have seen two contenders, NanoPC-T1 and the ODROID-U3.

I am a bit of a tech hoarder, so I have to liquidate some previous older computers before I buy anything new.

I ran into a very funny programmer related web comic called CommitStrip.  Some of the jokes hit very close to home, much like the above strip.  I work incredibly hard to make my code clear, concise and readable by other people, but there is still a level of unfamiliarity that makes learning another person’s code difficult.

 

My longtime friend Pavan Tumati has a great blog, The P-Tumati Distribution, dealing with hardware and software.  He has an eclectic range of technical skills and posts.  He is always pushing me to learn something new.

Coder Radio Podcast

I consider myself a generalist when it comes to software development, but I know I have gaps in my knowledge base.  If you are the sole programmer or surrounded by people who do not show a desire to learn new things, it is very easy to become obsolete and irrelevant.  As hardware keeps progressing forward, software engineers keep adding additional abstraction layers to increase productivity.  Knowing these abstraction layers and other technologies is difficult even if you try to learn something new every day.  To balance out my finance and science heavy podcasts, I have added Coder Radio to my list.  I have finished six episodes and so far the content is great for software engineers.  I like it because the host works in an area foreign to my daily development.

I typically listen to podcasts when commuting to and from work and doing chores on the weekend.   I have tried to balance the content generation with the consumption, unfortunately there is only so many hours in a week.