I’ve neglected this a bit
I need to update this blog, I feel I neglect it. Thoughtful post coming this week I promise.
Hi, Kindle Fire
First post on my kindle fire. Hello.
Penetrating the psychological startup barrier
I’ve read a few great books lately about living your dream to launch your startup idea or just pushing yourself on executing your idea. One of the common key points each author makes is just get out there and do it. Stop making plans; stop thinking about it; stop trying to get everyone together to figure out the next big thing.
If you have something you’re passionate about and love, just go do it.
I absolutely love this approach. It’s one step they always leave out when explaining in school how to be successful and start your own company because people have a psychological barrier. In todays world, especially the tech startup one it’s extremely easy to cut a lot of the initial fat out of forming your own company. No longer do you need to spend thousands of dollars on marketing and legal fees, and having to form your complete business plan before writing one line of code. The idea here is to ship fast, ship often and learn to pivot.
Now I’m off to work on that idea.
Getting Things Done with Evernote
In the past few weeks at work since my role has changed I’ve been actively trying to maintain all of my notes digitally. This process will allow me to easily go back and search or filter on previous notes I had taken or to recall notes from a specific sprint planning session.
I originally went with Microsoft OneNote. It’s a decent piece of software with most of the features you’d expect from a fancy note taking application. But I have found some definite flaws with this software.
First, how it synchronizes my notebooks. You never have the notion anything I ever being synchronized. Ever. I have to manually click the sync panel and either see it being synchronized or manually sync it myself. This isn’t the most obvious interface and is a bit confusing.
Also, sharing a notebook with someone is very tedious. If I want to share something easily I need to first enable the notebook to publish to the web (see above) then I have to enable the notebook in SkyDrive if this is even an option. Again, a huge pain. Sharing does not seem to be the focus of OneNote. One nice feature to have would of been the ability to integrate into Exchange deeper with the ability to share directly with someone within our Active Directory.
So I started looking into Evernote again. I used this product years ago and it has dramatically evolved. Really great sharing functionality. Great mobile app support. The ability to define tagging, you can use a browser and best of all it’s free.
The OneNote interface is not my cup of tea and I’ve converted all of my notes over to Evernote for now.
Finally, Google Analystics Goes Realtime
Google is finally introducing real-time analytics with their Google Analytics product. This sounds like a serious competitor to other real-time analystical apps that track data from social media sites like Twitter and Facebook. I’m curious to know if this will begin getting into the untapped market share those companies have deserved for quite some time.
If interested in trying out the new features check out Google’s blog post on the subject.
Amazon Kindle Fire Sounds Intriguing
I have been reading into and thinking about the new Kindle Fire Amazon has announced. Comparing this “Android iPad Tablet Killer” device to every other one out there one thing really stands out: integration. It integrates very nicely just like the iPad with all of your other Amazon services right out of the box so it’s a very seamless experience.
So for $199 Amazon is really delivering a comparable device. We’re talking:
- 7” touch display
- Blazing fast dual core processor
- Integration with Amazon Books
- Integration with Amazon Video on Demand
- Integration with Amazon Streaming
- Integration with Amazon Music w/17 million songs
- Ability to use Amazon Cloud so you can upload all your music and listen anytime you want
So already this device to me looks comparable to the Apple iPad. But what I start thinking about is now Amazon has their own device that integrates with all their products is what new products will they introduce that it will support? I’m thinking stuff along the lines of:
- Book rental store; with your prime membership you get to read books and digitally return them like a library
- Spotify like music service that comes with your Amazon Prime membership
- Hulu competitor (probably difficult though)
These are the two I could think of that would give them a huge lift over Apple right now since as far as I’ve heard they are not introducing a subscription music service anytime soon. I have no pre-ordered one yet as I want to wait to read the initial reviews but at the price point of $199 I’m definitely not scared of trying one out soon and see how it goes.
Then again, a second version may be around the corner.
As long as your going to be thinking anyway, think big
So this week I was asked to take on a lead role in another team at work. As I always look at every situation with a potential challenge, I still find my career and what I do extremely fun.
When you work with a team of intelligent and talented people it can make your job a very pleasant place to be. It allows innovation, increased productivity and creative output. This is what we’ve pushed with our team since I started ten months ago and it still shines today. As we continue to innovate and push the bar with programmatic freedom, we still meet the goals of our team and our product owners each sprint. This is what makes my job both awesome and fun.
Back to my original point, I am really excited to work with the new team. We all know each other already very well, so this fact alone proves that everyones strengths are a great asset that if harnessed correctly can make a product work. Some people are faced with challenges in life, so they get bored or give up. Personally I try to find the best solution to solve a problem but am always open minded when it comes to other opinions.
With that said, I can’t wait to put some brilliant minds together and see what comes of it.
Best commercial ever.
MongoDB: Intro
A while back I started reading into some of the NoSQL options for quick and dirty data storage. While there are plenty of them out there now days, I really liked MongoDB which serves as a document based NoSQL data store.
The beauty of this is that instead of thinking in a relational model, you store your data on a document level which is much more friendly to a programming if you ask me. For example, say you have an object like so:
var user = {
“name”: “robert”,
“age”: 31
};
First thing you notice is the syntax looks exactly like JavaScript, well that’s because it is. MongoDB document engine is built on top of JavaScript with a JSON type syntax called BSON; very cool. So that means you can already elverage your existing skill set at this point. Anyway, back to my point.
The awesome thing about this is instead of thinking in a relational mindset where if you had relational storage like a user and address you normally would have to create two tables. Since MongoDb uses a dynamic (or schema free) design there is absolutely no need to define this. Check out how easy this is:
var user = db.users.findOne({ “name”: “robert” });
user.address = {
“street”: “1234 Street”,
“city” : “San Francisco”,
“state” : “CA”
};
db.users.update({ “name”: “robert”}, user);
And that’s it. No modification of schema, no dropping tables and re-creating, nothing. Obviously this is a short example of the power of MongoDB but really shows the power of this sort of schema-less design.
I’m in no rush to run out and attempt to migrate all of our databases to a NoSQL approach but for things like logging, simple storage, statistics and so forth why not. By the way MongoDB supports replication sets and sharding automatically out of the box which makes scaling out horizontally a breeze.
One of the biggest advantages as far as performance goes is that MongoDB writes really, really fast. When doing writes to the database it’s basically an instantaneous write, where the client doesn’t wait from the server for a response, the response is essentially an “OK”. In my opinion this is why MongoDB is perfect for things that don’t need to have high availability with their data like when charging a credit card with the need for transactional support. It does support safe writes but this is another topic.
Since this is my new fascination I predict some more posts based on Mongo, my new love child.
Twitter Bootstrap
I love discovering new css and development frameworks, and today Twitter has released their own called Bootstrap. It provides you with a nice grid framework, layouts, lists, tables, forms, buttons, navigation, you name it.
The probability of me using something like this is pretty high, as it really encompasses many elements other frameworks don’t provide.
It also uses Less which is a powerful CSS preprocessor. Check it out!
Now your grandma can code
Check out this nifty little site that teaches you the basics of programming. I definitely think it’s a great little tool to show your nieces, nephews or heck event grandma the basics of programming.
Patently Stupid
Being a software engineer, I tend to stay up to date on latest tech news especially in my industry. Over the past year it seems as if the amount of patent lawsuits in the tech industry have skyrocketed. This is a scary thing, since in my opinion most technology patents do more harm than good.
Some recent examples can be found here, here, here and here.
Among these are numerous other examples of companies becoming patent trolls which is completely killing off innovation within companies. This needs to change. If companies continue at this rate, anyone attempting to start a small business will be more scared of being sued into the ground because of some obscure patent purchased by a company from twenty years ago. If the government was to protect small businesses and innovation within this company they would reform this whole process from the ground up. It does nothing and it’s completely damaging.
I believe patents are the wrong answer to protect intellectual property. Copyrights allow a much more flexible model to protect intellectual property from ones work, and would allow new companies to develop simliar, although completely different business models.
But hopefully some of this is going to change. Google has recently called for patent reform now that the patent wars have heated up dramatically. Also, recent discussions on patent reform have stalled due to the debt ceiling crisis.
I’d like to look back in ten years and hope all dreams of having the creative freedom and innovation of a software engineer is not crushed by patent trolls.
Enums from Hell
When I read articles like this I just cringe, then laugh. Some people just don’t deserve to be in the business of software. I can’t say I haven’t seen worse in my own personal experiences of reading others’ code.
Dreams of a Startup
While sitting idle tonight I started to think about if I was to launch my own startup from a fresh clean slate, what technologies and stacks would I use? Most people don’t get this opportunity so it’s actually a really interesting question to think about.
My first thought is being from a Microsoft background, would I want to go this route or learn something new. Using something like Python or Ruby would be fun don’t get me wrong, but in reality I’m wanting to launch a startup not spend my time learning new languages. Even then, after being out of a super stealth mode this is completely appropriate and probably applauded.
So here’s my ideal architecture. I actually have some ideas brewing in my head so these are based on the needs of these ideas.
Fx
- ASP.NET MVC3
- C#
- jQuery
- Backbone
Storage
- Redis for Session State
- MongoDb for structured document data storage
Services
- WCF
Events
- NodeJs
Cloud
- Amazon EC2
- Amazon S3
- Amazon SQS
IoC
- Unity
Testing
- nUnit
- Selenium or Visual Studio Test Suite
In a nutshell the above is probably what I would begin focusing on and working with. It’s definitely a mixture of both Microsoft and non Microsoft technologies but I think that’s what makes things great; you shouldn’t lock yourself into one technology and should be flexible enough to adopt what’s best. I’m still probably need to update a few items here and expand reasoning but it’s a start. Also, I’m torn on the testing tools because honestly I think Microsoft’s suite of test tools that you can get with Visual Studio 2010 are not bad. It allows really nice integration but then again from what I understand, you need to use all of their tools to really make use of these components.
This is a new mix I put together after about seven months.
