Tuesday, December 17, 2013

Project Snowball

I want to stack the following layers of code into a coherent collection of things that actually work...

Genode  (A capability based security, which uses an L4 trusted kernel)
Linux (which can run already as an app in Genode)
WINE (yeah, I want to run Windows apps)

I'm going to have to deal with QT5 for GUI elements, and my choice of programming languages to try to tie things together.

I want to lock Windows XP applications in sandboxes, in a way transparent to the application, and mostly to the user. This would allow legacy Win32 applications to get a non-proprietary fountain of youth, while also providing actually secure computing.
The main idea is to virtualize applications in such a way as to allow them to work... the way they always did... but not be able to compromise the OS, or anything else. Careful use of scripting to handle events such as file dialog boxes would make it also appear to work the same as it always did, to the user.

They don't have to know that the application actually writes changes to a temporary workset, and only gets true access to files that the user selected via Powerbox (that is made to look identical to the Windows File Open dialog), and then passed to the application via the simulated dialog box not shown to the user. Careful management of interfaces to the application, and to the user, can create a seamless native experience, without the insecurity.

Lots to learn, but at least we don't have to re-write any applications. 

Who is with me?

Hope for the future?

After this mornings posting, on the drive to work... I had an epiphany that may make it possible to have secure computing for everyone after all...

Here's are the working parts going into this ghost of an idea


  • Genode, a L4 microkernel based OS has been churning towards self hosting for a while, and delivers complete Capability Based Security.
  • Genode can run Linux programs as a process.
  • The Linux Wine project has gotten to the point where it can run Windows XP programs quite well.
  • The APIs for Windows are somewhat well known at this point.
If one were to write the code to manage an XP application as a process under Linux / Wine inside of Genode, you could make it appear to the user to be just like XP for most things.

But... a layer of manangement would make things more secure.  How?   Intercept all the dialog boxes for file names, etc... and have them passed up to the user as normal, but then add those as capabilities to the process. This would allow the application to believe it's in a normal XP world, and not have to be tweaked.  The user would still ask for files, etc... like normal.

The difference would be when the application tried to access something outside its normal mission... the management layer would then translate it to the appropriate access, OR just fake it so the application thinks it got away with it.... and toss the results after run-time.

This means that Macro Viruses would work just fine (as far as they knew), but wouldn't actually do any damage. All without tweaking Word, Excel, etc.

A back-end which had a database of appropriate settings could be maintained for everyone which volunteers could add to, in order to support new apps as they were discovered.

This would lead to a secure XP like system (which actually wasn't dependent on Microsoft), and could be managed remotely, at very low cost, for a very long time.

How secure? No virii, no need for scanners. ;-)  Surf any web site with IE6, and it just works, does no damage, and life goes on.

Now to figure out how to make this idea actually work.  Comments and help appreciated.

The lost opportunity of computer security.

I have lost faith in the future. I know that we've lost a key opportunity to build a better future. It's very tempting to look back and point the finger at 4 key men: Gates, Jobs, Torvalds and Stallman, but that wouldn't be fair to them. They had their own battles and fog of war to overcome.

Nobody seems to really understand how truly fucked up things now stand. We could have computers on our desks, and in our hands which are honestly secure. No virus scanners, no constant need to live in fear of something taking them out at random just because you looked at the wrong document, email, or web page.

We don't have that... instead we have layers of scanners trying to quantify evil before it gets executed. We're locked into a future of having devices we can never trust. Devices which will always be a possible tool of oppression.

There is only a narrow window left, while there are still enough desktops and developers to use them to develop something new. An honestly secure operating system, which can be the foundation of honest and trustworthy computing for the masses.

I've explained capability based security so many times, and so many places... your first instinct is to say I'm calling for a silver bullet... but it's not magic, it is just common sense when you think about the really big picture. It's also not a bullet, as it's going to take epic amounts of work to get everything ported to it, years of work.

