SpaceX is hiring a Farmer in Texas - <AUTHOR> http://www.spacex.com/careers/position/5749 <comment><USER2> My best guess is that SpaceX had to buy a lot of land in the buffer region surrounding their testing facilities in McGregor, and they're just looking to put it to good use.

In addition to the direct income from farming, farming the land would maintain its eligibility for an "open-space appraisal" under Texas law, which would reduce its property taxes by changing the valuation methodology for the land. Although there are two types of agricultural property tax exemptions in Texas, only the open-space appraisal eligibility requirements allow the owner's principal source of income to be something other than farming.

Sources: [http://recenter.tamu.edu/pdf/1361.pdf](http://recenter.tamu.edu/pdf/1361.pdf) [http://bigskyranchtexas.com/everything-you-want-to-know- abou...](http://bigskyranchtexas.com/everything-you-want-to-know-about-texas- ag-exemptions-for-your-land/)

<comment><USER3> I think your guess is correct. As the announcement says:

       This position will be required to work around test schedules as
       necessary to ensure the successful crop production does not
       interfere with testing progress.

</comment></comment><comment><USER4> So this is how a business writes a job position for a farmer. Interesting

Now let's just hope HR and the interviewers don't require the applicant their Github profile or something.

</comment><comment><USER5> " typically, SpaceX employees work a minimum 50 hour week" yehaa.. just sleep in the office!

<comment><USER6> Hah, I don't even think that would be legal where I live. I'm used to employers having to pay for every hour a person works. People can work overtime for free, but the business can't force them to. It sounds like spacex is quassi forcing them to work more hours than they are being compensated for.

<comment><USER7> For highly skilled people you generally have lots of options, it's very difficult for a company to require 50 hour weeks without paying a salary higher than a company that requires 40 hour weeks.

<comment><USER4> "Oh but you're working with cool stuff! And you have a foosball table and free lunch"

<comment><USER7> Well... then you're more interested in cool stuff, foosball tables and free lunch than cold hard cash, but again, for highly skilled people there are many companies willing to offer boatloads of cash for those that can figure out how to do their own laundry, and buy their own sodas.

</comment></comment></comment></comment></comment><comment><USER8> I don't know whether I'm more excited about the fact that this could be an interstellar-themed joke, or that SpaceX is trying to do something interesting/ambitious in the farming industry.

I know companies are mostly in it to profit, but it's hard not to like/want to think the best of SpaceX

<comment><USER9> Based on some other comments in this thread, it looks much more mundane- a simple tax dodge.

<comment><USER10> Closed as _Working as Intended_

Reason: Relevant tax regulations are in place to create incentives for productive land use.

<comment><USER9> Aye, "dodge" was probably harsh language on my part. Saying they're taking advantage of tax credits would have been better.

<comment><USER11> "Effective utilization of tax policy."

Frankly, I'd rather the money go into Elon's pocket than the government's.

</comment></comment></comment></comment></comment><comment><USER12> Isn't this technically a farm-manager position, as the occupant will neither own nor rent the land?

<comment><USER13> That doesn't necessarily affect the definition of a farmer [http://en.wikipedia.org/wiki/Farmer](http://en.wikipedia.org/wiki/Farmer)

<comment><USER12> As Wiki confirms, it's usual nowadays to reserve the term for freeholders (or tenant-farmers, which WP oddly doesn't mention at all).

</comment></comment></comment><comment><USER7> I misread the title, I thought they hired some farmer who builds a rocket in his barn, similar to the movie The Astronaut Farmer.

Turns out it's a regular farmer... growing rocket fuel?

Actually... if the new rocket is using methane could they be growing crops that decompose into lots of methane? Are they experimenting with alcohol/LOX? Are they growing biofuel to refine to RP-1?

</comment><comment><USER14> Requirements:

*Understand the implications of the weather and make contingency plans

</comment><comment><USER15> I first thought this was for testing farming in space/Mars. But yes, in reality it's for tax reason. And it doesn't make sense to let all that land go unused.

Interestingly I know a family that 'farms' on Maui so they can live on a land that's zoned for farming. Supposedly the land is zoned for farming, so they bought the land, built nice houses and also farm to satisfy the requirement for zoning. But of course they are not farmers...

</comment><comment><USER16> If you have ever driven around Texas, you will see "farmland" like this all over the place. A random factory or warehouse with cows grazing around it is quite common, even in the greater Austin area.

Like other's have said, it's for tax reasons. I figured they didn't even bother trying to make an actual profit from the farm, but maybe in this SpaceX case they will since the scale is so large.

</comment><comment><USER17> Dang, I have to be a US citizen. Surely SpaceX's agricultural activities aren't subject to space industry regulations?

<comment><USER12> As the position requires ten years of experience in Central Texas agriculture specifically, it's probably moot in this case.

</comment></comment><comment><USER18> That page doesn't zoom well. Hit Cmd-Plus several times to magnify and see how it destroys the text. I would have expected better from what wants to be a professional presentation. No responsive web sites for astronaut farmers.

<comment><USER19> I'm on Chrome and Win7 and it was fine for me (aside from the text column scootching rightward, starting at 175% zoom, but just scrolling to the right fixes that).

</comment></comment><comment><USER20> So is it to train people to create farms on space colonies?

<comment><USER21> It's almost certainly to qualify for a Texas property tax break.

All kinds of people in rural Texas grow some hay or keep a couple cows on their extra acreage to save on taxes.

</comment></comment><comment><USER22> the position is subject to ITAR.

<comment><USER23> Dishwashers[0], baristas[1], line cooks[2], and porters[3] are all subject to ITAR as well. Can't afford to let China learn our latest China scrubbing technology.

