Friday, October 31, 2008

Tentative plans for db tooling in

Hi, all. This is tentative. You know draft. But here is the list of things we're thinking of doing around database tooling for the next release of NetBeans.

Don't expect anything more than what is listed in the "P2" section. The P3 section is an unordered list of other ideas, and if we have time, we'll pick some of them off. If there are specific things that you really want, please let me know. And of course, any other feedback you have is always much appreciated.

The two main themes are: add more SQL integration with the PHP editor, and improve our overall UI experience.

We also would like to produce a plugin for a visual E/R tool (what I am calling a Visual Database Explorer to distinguish it from a full E/R tool like MySQL Workbench). We want people to test drive it for a while with this release, and then we can refine it and potentially integrate it into NB proper in the next release.

I will admit I am hesitant with the Visual DB Explorer. I know many of you have asked for this, but my concern is that once you have something out there, then you'll want more. "Why can't I create a new table right there?" "You don't fully support feature X of the Y database". "Why can't I generate SQL from the E/R diagram?".

If we're not careful, we can spend all our time refining the E/R tool when, as I've said before, that's really not taking advantage of our core strengths as a DB tool inside NetBeans.

There are numerous E/R tools out there, including MySQL Workbench, and I don't think it makes sense to spend all our time replicating that. Look at what we are doing in the PHP editor - that's something that takes advantage of the fact that the db tooling is inside an IDE. That can add real value that a standalone DB tool can't.

That said, I know how nice it is to quickly pull up a visual representation of a database schema to help understand it. So we'll do that. But please don't expect us to build Erwin for NetBeans. And to be honest, I don't think that's what most of you want anyway.

Standalone, offline, replicated web applications using Couch DB

Thanks to Tim O'Reillys tweet for this.

Imagine building an app that that can run standalone just as easily on your laptop or on a cloud-based cluster.

Such a thing may be possible using AJAX and a CouchDB backing store running on the same machine as your browser or serving up the app and data from a server. No PHP or Ruby middle tier getting in the way.

CouchDB provides replication for free, so all of your data can be replicated to your server or to any other peer. It's the framework for true offline, peer-to-peer data sharing applications.

Oh, and did I mention it's logarithmically scalable? Very cool.

Paul Krugman - Individual Virtue Can Be a Public Vice

... one of the high points of the semester, if you’re a teacher of introductory macroeconomics, comes when you explain how individual virtue can be public vice, how attempts by consumers to do the right thing by saving more can leave everyone worse off. The point is that if consumers cut their spending, and nothing else takes the place of that spending, the economy will slide into a recession, reducing everyone’s income.

In fact, consumers’ income may actually fall more than their spending, so that their attempt to save more backfires — a possibility known as the paradox of thrift.

At this point, however, the instructor hastens to explain that virtue isn’t really vice: in practice, if consumers were to cut back, the Fed would respond by slashing interest rates ... So virtue is virtue after all, unless for some reason the Fed can’t offset the fall in consumer spending.

I’ll bet you can guess what’s coming next.

I guess it's time for me to go out and buy an iPhone 3G and a flatscreen HDTV...

Wednesday, October 29, 2008

Java DB Table Functions

A very nice white paper on a new Java DB feature - table functions. This feature allows you to take any external data source (csv file, a telemetry stream, XML, JSON, in-memory objects) that can be represented as tabular results and make it look like a table in Java DB.

Then you can do anything read-only with it that you would do with regular tables: filter with WHERE clause, subqueries, aggregation, join with other tables, etc. Pretty darn nice.

Whassup 2008 - very funny

For your reference, here's the original Bud commercial, makes the whole thing even funnier.

Josh Bloch interview

Nice interview. Something of note:
If you need high-performance lazy initializing of an instance field, use the double-check idiom with a volatile field. This idiom wasn't guaranteed to work until release 5.0, when the platform got a new memory model. The idiom is very fast but also complicated and delicate, so don't be tempted to modify it in any way. Just copy and paste -- normally not a good idea, but appropriate here...

