The Fed’s Latest Round of Quantitative Easing

October 16, 2010

I read the following in last weekend’s Wall Street Journal, “Heard on the Street”, p. B16, October 9-10, 2010 …

Being a bear with a capital “B” is tough when the Federal Reserve is juicing markets. The prospect of more extraordinary easing measures Friday pushed the Dow back above 11,000.

But that hasn’t deterred David Rosenberg, Gluskin Sheff’s chief economist.  While the National Bureau of Economic Research (NBER) has said the recession ended in June 2009, Mr. Rosenberg insists we are still in a depression.

That view is based on a less-technical measure of downturns than that used by the NBER.  Mr. Rosenberg says a recession is when government tries “to stimulate the private sector.” A depression is when government tries “to sustain the private sector.” The latter, he argues is very much the case today.

And for those who question the absence of 1930s-style bread lines, Mr. Rosenberg counters that today, thanks to food stamps and other government-assistance programs, “the soup and bread lines are in the mail.”

He makes a good point.  Due to the recession, 1 in 8 Americans now receives food stamps.  If you were to count all those who are eligible, but for whatever reason do not collect, the number is something like 1 in 5 Americans.

Let’s see whether the Fed is successful in stimulating the economy with lower long-term interest rates.  It might work, but it might not.  Personally, I’m not convinced it will.  The Fed is trying to pull a rabbit out of a hat.

Amongst other things, the Fed is also trying to juice housing prices, and I think the juice will help prices to bounce somewhat.  But a dead cat will bounce only so many times.  Eventually, a dead cat is a dead cat.  Don’t get me wrong … Housing will eventually recover, but don’t hold your breath waiting.  It might be a very long time.

And as for the economy, it too will recover, but only when the fundamentals allow it to recover.  Until then, there’s a fair amount of debt that needs to be flushed out of the financial system before that happens.  In the meantime, and to that end, mortgage refinancing might be in order.

Google Chrome Protects Against Malware

May 20, 2010

Weeks ago, I posted about the many reasons why I enjoy web browsing with Google Chrome.  Today, I just added another reason to like Google Chrome.  Malware protection.

I was clicking on links of search results from, when I got the following message: “Warning: Visiting this site may harm your computer!”

(Click the image for a full-size view.)

I don’t think Chrome is unique with this feature, as many modern web browsers offer some form of this functionality.  Nonetheless, it is the first time I can recall ever being presented with such a warning.

While I did not investigate the exact nature of this particular malware site, it does look to me like Chrome is checking all the content and links on a page.  In this case, it found advertising which contained content from (or a link to) the malware site identified in the warning.  Nice catch.

Because advertising on the web today is often sourced from third party advertising networks, there’s no guarantee that an otherwise respectable web site will not inadvertently display such malware ads.  This form of malware attack recently made its way onto the Star Tribune, just as it has to other popular and well-known web sites (e.g. New York Times).

Having been using the Internet for almost 20 years, I’m pretty “street smart” about viruses, phishing, spyware, scareware, malware, and all the likes.  And as such, I’ve been able to steer clear of these maladies.  Nonetheless, this warning came as a surprise to me, because it was generated by a Top-5 link in the Google search engine results.

Unfortunately, the Internet is still a kind of wild-wild-west, where criminals roam freely.  These unscrupulous types are increasingly using ever-more sophisticated techniques to infect computers, which then give them access to credit card numbers, user passwords, and the means to launch distributed-denial-of-service (DDOS) attacks against web sites.  Many times, a web browser is the vector of such infections.  Thankfully, Google Chrome has been designed with an increased attention toward security.

Gone are the days when visiting seedy web sites might get your computer infected.  Today, you can be infected by the advertising displayed on a seemingly-safe and familiar website.


Reasons Why I Like Google Chrome

May 5, 2010

I’ve been using Mac OS X since February 2009, and I have been very happy with the adoption.  Nonetheless, when switching to a different operating system, there’s the inevitable transition period — finding, downloading, trying, and settling in with new applications to get the job done.  I was particularly interested in finding a suitable web browser.

On my quest, I went through a number of browsers on the Mac.  At first, I used Safari, but I was not won-over.  I then dabbled with Opera for a little bit, but I just couldn’t stomach the way it rendered many pages.  Having been a Firefox user on Windows, I settled on using Firefox on the Mac for the subsequent 10 months, because it was nearly identical on Mac and Windows.

Now, it should be noted that I have a diverse set of interests, so I tend to have lots of web browser windows open at the same time, and I’ll often have my web browser open for weeks at a time.  And that’s where Firefox began to lose its luster for me.  Firefox on the Mac, like its Windows variant, gets slow, if left running for any length of time.  It eventually consumes a great deal of memory and CPU on the computer, causing everything to get slow.  I have found this to be the case with nearly every web browser I have tried in recent years.  Sure, the problem may have more to do with bad programming in the the JavaScript and Flash elements on the various web pages, but why settle for that?  I wanted a new, smarter, more-efficient web browser!

