talking about computers and design
by Ralph Grabowski

May 25, 2020

Templates are a very powerful feature in C++, because they allow you to write generic programs that accept a data type as an extra parameter. This feature of them means that we don’t need to repeat similar code for different data types.

When templates were first introduced in C++, their capabilities were unforeseen. Since then templates have grown into a separate functional language inside of C++. This language has its own syntax, rules, and huge number of specifics, one of which I will discuss later.

How Templates Work

Each template defines a family of functions. It is, after all, a functional language. But the family does not produce any code on its own. Instead, the compiler generates code only for functions that are actually used in the program. This process is a multi-step process called instantiation.

First, the user must request a specialization, either explicit or implicit. Seeing this, the complier starts the instantiation process which includes things like the substitution of template parameters. If the code with the substituted template arguments is valid, then the compiler generates the actual specialization.

Making New Friends

“Friendship” in C++ is commonly thought of as a means of granting non-member functions or another class access to private and protected members of a class. This is done to allow symmetric conversions on non-member comparison operators or to allow a factory class exclusive access to the constructor of the class, among other reasons.

Note that function bar is not required to be defined in the same translation unit. But what happens when we forget to define it?

struct Foo {
friend void bar();
};

Well, it still will compile. This might come as a surprise to you, but the result is completely valid code.

This is called a friend declaration. It declares function bar, if it hasn’t been declared before. (If it has, then it redeclares one.) Such declarations do have some limitations as compared to regular ones, but the limitations are not essential to this topic.

Okay, so it declares a function. But what scope does this function have? When a function is first declared in a friend declaration within a class, it becomes a member of the innermost enclosing namespace of that class. But it is not a member of the class it is declared in.

The only way to call the function is to use an Argument Dependent Lookup (ADL). ADL is a set of rules for looking up unqualified function names. These function names are looked up in the namespace of their arguments, in addition to the scopes and namespaces considered by the usual unqualified name lookups.

Note that friend functions can be defined inside class definitions. These are inline functions and, like member inline functions, they behave as though they are defined immediately after all class members are seen, but before the class scope is closed.

Hmm... what happened? The compiler generates templates instantiations only when they are requested. Because there is no instantiation of structure Foo, the definition of bar also does not exist. The compiler doesn’t know about the content of the structure, and so we have to instantiate Foo explicitly.

And now it works! It’s all fun and games, but can you spot an issue? Well, there are actually two issues.

First, note that bar is a plain function (not a templated one) that refers to a specific specialization of the structure Foo. What this means is that we can use all the template parameters passed to Foo – even when the parameter is a pointer to a private member of another class. This feature is described later.

Second, whether the function is defined depends on whether the specialization of Foo is instantiated by the compiler. And this is the internal state of the compiler. Templates in C++ have a way to check this state: SFINAE, or “substitution failure is not an error.”

There are plenty examples of using this technique, but for ease of understanding we will look at the implementation of the compile-time counter. As this code is not production-ready, we will use a new feature of C++20 which I describe later.

Accessing Private Members

Imagine that you have a class containing two private inner classes, one of which is templated, and a public method func.

Imagine that the specialization ChildB<ChildA> is used in method func. You want to explicitly instantiate such specialization. How would you implement it? Simple question – simple answer. Just do what you always do:

Here is a tricky part. The explicit specialization is in the global namespace, not in the class itself. But how does the compiler know that you are allowed to use private inner classes? The answer is, it doesn’t! For such cases the C++ standard contains the following wording:

§ 14.7.2/12

The usual access checking rules do not apply to names used to specify explicit instantiations. [Note: In particular, the template arguments and names used in the function declarator (including parameter types, return types and exception specifications) may be private types or objects which would normally not be accessible and the template may be a member template or member function which would not normally be accessible. – end note.]

In short, it does not check whether you allowed to do it, or not. This means that we can write an external getter for any class we want. Let’s try writing it.

Here we defined a function that is parametrized with a pointer to a member of the class Private with a type int. The fancy-looking syntax in the return statement is just a way to access a member by its pointer.

When we make an attempt to call this function, it will, unfortunately, fail. A call is not an explicit instantiation and the access rules will be checked.

Isn’t it beautiful? We just violated one of the fundamental aspects of the language! And yet, I emphasize, everything is in full compliance with the C++ standard.

So, what is happening here? Well, next is a constexpr template function with a single argument R that has a default value. The default value is generated with template function reader which accepts an integer as a parameter. If you are familiar with template metaprogramming, then you can guess that reader is implemented as a tail recursive function which iterates over all successive numbers starting from the number 0.

The end of the recursion is controlled not by the number itself, but by the presence of the definition of a special function flag in the global namespace. If the definition has been generated previously, then the control is passed to the successive reader function. If not, then the definition is injected into the global namespace by Writer, and the current value is returned.

Note that the first overload of reader has a lower priority, because it accepts float. Choosing this overload requires an implicit floating-integral conversion.

The last thing worth looking at is an implementation of unique function. As the name implies, unique produces something unique on every call. More specifically, it produces an object with the unique type. It is necessary to bypass the caching of default arguments by the compiler. How can it be implemented?

template<auto T = []{}>
constexpr auto unique() {
return T;
}

Starting with C++20, the list of types applicable as non-type template parameters has been extended, and now it includes lambdas. Every lambda is implicitly converted to a functor with a unique type. It even works with default arguments!

Defining a friend function in a template, then referencing that function later provides a means of capturing and retrieving metaprogramming state. This technique is arcane and should be made ill-formed.

Notes from the May, 2015 meeting:

CWG agreed that such techniques should be ill-formed, although the mechanism for prohibiting them is as yet undetermined.

From reading this, it may seem to you that stateful metaprogramming ought to be illegal, and that the committee feels the same way. The problem is that they do not know what to do with this “feature” that they introduced accidentally. The technique was found back in 2015, and since then the issue has remained open.

Conclusion

Friendships and templates are powerful tools in C++. Like other tools in C++, they can surprise us with their behavior, behavior that can become confusing when combined together. Not that such aspects of C++ are rare, but they again demonstrate how complex the language has become.

May 13, 2020

For corporations, working from home was a gamble. Could they trust employees to actually work when hanging around at home, instead of being supervised at the office. Some firms even deployed sophisticated electronics over the last decade to track employees and their productivity in the office.

IBM famously reversed itself some years ago when it insisted all employees had to show up in the office. A CAD vendor virtue-signaled by boasting how it had installed solar panels on its employee parking garage; I thought that not needing a parking garage would be the better approach.

Coronavirus changed that. Well, no. It forced change on corporations, at least those whose industries supported working from home. With employees telling surveyors that 40-60% of them wanting to remain working at home after the restrictions ended, executives were left scratching their heads over what to insist on once it was safe again to return to their normally-crowded offices.

On the one hand, keeping employees at home saves on costs arising from office and furniture leases, utilities, and coffee machines. Google spends $60 million a year on free food for employees. Moar profit! On the other hand, those 5- and 3-year leases don't end when offices are emptied. Businesses owning their buildings are in a greater bind: selling them on a free-falling market isn't a profit-maker. (Well, the capital losses could offset tax bills.) As PTC's CEO complained last month, "We have a lease on a brand new headquarters. It's been empty for six weeks. I'd like to renegotiate that, but the vendor doesn't seem to want to renegotiate it with me."

Breaking the Dam

Somewhere, an accountant is working out the costs and benefits. The first (that I heard) was OpenText, announcing it wanted only 50% of its employees to return to work, the remainder to remain WingFH (working from home). Then others expressed similar sentiments.

Finally, the 1000-tonne gorilla spoke. Google, announced that it didn't expect employees back until next year. That broke the dam, giving corporations permission to do likewise. Twitter said it never wanted to see its employees again, except for the few who needed to be in the offices -- custodial staff, I suppose.

As crowding is the way that the coronavirus is transmitted, one theory holds that cities will depopulate and suburbs will again become vogue. WingFH solves some of the dismal problems that seemed intractable as of last January:

Rush hour traffic jams with hour-long commutes

Overpriced housing relative to incomes

Pollution from concentrated transportation and skyscrapers

But then WingFH creates problems:

Loss of income for firms supplying corporations, such as meals and stationary

Loss of relationships, as those who hang out together at work no longer do

Loss of jobs related to office construction and operations

It will be interesting to watch how this shakes out, as computer-based industries make a shift that no one expected to occur this year.

What Will Become of Extroverts?

The mainstream media is these days concentrating on the psychological unwellness of those staying at home. About 50% of the population reports that. Those would be the extroverts, I expect. This is understandable, as the media is staffed by extroverts, and the media typically reports on what they know. The media don't report on introverts, who are glad to be "stuck" at home, with some expressing to me that, confidentially, they wish this would go on forever.

Throughout this coronavirus virus, I could be smug, having WedFH since 1991, initially using fax, CompuServe, and FedEx to communicate with clients. It helps that I am extrovert-introvert: I like being around people, but then I need my me-time -- 50/50.

Also, I am a compartmentalizer, so that I can ignore home-related problems as I write (like kids screaming in the early days). One of my fondest memories is of my youngest daughter coming down to my office, crawling under my desk, and falling asleep at my feet.

A neighbor, an introvert, envious of me WingFH, tried it. After a week, he admitted failure, as anytime there was a noise elsewhere in the house, he had to rush out of his office to find out what it was. For him, me being able to ignore that sort of thing, was incomprehensible.

