Make HTTP requests from your browser - <AUTHOR> http://hurl.it/? <comment><USER2> Hurl.it was originally created by Chris Wanstranth and Leah Culver at the 2009 Rails Rumble. We (Twilio) just took over maintenance of the project because it has some obvious utility when testing URL callbacks and webhooks. We want to make some improvements to it, so if you have any ideas or suggestions, I'd love to hear them. You can post them here or create an issue on the current home of the project on Github: <https://github.com/twilio/hurl>

And you can follow @hurlit for updates

<comment><USER3> It would be great if instead of a website you port it to a browser plug-in. It would achieve several things:

* Better security for the user (the paranoid in me do not want to send my credentials through a third party site).

* It could use the credentials stored in the browser (cookies, basic-auth, etc).

* The IP of the requester would not be hidden, allowing IP filtering for development servers.

* It could run on a PC that is not connected to internet.

<comment><USER4> For chrome, I like using the "REST Console" extension ([https://chrome.google.com/webstore/detail/cokgbflfommojglbmb...](https://chrome.google.com/webstore/detail/cokgbflfommojglbmbpenpphppikmonn)), which I believe has all of the benefits you listed. The "credentials stored in a browser" thing is the main reason for me to be using it.

</comment></comment></comment><comment><USER5> > _Make HTTP requests from your browser_

Ironically, this is exactly what the browser is for.

<comment><USER6> Yes, but "Make HTTP requests with custom action, headers & body from your browser" isn't as snappy.

<comment><USER7> If you just put the word "custom" in there I reckon it would make a big difference ;)

</comment></comment></comment><comment><USER8> Hurl <http://victim.org/index.php?a=;DROP> DATABASE users --

What I want to say is that services like this have a security flaw by design which allows random people to execute strange statements in the name of Hurl.

There are certainly other ways to execute malicious HTTP requests (for example, let the Google Bot do it), but still, it should be pointed out.

<comment><USER9> On mobile so i can't check myself: does The BROWSER makes the request by some clever way? Or simple server side script does it?

<comment><USER10> server side:

<http://checkip.dyndns.com/> -> [http://hurl.it/hurls/6fb24ac23d7c64a7edbcfceecd77c3d02586416...](http://hurl.it/hurls/6fb24ac23d7c64a7edbcfceecd77c3d02586416b/c2ec392ee0dee0ec18cb466de547603fb7531e53)

127.0.0.1 -> [http://hurl.it/hurls/7ad9448295a320acfe11160f0a8986fa591329f...](http://hurl.it/hurls/7ad9448295a320acfe11160f0a8986fa591329f1/625380ead1fb24f897ca4ffcc511f0d76761b7ae)

</comment></comment></comment><comment><USER11> If you're on OSX, take a look on <http://ditchnet.org/httpclient/>

</comment><comment><USER12> Very useful - to send a curl to someone - to explain why a response is incorrect or provide context about a service response... Sure you could use curl + gist - but there is something I nicer here - for example on my iPhone I could use hurl.it to explain a bad response via email without having to drop into a shell... Great service thanks!

</comment><comment><USER13> So my browser will send an HTTP request to this website which in turn sends an HTTP request? We need to go deeper…

<comment><USER14> What I want is a website that can now render that http response into a fully formed webpage and display that in my browser.

<comment><USER15> And use that newly generated website to make another http request!

</comment></comment></comment><comment><USER16> I would pay for a better hurl.it (common templates, saved responses, etc, etc...).

It's been an absolutely indispensable tools for debugging (crazy) API's while developing <https://zapier.com>.

<comment><USER17> Have you considered using something like Charles Proxy[1] instead?

[1]: <http://www.charlesproxy.com/>

<comment><USER18> There is some FOSS alternative if I recall correctly but I forgot the name. I think it was written in Java.

<comment><USER19> The Cocoa-specific app looks interesting, but I think the Java-based alternative you were referencing was Paros[1]?

[1]<http://www.parosproxy.org/download.shtml>

</comment></comment></comment></comment><comment><USER20> See also: XHR Poster (Chrome extension) [1]

I couldn't live without it.

[1] <http://goo.gl/UFSdZ>

</comment><comment><USER21> Older and better (a point of opinion):

<http://www.rexswain.com/httpview.html>

Since October 1999, actually.

</comment><comment><USER22> This is useful if you are on systems where curl is not easily available. Helped a few times!

</comment><comment><USER23> Interesting idea, could be very useful. One thing with this kind of service is always how they handle validation of data from the 3rd party service (eg, in headers). So as an example [http://hurl.it/hurls/db870b49c7203ec9acb47ba7769c126146b1768...](http://hurl.it/hurls/db870b49c7203ec9acb47ba7769c126146b17688/7a2392760777638701222299a58c3d9b461bf403) executes javascript in the context of their site... (just a pop-up box with hi, but could be any script..)

<comment><USER2> A pull request or issue created on <https://github.com/twilio/hurl> would be fantastic :)

<comment><USER24> Done ;-)

<https://github.com/twilio/hurl/pull/9>

</comment></comment></comment><comment><USER25> I've used this extensively before; brilliant little service, but I've recently started using the "REST Console" Chrome extension, which is bloody brilliant:

[https://chrome.google.com/webstore/detail/cokgbflfommojglbmb...](https://chrome.google.com/webstore/detail/cokgbflfommojglbmbpenpphppikmonn)

</comment><comment><USER26> That's kind of handy for looking to see where irritating shortened links are redirecting - e.g. t.co or bit.ly

<comment><USER27> <http://tools.pingdom.com/fpt/> gives you an image too :)

</comment></comment><comment><USER28> Something fun to point it at: <http://httpong.com>

Particularly <http://httpong.com/response> but the other parts can show you what hurl.it is sending.

<comment><USER29> Or <http://httpbin.org>

</comment></comment><comment><USER30> Do you have some limits in place, or can I just expect it to proxy all of my web traffic when I want it to (which I can do with one JS statement right on this page)? Magic WebKit Inspector is going to ruin your hosting bill.

</comment><comment><USER31> Minor bug-report: when you keep clicking on the 'Send' button continuously it will occasionally show the JSON response in-browser instead of updating the UI.

And no, I'm not crazy. I was trying to test GitHub's rate-limiting. ;)

<comment><USER2> Thanks for the report, can you put this into the issues list on <https://github.com/twilio/hurl>?

</comment></comment><comment><USER32> Somewhat similar but more useful for debugging "HTTP caching" by Mark Nottingham: redbot (<http://redbot.org/>)

</comment><comment><USER33> Yeah... thats the funny thing about web browsers... the tend to do that

</comment><comment><USER6> Useful service, but this has been around for many months now..

</comment><comment><USER34> Homer: They have HTTP in browsers now?

</comment><comment><USER35> Sooo, web based curl? Amazing! #not

<comment><USER36> I take it you've never had "What's curl?" as a response when trying to show someone an API is working fine?

<comment><USER35> Well, maybe you're right. I assumed that people programming against REST API's know basic tools like curl, but apparently I got that wrong.

<comment><USER36> Yep. I've encountered plenty of cargo-cult programmers who know how to copy- paste code examples but who are SOL when it comes to troubleshooting.</comment></comment></comment></comment>


Government moving to make Airbnb illegal in Mexico City - <AUTHOR> https://mexiconewsdaily.com/news/morena-lawmaker-wants-to-prohibit-airbnb-in-mexico-city/ <comment><AUTHOR> Feels like a kick 'em while they're down move to me, and would further punish landlords of expensive rentals.

</comment><comment><USER2> protectionism will never go away</comment>


Amazon's Plagiarism Problem - <AUTHOR> http://www.fastcompany.com/1807211/amazons-plagiarism-problem

<comment><USER2> Plagiarizing stories from Literotica could be stopped trivially - diff the stories against the database. Amazon doesn't do it, so they must not mind; I'd guess since they're making money too.</comment>


SRL – Simple Regex Language - <AUTHOR> https://simple-regex.com/ <comment><USER2> Regex combinators are a much better solution to that problem, for which I gave various arguments here[1]:

\- You don't need to remember which regex syntax the library is using. Is it using the emacs one ? The perl one ? The javascript one ? that new "real language" one ?

\- It's "self documenting". Your combinators are just functions, so you just expose them and give them type signatures, and the usual documentation/autocompletion/whatevertooling works.

\- It composes better. You don't have to mash string together to compose your regex, you can name intermediary regexs with normal variables, etc.

\- Related to the point above: No string quoting hell.

\- You stay in your home language. No sublanguage involved, just function calls.

\- Capturing is much cleaner. You don't need to conflate "parenthesis for capture" and "parenthesis for grouping" (since you can use the host's languages parens).

[1]: [https://news.ycombinator.com/item?id=12293687](https://news.ycombinator.com/item?id=12293687)

<comment><USER3> Personally, I use regexes _all the time_. Every day. I'm constantly typing regexes into emacs and vim to do text manipulation. Sometimes a quick :%s/\\(foo\|bar\\)d/baz\1/g, other times a :%v/function /d. I can't imagine what it would be like if I had to write out "begin with either of (number, letter, ..." I'd never get anything done.

For programming it could be nice. It's an interesting idea. But I've found that good highlighting solves most of the problem. When I type "\\\\(" into emacs, it immediately highlights that \\\\( in a different color, along with \\\| and \\\\). That way you can differentiate instantly between capture groups vs matching literal parens. Here's an example: [http://i.imgur.com/b417O2o.png](http://i.imgur.com/b417O2o.png) That small snippet would become way, way longer if you use a regex combinator. Maybe good, maybe bad, but it's hard to read a lot of code.

Yeah, it's ugly. And there are a bazillion small variations between regex engines. But for raw productivity, it seems hard to beat.

<comment><USER2> I think you misunderstand what "regex combinators" means. In particular, SRL is _not_ regex combinators. TAForObvReasons in another answer posted this[1] that would explain it to you.

[1]: [https://groups.csail.mit.edu/mac/users/gjs/6.945/psets/ps01/...](https://groups.csail.mit.edu/mac/users/gjs/6.945/psets/ps01/..).

About your example ... on the contrary, it would become way _cleaner_ with regex combinators. The string manipulation would be replaced with proper composition and the escaping madness would disappear. For example

       (concat foo "\\|" bar "\||" baz)

becomes

      (alt foo bar baz)

You seem to be familiar with elisp. The lisp family is particularly adapted to combinators approach, please read the link above. :)

<comment><USER3> If you like regex combinators, check out the elisp "rx" library. You can end up writing code sort of similar to the article's, with less emphasis on using english grammar: [http://i.imgur.com/iD34MqC.png](http://i.imgur.com/iD34MqC.png)

Combinators are very convenient and precise, but the tradeoff is that the code is longer. And I have to look up what to write every time I want to write one. But that's a personal bias.

Thanks for the reference. I'll study it.

EDIT: One of the good ideas in SRL is "if not followed by". There are too many [not]ahead-[not]behind combinations to warrant special syntax for each of them. I wonder if it could be streamlined, though?

</comment></comment></comment></comment><comment><USER4> Barely touch regexes these days because for last few years I've been using Rebol / Red _parse_ more and more.

Here's a _translation_ of the first SRL example in the parse dialect:

      [
          some [number | letter | symbol]
          "@"
          some [number | letter | "-" ]
          some ["." copy tld some [number | letter | "-" ]]
          if (parse tld [letter some letter])
      ]

And here's a full matching example:

      number: charset "0123456789"
      letter: charset [#"a" - #"z"]
      symbol: charset "._%+-"

      s: {Message me at firstname.lastname@example.com. Business email: email@example.com}

      parse s [
        any [
            copy local some [number | letter | symbol]
            "@"
            copy domain [
                some [number | letter | "-" ]
                some ["." copy tld some [number | letter | "-" ]]
            ]
            if (parse tld [letter some letter])
            (print ["local:" local "domain:" domain])

            | skip
        ]
      ]

Some parse links:

* [http://blog.hostilefork.com/why-rebol-red-parse-cool/](http://blog.hostilefork.com/why-rebol-red-parse-cool/)

* [https://en.wikibooks.org/wiki/REBOL_Programming/Language_Fea...](https://en.wikibooks.org/wiki/REBOL_Programming/Language_Features/Parse)

* [http://www.codeconscious.com/rebol/parse-tutorial.html](http://www.codeconscious.com/rebol/parse-tutorial.html)

* [http://www.red-lang.org/2013/11/041-introducing-parse.html](http://www.red-lang.org/2013/11/041-introducing-parse.html)

<comment><USER5> I don't mind regular expressions myself, but this does look quite nice. Any idea if this has been implemented for anything other than Rebol (which I'd never heard of)?

<comment><USER6> There was a Parse-inspired project for JavaScript, but I'm not sure to what extent it was developed. There was also a Parse implementation in Topaz[1] (which itself is implemented in JavaScript) but is as of now unfinished.

It'd be difficult to implement as tightly in another language that doesn't have Rebol's (or a somewhat Lisp-like) free-form code-is-data/data-is-code[2] approach. Rebol and its Parse dialect share the same vocabulary and block structure that amongst other things: makes it easy to insert progress- dependent Rebol snippets within Parse; build Parse blocks dynamically (mid- Parse if needed!); build Rebol code from parsed data; develop complex grammar rules very similar to EBNF[3]. The article linked above[4] (and now linked again below :) does a good job of fleshing out these ideas and why it may remain a unique feature for some time.

[1]: [http://reb4.me/tt](http://reb4.me/tt)

[2]: [http://rebol.info/rebolsteps.html](http://rebol.info/rebolsteps.html)

[3]: [http://codereview.stackexchange.com/q/87716/46291](http://codereview.stackexchange.com/q/87716/46291)

[4]: [http://blog.hostilefork.com/why-rebol-red-parse- cool/](http://blog.hostilefork.com/why-rebol-red-parse-cool/)

</comment></comment></comment><comment><USER7> I like how the marquee example is of how to do something you shouldn't be trying to do [1] anyway.

In more general terms, if a regex is complicated enough that something like this seems to make sense, the problem is that your regex is too complicated, and you should fix that.

[1] [https://news.ycombinator.com/item?id=12312574](https://news.ycombinator.com/item?id=12312574)

<comment><USER8> It's my observation that a lot of problems people have with regex is that they haven't learned tips like "Is regex the right way to do this?", "Can I simplify this regex because I trust the input?" and "What do I really need the regex to do?".

To validate a user-supplied email address, you arguably just need something along the lines of ^.@.\\..$ to help avoid whitespace and forgetting the @ sign. In a lot of cases, if the email address is wrong, all that happens is either a) user login fails or b) user registration fails. Hence there's no need for unreadably-complex regex to validate.

<comment><USER7> > To validate a user-supplied email address, you arguably just need...

See the earlier discussion. It's not nearly so simple.

<comment><USER9> I think what he's trying to say is the best test for a valid email is to send them an email with a confirmation URL for the user to click.

</comment></comment></comment></comment><comment><USER10> Consider changing "either of" to "any of".

The word "either" implies only two choices, making your opening example confusing when the first "either of" was really picking from three possibilities.

<comment><USER11> Also 'begin' is vague - it could mean start of word, here it means start of line. Make it 'start of line'

I like the general approach, although the 2010-era BDD fake natural language is a turn off.

<comment><USER12> A really good shorthand for "start of line" is "^"

;o)

<comment><USER11> A really good shorthand for "yes, however it's not the most discoverable thing in the world" is "& ^ ( ^ ^ % & ^"

<comment><USER12> Is it less discoverable than the proposed alternative though?

In both cases one looks up the documentation, in one I find that search for the line start requires a regex with "^" and in the other I find something like "begin with" of Simple Regex Language (SRL). I still need to read (or test) to find what "begin with" means and I still couldn't guess it - why not "start with", "open with", "first character", or a myriad of other possible options.

Whatever suits the user I suppose.

<comment><USER11> Since code is read more than it is written, how well do you think a colleague without previous knowledge of regexs could understand '^' vs 'start of line'?

</comment></comment></comment></comment></comment></comment><comment><USER13> I'm not absolutely sure this isn't a joke that got out-of-hand. This is the COBOL of regular expressions. :)

Whilst the conventional regular expression syntax is arguably overly compact, this is just too far in the opposite direction!

Something more PEG-like, or even Perl 6 regex-like, would make more more readable regular expressions whilst not completely throwing out everything we think things mean. Hell, even /x -- ignore whitespace and comments -- can make things much clearer:

        / ^
          [0-9a-z._%+-]+           # The local part. Mailbox/user name. Can't contain ~, amongst other valid characters.
          \@
          [0-9a-z.-]+ \. [a-z]{2,} # The domain name. We've decided a TLD can never contain a digit, apparently.
        $ /x

Tangentally, there's no point validating email addresses with anything more complicated than /@/. If people want to enter an email address that doesn't work, they can and will. If you want to be sure that the address is valid, send it an email!

<comment><USER14> > Tangentally, there's no point validating email addresses with anything more > complicated than /@/

Well once you have this in database, maybe you'll give it to some library, then maybe this poor little library will just paste it into the SMTP conversation. And maybe some user will be clever enough to exploit it.

I believe that if you want to get X from the user, it's always a good idea to make super sure that it is actually X before passing it further.

And I very much agree that whenever possible and necessary, simply splitting regular expression to multiple lines and using comments seems like a superior approach.

<comment><USER15> The point is not to parse email addresses with regex because an actual email parser is far more appropriate for the task.

</comment></comment></comment><comment><USER16> My attempt at the Perl 6 version of the example:

        rx:i/^^
        [ <+ alpha + digit + [._%+-] >+ ] ** 2 % '@'
        '.'
        <alpha>** 2..*
        $$/

Notice that this avoids the repetition of a pattern.

Of course, it'd make much more sense to write a grammar:

        grammar Email {
            token TOP { <name> '@' <domain> }
            token name { <valid_char>+ }
            token domain { <valid_char>+ '.' <alpha>** 2..* }
            token valid_char { <alpha> | <digit> | <[._%+-]> }
        }

<comment><USER17> Pretty good, though <domain> should end with <alpha> __2..*

Note that your version is not actually the same, as it accepts all alphabetic characters, not just ASCII ones. Which put it much closer to RFC 6532, but still not exactly there due to the quoting rules in usernames. Which get pretty hairy. See [1] for an implementation of RFC 822, which is a simpler version of the modern standard, for a regex to validate email in Perl 5.

[1]: [https://metacpan.org/source/RJBS/Email- Valid-1.200/lib/Email...](https://metacpan.org/source/RJBS/Email- Valid-1.200/lib/Email/Valid.pm#L390) trigger warning: bleeding eyes

</comment></comment><comment><USER18> If you dig the lisp lifestyle, check out SRE/rx/irregex. It is magical.

[http://www.ccs.neu.edu/home/shivers/papers/sre.txt](http://www.ccs.neu.edu/home/shivers/papers/sre.txt)

[https://github.com/ashinn/irregex](https://github.com/ashinn/irregex)

[https://github.com/scheme/rx](https://github.com/scheme/rx)

[http://srfi.schemers.org/srfi-115/srfi-115.html](http://srfi.schemers.org/srfi-115/srfi-115.html)

<comment><USER19> Yes, I was talking about this. Irregex is much better than RX, nowadays, however. Shinn did a really good job.

</comment></comment><comment><USER20> We (the Hyperscan team) have spent a lot of time staring at regular expressions over the years (shameless plug: [https://github.com/01org/hyperscan](https://github.com/01org/hyperscan)).

I think a better format for regex is long overdue, but this isn't it. It's way too verbose (other commentators also noticed the resemblance to COBOL). I'm picturing a Snort/Suricata rule with this format regex, and you've now doubled the amount of screen real estate per rule.

The real problems with regex readability are (1) the lack of easily grasped structure, so it's almost impossible to spot the level at which a sequence or alternation operates (PCRE's extended format and creative tabbing can help) and (2) the total lack of abstraction - so if you have a favorite character class or subregex you write it approximately a bazillion times.

<comment><USER21> I'd love to hear your feedback on my approach, that focuses on the kind of problems I read in your comment.

[http://www.slideshare.net/AurSaraf/re3-modern-regex- syntax-w...](http://www.slideshare.net/AurSaraf/re3-modern-regex-syntax-with- a-focus-on-adoption) [https://github.com/sonoflilit/re2](https://github.com/sonoflilit/re2)

</comment></comment><comment><USER22> What's missing in regexps IMO is composability so you can build larger patterns out of smaller ones, giving each a clear name. Replacing '[0-9]' with 'digit' doesn't really help much.

</comment><comment><USER23> Sane middle ground:

      $ txr
      This is the TXR Lisp interactive listener of TXR 147.
      Use the :quit command or type Ctrl-D on empty line to exit.
      1> (regex-parse ".*a(b|c)?")
      (compound (0+ wild) #\a (? (or #\b #\c)))
      2> (regex-compile *1)
      #/.*a[bc]?/

<comment><USER19> I think SRE is a bit nicer than TXR's regex format, but it's the same idea.

</comment></comment><comment><USER24> I designed a similar but terser language in 2012:

The examples give the gist: [http://chubot.org/annex/cre- examples.html](http://chubot.org/annex/cre-examples.html)

More justification: [http://chubot.org/annex/intro.html](http://chubot.org/annex/intro.html)

doc index: [http://chubot.org/annex/](http://chubot.org/annex/) (incomplete)

I showed it to some coworkers in 2013 and got some pretty good feedback. Then I got distracted by other things. One of the issues is that I learned Perl regex syntax so well by designing this language that I never needed to use it again :)

I plan on coming back to it since I'm writing a shell now, and I can't remember grep -E / sed -r syntax in addition to Perl/Python syntax.

SRL is the same idea, but I think it is way too verbose, which it appears a lot of others agree with.

If anyone is interested in the source code let me know! It was also bootstrapped with a parsing system, which worked well but perhaps wasn't "production quality". So I think I will reimplement CRE with a more traditional parsing implementation (probably write it by hand).

</comment><comment><USER23> COBORE: common business-oriented regex.

Bonus: COBORE -> (Japanese) kobore -> こぼれ -> 溢れ/零れ ("spillage").

"Overflowing spillage of verbosity."

<comment><USER19> Kaz is right.

Now if only I made this joke first...

</comment></comment><comment><USER22> Looks like the COBOL of pattern matching, and frankly I like it.

</comment><comment><USER21> I have a (mostly abandoned) side project with the same aim. I spent a lot of time thinking about language design, from the perspective of enabling adoption of a new language when an existing one has so much network effect:

[https://www.slideshare.net/AurSaraf/re3-modern-regex- syntax-...](https://www.slideshare.net/AurSaraf/re3-modern-regex-syntax-with- a-focus-on-adoption) [https://github.com/sonoflilit/re2](https://github.com/sonoflilit/re2)

If people like my direction, I may continue to work on it.

</comment><comment><USER25> Maybe this as a learning tool? I think it's much better to learn regex as is, no matter how ugly or terse you may or may not find it. It's pretty universal across languages ( with some annoying variations ). There's lots of online tools and programs that can help you decode or create regex, after a while it's not so hard to read/create. But also worth knowing a more comprehensive parsing tool or parsing techniques so you don't get too ambitious with regex :)

</comment><comment><USER26> I fully appreciate the problems with regex, but I don't think this is the right approach.

If you have fantastic tooling regex can actually be a pleasure

Unfortunately the best regex helper ever made seems to still be an old Windows app. But wow is it good: [https://www.regexbuddy.com](https://www.regexbuddy.com)

I've seen online tools but they never seem to measure up.

<comment><USER27> Jan Goyvaerts, the author of this program also created this great website [0], which has lots of very clear and detailed regex tutorials. I always come back to it when I get confused about regular expressions.

[0] [http://www.regular-expressions.info/tutorial.html](http://www.regular- expressions.info/tutorial.html)

</comment></comment><comment><USER28> Side note on the API of the PHP lib implementing this: could we please stop using the fluent/query-builder pattern with closures?

It's the most disgraceful code style I've seen, and misleading: makes you mind think smth. async could be happening. I know Laravel popularized this, along with other ugly patterns, but let's stop cargo-culting this.

</comment><comment><USER29> Something similar:

[http://verbalexpressions.github.io/](http://verbalexpressions.github.io/)

</comment><comment><USER30> I think this is really valuable. Just today I had a non-tech co-worker who needed to understand Regex for some tool we were using. I did the regex for him and (very briefly) explained it. Now this might be something he can more easily grok and use a translator (+ regex101.com to verify) to create more complex regex's he might end up needing.

</comment><comment><USER31> Sometimes it's difficult to reason out an involved regex. I doubt I'd ever use something like this from code but I might use the translator.

Example based on their example.

[https://simple-regex.com/build/57bc5eac74c4d](https://simple- regex.com/build/57bc5eac74c4d)

</comment><comment><USER32> See also:

 _Is there a specific reason for the poor readability of regular expression syntax design?_

[http://programmers.stackexchange.com/q/298564/33157](http://programmers.stackexchange.com/q/298564/33157)

</comment><comment><USER33> Demonstrative "that" adjective-connective-subjective "seems" infinitive-marker "to" verb-existential "be" verb-passive-gerund "missing" article-definite "the" noun-subject "point".

</comment><comment><USER34> If you're dissatisfied with the terseness of regular expressions, it's worth looking at SNOBOL4: [http://www.snobol4.org/](http://www.snobol4.org/) which has been around for decades.

<comment><USER19> SNOBOL, AWK, and TXR are all pretty cool: Pick your swiss army knife.

</comment></comment><comment><USER35> Reminds me of regex parse trees in CL-PPCRE. S-expressions are the simplest language of all! [1]

[1] [http://weitz.de/cl-ppcre/#create-scanner2](http://weitz.de/cl- ppcre/#create-scanner2)

</comment><comment><USER36> The author pits his project against _POSIX_ regular expressions, but personally I feel that it's PCRE that rules the day. I find pcre regex significantly less verbose and easier to read.

</comment><comment><USER37> Hmm, perhaps useful for a teaching tool.

If used as such, it'd be really nice to be able to go the other way - a regex explainer if you will.

<comment><USER38> That's what I was thinking too. It'd be a great way to get people to understand the power of regex. But yeah, I wouldn't want to learn a verbose language to use regexes as frequently as I do today.

</comment></comment><comment><USER39> Very nice. Would love to see versions in other programming languages.

I'm very interested in examples that extrapolate this idea to other areas of programming and even math. And also work in the reverse direction.

Most of the examples I've found are old or not open source.

another example of english to regex: [https://people.csail.mit.edu/regina/my_papers/reg13.pdf](https://people.csail.mit.edu/regina/my_papers/reg13.pdf) [https://arxiv.org/abs/1608.03000](https://arxiv.org/abs/1608.03000)

English to dates [https://github.com/neilgupta/sherlock](https://github.com/neilgupta/sherlock)

English to a graph (network representation) [https://github.com/incrediblesound/MindGraph](https://github.com/incrediblesound/MindGraph)

C to English and vice versa [http://www.mit.edu/~ocschwar/C_English.html](http://www.mit.edu/~ocschwar/C_English.html)

English to python: [http://alumni.media.mit.edu/~hugo/publications/papers/IUI200...](http://alumni.media.mit.edu/~hugo/publications/papers/IUI2005-metafor.pdf)

English to database queries [http://kueri.me/](http://kueri.me/)

</comment><comment><USER19> So we're replacing a universally understood syntax for a new one that was just invented, and is painfully verbose? I understood what the first regex was doing just fine.

This is a major step up in readability, so it's nice, and you have to invent a new syntax to do that, so I'll chalk that up as unavoidable. But did it have to be so verbose? SCSH/irregex's SRE had similar readability wins, with way less verbosity. You still have to learn a new syntax, though.

<comment><USER40> I'd be happy to get a translator that goes the other way, to help decode unfamiliar regex. Other than that though, I pretty much agree with you.

<comment><USER41> Not really translators, but can be quite useful sometimes – [https://regex101.com/](https://regex101.com/) and [http://regexr.com/](http://regexr.com/)

<comment><USER42> Whenever i need to do anything in regex, i open regex101.

It's such a great resource.

</comment></comment></comment></comment><comment><USER43> The first example:

        /^(?:[0-9]|[a-z]|[\._%\+-])+(?:@)(?:[0-9]|[a-z]|[\.-])+(?:\.)[a-z]{2,}$/i

is a total strawman, needlessly obfuscated. How about writing it like this:

        /^[0-9a-z._%+-]+@[0-9a-z.-]+.[a-z][a-z]+$/i

which, while "scary looking", is at least immediately readable by anyone who knows even the basics about REs. If the argument for "verbose REs" is valid, it ought to stand up at least a _typical_ standard RE.

Also, it's not clear that "letter" and "[a-z]" mean the same thing. Does "letter" include uppercase? Does it include non-ASCII letters like "[[:alpha:]]" does? Don't forget the weird collation behavior "[a-z]" sometimes encounters.

<comment><USER44> > which, while "scary looking", is at least immediately readable by anyone who > knows even the basics about REs

Nope, I'm mostly a DB guy very fluent in SQl and I use regex like two dozen time a year.But every time I nead to write something not trivial I must run to a regex cheatsheat website and spend long minutes trying to figure shit out.

It's not that I'm dumb and taking a MOOC about regex is definitely on my todo list... It's just that I haven't found the damn time yet to learn monstrosity and exceptions of regex.

And this is especially painful coming from PostgreSQL which have a good debugger and a clear syntax (even for non standard functions).

<comment><USER12> FWIW I'm doing the Accessing Web Data part of the Python for Informatics course at Coursera. First part of that course is regex and after one lesson (~15 mins) it covers enough to read the above expression.

I was already cognisant with regex, so I'm perhaps biased, but a simple email- like search seems easy for a novice to read.

Perhaps you have a particular block when approaching regex. The book by Charles Severance that goes with the course (above) is freely available online.

</comment></comment></comment><comment><USER45> great work, nice site! There's a huge amount of programmer's time lost worldwide reading Regex expressions and trying to determine what the expression do. This a way better option for readability.

</comment><comment><USER46> Zounds, now that programming languages basically scrapped the idea to sound like English, regular expressions pick it up from the trash. And emulate Applescript of all, if I am any judge.

</comment><comment><USER47> AppleScript, SQL, COBOL and others have all made the same mistake.

</comment><comment><USER48> Cool, it's like COBOL for regexes. Now even managers can write them!

</comment><comment><USER49> Anyone remembers: South. South. West. Look. Pick axe.

for the same reasons I'm having mixed feeling about cucumber and similar testing frameworks (BDB), that also rely on semi-english language to do things. It looks cool, and enticing, but hard to sell (to others), even If I myself am super-excited to see it in action (just because how crazy it looked the first time I saw it).

</comment><comment><USER50> Looks like applescript, easy to read, impossible to write

</comment><comment><USER51> This is really cool. I'm sure it can be improved, but a nicer high-level DSL for regex is something I have been looking for a long time now. Combinator libraries are nice but language-dependent.

</comment><comment><USER52> My attempt at simplifying (a subset of) regexes:

[https://github.com/crdoconnor/simex](https://github.com/crdoconnor/simex)

</comment><comment><USER53> Because if there was one thing regexp needed it was COBOL.

</comment><comment><USER54> Don't take me wrong, but I think that if anything this makes regular expressions harder to understand. The syntax is super verbose.

</comment><comment><USER55> I'm no fan of regexes, but I'm not a huge fan of this either; I would be interested in seeing existing convoluted regexes expressed like this for me in an IDE, but I don't like it as an input format.

I do wonder if having an EBNF compiler like ANTLR being more accessible would solve the readability & maintainability issues.

<comment><USER56> I don't think anyone is really a fan of regex(es?) but the task they are for is actually a rather complicated one and, let's be honest, they are pretty good at it. I agree that it would be nice to see better tools to understand and create new regex but I think that they are actually fine on their own.

They might be ugly and everyone had a point where they thought they were just some sort of magic impossible to understand but I think that there is a point where they just... click. After that they can still be ugly and messy but you at least understand that there is a purpose to it.

</comment></comment><comment><USER57> 'Regular Expressions Made Simple'

Regular expressions _are_ simple. It's just a matter of putting a bit of time in to learning them.

<comment><USER58> Simple for various definitions of simple. Readable not included.

</comment></comment><comment><USER59> Hey, remember that time we gave up regular expressions and went back to writing grammars? Right tool for the job..

</comment><comment><USER60> I hate languages that try to be like natural language, for the simple reason that I can't actually use natural language. I can't type: "I want something that has at least some letters at the beginning followed by an @ ..." or any other variation except the exact syntax they require. Maybe in 10 years if NLP has come far enough, but not when it's a simple parser like now. I think it's much harder to remember than a syntax that is completely different from anything else you know.

On the other hand, it did work for SQL...

</comment><comment><USER61> This definitely has some entertainment value. However, if you want to make your code verbose, there is only one way to go. Use a language that needs just the following statement to produce a valid program:

      TRANSFORM THE CURRENT OBJECT INTO THE DESIRED OBJECT.

Any other program statements are redundant.

</comment><comment><USER62> This is really cool, but my brain keeps getting stuck on the word choice. Every time I see the `literally` keyword, I hear a teenage, valley girl accent in my head.

"Literally, at sign."

"Like, literally, hashtag, guys."

I can't even.

<comment><USER63> And now that "literally" has been coopted to also mean "figuratively", I don't even know what that clause means. I also got mentally stuck on that phrase, and my eyes literally popped out of my skull.

</comment></comment><comment><USER64> For the sake of pedanticity, the regex he proposed as an example doesn't validate all possible email addresses (particularly ones that are simply …@tld).</comment>


Facebook in a crowd - <AUTHOR> http://www.nytimes.com/2008/10/26/magazine/26lives-t.html?ref=technology

<comment><USER2> +1 savrajsingh

what's the difference between a social network and a social utility? and what's the difference between a social network and a community? in many ways, they're different words for the same things - but there are gradations that i've noticed:

i'll start with what i know - communities form from commonalities, through the shared assumptions & interests that connect people. HN works because we all feel that there are like-minded people here that will appreciate our ideas on hacking (or take an interest in arguing with them).

social networking is a bit more ambiguous as it's a newer term, but i'll venture that most people use it to mean a collection of connectible communities. social networks are a community of communities, making a more basic assumption/interest commonality that allows for a much wider/diffuse audience. myspace connects those that feel it provides a creative conduit for representing their personality, whatever that personality cares about.

social utility is even newer & is the carrot facebook is dangling for its investors. a social utility, by my understanding, is a meta-social-network. that is, almost purely a boring infrastructure play that could be successful even if it becomes invisible. it's a set of components/tools, sort of like ning, that allow people to create their own social networks - and by extension, communities - on the fly. that said, they aren't invisible yet - facebook.com is still what people know as facebook.

so how does this connect back to the parent? savrajsingh made an excellent point that the difference between a HN meetup and Hal's facebook meetup was shared interests/assumptions. an HN meetup operates at a community level, where the participants feel confident that if they attend, they will have something to agree or disagree with. a facebook meetup (and granted, i can only take this so far as i did not see Hal's original event invite) doesn't necessarily imply that commonality, rather, they leave it up to the event organizer because they intend to support any type of event. this approach lacks guidelines/constraints for people in Hal's position - someone who wants to make is 700+ friend list more meaningful. from the article, i can only guess that his invite said "i'm bored & in toronto - we know each other somehow, so let's play" - which is a rather generic call to action.

my speculation is that he did not offer a lot of his personality in the invite, rather, assuming people would show up & they'd figure out stuff to talk about. which is fine when you're reaching out to friends who trust you to be interesting, but he wasn't. that said, there were (hopefully) plenty of commonalities that could be leveraged within his friendset and were he to pick one shared by enough people also bored, he'd have much more luck the next time. given that he was in toronto doing this around election time, it seems inviting people out to talk about politics (sports, tv, books, ad infinum) would be one way to create a commonality with his stranger-friends. the key is finding something to fall back on so when the small talk runs out, the conversation doesn't languish in disconnected/unfamiliar silence.

^that last bit is something important to keep in mind when building a product that you're trying to market, too, if you intend for people to talk/form a community around it. give them a seed to respond to.

</comment><comment><USER3> When I see someone with 700 Facebook friends or more, my first thought is that they're most probably friend collectors. They either add every profile they come across, or they accept every invite they get (usually from other friend collector). For these people, the Facebook experience probably sucks because there is very little personality to it. And, obviously, he shouldn't have expected people to show up to meet someone they don't even know and have nothing in common with.

<comment><USER4> I have nearly 900 friends. I wouldn't call myself a friend collector though. The last 300 of these or so have all been initiated by the other party as I've moved and connected with different circles. This does prompt an interesting thought exercise...

My facebook timeline:

-May 2004 College Friending (200 friends): I finish senior thesis. Am bored. Hear about facebook hitting Princeton. I check it out. It's cute. I add my college friends. Zuck friends me as an early adopter. This probably gets me to 200 friends: the 40 or so people I considered friends, the 100 or so people I'd spent time with and then another 60 were people I knew through students groups, church or student government stuff. I believe at this point I had a detailed profile, was sharing my dorm room phone number and e-mail address.

-September 2004-August 2006 (200 friends): I worked as a summer camp counselor for three summers during time off from my first job, as a college admissions officer at Princeton. Facebook opened to HS students so my campers and fellow counselors wanted to be friends. It was at this time that I stopped sharing so much personal info, having begun to see FB as my personal address book, rather than an intimate conversation. I probably added another 200 friends during this period.

-September 2006-March 2008 Grad School (200 friends): I started at Northwestern J-school and we all friended eachother up on FB as an overture to getting to know one another. Subsequent arriving groups of students also friended me. It's not a huge program and networking is everything in journalism. This was probably another 300 people, 60% of them are people I've worked with. The rest are people I've had class with or corresponded with in some capacity. Being able to get on the horn with a reporter at Time or Newsweek is just plain useful.

\- Late adopter pickup (150 friends) - Over the last two years or so, as Facebook has become ubiquitous, people I knew in middle school and high school have surfaced to friend me. Even a few from elementary school. During a moment of absolute boredom, I tracked down my 6th grade crush on FB and friended her. So FB became a bit of a link to my past. Friending these people would prompt a short exchange of updates, followed by radio silence as we followed from afar. It's fun to know I've got ooooold friends in places like Turkey and London.

\- March 2008 - Present, Readers, local bloggers in Chicago (150 friends): The last phase of this has been recently as I've published an online magazine about Chicago news and politics. Readers have friended me as have other bloggers and writers in Chicago.

At this point, while I share about 200 photos on my profile (none sketchy in the least) I haven't really updated it in years. It lists my professional background and interests, and that's about it. I don't go on there a whole lot, maybe once a week for 20 minutes or so.

That's how I have 900 friends, for what it's worth.

</comment></comment><comment><AUTHOR> Perhaps it is true that people don't take invites on facebook seriously as they can see the list of people. If there are too many people invited, they might not feel obligated to respond. What if you had a dedicated invite service and you could not observe the number of people coming (say to a dinner or a party etc). Would you feel more obliged to respond?

</comment><comment><USER5> Ouch. Unsurprising though, when you consider how hard it is to organise your "real" friends to head out for drinks.

</comment><comment><USER6> Maybe calling it a "social utility" and not a "social network" is a stretch since people use it as a social network?

Clearly, your customers almost always define your product for you no matter how hard you try to paint it as something else.

<comment><AUTHOR> Thats interesting. By that token, Facebook or other social networks are in some ways, restricted by what they can do because of the way people use the network

</comment></comment><comment><USER7> You have to send out reminders essentially every day the preceding week, duh.

</comment><comment><USER8> If you want people to show up, you need to phrase it as a neutral event. If you invited people to an art gallery or a concert where they are not forced to sit accross from a stranger, more would show up.

</comment><comment><USER9> My Facebook friends .. let me show you them, My Facebook friends.

</comment><comment><USER10> Enter Hacker News. I posted an open invitation to meet with Atlanta based hackers (btw I am not a hacker) more than one year ago. Now this is when HN traffic was probably 1/7th of what it is today and surprisingly about 15-20 responded and close to 10 showed up.

<comment><USER11> When you get together for an issue (talk about hacker news, startups, etc) people have some motive for showing up. Your real friends are the ones that don't need a reason to hang out with you. :)

</comment></comment><comment><USER12> file under social-network-phobia</comment>


Three Years of PostmarketOS - <AUTHOR> https://postmarketos.org/blog/2020/05/31/three-years/ <comment><USER2> The three most impressive things that I've seen on pmOS in the past year:

1\. It's amazing the sheer number of devices to which pmOS is now bootable[0]. Also previously supported devices keep getting better. For example, g--gle- glass works well with the default configuration, once you are able to get it flashed to the device[1].

2\. While I haven't yet the chance to personally use it, pine64-pinephone and purism-librem5 are the closest that we have to modern GNU[?]/Linux smartphones out there [2,3].

3\. Anbox on pmOS means that the wealth of touch-optimized FOSS android applications are also available for the touchscreen devices that pmOS targets [3].

Things are getting exciting in the mobile-linux world.

[0]: [https://wiki.postmarketos.org/wiki/Devices](https://wiki.postmarketos.org/wiki/Devices)

[1]: [https://gitlab.com/postmarketOS/pmbootstrap/-/issues/456](https://gitlab.com/postmarketOS/pmbootstrap/-/issues/456)

[2]: [https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-...](https://wiki.postmarketos.org/wiki/PINE64_PinePhone_\(pine64-pinephone\))

[3]: [https://wiki.postmarketos.org/wiki/Purism_Librem5_(purism- li...](https://wiki.postmarketos.org/wiki/Purism_Librem5_\(purism-librem5\))

[4]: [https://wiki.postmarketos.org/wiki/Anbox](https://wiki.postmarketos.org/wiki/Anbox)

[?]: Is Alpine Linux GNU/Linux?

<comment><USER3> >[?]: Is Alpine Linux GNU/Linux?

Alpine Linux is Busybox/Linux

<comment><USER4> well it's more like musl/linux. by default it uses busybox for most things but if needed the gnu variants are also in the repositories.</comment></comment></comment>


The Demise of Physical Comedy - <AUTHOR> https://www.newyorker.com/culture/richard-brody/the-demise-of-physical-comedy <comment><USER2> Has the author of this piece never been on youtube, or worldstar, or twitter, vine, tiktok... Physical comedy still exists, the risks have just been relegated to the masses, rather than the comedian who wants to have a long career free of pain.

Further, slapstick still has a lot of life in cartoons. The old Loony Tunes and Merry Melodies were chock full of physical comedy, and modern cartoons continue to carry that torch.

Physical Comedy isn't in decline, it's just moved out of the mainstream.

<comment><USER3> I do not know. If it's out of the "main" stream then almost by definition it would be in decline. Unless the mainstream was more of a small plurality rather than a large one, which could be the case?

<comment><USER4> Those things are the mainstream.

</comment></comment></comment><comment><USER5> > has been moralized out of existence.

I don't find slapstick, pratfalls, etc., funny anymore for different reasons. It just isn't funny. But I still enjoy Laurel & Hardy, but not for the slapstick.

It's more for the irrational logic the L&H characters use, which is on great display in the one where they move the piano up the stairs, and in the one where they sell Christmas trees door to door.

The running gags are funny because you know what is going to happen. You know the piano is going to get destroyed (who would hire L&H to move a piano, and the sound effects as the piano gets insulted are very funny in foretelling its impending demise), but somehow that makes it even funnier. You know when Ollie steps in a puddle it'll be 5 feet deep, and the funny part isn't so much him getting wet it's his long-suffering expression looking directly into the camera when he surfaces. It makes me laugh just thinking about it.

Monty Python's pratfalls aren't funny, either, but when they have a knight in armor fall down the stairs, it's not the fall that's funny, its the foley sound effect of a metal garbage can going down the stairs that's funny.

<comment><USER6> > Monty Python's pratfalls aren't funny

Does the guy running behind Graham Chapham in the Holy Grail knocking two coconut halves together to mimic a horse count?

<comment><USER5> That's not a pratfall. And yeah, it's funny :-)

But the funniest is the crazy logic where they're trying to determine a scientific procedure to unmask a witch.

"She turned me into a newt! .... .... uh, I got better."

<comment><USER5> > And yeah, it's funny

Part of the reason it's funny is the resolute failure of King Arthur to understand that he's not actually riding a horse. Or maybe I shouldn't try to analyze what funny is.

</comment></comment></comment></comment><comment><USER7> > a new Harold Lloyd is unthinkable because physical comedy depends on the > proximity and possibility of death

I don't agree with that.

Gwyneth Paltrow is amazing at physical comedy. I can't remember the movie but there's a scene where she's getting out of a cab and she just falls over and it's friggin' hilarious. No death in sight.

Certainly death, properly appreciated, is funny. The only thing more absurd than death is sex.

The reason physical comedy is so physically dangerous is that, generally, it's only funny if you _go for it_ and that naturally causes injuries. Like playing football, or WWE wrestling. Half-assing it isn't going to be entertaining.

<comment><USER8> Seconded.

To me physical comedy is about physicality: the body, its gestures and movements.

Can it involve pain or the possibility of death? Sure, but that's not essential.

I was always a fan of John Ritter in Three's Company. He'd flail about in every episode, almost falling or tripping or just making crazy expressions with his face.

<comment><USER9> I find Jackie Chan's physical comedy to be superb. It also doubles as incredible fight scenes.

His fight scenes and stunts are riddled with humor.

</comment></comment></comment><comment><USER10> In a way, physical comedy still exists, but it's not official. The popularity of "instant karma" gifs or subreddit, youtube pranks, freak accidents. I think the last great slapstick actor was Jackie Chan though. I mean the need is there, but no one caters to it.

<comment><USER11> Yes. For the longest time I did not watch any "martial arts" movies, because I was not interested in people fighting. But Jackie Chan's movies are really primarily physical comedy: [https://youtu.be/0ZFr4uiR5x0](https://youtu.be/0ZFr4uiR5x0)

<comment><USER5> Jackie Chan's "fight" scenes are actually dances. If you watch carefully, you'll realize that they are choreographed to metronome precision.

Next time you watch one, try tapping your feet to the moves. You'll see :-)

<comment><USER12> Indeed! There is a great video essay about Jackie Chan's style (and how it differs from standard Hollywood action movies) on "Every Frame a Painting" Youtube channel: [https://www.youtube.com/watch?v=Z1PCtIaM_GQ](https://www.youtube.com/watch?v=Z1PCtIaM_GQ)

</comment></comment></comment></comment><comment><USER13> I think physical comedy just has a broader audience, which worked well in silent movies and thereafter. The broadness is also why it's considered cheap and used sparingly. It's like shouting. As Friends went on and the writing got lazier every character was shouting all the time.

But a recent example of a well done pratfall I saw in a show mostly about dialog and editing was Modern Family (season 2) where Cameron turns to give his husband a kiss who pulls back (due to discomfort with public displays of affection, the theme of the episode) and Cameron overleans and falls head over heels over the back of the sofa quite roughly; he's a big guy too. I laughed a lot partly in surprise because I basically never see a pratfall in comedy shows I like.

<comment><USER14> Yeah, using it sparingly is key. Tobias in Arrested Development would occasionally have pratfalls that always got me. And just yesterday I saw this video, where the physical comedy caught me off guard and had me laughing harder than I have in a long time: [https://m.youtube.com/watch?v=VzwVIakdxks](https://m.youtube.com/watch?v=VzwVIakdxks)

Of course my wife was only mildly amused, and she loves Oh Hello. No accounting for taste in humor, I suppose.

<comment><USER15> "We shan't be telling your mother this, shan't we" I lost it when I saw that [https://youtu.be/tt8Iwf_87eY](https://youtu.be/tt8Iwf_87eY)

</comment></comment></comment><comment><USER16> This article focuses wholly on the death-related or injury-related aspects of physical comedy and none of the others, for example the excellent use of a non-functional set in The Play that Goes Wrong (which The New Yorker reviews quite highly [0]).

[0] [https://www.newyorker.com/culture/culture-desk/the-play- that...](https://www.newyorker.com/culture/culture-desk/the-play-that-goes- wrong-is-quite-good)

<comment><USER17> Indeed, physical comedy is alive and well in the theater.

It may be that physical comedy has a better impact in theater, where it's live, and they're taking the (apparent) risks right in front of you. On film, modern wire work enables a lot of great action, but undercuts the immediacy of it. Jackie Chan did amazing physical comedy on film, because you knew that he was taking Harold Lloyd-type risks.

Physical comedy in the theater is a bit like stage magic: it's practiced carefully and controlled so that they can do it safely every single time. Professional wrestling is also a kind of live physical comedy, taking much bigger risks than any actor would do (and way more than the actors' unions would tolerate).

</comment></comment><comment><USER18> Physical comedy is still prevalent in mainstream culture. I would argue that the best comedians use it sparingly, but they do use it.

For example the show "The Trailerpark Boys" have reoccurring gags which depend on slapstick physical humour, and they always make me laugh.

The slapstick comedy of the 1930's could be viewed with no context or even sound. I think it's evolved since then, the _context_ (characters, plot, motivations) of the physical comedy matters a lot more now...

</comment><comment><USER19> I love this video from "Every Frame a Painting" which also mourns the loss of physical comedy: [https://www.youtube.com/watch?v=3FOzD4Sfgag](https://www.youtube.com/watch?v=3FOzD4Sfgag)

<comment><USER20> Well, there he mourns visual comedy, which is not exactly the same (you can have visual comedy without physical comedy -- well, aside from the performer doing its thing).

Visual comedy could be made in the editing, backgrounds, etc (as in many examples given in the video) even if the actors don't do physical comedy at all.

<comment><USER21> True of course, though the video does have some examples of physical comedy as well; no 7 in his list for example. Personally I love this example from Hot Stuff: [https://www.youtube.com/watch?v=30kUNex1cuI](https://www.youtube.com/watch?v=30kUNex1cuI)

</comment></comment></comment><comment><USER22> Chris Farley as Matt Foley on Halloween: [https://www.youtube.com/watch?v=1LyqPdZjQTY](https://www.youtube.com/watch?v=1LyqPdZjQTY) I think the ending of this sketch is a kind of masterpiece.

<comment><USER23> Michael Richards really tarnished his legacy post-Seinfeld, but his physical comedy on that show was also top-notch.

</comment></comment><comment><USER24> Meredith MacNeill from the Baroness Von Sketch show does a lot of physical comedy:

[https://www.facebook.com/cbc/videos/healthy-eating-is- simple...](https://www.facebook.com/cbc/videos/healthy-eating-is-simple-its- not-easy-but-its-simple-httpbitly2hsnm9m/1882889105364998/)

</comment><comment><USER25> I think Brooklyn Nine-Nine nails physical comedy for a modern era. Andy Samberg in particular has some great moments of physical comedy in it.

</comment><comment><USER26> My suspicion is that physical comedy is less relatable because the modern audience is less acquainted with physicality in general. Slapstick doesn't have quite have the same point if you've never given or received a slap, and making light of grievous injury and workplace accidents doesn't have the same ring when those aren't everyday facts of life.

</comment><comment><USER27> Here's my counterexample:

[https://www.youtube.com/watch?v=AkBb4FWHxhI](https://www.youtube.com/watch?v=AkBb4FWHxhI)

Here's where you know Bill Irwin from, depending on your age:

\- voice and motions for TARS in Interstellar

\- repeat character on Law and Order: SVU

\- Mr. Noodle on Sesame Street

\- main cast member in Legion (one of the Cary Loudermilks)

Bill is proof that physical comedy is still relevant.

</comment><comment><USER28> Zach Galifianakis uses a fair amount of physical comedy. Some of the gags most likely to make me laugh in his show Baskets are physical, but it also has lots of situational humor and pathos. I think physical comedy used well can show what's funny about a character on a deeper internal level.

</comment><comment><USER29> I'm puzzled by this take. Just because we don't have daredevils like Buster Keaton letting houses fall on top of them doesn't mean physical comedy is dead. Someone in the thread has already pointed out Kaitlin Olson's excellent work on IASIP and I'd second her with a recommendation for The Mick. Similarly, there's the wonderful Inside No. 9, which often features great physical performances (not all episodes are comedy though.) Just because we don't see it as often doesn't mean it's dead. The trends ebb and flow but good physical comedy still exists.

</comment><comment><USER6> We still have some of this in the UK: Rowan Atkinson (Mr Bean), Lee Evans (There's Something About Mary).

</comment><comment><USER30> Comedy is about surprise.

As culture evolves, and as new ideas grow, you can mine intellectual and verbal discourse for comedy that will continue to be surprising.

Can you do the same with physical comedy? Are there new boundaries or new frontiers to mine there?

</comment><comment><USER31> I'd argue physical comedy is more difficult than spoken comedy, because any fool can deliver a line but it takes a master to sell you a fall. Is it any wonder that physical comedy was more popular in the silent film era?

<comment><USER32> I dunno, man. Delivery is a thing.

</comment></comment><comment><USER33> Gender this, ethnicity that...

I feel nothing reading that. Should I? I mean, isn't that... reinforcing isms we were striving to overcome as a society?

</comment><comment><USER34> The article seems to have overlooked the Blue Man Group. Their schtick definitely has elements of physical comedy.

</comment><comment> d--b Mmmh, I don't know about this stunts arguments. Cartoons have had success with physical comedy for decades. Yet, everybody knew that no real coyote flew off a cliff...

I think that slapstick is simply overdone. We've seen so much of it that it's just not funny anymore...

</comment><comment><USER35> A Johnny English released last year. And there's always Pink Panther.

</comment><comment><USER36> People are no longer satisfied by simple comedy, they don't get their kicks as easily due to faster paced life, they need more, dirty jokes etc

</comment><comment><USER37> Good! Ill see videos where there are dozens of people just laughing at videos of people falling over or getting kicked in the nuts or something else painful to them... It's so cringe. When I see a video of a tree fall on someone's head I cringe and feel terrible, not laugh. People are psychopaths, maybe I'm just an empath.

</comment><comment><USER38> Staged slapstick doesn't have the same appeal to a generation accustomed to people recording others doing stupid things with their cell phone, which is the new physical comedy (even though many of those viral clips are staged too).

The demise of comedy in general is a much more pertinent issue. Political correctness and outrage culture has hobbled the ability to confront hard subjects through humor.

<comment><USER39> Do you really need to make fun of someone disadvantaged to have comedy? Do folks not approach things like rape and discrimation and dealing with American cops with comedy?

Have you not seen the bit by.. Josh Johnson? ... where he accidentally catfishes the KKK?

Or watched Frankie Boyle? Or the Mash Report?

It is pretty obvious there is plenty of comedy out there that approaches difficult and tough subjects through humor. Society is becoming less tolerant of racism and sexism and homophobia and things like that - you know, the political correctness of it. If your comedy includes making fun of men for being too "gay" or women for being too manly... sure, political correctness has caused a demise in your sort of humor, and good riddance.

<comment><USER40> In order to confront truths, you're going to risk being offensive.

There are plenty of logical inconsistencies, fallacies, half-truths, that every social tribe adopts that need a mirror to reveal their ridiculousness. Some may only be observed as an outsider from the group.

This is the service comedy has always provided.

We are humans. We are fallible.

<comment><USER39> I specifically mentioned Frankie Boyle because folks tend to find him offensive. He also hosts a show talking about serious-ish topics, generally in a funny tone. The others were just comedic takes on more serious stuff.

But really, they were examples of comedy that the person claimed was hobbled as a result of political correctness - and I don't see it as the case at all. Comedy simply isn't what it was 30 years ago, but at the same time... comedy isn't what it was 50 years ago either.

<comment><USER40> >If your comedy includes making fun of men for being too "gay" or women for being too manly... sure, political correctness has caused a demise in your sort of humor, and good riddance.

The very idea that there couldn't be any funny perspectives left on the above topics shows that the idea of being emotionally protected has been elevated above free speech.

The vocal minority of Twitter do not represent the general public. [https://www.pewinternet.org/2019/04/24/sizing-up-twitter- use...](https://www.pewinternet.org/2019/04/24/sizing-up-twitter- users/#nws=mcnewsletter)</comment></comment></comment></comment></comment>


The Duct Tape Programmer (Response from Uncle Bob Martin) - <AUTHOR> http://blog.objectmentor.com/articles/2009/09/24/the-duct-tape-programmer <comment><USER3> All of these types of arguments are at the wrong level of abstraction.

I've found that what makes the best programmer is not if they are a "duct tape" programmer or a "architecture astronaut" or whatever, but _self awareness_. They can call a hack a hack, and understand it's impact. They know when and _how_ architecture can be improved, and when it _should_ be improved. They can take criticism of their work because odds are, the criticism is something they already had an understanding of and can justify, or if not, they are willing to see where there was a gap in their thinking. They have a plan, and can forge a system ahead in a general direction of progress without getting bogged down in the details or taking one step forward and two steps back. You get the idea.

Nobody is talking about this, arguments generally deteriorate where someone sets up a false dichotomy and then the internet collectively rips them apart. But they get ripped apart because of the falseness of the dichotomy, not because of the fact that they are looking at the wrong things altogether.

<comment><USER4> I think this is just an example of Parkinson's Law of Triviality: <http://en.wikipedia.org/wiki/Parkinsons_Law_of_Triviality>

</comment></comment><comment><USER5> The same feeling hit me when reading this: the spirit of the oringal "Duct Tape" blog was right, but the specifics kind of overgeneralized. What I took away: most programmers don't have a sense of perspective on the products they're building - to most of us, it's more software then product.

My nutshell analogy in Joel-speak: "software perspective is to architecture astronaut as product perspective is to duct tape programmer".

The dangerous path you get on is "always shipping" without paying attention to what maintenance means. Of course, this only matters to a Real Business - <USER2> know, places that make money instead of burning it. But I find that there is a breaking point where all that code rushed out of the door starts to cost ya. And yeah, you might have to consider a revision, perhaps even adding fancy things like unit tests to figure out what the hell is breaking, or a template to reduce the code base size, whatever.

But even in maintenance mode, the perspective still doesn't change. It should be about making a good product (lowering maintenance costs to speed up new development) instead of "the right way to build software".

<comment><USER6> Yeah, Joel is definitely, definitely wrong about unit tests. Not in the TDD/BDD/Agile koolaid kind of way, but in terms of ancillary tools, automated testing in general could only be second to version control for what it does to long term productivity.

 _the dangerous path you get on is "always shipping" without paying attention to what maintenance means_

The Joel article glosses over this too much. Why? Because this is what the unwashed masses of programmer wannabes attempt to do all day every day. You know these people, the ones that just have no business being programmers. In other industries there are standards, credentials and transparent performance evaluations that prevent people like this from even getting hired. Yet in the programming industry they make up a disturbing percentage of the work force. That's one extreme--the most common one.

Joel is more focused on the architecture astronauts who need code to be a little too elegant. I know first hand that these kinds of people can really damage your ability to ship a product if given too much control, but I think it's wrong to draw a distinction and favor a "duct-tape programmer". First, because most of these people probably have the capacity to ship amazing stuff with a little guidance and the occasional reality check from more "duct-tapey" colleagues. Second, because these guys push forward the state of the art. They often see the big architecture picture in a way that others don't. They may waste a lot of time by short-term metrics, but their work is the only kind that eventually leads to long-term dividends. Occasionally some of them may be so obsessive compulsive that they just can't be forced to ship. Fine, they should go get Ph.Ds and do great things in academia, but they're still infinitely more valuable than the people who don't even really grok programming.

<comment><USER7> "in terms of ancillary tools, automated testing in general could only be second to version control for what it does to long term productivity."

His whole point is that _short-term_ productivity is sometimes more important. No point building a product that'll be easy for you to extend in the future if you don't build it quick enough to _have_ a future.

<comment><USER6> _My_ whole point is that short-term productivity doesn't need an advocate. If you're literally going to die then sure, go ahead and throw the hail mary. However in the vast majority of cases the future becomes the present quicker than anyone foresaw and then you find out that 20% time savings has now put you in a position where _all_ future development is 50% more expensive, at which point you either (possibly) scored an amazing victory or you (more likely) handed yourself a crippling setback. You know, sort of like the situation that presumably led to the rewrite of Mozilla.

</comment></comment></comment></comment><comment><USER8> Uncle Bob seems to be confusing spirit with conclusion. JWZ and Joel are arguing against "[using complex technologies] for their benefits", where simpler tech would suffice. When you're designing a browser, C++ and multithreading do have benefits, but "Duct Tape Programmers" would argue that they aren't worth the design overhead when you're facing a tight deadline.

Same with COM, unit tests, design patterns, etc. Obviously, Joel doesn't believe these have no benefits and that they're only used because they're cool. He doesn't endorse them because he doesn't believe they are worth it.

It's fine if you disagree with the duct tape mindset, but don't construct strawmen to show "we all really agree".

<comment><USER9> I think the problem with Joel's post is that you have to read between the lines to understand what he's advocating. He knows that a strong voice makes for a more compelling blog, but that caused his message of balance and tradeoffs to get muddled. As a programmer who can engineer to a fault, I found Uncle Bob's post much more useful.

<comment><USER8> I'm not sure. Uncle Bob's post came off as so reasonable and moderate that I have trouble applying it to any practical situation. Joel's post drew conclusions I don't agree with (redesigning to add multithreading after the first release seems like classic 'second system syndrome'), but at least I had a fairly good idea of the personality he was describing.

</comment></comment></comment><comment><USER10> I hate the epithet "architecture astronauts." It smacks of anti- intellectualism. We wouldn't say the same thing about actual architects: we would never deride Frank Gehry for building the <http://www.guggenheim.org/bilbao> saying, "wow what a waste of time, why didn't he just duct tape it... he would have finished sooner!" Physical architecture is about function as well as form; the Bilbao Guggenheim is not just a work of art, it's a highly functional building. Software architecture is similar in that better designs are more functional, more easily understood, and more easily maintained.

Not everyone is Frank Gehry, but working architects can learn from him just as we working programmers can learn from Bob Martin.

<comment><USER11> I would deride Frank Gehry. I've only been to one of his buildings, but it struck me as gratuitously zany: a very expensive and confusing way to do what could have been done better with a good ol' roughly rectangular box.

Many of those classic rectangularish buildings are beautiful. Their beauty is not the kind that stuns you for a week and then becomes annoying. It's the kind that is comfortable to be around, and you appreciate more and more as you spend years living with it.

<comment><USER12> A particular _instance_ of Frank Gehry's work may not meet your approval, but would you go so far as to condemn the _methodology_ of the sort of thing that is Frank Gehry's craft? The motives? The pursuit?

<comment><USER11> With considerable uncertainty because I haven't spent much time with his buildings (maybe there is an "aha!" moment waiting for me), yes. The motive appears to be, "How pointlessly weird can I get?" Part of the method seems to be, "Let's make this EXPENSIVE."

<comment><USER10> _I would deride Frank Gehry... The motive appears to be, "How pointlessly weird can I get?"_

I'm sorry you don't like Frank Gehry. But surely you're not saying, categorically, that software architecture is pointless?

I'm making that point that there may be good design or bad design, but we should not characterize _design itself_ as harmful-- which is what is implied by pitting "duct tapers" against "architecture astronauts."

<comment><USER11> _But surely you're not saying, categorically, that software architecture is pointless?_

Not at all, only that Frank Gehry might be a poor analogy to enlighten people about the value of software architecture and design. "Duct tapers good" vs. "architecture astronauts bad" is surely a false dichotomy and a horrible analysis of the situation. Here's an example that might shed better light on the real situation: Microsoft is crawling with duct tapers, and Apple takes design seriously. Microsoft is much wealthier, but I prefer to use Apple products, and I wouldn't want to work at Microsoft.

</comment></comment></comment></comment></comment></comment><comment><USER13> _As for Joel's consistent dismissal of unit testing, he's just wrong about that. Unit testing (done TDD style) does not slow you down, it speeds you up._

This seems logically impossible. Maybe I'm misunderstanding TDD, but at the heart of it, TDD seems to suggest you:

1) Give instructions that describe how to check the instructions you're about to give are correct

2) Give instructions

This is _not_ the right solution to the problem "I'm unable to give the computer the instructions I intend". At the very fundamental level, it clashes with DRY, and is only effective if you're very uncertain in your ability to do (2). The right solution is improving your ability to do (2) - by creating better abstractions and metaphors, not by repeating yourself.

<comment><USER14> Ah, yes, the "I don't have to write tests because I'm perfect" school of programming.

1) You aren't perfect.

2) Your coworkers aren't perfect.

3) Your "abstractions" are still code that can have errors in it

Also, you are misunderstanding the argument that TDD speeds you up. Yes, at the micro level it may take a bit more time. But, as the system grows, your ability to add or change functionality without breaking things increases when you have tests to verify that it is still correct. (Also, automated testing is much, much faster than manual testing.)

<comment><USER15> _But, as the system grows, your ability to add or change functionality without breaking things_

I disagree unless all your changes are really shallow. You change the structure of your application in significant ways and you'll break the tests too. So now you have two problems.

<comment><USER16> The code and the tests go together. You don't just make a pile of code, and a pile of tests, and hope they all go together right.

You have some big tests that are general and test that all the components work together, but for each component you have lots of little tests, and if you are going to change the component you change the tests FIRST. That's TDD.

You deliberately break the tests before you change one line of the actual code.

<comment><USER15> See, I think the value in tests would be that they are reusable. If you're smart enough to write a test for a situation, then you're smart enough to code for that situation in the first place (and conversely if you miss an edge case in code, you're just as likely to miss an edge case in testing). If you're constantly rewriting your tests -- what's the gain?

Now certainly writing everything twice is actually a great way to catch errors. NASA does that with the shuttle. But I wouldn't argue that its faster.

I prefer to just liberally sprinkle my code with run-time assertions. We have a small defect rate even after pushing out massive structural changes to the application. The bugs that we do have tend to involve an unpredictable set of conditions that no automated test would ever be written to find.

</comment></comment></comment></comment></comment><comment><USER17> Well, perhaps uncle Bob should read not only Joel's column but also Peter's book. JWZ is not alone in that book (Coders at Work) about not using fancy stuff. C++ gets a pretty universal smackdown from all there. In fact, one of the hackers there preferentially codes in assembly, because C is not close enough to the machine.

There are many nuggets there about IDE, unit testing, proof of program correctness, literate programming, design patterns. My reading of the book is that if your gig is agile or TDD or templates, you will have a cold audience in those coders. Even if you bring it on with attitude.

<comment><USER18> JWZ says that one of his methods to smell bad developers is finding if they are too excited about C++ and templates.

</comment></comment><comment><USER19> _Unit testing (done TDD style) does not slow you down, it speeds you up._

I do a lot of unit testing myself, but I know many programmers for whom unit testing does slow them down. Some people get so caught up in unit testing and refactoring for better testability that they either get nothing done. And some people do it wrong, test for extremely specific behavior, and their code becomes impossible to change. I have also known people that try TDD but end up failing to write code that they know how to write but they don't know how to test. It is not a panacea. You have to "do it right".

Contrast that with something like source control. It is hard to waste tons of time on source control that you could have saved if you just didn't use source control. It is fairly easy for even the most incompetent programmers to use source control.

</comment><comment><USER20> It's better to ship shit than not at all, but it's better to ship late than to ship shit. The problem is that if you ship too late, you don't ship at all.

<comment> rm-rf I've been on the 'shipped shit' side of applications a couple times. Ten's of thousands of customers and a shiny new app that could only be described as shit.

I'd have rather had the product late.

<comment><USER7> But would the customer?

</comment></comment></comment><comment><USER21> Look at the surrounding website. What is being sold by Object Mentor? Training, consulting, books, advice. Not software.

<comment><USER11> How could anyone upmod that? It's pure _ad hominem._

<comment><USER7> No it's not. It's an instance of "cui bono", and skepticism about credentials.

<comment><USER22> The comment can be read as "you're just saying that because you sell training, consulting, books, and advice, not software." Which absolutely has nothing constructive or destructive to say about the merits of Uncle Bob's argument. Looks like an ad hominem to me.

</comment></comment></comment></comment><comment><USER23> "As for Joel's consistent dismissal of unit testing, he's just wrong about that. Unit testing (done TDD style) does not slow you down, it speeds you up. One day I hope Joel eventually realizes this. "

Bullshit. I call TDD more like "insecurity driven development". Perfect fit for big corps, where mistakes are punished, and being fast is not really rewarded. *hence the myriad of processes to do even simple check-ins.

There is much better ways to deal with it: 1\. Design interfaces, that implement the features you think you need. That's like the outline of your essay.

2\. Have classes that implement them (put all messy code there). Write your essay.

3\. Do some functionality testing on the features that are important, and can reasonable be measured (.ie. no functionality testing/unit testing in UI stuff). And make sure you use it. Unit test may catch only some stuff. Proof read it.

From my experience in my previous startups, If you have to ship in three weeks, unit testing is the very first thing that gets tossed out of the window.

At the end of the day, who cares if your product has few bugs. You got to ship something. And I am saying this from experience, where a product I worked is being used by over 2million of people. Buggy? Oh yes. Did the bugs kill the overrall experience, i don't think so. If we had missed that deadline, there was huge financial ramification for the company (apart 10s millions of dollars, it was a relationship breaker with the main client). We took our time to fix some of those bugs on subsequent releases.

If we had to do TDD, we probably would have never get done in time. Sure we might have found and fixed some of the bug earlier, but none of those bugs were detriment to the whole experience anyways.

The only time you really should care to test about even the most minuscule feature, is if you are doing some highly financial/sensitive stuff. Most starts are not in that field anyways.

<comment><USER24> "insecurity driven development" is probably a good alternate title for TDD, but instead of taking it at it's trollish face value it can generate a good analogy.

If you start walking down a dark alley - you start feeling insecure. You've got a few options from that point.

You can back out of the alley and hey, no more insecurity. A little embarrassing but you're feeling OK, you just have to go the long way round the block.

You can push on through the alley in the dark - something bad could happen or you could get through fine. You don't really know until you've popped out the other side.

Or you could carry a god-damned torch. Obviously when carrying a torch, you don't have it turned on all the time, just when you wander into darker areas where you're less sure of the environment. It lets you walk at full pace without stubbing your toe or getting mugged or whatever.

In more concrete terms: I'm a bit of a poor-weather TDDer (same with pair programming) If i start working on something that could be algorithmically challenging, cuts across multiple layers of our app, touches something scary (like our accounting code, because i don't want to lose any of our $$$), or am just plain stumped - I write a test. It fails. I make it pass. I write the next. I make it pass. I realise my code looks like ass, I refactor. The tests still pass.

I can give an actual example from this week. Our app is a large RoR app that serves multiple sites from the one codebase based on an internal DSL we have. We're in the final week of a must launch redesign (date was set because of a bunch of marketing, etc) and I get an urgent and large last minute change dropped on my desk (i'm sure you all know that feeling). I'll admit my first move wasn't to go TDD, I just went for the quick and hopeful move of quickly adding some code that looks like it should work to our DSL.

It didn't. So my very next move, knowing that I have a deadline I must hit with a risky technical change, was to start writing tests. If i hadn't, I'd have to be verifying my code works by checking around 3 different pages after a server restart which is both slow and 4 layers away from the changes. So it was faster in real time.

I'm not a big fan of TDD zealots, TDD is just another tool in the box. But TDD haters really get my goat. You're willfully shutting yourself out of a tool that can make your life easier, and help deliver code faster.

<comment><USER25> You're right, it's weird how people don't understand, don't write the kind of tests that slow you down; write the kind that help you work faster by automating the manual testing you'd be doing otherwise. Test things that you think might break, or you want to make sure won't break and skip testing the dead simple stuff where you feel it'd be a waste of time. You don't have to test everything. Seriously, if some strategically written automated tests don't speed you up, you're doing something wrong.

</comment></comment></comment><comment><USER26> I don't use Visual Studio for work but I've used it for some side projects. What's wrong with that? Not sure why author doesn't like it. Agree with rest of the article though, to extent.

<comment><USER27> He seems to be more of a UNIX kind of guy.

</comment></comment><comment><USER28> I disagree with his post. Maybe this kind of approach works for employees ... but when you are an entrepreneur and need to get the think done real fast not because your boss is asking but because if dont do that you are dead ... the Joel approach is much more realistic.

At this scenario, the idea "Be smart. Be clean. Be simple. Ship! And keep a small roll of duct tape at the ready, and don't be afraid to use it." is just impossible. You have to choose and you have to choose really fast.

</comment><comment><USER29> Can I ask, not to make a point but because I genuinely don't know, what software Uncle Bob Martin has shipped? What products has he worked on?

<comment><USER30> "Can I ask, not to make a point but because I genuinely don't know, what software Uncle Bob Martin has shipped? What products has he worked on?"

AFAIK, he is the chief maintainer of Fitnesse. It is not particularly ground breaking code, and is by no means an epitome of design brilliance. That said, at least he walks the walk and puts some code out there (like Kent Beck [junit] and unlike the rest of the agile "gurus". )

Most of the agile "gurus" can't code for nuts(e.g: Ron Jeffries's "Sudoku Solver" attempt is a public example of how _not_ to use TDD, as is his book on TDD ing which is full of pious agile homilies and terrible code).

It is instructive to make a list of the initiators of the Agile Manifesto and try to find some code written by them so we can judge their skills. Mostly crickets chirping.

<comment><USER29> I had no idea that there were famous "TDD-ers" or "Agile-ers" that were infamous for not being able to code at all. I just don't keep track of this stuff that closely. Thanks!

</comment></comment></comment><comment><USER10> Simplicity often follows good design.

Duct taping seems to be at odds with simplicity. Joel's advice to just duct tape it would lead to crappy, unmaintainable code just as often as over-design would.

</comment><comment><USER31> If you're wondering whether either party in this discussion has any new insights or ideas to share that you haven't heard of before, do yourself a favor and completely ignore all of this masturbation.

Here, I'll summarize the conversation:

"Quit dicking around and ship!" "Sure, but you don't want me to ship shit!" "C++ sucks!" "C++ sucks, but sometimes it's a necessary evil!"

There, saved you an hour.

</comment><comment><USER32> Joel's point wasn't that some programmers aren't smart enough to use C++ plus COM plus multithreading.

He just said that humans aren't smart enough. They, however, might think that they are. Which is sad.

</comment><comment><USER33> _In Joel Spolsky's recent blog he talks about "Duct Tape Programmers"._

I'm not sure I trust anyone that doesn't know the difference between a "blog" and a "post".</comment>


Jimmy Wales on Italian Wikipedia black-out - <AUTHOR> http://www.journalismfestival.com/news/exclusive-ijf-interview-of-jimmy-wales-co-founder-of-wikipedia/

<comment><USER2> > The Italian government has just announced (16.30 CET, 05 October) that it > will modify the proposed law to include only large online news websites and > that all others (including blogs and Wikipedia entries) will be excluded. > This is widely seen as a victory for the Wikipedia campaign.

Seems to me like exactly the outcome the initiators of the law desired. Make an obviously absurd first draft, "tone it down", get it passed and everybody's praising them for their moderation. Meanwhile, it's exactly the "large online news websites" that were targeted.

<comment><USER3> Indeed. I note that Jimmy Wales is not fooled:

 _I think it is a victory for Wikipedia, but remains a serious blow against press freedom in Italy._

</comment></comment><comment><USER4> An interesting angle of this, which Wales highlighted, is that it was a community decision made entirely by the Italian Wikipedia's editors. Afaik, that makes Wikipedia the only top website where the _userbase_ controls the website in some sort of effective, practical manner, so that it's even possible to temporarily take it down as a protest. With most other sites, it would've had to be a top-down decision of the site owner.

I suppose the next closest might be convincing people to mass-blank their tumblrs, but that has a certain collective-action-coordination problem.</comment>


Apple's App Store bypassed by Russian hacker for in app purchases - <AUTHOR> http://nakedsecurity.sophos.com/2012/07/14/apple-app-store-bypassed-by-russian-hacker-leaving-developers-out-of-pocket/ <comment><USER2> I'm not really familiar with how in-app purchases work, but it sounds like they result in some kind of receipt on the phone that the app can then check to know that you've made the purchase and so can enable the appropriate content or feature.

If that's the case, then once Apple fixes the protocol to block further exploits, would they be able to push something to the phone via an update that would check all the receipts on the phone against those that Apple records as having been legitimately purchased, and either disable the illegitimate ones, or even better charge for them?</comment>


What questions to ask when hiring a Front End Developer - <AUTHOR> https://www.gapjumpers.me/questions/mckinsey-digital-labs/qs-160/

<comment><USER2> If you're asking 'is this a good interview question', I'd suggest no.

A few reasons. 1) I've only done a few code sample interviews, and some I've really enjoyed. But I had two which were open ended like this and just said "design a system that does x". Well, how far do I go in that design? If I spend two hours doing something fairly simple, and somebody else takes a day and ends up with the same and a third person takes a day and ends up with less than I did. As an employee, would you be able to tell who spent what amount of time? Would I loose out because I don't have as much time to spend as person X?

2) 'similar to Wikipedia on Android'. Great, I don't have an android device. Maybe I can find a video of it online, but will I get the nuance of the interface you're asking me to design

3) A simple application to browse titles, might be too simple, I could just create a list that grabs some json from a server and displays it. Is that really all you need to judge a front-end dev?

You want to test their javascript and css, so give them a moderate interface design, tell them to implement feature X, have that feature include something like a filter function with animation. Something that lets them show you in about 10 minutes, that they know their craft.

One suggestion on a previous HN post that I tried for fun, and it worked well was to make a simple timer that you could change the direction of the clock output from count down to count up. Took about 20 minutes.

</comment><comment><USER3> Can you tell the difference between shit and Shinola?

But seriously...

Ask them to write a modest Javascript program, but not one that is commonly done - so not like rollover links or drop-down menus.

Don't make them do it on a whiteboard. Give them a computer and let them do it at their own pace. Put all the usual tools on it - Firebug and so on.

However, observe them while they are developing the program. Do they actually _use_ any of those tools? If not, either they are 1337, or they don't actually know that those tools even exist.

I am completely convinced that most JS coders don't even know there is such a thing as the Javascript console.</comment>


Show HN: Startup funding visualised - <AUTHOR> http://klimslava.github.io/startup-funds-visual/

<comment><USER2> Great visualization of crunchbase (I suppose). Really well done.

<comment><AUTHOR> Thank you, I used data from the "Investor Leadboard"</comment></comment>


Ask HN: Is the "SEO is Snake Oil" Myth Dead? - <AUTHOR>

I've noticed a considerable drop in the "SEO is Snake Oil" meme this last year.<p>Will the myth die totally in 2011? <comment><USER2> seo matters - its hard to create an argument against that.

certain seo practices, generally promoted by the firms claiming to get you to the #1 spot in google, are snake oil.</comment>


Discussion with George Soros at MIT - <AUTHOR> http://techtv.mit.edu/videos/1264-a-conversation-with-george-soros

<comment><USER2> Wow thanks for posting this I was looking for a good lecture to watch. Not only does this talk have interesting ideas, it is also good to learn from Mr Soros on the pursuit of knowledge and how to live as a human being.</comment>


The 1st International Corewar Programming Contest - <AUTHOR> http://www.corewar.info/tournament/icpc1/ <comment><USER2> How can this be called the first international corewar contest? I was participating in corewar contests in the early '90s that were certainly international. Yes, I can remember when the International Core War Society (ICWS) was active and the quickscan had yet to be invented. :) (Actually for all I know maybe corewar strategy has moved on so far that no one even uses quickscans anymore, although since I see they limit maxsize to 20 it is probably specifically to prevent them)

Janzert

<comment><AUTHOR> I guess the ones in the early nineties were only international in theory, as the internet was not as widely in use yet. Or they simply didn't call themselves international, even if they effectively were.

Other than that, no idea :-)

<comment><USER3> > " _early nineties_ " " _the internet was not as widely in use yet_ "

huhwha? Get off my lawn!

</comment></comment></comment><comment><USER4> Corewars was dead, or so I thought.

The general category is "programming games": <http://en.wikipedia.org/wiki/Programming_game></comment>


Google Executive Missing in Wake of Egypt Protests  - <AUTHOR> http://blogs.wsj.com/dispatch/2011/01/31/google-executive-missing-in-wake-of-egypt-protests/

<comment><USER2> I hope he's alright.

OT: A Google spokesman said: "We care deeply about the safety of our employees."

It might be the WSJ's fault in taking it out of context, but whenever a PR flack says something like this my gut always yells, "lie!" like they had something to do with it.

<comment><USER3> Google had nothing to do with it. My thoughts are with Wael and his family, and I hope that Google applies inquiries and whatever pressure is possible in case he's been detained by the Egyptian security services.

</comment></comment><comment><USER4> This is bad stuff: "Very worried as it seems that government is planning a war crime tomorrow against people. We are all ready to die."

<comment><USER5> He tweeted that last Thursday, so why not judge how bad the situation is on what has happened since then, rather than what one person said about a "tomorrow" that is now four days ago?

<comment><USER4> Pardon me for getting my news from the Wall Street Journal.</comment></comment></comment>


Ask HN: Looking for a great personal hosted blog alternative - <AUTHOR>

I've been around town. I've done Wordpress, Blogger, Tumblr and finally Posterous. With Posterous' recent acquisition by Twitter, I would like to move my blog once again.
I'm looking for a hosted solution (but I will settle for a self-hosted one if necessary), preferably simple but allowing you to modify the style/layout of the page/blog. I think Calepin is a cool idea, but I'm still exploring other ideas.
The blog would have code snippets and other rants. Is there anything anyone would recommend? <comment><USER2> Go for Jekyll-Bootstrap [1]. I think it's pretty much what you're looking for and is a breeze to use. I use it for my blog [2] too and here's why:

1\. Static blog generator = blazing fast and no more managing databases.

2\. Hosted on Github for free.

3\. Love writing posts in Markdown!

It's pretty easy to set up and has nice documentation. In case you have trouble using it I'll be happy to help. (You could even fork into my blog's repo [3] if you like and get started.)

[1]: <http://jekyllbootstrap.com/>

[2]: <http://blag.diwank.name/>

[3]: <https://github.com/creatorrr/I-Blag-Too/tree/gh-pages>

<comment><AUTHOR> This looks to be right up my alley, I'd love to give Github more of my data :)

<comment><USER2> Haha! Feel free to shoot me an email in case you get stuck somewhere (it's pretty simple but just in case.)

email@example.com

<comment><AUTHOR> Will do, I'm setting it up now. If I run into anything I'll shoot you an email. The first thing I'm seeing is a lack of pre-made themes. Maybe I'll start a repo with some community themes.

</comment></comment></comment></comment><comment><USER3> If one of the static blog generators (Jekyll etc.) fits your bill, or you write your own, you gain the freedom to use any vaguely competent web host with about one minute of setup.

(NearlyFreeSpeech works for me, is really cheap for a simple static personal blog, and supports rsync via ssh.)</comment>