Ask HN: Learnings from Dale Carnegie, "How To Win Friends And Influence People" - <AUTHOR> If you've read Dale Carnegie, can you share what eye-opening things you learned, and what principles you now practice having read it?  I read it a few years back and now find I can't remember anything specifically from it. <comment><USER3> # There is only one way to get people to do something. You have to make them want to do it.

# People love to hear their name. When someone tells you their name, remember it and call them by it

# When someone asks you what you do, or what's new, have a good upbeat answer. No one wants to hear about your problems.

</comment><comment><USER4> I personally visualize & associate them and use them as much as i can:) I believe smiling is the single most important thing of the list.

Here are the first nine principles with Number - Keyword - <USER2> Technique :)

#1 Don't criticize, condemn or complain : One - RUN- A horse in a race crossing the finish line with THREE GOLDEN BOOTS on top it, with "C" imprinted.

#2 Give honest, sincere appreciation : Two - ZOO - You're vising a zoo and standing buy a monkey cage. You throw a banana at the monkey and monkey throws back a bouquet of ROSES.

#3 Arouse in the other person an eager want : Three - TREE- You're in front of the Rockefeller Christmas tree. All of a sudden, the tree falls to the ground and there is a WANTED poster with your picture on top of it.

#4 Become genuinely interested in other people : Four - DOOR - You're walking out of a grand hotel, through their revolving door, when the door gets stuck in a stack of 25% INTEREST bearing treasury notes :)

#5 Smile : Five - HIVE - You're out hiking and come across this huge cave, with a gigantic bee hive on it, with bees buzzing around it. Out that bee hive, sticks out a big yellow SMILEY face.

#6 Remember that a person's name is to that person the sweetest and most important sound in any language : Six - SICK- You're sick and are admitted to the hospital. The nurse brings the syringe and it is about 10 feet tall with a 3 feet needle attached to it. Out of the needle a NAME PLATE is dripping out.

#7 Be a good listener : Seven - HEAVEN - You look up and see something coming down. It's a flight of stairs. Tumbling down the stairs, is a pair of old HEAD PHONES, that are huge.

#8 Talk in terms of the other person's interests : Eight - GATE - You're about to cross a railway gate. The bells start ringing and the gate comes down on the bonnet with a thud. Attached to the gate is a MICROPHONE.

#9 Make the other person feel important - and do it sincerely: Nine - WINE - You're dining in an upscale restaurant. The waiter brings you a big bottle of wine on which is it is imprinted "IMPORTED".

Hope it helps.

</comment><comment><USER5> _Talk about your own mistakes before criticizing the other person._

This is by far the best advice Carnegie made. If you want to get people to level with you, first you need to let them know you yourself are vulnerable, make mistakes and are very much like the opposing party.

Once your each that level, the other party is more prone to listen to what you have to say next. Be it a suggestion, criticism or a direct order.

</comment><comment><USER6> The best, and most dangerous, lesson I took was the value in 'mirroring' the person you are speaking with. Subtly mirroring their body language and speech patterns shows empathy, similarity etc, and since I wasn't naturally great at body language I found it really useful as I entered the business world.

Unfortunately, this habit ended up becoming second nature. While in many situations this was great - I just naturally found commonality in discussions - because I wasn't doing it intentionally it could become inappropriate.

One of my coworkers was flirting with me incessantly, and not only didn't I notice that behaviour _I was actually mirroring it back_. My girlfriend (now beautiful wife) met me for lunch one day and was ready to kill me (fair enough). Thankfully we worked through to the root cause - this book - and I changed the habit.

That doesn't take away from the book, it just shows that any of the lessons therein and discussed here will be most useful when you have a level of self- awareness that I was lacking, and which will help you apply them appropriately.

</comment><comment><USER7> I practically use all the points to get girls and tbh, it goes really good for me.</comment>


Cambridge University Fires a Young Scholar for 'Problematic Research' - <AUTHOR> https://quillette.com/2019/05/02/cambridge-capitulates-to-the-mob-and-fires-a-young-scholar/ <comment><USER2> Not problematic research. For racist pseudoscience published in OpenPsych pseudojournals.

Noah Car is not an edge case.