As my wife points out, however, where does WingFH leave the extroverts who need to be in the office, or those who need to be away from home for familial or psychological reasons?

All humans are different, much to the dismay of the behavioral psychologist community. And so I suggest that corporations may want to survey staff to see which ones prefer staying home, and which prefer being back in the office. This would fit in well with initial recommendations coming out from countries like Britain, that there be that 2m-distancing between office desks.

May 08, 2020

flyingshapes held a Webinar to introduce the way in which its VR-based CAD software works. Here are my notes from it.

We are used to downloading demo software and minutes later working with it. 'Tis not the case with software like flyingshapes, because first you need VR goggles, naturally. Here are the ones supported:

Oculus Rift and Rift S

HTC Vive and Vive Pro

Windows Mixed Reality

Pimax

Varjo HMD

Next you need a Windows 10 computer and then one with at least an i5 CPU, and then one that has one of the supported graphics boards:

At least NVIDIA GeForce GTX 960 through to RTX 2060

Or at least AMD Radeon R9 380 thru to RX 5600 XT

For weaker systems, some special effects, like shadows, can be turned off.

With the hardware in place, go to flyingshapes.com/download to register and then download the software. I don't have the hardware, so I didn't do that.

The UX

The user experience is nothing like you know from mouse-and-keyboard-based CAD. It is hyper-interactive. Just moving your head moves the viewpoint, kind of like 3D orbit mode.

A controller in each hand lets you grab objects and execute commands by pressing or holding buttons. Here is an overview of the interface:

The red-green-blue lines represent the x,y,z axes. You can see planar grids, but the software also offers a 3D grid with evenly-spaced crosses throughout 3D space.

The two controllers you hold in your hands are shown in front of you. To the side is a panel reporting the current x,y,z coordinates. You can zoom in and out, or else scale the model interactively.

Between the controllers is the gizmo, which lets you move and scale in each of the three directions.

The figure below shows the popup menu through which you access tools and apply materials. Another popup screen shows videos of how to use the tools. Next to each controller is a flyout indicating the active tool.

The two primary drawing tools appear to be freehand sketch and spline. Splines have control points that are manipulated interactively. Surfaces are stretched between boundaries. You can apply G1 curvatures between splines and surfaces.

As you press buttons on the hand controllers, a text tip appears reporting the action, such as Trigger Released.

The idea of flyingshapes is to do CAD modeling, but in a sub-d manner (interactive editing of mesh-like entities). They plan to move towards more CAD-like editing, which I think means a 3D-solids kind of direct editing.

Why VR?

I gotta say that what the folks at flyingshapes (from Germany) have accomplished appears impressive.

But is there a market? My argument has always been that humans are adapted to navigating by 2D in spite of living in a 3D world. Three-D CAD models are not just "one extra dimension"; they add five more sides to plan views.

There are 3D mice, which have not been overwhelmingly popular. There have been in my estimation only three advances in 3D modeling over the decades:

Multiple windows -- so that we can see more than one side of the 3D model at a time, with the drawback that the more windows we open, the smaller the model becomes in each.

Realtime shading -- so that we no longer look at puzzling wireframe models, trying to figure out what is outside, inside, front, or back.

Dynamic UCS -- so that the software anticipates the plane on which we want to draw.

The last one exposes the myth of 3D modeling: even in "3D", we still work in a 2D micro-environment.

Don't get me wrong: 3D modeling is important for efficiency; it's just that we are trying to shoehorn our 2D selves into a 3D environment that is virtual, and not one by which we experience the real world. The UX is the problem, not the 3D.

So, where does that leave flyingshapes. I see it as a test case to examine what is possible with CAD in an immersive 3D environment.

May 06, 2020

We know USB-C mostly for no longer needing to think about which way to stick a USB plug when inserting a charging or data cable. That's convenient, especially in an era when trying to figure out which side is up on a microUSB plug is a challenge.

Male and female ends of USB-C cable

But USB-C does more than charge or transfer data. It is the all-encompassing port on which we have been waiting. It handles:

Power

Data

Memory card read/write

Ethernet cable networking

External peripherals like keyboards, mice, and portable hard drives

Sound output (sound input? I dunno)

Print

And it is fast at data transfer

Now, be sure that the capabilities of a port depend on the device, and so I tested it with my new Asus Android phone and new Acer Chromebook, both equipped with USB-C ports.

On the Phone

