altenmueller http://altenmueller.com Most recent posts at altenmueller posterous.com Fri, 20 Jan 2012 12:14:00 -0800 Pies and apples http://altenmueller.com/pies-and-apples http://altenmueller.com/pies-and-apples

In Dumb Metaphor Friday: "Growing the Pie", the author argues that the "growing the pie" metaphor is a poor one for conservatives and tries to come up with a more accurate one:

The conservatives would be much better off chosing something that actually expands. Say, apples. They want to grow more apples—which can then be baked into delicious apple pie. Except... if you want a successful orchard, you’ll ensure that your apple trees all have sufficient access to light and water. Taking decent care of your trees is the best way to get more apples. If you plant 99% of your trees in a corner of your orchard and give the remaining trees all the remaining space, you’re making terrible use of your resources. If you treat your trees equitably, you will get a better yield. Bigger pies.

I guess the problem I have with this is that this really doesn't represent the viewpoint of most conservatives (I hope). Using metaphors to describe real-life phenomena becomes a silly exercise after a while, but I'd at least like to try to extend the above metaphor to a liberal worldview. In a liberal orchard, you'd have the trees distributed evenly such that each tree receives equal resources (so far, so good). But now consider that plants don't grow exactly the same when given the same resources, due to genetic differences, and differences in the environment that you can't control (such as nutrients in the soil). Perhaps some get diseased. Now, the gardner might conclude, "That's unfair!" and proceed to give extra water, fertilization, and care to the less fortunate trees which are struggling to grow. That's great, but now resources have been taken away from the stronger, healthier trees, and I'm fairly certain the overall crop will be significantly diminished with this sort of gardening approach.

 

In conclusion, I agree that everyone should be given equal opportunities. And that there shouldn't be certain people given privileges above everyone else. But once people start succeeding, I don't believe some of that success should be involuntarily stripped away from them so that less successful people can share it. It sounds harsh, but in my opinion that's the closest to 'fair' we can actually get.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Thu, 29 Dec 2011 19:43:00 -0800 Some goals for 2012 http://altenmueller.com/some-goals-for-2012 http://altenmueller.com/some-goals-for-2012

So, I'm a few days from entering the new year and starting my 2B semester, wherein I (hopefully) finish my second year at University of Waterloo. I eventually ended up dropping out of the Digital Hardware program, mainly because scheduling was too difficult, and I decided I wanted a more math-based degree. Now I'm thinking I might try to go for a Pure Math - Computer Science double major if possible. We'll see how well I do in some PMATH courses before before making any commitments. Anyway, here is my final timetable:

  • Math 235 - Combinatorics
  • Math 237 - Calculus 3
  • Stat 231 - Statistics
  • CS 240 - Data structures and data management
  • CS 241 - Foundations of sequential programs

As for my goals next year, they're nothing too extreme -- improve my programming abilities, particularly in functional programming and mobile development. And I suppose the stereotypical "getting in shape". New years resolutions are infamous for not getting accomplished, but I think they're still valuable in that they give us something to strive towards, even if a lot of the time it doesn't get attained. Perhaps the real key is to ensure that the goals are modest enough to achieve them without too much pain and suffering.

Anyway, I wish you all the best for this upcoming year. Hopefully I'll write some more.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Mon, 19 Dec 2011 17:39:00 -0800 AT&T to no longer acquire T-Mobile http://altenmueller.com/att-to-no-longer-acquire-t-mobile http://altenmueller.com/att-to-no-longer-acquire-t-mobile

The next-generation iPhone seems fairly likely to have AWS support:

AT&T Inc. (NYSE: T) said today that after a thorough review of options it has agreed with Deutsche Telekom AG to end its bid to acquire T-Mobile USA, which began in March of this year.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Fri, 09 Dec 2011 21:43:00 -0800 Facebook Is Making Us Miserable http://altenmueller.com/facebook-is-making-us-miserable http://altenmueller.com/facebook-is-making-us-miserable

Daniel Gulati:

