Wednesday, May 8, 2013

Why I Want to be an Engineer

Term paper for a generic Intro to Engineering class.

Should I be an engineer? Surely this is a question every student wrestles with at some point. Many who ask it may decide not to become engineers. While it may be a tough decision for some, it's a given for me. I love designing, analyzing, building, and testing systems. I thrive on tough situations – there's nothing that gets my brain going quite like a malfunctioning circuit or a buggy piece of software.

I embarked on the path to becoming an engineer early in life. It began with taking things apart – as a child, I would disassemble anything I was given the chance to. At eleven, I completely disassembled the old laptop my dad had given me so I could replace a noisy fan. When I put it back together, the fan had been silenced and my laptop was lighter by a couple of screws – but it still worked!

I owe much of my inspiration in recent years to my past – and only – employer. An entrepreneur and engineer himself, he once told me that he used to have a keen interest in bird watching. Once he knew all of the birds in his area, he got bored and moved on to electronics. He hasn't gotten bored yet. I have never had an interest in bird watching, but I certainly have never gotten bored with engineering.

My boss also taught me the importance of moving the status quo. When I started working at his company, I was given the freedom to work on a number of extremely interesting projects. As time went on, rather than working on important projects that would have an impact on our industry, my time was spent on menial projects that were barely related to my area of interest. When I proposed new projects that would move the company forward and set them up to have products to sell in ten years, they were shot down for being too ambitious, too complicated, or too expensive. When I quit four months ago, the company was scrambling to piece together a prototype that was strikingly similar to something I proposed almost two years before. They were hopelessly behind the industry and will release one or two product iterations that are painfully expensive and time consuming. Even then, they'll probably never catch up. The lesson I learned: move early. If you wait for the market to tell you what to do, you'll always be behind. Sometimes you can succeed by fulfilling a market's obvious demands, but to truly make a difference you have to be the one who reads the cards and takes the market to the next level.

A desire to move the status quo is why I'm hoping to intern at Upverter in the coming months. They're a small Candadian startup doing work in the electronic design automation (EDA) space. While the product they're creating isn't essential yet, it has the potential to change how we design and test electronic systems. This is no easy goal, but for something that could transform the EDA market before this decade is out, it's worth the effort.

Engineering is not for everyone, but it is everything for me. I find engineering intriguing, exciting and fulfilling. If I have changed the world by the time I die, I will rest easily. I do not ask to be remembered and I care little if my name stays around, but I want to leave the world a better place than it was when I entered it.

Thursday, May 2, 2013

How We Can Fix Intro to Engineering Courses

Intro to Engineering courses are a necessity.

Most Intro to Engineering courses are useless.

Intro to Engineering courses exist to help engineering students get a job after college; to help students bridge the gap between academia and a career. The problem with these intro courses is that they can't evolve quickly enough. Engineering is changing, but the courses haven't caught up.

Now, here's how we can fix them:
  • Stop using the old textbooks. I don't care who wrote it or when it was written, an Intro to Engineering course shouldn't focus on one text.
  • Start using social media. Assignment idea: Have students contact someone in the industry that they respect with as many questions as they can fit within a tweet. Of course, allow those without Twitter accounts to attempt an email contact.
    • Contacts are everything, right? Teach students how contacts are made in the modern world.
  • Industry mags and blog posts from experts are important. If a class must contain 'summarize and respond' assignments, let students pick articles or posts they care about. The quality of their responses will instantly improve. 
  • Presentations are important, powerpoint is not. Don't put artificial slide count requirements on presentations, this only reduces the number of good slides in a presentation.
  • Focus on solo presentations. There are times when presentations must be given as a group. Even so, when learning public speaking, working as a group can be extremely stressful and provides little return. Don't force students to work with a group, especially on their first few presentations.
PS: I'll write a post detailing what was wrong with the Intro to Engineering course that I took later on. I am publishing this post first because I'd rather focus on things that can be improved rather than rag on things that are broken.

Thursday, April 25, 2013

Converting LMDE into Debian Testing: Results

Yesterday, I replaced the LMDE entries in my sources.list with entries for Debian Testing. Then I ran a dist-upgrade.
685 upgraded, 10 newly installed, 1 to remove and 0 not upgraded.
Need to get 581 MB of archives.
After this operation, 32.8 MB disk space will be freed.

I'm not sure exactly how long the process took, but it was done within a couple hours. When I came back to my laptop, all text was invisible. This problem went away after a reboot.

I haven't removed all installed mint packages yet, and I plan to stay with Cinnamon. As such, everything feels quite the same. In fact, I'd have a hard time pointing out any changes at all. The only significant thing I've gained from this endeavor is the knowledge that my packages will now be more up to date.

Wednesday, April 24, 2013

Converting Linux Mint Debian Edition (LMDE) into Debian Testing