I had heard that USB-C headphones could sound better than ones plugged into a 3.5mm socket. (Don't get me started on wireless Bluetooth headphones: this protocol requires music to be compressed to an even greater extent that the damage MP3 already does.) I bought a couple USB-C headphones cheap off eBay and was instantly disappointed. The sound was very distorted. Here's why:

When you plug headphones into the 3.5mm socket, the D/A circuit inside the phone converts the digital music file into analog sound. The quality of the sound depends on the quality of the D/A circuit, which can be hardware and/or software.

When you plug headphones into a USB-C port, the digital music file bypasses the phone's D/A circuit and goes directly to the port. This can be good, because now it up to the headphones to convert the digital into analog. The circuitry is cramped inside the headphone's USB-C plug and with cheap headphones the result is terrible. Perhaps one day I'll be able to try a quality set of USB-C headphones.

I tried out an external SSD drive (by SanDisk) with the phone's USB-C port and it worked just fine: the phone immediately recognized the drive, and allowed me to access files from among the 1TB of data -- no problem. This drive is about half the size of the phone, and transfers data at 3GB/minute (when connected to a PC).

Sandisk 1TB SSD external drive with USB-C port

Vilcome Hub

I had read that newer Android and Chromebook devices could connect to ethernet cables, and decided to try it out by buying a multi-port USB-C adapter. The one I picked out from amazon is made by Vilcome (CAD$39) and is made of solid-feeling aluminum.

8-port hub from Vilcomme with USC-C connector

The hub from Vicome connects to a USB-C port and offers eight ports:

ethernet cable

SD card

microSD card, which it labels TF

three USB v3 ports, the rectangular kind, which can be used for USB drives, keyboard, mouse, printer, and so on

HDMI port for an external monitor

PD port, for which I needed to read the manual: this is an input power port, in case the hub takes up the only USB-C port on the device. My Chromebook has two USB-C ports, so that's not an issue, but it would be with my Android phone with its single USB-C port.

(Note that the phone or computer provides the power needed by the hub, again over the USB-C connection.)

I plugged the hub to the phone, and the phone instantly recognized that there was an ethernet adapter buried inside the hub.

Ethernet connection recognized by my Android 10 phone

Hooking up an ethernet cable to a phone lets you bypass potentially insecure WiFi and mobile data connections. I turned off WiFi and cell data, and could access the Internet with the ethernet alone -- the cable, of course, being connected to my office network.

I plugged a full-size keyboard into the hub, and my Asus phone immediately recognized it. I could type into a word processor. Next I added a wired generic mouse, and the phone recognized it too. An arrow cursor let me move around the screen.

I plugged the SanDisk drive into the hub, as well as an SD card. The phone recognized the extra drives.

What did not work with the phone was the USB-connected printer. Lastly, I plugged in an external monitor to the hub's HDMI port, but the Android phone does not handle external monitors. Too bad, as it could become a portable computer while on the road (borrowing a keyboard, mouse, and monitor).

With the Chromebook

All the same things worked with the Chromebook, even though it has its own keyboard and trackpad.

In addition, the printer worked, although in this case it was not recognized immediately. I suppose ChromeOS had to download the driver for my aging HP 1320 laser printer, and so it took about a minute to be recognized by the Chromebook.

When I connected the hub between the Chromebook and the external monitor, the Chromebook immediately recognized the external screen, and now I can use a two-monitor Chromebook, in either mirrored or extended mode; see figure below.Update

This week I also tried the adapter on my ASUS 10" Android tablet, wondering if that could work as a portable workstation when I don't want to haul a heavier laptop around.

It works. And it doesn't. Here's why:

It works, in that the USB-C dongle and its inserted peripherals are recognized by the tablet -- ethernet, keyboard, mouse, etc.

It doesn't work, in that the dongle, corded keyboard, and corded mouse are bulky, and so it is more efficient to just take a laptop that has the keyboard and mouse built-in.

So I tried an uncorded keyboard and mouse, but the cordless devices were not recognized by Android. I suspect this is due to a lack of support for the 2.4GHz dongle that the peripherals depend upon.

Which brings me down to a Bluetooth mini-keyboard with integrated touchpad. It worked. No USB-C dongle needed, and the keyboard is just one-inch longer than the tablet.

May 04, 2020

BimRv SDK is the name of the Open Design Alliance's new interoperability software development kit for Autodesk's Revit files. It accesses data stored in RVT 2014-2020 files, and writes RVT files. Third-party developers would use it to do the following kinds of things:

Visualization to see models external to Revit

Conversion to PDF and other formats

Extract data to databases and so on

Because Revit hides some data, BimRv accesses it in two ways. Raw format returns all data and the programmer has to figure out what to do with it. The Custom API interprets the data, but does not expose all of it.

Internally, the ODA uses its own VSF format as the intermediate format, which allows it to convert geometry to multiple formats. For instance, BimRv can export geometry representations from a DWG file to a Collada DAE file, and then export that to an Revit RVT file. The result is, however, just the geometry in Revit format and so there are no parametrics. Revit models can of course be saved as 3D PDF files, which can be the preferred method of design sharing by clients with contractors.

Nevertheless, just having the geometry is good enough for lots of activities, such as visualization, geometry collision detection, slicing planes, and exporting to DWG. Models can be viewed in Web browsers using the ODA's Open Cloud platform, and so it also works with mobile devices, as shown below. The Web and mobile versions have all the same functions as the desktop version, such as cutting planes.

To be clear, ODA also handles RFA files, Revit families that define parametric parts, like doors and windows.

Next up for BimRv: blends and swept blends, not hosted and hosted family instances, Boolean operations, and more. Details about these new functions for Revit files will be detailed in an ODA Webinar planned for May: https://www.opendesign.com/webinars

The name BimRv implies to me that the ODA could consider addressing other BIM programs.

May 01, 2020

nTopology is one of a very few independent generative design software firms; I know of just one other. Some of the others were last year snapped up by large CAD vendors: Frustum by PTC and AMendate by Hexagon. When I interviewed CEO Bradley Rothenberg last year, he maintained he wants his company to remain independent. This makes sense in terms of making the software available broadly. When a CAD vendor buys, say Frustrum, only PTC users from now on can access it.

What is unique about nTopology is that they wrote their own kernel, which models 3D parts in a manner different from nearly all other kernels. It defines precise boundaries of objects, and so allows their software to create unbreakable parts: "We don't worry about any modeling operations." This figure show the difference between in the mathematics between most other kernels (at left) and how nTopology does it:

The software that runs on top of the kernel is called nTop. Here's at what the user interface looks like today. The ruler at the bottom can be dragged to get an idea of the size of the model and its parts.

New in nTop

Models can be exported in STEP format as b-reps (boundary representations) for further editing in CAD software. Also new is 3MF, which exports models as meshes and lattices. nTopology recommends you use 3MF for CAD, as the data files are 3x smaller and more detail is exported.

To define parts, nTop now handles the following parameters:

point constraints

stress loads

displacement restraints

bearing loads (see figure below)

constraint charts

Coming to a future release of nTop is parameterized lattice structures, driven by thermal and other variables. Here is a view of the upcoming parametric-driven capability:

nTop now supports multi-threading, using as many cores as the CPU sports. nTop does not (yet) support two or more materials in a single model.

Mar 24, 2020

A reader asked if I could write about having to work from home. I was blase in my reply, as I've been working from home for 29 years now.

Transportable Licenses

He was relieved, he said, that he could get a home-use license for his CAD software, which normally is locked to a computer at work. Siemens is one of the companies allowing that, albeit for only 30 days. I reckon an extension will be coming for that.

Companies like Bricsys and Graebert allow you to easily move the license to another computer: just unlicense the first computer first. I won't describe how to do it as the process is different for each vendor.

Allow some time for the license to get moved at the software company's head office. Sometimes it takes a few minutes. Earlier this year, I needed a CAD license renewed for my writing work, and the employee in charge was out of the office -- for a week. The firm has since changed the way customers contact it for license changes.

My Rule

I have one rule that guides my software and hardware purchases and upgrades: I tolerate no product that slows me down. This means that all my computers are fast enough, my monitors big enough, my mouse with sufficient buttons, my keyboard having the exactly right clackiness, and my table-chair comfortable enough.

I will spend whatever it takes to meet my no-delay criteria, and then I stop spending. Here are two examples:

Last year I bought Logitech's upgrade to its wonderful Performance MX mouse. The design changes made it unwonderful -- dreadful, actually--, so I gave it away to a friend, and then found the original model (no longer made by Logitech) brand-new on eBay, and bought two. (I wear out a mouse every half-dozen years).

I still use PaintShop Pro v6 (copyright 2000) because it loads in under a second, and has the function set I need. Newer versions groan under feature-bloat.

My Hardware

29 years ago, when I could only afford one computer, I realized that depending on just one was risky. Computers and monitors became cheap, and so now I have several arranged around me:

1. Primary 3.1GHz quad-core Acer desktop computer topped out with 16GB RAM, 1TB SSD, and 4TB HDD. It runs Window 7 and has an old nVidia 2000 board only so that it can drive the three monitors I hook up to it.

2. Secondary desktop computer is a space-saving 2.6Ghz dual-core Acer all-in-one computer with lower specs, and acts as the monitor for my Apple Mac Mini that I rarely use.

3. Primary laptop: Windows 10 on a 2.6GHz dual-core HP Spectre laptop with 8GB RAM and 1TB SSD. It also handles three monitors.

4. Secondary laptops: a variety in storage.

5. Printers: an HP laser printer for every day printing, and an HP color printer for special jobs.

6. Network: 1GHz wired ethernet for any device with an ethernet port, and a commercial-grade router for WiFi connections.

7. Internet: I have a business account with my ISP, which means no waiting for tech support and it has unlimited data. Backup provided by my ISP through a LTE modem that lets me connect to the Internet over the cell phone system, in case the wired connection fails (as it has done twice so far). It is an ADSL connection, meaning there are never any download delays, but uploads are slower.

8. Keyboard and Mouse. I use a keyboard from Azio that has brown K-switches, which I really like. It matches my typing style. For mouse, it is Logitech's Performance MX, because it is tall and it has that spin/clack center wheel that makes me more efficient.

9. Backups: I find I have little data to backup, as most of my of my work gets shipped off to clients. At the end of each day, I drag a copy of the folder I worked on to the 4TB backup disk using TerraCopy. Every so often, I use Windows Briefcase app to backup my crucial files (income spreadsheet, etc) to pCloud. Every half year I backup my online actives, such as this blog and my Twitter activity, to pCloud and a compact, portable drive that I made from a left-over 250GB SSD.

Another form of backup: A few weeks ago I realized that my ten-year-old desktop computer running Windows 7 might croak one day. Most of the software I rely on runs on Windows 7, and cannot run on newer versions. I found on eBay a lease-return Dell desktop that still runs Windows 7, bought it, and one day I will set it up with the software I use. Maybe I'll never need it, but at $350 it is cheap insurance.

Yet another form of backup: last fall, when I lost my laptop while in Europe, I found that my late-model Android cell phone was a pretty good replacement device. It doesn't work for writing and editing, but it handled all my other business tasks. (My laptop was eventually returned to me, some weeks later.)

News ItemGov Cuomo: “We have to plan the pivot back to economic functionality” Says we may not have to isolate everyone. Could allow the healthy, less vulnerable to work. #COVID19 survival rate is 98%. NY Forward plan to look into restarting economic engine.

"What is the endgame?" is the question being raised by Cuomo and Trump as they say it's time to get people back to work.

We assume that one day this will all be over, because we assume the infection rate follows the bell curve. But perhaps this horror follows a sine curve, where false hope is followed by renewed infections, until we regress into a kind of Children of Men dystopia.

The total lockdown strategy is one based on least-harm ignorance. Leaders mimic each other over the correct approach. They apply the most extreme tactic that they hope will keep the most people safe -- biologically and economically -- until scientists finally get the opportunity to catch up with the coronavirus.

It's easy for politicians to place us into just-in-case lockdowns, but they are clueless as to the conditions under which to release us. Should we be let out of our homes after 70% fall ill, or after 70% recover, or once the number of new cases falls to 70% of the peak, or...

No one knows. Even the rallying cry "Flatten the curve!" is based on assumptions, not knowledge.

The first role of government has always been the safety of its citizens. But now leaders now face a Pontius Pilate-role, except today the question these events are dooming them into asking is, "What is safety?" Is it...

Physical health?

Psychological health?

Family?

Community?

Economy?

Prestige?

Hope?

- - -

As creatures of habit, we fall into new patterns after sufficient repetitions, even void repetitions, such as avoiding each other. Once this is over, do we maintain our habit of social distancing, or will we fall with relief into a global group hug.

What if by the end the economy is irrecoverable, supply lines irrevocably cut, neighbors forget how to be neighborly, children's childhoods lost. Even as health officers calmly give us our daily update, society is breaking down. A nurse we know has three home-from-school pre-teen sons; social distancing means that no babysitter is allowed to help her, and so she cannot help society with her nursing skills.

The owner of a ten-store business found 14% of his staff no longer show up for work, because they took up the government's offer of free, no-questions-asked money.

A branch manager is under his doctor's orders to self-quarantine for two weeks, not because he has the virus, but because he was breaking down from stress over the virus breaking down his business.

Even as governments pour trillions (or billions, in the case of Canada) into society to keep it from falling apart, society is falling resolutely apart in ways government cannot foresee, nor detect. Perhaps one best-outcome will be recognition that our salvation does not come from government on high.

Nor does our salvation come from technology. We (a pair of tech-knowledgeable guys) struggled greatly yesterday to set up a Hangouts group video chat. (We nicknamed it "Hangups.") One person's MacBook refused to allow its microphone to work, and so we could only see her. Another had never before installed an app on her phone and when I offered to help, had no idea what her Apple ID might be. Socially distanced by tech, and not even Google is mighty to save us.

All this was triggered by a printed sign I saw for the first time during this outbreak at a local grocery store:

Jan 07, 2020

I was excited about running a tri-OS laptop. The latest ChromeOS computers run most Android apps really well (contrary to the nay-sayers) but Linux support is still rudimentary and in beta. Linux makes sense, because it's free and, more significantly, ChromeOS and Android are built on Linux.

Once you turn on Linux in ChromeOS, all you get is the command prompt of Terminal. I tried a few times to get a GUI running, such as a Linux desktop or a word processor. I failed, partly because the instructions I found online were old (tutorials from August are old) because Google has been updating the Linux system. After Christmas, I searched again, and this time was successful.

With the Gnome package installer, I was able to install some GUI-based software. But in the end, I found that Linux support is not complete in ChromeOS, and so programs tends to run slowly and awkwardly.

Dec 05, 2019

Except these describe my latest smartphone, the ASUS Zenfone 6 (2019). The ‘2019’ is important, as the Taiwanese company is reusing the name from another model a half-decade or so ago. I got the silver-blue model with 256GB storage RAM, and then added a 256GB microSD card.

ASUS Zenfone 6 (2019) showing fingerprint sensor and flip camera

Other features important to me:

5000MHhr battery that lasts up to 3 days, and acts as a charger for other devices

Dual SIM slot

Updated to Android 10

3.5mm headphone jack

Full specs here: gsmarena.com/asus_zenfone_6_zs630kl-9698.php. Although it was "released" in May earlier this year, it generally has been hard to find in North America until the late in the fall. I bought mine direct from Taiwan through eBay in September.

Oh, That Camera

The highlight of this phone is its unique camera that flips from back to front in about one second. It takes excellent photos, especially at night.

Camera flipping from home position to front-facing position

The flip design offers these capabilities:

The quality of cameras on the back are available to the front; on most phones, the front camera has lower specs than the back camera(s).

The front of the phone is all-screen, much like my first smartphones that had no selfie cams.

The flipping motion is further used to make panoramic photos and to adjust the viewfinder to any angle from 0 to 180 degrees

But how well does this work in practice? The Zenfone 6 has, after all, only two lenses -- regular wide (equivalent to 26mm on a standard 50mm SLR camera) and ultra wide-angle (11mm equivalent).

When Google released its Pixel 4 phone, the company excused the lack of a wide angle lens by claiming that very few people ever use it. In the past, I’d have agreed, as I was an analog zoom fanatic. But since September I’ve been using the wide angle lens on the Zenfone 6 -- especially during three trips to Europe -- and have become amazed at what it makes possible:

Taking outdoor photographs where you can’t back up far enough

Making indoor photos that take in much more area without needing to resort to stitch photography

Below are two photographs of the same locomotive in the Berlin Technical Museum. One was taken with the regular lens, the other with the wide-angle one. I think this makes my point better than any Google marketing slide.

Left: Photo taken with regular lens; right: photo taken with the wide-angle lens

In addition, taking selfies is much easier with a wide angle lens: no need to squeeze so tightly together anymore!

Selfie taken with wide angle lens

Using the flip camera to take panoramic images works well enough, but it is limited to taking them in landscape mode. However, I prefer taking them horizontally in portrait mode; this is not possible with flip phone.

Taking a panoramic photograph

As well, I find I end up in the panoramic image as the lens rotates relentlessly -- I have less control than when I move the camera manually.

When the writer becomes part of the story

The camera doesn’t have to be just at the back or front. By sliding a soft button, I can move the camera to any position. In practice, the slider is touchy and so I find it hard to position the camera precisely. In theory, I could use this to take ground-level photos, such as of mushrooms, or overhead photos, such as of crowds. Again, I find that this does not work well.

Mushroom photographed from below with the assistance of the flipped camera

(I loved the swing viewfinder on early Canon digital cameras; the problem with the Zenfone 6 is that we are moving the lens, not the viewfinder, making it awkward to rotate the lens while trying to position it.)

How the 48-megapixel Lens Works

The primary lens uses a Sony 48-megapixel sensor, which a few years ago would be incredulous, but today is already obsoleted by the newer 64- and even 108-megapixel sensors. These high megapixel count sensors can employ all pixels, but typically don't.

When I select 48-megapixel as the resolution, the phone takes a photo, and that’s all. There is no zoom; the aspect ratio is 4:3; the resulting image is about 14MB, depending on the content. But realize that in selfie mode the camera also operates in 48-megapixel mode, and so you get very high resolution selfies -- which might be a good thing, or bad.

Camera set to 48-pixel mode

When I switch the camera to 12-megapixel resolution, notice that this is ¼ of 48 megapixels. This is no coincidence. The camera uses four pixels on the sensor to generate one pixel in the image. It means that difficult lighting situations result in good photos, as well as engage digital zoom that doesn’t lose any clarity until after about 4x.

Zenfone 6 has one aspect ratio that is rather unusual: 19.5:9. See below. This one is designed to utilize the entire screen. (Aspect ratios are traditionally made relative to ‘9’.)

The camera saves images in JPEG and/or RAW format.

Other Camera Apps

Despite the unique style of camera (and I think that Asus uses its own camera API), other camera apps work with it, mostly.

I have successfully side-loaded the port of Google’s Pixel Camera software; see www.celsoazevedo.com/files/android/google-camera/dev-parrot043, and installed Open Camera from Google Play store. In the case of the Pixel Camera, I also needed to install a configuration file that tells the app what is different about the Asus phone.

By using the Google app, I regain access to features like manual panoramic mode and spherical mode. The much-vaunted night mode is not necessary, as Asus does such a good job. I've even taken streak-free night photos while walking!

Nov 20, 2019

Graebert is no stranger to BIM [building information modeling], even though the company is never associated with the ArchiCADs and Vectorworks of the world. It has a subsidiary named iSurvey whose SiteMaster software is used to measure and model the interiors of buildings and kitchens in a BIM context for six years now.

ARES Commander is Graebert's desktop DWG editing software, while ARES Kudo is its cloud-based DWG editor. The 2020 releases of both due early in the new year will introduce the first stage of a multi-year roll-out of BIM-related capabilities. The idea is to use ARES as an engine to generate accurate 2D drawings from 3D BIM models.

Once the BIM models (and associated data) are in ARES Commander, users can employ its drawing and editing commands to further annotate and edit the models as drawings.

For third-party developers, Graebert put together the BIMflow Pack which packages all of the new BIM functions for third-party developers using ARES OEM. The Cloudify Pack adds ARES Commander (including new BIM functions) to ARES Kudo for third-party developers.

Graebert is not alone in producing BIM-compatible DWG software, and so it sees a significant market into which it can step. The company found a number of reasons for why the market for DWG in BIM is still large:• Fewer than 20% of users in AEC use BIM (the other 80% use CAD), indicating there is a great resistance to BIM, twenty years later. • Despite BIM allowing firms to work in all-3D, they nevertheless produce large amounts of 2D drawings for use in shops and in the field, partly because 2D is still an accepted standard and partly due to liability reasons. • There are roughly three to ten CAD users behind each BIM user.

Graebert has significant market presence in Japan, India, and parts of Europe. Where its general desktop and cloud software is already being used gives it an entryway to BIM adjacent drafting.

Nov 12, 2019

What Russian CAD programs do you know? Perhaps nanoCAD from Nanosoft and possibly Kompas-3D from Ascon.

Russian developers also make their mark on widely-used products, such as CATIA, BricsCAD, and Altium Designer. Many global software vendors have established their own R&D (research and development) centers in Russia or else work with local outsourcing firms. Let’s take a look at who they are.

CATIA from Dassault Systèmes

Designed for modeling sophisticated shapes and multi-thousand 3D assemblies, CATIA from Dassault Systèmes is especially preferred by the aerospace and automotive industries.

Some program components in CATIA V5 and V6 were developed by LEDAS, a software programming company in Novosibirsk. The Russian team contracted with Dassault Systèmes to help create the CGM geometric modeling kernel and the Constraint Design Solver between 1999 and 2011. This was not just about writing code, but developing the complex mathematical algorithms that brought these 3D modeling functions to CATIA.

In addition to working on those two components, LEDAS contributed to a pair of CATIA end-user modules, CATIA Product Engineering Optimizer and CATIA Knowledge Advisor.

The 12-year partnership with Dassault Systèmes earned LEDAS its reputation as one of the top companies to hire for R&D outsourcing services in the area of engineering software. A list of some of its clients is available on the company's Web site, www.ledas.com.

We here at С3D Labs also work with the great guys from Novosibirsk. They helped develop our B-Shaper SDK that converts polygonal models to 3D solid models.

BricsCAD from Hexagon

BricsCAD is used for 2D drafting and 3D modeling and employs the industry-standard DWG file format. It was developed by Bricsys, a Belgian company, which was acquired last year by the Swedish IT giant Hexagon.

Bricsys has two R&D centers in Russia, one in Nizhny Novgorod and the other in Novosibirsk. It is interesting to note that the Bricsys team in Novosibirsk is closely connected with LEDAS. After LEDAS sold Bricsys the rights to some of the products and technologies they had developed, as part of the agreement some employees moved to the newly established Bricsys Technologies Russia subsidiary.

Bricsys is quite open about its ties with Russia and how it benefits from the relationship. The Web site of the company's Russian distributor informs visitors that "BricsCAD is the first alternative DWG-based CAD developed in Russia."

And journalists are happy to mention LEDAS in their articles about Bricsys. As Roopinder Tara wrote on engineering.com, “If you haven’t heard of Bricsys in Ghent, it’s even less likely that you’ve heard of LEDAS from Novosibirsk. LEDAS deserves more attention. Composed almost entirely by PhDs, some rocket scientists (they worked for the Russian military before the USSR meltdown, I’m told) were more than capable of creating entire, robust CAD programs of their own.” (“A Lean CAD Company Punches Above Its Weight”)

TurboCAD from IMSI/Design

TurboCAD software was developed first in South Africa but is now owned by the American firm IMSI/Design. Unlike Bricsys, it does not mention that its products were developed in Russia. For a long period, the SoftDev team from Saint Petersburg was taking complete charge of TurboCAD development.

ARES from Graebert

ARES CAD applications developed by Graebert GmbH (aka Gräbert) are fully compatible with DWG files. In the conservative engineering software industry where the benefits of cloud technology continue to be debated, Graebert is one of the few companies to develop cloud-based and mobile products that create and edit CAD drawings on the go.

Graebert has three R&D centers, one of which is located in Saint Petersburg, Russia, according to the company’s Web site.

IntelliCAD from ITC

The CAD development platform from IntelliCAD Technology Consortium supports a family of AutoCAD-workalikes. IntelliCAD features a user interface identical to AutoCAD, native DWG format support, the LISP programming language, and similar user commands and options. Its development takes place mostly in Nizhny Novgorod, the city on the Volga River.

Altium Designer

It is not an exaggeration to say that Altium Designer is one of the most popular software packages for printed circuit board (PCB) design. It is developed by Altium Limited, a company established in Australia in 1985, which over the last 35 years transformed itself into a global software company. It has headquarters now in San Diego, Munich, and Shanghai.

In 2015, the company announced that it opened software development centers in Moscow and Saint Petersburg. The Moscow team specializes in developing PCB routing functions and the browser-based CAD solution Upverter.com. The team in Saint Petersburg focuses on merging the electronic and mechanical design functions within Altium Designer, and on data management solutions.

Mentor Graphics

Together with Cadence and Synopsys, Mentor is one of the world's top three suppliers of electronic design automation (EDA) software. In 2017, the company was acquired by Siemens for $4.5 billion and was renamed Mentor, a Siemens Business.

The Mentor R&D center opened officially in Moscow in 2008. At the time, the facility focused on two areas, wire routing algorithms in PCB design, and approaches for verifying and analyzing high-speed PCB design. The center had 45 employees.

In addition to EDA software, Mentor is famous for its fluid flow and heat transfer simulation solutions, some of which have their origins in Russia. FloEFD for 3D computational fluid dynamics analysis, for instance, was originally created at the Moscow Institute of Physics and Technology, and today is still developed in Moscow. The figure below illustrates the history of the Mechanical Analysis department at Mentor Graphics.

Source: cadflo.ru

Cadence Design System

Cadence Design Systems is the second largest supplier of electronic design automation software, and has an R&D center in Moscow. There, several teams specialize in different areas of product development, including extraction of chip layout data, microchip signal delay calculations, and physical verification.

Synopsys

And finally, the number one supplier of EDA software, with annual revenue of over $3 billion, also has ties to Russia. In 2010, Synopsys opened an R&D center in Saint Petersburg tasked with developing ARC processor solutions and photolithography tools. The center has 60 employees, according to the company’s Web site.

ESPRIT from DP Technology

The ESPRIT CAM software from DP Technology is designed for automating CNC (computer numerically controlled) programming. It is developed in collaboration with Rubius, located in Siberian Tomsk. Rubius is a talented high-performance outsourcing company that also writes its own software for AEC (architecture, engineering, and construction), task management, and GIS (geographic information systems). The company is currently looking for programmers to work on yet another ESPRIT project.

Rubius built ESPRIT ExtraCAD with our C3D geometric modeling kernel. The software program was designed to work with ESPRIT CAM. DP Technology decided, however, to not proceed with the project.

ESPRIT ExtraCAD based on the C3D geometric kernel

Open Design Alliance

Open Design Alliance is a nonprofit organization based on the idea of supporting DWG files without Autodesk. Over time, ODA transformed into a robust supplier of software development toolkits (SDKs) that provide interoperability with many CAD formats, visualization, PDF publishing, and more. At the beginning of the year, the ODA revealed its own solid modeling kernel, a kind of high-end program component.

These innovations were created with incredible speed by Russian programmers for the most part. ODA has R&D centers in Saint Petersburg and Nizhny Novgorod, while some of the work is performed by the LEDAS team in Novosibirsk -- yet another mention of LEDAS in this article!

Open CASCADE

Open CASCADE Technology is the only open-source software development platform on our list. The French company provides services and tools for 3D surface and solid modeling, visualization, and CAD data exchange. In an interview with the Linux Format Russia magazine, the company said that its administrative and management staff were based at the headquarters in France, while most of the development work was done by a Russian team comprising around 70 engineers. Open Cascade SAS’s Datavision production facility in Nizhny Novgorod is responsible for supporting the open-source SDKs and writing end-user software applications.

3D model visualized by the Open CASCADE Technology componentSource: opencascade.com

- - -

So, the next time when you run your fav BricsCAD or Altium Designer, think for a moment that their smart algorithms were probably developed in Russia.

[Olga Kalyagina is a head of marketing and communications at C3D Labs, a developer of C3D geometric kernel and other program components. She has over 16 years of marketing experience in the engineering software industry. She previously worked as an academic program manager, PR manager, head of marketing service department at ASCON, the parent company of C3D Labs. Olga holds a degree in management from the Moscow State Institute of Electronic Technology.]

Nov 08, 2019

A number of years ago, I bought one of the very first Chromebooks out of curiosity. It was pretty lame. About the only thing I found myself doing with it was periodically booting it up to update ChromeOS.

Chromebooks run Google's Chrome Web browser as the operating system. This means that the only thing a Chromebook can do is run Google's Chrome Web browser, and any extensions supported by ChromeOS. Very limiting.

I was limited to using apps like Google Docs and lame photo editors, which held no interest to me. Further, the Chromebook was designed to be cheap, like netbooks, and so the specs were low-end: slow CPUs, low-res screens, no touch screen or backlit keyboards, small amounts of RAM and tiny amounts of storage space, like 32GB (extendable by an SD card). I liked netbooks, because at least they ran Windows; Chomebooks, not so much.

After a few years of trying to like the Chromebook concept and failing miserably at it, I finally sent it to the local electronics recycling plant -- partly also because Google expires support on old Chrome systems.

Software Is the Killer App

I realized it was the papacy of software that killed my interest in the Chromebook concept, not so much the lame hardware. So I watched with interest the reports that Google was adding Android support to ChromeOS. I wondered if this would be Yet Another Failed Experiment is merging systems.

At the same time, Google took Chromebooks upscale. Too upscale, of course. Who wants to spend close to $2,000 on a system I consider still experimental. But now the hardware was getting serious and, better yet, more future proof.

Last week, Google announced it would provide longer support for Chrome systems, and that was sufficient for me to pull the trigger. I liked what I saw:

Long-term ChromeOS support (until 2025)

Runs Android apps

Support for Linux

High-end hardware

I wanted a reasonably-priced high-end Chromebook for under $1,000. I found what I wanted in the Acer Spin 13 model # CP713-1WN-53NF:

i5 CPU 1.6GHz, peak 3.4GHz

8GB operating RAM

128GB storage RAM

13" touch screen that rotates 360 degrees, 2256 x 1504 resolution

Backlit keyboard

Includes static stylus (and slot)

ChromeOS updates to June 2025

Handsome looking; the color is called "steel gray," but it looks dark brown to me

It is taller (and narrower) than most of today's laptops, owing to its 4:3 screen ratio, and so almost looks square when closed -- adding it its intrigue.

Regularly $1,344 in Canada (incl. taxes), I found it for $910 (after GST rebate). Curiously, it was $80 cheaper than the lower-spec'ed model (4GB RAM, i3 CPU).

Running Android, Stumbling Linux

The first thing I did was to install Android apps, like Opera Web browser, OfficeSuite word processor, and Netflix. They all worked, worked well, and worked in full screen mode. The only one to insist on running in a narrow, vertical phone-like mode was a game, Monument Valley.

TIP: To find the Android apps you've installed, press the Search key on the keyboard, then swipe up.

I enabled Linux, but wasn't able to get much further than seeing the terminal prompt with its four commands. Installing a Linux OS hasn't worked for me yet, so I need to research that further. Having a Linux like Ubuntu would allow me to run CAD programs, like BricsCAD and ARES, and office software like Libre Office -- presumably.

About the Hardware

The keyboard was an unexpected pleasure. The one on my primary laptop, the top-end HP Spectre X360, is pretty good for having so little key travel, but I find myself mistyping on it -- a frustration when typing at high-speed during conferences. The keyboard on this Acer is better.

Since the era of Palm ended, I've never used a stylus any more. While I appreciate this computer including one, I still don't use it. There's a keyboard, I am a touch typist, and I am a terrible free-hand sketcher.

Having 2256 x 1504 resolution on a 13" screen is overkill, and so ChromeOS (by default) scales it down to nearly half that. I do wish it were brighter, but otherwise it is good to look at.

The charger plugs into one of the USB-C ports; as there is one such port on each side, you can plug it in on the left or the right, whichever is more convenient. All the ports are

2x USB-C (powered)

1x USB v3 Type A (powered)

MicroSD slot

Headphone/microphone plug

Power and volume buttons

Stylus slot

I am disappointed at the weight. I was hoping for a lighter travel computer, but it feels as heavy as the HP Spectre. With my next overseas business trip coming up next week, I am weighing whether to take only the new Chromebook, and leave Windows behind.

Did I mention how handsome it looks?

What Ralph Grabowski Thinks

Being able to run Android apps well makes the Chromebook experiment a success. Android allows us to escape the Google prison, ironically enough.

Jim Heppelmann (CEO, PTC): PTC and Onshape share a common vision around helping organizations transform the way they develop products. Onshapes peer multi-tenant SaaS [software as a service] platform is a perfect complement to our market leading on-premise product development solutions and coupled with our industrial IoT [internet of things] and AR [augmented reality] solutions, we can address an even broader part of the waterfront of digital transformation that’s sweeping across the industrial market.

Now if you step back and look at the PTC portfolio in fiscal ’19, you see that on top of a strong and stable core business, we have two great growth engines in ThingWorx IoT and Vuforia AR. As we head into fiscal ‘20 with the Onshape acquisition, we're now bringing on a third growth engine.

As part of our diligence process, we commissioned a market study from McKinsey that suggested the SaaS based CAD market would grow more than 35% year-over-year and represent nearly 20% of the total CAD market in five years. While Onshape is new, it sure feels familiar to us, because Onshape lives in the same CAD and PLM market space as our core business. It's simply a next generation SaaS version of a technology concept the PTC itself pioneered 30 years ago.

Onshape is not a distraction for us, but rather a doubling down on CAD and PLM to ensure that these core businesses will continue to grow and thrive over the longer term as the industry moves to SaaS.

As you know, we at PTC have been talking about the renaissance of CAD for some time. We realize that along with generative design, real-time simulation, augmented reality, IoT and Azure manufacturing, SaaS will surely play a role in this industry renaissance.

Once you realize how important SaaS will be and why, then you can't avoid the realization of how important Onshape, the only peer SaaS player will be to this industry. Onshape is the first and only from-scratch native SaaS product development platform that unites CAD, data management and collaboration tools in the next generation package.

Onshape is a very unique asset, because of the incredibly high cost of entry into the well-established CAD market, you simply won't find another CAD SaaS start-up out there. The only people who could even attempt to start up this bold are those with the track record so strong that they could raise nine-digit amounts of venture funding and pull in some of the industry's best talent, which brings me to Jon Hirschtick, John McEleney, and Dave Corcoran who founded Onshape and run the company today.

I think it's fair to say that Jon, John and Dave are some of the most accomplished entrepreneurs in the history of the CAD industry. They created SolidWorks to capitalize on the Microsoft Windows wave in the mid-1990s and then turned it into a grand slam after it was acquired by Dassault, helping to still position SolidWorks as the primary growth engine over the past two decades.

Ultimately these guys came to the understanding that SaaS would be as disruptive to the CAD establishment as windows was and that the CAD and PLM industry would surely move to SaaS just as nearly all other software industries already have.

I agree with their premise that SaaS is inevitable in our world and there are many strong reasons why. Onshape is a bona fide growth engine that will allow PTC to take share in the growth-iest parts of the CAD market. I'm eager to share the benefits that SaaS brings to the world of CAD and PLM, but since we have Jon Hirschtick here with us, I'd like to give him a chance to tell you first-hand what he and his team have been working on.

Jon Hirschtick (CEO, Onshape): I've spent my entire career since the 1980s in our industry working on CAD and other software for product development. I've been lucky enough to be part of some of the biggest moments in the past in our industry and I feel like today is perhaps the biggest moment I've experienced in our industry.

When Jim and I met earlier this year, it was so exciting to me that he had this strong clear vision we share for the power that a pure SaaS platform could bring to the product development world. It was so refreshing for me to see also Jim's understanding of and commitment to pure SaaS, pure cloud since so many others in our market are pursuing partial cloud approaches and frankly partial cloud has been shown to fail time and time again in other markets.

Beyond just Jim’s vision, he also obviously has resolved to take bold action to pursue his pure SaaS vision. And thank you Jim for the kind words about me and my fellow Onshapers. I'm very fortunate to be working with a lot of the great team that was with me when I founded and was CEO of SolidWorks. My Onshape co-founder John McEleney has also worked in our industry since the '80s, most notably as my business partner and another former CEO at SolidWorks.

Another Onshape Co-founder Dave Corcoran is a former VP of R&D at Solidworks and is one of the key minds that shaped several of the greatest products in our industry, including Solidworks and of course Onshape. I wish I had the time here to tell you more about each of the rest of the 100 or so people on the Onshape team, the fantastic group.

We founded Onshape because we saw the problems product development teams have with installed software applications and sharing data by copying files, often thousands of files among different people and tools. Whether product developers realize it or not, they are all losing time, efficiency and innovation to these problems. At the same time we saw how companies using pure cloud, pure SaaS technology like Salesforce, Workday, NetSuite, Zendesk -- basically everyone were reinventing other software markets.

We saw that we could solve many of the problems in product development, but we would need as Jim said, to build a clean sheet, new generation system to do it, and that's what we've built with Onshape. Today we have thousands of customers using Onshape with story after story of them developing products faster than they ever could, being more innovative. The great products that they are developing with Onshape is our ultimate reward.

So it's probably easy for you to see why I'm excited to be partnering with PTC. PTC is going to help us dramatically grow the number of customers we can reach with Onshape. PTC is also going to draw on their strong technical breadth and depth to further broaden the scope of what we offer on the Onshape platform.

Jim Heppelmann: Let me share a few important thoughts about how Onshape fits with PTC's core CAD and PLM strategy. Our near term goal is to increase our participation in the growth-iest part of the CAD and PLM market, which really represents an adjacency to where Creo and Windchill play today.

Jay Vleeschhouwer pointed out in a recent report that last year there were 174,000 new seats of [high- and mid-range mechanical] CAD sold in the market globally, with Dassault Solidworks business taking about 80,000 and Autodesk Inventor business capturing about 40,000. Creo, CATIA, and NX fit the bulk of the rest.

In the near term and midterm it is that 70% of the market drove by Solidworks and Inventor that’s most interesting to pursue with Onshape. Onshape gives us an opportunity to both participate in and then disrupt this part of the market and we can enter and play with a very strong hand.

Thanks to the massive advantage in Innovation Velocity that Jon spoke up, plus some great new technology like generative design that PTC can share within the portfolio. We expect Onshape will quickly mature into a full-featured SaaS CAD Solution. There will be no glass ceiling on Onshape capabilities like SolidWorks endured over the years, because PTC's positioning will be that we have the best of two different worlds. Creo and Windchill are best in class in the On Premise world and Onshape CAD and PLM are best in class in the peer SaaS world.

It’s happened time after time that disruptive new technologies gain traction first in the SMB [small- and medium-sized business] space, where customers generally have more flexibility to switch and then proceed up market over time. We expect that any SMB buyer who looks at Onshape will stop dead in their tracks due to its amazing capabilities, plus all the fundamental SaaS advantages it offers.I'm referring to cost of ownership, support for any type of client device, including phones and tablets, ease of getting started, collaboration that works like Google Docs, and plus no need for upgrade the patches, no file servers and software.

Of course in addition to SMB customers, Jon’s going to take orders from companies of any size, because in the long run the SaaS benefits are even more pronounced at the high-end. Like salesforce.com, we expect to get there overtime and believe the high-end competition will be very vulnerable to what Jon and his team of built. That's why we all have the axiom that death comes from below in the software industry.

I want to stress that PTC remains 100% committed to long-term aggressive development of Creo and Windchill. We want to be best-in-class with either deployment model. So we will continue our pursuits of real time simulation, generative design, additive manufacturing, IoT, AR, and all the other great things that we've been working on with Creo and Windchill.

But in parallel I expect you'll see many of the same capabilities that appear on Onshape and surprisingly quickly, giving the fundamental innovation velocity of a SaaS model. When the day comes that any Dassault, Siemens, Autodesk, or PTC customer wants to move to SaaS, we will be there ready to guide them.

But our real focus in the near term and midterm is on playing are strong to hand in the growth-iest part of the market where we simply don't show up today. If you back up to 50,000 feet, you can see that Onshape represents a huge and invaluable injection of SaaS technology, business processes, knowhow, and culture into PTC. Onshape will dramatically expedite PTC's own transformation to SaaS. The industry is most certainly headed there and PTC is now positioned to pave the path with Jon and his team up front leading the way.

I think this acquisition, PTC's biggest ever, will transform the industry, while both solidifying and accelerating PTC long term growth opportunity in CAD and PLM. We are excited to welcome the Onshape team to PTC.

Q&A

Matt Hedberg: First of all, do you have a sense for how many of your customers have expressed interest in a SaaS based offering? I'm trying to get a sense for you know that customer migration over time from Creo and Windchill to Onshape.

And secondarily, I think you noted that you're going to continue to invest in CAD and PLM on your legacy products or your core products. How should we think about that gap in functionality closing over time, if in fact that these SaaS based CAD market is growing as rapidly as you suggest?

Jim Heppelmann: McKenzie did a study of around 230 customers. They reported very strong interest in the concept of SaaS. You know, some concerns that SaaS products weren't mature enough yet, always some concerns about switching costs, and the larger the enterprises the stronger their concern, but huge amount of interest. And now I would say, you know one of the things PTC came to realize is that this Onshape product is actually much better than we thought it was, much more advanced than we thought it was.

So we sort of think that the world hasn't processed how fast this product changes. You know while we weere talking to the Onshape guys, they did their 101, 102, and 103 upgrade of the entire customer base. So there's an innovation velocity here that's amazing and I think it's probably fair to say that you know Onshape is a mid-range product today, but on a very fast improvement vector, and you know we at PTC would be incented to offer up any of the great technology we might have to put into that improvement vector.

So this is a product that is better than what most people think it is, and improving extremely fast, and there's a very large amount of interest. You know the kind of punchline result of the study from McKinsey was that they think that we see a 35% CAGR [compounded annual growth rate] over what's there today and that would lead to slightly under 20% market penetration by true SaaS in the next five years.

----------

Steve Koenig: Any comment on how Onshape competes or differentiates with Autodesk Fusion?Also, what channel would you use to see it, and is there an existing Onshape channel or will be building one what’s the go-to-market going to look like?

Jon Hirschtick: You mentioned our competitive position with Autodesk. I think their vision aligns with ours. They say that the cloud future is SaaS, it's just they don't back it up with the goods yet. We align completely on the idea that you have to have a pure cloud, pure SaaS platform and offering. Autodesk today offers a partial solution, mixing installed software with cloud, partial cloud services, and so forth. You know those strategies are not things that we believe are the way to deliver the value we seek to deliver to customers and so we think we have a big advantage there.

Jim Heppelmann: Our studies showed that Onshape pretty much goes toe to toe with features and functions against Solidworks, but beats then for anybody who wants SaaS, because SolidWorks doesn’t have SaaS. And our studies said that against Fusion it’s a better, much cleaner better more complete SaaS model and blows them away on functionality. So we think we're in a very good strong competitive position against both of those with the Onshape Technology.

---------------

Sterling Auty: So with Onshape, if it's 1%, it sounds like this is about a $10-million revenue generator in terms where Onshape is and if I take 5,000 or so subscribers times the printed pricing that kind of supports that idea. For $470 million net cash, it’s a big multiple to pay. And I don’t think anyone disagrees that they've got the leading technology on the market, but they’ve been around for a number of years and we're seeing slow adoption at this point. Just to play devil's advocate, what was the buy versus build decision, $470 million invested internally.

Jim Heppelmann: It cost Jon, with an incredible team of the best guys in the industry, six or seven years and $100 million to get to where he is right now. So for me, it would be a little harder to do that entrepreneurially-efficient thing. So our estimate is it would take us at least five years and several $100 million to build what he has. So there are several $100 million of synergy here.

Now the second thing I’d tell you about the price is that this is a unique asset. It’s the only one out there, which gives Jon of course some negotiating leverage. Another point is it's the same revenue multiple that we paid for Frameworks and it’s the same revenue multiple that Dassault paid for Solidworks at the same size if you adjust the difference between multiples on perpetual versus multiples on subscription revenue streams.

So I think you and I both would agree that $100 million ARR [annual recurring revenue] stream is worth more than $100 million of perpetual one-time streams. So if you take the difference in those multiples and gross up what Dassault paid for Solidworks by that factor, you get to what we paid for Onshape. So I think I can triangulate on this many different ways, and I think this is a very good buy at this price. It's a win-win for both parties.

--------------------

So to help further unpack all the moving parts, we're hosting an Investor webcast on November 18 where we will reveal our long term financial targets, show you how we plan to get there and provide more insight as to how Onshape plays in the picture.

Jul 26, 2019

In an earlier musing, I surmised that we would know that A.I. had attained truly human-like thinking (also known as the singularity) when it lies to us. This is a sign of free will, the most important of human attributes.

But perhaps not. It's possible A.I. could lie to use because it has no free will. Philipp Tuertscher writes on Twitter that A.I. is "increasingly relying on machine learning, which involves identification of patterns without having to understand them." If A.I. doesn't understand what it is doing, then it can lie without knowing that it is doing so.

The problem is that AI/ML [artificial intelligence using machine learning from large amounts of data] produces results which do work, but it doesn't know why; worse, we don't know why. The link between result and reason is lost to us.

It's much like the kid punching the COSH (hyperbolic cosine) button on a calculator and the calculator displaying the accurate answer. He doesn't know how the answer was arrived at, but in this case the answers have been confirmed by hundreds of years of experience in mathematics. (Cosh defines centenaries catenaries, the gentle curved shape of a wire as it droops between two posts, which is crucial to electrical installers determining clearances, the stretch and contraction during summer and winter months, and how much total wire is needed.)

This week we had a documented case of AI/ML making life worse for a corporation. Canada’s largest grocery chain reported lower than expected revenues, blaming it on AI/ML. The grocery chain had been pushing "to transform itself into a company driven by data... using historic customer data to help set product prices." That's the ML part.

"But when your algorithms [the AI part] focus on profit margins," they push out higher prices for products meant to be on sale. Shoppers, not being pre-programmed A.I. bots, noticed, and adjusted by spending less. The grocery chain did not realize what AI was doing to it until the accountants arrived to do the year-end books.

Jonathan Zittrain asks, "What happens when A.I. gives us seemingly correct answers that we wouldn't have thought of ourselves, without any theory to explain them? These answers are a form of intellectual debt that we figure we'll repay, and too often we never get around to it."

He was writing in an article in New Yorker magazine that reported on AI/ML finding medications that helped people, but pharmaceutical companies don't know why: "The mechanism(s) through which modafinil promotes wakefulness is unknown."

A.I. locks up knowledge in its block box, to our detriment. If we do not know what causes something, we cannot build on that knowledge.

This is not a new problem, as it turns out. Science fiction long ago wrote stories of humanity falling into the trap of allowing machines to do the thinking for us. These kinds of stories, such as Dune and The Foundation Trilogy, show the hero regaining the ability to think independently, to do arithmetic on his own, to live outside dependent society.

(Well, not always. I recall one sci-fi story in which those who figured out how to do arithmetic without calculators were locked into missiles, to help guide them against enemy targets, solving two problems: accurately targeting the enemy, and eliminating independent thinkers.)

To fend off the A.I. takeover of our independent thinking, we ought to distinguish between Tool and Device:

A tool, like a hammer, helps us with our work

A device, like a nail gun, does the work for us

A computer tends to be a tool; the tablet tends to be a device. Devices destroy man's need for fulfillment thru work. The promise of A.I. is to do precisely that.

Jul 19, 2019

Who would be interested in buying OnShape? Well, it needn't be a CAD vendor; it could be an Oracle or a SAP (both of who have long offered PLM) looking for a cloud-based CAD file editor. Both already have CAD viewers.

Or it could be a peripheral CAD vendor, like Hexagon or Trimble. Hexagon is keen on the cloud for its new line of Smart bundles, but doesn't have a cloud-based MCAD offering; on the other hand, it already owns nearly a dozen CAD packages. Trimble doesn't have an industrial strength (M)CAD system but is more into AEC.

Most traditional CAD vendors wouldn't be interested in OnShape, because they either already have such a product (Autodesk with Fusion, Dassault with V6) or else they can't afford the $169-million price tag. Two firms that don't already have cloud-based CAD and have the money are PTC and Siemens PLM -- which makes them possibilities. Of the two, I'd put my money on PTC.

But technology is not the only rationale a CEO makes to his board for an acquisition. Other reasons include:

Here's a thought out of left field: a consortium of smaller players buys OnShape and then adds tech to it as the basis of a universal CAD system. Here I'm thinking of IntelliCAD Technical Consortium getting together with Open Design Alliance to make the acquisition. The ODA already works closely with OnShape, and ITC has a CAD development-testing-distribution system in place.

So, why would OnShape even want to sell itself. Here's my opinion:

"Only" thousands of commercial (paying) customers after four years on the market

Jul 17, 2019

I've told my kinds, if you don't like where you're working or who you are working for, quit. (In my job, I get to fire clients who are too annoying.) And so we read that "Organizer of Google Sexual Harassment Walkout Leaves The Company." Actually, organizer Meredith Whittaker is one of four out of the six organizers who have left Google by this point.

Meredith Whittaker is not the only whistleblower speaking against Google mis-culture. James Daemore did, too. For the mainstream and tech media, however, Whittaker is a martyr to be hallowed; Daemore is an abnormality to be shunned. She aligns with their Overton window; he doesn't.

Then we come across this tweet by Chris Lu (an engineer at Google) that gives us pause: "Watching her experience as a whistleblower at Google and a victim of retaliation cannot signal good things for how A.I. institutions will react to negative criticism."

Advocates for A.I. (such as Google) and the singularity (also Google) tend to be hardcore determinists. A.I. is short for "artificial intelligence"; the singularity is the day when computer becomes so good that they can substitute for human brains; determinism insists that humans have no free will, because all our actions are predetermined by the chemicals in our bodies -- just like computer code.

A.I. is based on the same determinism-materialism philosophy as communism, and so we can expect our A.I. future to mirror today's totalitarianism under Xi. (Materialism insists there is no transcendental, only the material, things we can touch and see. Heh: some, like Plato, imagined the opposite: it is the material world that is unreal.) I image that an AI-dominated future will tolerate only positive social credit scores, as happens today in China. Be harmonious, or be banned.

The banned ones of the future will be the aware ones who understand that free will is our true nature. The flaw with living in a harmonious society is that it stagnates; it is discord that seeds change, and discord comes from having a free will. Change is repugnant to dictators, and so their need to suppress free will -- whether a totalitarian Xi or a totalitarian Google.

Jul 15, 2019

I've looked for years for a huge capacity music player, one that could hold my entire music collection, which is about 122GB. I got a 64GB iTouch (which one of my daughters took over), and then a 120GB iPod, but Apple's big, big failing is it doesn't allow playback by folders. I suspect the failing is due to how it sets up its protection system.

(So create playlists, Apple-hugging friends tell me. Why, I ask, when I already have all my music sorted into folders. No need to take the extra step of creating dozens of playlists.)

My fav music player brand is Sony, especially after I bough a high-end player in Tokyo some years back with built-in electronic noise reduction and fab sound through its Apple-shaming headphones. But it holds only 16GB. None of Sony's reasonably-priced players go beyond 16GB; I think they reuse their OS and chips from long ago in all their non-expensive players, limiting them to 16GB or less. For big capacities, you're into their high-end line that costs $1,000.

So I perused eBay's collection of lossless music players that are around $200-$300. I was looking for something to reward myself for the hard work I put in each Winter in my business. I settled on one that was elsewhere reviewed positively as "smaller than I expected, heavier than I expected" -- the F.AUDIO FA1 lossless music player. (Image source player.ru.) I liked the sound of that. I wanted small and hefty.

It handled lossless file formats, as well as the usual compressed ones like MP3, came with 32GB RAM but accepted up to 256GB in a microSD card. It was $275 but one site had it on sale for $210, with free shipping that took nearly three months to arrive. While waiting, I bought the 256GB memory card.

When it arrived, I found it was bigger than I expected and lighter than I expected. Solid aluminum case but plastic back. It came with a USB cord and a remote controller. No headphones, no instructions, and a Chinese interface. After being spoiled by touch screens, it was hard for me to use the click-wheel to navigate. I perused the settings until I finally could click the English interface language.

I loaded up my 122GB of music on the 256GB card, and settled in to enjoy the sound. Ugh. Constant hissing noise. Otherwise, the sound was good, and I am picky about sound. But then a bigger problem incurred. I actually timed it: it took the unit nine seconds to start a song. I don't know what it is doing during those nine seconds, but that long a wait is intolerable. I wonder if the software and/or CPU are too weak to handle processing my 18,592 files.

Then a light came on.

I have a few spare smartphones laying around, and so I wondered if any of them would take the 256GB memory card AND could handle 122GB of music files. (Some phones are limited to 128GB and many take no microSD card at all.) One did. Coupled with Neutron's idiosyncratic (see figure below) but fab music player (http://www.neutronmp.com/), the sound is wonderful. There is no hiss, it has the touch interface ('natch), and songs start immediately.

After a couple of weeks, I decided to return the F.AUDIO lossless music player. It was bigger than I wanted, had a clunky interface, hissed, and was slow. That's not worth $210 to me. The vendor accepted the return, but would not pay for return postage. Fortunately, the same week, PayPal instituted the new policy of refunding up to $30 towards return postage.

My cost in the end: $40 for the memory card. The phone, I had got free, due to circumstances. Its 2GHz CPU handles the 18,000 files effortlessly, and Neutron makes the music a pleasure to my ears.

Jun 20, 2019

I find Apple and its products painful to use, but their closed system has a better handle on security, potentially. If there is a problem of data leakage, it is at the Apple side, such as allowing Google to access data from iPhone, iPad, and Mac users through its search engine. "Google will reportedly pay Apple $9 billion in 2018 and $12 billion in 2019 to remain as Safari’s default search engine," says Business Insider. These are not amounts that anyone pays for mere market share; Google is paying for data collection with a search engine that searches us.

Never mind. Apple locks its operating system to its own line of devices. Google does not.

It licenses the Android operating system to just about anyone, and on top of that gives away a free version that "anyone" can modify, named the Android Open Source Project. We've been the beneficiary of the ASOP version, such as in projects that run Android for Intel CPUs directly on desktop computers.

Give-aways are traditionally seen as a way to increase market share. But Google doesn't need more market share on portable devices: any share Apple doesn't have (and its share percentage is eroding), Google has -- Android runs on 88% of smartphones and tablets worldwide. When the $12 billion Google pays Apple is added in, it has near 100% marketshare, competitive search engines notwithstanding.