Recognizing that "quitting" Facebook altogether is unrealistic, we can still take measures to alter our usage patterns and strengthen our real-world relationships. Some useful tactics I've seen include blocking out designated time for Facebook, rather than visiting intermittently throughout the day; selectively trimming Facebook friends lists to avoid undesirable ex-partners and gossipy coworkers; and investing more time in building off-line relationships. The particularly courageous choose to delete Facebook from their smartphones and iPads, and log off the platform entirely for long stretches of time.

I agree with much of the article, but why is it unrealistic to stop using Facebook? There are other communication mediums available, not the least of which include SMS, Twitter, and mobile-only social networks (e.g. Instagram, Path, Stamped).

I've stopped using Facebook over a month ago, and I have no regrets so far. It's quite liberating, in fact.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Sun, 04 Dec 2011 14:50:00 -0800 The future of ground-based transportation systems http://altenmueller.com/the-future-of-ground-based-transportation-sys http://altenmueller.com/the-future-of-ground-based-transportation-sys

Depressing.

That said, Swift PRT as a maglev concept will be abandoned. No track-based system (not maglev, not light-rail or metro systems) can compete with the cost and ubiquity of roads for population densities below 5000 people / km2.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Fri, 25 Nov 2011 21:36:00 -0800 Regex HTML parsing http://altenmueller.com/regex-html-parsing http://altenmueller.com/regex-html-parsing

You can't parse [X]HTML with regex. Because HTML can't be parsed by regex. Regex is not a tool that can be used to correctly parse HTML. As I have answered in HTML-and-regex questions here so many times before, the use of regex will not allow you to consume HTML. Regular expressions are a tool that is insufficiently sophisticated to understand the constructs employed by HTML. HTML is not a regular language and hence cannot be parsed by regular expressions. Regex queries are not equipped to break down HTML into its meaningful parts. so many times but it is not getting to me. Even enhanced irregular regular expressions as used by Perl are not up to the task of parsing HTML. You will never make me crack. HTML is a language of sufficient complexity that it cannot be parsed by regular expressions. Even Jon Skeet cannot parse HTML using regular expressions. Every time you attempt to parse HTML with regular expressions, the unholy child weeps the blood of virgins, and Russian hackers pwn your webapp. Parsing HTML with regex summons tainted souls into the realm of the living. HTML and regex go together like love, marriage, and ritual infanticide. The

cannot hold it is too late. The force of regex and HTML together in the same conceptual space will destroy your mind like so much watery putty. If you parse HTML with regex you are giving in to Them and their blasphemous ways which doom us all to inhuman toil for the One whose Name cannot be expressed in the Basic Multilingual Plane, he comes. HTML-plus-regexp will liquify the n​erves of the sentient whilst you observe, your psyche withering in the onslaught of horror. Rege̿̔̉x-based HTML parsers are the cancer that is killing StackOverflow it is too late it is too late we cannot be saved the trangession of a chi͡ld ensures regex will consume all living tissue (except for HTML which it cannot, as previously prophesied) dear lord help us how can anyone survive this scourge using regex to parse HTML has doomed humanity to an eternity of dread torture and security holes using regex as a tool to process HTML establishes a breach between this world and the dread realm of c͒ͪo͛ͫrrupt entities (like SGML entities, but more corrupt) a mere glimpse of the world of reg​ex parsers for HTML will ins​tantly transport a programmer's consciousness into a world of ceaseless screaming, he comes, the pestilent slithy regex-infection wil​l devour your HT​ML parser, application and existence for all time like Visual Basic only worse he comes he comes do not fi​ght he com̡e̶s, ̕h̵i​s un̨ho͞ly radiańcé destro҉ying all enli̍̈́̂̈́ghtenment, HTML tags lea͠ki̧n͘g fr̶ǫm ̡yo​͟ur eye͢s̸ ̛l̕ik͏e liq​uid pain, the song of re̸gular exp​ression parsing will exti​nguish the voices of mor​tal man from the sp​here I can see it can you see ̲͚̖͔̙î̩́t̲͎̩̱͔́̋̀ it is beautiful t​he final snuffing of the lie​s of Man ALL IS LOŚ͖̩͇̗̪̏̈́T ALL I​S LOST the pon̷y he comes he c̶̮omes he comes the ich​or permeates all MY FACE MY FACE ᵒh god no NO NOO̼O​O NΘ stop the an​*̶͑̾̾​̅ͫ͏̙̤g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨe̠̅s ͎a̧͈͖r̽̾̈́͒͑e n​ot rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚​N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ

 

