Here goes what I want. I want an app that will keep a shopping list, track what I'm buying, and allow me to find the best overall prices from grocery stores. This is no small task. It will need a massive library of coupons, grocery store locations, and items. If not having all of those, it will need an excellent search algorithm (something Google should be capable of).
Here's the features:
- Free or cheap (I don't want to spend more on an app than I will be saving over time without it)
- I want it to be capable of scanning barcodes from items in my fridge or in the store and add those items to my grocery list.
- I want those items to be sent to the store or something where when I walk around the store with their scanner, I can cross items off of my list and it will add it to my store receipt. When I get to the register, I pay and leave. Bagging was done in the store and I never needed a piece of paper or pen to track my grocery list.
- When creating my grocery list, I want it to find all of the applicable coupons from manufacturers or stores.
- I want like items to be allowed. If I put "milk" on my grocery list from a barcode in my fridge, I want it to look for all milk at the best price. I should be able to select a certain brand or type of product or I can select any brand or any brand except generic. My favorite pasta is Barilla, so when I go to the store, I don't want it to tell me that I should be buying Stop & Shop brand pasta because it is cheaper. I already told it that I won't buy that.
- I want it to tell me where the best place in my area is for buying these groceries is at the best price.
- When I go shopping online or in the store, it should give me reviews for things that I am looking at buying or am buying. I want reviews in my area and in general since certain items have different qualities depending on the location.
- I want it to remember my shopping settings and trends. If I prefer Shoprite over Pathmark, but neither are near me because I'm not at home, I want it to tell me that there is a Shoprite around. I'm not sure if giving 'weights' to my shopping preference is getting too techy and complicated. I want it to know that I normally buy sharp cheddar cheese, but sometimes I buy mild.
- I want recipe lists. When I am making chili for instance, I want it to remember what I needed to buy for chili. With one click, I add all of the products for chili to my grocery list and I can leave the house. I can also add another list for SuperBowl party to that grocery list and it will add those products. It should add all of them up so I am not buying two 1/2 lbs of cheese when I can just buy 1lb. Really, that should be a question to ask "should I combine 2 - 1/2lb cheddar cheese to 1 - 1lb cheddar cheese? [yes] [no]"
PS: Online shopping is just the same. So, there should be a website that a person can do all of this from.
In New Jersey and several other states we have EZ-Pass. As a vehicle comes through, the "pass" that is in the vehicle is read. If there is no pass (and even if there is I think) a picture of the license plate and driver is taken. As that information is received, the system should check if the vehicle is stolen, the owner is uninsured, the vehicle is unregistered, or any number of laws are broken. It could even check if there are warrants for the person. An officer/trooper sitting around the area of the EZ Pass will have a picture sent to their vehicle with a time that the person went through, etc. If there is no officer there, it could log the picture and information to a crime database. If the vehicle is stolen, they could prove that a person was driving it by this picture. They could even use facial recognition (possibly) to determine if the person driving was convicted and enrolled in this system before.
The same thing could be done with looking for a wanted person. A terrorism TF could use this system with faces instead of plates to locate terrorism suspects. The US Marshals could use this system to find escapees in an area. The FBI and all other law enforcement agencies could use this to find people on their "hit list".
People may have issues with privacy, but this is really no different than a police officer driving down the street and running your plates. Which, they have every right to do for any reason. The only difference here is that it is done a lot faster.
So, Everyone please vote once a day until March 14th!
Go to http://www.easports.com/ncaa09/ and get voting!
read more | digg story
If they can get 1,000,000 signatures by March 16 (the eve of St Patrick's Day), they will bring the petition to Congress. Even if they don't get them all, it will make us that much closer to getting a holiday at some point.
There is also a Facebook group called Make St. Patrick's Day an Official Holiday! Proposition 3-17. Join it and invite your friends to do the same.
Sorry for those non-Americans, but Guinness is only doing this for the USA right now. Maybe you can start your own petition and we can make it even broader. So, all of you Irish-Canadians that don't live in Labrador or Newfoundland, lets get the party started :D
read more | digg story
One of my favorite shows is Penn & Teller Bullshit even though I no longer get Showtime. Here goes a show on Gun Control in 3 parts:
- http://www.youtube.com/watch?v=1ix6WDZVr
I0 - http://www.youtube.com/watch?v=dyg-8ZJZn
vc - http://www.youtube.com/watch?v=dyg-8ZJZn
vc
Here goes a video from the NRA stating how ballistic fingerprinting doesn't work. There are a bunch of inconsistencies in it like "no supercomputer in the world could handle it" but there are also some interesting points like the cost effectiveness isn't worth it: http://www.youtube.com/watch?v=yAlixegkf
ABC's John Stossel "Myth: Gun Control Reduces Crime" http://www.youtube.com/watch?v=j_YTM_eAW
Even Archie Bunker makes the same, good arguments - http://www.youtube.com/watch?v=M8fXMMCuL
- Mood:
sick
Tags with attributes in alphabetical order
# 4 spaces to a tab
# Courier New; 10pt
<birthdate>: ISO standard birthdate
<blazoo>: container for the profile
updated: unix timestamp of when the profile was last updated
version: protocol version
<books>: books the person likes to read
delimeter: a series of characters
<comments>
<comment>: the comment
email: email of the commentor
name: name of the person making the comment
timestamp: when this comment was posted
url: url to the commentor's profile
website: website of the commentor
<dislikes>
delimeter: a series of characters
<education>
<school>: name of school
date_from: when you started the school
date_to: when you finished the school or 'present'
type: high school, middle school, college, elementary, etc
<email>
title: an alternative to displaying the email address
<employment>
<job>: job title
date_from
date_to
employer: company you work(ed) for
<feed>: url to the feed
type: type of feed such as RSS and ATOM
version: the version of the feed protocol
<friends>
url: an external friends page instead of inline
<friend>: name of friend
image: an image representing this friend
url: url to the profile of this friend
relationship: text describing the relationship
<gender>: male, female, transgender, or unspecified
<groups>
<group>
image: image representing the group
joined: date/time joined
updated:
url: url of the group
<im>
<aim>
<icq>
<gtalk>
<jabber>
<msn>
<yim>
<language>: a ISO standard language definition
<likes>: a delimited list of likes
delimeter: series of characters
<location>: if sub-tags are used, the location will be represented by them. Otherwise, use the string.
<city>: city
<country>: ISO standard country
<postal_code>: postal code
<state>: state or province
<music>: music the person likes to listen to
delimeter: a series of characters
<name>
<first>
<last>
<middle>
<prefix>
<suffix>
<networks>
<network>: a network this person is a member of
image
joined
url
<online>: yes/no if the user is online or offline
<pgp>: a public PGP key
<pictures>
<picture>: url of picture
# a lot of meta data
album: name of the album this picture belongs to
comment: comments on this picture
filesize: raw filesize
file_type: ie gif, jpg, jpeg, bmp, png, etc
tags: tags associated with this picture
time_taken: timestamp of when the picture was taken
time_uploaded: timestamp of when the picture was uploaded
<people>
<person>: name of the person tagged in this picture
box_size
box_start
url
<quote>
<signature>
<song>: url to a song to be played when viewing this profile
# a lot of meta data
album: album this song comes from
artist: name of the artist
genre:
image: artwork from this song
name: name of the song
track: a number of the track
<status>: what this person is currently doing (like twitter)
<stylesheet>: url of a stylesheet (not allowed to be inline)
<technical>
<date_format>
<delimiter>
<timezone>: ISO standard timezone
<username>
<videos>
<video>: url of video
# a lot of meta data
<people>
<person>
<website>: url to a website
Draft 1
Joshua Dickerson
In this document I aim to provide a layout of how a distributed profile system is to work in theory along with some early draft examples of it.
Why?
The modern web user is registered to a multitude of websites and applications. Each of those applications has it's own profile system. Along with registrations and profiles such as www.simplemachines.org or www.google.com there is an ever-growing number of social networking sites and even more people that use them. The problem here is that there is too much centralization. There are two key players in the social networking scene right now – Facebook and MySpace. Although, recently Facebook revolutionized the way closed source applications are going to work with each other, there is still the problem that a user doesn't have access to all of the back-end. They have limited control of their information. They can't do a lot of things because of this. MySpace is an excellent example of what happens when we let the users do whatever they want with their pages. We get poorly built pages using invalid Javascript and CSS. As well, the controlling company inundates us with ads every chance they can get.
How are we going to change that?
We are going to change that by giving the user viewing the profile the pure data in a XML format and creating applications that can handle this “pure data”. The user no longer has to worry about advertisements or poorly created pages. They will now have a “viewer” with options. No longer will the power be in the hands of those that have created the networking site. Now, the power will be in the hands of the users with help from profile hosts and profile search engines.
Who's who?
User: Person visiting the webpage, attempting to view the profile
Viewer: Application used to view the webpage (browser or another webpage)
Identity: Person that the profile is to “explain”
What can this be used for?
I envision that there are many uses for a distributed profile system. To start, when I register to a forum, I don't want to have to keep that profile up-to-date with all of my other ones. At the same time, if I did want to be someone else on that website, I could do so easily by changing my profile address. Another thing I envision is a distributed social network. People will use websites to view pages to formulate the XML data that is distributed all over the net or even downloaded applications and browser extensions in to something that a human would understand. Using stylesheets, one could create their own page, but if the user didn't want to see the identities background graphics anymore, they could easily turn that off.
The flow of information
The protocol
First and foremost, the protocol is meant to be open and versatile. A user and identity can request and accept as much information from each other as they choose. The identities are made to be expandable and little is set forth in the way of requirements. The fact that a human maybe reading your profile from it's source is always kept in mind. Tags are formed to be human readable.
Applications
Now we have to come up with ways to use this protocol. Although the documents should be readable to humans, they aren't pretty. I imagine the first things that will pop up are management websites which will host and create applications that will help the user create their profiles. As well, the management websites will most likely offer a viewer. By decentralizing the profiles, we are now opening it up to all developers and we will probably see a lot more applications built. There is the possibility for desktop applications to view and edit your profile just as LiveJournal has. There is also the very likelihood that someone will create browser extensions that will deliver feeds directly to you. When a person updates their profile, you may receive a notification on an instant messenger.
There will also be feed readers that do the same as they do in the blogosphere. They will read an identity's history and give the user an update. Along with those feed readers and profile readers, we can broaden the searching possibility with search engines. Much the same as the current social networking sites, a person can search for a friend or a group.
Security
One of the best and worst things about the current profile setup is security. Can you trust a website with your information? Do you trust that website to give you access to control who can and who can't see your information? Is there a permissions system? In many cases, one would expect a decent level of security. Although, when Facebook decided to release their mini-feed feature, many people were very angry when there were no controls for who can and who can't see your history. With a decentralized system, you have full access to your information and can make it as public or as private as you want.
A possible way to do permissions is by allowing the identity to setup groups that they want to put users in or by doing permissions based on each user. Each user would then use an identity system, such as OpenID, to authenticate themselves with the identity. That identity could possibly give the user a cookie so they no longer have to login.
Revenue
The world requires money to make things happen. This is understandable and has been thought of. Of course, with any new idea there are infinite number of off-shoot ideas that may come. Some possible ways that a company may profit from this.
This protocol does away with viewing ads on the identity's page... sort of. A feed can still include an advertisement just as any blog feed does now. That will certainly help the host with the costs. Those ads may still not be enough and there may be software that can find those ads and remove them. So, we come up with other solutions. The most important type of revenue to be made is through viral marketing. We are developing a social network which transcends all other websites. It brings together those people that like one social network but don't like another, those people that don't like social networks at all, and those people that don't even know about it.
As an example of a way to market to this distributed network I will use a fictitious company called Josh Inc. Josh Inc has a new product that they want to market. They create a group and give away one of their products each week for a period of 10 weeks. The marketing geniuses in their marketing department invite their friends and invite everyone in the company to invite their friends also. Before, the giveaway even starts they have 50 people (the number of people in the company) inviting all of their friends to join this group which is giving away a $100 product for 10 weeks. Every time a person joins this group, all of their friends see that they have joined the group on their friends' feed. Even when a person leaves the group, all of their friends will be notified. If they started the promotion at the very start of the giveaway (which is idiotic) and 3 friends of each friend joined every week, they would have a market of 1,476,200 that really read in to the product that they were possibly going to win. The cost of Josh Inc employing this strategy is $2,000 ($100 product X 10 weeks X 2 people per week).
There would also be search engines and caches that would store information to be found. Those could all have advertising. Then there is also the profile management websites that would host and create software designed to help the common user edit and manage their profile.
The commands would be slightly different. The new command 'propose' would need to be added and that would work like a commit. The commit command would be changed to allow for a server to server commit. I guess it would make sense to have a secondary branch of proposed changes or something.
What is needed is something that has a MVC architecture. The backend is powered by a RDBMS like MySQL. The rest is powered by PHP. The themes are powered by PHP. It also needs to be completely translatable. Everything from the application text to the content. There needs to be some way to include documentation for your software per branch. It also needs version control so you can see the changes that have been made and revert bad changes.
Below I have posted a basic pseudo schema. Note that I haven't included things like members and groups since they could be controlled from an outside source. I am hoping to make this work with SMF
pages ID_PAGE -> The ID of the page ID_GROUPS -> A comma delimited list of groups allowed to edit this page ID_TAGS -> A comma delimited list of the IDs of the tags ID_BRANCHES -> The IDs of the branches this document refers to redirect -> Instead of content, this page redirects to another url page_content ID_PAGE -> The ID of the page this is referring to version -> The version of this content ID_LANG -> The ID of the language this is referring to pname -> The name of the page content -> The content of this page approved -> A flag to signify if this page has been approved tags ID_TAG -> The ID of the tag ID_LANG -> The ID of the language this tag is in name -> The name of the tag branches ID_BRANCH -> The ID of this branch ID_LANG -> The ID of the language this branch is in name -> The name of the branch languages ID_LANG -> The ID of the language def_lang_name -> The name in the default language (usually English) name -> The name of this language
I could add to this by including a member table, permissions table, and a groups table. You add members to groups so you can more easily change permissions.
Some of the permissions that you would use would be: can create page, can create tag, can edit pages, can edit page content, can revert page content, can add/edit/remove branches, and can add/edit/remove languages.
Related pages would be done by doing a search for keywords and/or tags.
I also think that a table for comments would be good. A really quick makeup of that schema would be: comments -> ID_COMMENT, ID_PAGE, ID_USER, date, approved, comment