Cygwin – Linux Tools for Windows

As a developer, I tend to either work in a Linux environment (e.g., Ubuntu) or in a Windows environment. In either case, I find that Unix/Linux command line utilities are a necessity for serious software development. In Windows, those tools can be be installed through a package called Cygwin. Cygwin can be found at:

http://cygwin.com/install.html

Install the default packages to begin with, along with all packages relating to the programming languages that you are interested in.

Quick Install of Ruby Development Environment

Have you ever been curious about the Ruby programming language or Ruby on Rails?

Here is a quick guide about getting up and running quickly.

First, go to http://railsinstaller.org/en and download the appropriate RailsInstaller package for your operating system.

Next, run the installer. This will install Ruby, Rails, Bundler, Git, Sqlite, TinyTDS, SQL Server Support, and DevKit.

This completes the installation of Ruby. Now, it is time to install an IDE. Personally, I like to use Eclipse because it has plugins for other programming languages (like PHP and Python) that I use. Install Eclipse by going to http://eclipse.org/downloads/. Download Eclipse standard and install it.

Load Eclipse. Go to the Help Menu and choose “Install New Software…”

Go to Choose the Eclipse Plug-in Version and then press the download button:

Aptana_Download_Page1

Now, copy the link to the download files to your clipboard:

Aptana_Download_Page2

In this case, the link is http://download.aptana.com/studio3/plugin/install.

Copy this URL into the “Work with” field in Eclipse’s “Available Software” window:

Eclipse_Available_Software

Select all items in Aptana Studio 3 and click “Finish”.

Eclipse will now restart and you will be ready to write your first Ruby program.

PDF – Scanning Odd and Even Pages Simultaneously

I have often found myself in a situation where I needed to scan several pages of a book – both odd and even.  However, I want my PDF file to only have one page from the book on each PDF page.  This post describes how to do this with Adobe Acrobat 9.5 under Windows 7.

Install Script to Duplicate all Pages of a PDF

Save the following code snipet to a file called DuplicateAll.js in the Acrobat folder that contains user defined scripts.  On Windows 7, this is:  C:\Program Files (x86)\Adobe\Acrobat 9.0\Acrobat\Javascripts

app.addMenuItem({
        cExec: "duplicate_all_pages();",
        cParent: "Edit",
        cName: "Duplicate all pages"
});

function duplicate_all_pages() {
        var r = this.getPageBox();
        var w = r[2] - r[0];
        var h = r[1] - r[3];
        var oldD = this;
        var newD = app.newDoc({ nWidth: w, nHeight: h });
        var path = oldD.path.replace(oldD.documentFileName,"");
        for(var p=oldD.numPages-1; p>=0; p--) {
                pageFile = path+"page_"+p+".pdf";
                oldD.extractPages({ cPath: pageFile, nStart: p });
                newD.insertPages({ cPath: pageFile, nPage: -1 });
                newD.insertPages({ cPath: pageFile, nPage: -1 });
                //File.delete(pageFile);
        }
        return true;
}

A special thanks to http://branch14.org/snippets/duplicate_all_pages_in_acrobat.html for providing this code!

Scan Open Book Pages and Save as a PDF

Open the book, place it face down on the scanner, and scan odd and even pages of the book at the same time.  Then, open the resulting PDF in Adobe Acrobat.

Crop and Split Pages

Go to the Edit menu and choose “Duplicate all pages”.  This option should be the last option on the menu.

Now, look at the first page of the PDF.  The odd page number from the book will be on the left hand side.  Crop out the page as shown in the example below:

1

Note that this should be applied to all odd pages.

Finally, do the same thing for the even page numbers as shown in the example below:

 

2

Now, each page of the book will be on a separate page in the PDF file.

Funding a New Business with a 401K

A few years ago, Intuit did a study showing that 72% of people would prefer to be self-employed. (1)

But, starting a business is costly. According to Forbes, the cost of starting one of the 20 top franchises ranges from just over $60K to almost $1.5M. (2)  Such figures are staggering for most  aspiring entrepreneurs and cause the idea of opening an independent business to be quickly dismissed.  However, there are options open to many people.

One of these options is using an existing 401K from your employer to fund the start-up or acquisition costs of a new business.  This option is called a Rollover as Business Start-up, or ROBS.   Here’s how it works:

  1. Form a Corporation.  In order to meet IRS requirements, the corporation must be a C Corporation – not a Limited Liability Corporation (LLC) or S Corporation (S Corp).  For sake of example, let us call the corporation “VCSCO, Inc.”
  2. New Corporation Sponsors a 401K Plan.  A CPA or an expert in setting up a ROBS creates a 401K for VCSCO, Inc., and agrees to be the plan administrator.
  3. Rollover Your Existing 401K Plan.  Rollover the funds from your present 401K plan into the new VCSCO, Inc., 401K plan.  Rolling funds from one 401K to another creates no tax liability.
  4. New 401K Plan Invests in the New Corporation Stock.  VCSCO, Inc., issues shares of stock and your new 401K plan buys them.  The proceeds from the sale of the stock to your 401K plan is deposited into the VCSCO, Inc., bank account.  It can be used to pay for franchise fees, start-up costs, and working capital to start a business or purchase an existing business.

When applying for bank or SBA loans, lenders consider such cash to be unencumbered funds.  In other words, there are no loans made against it and no debt associated with it.   Since business loans for many types of businesses are routinely made with 25% down payment, an entrepreneur can realistically afford to purchase a business that costs 3 or 4 times as much as the value of the 401K.   With average 401K balances of over $75K, a surprisingly large number of people have access to the money needed to start an average franchise with initial investments of $300K.

What kind of franchise can a person purchase for $300K?  A tax service like Liberty Tax.   A Merry Maids franchise.  A Supercuts franchise.  Or a fitness center franchise like Anytime Fitness.  For the more confident entrepreneur, $300K is more than enough to buy a small car wash, a dryer cleaners, or a laundromat.

In order to use a ROBS for funding, the entrepreneur must be a salaried employee of the business.  The salary that the entrepreneur makes should not come from the ROBS funding – but only from operational revenues generated once the new business opens its doors.

Drawbacks

The biggest drawback of using a ROBS for funding a new business adventure is that there is significant risk of losing retirement savings.  The entrepreneur is solely responsible if the business spirals into bankruptcy.

Other drawbacks include the IRS requirement that all full time employees of the business be offered the same 401K plan.  In other words, if your new business has full time employees, you will be required to offer them shares in the venture.  Obviously, if this is undesirable or unfeasible, only part-time workers can be hired.

Finally, the IRS wants to make sure that ROBS are not used as a backdoor method of withdrawing money tax-free from a 401K.  Therefore, it is important that your business opportunity be valued by a professional appraiser before the ROBS funding is secured as well as on a yearly basis thereafter.  And be prepared for an IRS audit – especially if your new enterprise is a cash business where money laundering could be a concern for the government.

(1)   http://usatoday30.usatoday.com/money/smallbusiness/columnist/abrams/2007-10-11-workers-survey_N.htm

(2)  http://www.forbes.com/sites/jjcolao/2012/02/08/top-20-franchises-for-the-buck/

(3)  http://money.usnews.com/money/blogs/planning-to-retire/2012/11/09/average-401k-balance-reaches-new-high

 

 

 

Reversing Page Order in Adobe Acrobat

Here is a very useful trick that I found today and want to share.

Create a file called “Reversepageorder.js” your Acrobat Javascipt Folder (C:Program FilesAdobeAcrobat 9.0AcrobatJavascripts).  Put the following in it:

app.addMenuItem({ cName: “Reverse”, cParent: “Document”, cExec: “PPReversePages();”, cEnable: “event.rc = (event.target != null);”, nPos: 0

});
function PPReversePages()
{
var t = app.thermometer;
t.duration = this.numPages;
t.begin();
for (i = this.numPages – 1; i >= 0; i–)
{
t.value = (i-this.numPages)*-1;
this.movePage(i);
t.text = ‘Moving page ‘ + (i + 1);
}
t.end();
}// JavaScript Document

 

Restart Acrobat.

The Reverse option will be under the Document menu.

Creating an Image with Transparent Parts

If an image has transparent parts, some browsers will ignore them.  But, creating images with transparent parts is useful when making a collage or when creating a Visio diagram with embedded images.  Here is how to create an image with transparent parts using GIMP:

  • Install GIMP, if necessary.  Here is a link to the Windows installer for GIMP 2.8.2
  • Open the image, or copy/paste it into GIMP.  If it is copied in, save it before proceeding.
  • Choose the Layer -> Add Transparency -> Add Alpha Channel menu.
  • Click on the Fuzzy Select Tool icon:
Fuzzy Select Tool

 

  • Click on the area of the image that you want to be transparent.  Note that the area of the image that you want to be transparent must have a fairly uniform color.
  • Press Delete.
  • Repeat until you have removed all of the areas of the image that you want to be transparent.
  • Choose the File -> Export menu.
  • Save the file as *.png

 

Poway Unified School District and the Power of Compound Interest

In the past few days, Fox News and other organizations have reported about bonds that Poway Unified School District, near San Diego, CA, has issued.  The bonds were issued almost a year ago, in September 2011; their issue was approved by the school board almost two years ago (in October 2010).

The reports have centered around the assertion, or at least implication, that tax payers have been totally ripped off by the bond offering.  Here is a link to the Fox News article as it appeared on August 10, 2012:

California School District Will Spend $1 Billion to Borrow $100 Million

These bonds were issued after approval of voters of Proposition C on February 5, 2008.  The proposition that appeared on voters’ ballots read:

PROPOSITION C: “To provide safe and modern school facilities, improve student learning, and qualify for approximately $20 million in State matching money, shall School Facilities Improvement District No. 2007-1 of the Poway Unified School District issue $179 million in bonds at legal interest rates to upgrade aging classrooms, libraries, science & computer labs; replace roofs, plumbing, heating, ventilation and electrical systems; improve fire alarms and school security; remove hazardous materials; fund needed facilities, subject to mandatory audits, independent citizens’ oversight and without an estimated increase in tax rates?”

The proposition passed with 63.9% of the voters approving.

The article makes some strange assertions and presents many facts that are either incorrect or misleading.  This post discusses some of these inaccuracies and then discusses the financial aspects of the bonds.

Inaccurate Information in the Fox News Report

The Fox News report makes the following untrue statements:

  1. “Its being called a loan that not even a subprime lender would make.”  Who calls it that?  If the details of the loan make it such a raw deal for tax payers and such a good deal for banks, then why would a subprime lender not be interested?  Likewise, if the deal is such a bad investment for a lender, wouldn’t it be a good deal for the tax payers?  From either angle, this assertion makes no sense.
  2. “…they can’t be paid off early or refinanced.”  Yes, it’s true that non-callable bonds cannot be paid off early.  But, they can certainly be refinanced at the end of the term.
  3. “And the Poway district has already borrowed millions of dollars at nosebleed 12.6% interest rates.”  When?  In the 1980’s?  Poway’s CPA certified financial statements do not show any evidence of loans at such rates.  See  http://www.powayusd.com/depts/bss/finance/ for CPA certified audit reports of Poway’s budget, debts, etc.  In addition, even the lowest rated municipal bonds do not pay interest this high.  Remember that the market, not the school district, sets the interest rate.  The market sets the interest rate based on the credit worthiness of the school district.  Moody’s rates Poway’s credit as Aa2.  This is an investment grade rating.  In addition, Poway has had a Aa2 or better rating for at least the last 15 years.  Municipal bonds with such high credit ratings have never yielded interest rates at levels even close to 12.6% in the recent past.
  4. The article states that the underwriters of the bond issue will get $1.4 million in fees which, according to the article is a “sweet deal”.   The implication is that the underwriters are ripping off the tax payer.  In truth, these fees are less than 1.5% of the value of the bond offering.  While this amount may sound high, there is much more to underwriting a bond offering than meets the eye.  1.5% is within the range of “reasonable and customary” fees for bond underwriting.  This is not some sort of unusual “sweet deal”.
  5. The article states that school administration and teacher compensation chew up 85% of the school’s budget.  This is not true.  According to the certified financial statements from the school district, the district spent $244,737,036 on teacher compensation and administration in the 2010-2011 school year.   The total school budget was $337,800,038.  So, the real number is 72.45%.

It should be pointed out that the district budget for 2012 is $10 million less than it was for 2009 and that spending per pupil is less than $10000 per student, despite the fact that the San Diego area has a high cost of living.  $10000 per student is within the average range for primary and secondary public education cost in the United States.  Compare this to the many districts in New York that spend more than $20000 per student.