(stackoverflow via jwz)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Sat, 05 Nov 2011 12:47:00 -0700 Torvalds on Java http://altenmueller.com/torvalds-on-java http://altenmueller.com/torvalds-on-java

Torvalds on Java as well as software and patents:

I mean Java I really don't care about. What a horrible language. What a horrible VM. So, I am like whatever, you are barking about all this crap, go away. I don't care.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Sat, 05 Nov 2011 09:11:00 -0700 Job "creation" http://altenmueller.com/job-creation http://altenmueller.com/job-creation

From a discussion on HackerNews:

Interesting that none of these articles ever address the root causes of structural unemployment. Globalization combined with rapidly advancing technology are allowing an ever shrinking pool of extremely talented people to satisfy the world's demand for products. This is a reality that can no longer be ignored. It is not just the majority of Americans that are unemployable, but the majority of the world's population.

Technology's leveraging power has become so severe that a company like Apple can reasonably expect to supply the entire world market with smart phones. Another example is SpaceX, which is pioneering the future of space flight with a team of only 1300 employees.

Globalization depresses wages for traditional labor, while technology facilitates an extreme leverage for talent. These two forces are enough to obviate the vast majority of the domestic work force. As long as this reality is ignored, the discussion of potential solutions is futile.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Thu, 01 Sep 2011 11:36:00 -0700 Common Lisp and emacs http://altenmueller.com/common-lisp-and-emacs http://altenmueller.com/common-lisp-and-emacs

So I believe my next project is going to be learning Common Lisp and emacs well enough that I can write some cool programs with it. My primary motivation for doing this is because it's time I learn another text editor (even though vim is a great text editor), and I really enjoyed learning Scheme in my intro CS classes at University of Waterloo.

I'm starting off sbcl and slime, and using AquaMacs as my text editor. Okay, so maybe not "official" emacs, but I want to ease into things gently. Console-based programs have quite a learning curve, especially emacs, and that can be quite hindersome when trying to concurrently learn a new programming language as well.

Hopefully I'll make some cool things soon.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Mon, 29 Aug 2011 21:08:00 -0700 Screen sizes and productivity http://altenmueller.com/screen-sizes-and-productivity http://altenmueller.com/screen-sizes-and-productivity

I'm beginning to think that my recent dramatic screensize reduction is partly to blame for my inability to be productive. For over 4 years my primary work environment has been a 27" Dell widescreen 1920x1200 screen, acting as an extension of my MacBook's desktop. Now due to my location being in a constant state of flux, it becomes impractical to bring the large monitor with me everywhere I go, and as a result it looks as though the majority of my work is going to have to be done using my MacBook's 1280x800 screen.

The biggest result is probably purely pyschological, but it honestly feels like there is a greater difficulty organizing what I want to accomplish on a smaller workspace. Typically when I'm working I use part of the screen for a browser (research and procrastination, basically) while the rest of my screen is occupied by various terminals, text editors, and other work-related programs. Perhaps I'm a bit messier than the average person; I have been known to have upwards of 50 tabs in a browser at once, so maybe one could make the argument that a smaller space forces one to focus more, but in this case I feel like I have too much focus on whatever is in front of me.

My theory is that my work-related windows (text editors, terminals) distract me from the lesser-work element on my screen: the browser window. The problem is that I can't close it completely as I need it to constantly look up things which would be too cumbersome (e.g. manpages) or impossible other ways. In effect, having something work-related always there in the corner of your vision helps serve as a reminder to get back to work even when you're procrastinating with something completely unrelated to work.