Instead, Google's give-away is to ensure world domination in data collection, directly from our pockets and purses, homes and automobiles, offices and stores.

The snake promised that with new information (what happens after we eat forbidden fruit?) "ye shall be as god." Google tempts us with the same offer: having access to all knowledge and so become neo-gods. Being like god has god-like consequences, it turns out.

Data Borkage

Brandishing a wide-open kimono has ramifications the free-as-beer software movement hasn't been philosophically prepared able to tackle. Its assumption -- people do nice things when the software is free -- is false, even for hackers only curious about what happens when they try this thingy.

So it should comes as no surprise, then, that Google confirmed that "criminals in 2017 managed to get an advanced backdoor preinstalled on Android devices before they left the factories of [smartphone] manufacturers."

The good news is that the smartphones were Chinese brands we've never heard of, such as Leagoo and Nomu. I think that Blackberry secures its secure Android phones differently from Google; on the other hand, I could see a security intrusion inside the Chinese factories that manufacture Apple hardware and adds the iOS operating system.

It is further discouraging to know that Android is worse than Windows in needing multiple patches every month -- eight just last month alone. Unlike Windows, Android patches are probably not available for your phone, once again precisely because Android is freely available to all. Some smartphone manufacturers provide updates for two years; many give up after a few months in their rush to punch out new models. There is no penalty for not keeping customers secure, neither on Windows nor on Android.