But... if we can turn this ship, just a bit, we can have computers we can trust. Computers that could then be trusted to talk to other systems. We can end the persistently insecure end-node issue, and start building an internet we can control and govern ourselves.

I hope this makes sense, and catches hold in your psyche... the stakes are huge, and I think you, dear reader, are the only hope left.

Thank you for your time and attention.

Sunday, December 15, 2013

Hard problems in computing

There are some problems, which I've become aware of over time, which tend to take a long time to explain to the layman, because they involve layers of abstraction, that are hard problems. But it's not the abstraction that makes them hard, its programmers and power users and "experts" who really keep things from getting fixed.

Why? Because we feel the issue isn't important, or has already been addressed adequately.

This list will grow, but here's a few to start from.

1. Computer Security - I've talked about this one at length, but the basic gist of this is that the idea of trusting application code, or anything outside of the microkernel of the OS, is insanely stupid. Yet all the Linux fanboys are convinced they don't have anything to worry about. The Network security folks see it all as either dumb users, lazy admins, or bad programmers. Nobody sees the broken security model that got obsolete once Unix left the classroom in the 1970s.

2. Metadata as part of the operating system's job. - There was a good set of blog posts by the person who headed up the Microsoft efforts to integrate metadata into the OS, the last attempt being WinFS. As with problems in this list, it takes a lot of time just to explain the problem. Linux doesn't do it, Windows failed to do it, and we're all the poorer as a result. You should be able to manage and transport metadata with a file, across systems, and just have it work.

3. I haven't found this one yet, and it will take someone an hour just to explain it to me, should they convince me to listen that long... and I'll have an ah-ha moment.... and add it here.


What are your Hard problems in computing?  Doc Searls probably would put VRM vs CRM in here, as an example.


Friday, July 12, 2013

A radical idea about ending lives with dignity for Indiana.

I think that the State of Indiana should open up a new facility for those who wish to end their lives in a dignified manner. Someone wishing to die, would travel to this facility, get interviewed by doctors, psychiatrists, and a sitting judge rotated for a short term from their regular bench assignments. Those would serve to filter out people who really don't belong there for other reasons.

Once you passed admission criteria, you'd have a waiting period of at least 3 days, maybe a week or a month... whatever isn't entirely cruel... to stay in a hospice type atmosphere. During this time, you're free to leave for any reason, with no repercussions. 

After your waiting period, you'd then be eligible for euthanasia, and burial in accordance with your wishes.

Tuesday, July 02, 2013

Persistently Insecure Endpoints