Loans? Did We Say We’d Do Loans? - NY Times

Outrageous. You know, one assumes that the people in power have some kind of brain in their head. Giving huge amounts of taxpayer money with no conditions, and hoping the banks use it for loans? Give me a break. I suppose they were thinking "oh, we'll let the market decide what the best use of this capital is." Dumb and dumber. It's like handing out money to homeless on the street and thinking "Oh I'm sure they'll use the money on what is best for them," without considering that perhaps they're addicts and you're just feeding the addiction.

Wednesday, October 22, 2008

E/R Diagramming : OK, OK, I get it!

Gads, someone else asking for E/R diagram support. We have 36 votes for this in Issuezilla. What is it with you guys?

First of all, MySQL Workbench really owns this space. Yes, I know, right now it only runs on Windows, but the next release will fix that. And, yes, I know it only works for MySQL, but the promise is that they will fix that too, albeit not right away. 

Secondly, NetBeans DB tooling has a huge opportunity because we're part of the IDE.  An E/R diagram tool doesn't really leverage that advantage.  There are things we can do that will make your day-to-day experience of slogging code for database applications really nice.  But we can't be doing that if we're spending all our time writing an E/R tool.

That said, we're looking very seriously at a simple read-only E/R plugin. First and foremost what people want is a way to understand the structure of their database and to communicate this to others. Being able to build a database design through visual tools is useful, but has a secondary order of demand.

Anyway, keep your eyes peeled to this space, all you E/R lovers.

Drizzle: Ahead of the Storm

Very interesting analysis of Drizzle by Stephen O'Grady

Maureen Dowd - Moved by a Crescent

He told Tom Brokaw that he was troubled by what other Republicans, not McCain, had said: “ ‘Well, you know that Mr. Obama is a Muslim.’ Well, the correct answer is, he is not a Muslim. He’s a Christian. He’s always been a Christian. But the really right answer is, what if he is? Is there something wrong with being a Muslim in this country? The answer’s no. That’s not America. Is something wrong with some 7-year-old Muslim-American kid believing that he or she could be president?”

The same thing has been bothering me for a while. How did the word "Muslim" become a dirty word? I am glad people in power are standing up against this.

MySQL University: How to use PHP and MySQL in NetBeans

Hey, all. Petr Pisl, the technical lead for PHP support in NetBeans, and I will be giving a MySQL University webinar tomorrow entitled "Working With PHP and MySQL in NetBeans." We'll be demonstrating the PHP and database tooling features available in NetBeans.

The webinar is live, and you can ask questions via a chat-based interface. It's at 9:00 am San Francisco time, you can see what that is in your local time here.

The webinar is limited to 20 people, so it will be first come, first serve. Apologies about the small "classroom" size -- MySQL University just started using DimDim (this is actually the first session using it) and are still in testing mode.

Monday, October 20, 2008

Offline Ajax with Apache Derby

Hey, somebody's doing stuff I was doing a while back. Nice article.

McCain, Obama, yucking it up

Some very funny stuff at the traditional Al Smith October dinner.
Many of you -- many of you know that I got my name, Barack, from my father. What you may not know is Barack is actually Swahili for "That One."

Switching my iPhone to T-Mobile Pay-As-You-Go

I went down to the T-Mobile store and bought a GSM chip for my wife. At the same time, I got one for myself, intending to get a new quad-band phone off of Craigslist and turning off my AT&T service on my iPhone.

But this weekend, I went on a road trip with my kids. I wanted to find ice cream, click click I found it using the Google Maps app on my iPhone. I got lost - click click and I could find out where I was. I wanted to find a bank. Easy peasy. Now, how to get back home? Click click, slick slick.

