|
Login
|
|||
|
Become a Heffer
Heffee uses a formula that takes into account the input from websites, moderators and expecially the users to decide which news across the internet is the most important. Users can create their own customized feeds, save pages and articles from across the web, and subscribe to their favorite news outlets.
Sections
Advertisement
All Articles for Screaming Penguin
|
I will be joining Mojo (the Maven 2 outside of Apache "plugins" project) after having been invited by Nicolas De Loof, and then voted in.
The reason for my joining is to join forces with Nicolas, who maintains the Mojo GWT and Maven plugin, and bring in the stuff we have done on GWT-Maven.
The result will ultimately be a collaborative gwt-maven-plugin living at Mojo.
For now though, don't worry of you use GWT-Maven. I am going to *keep maintaining* GWT-Maven until I can guarantee a simple and fully functional switchover for users (with all the goals we expect, documentation, an archetype, etc). I suspect it will be several months before the Mojo plugin is at the point where I can tell GWT-Maven users to try it. Once it's there, and once users agree it works as they expect, only then will I deprecate GWT-Maven and direct traffic to Mojo.
Not sure it's real, though clever either way ... http://news.ninemsn.com.au/article.aspx?id=665847
mvn archetype:create -DarchetypeGroupId=com.totsp.gwt -DarchetypeArtifactId=maven-googlewebtoolkit2-archetype -DarchetypeVersion=1.0.3 -DremoteRepositories=http://gwt-maven.googlecode.com/svn/trunk/mavenrepo -DartifactId=myGwtProject -DgroupId=com.myco
cd myGwtProject mvn gwt:gwt. . . or build yourself a WAR for deployment in a servlet container (war ends up in ./target) . . .
mvn install. . . or debug your project, also via the GWTShell (this starts a remote process with the debugger hook enabled, and you can then connect to it in your favorite IDE/debugger) . . .
mvn gwt:debug. . . or test your project using BOTH it's standard JUnit/TestNG Surefire tests, and special GWTTestCase tests . . .
mvn testIf you need more info see the GWT-Maven docs, but you get the idea.
From the group: release notes for 2.0-beta26:
Address these issues (includes the patches):
http://code.google.com/p/gwt-maven/issues/detail?id=172 - doubled classpath entries
http://code.google.com/p/gwt-maven/issues/detail?id=176 - same/related to 172
http://code.google.com/p/gwt-maven/issues/detail?id=173 - resource filtering
http://code.google.com/p/gwt-maven/issues/detail?id=180 - NPE DirectoryClassPathEntry.descendToFindResources
Also note: default version of GWT now set to 1.5.3 (latest version, which is now in central repo).
Docs updated too:
http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/...
Archetype updated too (version 1.0.3 corresponds to 2.0-beta26):
http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/...
Ok, so I was all set to write a big rant about how Flickr isn't using REST at all, even though they call it REST everywhere (it's a very nice RPC API, but REST it's not). Then, I did a quick search for similar rants and found this.
Enough said, thanks to Gareth Rushgrove I don't have to write a rant now ;).
To summarize, in Gareth's own words:
And remember, just because an API makes use of HTTP doesn’t make it RESTful.
So this weekend I was doing a bit of research and ended up on a tangent into exactly how GPS works. I get the basics, sure, but wanted to dig into the details a bit more. I didn't have to look any further than the Wikipedia GPS article for an excellent source of information.
While there one of the many resources that caught my eye was the fantastic little "how GPS works" GIF:

It's not often that an animated GIF actually *enhances* a web page, but man, this one is great. The "orbital planes" of the "space vehicles" are clearly displayed in this simple, small, informative graphic (and the movement here is essential, of course). All of the equations in trilateration and such are still a bit over my head, but me likes the pictures ;).
I have updated a bunch of the code at the Unlocking Android Google Code site over the last few days. Most notably I have added the Telephony project. Everything there now works with the 1.0 SDK.
The book itself is about to go to another final review (after we made all the updates for the 1.0 SDK), and get updated on the MEAP (Manning early access program) site (that hasn't happened yet, what is there is pretty old, but it will happen any day, I am pushing for it).
I am really hoping the book is ready (available in print, *and* out of my hair ;)) long before the date they have on the Manning site, April. We are trying to get that moved up to a much earlier date since we basically have all the work done (pending the re-final review).
If you want to be a reviewer, the more the merrier, just drop me a line and I will have Manning add you to the list.
log4j:WARN No appenders could be found for logger (YourLibraryClassHere). log4j:WARN Please initialize the log4j system properly.So what if you want to BOTH allow the user to configure their own logging settings if they want, and also not bother them at all if they don't. Well, it turns out there is a bit of a hack that seems to work pretty well for this.
. . .
private static Logger log;
. . .
static {
boolean rootIsConfigured = Logger.getRootLogger().getAllAppenders().hasMoreElements();
if (!rootIsConfigured) {
BasicConfigurator.configure();
Logger.getRootLogger().setLevel(Level.INFO);
}
log = Logger.getLogger(YourLibraryClassHere.class);
}
What this essentially does is check if there are any root loggers, no matter how they might have been configured, and then only if and when there are none it does the BasicConfigurator thing. This allows users to setup the config if they desire, and also avoids the error message and still gives them some logging (to the console generally, but up to your library), if they don't.
My new Linux machine
I recently ended up building a new home desktop running Ubuntu - Intrepid Ibex.

