altenmueller

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.

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.

AT&T 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.

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.

The future of ground-based transportation systems

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.

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)

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.

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.

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.

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.