A Washington state bill that would make it easier to fix your electronics - <AUTHOR> https://motherboard.vice.com/en_us/article/zmqa49/washington-right-to-repair-iphone-cpu-throttling <comment><USER2> > Prohibited from designing or manufacturing digital electronic products in > such a way as to prevent reasonable diagnostic or repair functions by an > independent repair provider. Preventing reasonable diagnostic or repair > functions includes permanently affixing a battery...

This is exactly how iPhones currently are. The batteries are affixed using adhesive strips that can be pulled by repair locations, including Apple. Anyone can open an iPhone with the proper screwdriver, and the first thing you can take out is the battery. Then you just remove a shield, swap some cables, put in a new battery, and it's done.

If they actually wanted to make change, they would have explicitly said "without adhesive" or "consumer is able to open without specialized tools." This is no more than posturing.

Edit: To clarify, adhesive strips aren't glue. Glue implies you can't remove it at all without melting the glue. Adhesive strips have pull tabs that, when properly used, will completely take the battery out of the case.

<comment><USER3> > If they actually wanted to make change, they would have explicitly said > "without adhesive" or "consumer is able to open without specialized tools." > This is no more than posturing.

They could also target availability of repair parts and tools (both the software kind and the electromechanical kind) rather than dictating design constraints.

<comment><USER4> _They could also target availability of repair parts and tools (both the software kind and the electromechanical kind) rather than dictating design constraints._

More critically, repair _information_. Schematics and service manuals for Apple products get leaked pretty easily, and similarly for a lot of other products (notably laptops), but that's only because of largely lax security.

Compare this to the early computers (like the IBM PC) which came with the full set of schematics as well as things like BIOS source code.

<comment><USER5> > _More critically, repair information._

You might want to read the actual bill, rather than the news article. Clue: section 3.

</comment></comment></comment></comment><comment><USER6> This is a knee-jerk bill written by people who don't understand technology. It specifically calls out glued batteries, for example, and not any other permanent attachment of any other component. It claims that "operating system", "machine code", "assembly code", and "microcode" are all "synonyms".

I'm all for being able to repair one's own devices (my alarm clock is a 1980's HeathKit that I've saved from an early grave more than once with a soldering iron), but this is a poorly written bill that wouldn't help consumers.

<comment><USER7> Really. Enabling consumers repair/hack their own electronics is great.

<comment><USER8> This doesn't even appear like it would accomplish that...

</comment></comment></comment><comment><USER9> > Prohibited from designing or manufacturing digital electronic products in > such a way as to prevent reasonable diagnostic or repair functions

So, are soldered CPUs, RAM and flash memory "reasonable" or not?

<comment><USER10> Those are still repairable with the right equipment (SMD/BGA rework station) and training. The hard part is getting access to schematics (to diagnose which part is bad) and spare parts.

<comment><USER11> Are there third parties which will upgrade soldered SSDs in Apple devices?

<comment><USER12> Sure. There are shops in china which literally repair broken CPUs in Apple devices by micro-soldering on the CPU itself - it's absolutely nuts. But this sort of thing is only possible because hugely skilled people who can do this thing are still paid very little - so it's worth their time.

This one for example:

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

No one in the West would do that for an iPhone, because their time doing it would be worth more than a new phone, if they have the skill level necessary to do this.

<comment><USER13> There are places in San Jose, CA that do that, but their business is reworking under-development circuit boards and devices that have design flaws. The price is pretty good for that purpose (time is money), but way too expensive for repairing a laptop board.

</comment></comment></comment></comment></comment><comment><USER14> "... prohibited from _designing_..." isn't going to past 1st amendment muster. You can design and publish designs to your heart's content.

Manufacturing is often performed outside of the state of WA.

Bans on imports, not sure.

This bill is going to have a rough time if it reaches court.

</comment><comment><USER15> _the bill would ban the sale of electronics that are designed "in such a way as to prevent reasonable diagnostic or repair functions by an independent repair provider_

Wow, that's pretty broad. Affects almost every kind of consumer electronics. Will be interesting to watch the resulting lawsuits.

<comment><USER6> "Sec. 5. (1) Nothing in this section applies to motor vehicle manufacturers, any product or service of a motor vehicle manufacturer, or motor vehicle dealers."

The proposed law starts out by being very broad, and then carves out exceptions for cars, off-road motor vehicles, generators, medical devices, etc. It seems like they only wanted it to apply to smartphones, tablets, and PCs, but couldn't come up with legal definitions for these devices.

Interestingly, the definition of "motor vehicle" carves out an exception for motorcycles and RVs, so if a motorcycle has a CPU and a flat panel display, the law _does_ seem it would apply to those. I don't understand the logic behind what classes of products got exceptions in this bill.

<comment><USER16> The exceptions are likely a result of lobbying combined with fear of lawsuits. Motor vehicle manufacturers are a very powerful lobby and in particular have a historical grudge with repair shops (they want everyone to go to the dealer).

</comment></comment></comment><comment><USER17> This would hurt consumers. Closed hardware has advantages (as well as disadvantages), and consumers should not be forced to forgo these. If you want to change your own battery, you are free to buy a phone from a manufacturer other than Apple.

<comment><USER18> Closed hardware has what advantages? I can see forcing consumers onto one platform has advantages (as well as disadvantages) but closed hardware by itself has no advantages I can see.

<comment><USER19> It depends what you mean by closed.

Gluing in batteries enables much thinner, lighter construction. Maybe you think that's unnecessary for a phone, others might differ, but for things like AirPods it's a huge difference. In any case this issue is at least partly overblown, dealing with glued components makes home repair hard, but professional workshops and recycling specialists can often use heat systems and solvents.

Apple's touchID is only secure if the system can trust the fingerprint data it gets from the touch sensor in the screen assembly. If anyone can plug in whatever screen assembly they like with no hardware secure identification, guaranteed security becomes impossible. The same is almost certainly true of the FaceID sensors.

So yes there are very real direct advantages from these manufacturing methods and from closed hardware systems. Whether you care about them is up to you, but surely it's also up to each of us to choose for ourselves?

<comment><USER7> Did you notice that the recyclers are saying that the new macbooks are difficult to recycle.

If Apple wants to continue to do this then they should be force to pay for the cost of recycling their product.

The non-repairability is imposing a real pollution cost on the rest of the world. In recent news China has decided to stop taking in the rest of the world's garbage. The toxic metals are now going to be leaching in to US water supply not just China's. Recycling/reuse/repairability has a positive economic benefit.

<comment><USER19> >Did you notice that the recyclers are saying that the new macbooks are difficult to recycle.

Yes I did, if it's a problem with specific products then yes I think it should be addressed. Apple prides itself on an industry leading record on recyclability and any backsliding from that is unfortunate. However using glue, by itself, isn't always a problem. It would set a significant ussue for recyclability if iPhones for example.

</comment></comment></comment></comment></comment><comment><USER20> My first thought was "who's Washington Bill and why should I care about him?". Capitalization. Hilarious.

</comment><comment><USER21> So any device smaller than a phone, say idk like a watch would be banned? Ok DC

<comment><USER22> DC has no involvement in this bill at all. This is a bill in Washington state, roughly 2500 miles away on the opposite side of the continent.

</comment></comment><comment><USER23> we need this in the EU as well

</comment><comment><USER24> I'm happy this is happening in a state that I don't live in. What next, in their infinite wisdom and prescient vision, will the political class think up for us? Maybe every restaurant's deserts must be gluten free or automobile repair places must be open every day until at least 10:30pm.

I see no reason to trust others to make decisions for me about the kind of electronics I can purchase.

<comment><USER25> The entire purpose of these types of laws is to protect consumers against overwhelming corporate interests. Are you saying that all laws governing product quality are nonsense and that we should be relying entirely on the free market to protect our interests? Or do you just not like this particular law because you personally don't agree with it / don't care about device repairability?

<comment><USER24> The answers to your questions are no and no, but the reasons for my not wanting a repairable electronics law are economic, philosophical, and pragmatic/political.

Naturally, consumers should be protected from fraudulent claims and misleading advertising. You are advocating something different, laws governing particular product qualities that _you_ feel are important. Insisting on repairable electronics will increase the manufacturing costs (otherwise electronics would already be repairable due to price competition). The cost of repairable electronics will be born by everyone while the benefit goes to the people that care about repairable products. These costs seem hard to quantify and consumers preferences may change due to circumstances, but how can we fairly balance these trade offs? Who can we trust to be so wise and so impartial to shift the balance? Isn't it better to allow manufacturers to compete for consumers by making these trade offs? Isn't it better to allow consumers to make the choices themselves? Where is the line?

Personally, I believe the line is somewhere around suitability for the purpose that a device is sold for. A printer should be capable of printing, otherwise the manufacturer has misled and committed fraud. But not every printer needs to be a color printer, not every printer needs to take inexpensive ink cartridges, not every printer needs to print on both sides of a sheet of paper.

There are consumers that will choose printers that I wouldn't. I pay more for my printer because it uses larger less expensive ink that comes in less wasteful containers. I pay more for a printer that prints on both sides of a sheet of paper and saves paper. I hope that my printer is better for the environment, but many people wouldn't want to pay three times the cost of a basic printer for the printer that I use. Why is it right to take away the choices that others have?

Why is it right to say only the rich can have a big screen TV that's repairable while others can't afford these new "better" but more costly TVs and consequently can't have any big screen TV?

The reasoning that leads to this bill under discussion leads to all sorts of restriction on our ability to make choices in our lives. If you are sensitive about gluten, a law requiring gluten-free deserts at every restaurant might make sense; after all, I've had tasty gluten-free dishes. If you are allergic to peanuts, why not outlaw them in the state of Washington, because hey, we could all live without peanuts. There may be a day when all restaurants provide only gluten-free dishes; you can help them get there by opening your own restaurant and seeing if that's what consumers want. Likewise you can give your business to companies that you judge provide better products, whatever that means to you. Asking politicians to change the rules to restrict our freedoms seems like a bad idea.

Just a couple more points:

Generally, corporations are in life and death struggles with their competition. If a company can make a better product at the same price, consumers will buy it. If consumers want repairable electronics more than they want batter-life companies will compete on that basis.

A big problem with regulations is that politicians can be lobbied to change the rules by corporations and special interests that have large vested interests. Smaller impacts spread across the entire population may make everyone worse off, but not by enough to move them to match the contributions of the special interests.

I recommend the following video series by a Nobel Prize winning economist[1]:

