01
Mar 10

software as a status symbol

Tools impress me. Well… Great tools do. I love when my friend takes out the (new to him) antique micrometer that is precise to one ten-thousandth of an inch -Ill find my self measuring a book, just to see. Or a stand of hair. But as I was talking about yesterday, there is a lack of love for our software. Something I wanted to cover was this idea of being impressed or “status symbols” by software products.

When was the last time someone said “Oh man! You have Microsoft word?” As I noted before, precision tools make me happy, but why not Autocad? Surly any CAD software is 100 times more precise than any micrometer I have ever used. This seems easy to answer though. There is the lack of craft. Physical tools need to be made, and many times hand made, but software lacks this. Sure thousands of hours went into the original creation of the software, but we dont see that. And actually it could be argued that the best software hides it the most. People dont want to see the craft of software.

So what about status symbols? Usually these are based on price. “Hey there, check out my new BMW!” The point is that there is importance in someone that could afford such a car. Well there are software products that cost tens or hundreds of thousands of dollars. But is that impressive? No, not to me at least. Maybe it is the ability to pirate it that makes it less impressive… after all, anyone could have it if they really wanted to. Maybe it is the lack of care of the product. After all who really cares about a $50K CAD system? But honestly, people are often impressed by art that costs a ton even if they dont like it.

Software seems to lack the ability to impress or seduce. Buy why? What is it that make us act so differently with our software products? Lack of perceived value? Is it the screen that keeps us from touching them, their intrinsic buggy nature, lack of human touch in an obvious way? Lack of space taken up in your living room?

—–Tacked on—-

Could it just be about the lack of perceived value? Often people complane about the cost of software, like it is a rip off… After all, all you are getting is a CD, how hard is that? What people often miss is the insane amount of time that went into crafting that. The really funny thing is that we have no issue with paying a thousand dollars for a machine to run it, but without the software it would just be a lame box.

But even though I work for a company who makes software, and I design said software… I still don’t feel the craft. And if I have this much of a disconnect… what hope do others have?

As I said good night to my wife just now… I asked her. “Do you find value in software?” She said she didnt. But she felt it was because of pirating. But then she said she does see value in music, that people also pirate. I wondered… Maybe it’s just that we find value most in things we want to use, and see little value in things we have to use.

So how can production software make you want to use it?

28
Feb 10

Where is my wusthof steak knife?

Yes, it has been awhile. My sister was in town, and my birthday… yada yada it has been 2 weeks.

This isn’t a recap of the bildr work I have been up to, this is actually more about something I have been thinking about for awhile and im going to try to tell the story.

It was almost a year ago, 3 friends and I are on our way to a Florida for spring break. Leaving mid-afternoon we planed to drive to our friend’s house and spend the night before we would jot down the rest of the way non stop.

That night we arrived at friends house to find that his sister, new to culinary school, would be cooking up some steaks for us. So sometime around 11pm we sat down to dinner, steak and and next to it, a new wusthof steak knife. I took my knife and sliced into the steak……….. For the first time in my life, I was able to slice the steak as thin as I wanted to, it was just so wonderful. The knife was so good that the steak dinner stopped being about food, and became all about the knife. The steak was great, but it’s not something Im still talking about almost a year later.

Once in a while I will use a product or a tool that just makes me stop and take notice.

So this is what I have been thinking about. When is the last time a software product wowed me this much? When was the last time the software was an actual pleasure to use, that you actually look forward to using?

14
Feb 10

Difference engines

Screen shot 2010-02-14 at 9.52.16 AMSo something that I have wanted to put into bildrCode since the start is something called a difference engine. A difference engine takes two files and shows you the difference between them. The really nice thing about implementing something like this into a wiki or bildrCode is that you can quickly see what changes were made in whatever version. See on the right, anything added to the file is highlighted in green, while anything subtracted is crossed out in red.

Early on, I decided to use the one that wikipedia uses. It is free and open source so why not. Ill tell you why not. It is a series of classes and files, and NO documentation at all. The best I could get was to output the differences alone, but out of context. (none of the text that was common between the files)

So how did I do this? PEAR, a class library for PHP has one it turns out. So I just had to get PEAR (already done I found out) setup, and send it what it needed.

Anyone who is reading this because they couldn’t get PEAR’s Text_Diff working… It wants 2 arrays, not strings. In the documentation it has it reading 2 files. I wanted to compare 2 blobs from the database. So you need a way to take those and send it to Text_Diff in a way it wants.

