Posts Tagged 'data'

Ultimate List Handler

Ultimate Intelligent List Handler for People Who Love Lists

This is a quick outline of the features and organization I think belong in a good list handler. I love lists, and sometimes just assembling a list of things I want can make me feel as though I have received what I wanted. It’s like getting a craving for Mexican food, then collecting pictures of Mexican food items and having the craving satisfied. That’s what lists do for me, and I know there are other people like me out there.

I shall now use this description as my model and go out looking for the perfect list handler to meet my needs. If I can find nothing close enough, I may have to create my own program (which I am capable of doing given enough time). I have found one online wishlist handler which almost does what I want it to do, but it lacks some simple ideas which would make it more useful to me.

So, here is what the perfect list handler should be able to do:

List Groups
An individual list can be a part of one or more list groups. Group specific image and icon options would make these a good basic organizational level. Groups are like categories, in that you can have a “Wishlist” group and several different themed wishlists could belong to that group – “My Christmas WIshlist,” “My Spouse’s Wishlist,” and so on. A wishlist for video production equipment that is in the “Wishlists” group could also be a member of the “Future Purchases” and “Expensive” groups.

Each list can have a description, representational image and icon, and a list of creators & benefactors. Additionally, the list can be tailored to meet special needs. A list can be started by just adding items to it, or a more complicated list can be begun by outlining item types that would be needed. A more complicated list formed on a frame of “types” could give a variable, flexible budgeting plan with options to help organize what item would do best in what slot in the list. Lists can be ordered or unordered, based on priority, price, alphabet, date added, etc. You can simply put one item above another item because you like it there if you want, or you can assign priority values and have the list grouped by priority. You can even have phases, where the list is grouped into items that need to be purchased first, second, third, etc.

Once a list has been made, it can output HTML, Documents, perhaps even Spreadsheets with the items, costs, descriptions, images/icons, etc. using options made possible with the item types.  These outputs could be tailored to fit in budgets, show a time line of when to purchase what, and so many other possibilities.

Item Types
Inside of a list, several options could be variable. To help organize the variables “types” would become important. For example, if I am creating a list of things I need for video production, I can have requirements (specified at the List level) such as camera(s), light(s), microphone(s), and so forth that would be types. Each item I add to the list would then be grouped into a specific type. Each type can have characteristics associated with it that would specify how many of each item I need. Perhaps I find three different camera models I like, but I only plan on needing two cameras. My “Camera” item type could be programmed to know that only two cameras need purchasing and that any of them could fill the spots. Then, when I am outputting a cost breakdown, a range of camera prices would show based on combinations of the prices of the cameras filling that type position in the list.

Items can be associated with more than just one type or list. Once the program has an item inputted, adding it to another list can be achieved easily by pulling the item up in the new list or from another list and adding it. Items can have more than one image associated with them, one as the main image, and they can update pricing and get new images easily within the program. Links to different vendors and prices could also be retrieved within the program.

Keywords & Tags
Sorting, organizing and browsing items, lists and groups would be handled primarily by tags & keywords. By searching one or more keywords an item could be found easily to be added to a new list.

If you know of anything that does all of this, please let me know in the comments. If you have any other ideas of what a list handler should be able to do, also leave a comment!

Web-Enabled Community Spell-Checker Dictionary

I want to share with you a web-enabled community spell-checker dictionary idea I had this morning.

The technical details may bore you, but the simple description should help generate interest. How many times have you written a word that you knew was spelled correctly, like “blog”, and had your spell-checker tell you it’s wrong? What do you do? You can either ignore the “error” and leave it there, with the squiggly red line under it, or you can add the word to your user dictionary (and in a lot of cases, like new Internet words, that means hoping you didn’t spell it wrong).

The user dictionary, I’m sure you know, is simply a database of words stored on the local machine (your computer) that is compared against each word you type in that program. A separate user dictionary is generated by each individual spell-checking program you use (the word processor, the web browser, etc.), and there are no safeguards in place to prevent you from adding a wrong word to one of your user dictionaries. Have you ever tried to go in and remove an incorrect word from a user dictionary? I have. It’s not any fun. Plus, adding a word to one user dictionary doesn’t add it to another one so if you frequently use a new word, you’ll end up being told it’s spelled wrong by all of your spell-checkers until you add it to all of their dictionaries.

What if you could download one program that would check all of you spelling in every program and website? What if that program was linked to other computers running the same spell-checker so it could collect data on misspelled and unknown words from a large number of people and figure out which words belong in the dictionary and which ones really are just spelled wrong?

Such a program could easily exist with current technologies, but as far as I know it remains only an idea in my head. Just imagine a dictionary that maintains itself updated with all of the newest, correctly-spelled vocabulary! A service could be offered to export the master dictionary to other spell-checkers’ native formats as a download on-line for people who don’t want to use the actual spell-checker program but want updated and accurate dictionaries to check their spelling. Periodically, fun statistics could be generated and shared via RSS, including the most frequently misspelled words, most popular words of the day, and a yearly list of new vocabulary generated by progress and technology.

Here is a more technical description of how the program could work:

First, the main functions, in order, would be:

  1. Track and monitor all spelling in all programs on a user’s computer.

  2. Use that data to calculate a score for the user, giving more weight to situations where more people use correct spelling and less weight to situations where less is expected (like chats).

  3. On-line, the program allows users to endorse words that are not in the dictionary but frequently marked as correct. The higher the user’s score is, the more weight his/her endorsement will have.

  4. Words endorsed by enough trusted users are incorporated into the dictionary.