I've wondered why Microsoft has never been sued for the billions and trillions of damage their achingly insecure operating system has done to business, government, and even households -- especially following its claims before and after the initial Windows NT launch of how secure the "new" operating system was, claims that were eventually proven misleading. (NT was not new, it was based on Digital Equipment Corporation's VMS operating system, and today Windows remains the only operating system not based on Unix.)

Looking for a Headmaster

The whole free software movement suffers from the lack of a headmaster to keep the students in line. IntelliCAD Technical Consortium and Open Design Alliance originally followed that model, but subsequently whipped things into shape following the institution of a strong, top-down leader.

Social media platforms such as blogs and Twitter were designed to bypass gatekeepers like editors, letting people speak directly to people. But in addition to another era of freedom of speech (like this blog posting), it exposed people's irresponsible loathing, which generates overreactions like exploitive fear and encouragement by governments and activists (who formerly were all in for free speech) to endorse censorship.

Joel Kotkin writes, "We have been accustomed to think of technology entrepreneurs as bold risk-taking individuals who thrive on competition, but now we know that it is more accurate to see them as oligarchs."

The plan always was to be monopolies, as Peeter Theil gave away in his 2014 book, Zero to One. The "zero" referred to starting a new firm from nothing; the "one" referred to turning it into a monopoly.