So the thought of giving this all up when I turned off my service on my iPhone was sad, but at $60 a month I decided I would just have to let it go. But then last night a light bulb went off in my head - why not switch my iPhone over to T-Mobile? I heard it was possible, and even legal, although it makes the Gods at Apple and AT&T angry.

So, Googling around, lots of info, lots of it seeming not very trustworthy, and then I found this tutorial for using Pwnage with the 2.1 version of the iPhone OS. I was encouraged that engadget seems to endorse this tool. I tried it, and, very nice, very nice indeed! I was expecting a lot of command-line garbage with poor documentation, and this was an unexpected surprise of usability.

If you're ever tempted to shop around, I recommend Pwnage. Of course, there are risks. There is FUD around your iPhone getting bricked. I'm still unclear what happens when Apple delivers a new version of the iPhone OS or iTunes that could mess things up. But so far it's worked like a charm. When I finished the steps in the tutorial above, I had a jailbroken and unlocked iPhone. I plugged in my T-Mobile SIM chip (here's how you do that), and I was good to go.

Now this is cool. I am paying $7.00 a month instead of $60 month, and I have everything I had before, except visual voice mail (ah well). And still one device instead of two. I am a happy camper.

Jailbroken, BTW, means you can install apps from Cythia, rather than just the iPhone app store. This seems to include apps which for some reason or another are not approved for the app store. I haven't tried that much, but that seems like a nice side benefit.

UPDATE: Doh! T-Mobile doesn't have a data service. So I do lose my data features like Google Maps when I'm not connected to WiFi. Sigh, oh well. But still, I like it that I can use my iPhone for phone calls and not have to carry around two devices and keep contacts synched between them. Anybody know of a GSM plan that's pay-as-you-go and has data services? I thought not...

Friday, October 17, 2008

Warren Buffett - Buy American. I Am.

I guess Warren read my blog. Shortly after I wrote that entry, I bought a bunch of Intel and Amazon shares. I'm planning to buy more...
A simple rule dictates my buying: Be fearful when others are greedy, and be greedy when others are fearful. And most certainly, fear is now widespread, gripping even seasoned investors. To be sure, investors are right to be wary of highly leveraged entities or businesses in weak competitive positions. But fears regarding the long-term prosperity of the nation’s many sound companies make no sense. These businesses will indeed suffer earnings hiccups, as they always have. But most major companies will be setting new profit records 5, 10 and 20 years from now.

Thursday, October 16, 2008

Turning my iPhone into an iDunnoWhat

Well, I'm always looking for ways to cut down on monthly expenses, I have enough of them already. And here is my cell phone bill, $60/month, ouch! I am using my cell phone as a phone much less than I expected -- once a day maybe. I just checked - last month I used 70 minutes.

I just got my wife a pay-as-you-go plan from T-Mobile. No contract, can use any unlocked phone, and it's .10c a minute if you get a $100 card.

So let's say I talk on my phone on average 70 minutes a month, that's $7.00 a month. Hm, that sounds pretty good.

The only problem - the cancellation fee of $150 unless I wait until Feb of 2010. And I'll need to buy an unlocked phone, but you can get a nice Motorola V195 from T-Mobile for $30. At a savings of more than $50/month, that extra $180 will pay for itself in less than four months. So it's worth it to switch now, even with a cancellation fee.

But wait, can you actually do that - cancel your AT&T service and still have a working iPhone with WiFi, browser, email, contacts, apps (even location-sensitive apps), and music? Survey says, yes!

Wednesday, October 15, 2008

Wick Allison, A Conservative for Obama

A very powerful endorsement for Obama by a leading conservative, the ex-publisher of the National Review.
The more I listen to and read about "the most liberal member of the U.S. Senate", the more I like him. Barack Obama strikes a chord with me like no political figure since Ronald Reagan. To explain why, I need to explain why I am a conservative and what it means to me.

Monday, October 13, 2008

SmugBlog: Don MacAskill » Success with OpenSolaris + ZFS + MySQL in production!

