Linux in Schools

School budgets can be so tight as to make investment in forward thinking technology solutions limited. Nice to see there are alternative oaths that may actually be better.


Apple Macbook Beyond

MacBooks introduced on 10/27/2016 are quite distinct. I read through the information page on Apple’s website describing the laptops. The page showed in substantive detail the various improvements.

More colors in the displays. A much better use of touch technology versus touch on Windows. Compelling hardware design and features cleverly presented through software. After taking it all in and comparing the overall package to laptops past and present, even those with newer processors, one thing became clear to me.

This is a true UNIX workstation, highly polished from bow to stern and everywhere in between. Without a doubt, this is the finest laptop of the last few years. Nothing is better.

Apple exceeded expectations. If everyone switched to these laptops, that would create an interesting opportunity. Yet, they are still outside the budgetary preferences of many. Nevertheless, the most awesome laptop unequaled in overall concept, execution, and quality.

Hardware Matters First

A Slashdot article gives a summary of a piece declaring software as having primacy over hardware. This is very, very wrong.

All it takes is the right set of circuits in a computer, mobile device, or data communication system to fail to bring an immediate end to software. Your operating system, Windows, Mac, Linux, iOS, Android cannot protect you from bad hardware. Hardware rules software.

When things go well (or just OK), it seems just the opposite. It may appear software is guiding the functions of a machine, but the control is an illusion. It works so far as the machine allows or is able. If the radios in a smartphone break, no more Bluetooth, WiFi, or home automation control. No more smart App.

Apple is setting the trend in hardware. Even the rumors of new Apple hardware triggers a response by others. Innovation begins with better hardware.

Silicon Valley, IT, and the App/web building communities have not yet reached a point of taking hardware for granted. A notable exception being the likes of Google, Amazon, and Microsoft running banks of servers. Outside of that is everyone else contending with recommended system requirements versus lowest common denominator operating environments for consumer apps and enterprise platforms alike.

Smartphones are still capable of exploding in 2016. Batteries discharge so quickly when radios are engaged. Desktop and mobile apps don’t run fast enough or hold their own when memory gets tight. Top name apps crash on Android or have too few features on iOS. Windows apps can’t escape security issues. Linux apps can’t get adequate driver support for all devices. The root of many of these issues and more is a lack of released hardware innovation. I say released because the innovation exists, but at a much greater premium.

The article is incorrect. Hardware matters first. Get it right, make it more accessible, efficient, and more reliable and you’d be surprised at the results in software that could be delivered. As an example, the durable nature of the MacOs environment fueling the creation of iOS apps. The hardware platform sets the foundation and potential for the proliferation of apps.

2017 IT Downsize

HP is cutting jobs and that has people thinking about the viability of the tech sector. An economic downturn may be on the horizon. Maybe. Now, looking at the layoffs that have occurred over the last few years, it appears they portend product saturation in some categories and lowered interest in other cases. Many other causes of layoffs and expected downturn apply.

The safest job in IT is the network admin. Difficult to outsource this position when the network is actually down. Who’s going to remote in?

The second safest job in IT is the help desk. Not all positions but at some point, mailing in broken equipment onlygoes so far. Some things require onsite assistance.

The rest is truly up in the air. Opportunities exist, but they seem increasingly specialized. A workable combination is SME skills in one or more business and operational disciplines along with the ability to integrate solutions well.

Anyway, the next year to 3 years will be carefully observed.

Some Meaning in Hewlett Packard Retail Cuts

HP Enterprise division is doing well, but the consumer business is in stress. HP announced they would cut thousands of jobs on top of thousands that already took place over the last few years. I did not realize HP had 50,000 employees. More cutting is probably on the horizon.

None of this means that HP will stop selling computers at retail, in the consumer space. Rather, it is increasingly difficult to offer a product that is decreasing in relevance to a growing number of people. Tastes and preferences have changed and the only company holding steady is Apple.

What we can learn from this is that computers have passed a threshold in terms of what people expect out of them. I find them convenient to type on but I recognize that an Apple iPad Pro with an attached keyboard may work just as well plus you can write on it. Laptops and desktops simple could not compete in the area of convenience. These other devices are more convenient. Continue reading

Apple MacBook Innovation

Not too long ago you couldn’t put much stock in rumors about Apple products. Times are little different. They’ve kept up on the processors and circuitry for MacBook Air and 13″ Pro lines at a reasonable clip. New rumors are out that seem very plausible regarding changes to the design of MacBooks. If this is the case, it could represent a real sea-change in what people expect in computer design.

Rumors concern touch-screen based function keys. E-ink technology for keyboard keys. That’s all most people know. If the past is any indication, this is just the tip of the iceberg.

I will admit that I am not too intrigued with these types of changes, but I will also admit to have been quietly impressed with some of the designs that have emerged from Apple. The refresh of the MacBook line with the Core M processors to produce a super thin laptop was very interesting. I now see the benefits of the Retina display. I am now hoping that they’ll not only have a superb design and performance update for the MacBook Pro refresh.

Whatever the case may be, the announcement of new MacBooks will be a strategic setup for the 10th Anniversary of the iPhone in 2017. MacBooks are the primary fuel for iOS App creation across iPhone, iPad, and TV and WatchOS. It will be interesting to see what comes.

Apple MacBook Refresh Could Bring E-Ink Enabled Keyboard

Premature Optimization is NOT Evil

One of the biggest lies in the computer programming arena is Donald Knuth’s quote about “premature optimization is the root of all evil“. He was not wrong if you read his full quote which spans more than a sentence. The problem is, several generations of software developers have been brought up on the abbreviated version of the quote out of context. Do not believe it.

A major factor in deciding not to optimize software programs was Moore’s Law. That law doesn’t actually hold up when it comes to the speed of a computer. When people thought the computer was just going to keep getting faster (like doubling/tripling of speeds), they decided buying a new, bigger, faster computer was cheaper than spending the time to optimize the program. I personally agree with the economic argument in situations where it applies. Still, you can never quite count on today’s data input/output profile remaining constant.

The point of view that you can just throw more hardware at the problem broke down somewhere around 2001 to 2008 depending on how you look at it. Fact is, computers have barely crossed the 5GHz barrier and even if when they do that is definitely nowhere close to the 1THz barrier and beyond. At least in the very near future. The main approach we have today to increasing performance with new computers is simply adding more of them and then running code across multiple cores and multiple computers at the same time.

Cloud computing is the ultimate expression of this. That also partly explains Amazon’s fortunes in cloud (and very closely followed by Microsoft) as many enterprises cannot get similar price/per performance in their own data centers. Scaling a software program through the cloud is an inexpensive way to get performance until the compute hours cross a certain threshold.

What’s left to do?

Write optimized code from the get go. Or, it may not even be code, but something such as database structures and data that code and other processes will rely upon. Simple things like the structure of your file folders. The trade-offs between complex and simple file formats are not clear-cut. Sometimes a complicated file format can lead to a faster program versus a simple file format. One reason sometimes deals with the amount of information you need to retain while processing data. How the data is shaped and where it lives and must go has the biggest impact on performance. Code must be organized accordingly.

Sometimes you are in an enterprise with longer equipment upgrade cycles resulting in tighter hardware constraints by the standards of today’s software frameworks and libraries. Software still has to run fast and it can if you exclude the possibility of scaling it later on newer hardware outside the timetable of your near-term deadlines. Perhaps you are deploying to mobile and need the best performance you can get in a tightly constrained space. While mobile processors are generally said to be several times faster than supercomputers of the 1970s and 1980s, they are still not as fast as today’s desktop/laptop processors. You still need good performance in what is, by today’s standards, a constrained processing envelope. Even laptop battery life can be influenced by efficient software code. As it turns out, just like security, you cannot easily retrofit solid code execution performance after the fact. You have to start with performance as a goal or have the skills to write high performance software.

I found several good starting points for this:

Why are programmers so anti-optimization? Quora answer by Kurt Guntheroth, author of Optimized C++

Writing High-Performance .NET Code

Systems Performance Enterprise and Cloud