CERN Ends Trial of Facebook Workplace - <AUTHOR> https://home.cern/news/news/computing/cern-ends-trial-facebook-workplace <comment><USER2> The thing I personally found difficulty about Workplace is that it uses the same dark patterns as Facebook to increase engagement. For a business tool this is a bad thing.

A tool that requires none of my time to get benefit out of is a better tool than one that requires some of my time. Workplace drained time with patterns like unnecessary notifications, email notifications without the actual content in and prompts to engage in activity on the platform in ways that weren't productive.

Business tools should save time, not drain time. I think Workplace either has this wrong, or is designed for workplaces where people don't have enough to do and spend their days on Facebook anyway.

<comment><USER3> It's also a bad thing for a "civilian tool"

<comment> toper-centage Of course, but much harder to quantify in terms of productivity and money lost unless you time-track all your life to know how much money your off time is worth.

<comment><USER2> Not to mention the tricky link to what one might call the "entertainment value" of Facebook.

</comment></comment></comment></comment><comment><USER4> My company too has bought into this Facebook Workplace hype. The feedback from users is mixed. Some people like it. Most find it clumsy and cluttered. The notification system is totally useless and spammy. Almost every little update by anyone in your org is a notification. I see 100+ notifications everytime I log in. I don't know what value it brings or what problem it solves that is not already solved by email / distribution lists / IM.

<comment><USER5> What was your company using before Workplace?

<comment><USER6> No the OP, but my employer has also adopted Workplace. Before that we used our own internal website for section-level and company-wide updates, with commenting and a small discussion board where dicussions not directly related to updates were had.

I'm sick and tired of Facebook, and now I'm forced to endure it at work, unless I want to miss out on important updates.

</comment></comment></comment><comment><USER7> If I read it right and they had around 1k users after 3 years of trialling Workplace, I think it's less a case of "ending the trial" as it is "pulling the cord on life support".

The article distinctly makes it sound as if they only trialled because they were offered a generous free usage period, without a clear desire to actually integrate it into their daily routine.

The timeline suggests that they were onboarded in the early days of Workplace, and I would blame FB's nascent enterprise sales team for being too immature to recognise what was a losing battle from the get go.

<comment><USER8> They fail to mention how many potential users there were and whether this was high or low take up.

"The acronym CERN is also used to refer to the laboratory, which in 2016 had 2,500 scientific, technical, and administrative staff members, and hosted about 12,000 users."

Is it 1000 out of 2500 or 1000 out of 14500 or am I using an invalid source and the actual staff count is completely different?

<comment><USER7> FB's target was almost certainly the whole enchilada, so it's penetration of 1000 out of 14500.

Even if you call it 1000 out of 2500, that's 40% adoption over three years, for a tool that wants to be the centrepiece of your collaboration architecture.

<comment><USER9> Even worse, the current top comment (clarified further by one of its children) is saying that they only had 150 active users per week.

</comment></comment></comment></comment><comment><USER10> > Losing control of our data was unacceptable

This is the biggest risk to companies as they evolve their use of products and manage costs.

We found to our dismay that Dropbox do something similar if you decide to migrate off their platform (accounts get downgraded to the free plan and the company loses all control over the data in the account).

Companies are not doing enough to highlight these gaps / gotchas when the decision to utilise the platform are made.

(only a little bitter having had to deal with the fallout of these decisions)

</comment><comment><USER11> Interesting!

"Reactions were not always positive. Many people preferred not to use a tool from a company that they did not trust in terms of data privacy."

So the issue is just trust or the tool is not as useful? How would the results differ had someone else offered them a similar tool?

<comment><USER8> > Reactions were not always positive.

Universally true: Reactions are never always positive for anything. A non- statement which will also be true of whatever replaces Workplace.

> Many people preferred not to use a tool from a company that they did not > trust in terms of data privacy.

Many other people used the tool for 3 years during the free trial; how is this advisable if there are genuine data privacy issues? Seems negligent on CERN's part.

The decision point came at the transition from free to paid, not due to a change in trustworthiness of Facebook.

</comment></comment><comment><USER5> I'm unsure why any company would prefer Workplace over Slack/Teams etc. They have far more features and basically not scathed in privacy troubles as FB is in right now.

