The Game Can Change In A Blink

…Or how dreams go can go down the sink.

Earlier, this evening I found out that my cousin was pregnant, but she’s like a little sister, so I feel like I’m going to be an uncle. I’ve been having a hard time trying not to judge and just be happy, but it’s hard. She’s known for years what she wanted to do, and has had it all planned out, and then out of nowhere a surprise that’s going to shake her life. The unexpected turn that can derail even the best laid plans. Now I’m trying to fight myself off, I know she’ll be a great mom, but I can’t help but wish there was another way.

I’m fighting myself over being judgmental, but also fighting my own hypocrisy; when I was 16 my girlfriend got pregnant, it wasn’t mine but that didn’t matter to me. I offered to help her raise it, and be the father that the child would need, and started prepping for it. A few weeks later, after having discussed it, but without telling me until it was done, my girlfriend had an abortion. I understood the reason, fully, but it still hurt, then as it does now. My girlfriend, was trying to get rid of a bad dream for her, and open back both of our opportunities for the future.

During those few weeks, I felt invigorated, filled with more passion than anything before. During those weeks, I realized I had to fight, not for me, but for the child’s future. I’m not a fighter, when it comes to myself, I do what I do to survive, but I don’t really try harder than that. It’s unnatural to me. Tonight, that passion was revived,  this time I’m fighting for not just my ‘niece/nephew’ but also for my cousin’s future. I really don’t want to see her end up on the same path, I’ve gone down. I don’t want her dream to die.

It’s time to drop my humble approach towards life: Allow life to happen. It’s time for me to grab the bull by the horns and take this life for a run. The only thing that could happen is that I fall, and have to get back up. Infinite Upside. I’ve got nothing to lose, and so much to give.

…Or why business plans stink.

So far this post has been pretty personal, now let’s talk about business; business plans to be exact. The idea of a business plan is to provide some guidance about the market, your growth, competition, and strategy to achieve that growth. It used to be that the plans were long-term, 5-10 years. The problem with this, is that as our world becomes ever quicker to adopt new changes, your strategy can be invalidated. You very well may be stuck playing checkers, while everyone else plays chess, if you stick to the business plan.

If you want to stay alive, you have to change your strategy to fit the new rules of the game, otherwise you will lose. This means that you need to constantly be on the ball, and willing to change as you get new data, which requires that you actually acquire, analyze, and adapt to some set of data. And you need to be constantly aware, but also have some lag on decisions, so that you don’t get stuck working on a fad. Business plans have become near useless, for long-term prediction.

The important things now, aren’t the plans, per say, but that you understand your market and competition, can do what you say, and are willing to keep going with the feedback you get. You have to preempt competitive maneuvers and always be on the look out for new competition. The game is now not just about who gets there first or who does it better, but who does most of what I need, how I want

If you do everything according to plan, you will be beat, there is no doubt in my mind. You become predictable, you have to change the game that’s being played, and adapt to the new rules, when others change the game. If your plan is invalidated, don’t fight to save the plan, take that information and adapt to it. If you can’t stop there, then maybe you should go hang out with the telecom and cable giants, they’ll keep clawing to keep their duopolies on the market, but the casket will close on them if they aren’t careful. The status quo is deadly.

Be prepared to go to the brink, for what you believe.

You’ve got to take everything you’ve got and just go headlong into the fray. Life doesn’t stop because you want it to;  don’t try to stop it. Enjoy it, all of it, even hardships. What doesn’t kill you only makes you stronger, after all. Make your moves with patience and diligence, but do make your moves before the clock stops.

“When the going gets tough, the tough get going.”

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

The Thought Of Success Is Wonderful

Humans are self and group inhibitors in general, primarily the former. We all have fears and worries, that force us into reactionary tactics for survival, but often times, the fears are fiction, induced by over-thinking, or someone promoting them. Reactions, aren’t precise and are rarely efficient, they are emotional decisions made in angst, we shouldn’t trust it in most cases. I think this is why so many people fail, they allow fears to get in their way.

A child’s innocence and sense of wonder make them marvelous. They truly believe anything is possible, they aren’t inhibited by their prior experience. The “empty” mind that is open to being filled, with new experiences, new ideas, but they often lack the experience and skills required to communicate  with the world. If children are able to fight the inhibitions that allows their wonder, can we try to promote it to as a way to encourage success?*

Adults have mostly forgotten how wonderful life is, and think it is beating them down. I can’t count how many people I know who think life is out to get them, because of their bad experiences, with prior failure or contempt at others success. Many suspend their wonder, in order to fight others ability to succeed, they feel that injustices were served to them, because a disease, their financial situation, employment possibilities, etc. I’m not saying any of that is necessarily wrong, but what is wrong, is complaining about what you can’t do, instead of  looking at what you can do, in an uninhibited manner.

Your dreams don’t have to die, because of something that has happened to you. e.g. Randy Pausch – Experience Zero G like an Astronaut. Randy Pausch author of, “The Last Lecture.” He realized early on that he couldn’t be an Astronaut, because he wore glasses, so he changed his goal. All Randy really wanted to experience was Zero G, so he set out in life with the goal of one day going on, “The Vomit Commit,” which is an aircraft used for simulating Zero G. He changed his goal, to fit what he could do, and I believe too many people give up, based on their general disadvantages, and never look at what they could do, regardless, to get close.**

Open your mind, your eyes, your heart, and fight for your dreams. Find someone to help, I know not everyone has someone to help, but it never hurts to ask. There are plenty of enablers out there, just show them that you’re passionate. If there is one thing I’ve seen lately is that there has been talk about how to get a mentor to assist you, in achieving your goals, and there has been one point in these articles that sticks out.

“I’m not going to  spend my time helping you, unless you prove that you’re willing to put the time in yourself, and show me what you’ve done. You have to show that you’re willing to go it alone, but would like help.”

So what are your dreams? Write down 5 things you’d like to do in the next 5 years, and/or 5 things you want to do before you die.

*= One of the things that occurs to me, about STEM(Science, Technology, Engineering, and Math), is that they are very rigid in general, and our school system doesn’t try to break from the rigidity. What that rigidity does, is when a child doesn’t get something, he is penalized by bad grades, but this enforces fear and contempt, or it is overly repetitive and the child loses his sense of wonder. We should work on filling these areas with wonder and flexibility.

**= Actually, while skimming the book to find the story on this, I noticed this article is very reminiscent of the later chapters, on Dreaming Big.

Chronological Data’s Influence On Relevancy Analysis

Last night , I read Content should be experienced by relevance and importance and interestingness, not chronologically,  after Louis Gray shared it on Friendfeed. This is my take on chronological and other relevancy metrics. While, I agree with Garry on the outcome; I don’t  want to shrug off chronology as lacking importance, is a great tool for weighting an objects relevance.

Chronological data is a very nice weight to have when you’re looking at the whole set of objects. Chronology isn’t as important for idea’s or thoughts, as it is for news, but when looking at the subset of most actual news, it is much better.  Cadmus succeeds because it focuses on a small chronological window, or at least it does in my case, showing me the most relevant items in the last 24 hours, as well as a focused source of input, Twitter. Twitter, and most social tools, have high-entropy in relevance over a sustained period, so that if you really want to provide relevant or important information, focusing on what has happened in the past 24 hours is a great idea. Unfortunately, the web isn’t just Twitter, Facebook, or other tools, there are thousands of blogs, and news sources that are also relevant.

I’m going to use the example of a feed reader, considering that’s where I was focused when looking at these things, and thus have more insight into the discussion at hand, in that area. Trying to determine relevance on items, particularly news, doesn’t work so well when you’re focusing on a set of items you’ haven’t read, over a period of weeks, months, years, or even a few days, and seeking relevance/importance. What you end up with is possibly having sets of news that is outdated, being more relevant than current news, or an item that doesn’t fit the users interests.

Some real quick techniques, to boost relevance involve chronological data, though it’s not as necessary in the later stages of relevancy, it plays a huge role in cutting the set down to size for analysis. Here are a few methods of using chronological data for quickly sculpting more relevant information.

  • Create a window, static or sliding, this helps capture and condense echo. (48-72 hours is good)
  • Over a period, larger than your initial window, you can remove stale items, by comparing condense sets, that are on the topics that are more current.

Chronology is an extremely quick and dirty tool, but it can help tremendously, in narrowing the items down quickly. So that the data that needs to be processed for each user is much smaller, however it is far from the be all end all of the process for determining relevant data. The list of other items for determining importance or relevancy:

  • An external source weighting similar to PageRank — allowing high-value content to be controlled by peers as well as sharing it’s clout. (Source-Data relationships)
  • A personalized weighting based on your relationships similar to EdgeRank — allowing your personal interactions to show trust and interest in items. (Human-Human relationships)
  • A personalized weighting, based on your habits, and usage of various items similar to APML — allowing your content usage to be analyzed and weighted. (Human-Data relationships)
  • An aggregate weighting of both Edgerank & APML, to determine, weighting of topics based on human relationships and habit comparison, an idea like GAP(ML) — allowing your common interests and friendship to expose a more complex set of relevant data. (Human-Data-Human relationships)
  • A set of common related data carriers, and user relationship with his sources, somewhere in between Edgerank and Pagerank — allowing quick analysis and overview of sources, to determine what is important currently, as well as what is important among the sites the user trusts. (Source-Source & Source-Human relationships)

Those are the main relationships, in my mind, though there are a few others, such as media relationships(text, audio, video) not all people prefer the same type of information format. Tools that the user is using, you may want to provide data to the user in a different manner depending on how and what they are using to observe the data, or where they observe the data. If the user is the key, then the relationships and objects around the user are most definitely the teeth, and you have to hit as many tumblers as you can, without getting stuck.

These are just the ones I’ve focused on, and I’m sure their are others just as value that I have skimmed over, but this should provide a good, base for starting out, and there are probably a million little tweaks and touches that I skipped.  To quote Garry, because he was right.

The field is still a bit wide open because few people have both the dataset to work and test on, AND the financial backing to see the project all the way through.

We will definitely push the boundaries over the next few years, and we’ll have a better order for our information, I have no doubt in this. However, I’m betting many individuals will still rely on the very simplicity that we rely today: Chronological ordering. And even if it isn’t shown that way on the surface, deep down, it will be at the very base of relevance. Some under-the-radar companies, in this area, are Bit.ly and BagtheWeb — bundles are an excellent source of the information required for relevancy*, Quora and Stack Overflow — Q&A is a huge resource for the personal interests, Cadmus, Hunch, and My6Sense — all have experience working with this, and I have no doubt all three will only get better.

*- I may be biased here, I’ve been working on and off with bundling, for close to 2 years, but ultimately got lost in perfecting how the data was stored.

Ordered Networking: 4munity/hIphS

As I feel like it’s good to recognize your failures and look at what went wrong, here is the first of several posts on some of my failures. I’m posting these for two reasons, storing my failures and lessons, but also my ideas, however loosely bound they may be.

Date: December 2007 – September 15th, 2008

Core Ideas:

Limited number of relationships based on Dunbar’s Number(150); Segregation of various groups (e.g. Work, Family, etc.); Focus on forums for communication; Making an environment, extremely unfriendly to spammers.

From the notes:

Privatized Comments – Scalable conversations 1:1 – 1:100 conversation, allowance of publication by Owner [commenter]; Features: OpenID Profiles – Tweet Threads – Forums – API Integration – Collab Napkin Interface; Ordered Network – 150 Friends Max, (later laxed to 200) 149×150(22350) 2nd Order, 149x149x150(3.3million) 3rd Order;  Access: Friends – View Profile, comment, message; 2nd – View profile w/o comments, message; 3rd message; AJAX Threading – Personal Styles (Pre-Designed Offerings); Mobile entry coding: (P[post]/R[read]) GGTT [Group/ Thread Depth] For new thread posting location; AL Appends Last Message (within 15 minutes.)

Background:

I got really sick of Facebook, had already deleted 2 accounts, and barely using a 3rd, Myspace, and forums because of security and overall interaction present on those platforms. The information I saw was spammy or non-relavent to me. I was more interested in finding a way to maximize value of relationships, and communications.

It started off as just an interesting piece of forum software, and then evolved into using relationships to promote and control the relevance of the data, and collaboration. Unfortunately, I was utterly clueless about what I was doing, and went about using Java to build the interface, and text files for storing relationship data; I had no clue about true databases at this point. The whole database was a set of folders and text files, what could go wrong. Yep, not much else got done, except for a barely working version of the napkin, and it definetly wasn’t as functional as I would have liked.

Ultimately, I fell in love with Twitter, and decided to walk away from the project. Not before posting, a blog post detailing the basics fo the service, which I’ll post at the bottom. Overall, I was so disturbed I tossed most of the code out immediately, and have sense thrown most of the other pieces from here and there out as well, even the original logo, which I would have liked to added to this post.

Lessons:

Layout a solid plan, and pick your tools wisely.

Don’t try to do everything, too much, means it takes forever to get things done.

If you need help, ask for advice from people you trust.

If you lose interest before you’ve even completed the project stop throwing more time into it.

Sep 05, 2008

What is hIphS?

A lot of people that have found this place are probably wondering what is hIphs. So I’ll give you some back story on what it is and why it needs to be. hIphs is something that I am currently developing to remove the problems I have found with the Social networking area. It is here to confront spamming, promote relationships, and help people collaborate on projects. It is a support group, a conference for you team, it is a place to connect with your family, above all it is here for you to use. I see it as a social experiment at this stage as of some of the boundaries I have set to force all of the goals, layered networks, personal forums, and above all a 200 person limit for friends, family, and partners.

I feel that If you can force the limit constraint that it will promote relationships and (it has just begun to be implemented in lighter extent on digg and twitter) to reduce spam. I am also working on a napkin interface for collaborative work that would allow you to upload files to share during a conversation, along with and IM client and a whiteboard, all to open the web to truly interactive collaborative projects. It is also to my interest to at some point in the future to allow saving of this collaborative event and allow you to provide it to clients or share it in house. The one other aspect that I’m working on is to provide a threaded forum based twitter like threading that you only receive the threads of your friends and you can keep the thread going with someone who is mutually related to your friend, so long as your friend is the one who began the thread.

Why the name hIphs and why the odd capitalization?

This is actually one of the last names I came up with for the site as my favorites were already taken. The name is based on several levels: First, is the likeness of a closed social network to that of a bee hive, you and your friends are more productive when your dealing on a trust based system. Second, is what you get when you split the word apart “Hi Phs” which I came to symbolize as Hello Friends. Third, I feel that the site will be providing multiple ‘I’nternet ‘S’ervices in the future, thus, the emphasis on those to letters. That’s my description on what hIphS is and why I chose the names. Thank you for reading this if you somehow found it, at this