Thanks for the feedback.  I have seen clips of Microsoft Surface.  
However, it doesn't look like it's targeted at replacing our working 
desktop.  It seems like more of a social toy with a few useful features 
rather than a new user interface that will replace our current operating 
system.  Though I'm sure Microsoft is looking at incorporating some of 
the ideas into Windows.

Well, realistically I need to sort all of my ideas into what's possible 
for a first release.  For example, the visual database design kind of 
stuff will need to wait.  My general plan is that at first it would be a 
Linux desktop.  If it gains interest and as features are added it will 
make more sense and may even be necessary to make it its own distro.  At 
some point in the far future there may come a time to make a commercial 
arm and really push it into everyone's lives, but that's just a dream at 
this point.

I kind of look at this project in terms of what applications/services 
can it replace and bring into your native desktop.  So for the first 
Linux desktop release, I'd like to complete wrap around email, im, 
address books.  Then there's the object hierarchy/ontology, spaces, 
tagging, etc and the scripts/tools standardization.  I still have to 
work through the exact details of how the layers will interact.

Raster just replied:

basically you want us to re-implement every application in existence so it
works with your idea. you know that isnt going to happen? (from photo editor to
text editor and so on...)

Not every application.  I think big apps always will have a place, e.g. 
3D Studio Max, Music Mixing software, etc.  I just think that many of 
the applications out there would be unnecessary if your computer was 
just more capable.  It sort of ties into Tim Berners-Lee's talk on 
linked data.  Why create brand new apps or websites around each data 
set?  Why not just naturally access and manipulate the data with your 
computer?  Use a collection of small tools that have uses if different 
contexts rather than one big tool that has just one useful domain.

It's exactly like the GNU command line tools.  This time the command 
prompt is your desktop and each program can be executed through a 
discoverable interface rather than having to know the name of the tool.  
And just like GNU tools, you can install new tools and have them 
integrate with your desktop easily.

Think of why you use the command line and the power of piping programs 
together.  This project would bring that kind of power to the average 
user in a visual form.  Take grep for example.  In this desktop, when 
you have muti-line text selected you'll have the option to filter 
lines.  Under the hood the system will be using grep.  It's just a 
matter of gluing everything together in a clever way.

I'm not naive enough to think I can do all of the work alone.  But if I 
can just get a few developers to help design the core user-interface and 
concepts.  The rest is just plugins and tools written to the standard.  
As these tools mature you'll bring them into the core set of tools that 
people will begin to expect from the system.

So for example: Somebody wants to watermark a bunch of pictures.  This 
tool doesn't exist in the default system.  They go to an online 
repository of tools and search for watermark and find something.  The 
developer of this tool just had to think about an array of pixels and 
what parameters the tools has, such as the location of the watermark and 
the watermark image.  After the user installs the plugin they can create 
a selection of images and use the tool to watermark them.

Think about the difference from the way its done today.  Both the user 
and the developers job is easier!  The developer didn't have to worry 
about designing a user-interface or a full-blown application.  They just 
had to write a little script that adheres to a certain API.  The user 
didn't have to learn a new user interface.  More importantly they had to 
do less work in terms of clicks.  The simplest application would require 
you to go through an open dialog or drag-drop pictures onto your 
watermarking app.

What's more is that combinations of plugins will increase the power of 
the other tools.  So say in this situation I have 1000 pictures all in 
the same folder.  Their names are a mess, and I only want to watermark a 
portion of them based on size.  If I get a selection tool that lets me 
filter my selection of images based on size, then I just use the 
watermarking tool on that sub selection.  With another authors image 
file filtering tool I've increased the power of the watermarking tool 
and any other image processing tool.

Again, in the current (old) model, you would have to rewrite your 
watermarking applicaiton to have image filtering features built-in.

I think it's possible, and more importantly, it's possible to do 
incrementally and distribute the work.  The hard parts are creating a 
good API and standards for the tool plugins.  Handling dependencies, API 
changes/upgrades, that kind of thing.

So as I see it, this system has two fundamental core components that 
would be independent standards:

1. The organization of objects, their properties, and how they can be 
accessed through an API.  Classification of objects (simply mime-type?), 
inheritance of properties?  How do you expose an object to a tool?  How 
can ui tools search for objects and move them around (move between 
spaces, contexts, share them).

2. The tool standard.  How you write a tool to plug into they system.  
Ideally you could write a tool in any language (C, Python, JavaScript, 
etc.)  There's a lot of work in gluing the languages together.  The API 
the tool has access to.  For example, a tool working on an image would 
be interested in finding the image type, size, etc.  The tool spec in 
terms of versioning, compatibility, dependencies, etc.  Also, there 
would be different kinds of tools:  object tools, ui tools, filter tools.

