This clip (warning: sound) on youtube has generated, as of the last count, 43,380 views and over 260 comments. Several of the comments describe the video (and, of course, its author) as racist.
I want someone to explain that to me, because I don't get it. I watch the video, and I don't understand how it's racist. Please, someone just explain it to me.
Google Image search for "Tiananmen" in China
Google Image search for "Tiananmen" in the United States
Shamelessly stolen from LGF
I got 20 really fast, 27 without too much effort, and I'm up to 30 now. Those last 3 are hard... but here's some owls:
{o,o} {^.^} {O,O} {>,<}
|)__) |)_(| (__(| (__(|
-"-"- -"-"- -"-"- -"-"-
O RLY? YA RLY NO WAI! SRSLY!!1
Well, today's my 25th birthday. Here's my day:
Wake up early with "the squirts". That pizza last night had some crazy cheese on it. Realize that despite amazing diarrhea over the last 12 hours, somehow I'm still up 6 or 7 pounds since the turn of the year.
8:40: get to work late, mostly because of the aforementioned squirts
8:41: get an email about such and such page needing to be fixed
8:55: realize that lots of other pages before that page also have substantial issues, some my fault, mostly not my fault
... work ...
1:30: Finally make a little breakthrough on the "2 hour project" that I've been working on since sometime last Wednesday or Thursday. Go to Birthday lunch with co-worker.
2:00: Find out I hate Thai food. I think the curry has peanut butter in it? Seriously, terrible. At least it was free.
3:00 Get settled back in. Get voicemail from project manager wanting status update. Resolve not to return his call.
3:15 Realize that there's a build of the system tonight whether I'm ready or not. Resolve to finish the task tonight, no matter what.
5:00 Everyone has left except the aforementioned co-worker
6:30ish Aforementioned co-worker prepares to leave. He tells me to go home soon, I tell him I've resolved to finish. He relates a story about sleeping on the floor, and then leaves.
7:30 Get an email "build starting soon" followed by a flurry of check-ins, some conflicting, some just annoying.
8:30 Get very hungry. Go down to favorite restraunt to have sushi dinner. It is, as always, excellent.
9:10 Get back to office to "finish up". Realize that office keys are locked in office, and that they won't let me in, no matter what, period.
9:25 Get home and realize that office keys and house keys are on the same keyring.
Happy birthday. Woo. It's a good thing we killed the cat last week, or it would probably die tonight, on my bed, while I was trying to fall asleep.
Looks like I'm getting emo for my birthday.
9:43 realize that latest blog post has no consistent punctuation or... anything. It's a big crap shoot. Say "the hell with it" and hit that save button without even finishing my current
...
Update: When I hit "save", the blog software took me back to the login screen, which usually means the post is lost. Fortunately I predicted that something would go wrong, and ctrl+a ctrl+c'd it.
Considering the ease with which Katrina pushed aside all the steel and concrete, I'm not sure that New Orleans Mayor Ray Nagin's proposal to rebuild the city out of chocolate is such a good idea.
I know I'm the only one here following the YTMND/eBaum war... but if you want a 5 minute primer, I suggest you go listen to this "dramatic reading".
Now I'd like to gripe about a java library called Struts-Layout. Before I start talking about how much I dislike it, let me be clear - if you're doing things exactly as the library creators intended, you'll probably find it useful.
On to the bad things:
1) It leads to terrible DOM. If you use struts-layout with other, saner libraries like tiles, you'll find that you have really awful DOM structures popping up all over the place. It's not uncommon to have a tree 30 elements deep in my current project. People - usually people who aren't writing javascript on those pages - tend to use lots of layout:row and layout:column objects to organize your data. When you're writing jsp code, this seems perfectly reasonable. Once you dig in to the generated code, however, you'll find that you're creating lots of layout tables. Worse, you're creating lots of layout tables with one row that contains two cells, each of which contains a table with two rows, each of which contains one cell, which contains a table that... you see where I'm going. It gets ugly FAST.
2) There's no IDs. Maybe it's the amount of javascript I end up writing, but I really, really like it when all my elements have IDs. Setting these in layout isn't nearly as obvious as it should be.
3) There is little control. If you want to generate a table from a list of objects, you use layout:collection, and then a single layout:collectionItem for each column. Note how there's no concept of a "row" there. They're nice enough to provide properties for dealing with the row in the collection tag. For example, there's a styleClass and a styleClass2, which will alternate by rows as you go down. Bad smell to me, but still functional... unless you want to go by threes. Or unless your stylesheet setup is more complex than that (mine is).
4) Voodoo magic. This is probably just number 3 redux, but using the example of the layout:collection block, if you want to display some data, no problem, use a <layout:collectionItem title="Status" property="status">. That will create your column header, and then fill in your column with data from getStatus() on the collection object.
What if you want to make that column a link to some other page? Well, there's a href property in the collectionItem tag for you. What if you want to apply some mathematical operation to the column? Well, you have mathOperation as a property. Want the column sortable? Just set sortable="true" (warning - may not work if the planets are out of alignment). Want to make that column a link to some other page? Well, there's a url property in the collectionItem tag for you.
Why do I get the feeling I just repeated myself?
To summarize: I like a library that gives me some powerful, consistent, simple tools and then gets out of my way. Struts-layout lets you build a little prototype very quickly, if you stay inside the lines, but as you develop the program, it quickly becomes a nightmare. If you're developing struts applications, stick with struts-html and JSTL. Your day 1 programming won't be as easy, but days 3 and up will be much more enjoyable.
Why is "new music tuesday" usually between 1 and 4 am on wednesday?
kthxbye,
Nagi