- Code Academy
Code academy offers a self paced webpage and example code editor (You read the goal of a particular section then type code into the sample editor to progress)
This is great if you have at least a minimal understanding of how to write code, or are very self driven to learn.
If you like a little more hand holding/video interaction this might not be for you. - Learn Python the Hard Way (It's actually really easy)
This eBook by Zed Shaw is generally considered one of the best beginners texts. If you want a solid understanding, and can follow Zed's simple steps you will learn python. - Learning Interactive Python
Finally if you think you'd do better in a group setting, there's an AWESOME Coursara class that takes you though python. I would strongly recommend finishing Zed Shaw's book first.
Sunday, May 5, 2013
Learning Python
A friend asked me last night if I could show him how to learn python. Here's my best attempt at explaining a few of the most popular options.
Tuesday, April 30, 2013
Is Anti-Virus Software Worth the Hassle?
The question of anti-virus effectiveness recently came up in my office. Personally, I have a difficult time defending the performance hit that AV software causes, and an even harder time justifying the cost.
As a fun exercise, I thought it might be useful to look for an answer to the following question:
If no reliable antivirus software existed, how would you defend your network/systems?
We're currently looking at an AV free solution for our environment that I'll share once we're up and running.
You can follow the conversation here:
Friday, March 1, 2013
Why I can't use a MacBook Pro (Part 1)
Recently a friend at work, Kevin- another engineer, encouraged me to change my work flow. Instead of my Levovo x220 Thinkpad I would change both Hardware and OS to use a MacBook Pro 15" running OS X(10.8.2). The following is my experience since getting the device home and using it to write this blog post.
Kevin and I often have bouts of 'productivity porn', referring to a situation where discussion about the best method to do something overtakes the time it would take to simply perform a task by even the most obtuse of methods. Recently my own productivity perversions were brought on by my x220 losing wireless connection 2-3 times a day. The issue is most likely related to the driver Ubuntu is using for my wireless card, and can easily be resolved with a system restart, but I tire quickly of troubleshooting my own equipment during my work day and my mind moves to enticing thoughts of a new workflow.
Kevin is no stranger to a multitude of operating systems, but consistently finds himself at home in OS X. He is always happy to act as an Apple field guide, and I couldn't ask for a better genius on apple key commands. On hearing my current plight he grabbed a Macbook off the shelf (we work Ops for a school district and have a few extra on hand) and quickly brought me up to speed.
Things seemed simple enough. I could right click with a clever two finger touch, getting to a terminal window was pretty easy (although I still miss ctrl+alt+t) and there was a settings icon in my dock to tweak things the way I liked. I grabbed a stand on my way out the door and after a few minutes at home I'd reconfigured my Ergotron sit/stand desk to work with my new muse. I pulled out a book on iPhone programming I picked up a while back (before discovering that xcode only ran on OSX) and attempted to hack away.
Within the first few clicks, I was frustrated. I like a 5 button mouse. The concept of a single touchpad has always frustrated me. I was quite happy to see that OS X responded to my Logictech MX518 (my mouse of choice for all around use). I was befuddled to find that my "Back" button simply changed my pointer into a scroll box while using Chrome. (I wanted to have a nice photo here demonstrating this, but I couldn't find an equivalent to "Paint" to paste my screenshot into. I did however search spotlight and inadvertently open Photo Booth)
See my expression upon finding not finding paint:
While I can't promise that I was entirely unbiased in my review, I will say that this is the third time I've attempted to use a Macbook and I've tried to be as fair as possible.
Kevin and I often have bouts of 'productivity porn', referring to a situation where discussion about the best method to do something overtakes the time it would take to simply perform a task by even the most obtuse of methods. Recently my own productivity perversions were brought on by my x220 losing wireless connection 2-3 times a day. The issue is most likely related to the driver Ubuntu is using for my wireless card, and can easily be resolved with a system restart, but I tire quickly of troubleshooting my own equipment during my work day and my mind moves to enticing thoughts of a new workflow.
Kevin is no stranger to a multitude of operating systems, but consistently finds himself at home in OS X. He is always happy to act as an Apple field guide, and I couldn't ask for a better genius on apple key commands. On hearing my current plight he grabbed a Macbook off the shelf (we work Ops for a school district and have a few extra on hand) and quickly brought me up to speed.
Things seemed simple enough. I could right click with a clever two finger touch, getting to a terminal window was pretty easy (although I still miss ctrl+alt+t) and there was a settings icon in my dock to tweak things the way I liked. I grabbed a stand on my way out the door and after a few minutes at home I'd reconfigured my Ergotron sit/stand desk to work with my new muse. I pulled out a book on iPhone programming I picked up a while back (before discovering that xcode only ran on OSX) and attempted to hack away.
Within the first few clicks, I was frustrated. I like a 5 button mouse. The concept of a single touchpad has always frustrated me. I was quite happy to see that OS X responded to my Logictech MX518 (my mouse of choice for all around use). I was befuddled to find that my "Back" button simply changed my pointer into a scroll box while using Chrome. (I wanted to have a nice photo here demonstrating this, but I couldn't find an equivalent to "Paint" to paste my screenshot into. I did however search spotlight and inadvertently open Photo Booth)
See my expression upon finding not finding paint:
I want to give the MacBook a fair shake.
The next few sentences describe the madness that lead to the title of this post.
Upon my disappointment with back-clicking, I cleared the scroll button and attempted to scroll. Whats this? Up is Down and Down is Up! Why is deviation from generally accepted norms considered innovative? Yes, I understand that the scrolling is an attempting to math the two finger scroll experience on the touchpad - but I'm not using the touchpad. Was it too much to anticipate the expected behavior of a mouse might differ from the touchpad? "No matter, I will simply venture into my system preferences and change things." I thought. 'Natural' they call it. I disagree. Also killer to my workflow are the suddle but important variations in key shortcut. CTRL+C and CTRL+V are replaced by command+C and command+V respectively (This is further aggravated by the fact that on my external keyboard the windows key becomes the command key). Yes, I could probably find a blog post somewhere explaining how to change these defaults (or simply ask Kevin) but then I am no longer part of the shared OS X experience. Why do I need to overtly custom tweak a device out of the box? I've worked with computers all my life, and I feel like a concert pianist that has suddenly been handed an accordion. This is not out of the box user friendliness.
While in mouse preferences I looked for anything that referred to my 3-5 mouse buttons. No Joy. I was able to move my Dock to the side, and even adjust my background colors. The most upsetting experience so far has been the general "slowness". Certain tabs within the OS X settings sometimes take 5-8 seconds to load. We're talking tabs like "Screen Saver" switching from option to option was painful. How.. WHY does anyone use this?
On the plus side, I did manage to open Chrome and complete the blog post on the MacBook. Unfortunately, even the experience of blogging was grating as the home button inexplicably acts as "Select All" while the end key acts as expected. Xcode is now installing... lets see how coding goes tomorrow.
Thursday, February 21, 2013
McDonalds! Now Back to our show...
Sony recently filed for a patent on what I would describe as Pavlovian advertising. Users could be encouraged to end commercials faster by acknowledging that the branding had taken effect.
In Sony's example, the user shout's "McDonalds!" to end the commercial. The gamification of advertising is a cool concept, but I'm not sure if I like being conditioned to shout every time I see the Golden Arches.
Sunday, February 3, 2013
I was recently asked by a friend what it takes to "Learn to code" on the web.
To me, this response was probably helpful to those just starting out.
1. When you say "Learn HTML" You're really talking about learning what's commonly referred to as the DOM (Document object Model). That's really just a complex way of saying "Hey, I need to know how browsers are supposed to behave so that I can format the output of my information correctly, using things like tables, classes and id's." This is a good thing to be familiar with for doing any kind of programming for the web.
2. You don't really want to learn MySQL. MySQL isn't a language so much as a script for putting information into and getting it out of a database. More likely you want to "learn" PHP, Python, javascript, or Ruby (If you're into bondage)
You then use that language to inject MySQL statements into your code, so that you can interact with a database.
If you want to jump start from here, you can google "Using MySQL with PHP" or any other language you like.
(Of note is that Javascript is currently the new hotness, even though things like facebook still run on really advanced versions of php. You may also run into "other" types of 'NoSQL' databases, but don't worry about them until you have a good understanding of MySQL)
3. You can easily setup your own rig for less than $10 a month for a public facing playground (check out rackspace for starters, or you can just install a LAMP stack (Linux/apache/mysql/php) on your own home rig for learning purposes. Building/installing your own setup gives you the best understanding of how it all works.
4. Most important, don't get hung up on "learning" the language. Just do a thing. You know what what you want to do..
Example:
"I really wish I had a page for storing mega links in a DB, and then displaying them"
Ok, that's something that's been done 1000 times over. Do it. who cares if it's shit.
Once you get past that first hurtle you can always say "I wish it did this.." Then google that, improve it, rinse, repeat.
That's how you learn to code. Formal classes just place a false pressure on you to do so.
2. You don't really want to learn MySQL. MySQL isn't a language so much as a script for putting information into and getting it out of a database. More likely you want to "learn" PHP, Python, javascript, or Ruby (If you're into bondage)
You then use that language to inject MySQL statements into your code, so that you can interact with a database.
If you want to jump start from here, you can google "Using MySQL with PHP" or any other language you like.
(Of note is that Javascript is currently the new hotness, even though things like facebook still run on really advanced versions of php. You may also run into "other" types of 'NoSQL' databases, but don't worry about them until you have a good understanding of MySQL)
3. You can easily setup your own rig for less than $10 a month for a public facing playground (check out rackspace for starters, or you can just install a LAMP stack (Linux/apache/mysql/php) on your own home rig for learning purposes. Building/installing your own setup gives you the best understanding of how it all works.
4. Most important, don't get hung up on "learning" the language. Just do a thing. You know what what you want to do..
Example:
"I really wish I had a page for storing mega links in a DB, and then displaying them"
Ok, that's something that's been done 1000 times over. Do it. who cares if it's shit.
Once you get past that first hurtle you can always say "I wish it did this.." Then google that, improve it, rinse, repeat.
That's how you learn to code. Formal classes just place a false pressure on you to do so.
Saturday, December 1, 2012
Monday, April 16, 2012
Adding Computers to AD by Command Line
Just finished a new write-up. This one is on adding multiple computers to Active Directory by command line. Recently at my job we needed to pre-populate AD with about 700 computer accounts. This utility, native to windows, saved a considerable amount of time.
Subscribe to:
Posts (Atom)