Linux Mint Debian Edition is built on Debian Testing. After months of dealing with flaky mirrors and a not-so-impressive distro, I decided it was time to flip the switch. (Other than Cinnamon and/or MATE, Mint doesn't offer much.)

I am going to attempt to perform an in-place switch by modifying my sources.list. We'll see how it turns out - either it will work, or I'll be installing Debian Testing later tonight.

I generated a new sources.list from http://debgen.simplylinux.ch/.

Old sources.list:
deb http://packages.linuxmint.com/ debian main upstream import
deb http://mirror.metrocast.net/linuxmint-debian/latest testing main contrib non-free
deb http://mirror.metrocast.net/linuxmint-debian/latest/security testing/updates main contrib non-free
deb http://mirror.metrocast.net/linuxmint-debian/latest/multimedia testing main non-free

New sources.list (for x86-64)
deb http://ftp.us.debian.org/debian testing main contrib non-free
deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free

# Third Parties Repos

# deb-multimedia.org
deb http://www.deb-multimedia.org squeeze main non-free

# Oracle VM VirtualBox # Don't care to have right now.
# deb http://download.virtualbox.org/virtualbox/debian wheezy contrib non-free

I'll check in later and let you know how it goes!

Thursday, March 14, 2013

Bridging Upverter and OSHPark

Upverter is the best online circuit creation platform, and OSHPark is one of the best circuit board production services. Put the two together, and you should find bliss - but you won't. Anyone who has had an Upverter-designed board built by OSHPark will be familiar with this problem. When you download gerbers from Upverter, you get a zip full of files like bottom_copper.ger and top_paste.ger. OSHPark, on the other hand, wants names like Bottom Layer.ger and Board Outline.ger.

Here are the name transformations - each pair consists of the Upverter name followed by the OSHPark name. If a file isn't listed here, it should not be uploaded to OSHPark.

var filepairs = new TupleList<string, string>
{
 { "layers.cfg", "layers.cfg" },
 { "hole.ger", "Drills.xln" },
 { "mechanical_details.ger", "Board Outline.ger" },

 { "top_copper.ger", "Top Layer.ger" },
 { "top_silkscreen.ger", "Top Silk Screen.ger" },
 { "top_solder_mask.ger", "Top Solder Mask.ger" },

 { "bottom_copper.ger", "Bottom Layer.ger" },
 { "bottom_silkscreen.ger", "Bottom Silk Screen.ger" },
 { "bottom_solder_mask.ger", "Bottom Solder Mask.ger" }
};

I wrote a quick C# command line app to do the transformation automatically. If you drop a Upverter zip onto the app, it will create an osh_ zipfile using the OSHPark naming conventions.

You can find the source and the binary at https://bitbucket.org/George_Hahn/upvertertooshpark.

BONUS: Create a shortcut to the binary in the %APPDATA%\Microsoft\Windows\SendTo directory! This will allow you to right click on an Upverter zip and choose Send to: OSHPark!

Sunday, March 3, 2013

The Roles of Professors

This is an assignment I wrote for my "Intro to Engineering" class. 

Reflection: Important Roles for Professors

I disagree with three of seven items shown on the list of important roles for professors. Here's what I disagree with and why.

Give you the benefit of the doubt on a borderline grade
I am a student, not a case for charity. If my professor feels I deserve the higher of two grades, fine, I'll take it, and I'll appreciate it. In the end, though, I really don't care what they do. All I value is that my grade represents an objective view of my proficiency in a subject and the effort I put in. If a professor grades hard, that's not an issue with the professor, that's an issue with my proficiency.

Monitor your progress and hold you accountable for your performance
I am a student, I can take care of myself. I don't need a figure of responsibility to hold my hand throughout the learning process. Like I said before, all I ask from my professors is that my grade be representative of my skill in the subject they are teaching.
 
Nominate you for scholarships or academic awards
I am a student, I have to pay for my own schooling. Applying for scholarship and other excellence-based awards is my job, not my professors'.

Now that I am thoroughly offended by this list, I suppose I might share the four things I do appreciate from a professor. Provide you with invaluable one-on-one instruction. Give you academic advising, career guidance, and personal advice. Help you find a summer job in industry and even hire you on their research grants. Serve as a valuable reference when you apply for jobs, either while you are a student or after you graduate. Perhaps I was wrong to claim I agreed with four of the items. Two and two halves is more accurate.
---
Studying Engineering, by Raymond B. Landis has some helpful content and useful bits of common sense - this is not one of them.

Saturday, February 16, 2013

Listing a Product on Tindie

Late last month, I designed a simple micro USB breakout board on Upverter. I would have bought Sparkfun's breakout, but it does not expose the ID pin - which I needed. I ordered the tiny PCB from OSH Park, but the design is available here for anyone who wants to have it built themselves. Note that you'll need to rename the gerbers from Upverter's naming scheme to OSH Park's.


Since I have a number of micro USB connectors and some extra boards, I decided to list the board on Tindie. If you happen to need a Micro USB connector with all of the pins broken out, you know where to get it! Since you're awesome and read this post, here's a discount code for $1.00 off: ADF6EE7. Cheers!