I use this machine mostly for development work, but being a home "desktop" it also needs to serve as a great web browsing platform, play music and videos, have a word processor and other essential software, connect easily to other local machines, and support devices like a fancy graphics card, a DVD burner, a headset, and so on.
I considered buying a new MacBook, and just docking it at the house, but for the money the machine I could build far outperforms what I could buy from Apple. Don't get me wrong, I still really like Apple (fanboy, yes), but I ended up with a great Intel P45 chipset motherboard (Gigabyte GA-EP45-DS3R), 3.16GHz Core 2 Duo with 4GB ram, a 512MB Nvidia 8800 GT video card, dual raided 400GB SATA drives (nice ones), a 1TB non raided drive, and the rest including a wireless keyboard and mouse, and 22" LCD monitor for under $1K (well under actually). I couldn't touch that with any Mac product, much less MacBook (it's not a fair comparison to the mobile machine, I know that, but I felt I could keep my old MacBook for going mobile and throw some horsepower at the desktop while using Ubuntu).
It's a long story as to how I would up in Ubuntu land (see below), but suffice to say it has been virtually perfect thus far. Stuff just works in Ubuntu, much like OS X (98% of the time, they are both still computers after all). The only Ubuntu issue I have had is with a Wireless PCI card that it couldn't automatically handle (had to use ndiswrappers - but after they manual setup it works fine). Everything else was literally a click of a button, Ubuntu finally has the "desktop" polish that Linux has been in need of, in my opinion.
I didn't really "kick" the Mac habit entirely, I still like OS X too, but being really solid AND an open platform is important to me, so I went back to Linux for the latest machine.
How I arrived at Ubuntu - the long version
I have used many PC operating systems over the years. I am old enough that the first PC in the house was an 8088 that ran simply MS-DOS. We also had an Apple IIe way back when, which was my brothers preference. I ended up with a 286 and Windows 3.1 in college, and more Windows from there (95, NT4, etc). In the early-mid 90's, when I was working for IBM and using a little bit of AIX, I also started wishing I could get some of those Unix utilities and that seemingly more robust setup in a PC too. That is when I installed Slackware on a PC at the house using 20+ floppy disks. I thought it was cool, but didn't really put it to work (and my colleagues, and boss at IBM at the time scoffed at it).
I continued to mess around with Linux at home, and, after being tasked with setting up some brochure-ware type websites on an SGI box running Irix at the office, also experimented with Linux and Apache. I first setup Screaming-Penguin.com running Red Hat in 1997-98, with some graphics and programming help from other like minded friends (it ran a custom PHP website framework and relied on MSQL - the Internet Archive only has TotSP back to 1999, but it was there long before that). The "penguin" as I call it has evolved over the years and now runs Fedora and Drupal (but still runs at the house).
When I left IBM to join a web company and become a developer for the dot-com boom, I worked a lot more with Linux, and with Solaris. At that time Linux was growing in popularity but was still pretty rough around the edges. I used Linux for DNS, email, web applications, and many other "server side" purposes for various customers - and still ran it at the house - but it never seemed to make the cut for me as a "Desktop." I did use Linux as a desktop at home off and on, and at one job back in the day, but it was never easy to keep up with updates and compile things like audio and video players and other desktop stuff. I really wanted it to be my desktop too (in addition to handling all the server tasks), but it just wasn't.
I never really looked at an Apple again, after the IIe, until OS X came out that is. A desktop that "just worked" and had all that polish, AND ran BSD at the core, was great in my mind, and I could still use Linux for the server (the open source nature of Linux mattered to me, I have earned many Windows, and other proprietary software scars over the years, suffice to say I believe strongly in open source for many reasons). After getting to play with OS X some, even though it was a closed platform, I decided to buy a Macbook. It was that good. I have used that same MacBook for 2+ years now (an Intel, but an old one, 32 bit Core Duo - not Core 2 Duo). It's been a great machine, I can't complain about much there (other than Apple being dickwads about Java 6 on OS X Tiger 32 bit, another long story).
After starting a new job this year though I was brought back around to Linux on the desktop. My first day at the office I was asked "so do you want Windows or Linux"? No brainer for me, even with my past pains on the desktop. Linux. (Oh, and they also asked me to pick a hostname themed off of a beer - I thought, man, I made the right choice coming here.) That was how I formally met Ubuntu. I ended up with a Hardy Heron box that has worked really really well.
So when it came time recently to look at getting a newer faster personal machine, I had a dilemma. Ubuntu is pretty darn nice, and I can just buy a Dell or something and install it, or get a new MacBook. I waited for the MacBook announcement, but a new decent one was just too expensive (I want a video card this time, so need a Pro - even the refurb older model Pro, which would have worked, was 1400+). I ended up deciding I would keep the current MacBook for going mobile, and just build myself a new desktop at home that runs Ubuntu. So far, good call.
It has been said by many others by now, but on a follow up politics note I have to say that I am very proud of my country today - and it is the first time in a long time that I felt like I could say that (about the country as a whole). The election of Obama to the office of President sure feels like a fresh start - a start based on logic and reason, on issues, and yes on hope. It won't be an easy road ahead, but at least I now feel like this country has some leadership, for the first time in over a decade (yes, I include the last few Clinton years as rudderless as well).
I am even optimistic that the different parties will be able to work together on a few things. I would like to see the president elect appoint John McCain to be the Secretary of State, for instance (if he wants the gig, which he may not).
That would be a REAL way to start off reaching across the aisle and showing that the work is more important than the ideology. I believe McCain could potentially be very good in that position (really can't be any worse than what we have, but I digress). I saw a glimpse of the old McCain in his concession speech, not the 2007-8 McCain that sold his soul to the Republican party to get the nomination and had to swallow all their crap to do so, but the McCain of old. The real McCain, the one that spoke of the dangers of the far left AND RIGHT fringes of the parties, and of issues rather than of fear. Now there would be some differences to potentially work out mind you (we wouldn't really want a secretary of anything that states even in hindsight he would have still have supported the Iraq war - an unfathomable stupidity - or who plays fast and loose with threats such as what was involved with Georgia and Russia), but the gaps might not be as wide in reality as they have been played out to be in a campaign (I am not sure John McCain himself believes a lot of the crap he was forced to push in his campaign, he was being led by the wrong elements in his party, and he was trying to play certain situations to gain certain advantages).
Also, I have to add that the retirement of Chuck Hagel from the Senate is a sad notion. He was my favorite Senator, an actual straight talking, logical, seemingly non-special-interest-beholden legislator (what our system really needs is to get rid of the special interests on BOTH sides). I have heard his named mentioned in Defense Secretary discussions, and that would be an excellent across the aisle choice as well.
So it's a historic time, yes, and many people are hopeful for the future, and the choice certainly has resonated well around the world, but Obama could take it even further and build a coalition now, and then actually get some non-partisan work done.
Today in the states we elect a new President. Hallelujah.
No matter which of the current candidates wins (though I do have a huge preference), the big news is that George W. Bush will no longer be the President. Yes, he technically has a few months left, but he will officially be a lame duck as of the close of business today.
The last time we could party this actually *was* 1999. Even though the situation and job will be tough for the new President, whomever it is, we all win without W on the ballot.
It's been a while since I stepped up to the politics plate, but it being election time in my dysfunctional state, I thought I would chime in about the Electoral College.
Technically, in the US, you don't get to vote for the President, or Vice President. Rather you get to vote to indicate your preference to the electors in your state, who then in turn directly vote for those offices.
The Electoral College in the states consists of 538 electors. One for every Representative and Senator in Congress (535) and three for D.C. The electors themselves are chosen based by the political parties based on the rules of their state. Some states nominate and directly elect electors, other states do it at party conventions, and others still allow the campaign committees to nominate them.
"Each State shall appoint, in such manner as the legislature thereof may direct, a number of electors..."
(U.S. Constitution: Article II, Section 1, clause 2)
The electors meet in each state "on the first Monday after the second Wednesday in December" and choose the President and Vice President. You don't get to choose either of those offices, despite your interest in the process, and your "vote."
In many states the electors are legally obligated to honor the popular vote, but in others, like Georgia, they aren't. The Green Papers lay this out on a state by state basis.
So, in all, go ahead and feel empowered by democracy and cast your votes, but keep in mind that you are really voting for Senators and Congresspeople, and local offices, and not the President or Vice President (not directly anyway, and not at ALL in some states, like mine).
(Side note: also keep an eye on sneaky amendments and ballot initiatives that some states like to throw in there. Many of these are rarely discussed before the election and surprise a lot of voters. Just trying to read the legalese on the ballot often confuses a lot of people (they are "push-worded" in many cases, trying to paint the votes in one direction or another.)
Ubuntu has become my favored Linux distro as of late, and 8.10 or Intrepid Ibex is supposed to go final today.
Ubuntu is impressive to me for it's simplicity and reliability, stuff just works as you would expect. Really the difference with Ubuntu over other the other Linux distros that I have used for a decade+ is that it's more intuitive at install/upgrade and or add new feature or piece of software time. Underneath it all it's the same stuff of course (Debian Linux, and either Gnome or KDE), but it's just packaged and polished a bit more than other offerings.
Ibex has a laundry list of new packages and a new kernel, and many new features (new Gnome, use of NetworkManager which supports 3G, and more). Also, it might seem small with all of the other changes, but it's about damn time Tomcat 6 made it into the main repo.
Sidenote: I ordered a new set of components the other day to build a new home desktop just for Ubuntu 8.10, so I will post more about the whole setup, and maybe an actual review of a Linux distro on Screaming Penguin (as crazy as that sounds ;)) in the coming days.
Ylastic is really damn cool. Right now it's featured on the YUI blog", where many of the details are discussed - but in a nutshell, it's "a single unified user interface to the the AWS cloud computing environment — S3, EC2, SQS and SimpleDB."
Along with handling that heavy lifting, I also have to give the team credit for a great looking UI, and an apparently very flexible and agile architecture.
Props to Prabhakar (a great guy, whom I used to work with), and the whole Ylastic team.
If you are still a philistine who slums around using Eclipse, like myself, then you need to check out the MouseFeed plugin (we disarm the IntelliJ zealots right out of the gate, we don't need to argue about which is better or worse here, I use Eclipse, so do many other people, like it or not).
You probably haven't heard of MouseFeed (well maybe you have, but I hadn't until I saw Neal Ford espouse it's virtues yesterday), but you need to check it out.
MouseFeed will help you learn to stop using the mouse. That sounds simple, but it is about the most productive thing you can do if you are heavy Eclipse user. The keyboard is just a ton more efficient in your day to day and minute to minute dev life. Many of us know the basic Eclipse hotkeys (all the copy past move commands, Ctrl-O quick outline, Ctrl-Shift-O organize imports, etc), or have created our own, but I would venture to guess that few among us actually stick to the keyboard a majority of the time and really leverage all the myriad hotkeys Eclipse provides. The docs are tough to slog through, so use MouseFeed to remind you.
Simply put, every time you use a menu item, MouseFeed tries to help you learn the shortcut/hotkey for that. And, if you use stuff that doesn't have a shortcut/hotkey, it can help further remind you to create one.
I am lucky enough this year to have been able to attend a No Fluff Just Stuff conference (thanks to my employer). It's the first time I have been to an NFJS event, and I have to say, it's pretty damn good (even though it's Friday-Saturday-Sunday, strange time frame - in fact, I am in the conference as I type this).
Overall most of the presentations I have attended are high quality - not all of them mind you, but most (I am blogging right now, for instance, instead of paying attention in a pretty lame session which shall remain unnamed).
Ted Neward is here, and his concurrency presentations were good. Neal Ford is here, and as always his presentations have been excellent thus far (Productive Programmer, TDD, Code Metrics). David Geary is here, doing GWT stuff (though I haven't been able to attend one of his talks due to scheduling conflicts).
In all I am very impressed with the quality of the setup, and the speakers. If you get a chance to see the NFJS tour (which comes to multiple cities, see the site), do it.
Somehow I missed the announcement yesterday but the Android source code has finally been released: http://source.android.com/.
Guess they finally got all the French swear words out of the source ;). Now if they could just get all of the stupid damn leading "m"s for member vars, I might swear less when I work with it.
http://code.google.com/p/unlocking-android/
I have the code for several chapters up there now, and it's all been updated for 1.0 (as well as some other general improvements). As I go I will add all the code, it should all drop in there soon. The chapters for which I am responsible will all be there by this weekend (3,4,5,6,7) and I will try to ping the other authors too.
Maybe. And I don't just mean the refurbished ones (with the same warranty as new) on the Apple store that I have been buying for years ;).
There is to be some kind of announcement next Tuesday. Reportedely Apple is likely to unveil a new laptop lineup, including a new low price point offering. As always, pundits (and jackass bloggers, like myself), are guessing at what will come based merely on a minimalist press release. It's still amazing how Apple can drive this type of interest with hype and marketing, but I admit it, I am interested.
So, with what the market is doing right now, and Apple stock down, exactly when we should be jump in a buy a ton - Monday late, then sell it Tuesday late? ;)
Whenever I see something like this I find it pretty damn funny. With all the horsepower that Toyota has, they can't even keep their customer facing websites running? Sure it will be back up as soon as someone comes into the office and sees the 8000 email messages about this they probably already have, and addresses it, but shit like this just should not happen in the first place.

As a side note, I am shopping for a new small SUV/Crossover (need 4WD, no actually, really), and have been looking at all the offerings - well all for the websites I can actually access - and they are really underwhelming. I want a DIESEL DAMMIT. I see the kick ass Boxer Diesel from Subaru is available in Kazakhstan, Serbia, and Cyprus, among other places, but NOT THE US. What the hell. I know there are reasons, but come on, lets work this out and give me some kind of a choice? The only real smaller, more fuel efficient, passenger diesel I can get is a VW Jetta, and a Mercedes? Word has it that Subaru and Honda, and others, will bring more diesels to the US in the next 2 years - but I may not be able to wait that long. May just get a Mini AND an old beater truck ;).
I use the provided Android "drawables" with my Android apps fairly often. I find the "ic_menu" items the most useful. I reuse the same icons the built in apps use for common functions like "save", "edit", "delete", "dial", "browse", and so on. Also, from time to time, some other image the platform provides fits. I found myself guessing at particular images from names, and then jotting down notes - and then finally said to myself "man, I gotta write a script to just spit these out in a table for reference."
Hence, here is the full reference to the included drawables for the 1.0 SDK.

Yes, you can also just include your own drawables with your app, but the thing with the built ins is that they are always there with every app, provided by the platform (they are in the "android" package, and included in the android.jar file).
rantMode = true;
One of the main gripes I have had about Eclipse over the years has been the update process. It rarely works seamlessly, and even when it does it used to make me select a new mirror for every component - arghhhh!
The update manager is improved in Ganymede 3.4, no more selecting a mirror every time - but the overall process still seems to have some MAJOR issues. I always get to a point where nothing can be updated, I get many errors, even when trying to update a SINGLE basic component at a time (like "Eclipse Platform" for example):
Cannot complete the request. See the details.
Cannot find a solution where both Match[requiredCapability: org.eclipse.equinox.p2.iu/org.eclipse.emf.codegen/[2.4.0.v200806091234,2.4.0.v200806091234]] and Match[requiredCapability: org.eclipse.equinox.p2.iu/org.eclipse.emf.codegen/[2.4.0.v200808251517,2.4.0.v200808251517]] can be satisfied.
Now that error makes sense from a P2 standpoint, sure. It can't satisfy BOTH of those required versions, and different components in the chain are asking for the different versions. But, and here's the rub, I don't know what component wants what version, and how the entire update process works - and I DON'T CARE TO. I just want the fricking update process to WORK (or at least explain conflicts to me very clearly, again I am trying to update ONE COMPONENT at a time). Every other application I have can successfully update itself, including my kernel nowadays, except Eclipse.
Curiously, if I CHANGE the list of update sites, which I have never added or removed anything from at this point (working with a relatively virgin 3.4 release), I can get it to a "no updates needed" point, by using only the "Ganymede" (http://download.eclipse.org/releases/ganymede) update site. Yet, as soon as I add back the "Eclipse Update Site" (http://update.eclipse.org/updates) update site, and use it in combination with the Ganymede update site, or use it alone - errors about conflicting versions abound. All of the other "dowload".x update sites have problems too - and again, NONE of them were manually added, this is what Eclipse comes with out of the box, and it doesn't work.
I searched for related issues on the Eclipse forums, and see several, but the responses are basically "download the new entire huge X package - that will solve it." Well that does work generally, but it sort of defeats the purpose of all the "bundles" and plug-ins to begin with. That isn't an "update" at all. Not using an update means I have to reconfigure all my settings . . . again. (Though credit where due, Eclipse is MUCH better about this in 3.3 and 3.4, it seems to now separate the metadata into the workspace/.metadata directory and migrating most user specific settings from version to version works well.)
Ok, back to trying NetBeans for another day or so, until I get frustrated with that because I just am not as familiar with it (and last time I tried it, admittedly a while back, it had its own issues). I am too cheap to buy IntelliJ or something, even though I hear it's great (an IDE is a commodity to me, I don't want to buy it, I just want to slam it onto whatever machine I am on at the moment and go - whether or not that is a reasonable/logical approach).
Gufw is an easy to use Ubuntu / Linux firewall, powered by ufw.Gufw is an easy, intuitive, way to manage your Linux firewall. It supports common tasks such as allowing or blocking pre-configured, common p2p, or individual ports port(s), and many others! Gufw is powered by ufw, runs on Ubuntu, and anywhere else Python, GTK, and Ufw are available.
On August 23rd, a UCLA computer discovered the 45th known Mersenne prime, 243,112,609-1, a mammoth 12,978,189 digit number!
The prime number qualifies for the Electronic Frontier Foundation's $100,000 award for discovery of the first 10 million digit prime number.
Congratulations to Edson Smith, who was responsible for installing and maintaining the GIMPS software on the UCLA Mathematics Department's computers.

And yes, I did see this article on Kebernet's reader feed - but I thought this picture deserved to be shared again and again.
So I have been struggling with this topic of the banking system problems. For YEARS I have understood that we have been inactive to our own detriment, but it seems to me we are not addressing the real problems. This is going to be a bit rambling.
First, there are a few memes that we seem to be talking about without addressing the real problem. McCain has been railing against failed CEO pay (nevermind that Clusterfuck-Carly is on his staff). This seems to me to be one of the few areas where supply and demand obviously break down. Of course we know that Oligopolies are a simple failure in free markets, but in terms of labor at top positions, it seems to me, they break the law the other way. If you are in a hugely profitable business, your competition for "top slots" in executive positions is so small, you have to exaggerate pay to recruit perceived "top talent." Here is the thing, for most of these companies, they have 50 VPs and maybe 200 directors that could actually be an effective CEO, if not dominant. However, if your company is so large that tiny deviations in actual performance translate into 10s of millions, or billions of dollars -- if 0.001 market share means a million dollars -- it makes obvious sense to spend tens to hundred(s) of millions on that deciding factor. Of course we are in this position because these companies ARE that large.
More than the blurring of lines between bank, investment house, and insurance company, it seems to my marginally trained mind that our problem is we stopped enforcing the Sherman anti-trust act as it was intended. When we went from 20 investment banks to 5, we created "companies too big to fail." This simply breaks the whole invisible hand/natural selection that Smith tells us we should have. (This applies to direct "banks" too, but I will come back to this in a bit). Sherman stems from the aftermath of the railroad implosion over 100 years ago where we let a few companies get too big to fail and ended up having to write into the law that railroads, literally, couldn't be bankrupt. Now we have a "financial services" sector that represents 21% of our "GDP" (product here, is an interesting question) controlled by about 5 companies. Obviously, we should have been controlling this MnA activity long before any housing bubble existed.
Second, we have a system where Fanny and Freddy became more than an FDIC for loans.Someone correct me if I am wrong here, but this is my understanding of how this market works:
1. Banks make loans. They would take these loans and roll them up into bundles. Fanny and Freddie were chartered by the government with a huge capital outlay to buy these loans to distribute risk on individual loans out more broadly. This prevented, what used to be localized, banks from failing in regional downturns (a factory closing) that resulted in high failures. This reduction in risk allowed "The Greatest Generation" to invest in houses and therefore increase the aggregate savings rate. Housing has never in the history of the country been a way to make money, but rather a safe, time delayed way to save money in an inflation tolerant form.
2. As a result of deregulating mortgage securities, we let banks take, not their total loan distribution, but just specific loans to people with poor or unestablished credit (liars' loans) and roll them up into big bundles. They would then say "the first 20% of payments that come in each month are a AAA rated security" since even in these risky markets, the idea that 80% of people would be in default was unexpected. The problem here is that this kind of security encourages risky lloans, including interest only loans and ARMs to more people. Housing prices go higher, so people assume for 8-10 years that real estate is now an "investment" that will earn them returns rather than a way to secure capital over the long term. This becomes a feedback loop, but since the banks now sell off loans to investment houses, they have no direct risk and enough liquid capital on the books to meet their FDIC requirements. They keep making loans and people keep buying them.
3. Bush tanks the economy and unemployment rises, real wages drop and now the ability of "regular people" to pay drops. The home market goes down a little bit, but since people are in "introductory" periods or ARMs they stick to it. This becomes a feedback loop, and now housing prices are down 20% and people with escalating interest can't pay it. The 7% foreclosure rate deceptively masks the opportunity cost built into these bullshit loans and the drop in value of of the property (accelerated by the bank ownership in certain areas, which decreases it more). While these AAA securities still get 80% of their money, they are now on notes worth less that 20% of the original roll up.
All of this leads me to one point: financial services is bullshit. I remember several months ago, O'Reilly did Bank Foo, to discuss innovation in the financial services industry. It seems to me we need LESS "innovation." Banks make money. Always have. Capital earns more. The problem is we have pushed, as is our wont in many areas (like pensions to 401ks) the risk from the people with capital (banks) to everyone else. Instead of pensions backed by investment bankers who conservatively invest in order to meet obligations, we have money markets and 401ks where people put money into these "AAA" securities to preserve capital. When they fail it is everyone who has to eat it, while the investment banks and "regular" banks have mitigated their risk. The reason Buffett is investing $5b in Goldman and AIG is is in the tank is because insurance companies need reliable investments based on actuarial tables and Goldman never held much of this shitpile.
So the big question for me is, (a) Bush wants 700b to buy these mortgage assets. How the hell did we come up with this number? That is $2,000 for every man woman and child in the US. I suspect that many of these high risk loans to families would rather see the $2,000. In fact, I would bet $8,000 to a family of 4 in a home that is about to be foreclosed on would get them out from under it for a little while. Nailing their interest rate or extending their terms would then seem to help the "man on the street" while fucking these people who have resold this 20 times. (b) No one has yet to explain to me why taking these companies into receivership and auctioning off these assets to establish a base price and working from that is not an option. The US taxpayer is being asked to buy a pig in a poke and then being told that we "might even make money in the long term." If that is the truth, then the US Government should auction off these assets and then participate as a bidder with a reserve price that represents anywhere from a -10 to 1.5% return price over 30 years. This might even still be high assuming housing prices normalize again, but at least *I* a non-fucktard could understand what we are doing and it becomes a 30 year adjustment and not a next-year adjustment. Moreover, people can stop kidding themselves that their houses are an "investment."
My final rant is that if AIG, our largest insurer, can't fucking be trusted and has to be nationalized to the point of a 1/5 stock dilution, why the fuck can't we just go to single payer heath care here? Nevermind that the overhead these fucks impose on us give us the highest healthcare/GDP of any country on the planet, they can't even fucking turn a profit doing it? I say take that stake and make AIG the insurer of the nation. At least with T-Bills backed with and owned by dollars, we could sort that out. If people want to tell us how the US heathcare industry drives the world, then paying these people in dollars should be OK with them, no?
package com.model.account;
import java.util.Date;
import com.model.AbstractBuilder;
public final class ImmutableAccount {
private final Date date;
private double referenceValue;
private double budgetValue;
private double benchmarkValue;
/**
* Public Builder internal class that
* API users must use to construct the object - with this
* approach can make an immutable object AND allow the use of
* the convenient builder creational pattern.
*
* NOTE - Builder constructor contains REQUIRED parameters.
* NOTE - OPTIONAL parameters are available in the builder sequence.
* NOTE - The build() method returns the final instance of the object.
*
*/
public static class Builder extends AbstractBuilder {
private ImmutableAccount account;
/**
* Internal Builder class.
*
* @param id
* @param description
* @param date
*/
// REQUIRED fields in the Builder constructor
public Builder(Date date) {
this.account = new ImmutableAccount(date);
}
// OPTIONAL fields as Builder methods
public Builder referenceValue(double val) {
this.checkBuilt();
this.account.referenceValue = val;
return this;
}
public Builder budgetValue(double val) {
this.checkBuilt();
this.account.budgetValue = val;
return this;
}
public Builder benchmarkValue(double val) {
this.checkBuilt();
this.account.benchmarkValue = val;
return this;
}
// the BUILD method returns the instance
public ImmutableAccount build() {
this.checkBuilt();
this.isBuilt = true;
return this.account;
}
}
/**
* Main method object has a PRIVATE constructor intentionally -
* require that the Builder is used to create this object.
*
* @param date
*/
private ImmutableAccount(Date date) {
this.date = date;
}
//
// accessors
//
public String getId() {
return this.id;
}
public String getDescription() {
return this.description;
}
public double getBudgetValue() {
return this.budgetValue;
}
public double getBenchmarkValue() {
return this.benchmarkValue;
}
public double getReferenceValue() {
return this.referenceValue;
}
//
// mutators that DO NOT mutate ;) - convenience that return new immutable object replacements
// we make sure not to name or call these "set"ters so that it doesn't potentially confuse (especially with tools)
//
public ImmutableAccount updateDate(Date value) {
return new ImmutableAccount.Builder(this.id, this.description, value).benchmarkValue(this.benchmarkValue)
.budgetValue(this.budgetValue).referenceValue(this.referenceValue).build();
}
public ImmutableAccount updateBudgetValue(double value) {
return new ImmutableAccount.Builder(this.id, this.description, this.date).benchmarkValue(this.benchmarkValue)
.budgetValue(value).referenceValue(this.referenceValue).build();
}
public ImmutableAccount updateBenchmarkValue(double value) {
return new ImmutableAccount.Builder(this.id, this.description, this.date).benchmarkValue(value)
.budgetValue(this.budgetValue).referenceValue(this.referenceValue).build();
}
public ImmutableAccount updateReferenceValue(double value) {
return new ImmutableAccount.Builder(this.id, this.description, this.date).benchmarkValue(this.benchmarkValue)
.budgetValue(this.budgetValue).referenceValue(value).build();
}
}
And the AbstractBuilder the Builder extends is ultra simple too:
package com.model;
public abstract class AbstractBuilder {
protected boolean isBuilt;
public void checkBuilt() {
if (this.isBuilt) {
throw new IllegalStateException("The object cannot be modified after built");
}
}
}
Lastly, here is a test case that further demonstrates how you would actually use the immutable object with the Builder to create an instance:
package com.model.account;
import java.util.Date;
import junit.framework.Assert;
import com.axiomainc.test.AbstractTestCase;
public class ImmutableAccountTest extends AbstractTestCase {
public void testBuilder() {
ImmutableAccount account = new ImmutableAccount.Builder(new Date()).benchmarkValue(0.0).budgetValue(1000.0).referenceValue(10.0).build();
System.out.println("account PRE - " + account);
account = account.updateBenchmarkValue(2000.0);
System.out.println("account POST - " + account);
Assert.assertEquals(2000.0, account.getBenchmarkValue());
}
}
It's now official, and the G1 actually looks pretty impressive. It will run $179 in the states with a 2 year contract. The contract sucks of course, but that subsidization is how these things work. The data plan looks reasonable - "400 messages and unlimited data access for $25 a month—or add unlimited messaging for just $10 more a month."

The offical HTC site has all the technical scoop.
And, it's making the rounds on the gadget blogs too.
Right now the app store is getting some static for letting "anyone" submit an app - but I think that's great, rather than a problem. It's supposed to be an open market. Useful and highly rated apps will float to the top, crappy ones will sink - survival of the fittest (this model works, really). Also the nature of the droid platform will help, apps can't take over the device and must live within a well defined life-cycle and respond within specified time frames, or they are terminated. The whole thing won't lock up for a crappy app, the user will know it's a crappy app, uninstall it, and move on - no cluster at all. I find this model *a lot* more appealing than an arbitrarily controlled locked down "store" where apps are "approved" and or "removed" without rhyme or reason.
Microsoft posted images from the ad campaign on its website to "trumpet" the new "I'm a PC" byline. Turns out 4 of the images were created with "Adobe Photoshop C3 Macintosh."
Personally, I thought the new ad campaign was fairly clever. I don't know that I would have responded directly to the Mac meme (acknowledging it at all might backfire), but overall I thought it was a better campaign than anything else I have seen them do . . . . until, NO, is that Deepak Chopra?
You have to be kidding me. One of the biggest scam artists in the history of the planet is chosen to anchor the commercials? I think that was a bigger f-up than making the images with a mac. A thinly veiled snake oil salesman is "a PC"? Oh, you don't say, really. So is the brand also a smoke and mirrors front for what is truly a load of crap?
Until the Chopra part, I though the commercials made more sense than other recent efforts. Now, don't get me wrong, either way, I still am not going to buy a PC or otherwise give any money to MS, but hey, credit where almost due.
Purportedly the first Android device will be available soon in the states for $199, through T-Mobile.
Not all of the details are in (an announcement is expected the 23rd), but the WSJ notes that it will highlight the Google brand.
In other Android news, the best Android book out there ;), Unlocking Android, is also due to be available very soon. We are updating everything to the latest SDK now, and it will be submitting for final copy editing in a few weeks. I hope to have some coupons and so on to distribute as soon as I have a finished "book."
PyTube is a GUI for various command-line tools such as:youtube-dl, sox, mplayer, mencoder, ffmpeg and others.It allows you to resize, rotate, apply an external mp3 into a video, generate a 10 to 30 seconds mp3 ring tone.
New GWT Incubator Drop available
Some really nice stuff in there, editable, sortable, paging capable tables - logging utils, sliders, spinners, and a css stripper that takes out all the comments and such at delivery time (nice for those that like to space it out and comment it during dev) - and vector graphics.
With the logging and table support, it's getting closer to Gwittir ;). No, it's not the same thing really, but it is at least moving in that direction a bit. (And gwt-log is nice too, if you don't want the entire incub or gwittir.)
There is a ton of new stuff in the new version of GWT-Maven.
I just thought I would give it a release notice he






