maradydd: (Default)
[ profile] alexey_rom tweeted Edward Z. Yang's Databases are categories (based on a talk by David Spivak) the other day. I only just got round to reading it, and having done so, I recommend you do too. The notion of arrows and their properties (identity and associative composition) can be a bit abstract for the amateur/novice category theorist (like me -- hell, I wouldn't call myself more than a category theory fangirl), and mapping this onto identity and joins in databases is a really clever concretization.

There is some nerking in the comments about the relational model really being about Cartesian relations rather than object relations. This is true, but AFAICT irrelevant if viewed from the perspective of object-relational mapping (which you get for free in Postgres and Oracle anyway).

Where I think this is really useful is the world of higher-order query languages. Category-friendly languages such as Haskell have already made a good deal of headway into database APIs; I do not yet know of any projects that (for example) can create a schema from a set of objects and morphisms, but (continuing the example) I could see using that approach to generate all necessary foreign key constraints from an ORM.
maradydd: (Default)
A recent but rapidly growing blog that deserves recognition is Eric Fernandez's DIY Bio 4 Beginners. Eric's been busily trawling the Internets for articles, videos, animations and other great resources for the amateur-biology community. Sometimes it's one link a day, sometimes it's ten -- but the information is great and his enthusiasm is (ahem) infectious. Check it out!

In other news, today I'm off to FOSDEM, especially for David Fetter's talk on OLAP and Common Table Expressions in PostgreSQL. Ever wanted to write a recursive expression in SQL? Now you can, and there are some damn fine reasons to. Representing trees in a database in any useful fashion used to be difficult. Now it's not. This takes data representation to a whole new level.
maradydd: (Default)
Actually, I've been back since the 7th, but I've been travelling with my folks (who, somewhat to my surprise, actually showed up for my commissioning; Dad and [ profile] turgon76 pinned on my bars, and Mom took pictures) and am heading back to Houston later today. I didn't bring my laptop to Ft. Lewis, so I'm limited to the lone Dell that's in the hotel's business centre, and have only just surfaced from the barrage of email that accumulated over the last month.

Said barrage mostly consisted of some 400 emails from Google's Summer of Code mailing list, which I hadn't signed myself onto. I thought they'd passed me over, since I'd mentioned in my application that I'd be incommunicado for all of June and gave them my dad's email address as an alternate, and Dad never heard from them. Turns out they just replied to the address I'd sent the proposal from, and luckily I happened to check my mail around 10pm on the very last day that I could accept their acceptance. Thus, I am now being paid $4500 to write the bulk of the code for my thesis. Twist my arm, please.

(What does that involve, you ask? Briefly, I'm going to write [or, more likely, extend] an SVM implementation which avoids the sucktacularity of the existing implementations I've found, to wit, shitty code or shitty licensing terms, and then embed it into PostgreSQL so that you, the end user, can write ORDER BY clauses which will order a result table in terms of "elements that are most like the elements in group Foo and least like the elements in group Bar," where Foo and Bar are groups that you, the user, define. I'll have to put together a short article on why this is useful Real Soon Now.)

Another bit of workish news that I did hear about while I was away (from multiple sources, even) is that [ profile] cipherpunk and I will be speaking at the BlackHat Briefings about Dejector. We go on at 9am on 28 July, under the title "Stopping Injection Attacks with Computational Theory". I've been talking this up for a while now, but I'm still very, very stoked about the whole thing. Alas, we will not be presenting the same talk at Defcon -- we're not as cool as Phil Zimmermann yet -- but the presentation notes will be available shortly after the conference, and the first release of the actual production code should be available sometime before the conference. TODO for tomorrow's flight home: transfer the working notes in my head onto paper so that poor beleaguered Rob can write up the tree-comparison routines himself, because thanks to Google, now I don't have time to do that myself. Dammit. Where are my clones again?

(Incidentally, [ profile] enochsmiles, I did read Kiln People while I was away. I liked it.)

Some of you are probably wondering about camp itself. I won't say I had a great time, though it was pretty good despite a higher-than-average number of stupid accidents and annoying coincidences. The cadre were excellent, though a lot of the other cadets were immature little bastards who, had they managed to piss me off just a whisker more, would have probably gotten railroaded off post with a series of EO complaints chasing them all the way back to their home universities. (I content myself now with the fact that I outrank them and will likely continue to do so as time goes on, and have no qualms about pulling said rank now that I actually have rank to pull.) I also spent an inordinately large amount of time falling into and from things, including a bush which gave me a scratched cornea, a bus, and a pulley-and-handlebars arrangement about 50' above a lake. (Well, technically I rolled into the bush, away from the simulated EPW who had a simulated grenade under him. In the real world, a stick in the eye beats shrapnel. But next time I'm keeping my eyes closed.)

Right now I'm mostly just tired: tired of being around anywhere from ten to three hundred people at all hours of the day and night, tired of having the situational-awareness radar going 24/7, tired from sleep-dep. But I did what I came to do, and I'm proud of that. And now I'm going home to do even more things to be proud of -- and, more importantly, to see the people I love.

I'll be back in Houston on the 9th, out in SF on the 20th, and back in Iowa by the first week of August. I can't wait to see everybody again.
maradydd: (Default)
Dejector, the anti-SQL-injection-attack tool which I developed based on the ideas outlined in this paper, now has a live proof-of-concept up and running. Try and break it! Tell your friends, get them to try and break it too! Pimp it on IRC, submit it to Slashdot, I don't care. This thing needs stress-testing.

As the page explains, it's using a weird dialect of SQL, but that's not intended to be security through obscurity; I learned bison for this project, so I relied on the SQL89 grammar in the O'Reilly Lex and Yacc book. Consider this a .0001a release; the real one will be a C++ library built on the flex/bison (or, in MySQL's case, handrolled-lexer/bison) definitions from a variety of open-source SQL dialects, with wrappers for Python, PHP and whatever other languages SWIG supports and people care about.


maradydd: (Default)

September 2010

12131415 161718
26 27282930  


RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags