Falling Back to an Older MacBook Pro - <AUTHOR> https://ericasadun.com/2019/11/07/falling-back-to-an-older-mbp/ <comment><USER2> Surprised she did not mention MagSafe. This is, IMO, the single biggest unforced error Apple has made in a decade filled with them.

<comment><USER3> MagSafe had two flaws: the magnetic connector could become unreliable, and the cable around the connector was weak. USB-C is rated for a much higher number of inserts and being able to insert on either side is covering a lot of my old vulnerable cable situations.

I don't know enough about EE to say why they don't want a magnet between the USB-C connector and the rest of the cable.

<comment><USER4> I'm still using a laptop with a MagSafe charger and have never seen the connector becoming unreliable (nor do I know anyone has had this issue).

<comment><USER5> The little MagSafe 1 to 2 adapters have been problematic for me and others, but the original chargers are not something I've heard problems about. I've not been able to find out what happens with the adapters, but it was surprising how many I went through.

<comment><USER6> My experience is that they work better again when you clean the contacts with rubbing alcohol.

</comment></comment></comment></comment></comment><comment><USER7> Does anyone else find it crazy that the base SSD in the Air and MBP is still only 128 GB? The Air I can _maybe_ understand, but for the MBP, it's ridiculous.

<comment><USER8> For the Air, I imagine it's because they assume people just watch YouTube all day and store everything in the cloud.

For the Pro, it's probably for corporations who want to save money on office laptops. I don't need 128GB for work, only for personal use. Some users would also choose the 128 GB model and fit their own 2TB Intel 660P with an adaptor... except oh no they can't, because the SSD is soldered on to the motherboard now.

<comment><USER9> I think they use terrible specs just to market a lower starting price.

</comment></comment></comment><comment><USER10> > Unexpectedly, on returning to the 2015 MBP, I didn't suddenly go "omgomg the > keyboard is amazing again". The older style was never amazing compared to > any good mechanical keyboard. I adapted to the new keyboard just fine, even > though my hands never really were big enough for it to be truly comfortable. > Yes, the older keyboard's keys really are less of a stretch but it wasn't > that much of a hardship either way.

New keyboard's really, really loud, but otherwise (stuck keys aside) agree, previous was only marginally better. Bigger difference if you go back to the generation before _that_ —even more key travel, quite a bit nicer.

<comment><USER11> I zomg when I use my 2008 MacBook Pro. That solid keyboard! All those ports!! User replaceable everything!!

<comment><USER8> Have you updated your hard drive for an SSD? I'm considering buying a 4TB Samsung 860 EVO for my 2007 MacBook Pro. Maybe two, one in the optical bay.

<comment><USER11> Yes, it's reasonably speedy for many tasks.

</comment></comment></comment></comment><comment><USER12> I'm using my 2017 Macbook Pro and I hardly use the early 2019. I never liked the touchbar.

<comment><USER13> Honestly my 2012 MBA with 8GB RAM is still perfectly fine as my daily dev machine. Macs are expensive but if you shell out for the top specced model they can last a loooong time.

<comment><USER14> Same. Will keep going through the MBA's.

</comment></comment></comment><comment><USER15> I sure wish my 2011 17-inch MacBook Pro would come back from the dead! With its two giant removable batter bays! _swoon_

<comment><USER8> Two removable batteries? The 2011 unibody didn't have any removable battery. Were you using a case?

<comment><USER15> You're right, I had it confused with my good old 540c. I looked at the 17 inch one's corpse, and it had one removable battery on the bottom, so it must not have been the unibody.

The thing I loved about the 540c was being able to swap in either a disk drive, a cdrom, or another battery into either of the two bays. And there was even a PowerPC upgrade for the 68k ones, that made them useful for several more years!

</comment></comment></comment><comment><USER8> I use a MacBook Pro 15" Retina mid-2014 as my main laptop. The screen is beautiful. I upgraded it with a 2TB SSD (Apple OEM from a Mac Pro, but Intel 660P works with an adaptor), and an Adam mDrive SD adaptor (currently 400GB, but hopefully 1 TB or 2TB eventually).

