Windows, Portals and a replacement for the Internet
Tonight I should be working on my novel but I feel compelled to write something else. Nothing of particular value or use, just writing, for the enjoyment of using a well-crafted tool. I would prefer to write on something with a "real" keyboard but I am getting very used to the " virtual" or "soft" keyboard of the iPad and I find that I can type at a respectable pace without too many errors. In fact, if I could have the sound turned on and keep my fingers out of the way of reading the output of my typing, I could probably approach the speed at which I can type on a physical keyboard. But enough of this, I didn't decide to write tonight to talk about keyboards (although that topic is just as important as any other I suppose), but simply to write using the Pages app and to appreciate the fact that I can even do such a thing using a device like the iPad. The best thing about this device is also deceptively simple. With nothing more than a slate of touch-sensitive glass, any two-dimensional user interface that can be imagined becomes possible without incurring additional hardware cost. The benefits of this approach were probably not even within the imaginations of those who originally brought the device to market. In fact, I believe the only way to improve such a device is to further simplify the hardware by removing the remaining buttons and any other differentiation between devices this and similar devices, and perhaps creating a shared standard for these devices so that they may all be capable of running the same applications. Imagine if you will, a simple device which is nothing more than a window into a shared network of tools. This could easily be imagined as a web browser but I want to avoid any hang-ups we have with the current idea of a browser that might interfere with our ability to imagine such a device. Our window or "portal" does nothing more than provide a robust connection to this network and a two-dimensional surface on which the user interacts with using touch. It's tempting at this point to begin considering the "operating system" of such a device and how this O/S might inflict user interface standards and conventions which flow down into how individual applications (or "apps") might behave. I'd like to eliminate this consideration and instead describe a tool which provides no such standards or constraints; a device which simply opens a portal to a shared environment where interactive elements are defined and manipulated. If there is to be any sort of "standards" they will be in the form of the properties defining this "portal" or "terminal", in a similar way that HTML defines standards for web pages (that is to say, not really at all). To take it a step further, this "shared environment", or network need not take the form of what we are already familiar with. Instead of a centralized "internet", these devices (and their users) are better served by a dynamic, ad-hoc network which does not depend on centralized resources under the control of private entities or governments as such a networks are prone to bottlenecks and outages unless extensive and expensive redundancies are implemented; all of which are unnecessary in a dynamic mesh-type network. In the mesh network, information is routed through nodes determined available at the time the message is sent, removing the need for retransmission. If the path is interrupted while a message is in transit, alternate paths are discovered dynamically to route the message to its destination and when the destination is simply unreachable (if for example the destination has been shut down) messages are queued until the destination can be reached (and queue status information is relayed to the originator of the message). Through a combination of dynamic (composed simply of these portal devices) as well as established static nodes (deployed voluntarily or via mandate of building codes), a reliable network is established exceeding the connectivity of traditional centralized networks without the limits, dependencies and shortcomings of networks under central control. This combination of simple, flexible, devices capable of rendering applications defined using open standards and the availability of a dynamic, distributed network reduces the cost-of-entry for both the consumer as well as the producer of equipment, software and content, and eliminates the need for costly "middle men" which interfere with both the usability and affordability of systems currently in place. What is lacking from our proposed system is a means for non-creators to benefit from the work of those generating hardware, software and content, and there are many entities whose business model depends on this ability who will oppose this model. It is important to understand this relationship, and to consider the position of those who consider our approach flawed. While there may be specific technical challenges which prevent the immediate delivery of the devices and services described here, let it be known that the "commodity" nature of the systems currently in use is only possible due to their wide acceptance and decades of effort in establishing and distributing these standards and philosophies. A similar effort, carried out by the consumers and producers of this proposed system, is more than sufficient to establish parity in the cost and functionality of these two systems.Full Circle
Of all the jobs I've had, one of my favorites was working at a music store. I've worked for many good companies and built numerous great and interesting things, but my fondest memories of working are of the days I spent working with music and music lovers.The Next
For as long as I can remember I've wanted to build a computer system. I'm not talking about parting together a PC or something like that but actually design, build and sell a new computing device, something that captures the imagination of a generation, like the micros of the 80's, invents new methods of creative expression and lays the runway for unanticipated creations. In my mind this has taken several forms over the years. In the late 1980's it was a machine centered around artificial intelligence and neural networking; a learning machine that could be taught how to provide assistance to the user. In the early 1990's it was a computer and an operating system utilizing the virtual reality techniques and technologies gaining popularity at the time. Later it became a system designed to solve the problems I most often encountered professionally, a system that allows business users to create their own "software" dynamically, without the need for programmers and "software development" processes. Along the way, the one consistent function of all these systems is to free the user, to allow them to express their ideas and meet their needs without relying on others, without complexity, cost or waiting. Lately I've been seriously in pursuit of building and operating a 3D printer. This follows closely on the tail of another CNC project I recently completed (as much as anything I do is completed), a laser engraving device built from the guts of DVDROM drives. This technology, "desktop manufacturing", has taken great leaps of practicality in the last few years, ushered in by the great work of the DIY community. Many see this as "the next", and I agree; however as these devices rapidly approach the convenience and predictability of "consumer-grade" products, what I see as missing is the machine that feeds these machines. A lot of work has been done (and is being done) in the development of tools which can be used to feed these machines. Much of this comes from the engineering and manufacturing fields and is of exceptional quality and produces amazing results in the hands of skilled operators. Additionally, as the popularity of these devices grow, more and more pieces of software for both existing computers as well as the web begin to emerge which allow non-specialists to create source material for these desktop manufacturing devices. The same was true of the laser printer in the late 70's and early 80's, however it wasn't until the creation of the Macintosh that desktop publishing became the revolution we now take for granted. It's hard to appreciate it now (especially for those born with a mouse in their hands), but digital document creation was radically different before the Mac. Even the most expensive publishing systems did not provide realtime feedback to the user approximating the final output at the printer. The Mac changed this, was criticized early because of this, and went on to set the standard for the desktop user interface that continues to this day. Now don't take this too literally. I'm not saying that what is missing is a computer that can show the user just what their 3D printed object will look like before its printed (after all this is a common feature), but that perhaps a new machine, with a radically different way of looking at how the work is to be done, and a more appropriate interface for the user to interact with is in order. A machine which makes creating these objects more intuitive, more natural and more transparent, removing barriers between what is seen in the mind and what is realized in reality. This is the current iteration of my machine, and never before has the prospect of creating such a device been so much within my grasp. Looking back I can see how each iteration of this idea has laid the foundation for "the next".Hardware is the next software
I heard a story today on the radio about how one of the few job markets that is thriving at the moment is that of the Software Engineer. I'm occasionally asked this question, what someone should get into to secure employment, what skills or what field is going to be where the jobs are. Let me cut to the chase and tell you:Hardware is the next software
Now to be clear, I don't like answering these sort of questions because is sincerely feel that you should select a career based on doing what you want to do and not based on job availability, salary, benefits or any of the other number of terrible reasons to consign yourself to a job that will statistically stay with you longer than a marriage. That said, if you are interested in any of the myriad of fields which make up what will be the next technological revolution, there will be work for you to do. For the last decade or so there has been a sharp increase in the do-it-yourself scene to the point where we are seeing this approach to getting what you want appearing in mainstream culture. Along with this has come some key technologies that are allowing us to apply the same sort of dynamic, agile and small-scale-big-results techniques to the making if physical things in the same way the web has been doing this for software over the last 15 years or so, You may have heard of the Makerbot? This miniature factory is capable of producing almost anything you can design (at least part-by-part) with nothing but imagination and ABS plastic as the source material. This device is doing what the Apple II and the Commodore 64 did for the microcomputer, namely producing the next generation of operators capable of appreciating the potential of this class of machine. And just as no one keying in BASIC programs on their TI-99 back in 1984 could have imagined that microcomputers would eclipse the most powerful million-dollar supercomputers in the world, we can expect the same sort of Copernican inversion in the world of manufacturing within the next 20 years, and we will look back fondly at the Makerbots and RepRaps of today with the same sense of nostalgia as web developers look back at Logo. So what are these skills? Instead of reading through course catalogs or even contemporary books from "experts", I suggest that if you are interested in participating in this job market of the future that you instead put away your pennies and save up for these or another form of inexpensive rapid prototyping machine and the lessons will become self-apparent. In the meantime, download one of the several free or open-source 3D design tools that are available on the web and start learning how to realize your ideas in the digital domain. By the time you have enought money for a printer you'll have become quite proficient at design and you'll be ready to start producing your own line of plastic brainchildren. I look forward to your contribution to resurrecting the proud tradition of the "cottage industry".
The Win95 Phone
Matt & I came up with a great idea while returning from an un-fruitfull trip to the Bonneville Salt Flats, the Win95 Phone:
The phone is operated by holding it like a mouse on on a flat surface (such as a table). As it is moved about the pointer on the screen moves accordingly, and in this "mode" the right and left mouse buttons function as expected.
Since the phone runs Windows95, the dialer (and all other "apps") are simply Win32 applications which issue commands to the cellular module via AT commands sent through a serial port (the standard method of interfacing with these modules). To complete the Windows95 experience, the operating system connects to the cellular data network using a "soft modem", which again communicates with the cellular module via serial port (set the port speed to 14.4 for a truely authentic experience!).
When a call is placed, the phone is lifted from the table and the bottom of the phone is placed against the ear. When the call is over, returning the phone to the table ends the call.
While it's theoretically possible to download "apps" for the phone from "The Internet" it is not advised due to the insecure nature of the operating system. Instead, an 80mm ("Mini CD") CD-ROM drive is included which can be used to install new software, as well as to periodically re-install the operating system.
Retail price of the unit is expected to be simular to the cost of a new Windows95 multi-media system in 1995 (approximately $1,500.00, including Windows95 license).
The App Camera
So here's my thought process this morning:- Jamie points out a cool camera on Photojojo that does double-exposure, but we lament the price ($130.00USD)
- I think about how double-exposure is one of the simplest post-processing effects, but think of some reasons that doing it in-camera could be better (overlaying the first photo over the viewfinder when the second photo is shot, etc.)
- I then think, I could probably write an elementary iOS app to do the same thing
- It then occurs to me that there's probably already "an app for that"
- I confirm that there are several such apps of varying complexity and quality


