TV Show First Seasons – Draw Them In! 12 July 2010 at 2:10 AM

Many great TV shows are hard to get people to start watching after they are multiple seasons in for one very annoying reason: the first season doesn’t do much in the way of character development or general plot! It seems that many shows have an adventure/monster/villain/alien/freak/mystery of the week format for their first season, which is often followed by a second season of similar stories, but ones that have consequences that carry between episodes. By a third season, they tend to have the ball rolling, following a large specified plot, and then they are epic. Shows that fail to do this seem “too involved” at first, and lose their audience, get swept, and end up alongside shows like Firefly! I wonder if it is the building of reputation that is required these days to make a show gather a following before it can take flight: let people drift to and from the show and decide they like it, luring them in. Even Lost did this at first, having individual episodes reveal back story for individuals with only small carry over at first… It’s an interesting thing to think about!
So what I would love to hear from you all in the comments is examples of shows that did this, or shows that didn’t, and of the second category: whether they survived or not!

The Last Airbender: A Long History 28 June 2010 at 12:17 AM

I’m currently sitting in a friend’s room rewarching Avatar: The Last Airbender. Minor spoilers ahead! Proceed with caution.
An interesting thing I’ve noticed is that average lifespan is above 100 years for the more powerful characters. As such, if we assume avatars die 20 years early, due to an actively dangerous lifestyle, we can combine this information with a rough estimate of the number of statues representing past avatars in the southern air temple from episode 3. There were a minimum of 60 on the first level, with probably 40 on each spiral, which there were at least 7 of, giving us ~340 previous avatars.
340 * 80 = 27,200 years. Since these are lowball estimates, we can say that they have had solid civilization for over 28,000 years, or 23,000 years longer than we’ve had civilization a we know it.
So why are they stuck in our middle ages? I’m going to guess that they’ve had massive cataclysms repeatedly over the centuries, but it’s still an interesting thought.

“New Directions” 14 June 2010 at 2:25 AM

I may have no shame, but I /try/ to live up to the themes I claim I’ll do. I figured that along those lines, I would give a quick list of some posts that I want to get written up:
- What’s in a name? Why does it matter so much to some people?
- Extroversion and living in a community I enjoy, what it’s told me about myself.
- Some discussion of some media I plan to expose myself to
- Why we pick the people to talk to about things that we do, or at least the ways I see it

This is a pretty vague outline, and some of this will possibly get a little personal for me, but I really would like to talk about these topics and organize my thoughts into a larger context beyond myself. Maybe even hear what other people have to think.

We’ll see what I come up with by next week (hopefully the names Post, it’s been in my queue for ages)!

Lucidly (okay, I’m quite sleep dep’d at this point, so maybe not),
Lex

P.S. First person to comment about my horrible pun here will get a cookie.

Hello~ Summer 17 May 2010 at 1:59 AM

So this summer I’ll be working at Ksplice, living on Tetazoo, torturing SIPB, pika, 4E, and 5E, and all around attempting to enjoy myself. Now I just need to slay 3 finals beasts first. Whoop whoop and snicker snack, time to galumph through these suckers.

Pokemon 19 April 2010 at 1:28 AM

I, yet again, have no real content to provide the lovely participants of Iron Blogger and those out there who read my blog unrelatedly (HAH). This week though, rather than highlighting my lack of shame, I choose to blame Patrick Hurst for his acquisition of Pokemon Soul Silver and the consequential result of me picking up my DS again to play Pokemon Diamond. And, on that note, I go back to my DS, ’cause I gotta catch ‘em all!
Toodles,
Lex

Shame 12 April 2010 at 12:10 AM

I have none.
Toodles,
Lex

Totally Filler Post: Kerli and 3OH!3 29 March 2010 at 2:01 AM

I went and saw Alice in Wonderland this last week, and as a result was looking up some of the related media. Along the way, I found these three songs:

So take a look at these and let me know what you think in the comments! I love hearing what people think of my ridiculous tastes.

Some Programs & Services I’m Trying 8 March 2010 at 12:45 AM

Some things I’ve started trying lately are:

  • Dropbox
  • Remember the Milk
  • MacVim
  • VMWare Fusion with Karmic on phantom-gannon (my Macbook Pro)
  • Karmic on volvagia (named megaton-hammer) to have a working boot loader
  • Quicksilver on phantom-gannon
  • Tweetdeck

So, we’ll see how all these little things work out for me. Hopefully, this won’t be a disaster.

Technological To Do List and Why 21 February 2010 at 12:44 PM

