Decisions Decisions…..

25 May, 2009 (12:39) | .NET Tools, RoR, Software Architecture, Software Quality, Uncategorized | By: twagner

decisions11 As a programmer / consultant I always work on improving my skills. Except for the past year or so. I coasted a little bit. Consequently I am faced with two technologies that I need to study up. MS MVC and Silverlight. My personal feeling is that Silverlight will grow into the larger market over time. But at the moment its still lacking a lot of tools that a normal developer (not a bleeding edge addict) would come to expect in a platform. On the other hand MVC is slated to take off like a rocket. There is sooooo much pent up RoR envy in the .NET developer community its ridiculous.

My main issues with MS MVC is the fact that it tries to be something very similar to RoR. I feel this way because Model View Controller can be done without MS MVC. As a matter of fact as I have mentioned ad-nauseaum Dan and I have built and MVC driven framework a while back. So if I am interested in just the simplest most straightforward way to plug MVC into ASP.NET – thats the way to go – just build a small and simple action framework / router. No tag-soup either. I suppose I have to revisit this after ASP.NET 4.0 is out because it will incorporate routing.

Having said all that as a preamble, I would be silly not to study up on MS MVC. There are some aspects I really do like about it. The great enforcement of separation of concerns for starters.

As I looked over the web to find some decent examples of people who have blazed trails in this area I came across Karl Seguin’s Canvas MVC sample app. It was written with one specific purpose in mind: as a simple learning application that illustrates a good way to build an MVC app. In my opinion this app is a resounding success. It has enough code to illustrate the majority of work that one has to deal with (i.e. data entry, paged lists etc). And it doesn’t try to throw every possible scenario in the mix. The result is a well structured easy to follow sample. Believe me I have looked at numerous different ones out there and this is by far one of the better designed samples. Love it !

CodeGen on Steroids

21 May, 2009 (13:39) | .NET Code Related, Software Architecture, Uncategorized | By: twagner

steroids1Wow, I really have been leading a pretty sheltered life as a consultant. There is a toolset I have used for a number of years that has predictably delivered results. When it comes to projects where you deliver or you dont eat its pretty important that your tools work. Along the way I was fortunate enough – with the help of one important friend ( Dan ) – to produce some pretty good tools. We had a version of MVC in 2006 – 3 years before MS had theirs.

Fast forward to 2009. ASP.NET MVC hits the market. Only its not just routing and actions its a whole big kit and kaboodle. Reminds me a little of RoR. Along the way all of a sudden a lot of folks are complaining that Viewstate is the big evil and if only they could code without it. Meh. Sounds a little like people flocking to the latest shiniest thing. And there is nothing wrong with that. Its just ironic that many of the personality types that flock to this technology are the same type of folks who argued that datasets would save the world. Geez.

MVC is good stuff and my buddy Phil has poured his heart into this project. So I certainly hope it will thrive and progress. What has me confused at the moment are a plethora of adjacent projects that are growing up around it. I have a hard time discerning which to take serious. What do I make of an open source “architecture” that spits out a bunch of scaffolding pages and uses itself two other OSS projects. By the way, am I the only one who sees a trend of OSS projects where someone produces an entire new something that is 50% built on top of someone elses new something. Hope that makes sense. Did the RoR community go through a similar evolution?

As a consultant I need rock solid tools that are not necessarily going to be impacted by a deprecation of some obscure aspect because the manufacturer used some OSS project that is no longer popular. I really should research how the RoR community deals with this.

And while I am on the subject of “architectures”…. seems that there are some ASP.NET MVC “architectures” floating around that are primarily fantastic code generators. I would actually call them Form Wizards on Steroids. Hence the pic.

In 1992 I worked on a pretty large MS Access app. Yes we did those and they were good. Dont laugh. MS Access was the MVC of its day. Anyways, the IDE had a Form Wizard. Point it at a query or table and it would generate all the code you need. I learned an important lesson back then about code gen. Especially UI code gen. Dont use it. Wizard generated code is great … al the way until you need to change it. And Wizard generated apps tend to contain a lot of unnecessary stuff that you wouldn’t produce by hand.

Now mind you I am not talking about the utilization of some other view engine. Spark for example looks pretty cool. I am talking about the notion that a utility spitting out a bunch of views and controllers and tests is a measure of productivity. It is not.

Speaking of productivity. Rob Connery had a very cool demo of MSpec on his site. Finally a spec / test system that makes sense. (Besides Fitnesse that is).

Project Estimates = PM Voodoo ?

18 May, 2009 (10:38) | Software Quality | By: twagner

screenshot131In my experience project estimates are all over the place and often do not have any relationship to reality. Depending on any number of subjective factors the same amount of work gets turned into very untenable estimates.