He argued in favor of tech monopolies, saying they could charge more to ensure better products and better service. I wonder if he still thinks that, given that the point to becoming a monopoly is to charge more, and then to do less and eventually eliminate customer service. Do you get great custom service from firms he helped establish, eBay and PayPal?

"Rather than idealistic newcomers, [technology entrepreneurs] increasingly reflect the worst of American capitalism:

The success of tech giants drove up wages, which drove up real estate prices, thereby blocking new upstarts from affording those iconic Silicon Valley garages from which to launch their game-changing products. They've increased homelessness, set people against people, and endangered the security of humanity.

May 27, 2019

I have the three-year-old Zenfone 3 Zoom with its 2.3x optical zoom and amazing 5000mAHr battery that lasts 2-3 days, but I am thinking of a 10x zoom phone next. I already have the old Samsung K Zoom, with its 10x optical zoom, but its primary flaw is that the power button is so sensititve that I often find the battery dead. (I use it to snap photos at conferences and transfer them quickly to my laptop through Dropbox.)

Triple slot, meaning it holds two nanoSIM cards and a microSD card of up to 2TB capacity. I find the dual-SIM function so very useful when traveling.

Stereo speakers

Headphone jack (I dispise Bluetooth connections)

Spare button that can be customized to activate functions like the flashlight or camera.