[0] [http://www.spacex.com/careers/position/5715](http://www.spacex.com/careers/position/5715)

[1] [http://www.spacex.com/careers/position/5839](http://www.spacex.com/careers/position/5839)

[2] [http://www.spacex.com/careers/position/5708](http://www.spacex.com/careers/position/5708)

[3] [http://www.spacex.com/careers/position/6151](http://www.spacex.com/careers/position/6151)

<comment><USER24> I don't want to jump on the conspiracy bandwagon, but the baristas heard a lot of interesting technical conversations. Also, in the University bar, we use to grab a paper napkin and write in it, but we don't work with classified information.

<comment><USER25> Good enough time to mention this again then: [http://www.washingtonpost.com/politics/at-cia-starbucks- even...](http://www.washingtonpost.com/politics/at-cia-starbucks-even-the- baristas-are- covert/2014/09/27/5a04cd28-43f5-11e4-9a15-137aa0153527_story.html)

</comment></comment></comment></comment><comment><USER26> Ha! They say to work at SpaceX you have to be extremely flexible, and work 50 hours a week. They're saying that to a farmer, with a straight face.

</comment><comment><USER27> I can't help but think about the plot of Tom Clancy's Rainbow Six.

<comment><USER28> I was thinking more of Interstellar. Presumably they'll train him to be a pilot and keep him in reserve for when the Blight arrives.

</comment></comment><comment><USER29> > SpaceX is governed on the basis of merit, competence and qualifications and > will not be influenced in any manner by ... veteran status, disability > status ...

> Applicants wishing to view a copy of SpaceX's Affirmative Action Plan for > veterans and individuals with disabilities ...

Seems a bit contradictory?

<comment><USER30> I think "influenced" here is meant in the negative sense (you will not be punished for your disabilities).

It's like how the the 14th amendment is not meant to get rid of advantages for whites, but of the disadvantages for pretty much every minorities.

<comment><USER31> "influenced in any manner" seems pretty non-ambiguous.

Also, affirmative action did face significant 14th amendment challenges.

</comment></comment></comment><comment><USER32> > Must be able to climb ladders and work in tight spaces.

This is the most interesting bit.

<comment><USER33> Farming requires that.

</comment></comment><comment><USER34> Interstellar...it's happening

</comment><comment><USER35> The resume's being sent in for this will be worth a read. I hope someone hacks SpaceX and leaks them. ;)</comment>


Ask HN: Is sitetalk.com a scam? - <AUTHOR>

Here's some basic info: The company is called Unaico Ltd which supposedly stands for United nordic alliance investment company, and what they do is they want to essentially copy facebook with their own version called SiteTalk and make it sort of a marketing platform with a lot more features such as an integrated webshop, entertainment plattforms, e-Learning and many more. Their business model looks like a snowball model: http://www.slideboom.com/presentations/242294/SiteTalk-%26-Unaico---make-money-online<p>The reason why I'm asking this is because a friend of mine invested 2k€ in this company and it looks very suspicious to me. It's also not very easy to find "real" facts on the internet. <comment><USER2> You should have a look at - [http://sitetalkunaico.wordpress.com/2010/02/03/concerns- abou...](http://sitetalkunaico.wordpress.com/2010/02/03/concerns-about-unaico- sitetalk/) as well as, the comments as they have some information in there which you may find useful.</comment>


Show HN: Streamus - An open-source Chrome extension for managing YouTube music - <AUTHOR>

Hey everyone,
I'm a young developer with a penchant for music and quality software. I have spent the last 16 months developing an open-source Google Chrome extension which attempts to simplify the experience of using YouTube to play music.
Streamus: http://streamus.com/
Streamus currently has 14,000 users and is the #1 trending / #4 ranked 'fun' extension in the web store. I've built it entirely from scratch while teaching myself the basics of BackboneJS (and Backbone.Marionette), RequireJS, GruntJS and many other, smaller libraries. It has been a great learning experience.
I would love to field any questions about the product, challenges encountered while creating it, etc. Really anything you'd like to know -- I'm all ears and super excited to discuss it.
Here's all the source code if that's your thing:

  https://github.com/MeoMix/StreamusChromeExtension
  https://github.com/MeoMix/StreamusWebsite
  https://github.com/MeoMix/StreamusServer
 <comment><USER3> Awesome extension - It would be nice if I could add a youtube mix. For example if I go to [http://www.youtube.com/watch?v=nlcIKh6sBtc](http://www.youtube.com/watch?v=nlcIKh6sBtc) I see a mix starting from this song. I'd like to play that mix. I don't know if there's a way to do that.

Great job.

<comment><AUTHOR> Hey,

Yep. I am working on it. YouTube mixes utilize YouTube's V3 API (exclusively) where as most of their data can be access via the V2 or V3 API. When I first started working on the project V3 wasn't out yet and it has been slow become a production worthy API, but I'm hearing better things about it now and am certainly planning on revisiting the code.

Here's a GitHub issue from 4 months ago for you to track the issue: [https://github.com/MeoMix/StreamusChromeExtension/issues/30](https://github.com/MeoMix/StreamusChromeExtension/issues/30)

I'm glad you like it otherwise! :)

<comment><USER3> Cool, keep up the good work.

</comment></comment></comment><comment><USER4> Can you advise me on how to proceed using the stuff I learn?

How did you learn these stuff and used it to make a product ?

How to practise the programming stuff one learns?for eg I am currently learning javascript and jquery library,Can you suggest on how I may improve my skills?

</comment><comment><USER5> MeoMix - this is an awesome app. You said you taught yourself the libraries. I have an engineering background, and a little bit of programming (VB) - <USER2> long will it take to learn to code a chrome extension and any recommendations on websites to help with this ? thanks !

</comment><comment><AUTHOR> Alrighty. Well, I'm disappointed nobody has any questions, but hope to continue to improve the software and maybe someone will take interest another day. :)

</comment><comment><USER6> I love it, this is awesome. I wish there would be a fast "play next" feature. Great job, kudos!

</comment><comment><USER4> Its awesome,good job.

</comment><comment><USER7> Like it so far..

<comment><AUTHOR> Hooray! Let me know if you think I should change anything!</comment></comment>


Wow, Perl 6 [video] - <AUTHOR> https://www.youtube.com/watch?v=paa3niF72Nw <comment><USER2> Author here.

Never would've thought my slides I used for a presentation to 20-something people would make it to front page of HN...

You can watch the actual presentation here: [https://www.youtube.com/watch?v=paa3niF72Nw](https://www.youtube.com/watch?v=paa3niF72Nw) I also wrote down the answers for questions that came up during the presentation here: [http://blogs.perl.org/users/zoffix_znet/2016/03/wow- perl-6-t...](http://blogs.perl.org/users/zoffix_znet/2016/03/wow-perl-6-talk- slides-recording-and-answers-to-questions.html) (I now updated to include these in the slides too)

And to respond to some commenters, yes, some features (like the shrug operator) were presented in a humorous fashion. No one's advocating you actually make your code look like an orgy of emoticons. I didn't use PPT for the slides, because I like the freedom of needing only a browser to display the slides. They weren't really meant for public consumption, thus the UI is not entirely obvious.

I'm unsure why the person who posted this on HN posted only the slides and not the recording or the blog post. But I have no control over that.

And if anyone has any more questions, you can join us on IRC at irc://irc.freenode.net/#perl6

Cheers.

<comment><USER3> > I didn't use PPT for the slides, because I like the freedom of needing only > a browser to display the slides.

What did you use to make the presentation? Custom HTML/JS?

<comment><USER2> No, I just took it from another presenter and changed the content of the slides. I believe it's actually a themeable slideshow thingie someone else developed.

<comment><USER4> Got a git url?

<comment><USER2> Only to my slides: [https://github.com/zoffixznet/TPM-2016](https://github.com/zoffixznet/TPM-2016)

</comment></comment></comment></comment></comment><comment><USER5> My boss came up with a good analogy to describe why some people like Perl and why some don't. There are some people who appreciate games that are very abstract and with simple rules from which complex behavior emerges, such as a game like Go. These people tend to be drawn towards programming languages that are built out of small pieces with a consistent philosophy from the ground up, such as lisp or Haskell. There are others who enjoy games with complex rulesets and lots of detail. These people probably like Perl with all its nooks and crannies.

Perl code has many things to discover, and the way you assemble larger things relies on unique features of these smaller things. While in the end both approaches have you building a larger thing out of smaller things, the former approach is more likely to be built out of all of the same small thing, while the latter is more likely to be built out of a bunch of different small things. I think that's why some people can find Perl code to be "dense" and others find it "expressive".

I think Perl 6 was built with a much more consistent philosophy behind it than Perl 5, so this analogy breaks down a bit. But the user experience, the "Perlishness" of it, still remains. To the extent that people pick sides in language wars, I hope this analogy can help people appreciate the other side.

<comment><USER6>
      > There are some people who appreciate games that are very abstract and with
      > simple rules from which complex behavior emerges, such as a game like Go.

I love Go, but I despise perl. Perl is not built on "very abstract and simple rules. For instance, this code is quite hard to reason about:

        1: my @to-infinity-and-beyond = 0, 2 … ∞;
        2: say @to-infinity-and-beyond[1008];

        # OUTPUT:
        # 2016

This is self-indulgent mucking around. An inference procedure which goes from "0, 2 … ∞" to "the even-nonnegative integers" is bound to lead to unpleasant and hard-to-debug surprises.

<comment><USER7> I'm confused. What's so hard to reason about that? It's very obvious that it prints 2016. Maybe "infinite lazy lists" isn't something that most mainstream languages consider, but honestly, they're very handy and hardly "self- indulgent mucking about."

(Though I'd probably use an asterisk instead of the infinity symbol)

<comment><USER8> Indeed, if we're going to hold up Haskell as an exemplar of simplicity—which, in its philosophy if not always in its implementation, I think it is—then we can hardly ding Perl for including lazy lists!

</comment></comment></comment></comment><comment><USER9> Some of this looks great. I'm suffering through making some internal tools an old version of php after deprecating some older perl 5 cgi scripts on an even older CentOS box, and reaaally not enjoying it.

I understand the value of coding in other texts, but I still get a little squicked out seeing the characters for pi, and union, etc in code. I know they have ascii equivalents, but its not saving a keystroke, exactly. Though, it does remind me of some joker Swift posts where the identifiers were all emoji's. I'd keep interns away from it for now.

The built-in grammar parser looks great! C-lib integration looks promising. Multi-methods look nice. Operator overloads look ... safe-ish-er than C++. Simpler profiling. Perl5 module + other language in-lining looks great and terrible. "Whatever" wildcards don't quite seem like full pattern-matching, but better than $_ or endless shift loops.

Overall, seems pretty good! If I can just drop it in for my "perl -lne 'm|($regex)|g&&print$1'" command-line use I might swap it out sooner than later.

<comment><USER2> You read a piece of code many more times than you write it, so even if an extra keystroke is needed to make the code more readable, it's worth it, IMO.

But, I find it very easy to type all that fancy stuff with XCompose sequences. My keyboard also has a bunch of media keys I never use, so it's probably possible to map those into the unicode ops.

</comment></comment><comment><USER10> I for one am extremely excited for Perl6's ecosystem to grow, documentation to increase, and for the performance optimizations to reach maturity.

Perl5 has raw text processing power, but Perl6 kicks that into overdrive with a much cleaner language (clean and powerful OO with a MOP), with cool goodies from a dozen other languages. I think this may be the first decent contender for the 100 year language if it becomes production worthy.

<comment><USER11> "100 year language..."

God I sure hope not. (Only if it's a lot easier to maintain than Perl 5 maybe...)

I have bad feelings about Perl after having to parse and cleanup a bunch of abominably written multi-thousand line pages full of regular expressions and all manner of cleverness. I mean, I actually hated Perl so badly I believed it was the worst invention ever. Then I saw a well written project and was easily able to understand and felt slightly less negative. So it's not entirely the language, but to this day seeing 'Perl' brings negative emotions to the surface. Something like PTSD I guess. It will probably take 100 years for that to go away and me to willingly look at anything called 'Perl'.

<comment><USER12> Believe me, I've seen bad Perl[1]. Luckily I was already very familiar with Perl, so I was able to discern that the developer was just batty.

1: Global variables everywhere. Every function call did not pass arguments, but instead they assigned data to global variables in the immediately preceding lines, called the function, and then used those global variables. Copious use of SQL where every query was saved in a variable called $stmtA, $stmtB or $stmtC, depending on how many levels of sub-querying needed to be done in a loop. Obscure variable names in general. Zero comments. No use of modules, everything in one flat text file (for 5-10 or more flat text files), no code reuse. PHP used in the same project, to the same standard (one large sprawling multi-thousand line PHP file). This was an open source project, and to this day I wonder if possibly it was all a purposeful design decision, so they could charge for development requests.

</comment></comment></comment><comment><USER13> For a while there I was confused on whether this was an April fools prank or not. Which certainly does justice to Perl.

<comment><USER14> I thought it was strange to be able to use greek characters and the like in the code, and then I arrived at the slide about Custom Terms and Operators[0] and... now I think it's an April fool.

[0] [http://tpm2016.zoffix.com/#/12](http://tpm2016.zoffix.com/#/12)

<comment><USER15> > _I thought it was strange to be able to use greek characters and the like in > the code_

We have been doing that for AGES. Not just in languages like APL, but even in Javascript, Go and tons more...

[https://rosettacode.org/wiki/Unicode_variable_names](https://rosettacode.org/wiki/Unicode_variable_names)

<comment><USER14> Yes, Unicode variables are a thing, but I am afraid it makes the language less approachable if it requires a special keyboard or at least some tweaks in the IDE to input those characters - and I say that as someone who added some macros in emacs to enter French accentuated characters with an American keyboard. I think it's one of the reason APL isn't much used these days...

<comment><USER16> Perl 6 does not require use of Unicode characters in code and does not require a special keyboard.

It does require some mechanism to input Unicode if that's what you want to do but that wil be true for any language -- it's nothing to do with Perl 6.

</comment></comment></comment></comment></comment><comment><USER17> So just curious can anyone share their uses of Perl 6 and if they have anything going on in production? I already know that CraigsList at one point (if not still) is powered by Perl, but I'm not sure which Perl that is really.

On another note: I find it quite fascinating that Perl 6 is implemented in Perl 6, that would in theory allow you to implement Perl for .NET or the JVM and retain plenty of Perl as a result if I'm not mistaken.

Edit: fixed up my post

<comment><USER10> Answering your question:

I haven't heard of anything in PROD yet (there is a QUORA question on this), but I know there are several Perl shops that would jump on this when it's fully ready. You can use it today for most things (assuming hard performance isn't needed). When the optimizations and JIT are complete, you'll have a very fast OO language with optional types. My intended use cases are for pretty much anything that doesn't need a GUI like a .NET desktop app. I have a LOT of data at work and look forward to using the Grammar functionality to build useful and beautiful parsing code.

I believe Perl6 is bootstrapped by a subsection of Perl6 called NQP (not quite perl)which is written in C.

<comment><USER9> I remember an earlier Perl6/Rakudo post here (I think), where chromatic showed up and mentioned a few things that had been running reliably for a couple years in his stack. That it was at least "good enough" for his purposes.

<comment><USER18> That's hard to believe. I've never heard chromatic have anything positive to say about Perl 6.

<comment><USER19> Chromatic used to be a proponent of Perl6, defending it against criticism and claims of being vaporware. I don't quite remember when he became a critic, 2010-ish or so.

<comment><USER20> Around the time when Rakudo further detached itself from Parrot, and declared an effort to support alternative VMs (eventually writing one of its own).

<comment><USER12> No, I think it was well before that, and he was just more vocal at that point. IIRC became rather disillusioned with the project quite a while back, and he wasn't even involved with it (maybe nominally) at that point.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> I'm reminded of the infamous quote from Star Wars prequel producer Rick McCallum: "It's so dense; every single image has so much going on."

</comment><comment><USER22> Confusing UI! Here is the video: [https://www.youtube.com/watch?v=paa3niF72Nw](https://www.youtube.com/watch?v=paa3niF72Nw)

I was planning to assist but had something else to do.

<comment><USER23> Confusing UI? It's text separated into a sequence of pages: you read a page and when you're done you advance to the next one and so on. I like that sort of UI, books use it too.

</comment></comment><comment><USER24> The title sums it up. Good ol' Perl text processing, plus awesome new list processing (will be useful for n-grams, etc.). My favorite is slide #85, though. Communication with other processes in Perl 5 is always a huge pain, and I can never get it to not hang; you have to unbuffer STDOUT via $|++, then you have to read from STDIN and maybe STDERR to keep it from blocking. The Java solution is similarly painful, requiring spinning up threads for reading each stream (see [http://stackoverflow.com/questions/14165517/processbuilder-f...](http://stackoverflow.com/questions/14165517/processbuilder- forwarding-stdout-and-stderr-of-started-processes-without-blocki)).

</comment><comment><USER25> There's a new Perl 6 book being written as we speak. I have high hopes that it can follow the excellent example of the Camel book. If it does, it can be the starting shot that Perl 6 perhaps still needs.

<comment><USER26> Mind sharing the name of that upcoming book?

<comment><USER10> Learning Perl6. It will be the continuation of Learning Perl, but for Perl6 instead of Perl5 I think. My bet is they'll (last edition had 3 authors)continue to publish both as both languages will survive for a long time until Perl6 wins out. There's also the possibility Perl6 just never really takes off, but I hope not.

Brian D. Foy has a WordPress site up for it.

There is a perl6 intro website as well that is awesome.

<comment><USER27> If you are taking preorders, you've got mine!

</comment></comment></comment></comment><comment><USER28> Hm. What is the origin of 'Texas symbols'? A reference to being old-fashioned or something? It's amusing, though I'm not sure it's the clearest euphemism

<comment><USER29> Everything is bigger in Texas...

Texas symbols are two or more ascii characters that replace a single Unicode symbol.

<comment><USER28> Herm. That does seem simpler. I should have thought of that. Still, weird name.

<comment><USER30> That is the most Perl name (and explanation) I can imagine. For some of us, that's the charm!

</comment></comment></comment></comment><comment><USER31>
      say "Code took {now - INIT now} seconds to run";
      # Code took 0.01111143 seconds to run

`INIT now` ... aka COMEFROM.

<comment><USER32> It's more like a label for code to run at start. Also shows the Perl 6 way to interpolate code within a string literal.

Compare to the rough Perl 5 equiv, for versions of Perl 5 before say existed:

      sleep 2;
      print "Code took @{[time() - $then]} seconds to run\n";
      INIT{$then=time();}

</comment></comment><comment><USER33> > sub prefix:<∑> (*@els) { @els.sum }

It is not exactly selling it ;-)

<comment><USER12> That depends on your audience. There's a far more people that know mathematical summation than know how to program. Allowing a language to easily make good use of preexisting knowledge seems like a good selling point to me. Making it optional, as in provided through a module seems a sane way to gate it as well.

<comment><USER33> I was just implying that Perl was jokingly called a "write once" language. It certiainly was for me. Remember starting a bionformatics project with it, and after a few months, I could not read my own code. This just reminded me of that.

<comment><USER34> "Perl gives you enough rope to you .." cit. Larry Wall. It is cause Perl is very expressive. I usually write code even my boss can read, and looks trivial remember Perl is inspired on natural languuages. On the other hand you can write very cryptic code, in every language, but Perl can be very tricky: use comments for the future you.

Learning Perl was a great excercise, after that I could learn JavaScript really easy not only cause they are so similar but cause Perl and its culture teaches you about programming. It is a milestone.

<comment><USER10> I will say that I started using Perl5 recently (big python fan). I expected everything to be crusty and bad. CPAN worked great, and the doc...my GOSH the doc is sooo good. It is everywhere. In my command-line, gazzillions of websites. I forgot what it was like to not be dependent on StackOverflow.

<comment><USER35> Perl Monks is far better than Stack Overflow for Perl questions, as they actively encourage the discussion that Stack Overflow avoids, leading to a greater understanding afterwards as opposed to just something that works.

<comment><USER10> I can't count the # of times a super helpful question was closed on StackOverflow for being "off topic" or being likely to cause a flame war. I do like Perl Monks, but wish the format was a little different UI wise. Def still usable though.

</comment></comment></comment></comment></comment></comment></comment><comment><USER36> I'm still upset with the perl6 devs for sending me down the Haskell rathole so many years ago, but perl brought a lot of pretty great things forward and it was by far the best text parsing language for entirely too long. I like what I'm seeing today and I'm willing to give it another shot. I am a bit concerned about whether perl is going to be able to gain momentum again.

It won't take too long before people start checking it out and there are some good real-world use case benchmarks.

</comment><comment><USER37> I am trying really hard to approach Perl 6 with an open mind, but my gut reaction to most of the code I see is negative.

It seems like the guiding principle was to create a language that gives you incredible freedom in terms of how you do things. While that is great in theory, in practice mentally modelling that expressiveness reduces the amount of attention I can devote to the specific problems being addressed by the code. Maybe if I put a lot of time in that would change; I don't see a big potential payout though, so I'm not going to bother.

With that being said, grammars look well designed. If all I was doing was parsing/transforming text, I would definitely consider using Perl 6.

<comment><USER38> I used to really like Perl, but endless operator-obfuscation nonsense a la C++, Perl 6, Scala REALLY makes me appreciate Lisp (should I ever get to use it again outside of 80s college work). Every function has a plain old name, no magic symbol operators, inner parens evaluate first. No bullshit.

<comment><USER39> > endless operator-obfuscation nonsense a la C++

C++? Ever looked at some "advanced" Haskell code?

<comment><USER40> I don't know why you got downvoted but Haskell also gives excessive freedom for infix operators with adjustable precedence, ability to make up new operators etc. and a lot of libraries use such operators excessively so I think you are right. Come to think of whenever I need to write a PEG or use a not-so-common typeclass I need to open documentation to see what juxtaposition of ascii characters to use where. On the other hand, I think the expressibility outweighs the cognitive overhead in case of infix operators, especially when using relatively common operators (Scala kind-of has a similar feature and I (ab)use it frequently and it is nicer and closer to math when combined with Unicode. Closeness to math is an important feat. when translating academic papers into code or vice versa).

<comment><USER38> The funny thing is I have seen many more damaging errors caused by operator precedence / grouping, which continue running and doing the wrong thing, than by type mismatch errors, which blow up and stop.

</comment></comment></comment></comment></comment><comment><USER41> I remember thinking the advanced pattern matching was nothing short of amazing when I read about it a while ago.

<comment><USER42> it was amazing in Erlang years ago, where it was probably borrowed from, as well as Elixir today lol [http://elixir-lang.org/getting-started/pattern- matching.html](http://elixir-lang.org/getting-started/pattern-matching.html)

<comment><USER41> Sorry, not what I meant. I was referring to the rules.

</comment></comment></comment><comment><USER43> I took a couple of minutes to chase the butterfly ...

It's featured here: [https://perl6.org/](https://perl6.org/)

 _" Hi, my name is Camelia. I'm the spokesbug for Perl 6, [...]"_

(image: [https://perl6.org/camelia-logo.png](https://perl6.org/camelia- logo.png))

and the link in the image leads to the 2009 rationale by Larry Wall: [http://github.com/perl6/mu/raw/master/misc/camelia.txt](http://github.com/perl6/mu/raw/master/misc/camelia.txt)

Also, some people were not amused: [http://www.perlmonks.org/?node_id=1149576](http://www.perlmonks.org/?node_id=1149576)

<comment><USER44> > _Also, some people were not amused:_

[http://www.perlmonks.org/?node_id=1149576](http://www.perlmonks.org/?node_id=1149576)

Eek. All work and no play makes Jack a dull boy.

</comment></comment><comment><USER45> I see a lot of Haskell-ish things there.

<comment><USER10> Haskell had a big influence on Perl6. Lazy evaluation is built in to the language just like Haskell. If you look at the bottom of the Perl6 website you'll see the Fibonacci sequence using a lazy infinite list.

Fun fact, one of the original Perl6 implementations was done in Haskell (the parrot VM I think).

<comment><USER46> Parrot VM is a separate project from Perl 6. It originally started as a VM that could handle Perl 6, but then decided it wanted to focus on being a general VM for dynamic languages. This led to a rift between the two communities.

Before all that happened, though, there was Pugs, which is the Perl-6-on- Haskell thingy that you are thinking of. A fair portion of the current Perl 6 test suite comes from the Pugs project, at least originally. And, IIUC, it was the success of Pugs that revived the Perl 6 efforts and led to the Rakudo project (Perl 6 implemented in Perl 6) which is what we still use today.

So yeah, it is definitely the case that Haskell had a big influence on Perl 6 both from a language design and a more raw "inspiration" in the sense that it literally might not have happened without it -- the original wave of Perl 6 development had largely failed and there was some serious burnout happening. Pugs, Haskell, and Audrey Tang managed to put the ship back on course.

A lot of history happens in 16 years, and I make no claim to know the truth of any of it. There are more than a few rants floating around out there that will give you a picture of what happened when, albeit from a ranty perspective. Hopefully one day it will all be collected in a more comprehensive historical document.

<comment><USER47> _It originally started as a VM that could handle Perl 6, but then decided it wanted to focus on being a general VM for dynamic languages._

I think this is misleading; one of the _original_ goals for Parrot was language interoperability, especially between Perl and P6.

<comment><USER46> Fair critique. I meant that in the sense that the original vision of Parrot was quite closely tied to delivering a VM which could handle P6. By logical extension, this would mean it could handle any given dynamic language.

However, I am talking about the focus shift that made Perl 6 just one among many of "client languages" (for lack of a better word). This was a distinct moment, at least as far as I remember it.

<comment><USER47> _By logical extension, this would mean it could handle any given dynamic language._

Not only by logical extension! One of Larry's primary goals was to "let any language use the CPAN", _through_ Parrot. Running Perl and P6 on the same VM, in process, without embedding libperl.so was the plan as far back as I can remember.

 _I am talking about the focus shift that made Perl 6 just one among many of "client languages"_

That's been a common, though unrealistic, criticism of Parrot for the past several years. Various contributors never had (or lost) interest in P6 but wanted to work on an multi-language VM. Expecting that all volunteers to a project have the same primary goal in mind is ridiculous and ignores decades of F/OSS contributions; it's easy to look at the Linux kernel and recognize that multiple competing business and personal interests can be shepherded into a technically useful result that meets a lot of those needs despite their competing interests.

People implementing `invokedynamic` didn't somehow make Java a second-class citizen on the JVM, for example.

You can certainly argue that we handled some of those competing interests poorly (I've argued this), but the "focus shift" argument rests on some questionable assumptions and ignores other, more important, concerns.

<comment><USER46> Hey chromatic, maybe you missed the parts where I explicitly said that my historical knowledge is only as good as the sources I have read (+/\- my sideline experience)? Please stop framing my clarifications as intentionally disingenuous. If you have additional historical perspectives to share, then by all means. I even explicitly asked for that in my original response.

Now, I think _you_ are also being a bit disingenuous. The Parrot team shifted focus. You can say all you want that the original vision was always all dynamic languages (which I already said, by the way). But to frame the original Parrot efforts as anything less than building a foundation for Perl 6 clashes with my own memory of the timeline.

If the JVM and the Java teams essentially stopped talking to each other, I would definitely consider that to be some form of collective decision making representing an overall shift in focus for the projects. That's more akin to what I remember of the Parrot/P6 split. Even your post hints at it when you say "Various contributors never had _(or lost)_ interest in P6". But again, I was only "involved" from the sidelines and am limited to the available materials, including yours, and synthesizing them from individual rants into some semblance of a balanced picture.

<comment><USER47> _If the JVM and the Java teams essentially stopped talking to each other, I would definitely consider that to be some form of collective decision making representing an overall shift in focus for the projects. That 's more akin to what I remember of the Parrot/P6 split._

That's the story certain people have been telling for quite a while, but it never happened while I was involved in either project. If you look at the use.perl.org archives, you can see that both Allison and I (as the architect of Parrot and a lead developer, respectively) were collaborating closely with Rakudo developers on the weekly P6 design calls.

I understand that, from the outside, there's a natural tendency to take all of the perspectives and comments and assume that the truth lies somewhere in the middle, but the historical record is out there and available. I've certainly referred to it directly when posting my opinions about what happened and when.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER48> Perl 6 fills me with a sense of childlike wonder and hope for the future and excitement about the world.

Hacker News takes that excitement and beats it into a nasty pulp on the floor.

Perl was my first language after QBASIC and a failed attempt at C. I thought it was super cool.

I love how it's optimized for being awesome instead of pandering to dumbass lazy coworkers who won't RTFM.

<comment><USER49> > Hacker News takes that excitement and beats it into a nasty pulp on the > floor.

You're as much a part of HN as anyone else is, and tons of people here like Perl 6. That's presumably why stories about it such as this one get upvoted so highly.

Instead of dissing the community and adding to the negativity, it would be better to ignore it (which is hard, I know) and share some things about what you like so much.

<comment><USER48> Thanks for your moderation! I'll just add that I generally love Hacker News, and I wish I knew a more constructive way to express my feeling here. (By the way, I think it's an interesting approach of MetaFilter to have a "meta" forum for meta-discussions like this one...)

Larry Wall gave a state of the onion speech about Perl as a "postmodern" language... which means something like, its guiding principles aren't only classical or modernist... it doesn't just aim for simplicity, purity, elegance, unity, etc... instead, it includes some very different values, like plurality, camp, fun, "just weird enough"-ness, "ha ha only serious"... some quotes:

[http://www.wall.org/~larry/pm.html](http://www.wall.org/~larry/pm.html)

> I combined these cool features [from all kinds of other languages] in a way > that makes sense to me as a postmodern linguist, not in a way that makes > sense to the typical Modernistic computer scientist. Recall that the essence > of Modernism is to take one cool idea and drive it into the ground.

> Well...Perl does one thing, and does it well. What it does well is to > integrate all its features into one language. More importantly, it does this > without making them all look like each other. Ducts shouldn't look like > girders, and girders shouldn't look like ducts. Neither of those should look > like water pipes, and it's really important that water pipes not look like > sewer pipes. Or smell like sewer pipes. Modernism says that we should make > all these things look the same (and preferably invisible). Postmodernism > says it's okay for them to stick out, and to look different, because a duct > ought to look like a duct, and a sewer pipe ought to look like a sewer pipe, > and hammer ought to look like a hammer, and a telephone ought to look like > either a telephone, or a Star Trek communicator.

> How does Perl put the focus onto the creativity of the programmer? Very > simple. Perl is humble. It doesn't try to tell the programmer how to > program. It lets the programmer decide what rules today, and what sucks. It > doesn't have any theoretical axes to grind. And where it has theoretical > axes, it doesn't grind them. Perl doesn't have any agenda at all, other than > to be maximally useful to the maximal number of people. To be the duct tape > of the Internet, and of everything else. You've heard the joke, I'm sure. > How is duct tape like the Force? It has a light side, and a dark side, and > it holds the universe together.

> Let me state my beliefs about this in the strongest possible way. The very > fact that it's possible to write messy programs in Perl is also what makes > it possible to write programs that are cleaner in Perl than they could ever > be in a language that attempts to enforce cleanliness. The potential for > greater good goes right along with the potential for greater evil.

I love this attitude, and I think it's very hackeresque, so yeah, it's nice to see it upvoted and discussed on Hacker News.

<comment><USER50> This talk literally changed my life. I was very much of an "or" person before, with various pureist views on all kinds of things. Ever since, I have embraced the "and" perspective in most every area.

</comment></comment></comment></comment><comment><USER51> Favourite so far, the "whatever" operator :-)

<comment><USER52> It's available for Perl5 too - [https://metacpan.org/pod/Whatever](https://metacpan.org/pod/Whatever)

</comment></comment><comment><USER53> In a few weeks we are having the DC-Baltimore Perl Workshop (in Baltimore on April 16) where there are a few talks on Perl 6. Join us! [http://dcbpw.org/](http://dcbpw.org/)

</comment><comment><USER54> If anyone's interested in following Perl 6 news the subreddit usually gets most updates:

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

</comment><comment><USER55> So much of the syntactic sugar that you'll almost always will forget to use.

<comment> white-flame That's what I like about Lisp's s-expressions: Every operator is syntactically equivalent, so there tend not to be as many "forgotten tricks". You just write the code that does the thing.

</comment></comment><comment><USER56> Does anybody know if there is any plan for updating the Camel Book for Perl 6?

</comment><comment><USER6>
       say "Code took {now - INIT now} seconds to run";
       # Code took 0.01111143 seconds to run

Implicit string interpolation??? What if I just want to print out the string "now"?

<comment><USER57> Why implicit? There are braces around `now - INIT now`. In Ruby it'd be "Code took #{Time.now - start_time} seconds to run".

<comment><USER6> Ah, right. Thanks.

</comment></comment></comment><comment><USER58> Is this is a joke or does perl 6 actually use that hyper arrows thing? Reminds me of an old language that used math symbols and had a custom keyboard with those keys on it.

<comment><USER8> > Reminds me of an old language that used math symbols and had a custom > keyboard with those keys on it.

In case you're interested, that was the inventively named "A Programming Language", APL ([https://en.wikipedia.org/wiki/APL_(programming_language)](https://en.wikipedia.org/wiki/APL_\(programming_language\)) ).

</comment></comment><comment><USER59> unicode sigils? yikes!

<comment><USER60> Yes, now what we need is a programmer's keyboard with some nice 'alt-keys' for those sigils.

<comment><USER61> Julia has a few Unicode operators and will allow you to tabcomplete the LaTeX symbol in the REPL [1]. For example, \div followed by TAB becomes ÷. This can be implemented in popular editors [2].

[1] Not all are the common LaTeX macros. See [http://docs.julialang.org/en/latest/manual/unicode- input/](http://docs.julialang.org/en/latest/manual/unicode-input/)

[2] [https://github.com/JuliaLang/julia- vim](https://github.com/JuliaLang/julia-vim)

</comment></comment></comment><comment><USER62> For anyone else that's confused - the linked page above _is_ the presentation, but you need to use space or arrow keys to navigate.

Also, the URL at the bottom is broken (says TPM2016.zoffix.com but links to [http://zoffix.com/TMP2016](http://zoffix.com/TMP2016))

<comment><USER15> I was 100% sure there would be a comment such as this.

How are HNers still confused? The same exact instructions have been given time and again, for almost each and every presentation posted on HN -- and there are always 1-2 comments asking about them for any new presentation posted.

New users? Not technical enough to try the keyboard arrows and/or space?

<comment><USER63> Sites like this would make sense to me if I downloaded them as .ppt files.

I don't understand the need to 1) be so clever and 2) get mad when people call you for being annoyingly clever.

I mean, first you take away the scroll bar, because it's ugly. Fine. Whatever. Next, you expect me cause the page to transition by moving RIGHT and LEFT. Not UP and DOWN, you know, like web pages have always worked. Finally, you don't bother to mention this fact anywhere on the website?!

<comment><USER15> > _I don 't understand the need to 1) be so clever and 2) get mad when people > call you for being annoyingly clever._

What's clever? It's just a link to an online presentation. They don't use links etc because it's not a web page, just a html document -- it's primary use is for seeing it as slides through a projector.

This fact is evident both from the text and from the site's looks, and from that everything else follows (how you navigate, etc).

But confusion would still be OK, if we haven't had the exact same discussion 100s of times before on HN -- and if we weren't 99% devs, supposed to be able to solve much worse "mysteries" on our own...

<comment><USER51> > But confusion would still be OK, if we haven't had the exact same discussion > 100s of times before on HN

Hyperbole much? Or am I getting forgetful?

> and if we weren't 99% devs, supposed to be able to solve much worse > "mysteries" on our own...

Ok, you get points for this.

</comment></comment></comment></comment></comment><comment><USER64> [http://tpm2016.zoffix.com/#/13](http://tpm2016.zoffix.com/#/13)

==> Is this a feature that Perl authors are promoting about the language? If so, I can understand why it's not gaining traction. Coding like this benefits absolutely NO ONE--including the one who wrote the code. The hipster coder who's just excited to learn perl for the first time may try it out, just to come back the next day and wonder "what the hell did I write"

<comment><USER49> This kind of response is as reflexive as it is common; every innovation in programming language notation meets with it immediately. I think it has to be regarded as a middlebrow dismissal, indeed _the_ middlebrow dismissal in its class. It's Tall Poppy Syndrome applied to programming languages: no unfamiliar expressions allowed.

No language makes sense before you learn it. Therefore unfamiliarity should cause us to suspend judgment, not rush to it. Otherwise we end up with what Alan Kay calls pop culture programming, which tragically junks things like the breathtakingly beautiful and powerful APL, and limits us to surface tweaks around the edges.

<comment><USER64> I studied natural language processing so have used perl a lot in the past. I kind of drifted away since then, but remember that it made me feel cool when I was writing a perl code, but made me feel stupid when reading one--even the ones I wrote--kind of like how regular expression is easy to write but hard to interpret. I think a language needs to be both easy to express and easy to comprehend in order to gain adoption and that's what I was trying to say.

<comment><USER65> If reading regexes you wrote is a pain point for you, then you're not making as much use of the readability tools Perl provides as you could, i.e. the /x modifier to make unescaped whitespace insignificant, and in-regex comments. ( [http://www.perl.com/pub/2004/01/16/regexps.html](http://www.perl.com/pub/2004/01/16/regexps.html) )

And well, honestly, more often than not i found that "hard to read" perl code would be just as hard to read if it was written in lisp, python, c, or any other language you care to name; since more often than not that code is hard to read due to variables and functions having names that don't help the reader understand what they're holding or doing, and long blocks of code not having been encapsulated into functions well enough.

And lastly, to tie in to dang's point: Having "used Perl a lot" does not mean much if you have not also "learned Perl a lot". I've known, in the extreme, a Perl dev of 10 years experience, who had started out as a C dev, and yet did not use or trust Perl hashes, instead opting to write his own data structure encoding format. Have you ever read chromatic's Modern Perl?</comment></comment></comment></comment>


The Enterprise: I'm Not Sexy And I Know It - <AUTHOR> http://techcrunch.com/2012/10/06/the-enterprise-im-not-sexy-and-i-know-it/ <comment><USER2> Biggest problem in selling to enterprises:

The CEO talks about wanting scalable cloud solutions using hypervisor technology without block-based attached storage.

The people using the system are treating it as Excel with a slightly crappier UI.

In most large organizations, the problem isn't providing a way to let their large amount of data scale. The problem is getting people to even input that data into a useful format so that it can be analyzed at all. You will spend man-months designing a system that handles all edge cases only to find out that they can't or won't even enter any useful configuration and support data to make it usable.

Everyone wants to talk about how your resource allocation and planning algorithms work with mobile technician work forces. No one can answer whether these fancy systems actually save costs or increase efficiency. _And they don't care either_.

We sell software to enterprises. It is a kafka-esque nightmare.

<comment><USER3> Yes!

Dear Businesses, it is not your fancy code & tech specs that make you special, it is your business data. Pay attention to your data and the people who create value with it.

I'm always disappointed by enterprise customers who can talk for days about their endlessly complex systems and their fantastic dreams of building and customizing exotic new & infinitely flexible applications, and yet these same people are completely unable to answer the most basic questions about how many, how often, and how value is created. When pressed, they call some poor intern to wrestle with SAP for a few weeks in attempt to answer what should be routine business questions.

Then come the horrors of talking to the people who are forced to use these systems and witnessing the heroics required to get them to work for the business. And that's just the folks who haven't given up entirely and instead spend their days with a list in Excel.

<comment><USER4> > And that's just the folks who haven't given up entirely and instead spend > their days with a list in Excel.

Some folks are more creative than that. Crappy UI? No problem, we have markers: [http://javlaskitsystem.se/2012/02/whats-the-waiter-doing- wit...](http://javlaskitsystem.se/2012/02/whats-the-waiter-doing-with-the- computer-screen/)

</comment></comment></comment><comment><USER5> Spot on.

This is what many startups miss when promoting technologies to Fortune 500 companies.

In the enterprises usually you don't change stuff for the sake of it, unless you're trying to keep the budget for the next year and need to avoid having it reduced.

As such it is easier to introduce incremental changes as radical new ideas.

<comment><USER6> The real problem is that those behemonths don't want to change (when change is necessary) and they can drag on for years, slowing the rest of society down with them.

</comment></comment><comment><USER7> The main problem of enterprise startups isn't to find the right problem-domain but rather the sheer amount of work power it needs to find and solve the edge cases. Big Co uses a lot of Custom Software for a reason... The bigger it gets, the more custom solutions they use. SAP and Oracle employ a boatload of people just for that reason.

If you're interested in enterprise startups you should start looking for a really specialised piece of workflow that is common among huge company's and try to solve that in its entirety better than the existing solution.

<comment><USER8> Most large enterprises are aware of this (hell, they sometimes consider their 'uniqueness' a competitive advantage). If your product is MOST of the way there, and you're willing to engage the enterprise appropriately, they'll usually fund the development of the edge case support for their unique situation.

This breaks the pure SaaS model though, as they'll probably not want their pieces given to their competitors.

<comment><USER9> I don't think "sometimes" covers it. Almost every medium to large enterprise I've come across considered some/all aspects of their custom software solutions to be a business advantage, even when they weren't applicable to their customers at all.

Everyone wants to be special, and it's a very compelling internal narrative, that your stupid/wasteful/annoying/irrelevant processes (and thus software) is actually a strength.

</comment></comment></comment><comment><USER10> Wait, this sounded familiar: <http://danshipper.com/b2b-is-unsexy-and-i-know- it>

</comment><comment><USER11> I guess this may not have originally been written for tech crunch but it comes across as intentionally opaque for a general tech website. Wouldn't be to hard to extend on the acronyms and provide some links that explain them to a general tech audience.

</comment><comment><USER12> I don't agree with the statement that ERP will not move into the cloud. The same was said about CRM (omgwtfbbq it is our customer data) - and look how the market has changed.

SAP themselves are pushing HANA, which is seriously cool tech and will be the foundation of moving big ERP into the cloud. A bit interesting how in-memory architecture is not discussed at all here at HN. Started in pure BI/Analytics with tools like Qlikview, but now it is growing up.

See here: [http://www12.sap.com/solutions/technology/in-memory- computin...](http://www12.sap.com/solutions/technology/in-memory-computing- platform/hana/overview/index.epx)

ORA is a bit on the slow side, they are pushing better bundles with hardware instead (exadata).

</comment><comment><USER13> How much longer until people actually get fired for choosing IBM, SAP, Oracle?

</comment><comment><USER14> _Application-level SLAs without giving up the economics of multi-tenant:_

Any one who wants to both have his cake and eat it is destined for disappointment.

<comment><USER15> Why? This sounds like how EC2/Heroku/AppEngine/Lithium work

<comment><USER14> On EC2 you don't even have cost savings from multi-tenant, because EC2 costs more than dedicated hosting.

So let's consider the logic of the proposition instead of particular companies.

The benefits of multi-tenant come from not having to pay to dedicate a resource. We can both use it and we each only pay a fraction of the cost. However, there is trouble if we both try to use it at the same time.

The benefits of SLA or any kind of quality of service guarantee come from having a dedicated resource. You know that you can always use it because I (or anyone else) can never use it.

These two goals are not compatible.

<comment><USER8> Don't underestimate how cheap EC2 can be to a large organization, with complicated rules and structures around things like physical facilities, etc.

Especially when you buy down the rates for 'reserved' instances (or even the FFP GovCloud stuff).

<comment><USER14> First, what you describe is the _appearance_ of low cost (next to a horrible alternative), as opposed to _actual_ low cost.

Second, the _reason_ for this "cheapness" is not _multi-tenancy_ but the _complicated rules and structures_.

The larger point is that Rodney Rogers' article asks for too much.

In fact, I believe _most_ companies would go bust trying to fulfill his requirements. If I were to win his business I would turn it down.

I believe the _best_ he can hope for realistically is that SAP add some more hypervisor support to their software.</comment></comment></comment></comment></comment>


Wasting time on things that really don't matter - <AUTHOR> http://paulbuchheit.blogspot.com/2007/06/wasting-time-on-things-that-really-dont.html <comment><USER2> So tempting to comment on the irony that this is posted by someone who seems to spend every waking hour on news.yc ;)

<comment><USER3> yes!

my comment on the blog post:

well, most of the comments at news.YC and other 'non-technical' newsgroups debate things that "dont really matter";

However, it's the process of debating the silly stuff that creates social friction, so that our gears may slough off grit, interlock and start working together. Now THAT's important!

</comment></comment><comment><USER4> "Maybe that's fun if you don't have anything better to do, but when you're actually trying to accomplish something it can be deadly."

Doesn't that also apply to, eg.: reading Structure and Interpretation of Computer Programs? Surely, when you're doing a startup, it's a waste of time, but at any other moment, it is worthwhile.

I find that reading arguments about these simple problems is _not_ fun, but it's sometimes highly enligthening. If there are hard technical reasons for preferring A over B, I would like to know.

</comment><comment><USER5> The tricky part is figuring out when you're wasting time on things that really don't matter. The string comparison deal is an obviously easy example, but there's a lot of gray area out there.

</comment><comment><USER6> Definitely true. See also <http://www.bikeshed.com>

</comment><comment><USER7> This is best:

Utility.isEmpty(s);

</comment><comment><USER8> The tactic paul mentioned for avoiding time-wasting seems like a good approach. I tried a similar approach yesterday, however, and failed. It helps to have a very clear conception of what your top problems are.

</comment><comment><USER9> Amen.

For a much broader view on things that don't really matter, check out:

<http://www.paulgraham.com/procrastination.html>

<comment><USER10> PG's essay is an interesting, broader view, but I like Buchheit's focus on what the next action is to kill the problem. Having a prioritized list of issues and keeping it prominent is key. It's different from the to-do list PG says to avoid, in that to-do lists don't have to be aggressively prioritized. They get filled with random schleps.

</comment></comment><comment><USER11> It's only wasting time if the time would have otherwise been spent doing useful work. I also think there _can_ be value in debating minor details. A lot of thinking goes on when you're forced to defend your decision and rational in debate form.

</comment><comment><USER12> This problem of wasting time on things is not important either :)</comment>


Did the Titanic sink because of an optical illusion? - <AUTHOR> http://www.smithsonianmag.com/science-nature/Did-the-Titanic-Sink-Because-of-an-Optical-Illusion.html

<comment><USER2> I'm a sucker for stories about the Titanic, but this story lead me to <http://en.wikipedia.org/wiki/Fata_Morgana_(mirage)> which I found way more interesting.

</comment><comment><USER3> for me, the coolest fact was that the Titanic's spotter saw the iceberg when it was still a mile away. For some reason, I thought the spotter only saw it with hundreds or tens of yards to spare.

<comment><USER4> The way film, TV and literature has always presented it, was it hit the berg in an inky black night with scant but a faint glow from the swinging lantern aboard the spotter's helm.

</comment></comment><comment><USER5> You know, this is a perfect metaphor for what often happens in organizations in critical projects/operations when people misunderstand each other, leading to disastrous mistakes and situations. The arrogant, sadistic captain of the Californian that made people too afraid to act, the multiple missed distress calls, the incorrect perception of what they saw of each other, it's got everything.

</comment><comment><USER6> One thing that might have saved the Titanic would have been to steer directly into the iceberg, bow-on. That way, only one compartment (the front one) would have been damaged), allowing it to stay afloat.

<comment><USER7> That sounds like something that only works in theory. Hitting it perfectly frontal is nearly impossible, and then it'll continue to rub on one of the sides after the first impact.

Also remember that much of the crew thought the Titanic was unsinkable (at least that's what popular books and movies suggest...), so an attempt to hit it frontally in order to provide more damage seems quite far off.

<comment><USER4> "and then it'll continue to rub on one of the sides after the first impact."

Not if it cranked up the speed!

Cue Hollywood dialogue:

Spotter: Captain, we're almost upon the behemoth... we can't avoid it!

Captain: Full. Speed. Ahead.

Scotty in the engine room: But we're a cruise liner, not a...

Captain: I said FULL SPEED!

Aerial Titanic etc...

</comment></comment></comment><comment><USER8> No, it sunk because of an iceberg

<comment><USER9> And JFK died of a bullet, but we still wonder how it got there.

<comment><USER10> Obviously pirates doing the FSM's work. It's well known that FSM hates DiCaprio.

</comment></comment></comment><comment><USER4> Is the answer to forfty-fifths of headlines posed as a question, "no"?

</comment><comment><USER11> A theory exists that the owner of the Titanic - JP Morgan - was the force behind it's sinking and that all the wealthy and powerful men that his group wanted to get rid of were invited to be on that ship. You can read about it here - <http://www.titanicuniverse.com/the-titanic-conspiracy>

<comment><USER12> Your summary elides quite a bit of the quackery of that article... Illuminati, Jesuit secret agents, Federal Reserve...

<comment><USER11> The site itself is not a conspiracy site. The article is written in a completely neutral point of view.

It's your opinion that any conspiracy theories involving the aforementioned subjects are quackery. If you think conspiracies never happen, you're wrong and if you believe that all of our institutions exist for the good of mankind you're even more wrong.

So, what was your point anyway? I was just pointing out that there's a theory that exists. Are you accusing me of some sort of subterfuge here?

<comment><USER13> It's not just his opinion that the article you linked to is quackery. It is fact.

For instance, consider the stuff about the color of the flares, and red meaning distress and white meaning identification. That's all made up. In 1912 the internationally recognized distress signals at night were:

1\. A gun or other explosive fired at intervals of about a minute,

2\. flames on the vessel,

3\. Flares of any color, used one at a time at short intervals,

4\. A continuous sounding with any fog-signal apparatus.

<comment><USER11> Those weren't the examples that were given to me.

Even assuming you're right on that single fact, being incorrect on a single fact still isn't quackery.

</comment></comment></comment></comment></comment><comment><USER14> Silly, the Titanic sank because of Geoffrey Palmer.</comment>


British supermarket chickens show record level of antibiotic-resistant superbugs - <AUTHOR> https://www.theguardian.com/environment/2018/jan/15/british-supermarket-chickens-show-record-levels-of-antibiotic-resistant-superbugs <comment><USER2> In the liberals' world with markets unimpeded by regulation and entirely self- governed by market forces, how does something like the rise of superbugs play out?

It takes a good 10-20 years lead time for this to become a real issue, and then probably another decade for the market to adjust to punish the bad actors. In this time, the damage has been done.

The downstream impact of certain business practises are too detached from the source, and the impact itself felt too much in isolation from the cause for the market to react appropriately.

Sadly, it seems government too has moved too slowly on issues such as this so what to do?

<comment><USER3> As I see it, the problem is most people want cheap and don't know or don't care about the quality and where it comes from. Most UK supermarkets have premium brands, and you can even go organic if you want antibiotic-free and humanely treated animals (the sustainability issue is another topic).

So on a personal level, that's a good place to start. Maybe if enough people buy into it, supermarkets and farmers will take notice and start producing better quality food.

<comment><USER4> Unfortunately organic doesn't guarantee humane treatment of animals.

<comment><USER5> Depending on the certification institution it pretty much does.

Naturally, I can't talk for the whole world, but in Switzerland, depending on the certificate there absolutely are minimum requirements (space,environment, movement, air, etc) that must be fulfilled in order to get certified.

I see your point and don't necessarily disagree. But it really depends on the certification organisation and - process.

</comment></comment></comment></comment><comment><USER6> _Even the US banned the practice over 10 years ago because of the strength of the scientific evidence. So why are British and European authorities still refusing to take action?_

Very interesting, nice to see the US ahead on this. I've always thought that European food and safety standards were stricter than what we have in the US.

<comment><USER7> > Cóilín Nunan, scientific adviser to the Alliance to Save Our Antibiotics, > told the Guardian: "It is scandalous that [government rules] still allow for > poultry to be mass-medicated with fluoroquinolone antibiotics. Twenty years > ago, a House of Lords report said this should be stopped. Even the US banned > the practice over 10 years ago because of the strength of the scientific > evidence. So why are British and European authorities still refusing to take > action?"

[https://www.gov.uk/government/news/uk-on-track-to-cut- antibi...](https://www.gov.uk/government/news/uk-on-track-to-cut-antibiotic- use-in-animals-as-total-sales-drop-9)

> Use of antibiotics for non-medicinal purposes, such as in animal feed, has > been banned in the EU since 2006. A number of additional measures ensure > food does not contain antibiotics when it reaches the table. Those using > antibiotics in livestock for medicinal purposes must observe a safe > withdrawal period before an animal can go to slaughter or its products be > sold to consumers, which is set by the Veterinary Medicines Directorate > (VMD) and European Medicines Agency. Stringent rules are also in place for > meat and dairy products imported into the EU from the rest of the world.

[https://www.gov.uk/government/news/record-low-for-sales- of-a...](https://www.gov.uk/government/news/record-low-for-sales-of- antibiotics-for-use-in-animals)

> A Defra report released today shows sales of antibiotics for use in food- > producing animals dropped by 27%, from 62 mg/kg in 2014 to 45mg/kg in 2016, > surpassing a government target of 50 mg/kg set following recommendations in > the 2016 O'Neill Review on Antimicrobial Resistance.

I don't know if 45mg/kg is a lot or a little.

You can read the Defra guidance here: [https://www.gov.uk/government/collections/antimicrobial- resi...](https://www.gov.uk/government/collections/antimicrobial-resistance- amr-information-and-resources)

</comment></comment><comment><USER8> I worked as a chicken quality check in a large UK factory. The cheap chicken you see in supermarkets and (fast food) is complete trash. Freerange, Organic and normal do really differ in all kind of ways.

People would really look at chicken differently if they worked at a poultry processing factory for a week.

</comment><comment><USER9> Jeez, the click-bait title.

British supermarket chickens show RECORD LEVEL of antibiotic-resistant SUPERBUGS.

<comment><USER10> I'm not following. Is the title not factual?

You're emphasizing the terms "record level" and "superbugs". So I take it that this is what you're specifically calling click bait'y?

The term superbug is pretty a pretty common term for antibiotics resistant bugs. Even wikipedia has it as a redirect to their Antimicrobial Resistance article: [https://en.wikipedia.org/w/index.php?title=Super_bug_(bacter...](https://en.wikipedia.org/w/index.php?title=Super_bug_\(bacteria\))

And are the levels of such superbugs not in fact hitting record levels?</comment></comment>


Show HN: We made a tool that reassembles flights using optimal stopovers - <AUTHOR> http://questorganizer.com/

<comment><AUTHOR> Hi HN! We are the developers! Here's more details before things get crowded )'(

We have been working on this for 1.5 years and we think it's now ready to receive your input.

— — — — — — — —

Here are some details:

1\. QO disassembles any flight and reassembles them using a process which includes a self-learning knowledge of the best connections for any flight route. It combines flights to create better priced itineraries that let the traveler visit more of the world for less.

2\. This takes advantage of non-partnered, low-cost, and route specialized flights.

3\. We think this type of flight search opens a free market for airlines to compete against one another on prices, and helps to break-down the current pricing model based heavily on supply limitations. So, the more one-ways booked with those specialty trans-Atlantic/Pacific flights the cheaper it costs for us all to travel furthers everyone's possibilities of seeing more of this big planet we call Earth!

4\. We strongly believe that travel hacking has the potential to help bring online flight booking into the future, it is 2015 and about time!

— QO Team (Ela, Douglas, Leon, Andrew)

— — — — — — — —

Here is an example flight: From Los Angeles (LAX) to Paris (ANY) from September 16th to September 26th

QuestOrganizer: $797.85 With added destinations Copenhagen, Denmark (3 days) and Stockholm, Sweden (3 days) as stopovers: [http://QuestOrganizer.com/quest/26179](http://QuestOrganizer.com/quest/26179)

SkyScanner: $976 [http://bit.ly/1LlKzdt](http://bit.ly/1LlKzdt) Expedia: $1,130 [http://bit.ly/1Go1B3Y](http://bit.ly/1Go1B3Y) Travelocity $1,151 [http://bit.ly/1HwF60W](http://bit.ly/1HwF60W) Google Flights: $1,163 [http://bit.ly/1HAcVfm](http://bit.ly/1HAcVfm)</comment>


Good Practices for Writing Rust Libraries - <AUTHOR> https://pascalhertleif.de/artikel/good-practices-for-writing-rust-libraries/ <comment><USER2> This isn't really specific to Rust, but, while I wouldn't necessarily do all this stuff while working through a tutorial on Rust, the start of a brand new language is a great time to learn how to set up this sort of stuff on your code from the very beginning. By definition, you must not have a lot of pre- existing Rust code. :)

Many of these sorts of things are hell to retrofit on to existing code, but if you integrate them into your workflow early, just shy of free over time to use all along. It's "just shy of free" because the tools themselves train you over time so that you get to the point where you start with conforming code, and the tools are just cleaning up occasional slips rather than requiring you to rewrite everything. So, you actually still net out less effort than trying to retrofit later by making fewer mistakes overall in the first place.

I really can't recommend this enough when you're greenfielding something. It's so cheap to start out doing the right thing and so very, very hard to fix it later....

(Obviously, you need to tweak a few things during prototype/exploration, like requirements for docs, but a lot of this stuff is still useful right away.)

</comment><comment><USER3> A lot of the stuff that interests me is how much this focuses on making things automatic. Use compiler plugins to automatically check your code, use rustfmt to automatically reformat your code, use highfive to automatically greet new contributors, use homu to automatically ensure good CI, use Travis to automatically upload docs, etc.

I like things that are automatic. That way, I don't forget about them.

<comment><USER4> rustfmt makes me sad. So do the official Rust and Servo style guides.

The whitespace style they mandate ("column align all the things!") is wildly impractical.

I used to use this exact same style myself, many years ago, but gave it up when I saw how many problems it caused. I'll never go back to this kind of column-aligned formatting.

Here's an example from the rustfmt source code:

        let mut rewrites = try_opt!(subexpr_list.iter()
                                                .rev()
                                                .map(|e| {
                                                    rewrite_chain_expr(e,
                                                                       total_span,
                                                                       context,
                                                                       max_width,
                                                                       indent)
                                                })
                                                .collect::<Option<Vec<_>>>());

Here's how I would format that code instead:

        let mut rewrites = try_opt!(
            subexpr_list
                .iter()
                .rev()
                .map( |e| {
                    rewrite_chain_expr( e, total_span, context, max_width, indent )
                })
                .collect::<Option<Vec<_>>>()
        );

Or, perhaps if the variable names in the rewrite_chain_expr() call were a little longer, like this:

        let mut rewrites = try_opt!(
            subexpr_list
                .iter()
                .rev()
                .map( |e| {
                    rewrite_chain_expr(
                        e,
                        total_span,
                        context,
                        max_width,
                        indent
                    )
                })
                .collect::<Option<Vec<_>>>()
        );

Either way, the difference is that I use indentation everywhere that the rustfmt style uses column alignment.

This kind of indentation-based style has numerous advantages over a column- aligned style. I wrote about this at some length previously, so rather than repeat the details, here are my previous comments for anyone who is curious about the rationale for this indentation style:

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

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

Anyway, it isn't the rustfmt style itself that makes me sad.

It's the presumption behind these kind of rigid code reformatters. The bottom line seems to be this collection of notions:

1\. Consistent code formatting and whitespace style is vitally important. So important that an automated tool is required to insure that there are no variations in formatting.

2\. The exact details of how code is formatted don't matter much. Any formatting style is about as good as any other, as long it is 100% consistent within a project (or language, or whatever). A professional programmer should just find out what the standard is and follow it.

3\. There is nothing new to be learned in formatting style. The way we've always done it is good enough, and as good as any other. (See #2.) If you have new and different ideas about whitespace, they are unhelpful and unwelcome. Stop bikeshedding!

And that is what makes me sad.

<comment><USER3> The exact style hasn't been settled yet. We'll be going through RFCs, as usual, for at least the major points. Rustfmt is a start to this, not the final word.

(I would also format like #2, personally. I think Rustfmt might even have a setting to do it this way?)

<comment><USER4> Oh! In that case I have probably misjudged Rustfmt. My apologies. I was also overdramatizing with the "makes me sad" bit. :-)

I'm not an active Rust user, so probably won't be involved in the RFC process, but I'm glad to hear about it.

OTOH, even for a language I do actively use, I'm a bit reluctant to get involved in a formatting standards process. So many people seem to approach code formatting from a point of view of "This is how we've always done it, this is consistent with other previous standards, so this is how it should be." And then whoever gets the most agreement wins.

I don't often see discussions based on whether there may be actual engineering advantages to one formatting style vs. another. For example, I put spaces inside the parentheses in my function calls and expressions. Many see that as an arbitrary stylistic choice - and object vehemently to it! - but it actually ties in very closely to the column alignment vs. indentation choice in the examples above.

I talked about that in some detail in one of the comments I linked above, so won't belabor it further here. :-)

Maybe that's my beef with coding standards: they tend to take each style decision as an independent, fairly arbitrary choice, instead of listing the goals we're looking for and seeing how different style choices may work together to achieve them.

<comment><USER5> I don't think there's very much empirical evidence about the engineering advantages of different code style standards. Fortunately, Rust's approach will always be to establish a reasonable compromise and allow you to deviate for your projects (this is why rustfmt is designed to be configurable).

</comment></comment></comment></comment></comment><comment><USER6> What Rust and Go still misses is still the good IDE. On the C/C++ side you could even use Eclipse and IntelliJ or Visual Studio. And still if you don't like an IDE you could use an editor, however on rust / golang you are forced to the editor, which could be aweful if the project is grown / big, at least for me. Good practices are helping, however the best editorconfig could help you if your codepage grown too big and you don't remeber the function of a specific struct/class/whatever.

<comment><USER7> Have you tried writing Rust and Go in a plain text editor and had problems, or are you a happy user of an IDE for another language and waiting for one to be available before you try them out?

Some languages (the prime example being Java) are designed to have simple syntax so that large-scale manipulations can be automated, and as a result you really do need an IDE to work with them: few humans have the patience to find all 59 places in a code-base where some function is called or overridden and add a new parameter.

On the other hand, some languages allow humans the complexity to define their own abstractions, like C++ templates or Scheme macros or Python's reflection and metaprogramming. This extra layer of complexity makes it much harder to write a good IDE, but it also makes an IDE much less necessary: instead of editing all those 59 uses individually, if they were generated by a template or a macro or reflection you can just edit the definition of that thing and get the same result.

I'm guessing Go is in the minimalist-syntax-and-heavy-IDE crowd, although the Go community seems to prefer to write their heavy automation as standalone tools (see: go fmt, go fix). Rust has a fairly impressive macro system, so I would have expected it to be a complex-syntax-and-text-editors language but the Rust authors seem very keen to have some kind of IDE support. Whether they believe Rust actually needs it, or if they just want to check off a commonly- requested feature, I don't know.

<comment><USER6> > Have you tried writing Rust and Go in a plain text editor and had problems, > or are you a happy user of an IDE for another language and waiting for one > to be available before you try them out?

I tried both out, but I'm a Scala / Python User mainly and I loved the IDE's I have. Currently especially Autocompletion and my Shortcuts, like search Classes, Types, etc helped me on being productive. Also jump to definition is a feature I often use.

Yes I could even use java without an IDE or Scala however it's not as comfortable and I feel that when I'm programming on an editor I spent a few hours a week tweaking it. While on a IDE i just replace 'some' shortcuts.

Still I think even GO needs a better IDE, since the projects with a few lines are gone and even if you don't write as many lines as in java you still getting a pretty big codebase when you write something useful.

Putting everything in his own library won't help / it will make the problem even scarier since you now need to remember a bigger import path.

Rust is similar and still I love it despite the crates/modules system, since I think it has some rough spots. However they improve the docs regulary which makes things more clear, still it's hard while coming from python/scala/java to have a rust like import path.

</comment></comment></comment><comment><USER8> It would be nice if the Rust documentation had a centralized list of std and core traits. For example, I see a summary of the std crate's exported types, modules, and macros but no traits. Such a list would be useful for library developers who want to maximize their library's potential for reuse by implementing all relevant core and std traits.

[https://doc.rust-lang.org/nightly/std/index.html](https://doc.rust- lang.org/nightly/std/index.html)

<comment><USER5> Hopefully this will help:

The traits defined in std are listed in the modules that they are defined in, just like all the other kinds of types (structs and enums) defined in std.

The top level modules of std are themselves linked from the main index of std, of course, and you navigate through them to find the types you care about. The primitive types have links on the main index of std because they otherwise wouldn't appear in the API documentation (since they are primitive and thus aren't defined in any module), but most types are not (e.g. HashSet<T> isn't linked from the main index). The macros have links on the main index of std because they aren't imported using the module system.

What you're probably refering to though are the traits re-exported by the std prelude, which are automatically imported into every Rust module. The prelude is described on this page (linked to from the std main index):

[https://doc.rust-lang.org/nightly/std/prelude/](https://doc.rust- lang.org/nightly/std/prelude/)

The prelude mostly imports traits, but it also imports a few other kinds of items as well: some types (like Option<T> and String) and at least one function (drop()).

But what traits your type should implement is not really connected with what traits are imported in the prelude.

</comment></comment><comment><USER9> What about good practice for the actual writing of Rust library code? I know C++ and there we have advice such as not reordering virtual methods, not using STL types in public APIs, not reusing enum values, exception safety, RAII, etc. What about in Rust? What are some guidelines for writing libraries which will give their users maximum convenience and safety? Is there a stable ABI, and if so what do library implementers need to know about it? How about writing C APIs in Rust?

<comment><USER10>
      > not reordering virtual methods, not using STL types in
      > public APIs, not reusing enum values

There's no reason to worry about any of these in Rust. The design of the language is intended to minimize and discourage footguns in general.

      > exception safety

Exception safety is only a concern from within `unsafe` blocks. If you're using `unsafe` blocks at all, 1) really try not to, 2) if you still must use them, read The Rustonomicon first (here's the specific chapter on exception safety: [https://doc.rust-lang.org/nightly/nomicon/exception- safety.h...](https://doc.rust-lang.org/nightly/nomicon/exception-safety.html) ).

      > What are some guidelines for writing libraries which
      > will give their users maximum convenience and safety?

Not many guidelines spring to mind. The first is still "don't use `unsafe` blocks if you can help it" (the OP gets into this by mentioning the lint that denies unsafe code in your program, which gives your users an easy way to determine your policy on avoiding unsafe code). The second is "don't panic in library code, use the Result type instead".

      > Is there a stable ABI

Nope! Far-future work.

      > How about writing C APIs in Rust?

Now _this_ is something that could use real documentation and advice like you're requesting. Nothing authoritative springs to mind, but here's a recent experience report on the process to get people started: [http://www.joshmatthews.net/blog/2015/10/creating-a-c-api- fo...](http://www.joshmatthews.net/blog/2015/10/creating-a-c-api-for-a-rust- library/)

</comment></comment><comment><USER11> Anyone knows when the compiler plugins will be stable?

<comment><USER12> Related, at what point will "use a stable build, not a nightly" be a good practice for libraries? Actually, do people mainly use nightlies or releases for development? (Of libraries and apps, not the toolchain itself, obviously.)

<comment><USER13> It already is a good practice.

Most people seem to use stable.

I work on tools so I prefer nightlies (but I use multirust so it's easy to switch). And Servo (which I also work on) uses its own snapshots.</comment></comment></comment>