This is the second in a series of posts about using APL to crunch numbers. It starts with a database of sorts in APL.

I want to use present-value equations to assess various stocks. To do so I need specific stocks to investigate. I built a database of the top 20 stocks from the Fortune 500. I did have to do this by hand.

finance.yahoo.com is a good source for information about publicly traded stocks, bonds, and mutual funds. I got a list of the Fortune 500 and went to Yahoo. Here is what I compiled:

 Symbol Name                        Price    Div $    EPS  Total Rev   
 WMT    Walmart                    142.09     2.28   4.27 611289       
 AMZN   Amazon                      95.82     0     ¯0.28 513983       
 AAPL   Apple                      149.4      0.92   5.9  395328       
 CVS    CVS Health                  86.04     2.42   3.14 322467       
 UNH    UnitedHealth Group         488.17     6.6   21.17 322132       
 XOM    Exxon Mobil                110.74     3.64  13.26 398675       
 BRK-B  Berkshire Hathaway         300.69     0     ¯0.97 345636       
 GOOG   Alphabet                    91.07     0      4.54 282836       
 MCK    McKesson                   360.33     2.16  21.79 263966       
 ABC    AmerisourceBergen          159.5      1.94   8.25 238587       
 COST   Costco Wholesale           493.14     3.6   13.23 226954       
 CI     Cigna                      295.65     4.92  21.29 180642       
 T      AT&T                        19.25     1.11  ¯1.1  120741       
 MSFT   Microsoft                  254.77     2.72   9    198270       
 CAH    Cardinal Health             77.7      1.98  ¯4.56 181364       
 CVX    Chevron                    161.93     6.04  18.28 235717       
 HD     Home Depot                 299.31     8.36  16.68 157403       
 WBA    Walgreens Boots Alliance    36.21     1.92  ¯3.43 132703       
 MPC    Marathon Petroleum         125.52     3     27.98 177453       
 ELV    Elevance Health            486.12     5.92  24.81 156595       
 KR     Kroger                      43.91     1.04   3.18 137888       
 F      Ford Motor                  12.07     0.6   ¯0.49 158057       
 VZ     Verizon Communications      38.53     2.61   5.06 136835       
 JPM    JPMorgan Chase             139.67     4     12.1  128641       
 GM     General Motors              39.25     0.36   6.09 156735

All of this data and a lot more is available issue by issue at Yahoo. I
chose this data to help determine which issues are worth further
investigation. The statistic I was most interested in was the dividend
yield, column four divided by column three.

Financial theory proposes that a stock’s price is dividend ÷ (yield –
growth). Yield is expected to be your return on the investment, and
growth is the rate at which the dividend is expected to grow.

So before I could work on estimating growth and/or yield, I needed to address Alphabet, which has never paid a dividend but whose stock is quite valuable.

When I learned financial theory, I decided that companies that paid no dividends had no value; just do the arithmetic with any yield or growth assumption. Today’s post evaluates the zero-dividend strategy.

I needed a baseline to compare to Alphabet’s performance. I choose
Vanguard high-yield dividend fund (VYM). It is a mutual fund generally made up of dividend-paying stocks—high dividend if you believe the title. Vanguard is well known for mutual funds that provide similar returns to the market as a whole.

I went to Yahoo and downloaded the dividends paid by VYM over the 10 years ended 12/31/2022.

      vym_div←date∆US import∆file∆withDates '/home/dalyw/Downloads/VYM.csv'
41 2
 Date            Dividends 
 2013 3 22           0.361 
 2013 6 24           0.419 
 2013 9 23           0.437 
 2013 12 20          0.532 
 2014 3 24           0.401 
 2014 6 23           0.476 
 2014 9 22           0.469 
 2014 12 18          0.562 
 2015 3 23           0.462 
 2015 6 26           0.56  
 2015 9 23           0.528 
 2015 12 21          0.599 
 2016 3 15           0.478 
 2016 6 21           0.578

I also looked up the opening price of VYM on 1/1/2013—$45.89—and 1/1/2023—$108.21. I could now produce a date flow.

The workspace ‘5 DALY/fin’ distributed with gnu-apl. It has present and future value functions for date flows. A date flow is an ordered
collection of date–amount pairs. Each date is in Lillian format, that
is, the number of days from October 15, 1582, the first day of the
Gregorian calendar.

