Sunday, May 24, 2009

Perspectives

It's interesting to see John Kricfalusi praise the excellent composition of Dennis the Menace.

While David Malki comes down hard on the flat gags.

Though to be fair, Malki does give praise the draftsmanship quality.

Wednesday, May 20, 2009

The worst kind of show

One that ends in terrible trainwreck, but with enough redeeming qualities that you just can't forget about it and all that's left is the sadness of knowing what it could've been.

Macross F, it could've been so good.

Its soundtrack is so good.

But every time I listen to it, I am left with a hollow feeling.

I leave you with episode 6, prelude to the first major battle and before the series' rapid descent into awful territory.

Diamond Crevasse begins 19 minutes in.

Friday, May 08, 2009

"Don't worry. I have...the source code"

//DNF
int main (){
return 0;
}


RIP Duke Nukem.

Friday, May 01, 2009

NATO != EU

I've thought about talking on this a while ago, but an article came up so I'll just link to it instead.

In the case of Somalia, it gets even messier because in addition to EU NAVFOR and NATO, we have CTF-151, all of which have different command structures and RoE despite overlapping constituent countries. For instance, Canada is serving under NATO but is also expected to contribute to CTF-151*. Turkey is in EU but will also be flying flag for CTF-151. Greece flew flag for EU and is also part of NATO.

HMCS Winnipeg has already performed a catch and release because NATO RoE doesn't allow them to do anything else. I'm not sure if that would change under CTF-151; on one hand there was the Maersk Alabama incident, on the other hand a hostage situation is different from finding some guys and guns on a trawler.

*I'm not entirely sure how since MARCOM basically only has 2 vessels free for overseas deployment at a time.

Saturday, April 25, 2009

Motivation

I was all ready to make a Vocaloid PV. But then I kind of lost the desire to after I installed Processing and Sonia.

Processing is...interesting. I like how the version that doesn't come with JDK on their site is titled "expert" in the file name. I also like that when you click import library on the menu, all it does is add a header that says import whatever.

I've also finally replaced NetBeans with Eclipse. Interesting fact: the only Canadian mirror happens to be UW's Computer Science Club.

Tuesday, April 21, 2009

Courtesy The Atlantic

I've been going through The Atlantic's podcasts.

Here's one on Afghanistan.

It follows a Canadian unit out on operations, I enjoyed the typical Canadian reservedness of the narration. Much better than the stuff generally linked on millblogs.

It's also interesting to see the Canadians on patrol being controlled and methodical under fire, like when they were tag teaming with the M203 and semi-automatic fire. In contrast to the the Afghan army man shooting blind from the hips. That's the difference in training.

The Atlantic in general is pretty quality, it's nice to see comments that are for the most part legible and rational, even if I disagree with them. Compared that to Wired's comments, which are about a half step above those of YouTube.

Monday, April 20, 2009

I don't really like JSF

People always compare it the F-16, that's not really the case. The F-16 was affordable and had a flawless development process.