Dark UI mode, without needing to wait for the next release of Android

Guaranteed to get Android Q and R (ASUS has been updating my three-year-old Zenfone 3 every second months for the last year)

Stacked motherboards to make more room inside (ASUS designs its own)

And one of the more important specs for today: ASUS is located in Taiwan, and not China

The Zenfone 6 gets back the 5000mAHr battery I have in my Zenfone 3. While ASUS says it's good for running for two days, I love it for a different reason: at the end of the day, the battery is down 1/2 or 2/3s at most. This means I never have to worry about recharging it in the late afternoon or evening. And when I am in a situation where it's not easy to recharge the phone, such as while flying, then I don't need to panic.

Camera unit rotating around to the front

The highlight is the camera system: a motorized two-camera unit that rotates to the front to become the selfie camera. One camera has a 48-megapixel lens, the other a 125-degree wide-angle lens, which is equivalent to a 9mm lens on a standard 35mm DSLR. (See bobatkins.com/photography/technical/field_of_view.html for more about wide angle lenses.)

The motor takes about 1 second to rotate the 180 degrees, back to front. Now, I don't care about selfies, so this speed doesn't matter to me. Instead, what I find exciting is that ASUS thought about all that a rotating lens could do for us:

Rotate to any angle between 0 and 180

Stop at 90 degrees to take overhead photos or pictures close to the ground

As the camera rotates, it can take 180-degree panoramic photos, vertically and horizontally

And apparently it works with any app that can take pictures.

ASUS says the 48-megapixel lens will allow cropped zooms to simulate optical zooms. I'll be interested to read about the Oppo phone due this summer with an actual 10x optical internal zoom. As well, the 48-megapixel sensor is already obsolete, as Samsung has announced a 64-megapixel one that is due to ship this fall.

The camera also takes 4K-resolution videos at up to 60fps [frames per second] with electronic image stabilization.