Share this project

Done

Share this project

Done
A book and software library to make the lost art of Wide Computing - from science to robotics - available to everyone
A book and software library to make the lost art of Wide Computing - from science to robotics - available to everyone
76 backers pledged $4,100 to help bring this project to life.

About

Crawl-Space Computing with Connel project video thumbnail
Replay with sound
Play with
sound

$4,100

76

! FLASH ! Stretch goal: Raspberry Pi Connel ... see Update 4

! FLASH 2 ! Real-time programming ... see Update 6

Would you believe that half of the art of computing has been neglected since around 1990? And it's the half that is best for

  • science
  • hobbies
  • robotics and control
  • anything involving space, time, or parallel programming!

It's the wide (exposed, raw) model, as opposed to the deep (abstract, hidden) model, and it's in danger of becoming a lost art. I've been carrying its banner for 25 years, since the glory days of occam and the Transputer, and I want to leave a legacy of this clean, simple computing that adjusts to new problems without a complexity explosion.

Deep Computing (the modern standard) focuses on namespaces and abstract algorithms, hiding the "plumbing" as much as possible. Wide Computing is a contrarian model that focuses on data flow, timing and physical realities, exposing the "plumbing" that connects independent working parts. (This is why I refer to a crawl space.) If you have ever noticed that getting things to talk reliably is the major hassle in a working program, then Wide Computing can be your friend.

The Challenge

Here's the challenge. The computing monoculture tells us, "The more abstraction, the better." That means things nested within things within things, and on the outside, dominating everything, a rectangle on the screen: Graphical User Interface. My data and my task have to fit. The "plumbing" is nearly impossible to reach. 

Suppose I want to do some temperature and humidity sensors, or some space-probe radio reception, or drive a little tracking actuator? Right away: what app can I use? And what OS will it require? And what programming language? On what CPU? And can it accept my data or link up to my output? And if I get all that working, let one little thing change and it goes off the rails...

Wouldn't it be great if we could just take up the data as a simple list, and send out the commands as simple timed numbers, and get each part working, and have them all talk to each other with ease and never need any attention? Well, it's easier than you think. My product Connel (pronounced kuh-NELL), based on decades of experience, will get you there in little baby steps.

What is Wide Computing?

The basic idea of Wide Computing is to get control over the way two pieces of software or hardware communicate, putting that on the outside. Once you can do that, you can replace the software or hardware on either side, and the system will continue to work as long as it continues to speak the same protocol. This model underlies a lot of very successful, long-lived systems like the X Window System or the Internet. Wide Computing can be done simply and methodically, and Connel makes it easily accessible to the average programmer.

Everyone can write what they are comfortable with, chatting with real data from the beginning, instead of waiting till the whole program interface is ready. You can even swap hardware for software or vice versa (this is called "hardware-software equivalence"), or insert a spy between pieces, or replace one with a simple test module. Different people can write different pieces using different languages in different OSs. Connel was started as a professional tool to make it possible for an embedded Windows program and several embedded Linux programs to be coded the same way and talk at will.

Path to rocket science

Bundled with Connel is my book, which is a great learning tool for Wide Computing. It explains the theory in terms anyone can understand (remember, we are escaping from abstraction!). And it shows all the critical, practical tools that make Wide Computing possible on all standard CPUs and embedded processors in bare-bones languages like C. These are like "gatekeepers" that set you free to make code incredibly responsive and flexible. Everybody who does real projects is forced in the end, in a piecemeal fashion, to learn these. 

Wide Computing gives you their big picture, which will allow your work to branch out without major rewrites or exponential difficulty curves. To apply this big picture to any size project, the book will teach a pseudocode technique that is a variant of occam, the native language of the classic INMOS Transputer.

In fact, Wide Computing techniques flatten out the difficulty curve so that new, unplanned features can be added with only linear difficulty. This flatness is part of the very structure, like new villages in a pioneering territory. Just imagine where that can lead. Outer space, for example. We have many such possibilities in mind (I am not the only project leader), and you can be in on the first steps!

Thank you

This project would not be where it is without the work of many others. I wish to thank my daughters Elizabeth and Alice and my wife Jeanne for all their help with the video. It could not have happened without them. Also, I thank my son Tom and my colleagues William and Dave Swanson, Rob Fryer and Trey Hunner for advice in development, and especially for the chance to do real robotics and satellite science. I am more of a theoretician, but with these other creative people pitching in, some real and impressive things are getting done.

Risks and challenges

Q: How can you - one developer in only one year - deal with multiple languages and OSs in their fantastic complexity?