As far as the F-35 goes, its final price would be comparable to the Raptor for worse air to air capabilities (worse stealth, no supercruise, worse radar). The thing is, F-22 R&D is done with, so the flyaway cost goes down per aircraft while the F-35 still has all sorts of the issues that will inflate its flyaway cost. Even if the costs remain as listed (I guarantee it won't), I think I'd rather take a Raptor and a couple of Predator-Cs over 2 JSFs. Jack of all trades and master of none type of thing. You don't need an entire air force made of stealth, once the tricky targets have been taken out, legacy aircraft are perfectly capable of holding the line (assuming their airframes hold out). Plus the F-35 is supposed to take on the role of A-10s when they retire. That is a really shitty idea no matter how you look at it.

There are basically three aspects that JSF has over Raptor; export, CV and STOVL. Export isn't a huge deal except for Lockheed Martin, Europe/Australia/Canada have a lot of viable alternatives (Rafale, Eurofighter, Gripen NG, etc) and carrier air isn't huge either. The F/A-18E/Fs aren't great dogfighters but they're adequate and fine jets otherwise; alternatively, Rafales are quite nice and they're CVN-68 compatible with no modification.

STOVL would be a problem though. The Harrier IIs are getting old and they're going to need to be replaced with something. They're also notoriously difficult to fly. Just removing the capability is not really an option, USMC needs their air support.

In summary, the justifications I can think of for the JSF program:

1. F-35B
2. ???

That's a pretty short list. I think it could've been trimmed shorter if people weren't so eager to shovel their money into a black hole to begin with.

Thursday, April 16, 2009

Looks good


Boeing has just unveiled the F-15SE Silent Eagle. It's an upgraded Strike Eagle with a smaller radar cross-section, internal weapons bays and AESA radar. Boeing has been pretty good with delivering Growlers and Super Hornets on time and on budget, so they'll probably do good with this too.

Still, $100 million projected unit cost? That's compared to $80 million (flyaway) for the JSF and $45 million for the Super Hornet. Even if JSF's cost goes up (in all liklihood it will), I can't see this as a very attractive buy. Especially since the Raptor itself is 'just' $135 million (flyaway), and purchases have been stopped.

Perhaps the USAF will take the option of upgrading their current fleet. I don't think the Strike Eagles are running into airframe problems yet, they're quite a bit newer than the A/Cs. Probably not though, stealth becomes kind of unnecessary after air dominance has been achieved by the frontline fighters, even the upgraded radar becomes not that useful when you can just augment an F-15 wing with an F-22 to track. Boeing is targeting the export market anyways.

On a semi-related note, I hope the JSF turns out to be all that they say it's going to be, otherwise Western air superiority is going to be in a lot of trouble.

Friday, April 10, 2009

Truth

Fuck Dubai

I hope Dubai sinks into the sea.

Caste structure aside, the sheer stupidity of people with too much money is ridiculous. Where else in the world would you try to cool beaches with pipes buried in the sand?

They've built a city in the middle of a desert. A true desert, where you actually can't stand outside because it's too hot and dust storms will blow through every now and then. Then they built a ski resort. And a golf course.

It's like Las Vegas taken to an extreme, but at least Las Vegas isn't building little islands off the coast in the shape of palm trees, which by the way, will get wrecked by rising sea levels like sandcastles on a beach.

I'm not angry that their citizens are filthy rich, but I'm taken aback at the incredibly dumb things they're throwing their money at. Hell, Antarctica is more hospitable than that place. At least then you wouldn't need to produce all your water from the sea.

Their PR though I admit is fantastic.

Saturday, April 04, 2009

Japan is not worried about North Korea


You see, their capabilities extend beyond Airborne Lasers, Aegis BMD, Patriot batteries and THAAD.

As illustrated above, a missile in mid-course would also have to contend with space battleships, Eva, Gundams and magical lolis.

...and if all else fails, deflect to America.

Tuesday, March 31, 2009

Titles optional

For all the bad media, the American military is damn good at warfighting. It's true that their upper echelons have made (i.e. still making) terrible decisions and the whole American military complex is a huge clusterfuck, but even if you put a squad of US soldiers into an ambush situation--outgunned, outnumbered and without close air--they will come out on top.

While the initial gunslinging bravado of the US Army has given way to a new counter-insurgency docterine, the rest of NATO is still struggling to adapt as their peacemakers come under heavier attack.

Iraq is well on its way to recovery whether because of the surge or the Anbar Awakening (I'd vouch for the latter), but on the homefront people have been losing their stomach for war.

Meanwhile, Afghanistan and Northern Pakistan are slipping back into Taliban grips. Pakistan is especially inept at this fighting business so the US Army really needs to be there. [1]

So, can America keep up the momentum and capitalize on their bloody gains or will everything come falling down like a house of cards?

1. Quiz time: what should your main battle tanks do when they encounter insurgents? Hint: full reverse is not the correct answer.

Thursday, March 26, 2009

Battlestar Galactica

So, I've had 4 different blogs in 3 different folders on my RSS aggregator bring up the Battlestar Galactica finale.

Including a personal finance blog and a paramedic blog.

I don't know what this says about me as a person.

Thursday, March 19, 2009

Fighting piracy with Aegis cruisers

Absolutely ridiculous.

The Russians are even worse, blowing up pirate skiffs with a Cold War era 28 000 ton nuclear battlecruiser.

Well, maybe not.¹

Doesn't America have any better idea than to fight fishing trawlers with ships excess of 3000 tons?

1. They actually are, since Boxer is replacing San Antonio on station, it makes sense looking at it as a logistics ship with air capability rather than a 40 000 ton aircraft carrier, whereas the Kirovs are arsenal ships pure and simple. I'm just being a troll. Alternatively: Boxer can launch an invasion on Somalia by itself.

Saturday, March 14, 2009

So...

You can see what type of developers Ruby attracts:

http://poignantguide.net/ruby/
http://shoooes.net/

It's scary and awesome all at once.

Scarily awesome.

edit: For the record, I found the guide to be too ADD even for me and I was upset that shoes isn't actually a GUI library, it's just its own development environment that uses Ruby.

Tuesday, March 10, 2009

GTFO my Ruby, C users

Alternatively: Lies revisited.

It's often stated that Ruby has no primitives, everything is an object. That's not true, rather almost everything is actually a pointer to an object. There is also one primitive: int. They've just been made to behave as objects through other means. Ints are primitive as an interpreter optimization, since you're going to be storing int values in pointers, there isn't much to be gained in constantly creating int objects and then pointing to it, at least in Ruby's case.

What's really interesting is the objects:

a = 'hello world'
b = a
a = 'goodbye world'

puts a #outputs goodbye world
puts b #outputs hello world


Wait, what happened there? Well, since Ruby is meant to be intuitive (this isn't C after all), we don't want to be dealing with all this pointer nonsense. Everything is made to behave as though they were passing by value, so treating everything as an object works. Mostly. What actually happens behind the scenes is that b still points to the old value, but when a is changed, a new value is created and a is redirected to that. If we change b as well, then our garbage collector sees that 'hello world' is unref'd and reclaims the memory (this isn't C goddammit).

Ruby gives us some options for changing values directly:

a = 'hello world'
b = a
a.replace('goodbye world')

puts a #outputs goodbye world
puts b #outputs goodbye world


In addition to that, there are a number of bang (!) functions, which behave like their counterparts except that they modify values directly. The ! signifies that they're dangerous.

So what happens? Well, knowing this information, a user decides to suggest in a thread that Ruby ought to have pointers to pointers so he can do things like he could in C.

Because .replace is too messy.

Nevermind that Java gets along just fine without any.

Fucking C.

Yeah, that was a long setup to a bad punchline. I know. I also know that the interpreter was coded in C.

Monday, March 09, 2009

Rediscovering ternary operators

Check out this factorial function, now not even error handling can increase my line numbers!

factorial = lambda{|x| x<0 ? 'error':(x==0 ? 1:(1..x).inject{|x,y| x*y })}

This is just what came to mind, it could handle strings as well if you add in another ternary. What's really interesting now is that when you combine ternaries with iterators you have the two major control structures: if statements and for loops. That means you can conceivably create some massively complex functions in just one line. One long incomprehensible line, but one line nonetheless.

Of course, even the most fanatical Ruby developer wouldn't actually do this because the code would look ridiculous.

I think.

Saturday, March 07, 2009

Bits and Funnels

Apparently Block III Apaches are supposed to have the capability to control Fire Scouts from their cockpits. Imagine that, an attack helicopter tailed by a swarm of smaller attack helicopters. I'm pretty sure that Fire Scouts can pack Hellfires too.

This is one of those things that sound ridiculous yet awesome at the same time. You know, like it shouldn't work in real life but apparently does anyways.

On a different note, why are Perry class ships still designated FFGs? The Mk-13s have been removed years ago!

Wednesday, March 04, 2009

Itt: Lies

People often talk about how readable Ruby is, how a person who's never seen a computer program could just about understand what's happening. After all, the clean syntax is what initially attracted me to Ruby. As it turns out though, that's only true if you're writing in the imperative.

For instance, this is how you'd be expected to write a summation function in something like Java:

def summation1 (n)
  if n == 0
    return 0
  else
    return n + summation1(n-1)
  end
end

puts summation1(3) #Outputs 6


That's readable even to the layperson right? Except spoilers: nobody actually uses Ruby that way. Let's try something else then:

def summation2 (n)
  a = Array.new
  n.times {|x| a << x)
  return a.inject {|x,y| x+y }
end

puts summation2(3) #Outputs 6


Okay, I admit that was a bit contrived. But you can see where this is leading:

summation3 = lambda {|x| (1..x).inject {|x,y| x+y }}
p summation3[3] #Outputs 6


What. Did I get hit by the Haskell train or something?

Basically what I'm trying to say is, Ruby is a very concise and elegant language. But with so many shortcuts built in, its general readability does suffer. At least for people not familiar with this kind of functionality. That said, condensing 8 lines of code into 2 only makes me enjoy Ruby more, not less.

Note: That is not a typo in example 3, there is indeed a shortcut for puts. People don't tend to use it so much though, or at least I don't.