MakerLab Blog » joy http://blog.makerlab.com Go on, be curious Thu, 14 Mar 2013 06:30:21 +0000 en-US hourly 1 http://wordpress.org/?v=3.9.15 Programming, Graph Theory and a Request For Help. http://blog.makerlab.com/2009/08/programming-graph-theory-and-a-request-for-help/ http://blog.makerlab.com/2009/08/programming-graph-theory-and-a-request-for-help/#comments Fri, 07 Aug 2009 19:51:06 +0000 http://blog.makerlab.com/?p=790 Comments on a work in progress

I’m working at the Banff Centre right now – taking existing work that I have already done and generalizing it to build a bare bones locative application server and client. The idea is to let people use a mobile device to post photographs or text or audio or movies up to a shared web server and to then see those posts on a shared map. This is similar to work I have already done and it is in fact just a slight repurposing of existing work from a variety of open source resources. If it goes well then it will be a resource for locative media artists to use to share their locative media projects.

However today I seem to have run into a problem – a similar kind of problem that I see over and over. And I thought I would elaborate on this – and hopefully get some answers.

What I’m stuck on is finding an easy way to let the user interact with the data without having to re-invent the wheel. Of course the whole dataset can be incredibly complex – and can end up being something that is difficult to interact with – so many people have worked at finding ways to visualize data – such as for example SkyRails:

What data am I trying to represent?

I’ll back up a bit and just talk about programming first – a kind of mini-tutorial on programming. In computer programming there at least 3 ways to represent data.  Let’s consider an ordinary web mapping application purely as an example here – and what data it might contain:

1) In a user view or UX view the user is presented with an easy to understand visual representation of the data. For example a user might see a “map” object that contains “marker” objects. And the user can interact with this visual representation – to add or remove markers for example.

2) A data only view may represent the “maps” and “markers” as just tables in a database column. This is a very dry and mechanical view that does not make it as clear that the objects have a relationship to each other ( such as that the map may own the markers or that the markers are near each other ).

3) A graph based view. Often in my head when I am working with an application I tend to represent it as a graph of nodes floating in space. These nodes have connections to each other and it is those connections that are of primary importance. In my case I would represent a “map” as a parent node, and then draw the “markers” as children nodes.

In fact it is the third view that is the most accurate I feel. What computer programming really “is” is just a form of graph manipulation. Once you can put aside the visual representation and really see what is going on – what you see is that it largely consists of many many subtle and carefully defined relationships between things. This is why many programming tutorials are so confusing; because they focus on syntax and grammar rather than the intuitive understanding.

When we’re looking at a graph based view what becomes clear is that it is the relationships between things, not the things, that is most important. This maxim might be true of everything.

What kinds of relationships exist between data?

So what I really want to look at is the kinds of relationships that exist between objects and then look at ways to try to represent them.  There are at least three kinds of relationships that a programmer often is trying to define:

1) The relationships of links between “Instances”, such as the relationship between you and your facebook friends. These can be referred to as “Instance Relationships”. An “object” in this sense is something that exists as an instance, not just that it is a “Person” or a “Place” but that it is a specific person, a specific place – an instance of a kind.  For example :

2) The “structural” relationships of properties, attributes or qualities. For example in FaceBook a Person and a Group are both a kind of object with similar properties. Often it makes sense to say that they are both a kind of “friendable” object so that you can write a piece of software that can look at friendable objects and show which ones are friends with which one – instead of having to write similar but slightly separate code for objects that are friends of persons and for objects that are friends of groups. In a kind of Platonic model there is an idea of an abstract “kind” and then other kinds are variations of that kind. The relationships between “kinds” not “instances” is crucial to understand.

3) The event messaging relationships, such as in a video game where a collision event may be sent from one object to another so that the other object knows it should do something appropriate ( such as rebound or make an appropriate sound ).

The challenge I face here is the following:

1) I would like to let users be able to make maps and markers (and other instance objects)… this is easy obviously.

2) I would like to be able to let users say that the maps/markers they make are “private” so that nobody else can see them, or “protected” so that only friends can see them or “public” so than anybody can see them…. this is also not hard.