Recently I watched a team of developers produce estimates that were fairly reasonable only to be asked to build the project for less money … in other words in the interest of budget constraints the devs were asked to submit an estimate consisting of less hours.

The unsuspecting developers did exactly that. In the interest of customer relationships they lowered the estimated hours of the project, thinking this would work out because the customer would be happy.

Some weeks passed. Nobody remembered why the total hours for the project were set at a specific level…as time passed all anyone cared about was the deadline. Can the team meet the deadline ???? When are they going to be done ??? We have commitments we need to meet. You know the drill.

Finally a point in time came when the team was behind schedule and the customer became very upset. Turns out that the customers project management people had made commitments on the basis of the discounted estimate.

The error here is that everyone worked in terms of hours = $$ . Instead of hours = work effort. The amount of work needing to be done did not change at all. Its not as though the deliverables had been reduced. And just because the dev team gave a discount expressed in hours on an estimate, that did not change the overall effort needed to produce the work.

The big learning lesson for me is to carefully look at the way in which estimates are expressed. A better solution is quoting the total price based on a normal effort and then apply a discount percentage to the bottom line. That approach could have saved these fellow programmers a lot of heartache.

Of course there was also the matter of having dependencies on legacy code that was not documented and nobody understood but that’s a different post for another day.

A question about social safety

29 March, 2009 (12:04) | Uncategorized | By: twagner

The NY Times has a nice article describing how German companies deal with the economic downturn (check the comments as well !) .

It touches on some of the aspects I previously brought up. The notion that in Europe, especially in Germany, you find a greater sense of social collectivism. Bad choice of words maybe. But read the article and ask yourself the following: “ In the long run, what is a better approach for a country and its citizens. A shared social responsibility or the individualistic approach advertised by the US.?”.   Keeping in mind that you can’t point to the economic might of the US as proof that this is the right way. Why? Because Germany is so much smaller yet so much more efficient with its resources. Imagine if Germany was given the resources of the US. So the self-fulfilling argument of “I am rich therefore I am right” is off the table.

Perhaps you will be in the same situation as I have been. Depending on my age and experience I would answer the question about pros and cons of each system very differently. In my younger years I found the less paperwork approach of the US very appealing. I could start a company on a dime and would not worry about employee welfare.  If the economy warrants it I would hire more people and as the business dictated I would lay them off.

Having been on both the giving and receiving end of this cycle I can tell you that the upshot of it entails more negative impact on the business than positive. My business depends on the intelligence and loyalty of its employees. My people are my greatest asset. By breaking the implied social contract that existed for so long between companies and its employees, I turn my workforce into a group of mercenaries. This is not some theoretical pontification – this is real and actual life. I recently saw a customer have a project severely impacted because he works on a “staff per project” basis with consultants and freelancers.

I know you can probably make arguments for the existence of our current system in the US that are just as eloquent as the ones being made in Germany. However, put yourself in the shoes of the workers described in Times article and then picture a typical US worker being laid off.  A shared social responsibility makes life better for everyone. Not just the fortunate few at the top. I would love to learn more about the way this concept is applied in countries that are even less individualistic than Europe. For example in Asia.

Sounds about right

21 March, 2009 (14:57) | Uncategorized | By: twagner

unclesamI grew in a country where little kids were educated in the idea that a revolution is a good thing. That capitalism is bad and that there are times when the working class just has to stand up and take over. I dont advocate this notion but I wonder if there will come a time when the people in the US say “ Its enough “, and decide to throw all the bums out. I doubt that time will ever come because it strikes me that people are continually told their individual freedoms outweigh the good of society. And when you have a country of unorganized individuals, who are to self absorbed with their own individuality ,  its pretty easy to run roughshod and basically get away with the equivalent of corporate rape and pillage.

I lifted the graphic in this post from an article that ran in Rolling Stone. Its a great read and shows you how this corporate rape and pillage is done.

By the way. Here are some quotes from a Met Life Study.

“….. A MetLife study released last week found that 50% of Americans said they have only a one-month cushion — roughly two paychecks — or less before they would be unable to fully meet their financial obligations if they were to lose their jobs. More disturbing is that 28% said they could not make ends meet for longer than two weeks without their jobs. And it’s not just low-income earners who would find themselves financially challenged. Twenty-nine percent of those making $100,000 or more a year said they would have trouble paying the bills after more than a month of unemployment….. “

Found on Mish’s Economic Blog

If your buying into the news clips of last week that there are some encouraging signs in the home building and real estate industries, keep in mind that the CEO of Toll Brothers is selling his shares in the company. About 1 million shares that is.  So don’t get suckered into believing what you hear on the news.

At some point people will say “Enough is Enough”