Then there's just the user interface built on top of these two 
standards.  Your selection widget is just core tool.  The selection 
widget listens for ctrl+clicks.  When you ctrl+click something, the 
widget decides how to highlight it.  Then it uses the previous APIs to 
query its objects, query the system tools, and match up the right tools 
for your selection.  This means that if people don't like the way 
selections work in this system, you can just uninstall the default 
selection behavior and install someone elses widget.

In a way, the selection widget acts very much like a shell, executing 
other programs based on user interaction.

Hopefully I've made this idea seem more feasible.


-Arlo




Ubuntu User wrote:
> Wow, sounds like a neat idea. I'm not a developer, so I can't speak
> for the project, but just from a preliminary read I can see that you
> might have to go beyond the desktop to get this to work. Do you have
> any implementation ideas?
> On Wed, Apr 15, 2009 at 2:59 PM, Arlo White <[email protected]> wrote:
>   
>> I've been following the Enlightenment project for years, always
>> impressed by the strength of vision and dedication of the developers.
>> Every once in a while I take an inventory of the graphical toolkits out
>> there and am always disappointed by the fact that the EFL is the most
>> progressive desktop gui system out there and yet hasn't really broken
>> into the mainstream.  All the other GUIs (QT, GTK, Windows) are built
>> around boring components (boxes, pull-downs, radio, etc.)  The concepts
>> behind these mainstream toolkits are decades old.
>>
>> When I look at the web, I see all of the excitement about Web 2.0 and
>> the Cloud and "Linked Data".  But it's all branded and contained within
>> different application spaces. You go to GMail to access your contacts
>> and send an SMS.  You go to Facebook to update your status.  You also
>> have your status to set on GMail, AIM, and every other application.
>> These things are really just implementations of a concept.  This is
>> especially confusing to less intuitive computer users.  Users have to
>> learn a ridiculous vocabulary to do things they already naturally
>> understand: (eMail, Instant Message, AIM, GMail, Yahoo, Facebook,
>> MySpace).  Instead users should just have to think "I want to send this
>> to Bob" (Email/IM) or I want to tell everyone who cares about me
>> something (Post a Status).  As the features these companies offer all
>> coalesce, one wonders why we need to be branded at all?  Why not just
>> standardize on these features and give users more intimate access to
>> them through their own computer.
>>
>> To make things worse, this is all implemented on a HTML/Javascript layer
>> that was never designed for it.  Developers have to wrestle with browser
>> eccentricities and code hackery becomes a necessary part of the
>> development cycle.  Instead of looking for a better platform than the
>> browser people have over-inflated its ego (and purpose) and made plugins
>> for it.  Now we have Ubiquity, a great idea built on the wrong
>> platform.  Rather than take a step back and design a new standard
>> rendering layer we now have Flash, Silverlight, and JavaFX.  The browser
>> is tired and overloaded, it's laden with features that belong on your
>> desktop, not next to your web page.
>>
>> If you've read sci-fi, or watched movies like Minority Report, you know
>> what could be possible.  Direct meaningful interaction with visual
>> representations of data.  I think now is the point in computer history
>> where that vision can actually become a reality.  It's simply the
>> intersection of the browser, your desktop, the Web 2.0 services, and
>> personal management tools like OmniFocus or mind-mapping tools
>> (Freemind, Xmind, NovaMind, etc).
>>
>> So let me try to explain this idea more concretely...
>>
>> Imagine your desktop as a space with context.  When you start working on
>> a project, you create a new space/desktop for it.  As you open
>> files/email/urls it all gets associated with this context.  When you
>> decide to work an another project, you'll close this space.  Later you
>> come back to it, and everything is as you left it.  When you search your
>> computer you can search within a space or all spaces, and move or link
>> things between spaces.  A desktop will dynamically adjust to the
>> contents.  If you have 3 pictures you're working with, they'll just be
>> thumbnails.  If you're working with 1000 pictures, they'll be abstracted
>> as a list that you can manipulate.
>>
>> Now imagine that all of these things you work with have meta data and
>> tools associated with them.  Your computer has a hierarchy of objects
>> and tools.  For example, a picture can be scaled, rotated, color
>> filtered etc.  Text can have different fonts, colors, be translated.
>> These tools are really just simple programs or scripts that are visually
>> abstracted.  Eventually there might be a database of tools you could
>> download for different purposes.  This is one of the more difficult
>> components to design well, but I think it can be done.
>>
>> Within a space you can create selections of different objects and save
>> the selection.  Once you have a selection you can act on it in different
>> ways.  You can act on their common properties.  So since all objects
>> have a creation date, you can sort by creation date.  If they're
>> pictures, you could rotate all of them.
>>
>> Now expand your concept of desktop objects.  Not only can they be files,
>> but they can be objects from a database or a website.  They might be
>> widgets like you would see on any of the portals (Google, Yahoo, etc) or
>> desktops (Google Desktop, Gnome/KDE/E widgets).  They might even be
>> objects from the local database.
>>
>> Any of these objects can be acted on in certain ways.  You can annotate,
>> tag, categorize, or set a due date on them.  You can also create basic
>> elements and combine them.  Rather than fire-up gEdit to take some quick
>> notes, you just start typing notes on the desktop.  You can tag these
>> notes or set due dates for them, and they become todo items.  You can
>> type some text and then start formatting it.  Then convert it to HTML or
>> a Word Document or whatever.
>>
>> If you're still with me you have some kind of image of a desktop that
>> understands many kinds of files and data objects and can represent them
>> visually.  A desktop that might look something like what you see in
>> sci-fi movies where you can visually drill down, make selections, apply
>> operations, etc.
>>
>> Imagine that you have a list of contacts that's deeply integrated with
>> this desktop environment.  When you open a message from someone on a
>> space, the attachments can be moved onto your space and be manipulated
>> as objects, you never have to open a save dialog.  Also, the person
>> becomes associated with the current context.  These contacts have email
>> accounts, im accounts, facebook accounts, etc, but you don't really care
>> about that.  You never open an email or instant message client.  You
>> simply get messages from the person and send messages.  If the person is
>> currently online through an im service the message is sent with that
>> method.  You can drag any object onto a message.  The computer
>> intelligently translates the data.  So if it's a selection of rows from
>> a database, it inlines it in the email as an html table.  There's no new
>> data formats or apis, when you get an email with an html table in it,
>> you can drag it out into your space and manipulate it and break it
>> apart.  Imagine the power of this kind of easy communication and imagine
>> that every object can be sent to someone.  If an object is "online" it
>> will give the person a link, if it's small it may inline it.  In
>> addition, you could invite people to collaborate on your space while you
>> work on it.  Or maybe work with online spaces stored elsewhere?
>>
>> I'm also thinking that this kind of computer environment would replace a
>> certain amount of work done with data mining and database tools.  I
>> don't do much consulting work but I've encountered a few people that had
>> a conceptually simple problem that required a database but the tools
>> were just too hard to use and maintain.  They really just needed a few
>> tables with very simple associations.  Imagine if you could just
>> visually setup a database and define its entities and then manipulate
>> and search it just like any other object on the desktop.  Instead of
>> developing custom reports for every database, you give people the
>> availability to create tables and charts using any kind of object.  Say
>> you select a list of pictures, you can then graph the picture dates on a
>> time line.  Say you have rows from a database, you can do charts with
>> the measures found within that data.
>>
>> Hopefully you understand what I'm getting at.  The paradigm shift is
>> huge, but I think it's the way computers need to go.  Think about it,
>> what does your email client or instant messaging client really give
>> you.  Aren't they just different interfaces around the same fundamental
>> concept?  If your computer was effective at organizing and archiving
>> your email why would you even use an email client application?  I
>> believe this type of integrated desktop would completely replace your
>> need for separate email, instant message, task management, photo
>> management (Picasa) applications.
>>
>> I've been thinking about this project for a long time now and would like
>> to begin serious work on it.  I'd like to create a collaboration space,
>> gather interest, and start documenting more concrete ideas and organize
>> all of this into realistic releases and milestones.  I plan to start
>> coding in 2010 after I've had a chance to talk to different experts and
>> design the main concepts.  I'm curious though if this could become the
>> Enlightenment Desktop or maybe the next release (0.18 or maybe 1.0)?
>>
>> If the developers are not interested in this vision than I'll probably
>> just start a separate Linux desktop project that uses the EFL.  Maybe
>> call it Nirvana?
>>
>> Tell me what you think.  Has anyone heard of similar ideas?  I've tried
>> to find projects related to this but I don't even know what to search
>> for.  It's a bit cynical but I truly believe that this is something that
>> won't ever come out of the big companies and can only be developed
>> through open source.  Large web companies won't be interested because it
>> essentially obsoletes most of their products.  No need for Google Docs,
>> GMail, Picasa, Yahoo's Portal/email, etc.  I'm not sure Microsoft or
>> Apple has the vision or desire either.
>>
>> Also, tell me if I'm totally crazy or not.  Do some of you think about
>> these concepts too?
>>
>>
>> Sincerely,
>> Arlo White
>>
>>
>> ------------------------------------------------------------------------------
>> Stay on top of everything new and different, both inside and
>> around Java (TM) technology - register by April 22, and save
>> $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
>> 300 plus technical and hands-on sessions. Register today.
>> Use priority code J9JMT32. http://p.sf.net/sfu/p
>> _______________________________________________
>> enlightenment-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-users
>>
>>     


------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
enlightenment-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to