The Future Of Search Can Be Found In Dungeon

Earlier today, I made a comment asking, “Could it be that Zork* is the search of future,” then deleted it. Louis Gray ended up calling me out on the deletion, which was for no real purpose other than not wanting to fully explain myself. I might as well lay out my thoughts on what I meant, lest I forget it.

A problem with search currently, is that we’re being trained to speak to the engine, with a penalty to using regular phrases as your query strings. Various terms are stripped from the query strings, and you end up with items that aren’t relevant or hardly related, when you just haphazardly place your key terms in.  This is an issue that I find frustrating; I often end up banging around for hours on end trying to get proper query terms to bring me the results I’m looking for. Search is simply hit or miss, even for the new guys, such as Blekko and DuckDuckGo, trying to beat the incumbent which is Google. The new guys have better quality, but it does come at a cost of having special syntax, Blekko with the slash modifiers and DuckDuckGo with the bang modifiers.

Why don’t we have a search system that uses a more intricate text parser, to parse the queries. It’s obvious that we have the technology, just look at how amazing the parser for Zork and other text-based adventure games were. Why can’t we use grammar that we are used to, and let the software parse the elements out, where necessary? Simply put, I’ll trade off the ability for instantaneous results if you provide a simple text parser that makes it easier for me to input my queries in a more natural form.

Let me put in something like one of these:

  • “Louis Gray’s latest post about Friendfeed.”
  • “Most recent blog post from Louis Gray about Friendfeed.”
  • “Latest blog post on louisgray.com containing Friendfeed.”

All of those should return similar results, but they all share a common set of elements, that humans often have to convert into their queries if they want to get a valuable response. A decent Google query for this would look like, {site:”louisgray.com” Friendfeed}, but this requires that you also select an option outside of the query box, to narrow it to most recent. All of those queries I would like to use return very noisey results, even the modified query is noisy, and is more closely related to “containing” than about.

My question is why don’t we have a text parser, probably client-side, that helps us out in getting the content we want? If you look at my preferred queries they break down in to relative elements.

  • A source. Signified by ”s,’ ‘from,’ and ‘on’ in the relative examples. They all signify that your looking for something from Louis Gray, in some form.
  • A temporal modifier. Signified by “‘latest’ and ‘most recent,’ in the examples. Signifies that the period is a significant element of your query.
  • A  source modifier. Signified by the ‘post’ and ‘blog post, in the examples; easily could be Tweet, Status, Image, to search for.
  • A search method. Signified by ‘about,’ ‘containing,’ or ‘with.’ These signify how the elements that follow should be interpreted.
  • A set of query elements. In my example I only used Friendfeed, but it is what follows the search method signifier.
  • A system of set logic. Using ‘and,’ ‘or,’ or ‘commas,’ as a way to modify the way the sources and queries are handled.

Why aren’t we using this now? Sure, some of what I suggest is harder to manage, because it requires the ability to know who Louis Gray is, and what sources he has, but this only requires having a somewhat decent image of his set of profiles. Google happens to have just that, as do many other aggregating services, but Google has the power here, being a search provider. I don’t know if it will enhance the results we receiver from such services, but wouldn’t it be wonderful to talk to the system in a way that is at least halfway normal, and get decent results even without a solidly designed query.

Search providers please give us a half decent text parser, even if it’s only as advanced as that of the 70′s. Hell, it’s already common enough to see simply text parsers that pull hashtags, and @user strings, and converts them to links. Why not something that takes a more English approach to the query, and does the conversion for us to get the perfect query strings, that the system wants?

“What a (ahem!) strange idea!”

Notes:

*= Zork’s original title after completion was Dungeon, but a trademark violation saw that it was changed back.

The Simple Styleguide I Follow

I was asked to provide an overview of a project that I was working on and I ended up providing a style guide in the overview documents and thought it was worth sharing. It’s in no way all encompassing, but it provides a good core for self documenting code, in my opinion.

Simple Styleguide
Naming Conventions
-   Files
   -   Always lowercase
   -   Words seperated by an underscore
   -   Controllers
       -   Named after the functional  area they are meant to add
   -   Models
       -   Named after the table they access in the database
       -   Tagged with a _model to denote the file as a model
   -   Views
       -   Named after the controller which requires that views
       -   At most 1 primary view per controller
       -   You can provide a sectioned views using the sections folder
       -   Sections should be stored in a folder named after the primary view
           -   e.g. /views/sections/{primary view name}/logged_in.*
       -   Tagged with a _view to denote the file as a view

-   Classes are capitalized version of file name

-   Function/Method
    -   Words seperated by an underscore
    -   Generally use a verb at the beginning to describe functionality

-   Variables
    -   Normally named after the field they access
    -   Create model objects as m_{model name}

Spacing
-   Indenting
    -   Uses spaces instead of tabs, 2 or 4 spaces
    -   Classes
        -   Brackets start on next line at the same level as the class
        -   Brackets end on the same level as the class
    -   Functions
        -   Brackets start on the next line at the same level as the function
        -   Brackets end on the same level as the class
        -   Add a new line to split functions up for readability purposes
    -   Control Blocks
        -   Brackets start on same line as the beginning of the block
        -   Provide one space between the end of the logic and the bracket
        -   Brackets end on the same level the control block

Extra Bits
-   Functions that have a similar focus should be close to each other

On Suicide and Negativity

This was published by accident, and as such is lacking in the actual content I wanted to add, so I’ve added an addendum. I’ve also thought of taking it down, but some people responded positively to it, so I’ll keep it up with only minor editing.

I have been thinking quite a bit about suicide lately. Just thinking about it, it’s not something I could follow through on, anymore. Life is absolutely worth living. It has caused me to make changes and continued thinking about what I’m doing and what I should do. It is also a leading edge in my personal views.

For some background, I’ve made 3 serious attempts over the last decade, though the last was over 4 years ago.

My first was when I was 11, at school; one day the teacher walked out of the class room and I climbed into the second story window, and leaned back to roll out onto the sidewalk. Luckily, two other students grabbed my arms just as I had leaned back, pulled me back in, and convinced me it was stupid. During this period, I also used to drag my head on the ground while swinging trying to use the force to snap my neck.

The other two attempts occurred when I was about 15 or 16, once with a gun, and another jump attempt. I took my stepfather’s .22, off of his workbench in the garage, out into the woods, and sat there thinking about what I would miss for a few minutes. I then placed it up to my temple and pulled the trigger. Nothing happened. My stepfather, keeps the magazine empty and the chamber clear, when it’s not on his person. I walked back to the house, placed the gun back on the bench, and went into my room and cried myself to sleep.

The other time, I walked out to cliffs near my house, and down to a little bench, that we used to look at the river from, because it was clearer there. I got ready to jump, but again decided to think about what I would miss, and sat down and thought about my girlfriend at the time, who was also suffering suicidal tendencies, and how much that might affect her. She had lost an ex, on her birthday a few months earlier, when he hung himself. I decided to walk away from this one, but almost accidentally succumb due to the slope getting back off of the shelf, and the leaves slipping from under my feet. This was, and will be, the last attempt I ever made.

I realized at that point, that my actions are selfish. I don’t just take my life, but I could ruin so many others. I also realized at that point, that death isn’t to be feared or fought against. To deny death, is to deny life. Life is to be enjoyed and filled with happiness.

My job of filling my life with happiness is often harder when I add socialization to the mix. I don’t like when people fearmonger, it’s one of biggest gripes, because it creates a negative mindset. I also try to avoid those with negative mindsets, because it doesn’t help anyone. Being positive, but even more so realistic, is the best that can be accomplished. Lately I’ve seen so much negative thinking, it’s bringing me down, and making it hard to keep the thoughts down.  Also people who say I can’t, make me sad, because I am filled with hope for individuals, and it shows that they aren’t filled with hope themselves.

*Addendum*

I am an optimist through and through, but I’m also a pessimist at heart; this makes it easier to tear things apart and find a solution. I see potential in everyone, this is why, “I can’t,” annoys me so deeply, and even I am prone to excuses, but I loathe them, and try to find ways to subvert them in myself and others. I only turn my back on people, when they take advantage of me or others, to my knowledge. I also realize that life is filled with negatives, and these can make it seem like you can’t, but there is often a way to spin the negativity with optimism or ignore it, if there is no real ramifications to that ignorance.

“Just be…” The only time you have is now. Be happy. Be inviting. Be courteous. Be free. Be you.

*Addendum fin*

I just don’t have time for negative space, and negative thoughts and arguments. So I’m done with it.

Living Last Mile

I apologize for any cursing I do, this is an issue I fight with daily, and it’s a ridiculous one.

I live in semi-rural WV, but I also live without adequate access to information, at a nominal rate. In order to get an internet connection, where I live it costs roughly $50 on top of a phone bill for 768kbps ADSL. There is also no means of getting television, besides paying for satellite service, which also doesn’t come with local channels f or some absurd reason. Ever since the Analog-to-Digital transition in June ’09, the reception which is known to be bad in mountainous areas, dropped completely off the map, because it became an all or nothing signal.

What you end up with is exorbitant costs for minimal service, even though people within a mile, have no such issues; cable is provided along the main road on the backside of the property, but it’s about 3/10th’s of a mile. Currently, the two bills are $80 for TV, for mid-range satellite service, that isn’t 2/3 Christian broadcast, receiver rental, and 2 broadcast station feeds, that should be locally provided, and $65 for Phone & Internet. It pisses me off to know that just because we live just outside, the service area of the cable companies, we are charged out the ass.

If our house was moved less than half a mile, we would have a more stable internet connection that is 10x as fast, basic enough tv with local stations, we really only need broadcast stations. For about half the price. This needs to be addressed, as well as anti-competitiveness in areas, companies trade off in areas and create virtual monopolies on local markets. I’m just frustrated at how close, and yet how far the access to information is, and I also know that I’m not the only one in the area that feels this way.

Our nation, has turned its back on those that live last mile, and the infrastructure required to provide its citizens decent access to information. We are solidly driving forward, in improvements, but those improvements are generally within the large metro areas, where they see maybe a 2x increase ever 3-4 years, while those living last mile slip further behind. I understand it’s not feasible for the companies to create the infrastructure, that they won’t see a return on any time soon, but there has to be a way to improve our nations information infrastructure(IPv6 should be included).

Super WiFi is probably the only decent technology for this area, considering everyone is stretched rather thin, the infrastructure costs would be lower, but that’s not a likely roll-out option for at least 4-5 years, if not a decade. That’s how slow progress is, when you’re living last mile. It’s infuriating to see improvements so close, and simultaneously know that it will be held right in front of your face, but out of your grasp.

25 Ideas To Live 25 Hours A Day

1. Sleep is unproductive and a waste of time.

Every hour you spend sleeping is one fewer hour you get to truly spend living. One hour a day is more than 2 weeks of extra time, every year. Obviously, taking it too far isn’t healthy, but a 4-6 hour night adds 1-2 months to your conscious living every year.

“Sleep is unproductive and a waste of time.” ~ Louis Gray

2. Be Childish.

Never take yourself too seriously, life is too short. Enjoy every moment, and don’t block your own path. Spend your time with making memories and friends.

“If it seems a childish thing to do, do it in remembrance that you are a child.” ~ Frederick Buechner

3. Acknowledge the inevitability of death.

Sooner or later we will all die, fighting for survival is ultimately a losing battle. Stop fretting, and focus on every moment you have in the present.

“This is your life, and it’s ending one second at a time.” ~ Fight Club

4. Money is less valuable than time.

There is no way to gain more time in life, and the clock never ceases. Stop trading your time for more money than you need, if your time is more valuable.

“Time is money says the proverb, but turn it around and you get a precious truth. Money is time.” ~ George Gissing

5. Ignore the little things.

Do only the 20% most import things or those that you feel will have the biggest return. The time and energy you save, can be spent on the things you really want to do.

“20 percent of focused effort results in 80 percent out come of results!” ~ Vilfredo Pareto

6. Never be afraid to challenge the ideas.

There is no reason to let anything stop you, particularly yourself. Rules are roadblocks with 3 options: follow the rules, break the rules, find a way another way around the rule. Choose your own path in life, and never stop learning something new.

“The Way of Mastery is to break all the rules—but you have to know them perfectly before you can do this; otherwise you are not in a position to transcend them.” ~ Aleister Crowley