3) I would like to allow the user to delete maps or markers that they made or that are marked public for deletion – or that they have administrative privileges over…. obviously a requirement.

4) I would like to let the users add or remove markers from maps if those maps are open, or if those users have administrative permissions over those maps…. and obviously a requirement as well.

5) Where it starts to get challenging is that I would like to let the user decorate a map or marker with arbitrary attributes. For example I would like to be able to let you set the “barometric pressure” on a marker if you wished.

6) In a perfect world I would like the user to be able to say that a given marker is a “prototype” kind of marker and that other kinds of markers can be instanced with the special attributes inherited from the prototype. I’m uncertain if it makes sense to allow an entire prototype hierarchy. This would let me have a map where all markers added to the map automatically had a “barometric pressure” attribute that could then be filled in.

7) In an even more perfect world I would like to be able to say that certain attributes are mandatory, and that others are optional.

Are there any off the shelf solutions?

Now, the challenge is really that this kind of issue occurs over and over. We’ve seen systems like RDF and the FreeBase project as an attempt to address this. What I really want is a combination of two things:

1) A database model that can bind to Rails that represents this kind of data.

2) And a visual editing tool that lets an ordinary user easily drag and drop objects together, to create and break relationships between objects, and to edit the attributes of objects.  Something I can simplify or tailor the view of.

On the second point – why don’t tools like this exist? If most if not all programming problems are a variation of this then one would imagine that there would be many graph editing tools out there that let users wander a garden full of data, pruning and trimming it as they go. It seems like even lesser versions. I would like something that could be put into a browser that provided a succinct view of the tree of objects and allowed easy manipulation of that tree directly. Tools like activescaffold for Rails do provide a complete database view but I want a view that reflects the relationships between objects in a tree – emphasizing the parents and children and emphasizing easy editing of attributes.

Any tips?

]]>
http://blog.makerlab.com/2009/08/programming-graph-theory-and-a-request-for-help/feed/ 4
Makerlab http://blog.makerlab.com/2009/01/makerlab/ http://blog.makerlab.com/2009/01/makerlab/#comments Sat, 17 Jan 2009 00:12:32 +0000 http://blog.makerlab.com/?p=588 A short list of websites that are radically reshaping how my life is lived. Examples of positive change in the world around us. Companies that have the potential to grow whole new kinds of economies.
I included excepts of the ‘About Us’ for each site and Snarkiness/Personal Commentary for that little extra ‘something’.

Raise Funds for the Arts through a Donation based Social Network

Tanda Foundation

http://www.tandatanda.org/beta/

Tanda Foundation

Tired of seeing artistic work that you feel like doesn’t float your boat? But desperately ISO a worthy project that you can feel good about supporting? (someone somewhere can maybe relate? prob. not eh?)
Well whatever. Just go take a look, the Tanda foundation was not only made by REALLY COOL PEOPLE doing way more interesting things than me it’s also got a great back story and a promising future.

The Tanda Foundation is a freestyle non for profit, that merges the logic of 501(c)(3)
organizations and the Tanda model to create a 2.0 social platform held and run by its Patrons and Candidates. Tanda Foundation collects micro-funds towards the support of creative practice.

Feed the Planet by Playing a Game

freerice.org
http://www.freerice.com/index.php

FreeRice

Dude.
You play a vocabulary game.
A good one.
You help feed the world.
IT’S THAT SIMPLE.

FreeRice has two goals:

1. Provide education to everyone for free.
2. Help end world hunger by providing rice to hungry people for free.

This is made possible by the generosity of the sponsors who advertise on this site.
Perhaps even greater is the investment your donated rice makes in hungry human beings, enabling them to function and be productive. Somewhere in the world, a person is eating rice that you helped provide. Thank you.

Donate funds to charities everytime you do a search for anything

Goodsearch
http://www.goodsearch.com/

GoodSearch : Support your favorite charity or school.

You know how you like go on the internet?
To search for things?
Like when you type things in to the little box?
You like, can give money to charity?
Nice.