Anyway, speaking of productivity I have managed to get some useful stuff accomplished over the last few days. In particular, the ncurses-based media library vitunes I have extended to a scriptable file interface, enabling me to remotely control it using function keys on my laptop keyboard. My next project will be to add some output from the program which can be used to harness information such as currently playing song, etc.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Fri, 26 Aug 2011 12:27:00 -0700 Assorted things http://altenmueller.com/assorted-things http://altenmueller.com/assorted-things

Well, it's been some time since I've written an update (which always seems to happen whenever I try to maintain a blog of sorts), but in the interest of keeping this marginally exciting I'm going to write a few things going on right now.

My first problem is that it's not for a lack of material that I'm not writing things here. I think it's simply because of a lack of feedback, essentially writing a blog which has few readers and no commenting system makes it feel as though you're writing on a wall somewhere. I suppose I will address this point in greater detail in the future, but for now my main plan of attack is to implement a commenting system on this blog and try to find more sources for readership in order to help keep me motivated to continue posting interesting updates. In other news, I have been posting some interesting material on my Google+ page, my Facebook page (though unfortunately not my Twitter).

I have been fairly active in finding new music, particularly in the electronic genre. HypeM, and most recently turntable.fm have been excellent for finding new and interesting mixes, and particularly in turntable's case, finding an active and engaged community. If you are interested in finding new music, I would highly encourage joining either of these sites, though you must be in the US to be able to use turntable (or at least be able to make it believe you are).

Anyway, I have successfully completed my 2A semester (first half of second year). It's a good feeling to have that out of the way, and now I get a few weeks of vacation. Here's what my 2B semester will probably look like:

  • Statistics
  • Combinatorics
  • Multivariable calculus
  • Data structures and data management
  • Foundations of sequential programs
  • Digital circuits

Of course that's six courses and a typical semester is only five, so I'll probably drop one of them. The reason it happens this way is that I'm enrolled in the digital hardware program, which involves using a few electives to take electrical engineering courses. Last semester I took circuit analysis, this semester it will be digital circuits. However, since the engineering courses are less flexible than Math/CS, I pre-enrolled in extra courses, and then depending on how my schedule works out, I'll drop the one that works best with everything.

Finally, I'm thinking about redoing the design of the blog. I never feel satisfied with a design, so I suppose I'll just keep scrapping stuff until I give up. I think the process is actually a useful one though, striving for excellence (or at least attempting to).

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Fri, 10 Jun 2011 18:24:00 -0700 Lion runs quite well on 32 bits, actually http://altenmueller.com/lion-runs-quite-well-on-32-bits-actually http://altenmueller.com/lion-runs-quite-well-on-32-bits-actually

So when the hardware requirements for the developer preview of Mac OS X Lion listed at least an Intel Core 2 Duo or later as a requirement, it seemed pretty natural that Apple was phasing out the 32 bit architecture that the Intel version of OS X originally debuted on. Those Macs (2006 MacBook (Pro), Mac Mini) are now over 5 years old — and haven’t been sold by Apple since.

Yet, strangely enough it seems as though Lion is in fact fully 32-bit capable. The xnu kernel, in addition to all the applications are compiled with 32 bit support. The only thing standing in the way of it running on my original MacBook was the installer. Copying an installation from a 64 bit machine, and removing the PlatformSupport.plist file allowed Lion to run beautifully on my MacBook. In fact, I think it was faster than the older Snow Leopard. The WiFi problems I described with Snow Leopard seem to have disappeared as well.

So all in all, I’m very pleased with Mac OS X Lion. I was running the Developer Preview 1, which was a bit buggy/glitchy, but I’m in the process of updating the system to Developer Preview 3, which should improve things significantly. Lion is very polished UI-wise, and there are some significant feature upgrades. It’s truly remarkable that Apple is offering this as a $30 upgrade. It’s also very reflective of Apple’s vision of next-generation computing, and it’s exciting to say the least.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Sun, 05 Jun 2011 09:43:00 -0700 Mac vs. PC, Waterloo edition http://altenmueller.com/mac-vs-pc-waterloo-edition http://altenmueller.com/mac-vs-pc-waterloo-edition