Our biggest "cyber security" problem is one of persistently insecure endpoints. The reason we have persistently insecure endpoints is that they can't be made secure, no matter who writes them, checks programs for virii, etc
All of them run a program within the context of a users permissions, leading to the possibility of privilege escalation. SELinux tries to fight this by locking down each program, but even that approach has some strong limitations
To be able to securely run a program on any operating system, you need to be able to specify the side-effects you're willing to allow, before running the program. This is the reason that Functional Programming is getting so much attention and the application level.
The IBM VM system was among the first to provide such an environment, back in 1972. (I'm sure someone will dig up an earlier system). The reason that VM systems can be secure is that when you set up a virtual machine, you specify all the things it's allowed to use, and to change. It can only affect it's own disk space, etc.
Modern systems such as VMware also offer the possibility of real security, but at such a gross level of granularity that it's unlikely to be used in this manner. The only system on the horizon that offers a way out (as far as I can see) is the Genode project which is a full on capabilities based system, built upon your choice of secure kernel.
This whole cyber-war mess can be shut down, if folks wake up, and start acting in a manner to fix things... otherwise prepare to be serfs to our corporate lords and masters.

Sunday, April 14, 2013

Curitoria - an idea

I have a vague notion of a web tool that I hope this post can capture before it gets completely lost from my mind. There are tons of ways to write something, and put it on the web, most of which have been captured into walled gardens.

There are fewer ways to read things, but lots of platforms to do it on. You have browsers on everything from  Desktops all the way to smart phones. A simple HTML page can be seen on more than a billion devices. The mechanisms we have to checking multiple pages, and keeping track of them are far fewer. One of the big ones (for me at least), Google Reader, is about to hit the end of it's shelf life.

This means I have to either work with something only available on my one machine, and hope it never breaks, or go to another walled garden sort of thing, and hope for a longer shelf life. Subject to the whims of whoever controls the reader.

--- I also have a different complaint, one semi-related... in that it's become obvious that any message system which has ranking eventually results in a community of consensus which seems quite intolerant of outside views, to the point that it's a self sustaining thought bubble, which actively pushes out reality it doesn't want to address.

Ranking in these systems is always along a single dimension, which results in a popularity contest. The encourage results are those that are emotional (usually funny or sarcastic), with the occasional nod to actual insight or wisdom. In depth thought is discouraged, as the first written responses are read and rewarded far more than those requiring time.

--- There is also the complaint that the walled garden has essentially captured our souls. We used to have lots of ways to do things, blogs, web sites, etc... these seem to have all been subsumed by facebook, twitter, etc... for each style of conversation, there is a walled garden for that.

So..... here's my idea to try to weave a solution to all of these in one fell swoop.

We have a locally run server on each users PC (or a cloud server, if the user so chooses), to keep their view of things consistent and persistent. What are they viewing?  All of the comments about things they ever want to keep up on. Think of RSS but with millions of feeds. A web of comments, threaded together by the users comments and curation.

You would have your own collections of things, with each item having at least a URL to find the source, along with the timestamp of it's curation. There would also be rankings (on an unlimited number of dimensions... i.e.   wisdom, humor, insight, novelty, evil).

So each person would curate, and share their rankings of things in an RSS style feed, if they so chose. A group of people would then be able to converse and share content gathered from anywhere, without having to put it all into a walled garden.

--- Another way of viewing this is to say I'm deconstructing the message board, and re-creating it as a distributed decentralized federated replacement that nobody would own, and anyone could improve.

The key is to figure out how to do RSS on a much larger scale, with as little overhead as possible. There could be millions of items, which may only be updated one in a lifetime, or every minute. Some form of expectation has to be factored in, so we're only polling those frequently changing things frequently.

Some form of aggregation of output would be good as well. If I could specify that I'm going to publish all my comments at a given URL, then it makes it much easier to follow everything I do, in one spot, instead of checking all the gardens that might be affected.

---- To recap... I want to be able to comment on posts from anywhere, and have other people do the same, and be able to share those comments, rakings, curation, etc... without having to put them everywhere.

Monday, March 25, 2013

How to install Windows Server 2008 r2 to D:

This is the only way I've found so far that actually works to put Windows 2008 server on D:

  • Install Windows 2008 on C: (you will trash this later, get used to wasting time)
  • After successful installation, use the storage manager to change the name of the CD-ROM drive to R: and reboot (rebooting is important, don't skip it)
  • Use the Registry editor in Administrator mode to rename key  HKLM\SYSTEM\MountedDevices\DosDevices\C: to D:
  • Reboot, and windows will act stupid
  • Start task manager to run Explorer as administrator
  • Run Windows Setup from your CD, and install again (this time to D:), and do NOT upgrade
  • Eventually you'll have a system installed on D:, and a Windows.old directory to nuke.
It took me about 30 hours to figure this out, I hope I save you some grief.

Wednesday, March 13, 2013

Google to disorganize the world's information, and be evil.

Google supposedly wants to organize the world's information, while not being evil.

They are about to close down Google Reader, which is one of the best ways to use RSS feeds to keep tabs on a lot of web sites without having to visit each and every one. It keeps track of what you have and haven't read, and is a great way to organize information.

Now I learn that it's about to go away.

First they hounded Aaron to death, now they're killing some of the utility of RSS.

Lots of evil at work here.

Another sad day.... 8(

Monday, March 04, 2013

Super wire - A call to action


I believe it is well within the capabilities of any non-chemistry adverse hackerspace to eventually create polymer cables which are 10 to 10 million times better than silver at conducting electricity up to the melting point of the polymer.
Here are some pointers to get you started.
Ultraconductors got killed in the 2008 market crash. Had they not got killed, they were making superconductors out of plastic, they called it Ultraconductor [chavaenergy.com]. (Not to be confused with the speaker cables of the same name). This stuff conducted at room temperature a million times better than silver! I have no doubt they could have done it, had the economy not killed them. Here are the relevant patents.
US Patent 5,777,292 [google.com] - Materials having high electrical conductivity at room teperatures and ...
US Patent 6,804,105 [google.com] - Enriched macromolecular materials having temperature-independent high ...
Here's a 2005 interview (.pdf, sorry), which may give some insight about Ultraconductor.
The 2000 Nobel Prize in Chemistry [nobelprize.org] (pdf) offers some good info about conductive polymers.
US Patent 7,014,795 [google.com] discusses the growth of crystalized electron pairs (otherwise referred to as polarons in other places), the diagrams are especially helpful.
Again, I believe it is well within the capabilities of any non-chemistry adverse hackerspace. Let's get out there and  do this awesome thing!

Saturday, January 19, 2013

Jury Nullification - fact or fiction?

It's been a week since Aaron Schwartz gave up, and decided he had no options left. Why has it take me all this time to even consider if asking the jury for reasonable compromise was an option?

I have no idea if jury nullification is something that can be done in the 21st Century here in the US or not. If not, then I believe we need to change it, NOW.

Could someone reading this give me a good solid non-wikipedia based answer as to what would have happened if Aaron had tried to use this concept in his defense against rabid prosecutors?

I want to know.

Friday, January 18, 2013

Self Valeting Cars

Imagine a car that can go find it's own parking spot, and return when you call it on your phone.

It could come get you if you need a ride, and are stuck at the office.

Imagine if ZIP cars could do this!

The future is cool again!

Monday, January 14, 2013

A Critique of modern discourse


A Metafilter story got me to writing about the problems with modern discourse as seen on the Internet. I thought I would spend some time refining and extending those thoughts here. By no means is this the definitive word on what's wrong with the internet, but I hope that a cogent summary might help fix things.

Time Pressure

1. First post phenomenon - On a site such as /., comments are sorted by default in the order they are received  This means that the first post gets the most feedback, and sets the tone for the rest of discussion. This results in a bunch of hasty, emotional, not well considered crap that then has to be moderated around in order to extract value.

2. 15 Minutes of fame. - Any post gets attention, and then gets pushed under by the oncoming store of other stories in 15 minutes, maybe a bit more if you're evil like Carmen Ortiz... but only a bit more. This means that any effort you do put into something isn't going to pay off much.

Text is Messy

3. Comments on a message board are usually undifferentiated text, sometimes with a bit of formatting. There is no easy way to tell visually what the meaning is without forcing oneself to read it all, and then start to draw out conclusions about structure, agreement/disagreement, etc.

Moderation is a kludge

4. Most moderation systems are a layer of code designed to filter out crap, and help extract some value from an otherwise overwhelming amount of undiluted text. Like spam filters, there are behaviors and techniques that get used to route around them.

  The most common form of moderation system is to have a ranking system (like/dislike), which turns commenting into a popularity contest. The funniest or most vocal viewpoints drown out everything else.

5. Popularity contests are 1 dimensional - There are lots of reasons someone might want to flag a post (which isn't quite granular enough for me, but you have to start somewhere)... agreeing with a post as "having value" is the standard here in the blue, but elsewhere it's a direct measure of the groupthink agreement. (/.  for example)

Wouldn't it be better to have multiple dimensions of ratings? Factual/wrong, Conservative/Liberal, Cheap/Expensive, True/Lie, etc.?  They wouldn't have to be the same set of things either, but it would be easier to code for lets say Funny, True, Insightful as separate (orthogonal) dimensions.

6. The missing half of Facebook - Facebook doesn't allow the inclusion of negative votes, so it's actually only 1/2 dimensional.

Anonymous people are assholes
7. Anonymity allows people to say things they'd not say in person. Remember the Id in Forbidden Planet?

So, how can we help fix it?
There are a number of strategies to be used to help fix this.

Use your blog more
The first is to blog more, and comment less. If you find yourself writing something in a comment that seems to be really insightful, make a more refined blog post out of it (linking back to the discussion for context). Blog posts are better than comments on someone else's site for a number of reasons:

  • You own the post, and can tweak it later if necessary. This times into and builds your reputation internet-wide, instead of in on little corner of it, subject to whim.
  • The post can be found later, as a stand-alone piece to be referenced, and can be more self-contained.
  • Time pressure is less because blog posts can stay "popular" for years. A few hits per month done a few dozen times means you're always getting feedback and links.
  • If you've already written about a particular view, link back to it, and perhaps tweak it a bit with improvements.
Build a better commenting system
Someone (me?) needs to come up with a better commenting/moderation system, that allows the multiple dimensional rating that I discussed above. It would be nice to discover visually how the arguments are inter-related about a given topic, to allow one to focus ones time better, and improve signal/(signal+noise) ratio.

Review your comments periodically
It would be good if we all where to re-read the things we've written with some distance of time, and get a better sense of ourselves. This can help us to all be better writers and readers.


Friday, January 11, 2013

Meme Patrol

I recently posted the following on Metafilter, only to find it "disappeared" in 1984 style.

I find the idea of "meme patrol" to be the key here... imagine if you can watch for people who might have an insight that helps in opposing your cause, and then deliberately derail them (while building a big database of such people).
You could quickly know what to look for, who to try to discourage, etc., you'd be able to wisely leverage resources in a manner far better than astroturfing, etc.
Imagine if you had a technology that was top secret, and wanted to delay it's eventual re-discovery by the masses... this would be the way to do it. Find people who are starting to figure it out, and target them in a subtle but persistent manner.
... now I have to wait for the meta-troll to come after me. ;-)

Tuesday, January 01, 2013

Tooling up at PS:1

I'm now the metal shop host at Pumping Station One, a makerspace in Chicago. We've received quite a few donations in the past year, and we're working on getting everything up to speed. We're "tooling up". I've taken the last 2 visits to build a few accessories for the machine tools.

Sunday I made a chuck key for our Prazi Lathe.

Prazi_Key
Prazi_Key_in_chuck

Today, I made my first project of 2013, a tool holder for the Grizzly lathe.

Tool_Holder_1 Tool_Holder_Mounted

The year is off to a good start. 8)

Welcome back, Doc!

Doc Searls has resolved to start blogging daily again, and I say welcome back. I think he's on to something, so I'll join in the fray as well. It's time to get away from the walled garden that is Facebook, and to re-invest time and energy in a more open and free way.

It's a new year, and a time for looking back, taking stock, and setting a new course. I've spent time reading a lot of things, some of which I file here with the tag Wisdom, on delicious, a social bookmarking service. The most recent entry is to a post by Paul Kingsnorth about finding a way out of the technological progress trap we're all embedded inside of. It's thought provoking, and reminds me that I'm an adult, and have some heavy duty choices to make. Part of it is devoting time and energy at my local hackerspace, PS:1 in Chicago, where I'm now in charge of the metal shop. (Me, an amateur machinist).

I think it's time to more intelligently deploy the resources I have left, and to be more aware of the consequences that I can generate if I'm careful and a bit lucky.

Thanks for your time and attention.

PS: I'm looking for work, by the way. I've been outsourced.