GoodSearch is a search engine which donates 50-percent of its revenue to the charities and schools designated by its users. It’s a simple and compelling concept. You use GoodSearch exactly as you would any other search engine. Because it’s powered by Yahoo!, you get proven search results. The money GoodSearch donates to your cause comes from its advertisers — the users and the organizations do not spend a dime!

In 2007, GoodSearch was expanded to include GoodShop, an online shopping mall of world-class merchants dedicated to helping fund worthy causes across the country. Each purchase made via the GoodShop mall results in a donation to the user’s designated charity or school – averaging approximately 3% of the sale, but going up to 20% or even more.

Find Anything, Anywhere, Around the World Immediately. Classifieds for the Internets.

Craigslist

http://portland.craigslist.org/

craigslist: portland, OR classifieds for jobs, apartments, personals, for sale, services, community, and events

If you don’t know what Craigslist is, I don’t know how you found this blogpost. You can’t be on the internet. This is all a bad, bad dream. But I am sure you could find a shrink on…Er, oh nevermind.

Q: What is craigslist?
A: Local classifieds and forums for more than 550 cities in over 50 countries worldwide – community moderated, and largely free.

Q: What can I find there?
A: Jobs, housing, goods, services, romance, local activities, advice – just about anything really.

Q: What is the origin of craigslist?
A: An email list of SF events, started as a hobby by Craig Newmark in early 1995.

Q: Who runs craigslist?
A: Jim Buckmaster has been CEO since late 2000.

Q: Is Craig still involved with craigslist?
A: Craig works in customer service, in addition to fulfilling his iconic responsibilities.

Q: Is craigslist a nonprofit?
A: No, craigslist was incorporated as a for-profit in 1999.

Q: Why does craigslist still use a “.org” domain?
A: It symbolizes the relatively noncommercial nature of craigslist, as well as our service mission and non-corporate culture.

Q: How much traffic does craigslist get?
A: More than 12 billion page views per month

Q: How does that compare with other companies?
A: craigslist is #8 worldwide in terms of english-language page views

Q: How many people use craigslist?
A: More than 50 million each month, including more than 40 million in the US alone

Obama’s Progressive Social Network. What else can I say?

USA Service (Formerly the Obama Website, Now a ‘Causes-style’ Social Network)

http://usaservice.org/content/home/

USA Service

I know nothing about this site. It appeared a little while ago. It’s really pretty colored and I like pretty things. Oh and it’s Obama’s social network. Is this guy on it or WHAT. Damn. I got nothing to say. I am just, like, ‘Bravo.’ Now as long as social networks aren’t a a passing fad, and/or you are actually devoted to your audience…

This website is designed to help promote these events and for Americans to make their commitments, build communities, find opportunities to serve and share their results. These can be events that engage people in direct service, or bring people together to reflect on Dr. King’s legacy and how they can commit to becoming more engaged citizens. Please create an event or sign up to volunteer today.

Never Throw Anything Away Again. Ever.

Freecycle
http://www.freecycle.org/

The Freecycle Network

Be careful. This mailing list is ridiculously active. I can’t believe the stuff you can find on this thing. Like people will post anything. Literally. Freecycle is going to be one of those sites where people start posting ‘Best of’s’
An amazing resource and a great example of the power of simple clear connectivity between have’s and have nots. If someone made an iphone app of freecycle I would glue my phone to my face and quit my job.

Instead of throwing things away, you list them on Freecycle. People come pick them up, keeping stuff out of landfills. Self-moderated and unbelievably active.

…As the team recycled, rather than watching perfectly good items being thrown away, they found themselves calling or driving around to see if various local nonprofits could use them. Thinking there had to be an easier way, Beal set up that first Freecycle e-mail group in a way that permitted everyone in Tucson to give and to get. Freecycle was off and running.

The Freecycle concept has since spread to over 85 countries, where there are thousands of local groups representing millions of of members — people helping people and “changing the world one gift at a time.” As a result, we are currently keeping over 500 tons a day out of landfills! This amounts to five times the height of Mt. Everest in the past year alone, when stacked in garbage trucks!