<comment><USER3> How exactly is research backed by data racist? [https://openpsych.net/files/papers/Carl_2016b.pdf](https://openpsych.net/files/papers/Carl_2016b.pdf)

<comment><USER2> Before even looking at the article I must ask: is simple counterexample of using data correctly important argument? Or should we consider the whole body of work.

Generally speaking must look the relevance and validity of data and methods used in each case. Even if it's correct it can be collected and used to argue intentionally misleading way. "Using data" is not enough for science.

<comment><USER4> You answered wrong question. klohto never asked you whether using data is enough for science. he was asking how is this racist. Do you mean if it is not enough for science then it must be racist?

</comment></comment></comment></comment><comment><USER5> I don't think you need to be an expert in "psychology, intelligence research (a sub-field of psychology), and/or economics" to understand this paper. I read it and it was easy to follow. It also has nothing to do with intelligence research or economics.

My biggest issue with the paper is that he uses a log-log plot ("to reduce skewness"?) and then does a linear regression on that (and we all know everything looks correlated on a log-log plot).

Also the resulting correlation is claimed to be very strong, but I think that psychologists so rarely see any correlation that "very strong" to them is "there's definitely _some_ correlation!".

He shouldn't have been fired though.</comment>


Domino's: Pizza and Payments - <AUTHOR> http://www.ifc0nfig.com/dominos-pizza-and-payments/ <comment><USER2> client-side payments is totally normal, when done right, unlike dominos's's buggy version -- what usually happens is that the vendor sends you to a payment processor, and you pay them, and the _payment processor sends a verification token to the vendor_ , and the vendor delivers your product to you.

Domino's skipped one critical step.

<comment><USER3> > ... and the payment processor sends a verification token to the vendor

I would just add one more critical step: _the vendor actually verifies the verification token_ rather than just checking that it exists (since the token is often passed through the client, it can't be inherently trusted either). This should involve either hitting the processor's server or verifying a cryptographic signature, and verifying that the payment associated with the token matches what the vendor expects.

<comment><USER4> Why not have the payment processor notify the vendor's server directly? I believe PayPal does this.

<comment><USER5> That's how it works most of the time, at least in my experience.

Card details are sent to the processor, a token comes back. You then send the token along with any data relevant to the transaction (which items were purchased, tax zones, coupon codes etc), you then verify on the server that inventory exists etc, and then you send the token (which is only a short-lived represention of the credit card number) and then verify the payment went through, and then you go through the bussines process for delivering your product(s).

Then, and only then do you give back a response saying the order has processed, so the UI can alert the user.

<comment><USER6> this is essentially how stripe's implementation works.

CLient side library handles the CC and token generation. Server side you use that token to call stripes backend to process the payment.

</comment></comment></comment></comment></comment><comment><USER7> I'm waiting for Pizza Hut to show up next. I refuse to let them save my CC number because their password policy basically ensures that you can't choose a reasonable password.

And if the obvious, public part of the site is like that, I can only wonder what hackers would find probing deeper.

<comment><USER8> Which pizzahut country are you referring to out of interest? Is this US?

<comment><USER7> The USA, specifically pizzahut.com prevents you from using any special characters in your password.

You can see the message here: [http://imgur.com/T8R6Fnr](http://imgur.com/T8R6Fnr)

I thought they used to also have limits on the maximum length, but thankfully that doesn't seem to be there when I tested it just now.

</comment></comment></comment><comment><USER9> One of the things I love about stripe is it allows you to give them the raw credit card details directly (never hits my servers/logs), and they give me back a token. So I can still keep things server side, but I don't have raw credit card information in my server logs/database.

<comment> jon-wood That's exactly what Domino's provider (and anyone else worth using) allows, they just didn't bother verifying the yoken.

</comment></comment><comment><USER10> It's not that processing payment client-side is wrong, it's that the Dominos app implement it wrongly, or DataCash simply doesn't provide any security feature for protecting against http request data tampering, which I believe the latter is not the case.

Most payment gateway have a security mechanism to ensure the response from payment server have its integrity remain intact. Most of the time by hashing some combination of responses value and shared secret key between merchant and the payment server, and comparing if both marchant calculated value and payment server hash matches. If it doesn't match, then it is safe to to throw an error and prompt appropriate message to said attacker. When implemented as such, the system are expected to immune to such attack as described by the author.

The article is a perfect case study to showcase the consequences when the developer decided to skip the security part. (yes it's entirely up to the web master if they want this or not, the payment server won't care).

<comment><USER11> > Most payment gateway have a security mechanism to ensure the response from > payment server have its integrity remain intact.

I've definitely seen SSL pinning used to this effect. The simple solution to Dominos' problems seems like a server-verifiable transaction token that coming from DataCash (or whatever gateway service). I agree that client-side payment processing isn't wrong -- in fact, it makes more sense than attempting PCI compliance on their middleman server.

</comment></comment><comment><USER12> My interest is certainly peaked about the 10% off coupons.

<comment><USER13> Here in the UK there is _always_ a 50% off or better deal for mediums and larges. If you can't find one on the page or from a quick Google ringing the store will get it (only ever had to do this at a friend's in Liverpool)

<comment><USER14> Might be because pizzas are incredibly overpriced in the UK. Most places they are cheap student food, for $5 you can get a meal. Not in the UK.

</comment></comment></comment><comment><USER15> Did the author get a bug bounty? If not, is it that companies who understand tech the least also don't understand the value of such things?

<comment><USER16> From the tone of it, it seems he is graceful that he didn't get into any legal trouble. So I'd bet no, he didn't get any bounty.

<comment><USER17> £26 for Domino's. Sounds like he got bent over pretty hard. I can't imagine spending ~$37 on fantastic pizza, much less Domino's.

</comment></comment></comment><comment><USER18> Don't rely on client side data. Pin certificates in mobile apps.

<comment><USER19> You're still trusting client side data. What's stopping a more advanced user from replacing your pinned cert with theirs.

Don't do any payment processing client side. Your app should be a pretty interface to the actual service running on your servers.

</comment></comment><comment><USER20> How was he able to see the raw responses from the payment gateway? Do they use HTTP instead of HTTPS to make these requests?

<comment><USER21> Because the messages were clear at some point on a machine he controlled.

This is what the article means by the payment processing being done on the client: Some client-side code (JavaScript? A mobile app?) would receive the message from the payment gateway, and send the success code to Dominos.

He may have used a debugger[1] to breakpoint the application where the application has a cleartext version of the traffic, however he might have also taken advantage of the fact that even if using HTTPS, if the programmer uses a certificate store the user has access to (which they usually do), they can install a custom root certificate and then use something like mitmproxy[1] or charles[2] to decode the traffic.

What's needed to make this secure is to have a token provided by the payment processing API that the server can verify but that the client cannot produce (or tamper with)[4].

[1]: [https://securitycafe.ro/2015/01/28/intercepting-functions- fr...](https://securitycafe.ro/2015/01/28/intercepting-functions-from- statically-linked-libraries/)

[2]: [https://mitmproxy.org/](https://mitmproxy.org/)

[3]: [https://www.charlesproxy.com/](https://www.charlesproxy.com/)

[4]: [https://en.wikipedia.org/wiki/Hash- based_message_authenticat...](https://en.wikipedia.org/wiki/Hash- based_message_authentication_code)

</comment></comment><comment><USER22> Why doesn't Google do more to prevent Android apps from being decompiled, inspected and recompiled into modified apps? Yes, there's source code obfuscation, but that only slows down the amateurs.

<comment><USER23> Because it's not an arms race that can be won? And in most cases, it's a complete waste of time to try?</comment></comment>


Show HN: Collections for Mac, now with Instagram Support and a Revamped UI - <AUTHOR> http://collections.me

<comment><USER2> It is unclear to me what this app is. It's Instagram and Google Docs for Mac? As a single app?

<comment><AUTHOR> Hi! Fair question. We're trying to build a universal Finder, a single point of entry to all of the digital content you have that's currently dispersed across an ever-growing number of cloud and web services. A bit of this was present in a TechCrunch article earlier today ([http://techcrunch.com/2012/07/24/collections-for-mac- instagr...](http://techcrunch.com/2012/07/24/collections-for-mac-instagram- google-drive)), but we're currently writing a blog post that will more fully explain what we're up to.

<comment><AUTHOR> The post is live: <http://collections-me.tumblr.com/>

</comment></comment></comment><comment><USER3> I mentioned this on the last Collections thread, but I'll mention it again. Getting an email with the word "collections" in it causes a quick jump when I glance through my emails. Not sure how to get around that since it's the name of your software, but it makes me feel like I forgot to pay something and upsets me.

<comment><AUTHOR> Many have aired this, and we've been concerned about it ourselves, but our hope is to subvert and overcome the connotation.

</comment></comment><comment><USER4> Looks beautiful, but there is no description the app or its purpose - just a description of 2 of its features.

So, what is it?

<comment><AUTHOR> See here: <http://collections-me.tumblr.com>

</comment></comment><comment><USER5> Honest question for the devs - why the focus on Instagram? I thought that your original product was fantastic (despite the security problems). I feel like adding in Instagram takes away from the awesome original version: an amazing desktop version of Google Docs.

<comment><AUTHOR> See here: <http://collections-me.tumblr.com/>

</comment></comment><comment><USER6> Beautifully done, exactly what I wanted to organized my docs. Sadly, I am drooling over how my pictures could be organized too, but I don't have an instagram account - can you organize FB pictures? Pretty please? :)

<comment><AUTHOR> That's next. :)

</comment></comment><comment><USER7> So is it no longer in beta? It didn't replace the previous version I had installed because the name no longer includes "beta".

Why do I have to login again? Do you have DEBUG off on the production server this time? I was weary giving my credentials the first time, still am.

Is the spreadsheet editor still just an web view? Yep, looks like it is. That's my biggest hinderance here, it's so much easier to edit spreadsheets in Chrome because I can do things like edit the page without having to find the mysterious icon for it on the top right.

I haven't tried editing any other filetypes, so I don't know if you have any actual integrated editor that isn't just using Docs in a web view, but I think that's really a much more important aspect of a program like this for myself rather than it being able to login to all of my random accounts.

<comment><USER8> Hi jc4p, the product is still in beta. (If you go to the about page for the product you'll see that it says Beta2) The reason we removed Beta from the name of the app itself is that we started using Sparkle for auto updating the app, which seems to break if the app name changes. If we keep Beta in the name of the app, we won't be able to automatically update you to a full version later. That's why we removed it.

About spreadsheet, we know the experience is still not great and could use a lot of work. Stay tuned and we hope to have something for you in the next couple of days. As for security, since last launch we've consulted with Heroku security team, implemented password policy and done a great deal of other things to keep infrastructure secure. We have an upcoming blog post dedicated to security planned which will give you more details about how we keep your data safe. We'll let you know.

</comment></comment><comment><USER9> I'm interested in the developer's thought processes regarding the functions of this application.

Google Docs and Instagram are related how? I don't conflate users of either services with users of the other necessarily.

<comment><AUTHOR> Hi rodly, we just wrote up a little blog post to explain our thought process. Check it out!

<http://collections-me.tumblr.com/>

<comment><USER9> "Our long-term vision for Collections is to build a cloud-enabled universal Finder, through which you'll be able to access all of the digital content you have that's currently scattered across an ever-increasing number of cloud and web services."

If you posted something short and sweet to this effect on your homepage, you would definitely increase user retention. I like the idea, and think it's definitely a problem needing to be solved.

</comment></comment></comment><comment><USER10> Since the people involved with this app are replying in here:

Is this another app I will come to love and find invaluable only to one day wake to "we've been bought by Google!"?

Do you have a business plan that involves long-term support for (and monetization) of your users?

If not, I simply won't install something that has the raw potential to be so important to me.

<comment><AUTHOR> Hi tomflack, we despaired at Sparrow's purchase and are in it for the long haul.

<comment><USER10> Thanks for replying, I won't ask you to reveal monetization plans but have you taken any VC?

</comment></comment></comment><comment><USER11> Doesn't seem to work in Mountain Lion. I launched the app, added my google account, then went to add my Instagram account, however I had to do a password reset, when I switched back to collections it was unresponsive. Re-launching the app shows me the chrome of your main window and then it goes unresponsive again.

If I can be of any help with your testing, let me know!

<comment><USER8> Hi jameswyse, thanks a lot for offering to help. We have yet to test our app on the latest Mountain Lion. We will install Mountain Lion tomorrow and test the app. Feel free to email us at email@example.com and we'll drop you a note once we finish testing the product on mountain lion.

<comment><USER11> Thanks, will do!

<comment><USER8> Hi james, we just installed Mountain Lion and can confirm that this issue does indeed exist. We're working on getting it fixed and will get back to you.

</comment></comment></comment></comment><comment><USER12> the fact i still love this app despite their terrible security problems from the last launch is a very good sign for them. i'd pay for this. don't need the instagram support though. sticking to professional stuff (like docs) seems like a more prudent move. google will be chasing this company soon.

</comment><comment><USER13> Tried it, don't have a use for it. I'm not an Instagram user, nor do I use Google Docs much.

Will there be support for other 'collections' cloud services, like Delicious for example? I could see it being a handy interface to my bookmarks in Delicious, if it were supported ..

</comment><comment><USER14> Not sure how the Instagram fits into the original goal of the app ... but cool!

</comment><comment><USER15> I really am enjoying this app and I think you have made something great. I do agree with the sentiment that you haven't yet made the value proposition as clear, but that will change.

</comment><comment><USER16> When this was first posted, there was an issue with security credentials. It would be good to know more about what you are doing to secure things going forward.

<comment><USER8> Hi newman314, we've consulted with Heroku's security team and implemented all the best practices suggested by them. We started enforcing a password complexity policy for all of our accounts (Heroku, Amazon, codebase, database, etc). We got an upcoming blog post on security planned in which we will inform you much more on how we keep your data safe. Stay tuned!

</comment></comment><comment><USER17> Just re-downloaded. I love the new icon, I think that swung it back for me. Beta 1 was hurting my Dock.

</comment><comment><USER18> Doesn't resize on my 13" screen meaning I can't see content? Kind of weird.

<comment><USER8> Hi drobati, I'm not quite sure what you mean. Could you give us a bit more detail?

</comment></comment><comment><USER19> great job! I liked the previous logo though...this one is too... colorful.

<comment><USER20> I agree. This new logo looks like a lot of the more generic designs I've seen submitted in 99design contests.

<comment><USER21> Yep, it's a combination of the drop shadow, the floating shadow, the color choices, and the shine on top of the colors.

</comment></comment></comment><comment><USER22> No Snow Leopard support? :(

<comment><USER8> We should buy you a copy of Mountain Lion so you can test out our app :)

</comment></comment><comment><USER23> awesome. i have been in need of some instagram api tokens. thanks guys!</comment>


Bret Victor – Inventing on Principle (2012) [video] - <AUTHOR> https://vimeo.com/36579366 <comment><USER2> For those who want to see where Bret continued with these ideas, make sure to check out his presentation "The Humane Representation of Thought"[0] and his current research based on that talk "Dynamicland"[1] which is an in-person programmable physical classroom based in Oakland, CA.

[0] [http://worrydream.com/TheHumaneRepresentationOfThought/note....](http://worrydream.com/TheHumaneRepresentationOfThought/note.html)

[1] [https://dynamicland.org/](https://dynamicland.org/)

<comment><USER3> DynamicLand seems awesome, but I'm afraid it will be forever irrelevant if it's not open-sourced or launched as a consumer product.

Are there any open source implementations of DynamicLand, that I could contribute to? If not, maybe I'll hack something together with JS and put it on Github.

Brett Victor has been inspiring me with his talks for years, but I can't help but wonder- when is he going to ship any of this awesome work!? His innovations would be profound for our industry, its a shame to see them locked away in closed research.

<comment><USER4> Brett's a R&D guy. R&D guys don't ship consumer products. They find the future paths and test if they're viable. Developing and maintaining a consumer product is a completely different skillset and one that would greatly hamper what he is best at if he tried to follow it. He's shown us what's possible and much of what he's shown _has_ been shipped by other people. Look at the playgrounds in Swift + XCode Those are totally based on ideas he put out in his talks.

Don't ask our best creative thinkers to be slaves to retail viability, and customer support. There are plenty of us who can manage that, but there are very few Brett Victors in the world.

<comment><USER3> I'm glad he has a research budget, I just wish his work was open source. The fact that its not means that there is a huge barrier for anybody to actually use these ideas. Most of us don't have a team of engineers that we can task for a year to build something like Xcode playgrounds.

A fun opposite example, of somebody who hasn't invented anything in particular, but solves real user's problems in an open-source, practical way? Matt Mullenweg. Wordpress powers ~30% of sites on internet.

I'm not saying that Brett should be more like Matt. I'm saying that a little bit of openness goes a long way.

<comment><USER5> To understand why Bret does not open source, you need to watch this talk from his lab's ethnographer: [https://www.youtube.com/watch?v=dweVuJBoK6o](https://www.youtube.com/watch?v=dweVuJBoK6o)

Money quote:

"In the CDG, prototypes work decidedly against usefulness. That's the mantra, against usefulness. To be very clear, this being against usefulness is not the being against usefulness of artists, who like to do their autonomy. It's also not the grumbling hate of engineers who hate users, stupid users who don't understand their products. The paradoxical reason for the need to avoid usefulness is the experience that usefulness can stop the overall longer process of bootstrapping. Yes, at the end of the process of bootstrapping, products need to be shipped. But before this happened, usefulness is feared, at least for many researchers in the CDG, as a trap. Once you produce useful tools, they reify. Usefulness reacts to present users, and present users are not the future users that the lab is working towards. Useful prototypes stop being pointers of something larger, more long-term than what the prototype achieves. Useful prototypes become a means to an end demand, too much attention, become solutions, and maybe even are in danger of being turned into opportunities."

Now whether you think your understanding of open source differs from Bret's is an interesting question. But it seems like his is "throwing shit at the wall to see what sticks is no way to reinvent a civilisation."

<comment><USER6> A less charitable interpretation might be that many of these ideas are actually not workable -- and never will be -- in the real world where you can't just insert special cases whenever you need to. (I've seen this _sooooo_ often in research code.) It's also _not_ just a question of computing resources.

<rant incoming, be warned>

I'll use the Mario example from one of his first widely disseminated talks as an example: In the Mario example you see him run time backwards. That's actually reasonably achievable by just recording all previous states or (more plausibly) all state changes and then "just" replaying backwards. Then he runs time forwards again after having changed a setting (or some such). This is, again achievable within limits, see e.g. "rr".

The problem comes when he shows a _projected_ future path of Mario. Because of a) Turing Completeness (TC) + the Halting problem, and b) the fact that much code actually interacts with other systems which are _not_ able to just rewind (and/or themselves interact with systems that ...).

The only plausible scenario in which this is even remotely possible in practice is if the _programs_ adhere to strict rules about side effects, have built-in "project into the future" (or have no side effects so that we can run them to see what the results are _without affecting anything external_.). That is, it's not about fancy IDEs -- it's about programming languages and turning _away_ from Turing Completeness and/or non-abstract/non-formalized effects. FRP/(React+Flux) _sort_ of work for this if you adhere strictly to purity, but then again break down when it comes to things like "what is the focused element" if the user clicks around when you're replaying.

I don't want to be a party-pooper, but good luck changing the programming paradigm of _everyone_ to achieve this vision. For it to work _everything_ has to work in this FRPish way, and that's just never going to happen -- for example, networks (for real-world reasons) cannot behave this way, etc. etc. I _WISH_ we could have everything behave this way, but we can't -- billions of e.g. browser installations which have to have backward-compatible DOM implementations and millions (billions?) of installations of C/C++-based operating systems say so.

Now, I'm not against Imagining Things How They Could Be, but if there's mathematical proof that "thing X" is not possible one either needs to explain how you are not doing "thing X" (perhaps not using a TC language, or disallowing non-pure state) or shut up. Brett Victor and many "visionaries" like him are just very bad at stating their fundamental assumptions up front (which is perhaps part of the reason we don't get to see the code, it's probably just simple pure FRP-like code) so that we can evaluate the vision _against_ the assumptions. (Light Table just seemed to assume that the assumptions were plausible and see where that got them. Funded but with very little actual technological advancement to show for it.)

... and also don't get me started on the whole "Kill Math" thing. Ugh.

(Sorry about the rantish nature of this -- I should probably just write this up properly somewhere so I could properly flesh it out. I just get tired of this "What A Genius!" and "Well, it would take too much time away from _inspiration_ to actually _make_ the thing!" credulous nonsense.)

<comment><USER7> I worked with Chris on Eve, which was the project he started after he hit a wall with Light Table, that wall being the limitations of programming languages you outline here. Eve did have strict no side effects requirements, and did have the ability to log and rewind programs. The bulk of our work was in nailing down a good set of semantics, and also in figuring out a good way to present those semantics to users (syntax, UI, etc.).

After writing countless programs in this style, which is very different from conventional programming, I have to say the Mario example is a nice demo, but in reality we didn't find time-travel useful in scenarios like that. What was infinitely useful though, was being able to trace the provenance of different values in your program for debugging. Since we kept information around that the compiler usually throws away, we could tell you exactly how a value or UI element was calculated, and give you tools for interacting with that history that just aren't possible in other languages. For instance, you could encounter a bug, pack up the state of your session, send that over to another dev, and he/she would see exactly the environment in which your code was executing.

You bring up the good point that not everything is written in this way, and so interacting with external code can be tricky. For example, you might have some code that sends out an email every time the system memory reaches a threshold. Now, you might get an e-mail you didn't expect, but you could go back and see exactly why that email was sent, and deduce the bug through the provenance tree.

As I said earlier, after writing programs in this style for 3 years, I'm utterly convinced we won't be programming in the future the way we program today. There were versions of Eve where we wrote very complex applications, from webapps to robotics, that didn't even feel like programming -- it felt more like forming a shape out of clay, where the clay in this case is a digital "material".

In the end, Eve couldn't get more funding because it wasn't a venture that was really set up to fit into the VC mold (and I'm still not sure how Chris and Rob convinced VCs to fund them in the first place), but I'm absolutely sure the current way of doing things will fade with time. It's going to take a lot more research and a lot more convincing, because there are a lot of people out there that for some reason don't want to see projects like this work, but as someone who went down the rabbit hole and gotten a glimpse of this future, I really just can't fathom how humans could be working with languages held back with so much baggage from the early days of computing in the year 2100 for example.

I'm curious though, why you suggest for a language to work like this you have to abandon Turing Completeness. This wasn't my experience at all, and we implemented a Turing Machine in Eve just to prove we were TC ([http://incidentalcomplexity.com/2014/12/01/nov/](http://incidentalcomplexity.com/2014/12/01/nov/)).

<comment><USER6> I think we agree that FRP-ish is the way of most of the future, but it _must_ integrate well into the existing ecosystem. Which basically means no "projection into the future" and no "fast-forward". I think side effects are unavoidable for all practical purposes -- the trick is how to integrate them cleanly, if that's even possible. Even being able to trace backward would be a huge achievement for most of the programming world. To be clear, it's about 80% achievable right now by just programming your whole application in the FRP style until you reach the "transactional" or "IO" boundary.... Btw, it's not a coincidence that this sounds similar to CQRS/Event Sourcing and Bounded Contexts from DDD. I think CQRS/ES approach has an advantage in that it "realizes" that there's such a thing as "oops, I wrongly charged customer X for item Y, let's refund that". Plus, it's it's basically what we do in the real world, e.g. in banking.

It's obviously not enough to be able to "project into the future", but it's pretty awesome for looking at what happened. It's also a great way to maintain discipline for your code -- we're already off on a wild tangent here, so I won't elaborate.

> I'm curious though, why you suggest for a language to work like this you > have to abandon Turing Completeness

You don't necessarily have to, as long as you a) assume complete purity (as in e.g. Haskell's ST monad), and b) are resigned to having to actually run _all_ the computations when running "forward".

Keep in mind that some of those computations may be EXPTIME... but as long as you can interrupt them, then I suppose that's OK.

I think the conclusion is that anything TC that doesn't do side-effects would basically be OK (as in: not actively wrong), but not necessarily practical in our lifetime. Timeouts might work here, actually.

<comment><USER8> It isn't clear to me what the problem with projecting into the future is. You just simulate the system or just let it execute normally (but under the control of some kind of "harness"). This will give you the correct result up to the point where some user input (missing in this simulation or execution) would have changed the behaviour.

<comment><USER6> > You just simulate the system or just let it execute normally (but under the > control of some kind of "harness")

"Simulate the system" means "execute normally" for all practical purposes. That's what TC + Halting Problem[1] essentially boils down to, absent other knowledge about the program. Hence my suggestion to let the program itself do "projection" because it could potentially be hugely more efficient, and _possible_ (but perhaps with bad "fidelity" in the case of side-effecting computation).

Anyway... to the larger point and to expound a little:

If everything is _pure_ , then there's basically no problem (except computational cost), but imagine our Mario is taking part in a multiplayer game.

What do you think should happen?

(Obviously, this is not realistic for the reason that you usally don't run "debuggers" or "IDEs" in a 'multiplayer' scenario, but I think the analogy holds in general. Imagine that the other players' actions are I/O operations like "what's the current time?" or "talk to a REST service", etc.)

Most interesting programs do this kind of thing _all_ the time. Of course, there _are_ interesting programs/functions which are purely algorithmic and rewind/fast-forward should work for them, but they are mostly pretty niche compared to most of the programming that currently happening.

A very interesting example that's somewhere "in between" is Haskell's STM monad which does have _very_ controlled side effects and where you can just "retry" and particular computation in case synchronization fails, but it still doesn't allow you to "project".

[1] Alright, I suppose it's just undeciability for non-trivial properties of TCs languages, but Halting Problem is a convenient shorthand.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Relevant to this video, if you haven't heard, there's a new programming language called Luna(currently in beta), designed based on these principles.

[http://www.luna-lang.org/](http://www.luna-lang.org/)

[https://www.reddit.com/r/LunaLang/](https://www.reddit.com/r/LunaLang/)

Really exciting stuff.

<comment><USER10> Oh, sweet, they finally released the beta! After the last time Luna appeared on HN, I kept checking their site for activity since they said they'd be updating soon, but forgot about them after a few months. Now there's something we can actually play with!

This is probably worth submitting to HN again in order to alert people of the beta; there was a fair amount of interest before and I'm sure I'm not the only one to have missed the announcement on their site.

</comment></comment><comment><USER11> I often have moments where I go _" I can't believe that was N years old already"_ \- where currently _N_ is usually around 15 +/\- 5 years for me. This is the opposite: it feels weird that this video is only six years old! It has had such an impact on my life, my way of thinking and also my career (I studied IxD just around the same time), that it feels like it's been around forever.

</comment><comment><USER12> Great stuff, like all of Bret Victor's talks. My favourite: is "The Future of Programming (2013)": [https://vimeo.com/71278954](https://vimeo.com/71278954)

(I also liked this satirical blog post about that talk: [http://alarmingdevelopment.org/?p=797](http://alarmingdevelopment.org/?p=797))

</comment><comment><USER13> Bret Victor's reading list, for anyone that's interested: [http://worrydream.com/#!/Links](http://worrydream.com/#!/Links)

</comment><comment><USER14> In my opinion, this is an excellent presentation. I've watched this video in 2012 and have recommended it to a lot of people. Even though not many people will be able to use these tips on a daily basis, it's a "must watch" in my eyes. So inspiring and fun to watch. Watch it, when you have time! :)

</comment><comment><USER15> Wish we could see more software being developed like Bret does it. Been looking for years and still haven't encountered anything with that degree of freedom and flexibility. His platform game demo is amazing!

</comment><comment><USER16> Isn't it about time for Bret to be noticed by the MacArthur Foundation?</comment>


Robots Learn to Push Heavy Objects with Their Bodies, Just Like You - <AUTHOR> http://spectrum.ieee.org/automaton/robotics/humanoids/robots-learn-to-push-heavy-objects-with-their-bodies-just-like-you <comment><USER2> "Next, the researchers plan to 'apply the proposed method to other tasks with whole-body contact,'" \-- robot football league?</comment>


Calendar Arc: an elegant, poster-sized productivity calendar - <AUTHOR> http://www.calendararc.com/

<comment><USER2> This is nice. Did you consider releasing the source file to let people create translations? I'd be happy to hang it in our office, but my teammates are still struggling with english :)

<comment><AUTHOR> Not at this point as it's still very much a work in progress and I'd like to clean it up before opening up the source. Localisation is on the list of things to do :)</comment></comment>


The Secrets of a High-Quality Vinyl Record (2012) - <AUTHOR> http://www.nytimes.com/2012/05/31/technology/personaltech/the-secrets-of-a-high-quality-vinyl-record.html?_r=0 <comment><USER2> It's a good guide for the gift buyer, but aspiring audiophiles beware: not every vinyl pressing was mastered better than, or even different from, the digital release. If you just get a kick out of vinyl's ritual and crack 'n' pop you'll be fine. If you're hoping for better dynamic range, however, a little research will save you a ton of disappointment.

<comment><USER3> I feel this is more true now than ever. Now that the vinyl resurgence has hipsters everywhere picking up cheap turntables and their favorite albums at Urban Outfitters, there's tons of companies out there trying to make a quick buck off the fad.

There's no guarantee that the repress of your favorite album is sourced from the original masters. I have found that the process of finding information on the lineage of a given pressing to be hit or miss. Sometimes the only surefire way is to wait a while and see what the community thinks of a given new release.

<comment><USER4> I feel like turntables never went away. It's always been cool/fun to have one. I don't know what it has to do with "hipsters". Is my uncle a hipster? I doubt it. And I'm pretty sure Real Hipsters don't shop at Urban Outfitters.

Edit: In case the point of my comment wasn't clear, it was that I think broad- brush comments painting people as "hipsters" don't add any value. It's such a meaningless thing to say. Associating "hipsters" with Urban Outfitters is proof of that IMO, because that's where "normal" people shop. So, "hipster" just seems like a way to say "someone I don't like for vague reasons" without actually coming out and saying it.

For the record, I don't have a turntable and have no interest in vinyl.

<comment><USER5> mattdotc's idea of a Real Hipster in the actual fringe, trend-setting-in-2016 sense may or may not be accurate, but that's not necessarily critical to his/her intention behind using "hipster" — that people are buying into vinyl culture for superficial reasons.

A point which I think wrongly implies that there is no substance to the upsurge in record sales beyond profits. I feel like it also has a lot to do with our increasing involvement in digital media / computer fatigue[1]. People's 200gb iTunes libraries have made them numb.

[1] [http://www.tokafi.com/news/computer-fatigue-and-rise- human/](http://www.tokafi.com/news/computer-fatigue-and-rise-human/)

<comment><USER3> I actually agree with most of what you're saying, with the exception of the interpreted implication.

I am ~30 years old with the collector's gene. I've always had an interest in collecting things: from backyard rocks to bugs and frogs, to stamps, coins, and books, to videogames, cassette tapes and CDs, and eventually - like you said - MP3s (and TV, movies, and more games).

Getting into vinyl was my escape from the ridiculous cache of music and media I had acquired from the likes of Napster, Kazaa, Soulseek, DirectConnect, and torrent sites like Oink. It _was_ a numb feeling to have all that music and no possible way to really appreciate it all. And even though I frequently attended local acts' shows and some larger concerts, I did feel a bit guilty that I wasn't paying for any significant part of my collection.

In 2006, I was among this new wave of vinyl hipsters. Yes, I had recently learned about the loudness wars, and I had known about the claims of warmth and other less-than-scientific reasons for why 'vinyl is better.' I have always been a skeptic, and although I was curious to see for myself, I never bought into any of that stuff beyond that _maybe_ there _were_ some album releases that had crappy digital mastering for CD but much better vinyl mastering.

I got out my dad's old Pioneer table and whatever good music I could rescue from his collection. I replaced its belt. I was buying used vinyl at the last record store in my area and chatting with the regulars, learning about new bands from personal recommendations rather than a shotgun approach of downloading whatever was in the top 10 for that day on a torrent site.

I liked having big artwork and big liner notes to read.

This new popularity has been great for someone like me who enjoys new music and old. Someone who has a certain affinity to _owning stuff_. But it also sucks sometimes to preorder a record and then get a flimsy record that sounds terrible. I still maintain my digital collection which is a superset of my vinyl collection, but that doesn't mean I still don't like to _listen_ to my vinyl on the weekends. I buy it because I do like spinning it.

I do have my own opinions about certain new interested parties in the medium. I also realize that this makes _me_ a hipster. I didn't mean to imply that there is no substance behind it, but I can understand that interpretation without the above details. I do, however, agree that there is now a not- insignificant superficial element to this current wave of buyers and I think this is why there are companies out there trying to take advantage of these less-informed buyers.

It is only my opinion, but I think anyone that gets into vinyl because they happened to see it at Urban Outfitters is probably among this uninformed set. I mean, look at this thing[1]. A hardcore music fan would never want to listen to their music on those built in speakers, and an informed shopper would never spend $170 on that garbage, because they would realize that they could get a much better entry level table for near the same price. The people that are buying that gear are doing so because they want to project a cool image. And right now, vinyl is cool.

[1][http://www.urbanoutfitters.com/urban/catalog/productdetail.j...](http://www.urbanoutfitters.com/urban/catalog/productdetail.jsp?id=37269347&category=A_MUSIC_TURNTABLE)

</comment></comment></comment></comment></comment><comment><USER6> It's funny how on sites like HN, much of the herd will emote over how superior vacuum tube amps and vinyl records are "better" than current technology, despite the fact that science and math proves them wrong. It just goes to show that there will always be a subset of people in all fields, regardless of the level of technology or sophistication, that think they know better than science and math. It's as absurd as a surgeon who is a deep believer in astrology and who goes to visit psychics for life advice.

I actually lived through the vinyl era as well as ferric oxide and CrO2 cassettes, etc, and the advance from that to CDs you just can't even compare. If you say you prefer the sound of vinyl records with its pops and fading dynamic range, then that's your choice, but it's in no way superior to digital audio.

<comment><USER7> People like vinyl because of the whole experience. It is very ritualistic. It's a slow and mindful process. The large physical artwork, the imperfect "warm" sound, etc.

Mathematically perfect sound is not the goal for most. It's a certain aesthetic and state of mind.

<comment><USER6> If it's a preference, then that's perfectly reasonable as I already noted. People prefer Subway to French Laundry but you can't argue that Subway is "better".

And I believe you are wrong, in that most people, > 90% I would wager, WOULD prefer mathematically perfect sound quality. Are you too young to have witnessed how quickly records and cassettes died once CD technology became available to the masses? We went from always having to hear a humming from the background noise of the cassettes and records to almost perfect silence when the music wasn't playing. I wager most people if they listened to every single one of their songs played over record would prefer the sound quality that a CD brings to the table.

<comment><USER8> I don't think people so much prefer mathematically perfect sound quality; people want convenient music. MP3s are less than the "mathematically perfect" quality of CDs, but far more convenient. A few hundred bucks spent on quality speakers and the quality difference between an MP3 file and a CD/WAV/FLAC will start to become apparent. But quality speakers aren't anywhere nearly as convenient as earbuds.

Don't get me wrong, I love the bright sparkling highs and powerful rich lows a CD through a quality set of speakers can bring, which vinyl can't. But I can't take all my CDs and a pair of 3-way drivers and a subwoofer with me in my car, on the bus, on my bike, at work, while grocery shopping, etc. But I _can_ conveniently achieve a reasonably good listening experience in those environments with my phone, a collection of MP3s and an aux cable or a pair of earbuds.

</comment></comment></comment></comment><comment><USER9> No mention of DJs and electronic music scene in the article at all? Just a big blind spot instead?

<comment><USER10> Huge blind spot.</comment></comment>


I'm not too happy about Sublime Text 3 - <AUTHOR> http://sloblog.io/~hmans/ia10kunCMjc/i-m-not-too-happy-about-sublime-text-3 <comment><USER2> I can't imagine a less rewarding product to build than a text editor for programmers. Selling programming tools is an ice-cubes-to-Inuits proposition to begin with. But new text editors demographically appeal to the most entitled, pickiest segment of the programmer market.

<comment><USER3> Software development has to be one of the only professions where we expect all our tools to be free. And on the off chance we do pay for something, we better get lifetime, monthly updates for free as well.

Seriously, imagine if our clients had the same expectations of the software we wrote.

<comment><USER4> I don't expect my tools to be free, but I do expect that if I pay for them, they do a better job than the free competition.

There are a plethora of free editors available. What does $70 get me for Sublime? Now compare to Vim,Emacs,textadept,notepad++,etc. Heck even Visual Studio 2012 Express is free to use all the editors.

<comment><USER5>
      > I don't expect my tools to be free,
      > but I do expect that if I pay for
      > them, they do a better job than the
      > free competition.

That's an odd expectation. Does IIS better job than Apache or Nginx? Does VS do a better job than a standard Unix toolset, (or insert your favorite free developer platform). Does Cold Fusion do a better job than PHP, RoR, etc.? Did Visual Source Safe ever do anything better than anything else? Is Windows better than Linux/Unix?

History is full of commercial software that is not up to the bar set by free alternatives. You're not wxpected to buy any of it, but if you do, you should do some due diligence.

<comment><USER6> > Does IIS better job than Apache or Nginx?

Depends on the definition of the software's job. Nginx is better at serving web pages, IIS with an expensive support contract is better at shifting the blame away from me when it goes wrong :)

<comment><USER7> Put it in the cloud? Redhat? If thats the real reason youre using iis i'll eat my hat.

</comment></comment></comment></comment></comment></comment><comment><USER8> Sublime Text 2 doesn't seem any more buggy or any less finished than other software I use. I don't feel like I'm "owed" any updates to it.

EDIT: I haven't followed this ST3 drama at all. If ST3 is better than ST2 then I will upgrade. If it doesn't appear to offer me anything of value, I'll probably stick to ST2 for now. It works quite well for me and since I'm not waiting on any bugfixes or feature requests, I don't really care how often it's updated.

<comment><AUTHOR> That's hardly the point of the post.

<comment><USER9> Seems to me like that's entirely the point of the post.

 _I bought a piece of software that I expected to at least receive bug fixes, maybe even some minor improvements here and there, and it is now becoming clear that this isn't going to happen._

If ST2 is stable and feature complete (and honestly, I use it and believe that it is) then there's nothing to complain about. The author's complaint is that it's being abandoned for version 3 too early.

</comment></comment></comment><comment><USER10> OP doesn't understand that when you buy software (read: "pay to download a stripped binary") without signing a support contract, you're entitled to nothing. If you don't have source, the only thing you can expect is that the binary you have will continue to behave as it did previously, which is "in a manner you don't fully understand" since you haven't read the source code.

I don't understand why people who insist on using non-gratis software think they magically dodged the bullet of the problems inherent in non-libre/non- open-source software, just because some money left their pocket. Accountability doesn't come from some misguided mechanism of "sponsoring development guarantees me fair treatment"; it comes from a community commitment to helping users, or from business contracts which legally require such treatment.

HN has a tendency (related to some cognitive dissonance in the startup scene perhaps?) toward a Randian "good people make money by doing good things" mindset, but what must be understood is that capitalism is a completely amoral system. Buying someone's product does not make you their friend, their ally, or their responsibility. It makes you their customer, and places you in a strictly economic relationship, not one of "trust" or implicit "entitlement". Libre software takes the stance that users should not be screwed over like this and empowers them to avoid such mishaps by giving them the tools to modify the software itself.

<comment><USER11> So in your opinion open-source is based on a completely cynic view of society and work relationships? I think you hopped on the wrong train of thought.

If I buy an orange from a street vendor, there is implicit trust (it's not bad/poisoned, hasn't been rubbed onto his hairy ass) and entitlement (it must taste good and keep for few couple days); money exchange _is_ the contract.

<comment><USER10> If it's "based" on anything, the idea behind releasing the source code for software is that you can _avoid_ screwing over your users with binary releases. In the worst case they'll be able to maintain the software themselves if you keel over or cop out.

Money exchange is not a support contract, and street vendors are not legally required to give refunds if you aren't satisfied, as long as they did accurately advertise the product they're selling (an edible orange, or a runnable binary). Many do, since it's arguably in their best interest to have a good reputation, but it isn't out of the goodness of their hearts. That's simply not how a for-profit business works. And if the street vendor decides (like this article's focus) to not provide long-term support for his oranges, that's well within his rights and you'd be a fool to depend on such support if the oranges mean a lot to you.

<comment><USER11> I was only pointing out the cynism in that last paragraph, not making analogies to the OP/ST. Capitalism in practice is not amoral, it is a system completely intertwined with society. The justice system routinely intervenes in economic transactions and disputes based solely on ethics, morality and intent.

</comment></comment></comment></comment><comment><USER12> It seems like the author's beef is with the fact that ST2 hasn't really seen any incremental updates, not that ST3 will be a paid upgrade. Honestly, I haven't really had anything to complain about with ST2, but I do understand those hoping for some small updates over time. The biggest concern I have with ST3 is the breaking api changes. These changes will lead to one or more of the following:

1\. packages won't be upgraded and will go stale

2\. packages will be upgraded and users will be forced to buy ST3

3\. package devs will have to maintain separate versions for ST2 and ST3

None of these are very attractive results of the breaking changes coming.

<comment><USER13> I share your concerns. I'm glad to see ST3 is making the leap to Python 3, though, and that's probably as good a time as any to make other backward- incompatible API changes. I would hope that it should be more stable afterward and that the jump to a hypothetical ST4 would be incremental.

</comment></comment><comment><USER14> Whew, I thought there was something bad about the product itself.

Licensing? Legacy support? Backward compatibility? You're arguing over the color of the grapes in the desert. Who cares? As long as ST2 keeps working, and ST3 keeps getting better, pay up and stop complaining.

<comment><USER7> Agreed i recently paid the full 70 (100 own currency). Was happy to see this post was just an empty whinge. Has st2 for 6+ months and complains he has to pay for an upgrade to st3yet is happy to pay a yearly fee. I dont understand at all.

</comment></comment><comment><USER15> Text editors are complex projects, especially when they're very extensible. As a result code cruft builds up and minor design mistakes become increasingly more painful to work around. So once the creators realize they want to take the editor in a specific direction (e.g. better syntax highlighting, better API hooks, better code completion, whatever) the only realistic route is to make a clean break from the previous version, refactor the architecture as needed and go from there.

This seems to be exactly what's happening with Sublime Text 3. So I'm sticking to ST2 until 3 reaches the point where all my packages work reliably. If that means I have to wait half a year or so that's fine with me. And if this clean break with ST2 paves the road for great versions 4, 5, 6 down the road then all the better.

For me the bottom line is that switching editors really sucks, so I'm far more concerned with the long term future of ST than I am with any individual release or package.

</comment><comment><USER16> Sheesh, you'd think ST2 was a clunky, worthless mess from all these comments. Amazing how after the announcement of ST3 the previous version is retroactively seen as broken and needing all these updates. I remember when ST2 was HN's golden child. I honestly don't remember any comments along the lines of "well, it _will_ be good someday" but rather "multicursors, minimap, it's awesome you should use it now!"

I've had a license to ST2 for a long time and was impressed with the constant updates. I remember thinking at one point, "Huh, just realized haven't seen an update for a while", but it was more idle curiosity than anything since the editor worked fine for me.

I'm trying out ST3 and am happy enough with it. Not sure if I'll upgrade when it comes time to pay, but I don't feel like a bait and switch was pulled on me.

I use OS X, so maybe the Windows or Linux versions are buggy? I can't just chalk up all the complaints to entitlement, but at the same time my experience with the editor has been so smooth I don't understand the issues others have been having.

</comment><comment><USER17> I am not an opensource zealot, but there are several kinds of non-opensource software that I try to avoid using for my work (for entertainment is different):

1\. My production OS. 2\. My language of choice (runtime environment, compiler etc.) 3\. My development environment - editor, debugger etc.

Not sticking to this rule is asking for trouble. Anyone ever seen a whole team switch from Visual Studio 2008 to 2010? Enjoy the show and don't forget to bring beer and popcorn...

<comment><USER18> Good rules to live by, though it is possible to be overly cautious. You may (or may not) find that the improvements that Sublime Text brings to your productivity are worth handing over a little bit of control.

In reality though, whether it's closed-source or not tends to be irrelevant - the Gnome (3) project is a good example of what can happen when an entire project changes its mind on how things can be done, to the dismay of its users.

<comment><USER17> Yeah, but the source of GNOME 2 is there, and the people who are not happy with ver.3 created several forks. They may or may not be of better quality, but they are there and if on wants to continue living in GNOME 2, (s)he can do so. The situation is not exactly the same with Sublime Text... it is completely at the mercy of its creator...

</comment></comment></comment><comment><USER19> I was unpleasantly surprised by this news as well. I had noticed the relative inactivity of updates on st2 for a while. I probably won't buy 3 because I have zero confidence that the same thing won't happen in a year with st3. Maybe if the plugin ecosystem was close to parity with either a full featured ide or emacs. But neither of those are true :(

</comment><comment><USER20> > _Just give us incremental updates and charge a yearly fee._

Hahahahaha... why do I get a feeling that this guy would've called this a "dick move" too if ST dev did in fact do as he suggested? After all, he _paid_ for the damn software, why should he be paying again some ridiculous annual fee to have this PoS collection of bits fixed over and over again. By the way, isn't it suspicious that fixes never stop. It must be to keep everyone hooked up on the maintenance licensing. Just give us _our_ incremental updates, period.

You get the picture. Once a whiner, always a whiner.

<comment><USER21> Have you ever heard the term "straw man argument?"

<comment><USER20> Have you heard of any non-enterprise software that charges annual fee for an access to the updates?

<comment><USER22> All of the JetBrains products.

<comment><USER20> Right. Any others?

Point being that this is an unconventional fee model with very little real- world adoption, _except_ for the enterprise market, where it's a norm. So trying to use it outside of that niche is risky. For every person who says that they would pay for the maintenance, there will be a dozen who will be completely pissed by it and won't hesitate to trash the product.

</comment></comment></comment></comment></comment><comment><USER23> The big changes in ST3 aren't primarily user facing. Yes, there are some useful new features, but the reason that this is ST3 versus ST2.1 is because of the API changes.

Sublime Text X, which became ST2, started almost 3 years ago. Back then the API used Python 2.6, I imagine largely because that was the stable 2.x branch. 3.x was still bleeding edge, and not built into OS X.

Over time as more developers learned about Sublime Text, the plugin community exploded. Now there were some warts from the very beginning. On Windows, Python 2.x can't import from paths that contain non-ASCII characters. To get around this, Jon had to implement some hacks to get it all to work consistently.

As the plugin community has grown so much, we've found lots of edge cases and run into issues with developing against an aging version of Python. At this point, Python 2.6 is EOL in 7 months. It strikes me that it is a hard, but important choice to break backwards compatibility to fix a number of core issues in ST, but also to jump to a modern version of Python.

Python 3.3 came out just 5 months ago. Jon has rewritten the python bindings and restructured the way packages are imported to allow for importing across plugins. Luckily it isn't that hard to write Python that runs on 2.6 and 3.3, especially with 3.3 adding back in support for u"" strings.

So yes, it is going to continue to be a little while before the plugin community has finished all of the work porting plugins to ST3. There is a list of what already works at [https://github.com/wbond/sublime_package_control/wiki/Sublim...](https://github.com/wbond/sublime_package_control/wiki/Sublime- Text-3-Compatible-Packages). Also, Package Control is fully functional with ST3 now. The last remaining piece before the PC 2.0 release is taking this opportunity to fix some issues with the channel/repo/package structure of Package Control.

That said, this break is positioning Jon and the community to continue to build great stuff that is really useful. So yeah, it kinda sucks, but I have a strong sense users of ST will be much better off in the near future.

</comment><comment><USER24> Been developing Sublime Text (1 through 2) for about 4, 5 years. In all the time, free updates. After 5 years, switches to a paid upgrade. Is met with this sentiment.

Am I the only one who thinks this is crazy?

By the way, most people are saying that he didn't add all that much functionality to ST3 (and complained about it), now the OP is complaining because he "disappeared for half a year to work on the new version". So some people are angry that he didn't add functionality and charged money, some that he added functionality, but charged for it, but everyone is sure to point out that it's not about the money.

</comment><comment><USER25> I looked at the 3 feature set, and concluded I don't need it. I'm very happy with ST2 and all the plugins that work with it today.

I have to get s$&#t done every day. I don't need to be upgrading alpha/beta stuff and then waste all day trying to fix broken stuff that used to work. I'm not sure why upgrading to ST3 makes any sense today, unless you a) don't have to get s#*%t done b) are a plugin developer and want to port over to the new editor

<comment><USER14> Sysadmins get this. You want a service to remain exactly the same for your 4 year deployment and work the whole time. You don't want updates.

I feel the same for my day-to-day work. It better work, it better not change much, and I better like it. ST2 fulfills all those needs, and I expect no updates. The OP may not understand that philosophy, but he should respect it.

<comment><USER26> It's interesting that this is the same mindset as non-technical consumers. They don't want anything to change, ever, because it breaks their workflow.

I suppose there's a tendency for some to be on the bleeding edge. I suspect everyone has to find their own middle ground. There are areas where we prefer the latest and greatest, and then there are areas where we want stability.

I find that I'm fond of the bleeding edge until it starts to interfere with my work-- though it could probably be argued that it interferes with my work all the time and that I fail to notice because it's routine somehow.

<comment><USER27> > They don't want anything to change, ever, because it breaks their workflow.

I'm like that. I'm willing to change, but there needs to be a compelling reason.

I think of 'my computer' the same way I do my work area.

If my phone is over -there- one day and the next day it's over _here_ .. it's distracting. I spend all day reaching out with the wrong hand when the phone rings.

</comment></comment></comment></comment><comment><USER28> Has anyone actually encountered an issue with version 2 that would really piss them off that it's not fixed? I rarely encounter problems, and when I do, a quick restart get's everything back to normal. I find myself doing this far less than with other systems (vim, TextMate). Maybe I'm just not a massive plugin user.

My sense is that this writer is just really picky, and somehow equates constant updates with quality.

</comment><comment><USER29> ST2's first public alpha release was in January 2011 and there was an update about every two weeks.

Six months later, July 2011, the first Beta was released and Jon Skinner said there would be monthly updates now that ST2 was in beta.

True to his word, there's been about an update a month and then in June 2012 the Beta label was dropped. After that, there were a few ST2 updates, mostly fixes, until September 2012. So by no means is ST2 an "unfinished" piece of software. And while I'm sure it has many bugs, that's practically a truism for any piece of complicated software. I personally have not actually noticed any. I wonder if the author has.

My takeaway from all this is that Jon Skinner delivers.

If you want a yearly subscription, well, that's really no different than what Jon Skinner is providing, except that instead of paying once a year, you're paying once every TWO years, if the past is any indication of the future.

Finally, complaining about plugins breaking is like complaining about the Lightning connector on new iPhones. There's a strong list of good reasons to make backward-incompatible changes to the plugin system.

</comment><comment><USER30> I was expecting to read a criticism of the new version. (I haven't used it myself yet, and I haven't bought ST2 either—I keep using the trial version.)

Instead what I got from this post is that the bugs are being rapidly fixed, and it is a major update for a reason, because of the breaking changes. Well, that's cool.

It reminds me of people bitching that iOS 6 runs slow on iPhone 3Gs. I don't see how abandoning an old version to make something awesome and charge for it is a "dick move". You paid for it, and you decide whether to pay for the update.

I wouldn't be suprised to learn it was hard to backport some fixes because of the breaking changes, and I don't see anything immoral in deciding it just isn't worth the effort.

<comment><USER31> I think the point is that the bugs are being fixed in a new paid release, and not in the release many people paid for.

The only thing, imo, that this does is harm the relationship between people developing software who would like to be paid for it and their customers. If you charge people money for something it behooves you to keep releasing fixes and point releases for it regularly, not to disappear and release a paid upgrade with the things fixed that should be part of the current release. I don't know of any legal or moral obligation to do it, but it certainly is a good business move for the ecosystem.

</comment></comment><comment><USER32> if the economics of building tools for developers improves, we will see better tools - that means some way of coming up with recurring revenues that is fair to both the developer and the users. Some previous discussion about this here - <http://news.ycombinator.com/item?id=5266034>

</comment><comment><AUTHOR> 100% ACK. Software costs money, I have no problems with that, but the "switch" from ST2 to ST3 was less than graceful.

<comment><USER33> Did you expect Sublime Text X to work perfectly when it was first released, too?

<comment><AUTHOR> No, and again, that's not the point the author made.

> I'm more than happy to pay good money for good tools. For something as > important as my code editor, I'd even pay a yearly subscription fee if it > means the developer can keep churning out updates.

and

> I can totally live with an unfinished and slightly buggy piece of software > being labelled as "final" and released as Sublime Text 2.0, but going off > the grid for almost half a year and then completely abandoning that version > branch, putting all efforts into 3.0 – a paid update – instead, is simply a > dick move.

Key points here: "I'd even pay a yearly subscription fee", "going off the grid".

</comment></comment></comment><comment><USER34> I totally agree with this:

> _Seriously – I don't care about "2.0" or "3.0". Just give us incremental > updates and charge a yearly fee. Everybody wins._

I've built a web-based text editor which I sell for a yearly subscription. What I like about this pricing is that the contract is clear:

1\. The user pays a fee and expects 1 year of support

2\. Developer gets paid and must support the software for 1 year

If I get bored, I can stop taking orders and shut down after 1 year.

</comment><comment><USER35> I'm happy with Sublime Text 2.

<comment><USER36> Totally. Works without breaking, packages do all I need to.

I see no reason to upgrade to ST3 for the time being, 2 seems to do all I need, and I've never been an early adopter, mainly to avoid compatibility issues.

</comment></comment><comment><USER37> I felt the same way with the author.

When Sublime Text 2 was in development, the developer gets to keep working on then somewhat buggy editor because of early adopters. It was the first editor I bought because I truly believe its potential. At the time the developer made update and bug fix almost every month.

Then once it was released, only one bug fix released was made and then no update or news were made until Sublime Text 3 was announced. And don't tell me there's absolutely nothing that can be updated/fixed in Sublime Text 2.

Basically the developer of Sublime Text is telling me I'm a sucker for supporting him during development, the time others software developer would still have to eat on their own budget.

May be I'll buy Sublime Text 3 in the future if it still has all the key feature I love. But this time I'm not gonna be an early adopter because that's how the developer has shown me how I should treat him.

</comment><comment><USER38> The only thing that bothers me about ST development is that Jon doesn't give much feedback to the community about his plans for ST, or about "ST philosophy", etc. In that sense I miss feeling "he hears" us.

But that works for him: he probably wants to avoid making any promises.

</comment><comment><USER39> I get that once you buy a product you have to have a reasonable expectation of use out of it, but what you're paying for is _that_ tool on _that_ day. You're not paying for ensured long term updates, and we don't own the developers time. If he wants to move his focus onto a new major release with an upgrade cost then so be it, if you've gotten a year of use out of Sublime for $50 or however much it is you've had an exceedingly good product for exceedingly cheap. ST3 is in ridiculously early beta, if it's not working right _right now_ then don't use it, it's not like ST2 has died or has had features removed.

<comment><USER37> > but what you're paying for is that tool on that day.

Well, not exactly with Kick Starter project. And, I believe, most people bought Sublime Text 2 when it was in beta, giving funds to develop the tool to what it was today.

> ST3 is in ridiculously early beta, if it's not working right right now then > don't use it

Yep, I was a sucker once for buying ST2 when it was in beta, helping the developer to make a living developing it full-time. This time I'll just treat him how he wanted to be treated, like other software product, let him deal with his financial problem himself until he release the software.

<comment><USER39> Actually you weren't, you were actively supporting the development and helping ST2 get to where it is. Kudos to you. However, it's beta software and if it doesn't work it's _beta_ software, you've got the opportunity to say things aren't working or features aren't right. You're not only investing in the development of the product, you're also getting the chance to be involved in making it the product you want.

Needing money to pay bills is a financial problem we _all_ have as well. He's not doing this to be the popular guy, he's doing it to make a product he loves and keep the lights on.

</comment></comment></comment><comment><USER40> I came in here to say just use Vim, the fact that the author thinks it might not be productive shows he didn't really put too much effort into learning it.

Then I read the footer about the note to vim suggesters, and I'm just saying this anyway.

</comment><comment><USER41> Very few editors have impressed me as much as ST2 has. I have no issue in him bringing out a new version and as far as I can tell ST2 has been feature complete, never causing me any issues. I don't begrudge the guy wanting hold off fixing non-critical 'bugs' that are not present in the next version of a product due to the new implementation. There just is no point.

The only issue I have had is with a certain plugins, but most of the plugins can be forked, fixed and pulled.

My only concern is the move to Python 3.3 which will break a lot of plugins. Again fork and fix if you can or stick with ST2 until the plugin is fixed.

</comment><comment><USER42> > Just give us incremental updates

Incremental change tends to suck all the joy of developing when you know something could be done better by a refactor but you still have to work incrementally to not have any breaks and delays and keep the customers satisfied. If you really do something because you love doing it and not just for the money, you must say "fuck the customers" once in a while - I'd prefer such a guy working on the software I use because in the end it just means he _cares_ about that piece of software, so regardless of the bumpy ride, things will be for the better further on...

</comment><comment><USER43> Curious, so now it's Sublime's turn to take a battering over version development?

<http://news.ycombinator.com/item?id=3045269>

</comment><comment><USER44> Eh, it's the old "I paid for your product X and I implicitly expected to get Y as well" problem again.

We've had those before, you see, and the point is - unless something's explicitly promised, calling it a dick move when you don't get it is funny. I've been funny like that myself a few times before, but in the end I learned the lesson:

You only get what you are explicitly promised, and if you don't want to be treated like that, then don't pay for the product and use free alternatives.

Also, stop disparaging tools you don't use.

</comment><comment><USER45> Interesting post. ST2 has a lot of good ideas but need to be a lot more polished. When you compare ST2 to Textmate, you really feel the difference in features but also unfortunately in global feeling about the app. The devil is in the details.

I agree ST3 breaking retro compatibility won't help. It seems more a personal development preference than real features/stability improvement. The only major diff is the shift to python 3 and it's still controversial in the python community.

</comment><comment><USER46> Why is this front page news? And what is the "stunt," exactly?

I am truly enjoying ST3. I have been using ST2 or ST3 for about 60-70 hours per week for eight-ish months. I find ST3 significantly faster than ST2, and I have been surprised at how few bugs I've encountered. The new features, such as the global symbol and definition finders, work very well.

The program is not that expensive. The upgrade is not that expensive. And no one can expect endless support for a particular version of a product.

</comment><comment><USER47> I've used ST2 for a year now and have never experienced a single bug. He's fixed any major bugs within a few days and the initial release he was pretty much working 24/7 to get minor fixes out the door (just look at the release log for 2.x).

This post just sounds like someone is cranky they are being forced to pay for the newest and greatest software. Just look at VS, every single new release costs more money.

And when did he say he wasn't supporting ST2 anymore? lol

</comment><comment><USER48> What about Textmate? I really havent heard a lot about it after releasing the source. Looking at the repository it seems there is active development but I kind of expected a bit more. The last blog post for example is from october. Its a very good foundation for building one of the most important tools for developers yet no big and active community gathered around it.

</comment><comment><USER49> Come on, not everything is for free.

A lot of you prefer ST over all the free or cheaper alternatives out there. At least I do, and that's why I can live with the fact of paying somebody 30 bucks to continue the development (for another year, or two?) of an awesome piece of software that I use daily.

</comment><comment><USER50> I always thought plugin incompatibility was really more about moving from python 2.7.x to 3.x. This is a fairly huge problem that the python community is just starting to get traction on and I am glad to see ST taking the more difficult but ultimately correct upgrade path.

</comment><comment><USER51> I've never been a fan of Sublime Text because it doesn't feel like a native Mac app. They lost me when they made the preferences command open a window to edit a settings file. Both BBEdit (still my favorite) and TextMate feel much more native & user friendly.

</comment><comment><USER52> > (Dear "just use vim lol" trolls – and I know you're reading this: I'll > switch to vim the very second I truly believe it will make me more > productive. Promise!)

I'd be interested in why he believes this isn't currently the case.

<comment><USER53> I'm not the author, but for me, I don't like keyboard shortcuts outside of the obvious (cut, paste, and the like - the stuff that's the same on every app). And I do like to use a mouse (I know - the horror), so I find vim's UI distracting.

</comment></comment><comment><USER54> Or, a good argument for FLOSS <https://en.wikipedia.org/wiki/Free_and_open_source_software>

<comment><USER26> This is my main issue with ST2. It's missing various features that I consider to be almost key for my workflow.

I'm stuck running code from the terminal because of the limitations of build systems in ST2. There's a nasty and supposedly un-fixable bug on Linux where the menu bar is always visible. When I install on any distro that isn't using a popular desktop environment, anything meant to open in browser doesn't work until I make some changes. The folder names in config are all uppercase and include spaces.

I'd love to fix these things. I can't, so I expect to find myself on vim in the near future.

</comment></comment><comment><USER55> Jetbrains is doing the yearly fee model. It works pretty well.

</comment><comment><USER56> I've started a migration to vim and although I still use ST2 for work, it's just a matter of weeks before I completely switch over.

</comment><comment><USER57> ST2 works just fine. I have not hit any major bugs since latest betas. It's worth the money, still functional. What is the problem?

</comment><comment><USER58> I have switched to ST3 from ST2 and all of the plugins that I use work fine.

</comment><comment><USER59> this blog post feels contradicting to me. if you paid for sublime 2 - you get your incremental updates as sublime 3. if you haven't paid for sublime 2 you don't have any right to demand updates for it.

</comment><comment><USER60> Blog posts like these are interesting but do they really belong on Hacker News? The author's complaints are half-hearted and even contradictory (beta software doesn't have proper upgrade path for prior stable versions? how is that surprising?).

Furthermore the sense of entitlement is a little obscene, especially since it's clear the author knows that he paid for a license but he doesn't acknowledge that there is no SLA or any guarantee of software maintenance.

<comment><USER61> "Furthermore the sense of entitlement is a little obscene"

Really? The author's criticism is constructive says he's perfectly willing to pay a yearly subscription fee as opposed to Sublime Text's current revenue model, which is to whack you over the head for money at arbitrary intervals if you wish to stay current.

In fact, since Sublime Text's major point releases have been more than 12 months apart, he's actually stating that he's willing to give Sublime Text's author money more frequently than he does today. If that's "entitlement" then I need some more "entitled" clients.

"especially since it's clear the author knows that he paid for a license but he doesn't acknowledge that there is no SLA or any guarantee of software updates whatsoever."

This is awfully disingenuous, especially on a tech-oriented site like HN.

When programmers choose a development tool (particularly a text editor) they're investing time and/or money in not just the editor itself but the ecosystem around the editor - the plugin community, frequency of updates to the editor itself, etc.

<comment><USER62> _says he's perfectly willing to pay a yearly subscription fee_

I don't know the author at all, but such claims generally deserve skepticism: It's easy to proclaim how grandly generous one would be _if only another party did x, y and z._. We see that here, just as the same dubious claim appears in every single piracy discussion.

<comment><USER61> I don't know him and he doesn't explicitly say so in his post, but it sure sounds like he paid for ST2, which costs $70.

Rings a little truer to me than some kid in a college dorm with a cell phone full of pirated mp3s.</comment></comment></comment></comment>