[1] [https://www.youtube.com/watch?v=D3N2sNnGwa4](https://www.youtube.com/watch?v=D3N2sNnGwa4)</comment></comment></comment>


Ask HN: Trusted Computing, iPhone, and unique identifiers - <AUTHOR>

Here's the problem:
I'm building an iPhone app. It talks to a server. I want each iPhone to only be able to have _one_ account on the server -- I don't want people creating lots of separate accounts and having them collude.
Now, my iPhone app and my server are talking to each other over TCP/IP. In theory, anyone can build a computer program that fakes the protocol my iPhone app uses (not very hard -- just download the app, log the packets, reverse engineer the API; I can encrypt my traffic, but they can run the app under a VM / extract the key).
So, although I'm generally not a big fan of Trusted Computing -- does the iPhone support anything like this? Where my server can remotely detect "is this device an iPhone?" + "give me a non-forgable UUID" (even if I force the device to be an iPhone, the attacker can still create another iPhone app and have it talk via the same API).
Thanks!
(Sorry: I realize the business man in me says "err, build the product first, worry about this later"; but I'm kind of curious -- both from a technical perspective and a design perspective -- if I know that creating each account requires purchasing an iPhone / iPod touch, I can know up front that people are less likely to create silly accounts & try to screw around). <comment><USER2>
      NSString *UUID = [[UIDevice currentDevice] uniqueIdentifier];

Will give you the current devices UUID. And, is it really important to know if the device is an iPod or an iPhone?

However, this _won't_ stop people from screwing around with your app still. If people want to act silly and stupid, they will.

</comment><comment><USER3> no, the iPhone doesn't provide a "non-forgable UUID" The [UIDevice currentDevice] uniqueIdentifier isn't going to work because it is trivial to spoof the deviceIdentifier.

You could potentially design your own authentication mechanism and implement the appropriate client-code and server-code to verify (over ssl) that the server request really came from the client that you implemented and from a valid user/subscriber. If your client-code can only run on the iPhone, that may be sufficient to prove that the client is an iPhone and that the user is a valid subscriber.

</comment><comment><USER4> What kind of app are you building that this is a concern?</comment>


Welcoming Sean Ellis to Performable and Boston - <AUTHOR> http://davidcancel.com/welcoming-sean-ellis-to-performable/

<comment><USER2> Lunch in Boston? This time of the year? Hope you have a nice warm / sunny day on Friday! :)</comment>


Robocallers Target Chinese Speakers in Latest Phone Scam - <AUTHOR> https://www.wsj.com/articles/robocallers-target-chinese-speakers-in-latest-phone-scam-1528128363 <comment><USER2> Well, I can just suggest everybody to hang up or even ignore calls if they don't know the numbers. I personally always look up the number on Google or check them on sites like [http://whycall.me](http://whycall.me) just to see if people have reported them as scam. I will block the numbers without even talking to them, then.</comment>


Entrepreneur Magazine's Entrepreneur of the Year Contest - <AUTHOR> http://www.entrepreneur.com/e2009/eoyEntryForm.php

<comment><AUTHOR> must have 500k in annual sales and 51% ownership to apply!</comment>


Larry Wall Unveils Perl 6.0.0 - <AUTHOR> http://www.pigdog.org/auto/software_jihad/link/3138.html <comment><USER2> I honestly did not expect to see the day Perl 6 gets finished. This must have been one of the most difficult - if not _the_ most difficult - births in the history of programming languages.

At work, I have been using Perl 5 increasingly often over the past two years, mainly because handling unicode in Python 2 is not a lot of fun (and I still haven't come around to learning Python 3), and I have rediscovered why I used to like it so much.

So far I have not looked into Perl 6 seriously, because I did not see the point to do so before it was finished. Guess I know now what I'll be doing this Christmas. :)

Also, you gotta love Larry for quotes like this one: "This is why we say all languages are religious dialects of Perl 6..."

<comment><USER3> You can build Perl6 and try it right now if you want, see my [early Perl 6]([http://g14n.info/2015/03/early-perl6/](http://g14n.info/2015/03/early- perl6/)) article for detailed building instructions.

<comment><USER4> Or use rakudobrew. [http://codeselfstudy.com/wiki/Perl_6](http://codeselfstudy.com/wiki/Perl_6)

I don't know Perl, but I saw the presentation and was blown away. Installed it today, and definitely will try building something with it soon.

</comment></comment></comment><comment><USER5> I haven't looked, but I really hope Perl 6 held on to the 50 different ways to do any one thing. Pulling out my hair in frustration from trying to deal with Perl written by other people saved me all manner of haircut money in the 90s.

<comment><USER6> If you had tried to invest a little time to _actually_ learn Perl, you might still have a beautiful mane on your head.

<comment><USER7> I suspect a lot of people didn't take the time to actually learn Perl which is why there's so much "there's-more-than-one-way-to-do-it" Perl code in the wild.

For whatever reason, I went the PHP route and I can say from nearly 20 years experience that PHP has the same problem even if it doesn't have the same philosophical approaches as Perl. Too many people who never actually learned the language producing near unmaintainable code.

<comment><USER8> If you have globals, nulls, gotos, or whatever dangerous (but sometimes useful) features (e.g. states); surprise surprise people will end up using them at one time or another.

Perl is not the first nor will it be the last (imperative) programming language helps people fail too easy.

<comment><USER9> Double check me on this, but Perl 6 doesn't yet have a goto statement, nor does it have globals.

<comment><USER10> > Double check me on this, but Perl 6 doesn't yet have a goto statement, nor > does it have globals.

AFAIK, Perl 6 has a goto statement in the spec (one big change is that Perl 6 _is_ a spec), it just isn't yet implemented in any of the implementations. But presumably the target is to have the whole spec implemented for the release this Christmas. (EDIT: Actually, no, goto won't be in "6.Christmas" [0])

For globals, its has global scope ("our") but variables with global scope are still namespaced based on where they are declared, so while they are globally _visible_ , they lack some of the more problematic features associated with globals.

[0] [https://gist.github.com/jnthn/040f4502899d39b2cbb4](https://gist.github.com/jnthn/040f4502899d39b2cbb4)

</comment></comment></comment></comment></comment></comment><comment><USER11> > One of the most impressive things Larry demonstrated was the sequence > operator, and Perl 6's ability to intuit sequences.

        say 1, 2, 4 ... 2**32

> This correctly produced a nice tidy list of just 32 values -- rather than > the 4,294,967,296 you might expect.

Someone with more time than me needs to find an IQ test that is based around sequence questions like this and plug them all into Perl 6. So we can find out what Perl 6's IQ is and whether it has achieved AI.

<comment><USER12> With things like this, it makes me glad I write C++ (and that gets bashed enough!). I do not miss the days of maintaining a Perl codebase (and trying to decipher what on earth code was doing). This is insane.

<comment><USER6> Perl is a language sufficiently different from the main bulk of languages that one must make an earnest effort to learn it before one can read it. Your complaint is similar to someone declaring Japanese insane just because of the way its writing system looks like gigantic and erratic complexity to the inexperienced.

<comment><USER5> You pretty clearly have an emotional attachment to Perl, which is sort of lovely to see, but it's causing you to be undeservedly condescending to people who don't have that attachment, which is not lovely.

<comment><USER13> > to be undeservedly condescending ... is not lovely.

It seems like you have just diagnosed someone's behavior without them asking for a diagnosis and your diagnosis is that they are being condescending. See the problem there?

And this followed what some might call undeserved condescension: "Pulling out my hair in frustration from trying to deal with Perl written by other people saved me all manner of haircut money in the 90s.".

If you think I'm being undeservedly condescending, and this isn't lovely, perhaps we can find another way to talk about Perl _6_?

<comment><USER5> You can torture my words rhetorically to score emotional points, but I don't know what you think you prove by it.

If you find my jocular expression of my very real experiences with Perl to be condescension, I'm going to have to let you know that I don't believe Perl to be all that worried about it, incapable as it is of having an emotional state.

</comment></comment></comment></comment></comment></comment><comment><USER14> Congrats to the perl community. We should keep an open mind and learn from what they have accomplished.

If perl 6 turns out to be useful for the larger software engineering community (and is more widely adopted), this is wonderful. If not, then we still have another interesting language in the great river of interesting tech things.

Either way, the perl community will continue to do what it does best!

</comment><comment><USER15> Some languages are for earning your daily bread (like Java, or Objective-C). Some, like Haskell, are for intellectual pursuits.

Perl is for poetry. For seeing the impossible and going back.

<comment><USER16> You Sir, have the heart of a Poet!

</comment></comment><comment><USER17> > ++; # An anonymous state variable, for very fast loops

Perl, never stop being you

<comment><USER18> Also:

      react { whenever }	# Code runs when a condition is met.

I can only think this must be a generic [https://en.wikipedia.org/wiki/COMEFROM](https://en.wikipedia.org/wiki/COMEFROM). It is sure going to create some viciously subtle bugs.

<comment><USER19> Cf [http://www.jnthn.net/papers/2015-spw- concurrency.pdf](http://www.jnthn.net/papers/2015-spw-concurrency.pdf)

<comment><USER13> From pages 56 and 57:

> Perl 6 has an asynchronous looping construct called whenever ... runs > whenever a value arrives ... can live in a ... react block (works like > entering an event loop)

      my $code = supply {
        whenever IO::Notification.watch-path($src-dir) {
          emit .path if .path ~~ /<.pm .p6> $/;
        }
      }

So now, whenever something in $src-dir changes and its path ends with '.pm' or '.p6' that path will be emitted -- which in this case means it'll be pushed to any construct pulling from $code. Such as:

      react {
        whenever $code -> $path {
          say "Code file $path changed!";
        }
      }

</comment></comment></comment></comment><comment> vezzy-fnord Perl 6 appears to be the SNOBOL of our times, with grammars being a first- class lex, plenty of functional idioms, APL influences and a reasonable object system.

Given how much of contemporary programming is munging, I can see it really picking up steam.

</comment><comment><USER20> Given how long it took to replace Perl 6, and the fact that I (and most others I know) have moved onto other languages, I can't decide if I'm more (a) surprised, (b) impressed, or (c) indifferent.

Kudos to Larry for sticking with it, and for (I'm sure) introducing interesting ideas into the world of programming languages. That said, I have to wonder how many people will really use Perl 6 in their day-to-day work, and how many will look at it as a curiosity.

For me, I'm afraid that Python and Ruby have replaced Perl, despite more than 10 years in which Perl was my go-to language. Maybe I'll return to it, but I sorta doubt it.

<comment><USER21> I don't know, there's something to be said for a language that isn't a moving target. You learn it really well inside and out and your effort isn't wasted as it is thrown away for some hot new fad language in a couple of years or find that everything you learned is now deprecated because the authors decided that functional programming is the bees knees.

</comment></comment><comment><USER22> I've found these resources helpful for learning Perl 6:

[http://learnxinyminutes.com/docs/perl6/](http://learnxinyminutes.com/docs/perl6/) is a pretty good intro to Perl 6 if you just want to jump into things.

[http://www.jnthn.net/papers/2015-spw- perl6-course.pdf](http://www.jnthn.net/papers/2015-spw-perl6-course.pdf) is more slowly paced but provides greater detail.

Also, the people in #perl6 on Freenode are all awesome and are usually quick to help beginners unless they are in the middle of fixing some crazy bug.

<comment> the-owlery Perl 6 has slides, IRC, a skim-through (learnxinyminutes), reference docs, examples, but alas no solid tutorial. This, IMO, will be a major problem if it persists until Christmas.

</comment></comment><comment><USER23> I'm really surprised this site is the source y'all chose to upvote. Not only was the second-newest article published in 2012, they also have an assortment of other questionable content[0][1]. Advertising from rotten.com and a category named "Jonny Jihad" are also professional touches.

I mean, whatever floats your boat, but HN, is this really one of your go-to trusted news sources?

[0] [http://www.pigdog.org/in_the_pink/html/interview_with_a_stri...](http://www.pigdog.org/in_the_pink/html/interview_with_a_stripper.html) [1] [http://www.pigdog.org/pooniedog/](http://www.pigdog.org/pooniedog/)

<comment><USER24> I was delighted to see pigdog.org appear on the front page of HN; I thought it had died years ago (and I guess it mostly did). The Pigdog Journal was a Big Deal for a certain clique of nerds/technologists in the late 90s/early 00s. (You know, when Perl was also a Big Deal.) The web was a smaller, zanier place then; for those that remember that web, pigdog.org brings a wave of nostalgia.

<comment><USER23> I edited my snark, but I was going to ask if this was "just a Perl thing?"

I guess it's just a Perl thing...

</comment></comment></comment><comment><USER25> So is this a real thing? I've never seen this pigdog website before, it's second newest article was published in 2012, and there's no mention of this on the perl 6 home page or in the perl 6 announcements mailing list..

<comment><USER26> At FOSDEM earlier this year, Larry gave the presentation they describe, and said that they were expecting a beta release at Christmas this year. So the general concept is legit, regardless of the site.

<comment><USER27> I don't see how that makes this look any more legitimate. The FOSDEM website says they had over 5000 people attending, so it's not like Larry's talk was a big secret. And Perl 6 has been right around the corner forever, so a fake "Perl 6 is released" page could seem timely and legit in concept at almost any time in the last 10 years.

Even if it's true, if they want anybody to pay attention they should announce it on perl6.org or at least a more professional looking page. If I were at work and opened a page with rotten.com banner ads, and "software jihad" all over the place, I'd close it immediately and hope nobody saw it.

<comment><USER28> Not being privy to the talk, my assumption was that the final shipping feature list was solidified, and that's what was being announced. It's still due at Christmas, and that was already known. I think the article's meaning was somewhat ambiguous with the title, and HN just ran with it. Nothing has been released (but apparently there's two beta's officially planned now, the first of which is in a week or so).

</comment></comment></comment></comment><comment><USER29> Congratulations Larry and the Perl 6 community!

From what little I've played around with the language in the past, I really like it, and I'm glad the community can put the "still in development" talking point behind it.

Also, one of my favorite things about Perl 6 is that the Rakudo interpreter prints some of the _nicest_ error messages I've ever seen. It actually offers suggested solutions, and it points out Perl 5->6 migration gotchas.

<comment><USER30> As far as I understand, Rakudo is a compiler, not an interpreter. It compiles perl 6 source files into bytecode that is executed by a VM.

<comment><USER29> Yeah, you're right. Total brainfart there.

</comment></comment></comment><comment><USER31> Perl was the first programming language I ever used, and i think 6 was being worked on even then. I've moved on to ruby as my goto, but my (limited) memories of perl are fond, and I'm happy to see its still moving forward.

<comment><USER32> Every time I try and write ruby I end up giving up because the OO is boilerplate heavy and restrictive compared to Moo/Moose.

Basically "No method modifiers and I have to write my own constructors? Really?" always drives me away within a few hours.

<comment><USER33> Method modification is trivially done through "alias" and then just redefining the method in Ruby, if you re-open the same class. If you subclass, then "super" is sufficient. I'm curious what you actually mean here.

As for writing your own constructors, you only need to do so if you actually need to initialize something, and since instance variables can be used without having initialized them in a constructor (they'll just default to nil), I'm curious what you mean here too.

<comment><USER32> > Method modification is trivially done through "alias" and then just > redefining the method in Ruby

I don't know how to convert this into ruby then without needing to manually gensym a bunch of names:

        use Class::Method::Modifiers;

        sub foo { 2 }

        before foo => sub { warn "before foo 1" };

        around foo => sub {
            my ($orig, $self) = (shift, shift);
            warn "around foo";
            (1, $orig->$self(@_), 3);
        };

        before foo => sub { warn "before foo 2" };

> As for writing your own constructors, you only need to do so if you actually > need to initialize something

Which is required if you're going to use value objects as much as possible rather than spraying mutable state everywhere.

<comment><USER26> You can do this. I tried to draw up a quick gist, but I am late, and I've been writing too much Rust...

The basic idea is this:

      module Mst
        def self.included(base)
          # define a method on base using define_method named :before, which takes an
          # argument and a block
            # in that method, you grab the method with that name, using .method()
            # you then define a new method, named method, which calls the block and
            # then calls the original method
        end
      end

      class Foo
        include Mst

        def test
          puts "test"
        end

        before :test do
          puts "before"
        end
      end

Module named after you. You can see how the logic only changes a bit for after and around. You could then wrap this up as a library, and all you'd need to do is the include.

[http://api.rubyonrails.org/classes/ActiveSupport/Callbacks/F...](http://api.rubyonrails.org/classes/ActiveSupport/Callbacks/Filters.html) has an example, I think.

<comment><USER32> That's really cute.

I hope, however, that you can understand from the POV of somebody who keeps being driven off ruby by ruby being too much work, that "you could make it less work by first porting all the perl5 libraries that make perl5 OO more pleasant" isn't really a convincing solution :)

<comment><USER26> One of my Twitter followers posted a gist: [https://gist.github.com/paulodiniz/39698ac1fe5f62e3180e](https://gist.github.com/paulodiniz/39698ac1fe5f62e3180e)

Sure, I was just addressing the "I don't know how to do that." Rails offer this for models in certain circumstances, for example.

<comment><USER32> That's very cute.

Yeah, I was responding to a post that claimed it was trivial; that's cute but not trivial - although it does demonstrate that using 'alias' to rename isn't necessary, which is nice to know.

I can absolutely see how I'd turn this into a full Class::Method::Modifiers re-implementation, so I'll totally stipulate to 'trivial if' :D

<comment><USER26> I'm not interested in being condescended to, so

<comment><USER32> Wut? I just complimented the code you posted, and changed my mind from "the unconstructive guy upthread said trivial, which it isn't, but steve's been kind enough to give me enough information to see it's trivial if I write a port of CMM, and said port is basically identical rather than requiring the crappy alias approach".

I've genuinely no idea why you think I was being condescending.

<comment><USER28> I don't know where steveklabnik hails from, but in the US "cute" is sometimes meant with a condescending overtone. I seem to recall you are from the UK (Scotland?) from the last YAPC I was at, so I suspect this is a dialect difference causing a misunderstanding.

<comment><USER32> Oooh. Yes. In the above comment, "very cute" should be read as being said genuinely in an approving voice with a big grin, and exactly zero sarcasm.

This may be the first time (yeah, English, but do wear a kilt a fair bit) I've ever run into a problem with an American overdetecting sarcasm.

<comment><USER34> For what it's worth, I completely agree with the "crappy alias" thing, and wrote a lot about this topic back when I was working on Rails full time (example: [http://yehudakatz.com/2009/03/06/alias_method_chain-in- model...](http://yehudakatz.com/2009/03/06/alias_method_chain-in-models/)).

Ruby eventually added `prepend`, which I demonstrated upthread, and is a genuinely generic, in-language solution to the problem you're talking about.

<comment><USER34> I dug up my original proposal from 2009, which eventually landed in Ruby 2.0: [http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby- core/...](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/25208)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER35> My sense, playing with Perl 6, is that it could become a "pro tool" \-- very deep and powerful. It needs to mature some (though it is very solid already) and to grow its ecosystem (though it can run much of CPAN via Inline::Perl5).

Those who want to play can install from [http://rakudo.org/how-to-get- rakudo/](http://rakudo.org/how-to-get-rakudo/)

Larry's talk was a lot of fun, especially the way he zipped around between vi and terminal windows -- no need for presentation software.

<comment><USER35> A couple of other things that haven't been much highlighted:

\- Perl 6 right now runs very well on two back ends: a custom VM and the JVM. It is spinning up a Javascript back end, I think primarily for NodeJS.

\- Concrete representations are carefully separated from core semantics, so Perl 6 currently supports native values from C, Perl 5, Python, etc. It should be able to support native arrays as required for high performance scientific computing etc.

<comment><USER36> Whatever happened to the ParrotVM? I always thought that it was somehow intrinsically tied up with Perl6.

<comment><USER37> [http://www.modernperlbooks.com/mt/2013/02/goodnight- parrot.h...](http://www.modernperlbooks.com/mt/2013/02/goodnight-parrot.html)

[https://www.ohloh.net/p/parrot](https://www.ohloh.net/p/parrot) (contributor graph at the bottom)

</comment></comment></comment></comment><comment><USER38> Junctions and autothreading seem to be importing the core of APL/J: [http://doc.perl6.org/type/Junction](http://doc.perl6.org/type/Junction)

(I'm randomly scanning [http://faq.perl6.org](http://faq.perl6.org))

<comment><USER28> Perl 6 basically hoovered every good programming concept they could think of (and some that ended up being not so good, which have hopefully been shaken out over the last decade). If you want a small language, this is not it. If you want an amazingly powerful language that just allows you to do what you want with a minimum of fuss, pull up a seat.

<comment><USER39> Whereas Go has gone the other route and jettisoned everything. Not having a ternary operator is a real pain.

One thing Go does well is provide the gofmt tool. There is only one way to format code properly.

Does Perl 6 have something like this?

<comment><USER9> Probably soon.

Perl 5 has a Tidy'ing tool[0], as well as a Lint[1] tool. Both are based on rules created from (originally) Best Practices [2]. These rules of course can be modified to taste, so you can set your own rules/filters before checking in your changes to a repo (or, whatever)

[0] [https://metacpan.org/pod/distribution/Perl- Tidy/lib/Perl/Tid...](https://metacpan.org/pod/distribution/Perl- Tidy/lib/Perl/Tidy.pod)

[1] [https://metacpan.org/pod/Perl::Critic](https://metacpan.org/pod/Perl::Critic)

[2] [http://shop.oreilly.com/product/9780596001735.do](http://shop.oreilly.com/product/9780596001735.do)

<comment><USER40> Perltidy predates PBP by a long time. Perltidy is a bit of a huge mess, and it has its own parsing code and is nearly impossible to hack on. We really need a PPI-based re-implementation.

<comment><USER9> There was a very interesting submission to HN on why code formatting utilities aren't easy things to write, [0] called, The Hardest Program I've Ever Written [1]

The code of Perl Tidy at least looks pretty good! [2]. Perhaps there's a reason why PPI isn't used, that I'm not famliar with, other than - as you say, it predates it. Perl::Critic uses PPI, yes?

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

[1] [http://journal.stuffwithstuff.com/2015/09/08/the-hardest- pro...](http://journal.stuffwithstuff.com/2015/09/08/the-hardest-program-ive- ever-written/)

[2] [https://metacpan.org/source/SHANCOCK/Perl- Tidy-20150815/lib/...](https://metacpan.org/source/SHANCOCK/Perl- Tidy-20150815/lib/Perl/Tidy.pm)

<comment><USER6> Thanks for the links.

As the current de-facto maintainer of PPI, the answer is rather simple:

P::T predates PPI by almost two years: [https://metacpan.org/source/SHANCOCK/Perl- Tidy-20021130/CHAN...](https://metacpan.org/source/SHANCOCK/Perl- Tidy-20021130/CHANGES#L1685) [https://metacpan.org/source/ADAMK/PPI-0.1/Changes](https://metacpan.org/source/ADAMK/PPI-0.1/Changes)

and:

For the longest time Perl was considered unparsable, primarily due to the two features of function parens being optional, and the argument-slurpiness of function calls being unknowable without introspecting the function reference that ends up being the final one, at runtime. In the most famous example this can lead to a / after a function call being considered either the division operator or the start of a regex; with both interpretations resulting in valid Perl code. It took a while for anyone to come up with a schema in which Perl could be parsed while also being round-trippable. It took PPI a while to get there and be stable, and meanwhile P::T had already become stable itself.

</comment></comment></comment></comment></comment></comment></comment><comment><USER41> _> Finally, there's a way to stop non-identical strings from matching just because they have the same numerical value._

Um, this has been there for decades:

        $a = '123';
        $b = '123.0';
        print $a == $b ? 'y' : 'n';  # prints y
        print $a eq $b ? 'y' : 'n';  # prints n

<comment><USER28> I read it that way at first, and was going to comment on it, then I figured the point was smart match being able to distinguish, not being able to do your own test.

<comment><USER42> 'eq' does the test you are asking for.

<comment><USER28> Yes, I'm aware, but when using smart matching (that is, the given/when pair which has had it's fair share of trouble, and is currently experimental after having not been), you sometimes want to be able to distinguish between those types of tests when doing a _smart match_ [1].

I believe the article was referencing this, and so while yes, _anyone_ who knows how to use Perl will use the appropriate operator for the appropriate type of type operation, there are reasons to still want to distinguish what type of match is done by the smart match operator, '~~'.

1: [http://perldoc.perl.org/perlop.html#Smartmatch- Operator](http://perldoc.perl.org/perlop.html#Smartmatch-Operator)

</comment></comment></comment></comment><comment><USER43> Sounds like a v2.0 with feature bloat.

""Any infix operator can be replaced by itself in square brackets..." Later someone asked, "In a world of user-defined operators everywhere, how do you define precedence?" And Larry pulled out is tighter() and is looser(), noting that Perl 6 even has customizable precedence levels. "You can add an infinite number...""

It's been said that most of programming is about managing complexity. I'm unhappy with Perl in general because it makes it really easy to hide complexity. Perl 6 looks like it makes it even worse.

Yes, it looks like an amazingly powerful and sophisticated language, and an amazing and respectable accomplishment, but my gut feeling is I'll hate seeing some in production...

<comment><USER28> A nice feature is that imports honor scope, so you can use a module and import functions or operators within a scope and not worry about it causing problems elsewhere.

</comment></comment><comment><USER44> Perl was the first high-level language I learned and I've used it many times during interviews. I still think I can solve most non language-specific interview questions extremely efficiently with Perl. Go Perl!

</comment><comment><USER45> Long ago, Perl as a coding Leatherman, along with C/C++/Java.

Python took Perl's place on my belt. I'm using Python2, because all the reasons everyone else gives, and because it's Python2 at work. I've been wondering when I'd finally decide/be able to move to Python3.

And now I'm rubbing that faint Leatherman imprint on my belt, and wondering if I'll just skip Python3 for Perl6.

</comment><comment><USER46> I would never want to use Perl at my day job, but I also wouldn't want to live in a programming universe where Perl didn't exist. Perl is a place where the pure joy of coding thrives.

<comment><USER12> I always found it obtuse and overly terse to the point of non-maintainability or readability, far worse than even C++. But that could be due to my lack of understanding, or being used to C-style languages and syntax.

Good to see it still has a dedicated following.

<comment><USER46> Hence the first 11 words of my comment.

</comment></comment></comment><comment><USER47> Seems too little too late. Is Perl still relevant in 2015? What would you build in Perl today that you wouldn't build in another language instead?

I used to be a big fan of Perl but it seems to have fallen behind the times, I doubt Perl 6 is enough to catch up.

<comment><USER22> Here's something that's normally not too fun to deal with in Python and Ruby: asynchronous operations. Perl 6 has promises, C#-style async/await, Go-style channels, and Reactive Extensions-style Supplies built in as first-class ways to deal with asynchrony, concurrency, and parallelism. It can also take advantage of as many threads as you'll give it. Since I deal with web services a lot, this is a huge boon for me.

But I don't really want to give a laundry list of features, because that alone is not a compelling enough reason to pick a language (P6 obviously needs to develop an ecosystem). As someone who appreciates both OO and FP, both static and dynamic typing, P6 really hits a sweet spot. I encourage you to look at Perl 6 as a new language with the feel of Perl but which solves many modern problems.

<comment><USER48> Are you talking about Clojure ;)

<comment><USER49> As a fan / dilettante of Clojure, I'd say no. The JVM is many nice things, some nasty things, but definitely not lightweight in terms of things like startup speed that I'd expect of Perl 6.

<comment><USER50> "The JVM is many nice things, some nasty things, but definitely not lightweight in terms of things like startup speed"

The jvm startup speed is actually surprisingly good these days. We were experimenting with writing several commandline tools with Scala, and didn't think they would work because of this "well-known" issue. Turns out it was fast enough even to enable letting Scala handle things like the code completion and still have it feel very snappy.

<comment><USER22> I'd agree that the JVM itself isn't so bad in terms of startup time. However, the last time I compared Clojure and Scala, Clojure took significantly longer to start up (even though what I was doing in Clojure was nothing compared to all the libraries I was pulling in with Scala!)

Edit: I should add that there's a Perl 6 JVM backend. While it's not as up-to- date as the default MoarVM, it could also be ready "for Christmas" :)

</comment></comment></comment></comment></comment></comment><comment><USER51> You launch Perl 6 without updating the fucking home page? So Perl. So perl.

<comment><USER19> Launchdate is still Christmas.

Accordingly, the official 6.0 release is also known as 6.Christmas. Right now, we're only at 6.Birthday.

<comment> iso8859-1 According to [http://rakudo.org/how-to-get-rakudo/](http://rakudo.org/how-to- get-rakudo/) , Perl 6 is just a specification. What changes do you see in the specification between now and Christmas?

<comment><USER19> Note that the 'Synopsis' has been demoted to be closer to a set of design docs than a formal specification - it's more about the test suite these days (cf first two paragraphs of [http://design.perl6.org/](http://design.perl6.org/)).

Jnthn made a list of things that are supposed to be fixed by Christmas [1] as well as a list of things that probably won't make it into the 6.0 release [2].

[1] [https://rt.perl.org/Public/Bug/Display.html?id=123766](https://rt.perl.org/Public/Bug/Display.html?id=123766)

[2] [https://gist.github.com/jnthn/040f4502899d39b2cbb4](https://gist.github.com/jnthn/040f4502899d39b2cbb4)

</comment></comment></comment></comment><comment><USER52>
        $ brew install rakudo-star
        <.... snip ....>

        $ perl6
        > say "hello world, sorry for the wait"
        hello world, sorry for the wait
        >

</comment><comment><USER53> I've been waiting on the sidelines for 20 years but this release makes me think its finally time to jump in.

</comment><comment><USER54> I'm pretty excited about the release of perl6. perl6 has a number of interesting use cases and features. I'll be happy to watch it evolve as more people pick it up and find new/interesting uses.

</comment><comment><USER55> Here are the official words from Larry. There will be 2 beta releases and the major one in December.

Larry goes by the handle TimToady

[http://imgur.com/1Vrpl2G](http://imgur.com/1Vrpl2G)

<comment><USER56> I had to look up GLR: the "Great List Refactor".

[http://pmthium.com/2014/10/apw2014/](http://pmthium.com/2014/10/apw2014/)

"What exactly is the "Great List Refactor" (GLR)? For several years Rakudo developers and users have identified a number of problems with the existing implementation of list types — most notably performance. But we've also observed the need for user-facing changes in the design, especially in generating and flattening lists. So the term GLR now encompasses all of the list-related changes that seem to want to be made."

</comment></comment><comment><USER57> I may not write a bunch of Perl 6, but the planet is better for having Perl 6. That says a lot about the person who guided Perl 6 to completion, he's a gem of a guy. Thank you Larry!

</comment><comment><USER58> _" If that's what it takes to make Ruby programmers happy..."_

Completely brilliant.

<comment><USER34> It's unnecessarily condescending, especially given that Ruby got `?` and `!` suffixes from Lisp, which far predates Ruby, and that Ruby itself is in many ways a descendent of Perl.

<comment><USER58> _The goal of Ruby is to make programmers happy. I started out to make a programming language that would make me happy, and as a side effect it's made many, many programmers happy. Especially Web developers. But Ruby hasn't reached developers who work on embedded devices, mobile devices, controllers, things like that. I hope to make them happy too._ \-- Matz [1]

Larry Wall's comment recognizes Ruby culture and acknowledges that it is a good thing. Not surprising given that Perl 6, like Ruby is an everything-is- an-object language with a lineage from Smalltalk. Programmer productivity/happiness was one of its goals as well.

[1]: [http://siliconangle.com/blog/2011/08/31/qa-with-yukihiro- mat...](http://siliconangle.com/blog/2011/08/31/qa-with-yukihiro-matz- matsumoto-the-creator-of-ruby/)

<comment><USER28> Well, Ruby also has quite a bit of lineage in _Perl_ , so there's another layer to that as well. I think a lot of Ruby programmers that are unfamiliar with Perl would be surprised with how similar they are in some respects.

<comment><USER58> It would not surprise me that parts of Perl made Matz happy.

</comment></comment></comment></comment></comment><comment> iso8859-1 Things that won't make it in to 6.christmas (the non-beta release): [https://gist.github.com/jnthn/040f4502899d39b2cbb4](https://gist.github.com/jnthn/040f4502899d39b2cbb4)

</comment><comment><USER59> When talking about Perl never forget to mention CPAN. Heck this library ecosystem is still great and running..

<comment><USER60> CPAN installs are the reason I personally avoid perl like the plague today.

<comment><USER6> Why?

<comment><USER61> So do I, for the same reasons.

At a previous job perl was used everywhere. As a language, it's quite nice. CPAN is horrible, though. No staging/stable/whatever versioning, new modules requires updating versions of existing modules which frequently broke - it's just not something that's enterprise friendly.

I tried but failed to find a company that would support and curate a subset of CPAN modules properly. Does one exist now?

<comment><USER6> There are multiple tools to do this on your own, with CPAN::Mini and friends, or Carton.

I also don't know how long it's been since you last tried, but cpantesters and the other odds and ends of the ecosystem have helped tremendously in reducing published bugs. ( [http://matrix.cpantesters.org/?dist=System- Command%201.115](http://matrix.cpantesters.org/?dist=System-Command%201.115) )

<comment><USER62> Checkout Pinto, [http://perlmaven.com/pinto- tutorial](http://perlmaven.com/pinto-tutorial), which allows you to host your own CPAN mirror and have stacks. So you could have a "development" stack and a "production" stack, or a "perl-5.8" stack and a "perl-5.16" stack. Whenever you add or upgrade a module, it only affects one stack.

</comment></comment></comment></comment></comment></comment><comment><USER63> Is Duke Nukem Forever out yet?

<comment><USER36> Yes, all we're waiting for now is GNU Hurd, and software will be complete.

<comment><USER64> I hate to indulge this thread, but feel obligated to note that Half-Life 3 is still naught but a name.

<comment><USER65> Half-Life 3 is not even vaporware. It was never announced, was it?

<comment><USER64> The ending of the last-released HL2 episode had a very "to be continued" feel to it, but more importantly, Valve has made statements about future releases moving away from "the episodic format" to "smaller releases" and possibly returning "to genuinely scaring the player," but it all seems rather dead now. This section in Wikipedia has some relevant sources: [https://en.wikipedia.org/wiki/Half- Life_(series)#cite_ref-37](https://en.wikipedia.org/wiki/Half- Life_\(series\)#cite_ref-37)

Probably the funniest / saddest / most hopeful part of the whole saga is that at some point, a group of fans organized a sit-in at Valve HQ to plead for a commitment to HL3 :)

</comment></comment></comment></comment></comment><comment><USER19> Some of the code examples suffer from a failure to escape angle brackets...

</comment><comment><USER66> So, for someone who has never read or written Perl code, where should I start? Perl 5 or 6? I get that they're different languages, but I want to see what "Perl" is like.

<comment><USER28> > but I want to see what "Perl" is like

> get that they're different languages

I'm not sure you do get it, unless you are talking about the "feel" of using it, in which case use either. They aren't just different languages because there's some things that break backwards compatibility, they are vastly different in many ways.

If you want to know what current deployed Perl is like, look at Perl 5. If you want to look at what the "Perl" future is, look at both Perl 5 and Perl 6, since they'll both be around. If you want to see something new and different, look at Perl 6.

<comment><USER66> I was talking about the "feel", indeed. So for example, if someone wanted to experience what a Lisp is like, I could point them to Scheme.

I want to know what "Perl" is like, but the fact that Perl 5 and 6 share the same name is a tad confusing for a newcomer. Precisely because I have no idea what "standard" Perl is.

I guess Perl 5 it is, since it's already on my machine.

<comment><USER67> The Modern Perl book[1] is highly recommended.

For web development, check out Mojolicious[2] or Dancer2[3]

And Task::Kensho[4] lists recommended modules for various tasks.

[1] [http://modernperlbooks.com/books/modern_perl_2014/](http://modernperlbooks.com/books/modern_perl_2014/)

[2] [https://metacpan.org/release/Mojolicious](https://metacpan.org/release/Mojolicious)

[3] [https://metacpan.org/release/Dancer2](https://metacpan.org/release/Dancer2)

[4] [https://metacpan.org/pod/Task::Kensho](https://metacpan.org/pod/Task::Kensho)

</comment></comment></comment></comment><comment><USER68> Someone should implement a Duke Nukem Forever clone in Perl 6.

Pretty excited about Perl 6. Haven't used Perl in a long time but there seems to be quite a bit of cool stuff and I'm very excited to see what a language where Larry had more free reign will be like. Xmas reading/coding here we go (how fitting)

</comment><comment><USER69> Oh my. I expect the next version of Perl to read my thoughts and to not require any source code from fallible mortals. The jury is still out whether this will produce more bugs than it abolishes. The answer is expected in time for the end of the universe.

</comment><comment><USER70> sidenote: why does a barracuda device consider pigdog.org "Porn"?

<comment><USER71> well they have certain ... associations ... with dog urls so they decided that dog* was a good ban pattern.

<comment><USER70> In a perl article, you give a non-matching pattern?

Its just one of those little things we don't think of often, but a lot of folks buy these devices and its a weird form of censorship beyond what's normally intended.

</comment></comment></comment><comment><USER72> Congrats! But shouldn't some kind of official announcement be made on perl6.org?

<comment> iso8859-1 There will be, when a stable version is released for christmas.

</comment></comment><comment><USER73> I don't think I'll ever use it again, but I'm glad that it exists.

</comment><comment><USER74> quetion for the early adopters: if i develop an end-user app in perl6 on linux, how easy is it for me to deliver it to a non-technical windows and/or mac osx user?

<comment><USER28> Since Rakudo also targets the JVM, not just MoarVM (the dedicated VM), I imagine it's not terribly too much work to get to the point where the app, included modules, and Rakudo/Perl 6 itself can be bundled together for delivery.

</comment></comment><comment><USER75> oddly enough, a coworker and i were joking about how perl 6 would come out in the next 100 years on monday and just a few days later larry wall made us look foolish.

</comment><comment> the-owlery Perl 6 needs a good tutorial.

</comment><comment><USER76> I love Perl [I have been to perl monger meetings and I had to look up how to 'unshift' in python today].

But Python3 is mostly just Python2 with a print function instead of a print keyword. It is occasionally non-trivial to port large existing code bases from Python2 to Python3, but it is practically always trivial for a Python2 programmer to write new code in Python3.

I hope Perl 6 will get its own camel book!

<comment><USER77> > it is practically always trivial for a Python2 programmer to write new code > in Python3.

Until you need to use some library that doesn't support python3. I think I've made the transition from python3 to python2 more than I have the other way around.

<comment><USER78> Or until you trip over the API differences between str and bytes in Python 3 that do not exist in Python 2 (because str == bytes in Python 2). Chiefly, printf-style formatting...

      >>> b"%u" % 5
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      TypeError: unsupported operand type(s) for %: 'bytes' and 'int'

<comment><USER79> Why are you using % at all? It should have been deprecated years ago.

<comment><USER80> It's not deprecated, though.

</comment></comment></comment></comment></comment><comment><USER81> Way too late

</comment><comment><USER82> Perhaps it was better veiled :)

</comment><comment><USER83> Larry Wall Unveils Perl 6 and no comments on hacker news an hour later.

That's the new headline that sums up Perl: an anachronistic programming language that may never recover from the perl 5->6 decade long 'freeze'. Also the language is crazy to write substantial programs in!

<comment><USER2> > Also the language is crazy to write substantial programs in!

I would not want to write anything big in Perl 5. But for small-ish scripts (say, less than a thousand lines) it is pretty hard to beat.

<comment><USER84> Perl is awesome for writing big programs in. One of the things that people find frustrating about Perl is its expressiveness -- that is, there are many different ways of doing the same thing. The result is sometimes that you get 100 different people doing things 100 different ways.

This is not so much a problem with the language as it is with programmers not learning to agree on a set of idioms that they will use for a project. They are not reading each others code and having discussions about what they want to see.

Languages that impose "the one true way" cut down on the apparent problems, but you are still going to have massive issues down the road if you build large projects because nobody is paying attention to what the other people are doing. Especially on large projects, it is vital that people read and comment usefully about design issues. In such large projects, removing the choice of idioms available though language design is a bit like deciding not to carry a canary down the mine with you because it keeps getting killed by poisonous gas.

The expressiveness of Perl allows you to choose the idioms that will work best for your team/project. It is true that it requires more discipline and communication, but these are the things that are necessary for success on a big project anyway.

I haven't written any Perl code for years now, but I have always been fond of it. I find that I can write better code in Perl than in many of the more restrictive languages that I've used.

<comment><USER85> > Perl is awesome for writing big programs in.

This isn't even remotely true. No static types, no thank you. Runtime errors due to misspelled methods? Missing hash keys? Hilarious.

Boy, I hope this scalar isn't undefined!

<comment><USER86> Compile time checks are not a replacement for a good test suite.

<comment><USER87> And a good test suite is no replacement for being able to express invariants in your code. They are complementary tools.

</comment></comment></comment></comment></comment></comment><comment><USER51> And nobody cares.

</comment><comment><USER88> Finally.

</comment><comment><USER89> What's Perl?

</comment><comment><USER90> Larry Wall is a great guy. Unfortunately, I don't really like Perl. Maybe the new version will change my mind.

</comment><comment><USER91> > say [+] <3, 1, 4> x __2

It's like the perl developers saw the comments about perl being indistinguishable from line noise and decided to make it even more so. WTF?

</comment><comment><USER92> Give 10 guys the same programming task in Perl, watch 10 completely different syntactically built innovations come from them.

</comment><comment><USER93> This rant made me laugh one day: [http://www.schnada.de/grapt/eriknaggum- perlrant.html](http://www.schnada.de/grapt/eriknaggum-perlrant.html)

Disclaimer: I don't know Perl and I have no opinion if this rant is deserved or not yet it's an enjoyable read.

<comment><USER6> He admits freely that he is ignorant about Perl, so i am unclear why you would bother to subject anyone else to such childish insults borne from nothing but fear and hate of the unknown.

<comment><USER93> I'm not sure what do you mean? I didn't write this rant. I find it amusing because it has some food for thought – for instance side note about rewarding idiotic behaviour.

AFAIK Erik Naggum used Perl for a fair amount of time so I wouldn't call it a "fear and hate of the unknown" and it is about Perl hence also on topic.

So your point is? Did you even bother reading it?

<comment><USER6> > I didn't write this rant.

You bothered to link to it.

> side note about rewarding idiotic behaviour

The raw and naked idea is not entirely incorrect. Literally everything else in the sentences making up that section is.

> Erik Naggum used Perl for a fair amount of time

> Did you even bother reading it?

Did you? I quote from the screed:

        I once studied perl enough to read perl code and spot bugs in other
        people's programs [...], but I don't write in it and I don't ever
        plan to use it for anything

I don't know about you, but i find that unambiguous.</comment></comment></comment></comment>


Growing SocialCam Is The Latest Alum Startup Returning To YC - <AUTHOR> http://techcrunch.com/2012/01/30/socialcamyc/

<comment><USER2> Why did SocialCam split off from JustinTV? Did JustinTV turn into TwitchTV and then divest SocialCam since it wasn't directly related to the direction the company was going in?

<comment><USER3> That's pretty much the reason, yes.

Justin.tv and TwitchTV are very similar, both technically and in terms of UI.

Socialcam, while related, doesn't really share so much. It made more sense as a separate company.

</comment></comment><comment><USER4> This seems in line with YC's expressed desire to 'kill Hollywood'. Keeping peoples' attention off of Hollywood-owned content is the first step.

<comment><USER5> Sorry, I don't think that videos filmed with Socialcam are going to compete with big-budget Hollywood flicks. Socialcam is much more about telling your own personal story and recording your life, not entertainment.</comment></comment>


WebRTC lands in Chrome, Finally - <AUTHOR> http://browserfame.com/941/webrtc-chrome-support-landed <comment><USER2> Strange that Google didn't announce this when they announced Chrome 23. Does WebRTC come with the Opus codec?

<comment><USER3> <http://code.google.com/p/chromium/issues/detail?id=104241> "they were willing to accept Opus support, it's just not a priority"

Opus is already in the tree for "chromoting".</comment></comment>


Safari is adopting an extensions API similar to Firefox's WebExtensions - <AUTHOR> https://hacks.mozilla.org/2020/06/welcoming-safari-to-the-webextensions-community/ <comment><USER2> It's still gimped.

No blocking requests.

"Unlimited" storage (which is necessary for most non-trivial extensions) is actually limited to 10MB.

You're stuck in Apple's app store which is equally as draconian as Chrome's and Firefox's but now you have to pay $99/year.

No IndexedDB.

The extensions aren't usable on mobile.

I care little for Safari's users if I have to deal with all of this.

<comment><USER3> Nobody really uses Safari except for on iPhones, and I suspect I will drop dramatically as they're adding support for choosing your own browser in iOS 14. Even among non-technical people I know, nearly everyone replaces Safari with Chrome or FF. Even my grandfather uses Chrome on his Mac and iPhone.

<comment><USER4> >> Nobody really uses Safari except for on iPhones

Have you got _anything_ to back this up? I'm willing to bet the majority of Mac users use Safari (given it's the default browser). I use it and it's a lot less clunky than Chrome and Firefox. I also repeatedly run into an attitude of "if my users don't user Chrome then I don't care about their experience" and find it very off putting.

<comment><USER5> I bet they don't. All the Mac Safari users I know also run Firefox because Safari's ad blocking sucks.

I only know of a few Mac users of Chrome.

<comment><USER6> 2020 and people still rely on random anecdotes heavily influenced by their techie friends instead of actually looking at the data. Fascinating.

<comment><USER5> What data? Show me the data.

<comment><USER7> [https://gs.statcounter.com/browser-market- share/desktop/unit...](https://gs.statcounter.com/browser-market- share/desktop/united-states-of-america)

USA desktop browsers, May 2020:

\- Chrome: 58.97%

\- Safari: 15.65%

\- Firefox: 8.24%

Doesn't have much in common with your anecdote except that it's in the reverse order of popularity that you seemed to claim.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Apple had a great opportunity to natively support web extensions in Safari. Instead they choose to do it through the app extensions System. Meaning a developer needs to have and pay for Apple dev account. They need to have a Mac to port and compile it. They have to sign it. And then maintain it.

This will certainly affect adoption. Forcing an open standard into a closed system seems intuitively wrong.

But at least kudos to Apple for recognizing the need for webextensions support.

<comment><USER9> At this point I think I should just switch to Firefox. It's just that Firefox still (unfairly) lags behind in performance because it's a Mac.

<comment><USER10> Forget about performance. Firefox still lags horribly behind in battery life.

<comment><USER11> Everyone "lags behind" Safari in battery life on mac, unsurprisingly: a mono- platform app can pull tricks that multi-platform ones cannot.

When comparing apples to apples, Firefox imho is actually lighter than Chrome on battery, at least on Macs.

<comment><USER12> Understandable from perspective of how apps are developed, but from the user perspective comparing Firefox on Mac to Safari on Mac is literally comparing software on Apples to software on Apples.

</comment></comment></comment></comment></comment><comment><USER13> I don't have a lot of hopes that this will satisfy my needs. I just want these extensions in Safari, to start with:

* uBlock Origin (confirmed as of now as not supported, and unlikely to be supported in the future either, with content blocking handled at the browser engine level)

* Privacy Possum or Privacy Badger

* Session Buddy or some good Session saving extension

<comment><USER14> Seriously. Not being able to block ads with Safari makes an automatic no-go for me. Even if they make their own built-in ad blocker, you can bet they'll let companies pay to become "platinum sponsors". No thanks.

<comment><USER15> I've been happy with Wipr on macOS and 1Blocker on iOS for years. In fact I think you can just use 1Blocker in both platforms now. Neither is as "good" as uBlock Origin but I don't really care.

<comment><USER16> I believe Wipr works on both iOS and macOS. I'm also a happy Wipr user.

</comment></comment></comment></comment><comment><USER17> I really wanted to stick with Safari a little over two years ago when I moved off of Google products. It was (is) snappy and battery conversant. Beyond poor extension support, I realized the absolutely most important features to me in a browser are password, bookmark, and history synchronization. Since I use Windows and macOS, Safari was out of the question (RIP Windows edition of it). Thankfully in the last year Firefox has mad leaps and bounds on performance and battery life consumption on macOS (on Windows it is fantastic).

Also at the end of the day, you have what I believe is the most unlimited ad- blocking experience on Firefox compared to Chrome, Chromium, and Safari.

</comment><comment><USER18> What does this mean for Ad-blockers like UOrigin which were removed after Apple disabled the API they used?

<comment><USER19> I'm going to be downvoted for saying this but... ublock origin actually does slow down rendering your webpage. I think that it's sad that there seems to be so much pushback from vendors in regards to options like ublock origin, but I have found equally impressive results with system wide options like adguard without it reducing the speed of pages rendering.

<comment><USER20> Yes, I'm going to downvote you, but only because you misunderstand how ad blocking works. uBlock _does_ marginally slow down webpage render because it has to inject CSS rules (cosmetic filters) to improve blocking quality. If you don't want this feature, you can disable cosmetic filtering entirely within uBlock's settings.

The problem with AdGuard is that they charge for system-wide blocking which can be done for free with a hosts file or pi-hole.

<comment><USER19> You are being presumptuous about my knowledge in regards to ad blocking. So I'll explain in further detail why I personally use adblock, and why ublock is unnecessary.

First, the css rules are available on adguard as well. You can actually review the documentation here: [https://kb.adguard.com/en/general/how-to-create-your- own-ad-...](https://kb.adguard.com/en/general/how-to-create-your-own-ad- filters#example-cosmetic-rule)

Second, adguard is free. There are certain premium features, however. For instance, filtering ads outside of your browser requires a premium license. However, if you are comparing it to ublock this was already not a feature that was available to you.

Of course, even that comes with an addendum, which is that this is only something that you need to worry about on mobile devices. Should you be using the desktop version you will actually see that adguard is free and available here on github: [https://github.com/AdguardTeam/AdGuardHome](https://github.com/AdguardTeam/AdGuardHome)

In regards to pi-hole. The cumbersome nature of pi-hole makes it undesirable _for me_. There were many sites which were blocked for inexplicable reasons the last time I used a pi-hole and creating a whitelist for these sites requires more work than is necessary. First you must navigate to the portal, and then you must make changes to either the whitelist, or remove a site from the blacklist depending upon why the site is not accessible. It was not seamless design. However, those that find this feature desirable will find that adguard actually offers the same experience with adguard home: [https://github.com/AdguardTeam/AdGuardHome](https://github.com/AdguardTeam/AdGuardHome)

And as a matter of fact you will notice that there are comparisons between ublock origin available on the github page for your review. There are actually a number of features which are missing from ublock which are simply not possible with ublock origin. As for the accuracy of these features you'll have to determine that on your own but you can review them here: [https://i.imgur.com/5fSLuHx.png](https://i.imgur.com/5fSLuHx.png)

Also, ublock origin does not _marginally_ slow down a webpage rendering. It _significantly_ slows down a webpage rendering. As evidenced here:

With ublock origin: [https://i.imgur.com/4NxOysN.png](https://i.imgur.com/4NxOysN.png)

without ublock origin: [https://i.imgur.com/jIlof5e.png](https://i.imgur.com/jIlof5e.png)

That means that when you are running ublock origin your browser is working at 87.85% capacity. Or in otherwords, a 13.15% decrease in speed. To put this in real world terms it would be similar to reducing the speed to 50mph* on a road that was originally 60mph.

So feel free to keep using ublock origin. As a matter of fact I also use it occasionally in a pinch. (It does, after all, significantly speed up rendering of some webpages. I find it especially useful on webmd.) However, for my daily driver I find it to be a poor solution.

*Rounded down, the actual number is 52.11.

<comment><USER21> > That means that when you are running ublock origin your browser is working > at 87.85% capacity.

No it's not, at this point your are spreading FUD about uBO.

This is a benchmark specialized for one thing, the creation/deletion of DOM nodes, a completely unrealistic scenario in the real world -- web sites do not repeatedly create nodes just to have them deleted as soon as they are inserted, as fast as possible.

uBO's code which deals with the DOM represents a _fraction_ of what uBO needs to do, and yet you extrapolate the benchmark as if it represents _all_ the work uBO does, leading to your nonsensical conclusion.

Here is how uBO compares to other comparable content blockers with an actual real-world scenario, as per recent debugbear benchmark[1] -- it's the least CPU hungry of the bunch: [https://twitter.com/gorhill/status/1273263792785326085](https://twitter.com/gorhill/status/1273263792785326085)

Note that the above is a worst-case scenario for content blockers, since this was about loading a page from `example.com`, where nothing is blocked, consequently where a content blocker acts only as an overhead. See reference [1] for a more typical scenario.

* * *

[1] [https://www.debugbear.com/blog/2020-chrome-extension- perform...](https://www.debugbear.com/blog/2020-chrome-extension-performance- report#performance-impact-of-ad-blockers)

<comment><USER22> I don't know what to conclude about ad blocker perf from Speedometer, but it's not just creation/deletion of DOM nodes. It runs multiple implementations of TodoMV using various JS frameworks[1, and performs real operations in the web app. DOM is not the bottleneck. The test stresses many parts of the engine, JS, CSS, HTML, rendering, etc.

Google's V8 team (not the original creators of Speedometer, that was WebKit) did a study of real-world JavaScript and found that it was highly correlated with Speedometer[2]. It's likely to be a good proxy of load time and responsiveness for many web sites, especially ones built with modern JS frameworks.

I don't know why uBlock Origin would slow down Speedometer and I'm actually surprised to hear it's true.

[1] [https://browserbench.org/Speedometer2.0/](https://browserbench.org/Speedometer2.0/) , click on "about Speedometer [2] [https://blog.chromium.org/2017/04/real- world-javascript-perf...](https://blog.chromium.org/2017/04/real-world- javascript-performance.html)

<comment><USER21> Care to comment about the debugbear benchmarks? Why is the supposed undue overhead as per SpeeDOMeter not showing up in there?

I encourage whoever to actually speculate less and measure page load times from the top 500 Alexa and make the case that uBO is an issue CPU- and memory- wise. I confidently predict that you will find that there is no correlation to the SpeeDOMeter benchmark.

There are other 3rd-party benchmarks out there which also found that uBO does indeed save CPU and memory resources.[1][2][3]

* * *

[1] [https://twitter.com/gorhill/status/1246085758580142081](https://twitter.com/gorhill/status/1246085758580142081)

[2] [https://twitter.com/adildean/status/936183316134416384](https://twitter.com/adildean/status/936183316134416384)

[3] [https://www.raymond.cc/blog/10-ad-blocking-extensions- tested...](https://www.raymond.cc/blog/10-ad-blocking-extensions-tested-for- best-performance/view-all/)

<comment><USER22> > Care to comment about the debugbear benchmarks? Why is the supposed undue > overhead as per SpeeDOMeter not showing up in there?

I'm not familiar with what you mean by debugbear benchmarks. If you mean the content linked here: [https://twitter.com/gorhill/status/1273263792785326085](https://twitter.com/gorhill/status/1273263792785326085)

Then my explanation would be that these measurements measure different things than Speedometer. CPU time is a power metric, First Contentful Paint is a page load speed metric, memory is a memory metric, none of these are web app responsiveness measurements. All of these data points can be true at the same time!

Personally, I would expect any content blocker that does a lot of blocking to speed up page load, reduce memory use, and save power, because less stuff loads and less stuff gets processed. That any ad blocker would reduce Speedometer score is kind of a surprise to me, but if it's real, I believe it.

I really have no stake in which ad blocker is best or more efficient. I just wanted to clarify what Speedometer does, and why it's a relevant measurement.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> As someone who works at a company with a web extension, one big thing I care about is automated deployment. We have automated releases with Chrome and Firefox (although it has to use Puppeteer). The new Edgium recently wanted to get us to publish but I found zero docs on potential automation so that's a blocker. Wonder what process Safari has to offer here?

<comment><USER24> Perhaps you can do it through Apple Configurator to create a configuration profile?

</comment></comment><comment><USER25> Does this mean Safari may get the React or Redux extensions? That's all I care about.

<comment><USER26> I'm hoping for that too. I really try to make Safari my daily driver (performance, privacy, battery life). But the dev experience is lacking.

Also the network tab is just... odd.

<comment><USER22> Have you tried it lately? A recent-ish rework made it more like Chrome's, but with cleaner design.</comment></comment></comment>


When Women Stopped Coding - <AUTHOR> http://www.npr.org/sections/money/2014/10/21/357629765/when-women-stopped-coding <comment><USER2> _These early personal computers weren 't much more than toys. You could play pong or simple shooting games, maybe do some word processing. And these toys were marketed almost entirely to men and boys._

It's not expressed explicitly, but this is clearly implying that the reason men and boys were buying and using computers more than women and girls was _because of the marketing_.

Let me suggest an alternative explanation: Computers were marketed to men and boys because that was the part of the population that was most interested in the things that computers can do. If you want to sell something, your best prospects are going to be the people that already want that kind of thing.

<comment><USER3> Why not a bit of both?

<comment><USER4> But they also tried marketing to women/girls in the 80s. Buy a PC as the "family computer":

[https://s-media-cache- ak0.pinimg.com/736x/f7/63/7c/f7637cf9f...](https://s-media-cache- ak0.pinimg.com/736x/f7/63/7c/f7637cf9fcf152d7f0b6e4eb42c9ddd2.jpg)

[https://s-media-cache- ak0.pinimg.com/736x/f7/63/7c/f7637cf9f...](https://s-media-cache- ak0.pinimg.com/736x/f7/63/7c/f7637cf9fcf152d7f0b6e4eb42c9ddd2.jpg)

<comment><USER4> edit:

[https://s-media-cache- ak0.pinimg.com/736x/18/74/3a/18743a2a2...](https://s-media-cache- ak0.pinimg.com/736x/18/74/3a/18743a2a27013df83d4f88d67caa6535.jpg)

</comment></comment></comment></comment><comment><USER5> The thing that struck me was the data, not the attempts to explain it. Assume the graph is right. From the 60s to the 80s, the gender mix in male dominated degrees was equalising slowly but uniformly. Then, after 1983, computer science very suddenly became a lot more sexist, while the other technical degrees kept improving as before.

I don't really buy the explanation. The change happens too early: neither schoolboys nor schoolgirls had their own computers in 1982.

<comment><USER6> > neither schoolboys nor schoolgirls had their own computers in 1982.

Yes we did

<comment><USER7> Yes, but you where not attending to university at the same time.

I too think that the article got the timing wrong somehow.

But it was probably computers as (and in) pop culture that turned away many that saw computer science as a career path just as law school and medicine.

In the early 80s the white coat scientists where gone in the media, and replaced by neerdy kids, culminating with the unlikly tale of Bill Gates.

The message was that you had ti be incredibly smart and geeky to be able to work with computers.

\---

The reality is that you probably have to be just a bit over average, but mainly just very stubborn and won't mind spending hours and hours solving very stupid problems...

Edit: One way to get stubborn is to be inherently fascinated by computers and self-controlling systems. At least it works for me....

</comment></comment></comment><comment><USER8> From my view growing up in the 80s - most boys preferred action and sports, virtually all the girls wanted to talk in groups, and a very few boys (myself included) would prefer to obsess over niche things like computers, DnD, games that required tons of focus to the exclusion of social and physical activities. This was innate imho - not from marketing!

</comment><comment><USER9> Just a side note: I think this is specific to some countries. In India, for example, I do see a lot of women entering the programming field.

[http://www.techrepublic.com/blog/software-engineer/it- gender...](http://www.techrepublic.com/blog/software-engineer/it-gender-gap- where-are-the-female-programmers/)

has a link to an older ACM article on this.

<comment><USER10> Best reason I've heard is as women get more choices in life they choose careers they want to do over careers based on income and jobs.

<comment><USER11> That's the only thing I can see that explains the data. It's not that women (as a statistical group) can't code; it's that they don't want to, and when they feel financially secure they don't.

</comment></comment></comment><comment><USER12> tl;dr > [Computers] were marketed almost entirely to men and boys.

This certainly isn't a groundbreaking sentiment. There were some interesting points in the article, though:

> [a study found that] families were much more likely to buy computers for > boys than for girls — even when their girls were really interested in > computers

Which caused the men to be far ahead of women where it came down to experience with computers.

I'm not too confident in the accuracy of the aforementioned study, but if the conclusion was correct, then that would certainly point towards the common "social normality pressure" explanation for women being less common in at least CS.

However, it doesn't really apply in present day as almost every family has a computer, and every student entering college now had access to a PC to work on when they were a teenager.

<comment><USER13> Nacira Guerroudji-Salavan launched last year a "circle of women in cyber security " in part because she was tending a booth at her kids' highschool and when a girl wanted to check the booth because cyber security interested her, the father said"No, this is for boys, for hackers" This is 2015/2016.

</comment></comment><comment><USER14> is it me or does it feel like the article stops abruptly?

</comment><comment><USER15> If these early computers "weren't much more than toys" then how did they (even putting aside that the article didn't give any source that they were really directed to boys) give an advantage to boys using them later in computer science?

</comment><comment><USER16> Don't read the comments!</comment>


Why Is Nobody Talking About The Social Implications Of Google Glass? - <AUTHOR> http://statspotting.com/why-is-nobody-talking-about-the-social-implications-of-google-glass/

<comment><USER2> Innovation like this gets naturally shaped and filtered within society so it becomes acceptable for the most. Just as (and as the author mentions) you are supposed to turn off your cellphones in certain situations, and just as it's rude to text away with your phone when someone is talking to you, being distracted with your wearables will become a social no-no.

You can simply disregard those that don't follow whatever convention you think is appropriate, and policies do and will exist for all this scenarios.

</comment><comment><USER3> The articles makes a valid argument on privacy concern as a result of this product. I think that the concerned entities will consult with Google to establish certain product restrictions. Obviously innovation can be put to good or bad use.

</comment><comment><USER4> "if you don't have anything to hide, you have nothing to fear"

</comment><comment><USER5> I think this guy needs to chill out.</comment>


The cheap Chinese bulb that won't turn off - <AUTHOR> https://www.youtube.com/watch?v=1uEmX5XClPY <comment><USER2> Isn't this how bulbs have worked for over 100 years?

No intelligence, just if you apply the correct amount and type of power, then they provide light?</comment>


How Did Paul Krugman Get It So Wrong? (2011) [pdf] - <AUTHOR> http://faculty.chicagobooth.edu/john.cochrane/research/papers/ecaf_2077.pdf <comment><USER2> From the layperson's perspective, it seems the field is a lot of University of Chicago (and maybe George Mason U) vs. everyone else...

My impression of his NYT columns for the past two decades, are that they seem to have predicted accurately the broad trends in the US and global economies, far more accurately than those of his detractors

<comment><USER3> There's basically two camps. Freshwater and Saltwater economics. It's not entirely accurate to describe economics in this way, but there are still two distinct camps. U of Chicago is in one, Paul Krugman is in another.

[https://en.wikipedia.org/wiki/Saltwater_and_freshwater_econo...](https://en.wikipedia.org/wiki/Saltwater_and_freshwater_economics)

</comment></comment><comment><USER4> This article by Cochrane is a poorly written hit job (IMHO). Cochrane argues that Krugman is equivalent to an HIV-AIDS disbeliever. Ridiculous. Krugman's thesis on "what went wrong" is grounded in the GFC experience. That is, grounded in the data. Cochrane is just being a jerk.

Tellingly, Cochrane chides Krugman for attributing a quote to him (C) that he "did not write." In the very next sentence, we learn that the "quote" is accurate and accurately attributed to him, just not something he "wrote." He also argues the quote is out of context, but fails to explain exactly how. Okay dude.

Cochrane goes on to assert that Krugman grossly distorts fresh water economics as allegedly setting forth the inability of government spending to increase employment. And yet, we have this [https://faculty.chicagobooth.edu/john.cochrane/research/pape...](https://faculty.chicagobooth.edu/john.cochrane/research/papers/stimulus_rip.html) , which clearly argues (by Cochrane himself) that the multiplier on fiscal stimulus is precisely equal to zero. That is, according to Cochrane, every dollar of government spending results in an equal and opposite dollar lost somewhere else in the economy as supposedly required by Ricardian equivalence. This is of course nonsense.

This is not an honest article.

<comment><USER5> I could just as well say "This is not an honest comment." Much of what you said was addressed in the article.

For example, related to the "multiplier is precisely zero" paper, Cochrane says:

> Krugman asserts that I and others 'believe' 'that an increase in government > spending cannot, under any circumstances, increase employment' and that we > 'argued that price fluctuations and shocks to demand actually had nothing to > do with the business cycle'. These are just gross distortions,unsupported by > any documentation or the lightest fact-checking, let alone by examination of > any professional writing. And Krugman knows better. All economic models are > simplified to exhibit one point; we all understand the real world is more > complicated. Krugman's job as a professional economist with a newspaper > column is supposed to be to explain that to lay readers. These quotes about > academic opponents would be rather like somebody looking up Krugman's early > work (which assumed away transport costs) and claiming in the Wall Street > Journal, 'Paul Krugman believes ocean shipping is free, how stupid'.

That is: Yes, his paper "said that", and no, that's not what his paper was saying. And a reasonable reading of his paper would have known that. And a thorough and charitable reading of this article would have revealed that.

</comment></comment><comment><USER6> For context, the original article [1] was in September of 2009, a year after the financial crisis hit its climax. The period was also a period where "salt water economics" and "fresh water economics" had their peak conflicts (after many decades of a peaceful truce).

The different view points are not exactly amicable because they quickly devolve into ideological fights.

[1][https://www.nytimes.com/2009/09/06/magazine/06Economic-t.htm...](https://www.nytimes.com/2009/09/06/magazine/06Economic-t.html)

</comment><comment><USER7> Link to piece: [https://www.nytimes.com/2009/09/06/magazine/06Economic-t.htm...](https://www.nytimes.com/2009/09/06/magazine/06Economic-t.html)

Taleb made a career out of this: Economists use models that are don't consider fat-tails. The rating agencies used them, LTCM used them, Fannie and Freddie used them. Everyone thought spreading shitty risks across MBS, CDOs, CDS, CDS^2 mitigated the risk, but it turns out i did not.

As Taleb would say, the economists use models that assume we live in "mediocristan" but we live in "extremistan"

Krugman will probably write another article like this in 10-15 years, but instead of it being about housing debt, it will be about student loan debt.

<comment><USER4> "Everyone thought spreading shitty risks across MBS, CDOs, CDS, CDS^2 mitigated the risk, but it turns out i did not."

I must quibble. Yes it is true that everyone thought spreading mitigated risk. In reality, it actually did mitigate the risk, just not to the extent expected by many. Indeed, a colleague of mine was desperately putting together a "recession" model for CDOs that included suitable co-variances lacking in the standard models (e.g., if foreclosure rates rise in an area past a certain threshold, house prices in general will be depressed ). There was no market for such a product because it introduced significant non-linearity in the valuation models. Nonetheless, clearly the folks at magnetar understood what was going on.

<comment><USER7> i agree my statement is not correct. thanks!

</comment></comment></comment><comment><USER8> The facts that (1) Paul Krugman is prone to immoderate statements and (2) he may have the biggest megaphone of any living economist are closely related. His voice stands out even among Nobel Prize winners. Right or wrong, if he were not given to exaggeration, alarmism, tribalism and ad hominem, it wouldn't.

<comment><USER9> Now tell us whether "exaggeration, alarmism, tribalism and ad hominem" is good or bad :/

</comment></comment><comment><USER10> Needs a 2011 tag. The article in question is from 2009.

[https://www.nytimes.com/2009/09/06/magazine/06Economic-t.htm...](https://www.nytimes.com/2009/09/06/magazine/06Economic-t.html)

</comment><comment><USER11> I'm not sure there's anything new in this article. It sort of sounds like a rehash of one side's arguments as contrasted with Paul Krugman's rehash of his side's arguments. It's a long-standing debate.

But there are some entertaining quotations:

 _Any astute reader knows that personal attacks and innuendo mean the author has run out of ideas._

 _Following the last mystic oracle until he gets a judgment wrong, then casting him to the wolves, is not a good long-term strategy for identifying bubbles._

 _Krugman wants to be the Rush Limbaugh of the Left._

 _The case for free markets never was that markets are perfect. The case for free markets is that government control of markets, especially asset markets, has always been much worse._

</comment><comment><USER12> Paul Krugman has fortunately been largely discredited since this article was published, but we should not forget the role he played in laying the foundation for the fallacious economic ideology that got Donald Trump into office and has led to a broad decrease in concern for the Federal budget.

<comment><USER13> Do you have any references to substantiate both of your claims?

<comment><USER14> He was very non-specific, so his claims hold water, albeit in a very loose way. But let's not kid ourselves, Paul Krugman never met a central bank he didn't love, and believes that there's no limit to the bankroll for a credit/debt centrally managed economy. There's zero debate to that. The only debate going on is between republicans and democrats on HOW that gravy is spent. Republican leadership want war, and want the potholes fixed in the red districts. Democrat leadership want war, and the potholes fixed in the blue districts.

Most citizens are caught up heavily, or lightly, in some (distracting) cause or another. But virtually no one questions whether the entire system is really, and truly able to keep up the charade.

The insanely wealthy have built up their warchests for the next big ass whipping to the global economy, but amongst the peasants, people are like "meh". When they should really be building a bit of bankroll for themselves, for the rainy day.

"...first by inflation, then by deflation, the government, the banks, and the corporations, will grow up around them and deprive the people of prosperity until their children wake up homeless ..." \--no one famous said (but it's still true)

<comment><USER12> See my reply with citations.

</comment></comment></comment></comment><comment><USER15> You could probably make a lot of money investing in stuff Paul Krugman doesn't like

</comment><comment><USER5> "... a deep and highly politicized ignorance". I found that phrase fascinating.

</comment><comment><USER16> I just want to point out that Keynesian economics, which apparently have been discredited, is literally what Donald Trump and the Republican Party, which were apparently anti-Keynesian economics are practicing. So if Krugman got it wrong, he got it wrong in a way that convinced everyone in the US political spectrum that it was the right thing to do.

Further, Krugman was very clear thst it was important for the government to spend heavily in a recession, when government spending wouldn't crowd out private spending, and specially st the time (and even now) the US has a vast requirement for infrastructure maintenance, which thanks to the crash could have been gotten done on the cheap. It wasn't an unconditional endorsement of government spending.

I didn't read too much further into this article, because I was heavily involved in this particular aspect of the response to the financial crisis due to a project in class, and was well aware of what different commentators, including Krugman were saying, and this article mischaracterises the part that I do remember.

<comment><USER4> "Keynesian economics, which apparently have been discredited"

Uhh. Nope.

"literally what Donald Trump and the Republican Party, which were apparently anti-Keynesian economics are practicing."

Uhhh. Nope. I'll be wrong in my oversimplification, but at least more right than the above. Keynes' central argument was that in times of depressed aggregate demand and high unemployment, the government can play a massively positive role in stimulating aggregate demand. Keynes never argued in favor of stimulus at times like these.

<comment><USER5> > Keynes never argued in favor of stimulus at times like these.

Further: He argued for _austerity_ at times like these, so that the budget would balance over the whole cycle. _That_ idea has far more restraint and fiscal conservatism in it than either party has shown in decades.

One could argue that, with interest rates this low, borrowing to work on infrastructure makes sense. That may be a reasonable thing to do, but it's not a Keynesian policy (because we're at the wrong point in the business cycle).

</comment></comment></comment><comment><USER17> I stopped following Paul Krugman on Twitter _only_ because Twitter was constantly pushing anti-Paul-Krugman trending threads at me, most of which I couldn't find much affinity with.

</comment><comment><USER12> So this article got flagged because it connects the dots between Krugman's life's work and the themes that Trump rode to power. It's economic and cultural, not political. Mods, please unflag this.</comment>


The Deactivation of the American Worker - <AUTHOR> http://www.theawl.com/2016/02/the-deactivation-of-the-american-worker <comment><USER2> Now you know the real reason why the republican party is doing all it can to repeal the Affordable Care Act. Controlling access to benefits keeps people in jobs they really don't like. Benefits need to be decoupled from work.</comment>