Catalog the Planet Earth:Massively Multiplayer…Librarianship

Wikimedia
http://www.wikimedia.org

Wikimedia Foundation

The first time I saw Wikimedia I cried. Literally. I ran over to Anselm and I was like, ‘I know what I want to do with the rest of my life!’ I want to do THIS. I want to work for Wikimedia. I am so 100% behind this project, I am so happy this project exists. I can’t even describe it. You are probably going to tell me they sacrfice kittens or something awful, but I want to believe.

Wiki’ing the whole damn world. From Pictures to Music to Code to News to Encyclopedias. The essential collaborative database of the planet for the planet by the people, um, on the planet.

The Wikimedia Foundation, Inc. is a nonprofit charitable organization dedicated to encouraging the growth, development and distribution of free, multilingual content, and to providing the full content of these wiki-based projects to the public free of charge. The Wikimedia Foundation operates some of the largest collaboratively edited reference projects in the world, including Wikipedia, the fourth most visited website in the world.

Create a Cause, Raise Money, Donate. Fully supported/Legit 501c3

Facebook Causes (OK. has Potential…)
http://apps.facebook.com/causes/about

Facebook | Causes

So yeah, Facebook. I am actually digging it now that I have it on my phone. Causes are cool. I would like to see them show evidence of DOING something. Stats or something? I am slightly suspicious. But probably just know NOTHING about it. Or someone will leave a comment with a good example? That would be nice. Hmmm?
In any case they have the biggest audience and super solid intentions and I am all for it. Lets save the world Causes. You and me. You and me.

Any Facebook user with a little passion and initiative can create a cause, recruit their friends into that cause, keep everybody in the cause up-to-speed on issues and media related to the cause, and, most importantly, raise money directly through the cause for any U.S. registered 501(c)(3) nonprofit or Canadian registered charity. We process the donations automatically via credit card, tally the results, and report the donation activity via a public “scorecard” in the cause. This allows us to reward people who grow their causes, donate, and successfully raise money.

Make a Mixtape, Share It with Other People.

Muxtape
http://muxtape.com/story.html

The Story of Muxtape

Sigh. Just bring it back. Please? Then my friends will start talking to me again. Muxtape just nailed it.
It’s like, it’s like having dated a rockstar-astronaut-millionaire-pony for like a month you hung out everyday and they were SO COOL it blew your MIND, then they realized that you just weren’t up to par and cold dumped your ass and you won’t stop talking about it you miss them so much but it’s been like 5 years.

…It was successful very quickly. 8,685 users registered in the first 24 hours, 97,748 in the first month with 1.2 million unique visitors and a healthy growth rate. Lots of press. Rampant speculation. Tech rags either lauded it or declared it an instant failure…read more at themuxtape website.

Share your Photos, Find Beautiful Pictures, Paintings, Drawings, OMG EVERYTHING IN THE F*CKING WORLD

Flickr.com
http://www.flickr.com/

Flickr: Your Photostream

Flickr. Like Google, for pictures.

Photosharing, photoblogging, photoclubs, art-resourcing, photo printing. Any and everything to do with pictures and photos. Literally the best resource. If you are not using this you are dumb. Real dumb. Especially if you are a visual artist. Or anything. Just, really.

Ok so that is the first little list of sites we dig. Please tell me if you think we have missed some majorly important ones or I have rampant typos. I specifically was looking at web application/social networks so there is a ton omitted here- but that just means more opportunity for us to have a conversation about it don’t cha think?



]]>
http://blog.makerlab.com/2009/01/makerlab/feed/ 2
Mushrooms – peril or menace? http://blog.makerlab.com/2008/12/mushrooms-peril-or-menace/ http://blog.makerlab.com/2008/12/mushrooms-peril-or-menace/#comments Fri, 12 Dec 2008 21:51:49 +0000 http://blog.makerlab.com/?p=406 Here’s @reidab on mushrooms at @makerlab . An important cautionary note:

@reidab on mushrooms

]]>
http://blog.makerlab.com/2008/12/mushrooms-peril-or-menace/feed/ 0