Locally, the dictionary integrates with all programs and tracks user spelling habits, counting each time he/she misspells a word found in the dictionary (the user writes the word, the dictionary says it’s wrong, and the user corrects the spelling) and each time he/she writes a word not found in the dictionary (the user writes the word, the dictionary generates suggestions, and the user selects the option to ignore the misspelling). The particular words misspelled, spelled correctly and unknown to the dictionary are stored in a database on-line.

The program calculates, then, certain statistics for the user based on these numbers. For example, a user may have an overall spelling accuracy of 70% but frequently misspells the same 15 words, though the misspellings only represent 3% of everything the user writes.

The program also tracks where and in what situations the user is using correct spelling, punctuation and structure (capitalization, etc.), giving less weight to the chat sessions with poor structural performance, greater weight to e-mail writing, and the greatest weight to blog entries, Wikipedia articles, local word processing, Google Docs, etc. If a high percentage of people use correct punctuation and spelling in a specific program or at a specific website, the program knows to give a higher weight to the performance of other users in the same situation. If the spell-checking program is unsure of a situation (there is little data about a program’s weight, for example) the weight of the situation is calculated based on the length of the written material. This data would be stored on-line and be incorporated into a central algorithm for calculating a user’s spelling proficiency.

Words frequently not found in the dictionary but deemed by users to be correct (i. e. modern terms) can be reviewed by users with a low frequency of misspellings of known vocabulary, high number of words written per day, and high total proficiency score. Words endorsed by enough trusted users are then automatically added to the central user dictionary database. Admittedly, this is a difficult calculation. How much endorsement would be needed and what percentage of the endorsements would need to be from users with a high score? What constitutes a high score? An algorithm would need to be developed that would permit words to be added to the dictionary without too much delay, but not without first receiving enough endorsement to ensure the word is proper.

I believe that a dictionary maintained by such an algorithm would be invaluable to society. Even current institutions such as dictionary publishers could benefit from such data being collected. The idea could be applied to dictionaries in other languages. This idea represents the movement of dictionary maintenance techniques from the 20th century into the new 21st century era of community efforts and social data.

I think it’s the next logical step. What do you think?

As a final note, I was doing some searching and digging around to see if anyone else has done this or written about it, and I stumbled upon a great way to handle the dictionary database. I also found that programs to check spelling in any application also exist, but I found no mention of a community enabled program collecting data via the Internet to append the dictionary rather than trusting the user when he/she decides to “add to dictionary.”

The Future of the Internet

I found this and wanted to share it. It’s a nice summary of what we can probably expect to see the Internet do for the next few years.

Keyword Search

There is a presentation there that I hope you will brows through, even if only quickly. The presentation outlines a possible progression from our current, socially oriented Internet to an intelligent Internet, passing through various stages. The next step, according to the author, is for information to get smarter. According to him (and I completely agree) it would be too much work to continue trying to program our applications that handle data to be smarter. That requires a lot of code, a lot of complicated algorithms and a lot of headaches.

We’ve had this idea since the beginning of computing that data is just data and programs need to handle the data. What if the data helped the program by doing more of the work of categorizing, tagging, tracking and associating its information? Intelligent data is the first step toward an information net that is better and more advanced than the one we have.

Of course, more speed never hurts. There is, in existence, another “Internet” of sorts that will continue to grow unti one day it could replace our slow, archaic network. Granted, many advances and changes have and are taking place to help our current information superhighway keep up with the times. However, this one was built from the ground up to be faster, smarter and better in every way.

Other emerging technologies like virtualization, cloud computing, quantum computing, advanced data storage and new human/computer interfacing techniques will eventually turn computing and the Internet into a wild, exciting new place where so much more will be possible than today. All of this will eventually become part of an idea I love called augmented reality.

Augmented reality (AR) is a wonderful thing, in my opinion, because it means computers, the Internet and the vast stores of information and computing power they offer are used to enhance every day life. In my vision of AR the setup is biologically integrated into the individual. Perhaps breakthroughs in nanotechnology and quantum physics could one day lead to quantum computers built, maintained and run by bacteria or bacteria-sized nanobots. Such a system could easily dwell inside the body and get its power from food we eat, heat we generate and any number of additional, available power sources inside the human body.

With a faster, smarter Internet at their disposal, these super-fast quantum nanocomputers would be able to deliver important information directly to our brain. Driving directions could be delivered straight to our very own central processing unit and we would just know how to get where we were going. Visual information could be integrated directly into what we are already seeing. A concept model car or proposed construction plan could be delivered to our visual cortex and be inserted directly into the scene we are looking at. Repair instructions for your vehicle could be delivered to your brain, and virtual arrows would point to the part that needs attention next. This is AR in the distant future.

Before we get there, if we ever get there, there will be many other ways AR will play a significant role in the future of computing. With virtualization, for example, having the computers locally (the bacteria) would be unnecessary. The computing power would simply be delivered over the net. More and more we will see things like this be delivered as a subscription service rather than something you own. Computing power, data storage, applications, etc. will all be subscribed to, delivered and handled over the Internet.

I know I wrote about much of this before, but I wanted to focus more specifically this time on the computing aspect, especially after seeing that presentation and the associated article. Please leave comments and feedback – I want to know what you think.

Subscribe to Me

What I’m Reading

When I Post

January 2021

RSS My Favorite Quotes

  • Quote #60
    "The greatest minds are capable of the greatest vices as well as the greatest virtues." - Rene Descartes
  • Quote #59
    "There is nothing noble in being superior to your fellow man; true nobility is being superior to your former self." - Ernest Hemingway
  • Quote #58
    "The fool doth think he is wise, but the wise man knows himself to be a fool." - William Shakespeare

I have had:

  • 52,504 page views (so far)