So I have been exceedingly lame here lately, and will continue to do so with this post, but that just is how it is. I decided that this week I would outline some of my goals for improving my repertoire of technological skills:

  • Learn Haskell – Read Real World Haskell and figure out how to use this language that continues to intrigue me. The idea of strong typing and exceedingly lazy execution are in line with my feelings of how code should execute under the hood (which I’ll get around to ranting about in the possibly near future).
  • Learn the PerlXS Bindings – So I’d like to be able to help maintain Barnowl, and this has several stumbling blocks: one, I haven’t brushed up on my Perl in ages, and two, it uses bindings for C. The first I can just power through, but the second would be somewhat difficult while attempting to power through the first methinks. So, documentation grokking ftw.
  • (Begrudgingly) Learn emacs – There are enough use cases where I should be using emacs for simplicity’s sake (such as the scheme REPL that I should be using at work, rather than offloading all the scheme code onto the other UROPs). This of course pains me a little inside, for I do love using vim, but knowing both would just make life a good deal simpler. The big problem will be overriding muscle memory, which I discovered is /quite/ persistent (when I opened up vim for the first time in a year and a half, I selected some text, went “I want to replace this text”, hit a key, had it deleted with the insert cursor where I wanted… I had to do it again to know what key I’d hit, and then I went “Wait, ‘c’ does that? I don’t remember knowing that!”).
  • Learn scheme – Should be at least somewhat obvious from the last item: my UROP uses scheme, so I should be able to deal with that code base. Even if I don’t want to.
  • Get a working installation of Linux, probably on my Macbook Pro – so that I have a working terminal emulator. Terminal.app captures the page up and page down keys, iTerm isn’t easily configurable and defaults the meta key to escape, and xterm just… is ugly.

So let us see if I can even make a dent in this list by next week, let alone the end of term.

Ternary Operators and Perl’s “Binary Operator” 7 February 2010 at 3:41 PM

Yesterday I had a small epiphany regarding the use of ternary operators in lieu of if else statements. I initially learned to program in Perl, which left me accustomed to certain convenient operations that are not readily available in most other languages (at least not with the same elegant presentation). The one that is most relevant right now is what I will call the “binary operator” in reference to the well known “ternary operator” (action ? condition : other action). Perl allows programmers a very hackish use of the or operator, || in which any action can be followed by || and an alternative action is given if the initial action fails. An example of this binary operator would be:

> my $foo = $bar || "You silly goose, there's no variable \$bar defined!";

This operation (assuming that you’ve told the perl interpreter to choke with the appropriate options) will assign the string in the second half of the statement to the variable $foo. This is because attempting to read from $bar fails and gets passed to the || operator as a false, therefore triggering the second half of the statement, which then evaluates and is assigned to $foo.

This behavior relies on an aspect of Perl in which all assignments, etc. return a value, and if this return value is not apparent (i.e., $x = y), the return value is likely true or false to indicate success or failure respectively. Exploiting this seems extremely hackish to many when they first learn of this, but it quickly becomes apparent that it is necessary in defining subroutines (the term Perl uses for functions) that take a variable number of arguments.

Subroutines in Perl do not define the arguments that they take in their header. Instead, the interpreter assumes that the subroutine will take an array of any length as its argument, which is then stored in a locally scoped array named @_ (I will be writing a post on the beauty of sigils and context in Perl and how they create a deceptively strong type system). To most cleanly assign arguments to variables in subroutines, statements of the form my $argument = shift, where shift assumes that the array in question is @_ and it destructively updates the array, returning the first item and removing it from @_. An example of this would be the following:

> sub takes_args {
>     my $first_arg = shift;
>     print $first_arg;
> }

This function takes a list of any non-zero length and prints out its first element. Often, however, you may want a default option. This is useful for constructor classes in object oriented programs, or for functions that may take additional arguments to further hone behavior (such as python’s range(x,y) function, which can take a third argument that indicates the step to take). This is where the binary operator becomes epically useful. An example follows:

> def has_default {
>     my $foo = shift || "This is a default value!";
>     print $foo;
> }

Having explained things this far, I hope that this code should be easy to understand: It takes a list as an argument of any length, and if it is of non-zero length, print the first argument, otherwise print "This is a default value!". There is one other very common use case that tends to amuse users of Perl: the “or die” construct. Perl has a “kill the program and possibly print an error message out if one is provided” function called die. This is what you might want to do if a user provides input that exceeds a certain range, or if you just want to be a bitch and kill your program in one easter egg scenario. In any case, you again rely on the return value of all operations and make a statement like this:

> def feed_me {
>     my $input = shift || die "FEEEEEED MEEEEEEE."
>     print "Omnom delicious input.";
> }

This code requires input or else it will kill the whole program and yell at you. This has great applications when there is some program critical operation that must complete in order to continue, or if there is a specific state that you want your program to avoid. This operation, one might notice, is less useful in OOP and more useful in procedural programs (Perl, while having OOP capabilities, is a procedural programming language first and foremost).

And this fine construct is why I need to use ternary operators. The logic may not be apparent (or just seem wrong), but having such a convenient operator so handy leaves a distinct imprint on a person’s programming style, and if I can write code that feels more natural to me, is there any good reason to not do so?