Saturday, November 18, 2006
Qemu, VMware, & Emulation
"... an open source processor emulator that can emulate a number of different processors and peripheral devices, to run a Debian Linux ARM installation."
Qemu can sometimes run faster than the ARM it is emulating! Not magic at all when you think about it a bit, but cool for sure.
More typically my goals are the opposite: I like VMwar's ability to run a configured os + software unchanged. Slow is just fine. Even if scaling after development making development smooth and hiccup free is wonderful. Really it is a requirement. Coding by convention (ala Ruby on Rails (RoR)) solves many problems. But its not appropriate for all contexts and when it is not, VMware is one approach that may help.
Tuesday, November 07, 2006
Amazon Elastic Compute Cloud (Beta)
Got it!
If you are not familiar with the offering, check this out.Pricing
- Pay only for what you use.
- $0.10 per instance-hour consumed (or part of an hour consumed).
- $0.20 per GB of data transferred outside of Amazon (i.e., Internet traffic).
- $0.15 per GB-Month of Amazon S3 storage used for your images (charged by Amazon S3).
Who needs it? Enter the cloud Plus: No IT department
Lets say you are developing a custom content management system for a photo editor. Raw images from today's cameras run about 5 - 15 megs. Lets plan ahead and assume 25 megs so we get an even 40 per gig. It would be easy to shoot 400 gigs of photos in a year or two & the required disk drive would cost $250 & then you would need reduncancy and backup & all of a sudden $1,000 in fixed costs plus co-hosting fee. It adds up. Finally you could be sure that your bargan basement ISP would not be able to restore your backups when you really needed them any way.
400 gigs of storage will cost $40 per month.
Working with 10 images per hour, 10 hours a day would require about 2.5 gigs of traffic at $ .20 each. Fifty cents. $15/month.
Monday, August 07, 2006
USATODAY.com - Study: Emotion rules the brain's decisions
A brain-imaging study reported in the current Science examines 'framing,' a hot topic among psychologists, economists and political hucksters.
Framing studies have shown that how a question is posed — think negative ads, for instance — skews decision-making. But no one showed exactly how this effect worked in the human brain until the brain-imaging study led by Benedetto De Martino of University College London."
...
The brain images revealed the amygdala, a neural region that processes strong negative emotions such as fear, fired up vigorously in response to each two-second (on average) gambling decision. Where people resisted the framing effect, a brain region connected to positive emotions such as empathy, and another that activates whenever people face choices, lit up as well, seeming to duke it out over the decision.
Wednesday, August 02, 2006
How I Became a Basketball Fan
'Endangered species are our friends,' Yao said at a news conference organized by the London-based conservation group WildAid.
The group said China is the world's biggest importer of shark's fins, which conservationists say are cut from sharks that are thrown back into the ocean to die.
'As the human population increases, many wildlife species are decreasing, and the primary reason is that humans fail to treat animals as friends,' said Yao, who played for the Shanghai Sharks basketball team before moving to the Houston Rockets."
Tuesday, August 01, 2006
Technology Review: Emerging Technologies and their Impact
Buildix from ThoughtWorks :: project start-up in a box
Another example that thought works.
Monday, July 31, 2006
Writely
Looks pretty cool now.
Wednesday, July 05, 2006
paul graham railsconf 2006
california has an advantage with its climate because there is more marginal space
the only business woz and jobs had was building blue boxes --- a business with the rare characteristics of being both illegal and unprofitable
evaluating a field :: what are its tests like? how hard are they to hack?
look for overlap between leaders and practitioners
how much you should worry about being an outsider depends on the quality of the insiders
where the insiders are corrupt, don't worry
if it is corrupt enough, the test is an anti-test
"even a dumb man is considered wise if he remains silent" old testament
may have worked for bronze age goat herders in palestine
if you want to score big, focus on the margin of the margin
Tuesday, July 04, 2006
Martin Fowler at RailsConf 2006
drive toward simplicity :: facilitated by focus
conversational approach :: move developers from closet to customer
- often focus can be accelerated by shooting, then aiming. show the customer something -- is this what you want?
- observational approach to requirements -- see what the customer actually does
post modern computing :: just as buildings composed of modules don't live, software built from a uniform paradigm don't live
- ruby says: dive in a deal with the mess in the world -- be the glue
- ron jefferies pointed out that becasuse it deals with more messy realities of the real world, a payrole system is more complex than an operating system
Wednesday, March 15, 2006
Instrument Apps and Servers
Implicitly the article exposes some aspects of the term 'open':
- Wilcox presents code anyone can use
- Asm is open source
- While we can complain that Java is not truly 'open', it is open enough that bytecodes can be manipulated in truly useful ways by independent developers.
- Eclipse is 'open' not just in the sense its source code is open, but in the sense the resulting ecosystem is open to all manor of contributions
Monday, March 06, 2006
Eclipse :: Suitable for Server-side Development?
But the real strengths of Eclipse stem from its design as a tool integration platform. This has both technical and business implications. Consider the Eclipse Apogée project.
- The project's technical architecture requires complex integration of many different technologies. Because Eclipse tooling allows rapid development of tools which can work well together because of the eclipse plug-in architecture, it is possible for the project architects to leverage an amazing range of technology. Check out the project proposal.
- The flexible open source license used by Eclipse also allows a wide range of proprietary and open source projects/organizations to plug into the effort. The most recent example is the decision of db40 to join the project to help with persistence.
An examination of the technical archiecture of Apogée is worth while. Products like db40 and Mylar are far beyond the experience or knowledge of most good developers. They provide knowledgeable developers much a much deeper toolset than most opensource projects utilize. For simple projects this can be overkill, but it makes it possible to address a wider range of problems.
Thursday, February 16, 2006
Yahoo! :: UI Library
The Prototype examples win hands down and Rico is over the top. Thanks Sabre!
[Normally I'd post this type of stuff and my earlier post on the Yahoo! Design Patterns Library to Haystack, but I'm trying to illustrate something here: Sabre and Yahoo both think it is a good idea to give this stuff away. And this stuff is core Ajax functionality. Focus.
Design Patters :: Yahoo! 'Patterns'
SiteMesh :: decorators and composites for site integration
There are many web application platforms that are in common use, and even more frameworks. Typically, a web-application is built for a specific framework on a specific platform (e.g. using custom JSP tag-libraries on the J2EE platform, a custom Perl collaboration API using CGI, or a pre-written application using PHP). A web-site may usually consist of many web- applications built with a variety of technologies.The SiteMesh Overview provides a clear visual example of their approach and solution.
Sounds great, looks like I might want to use it, but what are the Ajax issues?
I ran into SiteMesh because of its use on the Grails project, which is a Rails-inspired framework for Java/Groovy.
Friday, January 27, 2006
Windows Application Spying
This can be easily accomplished by creating a proxy DLL, which contains a stub for each of the functions exported from the Winsock library. If the proxy DLL is named exactly like the original Winsock library (i.e. wsock32.dll) and placed in the same directory where the target email application resides, then the interception occurs automatically. When the target application attempts to load the original Winsock library, the proxy DLL is loaded instead. All the calls made to Winsock's functions are routed to the exported stubs in the proxy. After performing the necessary processing, the proxy DLL simply routes the calls to Winsock and returns control back to its caller. --Yariv Kaplan
Thursday, January 19, 2006
Allegro CL 8.0 with AllegroCache Now Available
- Allegro CL 8.0 addresses computationally hard problems.
Here's the confusion:
- Most computing problems are hard, but 80% of the money is being spend on computations that are inherently easy. An accounting system is inherently easy. Scaling it for enterprise use at WallMart is not easy. Oracle, IBM, SAP are good at scaling -- they have good tools for scaling.
[Gemstone and DB40 also have offerings which address (some of) the types of problems addressed by Allegro CL.]
For a conceptual overview of these issues, Franz has an excellent, if visually uninspiring, presentation. In all honesty, its the best summary of these issues I've encountered in 15 years of dealing with OODBs.
OK. The fact is some hard problems need to scale as well.
Allegro CL won't address every concievably problem, but it is designed to play well with others. This design has been honed over many years, many releases. [The 8.0 version number is an honest version number.] 8.0 includes important SOAP updates and their relational database integration is excellent.
Coders should check out their 24 minute demonstation.
I had the good luck to be exposed to some world class FORTH programmers at the beginning of my career. They placed a lot of emphasis on the notion that simple problems should be easy and hard problems should be possible.
Advanced Java and LAMP tools, such as Eclipse, Ruby on Rails, and OODBs like DB40, make solutions to a wide range of simple problems simple. They should be exploited because of their wide distribtion and adoption until they start to show their limitations. When they do, Allegro CL 8.0 may well provide a good next step. Because of the excellent SOAP and RDB support, advanced solutions can be part of enterprise work and a sudden, disruptive transition is not required.
Tuesday, January 17, 2006
Zeldman Considers 2.0 Hype
One issue for me is the "...if all you have is a hammer..." thing.
Many of us need rich clients. Its well to consider where Ajax fits the bill and where something like eclipse RCP (eRCP) fits the bill. Speaking of eRCP, there is some cool stuff coming out in the eclipse GMF and eclipse Forms.
RoR and eRCP are radically different ways of approaching rich clients. Simple projects can (and should) use a simple bag of tricks. Are all projects simple?
Thursday, January 12, 2006
Mashup Camp
Me too.
The loosely coupled systems made possible by adoption of web services and open APIs (the technology and especially the new business models) are taking off.
Google Earth + SketchUp
How could you find a better example of a platform based upon open APIs?
Is the platform Google Earth or SketchUp ?
I hear its especially amazing on the new Macs.
It is worth looking at the end user instructions for using the Google Earth and SketchUp together. They may seem a bit complex to non-developers, but even skimming over them, most people can probably see that integration of a SketchUp based building into google earth is not a multi-month project. It requires far less skill and knowledge than most power users possess.
Tuesday, January 03, 2006
POJOs
“I've come to the conclusion that people forget about regular Java objects because they haven't got a fancy name - so while preparing for a talk Rebecca Parsons, Josh Mackenzie and I gave them one: POJO (Plain Old Java Object). A POJO domain model is easier to put together, quick to build, can run and test outside of an EJB container, and isn't dependent on EJB (maybe that's why EJB vendors don't encourage you to use them.)” ~ Martin FowlerOn the plus side...
I'm not sure I use the term as he intended, so reader beware. Here are a few things I like:
- I like to think of my domain as a graph of active objects. Think of the Actor model in a distributed system rather than a bunch of static schema which are populated by access to a relational data base.
- I like to think I can pickel my graph and send it somewhere w/out losing the state of my computation.
- I like to make sure all external (file, db, etc) access takes care of their own cleanup -- especially exception handling. If exception handling needs to percolate accross major system boundaries, it should be done logically, not physically.
- Was the source of my object graph a web service? xml file? relational db? object db? word document? My clients should never know these deep, and often dark, secrets.
- I claim that EJB thinking is hard to eradicate. We need to raise the concept of Objects which send each other messages and behave in real time to the top level of the system.
Many systems need to be ugly in their implementation because they need to support efficient transactions, lots of information, too many objects, etc. At some point, the core design of many systems must take these things into account; they cannot always be left to 'implementation'.
However, in many systems and system components, these issues are not serious.
For example, 8 gigs of ram on commoditiy servers is cheap. 2 gigs on a laptop is cheap. That is a lot of information. If my application has more information than that, perhaps my real problem is getting relevent information.
Techniques for using AOP to separate the concerns mentioned above is an area of active research and development. If these concerns are not pressing today, someone may solve them for me tomorrow.
Search
Search is an issue which is not straightforward if POJOs are cleanly separated from underlying database connections.
- RDBs do a lot of search well.
- RDBs make a lot of search effectivly impossible.