I took this data and assembled a date flow that assumed the purchase of VYM on 1/1/2012 and its sale on 12/31/2022:

      fin∆df∆show vym
2013/01/01         (45.89)
2013/03/22           0.36 
2013/06/24           0.42 
2013/09/23           0.44 
2013/12/20           0.53 
2014/03/24           0.40 
2014/06/23           0.48 
2014/09/22           0.47 
2014/12/18           0.56 
2015/03/23           0.46 
2015/06/26           0.56 
2015/09/23           0.53 
2015/12/21           0.60 
2016/03/15           0.48 
2016/06/21           0.58 
2016/09/13           0.48 
2016/12/22           0.67 
2017/03/22           0.56 
2017/06/23           0.60 
2017/09/20           0.60 
2017/12/21           0.64 
2018/03/26           0.61 
2018/06/22           0.63 
2018/09/26           0.67 
2018/12/24           0.74 
2019/03/25           0.65 
2019/06/17           0.62 
2019/09/24           0.79 
2019/12/23           0.78 
2020/03/10           0.55 
2020/06/22           0.84 
2020/09/21           0.70 
2020/12/21           0.81 
2021/03/22           0.66 
2021/06/21           0.75 
2021/09/20           0.75 
2021/12/20           0.94 
2022/03/21           0.66 
2022/06/21           0.85 
2022/09/19           0.77 
2022/12/19           0.97 
2023/01/01         108.21

I computed an internal rate of return using fin∆df∆irr as 12.04%.

I went back to Yahoo for the opening price of Alphabet stock on 1/1/2013 and on 1/1/2023 and calculated the growth of the stock’s value.

      goog←((date∆lillian 2012 1 1) ¯16.26 ) fin∆df∆add (date∆lillian 2023 1 1) 89.86
      fin∆df∆irr goog .1

Here I set up a date flow that assumes the purchase of stock on 1/1/2013 and its sale on 1/1/2023 and then calculate an annual return of 15.527%.

This certainly challenges my working hypothesis that a stock that pays no dividends is worthless. Had I bought Alphabet 10 years ago, I would have realized gains greater than the market, the holy grail of

I then went to

Public companies are required to register with the SEC and file detailed reports on their operations. The annual report is 10_K, which for GOOG I opened.

Page 1 had the first yellow flag. There are two classes of stock, A and
C, registered with the SEC. I wondered about B. Page 2 is the table of
contents with hyper links to various sections. I went to the financial
statements and read the notes. Class A, 6015 shares, allow 1 vote per
share. Class B, 893 shares, allow 10 votes per share and are not
publicly traded. Class C, 6334 shares, have no voting rights. I read the equity footnote twice. It addresses the rights of the various shares and makes the case that they share equally on liquidation of the company. What happens should Alphabet declare a dividend was not clear.

In summary, the company is absolutely controlled by the holders of the class B shares who apparently are not interested in receiving dividends.

I looked at the rest of the financial statements and made my own
estimate of free cash flow. That is, the cash generated from operations that could be used to pay dividends or repurchase stock.

               In millions
 Cash from operations        91495 
 Interest                        0 
 Stock based awards          ¯9300 
 Adj cash from operations    82195 
 Capital Expenditures       ¯31485 
 Debt Service                ¯1196 
 Dividends                       0 
 Stock purchases            ¯59296 
 Free Cash                   ¯9782 

Not an encouraging picture. Alphabet is using its accumulated cash to buy back its stock. That suggests that the company can find no better investment.

High-growth companies do not pay dividends because they need every dollar of cash to support their growth. Clearly, Alphabet is no longer in this category, and it’s high time it shared the lolly. The promise of that growth suggests that the company can get higher returns from its operations than the stockholders can by reinvesting in other stocks.

I don’t think I’m changing my approach to zero dollar dividends.

Posted in Uncategorized | Leave a comment

Crunching Numbers in APL

Well, it’s done. That is, I’ve published the book I’ve been working on for the past three years. I never thought it would take three years.

You can buy it for your Kindle. Search for its title Crunching Numbers in APL.

Too much of this book is how to code APL and not enough of how to use APL. It is an unavoidable sojourn if you want to use APL to crunch numbers. So I’m going to write a series of posts on how to use APL.

We’ll start with inflation.