The example from PEAR’s site used “file” to read the files. Checking the docs for PHP’s “file” shows that it reads a file, and splits it into an array using the end of line as the split marker. EG a 10 line long text thing, will be split into a 10 element array (each line in its own part of the array) [0] = first line, [1] – second line etc.

So we need to do the same thing with our blob of text stored in the DB. So after getting both of them (new and old), you want to do a explode on them (separately ) based on the end of a line. First you want to clean all the end of line characters because they come in so many flavors. (\r\n, \n, \r). So we do a simple preg replace to find all 3 of those and replace them with just “\n”s. This way we can split up the text on “\n” and not wonder if it worked.

$current_file = preg_replace('/\r\n|\r/', "\n", $files['code']);
$old_file = preg_replace('/\r\n|\r/', "\n", $files['old_code']);

$current_file = explode("\n", $current_file);
$old_file = explode("\n", $old_file);

So now you have 2 ready-to-go Arrays to work with. No you just need to place them into Text_Diff and it will do the rest.

$diff = new Text_Diff($current_file, $old_file);
$renderer = new Text_Diff_Renderer_inline();

echo $renderer->render($diff);

That’s it. But if you have any questions about this, or need a full working version (wont help you install PEAR though) email me.

11
Feb 10

Wow… what?!? bildr Code is in alpha?

Ok. So after

  • 7 months
  • One complete redo
  • 2802 lines of PHP
  • 1370 lines of CSS
  • 1726 lines of JavaScript

bildrCode is in alpha. I know, I know. It’s probably a lot to think about. You have been reading about this for such a long time, and it felt like it would never happen, but it’s true.

So… Without further ado, Lets see a video!

29
Jan 10

addition without modification

As always, I have working on bildr  a lot. But much of what I want to do is not possible with the applications I installed as the base (wiki forum and blog software). With RISDpedia, I modified the wiki software to make it to what I wanted, but it basically made it so I could never update, because it would undo everything I had done. With bildr, I am taking a new and different approach that has some really nice benefits, and one major problem.

With bildr, all modifications at this point are completely separate mini applications that are injected into the page. For instance the portal for bildr code is placed in the wiki with a single line.

<code project=”nameHere” />

This actually gets rendered into the page as

<script src=”http://bridge.bildr.org/tags/tags.php?title=ADJD-S371_Color_Sensor.js” type=”text/javascript”></script>

<script src=”http://code.bildr.org/nameHere.js” type=”text/javascript”></script>

The way the wiki software works, is it renders the meaning of all the wiki syntax, and stores it for later use so that it does not spend time re rendering the syntax, and can just use that pre rendered code.
In RISDpedia this had a major problem. If the information in that new inserted part cahnged, it would not be seen in the article until someone edited the page.
Now, because what is rendered is actually just a link, it is totally dynamic, so if the content is it pulling in is changed externally, the changes will appear as soon as they happen in the wiki.
This is also nice, because I am injecting changes, the core stays the same, and is completely upgradable without having to redo any changes.
The big downfall is that it is javascript. So if a user does not have it enabled, they cant even see it. But as I work more and more on bildr I think about this.
Browsers will just get more able and faster as time goes. So even though some of the requirements for experiencing bildr at its full potential (using CSS3 as well) are high, the browser  will catch up.
19
Jan 10

What’s new?

Screen shot 2010-01-19 at 11.33.26 PMWhat’s been going on in the world of Adam as of late?

Well you saw a few days ago that I posted an early stage of the bildrCode front end, but I didnt really give you much info on that. I have actually made a good deal of enhancements on this since just a few days ago.

This front end is the part most users will actually use and see when they encounter bildrCode. This is the client end, the part that makes the code so available, and easy to find. This front end is a portal to the real bildrCode that can be embedded anywhere. This portal as seen in my last post was inserted with just a single line. That single line automatically builds this into the site where users can see and copy the code from a project. (as well as download the project if the user was logged in) – These will be placed in the wiki to correspond with the sensor (or other electronic part).

This portal was actually ended up being dumber than I ever thought it would be. As in… when I tried to make this before, it ended badly because I was trying to make it too complex. I wanted the system to only grab what the user needed at that time. But for many reasons, it wasn’t going to work as I would like. So this now actually takes all the code from all the modules in a project and places them together on a list. So if you select a file, it just scrolls to that file.

