Friday, October 16, 2009

a simple way to decentralize twitter, and why we need it

Once of my biggest problems with twitter is the fact that twitter is centralized. This means that content I give to twitter, and content I receive from twitter both go to/come from the same place. This sucks.

Once twitter goes down the service is completely unusable. This is totes mccraps. My solution: let the twitter api change the data source from twitter to a 3rd Party source. It would look like this:
request for tweets from twitter -> if twitter not hosting then forward request to 3rd party site -> 3rd party site publishes tweets

This way I can run my own twitter server for my friends and myself. All my friends need to do is log onto twitter through my site and my site automatically changes their data source from twitter to my server. They then can trust their data to me instead of twitter. It is much less likely that I will go down since I know my load will never peak, unlike twitter which doesn't know their load and will keep breaking like it does.

Twitter can still own the data if they want(based on their terms of service they can still grab it and keep it). But they don't have to be responsible for it, which they shouldn't be. It's your data, you should be able to decide who's responsible for it. I can make the same claim to facebook, but they have too closed of a philosophy to ever change.

This could also help innovate your social graph. Following friends could be expanded to following the people on your server. It also would make creating social apps over twitter much easier for developers by giving them unlimited access since they would be able to run their own servers.

Twitter's servers would still be the main key, and they wouldn't lose any power doing it this way. They would be able to offload their processing to other people's servers, saving them money. Makes sense, to me at least.

why google is winning

In the past year or so I've noticed something simple about google's strategy that is going to push them even further from M$ in the coming years. It's all about planning for the future, and not deviating from that plan.

The main examples I'm going to use are search, and android. There's a concept of once you're the king, it's extremely hard to be overtaken. M$ has done this with the OS and Google with search. Unless you can do a massive leap frog over the king, there's almost no point in throwing a crap load of money trying.

M$ has been trying to do this with search, but they will never win. I'm sorry, but M$ has not showed in the past that they are smart or clever enough to push any massive feature list that will get the masses to switch from google. They had the wrong mindset/business plan and in the end bing will fail.

Google, on the other hand, has the right mindset. Their mindset is on the future, and the future for the web is mobile. This, I believe, is the number 1 reason behind Android. Google creates this great mobile operating system, that hardware venders can use for free, and boom, Google owns search on any mobile device that uses Android (along with all the other mobile OSs that use goog for search).

Google now has the last laugh as they become the king of mobile search, while M$ is trying to play catchup with something Google perfected over 5 years ago.

Friday, June 12, 2009

Google Adds Alternate Routes to Map Driving Directions

My love for online mapping grows as someone finally adds alternate routes to driving directions.
The major benefit of this is avoiding traffic. In cities like Chicago this can be huge. It would have been awesome to have had this when I was driving to work, instead of taking the train like I do now.

It gives you the estimated times driving times for all routes, including estimated times with traffic. It also gives the transit info, including alternate transit routes and times for those.

I've been pretty pumped about this type of feature since I heard about it in the Dash GPS devices, and now it's finally something I can use.

check it out:
http://maps.google.com/maps?f=d&source=s_d&saddr=S+Wabash+Ave&daddr=N+Arlington+Heights+Rd&hl=en&geocode=FWoCfwIdrO7G-g%3BFcozggIdXobB-g&mra=dme&mrcr=0&mrsp=1&sz=12&sll=42.050057,-87.874832&sspn=0.134352,0.311737&ie=UTF8&z=12

Thursday, June 11, 2009

synergy - awesome kvm

I finally had it this week having to use 3 keyboards/mice for my computers around my personal office. My friend, a while ago, told me about an open-source solution called synergy.

I installed it last night on two ubuntu machines and it was so easy and fast to install.

sudo apt-get install synergy quicksynergy

Then create a synergy.conf . Here's mine:

sudo vi /etc/synergy.conf:
section: screens
kelly:
mary:
end

section: aliases
mary:
192.168.8.102
end

section: links
mary:
right = kelly
kelly:
left = mary
end

section: options
screenSaverSync = false
# My KVM uses Scroll Lock to switch screens, so set the
# hotkey to lock the cursor to the screen to something else
keystroke(f12) = lockCursorToScreen(toggle)
end

Then start:
synergys -f --config /etc/synergy.conf

And that's it. It works awesome! Check it out if you have multi-monitors with different boxes.

Wednesday, February 4, 2009

podcasting/media subscribing will replace tv...and it's available now

I bought an iPod Touch about 5 or so months ago, and it's rarely left my side since. This little device is amazing. Easy to learn, and I have access to any type of media I want with just a few swipes and taps of my fingers. It's introduced me first-hand to the power of iTunes and what the apple media business model means for our future. What if you could pick the shows you want to watch at night through your phone, any time of the day, and have them ready for you whenever you wanted to watch them? Yes, like a Tivo on steriods. As easy as flipping through the channels on your current tv.

Right now to copy this type of model is expensive and time consuming. First you have to setup your computer so it outputs to the tv. Then you need the right software to play your videos and music. Then you need a way to get your media. And what if you want to watch it in a different room, or even on your smart-phone?

iTunes has started the model, but it's too proprietary right now to become as accepted as the tv. Though it is a giant step forward.

With iTunes you can subscribe to video and audio-only podcasts. This means if your favorite news cast makes their show available online, all you have to do it subscribe to it once and iTunes will automatically get the show for you everyday to watch at your disposal. No more missing shows and news because of work or other activities.

What I love most is the ability to get things that I can't with tv(especially now I don't have cable). I can listen to This Week in Teck (twit.tv), pretty much all espn shows, web design shows, and political news casts. This truely lets you pick your own window on the world, from the big tv corp view, to the small independents. Anyone with a microphone and the Internet can get their voice out to the whole world. This is the start of the next evolution in media, and I suggest you try it out.

Monday, January 26, 2009

garmin forerunner 405 and garmin connect...AWESOME

SO...my christmas present to myself was the garmin forerunner 405. it has almost ever feature that i would want in a training device:
heart rate monitor
gps
developer tools
+ all the normal training watch features

the major downside: windows only. they say os x support in the "first quarter of 09" but we'll see when that comes out. seems that it's only because they have yet to create the drivers for that ANT+ system they use for the wireless data transfer, so hopefully it's not long until they get that worked out.

since the only win machines i had were all emulated, and i couldn't figure out how to get the ANT+ stick to follow through to them, i had to install xp again on an old laptop. after about 10 hours of total work(2 -> garmin connect, 8 -> xp install) i go this:
http://connect.garmin.com/activity/1903407

as a developer, a page like this can do so much for inspiration. if i only had an extra couple days a week...

Thursday, January 22, 2009

coding style - an underlying factor

today at work i was pondering what is the thing that makes me unique and strong at what i do. so obviously i spent my time comparing myself to what my co-workers to figure out why i can get all my work done so fast and still have time to let my mind take breaks (to me this is reading blogs) and still get all my work done much faster than i should. the major difference i came up with was efficiency in coding style.

i constantly keep thinking about the structure of the current project i'm working on, from front to end. my mind pretty much stops when i start thinking serially (one thing after another) and i don't have a choice but to think in parallel because of my ADD.

one thing i get when analyzing other programmers though, is everyone thinks that they are the most efficient at their style. in my opinion, that is completely the wrong way to think. 100% efficiency is something you never achieve when coding. also people who think it's not worth the time to put into learning a new technique, i also think you're wrong.

i think this is exactly why i can do things much faster than others. my main techniques are as follows:
Aptana(eclipse mod) IDE intelisense: i can't live without this amazing tool. i've got everything memorized and can write my code over twice as fast than i can with a normal text editor or vi. the majority of my friends use something like vi which is great, but i'd love to challenge a vi master against my


massively repetitive code: i have 3-4 files i use that has all my repetitive code in it, always readily availale in an open tab. if i need to use my observer pattern or select list create foreach loops or anything i use at least once a week i push in there and know exactly where it is.

efficient use of OO pattern techniques: in every language that you can write class-like objects and extend them, learning OO patterns has been the most amazing thing ever to me. i write mostly javascript and just today i used about 3 different patterns for new code. if you can't write OO code, i'm sorry, but it is amazing.

another thing i'm constantly doing is working on my efficiency. if i know i'm working on something i'm going to have to do in the future, i try 3-4 different ways of how to write it so i know what the fastest way will be in the future. most coders should naturally do something like this, but make sure you're conscious that you're doing it. think about your technique all the time and make yourself better. it really pays off.