<comment><USER12> Workplace is more like an intranet, whereas Slack is more like email (in terms of how it's used). That said, my experience was that the Facebook layout makes people treat it like Facebook - sharing and liking good news stories, but all the serious stuff is done elsewhere.

<comment><USER13> More like Yammer. Now owned by Microsoft. Which I found useful as an intranet long life discussion forum. But rubbish when treated like a chat app.

</comment></comment></comment><comment><USER14> Great move to go with open source solutions like Mattermost and Discourse.

<comment><USER15> This has tradition at CERN. I wonder why they even considered Facebook's offering, but I guess they do not dismiss proprietary solutions as well. Whatever works?

Often enough they end up writing their own tools, if nothing fitting is available, and this might end up in the public domain (since AFAIK everything at CERN is basically paid for by the public, i.e. various member states, EU etc.).

<comment><USER16> CERN IT administration is sometimes pretty idiotic. When I was still in physics, they replaced the well-loved homegrown Hypernews system with Microsoft something, a move welcomed by no one.

<comment><USER17> For once I would like a company I work for to move to a clearly better product...

So far they seem to be searching for the worst of all worlds.

</comment></comment></comment></comment><comment><USER18> I thought lack of control in the free offering of mattermost is one of the things people complain about the most.

It seems riot/matrix and rocket.chat seem quite popular. I liked the e2e in riot but it seemed a bit cumbersome. Rocket.chat was quite popular at CCC so I guess it's probably decent as well.

<comment><USER19> We just merged a rewrite of riot/web's e2e UX to develop branch - it is hopefully going from cumbersome to balletic :)

</comment></comment><comment><USER20> They only had 150 active users (despite 1000 signups), so choosing not to pay for the offering makes sense.

I have the utmost respect for CERN as an institution — I want to make that clear. What I don't love, however, is this trend that seems to be using a PR offensive of "price shaming" whenever contract or license terms change. I understand CERN is publicly funded and that it doesn't have an unlimited budget. But I'm not sure how necessary the passive-aggressive jab at the three-year free trial now becoming paid is to the fact that CERN is dropping a tool only 150 people actively used.

The critiques of the product (and I've never used Workplace and hope I never have to) seen to be totally inconsequential, because CERN seemed to be happy doing the IT work to keep it running/integrated as long as it was free.

It's fine to drop support for a communication tool — especially one that doesn't have a lot of adoption. But there seems to be an insinuation that Facebook should continue to give CERN access for free, and that I just don't like.

<comment><USER21> Given what was invented at CERN you think Facebook would have the decency to give them a free license!

<comment><USER22> That's basically stating that influencers should get free stuff; CERN is a company that handles hundreds of millions, and I don't believe they're too poor to pay for services.

<comment><USER23> Services that are possible because that "company" chose to put the WWW in the public domain: [https://cds.cern.ch/record/1164399#](https://cds.cern.ch/record/1164399#)

Can you imagine, if CERN had patented HTML, HTTP, the Web server and the Web browser?

<comment><USER24> Without wanting to sound dismissive to the massive contribution Tim Berners- Lee, and CERN as a whole, has made to IT; we'd probably have ended up with the same user experience we have today but with Gopher as the base tech. Or maybe something else entirely different from markup perspective, such as something RTF or s-expressions...?

Great technological advancements are rarely the work of one genius in isolation. Usually it requires the imagination of a great many people to be captured. By which point the world is already ready for such an invention so it becomes more of an evolutionary breakthrough rather than a one idea that couldn't be recreated.

<comment><USER23> I agree, but if you patent certain processes, concepts, etc. early on, you can get filthy rich as everyone has to license your technology.

<comment><USER24> In theory, yes. But there are a few caveats to that:

1\. CERN wouldn't have been able to patent anything too generalised because there was prior art (Gopher)

2\. Thus if the patent was too expensive developers would have just used a similar technology (bare in mind it took quite a few years before the web to evolve from a toy, then something that companies "needed" but it wasn't contributing massively to their bottom line, to what it is today where a great many businesses sole market is web based).

3\. Even if it had somehow became part of industry standard or CERN had achieved a vague patent that prevented similar implementations from coexisting, Europe has this thing called (if I remember the acronym correctly) FRAND patents where patents which are required as part of a standard have to be fairly licensed.

None of this means CERN couldn't have potentially made a lot from HTML & HTTP. But I also think part of the reason it was the success it was, was because it was a royalty free open specification.

<comment><USER23> Yep, I agree that any or all of those would apply (note that regarding F/RAND, a holder can refuse, and then the standard must exclude their IP) but at the same time we have seen over and over that corporations (and the nation-states that back them up) can get in really aggressive patent wars if they see fit, even over the concept of black, glossy rectangular cuboids...

</comment></comment></comment></comment></comment></comment></comment></comment><comment> ian-bateman Maybe they should consider following Mozilla and just self-host their own instance of Riot.

A $5-$50/mo Linode + a tiny bit of ops overhead has to be less expensive than anything anyone else is charging (whether Facebook, Slack, Teams, etc.). Plus, then they at least have complete ownership / control of their data, which for an organization like CERN seems a little important...

<comment><USER25> It says they already run their own internal Mattermost intance which does the same thing. Having run both MM and Riot for real users I can say that MM is the far more professional and well-designed of the two.

<comment><USER26> How long ago did you try Riot? It's changed a _lot_ in the past year, and with their encryption changes coming in the next few weeks it should be even nicer.

</comment></comment></comment><comment><USER27> Fun fact. This tool was being developed internally at FB about ten years ago. They really couldn't figure it out back then and it sounds like they can't figure it out today. Internally before it was Workplace it was a decent tool that integrated with the public facing site. Unsure of how Workplace works today.

<comment><USER28> It works really well inside of FB -- good way to collaborate, teams have their own groups and then there are cross team groups etc. There can be a little too much information, but there are not many complaints in general about the productivity it brings. Not sure how well it works in other companies.

<comment><USER29> I guess it must work well for some people inside FB. For me, it was just another high noise, low signal thing to try to remember to check: email, workplace, workplace messenger, irc, wierd automated smses with links I couldn't load and I couldn't quite figure out but at least stopped after I quit, whatsapp messages (where i worked), sometimes phone calls and people coming to my desk. Plus diff reviews and task tickets, which theoretically sent notifications through whatever, but since it's so full of garbage, you just have to check.

Of course, you can't actually rely on workspace notifications either, if you really want to know if another team did something, you need to skim through all their posts. Of course, if you asked someone directly, they would send you to their group feed, like an outsider would be able to skim it with ease.

I may still be unpacking a bit

</comment></comment></comment><comment><USER30> Corporate internal social networks are a concept that just doesn't work because of the hierarchy involved. This is obvious to anyone who isn't in the HR department.

</comment><comment><USER31> It's great to see CERN make more and more steps towards free software! Public money - public code

</comment><comment><USER32> > CERN was then given a choice of either paying to continue with the initially > free set-up or downgrading to a free version that would remove > administrative rights and CERN single sign-on access and send all data to > Facebook

another example of paying with the data.

</comment><comment> saiya-jin Well no surprise there. FB is consistently on the dark side of the moral spectrum, at least kudos for being consistent. Scientists have privacy concerns and seemingly higher moral expectations, so paying for a tool like that with public money would not look good from any possible angle.

Do I understand correctly that they changed their pricing model to paid during trial, or have all control over data revoked? In a place like CERN that would probably be even security breach, even though its international project, US 3-letter agencies (and for-profit corporations) shouldn't have internal access like that.

</comment><comment><USER33> Wow, what a cursed product. I can't think of a single other company I would trust less with our business communications than Facebook.

Edit: Maybe pastebin? Though pastebin will honor takedown requests.

</comment><comment><USER34> My company chose Workplace as a formal and only official channel for internal communication, including announcements from executives to all employees. It makes you have to actively on workplace to get information, knowing what's happening around. I think it's a wrong way to use, but it's already set by top c level.

</comment><comment><USER35> My previous company has used and pushed workplace. It was never useful in anyway to anyone in my engineering teams.

</comment><comment><USER36> Perhaps CERN can spin up its own Mastodon instance? [https://toot.thoughtworks.com](https://toot.thoughtworks.com) is an example of an organizational adoption of a Fediverse node.

<comment><USER37> As far as I know they do

</comment></comment><comment><USER38> > Reactions were not always positive.

It would be cool to hear what these reactions were. How did it suit their workflow, compare to alternatives, etc

Right now all this article says is that they had data privacy concerns (valid) and that the free trial ran out.

</comment><comment><USER39> I'm surprised CERN has tried it in the first place. I mean, if CERN can produce things like ProtonMail, it can definitely conjure up massively superior alternatives to facecrook.

<comment> ThiefMaster- CERN did not produce ProtonMail. A few people who previously worked at CERN did.

</comment></comment><comment><USER40> I don't know Workplace but how is this newsworthy and of interest to anyone outside of CERN? The article sounds quite spiteful, and why, if _' Many people preferred not to use a tool from a company that they did not trust in terms of data privacy'_ would you use it in the first place? Also, how can you blame a commercial company for charging for a tool?

<comment><USER41> > why ... would you use it in the first place?

People's trust in FB has eroded greatly over the last three years. That may be all there is to it.

In addition, however, the post clearly says it was a trial. The people who pushed for it were not necessarily the ones who had to eat the dog food.

</comment></comment><comment><USER42> So, what happens to all the data that is poured into Workplace ? No mattermost import, I suppose ?

<comment><USER43> Maybe we can address their concerns with our platform Open Social (getopensocial.com) as they use Drupal for most of their platforms already. I think we can get some data our of Workkplace trough [https://developers.facebook.com/docs/workplace/reference/gra...](https://developers.facebook.com/docs/workplace/reference/graph- api) \- would be an interesting case for a migration tool..!

</comment></comment><comment><USER44> Well, some instances at CERN are enjoying Discourse, so I guess the move was inevitable?

</comment><comment><USER45> Facebook and my workplace ... no thanks ... fortunately we canned that one.

</comment><comment><USER46> I don't see this as price shaming. I see a HUGE "we don't trust these folks to begin with...". Facebook is cancer for humanity. It gives 1 and takes 50. And then dilligently finds ways to use that 50 to hurt you, for their profit. I wouldn't trust any sensitive information with them. And especially CERN? These guys have info and tech to end life. Some random admin with god-mode that will get bribed by Saudis/<insert other criminals/dictatorships> wouldn't hesitate providing them with any data.

For some organizations, the value of their data/information is worth much more than the £€$5k/10k/50k that their collaboration tools cost. CERN is one of them. I prefer to pay £€$10 per year more taxes so they don't use scum like Facebook.

(angry words yes, but hey.. they tried hard to earn them feelings - perhaps if they evern become less scum-my, maybe people will trust them more)

<comment><USER47> > And especially CERN? These guys have info and tech to end life

I work at CERN, no we do not.

<comment><USER48> I am just thinking why can't CERN make their own worplace equivalent platform for their people considering the fact that they help create the internet itself.

<comment><USER49> CERN did not create the internet. Tim Berners-Lee created the _world wide web_.

Also keep in mind that there actually existed many predecessors of hypertext systems (EDIT: see [https://en.wikipedia.org/w/index.php?title=Timeline_of_hyper...](https://en.wikipedia.org/w/index.php?title=Timeline_of_hypertext_technology&oldid=923040888) ); just for some reason (let's say because the world wide web was in the right spot at the right time), the world wide web became hugely popular.

</comment></comment></comment></comment><comment><USER50> I worked on Workplace at Facebook. It's super-cheap at $1-3 per MAU. If they like it, why not pay for it. OTOH if I were FB I'd give it to CERN for free.

<comment><USER51> I'm forced to use Workplace in my company and i absolutely hate it. After 15 years of employers trying to keep employees off social media they're now trying to shove it back in again.

While joined to around 100 groups in my global organisation the wall/feed thing becomes a very poor way to deliver technical information. Its intermingled with personal messages or a reminder about Jason from accounts upcoming birthday drinks.

Everyday i'm reminded why i left Facebook in 2012 and never looked back.

<comment><USER52> This sounds like a terribly mismanaged Workplace instance to me. Why should anyone be joined to 100 groups? That's a red flag right there. And if you can't move personal stuff off of Workplace, create separate groups for that that can be muted or left etc. This noisy personal stuff can easily exist in public groups that can be looked into by anyone if something comes up.

<comment><USER53> "You're holding it wrong."</comment></comment></comment></comment>


Time.gov now in HTML5 - <AUTHOR> http://time.gov/HTML5/

<comment><USER2> That site is surprisingly ugly for something that transitioned to html5, and that just tells the time...

<comment><USER3> It's really just a resource that doesn't generally need updating...it's remain unchanged since it's inception back in 1999 as a resource for getting the exact time according to NIST's atomic clocks. I remember going to NIST's "official time" web page every few weeks in high school in the 90s so I could tell my friends that their watches were wrong because I had the "official time" haha

[https://web.archive.org/web/19991002220908/http://www.time.g...](https://web.archive.org/web/19991002220908/http://www.time.gov/)

</comment></comment><comment><USER3> Oh thank God. I hated having to load java just for that website when I needed it once in a blue moon.

</comment><comment><USER4> It's about time.</comment>


IPhone: The New Personal Computer - <AUTHOR> http://www.readwriteweb.com/archives/iphone_personal_computer.php <comment><USER2> > _"but with the platform iPhone becomes the new personal computer .... Every > major service, Amazon, Netflx, Twitter, Digg, Flickr, Facebook, is already > available, or will soon be, ... this is powerful and unprecedented_

Unprecedented? Surely not. Windows Mobile is a platform that allows you to do all that. Blackberry is another mobile platform for developers. iPhone may yet be the best mobile platform (the jury's still out), but it's certainly not the first.

<comment><USER3> Right. But, with the ability of 3 party developers to develop applications for the iphone(and make some money) creates lot of interesting applications unlike Blackberry or windows mobile.

<comment><USER2> The Windows Mobile is over a decade old as a platform for apps. The Blackberry also allows 3rd party apps.

As a platform, there's nothing new here with the iPhone except lots of hype and a slick UI.

<comment><USER4> I suppose that selling your app through iTunes is the first example of one of these providers creating a distribution and sales network for your 3rd party apps though.

But winmobile and blackberry platforms have been in existence for years and years.

<comment><USER5> There are lots and lots of platforms for buying mobile applications. Not sure if there is one explicitly BY Blackberry, but still.

<comment><USER6> The problem is mindshare. No one knows what they are. I remember a site called "handango" (I just checked and they are still there) that handled this, but most people have no idea of where to go for their content. Apple's answer is iTunes: a familiar interface for anyone that owns an iPod.

<comment><USER5> In Germany everybody knows Jamba, but everybody hates them.

Also, every network operator has tried to create their own platform (O2, T-Mobile, e-plus, Vodafone) - not so different from Apple after all? But nobody trusts the network operators (rightfully so), and awareness for mobile applications was not very big. I guess iPhone has an advantage because apps are a key marketing ingredient.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> _The reason is that iPhone with its application platform is a better personal computer_

Holy _shit_ , that's the stupidest thing I've ever read. The iPhone couldn't replace the Commodore 64 for the bulk of its uses.

</comment><comment><USER8> Wake me up when I can install my own software on it. I'm not going to go around begging for the keys to my own castle.

</comment><comment><USER9> Newton, Palm, WinCE and the Blackberry can all add 3rd party applications. However, having developed for 75% of those platforms, I can tell you that it wasn't _easy_.

What's missing from this article is the impact of the iPhone App store. It makes it absolutely trivial for a user to install new applications -- directly from the phone.

Compare the iPhone:

1\. Click on App store

2\. Search for the app you want

3\. Click Install

to what we have to do with all of the other platforms above:

1\. _Find_ the app you want (ie, no centralize directory)

2\. Download the app to a laptop/desktop.

3\. Move the app to whatever machine this particular device is already mated to (yes, you can often do it on a guest device, but good luck.)

4\. Unpack/Unzip/Untar the application

5\. Open up the syncing/install application

6\. Move it to the right directory or select the correct collection of files from the syncing application

7\. Plug in or dock your handheld

8\. Sync.

How often do you think that the latter occurs? While Palm boasted of having hundreds of thousands of apps, a tiny fraction of devices had _any_ of them.

This integration is important. The handheld ecosystem goes far, far beyond "well, you can develop for it!"

It is a lesson that I'm hoping the Google folks are learning.

<comment><USER10> Enough with the FUD already

Let's have a look at what a BlackBerry has to do:

1\. click on google.

2\. search for the app you want

3\. click on install.

And unlike the iPhone, you don't have to get prior approval from RIM to sell or distribute your wares and you certainly don't have to give them a 30% cut.

What's more, non-apple platforms are far more open as to what you can actually do - background processes & listeners, better access to the system etc.

<comment><USER11> > Ever notice how the nicest applications are always ones made by RIM? An > outside developer could never create the BlackBerry Facebook application in > a million years, again, because of the API access. We heard RIM is actively > trying to listen to developer's cries for help, open up some APIs, give them > newer and better tools, and possibly include things such as OpenGL graphics > support. But it's still extremely difficult to develop for BlackBerry > devices and distribute those applications.

[http://www.boygeniusreport.com/2008/07/16/blackberry-bold- vs...](http://www.boygeniusreport.com/2008/07/16/blackberry-bold-vs- iphone-3g-yeah-we-definitely-went-there/)

</comment></comment></comment><comment><USER12> Here's the problem with tiny "personal computers" like the iPhone. They are only for consuming content, not for creating it. Basically, it is like watching TV, except in text form.

There's nothing wrong with that, but people use their computers for more than just mindless content consumption. Even the "average joe" probably plays a 3D game from time to time, or send emails to his family, or whatever. Anything like that is painfully impossible on such a small device (at this time anyway).

So while the iPhone is great for looking up someone's phone number on Facebook and then sending them a "hey lets get coffee" text message, it's not so great for anything more complicated than that. And even the most casual computer users need to do things more complicated than that. (This post would never have been written from a phone. The same goes for delicious bookmarks, and everything else Web 2.0.)

</comment><comment><USER5> Flagged as advertising spam...

<comment><USER13> When you flag something, you don't have to also comment about it. It makes for boring comment threads when people post comments saying something shouldn't be on the site. Not a lot of bits of data in such a post. So if you feel that way about something, just flag it. Otherwise your comment becomes one of those "vote up if you agree" type posts that take over the front page of any site that allows them.

This particular case, incidentally, is certainly not spam. Overly positive perhaps, but you're crying wolf to call this spam.

<comment><USER14> _It makes for boring comment threads when people post comments saying something shouldn't be on the site_

That's true, it does. But if downvoting is impossible, commenting that it shouldn't be here is frowned upon, and flagging is reserved for the most egregious cases, what is the appropriate thing to do when you don't think an article doesn't belong?

(NB. I don't think this article belongs in that category. It's not a great article, but it's perfectly on-topic, and not, as far as I can tell, spam.)

<comment><USER13> Seems to me the responses should be:

      If the story is:             Do this:

      spam/way offtopic            flag
      boring or mildly offtopic    nothing
      good                         upvote

</comment></comment></comment></comment><comment><USER15> How to write for a blog or anywhere else where you need the ad revenue and eyeballs: Make a bold and incorrect statement and attempt to prove it just like in English Lit. Crit. class.</comment>


Is Tokaido (rails.app) Dead? - <AUTHOR> http://www.kickstarter.com/projects/1397300529/railsapp/comments

<comment><USER2> Tokaido is not dead. It's taken longer than I expected, but I've been wrapping up the requirements for the MVP over the past few weeks [1][2][3] and hope to integrate the code I've been writing into the UI in the next few days.

I initially anticipated that I'd be able to spend a number of full-time months on the work. I ended up being able to allocate time on a less consistent basis, largely because starting a company (tilde.io) ended up offering fewer opportunities for dedicated, isolated work than I expected. Thankfully, Patrick Gibson (of Tilde) and Austin Bales (of Do.com) ended up doing some of the iOS and design work, respectively, and I've focused my energies on the Ruby parts of the architecture.

My talk at RubyConf[4] goes into some detail about the architecture, and we're very close to shipping an early beta.

During the (long) time it's taken me to get this out the door, I've worked closely with Michal Papis (of rvm) to make the static binary build viable on both OSX and other Nix environments. Michal briefly shipped the binary Tokaido build as the primary build for `rvm install 1.9.3`, but difficulties in reliably building more recent patch levels have pushed that back some. We expect to be able to use the Tokaido build process to permanently ship binary rubies with rvm (and other ruby managers that are interested) once the build process for the current patch levels stabilizes again.

My plan for the MVP release of Tokaido is:

* Shipping the binary with a .app that can be dragged into /Applications

* The ability to add and remove applications via an application UI. You can then open a terminal window for these applications with a rock-solid Ruby environment that uses the binary build and makes sure that the ENV is set up correctly.

* The ability to start and stop any of these applications (via the web section of a Procfile) and browse them via `appname.tokaido` in the browser. This involves installing and executing a pure-Ruby proxy that supports the `app.tokaido` domain (see my RubyConf for more details on the nature of this beast; SMJobSubmit ftw!).

All of the above is largely complete (see the `tokaido` organization on GitHub and the links above for more). We have worked out how to use `SMJobSubmit` to enable the parts of `appname.tokaido` that require superuser access on first boot of the application bundle, and Patrick is just waiting for me to give him a fully self-contained zip of `tokaido-bootstrap` to execute from within the application. Of course, error handling is crucial for this, especially for low-level things like DNS servers and HTTP proxies.

Post-MVP, we hope to work on some of the more ambitious logging aspects of Austin Bales' original design.

[1] <https://github.com/tokaido/tokaido-bootstrap>

[2] <https://github.com/tokaido/tokaido-dns>

[3] <https://github.com/tokaido/muxr>

[4] <http://www.youtube.com/watch?v=4iv3Gk95-v0>

<comment><USER3> Based on the comments, it looks like people are still waiting on handwritten thank-you notes and stickers which the Kickstarter project says were to be delivered in June/July 2012.

      > I ended up being able to allocate time on a less consistent
      > basis, largely because starting a company (tilde.io) ended up
      > offering fewer opportunities for dedicated, isolated work than
      > I expected.

The stated goal for raising $25K (and any excess) was to take time off of work to dedicate 100% to this, at least until Rails.app shipped. What happened?

<comment><USER2> > Based on the comments, it looks like people are still waiting on handwritten > thank-you notes and stickers which the Kickstarter project says were to be > delivered in June/July 2012.

I have been furiously writing them over the past few weeks (at a pace of about 30 per day). I have about 500 to do in total and I've done about 300 so far. My intent was to deliver them around the same time as the beta release, so that the thanks would be meaningful.

> The stated goal for raising $25K (and any excess) was to take time off of > work to dedicate 100% to this, at least until Rails.app shipped. What > happened?

You're absolutely right. The original plan was to be able to take a few months off of work and use it to replace any lost company revenue. In other words, I was going to pay for my own time to replace consulting revenue. Co-founding a company turned out to be more time-consuming than I expected (I know that sounds stupid, but it's the first time I did it), so I wasn't able to purchase my own time in a single block. Instead, I used whatever available time I could manage and used the money to fund smaller blocks of time.

I also used some of it to fund full-time work by Patrick Gibson, an amazing iOS/Cocoa developer (he worked on the original iPad build process for Apple and the Batch app) who works for Tilde, so I could focus my energies on the necessary Ruby code.

I'm really sorry that my original estimates didn't work out. That was absolutely a mistake on my part and I have learned a lot from the mistake (and my inability to follow my original plan precisely has caused me a great deal of heartburn). In the long run, I will not allow this error to prevent Tokaido from shipping. See my other comments on this thread for more details.

<comment><USER4> I think some folks might take issue with the idea that you were starting a company while this project was in progress. (I didn't contribute, and I understand multi-tasking, but my impression was raised funds were to capture your undivided attention; unsure if others had same interpretation)

<comment><USER2> I had publicly started Tilde about six months before starting the Kickstarter.

I said that I would use the money to take time off from work to dedicate to Tokaido. I naïvely assumed I would be able to take that time off in a large block, but that wasn't possible. Instead, I took off time as I had it available, in spurts rather than all at once. I isolated the money so that I would mark portions as "earned" only as I (or Patrick, who did much of the OSX work) actually worked on the project, so I did use the money to dedicate time to work on the project.

I am extremely sorry that my original plans for dedicating a block of time turned out to be infeasible. It was my mistake and one that I have learned from the hard way.

<comment><USER4> It's great that you've isolated those funds, and are accounting properly. I think a number of "failed" crowd-funded projects fail in this regard.

I know on the project you referenced using Harvest to track time - perhaps you could use Harvest's API to publicly disclose how much of the funding has been "burned down"? (I think this would be a good idea for all Kickstarter projects)

</comment></comment></comment></comment></comment></comment><comment><USER5> It is not dead, and Yehuda talked about it at Rubyconf:

<http://www.youtube.com/watch?v=4iv3Gk95-v0>

<https://twitter.com/wycats/statuses/293594028518277120>

<comment><USER6> TL;DR: Not dead.

Also, he replied to me when we asked him on Twitter:

<https://twitter.com/wycats/status/292391457313132544>

then clarified: <https://twitter.com/wycats/status/292391589643423746>

</comment></comment><comment><USER7> <http://railsinstaller.org> anyone? Code too: <https://github.com/railsinstaller/railsinstaller-nix>

<comment><USER8> JewelryBox is vastly underrated and undermentioned, as far as I can tell. It takes away pretty much all of the work involved with dealing with RVM and has been nothing but a great help since I first installed it a couple months ago.

<comment><AUTHOR> For the curious, <http://jewelrybox.unfiniti.com>

</comment></comment></comment><comment><USER9> You can look at Tokaido's source code or even build it with Xcode if you want: <https://github.com/tokaido>

<comment><USER10> Is HEAD the latest and greatest?

<comment><USER2> Most of the interesting parts of Tokaido are in tokaido-bootstrap, muxr, tokaido-dns, and tokaido-build. They will be integrated into Tokaido.app in the next few days.

</comment></comment></comment><comment><USER11> While I'm interested in this (on a similar note, heroku's postgres app has been great for me), it seems like having to install and manage Rails is an important thing for new people to learn.

This is especially true if one wishes to push code to production and so on-- even with when using Heroku, one still needs to understand the command line side of all of this.

It's also pretty easy to do these days.

<comment><USER12> Yeah, I was wondering the same thing. Rails, on a relatively clean system, is so easy to install through the command line that if you can't do that work...then you may not be the kind of person who can easily debug a basic Rails app in the first place...Not trying to be elitist here, as I'm the kind of person who runs homebrew scripts without reading the actual scripts. Just saying that if you can't even do that, then all the post-installation work of Rails is going to be a painful slog.

<comment><USER5> Having spent a morning this week showing journalism students at Mizzou how to install Django, I would very much like the ability to say "oh you want to try rails? Just download Postgres.app and Tokaido.app and you're set."

Also, this is a weird conversation to be having with a dude who has a book for teaching beginners Ruby (<http://ruby.bastardsbook.com/> )!

<comment><USER12> Ha! I'm all about teaching beginners how to use Ruby, which is painful in itself. By the time they get to Rails, they had better be used to typing in commands at a text prompt :)

No seriously, though...So many things can easily go wrong with basic Rails...not because Rails is _bad_ , but because Rails has so many features...that if people haven't mastered the art of Googling lines from debug-output or command-line install instructions...then the time they've "saved" by having a push-button solution will be more than spent in the time trying to get off the ground.

But I'm obviously speaking from hindsight...as I've gotten more experienced, I've seen that writing script for minimal apps is more efficient than launching a full-fledged Rails app. However, I may have lost interest in the whole web-app game long ago if I didn't have the chance to play around (clumsily) with Rails 2.2

</comment></comment></comment></comment><comment><USER13> you guys should try Action.IO <https://www.action.io/></comment>


Show HN: Reddit's favorite learning books, from 3.5B comments - <AUTHOR> https://redditfavorites.com/ <comment><USER2> As an aside, on this topic - are there any amazing books that grow your mind / life _(power of habit, learning new things, whatever you think fits my sentence)_ in _audiobook form_?

I've been wanting to use my commute time for personal growth, but a lot of books don't lend themselves to audiobook forms. Thoughts?

<comment><USER3> Right behind you. If I'm going to burn 45 minutes a day, at least I could be listening to something that will up my knowledge.

<comment><USER4> For 45 minutes a day, I'd recommend the BBC In Our Time podcast, hosted by Melvyn Bragg. Each week, academics talk about a particular topic from the world of science, history, philosophy etc. It's unashamedly high-brow. There's a huge back catalogue as well.

<comment><USER5> Looks good. Listening to it right now

</comment></comment></comment></comment><comment><USER6> Cool site! Reminds me a lot of [https://thingsonreddit.com/](https://thingsonreddit.com/) which was also shared here recently.

What is your formula for popularity score?

</comment><comment><USER7> This is cool - I think it might be more compelling if you created some sort of infographic or analysis on top of this data that pulls the user in a bit.

What list did you use for book recognition? Are you only doing exact matches?

</comment><comment><USER5> OP, if you are the developer of the page, can you make it that users can select the number of books to be displayed on each topic? That would be pretty useful.

<comment><AUTHOR> Hey yep I'm the developer. What's your use case for this feature? Is it just overwhelming with too many books?

<comment><USER5> Actually the opposite lol. I'd like to get more books, for instance, on a certain topic, since I'm an avid reader and would like to get the most out of this tool.

For instance, people interested ONLY in startups, don't care about the other categories, but STARTUPS, so getting the top, let's say 50 books on startups would be their use case.

</comment></comment></comment><comment><USER8> Nice idea. Remove the React favicon ;)

</comment><comment><USER9> Latest XKCD[1] looks like related

[1] [http://xkcd.com/1909](http://xkcd.com/1909)</comment>


Why does TypeScript have be the answer to anything? - <AUTHOR> http://www.hanselman.com/blog/WhyDoesTypeScriptHaveBeTheAnswerToAnything.aspx <comment><USER2> First of all, I'm glad Microsoft is getting involved in this space. They have a deep talent pool when it comes to language design and tooling and it'll be interesting to see where TypeScript goes.

Unfortunately, the arguments trying to draw some kind of monumental distinction between TypeScript, Dart and CoffeeScript are silly. They are all a response to the state of client-side development and are all applying essentially the same strategy (i.e., some syntax changes and a pre-compiler). It's great that TypeScript is a superset, which is what makes it pretty interesting to me, but it's still more similar to the other two than not.

Plus, what's so bad about being Microsoft's "answer" to something else? Windows was the response to Mac OS, Xbox was a response to PlayStation, .NET was the response to Java, ASP.NET AJAX was the response to Prototype (later abandoned for jQuery), ASP.NET MVC was the response to Rails, Entity Framework was the response to Hibernate/Active Record, NuGet was the response to Rubygems/npm. Each of these moved MSFT forward and several of them moved the industry forward. The ASP.NET team (of which Mr. Hanselman is a member) is doing a lot of great stuff inside MSFT, but a lot of is derivative. That's okay. It's largely the strategy MSFT has always followed, so why waste energy defending what has worked well in the past?

I agree with one point, however: It _is_ disappointing when smart people display a profound ignorance of computing history.

<comment><USER3> > essentially the same strategy (i.e., some syntax changes and a pre-compiler)

TypeScript and CoffeeScript, yes. Dart's a brand new C-like web language that is quite different, and has its own VM. Although, of course, you can still compile to JS. But unlike TypeScript and CoffeeScript, it isn't really an alternative syntax for JS, or annotations removed at compile-time.

<comment><USER2> Yes, I know and you are correct.

At a high-level, though, and in the case where browsers are the target platform, those aspects are largely implementation details.

<comment><USER3> With the rather large exception of filesize.

</comment></comment></comment></comment><comment><USER4> I think google missed big time on Dart, and something like TypeScript is what they should have done. I really find it hard to come up with bad things to say about Microsoft's move, it's a mental cognitive dissonance, but I have to admit, they are doing something very right.

1) it's just JavaScript - winning some CoffeeScript fans

2) regular JavaScript is valid, (just like SCSS vs SASS)

3) it has day 1 interop with vanila JS (Dart just started, and until it has it, it's just a play-with language)

4) TypeScript support for most popular editors (Dart has mostly Eclipse I think, TypeScript has support for everything but eclipse, but an eclipse plugin is just a matter of time probably)

5) TypeScript has a bit more chance becoming a standard, (future ECMASCript 6?)

Well played Microsoft, didn't see it coming...

VS 2012 is actually nice, still I would probably wait for an Eclipse plugin (I'm sure someone out there is already working on it) but this is for me a big reason not to start learning Dart

<comment><USER5> I think you answered your own question. Google wanted a fundamentally different language, not just JS with some extra features thrown in. As to what will win out in the end-- I have no idea.

<comment><USER4> Google seem to like inventing things, they have people who create languages for a living (some of the creators of Java, that some of them are probably behind Dart) and they did some pretty amazing things, Go is a great language, I'm sure Dart will have a fan base, and who knows, it might catch up (in 2004 no one thought Ruby will be that popular, right?) Google went for their vision, Microsoft went for the practical.

</comment></comment></comment><comment><USER6> The way I see it:

1\. TypeScript is an answer to the poor state of JavaScript development today and an attempt to get more structure into it. There are other answers as well, and it can be discussed on properties of each of them, but they are competing in the same domain.

2\. Since state of JavaScript is as it is, it is obvious that there is a lot of potential benefit in being a leader of the technology in that domain. Regarding that, it is kind of answer to forces that are trying to ensure domination in that domain for the future.

<comment><USER7> Poor state of JavaScript development? By what measure?

I've been doing "application-scale" development using JavaScript for 5 years... Not once did I think "gee my development process would be better if I had rigid typing." The notion is laughable.

The lack of rigid typing and classes is by design. This is a feature not a bug. I honestly wonder about a programmer's understanding of JavaScript if they say things like "JS lacks classes!" - I'm not sure they understand JavaScript.

<comment><USER8> Types _are not_ classes! Why do people feel the need to constantly drag out this scarecrow? Having tools to perform static analysis is nothing but a good thing, and you need type data to do a great deal of this. Perhaps your project requirements are such that you never require type checking for your JS, but I can say that it's saved my ass a number of times when working on very large code-bases, and definitely has sped up my development cycle when working on hairy code.

This is a type, not a class, taken from a Closure Compiler docs annotation example:

      /**
       * Enum for tri-state values.
       * @enum {number}
       */
      project.TriState = {
        TRUE: 1,
        FALSE: -1,
        MAYBE: 0
      };

Now I can require this type in my code with standard JSDoc, which is what the compiler uses anyway for type-checking. It makes my code self-documenting (the Closure Linter, should you use it, will complain if you omit descriptions and the like too, if you find yourself getting lazy):

      /**
       * Do something...
       *
       * @param state {project.TriState} The state ...
       */
      function doSomething(state) {

If you are documenting your code, you already do this. And now you have static analysis out-of-the-box ... not bad!

<comment><USER9> The JSDoc system gets in the way too much, how for instance do you type variables which is something like:

      /** @type {myType} */ var thing = new myType( );

It gets way to verbose when compared to typescript which is something like:

      var thing : myType = new myType( );

<comment><USER8> Actually that's not quite accurate. The Closure Compiler doesn't need you to tell it that `thing` is a myType, it knows that, asuming myType is defined in your compiled code, or you provide an extern specifying what myType means. And I might be wrong about that last bit even; the compiler may always know that `new Foo` returns a {Foo} regardless of context ... I would have to check the compiler source to be certain.

Also, I think that the first example is more likely to be written as follows (in the case where type data cannot be inferred):

      /**
       * Description of the variable.
       *
       * @type {my.UnionType}
       */
      var foo = { ... };

Whatever "..." may be. It's common to document the meaning of variables where explicit typing like this is important, just like in well-documented Java and PHP code.

<comment><USER9> The benefit of typing javascript is for the developer and not the compiler, therefore telling closure compiler that a variable is a type is to decrease the chance of mistakes. Closure compiler also is buggy and isn't as smart as we would like to think it is, sometimes you have to prod it into the right direction. It was a simplified example, something better would be:

      /** @type {myType} */ var thing = function_that_returns_a_myType( );

The point is using comments for typing a language is messy and takes up far more space than required.

</comment></comment></comment></comment></comment></comment><comment><USER10> I've been testing it out and I like it so far. I personally don't enjoy writing JavaScript in text editors and the tools like PHPStorm, while being decent don't really give me the slick development environments that I've come to enjoy.

Since I do a lot of Windows and .NET web app development for my day job, I really enjoy the fact that Microsoft is putting a concerted effort into not only adding more support for JavaScript, but also for looking at the state of JavaScript and looking to improve the experience for people like me.

In Anders introduction to TypeScript, he mentions the gap between .NET development and JavaScript and hints that this is just the beginning of bridging that gap.

Rather than being a language that hides the underlying structure (a la ASP and ASP.NET) it is much closer to native JavaScript development. I'm really excited to see where this might go and have my fingers crossed that it only improves the state of JavaScript development.

</comment><comment><USER11> The author ignores the fact that TypeScript is being heavily promoted by Microsoft. TypeScript isn't an experiment, but something Microsoft is trying to sell, along with their IDE. He starts it with a quote from a colleague rather than citing examples of people attacking TypeScript, as if it's a forgone conclusion that people have gone overboard on attacking it. I hate to see an argument for a programming language start with the author's persecution complex.

<comment><USER3> >Microsoft is trying to sell

Do you mean sell as in for money? Or sell as in get people to adopt? Under an Apache license, I doubt it's the former. Although they could sell the Visual Studio tooling.

<comment><USER12> Use the tooling to sell the platform? It might be in Microsoft's interest to have some mindshare I this space; JavaScript is a significant part of the windows 8 story from what I can tell.

</comment></comment></comment><comment><USER13> This is a ingenious move. A much smaller subset than CoffeeScript and still a sensitive and important one that probably will be incorporate at ECMAScript 6. If not, you still have your vanilla JS. I'm not sure with TypeScript will succeed, but I'm sure that this is the way to fix JS's problems.

</comment><comment><USER14> "What I like about TypeScript - so far - is that TypeScript's static typing could enable better tooling with warning squiggles, easy statement completion, plus smart refactoring. You also get easy navigation around code, as well as find references, rename, and more."

RubyMine (by IntelliJ) can do all of that. Don't get me wrong, the refactoring support for statically typed languages is a _lot_ better (e.g changing method signatures) but none of the examples he listed require one.

</comment><comment><USER15> This isn't exactly the right place, but I don't know where else to ask this.

When people argue for static types (whether optional as in TypeScript or mandatory), one of the main reasons is "tooling". Why?

I know that writing a "go to definition" function for your IDE is impossible to do 100% correctly, when types are dynamic. But I would've thought it'd be pretty easy to do a 99% implementation, which rarely fails if you don't deliberately write code to fool it. Right?

<comment><USER16> Yeah, I think it might be a programming-language cultural thing. Most refactoring tools are written for Java and C#, so the people with experience writing refactoring tools have worked out how to solve the problems when they have certain assurances. But it really should be possible to write usable refactoring tools for ruby and python and javascript - you'll have to do a little more work to figure out name collisions between variables and methods and there's going to be ambiguous metaprogramming stuff like using strings to lookup instance variables, but having good tooling in the cases where you weren't using metaprogramming might encourage programmers to use a more concrete coding style, and that's probably a good thing. (Java has the same problems when you use a lot of reflection. So people don't use much reflection!)

<comment><USER15> YES! And I bet that a little bit of heuristics, a little bit of machine learning, and/or a little bit of user feedback (say, a button that tells the tool it went to the wrong function definition) would help such a tool cover a few more of the difficult cases.

This ought to be a classic case of "worse is better", which is why I'm surprised to see that people seem to shy away from it.

</comment></comment></comment><comment><USER17> I agree with this. If it's nothing more than a forward-compatible superset of JavaScript, with _optional_ static typing, it has a place in the world of JS target languages.

<comment><USER18> I'm not sold on forward compat. I'm only an interested observer of TC39 but to my knowledge only arrow lambdas and modules (the cross file ones) are near consensus. The rest of the features added have either been going around for a long time or haven't really gotten a lot of discussion.

</comment></comment><comment><USER19> >Dart interops with JavaScript...but it's not JS. It doesn't even use the JavaScript number type for example.

What is meant by this? As far as I know, the only way that you can use Dart in any browser currently is by compiling it to JS, and when you do that it most certainly does use native JS numbers. In fact, the type check function it creates for numbers contains this line:

          if (!(typeof value === 'number')) {

<comment><USER20> He means that the semantics of Dart - including the data types provided by Dart - are different from JavaScript. This is in opposition to TypeScript, which is a superset of JavaScript, which means that it necessarily shares JavaScrips semantics.

If your example bothers you, consider that JavaScript just happens to be a _target language_ for the Dart compiler. That is, it takes a program with Dart's semantics, and figures out how to map those to JavaScript semantics. That there is a mapping is not all that interesting, as such a mapping will exist from any Turing complete language to any other.

<comment><USER21> Really? Wow, that's cool. Can I have a reference?

<comment><USER20> I'm really just describing how a compiler works. Are you looking for references on the compilation process? There's a classic series called "Let's Build a Compiler" (<http://news.ycombinator.com/item?id=1727004>) available online that walks through building a simple compiler. Then there's also actual textbooks, but I was not impressed with either of the two textbooks I've had on the topic. Many people recommend "Compilers: Principles, Techniques, and Tools" (<http://dragonbook.stanford.edu/>) also referred to as just _the dragon book_. If you're not averse to textbooks, you may also want to check out Michael Scott's "Programming Language Pragmatics" (<http://www.cs.rochester.edu/~scott/pragmatics/>).

</comment></comment></comment></comment><comment><USER22> The Typescript syntax looks shockingly like Adobe's ActionScript. Next up, Adobe releases an ActionScript to Javascript cross compiler?

<comment><USER23> Do you know the history of ES4? [http://en.wikipedia.org/wiki/ECMAScript#ECMAScript.2C_4th_Ed...](http://en.wikipedia.org/wiki/ECMAScript#ECMAScript.2C_4th_Edition)

</comment></comment><comment><USER24> I have to build my entire project every time I want to update my client side code? That is an enormous tax to charge the developer just to add static typing to your client side code. I can't see this doing anything but slowing a team down.

<comment><USER25> Anyone building large projects do this anyway, using minifiers to reduce the download size. Sometimes the code has inline documentation which gets built too.

A build step is already a reality for many people writing JS today.

<comment><USER26> This isn't really a fair comparison. You can use unminified, commented javascript in development for testing without a build step, and just build for production.

Even so, a build step can be a single keypress, so its no big deal.

<comment><USER17> I don't know about you, but to me once a code file is larger than say a couple hundred lines it becomes exponentially less readable. So any non-trivial amount of JavaScript already includes a concatenation build step anyways, even for development. As long as the TypeScript compiler is reasonably fast on larger (10k LOC) projects, it wouldn't be any issue at all.

<comment><USER8> This is a moot point. The Closure Compiler supports dependency resolution so that you can unit test your code without building the full project. So, if I am testing foo.bar.Baz, I can create a file that only includes `base.js' and a goog.require('foo.bar.Baz'); call, and `base.js' will include all of its dependencies, in most cases fairly quickly.

Unless you are performing integration tests, there is no reason to compile each time. Doing that is just the legacy of limited build systems.

<comment><USER17> Does goog.require() resolve at run time or compile time?

<comment><USER8> You're realistically only going to _deploy_ a compiled script. The compiler supports goog.require/provide() without requiring any JS inputs, and core tools like closurebuilder.py (which has superseded calcdeps.py) build your dependency graph for you. The compiler uses the require/provide statements to ensure that all necessary symbols are indeed provided, and are only included once in the script.

For debugging purposes, `base.js' implements goog.require() in JavaScript. The implementation is naïve, it just turns foo.bar.Baz into foo/bar/Baz.js and tries to include it. This is good enough for running unit tests or fiddling around with experimental code, which are the two times you're going to use `base.js'.

[http://code.google.com/p/closure- library/source/browse/trunk...](http://code.google.com/p/closure- library/source/browse/trunk/closure/goog/base.js?r=2#240)

<comment><USER17> Yes, my question is whether goog.require() executes on the client's computer (in production) or whether Closure strips out those calls when you pass a special flag (as part of your deploy build). I personally don't want dependency resolution to happen at runtime in production.

<comment><USER8> Erm ... like I said, it happens at compile-time. The library provides a runtime version for testing purposes. Sorry if I wasn't clear enough.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> Seems like a troll article to me.

Of course people are comparing TypeScript to Dart. They do the same freaking thing-- provide you with a different way to write code to run in the browser.

Then he presents the metaphysical distinction between "building on JS" (good) versus "interop with JS" (bad). What's the difference? Neither language is JS. If something breaks, you're still going to be debugging code that isn't the code you wrote-- it's generated code.

I feel no better informed after reading this article than before. Will someone please do a straightforward comparison between Dart, TypeScript, and CoffeeScript? It might be kind of hard because as far as I can see, TypeScript does not build on Linux.

P.S. Is "it doesn't even use the JS numeric type" supposed to be a put-down of Dart? I always thought the JS numeric type was a big mistake. Who would want to be forced to use floats for everything? Inaccurate and slow-- two great tastes that taste great together.

<comment><USER27> > What's the difference?

One lets you take existing JS-code and make use of new language features there. The other "just" lets you call existing JS-code.

I'd guess one is clearly better than the other when it comes to dealing with existing JS-code* . (While the other is clearly preferable to the one when it comes to making the language you want to make.)

* It still obviously depends a lot on the language. Like, how well TS-code works together with plain JS-code (how much do you get out of adding some type annotations here and there while leaving most of the JS-code untouched, etc.).

<comment><USER5> OK. So there is a path to converting JS to typescript without rewriting the whole thing. Thanks for the additional information.

<comment><USER28> I believe it is also possible to create definition files, like c++ header files, for existing libraries. So for instance, if you want the type checking for backbone, you could create a backbone.d.ts and just include the class/method/function definitions (and interfaces if you want to) and not even touch the original library. I would imagine this is the preferred way of doing things still I would imagine most libraries are not going to want to convert there libraries to include TypeScript only syntax.</comment></comment></comment></comment>


Advice to Y Combinator non-profit startups - bjelkeman-again http://bjelkeman.wordpress.com/2013/09/09/advice-to-y-combinator-non-profit-startups/

<comment><AUTHOR> While not exactly a non profit, we are a 'social enterprise' based in India - i.e. our main focus is solving a particular issue rather than profits. We are registered as a for profit. However, it looks like we have literally the worst of both worlds. Investors tell us that we look like a non profit to them, while funding bodies tell us we are ineligible for grants.

Is the answer also registering a non profit organization as well? Is this ethical?

<comment> bjelkeman-again First of all you need to understand the incentives of those you are talking to. In India there may be different cultural issues you have to deal with too, which are different from US/EU.

A normal for investor will not invest in a social enterprise. You need to find social enterprise investors, they do exist. Other type of funding bodies are often not equipped to invest in companies. Setting up a both a non-profit and a for-profit is perfectly ok, as long as everyone understands what you are doing. However, I suspect that it will not easily solve your problem, as most investors or funds are fairly new to the social investments and they aren't setup to deal with it.

Give me a ping and lets talk. I have some more detailed suggestions.

</comment></comment><comment> bjelkeman-again If you have any specific questions about this advice or anything else regarding non-profit digital startups, please don't hesitate to ask.</comment>