5-Aug-2021: No quips in 7 years. That's awful.
I will be presenting a
webinar on Feb 4 at 11AM EST. This webinar focuses on the mongoDB API and
programming model and reflects my own experiences in using the product over
the summer of 2013 before I joined the company.
Lots of fresh content with technical grounding; I think it will be a good one!
Click here to register for free
31-Dec-2013: I am working at mongoDB. email me at email@example.com or just google mongodb to learn about all the exciting things we're doing.
Having run out of things to do with my Raspberry Pi in the absence of
a GPIO ribbon cable, I have decided to let it increment an integer
until such time as python says the value is too large.
Update: The count is up to 101,528,700,000. I am pretty sure python will go up to max long so this could go on for quite a while. Or until I accidentally knock the power cable out of the Pi... Update: The power strip supplying the transformer to the Pi was turned off by accident, thus ending the incrementing integer experiment. Running top in another window made the whole thing look like it was doing a LOT more than it really was. Now that I am at mongoDB, perhaps a clever sensing and remote upload solution is next? Really have to get that GPIO cable...
17-Oct-2013: SQL = OMG. There's nothing "wrong" per se with SQL. Until you let one of your folks code this ghastly SQL statement.
15-Oct-2013: Go to stackoverflow.com and check out the number of people trying to dig themselves out of wretched data transfer environments. There's no specific tag for "wretched transfer environment" so you'll have to eyeball for questions like "I have lines of data in this format..." Typically the lines look like this:
10-13 13 X 1,242,423.45 10-12 13 882,132.66Who emits data in such a way? The lack of effort put into emitting data in some easily consumable form is more than offset by the amount of effort required to parse it. Only people need formatted data; programs and persistors enjoy raw, simple data.
2-Oct-2013: Been doing a lot of Cassandra work lately. I am a fan of the database for its scalability and resiliency, and it meshes well with my design philosophy. In creating a MBI/MBD implementation for Cassandra, I had to critically assess SQL (more specifically, CQL) rewrite for Cassandra and discovered a few very important differences; you can read about them here.
27-Sep-2013: New article on good identity architecture just released. Also: The Map-Based Interface & Driver (MBI/MBD) work has yielded a generalized interface using Maps and PQL as a query language with three different driver implementations: Postgres, MongoDB, and Cassandra. I have a lot of articles ahead of me, I think....
2-Sep-2013: PQL (Prefix Query Language) is here! Check it out!
31-Aug-2013: PQL: Prefix Query Language. It is coming.
26-Aug-2013: It requires good and ongoing discipline to well-factor code. This is because often the first cut at factoring is incorrect and you have to go back and change all your namespacing (imports, etc.), compile and link library lists, etc. It is straightforward work -- but it is tedious and low-value from a tactical delivery standpoint, which can drive developers to simply punt.
17-Aug-2013: Many thanks to the people who spraypaint day-glo orange circles around bicycle-eating holes in bike paths. I suspect it's not just the state/municipal facilities people doing this. My wheel rims and organs applaud your work.
10-Aug-2013: Just started experimenting with the Raspberry Pi, like a million other people. Nice little piece of kit.
29-Jul-2013: With moschetti.org being live for about 1 month now, it is starting to pick up some traffic -- including bots and probes and Those Who Would Do Evil. The logs report a gamut of GET requests looking for MySQL admin files, htaccess files, and what probably are CSS files that somehow contain exploits. Also, a few clearly predatory POSTs of very large garbage strings.
25-Jul-2013: This is valid XML. Imagine what it would look like after being parsed into a set of data structures like Maps. Almost every element of the parse is on a different axis. See why I am not such a fan of XML as a structured data carrier?
<?xml version="1.0" ?> <type:item xmlns:type="item" type="item" item="type" type:item="item::type" type::item="item:type" > type <item>type</item><type>item</type> <item>type</item><type>item</type> item </type:item>
22-Jul-2013: There seem to be no authoritative publications that clearly describe when to use or not use attributes in XML data design based on both a) information architecture principles b) practical conversion of XML to either generic map of maps or bespoke objects. My view: Unless some other product/vendor/IDE/legacy-awful-grep-thing demands otherwise, just don't use attributes. If you are modeling genuine structured data, then model everything as elements. Don't take the shortcut. Your metadata management and to/from XML logic will be far simpler and easier to extend.
16-Jul-2013: Converting data to different shapes and formats at the boundary is tedious and non-scalable if you do not Do The Right Thing and ensure that you have a flexible mapping layer independent of your core objects and persistor models. Make sure to Do The Right Thing.
12-Jul-2013: How many systems will break now that Hawaii has chosen to call itself Hawai'i? I predict an apostrophe catastrophe will occur as millions of programs with string scrubbing to prevent SQL injection attacks will consider Hawai'i a cyberthreat.