15 March, 2009 (12:27) | Financial, Uncategorized | By: twagner

madoffIn the face of horrible economic news and bailouts galore, it was reported this weekend that AIG plans to spend hundreds of millions of dollars on bonuses – even after it was the beneficiary of Billions of bailout dollars.

I really wonder how much longer it will be before the people say “Enough is Enough”.

By the way, only one month after California approved its much delayed budget, its already $ 8 Billion in the hole. Considering my home states economy is big enough to rival many countries in the world, this is not a good sign.

Oh and before I forget, Meredith Whitney, the single lone dissenting analyst who in 2007/2008 pointed to the coming financial melt-down in the sub-prime area, has an article in the Journal that explains how personal credit lines will be the next big credit crunch we have to face. And since our economy needs credit like we need oxygen you can imagine what will happen.

Here are some of the latest figures and numbers as they developed last week. The data was pulled together by David Rosenberg (bac / merrill) who has been consistently on the money for the past 18 months in his assessments.

(At the time of this post the S&P just had a 1 week rally from 666 low to 760. At the same time a number of analysts w Goldman, UBS and various other houses restated their estimates for this year and peg the S&P at about 560. )

I hate to say it but this is  scary stuff.

TOP TEN MACRO THEMES OF THE LAST WEEK (Mar 8-15)

1) Unprecedented plunge in household wealth
Households ran for the safety of guaranteed deposits amid the worst financial crisis since the 1930s. However, the mere $200 billion they stowed away in that haven fell far short of protecting them from the massive $5 trillion in losses they incurred on equities and real estate. Real estate net worth fell by $670B in 4Q for a $4.6 trillion total decline since the sector rolled over in 2006. Equity losses totaled $8.5 trillion for the year, and $3.9 trillion of that was incurred in just the fourth quarter alone. The slide in the equity market inflicted considerable damage to pension funds and mutual fund shares, which collectively lost $2.2 trillion in 4Q. The aggregate loss in household wealth is now an eye-popping $12.9tn (and now roughly up to $20 trillion in 1Q): This constitutes a 20% decline in household wealth since the peak was put in back in mid-2007. Wealth destruction of this magnitude is unprecedented in the post-WWII era. The 2001 tech-wreck saw a 9.6% decline in net worth while the 1975 equity asset deflation yielded close to a 4% decline in wealth. So far in the first quarter of 2009, we’ve already seen a 20% decline in the value of the S&P 500. History suggests a strong correlation between falling wealth and rising savings and this 18% year-over-year plunge in net worth is highly deflationary.

2) Meanwhile, consumer deleveraging continues
The household debt-to-income ratio dropped to 134% in 4Q from 136% in 3Q. What this confirms is that a 20-year secular expansion has now come to an end. At its peak, this ratio was as high as 139% and nearly a 40ppt increase from 2001 levels. US consumers levered up so much that they tacked on more debt in the last seven years than in the prior 40 years combined. With equity and real estate values plunging, households are being forced to rely less on rising asset prices and more on their paychecks to fund living expenses. In other words, frugality has come back into fashion and we would expect this ratio to continue coming down – adding to deflation pressures.

3) Most sources of borrowing are drying up
The Federal government is expanding its balance sheet at its second fastest rate in recorded history – debt has exploded by 24% year-on-year as of the fourth quarter of 2008. But the Federal government does not operate in a vacuum – other sources of borrowing are drying up rapidly. From nearly 7% growth a year ago, the annual trend in household credit has vanished. Corporate borrowing growth has gone from 13.5% a year ago to a YoY trend of 4.7% currently. State/local governments have sliced debt growth to 2.2% in 4Q from 9.3% a year ago. All in, domestic credit growth, even with the Federal government surge, slowed to an 8-year low of 5.8% YoY in 4Q, down from 6.3% in 3Q and 8.6% a year ago. All the surge in Washington has done is slow the overall descent – it has certainly not prevented overall credit growth from subsiding. Panacea, not an antidote.