The addition of code highlighting (changing the color of the code text to match its function) actually takes a long time to render, and some of the portals where taking upwards of 10sec to render every time the page was loaded. This was obviously not ok, so the system actually creates a cache file the first time it is rendered, and is now under a third of a second to render the same thing.

But this gets bilder one step closer to being able to launch later this month (cross my fingers)

logo

A part of bildrCode has been opened up and made available as open source. The code I wrote to allow of tab indents can now be found/ downloaded in the mootools forge. My mooTools class called mooIndent will hopfully come in handy for anyone needing this kind of functionality in your site.

Putting this up on github (required to use the mootools forge) was sadly hard. There is just too much special knowledge needed to make it work correctly. But after 2 weeks (just poking at it here and there) it’s there and ready for you to use. (i know, i know… it kinda specialized)

16
Jan 10

the front end

This is a real embedded front end (very alpha) of bildrCode.
Click away.

This is placed inside mooshell for now – But will not need to be later on.

10
Jan 10

getting close

bildrThemeI can feel things getting close to a beta opening. bildr’s web theme is pretty much finished for now. Consisting of a blog wiki and forum all looking pretty close to each other.

The use of existing software to start this project I believe will allow us to build the system as best fits us without waiting for a custom software to be designed/made. This will kickstart the system, as well as give us access to millions of developers already using this system.

The idea behind this simple theme is 2 things. One, I wanted something nice and simple that wouldn’t take away from the content. But most of all, this theme is actually just a place holder – A theme simple enough people wouldnt feel attached to it. Something people would want to expand on or change completely, but wouldn’t bother people while we figure out what to replace it with.

bildr will hopefully open later this month and as invite only, and open to everyone later this year.

The reasoning for the invite only opening is this: bildr needs to be built up in content and system before it is opened to everyone, so dealing with a ton of people while we do this will only make things move slower.

So if you are interested in helping make bildr the best it can be, sign up for an invite code when it opens, or send me an email before hand letting me know you want to help.

06
Jan 10

Happy New Year

Happy new year!

I just got home from vacation. Well back from visiting family, it was so busy Im not sure how vacationy it was.

I always try to read a book when I go away, and this time I read Emotional Design by Donald Norman. Good book. Norman is always a great writer, and after reading his best (IMO) “The design of everyday things” (DOET) a few years ago, this went on my list. Sadly, I think he could have taken the 2nd half further, but I understand why it changed tones when talking about robots. But I felt that DOET was a game changer, and the primer for interaction design. Emotional design was almost the primer for experience design. (Except that the term was used before this book was written).

I thought something was funny though. Im a huge believer in usability design. HUGE! And somehow people including Norman feel that aesthetics are not part of usability. Norman talked a bit about this, but without going into too much detail, he basically said that there is proof that people perceive better looking interfaces to be easier to use. They give a better experience.

Well yes, they do. But I knew that. But Norman said that without changing the usability of the product, and only making it look nicer, it was easier. Personally I believe this totally neglects the importance of several major things. First what about information design!?!?

By changing the way the interface looks, you ARE changing the way it works. The way an interface looks completely determines how a person sees it, and therefore changes the way they will think of interacting with it.

Id like to do this experiment myself, give me 200 people, and a confusing UI (with 2 skins (1 nice, 1 ugly)). let 100 use the ugly, and 100 use the nice. Video both. Im 100% sure that people will interact with them differently.

Also, by giving the user a better looking interface, the user approaches the system in a better mood. This alone as (Norman pointed out )is enough to change the way people think. When the user is happy, they see the forest, when upset, only the trees.

Last, but not least is what I tall people…

The hardest to use interface, is the one so-ugly people refuse to use it.

15
Dec 09

Major Limitations of the browser

Im currently building a web application that works more like an application on your computer than it does one on the web.

We all know that everything is going there, but there are currently a lot of major limitations in the browser that are holding it back from coming quicker than it could.

First: I know a lot of this poses security problems, but ignore that for a second.

Id like to be able to:

  1. • Ask the user if they would like to save before closing the window (and even allow them to cancel)
  2. • Add menu items, or control the file menu.
  3. • Customize the contextual menu system
  4. • remove the address (and others) bar to control the look of the entire page.

But maybe, just maybe, I need to stop making an application on the web, and go back to making a web application.

« Older Entries
Newer Entries »

Copyright © 2010 ASM | a blog
Proudly powered by WordPress, Free WordPress Themes, and Search Marketing