I just finished taking Strategic Innovation and Design Thing through Stanford's professional development center.
http://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=1284924
Was it worth it - No
A few years ago, Stanford's online courses may have been cutting edge. Now they just seem like a money making scheme. There are three things I expect from a course, and this course failed to meet my expectations in all three.
What I expect
* Interesting and relevant material.
* Easy access to course content.
* Interaction with professors and other students.
What the course provided
* Meh course content. Most of the course's content was just recorded lectures from a offline class. Much of that content is not relevant to someone taking the class online. The major activities / projects of the course require a group to be successful, which you don't have online.
* Crap access to course content. The lecture videos don't let you fast forward / rewind. The website was frustrating beyond belief to use.
* Non-existent interaction with classmates and professors.
Suggested Alternatives
http://www.udacity.com/overview/Course/ep245/CourseRev/1
This Udacity course is better in every way than the Stanford one. The material is built for online consumption, you can get access to the class material, and you get to interact with other students and professors.
If you don't feel like taking that Udacity course, you might want to check out these books.
The Lean Startup By Ries, Eric (Google Affiliate Ad)
Crossing the Chasm By Moore, Geoffrey A./ McKenna, Regis (FRW) (Google Affiliate Ad)
http://www.amazon.com/Inside-Tornado-Strategies-Developing-Hypergrowth/dp/0060745819
Sunday, October 7, 2012
Wednesday, May 2, 2012
What could Github do next?
What is Github? Github is a place for people to come together around code. Programmers host code repositories on github. Github then lets other people look at that code, and to add to it. They make money by selling a premium features to a subset of their users.
I suspect Github has two different types of users with very different use cases. Users who contribute code and those who don't. The non-contributors are most likely developers themselves, but aren't actively contributing code to Github at that moment.
Contributors use Github as a place for storing code, and a way to coordinate developer effort around a project. Non-contributors may use Github just as a reference source. Looking at other people's code is extremely helpful when trying to write your own code.
What are the big things they could do next? The two different users need very different features. For now we'll just focus on the contributors.
Contributors want to work together with other developers. What tools could make a distributed online team of developers live's easier? Code reviews on Github are an awesome start! They are a great way to have a discussion around a new bunch of code.
Moving in this same direction, Github could make it easier to ask a question to a project's contributors. Imagine you are part way through a feature on a project, but you get stuck. Today your options are to mail a mailing list, or submit 1/2 finished code for a code review. Neither sounds very good. The solution could be something simple like adding a chat room to projects, or more complex like adding some hard ties between Github and Stackoverflow.
A different problem / feature : At times pair programming is really awesome, but it is hard to do over the internet. It is especially hard to pair program over the internet when you don't closely know the person you want to pair with. Here is how you fix it - project centeric pairing. Github could play matchmaker to contributors of the same projects that both want to pair up. These contributors don't have to know each other, and if Github does it right, it won't be uncomfortable to pair with someone yo don't know. Github wouldn't have to build a whole stack of software for pairing either, they could probably leverage something like G+ hangouts to do 99% of the work.
Sunday, November 6, 2011
Google Plus
1. What is a social network.
Most people think that what Facebook, as it is today, is synonmous with a social network. That is, a social network is nothing more than a place where you post your pictures, update statuses, and communicate with your personal friends.
This is a very narrow and limiting definition of a social network. Any business that tried to build a 'social network' as defined by these terms would certainly loose to Facebook. If Facebook is the definition of a social network, you can't out Facebook Facebook. To win you have to change the definition. (Or better yet, go back to the definition)
A social network is comprised of two parts.
1. Social - Who are all these people? What do they care about? What do they do?What do they enjoy? What do they like to tell other people?
2. Network - How are these people connected together? How can they share things important to them to their network?
This definition doesn't inherently necessitate having a 'wall', or photos, or a profile page. Google won't win by just pumping our a Facebook clone. It'll take adding things inherit in the definition of a social network, that don't exist today.
The first step is to 'socialize' all of Google's products. Here are the products I think have the lowest hanging fruit. (Each of these could make a really interesting post)
- Android
- Google TV
- Gmail
- Google Music
- Youtube
- Google Calendar
- Google Automobile (I this doesn't exist yet, but it should and will)
- Finally Search
Meanwhile Google could also start socializing the rest of the web. Imagine if Amazon or Netflix was able to make suggests based on who your friends are.
Thursday, February 24, 2011
Kinect Ads
Problem: Ads in the physical world are dumb. If there is an ad in the mall, I'll see the same ad as everyone else that walks by.
Solution: Use Microsoft kinect and a screen to target ads to people as they walk by. The kinect can tell us information to serve that person better ads.
Here are some things the kinect could identify about a person as they walked by
Solution: Use Microsoft kinect and a screen to target ads to people as they walk by. The kinect can tell us information to serve that person better ads.
Here are some things the kinect could identify about a person as they walked by
- How old are they (infant, adolescent, adult)
- A mother with a young child should get different ads than a teenager
- How big of group are they walking with
- A person by themselves should get a different ad than a group of friends
- Gender
- How fast are they walking
- Are they in a hurry
Linear Conversations
Scenario: Its Friday afternoon. You and your friends need a plan for what to do that night. You open an email thread to discuss what to do. You throw out a couple ideas; maybe a pub or watching a movie.
Your friends reply to your mail. They have movie and pub suggestions. Once friend mentions playing kickball as another idea.
Problem - Email Threads: Think about how unorganized this email thread will be. Your friends will hit reply all, and you'll be left with an long chain of emails. In all this unstructured linear text you might forget the suggestion of kickball, or you might forget why you all decided not to watch a movie.
Problem Analysis: People don't think or communicate linearly. Email threads force linearity.
Solution - Email Webs: In the original email thread replies we added to one long chain of text. We should be able to break apart the conversation into different subtopics.
A conversation shouldn't look like a line, it should look like a tree.
Your friends reply to your mail. They have movie and pub suggestions. Once friend mentions playing kickball as another idea.
Problem - Email Threads: Think about how unorganized this email thread will be. Your friends will hit reply all, and you'll be left with an long chain of emails. In all this unstructured linear text you might forget the suggestion of kickball, or you might forget why you all decided not to watch a movie.
Problem Analysis: People don't think or communicate linearly. Email threads force linearity.
Solution - Email Webs: In the original email thread replies we added to one long chain of text. We should be able to break apart the conversation into different subtopics.
A conversation shouldn't look like a line, it should look like a tree.
Wednesday, February 16, 2011
Twitter problems
I was reading Quora and I found this post. http://www.quora.com/Twitter-Inc-company/Why-does-Twitter-need-300-employees Jane mentioned some really interesting CS problems
I remember my housemate was once incredulous as to why we needed so many engineers for such an apparently simple site. 1) Twitter's not as simple a website as you think--keeping Justin Bieber from dominating the trends and user recommendations are two examples of nontrivial features. 2) Like Facebook, the core functionality is simple and most people could do it in a weekend, but getting it all to work at scale is hard.
Here are a few ideas for how to tackle those problems.
1) Keep Justin Bieber off of trends
For each potential trend, keep track of two pieces of information. How often it normally occurs, and how often it is currently occurring. List the item as a trend once its current rate greatly exceeds its average rate.
2) Recommendations
Idea 1: Graphs - This is the most feasible, and least out there
Idea 3: Neural Networks
I remember my housemate was once incredulous as to why we needed so many engineers for such an apparently simple site. 1) Twitter's not as simple a website as you think--keeping Justin Bieber from dominating the trends and user recommendations are two examples of nontrivial features. 2) Like Facebook, the core functionality is simple and most people could do it in a weekend, but getting it all to work at scale is hard.
Here are a few ideas for how to tackle those problems.
1) Keep Justin Bieber off of trends
For each potential trend, keep track of two pieces of information. How often it normally occurs, and how often it is currently occurring. List the item as a trend once its current rate greatly exceeds its average rate.
2) Recommendations
Idea 1: Graphs - This is the most feasible, and least out there
- For a user U, make a graph of every user U follows (following represents an edge).
- For every user in the graph, add all users they follow
- (optional) repeat 2 until graph is big enough
- Recommend the nodes in the graph with the most inbound edges.
Idea 2: Clustering
I want to flush this out later, but the basic idea is to create some N dimensional space. Each dimension corresponds to level of interest in an area. (eg. interest in Justin Beiber) Map the user and potential recommendations to this space. Recommend the nearest items.
Figuring out what are potential recommendations and what the space looks like might be either be hard (computationally) or take some extra thinking.
Tuesday, February 15, 2011
Subscribe to:
Posts (Atom)