Idea: Social Wikipedia
- Having informed conversations with your friends about a topic you want to discuss.
- Finding a topic to discuss amongst friends which everyone is informed about.
- Finding people who are informed about a topic you want to discuss.
You’re at the pub with some friends and an interesting discussion/debate breaks out. It might be something like:
Is Melbourne better than Sydney?
What should be done about the Israeli-Palestinian conflict?
Will the Greens party pick up seats at the next election or fade out of existence?
A discussion on the morality of something or other.
Something about Cricket.
The problem is that its hard to find an intellectually stimulating topic which everyone is well-informed on. Discussions usually devolve down to someone saying: “You should read article X or book Y or watch video Z”.
For example, you might have someone commenting on Greens party politics in Australia without any knowledge of the trends for Greens party politics around the world. A quick read of the Wikipedia article on the Greens Party provides a great definition, summary, history and trends to provide a good basis for argument. Many debates that are had in one country are generally about issues which have already been tackled around the world by other nations. Be it healthcare, immigration, debt and deficit, etc. Being aware of the international experience lifts the level of discourse.
You might also have someone commenting on the Israeli-Palestinian conflict without knowing anything about the complex history of the situation. People will always have opinions regardless of how much they know of the topic. A quick read of the History of the Israeli-Palestinian Conflict on Wikipedia will greatly improve the level of discourse, in comparison to an emotional knee-jerk reaction after reading the latest developments in news article.
The idea is a browser extension which monitors which articles you have read on Wikipedia. There is also a website where you login with your Facebook or Twitter account to allow your friends to see what articles you have read, and for you to view your friends activity if they are using the extension too.
Here’s what you might be able to do on the website:
- You can click on a topic to see which of your friends are well-informed on that topic.
- You can select a friend to see what topics you are both well-informed on.
- You can choose a group of friends to see what topics you are all well-informed on.
How will the extension know when an article has been read, not just skimmed?
Using a combination of metrics such as most recent visit, number of visits, time spent on page, and page-scrolling activity, the browser extension will determine what articles and sections you have read on Wikipedia.
The website will allow you to have more intellectually stimulating conversations and spend less time dealing with uninformed arguments.
People will be motivated to read the same articles their friends have read, increasing the level of discourse and the breadth of topics able to be discussed.
Here are a few ideas for down the track:
- Allow people to suggest articles for other friends to read that came up in recent discussions.
- Use gamification to encourage groups of friends to become informed as a group on popular topics.
I was very impressed with the way Airtime, a social video chat service, uses your interest graph from Facebook to match you up to people with similar interests. Social Wikipedia may offer ways for you to find compatible conversation partners too. However, instead of using rough signals such as what you like or who you follow, it will use what you know.
Facebook’s Social Reading apps allow users to see what articles their friends have read. In its latest form I found this feature a bit too privacy invasive, as did many others. I believe the underlying concept has promise though. With Social Wikipedia I’m banking on Wikipedia articles being less privacy sensitive which may not always be the case. There are also many ways to alleviate privacy concerns from this sort of monitoring by instead allowing you to manually indicate that you read an article, or possibly a daily review feature to allow you to erase sensitive topics.
I will probably put this app together as a side-project in the next couple of months.
Markdown is awesome
I love Markdown. Kudos to John Gruber. It’s the main reason I chose Tumblr. Real Markdown support. My posts are all stored natively as Markdown. No fumbling around with a mixture of HTML and Markdown like Posterous does.
When I need to drop some code into a post its so easy - just indent four spaces. No messing around with raw HTML or script tags. A touch of Prettify and its beautifully coloured too.
When I need to link to something I just wrap the text in square brackets and then add the link text in round brackets. Links can be quickly updated without having to rely on a popup. If I want to extend the text that is linked its as easy as moving a bracket. In a WYSIWIG you will be removing a link and re-adding it and it will be unpredictable. It’s just slower.
WYSIWIG is a good idea but it never works the way it should. The Google Sites editor (trogedit) is a classic example. It’s terrible. You inevitably end up with tags that aren’t closed which result in some funky effects such as all your pages having a heading style applied to them.
If you find something that Markdown can’t do, such as re-sizing images, its not a problem! Just use Markdown Extra which is what Tumblr implements which supports raw HTML tags when you need them. This allows you to embed flash videos, resize images and anything you like.
Everyone should support Markdown. There is a much greater chance that I’ll use your product if you have Markdown support - and I mean real native Markdown Extra support.
Mobile social lag
Social check-ins take too long.
I’ve started living the problem of social check-ins by using a variety of the most popular location-based and social check-in apps when I’m out and about.
For example, when I’m eating out I use the following services:
- Google Calendar or Facebook for the time and place
- Google Maps to find directions
- Photo app or Instagram to take a photo of the location and dish
- Facebook, Foursquare, Gowalla, and SCVNGR to check-in, and recommend to friends
- Google Places to write a review
- Foodspotting for dish recommendations
- MealSnap for calorie tracking
In the future I can envisage a few more types of services involved in the workflow such as a mobile payments app like Google Wallet. There are countless other apps I could also have used including UrbanSpoon, Yelp, Zagat (now owned by Google) and Local Eats.
I’ve found myself spending considerable amounts of time repeating common actions while trying to use all the services together. Entering the same location and taking the same photo from different apps. There’s also the problem of spamming my Twitter and Facebook feeds with multiple check-ins about the same thing.
It looks like you have to make decisions about which apps to use or we need an app to automatically share to multiple services for us similar to what Posterous Auto-Post achieves for blog posts.
I recently heard about a neat new service which might solve this conundrum called Ifttt (If this then that). The concept is as simple as it sounds. For example, if you take a photo then you share it with multiple services. With this service I envisage that you would be able to solve the repetitive tasks mentioned earlier by creating something of a social sharing workflow.
Another solution would be for an app developer to take a page from Do@’s strategy and use a super-app to drive a collection of HTML5 apps to automate these workflows while still providing access to the apps feedback and information if needed. Facebook appears to be using this strategy too, they are rumoured to be creating an HTML5 mobile app platform known as Project Spartan.
Another problem is that each app takes about 5-10 seconds to store data to the server which is a bit frustrating. Firstly, it could be because mobile internet is slow and sporadic. It could also be that the web service is slow. Both of these problems are mitigated if these services used a background saving mechanism, but of course this would mean you would lack the feedback after your check-in regarding how many points you earned, etc.
Overall I find these location-based apps quite useful mainly for the recommendations but surprisingly the gamification can be quite fun too. It will be interesting to see what Facebook’s rumored platform turns out to be - hopefully on October 4.
Frictionless fitness monitoring
I’ve been getting back into a rhythm in the last few weeks after a year of sporadic fitness. Over the years I’ve found a few gadgets and websites quite helpful along the way.
I should also mention that I’m a big fan of ubiquitous computing. Also known as pervasive computing. I’m also a stats junkie. We’re still in early days of the movement towards ubiquitous computing but there are many great gadgets already available if you look for them. A great place to start is health monitoring. Many of the gadgets below help you to throw away your pen and paper and forget about trying to remember to record your progress. It’s all taken care of for you. That’s frictionless fitness monitoring.
The watch comes with a heart-rate chest strap and a foot pod to measure your heat-rate during exercise, the distance your ran, and calories expended. There are some others on the market which are worth considering such as the Garmin Forerunner 610 and Polar RS800CX.
The new Garmin Forerunner 610 looks awesome. The reason I chose the Suunto was for the smaller sized footpod, the battery life (Garmin must be charged every day), and the online community website. Garmin has the advantage of GPS but that eats away battery life and I do most running on a treadmill anyway. Polar are generally the leaders in heart-rate monitoring watches but the online component of the Suunto was a win for me. They are pricey though!
Just heard about a new watch from Basis which does constant heart-rate monitoring and calorie counting which might be worth a look too.
This is Suunto’s community website where my watch sends all my stats. The website is great and let’s you see your fitness improve over time. The only problem is its a bit slow. Great customer service though. After tweeting to @movescount about a login problem I received a very prompt response. The great thing about Movescount is that as long as I wear my watch and sync it to my PC every so often, graphs of my heart-rate will be available on their website so I can track my improvements in fitness. This is pervasive computing and I love it!
This is such an amazing concept for a relatively simple piece of technology. It’s basically a pedometer with wifi. They are not shipping to Australia yet, but you can buy them on eBay - I’ve ordered four from this seller. After you start wearing it you will never take a lift over the stairs again.
I was telling someone the other day that I will probably be wearing this clip for the rest of my life. Fitness only becomes more important as you age and at my age I’m barely reaching 10K steps a day. If they were a little bit cheaper I’d be buying them for all my friends.
The FitBit is about as frictionless as you can get. It automatically syncs to a USB docking station over wifi when you’re in range. Just make sure to charge it every two weeks.
I use this app to track how many sets and reps of each exercise I do which means I don’t have to remember how much weight I last lifted. It also provides graphs to show my improvement over time as a bit of motivational tool. I have four workouts programmed in: Chest and Triceps; Back Lats Traps; Shoulders and Biceps; and Legs. At the moment I’m planning on running 3km each day followed by an abs workout. I plan on doing these four weightlifting sessions spread out over a week.
This is where I got all the bits for my home gym. For a basic home gym I’d recommend the Ironmaster Super Bench and Ironmaster Quick-Lock Dumbells. You can buy attachments for the Super Bench for a ton of different exercises. A word of warning though - it is no easier to go to a home gym a few steps away than a commercial gym a few kilometres away. The small reduction in travel and increase in convenience doesn’t change the motivation you need to push through a 40 minute bodybuilding workout.
I started using this recently. Take a photo of food and it guesses the calories by comparing it to a database of images. Very clever. I’ve never been able to maintain a food journal more than two weeks. Besides having RFID chips implanted into food, this is about as frictionless as calorie counting its going to get for now.
Withings is an awesome French health gadget company. Their body scale is brilliant. You just jump on the scale and it will take your body fat and weight and send it up to their cloud service. You can view nice graphs on your iPhone or iPad. Don’t worry about writing down your stats anymore. Multiple user support is very elegant too - it detects who is on it by comparing your current weight to the last weights of all users. If multiple users are similar weight it lets you select your user by leaning left or right. Very clever. They are also working on a blood pressure monitor and a baby monitor. Could not be more frictionless.
Just a great online store where I order all my protein shakes. I’ve been using the same brand of protein shake since I started: Redbak Rapid WPI. Vanilla flavour is great.
Music is so key to motivation for me. I don’t think I could run without it. I do most of my running on a treadmill at home. I use iTunes Home Sharing to share my playlists from my computer to my home gym.
I find complete albums not great to run to. For running I need a good uplifting beat the whole way through. One exception would be 45:33 by LCD Soundsystem. This album was commissioned by Nike for their Nike+ iPod running app so its makes sense. It’s one of my favourites too. I sometimes use Hype Machine Most Popular or Favourites.
If you’re a stats junkie too, I’d love to hear about anything I’m missing here.
Google designers don’t care about 640 pixels
I am a big fan of Windows 7’s Snap feature, allowing you to drag a window to the edge of your screen and it will resize to take up half your screen. This is not exclusive to Windows 7. Previous to Windows 7 I used WinSplit Revolution. On my Mac I use Arrange which I highly recommend.
The problem is that there are very few web apps that look good at 640px wide which is half of the standard laptop screen width of 1280px. Let’s look at some of the offenders.
How often have you needed to look at something related to an email like a Google Doc or webpage? I’d expect this use case to be quite common. Gmail’s minimum width for message view before showing scroll bars is 783px. When viewing a message the minimum width becomes 1112px. Google, this sucks!
Google Wave suffered from the same problem in assuming people had much wider monitors and would be using it maximized.
Google+ is another example of neglect for this use case although right now I’m suffering from The Scoble Problem. Google and their love affair with white space and 13px fonts could learn something from Facebook. To be fair, Google Calendar does seem to adjust the use of whitespace when you resize it below 768px high and ~800px wide. This may be a result of Justin Kan calling their redesign “goddamn terrible” back in June 2011. The ugly overlap of the links in the Google sandbar (black bar at the top) should also be handled better.
Google engineers don’t care about 640px wide!
It’s partly forgivable considering that most developers are working on a Macbook 15” at 1440px wide, or a monitor at 1920px and sometimes even 2560px. Some quick fixes might be to just zoom out or minimize some screen elements but I don’t think I should have to clean up my interface when it could be done for me by the designer. It should “just work”.
Microsoft has already admitted defeat and decided that 1280px is not enough width to show the Windows 8 Metro Sidebar by setting the minimum required width before displaying the sidebar at 1366px which I personally think is a mistake - although it would be great to see PC makers increase their standard laptop screen widths (as long as Apple is on board too!). Facebook on the other hand fits their new sidebar within 1280px fine.
So has the world already moved on from the desktop to the more exciting mobile arena? It feels like anything to do with the desktop or laptops these days is old fashioned and a distraction from the important mobile/tablet movement.
The solution is Responsive Web Design. This is basically using some CSS/JS so that pages elegantly rearrange their content to fit the size of the window all the way down to mobile phone screen sizes. It allows webpages to use the same HTML for both desktops and mobile devices too.
This movement towards “full-screen apps” from Apple’s Lion, Microsoft’s Windows 8 Metro Interface and Google’s Chrome OS is also worrying. By having apps take over your entire screen, it reduces our ability to use multiple apps together and pushes us into walled gardens as each app will try its best to keep us in their frame, like we are seeing with Google+ Games (which may soon become Google+ Apps), and Apps on Facebook.com.
This also applies to tablet devices where we are only able to view one app at a time at present. Coupled with restricted app interoperability this often slows down productivity-related tasks. Windows 8’s Metro Sidebar approach is a step in the right direction here but still way more restrictive than traditional Windows - that’s if mobile devices support the minimum screen resolution restrictions.
All I am asking is that designers everywhere (it’s not just Google) embrace responsive web design and platform wardens allow us to have more than one thing on our screen at once.
A HAML, SASS, Compass and Coffeescript workflow for non-Ruby projects in Windows
For my most recent project I have been working with the new Play Framework for Java and Scala from Guilleame Bort (2.0 is just around the corner). I quickly discovered there was no easy way to use them for non-Ruby projects, nor was their much demand it seemed. Using them on Windows also presented its own challenges.
There is an excellent Scala library called Scalate which among its four supported templating languages you will find SCAML which is based upon HAML. I tried this but ran into problems trying to mix Java and Scala in Play. There is also a Play module for Scalate but it required an earlier version of Scala and was last updated July, 2010. It doesn’t seem worth updating it before seeing how Play 2.0’s default Scala-based templating language turns out.
After pouring over many helpful blogs and github snippets I have settled on a hacky solution to use these tools for any project in Windows by simply copying one folder to your web app directory and running a batch script.
Copy this folder to your web app directory on Windows (rename to
watcher), tweak the directory names in the config files to suit your project structure (explained below) and run the
watch batch script. Hack on some HAML, SASS and Coffeescript and your source files will compile instantly upon save.
The script uses
start \B which will run each script as a background process and display the output in the same CMD window.
For the structure of my Play projects I borrow from the Maven approach where I have a top level directory for each language of code. This is handy as I can keep my generated files (html,css,js) separate from their source files (coffee,sass,haml).
You might also like to install Twitter’s Bootstrap for Compass.
You can use any project structure you like - the settings below assume the following structure (remember I’m using Play):
Here’s where you can find the settings. Be careful as some paths are relative to the
watcher folder which should be in the root directory.
config.rb - SASS/Compass Settings
haml_watch.rb - HAML Settings
source_dir = "../haml" dest_dir = "../"
watch.bat - Coffeescript Settings
start /B ncoffee -w -o=../ ../coffeescript
I admit that this is bit of a hacky workflow but I have found it useful and the pleasure of HAML et. al outweighs the guilt of a hacky solution. Here are some alternatives you might like to consider.
- Brew - Maven plugin for integrating Coffeescript, RequireJS and haml-js into Maven workflows. I’m not using Maven at the moment.
- Concoct - Not a build time solution.
- wro4j - Too complicated for my needs and for Maven.
I also use LiveReload tool which will track changes to files and automatically refresh the browser. It’s available as a Chrome Extension.
Surprisingly enough, as I was writing this post I discovered LiveReload 2 is in development which claims that “CSS edits and image changes apply live. CoffeeScript, SASS, LESS and others just work.” However its only available as a native Mac app for now although they say that a Windows version will follow later.
If you have a better solution for Windows please let me know!
Store for recall
If you’re like me you’ll have hundreds of archived emails, bookmarks, articles and notes in all different places, most which you haven’t looked at since you saved them. I’ve always thought a day would come when I would read through and process everything but this day never comes.
A while back I went back to basics and started thinking about why I was saving these things in the first place?
Whenever I thought something would be useful later, I would save it. Whenever I saw a headline of an article that I thought I should know about, I would save it. The reality is that no-one has time to read everything they might like to. This problem is called information overload. What is needed is a way to prioritise.
An interesting observation I had was that priority changes depending on what I am working on. If I’m working on a financial modelling project, the pages I’ve saved about spreadsheets and financial modelling such as Sumwise - will it start a spreadsheet revolution become important. If I’m designing a webpage, those articles which top HackerNews such as Bootstrap, by Twitter or How Batman.js can help you build web apps become more important. Technology is changing so rapidly that if you can keep up with it all there are huge productivity boosts available. What is holding us back is not lack of innovation, its lack of awareness from information overload - and it’s not your fault!
So now, when I have the temptation to save something for later - I store for recall.
I think about what I will be doing when I need this information and I save it in a way that will ensure it comes towards me when I am doing that thing. Those familiar with Paul Allen’s Getting Things Done will recognise this as similar to his idea of contexts.
So whatever system you use to save things, just make sure there is a mechanism or you have some routine that will ensure the important things come towards you when you need them.
I’ll leave the discussion of how to achieve this for another day. If you’re already doing this what tools do you use?
Live the problem
When my friends and I get talking about the world of tech startups, someone always has a great idea for an app. When you think of a great idea it’s easy to get excited about it and start building up a feature list and the screenshots in your mind. The problem is most of the time there is already “an app for that” - you just haven’t heard about it yet.
The first thing I always ask people about there ideas is “who is your competition going to be?” Some of these ideas are truly great especially coming from those who don’t track the world of tech startups, for example a non-technical person thinking up a crowd-sourced fundraising model for new bands. The only problem being that someone has already beaten them to it. Most of the time a simple Google search will uncover a web or mobile app doing exactly what they were thinking. I’ve even Googled their idea for them on occasion and discovered an app that I began using everyday. Even people half way through developing an idea will sometimes be unaware of an app already available with far more features than they had thought of.
When people are faced with a problem or inefficiency, everyone suddenly wants to make the next uber-successful app, rather than solve the problem they are faced with and get on with their day. If they had done some research with the intent to solve the problem in front of them they are bound to find something more than adequate.
Occasionally for small side-projects I willingly neglect researching for something that is already out there. Finding out someone has already done the idea saps away my motivation to pursue it and I usually find myself convinced that the way they have built their app is the most optimal.
One thing I’ve learnt is you need to live the problem1. If there’s an app that already attempts to solve it, make sure you are using it daily. Make sure you have some first-hand experience with the problem. Find others with the problem and see how they are attempting to solve it. Try a range of solutions yourself, not just the most recommended or most hyped by blogs.
What might happen is there exists an app that solves the problem for you perfectly, but after a good five minutes of googling you do not find it. Another reason you might not have found the app is that the problem was not frequent enough or important enough for you. You have a really cool way of solving it though, which makes you think its more important than it is. The problem with building an app in this situation is that if you were not able to find the app or did not spend enough time looking for it, what is to say that people will be able to find the app you build?
A real problem here might actually be app discoverability which a few companies are tackling. With so much disruption happening in the tech world, problems are being transformed so that without knowing what you are looking for you may only find a better twist on an existing solution rather than a completely new way of thinking.
Is it always realistic to live the problem? What say you?