csua.org/u/46e -> www.docuverse.com/blog/donpark/
I suspect it was their obsession with the Design Pattern that lead Java programmers down this path. Design Pattern is a useful tool but you can hurt yourself if you pull on it too much. Being able to mold and fuse everything in your software is good, but such flexibility isn't useful if it isn't actually used. I seriously doubt if more than 10% of all the extra flexibilities and abstractions being built into Java software are ever used. All that 'fat' makes the software bigger, slower, and more difficult to understand. Dive into any popular open source Java code and you'll see lots of design pattern artifacts like Factories, Adaptors, Managers, and Observers most of which has only one or a couple of implementations. These sort of habitual abstraction often forces late comers to get lost in the abstractions to understand process and data flow. I think the best example of flexibility is the mammal skeleton structure because flexibilities are like joints, points that can bend. Each joint has cost associated with it so if the benefits don't outweight the cost of having a joint a a certain location, it shouldn't be there. Don't add flexibility in anticipation, but add it when you actually need it, where you need it, and no more than what you need. Based on my experience, I would add that real flexibility comes from preventing assumptions from leaking across component boundaries. Limiting surface areas between components will help in reducing the chance of such leaks. I went fishing for some bloom filter code but couldn't find a general library in either Java or C++. Anyhow, it's probably because there isn't much code needed. Most of the Bloom filter works is finetuning the parameters and choosing the right hashing function so it doesn't really matter. Beside Maciej's article, I found these pages useful: * 37 Bloom Filters - the math (obviously explains the math behind BF) * 38 Some Motley Bloom Tricks (does this and does that with BF) * 39 Compressed Bloom Filters (PDF - self-explanatory) * 40 Coding Bloom Filters (game developer's tuturial on BF) BF is pretty simple stuff but useful in many areas. Anyhow, Steve Kirks shot his 44 azalea for me, so I thought I should send him some of my flowers. I guess Tim Bray is too busy with his new job to take snapshots of his lawn. The tag got lost you see and my head being filled with essentials like Boo leaves little room for flower names other than simple ones like the rose and the sunflower.
While the perils were preached before their subjects have, WiFi is now commonly available which means those perils are now common as well. Typically, they are poorly protected servers or home PCs with broadbands which are hijacked by hackers, supposedly even traded like Yu-Ki-Oh cards in the hacker community, and used to increase scalability to their attacks and to reduce likelyness of capture. Spyware is software running on desktops that monitors user activities and report back to it's master. Most of them are just privacy violators, some are used for more sinister purpose and are called trojans. Earthlink recently claimed that 51 PCs had, on the average, 28 spyware installed. While I think the claim is 52 over-hyped to fit their agenda, spyware is nonetheless common place and it's not difficult to place one on anyone's compure. If your PC is more than six months old, chances are that there were plenty of opportunities for hackers to seed it with spyware. So here is the scene: imagine a new class of spyware that monitors wireless network packets using code from these 53 open source wiretapping tools. AirSnort and one of the ARP poisoning packages should be enough. Now imagine this spyware being delivered to laptops with WiFi cards that supports features AirSnort needs. The laptop just became a new kind of zombie, which I call wireless zombie, that only wakes up when the WiFi card is used. All that is missing from the scene is the stage: a WiFi hotspot like Starbucks. The laptop owner sits in a corner and access the Net through the WiFi, it could even be someone like me writing this very blog post. The spyware wakes up and starts monitoring the wireless traffic looking for passwords and credit card numbers. If very strong encryption is used, wireless zombies can form a global grid and split up the work of cracking encryption keys. Once a month, the zombies reports back to their master via USENET posts. This Zombies at Starbucks scenario is particularly nasty because the potential number of compromises is just staggering. Maybe the FCC will have to dictate higher level of standards and send out a warning that helps WiFi users detect wireless zombies by the unusual fan activities triggered by the zombie grid working overtime. I feel rested but it's the kind of restful feeling one gets lying on the asphalt and lookup at the blue sky after getting hit by a truck. I never been in such an accident but I was in a head-on motocycle collision when I was young and found myself in a slow-mo flying through the air scene. I think the middle and the end part of an accident is a very tranquile place to be. One of the first news item I read was this 57 Wired piece on the national missile defense system which prompted me to wonder if we'll ever have a national virus defense system along with virus tax levied against companies whose vulnerabilities are used by virus found at the 'wall'. E-commerce tax is not popular among netizens, but I think taxing to improve the Net and to encourage better software and services might find more favorable support among netizens.
I like practically everyone in it but often it's difficult to post things without giving off unintended bad vibes. When I have an opinion, I have to say it like I have to fart when I have gas. But letting one loose can cloud up the room and you know that blogosphere is a really big room where you can't pretend it's someone else. While some might deny it or might not even be aware of it, there are definitely cliques to which people and even companies belong to or are associated with by themselves or by others. When I say something negative about something one of them did, I am doing so as if I would offer an advice to a friend, but it's often seen as if I am attacking the clique as a whole. I have been busy with a project for a client and I have barely managed to get enough sleep in the last six days because I have to deliver by this Sunday something that will wow people into opening their pocket next week. As usual, it's a lonewolf project because there is neither the time nor resources to pull together a team. I am trying to slip in some fancy design features for flexibility but it's mostly wham-bam-stay-out-of-my-way-fool and I'll-fix-that-later going on. Yeah, it's Silicon Valley at its best since crash projects like these are impossible to outsource. Days of milking fat mega-corporations on multi-year projects are gone and lean mean shoot-from-the-hip or work-for-nickles days are here.
|