Don MacAskill gives an overview of putting OpenSolaris, ZFS and MySQL into production. Very interesting read.
FS is the most amazing filesystem I’ve ever come across. Integrated volume management. Copy-on-write. Transactional. End-to-end data integrity. On-the-fly corruption detection and repair. Robust checksums. No RAID-5 write hole. Snapshots. Clones (writable snapshots). Dynamic striping. Open source software.

Thursday, October 09, 2008

Modista - yeah, like that!

A friend of mine just forwarded me this link to Modista.

This is a project by some Ph. D. students at UC Berkeley. They are using AI algorithms to find items (in this example shoes) that are "like" the one you picked. Notice how they've gathered shoes for sale across the web and displayed them in a single view.

Pretty nice! I suspect these guys are going to get slurped up by somebody! :)

We'll always have Facebook

Just ready a very funny cartoon by Harry Bliss. A young couple are sitting on a couch, and the woman is crying. The man (wearing a hoodie and a backpack) says "We'll always have Facebook".

I don't know, I think I like "we'll always have Paris" better... :)

Stocks plunge again - is it time to be greedy?

Things are looking pretty grim, and belt-tightening will be required by all. It's going to be particularly rough for the poor and those who have dug a big credit hole.

But that said, I do have a 401k and a rollover IRA. I don't plan on retiring any time soon. So maybe there's a silver lining here.

I recently read a quote from Warren Buffett
Occasional outbreaks of those two super-contagious diseases, fear and greed, will forever occur in the investment community. The timing of these epidemics is equally unpredictable, both as to duration and degree. Therefore we never try to anticipate the arrival or departure of either. We simply attempt to be fearful when others are greedy and to be greedy only when others are fearful.

Maybe it's time to look for some bargains?

DimDim - Web conferencing that isn't clunky

I just tried out DimDim after Stefan Hinz from MySQL University mentioned it to me. It looks pretty nice! Note that it is free for up to 20 users, and doesn't require anything but a browser that has Flash 9 installed.

I haven't put it through serious paces, but a cursory look, from signing up to starting a meeting and enabling desktop sharing (available on Mac and Windows) were pleasing - it passes the "first fifteen minutes" test...

Easter egg: some fun profiles of the management team.

Tuesday, October 07, 2008

AIG - Allout Insane Greed

A week after the insurance giant, the American International Group, received an $85 billion federal bailout, executives at its life insurance subsidiary, AIG General, held a weeklong retreat at the exclusive St. Regis Resort in Monarch Beach, Calif. Expenses for the week, lawmakers were told, totaled $442,000, including $200,000 for hotel rooms, $150,000 for food and $23,000 in spa charges.

In addition, the former A.I.G. executive who led the London-based division whose implosion is largely blamed for the insurance giant’s downfall, Joseph J. Cassano, continues to receive $1 million a month from the company, on top of the $280 million he received in the last eight years.

And even after A.I.G. reported $5 billion in losses in the final quarter of 2007, its chief executive at the time, Martin Sullivan, argued before a compensation committee that executives should receive performance bonuses. He received $5 million.

Wow. It makes one's head spin...

MySQL Workbench Tutorial - Create a brilliant MySQL forum database from scratch

This tutorial shows how to use MySQL Workbench to create a MySQL Forum database. Gives you a good taste of the E/R capabilities of MySQL Workbench

I, Cringely Gets It About Databases

Robert Cringely attends a conference at MIT and gets a big surprise about the future of databases.
We’re entering the age of cloud computing, remember? And clouds, it turns out, don’t like databases, at least not as they have traditionally been used.

This fact came out in my EmTech panel and all the experts onstage with me nodded sagely as my mind reeled. No database?

No database.

Monday, October 06, 2008

Breaking the App Store lockin with Cappucino