Recently I bought some more Thunderbolt 2 adaptors (they're getting hard to find). A dual USB and Ethernet adaptor has been very useful, I didn't realise how often I need 3 USB ports. The Transcend JetDrive 855 is also great for using the old SSD over Thunderbolt, and also supports M.2 using an adaptor.

Earlier this year my spare laptop was a 2013 MacBook Air 13". My dad's MacBook Pro 13" mid-2015 had a swollen battery, so he bought a new laptop and told me I could inherit his old one if I repair it. So I gave the Air to my girlfriend. The reflective coating is peeling off the 2015 Pro's screen, and that makes it look worse. But the battery life is still much better than my 15", for reasons I don't totally understand but is probably related to background processes.

About a month ago, I repaired a friend's Mac SE, and he gave me his 15" MacBook Pro 2007! That was the computer I had when I went off to university. Oh, how I love that keyboard. It feels amazing. The keys blend together without the holes in between, it's a joy to type on. Now I'm upgrading it with a dual USB 3.0 ExpressCard 34 adaptor and a new battery, and I'm wondering about buying a 4 TB Samsung 860 EVO (or two, one for the optical bay). That would give it more capacity than my main laptop!

I'm still procrastinating the SSD upgrade, because I wonder if new 2.5" SATA drives will be released with even more capacity, e.g. 6TB or 8TB. It seems like Samsung often schedule product releases in November, so if I haven't heard by the end of the month, I'll probably just order it. If a new 4 TB M.2 drive comes out then that would be nice too, for my main laptop. There's also the possibility of a dual M.2 to SATA adaptor, but then the M.2 drives need to support SATA and I think the 2TB Intel 660P doesn't.

</comment><comment><USER16> A year and a half ago I bought a base-level 13" mbp with 8G ram, 128G ssd, and no touchbar. I have really enjoyed using it, and I fortunately haven't had any keyboard issues yet.

I've been toying with the idea of upgrading for more RAM, so I can do my minimal Windows and Linux work in VMs and get rid of my other dedicated, rarely used laptops. When I found out that all macbook pros have touchbars now, I scoured the internet for a new 13" mbp with function keys. I got the last one from BH Photo, with 16G ram and 1TB ssd. I was very happy to find it. I hope I get a few years out of it, and I hope I don't have keyboard issues with it.

</comment><comment><USER17> I got my 2015's screen replaced because of Staingate so I get to have a shiny new screen and a computer that's actually usable without 23 dongles. I hope it doesn't die until an actually desirable MBP comes around.

</comment><comment><USER9> I'm back on my 2013 13" MBP, I am using it with Pop_OS because I have an nVidia eGPU and it works much better with my 4K monitor. I am waiting on an adapter to pair the NVMe drive from my dead NUC and an ethernet adapter. Hopefully that combination will be powerful enough for another year, when I can get a desktop that supports my TB3 eGPU and also supports a PCIe 4.0 alternative later. I was super-surprised to discover it even performs well enough to continue gaming despite using TB2.

</comment><comment><USER18> Am I and everyone I know the only people using newer MBPs with no issues? I'm not without complaints, but it seems hardly a week goes by without the same stuff being brought up for the past few years. What's unique about Apple products that draws so much attention, popularity?

I do miss MagSafe, but I love being able to use any of the ports without thinking about it and sharing accessories. I don't really use the touchbar so I guess that could go.

</comment><comment><USER19> Does anyone think the TouchBar should be relocated to where the "MacBook Pro" logo resides? That way it'd be in front of your eyes and fingertips.

<comment><USER10> I think the whole concept needs to be moved to a companion mode for iPhone and iPad. And maybe Apple Watch. As it is you can't make it part of your workflow if you use an external keyboard any significant portion of the time, assuming you even want to in the first place.

</comment></comment><comment><USER20> I finally forced myself to spend a solid six weeks using nothing but Linux after decades of using almost exclusively Macs. It's been much easier than I expected. Ubuntu 18.04 on a Dell XPS runs great. It has some rough edges but it feels like _my_ computer, rather than one I'm just borrowing from Apple.

Unless Apple makes a serious commitment to quality and stops prioritizing form over function, I'm done with them.

<comment><USER21> Linux is great for that feeling. It subsides when you upgrade your firmware and spend 1.5 hours scrawling forums and tinkering in the terminal. Either way I'm happy to be a Pop!_OS user.

</comment></comment><comment><USER22> Definitely agree about the ports. Whenever I pull out my old 2013 Macbook, it feels like a futuristic luxury to have a builtin (standard) USB port.

</comment><comment><USER23> Still using my 2013 Air, but the touch pad is getting finicky. I really need to thump it to get a click. I don't know is this is fixable ...

</comment><comment><USER24> Highly recommend checkout out Dells XPS lines once you've had enough. I find them nicer to use than any MacBook I've had.

<comment><USER25> dhh is pretty frustrated with apple's years-long keyboard screw-ups, so he had a fresh look at windows:

[https://m.signalvnoise.com/back-to-windows-after-twenty- year...](https://m.signalvnoise.com/back-to-windows-after-twenty-years/)

his conclusion would be mine as well.

yes, apple is making a lot of mistakes, but their story is still miles beyond windows or linux, as far as i'm concerned. the situation would have to get a _lot_ worse before i would consider switching.

<comment><USER24> Yeah i can't stand Windows. Give Kubuntu a go, just boot a USB and play with it. You'll be surprised how far Linux desktop has come.

</comment></comment></comment><comment><USER26> I switch regularly between the 2018 15" MBP from work and the personal 2012 retina 15" MBP. The most obvious difference I see immediately is that the CPU in the 2018 model is substantially faster. And boy the the bigger trackpad is nice.

<comment><USER27> I hate the bigger trackpad. I feel I'm always touching it by accident while typing.

</comment></comment><comment><USER28> One thing that helped keep my 2015 viable is upgrading to a bigger and faster NVMe SSD. There are cheap adapters that let you install an M.2 drive. There are some pre-reqs and not all drives work but I've had zero issues with mine.

</comment><comment><USER29> Still working with my 2012 MacBook. It's the last Macintosh I will ever own, there are far too many negatives and pitfalls with the new models.

</comment><comment><USER30> My 2013 MPB still does the job, I had acquired an iPhone SE a year or so ago and I'm very happy with it, with both of 'em.

</comment><comment><USER31> I've come up with a modern version of Gate's saying of "640K ought to be enough for everyone". 95% of people are fine with an i7 and 16GB of RAM. If you're not running a bunch of VM's, that's enough computer. That's my 2012 MacBook Pro, and it's still getting the job done.

<comment><USER25> > I've come up with a modern version of Gate's saying of "640K ought to be > enough for everyone".

he never said that. i personally really don't like the guy, but putting words in his mouth is never fair.

[https://quoteinvestigator.com/2011/09/08/640k-enough/](https://quoteinvestigator.com/2011/09/08/640k-enough/)

<comment><USER32> He did say something very close to that:

> When we set the upper limit of PC-DOS at 640K, we thought nobody would ever > need that much memory.

The parent is not even using the quote for it's original effect, I find it amusing that you'd take the time to comment on that.

<comment><USER25> i've never seen that, but even if he said it, that quote is not even in the same ballpark.

the 8088 had a one megabyte address space, more or less. when the original architects were deciding how to allocate that space to ram, rom, peripherals, etc, it made sense to talk about where to put the dividing line, to say how much of it goes to ram. that's a small-scale technical-decision-type quote, whereas the one that gets repeated over and over and over and _over_ again, erroneously, seems designed to show that gates was dangerously short-sighted about the future of computing.

gates has a lot of faults, but that's not one of them.

<comment><USER32> It's quoted in the link you posted yourself.

Maybe you're reading too much into it? I think he was honestly amazed by a 10x jump, and we hadn't learned yet that programs will naturally expand to fill all the resources available.</comment></comment></comment></comment></comment>


22-year old community college dropout starts $100M company, Nasty Gal - <AUTHOR> http://finance.yahoo.com/news/naughty-name-only-015034664.html

<comment><USER2> Just to clarify, in 2006 she was a 22 year old dropout, and it was last year that her company sold $100M.</comment>


Regular Expression Matching in the Wild (2010) - <AUTHOR> https://swtch.com/~rsc/regexp/regexp3.html <comment><USER2> Discussed at the time: [https://news.ycombinator.com/item?id=1184563](https://news.ycombinator.com/item?id=1184563)</comment>


Is it time to take the Hyperloop seriously? No - <AUTHOR> http://blog.rongarret.info/2018/03/is-it-time-to-take-hyperloop-seriously.html <comment><USER2> I don't think we're obligated to take Hyperloop seriously until there is a large-scale demonstration system up and running. On the other hand, I don't think we can fully discount it as long as so many people (with funding!) are actively working on it.

<comment><USER3> Right. In addition to that, I was simply going to write "make it not fail". In the plane example, what the author doesn't mention is that there are many mechanical failures, or human errors on a plane that lead to, well, death of 100% of its passengers. Yet we still fly.

So in this respect I see the Hyperloop as being very similar to air travel: make it not fail.

<comment><AUTHOR> > there are many mechanical failures, or human errors on a plane that lead to, > well, death of 100% of its passengers

That's true, but there are very few failures that lead the entire system to grind to a halt.

<comment><USER4> Weather creates a whole mess with tons of missed connections and cancelled flights that can take up a a couple days to sort out. This means that air travel in entire states grinds to a halt a couple of times each year.

<comment><AUTHOR> Fair enough, but in the meantime passengers are not trapped aboard airplanes (which are considerably more comfortable than hyperloop pods). On a few rare occasions passengers have been trapped on airplanes for several hours. This was considered unacceptable and led to major changes in policy.

<comment><USER5> You could easily build in emergency-use-only, slow-speed-required exit valves..

<comment><USER6> I kinda can't imagine them _not_ having something comparable to the safety mechanisms in the Chunnel...

Basic repairs, emergencies, etc can't require a full service stop across the line. There are solutions used in similar situations that are baseline operational requirements.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> _The fundamental problem is that the hyperloop track is a cascading single point of failure._

So, pretty much like highway-speed transit on highways. One breakdown, and huge stretches of highway slow to a crawl or to a halt. The same goes for the US air travel system, except it takes the weather disruption of a major hub to get the cascading failures.

<comment><USER8> Trains?

<comment><USER9> Trains fail more gracefully than hyperloop - they have enough room to stand up in, toilets and exits.

</comment></comment></comment><comment><USER2> I'm skeptical whether Hyperloop as described in Musk's original paper is practical. On the other hand, I think it's possible that some variant which is clearly Hyperloop-inspired might actually be feasible.

You can probably make the case that we're already in Hyperloop-inspired territory, since as far as I can tell everyone working on Hyperloop has dispensed with air-bearings and moved to maglev for levitation.

<comment><AUTHOR> Yes, but it's still in an evacuated metal tube. That's a severe constraint.

BTW, going to maglev completely blows the original economic model out of the water. The whole point of the original hyperloop was that the track was going to be cheap because it was _just_ a welded metal tube. Now it's a welded metal tube with a maglev track inside. That's no longer cheap. In fact, it's a reinvention of maglev in a way that makes it even more expensive. If maglev wasn't economically viable before you put it in a tube (and it wasn't) it won't be economically viable after.

<comment><USER10> I don't see any reason why using maglev means the track has to be anything clever. There are methods where the vehicle contains the only active part, and the track can simply be a metal strip, such as servo-levitation (varying the strength of an electromagnet on board the vehicle with feedback), induced current levitation, or by using a rotating set of fixed magnets.

<comment><AUTHOR> I must confess I'm not up on the details of maglev technology (which is why it's not central to my argument). I have to wonder, though, if maglev is so cheap and easy why hasn't it been deployed more already?

<comment><USER11> Because maglev _isn 't_ cheap. [This guy]([https://www.reddit.com/r/nyc/comments/6ogwml/ny_to_dc_in_29_...](https://www.reddit.com/r/nyc/comments/6ogwml/ny_to_dc_in_29_minutes_elon_musk_gets_goahead_for/dkjjp2a/)) runs the numbers of a Hyperloop in a tunnel using maglev.

<comment><AUTHOR> That is a great link, thank you!

I think it is telling that the best analysis of this issue that anyone has been able to find in this thread has been in a reddit comment.

</comment></comment></comment></comment></comment></comment><comment><USER12> Be sure to take your Boring Company™ flamethrower on any hyperloop trips that transit an underground section, in case the mole people attack.

</comment><comment><USER13> If we would always think about "what could go wrong" and decide whether to go forward based on that we still wouldn't use fire today.... in order to make something safe we need to make it work first. No guts, no glory.

</comment><comment><USER14> This may seem stupid but couldn't you just reverse the stuck pods back to the station the departed from?

</comment><comment><USER15> Technically, I think the Hyperloop can work.

Economically, to make it profitable, then I am not certain it can work in the United States.

The Hyperloop is running in a vacuum tube.

* We have the ability to evacuate air from a tube, to low air pressure levels.

* We have the ability to build space craft that can operate in a vacuum.

* We have the ability to build a maglev, to propel the pod.

* We have the ability to build nuclear power plants, to energize the maglevs. I don't think solar or wind will create enough electricity to meet production usage demands.

Given all that, it's now starting to sound like an economical non-starter.

The United States just doesn't have enough people to make this work economically. It sounds cheaper to just go with a maglev. And you can get up to 300 to 400 mph if you push it. This is almost comparable to an airplane, but more comfortable. And the volume of people you transport can be a lot higher.

And all the Hyperloop plans are regional. One for Houston. One for Chicago. One for Virginia. This means that each location is fiscally responsible for themselves. But for some locations, then there is not enough people to economically sustain it. A national system may work, as it will allow some lines to be profitable, and this will balance out the lines that are not profitable. So the entire national system may eke out an operating profit.

And then, there is all the land rights that you have to buy up. Just look at how expensive the California high speed rail project is costing.

And all the tunneling and bridging that must be done.

And the designs only show two tracks running in parallel, but I think they actually need 3 tracks, in the event one track breaks down. This adds to the costs, but I don't see anyone suggesting this, or even thinking about it.

And they need to design contingencies in the event something breaks down. Americans do not like new technology things that kill people. One disaster may kill the entire project.

And, what about the science of the sonic boom, as the pod crosses the sound barrier. Given this is propelled through a vacuum tube, at lower air pressure levels, then will a sonic boom be generated?

All of this is now starting to sound really expensive. All this research is going to cost a lot of money. No company can really afford that, except maybe Apple. The US government is not interested in footing the R&D bill.

Then again, I could be completely wrong. And once again, Elon pulls a rabbit out of a hat, and comes to the rescue.

<comment><USER8> You just completely made things up.

All the things you listed amount to 10x less costs than the bullet trains. You can have a look at hyperloop costs.

<comment><USER16> > You can have a look at hyperloop costs.

Yeah, the hyperloop paper that claimed low costs did so by a combination of sheer fantasy and not actually going anywhere near the city centers it was serving, and making the cost of transit connections to the city centers out of scope.

Of course , a lot of the cost of high speed rail is the urban part of the route necessary to actual serve the population centers it's supposed to connect.</comment></comment></comment>


How to dress as an entrepreneur - <AUTHOR> https://www.riskapparel.co.uk/ <comment><AUTHOR> That's awEsome

</comment><comment><USER2> Awsome</comment>


Sublevel – A personal network - <AUTHOR> http://sublevel.net/about/ <comment><USER2> So many words to say so little. What is this about? Is it closer to app.net or to OwnCloud? Why would I choose this over Twitter, Tumblr, Facebook, Blogger or Medium?

<comment><AUTHOR> I'm not the site's creator, but having played around with it for an hour or so, it seems to be a similar idea to the original Twitter (with additional things like threaded replies, and without a character limit).

<comment><USER3> Questions for the site's creator, about [http://lucianmarin.com/archive/sublevel.html](http://lucianmarin.com/archive/sublevel.html)

> No JavaScript. Sublevel works with JavaScript disabled. Dumb phones > supported. Sublevel works with Opera Mini. Responsive design. Sublevel works > on any devices with a modern browser from smartphones to TVs.

Is the lack of Javascript motivated by security or minimalism?

> Different than Twitter. Sublevel is not a clone of Twitter like App.net > neither trying to reinvent the wheel. There's no character limit, Sublevel > is limited by design only.

Can you share more about the scalability of the backend?

> No API. Sublevel doesn't need an API, just better web browsers. Instead of > an API, Sublevel will try to have an open database.

Do you mean CC-licensed, torrent delivered? That would support analytics, but what's the Sublevel position on third-party web clients?

> No user tracking. Sublevel doesn't store any metadata associated with users > or replies.

Does this mean HTTP metadata, e.g. IP address, browsers, etc? Are you saying there are no web server logs ever written to flash/disk, or that these are stripped of user-identifying information?

> Discoverable. Sublevel is using an explore page to keep people informed. > Similar to HN, DN or Reddit.

> Clear searching. Sublevel lets you independently search for replies or > people's usernames, bios, locations.

Is this mechanism intended for search by humans or apps? Is there any difference from Twitter's search functionality?

> Just text. Sublevel won't provide support for images, videos, gifs, mp3s. > Third-party services do a better job. Sublevel provides support for links, > mentions and hashtags.

Is there support for mentions? The following bullet says they are not needed.

> Threaded conversations. Sublevel reply system is clear, there's no need for > mentions. It lets you join in any conversation.

Without mentions, how would someone invite/address another user to join a conversation?

> Less spam. Sublevel prevents spam using two features. First, it lets the > parent of a reply to delete any children replies. Second, it lets people > send just one reply, expecting answers back from the other participants in > the conversation.

One reply per item? Can you reply to siblings of your reply?

> Powered by mini ads. Sublevel is free and the ads will never be intrusive, > actually they look quite good.

Examples?

<comment><USER4> You cannot reply your own messages to add more info/context.

It is a nice idea but I think it would be great if it supported OEmbed and Markdown.

That would make Sublevel more simple than Tumblr for publishing with a low barrier like Twitter.

<comment><USER3> The quoted (>) text is from the sublevel founder's blog.

<comment><USER4> Haha, sorry, I meant in Sublevel, not in your comment. I replied on yours because I felt it was related.

<comment><USER3> :) Hopefully he reads & responds.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Made me wonder about a Twitter-style social network where you were the only human, and you knew it. Those that gradually followed and interacted with you were all bots mimicking humans, but for once not spamming or with an ulterior motive. Your content would never be seen by anyone else.

The bots would arrive to compliment, question and challenge you.

Would people care that they weren't real? Outside of the friends we know on Twitter now, do we know which of the rest are definitely real anyway?

Sounds a bit crazy, but just wondering if people will reach a point where they interact with bots and don't care if they give them what they want in terms of attention and validation.

<comment><USER6> What if the bots weren't bots and were actually people. Just every single person would see every user with a randomized user name and no special 'user layout', and no identifying profile information.

Everyone would think, and see that every other account on the site was bots. The site would claim that every account you interact with is a bot, but in the background they aren't, their all people.

<comment><USER7> > What if the bots weren't bots and were actually people. Just every single > person would see every user with a randomized user name and no special 'user > layout', and no identifying profile information.

So, the early Internet.

<comment><USER8> Or 4chan.

</comment></comment></comment></comment><comment><USER9> They desperately need a copywriter. This is classic meaningless brand copy, full of platitudes.

</comment><comment><USER10> All I took away from from the page was the color codes for if I want to advertise for them, whoever it/they is/was/plans to be.

</comment><comment><USER11> I came to the comments to see if somebody could explain what this thing is about. Seems like I'm not the only one not getting it...

Feedback for the author: your marketing copy needs to explain clearly what your product does.

</comment><comment><USER12> "Sublevel is to Twitter what Pinboard is to Delicious, Reddit to Digg, Linux to Windows, Android to iOS, etc."

[http://lucianmarin.com/archive/sublevel.html](http://lucianmarin.com/archive/sublevel.html)

<comment><USER13> So they want to be an permeant underdog (w/the exception of Reddit)? Or a more geeky & less slick implementation?

Odd goal.

<comment><USER14> They want to be a more powerful version for power users.

</comment></comment></comment><comment><USER15> It said "All you have to do is just write." so I started typing something and it didn't do anything.

</comment><comment><USER16> I like the advertising strategy - one unobtrusive ad for everyone, for a whole week. The free charity ads are a nice touch too.

It's either going to stick in your head out of persistence (perhaps subconsciously) or get mentally blocked (though I'd bet on the former).

</comment><comment><USER17> Even after reading the comments here too, I still have no idea what this is supposed to be.

</comment><comment><USER18> I am pretty sure this is satire.

</comment><comment><USER19> I looked at the front page and got no info about what it actually and lost interest.

</comment><comment><USER20> The value is subconscious.

</comment><comment><USER21> "Sublevel is made for people like you"

No it isn't. I run Linux :(

</comment><comment><USER22> Need gravatar.</comment>


Spam in the Android Market - <AUTHOR> http://www.androidpolice.com/2010/12/23/rant-how-to-piss-everyone-off-by-gaming-the-android-market-yes-i-am-talking-about-you-foresterwoodman/

<comment><USER2> Google has this problem on the web. Sites that duplicate other sites, etc. Linkfarms, etc. They are very good at weeding them out and getting rid of them algorithmicly. Why can't they do the same with the android market?

<comment><USER3> > They are very good at weeding them out and getting rid of them algorithmicly

Do you disagree with the frequent "Google lists too many (nearly)-useless sites" posts on HN, or..?

</comment></comment><comment><USER4> _Can_ there be a way to combat this, short of curation?

The name could be changed, the binary modified, the images and descriptions trivially tweaked... the closest you could do is block the developers, at which point they just create new accounts. About the only method I can think of is to require a bank / card number, and block _that_ internally - and they can always get new ones.

<comment><USER5> As someone suggested in the comments, a $10 per app charge would probably fix this.

<comment><USER4> Not if they make more than $10 per round. There are a _lot_ of marks in the world, as evidenced by _175+_ submissions. This went unnoticed for how long? Made them how much money? $10/app would just cut into their profits, it wouldn't stop it.

</comment></comment></comment><comment><USER6> Yet another reason for someone to come up with a third party, decent, curated, Android marketplace.

<comment><USER7> (And force every legit Android developer to manage their applications, updates, and support in two places, not even talking about the hassles of converting purchases between the two stores.)

<comment><USER8> It should be quite straightforward to have a curated "market" that simply lists a subset of normal Market applications, and simply forwards the user to the purchase page for the app on the normal market, rather than creating your own distribution and transaction system.

</comment></comment></comment><comment><USER9> One of my users' games got put on the market by someone else too. I hope google comes down heavy on the fuckwits doing it.

</comment><comment><USER10> I sent it in to TechCrunch.</comment>


Religiosity of professors by field [chart] - <AUTHOR> http://2.bp.blogspot.com/_8sY9bx8acNM/SiGWHxhvAgI/AAAAAAAAAYc/k5sgQ4EDZTI/s1600-h/Gross_2009_professors_religion.png

<comment><AUTHOR> Data comes ultimately (via some blogs) from this paper: [http://socrel.oxfordjournals.org/cgi/content/abstract/70/2/1...](http://socrel.oxfordjournals.org/cgi/content/abstract/70/2/101)

The somewhat odd choice of fields to include is, according to the paper, because these are the 20 fields that graduate the most students yearly.</comment>


Youngest Y Combinator Founders Launch MinoMonsters, The Pokemon Of Social Games - <AUTHOR> http://techcrunch.com/2011/03/17/youngest-y-combinator-founders-launch-minomonsters-the-pokemon-of-social-games/ <comment><USER2> Meta: I am appalled by the amount of hate and (non-constructive) criticism in these comments. In a total role-reversal, all of the comments on TC are positive and encouraging. The congratulatory comments in this thread have been downvoted to negative points. What gives? Is it easier to criticize than give encouragement? These guys already have 95,000 active users... what a feat!

I am ok with constructive criticisms and asking meaningful questions, but pointing out other competitors and implying that this product is a waste of everyone's time is just _mean_.

Josh and team, I am extremely proud of you (never having met you). Do what you love doing, and keep doing it. Don't listen to the haters.

<comment><USER3> About the downvotes: "Congrats Josh" and "Woot go Josh!" don't add anything. If they were "Josh sucks!", they would be downvoted equally.

<comment><USER2> True, but there is a difference between downvoting and not-upvoting. Leaving them alone at 1 point would have let them sink to the bottom just as well and not appeared to be mean-spirited.

<comment><USER3> I see that as noise, and I prefer to downvote noise. Not voting is reserved for comments with very small contributions or opinions I disagree with and don't seem properly justified. But that's just me.

I agree that downvoting is a harsh punishment, but it's also my opinion that this "noise" should be differentiated from the above cases, so I don't see any way around.

</comment></comment></comment></comment><comment><USER4> It seems he's starting to learn the hard lessons of building inside a walled garden. Facebook has already shut down newsfeed stories for his app (a major user acquisition channel) due to ToS violations. Welcome to Hell.

<comment><USER5> Do you have a source for this? I'm seeing newsfeed items from Minomonsters right now...

</comment></comment><comment><USER6> So here's my bug report:

\- Quest completion progress doesn't update until I manually click through into the details.

\- A retreating pet is referred to as {{pet_name}} (problem in the template layer?)

\- Using just about any special character when naming a pet <, &, \, ', (, will make the AJAX call fail and a pet will end up with untitled<hash> name instead

\- A blank name will be accepted (I expected it to revert to the default name) and used as such.

\-- "What would you like to call this monster?" alert box message is about as descriptive as "Would you like to perform this action?" (The offending part being just "this")

\- If I'm allowed to try to use a capture card just once, this mechanic is not apparent. It just looks like the inventory disappears.

\- switch pets screen appears to be cached on first view of the battle. Subsequent switches will not show damage to HP of any party members.

\- sometimes the battle will just stop at "You have chosen to use Bash" message. Presumably the client has missed a response from the server and there is no retry logic?

\- at some point it would start refreshing the page after every battle move is executed

\- is successful escape (run away) supposed to be titled "you lost this battle"? (it also seems to have killed the in-play pet that escaped)

\- after the battle, the pet graphics are always fixed, but the experience bars are sometimes re-ordered.

Some other observations:

\- it's annoying to go to the dashboard after every single battle.

\- the "weak bash" (0 energy move) is not available unless a pet has little energy (what if I want to just tap a wild pet , in a capture attempt?). At that point the UI is very un-intuitive, as regular bash becomes weak, and all the moves (including weak bash!) are greyed out.

\- I wasn't able to figure out where pets beyond the 4th captured one are at. No apparent way to select or re-order the party.

\-- as such the game quickly becomes nothing but a low-level grind, as first weak pets take up all the available slots and make it impossible to move further into the game.

\- do I _have_ to explicitly click on "aquire[sic] reward" if it's only gold (presumably this is always wanted)

</comment><comment><USER7> I'd like to see a bit more of what this site is about but everytime I go to <http://minomonsters.com/> I get redirected to facebook.

It would be nice if I could view the site and learn something about the game without having to authorize it to access my facebook account and email.

<comment><USER8> There _really_ needs to be a BugMeNot for Facebook. Or something similar.

edit: Mailinator's alternate addresses occasionally aren't blocked, but I haven't yet successfully received a confirm email :/

<comment><USER9> Why not just set up a fake facebook profile?

<comment><USER10> Cause it takes a lot of effort to make a 'fake' facebook profile - I had one and it only lasted a few months before it was locked out pending government- issue ID being sent to them, since I wasn't actually using it for anything more than looking at the occasional thing that required an account I can only assume they monitor for unusual use patterns.

<comment><USER11> I'm pretty sure you can make a fake Facebook profile, mark it as a test account, then use it to connect to things.

Test accounts can't interact with real Facebook users, but they can be used to log in to sites.

<comment><USER8> I don't think so, it looks like that might have to be done entirely via the programming API, and you need an application registered to do so (or the access token of another application) because it only works on one application: <http://developers.facebook.com/docs/test_users/>

<comment><USER11> You can definitely create a user and then turn him into a test account manually, I've created many test accounts that way. You have to visit a special URL that turns the account into a test account (can't remember it offhand, and I'm not going to post it anyway since if anyone clicks on it then clicks "accept" without looking, it nukes their regular account).

<comment><USER8> Can the test user then interact with the site in a mostly-regular way? I've never tried, clearly :)

<comment><USER11> Yes, except for the fact that it can't interact with regular users.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> I'd be interested in his old business, who bought that company for six figures and why?

Also congratulations on the success :-)

</comment><comment><USER13> Something to keep in mind about cloning games:

Zynga started with "Just another Texas Hold'em" game and followed that with an exact clone of Farm Town[1] which it iterated on quickly and marketed well.

Angry Birds is thought to be inspired by Crush the Castle[2] but with a better control mechanism and friendlier targets.

Minecraft was a fork/clone of Infiniminer[3] which focused on the community aspects of the game rather than the competitive nature of the original.

What starts as a clone today, could be something unique tomorrow.

[1] <http://en.wikipedia.org/wiki/FarmVille#Originality> [2] <http://en.wikipedia.org/wiki/Angry_Birds#Development> [3] <http://www.minecraftwiki.net/wiki/Infiniminer>

</comment><comment> daniel-cussen How did you deal with Tyler's under-18-ness, legally? I remember there was some mention of this being a small issue in terms of entering contracts in a pg essay.

<comment><USER14> The way I did it was basically to have my parents sign off on whatever contracts I did. My first sale had a signature line for me and one under it for my parents.

 _aww, that's cute!_

</comment></comment><comment><USER15> Sorry to rain on the parade, but isn't this simply a clone of Pokemon?

You start by selecting one of three monsters (they even resemble the starting three from the orignal game). The battle screen and fight dynamic looks almost identical.

Am I missing something?

<comment><USER16> I have to agree with this. It's obvious these guys are smart and savvy. Couldn't they have come up with a new, brilliant idea instead of a Pokemon clone? I hope this gets acquired so they can spend their 20s doing something more meaningful.

<comment><USER2> New and brilliant ideas are much more difficult to gain traction. Great execution on a "cloned" idea is much easier. How many Groupon clones are there? How many of them are making a lot of money? (Hint, a lot). How much money is spent on Pokemon and related collectible card games? (Hint, also a lot).

Meaningful is in the eye of the beholder.

<comment><USER17> The point is Groupon Clones did something Groupon wasn't doing (targeting countries Groupon wasn't targeting) meaning Groupon isn't entitled to be the market leader and the other startups are free to create one for their country.

Pokemon is not making a social web game, this is a big difference to the Groupon situation in my opinion as they are different things. I wouldn't say it's a copy just the story/theme is inspired by Pokemon.

</comment></comment></comment></comment><comment><USER18> <http://apps.facebook.com/monstergalaxy/>

</comment><comment><USER14> Wow, someone's downvoting every congratulatory comment on this thread. To that guy: congratulations on not doing anything useful with your time (while we did).

Also, congrats to Josh and team! I'm totally jealous and proud of a fellow young dude.

<comment><USER19> If you're talking about those comments at the bottom, one of the accounts was created just to leave the comment, and all of them were left very rapidly after the actual item was submitted. I don't personally agree with this, but I can see an argument that they're not contributing to the discussion (and could be perceived as noise), which seems to be extremely important to some users on HN.

It isn't just "[one] guy", and I think your insult of "him" is a little bit counterproductive. I honestly don't think it's because they're congratulatory, and I think you're going after someone needlessly -- I don't see any systematic assault on good will in this thread, as a couple people have.

Consider it weird and move on.

<comment><USER14> Considered weird. Moving on.

</comment></comment></comment><comment><USER20> I'm pleased for these guys, but a little surprised as well. Launching a Pokemon social game isn't exactly being disruptive; it's not as if there's any dearth of them on Facebook, particularly at a time when many companies are fleeing the already strip-mined platform for greener pastures.

<comment><USER21> People are still MINTING money on Facebook. I imagine the top 5 grossing facebook games make the top 5 grossing iPhone games look like adorable little hobbies. The #40 game on Facebook has 6M monthly active uniques. THe #120 game on Facebook has 2M MAU. How many iPhone games have those kind of numbers?

Platform quibbles aside, I imagine it's the fastest/cheapest way to get tens/hundreds of thousands of users to test their gameplay. It's easier to develop for Facebook than mobile, doesn't have the approval nonsense for rapid iteration, has a built in viral channel, etc.

I think it's a smart move.

<comment><USER22> Are they? Who else other than Zynga is. Making money?

<comment><USER21> <http://www.appdata.com/leaderboard/developers>

There's a list.

How many millions of active users do you think it'd take to make meaningful income?

</comment></comment></comment></comment><comment><USER23> I guess it is normal in the Facebook age, but I think it is a pity that it seems to be impossible to see _anything_ from the game without giving the app access to my Facebook network first. Somehow I can never bring myself to give apps access, as I am not sure what they will be doing. Must create another account just for testing apps...

Still, it used to be that you get to examine the merchandise before you buy it.

</comment><comment><USER24> I have wondered for a long time why there hasn't been a mobile version of Nintendogs / Tamagotchi. Seems like it would be the perfect way to carry one of those around, along with the ease of local social stuff on top.

And: a) touch interaction would feel way more immediate b) constant updates to these apps would allow the dev to constantly change / add to pet behavior