Having using Google Chrome on Windows (and liking it), I had been anticipating Chrome on Mac for many months.  Finally, on December 8, 2009, my new browser had arrived.  I switched almost exclusively to Google Chrome (beta) on Mac, from that day forward.  Like many other Google offerings, the “beta” product was already feature-rich and very stable.  (Well, I did have to wait a while for  the Bookmark Manager to be implemented on the Mac version, but eventually, it was.)

There are so many good things I can write about Google Chrome:

  • automatic sync of your bookmarks, seamlessly across all your computers running Chrome,
  • the Task Manager’s visibility into memory and CPU consumed by each open web page,
  • each web page runs as its own process, giving you the ability to kill individual pages (or plugins) that aren’t playing nicely, without affecting the other pages,
  • automatic re-opening of previously-open pages, when I re-launch Chrome (after I close it intentionally, or rarely, when it crashes),
  • the design ideas that make it a really great browser, performance-wise and security-wise,
  • its compatibility with all the web sites I use regularly,
  • availability of a large variety of extensions (i.e. plugins),
  • cross-platform support: same browsing experience on Mac and Windows.

It’s a very fast, snappy, and responsive browser.  And (very important to me), it doesn’t appear to suffer from the same performance problems that plague other web browsers, when they have been running for some time.

Apparently, many other people are also taking notice of Google Chrome.  Here’s a recent article that graphs the market share of the most popular web browsers, as of April 2010.  It is remarkable that in just 16 months, Google Chrome has gone from a 2% up to a 7% market share.


Democrat Votes for Republican Scott Brown

January 20, 2010

I’m a life-long Democrat who voted for Republican Scott Brown today, in the Massachusetts special election.  Not because I wanted to, but because I had to.  Sadly, I don’t agree with very critical points of Brown’s politics.  On the other hand, I felt it was the only option left for me to send a clear message to the Democratic leadership in Washington.  My emails to my Democratic representatives have gone ignored.

I am still very much in favor of health insurance reform, but I am particularly opposed to the abomination of a bill that came out of the Senate.   As far as I’m concerned, my vote today was intended as a warning shot across the bough.

My message to Washington … Focus on addressing the costs of health care.  I even support a public option.  But I’ll be damned if you continue to insist on an individual mandate.

For me, it is a matter of personal liberty.  How can it be constitutional to require someone to buy health insurance?  It’s one thing to require buying auto insurance if you drive a car.  Quite another thing to require buying health insurance for simply being alive, particularly when the government wants us to buy it from for-profit companies, who are beholden to their shareholders.  Go back to the drawing board.

In the meantime, I want the heads of the the Democratic Senators from Nebraska (Ben Nelson), Louisiana (Mary Landrieu), and Connecticut (Joe Lieberman).  There comes a time when a politician needs to stand up and do the right thing, for the sake of our nation as a whole, and these particular three stand out as notable failures.

Mac OS X … “fork: Resource temporarily unavailable”

January 19, 2010

Almost a year ago, I made the switch to using Mac OS X as my primary workstation.  As difficult as the transition was during my first 3 weeks, it has now become second nature to me.  I haven’t had any major issues along the way, but now and then, I have had to tweak a thing or two.  Here is the most recent such example.

Lately, I’ve been seeing a fair number of the following error, when launching commands under Bash within a local Terminal session.  It’s rather annoying, because it stops me from getting any work done.  As a systems administrator, I have lots of Terminal sessions open, and this is where the error has always manifested itself.

[laptop:~ root]$ ssh somehost 
-bash: fork: Resource temporarily unavailable

The first time this happened to me, I didn’t think much of it, so I rebooted my system.  Today, I did not feel like rebooting my system, because I have a ton of work in progress.  I suspect most people won’t hit this resource limit, but if you’re a power user, you eventually might.

Like other Unix-like operating systems, Max OS X limits the maximum number of processes, system-wide and per-user, but it does so with a rather conservative number.  On my Mac, system-wide processes were limited to 512, and per-user processes were limited to 266.  I’ve never encountered this problem on Linux, because these values are dynamically set in the kernel, based on the amount of memory installed in the Linux system.

Here’s how I resolved this problem.

  • First, determine what your system’s current limits are.  These are the values on my installation of Mac OS X 10.5 with 4 GB of RAM.
[laptop:~ root]$ sysctl -a | grep maxproc | grep =
kern.maxproc = 512
kern.maxprocperuid = 266
  • Now set these to higher values.  I suggest approximately doubling what you already have.
[laptop:~ root]$ sysctl -w kern.maxproc=1024
[laptop:~ root]$ sysctl -w kern.maxprocperuid=512
  • You’ll also want to apply these changes automatically at system bootup.  To do so, add them to the /etc/sysctl.conf file.