4) Retail catches a tailwind
The Fed’s Beige Book actually hinted that consumer spending was no longer falling off a cliff in the past couple of months and that anecdotal view was backed up by the data that came out for February. Not only was January revised up to +1.8% (from +1.0%), but the gains held in February as the headline came in at – 0.1% versus expectations of -0.5% (and ex-autos were +0.7% on top of a 1.6% spurt in January). It seems strange to be seeing such a pickup in view of the fact that we lost 651,000 jobs in February and 655,000 in January, not to mention the collapse in consumer confidence to all-time lows. Be that as it may, the data are the data and many economists now are going to be headed back to the drawing board and revising their first quarter GDP numbers to be somewhat less negative than they were before (we had been at -6.5% SAAR for 1Q). Here are some possible explanations:
1. Income tax refunds have been huge so far this year – up 40% YoY in Jan- Feb (a record $105 bln in Feb).
2. There has been a refinancing boomlet that has left money in people’s pockets – up 17% YoY in Jan-Feb.
3. The seasonal factor for February was also very aggressive (0.878 – i.e. looking for a 12% slide in the raw data) – in fact, it was the most aggressive SF in 12 years. The RAW data actually showed that retail sales slid 3.9% in February, which was the weakest sequential change on record (and half the time, in any given February, sales manage to rise before the seasonal adjustment is applied). We estimate that retail sales would have DECLINED 1.5% if a more normal seasonal factor had been deployed – so tread very
carefully in interpreting this data.
4. There is some ‘noise’ around the data because in the three months to December, sales plummeted at a 26% annual rate. So we could also just be seeing a bit of a bounce from extremely depressed levels.
Areas that look better are clothing (which we highlighted in our Beige Book piece last week), electronics, pharma and e-tailing. All have posted back-to-back gains. Building materials, food and autos have been quite soft by way of comparison.

5) Total pool of unemployed surges
What gets lost in all the commotion in the trading pits over the headline payroll number is what happened to the total pool of unemployed. It soared 851,000 in February to a record 12.5 million, up 5 million or a huge 68% from a year ago. It’s a good thing we have an elaborate social safety net that includes unemployment insurance or else we would be talking more about the 1930s. The headline unemployment rate jumped to 8.1%, the highest since December 1983, from 7.6% in January, 7.2% in December, 6.8% in November, 6.6% in October and 6.2% in September. At that rate, we could be breaking above the post-WWII high of 10.8% established back at the depths of the 1982 recession, by September of this year. Keep in mind that there is a significant correlation between the unemployment rate and consumer delinquency rates in the banking system. This is not merely a comment on what the jobless rate data imply for consumer discretionary and homebuilding stocks, but for financials as well. And, just as the financials led the peak in the S&P 500 by six months in 2007, we would expect to see a recovery in this vital sector first before expecting to see a bottom in the overall market.
The number of full-time jobs sagged 940,000 in February after more than 1 million lost in both December and January – 3.5 million full-time jobs lost in just three months and 6.7 million since the recession began in late 2007. In a normal recession, we tend to see around 2.5 million full-time employment losses and currently we are nearly triple that and counting. These are jobs with benefits and because of their permanency, they have a tremendous impact on the household budget.

6) Why Treasuries look so attractive
After last Friday’s employment report let’s not kid ourselves any longer that we do not have a major deflationary backdrop on our hands. In this environment, income is king. Now, if it weren’t for the fact that default rates are soaring and the move into high-grade corporates has become a mainstream view, we would be big fans of the credit market. That is a crowded trade. Treasuries are generally underowned and unloved. We do see that the equity culture is not dying as much as we would have thought, but insofar as the stock market can generate cash flows, the ability to do so with consistency is in question. Wells Fargo became the latest to cut its dividend – by 85% to a nickel per share in a move that will save the bank roughly $5 billion per year. So far this year, the amount of dividends that has been cut has totaled $40.78 billion (financials now represent 11% of total dividend payouts, down from the 2006 peak of 30%). In less than three months, the dividend cuts have already exceeded the $40.6 bln in all of 2008. According to S&P, dividends are on track to decline 23% this year, the most since 1938. According to the folks at S&P, the sharp curtailment of dividends (but the yield is 3.1%!! Hey – ever heard of a ‘value trap’?) is the equivalent of a 26% pay cut to the average retiree.

7) Is gold at a critical juncture?
We are amazed at how many people believe gold is in some sort of bubble. Is it an over-owned investment? Not in our view. Is it talked about incessantly like oil was last year or tech in the late 1990s? No. Has the bull market been premised on leverage? No. Some bubble. In any event, gold is still in an uptrend, and that does not mean that it will never correct hard. It will, and it has already – this latest corrective phase is the 15th of this 8-year-old bull market. The key is to time your purchases as closely as possible to these tests of the 50-day moving averages – which is the process the gold price is now in technically. And the history of this bull market has shown that after gold touches the 50-day m.a. in these corrective phases, it has gone on to rally by an average of 12% in the coming year (median too). When an article shows up like this on page 20 (20!) of Wednesday’s FT, it suggests to us that this is not a bubble just yet (“UBS Bullish On Gold Price Nearing $2,500”). Call us when it hits the front page.

