Tag Archive for 'technical'Page 2 of 2

An old Desk with a new Twist (add a shelf to make your workspace fabulous)

I got this idea from my former office mate (or cabin-mate).  However, when we shared an office I never followed his advice with creating a shelf on a workstation desk for the computer monitor(s).

After we got moved I decided to try this system out.  At work I blatantly copied what Roger (my former office mate) had in place.  He used a shelf from one of our hanging shelf units (all MS in Redmond has the same hanging shelf units) and raised it by using two reams of paper.  On top of this I put my speakers and my 24″ Dell monitor.

At my house I put off trying this configuration even longer.  It was not until yesterday when I realized that my docking station has both a VGA and a DVI output.  I had only been using the DVI output to one of my Dell monitors and using the screen on my laptop as my other desktop.  This was inconvenient because my laptop’s 1900×1200 resolution was difficult to see when the laptop was placed next to the monitor.

So I decided to attempt shelf at home, with both my monitors in the mix.  I found a plank of wood from my garage (long story how it got there) and found some VHS movies for height raising.  After a couple hours of re-arranging furniture, reorganizing all my wiring I finally had the shelf, monitors, and machine in order.

The benefits I experienced by this setup at work were immediately evident to me at home as well.  This small and subtle modification has had a dramatic improvement on my posture, productivity, and usefulness of my desk.

The benefits:

  • Doubles as a reading area (or an area to eat lunch) by sliding keyboard under the shelf (notice the space is left deliberately empty)
  • Speakers and knick-knacks always dominated the entire desk, getting pushed around with other items on the desk.  Now they do not impact anything since they are raised and untouched
  • Inability to spill coffee or other liquids on the monitor or speakers (or rather, much much more difficult)
  • Aesthetically more pleasing workspace (even with a ghetto shelf like the one I am using at home)
  • People can see the skin applied to my laptop

Try this at your home or work and let me know if you find it beneficial.  Roger and I both believe there is a market for high quality desk-shelf material like this.

wp-cache Plugin upgraded to 2.1, along with WordPress

Funny sometimes how you forget to read documentation when everything up to this point has been point and click. So far with WordPress, I’ve essentially used Fantastico to install and upgrade the WordPress installation. Then using the elaborate UI from WordPress I’ve installed/configured all the plugins being used on the site.

This system worked great, until I upgraded to WordPress 2.1. Suddenly, to my surprise, my entire website started failing due to some obscure (or so it seemed to me) error. I did my fair share of searching, and finally realized that wp-cache is what is causing the problem.

I disabled wp-cache (the hard way, by commenting out lines in wp-settings.php that worked with it) and then my site came back to life. However, I really liked the performance boost of using wp-cache (it was a visible boost in performance when I had it going on WordPress 2.07).

A few days more passed, and finally tonight I went looking for an updated wp-cache plugin. Sure enough, there was one. This time I installed it and again my site fell apart. Instead of the quick and easy remove route I went through before, I decided to read some more docs on this updated plugin.

Sure enough, there was a missing symbolic link that was described in the documentation. Until now I had not read each plugin’s documentation, so this was a bit of a shock to me – but it was clearly defined and easy to implement.

After getting wp-cache installed using the plugin’s documentation – my site came back to life, I re-enabled wp-cache, and ever since I’ve seen that noticeable improvement in performance.

So, go me for reading the documentation – finally.

Future of Electronic Learning?

Moodle seems like an open source Blackboard. Patent issues aside, this seems pretty interesting to me. My university was just rolling out Blackboard while I was an undergrad (I’m getting older and older in technology terms), though now I am guessing even tech-savvy high schools have rolled out Blackboard as well.

Well Moodle seems to provide everything Blackboard provided in the past, along with some new stuff (for all I know, Blackboard has these as well). This leads me to envision dynamic classrooms run by students interested in learning something outside of any curriculum. This could enable my desire to learn Thai cooking from actual Thai folks in Thailand today. Or maybe something more obscure, like studying ancient history by collaborating with students that have access to the original works themselves (imagine a Wiki discussion on a reading piece of classic Shakespeare literature).

Even if Blackboard is successful in quashing Moodle and Sakai, this type of concept will surface in other forms. Even hodge-podge sites will start providing this outside of the collaborative educational groupware moniker.

