Hacker Newsnew | past | comments | ask | show | jobs | submit | aufreak3's commentslogin

Thanks for the link to draftin. Looks very useful. Fwiw, the op's work seems equivalent to draftin's "Hemingway mode" .. which (if I understand it right) doesn't permit any edits at all.


Ah. Is this why the both the delete and backspace key appear to be disable in earnest?


Yes, they mention it on their landing page that the purposely disabled those to make you focus on just putting words on paper. They don't want you breaking your flow to correct a typo


Interesting experiment to forbid editing. Though the delete key doesn't work, cut-copy-paste does. Forbid that too! ... otherwise I'll be tempted to cheat :)


> Are there any other languages that allow the calling scope to specify how lower-level functions handle errors without unwinding the stack?

another possible answer - Erlang.

While the look of the condition/restart scheme may be very different, such a condition/restart protocol can be implemented as message passing with a known global "condition handler" process I think.

A "raise" function can be implemented as a message-send to the condition handler process followed by an immediate wait-for-response. The handler process may terminate the raising process, replace its value with something, etc. depending on the installed handlers.


> Are there any other languages that allow the calling scope to specify how lower-level functions handle errors without unwinding the stack?

While it isn't a mainstream language by any means, a scheme dialect called muSE [1] that I developed for writing logic for automatic music video construction supports such resumes and retries. [2]

[1] https://code.google.com/p/muvee-symbolic-expressions/

[2] https://code.google.com/p/muvee-symbolic-expressions/wiki/Ex...

(Apologies for shameless plug)

-- edit: I just saw that the clojure library "ribol" has an api design similar to muSE's in principle. A couple of design comments though -

1. The "on blah blah" is too much syntax for this. It prevents direct sharing of handlers between similar situations. Function argument pattern matching ought to be enough.

2. The retry options mechanism is somewhat limited - the options seem to apply only at the raise point itself (disclaimer: I've only had a quick glance at ribol). It is more useful to have multiple retry options at different scopes so you can partially unwind, try something, if that doesn't work unwind some more (perhaps involving cleanup), try something else, etc.

I think muSE's design is better on both these fronts.


If any of you actually need such constraint satisfaction in javascript, checkout my fd.js library [1]. You'll find einstein, sudoku and other puzzles in the tests.js file.

I also recommend a Mozart/Oz style interactive search tree explorer made by a student [2] .. built on fd.js.

[1] https://github.com/srikumarks/fd.js [2] http://minhtule.github.io/Search-Tree-Visualization/


Agree with your "slam dunk" argument. Though net neutrality seems utopian in principle, from another perspective the providers with the infrastructure seem to be simply asking for the market to decide the use of their private infrastructure than some abstract principle.

Then again, we can make the same argument about utility providers. If a private electricity provider asks for a share of the payment of the video being served using the electricity that they supply, where should this stop?

I'm beginning to think that we'll eventually end ip with a middle ground where some usages of communication infrastructure are regulated (such as emergency response) and some others are in the market.

While folks are arguing about whether such a breakage of net neutrality will be bad for consumers, are there at least any reasonable market simulations that point out good/bad out omes for each party involved, includin consumers?


I find the "premortem" way of looking at it psychologically more appealing. When asked to "think of all the dangers", I can imagine a tendency existing to bury one's head in sand and say "what danger? What risk?". We also know of "hindsight bias", and I wonder whether a premortem would be a way to exploit it rather than be a victim to it.

At least, I'm not rational enough to reason identically whether I've been primed with death or just the risk of death. So I think this would be a useful exercise for me (and those like me).


There is, for me, a peculiar connection between cameras and pc computing power (I used to work for muvee technologies). As computing power grows, I've been quite frustrated with how he extra tends to get eaten up by a higher qualiy video format. 320x240 was enough at one point and 300mhz machines could deal with these well. Then came DV at 720x576@30fps, needing faster machines. We have HD today at 1920x1080. Each step has so far been 4x bump in resolution. We're now going to get hit by another 2x bump - 4k video, and then perhaps a bump to the frame rat to 60fps (or at least 48fps).

Today's "normal pc" compute power is inadequate for 4k video ... Unless you plug in a decent gpu and your machine includes a decent bandwidth to that gpu.

Given that parents have always wanted to film thir kids at the highest quality they can afford, where do you thnk this trend might take us industry wise?

Edit: if i cannot type out this post error free, mobiles phons suck as PC replacements ;)