</comment><comment><USER25> This startup actually has me more exciting than a lot of the other ones here, even though I doubt I'll ever use it. Games are rarely about being novel, they're about being good. And if if pg tells the truth about funding people, not ideas, then I'll be very interested to see how this turns out.

</comment><comment><USER26> "At 15, he was selling his first company for just over six figures."

7 figures?

<comment><USER27> I interpreted that to mean something in the range $100-125k

</comment></comment><comment><USER28> I'm trying to see the larger picture

1\. Get people addicted to Pokemon game 2\. Add in-app purchases 3\. Start gaming empire

For those who haven't seen the game, it's incredibly well executed. Good sounds and graphics.

</comment><comment><USER29> The graphics are really cool and all, but this definitely isn't what pokemon would be. Where is the ability to walk the world and interact with non playable characters? It's decent, but it's no pokemon as far as playability. It's just a stripped down version of pokemon with social elements added. It would be really nice if you could actually play as a character, view battle animations (like pokemon fire attacks show flames) etc.

</comment><comment><USER30> Congratulations Josh. I remember the first time we met in person a year and a half ago. Now seeing you rock it on the big stage brings a tear of pride to my eye.

</comment><comment><USER31> This is a fine concept, but it would be a serious mistake to limit themselves to Facebook and not take advantage of local connectivity options. A lot of children have iTouch devices, but not many have actual iPhones with 3G connections to take advantage of the kind of social gaming that Facebook promotes. It doesn't seem like this will play very well in the schoolyard, and it also doesn't seem anywhere close to sophisticated enough to appeal to adults.