8) Small business sentiment at a new 28-year low:
• The NFIB index sagged to 82.6 in February from 84.1 in January, the lowest print since April 1980 (and the second lowest ever). The difference, of course, is that in April 1980 the funds rate was 18% as opposed to 0% today (at least the Fed back then still had bullets in its chamber).
• The net share of companies reporting that credit was tough to secure stayed at +13, the highest in three decades. Just prior to the Fed’s move to cut the funds rate to 0%, this metric was running at +11, and before the TALF was announced, it was +12, so clearly monetary policy, whether in a traditional or nontraditional sense, is pushing on a string.
• Up until the summer of 2008, when oil was surging toward $150/bbl, the top concern by small businesses was inflation. Now it is the sales backdrop – one in three cite this as their top worry.
• Corporate pricing as per the NFIB plunged in February to a record low -24 from -15 in January and -6 in December. Now as for ‘plans to raise prices’, a more forward looking indicator, this too fell to +1 in February from +2 in January and +22 a year ago – again, an all-time low.
• Not only that, but the index measuring wages collapsed to a record-low of 7 in February from 9 in January and 23 a year ago. Note that the last time the unemployment rate was over 8%, this metric was running north of 20, which goes to show that in today’s much more competitive and less regulated labor market, an 8%+ jobless rate actually represents much more dramatic excess capacity than was the case two or three decades ago. Company plans to raise wages stayed at an all-time low of +3 as well.

9) Nothing is quite like the Fed cutting the rates to zero
We think Bernanke et al better soon stop talking about quantitative easing and embark on the program to buy coupons: The financial markets are becoming unglued and monetary policy appears to be, in a word, impotent. Since the funds rate was taken to near-0% on December 16th, the yield on the 10-year note has surged 50 basis points. Mortgage rates have come down an insignificant 40 basis points. New car loans rates have jumped 25 basis points. Rates on homeequity lines of credit haven’t budged. Three-month Libor is back above 1.3% and has risen 8 bps in the past week. And the Dow has lost 2,400 points – since the Fed went to ZERO. We think it’s time for some dramatic action out of the Fed – not just to bring credit spreads in, which has been met with some but not a whole lot of success, but to take the whole yield curve lower and further ease debtservice strains for the overall economy (investors yanked a net $911 million out of high-yield funds last week, the most since early October; the junk bond market is down 3.3% so far this month; the US CDX is index is back trading at a 250 bp premium over Treasuries, the widest spread for the year).

10) Foreclosures on the rise
Foreclosure data out of the USA showed a 6% MoM rise and +30% on a YoY basis in February, so the growth rate is slowing but the base level is still uncomfortably high and still rising. The banks are saddled with 700,000 properties on their balance sheets as well (the ‘shadow inventory’), according to RealtyTrac. And, according to the Mortgage Bankers Association, a record 11.2% mortgage borrowers are at least one payment past due or in the foreclosure process. Since the housing rescue plan only goes so far as to cut debt-servicing burdens for certain homeowners to 31%, but does not address the negative net equity position many still face, it is an open question as to how successful this initiative is going to be – we recall all too well that Hope Now and FHA Secure were supposed to be the saviors ages ago. California, Arizona and Nevada are the main culprits – in fact, 1 in every 70 Nevada homes received foreclosure filings last month (and the total number is up 156% over the past year). California foreclosures were up 5% MoM (and +134% YoY) – and this is with the lowest mortgage rates on record, all the bank efforts for loan modifications and all the moratoria on foreclosure activity. So yes, it is impressive that home sales in the Golden State have doubled from a year ago, but from what we can see, we estimate up to 60% of that activity is foreclosure based.

Economic Realities & Open Source

7 March, 2009 (08:40) | Uncategorized | By: twagner

nuclearWe are undergoing the worst economic crisis in modern history. It is world-wide and will cause severe difficulties for many businesses. On a personal note, I have seen business drop off a cliff as of November 2008.  Our pipeline of projects, usually derived by servicing larger consulting companies, has shrunk to a dribble.

If you are not familiar with the economic problems at hand consider this: For the past ten years or so the worlds financial systems, especially Wall Street, have gone on a drunken bender. And it is now time to get sober. Part of the immediate issue at hand is that banks don’t trust one another and will not lend to one another. That completely freezes up corporate credit which in turn freezes the economy. To make matters worse, everyone up and down the financial food chain lies and presents incorrect, often much too optimistic, information. Here is a link to some famous quotes in the past year or so. http://www.cnbc.com/id/28435645/

At the time of this post we just got the latest 1 month unemployment updates and we lost almost 700,000 jobs last month. Thats more than at any time since the 1940’s (before the US joined the war effort and everybody was put to work building tanks and planes)

What does that mean to a small business consultancy like mine? For starters I am looking into the use of DotNetNuke as a viable open source platform to accomplish projects that we previously may have handled via a commercial product. I am not going to go out of my way to discourage a customer from paying for a CMS – after all you pay for more than licensing – usually you get decent support as part of this fee. However, if a project hinges on cost factors and if I can make plausible case for the use of Open Source it may end up making all the difference.

