05.01.09
The Dead 2009 tour setlists
I put together a spreadsheet at google of all the setlists the dead have performed so far. Grabbed the info from http://www.dead.net/dead09. They’ve got very little repetition in their set lists so far.
Just a few bad ideas.
I put together a spreadsheet at google of all the setlists the dead have performed so far. Grabbed the info from http://www.dead.net/dead09. They’ve got very little repetition in their set lists so far.
We travelled to the next town via game trail, making great time. Ate a delicious lunch of venison and then made it to the next town by dusk.
We talked to the guard who didn’t have much to report. At the Red Door Inn we saw a petrified wyvern and secured a decent room for the night. Talked to the weaponsmith a bit, found that the local mayor was upgrading the towns old weapons and that a local gambler had reported being attacked by goblins. No one really believed him though, they thought he was trying to plea out of debt.
Went to a lovely tavern and listened to the bard sing for a while. He bought us a shot of some mediocre fire water. Nothing has the true savoriness of a fey stream.
Midway through the evening, right as I was conversing with the paladin about scouting out the gambling hole that we’d heard of, a bunch of hobgoblins and goblins burst in through the door. While I was facing the window by the door, such was the delight of the music and my discussion that I too was (moderately) surprised.
As the first among us to recover, I upturned a table at one of the intruders. It missed him but did obstruct the doorway somewhat. I then somersaulted out through the window landing on my feet with longsword drawn in front of a crowd of hobgoblins trying to push their way into the inn. As my teammates recovered I clove at two of the dirty creatures, but missed! I was so fired up that I took another swing and this time they both fell.
A couple of the goblins slipped away from me into the tavern and one threw a firebrand at the bar almost setting off all the moonshine. Our quick thinking druid shifted into his mighty bear form, hefted the cask of beer, and launched it at the fire almost completely extinguishing it.
The rest of the battle went fairly quickly. The goblins were cut down while the fled. One of the patrons at the bar showed an amazing will; he ripped off a table leg and went after the would be arsonists. He barely managed to dodge what would have been a serious blow and then returned even better. The goblins did try to throw two more torches, neither of which were as well placed, and which were put out soon after the goblins were put down.
Leaving the tavern, we ran into a guard captain who thanked us for our help. Looking around, we can see other places in the town were on fire, and there is a dreadful commotion coming from the Northern side of the town…
One of the projects we’ve been working on recently has a lot of dynamic data driven content that doesn’t change much. Knowing this we made sure the backend was setting cache control headers appropriately and then tried to turn caching on in apache using mod_disk_cache– so far so good. Pages were speedier; cpu load was lighter; we were happy. Then tritchey started insulting us.
I didn’t take it personally; I already knew these were good ideas and I saw this as an opportunity. Surely we could match his feat– I should only need to add one line to the config and enable a module. Ah the foolishness of youth.
I turned on mod_deflate, cleared the cache, and hit refresh. Hrm, nothing happens. Firebug[1] is reporting that the page is definately being delivered zipped, but the cache wasn’t ever being filled. It would successfully zip and cache the static javacript and css files. The html coming through the reverse proxy was never put in the disk cache and was requiring a re-request to the backend every time.
I saw some references to AddOutputFilterByType not working with reverse proxies from not being able to correctly identify the content type but that seemed to be fixed and deprecated at the same time. Suggestions were to use mod_filter instead but the docs on mod_deflate still pointed to the old style and there weren’t many good examples of this type of setup with mod_filter (good example coming below). Someone else claimed that apache was stripping off the cache control headers the backend needed, but my logging showed that wasn’t my problem. I’d largely given up and just left it at the caching without the deflate since that gave me better performance.
At the same time we were trying to bring up a new server for this to be hosted on using Ubuntu JEOS (8.04) rather than the Debian Etch we had been using. Once we got all deployed on the new box, I decided to give the caching another try. It works great! The difference for us seems to primarly reside somewhere between the Apache 2.2.3 we had been using on Debian Etch, and the 2.2.8 with Hardy Heron. To me this somewhat justified our decision to give Ubuntu a shot over Debian. I’ve been a fan of Debian for a while but found quite a few cases where I hit a bug that has been fixed in a newer version that wasn’t in stable. Backports were sometimes available; more frequently it would only be available in testing which through libc6 would require everything to be upgraded at once.
Here’s an example of the config:
RewriteEngine On # we are actually using mod_rewrite to implement it
ProxyRequests Off # don't be a proxy, just allow the reverse proxy
#see if a static file exists in the webroot first and serve it from there.
RewriteCond /var/www/gainesville-green.com/current/www/%{REQUEST_FILENAME} -f
RewriteRule ^(.+) /var/www/gainesville-green.com/current/www/$1 [L]
#if not forward it to the lisp process listening locally
RewriteRule ^/(.*)$ http://127.0.0.1:3434/$1 [P]
#set up caching, enabled for the entire site.
CacheRoot /var/cache/apache2/mod_disk_cache/gainesville-green.com
CacheEnable disk /
#Declare a filter named gzipping
#The 2nd parameter is type of filter. I believe this is saying
# that the filter operates on the content body, as opposed to
# the url or some other part.
FilterDeclare gzipping CONTENT_SET
#in filter gzipping use deflate when content type equals text/html
FilterProvider gzipping deflate Content-Type text/html
FilterProvider gzipping deflate Content-Type text/css
#'$' here is substring match, match both text/javascript application/x-javascript
FilterProvider gzipping deflate Content-Type $javascript
#insert the filter into the chain, by default at the end.
FilterChain gzipping
[1] I’m using the beta which has got a lot of nice improvements to an already great extension. Also Clear Cache Button is a nice Firefox exension that aided in the testing here.
We’ve been working for a long time to resolve an error in our ldap setup. Whenever we tried to use the LDAPVerifyServerCert option to verify the ldap server we were talking to is correct, it didn’t work. Always failed with the unhelpful error:
[LDAP: ldap_simple_bind_s() failed][Can't contact LDAP server]
We had set the appropriate CA cert with the LDAPTrustedGlobalCert option. We could use openssl s_client to verify the certificate chain. We couldn’t figure out why it didn’t work; it was always just simple bind failed.
I finally found it today: The certificate file needs to be readable by others. Aparently the apache process reads that file separately than the rest of the config. SSL certificates for mod_ssl appear to be fine to only have root read on it, but not the LDAPTrustedGlobalCert. It would’ve been nice if the log message had said something like “Permission denied reading …” or even just “Couldn’t read certificate.” Unfortunately it falls back to the most generic error there.
I just read an article in The Washington Post about Wikiality.
Society is running up against the truth of what ‘Peer Review’ actually means and finding it disconcerting. The notion that truth by committee as practiced on wikipedia is something different than truth by committee as practiced by a journal is getting tiresome[5]. When society actually uses this idea of Peer Review to create[1] the most powerful and easy to use system of edit and review so far, articles like this bemoan that we have somehow let the Golden Days Of Research[4] slip away. That article was decent but when they complain that Google is linking to wikipedia instead of Peer Reviewed research I say it is working perfectly. A key point: google operates by Peer Review; that is the fundamental basis for their algorithm– someone linking to a website is a vote of confidence[2]. The fact that Wikipedia has risen to the top in this process shows how fundamentally useful it is.
The truth[3] remains though: research is hard, it always has been and probably always will be. Maybe what these authors are really bemoaning is more people think they are good at research because it has actually gotten easier for once.
Maybe I just need to follow their advice:
Wikipedia is awesome.
Wikipedia is the best source online.
Didn’t you hear how great Wikipedia is?
There is nothing better than Wikipedia.
O O
< “Wikipedia works for me.”
\__/
And for fun, here are my contributions to this great endeavor, anyone care to review them? What about yours?
[1] By Clay Shirky’s estimate, this–all of wikipedia– was created in less time than American’s spend watching TV every year. Just wait till we put a couple more years into it.
[2] The more people that link to a website, the more weight an outgoing link from that website counts for. So an expert– someone with lots of incoming links– will be counted more than one without. http://www.rose-hulman.edu/~bryan/googleFinalVersionFixed.pdf
[3] In my eyes, do you agree?
[4] This may be a bit of a straw man argument– they never said as much in that article– but it is a common theme I’ve seen about.
[5] The main difference, one side is much less about the reviewing and more about designated authority.
Peter Seibel wrote a Common Lisp tutorial that is the best introduction for Common Lisp that I’ve seen. I’ve poked around at a few different books, but that one was the one I actually learned Common Lisp from. It is clearly written giving you what you need to know without getting bogged down. I also find myself revisiting it as a reference from time to time even though I now use the Common Lisp Hyperspec much more. Common Lisp rocks.
Even If you aren’t looking to learn Common Lisp, I would recommend Object Reorientation: Generic Functions for a non-Java-like look at how object orientation can be done nicely. Multimethods rock.
I’ve been a big fan of the SSX series, and this game has some solid improvements. Some of the old courses are there as well as some nice new ones. The music was surprisingly fun and seemed to be based off of your movements to some extent. They’ve gone back to upgrading the riders points after winning an event rather than having to go to the lodge (which I found kind of clumsy in the last version). Everything has a bit more polish.
But after renting for a week I don’t intend on buying even though there is so much of interest left in the game. I (and another friend) found the controls to be sloppy and tiresome. Shaking the remotes to recover from a fall gets old really quickly. It was hard to repeat even basic tricks exactly. I try to shake or flip the controller in the right way and find it doing a different trick, or not registering at all. Ubertricks now are complicated shapes to draw. Even on the practicing screen trying over and over again I could never top a 2/3 success rate on even the simplest tricks. When you are going for the big tricks in events you don’t have time to try drawing the shape several times… you need it to work. My arms just hurt after an hour of playing this game, it isn’t exercise it is just bad jerky movements to try to get it to respond.
The one aspect of the motion sensing I liked was the use of the nunchuck to steer. A combination of tilting from side to side and using the analog stick (each with a slightly different effect) is used to control the riders side to side movement. This worked nicely and naturally (after a few minutes to get used to it).
It might be worth it if you think motion sensing is the greatest thing evar, but I found it clumsy and would recommend SSX 3 instead. Get the GameCube version, you can play it on the Wii with the Wavebird and everything is happy again.
Overall I give it 2 stars.
My computer networking class requires us to write the project in C++. I don’t really know why, the project has nothing to do with C++, it is about implementing a network protocol. There is an option to use Java for a 10% penalty… but java?
I’m asking for something better, the following is excerpted from my email to the TA:
Can I *please* do project 3 in erlang? http://www.erlang.org/index.html From the FAQ: “Erlang is a general-purpose programming language and runtime environment. Erlang has built-in support for concurrency, distribution and fault tolerance. Erlang is used in several large telecommunication systems from Ericsson. The most popular implementation of Erlang is available as open source from the open source erlang site.” The entire language is centered around the idea of lots of independent lightweight processes– not threads, there is no shared memory. The processes communicate entirely through message passing.
I’m willing to take a 10% penalty similar to Java. Which having done the first two in C++ I think might be too small and my wrists don’t care anyways.
All the required protocol functionality for the project would be implemented in my code, but as this is a higher level language I can do it in symbols and pattern matching constructs not the tedious mucking about in string splicing and parsing (which I’ve done plenty of and am tired of re-implementing, and will still need to do somewhat for the user’s REPL). I will be dealing with the specifics of sockets and the old BSD interface less directly, but I already have that mostly factored out in my C++ code anyways.
The Rant (you can feel free to skip this, but here is the why):
http://www.slideshare.net/Arbow/comparing-cpp-and-erlang-for-motorola-telecoms-software/ Compares C++ with erlang for use in motorola telco. Found erlang programs are shorter, faster and more fault tolerant, but user more memory (5MB runtime, only really an issue for really small embedded devices).I’ve been looking for an excuse of a project to learn erlang on for a little bit. I’d rather learn this new language to implement the project rather than Java, which I already know and have done similar projects in before. I was hoping to get some protocol design knowledge from this class, not bit twiddling and pointer chasing. In erlang I can focus on that (and have fun with the erasure codes).
Seriously, after the last project in C++, my forearms ached severely– the language is unnecessarily verbose and inconsistent.
I have been doing web programming professionally for 7 years now while at school and this has led to me doing networking code from time to time. I’ve implemented application layer protocols over ssl sockets for charging credit cards through at least 4 different merchant gateways in C#. My first Ruby program was an http client for an octet-stream of random numbers from random.org. I did network programming in Java all last semester for Nemo’s distributed OS class, and previous undergraduate classes.
One open source thing I’m somewhat proud of is hacking the UCW (Common Lisp web framework) multithreaded backend to use a pool of worker threads dealing out connections to them and having the threads return to the pool when done rather than assign connections in round robbin fashion that could lead to starvation and idling at the same time.
http://common-lisp.net/cgi-bin/darcsweb/darcsweb.cgi?r=ucw-ucw_dev;a=filediff;h=20051111160037-783f4-d10d54dac7e3b5560204e4a880239472b3d1f263.gz;f=src/backend/httpd.lisp
http://common-lisp.net/cgi-bin/darcsweb/darcsweb.cgi?r=ucw-ucw_dev;a=commit;h=20051111162051-783f4-8fb8c299cd4f4435f91578c0cc5b10984e1fc5a4.gz
I rejiggered someone else’s code to connect emacs to a javascript server embedded in a local firefox to help debug javascript live from the editor. https://trac.acceleration.net/JsShellServer Luckily didn’t have to do to much here– XPCOM nightmare… most of what I did was application and presentation layers.Why do I say all of this (other than to toot my own horn just a little bit :-)? Of this work in implementing application layer protocols and dealing with sockets in different languages and interfaces; the network interfaces are familiar (boost::asio is nicer than some), but I’ve found nothing so difficult about it as everything else in C++ to get this done. The STL is just a shell of a library. Boost helps get it halfway to being useful. boost::shared_ptr is almost like having garbage collection except not. C++ is a world of special cases with little consistency. I’ve seen some absolutely abominable template error messages (ending with unnesting 7 layers deep completely unreadable and because i forgot to link in the proper libraries). This isn’t an “Enterprise language” it is a tarpit– I don’t care what Microsoft tells you. How do you think they got their reputation for OS and application security? I am a smug lisp weenie ;-) This was not my first application in C++ (although first in a while), but my opinion of the language has been cemented by this latest project. The feeling is “Should I be using punch cards as well?”
sorry for the length… C++ really gets to me. erlang?
I never previously considered myself a one issue voter. I suppose that was before our elected representitives put us on equivalent footing with the Khymer Rouge.
Did your senator vote us (further) into a dictatorship?
At least there are some independent candidates. I’m not positive, but this guy currently has my vote: http://www.votebrianmoore.com/index.htm