<comment><USER32> _it also doesn't seem anywhere close to sophisticated enough to appeal to adults._

You mean, like Farmville is sophisticated?

As for iTouch devices-- that sounds like a reasonable idea, but first things first. If they get some traction with the Facebook app, there's plenty of further opportunities for them to explore.

</comment></comment><comment><USER33> Wow, what am I doing with my life?

</comment><comment><USER34> Anyone else feel old?

</comment><comment><USER35> So I started playing and it offers to increase my speed stat for the price of 8 Facebook credits. That just doesn't seem right.

</comment><comment><AUTHOR> Well done Josh, you really deserve the success you're now having!

</comment><comment><USER36> Congrats Josh! Great work with Mino dude.

</comment><comment><USER37> Terrific! I'm jealous.

</comment><comment><USER38> Congrats Josh

</comment><comment><USER17> Woot go Josh!</comment>


FBI release a report on Russian Linux Malware called Drovorub [pdf] - <AUTHOR> https://media.defense.gov/2020/Aug/13/2002476465/-1/-1/0/CSA_DROVORUB_RUSSIAN_GRU_MALWARE_AUG_2020.PDF <comment><USER2> >In addition to NSA's and FBI's attribution to GTsSS, operational Drovorub command and control infrastructure has been associated with publicly known GTsSS operational cyber infrastructure

Publicly known GRU malware C&C infrastructure??? If it's became "public", wouldn't they move from it immediately? Also I guess evil GRU hackers are too stupid to use technologies like I2P, Tor, or even something simpler like Bitmessage and route control traffic via botnets of hacked routers and IoT appliances.

>The name Drovorub comes from a variety of artifacts discovered in Drovorub files and from operations conducted by the GTsSS using this malware

So they again found some Cyrillic letters in binary dumps and used it for attribution? Can we download those artifacts and see for ourselves? Or should we simply trust gentleman's word?

And if I haven't missed something the report contains a lot of unimportant noise, but fails to explain how this malware gets into systems in the first place.

<comment><USER3> > _So they again found some Cyrillic letters in binary dumps and used it for > attribution?_

Yeah, these always get me, you see attribution almost every time an alphabet agency goes to the media with malware they analyzed, but it's never reported to be more sophisticated than "a д showed up in the hex dump."

<comment><USER4> Attribution probably gets into some classified tradecraft most of the time.

<comment><USER3> Ahh yes, the "inverse conspiracy theory." The government is secretly competent. ;)

</comment></comment></comment></comment><comment><USER5> > The Drovorub-server uses a MySQL database to manage the connecting Drovorub- > client(s) and Drovorub-agent(s).

This assumes the NSA was able to infiltrate the Drovorub C2 server, I guess.

<comment><USER6> Not necessarily. You could probably infer it from a MySQL client in the malware itself and the queries its making to tables and such.

