I saw this, and it inspired me to want to listen to a U2 concert. So out came the go Home disc, a recording of the second big concert 20 years after their first Slane Castle concert. Seriously, how many bands can draw a crowd of 80,000 people at a venue they where they had a concert only one week prior? Anyways, lacking DVD-A or SACD, it's hard to beat a well done 5.1 channel DTS mix. I'm the type of person who'd much rather sit on the couch and listen to a good recording of a concert than have to go to one, so the experience is hard to beat. Unfortunately I've had this disc for almost 3 years, and haven't listened to it nearly often enough. If any U2 fans ever want to listen to it (or watch it), as far as I'm concerned it's fair game for a movie night.
Today I spent a good chunk of the afternoon writing an SQL query, crashing MySQL many times by changing the criteria in the where clause. First, a bit of background. Currently there is a database table with various demographic data, and privacy flags for how different pieces should appear in directory. There are multiple applications that use this data, and currently they apply the flags independently in the code before output. I need to add another replication of this data, and as I need to verify the proper use of the privacy flags in relation to types of users anyways, and now the database supports views, it seemed a natural time to rework this and make it centralized so we only had one code base to support.
The goal of the view is to find directory data on an individual regardless of account existence, and to find account base name and email address, even if directory data is suppressed. Background on MySQL views is there are two algorithms - merge and temptable. Merge substitutes view columns and tables into your query and then runs it, while temptable runs it as written outputting into a temp table, and then uses that in your query. Unless you have are doing certain types of processing on the data or have only small amounts of data, merge is much faster and more efficient (MySQL can optimize it).
There are two primary tables with data, the first being accounts and the second being demographics. There is also a database view (using the merge algorithm) which pulls a person's primary email address based on the account table and some other tables. One of the privacy flags is to suppress all directory information. Unfortunately as there's no support for outer join (and union pushes the view algorithm from merge to temptable), the way to get the account data is either to add an if on every field, or do a left self-join on the demographic data (first being basis to find no account, second being conditional for directory data). The self-join works awesome, until you add a criteria to search for say someone with a username x and ZIP y. If you do that the database crashes.
After much poking to determine which combinations of fields in the where clause cause this, and a stack trace indicating it's crashing in a join optimize function, I at least have an idea what's happening. It appears when two or more tables are involved in a query at least twice each (remember the merge view pulling the account table in a second time?), and the optimizer function determines that the where criteria referencing them are both used to narrow the output before the other defined join criteria, it can't handle determining how to connect them and segfaults.
The "quick" fix would be to convert the thing to temptable format, as then it runs the entire thing, and can't optimize it. That makes queries take a lot longer, and one shouldn't have to force the database engine not to optimize to prevent it from crashing. There are a couple ways I can fix this by making the query longer, but I want to track down the bug so it can get fixed first. And my boss told me I'm not allowed to think about work this weekend and it's past time to go home. So I get to document my thoughts on it so I remember Monday, meaning you get that fun story...
Class-action this time. I got a copy of this today, which I thought was rather funny. If they win a lawsuit in a judicial hellhole but can't enforce it because the company is outside federal jurisdiction, I guess they may as well bring a class action against them too. Unfortunately it looks like they want to try for those using spamhaus lists. Hopefully they won't get a ridiculous ruling stating mail server operators are not allowed to filter or anything like that. It's unfortunate what they put in that message - I hope people don't believe it without researching a bit.
I saw this post on the Facebook blog, and thought it was interesting. It seems too many people on all the different sites just want to try and get as many people as possible on their friends lists, not realizing the implications of doing so. In the entry she directly says "Friendship on Facebook is, in and of itself, a privacy setting." It's unfortunate that people don't realize this, and then when the view of it changes they get freaked about the information they're giving to all these people they don't trust. If you don't trust someone with all the info posted on there, why list them as a friend? If only they'd post this entry somewhere inside the system as a reminder to people (but then how many would read it?).
I just uploaded pictures from Friday for anyone who's interested.
So I was looking at filter stats, and noticed an interesting trend on the spam time of day average graph. There's a base level of junk from knows sources, the level of which doesn't change much. But then there's an additional amount which has an interesting slope over the day. It's like the spammers wake up with a new set of accounts, machines and connections, and then it gets cut off as ISPs find it and take action. It seemed interesting.
Not sure how I missed this before, but I thought this was rather funny. Someone had way too much time on their hands to piece it together.
A good start, but it seems any questionable DoD spending is already classified. Now we just need to get rid of riders, so the same can be done with voting records.
While I was looking at the web sites of different candidates in the primary, I found a rather annoying trend. Too many don't really say anything other than that they want the position. One I saw even looked like a geocities site from the 90s. However, many have introduced an "Issues" section, which seems like a great thing at first. But in looking at the sites, it seems everyone has the same 4-6 issues, and list that they are important and need to be handled. The problem is most don't say how. I could see maybe not having details on a couple pending finding out available resources and options, but say that and at least give a general indication of the direction they'd like. I think it's great that more people are sick of the existing politicians and think they can do better. Unfortunately thinking one can do better without having actually thought of or being willing to state how doesn't help a lot. Even more unfortunate is most people will just think "oh, they care about that" and assume based on party or other reasons that are just as ridiculous that they will agree with the candidate.
That said, MN primaries are Tuesday. Find the candidates in your area and search a bit. The 3 "major parties" all have multiple candidates at the state level (senate), and within the metro it appears several areas have competition within parties for senate and/or house positions. As the primary determines who's on the general election ballot, you may want to consider the party of your voting in the primary, as you may not want to vote for the same people who you'd necessarily want in office. For example if you're OK with anyone from a certain party (hopefully not just because they're in that party), but you have a strong preference of a certain candidate in a different party, you may want to cast your primary votes in that party. Voting one way in the primary doesn't mean you have to vote for the same people in the general election. So make sure you vote on Tuesday.
Copyright ©2000-2008 Jeremy Mooney (jeremy-at-qux-dot-net)