And in case you want some more financial details… here is a great skit by John Stewart that pretty much sums it up (provided YouTube hasnt nuked the clip. Its seems to remove these awfully quickly)

Palm Pre Rocks !

10 January, 2009 (11:17) | Uncategorized | By: twagner

The stock of Palm shot up 35% after people saw the Pre demo’d at CES
Have a look:
http://www.mobilecrunch.com/2009/01/09/palm-pre-hands-on-the-movie/

LINQ to SQL is Dead?

12 November, 2008 (16:10) | General | By: Thomas

Leave to MS to kill the one product in the entire entity effort that seems to actually have worked to some extend. If I read this correctly it sounds as though Linq2SQL is done with in favor of the wacky Entity Framework. Oh joy.

Order Capoten
Atarax
Ophthacare
Purchase Flexeril
Tenuate
Order Vantin
Touch-Up Kit
Order Pravachol
Purchase Nicotinell
Buy Dostinex
Purchase Celexa
Ventolin
Purchase Styplon
Himcolin
Cheap Reosto
Buy Speman
Order Reosto
Order Kytril
Buy Tablet
Cheap Rimonabant
Buy Nizoral
Aldactone
Order Diethylpropion
Cheap Valium
Purchase Adalat
Order Zantac
Buy Evecare
Wellbutrin SR
Cheap Zanaflex
Cheap Lanoxin
Purchase Zyloprim
Buy Karela
Buy Cardura
Cheap Ativan
Purchase Arimidex
Purchase Geriforte
Xeloda
Cheap Ambien
Purchase Kamagra
Cheap Myambutol
Order Nonoxinol
Purchase Kytril
Premium Diet
Order Trazodone
Stromectol
Cheap Nicotinell
Purchase Monoket
Flonase
Order Prozac
Buy Dosages
Cheap Karela
Order Septilin
Purchase Shallaki
Cheap Fosamax
Purchase Pilex
Cheap Lamictal
Purchase Feldene
Cheap Acyclovir
Purchase Urispas
Buy Proventil
Cheap Effexor
Confido
Buy Xeloda
Cheap Imitrex
Lortab
Viramune
Order Zithromax
Order Serophene
Hoodia Weght
Buy Seroquel
Order Avandia
Male Sexual
Cheap Adipex
Femara
Order Nirdosh
Purchase Fastin
Cheap Cytotec
Zerit
Effexor
Cheap Leukeran
Purchase Claritin
Evista
Shoot
Order Superman
Zithromax
Buying Didrex
Buy Ashwagandha
Mentax
Buy Aristocort
Order Omnicef
Purchase Coumadin
Buy Rimonabant
Purchase Vasodilan
Xanax
Cheap Loprox
Cheap Nimotop
Cheap Accupril
Buy Cytotec
Ephedrine
Order Desyrel
Yerba Diet
Order Sarafem
Levlen
Cheap Atarax
Order Confido
Order Cipro
Purchase Avodart
Order Singulair
Professional Plasma
Deltasone
Buy Crestor
Copegus
Buy Antabuse
Purchase Oxytrol
Tentex Forte
Order Differin
Cheap Gasex
Order Prednisone
Buying Viagra
Purchase High
Order Parlodel
Order Celebrex
Cheap Carisoprodol
Purchase Femcare
Purim
Order Lariam
Cheap Diflucan
Tramadol
Order Fastin
Buy Drug
Buy Diflucan
Acomplia
Purchase Proventil
Virility Gum
Purchase Prozac
Buy Zyrtec
Omnicef
Celexa
Purchase Eurax
Buy Alprazolam
Buy Ventolin
Buy Vantin
Cheap Pletal
Avodart
Order Prevacid
Bonnisan
Order Lopid
Evecare
Order Eurax
Endep
Purchase Vasotec
Clarina
Cheap Aristocort
Serophene
Rogaine
Cipro
Order Brafix
Buy Mobic
Buy Methocarbam
Norco
Purchase Brafix
Lopressor
Lotensin
Herbolax
Buy Xenacore
V-Gel
Reosto
Buy Flovent
Cheap Capoten
Order Rumalaya
Butalbital
Purchase Differin
Cheap Phentermine
Order Proventil
Order Rogaine
Order Lozol
Order Vasotec
Buy Fioricet
Mentat
Order Starlix
Purchase Soma
Order Cozaar
Liv.52
Buy Micardis
Buy Didrex
Loxitane
Phentermine
Casodex
Buy Diethylpropion
Fioricet
Purchase Hydrocodone
Order Acyclovir
Cheap Cozaar
Buy Oxytrol
Purchase Adipex
Cheap Mentat
Buy Motrin
Naprosyn
Purchase Norvasc
Cheap Combivent
Purchase Prilosec
Order Plendil
Cheap Relafen
Purchase Glucophage
Speman
Order Diabecon
Buy Valium
Vicodin
Cheap Prandin
Cheap Soma
Purchase Flonase
Purchase Herbolax
Buy Codeine
Order Atacand
Purchase Keftab
Purchase Acomplia
Order Lorazepam
Buy Abana
Buy Coreg
Purchase Evista
Order Lotensin
Cyklokapron
Buy Parlodel
Buy Hoodia
Order Evista
Purchase Diakof
Cheap Paxil
Buy Altace
Buy Purim
Himcocid
Cheap Lotrisone
Order Paxil
Buy Amoxil
Order ZeritOrder Revia
Buy Brahmi
Purchase Zantac
Purchase Stromectol
Adderall
Cheap Cephalexin
Cheap Prograf
Cheap Ventolin
Cheap Levaquin
Buy Dilantin
Purchase Himplasia
Order Sorbitrate
Purchase Rocaltrol
Purchase Snoroff
Zelnorm
Order Flovent
Order Hoodia
Mysoline
Menosan
Aricept
Augmentin
Men Attracting
Order Plan
Order Renalka
Buy Myambutol
Cheap Clarina
Purchase Serophene
Buy Clarinex
Epivir-HBV
Purchase Cheap
Cheap Bactroban
Buy AyurSlim
Order Nexium
Order Miacalcin
Purchase Tenormin
Buy Avapro
Order Chitosan
Relafen
Buy Superman
Buy Copegus
Cheap Geodon
Order Mexitil
Buy Quibron-T
Cheap Lariam
Cheap Protonix
Cheap Lioresal
Purchase Zestril
Buy Proscar
Eurax
Darvocet
Order Aldactone
Order Himcospaz
Order Antabuse
Buy Diakof
Purchase Augmentin
Purchase Diabecon
Buy Sumycin
Buying Ultram
Cephalexin
Snoroff
Purchase Alprazolam
Cheap Lexapro
Purchase Bupropion
Buy Online
Zyrtec
Purchase Prinivil