<comment><USER7> That sounds reaaally unlikely. If the malware shipped a mysql client the NSA would definitely be able to pop the mysql server it connects to.

<comment><USER8> the point wasnt whether or not they could or did. the point was that it could be inferred based on what sql client the malware client was using without ever touching the sever.

<comment><USER7> It is extraordinarily unlikely that the malware would ship with a mysql client or talk mysql with the C2

If it does, that's an easy claim to prove.

<comment><USER9> Read the document. They have the server software. They have configuration files for the server, they know how it processes communication, they know how it generates UUID's. They have the server software.

<comment><USER6> Why RTFA when I can make baseless speculations? :D

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> > Linux Kernel 3.7

I thought I had read that incorrectly in previous reports, but I guess not. Which major distributions still have supported releases running 3.7?! I'm guessing it's gotta be RedHat and older Ubuntu LTS releases? Everything I currently have access to seems to be running at least the 4.x series.

So the most vulnerable would probably be legacy systems or old servers riddled with technical debt?

<comment><USER11> Centos/RHEL 6 is still 'supported' through Nov 2020, and ships with 2.6 kernel. Centos/RHEL 7 ships with 3.1, and will be supported through June 2024.

<comment><USER12> CentOS / RHEL7 ships with Linux 3.10. That is not the same as 3.1.

<comment><USER13> Which Centos shipped with 3.11 for workgroups?

</comment></comment></comment></comment><comment><USER14> Here's a breakdown of the rootkit: [https://www.splunk.com/en_us/blog/security/a-little- splunk-m...](https://www.splunk.com/en_us/blog/security/a-little-splunk- medicinalrub-for-your-drovorub-rootkit-questions.html)

</comment><comment><USER15> Lol. Except no Russian ever would say "drovorub". It's either "drovokol" (firewood + chop) or "lesorub" (wood + cut). Seems like only Ukranians say "drovorub".

<comment><USER16> You know regional differences exist?