A meta comment - I'm reading a lot of the "use the right tool for the job and stop arguing" statement in language/framework/system/machine comparison threads these days.

I find the "right tool for the job" to be a total conversation stopper. It stops the bikeshedding type arguments, true, but it also stops potentially illuminating comparisons. Can we, as a community, agree to stop bringing it up in comparison arguments?

Imagine a new programming language and system being presented in an article. It is healthy and useful for the article to say "We designed system X so it is easier to express Y kind of programs. A, B, C are the complications encountered when doing the same with systems I, J, K." rather than "We designed system X to express Y kind of programs. We like it, but if you don't, use the right tool for your job."

While many of us are polyglots, we do seek to minimize the number of parts when building a system, so such comparisons are often meaningful at some level.


Agreed.

While we're at it, "the right tool for the job" always struck me as a bad analogy. Nobody would question a carpenter's tool choices because the only thing that affects others is the quality of the final result (e.g. how the building will stand up to stress).

But using a software language, framework, library, database, OS, or other platform makes it inextricable from the the rest of the product when judging quality. In some cases, you can make a black box argument like "if a user is unable to observe any poor qualities, then the product must be of high quality"; but that only really applies when you are the sole developer and always will be. For larger projects, there are others involved, and they will be affected if the building blocks are poor.

Granted, that doesn't mean that all discussions about platforms are productive, but it means there is some room for illumination and progress.


Additionally, for many people, the "right tool" is the language they know best, even if it's not 100% the best at any given task, because it's better to get some working code rather than stop, learn a new language, build something with it that sucks, redo it, and so on.

There are exceptions to this of course, sometimes something really is inadequate, but for many people a general-purpose language is going to be "good enough". I'm an Erlang fan, but I do think this sometimes hurts its adoption.


I agree. The "right tool for the job" argument is rarely useful in computing, because computers and general purpose programming languages are basically toolboxes and "the job" is rarely one thing.


I used to frequent the bay area around 2000 when I worked for a Singapore based startup who setup their HQ there. As I didnt have a driving license, I used to take public buses from San Mateo to Burlingame, and make train trips to SF.

I was given the standard cautionary rules by many, but I have to say that in all that commuting, I never felt threatened even once. Normal folks commuted by bus too. However, there were also quite a few who we were "challenged" in various ways, but still had regular jobs at cafes and such. Since my commute schedule was fixed, I became familiar with them and realized that though there wasn't much conversation going on, the regulars were all familiar with each other.

On one occasion, one guy sat next to me and poured his heart out about how his girl friend ditched him years ago and how upset he's been over it for many years. Then, when a stop came, he wordlessly walked out the door and held it open for one of the regulars. This lady had her eyes to the floor the whole time and after she'd got down, said "bye" to him. He returned a "take care", came back to his seat and resumed his story with me.

I admit I was somewhat uneasy on the bus commutes initially, but this incident totally changed me. Actually, I'd never seen this quality of spontaneous kindness among "normal" folks during my stay there .. and was humbled greatly myself.

I always recall this incident (and all those commutes) fondly. I now think most "normal" city folks who curse each other on every misstep, cant tolerate a couple of seconds delay on the road, who never seem to get a thought to extend themselves out of their pitifully small and limited bodies to someone else; as the folks who are "challenged".

So, coming back on topic, at least start a conversation with the regulars on your commutes.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: