Tuesday, July 03, 2012

My Laptop Stack

Unlike an application and more like a development shop, my new MacBook Pro has a "stack" of software for development.
I'm between IDE/text editor right now. I was using textmate and I'm evaluating sublime. I'm looking at Brackets as well.

Saturday, June 16, 2012

TXJS Presentations Remotely


I've never been able to attend a TXJS conference so I've admired the event from afar. It looks like Rebecca Murphey and Alex Sexton hosted another grand event. Here are some great presentations.

Pamela Fox @pamelafox did a presentation on "localStorage: Use It, Don't Abuse It" that is very well documented and a great resource on local storage. The link to Steve Souders case study on Google and Bing is one example that I really appreciated.
http://localstorage-use-not-abuse.appspot.com/
http://www.stevesouders.com/blog/2011/03/28/storager-case-study-bing-google/

Rebecca Murphey @rmurphey presented "A New Baseline for Front-End Developers" which which really helps me know where I should be pushing my limits. For example, I really want to automate a lot of my developement/deployment and it reminded me to study Grunt which was on my todo list from jsconf.
http://frontend-dev-baseline.nodejitsu.com/

"Machine Learning in JavaScript" would not have crossed my mind prior to seeing this presentation by Heather Arthur @harthvader. Perhaps I should be spending a hour per day on node again.
http://harthur.github.com/txjs-slides

Ashley @ClassicallyGeek did a wrap up of TXJS which mentioned a talk by Dave Rupert @davatron5000 on "JavaScript in Responsive Web Design". The fitvids.js jQuery plugin looks very interesting.
http://classicallygeek.com/2012/06/14/txjs-2012/

Finally, I'm looking forward to seeing Jed Schmidt's @jedschmidt presentation on "NPM: Node's Personal Manservant". He always has a interesting way of looking at things so I want to see his latest thinking.
http://www.flickr.com/photos/tr4nslator/7187168459/in/set-72157630065908247

All the videos from last year are here. Maybe the 2012 ones will be there soon.
http://vimeo.com/channels/txjs

Friday, June 01, 2012

415 unsupported media type couchdb jquery

Hate it when I repeat a mistake. Worse when I repeat it.

Adding a new record to couchdb requires a POST and jQuery supports that verb. So I did the simple
    $.post(toc.dbUrl+'techtocs', data, function(data) {
        alert("Data Loaded: " + data);
    },"json");

But this got me the "415 unsupported media type" error. I was sending application/json type but I still got the error. So I finally looked up my old code and did this:
$.ajax({
        type: 'POST',
        dataType: 'json',
 contentType: "application/json",
 data: JSON.stringify(data),
 url: toc.dbUrl+'techtocs',
 success: function(sdata){
     //stuff here+ 
        }
    });

Glad to get it working on this project where techtocs is the database name.

Sunday, May 06, 2012

If Business Takes the Startup Path

When you start a business, there are two well defined paths. One is the startup path with angel investors and venture capital. The other is self-funded, but that is a subject for later.

Assuming you want to take the startup route, in the past couple of weeks there have been two excellent posts about how to structure the company. This question has bothered me since I started my software business in 1978. First, was this article in PandoDaily by Dan Shapiro: "Founders Should Give Their Stock Back: Why Vesting is in Your Startup's Best Interest". He provides a well thought out suggestions for vesting schedules.

Second were notes from Peter Thiel's Startup Class from Blake Masters. Again discussion of vesting and equity in a startup. "It's not ideal to have founders who are fully vested from the outset."

APP IDEA: I'd love to see an app along the lines of Sid Meier's Civilization, where you build a startup. It could reenforce the principles of these vesting articles. Just like Civilization where your first few moves has an enormous impact on your success, so should the startup app.


Wednesday, April 18, 2012

Intersection of eBooks and Apps

In the space between eBooks and Apps, there is a product. It was suggested to me that this is not obvious.

Historically, books and software are very different things. One physical and the other digital. So we think about them as different even though we now call them eBooks and Apps.

Currently the same screen is used for eBooks and Apps. Already, it is sometimes hard to tell the difference just looking at the screen.

But we still talk about the two as very different products. In doing so we leave a gap. There is no reason you could not take the content of an ebook and put it into an app. On the converse a feature of an app would be useful for telling stories in eBooks.

There are already many titles in this space. Eloquent JavaScript a print book and a pdf eBook, but the "web site" is more engaging because it is interactive.  

Saturday, April 07, 2012

JavaScript Community is Real and Growing

Several people have poked at the phrase "JavaScript Community" since JSConf 2012. David Flanagan has said that "it is too big to be a community." Ryan Funduk has said there is a "Culture of Exclusion". There have been lots of tweets and comments. I strongly disagree with both views.

There is a JavaScript community. Fact. There are people working together on JavaScript projects and that makes a community. No matter what you say or try to do, people working together form a community. Recognizing that there is a community is healthy and trying to deny it is harmful in my opinion.

If we did not talk about the community it would certainly be exclusionary. Only by recognizing the community can we make it better and inclusive. Discussion of -isms are welcomed. Talking about the role of alcohol is appropriate. Debates about events are healthy.

Rebecca Murphey, Marco Rogers,  Tim Caswel (in comment to David Falanagan) have already pointed out that a community does not necessarily mean that everyone has the same beliefs. In fact, accepting divergent beliefs in a community are a strength. For example, my strong pro-union views certainly are different than most, but I feel quite comfortable discussing them with anyone at a community event. Divergent views is one reasons I join a community.

None of this introspection should overshadow the tremendous good that the JavaScript community can do and has done. For example, JSConf.eu has strongly promoted Coder Dojo with attention and money to help kids around the world. I look at the great careers that the yayQuery group and others have been able to build with the support of the community. Personally, I've made many new friends thanks to JSConf and have professionally gained. The positives are overwhelming.

When this community started it was very small. In many ways the first JSConf and JSConf.eu started the community. JSConf started inclusive of world, but only a few hundred people were interested in participating.

Today the JavaScript community is huge. With that growth come growing pains. How do we be more inclusive? How can events scale? How do the norms change for a larger community? What are the values? Other communities have faced similar problems. The JavaScript community is very receptive to finding answers to these and other questions. We should be thankful of that value.

Also defending the community is proof that we have a community.

Finally, a community is what you give to it. If you don't contribute it is hard to get anything out of it. So please contribute in ways that are appropriate for you. Let's do even more good.

Sunday, March 11, 2012

How Givingline Transformed on The Startup Bus

The learning experience on The Startup Bus is hard to imagine in any other format. Three long days together on the bus and a few in Austin gives you a much more time to devote to your startup effort. You pitch your product over and over again. Product ideas have more time to transform, iterate and pivot. My biggest take away from Startup Bus is how much the concepts can change.

Our project started as a points system for doing good deeds that feed into LinkedIn. We added the "pay it forward" aspect very quickly. A few hours later I drew on the bus window what was to become the Givingline infographic. For a few hours it was difficult to move forward. There was a problem with the team meshing and with the point system. We knew that many people don't want to boast about their giving.

We simplified. We pivoted. We worked on a viable product. The point system was gone. LinkedIn was no longer a consideration. Our team also reduced from three to two. It was uncertain how the revised concept would work, if at all. The bus schedule pushed us to do a prototype.

After about four hours on the first day we had our slim, working mobile prototype. It did not look like the idea that was presented 18 hours earlier. We felt better with something concrete.

On the second day the other teams on the bus really helped us refine the Givingline concept. They heard our pitch several times and offered feedback. They also became a great resource. For example, we were looking for the types of help where Givingline would be useful. We created a list of 10 different examples and passed it around the bus asking busmates to check what they thought we the two best. We also got some great additions.

The Startup Bus ends with making pitches to Venture Capitalists who need a big return on their capital. How does a social good concept fit? How do you monetize it? At the end of the second day there was a party in Baton Rouge. We threw out the sponsorship model. First, we'd open source the project. Second, we would sell it using the software as a service model to non-profits, religious organizations and civic minded companies in local communities. In addition, I came up with a method of users being able to input request via twitter.

At the start of the third day it felt like the clock was winding down so we set priorities. In the morning the prototype wording was cleaned up and we launched the product by uploading it to a public web server. http://bit.ly/givingline was live. Then we focused on the Givingline graphic or inforgraphic. I got some technical help from my busmates and started to work. From our pitches it was clear that this was the secret sauce, the sex appeal or the eye candy. Because of a lack of internet connection, I was never able to complete the coding of the twitter feature that I had hoped to demo on stage. Regardless, we had a slightly more that minimal viable product that looked very good on mobile.

The fourth day was not going to be a product day. The morning was spent at Rackspace, another wonderful host, listening to several all-start startup experts: Robert Scoble, Guy Kawasaki   and the two founders of Rackspace. Then there were selected pitches to all-start judges. Then a bus ride in the rain to Austin. Then trying to figure out housing. Our product saw no additions that day. Finally at the end of the day, I did get our screencast of the prototype completed and posted. In addition I finalized the two minute pitch to include the open source and software as a service model. We had a completed product ready if we were one of the 16 teams to be selected to make the semi-final cut. With 60 other teams competing and a social good model, I wasn't hopeful. I was very proud of the product we created.

Thanks to my partner Zainab Zaki, all of our DC busmates and conductors and all of the Startup Bus people that made it possible.


Tuesday, March 06, 2012

On the bus! On the Startup Bus!


Venture capitalist and true rock star Bono speaks the truth about the bus.

Early this morning I got on the Startup Bus to South By Southwest Interactive in Austin, Texas. On the way 30 of us will break into teams to prototype a new startup venture and present it to a panel of investors at SXSW. 

Look for my post here and in the Washington Post for the next week. There will also be tweets, pinwheels and a few other social messages along the way. Comments and encouragements are welcome.

Thursday, January 19, 2012

Reading, Bookmarks and Pads

Somewhere between the Zite app, favorites on Twitter and Read It Later is an opportunity. For example, I often discover stuff on my phone using twitter but I want to read it on my tablet or desktop. Why not every time I favorite a tweet it now shows up in Zite on my tablet. This is how bookmarks are suppose to work between synced browsers.

So as a developer I should probably be asking "Should this event, like pressing a button, trigger a sync that would show up on my other devices?"

BTW: Love Zite on my Touchpad.

Friday, January 13, 2012

How to get a mobile phone developer job - Part 4 #learnmobile

I was asked to write up my recommendations for learning mobile. All four parts are listed at the end.  Please leave comments of other favorite blogs or online magazines.


There are several recommended online magazines. When you read a good article, remember to use twitter and post to your blog. In no particular order:
smashingmagazine.com - especially appropriate is the coding tab. Also articles tagged with css. Like several other magazines, they are now publishing ebooks, but they will cost a few dollars. 
listapart.com - there are so many articles enjoy exploring. CSS articles are a strength. Also ebooks. 
net.tutsplus.com - good source of tutorials both for free and for a fee. They also sell books. 
dailyjs.com - generally for the advanced javascript user, but enough articles on learning that you should not ignore. 
html5rocks.com - good tutorials about the latest features you can get in a browser. If nothing else, it should give you inspiration for your own apps.
Are you overwhelmed? Everyone is. You don't have to read all of the articles. Find the ones the interest you and written in a style you like. Take your time. And you don't need to know everything. Just do something everyday.

The important thing is to create and contribute. It is easy to gain experience at no cost, have some fun and join the world of mobile developers.

Comments welcomed.

Intro | Part 1 | Part 2 | Part 3 | Part 4