This story recently appeared in University of Waterloo’s school newspaper, Imprint:

http://theimprint.ca/archives/2785

Under “ease of use” is written the following:

I know numerous people who have bought Macs for home use, and constantly get frustrated because they are so different from Windows.

This isn’t a point about usability, clearly they are different operating systems and have their own learning curve.

As far as ease of use, it will come down to some extent to personal choice, adaptability and preference. Mac wins this but at a cost, adding the add-ons or VM costs more money.

No, Mac wins ease of use because it simply is easier to use. Add-ons or VMs aren’t necessary for usability. (They might be necessary if you need to run specialized programs, but that has nothing to do with usability.)

The biggest surprise I have encountered since beginning to support Macs is the hardware comparison. Macs seem to be a generation or two behind PCs. Most people I ask about this state it is because Mac OSX is a flavour of Linux and requires fewer resources.

Macs are most definitely not behind PCs in terms of performance. The current MacBook Pro was the first Sandy Bridge system Engadget has seen from any manufacturer, and its benchmarks are impressive.

Furthermore, OS X is not Linux. The core of OS X is Darwin, which was based off FreeBSD. Technically, Darwin is a Unix variant. But just because an operating system is a Unix variant doesn’t inherently mean it’s more efficient. A huge factor in the performance of the operating system has to do with its kernel, which in Darwin’s case is xnu. And from what I know, the Windows kernel actually has a slight edge in performance over xnu.

The problem with that when it comes time to upgrade you have fewer options. Especially since OSX does a hard ware check and will not let you upgrade beyond a certain point forcing you to purchase new hardware.

Again, patently false. OS X does not “do a hardware check” to “force you to purchase new hardware”. It does check the hardware to ensure that it’s a licensed Apple machine, but other than that, it will install if it can. OS X 10.5 installed on, at the time, Macs made 5 years ago. I don’t think you could say the same about Vista, which was also released around the same time. Apple dropped PowerPC support after 3 years of Intel Macs, which is a little quick, but it’s an enormous cost of resources to keep backporting everything to an old architecture which hasn’t been sold in 3 years. The latest version of OS X 10.7 Lion, is going to be installable on all 64 bit machines (which includes all Intel Macs except the first generation, which were made 5 years ago). Being supported by operating system upgrades for 5 years is actually pretty good.

As for upgradability, Mac laptops are fairly upgradeable as far as laptops go (RAM, hard drive are designed to be user-replaceable). Yes, iMacs and Mac Minis aren’t exactly upgrade-friendly. But then again, that’s not really their goal, either.

As for cost comparisons, there is really no comparison, Macs cost more. If you need to run a VM of Windows, it also cost a lot more. You end up paying more for the Mac out of the box, pay for the VM software, pay for the licence for Windows, and pay for any applications installed on each platform. I currently have Adobe Acrobat Pro Installed on both OSX and my Windows 7 VM because some applications can not pick up the cross platform PDF printer. Macs cost more to buy, more to support and more to upgrade.

Macs might cost more, but they’re one of the highest-performing machines on the market today. Not only that, but their design dwarfs any “comparable” cheap PC. Just place a MacBook Pro next to a cheap PC laptop and see which one creaks when you open it. (Hint: it’s not the MacBook Pro.) Apple has put an incredible amount of work into ensuring that their Macs are sturdy, reliable, and beautiful machines. This alone makes up for the price difference, but even if you don’t think it does, consider that Macs on average have a lower cost of ownership than their PC counterparts. Macs retain their value longer, and you can get more for them when you sell them. This easily makes up for the price difference.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Sun, 15 May 2011 12:02:34 -0700 Snow Leopard Wi-Fi degradation http://altenmueller.com/snow-leopard-wi-fi-degradation http://altenmueller.com/snow-leopard-wi-fi-degradation