There are other inaccuracies and misrepesentations of facts in the article.  The reader of this blog is encouraged to dig into the financial reports of the district.

The True Financial Implications of Poway Unified School District’s Bond Offering

Interest on the $105 million bonds will accrue, but not be paid, for 20 years.  After 20 years, interest will be paid on the $105 million principle as well as the interest that will have built up over the first 20 years.  These types of bonds are called convertible zero coupon bonds.  The intricate workings of them can be difficult to understand.  However, it is easy to make an excellent approximation.

Over 40 years, Poway Unified School District will pay $981 million to pay off these bonds.  This is equivalent to the interest rate on a common bond or loan of approximately 5.75%.

Looking at this another way:  If you were to deposit $105 million into a bank CD promising to pay you 5.75% interest each year for the next 40 years, you would have just over $981 million in 2052!  This is the power of compound interest.

How does a 5.75% interest rate compare to other municipal bonds?  Well, as stated above, Poway Unified School District has a Aa2 credit rating.  This is not an uncommon credit rating for municipalities in the United States.  A quick check of today’s yields on 40 year municipal bonds with Aa2 credit ratings shows yields are right around 5% today.  Rates last fall for 40 year bonds were approximately 0.75% higher.  As expected, Poway paid the market rate based on its credit rating.

Closing Thoughts

Poway’s Unified School District’s credit worthiness is not any different than hundreds of municipalities around the country.  It is investment grade; meaning that buying its bonds is a fairly low risk investment.  The bonds were issued by the district with the approval of taxpayers.  The interest rate is at the market rate.

The bonds will not result in a tax increase for at least 20 years.  After 20 years, the interest paid will be a small percentage of the district’s budget.  In addition, inflation over the next 20 years significantly decreases the impact of the interest payments that will have to be made.  It is not unreasonable to envision a situation where minor budget cuts would completely offset the interest payments.

Instead of focusing on a fairly low risk scenario that is common to local governments throughout the country, and instead of misreporting a vast majority of the facts about this bond issue, news organizations could better serve the public by reporting on real dangers to future taxpayers.  One example of such a real danger is the chronic under funding of government pension plans, including Poway Unified School District’s teacher retirement plan.  Without significant tax increases in the future, its probable that drastic cuts in government services will be necessary for governments to meet their pension obligations.

Web Filtering – Limited Access Wireless

Imagine a business where employees need secure, full,  access to the internet.  At the same time, imagine that this business needs to provide customers and vendors with access. But, it must keep its proprietary information out of the hands of these visitors. And it needs to limit their access to websites with questionable content.

A similar need might arise in a home environment with children. Perhaps parents need full internet access while children only need access to websites that the parent approves of.

This post is the first of a series of posts that describe a method of accomplishing this.

The network system diagram shown below implements this system on a small-scale, as needed in a small office or home:

Open filtered internet and secured full internet simultaneously

Internet connectivity is provided by an ISP such as AT&T DSL, Time Warner Cable, or through a wireless internet provider such as Clear. Connection to the internet is through a modem.

An Ethernet cable connects the modem to a wireless router. The router shown above is a Linksys WRT54GL Router. The WRT54GL is certainly not the most sophisticated wireless router on the market. But, it is one of the most widely used wireless routers, has been on the market for more than 6 years, and has a track record of solid, reliable, performance. This router is configured to provide unfiltered access to the internet. Any computer or other WiFi device connected to it has full internet access. Communications between this WRT54GL and the devices connected to it are encrypted so that interception is very difficult.

The second Linksys WRT54GL, the one on the right, is connected to the first wireless router through an Ethernet Cable. It is configured so that it can be accessed without an encryption key or password. This means that data transferred through it is not secure and can be easily intercepted. However, data security is usually not desired for public internet hotspots. (If desired, encryption could be added to limit access).

This second wireless router filters the internet so that undesired websites are not accessible.

This basic system can be easily expanded by adding more wireless routers. An expanded system can provide:

  • Enterprise level wireless coverage for medium size businesses
  • Hotspot coverage over a larger area, such as an apartment complex, shopping mall, or outdoor area
  • Simultaneous filtered and non-filtered internet access
  • Multiple levels of filtering for different types of users

I am happy to help your organization with a custom or turn-key wireless system design.  However, subsequent posts will explain in detail how to set up these key components of a multi-privilege level WiFi system.