A: I hit the high spots, and Wide Computing helps me keep it simple. (1) Connel is written in a plain subset of C (no malloc, no C++ constructs). Most languages can embed this, or something very close to it in syntax. (2) I do Windows and Linux. I will attempt to get Connel working in the Mac, but I can't promise anything, as it depends on what Apple allows in its BSD layer. It works on both virtual and real machines; I am actually running it on a Mac with VMWare. (3) If a piece is in an unfriendly language, then as long as it supports socket communication or something similar on a modern multitasking computer, it can communicate to a small Connel-based piece that deals with all the others. The same works for embedded chips with limited capabilities.

Q: You need an Integrated Development Environment like Arduino or Visual Studio to get anything to work! How else are you going to get your code loaded, running, and talking? If no IDE knows about Connel, doesn't that make it useless?

A: It's my job to step behind such IDEs and find the text files (code and Makefiles) that make them work. Compiling, loading, and running then translate to two or three lines in a script. As for talking, that is a nightmare, but (here is the beauty of Wide Computing) a nightmare that only has to be faced once. I've dealt with Visual Studio, TI Code Composer (for MSP430 embedded chips), serial ports (virtual and real), Bluetooth (ugh!), and many others. I have taken copious notes and they will be provided as part of the reward to all backers of $10 or more.

Learn about accountability on Kickstarter

Questions about this project? Check out the FAQ

Support

  1. Select this reward

    Pledge $1 or more About $1.00

    Get a PDF copy of my Introduction to Wide Computing, which justifies in detail, and with illustrations, each of the claims I have made in this discussion. I'll try to get this out much earlier than the December deadline, and provide it to all backers.

    Less
    Estimated delivery
    10 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  2. Select this reward

    Pledge $10 or more About $10

    Get a copy of the first open-source release of Connel, able to run under Linux or Windows, and a PDF copy of the finished book. The $1 reward, Introduction to Wide Computing, is a chapter of this book, which goes on to lots of details needed in practical projects, and offers an occam-like pseudocode technique for any size project.

    Less
    Estimated delivery
    32 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  3. Select this reward

    Pledge $20 or more About $20

    Get the first release Connel and the PDF book, as above. In addition, get draft PDF chapters of the book and at least one early pre-release of Connel.

    Less
    Estimated delivery
    10 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  4. Select this reward

    Pledge $40 or more About $40

    Print Book Branch: Get pre-release and release of Connel, as above, plus open-source Connel updates and Connel-based channel spy and tester programs. Get draft PDF chapters and the PDF book as above, plus a print copy of the finished book.

    Less
    Estimated delivery
    Ships to Anywhere in the world
    1 backer
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  5. Select this reward

    Pledge $40 or more About $40

    Graphics Slave Branch: Get pre-release and release of Connel, as above, plus open-source Connel updates and Connel-based channel spy and tester programs. Get draft PDF chapters and the PDF book as above. In addition, get a Connel-based graphics slave program capable of responding to your own data feeds! This is for backers who do not need the print book.

    Less
    Estimated delivery
    8 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  6. Select this reward

    Pledge $60 or more About $60

    Combined Branch: This combines both the $40 rewards. You get both the Connel-based graphics slave program and the print book, plus everything else in those rewards!

    Less
    Estimated delivery
    Ships to Anywhere in the world
    7 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  7. Select this reward

    Pledge $100 or more About $100

    Patron Special: Get all of the Connel software and book products in the Combined Branch. In addition, you get an hour of remote consulting (travel not included) on Wide Programming your project, including embedded projects, and I'll try to integrate your input into the project direction. Your print book will be signed, and you will be credited by name as a Patron in the book.

    Less
    Estimated delivery
    Ships to Anywhere in the world
    Limited 5 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  8. Select this reward

    Pledge $300 or more About $300

    Angel Special: You get all of the Patron Special rewards, plus two more hours of remote consulting (total three hours; travel not included), and a written application note on the problem of your choice. You will be credited by name as an Angel in the book, and I'll offer you the option of taking part in further Wide Computing initiatives, including real-time, space-travel-quality hardware!

    Less
    Estimated delivery
    Ships to Anywhere in the world
    Limited 2 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  9. Select this reward

    Pledge $500 or more About $500

    Partner Special: You get everything in the Angel Special, plus you are credited by name as a Partner in the book, and you are given an opportunity to collaborate in the book and in Connel. You get a chance to creatively define other Wide Computing initiatives, including hardware and language, which your contribution helps to enable.

    Less
    Estimated delivery
    Ships to Anywhere in the world
    Limited 1 backer
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.

Funding period

- (40 days)