So, I'm speaking out of my hat here, and I just don't have time to investigate, but here are some thoughts.  You can't run Flash or Java on the iPhone.  I'm sure there are "technical reasons" for this but I think there are raw competetive reasons too - Apple doesn't want people building nice juicy dynamic apps that don't go through the App Store Control Board.

However, iPhone Safari runs JavaScript.  I mean, it has to, as almost every web page under the sun has some JavaScript in it.

OK, so...  there is this new library called Cappucino that I've mentioned before.  From their web page:
Cappuccino is an open source application framework for developing applications that look and feel like the desktop software users are familiar with.

Cappuccino is built on top of standard web technologies like JavaScript, and it implements most of the familiar APIs from GNUstep and Apple's Cocoa frameworks. When you program in Cappuccino, you don't need to concern yourself with the complexities of traditional web technologies like HTML, CSS, or even the DOM. The unpleasantries of building complex cross browser applications are abstracted away for you.
OK, so, do you follow?  If Cappucino does what it says it does, then you can build rich, dynamic applications using only standard web technologies.  No plugin required.  It will run on the iPhone in Safari.  And, get this, the ironic thing is the framework is build to look just list Cocoa and Objective-C (they call it Objective-J).

So, I can build a nice app for the iPhone without having to go through the app store. 

Problems: you can't take advantage of the accelerometer or interact with the phone or GPS or audio.  But, still, it goes a long way towards breaking the chain.

So, what do you think?  Am I way off base here?  Or am I on to something?

Thursday, October 02, 2008

Wednesday, October 01, 2008

Your input requested: and DB schema management

I'm doing research into database tooling for NetBeans for the next release. One area that comes up a lot when I talk to users is schema management - making it easy to make, communicate and deploy changes to your schema as part of ongoing maintenance of your application.

The first step in this analysis is use cases. Here are some of the use cases I have come up with. Note they are not talking about a particular tool or a particular solution, but the situation the user is in and what they want to accomplish.

My question to you is: which of these are like really important to you? Which ones would you love to see solved? And which ones am I completely missing?

By the way, I know there are a lot of possible refactorings, but I just list some obvious ones to give you the idea of what I'm thinking and get your feedback. Listing all possible refactorings would be a tome, not a blog.

What I'm more interested in is what are the changes you most commonly do and which would love do be able to do as you code.

Changing/Refactoring During Application Development
  • Add a Table - A developer is modifying their application code and discovers they want to add a table. They want to do this with minimal interruption to their coding flow. For example, they could be writing a query that refers to a non-existent table and quickly add that table to the database.
  • Rename a Column - A developer is modifying his application code and wants to rename a column with minimal interruptions to his application flow. This includes quickly finding and updating all other references to their column within his code.
  • Add a Column - A developer is modifying her application code and realizes she needs a new column. She wants to add the new column to the database with minimal interruption to her coding flow.
  • Change Column Type - A developer is modifying their application code and wants to change the type of a column with minimal interruption to her application flow. This includes quickly finding and updating all other references to her column that are impacted by the change.
Deploying An Application
  • Initial Deployment - A developer has an application they want to deploy into testing or production. Their application includes a schema definition that needs to be applied to another database. He wants to create the schema as part of deploying the application.
  • Upgrade - A developer has made changes to their application that involves changes to the schema. She wants to deploy the new version of the application, and wants to apply the schema changes without losing data.
  • Review Changes - A developer has made changes to their database schema in his development database and wants to review and perhaps modify the set of changes.
  • Publish Changes - A developer has made changes to her database schema and wants to make those changes available to others, either for review or so they can be applied to another database that is controlled and managed by someone other than the developer.
  • Commit Changes to SCM - A developer wants to commit an application change to an SCM for version control and collaboration. Their application change includes schema changes, and the developer wants those changes to be included with the commit, so that other developers can apply those changes as part of upgrading the application in their workspace.
So, there you have it, the first steps towards understanding what we might want to do around this. Thanks, in advance, for your feedback.