I wasn’t really aware of this issue previously, since for the last few years my MacBook was effectively a desktop computer: plugged into an external hard drive and monitor, speakers and ethernet. So I never noticed any issues when upgrading from Mac OS X 10.5 to 10.6 (Snow Leopard), but now that I am actually using my laptop’s wifi it has become apparent that Snow Leopard really wrecked the wifi drivers.

First of all, you can’t spoof the hardware address of the interface using ifconfig like you could in Leopard. But that really doesn’t bother me too much, it’s the constant dropping of the signal that pretty well takes away my ability to do any work. There is absolutely nothing wrong with the router; it is 20 feet away from my MacBook and every other laptop I’ve used has no problems connecting and maintaining a solid connection it.

The most immediate solution to me would be to go back to Leopard; the difference between the operating systems doesn’t seem too significant. But after booting into my Leopard partition, I realized that a number of the applications I use regularly are incompatible with it. Plus there’s not enough space in the partition to even install the software updates, so I’d have to repartition my entire drive again.

I’m not really sure what to do, I could go back to Linux and see how well that works for me, or I could limp along with Leopard. In any case, I can’t just wait for the Lion to come out and hope that the drivers are fixed, since my MacBook happens to be the original model with a 32 bit Core Duo, which is sadly incompatible with Lion. This really is the worst time for all this to occur, I don’t have the time to backup my entire hard drive and reinstall everything again.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Tue, 10 May 2011 11:06:12 -0700 Linux From Scratch and Facebook Puzzles http://altenmueller.com/linux-from-scratch-and-facebook-puzzles http://altenmueller.com/linux-from-scratch-and-facebook-puzzles Well, I've decided to sharpen my Linux skills and try a Linux from
Scratch installation on a virtual machine. It actually worked pretty
well, until this morning when I accidentally deleted the cpp
preprocessor when I inadvertently mixed up the command line arguments
for ln. (How unfortunate.) But I still think I learned a lot, as my
core toolchain was functioning well up until that point.

The other thing I've been doing is trying to sharpen my programming
skills, and when I discovered Facebook's Engineering Puzzles, I
thought I would give it a shot and see what I could do. They even take
your submissions into account if you apply to work there, so it
definitely doesn't hurt to attempt them. The puzzles did prove,
however, fairly challenging. I managed to complete the first two
challenges, liarliar and breathalyzer, without too much difficulty.
But they were also only "snack" level.

