http://semiaccurate.com/2011/11/15/exclusive-amd-kills-wichi...
http://semiaccurate.com/2011/11/15/exclusive-amd-kills-wichi...
It also highlights two projects combining them:
The Knockout authors are great about updates - new releases this week, and the Knockout Model author just merged our feature request.
If you're interested in these, our team's searching for a JavaScript senior developer to work on both these - see http://handl.it
In light of this article, what is a good application structure to use on the client if we do decide to go with Knockout?
1. githire.com/user/acompa returns my account, while www.githire.com/user/acompa returns someone else.
2. Clicking "Add Info" on my profile
githire.com/user/acompa
takes me to the profile of user "edit" via
githire.com/user/edit
You might need to construct your URLs more consistently, it seems?
THANK YOU to whoever made this.
I'm not sure whether this is due to my profile not being indexed or that its rank is so low so as to be negligible.
Would be nice if they explained their ranking system better. (On the site itself)
Having Dan and Will around to bounce ideas off at the Clojure/conj was simply incredible. One thing I've disliked about the miniKanren system is that many finite programs do not terminate depending on where the recursion occurs. Dan & Will have been working on that problem for 8 years.
Being the unprincipled fool that I am I decided to tackle this problem head on. Over the past weekend I implemented a version of miniKanren that not only terminates now for an incredible number of programs (it implements fair conjunction), but it does so without sacrificing miniKanren's excellent sequential performance when you so desire it.
So for me, yes modern programs should be written in Lisp. We don't even know what modern programs should look like yet :)
I tried it, it looks promising, but when clicked... nothing happened first time. A reload, another click, something happened and the browser was slow and unresponsive. Another reload, another click... the dialog opened and felt clunky and slow.
I'd rather get broken feedback than no feedback. At least some indication what was going on.
We run a womens fashion store, and I know for sure our users WOULD NOT fill this out, or even interact with it. Would be interested in seeing some stats in 6 months.
Best of luck, of course!
A prompt like "This is a screenshot of the page, annotate it to let us know what part you are contacting us about" would be useful.
The md5 hashing to shards around a keyspace ring and the read/write quora were particularly interesting. Definitely going to be browsing the Reddit source (https://github.com/reddit/reddit) for ideas on how to use Cassandra.
If you want a dynamic language, you have lots of great choices. If you want powerful syntactic abstractions, you have Clojure, Lisp or Racket. You can win big with any of these tools.
But some problems benefit from powerful mathematical abstractions, and that's where Haskell and Scala start to shine. For example, if you need to do Bayesian filtering, you can bury all the math in a monad, and make Bayes' rule as easy as an 'if' statement. (I've got a blog post for the curious: http://www.randomhacks.net/articles/2007/02/22/bayes-rule-an... ) And when your library designs start involving generalizations of linear algebra, even Ruby-lovers may learn to appreciate a strong type system.
But this raises the real question: How useful is Scala if you don't need to do functional programming with a strong type system? Most people don't, at least today, and the jury's still out on whether it will ever be mainstream. Certainly, some smaller companies will use Scala and win big in specialized domains. But if Java hackers want to claim that Scala's an inappropriate tool for their jobs, who am I to argue? I write far more Ruby than Haskell, because I encounter lots of work that's well-suited to Ruby. (Of course, there's also Akka and a lot of other useful Scala features, which may appeal to people who don't need FP.)
So if Scala becomes seriously popular, I'll be delighted. But a large fraction of Scala's complexity is devoted to niche use cases, and that may make some people unhappy if they're merely looking for a "better Java".
However, the rest of us lesser mortals use Scala very differently, and we far outnumber these people. If you pay attention to Martin Odersky, the creator of the language, you'll notice that he is more interested in serving our needs than those of the Haskellites. He's outright refused to make IO monads a core part of the language, for instance, even though they have pushed for it. He's also said that scalaz is on another planet entirely, and he's asked publicly that people stop using symbolic method names in their libraries unless they have external meaning beyond the library. This guy gets it. He really has created a language that is powerful, but also practical, an excellent language for writing code that is readable, maintainable, efficient, and concise.
The author of this article admits that Scala doesn't feel right to him. He then proceeds to try to justify that feeling in his mind with some very weak arguments. The only one that holds much water is the one about modules, which coincidentally happens to play into fantom's strengths alone, as No other JVM language is trying to tackle this problem right now AFAIK.
Scala is lightyears ahead of Fantom and Fantom will probably never catch up. If Fantom can't win on technical merit, then apparently the next best strategy involves negative blogging!
- Compatible with JVM
- Strong type system
- Linear Typing
- Substructal Types
- Local Type inference
- Integration of OO and functional paradigms
- Supports Higher Order Programming
- defn-site Variance based Parametric Polymorphism
- Mixin Class Composition for finer grain reuse
- Traits provide stackable behaviors (aspect-oriented style)
- Embedded Polymorphic Domain Specific Language (DSL)
using dependent path types
Every language design is a trade off, but Scala is more expressive and concise than Java. Sometimes that may look to you as code which is unreadable. Other languages like clojure make some other trade offs. But Scala tries to bring some of the benefits of functional programming (in say Haskell) to Java.
The book also weighs in at 883 pages and I was astonished how much of it I needed to read to even get started. Once I did, I very much like what I saw. But I was a big fan of ML back in grad school.
I do share some of the blog author's gripes though. Most of the popular Scala libraries are just a mess of DSL operators that have no real world association. I'm constantly having to look up what an operator means. I still have no clue how to use the Dispatch library, since the concepts it encapsulates are about 400 pages deeper into the book than I'm currently at. This, just to issue an HTTP GET request. I really thought there might be something on the lines of Ruby's rest-client library.
Additionally, my issues with versioning occur at a much simpler level. The release notes of any given Scala release are devoid of anything useful. Usually it's just a list of JIRA issue numbers (not the issue titles). And then there was this whole debacle around 2.9.0.1 and how SBT called the version. That took me 4 hours longer to work than was really necessary.
So, anyway, I do have some Scala projects. Incidentally they're all Java interop because I just can't wrap my head around how to use most of the Scala-specific libraries. But I've found it works really well in those situations. Deep down I really do like the language. The Scala ecosystem leaves a lot to be desired, but fortunately I can pull in stuff from elsewhere on the JVM.
def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That
All this complexity to allow for automatic conversions (the following will return a Set[String]) ...
BitSet(1, 2, 3).map { _.toString + "!" }
In a dynamic language, the signature of map is simply this: (a â†' b) â†' [a] â†' [b]
The big difference is that the language doesn't care about types "a" and "b" until runtime. You're the one that cares about it, only on a need-to-know basis. Hence the implicit conversions become explicit (although conversions are less necessary) and code correctness is guarded by unit tests, which you need with Scala anyway. Also, the implementation of "map" in a dynamic language is something that a junior developer can come up with.
So the biggest problems I have with Scala:
1) it is not readable
2) it separates developers in two camps:
library designers and users
3) it does not provide clear benefits
over dynamic languages (Haskell does)
firstly it is never good when you start out a discussion by saying now I know people will disagree but thats because their bigoted zelots. Its kind of disingenuous to attempt to post a technical dissent filled with personal opinion and preface it with that kind of clause inevitability allowing you to label any dissent as "See those scala zelots are at it again"
That being said this is an article that attempts to raise technical problems with scala but really just list a few of the authors own personal gripes with the language. In order here are his complaints
1. Scala doesn't have a rigid versioned module system
2. The functional way of doing concurrency isn't how I like to do concurrency
3. The scala community isn't helpful enough for me
4. The type system is too powerfull
5. The syntax is too flexable
6. There aren't enough tests in the compiler test suite
Its alot of the same thing I have seen when people try to list "The" problems with the language and not "Their" problems with the language. Technically there is only one argument that could even hold water thats about the module system . Which if he really needs a module system for his work then that is a technical limitation of the language and he might consider using a better tool for his job. The rest of it however is just nonsense and personal opinion pretending to be technical dissent.
Sure the type system is complicated, but I don't really have to understand all its nuances in order to get my program to compile and work. When you use Scala, after a short while you just develop an intuition for it.
The comparison to EJB 2 is a bit nutty, if you ask me, since writing code in Scala tends to be the antithesis of all the terrible Java monster enterprise library crap. The libraries that people use in Scala tend to be much simpler and more straight-forward.
I do agree that there's a contingent of the Scala community who seem to want to rub their fluency with category theory in your face. This is hardly representative of the entire community, however, and I'm sure they must exist in the communities for almost every functional programming language these days. The solution for this is for people to come up with more intuitive explanations for the powerful tools that category-theory inspired abstractions provide. I know that this can be done, and it will be done, when functional programming become mainstream enough that it attracts better writers.
(I, myself, have been thinking of writing up a little essay called "The Mapcat is the state monad of Massachusetts" to try to explain monads in a better way than comparing them to space suits, or whatever. Okay, okay... mapcat isn't a state monad, but I think the title's funny anyway.)
The biggest problem for me was readabilty. Scala is the first language that i've learned where at first i couldn't just read code and immediately guess what it does.
I think the prime reason for this is that scala permits operator overloading; more than that, in fact, almost every character can be an identifier. This results in often very cryptic code and libraries, because you can't guess what that function does without reading its definition. quick, what's the difference between +++ and ::: ? what's /: and /:\ ? You can't even google it!
The other big problem for me was the type system. At first it sounded really great, and in fact the amount of compile-time code verification that you can achieve is indeed impressive. But in practice, i found myself fighting with the type system a lot, for example when trying to reuse a function with generic type restrictions that I had't written: some time these can get very long and your only choice is to copy-paste them from the original definition.
Also, how do you test that your type constraints are correct? you can't, by definition, write compilable code that would invalidate them.
Finally, it turns out that a lot of the bad stuff that's in java ends up in scala also, because of runtime compatibility concerns. in particular, scala's generics are an extension of java's. so, for example, almost all generic type information is lost at runtime, except for some extra metadata that scala stores in the object. this results in pretty ugly code when you have a dynamic object and you need to use it with a generic method.
We have been using Scala for 4 months now and have the first cut of our product released:
The Scala community have been great - we have had insightful answers on the Lift, Akka, Dispatch and Scala users list and on stack exchange.
We have used parallel collections and Akka actors to get good scalability without the usual pain. We do have some mutable data structures where it makes sense - we appreciate the flexibility to do that. The distinction between mutable and immutable data structures is pretty easy to read in the code.
Our code base is very concise, and i think readable for the breath of functionality we have implemented. We have not used type level programming, simple Scala constructs like pattern matching, collections and closures make a huge difference.
You can write obtuse code in Scala - we choose not to.
In short we see Scala as a competitive advantage going forward.
val myList = "Jim" :: "Bob" :: Nil
myList(println)
what's hard about that?
As Rich Hickey pointed out recently, "I can't read German; does that mean it's unreadable?"
As cool as this is, though, I'm more interested in having them figure out more ways of restoring vision rather than augmenting it. For purely selfish reasons, I'm especially interested in retina replacement, which is being worked on (they've been able to create new retinas using embryonic stem cells), but I haven't heard of any studies having started yet to actually swap out damaged retinas with the new ones.
[1]: http://www.odysseyofthemind.com/learn_more.php
[2]: http://www.idodi.org/index.php/the-organization
I don't like this trend where everybody is now a UX expert and actively looks for subtle defects everywhere to prove they are smart. Same goes for praising the designers.
Sometimes little details are just little details.
These things seem much easier to pull off in a full web browser, so that all of the controls are revealed all the time.
I think the reason that so many of these to-do list apps exist is because the workflow seems like it would be easy to nail, but it isn't. Voice is quite possibly the best solution.
Let me see:
1) Tap + button
2) Type reminder text, hit enter, reminder is added to the list
3) With the keyboard still up, tap the reminder text
4) Tap 'remind me'
5) Tap 'on a day', then tap the date select box that appears and select the time and date
6) Done
Hardly rocket science, and I can't really imagine how you would do this with less user input. I call BS on this article.
I don't know if I am in the minority, but I think there is a benefit the the American GDP, if Apple changed the default location to "Home", instead of forcing everyone to waste their time setting it themselves.
Deleting reminders is no easy task either since they used swipe right to change lists instead of the usual pull up a delete button.
Yup, the app is horrible.
At some point, around 2009, most of the members of this forum got Facebook accounts. That forum is now completely dead.
Facebook took all the oxygen out of the site, and it seems like a lot of other sites.
Now very mainstream people seem to think of Facebook as "the internet" and they just hang out there. Some of the bigger sites are doing ok, still, of course.
But at least for that forum, its audience is gone.
To a person, the members of the audience say they love it, and many of them say they hate facebook because "its so impersonal." On the forum they were able to share more private things with closer friends.
I think they would rather hang out on the forum, but there isn't the critical mass anymore... simply because Facebook is more addictive.
It has gotten into some sort of a gamification, or addiction loop, in these peoples heads, it seems.
I think the web is going to undergo a radical change in the next 5 or so years.
Not only is theirs a serious concern, but it speaks to the main issue of the post, for it reminds us that like web interfaces, even text has accreted arbitrary rules to interpret it. Take the apostrophe for example, it is for most purposes superflous as one can tell from context whether a word is plural, possessive or a contraction. Well, I can tell the difference, cant you?
The original post is saturated with consistent, but by no means universal and certainly not empirically-derived, pre-conceived rules for communicating textual content: the date posted is in italics; the site name is bracketed and bold; the post name is bold; links which serve a sorting function are colored, underlined and bracketed; a presumably copied email prefaces the actual post in italics with each line itself prefaced with a less-than-sign; and most importantly much of the post is composed of incomplete sentences ("A web where...").
We allow ourselves to bend the rules of grammar. And as we bend them, we adapt to the new general rule.
We are all familiar with the english teacher's common correction of a misplaced object: "It's 'He and I went to the store', not 'Me and him went to the store'". This "rule" has been so often repeated, that most days I hear college-educated individuals perform the inverse, substituting the nominative for the objective case, as in "Bob critiqued the web page with Jack and I." What is interesting to me is apparently the act of replacing the nominative with the objective also occured in the Latin language around 200 AD (and it's a common act in children). So, if we create our rules for grammar empirically and not not arbitrarily, we can look at saying "Me and Jack did something" as acceptable because it has a natural precedent.
Which is all just to say that communication as a web form or in paragraphs is subjective and organic. Differences in type should be no more surprising than differences in human ethnicity.
As much as I like the ways that sites like G+ are trying to push the envelope, if you're handling data that was created by or belongs to others it's more important to fit into the greater data ecosystem than to stand out...
Another example: trello.com is a very nice and free card tool for small projects, but because they wanted to avoid having an "edit" button on editable text, they hijack my clicks, so it makes it painful to select text, and quite impossible to use "middle-click as paste".
But, there is a more positive perspective liked to Google+. In fact, I think the midterm result of Google entering in the SNS arena could (and should) be to force open Facebook. I mean, right now G+ is not open, it doesn't have all the needed APIs, and this is probably OK because they they need a critical mass before opening, and one should not bash them for testing, pondering, adjusting a bit more before releasing some important changes. Time is on their side anyway.
But in the end, they will go, I hope, the full good-old Google way, which means:
- Read/write APIs for posts, followers, followees, etc.
- Ability to dump all data and go away
- RSS or similar subscribing hooks
These tools will allow a much higher interoperability for social content, similar to interoperability of emails today. Users will not really care if the comments on their baby pics are written using Facebook, G+ or any other Social Content Manager, they will read and respond to them in the SNS of their choice, like we do today with emails. (I wrote a bit more ion this topic there: https://plus.google.com/104035200377885758362/posts/A9r7twSD...)
At some point, the standard techniques for dealing with these issues will become Standards. This is a well worn path. Html was a standardization of the previous 10 years of work on markup languages, plenty of them proprietary. There are other examples... ODF standardizing on XML and cloning established MS Office functionality... etc.
Real Standards that could address the article's concerns are only reasonable when NO innovation is necessary, merely choosing a methodology that has already been built and proven to work in practice. IMO, Java more or less committed suicide when it started a standards-first innovation process, which resulted in many multi-year projects doing design-by-committee of an api before anyone tried to build an implementation or an actual product on top of it.
As long as G+ is introducing features not available elsewhere, the fact that it's a currently closed system just isn't a reasonable criticism.
We are giving the web away because people can't handle email, address book and a blog.
Old-web was just text and markup. A lot like the output of command line programs that could then be used by other programs to perform what we want.
New-web is about application. Programs made for the end-user. Apps aren't thought to be pipelined with other apps. Thus for a web-app, the browser is often designed to be the only supported plateform. Thus the extensive use of JS.
To be fair to Google, that sounds like a fairly standard clickjacking prevention mechanism. It's necessary to provide protection to browsers that don't support X-Frame-Options.
> With less sarcasm: What use is this if one already reads the blog?
none. if you don't want to use it - don't. move on.
giving users another subscription channel is not a problem. a problem appears when someone uses these closed platforms as their only communication channel, f.ex. it's impossible to move a fanpage with it's community out of facebook. when people and organization treat it just as another feed broadcast (as whatwg did), everything is fine.
Then you get a problem where you try to install something really simple like the jdee extension for emacs and you get this:
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies.
jde : Depends: cedet-contrib (>= 1:1.0pre4-2) but it is not installable
Depends: cogre (>= 1:1.0pre4-2) but it is not installable
Depends: eieio (>= 1:1.0pre4-2) but it is not installable
Depends: semantic (>= 1:1.0pre4-2) but it is not installable
Depends: speedbar (>= 1:1.0pre4-2) but it is not installable
Recommends: ecb but it is not going to be installed
E: Broken packages
Wow great, what the hell are these packages and why the hell are they not installable?
It gives me absolutely no clues whatsoever so your only options are:
A) Google the error and hope that somebody has exactly the same problem with exactly the same version of the distro you are using.
B) Try and compile everything from source which about 50% of the time will generate even more cryptic error messages or ask you questions you have no idea of the answer to like asking for the locations of obscure libraries and even when it does work,it will take the software outside the cozy world of apt-get management and may require you to install different versions of dependency libraries all over your home folder.
C) Completely give up on the idea of installing that software.
incidentally if anyone has a solution to this particular problem with jdee I'd love to know :)
I don't understand how these conflicts come into existence in the first place, surely if two programs require different versions of the same library to run it should be possible to somehow install both versions and link each program to a different one?
When slinging code, by all means assert instead of assuming.
When dealing with customers / bosses as in the example provided, try to agree to build the simplest thing that can possible work.
i.e.: scrape google and don't build a distributed architecture just yet.
Maybe that's all your boss needs, just ask for some feedback and mention that results would probably be better if the app had a distributed architecture and that you're not sure if this is in line with Google's TOS.
Let him take responsibility for wether or not to invest extra time / money in these issues.
disclaimer: obviously there are certain aspects that you would be unwise to ignore, such as securing your app etc. But feature wise, building something small first is awesome.
That said, this is just a minor nit in the grand scheme of things. I greatly appreciate the campaign you ran and your bringing Turing to greater attention.
This?
> We did everything possible to not show that we hadn't even started the back-end yet.
Is testing marketing and UI design. Which is great. But it's not an MVP.
The approach put forward here is not exactly new - if you read Ash Maurya's Running Lean (http://www.runningleanhq.com) he talks extensively on using a rich landing page (rather than a 'viral' launchrock-style page) to accelerate validated learning. The classic DropBox video example is another piece of classic Lean case material. What these both somewhat lack is the 'P' of MVP. Product.
I'd suggest this is 'practical application of Lean Startup principles' rather than MVP - people tend to talk about 'building their MVP' and that process hasn't begun in this case. Validated learning is critical, and getting a headstart on it in this way is a useful technique, but blurring the distinction of early-stage customer development and the actual MVP doesn't help the discussion. It makes the conversation around desirable qualities of a public MVP somewhat harder.
Using minimal without viable is somewhat strange. If you look at a program: What is minimal? Hello World? No, I can still do "int main(){ }"! But wait, this still does a context switch... IMO it just does not make sense to say something is "minimal" (but not viable). it's better to say there is viable and not viable and within viable thing, you can head for minimal, too.
Just to prove my point, here are yesterday's profits for a couple of apps:
- Paid app:
- iOS: $128
- Android: $6
- iOS: $1285
- Android: $21
I believe the core problem is that there is no clear discovery mechanism. With iOS people use iTunes to sync. They open the app store and can try to discover new and unknown apps that happen to be in the charts. The same does not exist in Android. New apps don't get discovered.
Almost all apps in Android making money are externally marketed or viral. Making an app for android is like making a website - nobody will come unless you do something else. iOS however, does the marketing for you.
This guy seems to be endlessly harping on Android market share as if having the most users will trick Android developers into forgetting that a much smaller slice of a soon-to-be-larger pie actually is willing to pay for your apps...
I get his argument that a more fair comparison would include Google Ad revenue / iAd revenue, instead of just app sales.
But the only party stopping that comparison here is really Google. They're super tight lipped about the performance of their app store.
And it doesn't take a wild guess to wonder why.
iOS's high revenue isn't chance:
The iOS store is a stronger performer due to not only a better demographic positioning, but it's an extension of the worlds largest music store, it's a longer-term cultivation, it's run by a company with very-high consumer trust, apple seed programs and provide continuous incentives for developers, apple's yields massive advertising and events programs and apple's incredibly high penetration due to inclusion with iTunes and installation on all iOS devices, are each very strong reasons on it's own.
Meanwhile, those factors do make it a popular choice for developers who are wanting mainstream consumers, but this doesn't leave android in the dark. Android can tout greater variance/complexity of applications due to more lax regulation by google. Such as porn, apps that are counter the OS's UX, apps that reproduce functionality or overtake certain OS features and of course simple apps.
Millions of increasingly fragmented Android devices out there will not make the marketplace more attractive to developers. Plus Google is only half interested, their goal is to get as many Android devices out there, to ensure Google search and services are the only choice for consumers as this is their business model. The emergence of a future run by smart phones where search was commoditised by the phone provider was the motivation for Google into making Android.
He just doesn't like that iOS had a 1 year headstart on Android and had 3 months longer to get App store sales (july-september).
Our app is #8 in our category in the App Store and #13 in for the category in the Android Marketplace. It is free and has no advertisements; only available in US / Canada markets for both. We only get about ~1250 downloads a day on Android and about ~3500 downloads a day on iOS.
With that skew in raw downloads combined with a variance of stereotypical buying habits on each platform it is easy to see a way where iOS revenues could outweigh Android revenues by a lot.
From our standpoint, at our scale, advertisements are almost worthless to the amount it would hurt our brand. No agency, in Google itself, has shown us revenue predictions that make our mouth water. We have also experimented with a few direct placements (heavily target to our audience, and we did the design work of the advertisements ourselves) but will likely not continue with that in the future because of how bad they perform.
First of all, Israel is a country that went through alot of challenges right after it was formed. Its population doubled in less than 5 years (due to imigration), so there were big problems in building the infrastructure to support this tremendous growth in such short timeframe, which required extreme levels of coordination and a wide set of skills to make this possible. This challenging start, with the imigration of very capable and educated people (many of which had a science background), alongside with the Israeli tradition of debating and questioning (which can be seen even inside Israel's army, according the the talker), led to strong learning, generation of ideas and knowledge. This culture with the funding jump-start from the government gave birth to the first few technology companies in the country.
Later on, government support, influx of new, capable and educated work-force (Israeli families value good education and Israel has some of the best education institutions) and the beginning of the first Israeli VC companies (many of which were funded by imigrants from the U.S., where they acquired the expertise by working in this industry) set a very favorable environment to entrepreneurship. But this wasn't just it, Professor Shmuel Ellis then introduces his research in the genealogy of Israel's tech companies, and manages to show how the first technology companies in the country gave origin to hundreds of new start-ups that were formed either by the parent's company founders, its employees or a mix of both. It wasn't just the environment culture that was favorable to being an entrepreneur, but these companies themselves inspired their own employees to also have an entrepreneurial posture and estimulated the creation of new companies. His genealogy graphs are amazing and I fortunately found some of them here (ppt - slide 22 on): http://www.leadership.umn.edu/news/ppt/Droripowerpoint.ppt
Anyway, according to this (http://recanati.tau.ac.il/_Uploads/Personnel/cvellis-March20...) his research on this subject is still in progress, but he already gives alot of insights in his talks.
How many other "Israeli startups" are registered as US businesses and pay tax to the US government, let alone sell-out to US corporations, and funded by non-Israeli sources?
Israeli entrepreneurs? Yes. Israeli startups? hmm.
Things are about to get so hot over there. This is very big news. This could be the thing that sets everything off.
Get some sales, suddenly investors come out of the woodwork expressing "passion" and "belief".
Been there. Bankers will lend you an umbrella when you don't need it and demand it back when it starts raining. So many investors are similar.
But not all. The good ones are better than brilliant.
Well done Sugru - I hope you go from strength to strength.
How I wish all companies were like that.
The Sugrued part, however, is still in perfect shape, and still attached to the key ring.
I'd play down those two examples if it was me, until it did get certification from a reputable source.
I suspect there is a billion dollars in it for someone with supply chain experience who wants to make the Amazon of manufacturing.
This company exists because they were able to patent their invention.
People say that patents are bad because everything relies on previous efforts. Well, they didn't invent silicon rubber. They didn't invent the volatile compound that allows their rubber to cure overnight. But they did invent a new thing.
Pretty analogous to software patents and combinations software-hardware patents like the iPhone's multi-touch.
You can't read stories like this all day (at some point you have to work on changing your corner of the world), but having something like this once a week is super motivating.
It is interesting how much they mention "community". I have a feeling that forming such a community of early adopters and treating them well is the future of marketing. The days of "build a better mousetrap" may be numbered; now you not only need a better mousetrap, you also need a community of people who will use it and support you.
Good for them.
http://www.instructables.com/id/How-To-Make-Your-Own-Sugru-S...
Stalin and Chicken Scheme might also be worth a look if you aren't faint of hearth.
The implementation linked here is IMHO badly written - that's not good code to learn from. So if your goal is to learn how to implement Scheme, I suggest to look elsewhere. For example, one good resource is Scheme from Scratch: http://michaux.ca/articles/scheme-from-scratch-introduction
Note that this is nothing personal, I just frankly think this is not good code to learn from.
Otherwise it's pretty unforgivable that the writer could not imagine any other use for computers than media consumption of some sort. They were originally created for business/military as number-crunching devices.
First, a little background...
In March, 2008, I attended my first Startup School. Even though I had been programming for many years, it was my first in-person exposure to the "startup community". It was incredible! For the first time in my life, I felt like I was immersed into the group of people with whom I belong. (The closest feeling I had before that was here at Hacker News.) Two great days talking about passionate things with like minded people! Then I got on the plane home and sat with 2 girls reading "People Magazine". All I could think was, "Welcome back to the real world."
Fast forward to today...
Sorry to say, I'm having trouble distinguishing our "community" from the "community" of those 2 girls. Sure, they were probably interested in celebrities while we're interested in technology & business, but the similarities are still striking: We're both often caught up in the latest fads, the "cool" stuff, what the fanboys are interested in, who got funded, who met with whom, who knows whom, where everyone's hanging out, etc., etc., etc. There are days when I come to Hacker News and have trouble finding a single reference to the most important thing: our customers.
I became interested in building digital things because it was such an incredibly cool way to provide for others. I still feel that way.
Whenever I start thinking about the "startup community" and all the details we mistake for issues, it's no wonder people get depressed. Sometimes we just lose our way.
But whenever I start thinking about my customers, what they need, why they need it, and how cool it is to help them get it, it's almost impossible to get depressed.
If you think you're getting depressed because of all the distracting details, find someone who needs something, focus on them instead of yourself, and build something.
Just a thought from an unqualified observer too busy and having too much fun to get depressed.
Understanding this leads to two helpful realizations:
1. It's nothing to be ashamed of and should not be stigmatised
2. You would be wise to take precautions to protect against the danger (just like you would wear a helmet when riding).
The danger is particularly strong for solo founders, simply because of the lifestyle some have to live. Long periods of time spent on your own, slow progress toward your goals -- these are signals that the depression-triggering algorithms in your mind will latch onto.
Some things that may work to counter those signals:
* Socialise with friends, family or new people every day. If you can't socialise on a particular day, spend some time making plans with people to socialise in the near future.
* Be having sex, and regularly. Seriously, this is a very strong signal.
* Exercise a lot. Run, swim, work out -- even just walk around the neighbourhood.
* Plan your work to have near-term achievable milestones.
* Eat healthily and avoid alcohol. A weak immune system leads to frequent illness, which leads to slower progress.
I think of the "Let's build a company to sell and retire" startup as an attempt, in desperation, to avoid the rat race, by working your ass and some of your best years away, with extreme pressure and slim chances of success.
We only get to here the success stories, 99% of the time, though, which makes it seem much more glamorous.
I much prefer the building of a sustainable business a la "37 Signals", or failing that a series of good paying / sensible time jobs working in interesting problems.
Come to think of it, most of the hackers I respect most weren't at all "entrepreneurial", some were in academia and others worked in companies, from Brian & Richie, to JWZ, to Knuth, to Guido, etc.
And I don't have much respect for the "successes" in the startup sense, like Zuckenberg et al, nor I think Facebook, or Groupon, or Spotify (or whatever the flavor of the day is) as "changing the world". Tim Berners Lee changed the world from a small office at CERN. Mosaic/Mozilla also changed the world. The IBM PC and the Mac changed the world.
Overhyped IPOs and social networks? Not so much. (And don't get me started on the overselling of western media of the supposed role Twitter et al played in Middle Eastern riots/revolutions).
I find it is very easy to slip into crippling depressions for a few reasons:
1) Working after you get home from work is exciting at first, then very quickly becomes grueling and exhausting
2) Every time you take time off after work you begin to feel guilty and start assigning all free time guilt because you should be working on your startup
3) You are constantly aware that when you work alone, or mostly alone, your work can easily trail in scope and head in a useless direction. There is no one to check this for you.
4) You have to be everything, your own marketer, designer, UX/UI dev, product testing, QA not to mention planing and ideation for product features.
These all add up to really, biting off more than I can chew, which in itself is probably the cause of a lot of depression -- the sense of an insurmountable task.
Not sure the best way to combat that.
1.) Nothing new or exciting has happened since last time, in which case I feel pretty crappy.
2.) Something cool has happened, but I don't feel particularly boastful nor do I want to get into a long discussion of why that thing is cool.
3.) Something very amazing has happened, but I'm actually not allowed to talk about it.
I do notice when I return the question, I almost always hear the answer this article suggests ("awesome, best month ever, crushing it"). I guess that's why people always gave me funny looks when I used to give an honest assessment.
Now I just always answer, "Good good, we're pretty close to (some lofty feature or pseudo-pivot that is months away)". It's a convenient way to change the subject. Keep in mind this primarily applies to casual meetups with people I see regularly every 1-3 months but don't consider close friends.
I hope those who are young and just learning how hard they can push themselves have a mentor. I owe mine a million thanks a thousand times over.
Knowledge helps people around the person too -- knowing that pulling someone aside and just talking to them about their feelings is a good, helpful, thing could save lives. Knowing that this person has a disorder that makes them incredibly effective for a few months but that comes with a risk of "crashing" allows them to put support in and encourage taking of meds or contct with professionals.
In the UK employers are not allowed[2] to discriminate against people with mental health problems, so knowledge is again really useful.
[1] "Stress" means slightly different things to different people. I tend to use it for unhealthy harmful stress, and "pressure" for the stuff that people enjoy and thrive on. Pressure for one person could be stress for another.
[2] I guess there's some exceptions.