This is David B. Black's Typepad Profile.
Join Typepad and start following David B. Black's activity
Join Now!
Already a member? Sign In
David B. Black
See this for details: https://www.linkedin.com/pub/david-black/a2/2b4/49b
Recent Activity
Image
I got an email update from the SSA It said: Your Social Security Statement is streamlined and easier to read than ever before. That is because we have redesigned the Statement to provide you the most useful information up front and at a glance. ... You can access your new Statement by signing into your account at socialsecurity.gov/reviewyourstatement. Now that you can access your Statement instantly and anytime online, we will not automatically send one by mail. We hope you find your new Statement useful and informative. i decided to check out this wonderful new statement that's available "instantly and... Continue reading
Posted Mar 24, 2024 at The Black Liszt
Image
Which is more scientific: Computer Science, which is all about numbers and data and exact algorithms, or cat litter, which is all about giving cats a way to poop and pee while reducing the annoyance of their human servants? Seems obvious, right? It’s obvious until you understand the practical disaster of creating software as detailed in these posts, https://www.blackliszt.com/2023/04/summary-software-quality-assurance.html https://www.blackliszt.com/2023/04/summary-computer-science.html and until you pay careful attention to the information typically found on a box of cat litter and observe how closely the litter does what it’s supposed to do. Result: the litter wins by a mile. Check out the information... Continue reading
Posted Dec 23, 2023 at The Black Liszt
This is a summary with links to my posts on the many ways that large organizations including government, big business, big tech and the rest diligently apply modern software procedures as taught in academia and required by professional management; they consistently produce disastrous results in software quality, cost, security and everything else that matters. There are of course issues that are common to all these large organizations, for example in cybersecurity. https://www.blackliszt.com/2015/06/systemic-issues-behind-the-cyber-security-disasters-at-opm-citi-anthem-etc.html Government Government software disasters are government-as-usual, so much so that disasters that wreck lives barely make the news. For example, over 10 million people world-wide enter a government-run... Continue reading
Posted Nov 17, 2023 at The Black Liszt
This is a summary with links to my posts on software experts. For medical experts see this: https://www.blackliszt.com/2023/08/summary-the-medical-industrial-complex.html The hype about experts is so extreme, it’s important to take a bit of time mocking it. After all, experts confirm that experts are super-smart and never make mistakes! https://www.blackliszt.com/2021/04/experts-are-super-smart.html Medical doctors considered blood-letting to be a standard part of medical practice until well into the 1800's. They continued to weaken and kill patients with this destructive "therapy," even as the evidence against it piled high. The vast majority of software experts strongly resemble medical doctors from those earlier times. The evidence... Continue reading
Posted Nov 8, 2023 at The Black Liszt
This is a summary with links to my posts on regulations. Regulations are supposed to make things better. Most of the time regulations make things worse by preventing innovation, increasing costs and failing to achieve the goals for which they were created. The negative impact of regulations, whether government or corporate, is greatly magnified in software and technology. The reason why our ever-growing number of regulations fail to protect us is simple. In the vast majority of cases, they spell out, often in great detail, how to accomplish the goal, instead of plainly and simply defining the goal and leaving... Continue reading
Posted Nov 7, 2023 at The Black Liszt
Someday, there will be tools that actively help you build occamal software. I imagine that the tools will resemble a modern IDE, but will have assists, wizards, visual representations and other methods of helping you see actual and potential commonalities. In addition, there will be common components, both part of the development environment and part of the execution environment, which will make building occamal software easy and natural. Until such tools and components exist, the work and imagination of the developer will have to fill the gap. Remembering that we live in the real world, our goal is not to... Continue reading
Posted Oct 5, 2023 at The Black Liszt
Modern software orthodoxy endorses the notion of collections of code that are separated by high walls. Object-oriented thinking codifies the supposed virtue of data hiding, and keeping all the code that works on a particular block of data (a class) behind a wall. Everyone seems to like the idea of components; people will talk in terms of assembling applications out of component building blocks (when has this ever happened except in seminar rooms?). Finally layers or tiers are supposed to introduce discipline to an application. The idea is you have the user interface (top) tier; then you have the application... Continue reading
Posted Sep 28, 2023 at The Black Liszt
Quite a few years ago I had the problem of creating a product that would help printers create estimates for potential printing jobs. We had one of the early micro-computers at our disposal, and the only programming tool that was available for it was a macro assembler. We had to get the product out in a ridiculously short period of time, and were very limited in the amount of memory we could use. We got together and realized that we had a fairly simple problem. The ultimate goal was to create printed estimates. Each estimate was calculated based on a... Continue reading
Posted Sep 28, 2023 at The Black Liszt
I don’t think I can improve on Chris Date’s formulation of the issue. His basic point is that most computer programs solve problems by taking an imperative approach, telling the computer how to accomplish a given task. He argues strongly in favor of a declarative approach, telling the computer what needs to be accomplished, and having a core set of application-independent functions that accomplish the goal in an optimal way. Date’s favorite domain is databases. His approach works for databases by writing a program that knows about schemas (tables and columns), data (rows) and SQL statements (Insert, Select, etc.). If... Continue reading
Posted Sep 28, 2023 at The Black Liszt
This is a deep subject, and challenges the way many programmers think. It is rooted in the most fundamental assumptions about the way computers work and the way we program them. In my experience, the ideas first strike people as being simple, obvious, and uninteresting. They seem irrelevant to anything important, and even seem like far-out crank talk. One way to approach this is to imagine that you stop a computer and examine its memory, byte by byte. At one level, it’s all data. By definition, what’s stored in a computer’s memory is data. But in practical terms, every single... Continue reading
Posted Sep 28, 2023 at The Black Liszt
A VC firm I worked for made a (sadly, in retrospect) passive, non-controlling investment in an emerging PLM company that was all over model-based, declarative development. They didn’t use silly, made-up names like “Occamal” to describe what they did, but they were fully self-conscious of the power of meta-data, and used it fully. The CTO chose Microsoft as the target technology stack, and ran into the fact that most programmers who specialize in this stack found the meta-data approach to be a foreign one. He overcame the problem by getting his programming done by a group of mathematically-oriented programmers in... Continue reading
Posted Sep 28, 2023 at The Black Liszt
Here are some basic thoughts to help understand Occam’s razor for software as it is applied in practice: Build only the software you need to build in order to be successful. With rare exceptions, shorter programs are better than longer programs. The goal of programming should be to produce the minimum lines of code in order to accomplish the job. Always keep the “parts count” of your program in mind, and make it your goal to keep the number of “unique parts” to a minimum, with each “thought” expressed exactly once, with everything that “uses” that thought generated from the... Continue reading
Posted Sep 28, 2023 at The Black Liszt
I am not aware of a set of terms I can use to make a technically clear definition of “Occam optimality” for software, so I’ll just re-use some existing ones. I suspect there’s an exact, more mathematical way to do this. I’m hoping someone will pull it off. My goal here is to express the most basic relevant concepts in rough terms. By “program” I mean the entire source text that is required to build the executable program. If the program uses a DBMS, the schema definition is part of the program. If there are “include” files or resource files,... Continue reading
Posted Sep 28, 2023 at The Black Liszt
Anyone who has programmed for a while knows that all code is not alike. There are important broad categories of code. I wish there were a generally agreed to categorization, but there doesn’t seem to be. Many years ago, there were these categories (from lesser to greater in terms of perceived expertise and prestige): Operator (your hands actually touched a physical computer!) – low status! Applications programmer (many variations here, from business analyst to debugging and maintenance). And even they are not all the same! While I was working in a COBOL shop, I discovered that there is an intense,... Continue reading
Posted Sep 28, 2023 at The Black Liszt
It’s natural that Occam-optimality is mostly focused on software. But it applies to everything from requirements to architecture and design, QA and testing, documentation, support and the endless round of changes software tends to have. Requirements occamality Are Occamal principles just being applied by the programmers who code up the application? If they are, that’s good, but there are steps in the software cycle before the programmers start their work, and if those steps are conducted without Occamality in mind, even if the programmers program a perfectly Occamal program, there will end up being many more lines of code than... Continue reading
Posted Sep 27, 2023 at The Black Liszt
People use and defend the use of all sorts of methods and tools for building software. The number and range of methods and tools is overwhelming. Is Occam optimality yet another entrant to be added to the already-too-long list? No. I hope that the notion of Occam optimality will be understood to be independent of all those methods and principles, and will provide a way to both improve each of them and, in some cases, select among them. If the notion of Occam-optimality is correct, it stands above and cuts across all methods of building software. It is a principle... Continue reading
Posted Sep 27, 2023 at The Black Liszt
Occamal concepts have naturally emerged in software efforts from nearly the beginning of software, and limited formulations of Occamal concepts have been promoted and valued in software. The purpose of this section is to identify those early expressions for what they are; they show the widespread, ever-springing nature of the desire to come to some principle that will yield optimal programs. Software tools One of the earliest pure-software efforts, the work to build the early language FORTRAN, was clearly a step in an Occamal direction. By creating a machine-independent language in the first place, programmers could concentrate on expressing their... Continue reading
Posted Sep 27, 2023 at The Black Liszt
The accepted practice of database schema design is a good application of Occamal principles. In fact, in a broad sense, Occam optimality takes the concepts accepted in schema design and applies them to programs and the software lifecycle as a whole. Someone at a bank would write a system for automating checking accounts. Naturally, the account information would include the name and address of the person who owns the account. Some else would write a system for automating savings accounts. Naturally, the account information would be essentially the same; it may be the same because someone knew all about the... Continue reading
Posted Sep 27, 2023 at The Black Liszt
There is a good deal of background and analysis to understand just how the concept of Occamality applies to the practical details of building programs. But before we get to that, perhaps it would be good to review the benefits we can expect. The core benefit of paring down a program to its bare minimum information content is pretty simple: To the extent that any semantic concept is repeated anywhere, in any form, in the specification of the program, it is a redundancy that, if discarded, would reduce the cost of implementing the concept, the cost of one or more... Continue reading
Posted Sep 27, 2023 at The Black Liszt
Software has a real problem. Let me explain. While a huge gulf separates the novices from the experts in every field, I like to think that the widespread simple knowledge in most fields is like writing as taught to elementary school students. Fifth graders use the same alphabet that I use; while my vocabulary is more extensive and my use of grammar more elaborate, in both cases what I do extends and builds upon what the kids do. Fifth graders don’t need to unlearn the “bad” letters when they get to high school. Books for children can be well-written, and... Continue reading
Posted Sep 27, 2023 at The Black Liszt
William of Occam (ca. 1285 to 1349) was an English logician and Franciscan friar. He is credited with formulating a principle that has been applied to various aspects of computer systems. In those areas of computing to which it has been applied, it reigns supreme – it supplies optimal solutions to the relevant problems. There are large areas of computing to which Occam’s razor has not been applied. Worse, it is not even one of the candidates under consideration. As a result, those aspects of computing are fractured, inefficient, unpredictable, and driven by fashion and politics. Everyone involved knows that... Continue reading
Posted Sep 27, 2023 at The Black Liszt
When a kind of software isn’t available, it makes sense to build it. If it is available to buy, everyone says you should buy it. But in a surprising number of cases, building makes sense even when you can buy software. Here's an example of a company that wasn't in the software development business decided to build what they needed, and grew an amazing business from there. There was a little bank in Georgia that somehow got the ambition to process credit cards for their customers when that was a new thing. There was no software available to buy, so... Continue reading
Posted Sep 18, 2023 at The Black Liszt
The story of the evolution of spreadsheets is well-known, though rarely studied. Spreadsheet evolution illustrates the patterns of software evolution. It shows the power of those patterns; if the leaders of Apple, Lotus and Visicalc had known and acted on the predictive power of those patterns, Office would not have been a Microsoft product, but one of theirs. As a reminder, here are the basic patterns of software evolution: Software is created for a new platform. Software grows more capable on the platform with increasing abstraction. The automation provided grows deeper. The breadth of automation grows wider, doing more things.... Continue reading
Posted Sep 18, 2023 at The Black Liszt
Image
This is a summary with links to my posts on computer data centers and networks. The two subjects are intimately related because the whole point of networks is to connect computers with each other. Like everything else in computing, fashions have a strong impact. A bit over a decade ago, the world of computing started yammering about “the cloud” and “virtualization.” These things were the hot subjects all the cool kids talked about. If you weren’t driving towards moving to the cloud, you were obsolete. The reality of course was much different. https://www.blackliszt.com/2011/12/the-name-game-of-moving-to-the-cloud.html The Cloud is just another virtue-signaling fashion... Continue reading
Posted Aug 31, 2023 at The Black Liszt
Image
Modern medicine can do wonderful things. I benefited from remission of an extremely rare form of cancer that was made possible by advances in the last couple of decades. At the same time, a great deal of what is done in medicine is controlled by the Medical-Industrial Complex, which causes untold waste and harm. These posts document the tip of that iceberg as my health journey has led me. I've long had a concern that what doctors do often doesn't follow the clear evidence. For example, here's a case of blatantly ignoring standard practice with something simple. https://www.blackliszt.com/2016/12/what-can-cats-teach-us-about-healthcare.html No big... Continue reading
Posted Aug 31, 2023 at The Black Liszt