I suffer from my Wharton education, and one of the sources of that suffering is inflation. I attended Wharton during the seventies, when inflation got out of control. Wharton historically stresses monetary economic policies over Keynesian, and Milton Friedman was banging the drum for better control of the money supply. Washington has never really wanted to control the money supply, although during the eighties it had to.

I downloaded the Federal Reserve data on the money supply. (https://www.federalreserve.gov/releases/h6/current/default.htm) and created this graph:



You’ll note the sharp increase in the money supply in January through June of 2020. This was the period when Congress enacted blowout bills that it believed would help people in economic distress because of the pandemic.

Money supply keeps growing to November of 2021, when the Federal Reserve executed policies to reduce the rate of inflation. It’s now February of 2023, and the rate of inflation has moderated but is still too high.

The curve shows a small decline as the Fed acted.

How did I construct this graph?

I downloaded the file from federalreserve.gov and imported it into APL. This gave me a table 774 lines by 30 columns. Line one was a description of each column. I picked column one, the year and month; column two, seasonally adjusted M1; and column three, seasonally adjusted M2. I now had a table 769 lines by 3 columns.

I made several graphs using ⎕plot. My first try was

I got:

I was alarmed. I had hoped I didn’t have to figure out the differences between M1 and M2, but when I graphed M2, I got what I expected:

I consulted the oracle internet. M1 is generally currency in circulation plus bank demand deposits (read checking accounts). M2 is M1 plus net time deposits (read savings accounts). I found that the Federal Reserve had changed the banking rules in April of 2020. Just showing the underlying data shows how banks responded:

      M1_M2[720+16 17 18;]  
2020-03  4261.9 15988.6  
2020-04  4779.8 17002.5  
2020-05 16232.9 17835.2

I dressed the M2 graph up for company with gnuplot.


Posted in Uncategorized | Leave a comment

Egad, It’s User Hostile

I started to write this post as “User Friendly,” but after reading all sorts of blogs on that subject, I changed it.

Each of these blogs proposed a list of four or five features that describe user-friendly software. Here is my own summary:

  1. Simple
  2. Clean
  3. Intuitive
  4. Reliable

There were many words surrounding these four. In some blogs there appeared to be some meaning associated with those words. In many there was none. All seemed redundant. [Sort of like describing sympathetic as having sympathy—KD]

Simple is perhaps the most difficult. How often have you confronted a simple idea that you wanted to internalize and discovered as you wrestled with it exactly how complicated is was?

Clean follows simple. As I read, I kept finding clean described as simple. Part of me wants to make clean a complement to simple or perhaps combine them. A clean and simple interface. I can’t imagine either clean or simple without the other.

Reliable is a new concept. Does the software always do what it is supposed to do? Is it buggy?

Intuitive is last. Every blogger believed that a user-friendly interface will allow the user to know just by looking at the screen what to do next.

Merriam-Webster defines intuition as (1) “the power or faculty of attaining to direct knowledge or cognition without evident rational thought and inference,” (2) “immediate apprehension1 or cognition” (https://www.merriam-webster.com/dictionary/intuition) I’m the wrong person for this idea. I won’t say that I don’t ever get flashes of insight; I do. I also know that those flashes come only after a struggle of rational thought and inference. Athene has not sprung full-grown and fully armed from my brow.

1 Apprehension here is used in MW’s third sense: perception, comprehension. It has nothing to do with fear.—KD

As I struggled with the concept of user friendliness, I thought I ought to look again at Excel, in some minds the epitome of user friendliness. [What a crock. I could tell stories…—KD] So I rebooted my machine from Debian to Windows (always painful) and started Excel. Once I had a spreadsheet loaded and was contemplating how to test friendliness, it struck me. One of my bloggers had offered up MS Office as an example of user hostility. His issue was the ribbons that Microsoft implemented several years ago and the struggle their user base had adapting.

How often is change used to simulate innovation? How often has Microsoft labeled change as innovation? [Microsoft is a piker compared with the textbook publishers; I could name a few textbooks whose six editions all had the same material. Way to kill the aftermarket, guys.—KD] I went back to Debian.

I remember switching to Quattro Pro from Lotus 1-2-3. At first it was dollars and cents. Quattro Pro was less than one fifth the cost of Lotus 1-2-3. I remembered the joy I felt using Quattro Pro. It had more features, but was it user friendly?

I found an old backup of Quattro Pro [The triumph of the hoarder—KD] and copied it onto my hard drive. This, it turned out, was all the installation I needed. Debian provides DOSBox, a DOS emulator. I used it to start Quattro Pro. I tried building a simple spreadsheet to remind myself how it worked.

Things were turned around. If I wanted to copy, I first selected copy from the menu; typed in the upper left and lower right corners of the source block and typed <ENTER>. I then typed in the upper left corner of the destination and <ENTER> again. I’m used to highlighting the source block with my mouse, right-clicking for a menu, and selecting copy.

While the mouse and the GUI interface changed how software worked, the keyboard procedure was easy to understand and to use. The latest version of Excel has many enhancements, some of which speed up construction of a spreadsheet. It also has a lot more functions on its ribbons—if only I could remember which ribbon and what the pictures on the ribbon actually mean.

How long did it take you to understand what a pivot table is? Can you find it on a ribbon on the first try?

I left out one idea that my research uncovered: the principle of least astonishment. “The behavior [of the software] should not astonish or surprise users.” (https://en.wikipedia.org/wiki/Principle_of_least_astonishment)

In my use of APL I’ve been struck over and over again how easy it is to type in a line of code and have it do exactly what I thought it would. APL uses an old-fashioned teletype-like interface to do powerful things. Because of the simplicity and cleanliness of its design, I can do those powerful things.

Posted in Uncategorized | Leave a comment

Making Music

I am (used to be) a member of the Newtown Recorder Consort. I’ve played with the consort since 1995. In the beginning I was on soprano. At some point I switched to the alto, which I’ve played since Christmas 1959. A couple of years ago we lost our bass player and I switched again.

We stopped practicing in 2020 with the pandemic because wind instruments are especially good at virus transmission. The recorder, like any whistle, is a device to accelerate the performer’s breath to get a sound. With four of us, it meant the air was full of whatever viruses we had. Alas, we haven’t resumed.

The loss has been driving me nuts. For over twenty years and on most Tuesday nights we played. We didn’t limit ourselves to just baroque and classical music. We played folk tunes. We played jazz. I don’t remember playing Beethoven. I do remember Bach, Vivaldi, and Hayden.

We’re silent now, and there seems to be little impetus to start up again.

So I’ve been accompanying myself. I found a program, Audacity. I count out a preceding measure and then start playing. Audacity records it all. It will then play back in my headphones what I’ve recorded while it records what I’m playing now. I have a five-part arrangement of “Simple Gifts.” I recorded myself playing all five parts, and Audacity mixes them all together.

I started on lullabies for my grandson, aged seven months. It made up for the fact that I can’t remember lyrics. I can get the first two lines of the first verse out but then—nothing. This is not old age. It’s years of playing instrumental music. I’ve played “All Through the Night” with my sister since we were kids. I can get through “Sleep, My Child, l Let Peace Attend Thee” and then nothing. Recorder music rarely has the words. So now I play it in four parts through Audacity.

Barbershoppers have a goal called the fifth voice. It occurs when the harmony is so tight the the harmonics of the various voices combine to produce that fifth voice.

It works with recorders too, although I’ve heard it as a third voice playing duets. It doesn’t work with Audacity. I have the feeling that it’s a live performance thing.

You can hear the Daly Recorder Consort at https://dalywebandedit.com/music/AllThroughTheNight.mp3

No reviews, please.

Posted in Uncategorized | Leave a comment

APL Library

I’ve been staring at a list of workspaces that make up APL Library (https://sourceforge.net/projects/apl-library) for more than a week trying to get inspired. Why did I start this thing in the first place?

I remember discovering GNU APL. I had purchased a copy of STSC APL thirty years ago. I still have it, and with a Linux DOS emulator I can still run it. I spent $500 for a license. At odd moments I’d go to IBM’s website to see what a license costs these days and then move on to something else.

Suddenly, all I had to do was download GNU APL and compile it. I was sold right there.

I found a printout of an editor I wrote in 1983. I tediously typed it into a new GNU APL workspace. I haven’t used it since I got it working. I like Emacs better.

I started work on APL Library almost immediately. My first pass was porting utilities that I had written in the STSC days. I discovered that porting was not exactly what I had to do. Retyping is a better description. As I learned APL2, which has features not present in the old APL, I discovered that many of these utilities weren’t relevant.

∆TAB is a good example. I copied this function out of APL: A Design Handbook for Commercial Systems, by Adrian Smith, Wiley, 1982. Its left argument is the delimiter used in its right argument. It returns a character array in which each item in the right argument is a line in the array.

Now I just enter the list ‘First item’ ‘Second item’ ‘Third item.’ Aren’t nested arrays a wonderful thing? (In APL each character string is an array. In APL2 one can combine several character strings into a nested array.)

I soon discovered that APL2 addressed many of the things I’d struggled with so much I abandoned the whole project.

At the same time there were many things I needed and an equal number of things that were just neat. utf8∆saveVar is a good example. This function writes a new workspace to disk with the code to generate one variable in the current workspace.

I spend way too much time keeping books. At the end of each quarter I do a bank reconciliation. It’s a tedious task, and with luck, having proved my work for that quarter, I’ll never have to look at that work paper again.

I am not a lucky guy, so I save the reconciliation with utf8∆saveVar.

APL Library is a combination of the flashes of insight like utf8∆saveVar and the tedious struggle to set up plebeian things like my date workspace. All in all it serves me well.

Posted in Uncategorized | Leave a comment


I’ve been keeping this quotation in my Ideas folder for quite some time:

1. What is the manager’s job?

It is to direct the resources and the efforts of the business toward opportunities for economically significant results. This sounds trite—and it is. But every analysis of actual allocation of resources and efforts in business that I have ever seen or made showed clearly that the bulk of time, work, attention, and money first goes to problems rather than to opportunities, and, secondly, to areas where even extraordinarily successful performance will have minimal impact on results.

2. What is the major problem?

It is fundamentally the confusion between effectiveness and efficiency that stands between doing the right things and doing things right. There is surely nothing quite so useless as doing with great efficiency what should not be done at all. Yet our tools especially our accounting concepts and detail focus on efficiency. What we need is (1) a way to identify the areas of effectiveness (of possible significant results), and (2) a method for concentrating on them. —Peter S. Drucker, https://hbswk.hbs.edu/archive/peter-drucker-on-managerial-courage

Until today I’d see the file; sometimes I’d even open it and reread it. I’d shake my head and go on to something else.

Why I never read Drucker when I was at Wharton is a mystery. (Probably for the same reason the entire Western world ignored Deming.—KD) It’s not just his well-reasoned and well-written ideas. Drucker continues to be clear and concise when he lays out the limit of his ideas. In this piece on managerial courage he says, “I know of no [third job of management].”

I was attracted to this piece for an entirely different reason. “You can’t manage what you can’t measure” is attributed to Drucker, if only because of his insistence on setting measurable goals. Accordingly, I was always troubled by his assertion that accountants don’t supply information that management needs. I finally found that perspective in these words.

We’ve all cursed the bean counters when we’re required to choose efficiency at the expense of all other goals. We blame the bean counters because they provide the data to support the emphasis on efficiency. We should blame those who choose the easy decision.

And while we blame the bean counters, we ignore much of the information they actually provide. A complete set of financial statements includes four reports: the balance sheet, the income statement, the cash flow statement, and the statement of changes in equity. That’s more than just a list of expenses.

Is the opportunity under consideration a new product? That opportunity will increase revenues and expenses. It may require investments in new production facilities and markets. The evaluation will require projecting revenues, expenses, and investments. The current revenue, expenses, and investments are set forth in those financial statements.

Is the opportunity a new market? Like a new product, it will require investments, and we must project those new revenues and expenses.

Is the opportunity new technology? Like a new product or new market, it will require investments and a projection of revenue and expense.

The key phrase from Drucker is “opportunities for economically significant results.” This is not economics; it’s management, and economic significance is measured by accountants, as are the investments we must make to pursue the opportunity.

Don’t let the pursuit of efficiency cost you good opportunities to make money.

Posted in Uncategorized | Leave a comment

Web Site Logs

I’ve been working on a new APL workspace to read the access logs for this site. Most web hosts make such a log available. Network Solutions, our host, also provides web pages with fancy graphs displaying the number kind of web pages requested by users.

These logs can be a valuable tool in promoting your web site. Once you decipher the file you can determine how many requests you’ve gotten for each post to your blog; you can determine how many users you have; and you may determine what posts were worth your time and effort.

The new workspace is called Web Logs and you can download it with APL-Library at https://sourceforge.net/projects/apl-library.

It took me a while to get to something useful. I kept finding requests that I didn’t think should be counted to get to basic numbers like total numbers of hits. If you look at the top of this page you’ll see the Daly Web and Edit logo, an image. Each time your browser requests a page, it can potentially request that JPEG file. That second request is in the access file along with the first for the HTML. We only want to count one.

I kept writing predicates, which what the computer scientist call a function that returns true or false. The truth that I was seeking feels more like an opinion than a matter of fact. Computer programs deal only in facts.

On one day last week we posted ‘Clerk of Bucks Quarterly Meeting’. I wrote the post and returned to edit it several times. Then I turned it over to Kate who edited the posts again saving it several times. I could guess that many of the requests logged that day were actually Kate and I preparing the post for publication. How to exclude? I noticed that all the requests came from the same web address. A little looking and I concluded that the address must be our router so I excluded them.

On the same day, about the same time there were requests I just didn’t understand. All from the same web address all calling a program ‘/wordpress1/wp-cron.php’. I did some research on WordPress. Apparently WordPress needs to do housekeeping on occasion. WordPress triggers this housekeeping when actual requests are made. I excluded these based on the web address.

I came up with four rules.

1. An actual web page was returned. Errors occur and there is a code for success.
2. The request is not a search engine spider. This predicate is beyond the scope of the blog. Its probably not right either, but I haven’t caught it in any errors
3. Exclude style sheets and graphics
4. Exclude requests from the Daly’s and those created by WordPress itself.

I get a result which I like to believe. I still think the whole thing is a matter of opinion while all I have is facts. Some of those facts are past opaque. One datum delivered with each entry is the agent. As best that I can tell this is the name of the program that actually made the request. Its how I identify the search engine requests. Looking at the actual data, especially the entries that survive my four tests, there is much more to this field if only obfuscation.

If I look at the fancy colored graphs the Network Solutions provides, I get comparable results to my own algorithms. It settling for that.

Posted in Uncategorized | Leave a comment

Clerk of Bucks Quarterly Meeting

I agreed to be the clerk of Bucks Quarterly Meeting, an unpaid position. For those of you who come to this site with little or no knowledge of Quakers, this posting explains what clerking a quarterly meeting means.

I’d like to say that Quakers organize themselves into yearly (meets one per year), quarterly (meets four times a year), and monthly (meets monthly for business) meetings. But being Quakers, they are not tied to any dogma, and beliefs vary widely.

The local congregation is usually called a monthly meeting because it meets monthly to address business issues. Generally the local congregation meets weekly on First Day (Sunday in the real world) for worship. Many hold additional meetings for worship. Mine meets Fourth Day (Wednesday) evening for worship.

Some local congregations call themselves churches. These are generally programmed Quakers, those who have clergy. We unprogrammed Quakers have no clergy.

Yearly meetings meet once a year for worship, business, and socializing. The geographic area of a yearly meeting varies, does not follow political boundaries, and in some instances follows practice more than geography.

The quarterly meeting is a collection of local congregations that meet four times a year for worship, business, and socializing. Several quarterly meetings make up a yearly meeting.

Not all yearly meetings have quarters. Some consist of local congregations; others have associations rather than quarters. Some yearly meetings have monthly meetings unaffiliated with any quarter.

All meetings consider their members to be the members of each local congregation.

All this leads to Bucks Quarterly Meeting, Middletown Monthly Meeting, and Philadelphia Yearly Meeting. Philadelphia Yearly Meeting has members in eastern Pennsylvania, southern New Jersey, Delaware, and Maryland’s Eastern Shore. All of the local congregations call themselves a monthly meeting and are members one of thirteen quarterly meetings.

What then is a clerk? Quaker practice includes two important ideas. Independence means there is no one giving orders. While any organization requires officers, Quaker officers may bear witness to the decisions taken but do not make decisions on their own. In strict practice, the clerk doesn’t participate in the discussion or contribute to the sense of the meeting.

Listening for holy spirit is translated into not voting. Decisions are made by the sense of the meeting, that is, we look for general agreement among all Friends before deciding a course of action (or inaction).

The clerk’s job is to produce the agenda of a business meeting, lead the meeting, and then to voice the sense of the meeting on matters under discussion. Usually, this means repeated questioning of what that sense is. Often the sense of the meeting is that we’re not ready to decide yet.

CPAs are attracted to the accounting profession in part to voice their professional opinion—definitely not to continually seek, much less defer to, the opinions of others.

I have my work cut out for me.

Posted in Uncategorized | Leave a comment

Why APL?

Why APL? Because it’s faster, easier to use, and less error-prone than Excel.

Excel is learned by use, by problem solving. There is a manual behind the help entry in the menu. Sometimes it’s helpful. There is a completion engine that makes suggestions from what you’ve typed. And, oh yes, there is the world wide web. Many days of problem solving can be just trying things until something works.

There are, however, many days when Excel just doesn’t. If I have a complicated model to build, I quickly get a spreadsheet of too many pages, too convoluted to be useful. I like to think of this as the one-to-many problem.

The one-to-many problem occurs with two lists when for any entry in list 1 there are many related entries in list 2. An accountant’s trial balance is a good example. A trial balance starts as a list of the accounts together with their balances. The trial part is adding up all those balances to demonstrate that the debits do equal the credits (the accountant’s holy grail; don’t ask). It is followed by adjustments. That is, the accountant concludes that some of these balances have to be adjusted for some reason and uses the trial balance to recalculate. There may be more than one adjustment to some of these accounts.

In Excel this means inserting lines and entering new formula. It is tedious and error prone.

Enter APL. APL is an interpreted computer language. That means you can type in a calculation and APL will execute it and display the result. It is an array-processing language. That means you can perform calculations on an entire array.

Let’s go back to that trial balance. This list of accounts becomes any array of four columns, with a line for each account. The columns are account number, account title, debit, and credit, much like those I put on one page of my Excel spreadsheet. The proof that the debits equal the credits is one line of code.

For years I avoided APL, as the annual license fees were prohibitive. Recently, GNU has released an interpreter that is free and open software. I use it rather than Excel. If you’d like to try it out, download it from https://gnu.org/software/apl. I have an example trial balance at https://dalywebandedit.com/workspaces/trial_balance.apl

Instructions for installing and using GNU APL are included in the archive you download. Set up a directory in your home directory, name it work spaces, and place trial_balance.apl in it.

The point of using APL rather than Excel is that APL will do a lot of work fast without proliferating your work spaces. Tools tend to fall along a curve: at one end they are easy to learn but hard to use; at the other end they’re easy to use but hard to learn. Excel and Google Docs are easy to learn but a pain to use. APL and Word are a lot harder to learn but much, much, much easier to use. You’ll be surprised at how fast that steep learning curve pays off.

Posted in Uncategorized | Leave a comment

Ground Hog Day 2019

We’re half way through winter. The temperature outside is 24. The weather men are forecasting mid 50s by the middle of next week.

In keeping with our family traditions, I am preparing my new year’s resolutions.

At the top of my list is doing something about FACEBOOK, APPLE and GOOGLE. Today I learned that Apple had shutoff all iPhone developer applications over a privacy breach. Both Facebook and Google were effected. The emergency is over and the coders at all three went back to useful work.

The first question I asked my self was: Why should Apple be able to control some program I use on equipment I own?

My second was: Can Google do this too? (My phone uses the Android operating system.)

Lets not labor these points. Its not an issue of how to control the behavior of these behemoths. The issue is: Why do we let them in the first place? There are other alternatives on the web, we should use them.

So I’m undertaking to find these alternatives and will start with a web site.

Daly Web and Edit has two: www.dalywebandedit.com and DWE-Accounting.com. Both sites try to provide information about our businesses and what you can expect from us. They were not difficult to set up nor maintain. Their cost is modest.

That’s the first issue. Are you willing to spend a small amount of money to free yourself from the tyranny of Apple, Google and Facebook? There are any number of hosting companies and their fees are modest. Many of them have easily learned systems to create and manage your website.

For the non-technical user, this blog is a good alternative. Our host for DalyWebAndEdit.com offers WordPress. Orignally blogging software, wordpress also can act as a content management system. http://wordpress.org has some sample websites to inspire you.

A slightly more difficult solution is the ftp site. On these sites one writes the web pages on one’s computer and transfers them to the hosting site. Many hosts have a web based file management system to compliment using an ftp client on your own computer.

I code the html directly, it isn’t difficult. There are plenty of html editors, including microsoft word, that provide a wysiwyg interface. Your browser will show you the pages on your local disk drive as well as your website.

You could create a page today. When I finally got the pictures off my phone and onto my computer I created this: http://www.dwe-accounting.com/illustrations.html

Posted in Uncategorized | Comments Off on Ground Hog Day 2019