[http://az.lib.ru/m/maminsibirjak_d/text_1004.shtml](http://az.lib.ru/m/maminsibirjak_d/text_1004.shtml)

I am from Moscow, I had relatives from Ryazan and Verholensk, for me drovokol is a specialised axe for splitting firewood, lesorub (and it's forest+chop, not wood, wood is only called les by people who sell it, we buy drevesina) is a person who cuts trees in the forest as a job, drovosek is a person who cuts trees for firewood as a job, drovoseksual is a person sexually attracted to trees, and drovorub sounds like a word that somebody both from Verholensk and Ryazan could say.

<comment><USER16> Thinking about it more, trying to recall conversations with my father and actually reading the story I linked above, I feel that the difference between drovosek and drovorub is that drovosek's job is in the beginning of the process of turning trees into firewood, and drovorub is in the end. So drovosek turns trees into the firewood, and drovorub makes firewood into a proper size.</comment></comment></comment>


Niantic's AR occlusion technique and how can I get started - <AUTHOR> https://www.google.com/amp/s/techcrunch.com/2018/06/28/niantics-latest-acquisition-lets-ar-pokemon-hide-behind-the-real-world/amp/ <comment><AUTHOR> So what's the deal with this mono-depth technique? What are the broad strokes of how this low latency CV works? Any combo of open source libs to get started with similar techniques?</comment>


Ask HN: How do you manage automated test workflow and view test analytics? - <AUTHOR>

During the past several years, my company has gone from running a handful of automated tests on a single server to running thousands of automated tests.  These include unit tests, integration tests and Selenium tests.  The Selenium tests are particularly slow, and although we can parallelize them, the builds still take upwards of an hour to run.  We typically don't run the full regression build on every push, but instead use them to validate code prior to merging a branch to master and tagging.
We've come up with our own workflow and hodge-podge of tools to generate test analytics, but we're looking a tool or product that we could integrate into our build system to streamline the workflow and give us insight into identifying slow and intermittently failing tests (typically due to Selenium stability).  We're currently using Jenkins and CircleCI (different projects).
What options are out there?  Have other developers encountered challenges managing their automated tests infrastructure?  Have you developed in-house tools to address this?  Or are there any software tools that you'd recommend? <comment><USER2> It's great that you have embraced testing in your product development! And rest assured it is not uncommon for you to run into issues when your test suite becomes large.

Unfortunately there is no silver bullet to make your tests run faster. I have used both Jenkins and CircleCI and they are great for most environments.

To combat this speed issue I have added a timer to all of my individual test runs. In Ruby with rspec, for example, this is relatively simple by just adding --profile to your .rspec file. Every time your test suite is run, this will show the top 10 slowest running tests. Each testing framework has a similar mechanism or add-on which will give you a report. Next start refactoring those long running tests. At first it will seem like a slow processes, but working on it a bit each day will quickly show significant improvement in your testing suite speed.

Next, watch out for tests, particularly integration tests and Selenium tests, which either test the framework and not your code, or which are redundant. A number of times I have walked into clients offices and have been told that their test suite is as "tight as it can be" and yet still runs slow. I look through it and find many areas where engineers in their desire to test thoroughly were unfortunately testing areas they don't need to. A bit of refactoring again showed massive dividends.

Finally, don't be afraid to segment your tests to run only portions that are effected by the code that was changed. It's true that running the entire suite is important, but you're correct in only running the whole thing at certain times. My current project has segments for API, various Front End resources, and service integrations. There are a number of sub segments as well. Again I think of this as a test refactoring exercise, but it will pay off if designed well.

So, unfortunately I don't have a software solution that will solve your problems. But I can say that a few refactoring activities can make all of the difference.

<comment><AUTHOR> Great tips - thanks! In addition to some slow-running tests, we do have a lot of test duplication. It's probably time to step back and evaluate what tests are overlapping functionality.

Do you use any tools to facilitate your workflow on fixing tests? Typically, we run a regression build on a branch and may find a half dozen failures. With 4-5 developers on a distributed team, we've built a utility for 'checking out' and marking a test as fixed (to be verified on the next build) but haven't seen any similar functionality in the CI systems we use.

<comment><USER2> Nothing slows down a test suite like test duplication! I would definitely suggest a refactor, it will help. But remember you don't eat an elephant all at once, take it one bite at a time. A small amount but consistent level of test refactoring will go a long well.

It sounds like you have a good workflow to me but obviously you feel you have a problem or you wouldn't be posting here. I've working in environments where the failing tests are assigned out on an individual basis, where there was a bouncer who took on all broken tests, and where each individual engineer would run the tests often enough that they would just fix what they broke. The latter method is my favorite. But it is not always feasible.

I guess the answer really depends on your environment. I would be very happy to give my advise (for what it's worth). If you would like you may email me. My address is my Hacker News username at googles very large and famous free email service.

</comment></comment></comment><comment><USER3> I work at CircleCI, so I can take a stab at some of these questions.

Selenium tests are a pain, and we come across a lot of customers who have unstable selenium tests. We're building a lot in the next few months to help with it.

Firstly, one feature that we've just put into beta is to show you failing tests. If you're using RSpec or Cucumber or another framework that can generate junit.xml files, we should be able to show you which tests failed, which is shown on the build page, in chat integrations, etc. (Also available via API if you want to consume it via hubot or at the command line or similar).

We're planning to use this to track flaky tests. Someone on our team has the objective to build it this year, so if things go as we optimistically guess that they might, we might see it this year. Otherwise, it should be easy to use the API to build that yourselves.

It seems like that might help you - let me know!

<comment><AUTHOR> Thanks! I'll have to check that out. I really love the CircleCI service - incredible time saver in getting continuous integration setup and so many features out of the box. Would definitely recommend it to anybody looking for a hosted CI solution (good price, too!).

</comment></comment><comment><USER4> I have a similar problem but unfortunately the conventional wisdom to long- duration tests is that we're just doing it wrong. I'd love to say there is a good system available for having a pile of infrastructure in a corner somewhere running tests, but I haven't found anything with out of the box support for a more complicated execution model than running latest tests on latest build artifact.

The best I've been able to accomplish is a set of parametrized Jenkins jobs that default to running latest tests on latest code, and report results to a custom external application. The test monitor has a status console and can automatically schedule more Jenkins jobs using build parameters to run the tests with specific versions of application and tests to bisect failures. It's ugly, but is tolerable for what we need.

<comment><AUTHOR> Agreed about the conventional wisdom. Unfortunately, I think many companies aren't 'doing it right' and end up with somewhat bloated systems. From what I'm hearing, most companies roll their own solution to that problem and don't use any specific tools to address it. I'm seen some rudimentary statistics in Sauce Labs, as well as built into Jenkins.</comment></comment>


Hugo static search with Algolia - <AUTHOR> https://forestry.io/blog/search-with-algolia-in-hugo/ <comment><USER2> Hey there! Having fun so far but I have an NPM ERR running atomic-algolia.

I am using an .env file (tried with and without quotes)

I'm starting here in case I am doing something wrong, but let me know if think it deserves a GitHub Issue

You can check the code here (branch/search): [https://github.com/regisphilibert/benmerde/tree/search](https://github.com/regisphilibert/benmerde/tree/search)

Here's the npm log: \</comment><comment></comment><comment>-- /Users/cheribibi/Boulot/projets/benmerde/hugov2/node_modules/atomic- algolia/lib/utils/getRemoteIndex.js:1 (function (exports, require, module, __filename, __dirname) { module.exports = async function getRemoteIndex(index) { ^^^^^^^^ SyntaxError: Unexpected token function at createScript (vm.js:56:10) at Object.runInThisContext (vm.js:97:10) at Module._compile (module.js:542:28) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object.<anonymous> (/Users/cheribibi/Boulot/projets/benmerde/hugov2/node_modules/atomic- algolia/lib/update.js:9:22) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! firstname.lastname@example.com algolia: `atomic-algolia` npm ERR! Exit status 1 \</comment><comment></comment><comment>--

Thanks for the post (and the help ;))

</comment><comment><USER2> Got the serverless webhook part. Thanks for the tool and explanation, really easy to follow and a great help for future works!

Just one remark, about indexes.js, you write: "Update name to the name of your index that you set up earlier, and url to yourdomain.com/algola.json, replacing yourdomain.com with your site's domain."

The protocole has to be included ([https://yourdomain.com](https://yourdomain.com)), not only the domain, it makes sense because the key is "url" but the exemple provided (yourdomain.com) and phrasing suggest otherwise.

Thanks again!</comment>


JQuery and Prototype Benchmarks - <AUTHOR> http://ajaxian.com/archives/jquery-and-prototype-benchmarks <comment><USER2> It looks like written by Prototype fans! :) I think that these libraries speed is not as important as usability and maintainability. If you need high performance for some special issue, you better write it from scratch. I care more about development speed and jQuery goes faster.</comment>


PayPal PayFlow Glitching out again, if you use FDMS Nashville processor - <AUTHOR> https://www.x.com/community/ppx/system_status/payflowstatus/blog/2011/03/27/notification-intermittent-impact-to-transactions-going-trough-fdms-nashville-processor--mar-27 Basically you can count on getting a 104 timeout error on every transaction.  No ETA on fix as of 2:13PM PDT 3/27/2011 <comment><AUTHOR> Gateway issuing error code 104, timeout error on all transactions when communicating with FDMS Nashville. =(</comment>


Atom text editor – repository for official .deb Linux builds - <AUTHOR> http://debrepos.franzoni.eu/

<comment><AUTHOR> Atom Linux builds must be manually downloaded from the website or from Github, and don't get automatic updates.

I was annoyed by this, and I couldn't find an official repository (there was a rebuild by webupd8 but I found some issues with that), so I built my own repository; it contains the official binaries, downloaded from Github Releases. I hope this can be useful to somebody.

The deb should work fine on Ubuntu & Debian.</comment>


Information is its own reward - same neurons signal thirst for water, knowledge - <AUTHOR> http://scienceblogs.com/notrocketscience/2009/07/why_information_is_its_own_reward_-_same_neurons_signal_thir.php

<comment><USER2> I would like to see this test with some info on how badly they wanted the fore-knowledge.

i.e. they can choose: know in advance, or get a better drink.

</comment><comment><USER3> Is this article's title misleading or am I missing something? Shouldn't it be that "same neurons signal thirst for water, knowledge about water", as in "same neurons signal 'thirst' for A, knowledge about A"? I think this is implied from the article but not from the title.

<comment><USER2> I can see how you would read the article that way, but no, I don't think it's implied by the article.

However, it's a very subtle point, and a good one. Because if those "water wanting" neurons triggered only because the knowledge was about the thing they wanted: "water", then this research is (at least partially) invalid.

I highly suggest you contact the authors of the study and ask them.

However the point that monkeys do want the fore-knowledge still stands. (And since the fore-knowledge doesn't help the monkey, and monkeys are assumed to not do things for no reason, it's assumed that there is a part of the brain that wants knowledge.)

<comment><USER4> Basically, OP's saying that there is a group of neurons that fire when the person thinks about water. I wouldn't have it any other way.

</comment></comment></comment><comment><USER5> I have discussed this topic at length with friends, typically when I am struggling to grind through "dry" material in an effort to understand something.

I have found that my neurons are extremely resistant to learning any kind of meaningful knowledge and are very receptive to learning all manner of useless knowledge. ;D

Psychologically, it seems odd to me that it is so hard to be disciplined when it comes to learning material when you know intellectually that you will grow from understanding it.

Sometimes I truly want to understand something, I am curious and I want to know the answer, but the work required to gain that understanding is sometimes so painful that I just decide to do something else instead.

<comment><USER6> Perhaps the knowledge you ascribe value to is in fact knowledge you really find valueless.

I know market economics is very valuable knowledge, but to me it's less useful and less interesting than knowing how to make butter . . . and I don't have a cow, goat or sheep, and I don't think I've ate real butter in over 2 years.

</comment></comment><comment><USER7> Does information overload drown us then? :P</comment>


Hype Machine down? - <AUTHOR> http://hypem.com/

<comment><USER2> At 3:57 EST it's working fine for me.</comment>


1937 Guide to San Francisco (When the Golden Gate Bridge Opened) - <AUTHOR> http://www.theatlantic.com/technology/print/2012/05/a-guide-to-san-francisco-in-1937-when-the-golden-gate-bridge-opened/257722/

<comment><USER2> The program itself is more interesting than the gimmicky app:

[http://www.archive.org/stream/officialsouvenir00goldrich#pag...](http://www.archive.org/stream/officialsouvenir00goldrich#page/7/mode/1up)

Imagine a San Francisco where you not only can't buy crack at UN Plaza, _there is no UN Plaza_. Scary!</comment>


American Airlines: "How do I determine which browser I am using?" - <AUTHOR> http://i.imgur.com/rwS7Tc6.png

<comment><USER2> I upvoted this because I think more corporations should go back and look at their sites and correct massively outdated information.

</comment><comment><USER3> What are you talking about? I'm looking at their website right now and it does not say that at all: [https://www.aa.com/i18n/footer/browserRequirements.jsp?ancho...](https://www.aa.com/i18n/footer/browserRequirements.jsp?anchorEvent=false&from=footer)

<comment><AUTHOR> [https://www.aa.com/i18n/utility/FAQs/customerService_FAQ.jsp...](https://www.aa.com/i18n/utility/FAQs/customerService_FAQ.jsp?anchorEvent=false&from=footer)

</comment></comment><comment><USER4> You should inform them.</comment>


A set of scripts to auto-install a complete single-server django website - <AUTHOR> https://github.com/Aviah/one-click-django-server <comment><AUTHOR> Also: auto-install a matching development & deployment local website on OSX or Ubuntu Desktop ,and the polls tutorial with git & deployment to a real website.

[OSX [https://github.com/Aviah/one-click-django-dev-osx-el- capitan](https://github.com/Aviah/one-click-django-dev-osx-el-capitan)] [Ubuntu Desktop [https://github.com/Aviah/one-click-django-dev- ubuntu-14-04-t...](https://github.com/Aviah/one-click-django-dev- ubuntu-14-04-trusty)] [Polls tutorial with git & deployment [https://github.com/Aviah/one-click-django-polls- tutorial](https://github.com/Aviah/one-click-django-polls-tutorial)]</comment>


German WW2 code machine found on eBay - <AUTHOR> http://www.bbc.com/news/uk-36401663 <comment><USER2> If all they found was the teleprinter, and not the crypto machine, this isn't a big deal. That is just the Lorenz version of the Teletype Model 14 tape printer, built under license. These are not that rare. I have three of the Teletype Corp version. (One is in operation right now at the Clockwork Alchemy Steampunk Convention in San Jose. Visit the Telegraph Office there today.) The crypto machine part is separate; it's a big electric-powered rotor machine, like an Enigma with more rotors. This tape printer may be special because the serial numbers match a historic crypto machine, which museum types care about.

Here's my overhaul of the Teletype Corp. version.[1] Here's a Lorenz version someone else has.[2] Here's Bletchley Park's set, with the crypto unit and the teleprinter.[3]

After I got my first Model 14, I had the paper tape they need made by a company in China. The minimum order was 500 rolls, so I sometimes sell paper tape to museums. (I tried US manufacturers first. Either they didn't want a small order, wanted a very high price, or the edge quality of the paper was so bad the tape would jam.)

[1] [http://www.aetherltd.com/refurbishing14.html](http://www.aetherltd.com/refurbishing14.html) [2] [http://www.teleprinter.net/english/inhalt/t2.shtml](http://www.teleprinter.net/english/inhalt/t2.shtml) [3] [http://cryptomuseum.com/crypto/lorenz/sz40/img/301491/000/fu...](http://cryptomuseum.com/crypto/lorenz/sz40/img/301491/000/full.jpg)

<comment><USER2> From [1]: _"We saw the swastika and then we noticed one of the keys was devoted to the double lightning bolt symbol of the SS."_

Now that's a Baudot/ITA2 character set variation I haven't seen. There's already USTTY, ITA2, weather symbols, fractions (⅛, ¼, ⅜, etc., for stocks), versions with £ instead of #, and versions with a pilcrow. (¶). But I've never heard of a double lightning bolt symbol.

Unicode has a single lightning bolt (Stack Overflow cannot handle this) up in the astral planes with the new emoji. But no double lightning bolt. I suppose a request for that now has to go into the Unicode consortium.

[1] [http://www.telegraph.co.uk/news/2016/05/29/hitlers-top- secre...](http://www.telegraph.co.uk/news/2016/05/29/hitlers-top-secret-coded- messaging-machine-snapped-up-for-950-af/)

<comment><USER3> It's not a lightning bolt, it's the rune ᛋ.

<comment><USER2> I suspect the "double lightning bolt" is just a glyph to print for end of line, for CR or LF. A tape printer doesn't do anything special for CR or LF, but some of them print something. One of my machines prints "=", and one prints an oversized comma. There's no standard for that.

</comment></comment></comment></comment><comment><USER4> _But one key part is still missing and volunteers are still searching for it.

"It looks like an electric motor in black casing with two shafts on each side, which drive the gears of the Lorenz machine," explains volunteer John Wetter.

Volunteers hope the public will look out for it and if all else fails are hoping someone might want to build them a new one until they find it._

If it's just a dual-shaft motor with nothing else special about it, fortunately those are widely available:

[http://www.surpluscenter.com/New- Arrivals/1600-RPM-115-VAC-D...](http://www.surpluscenter.com/New- Arrivals/1600-RPM-115-VAC-DUAL-SHAFT-FAN-MOTOR-1-40-HP-10-2838.axd)

<comment><USER5> I think they are looking for original parts.

</comment></comment><comment><USER6> I get that Museums aren't well funded but I feel like ten quid isn't enough value being returned to the owner. That owner didn't know what they had and was taken advantage of, even if it was for a good cause. I hope their name becomes part of the story of the device at least.

<comment><USER7> I understand your emotion but consider it from the owner's point of view. It was _junk_ taking up space, now they have 10 quid and more space. They are _quite happy_. Sure that junk "might" have been valuable but if you go down that road you end up a hoarder thinking someday velvet paintings of elvis are going to be really really valuable.

She could have taken it to the local Antique store and had it evaluated, or asked the museum about it, but instead did what many do, throw it up on Ebay and see if anyone wants it. She's happy, the museum is happy, that really is all that counts here.

<comment><USER8> I think the problem is the phrasing. "Keep the change" sounds like they exploited her ignorance and ran off with a bargain. It's just not how most people want things to be. Despite the logic of the situation, it doesn't _feel_ right. Attributions are free.

Further, though, there are some practical considerations. If they'd shown her appreciation, future dialogue about how it got there, clues to the motor etc should be easier to develop- they obviously asked, but no reason to potentially burn any bridges.

<comment><USER7> I largely agree, but I note that we're reading the BBC's retelling of a story told to them, so we don't really have a good handle on how the transaction went down with the owner.

I have related experience with finding items to add to my DEC VAX collection. I've found equipment that would sell for a premium to one of the folks who maintain old computers for companies, and the owner has offered it up to me for a few dollars. I always tell people in that situation what we're looking at and often they are just glad to see it going to a good home rather than wasting away in their closet/basement/storereoom. Sometimes they will decide to try to sell it for more elsewhere.

In this particular case, the historical value is high, but the number of people who would pay more than 9.5 pounds for it is probably in the single digits. Remember it's only a part of a larger artifact. Further, _they found it on ebay_ so others had the opportunity to see it and bid on it. In the past I've found that things really do find their "market" price on ebay and sometimes that is very different from what either the seller or the buyer thinks should be the market price.

Finally there is the question of "value." It would be fun and cool to have an ancient encryption device, but what is that "worth" to you? So many times I've met people who kept old computers when they were enjoying them (high value) and then discarding them after the excitement/fun has worn off. Cleaning out and disposing an in-law or relative's estate after a long life is also really useful for internalizing cash value vs sentimental value.

Really the best you can hope for is that both parties are satisfied with the transaction. This person in the story might be looking forward to visiting the artifact in a museum some day.

I'm not trying to argue that there aren't people who would exploit an imbalance of information in a market to profit at the expense of others. Hedge funds are full of people like that. I'm just saying that from what we've heard in this story, both parties seem happy with the transaction. The BBC could always follow up with a phone call to the owner and say "If you knew what it was would you have asked the museum for more money?" Only then do we have enough information to consider whether or not the museum was being exploitive.

<comment><USER8> All valid points.

Interestingly, I just remembered that we in Denmark have a law called "Danefæ"[0], which states that the government has claim on all found "treasure". Here you can read what is "danefæ" (i.e. claimed) [http://natmus.dk/salg-og-ydelser/museumsfaglige- ydelser/dane...](http://natmus.dk/salg-og-ydelser/museumsfaglige- ydelser/danefae/hvad-kan-vaere-danefae/). As the law is mostly written with ancient, dug-up items in mind a contraption such as the one in question would not be covered. It's interesting though, how it would solve the moral dilemma.

It's surprisingly hard to find information on this in english; do the states/UK have a similar setup? (your DEC VAX collection obviously wouldn't be covered (yet))

[0] [http://natmus.dk/salg-og-ydelser/museumsfaglige- ydelser/dane...](http://natmus.dk/salg-og-ydelser/museumsfaglige- ydelser/danefae/)

<comment><USER9> The UK has a broadly similar scheme for buried treasures under the Treasure Act 1996. IIRC, it only covers items more than 200 years old.

[1] [https://en.wikipedia.org/wiki/Treasure_Act_1996](https://en.wikipedia.org/wiki/Treasure_Act_1996)

</comment></comment></comment></comment></comment></comment><comment><USER10> If someone is holding a bar of gold but thinking it is just foil wrapped chocolate and offers to sell it to you for $10

but you know it is real gold and say "okay here's $10"

is that honest and moral?

</comment><comment><USER11> The description of the "missing motor" sounds more like the motor-transmission assembly. Since the identification plate on the motor looks standard, if they find an identical part number, it may be for the motor only. Is there any chance of getting clear pictures or the motor-transmission from numerous angles (and including all identifying marks)?

<comment><USER2> That's a special motor and drive train for the cyphering unit. Here's one with the motor.[1] The cypher unit has two selectors - the two curved mechanisms on the top front. Those are mechanical UARTs, serial to parallel converters, and they're the same design used in Teletype machines from 1924 to 1959. Those need power from a driveshaft. The same motor drives both, which is why there's a special motor with a shaft out each end and two right-angle reduction drive gearsets. That's not a standard teleprinter part.

The wheel with the black and white bars is a centrifugal governor. The speed is adjustable, and you use a special tuning fork with a shutter to calibrate the speed. This is a standard Teletype motor feature for when you can't rely on AC power line frequency.

It's still not clear if this find included the crypto unit, or just the teleprinter. If they actually found a crypto unit, this is a big deal. Those were very rare.

[1] [http://cryptomuseum.com/crypto/lorenz/sz40/img/301491/000/fu...](http://cryptomuseum.com/crypto/lorenz/sz40/img/301491/000/full.jpg)

</comment></comment><comment><USER12> "We said 'Thank you very much, how much was it again?' She said '£9.50', so we said 'Here's a £10 note - keep the change!'"

Kind of a dick move.

</comment><comment><USER13> Note the 5 transfer bars to the right of the printing mechanism. It almost certainly used the European variant of the Baudot code.

</comment><comment><USER14> I am wondering if the removal of the motor is some form of temporary disabling of the unit in question.

</comment><comment><USER15> But how does it work?

<comment><USER16> [https://en.m.wikipedia.org/wiki/Lorenz_cipher](https://en.m.wikipedia.org/wiki/Lorenz_cipher)</comment></comment>


Interesting features from various modern programming languages - <AUTHOR> https://medium.com/@kasperpeulen/10-features-from-various-modern-languages-that-i-would-like-to-see-in-any-programming-language-f2a4a8ee6727 <comment><USER2> In Clojure:

1) pipeline operator: thread macro

2) pattern-matching: multimethods, core.match

3) reactive programming: Reagent/re-frame, atoms, core.async

4) implicit name 'it': %

5) destructuring: destructuring

6) cascade: .. macro

7) if: if

8) try: try

9) currying: currying

10) method extensions: protocols

<comment><USER3> The advantages of a small, extremely flexible language.

</comment></comment><comment><USER4> Some thoughts as I read through this (I'm far from an expert in PL, so... forgive me any naivety, please).

I can't decide if I like the pipeline operator (1). Is it really better? Perhaps I'm just used to chaining multiple function calls together.

Pattern-matching (2) is my favorite language feature, or at least it's pretty high up there. Super useful. I always wish I had it in Python (my go-to language most of the time).

Not sure I really "get" reactive programming (3).

With regard to implicit names (4), I think I actually prefer writing lambdas with my own variable names, and I particularly like Haskell's syntax for it.

Even Scala's usage of the underscore seems a little better than this "it" business, if only because the underscore doesn't see much use elsewhere so it's an indicator that "Hey, something's going on here!"

But using a regular-looking variable name seems a bit unintuitive for somebody unfamiliar. Though I suppose they may not be the people for whom this sort of code is written.

Isn't destructuring (5) just an effect of ADTs? Which are also what produce (2) pattern-matching, so perhaps really what the author enjoys is ADTs. Or maybe I don't know things.

No strong feelings on (6). Maybe I'd need more exposure.

Are if-expressions (7) actually on this list? In the comments they practically suggest that the ternary conditional is the "regular" way of handling such things, which is... silly. The rest of this list seemed interesting, so I'm confused why these make the cut. Perhaps the author was just being cheeky.

Try-expression (8) are nice and all, but the best is when you can eschew them completely. I like the way optionals are wrapped into so much in Swift; almost makes obsolete all the try-expressions (except for certain cases, such as whenever you call into an older Obj-C library or something).

Definitely a fan of auto-currying (9).

Is method extension (10) similar to overriding the "magic" double-underscore methods in Python, such as `__add__`? That definitely seems useful.

<comment><USER5> One issue with auto-currying is that, afaict, it prevents arity overloading. For example, I find this pretty silly: [http://package.elm- lang.org/packages/elm-lang/core/5.1.1/Jso...](http://package.elm- lang.org/packages/elm-lang/core/5.1.1/Json-Decode#map6)

One feature that always impressed me is how Kotlin has bring-your-own-chaining methods defined on everything.

        request(url).let { req ->
            req.setQuery(mapOf("a" to 42))
        }.let {
            it.body = "foo"
        }.apply { // `this` is implicit receiver inside apply()
            send()
        }

Not the best example of how it's useful because I'm rusty, but it's nice to just chain your own transformations on anything. I miss it all the time.

<comment><USER6> You can do arity overloading with curried functions if you allow overloading the function application operator itself. E.g. if _f_ is of type _A → B_ and _a_ is of type _Decoder A_ then _map f a_ is of type _Decoder B_ and in the special case where _B_ is a function type _C → D_ , that _Decoder B = Decoder (C → D)_ can be applied to a value _c_ of type _Decoder C_ making _map f a c_ a _Decoder D_.

Caveat: I'm not aware of any language that actually does this, likely because redefining the core syntax of function application would be _so_ easy to abuse.

EDIT: Removed my Haskell example, because I think I got it wrong.

</comment></comment></comment><comment><USER7> He can't find the documentation for the pipeline operator. And he posted examples from ReasonML rather than F# and OCaml. For reference this is the documentation for the pipeline operator in F#: [https://msdn.microsoft.com/visualfsharpdocs/conceptual/opera...](https://msdn.microsoft.com/visualfsharpdocs/conceptual/operators.%5b-h%5d-%5d%5b%27t1%2c%27u%5d-function-%5bfsharp%5d) It's kind of sad that people nowadays know only JavaScript and languages from the web ignoring the original language from where the syntax come from. I would not be surprised if he posted some purescript instead of Haskell. As per the "modern" languages in the title the author has no idea about what he is speaking about. OCaml is 21 years old, just 1 year younger than Java, I would not call it a "modern" language. But if someone thinks that the code he posted exists only in ReasonML than _that one_ can be defined a modern language. I rarely criticise blog post, but this one is just not well written and the author has no idea about this subject.

<comment><USER8> > but this one is just not well written and the author has no idea about this > subject.

Rubbish. The examples are good. The author comes across as enthusiastic. The writing style is fine and engaging. A couple of the examples are from a modern variant of an older language but so what? That small oversight and you completely bash the effort?

You could have said,

"The writing didn't do it for me and the author has more to learn about the subject" but you came out with the big stick instead. You come across like a typical elitist functional programmer. Blah, blah, blah, Lisp had that _forty_ years ago, lame!

I thought the language features were interesting. I'd read up on Kotlin but overlooked the _it_ keyword, I'd love if Ruby got that. In fact, I was trying to figure out which features Ruby has the whole time. Ruby blocks (closures?) are cool with the _||_ operator but having a default _it_ keyword, we should totally steal that. In total I think Ruby has #5 Destructuring, #7 If Expressions, #10 Method Extensions (called Open Classes in Ruby I think) – correct me if I'm wrong. Ruby kind of does pattern matching with the _case_ statement/expression. The Pipeline Operator looks cool. I don't think Ruby has anything like the Cascade operator either.

<comment><USER7> I'm sorry, I don't know what are you used to read, but writing an example and after that just pointing at the documentation (or at something completely unrelated like in the first example) is not an example of good writing. You are forced to follow the link and it breaks your flow. The it keyword is also not original in kotlin. Groovy has it for example. The author is just getting random features that have been around for decades mistakenly believing that some modern language introduced it.

Your attack is completely non-sense, I don't know lisp and I don't like it. Furthermore in my day to day job I write only OO code (sadly). And I certainly don't think that my post is rubbish given that I explained the reasons for my criticism.

<comment><USER9> To be fair, he doesn't explicitly say "these features were invented in Kotlin/Dart/...". He just says he hadn't read about them before.

</comment></comment></comment></comment><comment><USER10> How is the pipeline operator better than bog standard method chaining you have in any OO language?

      let result = "hello"
        |> doubleSay
        |> capitalize
        |> exclaim;

vs.

      result = "hello".doubleSay().capitalize().exclaim()

I certainly prefer method chaining here.

<comment><USER11> It's not a replacement for method chaining, and can't even be used for that purpose. It's for rearranging the relative position of a function's arguments. In pseudocode, it's defined like:

      x |> f  ->. f(x)

So, applying that, it would let you transform something like

      exclaim(capitalize(doubleSay("hello")))

to your first example. But it can't do anything with the 2nd example, because those are not functions with arguments, they're all 0-arity method calls.

More generally, I don't think this operator makes much sense in a language that's mostly object-oriented. I made one in Scala a while back and toyed with it, but even there it's pretty useless because the libraries follow a very object-oriented coding style. I've really only seen it shine in a language that has strong ML roots and tends to stick to them.

<comment><USER12> > those are not functions with arguments, they're all 0-arity method calls

In other words, they are 1-argument function calls. The "this"/"self" parameter is implicit in many languages, but otherwise it's not different from a normal function parameter. In the "method chaining" version of the example, each method call returns a (reference to) a temporary object which is passed as the next method call's "this" parameter.

<comment><USER11> In most languages, that's an implementation detail that is hidden by the compiler, and not a part of the semantics of the language itself.

More specifically, if the language won't allow me to do both:

      foo.method(x)

and

      method(foo, x)

and have them behave the same way, then I submit that, regardless of what's going on behind the curtain, a n-arity method is not really the same thing as a (n+1)-arity function in that language.

<comment><USER13> Python is pretty close to this. Assuming that foo is an instance of class Bar,

foo.method(x)

Is equivalent[1] to

Bar.method(foo, x)

[1] in the absence of monkey patching on foo

</comment></comment></comment></comment></comment><comment><USER14> Also interesting: goroutines (Go), borrowing semantics (Rust), various forms of concurrency (e.g. blocks in ObjC/Swift with GCD, mutex closures, futures, etc.).

</comment><comment><USER15> I love the way this is presented. I strongly prefer these clean, readable examples to long explanations of each feature.

<comment><USER16> I finally understood a little of what currying meant after seeing it on HN once or twice in the past week

</comment></comment><comment><USER17> All these new language features are good taken on their own, but in the big picture many languages are getting relentlessly more complex.

Many are getting to the point the complexity encourages different programming styles within one language that while syntactically valid can be so different that other programmers can't easily understand them (such as C++), which is a problem for delivering business value.

Cohesiveness and simplicity is a feature, that delivers real and significant business value.

<comment><USER3> I tend to agree. At the two extreme ends of the spectrum I'd place Go and Scala. Go very simple, Scala very complex.

What happens in practice is that Go code looks all the same, it's easy to program in, reason about, and train new programmers in. It's not that expressive or flexible, but bad Go code really jumps at you.

Scala tries to be all things. The result is that it's not obvious what great Scala code is supposed to look like. Successful Scala teams tend to stick to a subset of the language, usually the more functional side.

I think languages like Clojure, Elixir, F#, and Kotlin offer a happier middle ground. Plenty powerful but not as cognitively taxing.

</comment></comment><comment><USER17> The cascade operator looks like an Object Pascal construct that originated decades ago, called 'using' in that language. e.g.

using myPoint .x = 1 .y = 1 end

a bit rusty on the syntax but that was the basics of it!

<comment><USER18> It's also very similar to the with keyword in Visual Basic

With myPoint

      .x = 1

      .y = 1

End With

</comment></comment><comment><USER19> Most of this is syntactic sugar, and one widely available in Haskell, lisps and even mainstream languages like Ruby.

</comment><comment><USER20> Can i have implicit name of a single parameter in javascript via babel extension?

<comment><USER21> It would be possible to do, but it hasn't been proposed as an ECMAScript feature nor do I know of any plugins that implement it, so you'd have to write the plugin yourself.

</comment></comment><comment><USER22> Pipeline operator is often superfluous if proper object oriented programming is used. "hello".capitalize (ruby style)

"implicit 'it'" is my favorite: strings.filter{ it.length == 5 }

And Cascade operator buttons..hidden=true

Automatic currying is dangerous

Method extensions are not 'new' but nice

<comment><USER23> The "implicit it" is called anaphor in Lisp (though using that term for a programming language feature I think only goes back to the 1990s; the idea itself is older).

(The word "anaphor" here comes from the study of grammar in natural languages.)

<comment><USER24> The usage goes back to Paul Graham and his macros with the implicit _it_.

Which appear in Arc.

In which this site is developed.</comment></comment></comment>


Jedi Knight 2 And 3 Source Code Released - <AUTHOR> http://www.rockpapershotgun.com/2013/04/05/lucas-smarts-jedi-knight-2-and-3-source-code-released/

<comment><USER2> There is some interesting code in this release:

      void FuckingWellSetTheDocumentNameAndDontBloodyIgnoreMeYouCunt(LPCSTR psDocName)
      {
              if (gpLastOpenedModViewDoc)
              { // make absolutely fucking sure this bastard does as it's told... //
                      gpLastOpenedModViewDoc->SetPathName(psDocName,false);
                      gpLastOpenedModViewDoc->SetTitle   (psDocName);
              }
      }

My heart goes out to whatever programmer had to meet that deadline. There are a lot more gems in the source tree if you just run:

      egrep -R -i "fuck" *

</comment><comment><USER3> Preferring sourceforge over github seems like an unusual choice, I didn't realise anyone still used it. It's a git repo too, I wonder why they did that?

<comment><USER2> I really don't understand the notion that SourceForge is dead and no one uses it anymore.

      http://sourceforge.net/projects/vlc
      http://sourceforge.net/projects/sevenzip/
      http://sourceforge.net/projects/emule/
      http://sourceforge.net/projects/filezilla/
      http://sourceforge.net/projects/npppluginmgr/
      http://sourceforge.net/projects/mingw/
      http://sourceforge.net/projects/azureus/
      http://sourceforge.net/projects/fceultra/ (Shameless plug)

Just to name a few. As a project admin of fceultra I cannot say that I'm 100% pleased with the UI of the bugtracker and the sf does have its quirks, but sourceforge has had a much better track record than github in respect to uptime. My question to you is "Why not?"

<comment><USER4> yea but how old are those projects? I recognise some of those from the 90s

If you were starting new today you wouldnt choose it. It is a clusterfuck. How the owners can't see the writing on the wall and change is beyond me.

For all I know maybe they are

</comment></comment></comment><comment><USER5> Jedi Knight 2 and 3? No.

The two games are:

Dark Forces 3: Jedi Knight 2: Jedi Outcast

Dark Forces 4: Jedi Knight 3: Jedi Outcast 2: Jedi Academy

Get it right, people.

<comment><USER2> Even with your reasoning "Jedi Knight 2" and "Jedi Knight 3" were the games that were open sourced (Outcast and Academy). I would love to see Dark Forces II: Jedi Knight get open sourced by LucasArts however :)

</comment></comment><comment><USER6> I know this is terribly pedantic, but seeing the name of the blog like that in the HN title rubs me the wrong way.

<comment><USER7> It's not pedantic at all, I thought the same.

I have no idea why it's necessary at all. In fact why not get rid of the blog spam altogether and link straight to the code. Yes, I realise RPS isn't exactly a small site and has quite the following (which seems to extend to HN as well, apparently), but their article adds nothing of real value apart from a quote that was pulled from another article on Kotaku.

</comment></comment><comment><USER8> How would someone go about compiling this? (More looking for resource/tutorial, running Ubuntu).

<comment><USER3> Judging from the `.dsw` file at the base of the code directory, it looks like you need to build it in MS Visual Studio.

<comment><USER9> There is also the matter of missing assets.

<comment><USER2> The source code for the engine should compile without the assets. Or at least with some minor modification to the source tree. Take a look at these other commercial games who have released the source code of the engine but kept the assets proprietary:

      https://en.wikipedia.org/wiki/Duke_Nukem_3D
      https://en.wikipedia.org/wiki/Doom_%28series%29 (1, 2, and 3)
      https://en.wikipedia.org/wiki/Quake_%28series%29 (1, 2, 3, and 4)

I'm confident that there are others but I can't think of any off-hand. These open source contributions are a gift that allows the open source community to create ports to initially unsupported platforms and to enhance the engine. Have you checked out any of the enhanced doom ports? (<http://dengine.net/>). There are even user-contributed HD assets for Duke Nukem 3d (<http://hrp.duke4.net/download.php>).

</comment></comment></comment></comment><comment><USER10> Searching 1897 files for "goto " ... 603 matches across 121 files

 _cocks gun, blows brains out_

(Yes I know the evil goto supposedly has its time and place, blah blah blah)

<comment><USER11> If you are going to write functions like this [1], gotos are not your worst problem. :)

[1]: [http://sourceforge.net/p/jediacademy/code/ci/4bebb8ec23200ee...](http://sourceforge.net/p/jediacademy/code/ci/4bebb8ec23200ee150a9aa566cea6122c19eba44/tree/code/game/bg_pmove.cpp#l1045)

<comment><USER12> What exactly is wrong about that?

The nesting is too deep imho, but apart from that it looks ok. This looks more like a design problem, because there are lots of special cases, but the code style is ok.

<comment><USER11> _Look at the size of that thing_

That function is almost 1500 lines long, full of complex nested if conditions and commented out blocks. I understand how code (especially game character control code) grows to become like that, and I've probably been guilty of some similar horrors myself, but the most I can do with such code style is excuse it.

<comment><USER12> Sometimes the program logic consists of hundreds of cases and putting it all into one function is a good solution, since you see the complexity.

I know that object-oriented best practice would suggest a lot of different classes and using dynamic dispatch for switching. That might even be faster. However, I dislike the fact that this scatters the logic across hundreds of files.

The best solution would be to simplify the logic, but this is also the most costly/time consuming variant.</comment></comment></comment></comment></comment>