Moodle seems like a complete package, and it looks easy to use and hopefully easy to set up. I have a hankering to get it going on a spare machine at home to see how easy it is to manage. I can also foresee a future environment of collaborative learning that is paid for by paid installations of Moodle. For example, something like the UW Experimental College or my alma mater’s College of General Studies.

How Cheating in college Helps Me Every Day

Academic integrity has always been the cornerstone of an ivy league education. Nothing gets you in trouble at my college like getting caught cheating. Yet it is rampant. For example, if you get in a fight with a cop on campus (PENN has real Philadelphia police officers patrolling the school) every week nothing will happen to you. You can get so drunk and piss in hotel lobbies of the fanciest hotels in Philly, and the school will take no action. But, if you are caught cheating during an exam, depending on the professor, you can fail the exam or be suspended for a year (I’ve seen both happen).

In my department, cheating was also monitored when turning in electronic assigments. This is common now for all coding assignments at most schools. Apparently there is some software developed at UC Berkeley that can analyze code turned in and flags submissions that are similar. Teaching assistants and professors ran this code automatically after the submission deadline had passed on all code turned in, and then reviewed the flagged submissions.

Considering the consequences for cheating were so severe, it is surprising how many students still cheated regularly. It is often harder to explain how a problem is solved than it is to show the solution (or simply the student was lazy and underprepared), so this led some students to emailing around completed assigments to each other (the kids today are probably IMing or texting them, but its the same concept).  The smarter cheater (read: the ones that got away with it) would take the completed solution and view it, but would still write his/her own solution using the provided solution as a guide. This process of digesting another person’s code and transcribing it, with heavy modifications, became a skill. At the tail end of an all-nighter, the faster you could understand another person’s code and use it complete your task, the faster you could sleep.

Fast forward to my job today, writing commercial software. What I have found about writing application-level commercial software is that it is often a repeated 3-step process:

  1. Find software library to provide necessary functionality.
  2. Learn how to use this software library.
  3. Incorporate this software library into the product.

A software library is software written by others that provides functionality that can be incorporated into your product. Most software libraries are used as building blocks in producing a finished product. The documentation provided with a software library is the easiest way to learn it, and often times this documentation is littered with sample code on how to use the library. Just to clear, you usually don’t want to have the actual source code to the library because you are using it to provide some functionality for you – not to learn how they wrote it.

When learning how to use a new software library, I have realized that I am very good at digesting code from others and incorporating it into my work. It is a very natural process for me to look at sample code, or code from another place in our codebase and understand how I can use it. Often when developing a new product there is not adequate documentation for how parts of the product work. It is at these times that having the ability to digest code rapidly is truly beneficial.

The realization that the speed in which I can learn how to use code by looking at samples was surprising to me at first. But after some thought on it, I have simply added it to the list of accidentally invaluable skills college taught me that I didn’t realize until later in life.

Adding Technical Topics, Acknowledging my employer

I realized several weeks ago that denying myself to write about what excited me technically would be an oversite that I would regret later in life (since this blog is still focused as a public journal).

So, I’ve created a Technical category to the site – allowing me a place to talk about whatever technical thing strikes my fancy. This will probably lead to a lot more blog posts by me, but, in the end, I think that is for the best.

Another oversite I am looking to correct is regarding my employer. I have refrained from mentioning that I work for Microsoft through out my website. I am pretty sure it is due to my concern that stating my employer on my website would imply that I agree with them ideologically. However, as I’ve realized over the years, any employer (and more so for the first corporate employer) imprints themself onto their employees in some way. This isn’t a brainwashing comment, or a drinking the kool-aid comment, just that each corporate culture leaves an imprint on you.

So, to try to use my website as a public journal about things that I think I’ll find interesting to read in 10-15 years to not include my employer would be an oversite.

So I thought I’d take a minute to mention that I have worked for Microsoft since September 2002. Since that time, I’ve held three distinct titles and positions.

  1. Developer Support Engineer – in the Support division, helping developers write printer drivers for Windows NT 4.0 through Windows XP and Windows Server 2003.
  2. Software Design Engineer / Test – in Core Operating Systems Division as a Quality Assurance representative, working on shipping Windows Error Reporting components in Windows Vista.
  3. Software Development Engineer – in Windows Live division working on Codename Max, designing and developing the code.

So, that has been my career with Microsoft so far. I will write more about my position in Codename Max during a future post.