Couple of good books

14 October, 2008 (15:54) | General | By: Thomas

I still get an occasional copy of a book sent for review here and there by publishers. Two of the better ones to come across my desk have been Ubuntu Kung-Fu  by Keir Thomas as well as Pragmatic Thinking and Learning by Andy Hunt.

Between them I enjoyed Kung Fu for the quick 1 or two page solutions to a plethora of technical problems, although reading it did reinforce my decision to stay with Windows as the right one.

Pragmatic Thinking on the other hand is a totally different work. I really wonder what prompted Andy Hunt to go from developer / consultant to author to…. seriously deep thinker. Just from a perfunctory review I can see that he did a tremendous amount of research. Its not an easy read for me so I expect to be curled up with it for some time to come, but I know the effort will be well worth it. This is a pretty unique book in our industry.

Wellbutrin SR
Order Prandin
Order Lipitor
Purchase Protonix
Purchase Exelon
Cheap Allegra
Cheap Fioricet
Order Seroquel
Atrovent
Buy Evista
Prozac
Buy Quibron-T
V-Gel
Order Meridia
Order Trazodone
Order Lamisil
Purchase Sorbitrate
Cheap Proscar
Snoroff
Order Sinequan
Buy Ashwagandha
Cheap Isoptin
Purchase Mycelex-G
Buy Confido
Cheap Flomax
Purchase Cephalexin
Purchase Rogaine
Order Rocaltrol
Order Augmentin
Sorbitrate
Adderall
Flomax
Buy Femcare
Cheap Xenacore
Hyzaar
Cheap Singulair
Quibron-T
Cheap Hyzaar
Buy Tenuate
Purchase Zerit
Cheap Flovent
Cheap Cystone
Buy Carisoprodol
Buy Norco
Order Nirdosh
Order CLA
Buy Lincocin
Cheap Topamax
Order Ventolin
Cheap Brite
Viramune
Buy Methocarbam
Purchase Prometrium
Famvir
Order Brafix
Order Ismo
Pulmicort Inhaler
Women’s Intimacy
Buy Capoten
Order Evecare
Buy Lotrisone
Cheap Nirdosh
Order Micardis
Purchase AyurSlim
Cheap Viramune
Order Capoten
Ultimate Male
Purchase Kamagra
Buy Acomplia
Buy Lortab
Purchase Micardis
Order Proventil
Cheap Lukol
Order Danazol
Purchase Didrex
Buy Serophene
Cheapest Ultram
Buy Myambutol
Mental Booster
Order Serophene
Order Combivent
Cheap Celexa
Cheap Bontril
Purchase Naprosyn
Deltasone
Cheap Gasex
Purchase Aldactone
Cialis
Order Cardura
Purchase Miacalcin
Chitosan
Buy Amoxil
Cheap Avandamet
Cheap Geriforte
Buy Noroxin
Superloss Multi
Xenacore
Purchase Deltasone
Purchase Gasex
Buy Celexa
Zyban
Order Nexium
Order Glucophage
Cozaar
Buy Mexitil
Purchase Celexa
Buy Zocor
Buy Levitra
Buy Levothroid
Cheap Lorazepam
Oxytrol
Buy Copegus
Cheap Ophthacare
Order Zestril
Purchase Percocet
Himcolin
Arava
Cheapest Adipex
Cheap Flonase
Purchase Nexium
Aleve
Glucotrol XL
Cheap Azulfidine
Femara
Buy Sarafem
Xeloda
Desyrel
Cheap Loprox
Purchase Aciphex
Cheap Lexapro
Order Biaxin
Order Prograf
Cheap Proventil
Amoxil
Rhinocort
Order Risperdal
Purchase Tenormin
Kytril
Purchase Retin-A
Order Crestor
Cheap Ventolin
Cheap Ambien
Buy Xanax
Antabuse
Order Nimotop
Neurontin
Evista
Purchase Rumalaya
Purchase Lamictal
Buy Calan
Karela
Diazepam
Mentat
Proventil
Order Pamelor
Purchase Mevacor
Order Monoket
Cheap Plavix
Lasix
Order Cyklokapron
Buy Penisole
Order Coreg
Purchase Zanaflex
Cheap Geodon
Oxycontin
Cheap Nizoral
Cheap Revia
Cheap Nolvadex
Order Clomid
Buy Accupril
Purchase Diazepam
Mycelex-G
Purchase Omnicef
Order Lamictal
Procardia
Purchase Tricor
Cheap Zyrtec
Buy Zithromax
Cheap Trazodone
Buy Rimonabant
Buy Lipitor
Order Protonix
Purchase Cytotec
Purchase Zyrtec
Purchase Accutane
Order Celexa
Order Femara
Nimotop
Buy Flovent
Buying Tenuate
Cheap Reosto
Cheap Aceon
Purchase Septilin
Order Pletal
Premarin
Purchase Augmentin
Cheap Oxytrol
Cheap Combivent
Premium Diet
Buy Miacalcin
Lexapro
Buy Xenacore
Purchase Clarina
Purchase Dostinex
Buy Snoroff
Purchase Himcospaz
Cheap Mexitil
Order Lanoxin
Order Diflucan
Buy Zimulti
Purchase Confido
Purchase Shallaki
Order Dostinex
Cheap Clarina
Purchase Proventil
Order Bonnisan
Order Diarex
Purchase Atrovent
Purchase Quibron-T
Purchase Lipitor
Mentax
Buy Propecia
Order Zyrtec
Cheap Phentrimine
Cheap Vantin
Buying Adipex
Cheap Procardia
Ephedrine
Buy Lopressor
Purchase Viramune
Order Cymbalta
Buy Sorbitrate
Purchase Differin
Abana
Buy Vasodilan
Order Oxytrol
Purchase Prograf
Norpace CR
Cymbalta
Purchase Norvasc
Order Mentax
Cheap Femara
Brite
Cheap Prevacid
Buy Claritin
Cheap Desyrel
Buy Brafix
Flovent
Buy Bonnisan
Order Noroxin
Order Brahmi
Vasotec
Cheap Cytotec
Cheap Vasodilan
Buy Levlen
Cheap Isordil
Cheap Purinethol
Purchase Evista
Cheap Ultram
Cheap Menosan
Buy Monoket
Order Zocor
Order Dilantin
Purchase Amoxil
Cheap Glucophage
Buy Rhinocort
Purchase Isoptin
Purchase Xanax
Order Depakote
Order Cialis
Buy Avapro
Cheap StretchNil
Order Nizoral
Paxil
Buy Loxitane
Purchase Fastin
Buy Fosamax
Bonnisan
Cheap Prandin
Buy Accutane
Purchase Acomplia
Cheap Clonazepam
Cheapest Valium
Cheap Elavil
Order Diazepam
Purchase Rocaltrol
Purchase Aristocort
Order Requip
Order Acomplia
Purchase Clonazepam
Flagyl ER
Cheap Aldactone
Cheap Neurontin
Purchase Bontril
Order Watson
Order Eurax
Order Tricor
Ophthacare
Cheap Evista
Cheap Levitra