[laptop:~ root]$ cat /etc/sysctl.conf
  • At this point, launched processes will still inherit the default maxprocperuid value of 266.  I would like to change this inherited default value for new processes automatically, but I haven’t found a way to increase the default system-wide soft-limit of maxprocperuid on Mac.  On Linux, I simply update the /etc/security/limits.conf file, but I don’t see such a file under Mac OS X.  If you know of a way to do this in Mac OS X, leave a comment below.  For now, I’ve added the following command to my user’s .bash_profile file.  The value of 512 is intended to match that of kern.maxprocperuid shown above.
ulimit -u 512
  • To confirm the change, launch a new Terminal session, and run the following command.  Before the change, you will have seen “266.”  After the change, you should see “512”.
[laptop:~ root]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) 6144
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 256
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 512
virtual memory          (kbytes, -v) unlimited


A commenter posted a link below, referring me to a method of changing the default system-wide values at boot time.  I’ve elaborated in greater detail below.

My system is running a newer version of Mac OS X (10.5.8), and it uses a launchd daemon, which is the parent of all processes (similar to init under Linux).  This launchd daemon can read options from a configuration file, which can be used to set the various “limit” values.  There is both a system-wide and a per-user launchd daemon, and each can be configured independently, although the user’s launchd daemon will inherit its values from the system’s launchd at boot time .  The system-wide daemon values will always limit the maximum values that a per-user daemon can set.

Further, the launchd daemon can be re-configured live (with certain limitations), using the launchctl command, without requiring a reboot.  Though, I suggest that you add your custom settings to /etc/launchd.conf to persist your changes across reboots.

  • First, check your existing user’s launchd settings.  For each setting, there are two values.  A “soft” limit on the left, and a “hard” limit on the right.  The soft limit is the currently active limit.  However, you can increase the soft limit up to (but not greater than) the hard limit.  The root user can increase the hard limits of the system-wide launchd, without a reboot.  However, you cannot change a user’s launchd hard limits without a reboot (even if trying to do so as the root user).
[laptop:~ user]$ launchctl limit
         cpu         unlimited      unlimited
         filesize    unlimited      unlimited
         data        6291456        unlimited
         stack       8388608        67104768
         core        0              unlimited
         rss         unlimited      unlimited
         memlock     unlimited      unlimited
         maxproc     266            532
         maxfiles    256            unlimited
  • Next, check your system-wide setings.  Notice how the user-specific values are identical to the system-wide settings, as they were inherited at boot time.
[laptop:~ user]$ sudo su -
[laptop:~ root]$ launchctl limit
         cpu         unlimited      unlimited
         filesize    unlimited      unlimited
         data        6291456        unlimited
         stack       8388608        67104768
         core        0              unlimited
         rss         unlimited      unlimited
         memlock     unlimited      unlimited
         maxproc     266            532
         maxfiles    256            unlimited
[laptop:~ root]$ exit
  • If you do not need to increase the user-specific values before rebooting, then go on to the next step.  Otherwise, if you need to resolve your immediate “fork: Resource temporarily unavailable” problem, try the following steps.  (You may need to close some applications first.)  Remember, you will not be able to increase the soft values higher than the hard limit imposed by the user’s launchd daemon.  If you try to set the soft limit too high, the value will be reduced to the hard limit value.  As illustrated in the example below, increasing the maxproc soft limit to 512 succeeds, while increasing the maxproc hard limit to 1024 fails.  Run the following commands as the user (not root).
[laptop:~ user]$ launchctl limit maxproc   512 1024
[laptop:~ user]$ launchctl limit maxfiles  512 unlimited
[laptop:~ user]$ launchctl limit
         cpu         unlimited      unlimited
         filesize    unlimited      unlimited
         data        6291456        unlimited
         stack       8388608        67104768
         core        0              unlimited
         rss         unlimited      unlimited
         memlock     unlimited      unlimited
         maxproc     512            532
         maxfiles    512            unlimited
  • Now, place new system-wide default settings into the /etc/launchd.conf file.  You will need to create this file, as it does not exist by default.  This file contains only the options that are passed to launchctl (not the launchctl command itself).  Note that on OS X 10.5.8, the maxproc value has a maximum hard limit of 2500.
[laptop:~ user]$ sudo vi /etc/launchd.conf
[laptop:~ user]$ cat /etc/launchd.conf
limit maxproc 1024 2048
limit maxfiles 1024 unlimited
  • You may also create a configuration file at $HOME/.launchd.conf, which can be used to set the per-user values.  But you need this only if you want smaller default values than what the system allows the user-specific launchd to inherit.

For additional information on launchctl settings, check out the following man pages.

[laptop:~ user]$ man launchd.conf
[laptop:~ user]$ man launchctl
[laptop:~ user]$ man getrlimit