I think the biggest problem I experience when attempting these coding
challenges is that my self-taught knowledge is mostly that of software
engineering; i.e. learning how to use source control software,
utilizing libraries, modifying existing code, testing/debugging,
language syntax. The more computer-science aspect of writing software,
in particular algorithms, is something I am not quite as adept at,
although I am greatly expanding my knowledge of these since coming to
university. The problem with attempting these problems is that they
seem to require preexisting knowledge of the algorithms in question
for them to be able to attempted without too much difficulty. (Or you
could just write a brute-force algorithm, which would probably not
pass Facebook's automated testing bot.)

Nevertheless, I still feel that they are very useful exercises, and I
will continue researching various algorithms to better serve me in
writing solutions for these problems. Perhaps the university courses I
am taking now will better instruct me on how to go approaching them.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Tue, 03 May 2011 11:59:37 -0700 CS 246 and Linux nerds http://altenmueller.com/cs-246-and-linux-nerds http://altenmueller.com/cs-246-and-linux-nerds

Today was my first lecture of CS 246 (Objected Oriented Programming) at University of Waterloo. The professor for our section called in sick, so we had a substitute teacher for today. He began by showing us the course website and all the basics for the course that we would need to know, but based on the window decorations around the web browser, it immediately became obvious to me that he was using some Linux distribution with a minimalistic window manager.

As he moved further into the lecture, he began increasingly evangelizing Linux and CLI-based interfaces. Desktop users with all their windows and graphical user elements were deemed “noobs” and the real “power users” who want to get their work done use a Linux shell. He bragged about how he had never used Windows and he claimed that he could get any computer task done faster on his computer than anyone else in the room.

I used to be this way, too. A few months after getting my 2006 MacBook, I became restless and began trials of various Linux distributions on my laptop. I learned a lot about *nix during this time, as I became highly efficient at installing Gentoo minimal, installing just about everything from source code, and using a tiling window manager (first wmii, then xmonad). I began doing nearly everything from the shell, and using keyboard shortcuts for anything else.

But after a while, I switched back to OS X. Why? The operating system was just easier; less time consuming. I mean, sure, my regular workflow was highly optimized with keyboard shortcuts and everything was minimalistic, resulting in a low latency interface. But in the end, I don’t think it made that much difference. With OS X, the operating system is less in my way when I want to do something. If I want to install a particular application, I can place the .app bundle in my Applications folder. To uninstall, I delete it. Most Linux distributions have package managers, but for the software that doesn’t have a release for your system, you’re forced to do everything by yourself. Or you can use special scripts which keep track of the installations to make simple installations, but the fact is, it’s just another layer, another hoop which you have to jump through.

Another great example is typesetting. When you install OS X, it comes perfectly configured with a default font configuration. All the right font faces are preinstalled, and the font smoothing is perfect. With Linux, it depends on the distribution, but it largely takes me several hours to find all the fonts that I want (or transfer them over from another system that does have them), and then edit all the configuration files to have proper font smoothing. It’s not that you can’t have great font smoothing on Linux, it’s just that it takes time.

I’ve seen this kind of affection shown towards Linux increase as I take more upper-level programming classes at the University. Maybe it’s the type of work that the professors do that allows them to remain in their blissful bubble of Linux terminals and GNU, but I really see the rest of the world moving in the opposite direction (much to their dismay). It seems as though a growing number of open source developers use OS X for their programming, and of course the iPad is the epitome of graphical user interfaces, coming to the point where the operating system is so abstracted most users feel as though it doesn’t exist when using it.

To be a good, productive programmer you don’t have to be a command line nerd. To be certain, it’s a useful skill to know, and will certainly help you in some situations. But I see absolutely nothing wrong with using Xcode (or Visual Studio for that matter) to build software. The important thing is that you’re spending your time building software and not squirming around with your operating system, unless that’s actually what you want to do. And if you’re a Linux nerd who can be productive at the CLI, more power to you. But don’t scoff at your GUI-using programmer colleagues.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller
Thu, 28 Apr 2011 15:30:00 -0700 A new semester, a new year http://altenmueller.com/a-new-semester-a-new-year http://altenmueller.com/a-new-semester-a-new-year

Well, I am 4 days away from starting my second year at University of Waterloo (summer semester). I'm enrolled in what might turn out to be a very challenging semester:

  • linear algebra 2 
  • logic and computation (computer science) 
  • object oriented programming (C++) 
  • probability (Stat 230) 
  • electrical engineering (GENE 123) 

My philosophy for this semester is going to be to simplify everything I can to make studying and productivity as easy and frequent as possible. I've taken a number of preliminary steps to accomplish this; I have bought a 750 GB internal laptop hard drive so as to consolidate all my data onto my laptop, and I've also bought a laptop battery. These two things, I believe, will dramatically improve my portability and ability to do work away from home, particularly considering the number of computer-oriented courses I'm taking this semester.

I also intend to improve my grasp of the English language by writing more often (hence this blog) and reading more literature (convenient, since there's several large libraries on campus). Though time and motivation could be limiting factors, possibly preventing me from accomplishing either of these, my objective is to at least attempt it for as long as possible.

If I run out of material to write about, you are welcome to send me any material that you would like me to write about. I am a good correspondent, but a terrible writer without prompts.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1190211/profile-pic4.jpg http://posterous.com/users/1lsb3Za7BNvj John Altenmueller altenmueller John Altenmueller