Americans' Air Conditioning Habit Is Eco-Friendly (2015) - <AUTHOR> https://www.bloomberg.com/opinion/articles/2015-07-22/americans-air-conditioning-habit-is-eco-friendly <comment><USER3> If we used solar power, AC could be close to carbon neutral, because the peak intensity almost perfectly coincides with temperature. Higher temperatures mitigate the big downside of solar to a greater extent.

Compare with heating, which always peaks in the evening hours.

</comment><comment><USER4> Actually it is possible to have some kind of really eco friendly air conditioning and it has been invented (a thousand years ago?) in Iran. It is called "Badgir" and it is a pity that their invention has not been much more adapted by modern society (Iranians themselves do not built new ones.... what a pity): [https://en.wikipedia.org/wiki/Windcatcher](https://en.wikipedia.org/wiki/Windcatcher)

<comment><USER5> Prior to air conditioning, many American buildings were similarly designed for natural cooling. Air conditioning has allowed for a style of architecture that's inherently inefficient.

[https://www.theatlantic.com/technology/archive/2011/07/keepi...](https://www.theatlantic.com/technology/archive/2011/07/keepin- it-cool-how-the-air-conditioner-made-modern-america/241892/)

<comment><USER6> > Air conditioning has allowed for a style of architecture that's inherently > inefficient.

While this is true, it's also true that air conditioning has allowed for settlement in places that were basically unlivable before, like much of the American South. You can only go so far with clever architecture.

<comment><USER7> Oh please, unliveable? People have lived in the mediterranean area, in Egypt and the Arabian peninsular, in the jungles of Indochina, in the Amazon basin, long before air conditioning was even a thing.

</comment></comment></comment></comment><comment><USER8> _Americans ' Air Conditioning Habit Is Eco-Friendly_

Is there any part of the article that supports the claim of the title? Did I miss it?

<comment><USER9> Yes, the claim is that living in a warmer climate and using A/C to cool 10-20 degrees in the summer is more energy efficient than living in a cold one and heating by 40-50 degrees in the winter.

<comment><USER10> Something about this seems wrong...like this is a very poor argument to even make.

<comment><USER11> Why? I don't have depth in the specifics, but what's the critical issue with the argument?

<comment><USER12> False dichotomy. It's missing the third option of living in a warm climate, but using more energy-efficient architecture to cool homes.

<comment><USER13> A good point someone made, we replace about 1% of our housing stock a year. And build 2-3% more. At that rate the effect of passive house regulations won't have any effect on CO2 emissions over the next 20-30 years.

So you aren't going to fix anything with expensive passive houses. Especially since passive houses need major repairs every 10-20 years.

What's needed to to ban gas and oil fired furnaces and make the grid 100% renewable. Everything else is a distraction.

<comment><USER14> Currently, in the Midwest US, you'll pay around 3-5x more per month for heating in the winter using forced air electric vs gas. A reasonable winter gas bill of $150/month would easily push $400/month using electric.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> No.

A properly designed and insulated building should not need very much of either.

So where are the KWh / sq m comparisons? Or comparing insulation levels? How did she reach this conclusion?

Maybe it's better than heating in a comparably insulated building. No chance of finding out from this rubbish.

Given McArdle's background, I probably shouldn't expect the piece to mention any of that.

<comment><USER16> > A properly designed and insulated building should not need very much of > either.

Where are these magical "properly designed and insulated buildings?" Also, how does insulation help keep out infrared radiation, which is a key heating source if your place has sufficient windows.

<comment><USER15> Well double and triple glazing, usually with coatings to minimise solar heating are readily enough available.

A lot of the rest of the magic comes from old approaches found in most regions before we had cheap heating and cooling that encouraged cheap building that paid no heed to locale. Usually working with the local environment - <USER2> encourage shade, cooling, airflow, or to retain heat. Simple stuff like solar chimneys, windcatchers, or for cooler areas encouraging a greenhouse effect, far removed from full blown passive houses.

Most of which can benefit from modern materials and controls, and be combined with aircon and central heating to achieve comfort for a lot less fuel.

</comment></comment></comment><comment><USER17> I don't understand the article. I'm ok with the fact that an hotter city requires air conditioning. But it seems that, quite often, US indoor temperatures loom around 18-20C, while in EU we usually aim at around 24-25C.

That's the most common objection we make to American tourists, and the article says nothing about that.

<comment><USER18> When I lived in the States it felt unbelievably weird that people in summer would wear sweatshirts because it was so freezing cold inside. My fellow American colleagues thought however that was the most normal thing to do. I still don't get it.

<comment><USER19> They want to make everyone happy. If you feel it's too cold, you can throw something on. In the other direction, you don't have any option if you feel it's too hot after you've taken off your sweater/jacket.

<comment><USER20> > In the other direction, you don't have any option if you feel it's too hot > after you've taken off your sweater/jacket.

A ceiling or pedestal fan could work and would require far less energy to operate.

<comment><USER6> If by "work" you mean "spin on the ceiling without perceptibly affecting the temperature", then sure.

</comment></comment></comment></comment></comment><comment><USER21> It's a common misconception, at least in the US, that AC uses more power than heat. Tons of people leave the AC off to "save power" but almost nobody turns down heat in the winter.

The article touches on this, but AC in hot areas is far more energy efficient than heating in cold ones, because humans prefer a balmy ~75 degrees. Even in the hottest places, there's only a 30 degree difference inside and outside. In areas where temps get below freezing, you need to maintain 40 degree+ difference.

What the article doesn't mention, is that AC is also 3-10X more efficient than heat even without factoring in temperate difference. In warm areas we can use heat pumps for heat and AC which function by moving heat from one side to the other. The downside is that they don't work well in cold temperatures.

In cold areas you can't move heat, there's just not enough of it, so you have to create it. This is massively inneficient and makes living in warm/hot areas far more eco friendly than somewhere like chicago

<comment><USER22> > The downside is that [heat pumps] don't work well in cold temperatures.

There are now low temperature or "hyper heat" heat pumps which can function effectively to temperatures well below freezing, some as low as 5° F (-15° C).

Your point is not "wrong", but simply "somewhat less true than it used to be".

</comment></comment><comment><USER23> Temp delta to cool in the south may be lower than to warm in the north, but not convinced it's a net energy savings.

Not an AC guy, but the figure bandied about in the data center was that it takes 2W of power to remove 1W of heat.

Anyone have a less hand-wavy figure?

<comment><USER24> Modern data centres are a _lot_ more efficient than that. Google currently uses 0.11 watts of overhead per 1 watt of compute, and that overhead includes voltage conversions. [0]

As for residential systems, typical AC unit efficiency ranges from ~15 to ~25 SEER, which is essentially BTUs of cooling per watt•hour under "typical" conditions. Stripping away the weird units, that's 5-7x efficiency. So 5-7 watts of heat removed per watt spent, under whatever the EPA's definition is for "typical" conditions.

[0] [https://www.google.com/about/datacenters/efficiency/internal](https://www.google.com/about/datacenters/efficiency/internal)

<comment><USER23> Good on Megan then! I'm in the south. We have a lot of Germans down here who bitch about how we do everything--AC included.

I'll have to send her a thank you card.

<comment><USER24> I think it's in bad taste to voluntarily move somewhere and then complain about everything.

Keep in mind that heating efficiency can also be better than 1:1. Pulling heat from the outdoors (heat pump) and putting it inside is more efficient than making new heat (radiator, furnace).

<comment><USER23> Just had a chance to read this--thanks. From the average, the data center guys I'm talking to aren't wrong in a heuristic sense--just inefficient:

" _According to the Uptime Institute 's 2014 Data Center Survey, the global average (PUE) of respondents' largest data centers is around 1.7._"

From what I recall, Google does AC-to-DC outside of the cooled area, and has their own custom approach to UPS. The article adds that they leave the cool aisle at a toasty 80F+, and make use of free cooling techniques.

Most non-FAANG data centers are using stock Dell/HP/Cisco servers with redundant internal AC adapters, attached to an APC UPS (with its own internal AC adapter)--all actively cooled to 70-something F in some poorly-insulated re-purposed downtown building.

I think Google made many of those improvements a very long time ago. I'd have expected their practices to be ubiquitous by now, but they're not...

<comment><USER24> Yikes. I expected the average to be worse, but not by that much. No wonder FAANG is eating the world.

As far as the environment is concerned, we'd better get our butts in gear and move to the cloud :)

</comment></comment></comment></comment></comment></comment><comment><USER25> Aside from the obvious - better insulation - I think deep geothermal can be quite an eco-friendly way to heat homes in the near future.

</comment><comment><USER26> > Unlike a cold winter with no heat, a hot summer with no cooling won't > definitely kill you.

That's very blatantly false. And it's going to get a lot worse if the planet continues to heat up.

2003 heat wave "In France, 14,802 heat-related deaths (mostly among the elderly) occurred during the heat wave, according to the French National Institute of Health."

[https://en.wikipedia.org/wiki/2003_European_heat_wave](https://en.wikipedia.org/wiki/2003_European_heat_wave)

NYT 2003: "The staggering number of deaths in France -- perhaps 5,000 by the government's estimate but possibly more than twice that ... The victims were generally found inside apartments, houses and hotels. In virtually every case, there was no air-conditioner."

[https://www.nytimes.com/2003/08/22/world/lack-of-air- conditi...](https://www.nytimes.com/2003/08/22/world/lack-of-air-conditioning- cited-in-france-s-death-toll.html)

<comment><USER9> It is not false. It says "won't definitely kill you". A cold winter will definitely kill you without heat, but a hot summer won't _definitely_ kill you, it just _might_ kill you.

Perhaps you read it as "definitely won't kill you", which would be false.

<comment><USER26> Those people definitely died, so the lack of AC definitely did kill them. It was false in their thousands of cases.

<comment><USER27> "won't definitely" =/= "definitely won't" in this context.</comment></comment></comment></comment>


Welcome to Med School, Where We Teach Everything Except How to Talk to Patients - <AUTHOR> <comment><USER2> Try Nursing.</comment>


Help with Rails? - <AUTHOR>

This is my first post and I hope it's appropriate for the site. My son admires HN and recommended I ask for help here. I'm an "old" CS guy (graduated back in the 80's) and have NOT kept my skills up-to-date as my career led me from development to mostly sysad stuff. So for the last few years, I've had this web site idea and spent the last year designing it while trying to learn Ruby on Rails (using Mark Hartl's tutorial). Setting up a Linux VDI and getting the environment right is driving me crazy. It's always one problem after another. I'm normally a very persistant guy but Hartl's recommended problem solving algorithm (google it) doesn't always work. I'm at the point where I'll do anything just to get this project off the ground. Any ideas or suggestions? I'd pay someone to help me but I don't know where to find such a person. <comment><AUTHOR> Wow! My son was right! This site is awesome! Thanks SO much everyone! Good question wintermute. I wanted a Linux development environment but only have Windows at home. I was thinking about buying another box just for this purpose and load native Linux thinking this would be less ghetto but I don't know...

Thanks for the offer benigeri! I'll hit you up later...

thinkful.com sounds like a great resource.

shail: There were way too many problems to list here. Basically, the pattern I was falling into was as follows: I'd start a new project, start setting everything up, run into problems, fix them, run into more problems, fix them, etc... I'd have problems with everything from running bundle successfully, to deploying successfully. Then I'd get to the point where nothing would work and I'd eventually start over. Very frustrating.

The suggestions here are giving me hope and renewed enthusiasm. I'll check back later...

<comment><USER2> I would suggest running Linux in a virtual machine. A decent choice would be the combination of Ubuntu running under VirtualBox (a free VM). Here's a random guide I found online (I'm not vouching for its veracity): [http://www.psychocats.net/ubuntu/virtualbox](http://www.psychocats.net/ubuntu/virtualbox)

I bet it's possible to do all this stuff under Windows natively too, but it's probably going to be harder to find help. So if you have some familiarity with UNIX-like OSes already, I'd suggest just using something like Ubuntu in a VM.

<comment><AUTHOR> Jey, I've tried to avoid installing Ruby and Rails on Windows because of all the horror stories out there. I had no problem installing VirtualBox and creating a Linux Mint VDI. In fact, I've worked with UNIX for the last 25+ years so I'm actually more comfortable with it (or Linux) than Windows. My problems are with Ruby and Rails and all the associated gems, getting the Gemfile right, understanding what the hell I'm doing with Github (git commit this, git commit that, etc.) And then running the server only to get a bunch of screwy errors that make no sense. But thanks to all the support in this thread, I'm sure I'll make headway soon. Thanks!

</comment></comment></comment><comment><USER3> Oh, boy. I've gotten our rails dev environment set up on a dozen different machines now and there's always a little problem here or there. One thing I can say right off the bat: I could never get it fully up and running on Windows, unfortunately.

But we have had success on both OS X and Linux machines.

The trick is to 1) install rbenv or rvm, 2) build the right version of ruby, 3) install the right gems, 4) make sure your PATH is set up properly.

The rails consultancy thoughtbot has a script you can run to just magically set up a new laptop for rails development. I don't do this (too magical, and too little control), but I usually pull up the script[1] just to remind myself of what things I need to attend to and install.

Feel free to hit me up at my email address in my profile if you're stumped on something. I've probably seen most issues by now...

[1] [https://raw.github.com/thoughtbot/laptop/master/linux](https://raw.github.com/thoughtbot/laptop/master/linux)

<comment><USER4> I know you're not on a mac, but I just re-setup a mac and went through this. So, for anyone wondering. Luckily with homebrew supporting rbenv now it's a lot easier to do.

Download the git installer and run it.

Install homebrew using their script.

brew install rbenv

brew install ruby-build

Once that is done you'll need to copy some stuff in your shell profile. It will tell you the two lines. Restart your shell.

Here's the first trick. You need openssl:

brew install open-ssl

(make sure "qmake" is now available or restart shell and see)

To see ruby versions: rbenv install -l

I installed 2.0.0-rc2: rbenv install 2.0.0-rc2

Almost there! Set it as your global ruby

rbenv global 2.0.0-rc2

Make sure this outputs the right ruby version now: ruby -v

Now install bundler and rails!

gem install bundler

gem install rails

I probably missed a step or two, but I just ran through that process and had a few bumps in the road as usual myself.

<comment> kot-behemoth Correct me if I'm missing something, but why exactly are you using 2.0.0-rc2, when there is 2.0.0-p247 available?

I'd suggest doing

        rbenv install 2.0.0-p247

        rbenv global 2.0.0-p247

Also, it's openssl, not open-ssl, (just in case someone couldn't complete the step) i.e.

        brew install openssl

</comment></comment></comment><comment><USER5> 1\. Use Heroku or Engine Yard 2\. Start with a hello world and build from there one feature at a time 3\. When you get stuck, use Stack Overflow or other Ruby on Rails forums for help as opposed to HN, we're not a terribly good source.

Good luck :)

</comment><comment><USER6> Don't worry, it's like this for everybody. Just hang in there. Suddenly it'll all come together and you'll forget what was so hard about it.

<comment><AUTHOR> Can't wait for that "aha" moment when everything starts making sense! Until now, It's been pretty much me and google. I'm very encouraged by the support from everyone on this site. Thanks you very much!

</comment></comment><comment><USER7> I started learning Rails this summer too! Chapter 1 (the set up) was very annoying, like he warns. StackOverflow is great though! People often answer your questions within minutes (if you word them well and put thought into them). That's the best advice I've got for chapter 1. It's something that is going to be annoying.

I'd recommend going through his tutorial rather briefly first. Like a skim. Then read through [http://guides.rubyonrails.org/](http://guides.rubyonrails.org/). Then go through is tutorial one more time. Then try building your website, while using Railscasts and StackOverflow for help.

See [http://fast-reaches-9399.herokuapp.com/how-to-learn-to- progr...](http://fast-reaches-9399.herokuapp.com/how-to-learn-to-program) for more information. Good luck!

</comment><comment><USER8> you could try vagrant, not sure if its the VDI that you were referring to, but I would say that setup generally seems smoother inside of linux vs. other environments (so it's worth it to deal with the extra complexity of a vm)

there are a bunch of github projects that you can get that has everything to setup a VDI- this one seems popular: [https://github.com/amaia/rails-starter- box](https://github.com/amaia/rails-starter-box)

there's also a railscast about it: [http://railscasts.com/episodes/292-virtual-machines-with- vag...](http://railscasts.com/episodes/292-virtual-machines-with-vagrant)

</comment><comment><USER9> I highly recommend Action.io - a cloud-based linux development environment and IDE that I wish were around when I got started. I literally created a new box, cloned a rails app from github, raked the db and fired up rails server in less than three minutes.

Really, check it out if you're having difficulty getting your environment set up. Here's a link to get started [https://www.nitrous.io/join/BiSdgSxLjIk](https://www.nitrous.io/join/BiSdgSxLjIk) (full disclosure: it's a referral link that will get me No2 credits).

And when you're ready to deploy, just use Heroku. Good luck and keep at it!

</comment><comment><USER10> 1\. Get on IRC, people hang out there all day waiting to help people for free.

2\. Here's a volunteer hotline to call for help: [http://rails.pockethotline.com/](http://rails.pockethotline.com/)

<comment><USER11> And then _stay_ on IRC - and try and help other people with their problems as a displacement activity while you're letting your subconscious work on something else.

Not only will you learn things by trying to help, but you'll demonstrate value as a community member which will improve the quality of the help you receive as well.

<comment><AUTHOR> Understood!

</comment></comment></comment><comment><USER12> Why do you need a Linux VDI? Test locally with the Rails server, then deploy to Heroku.

<comment><USER13> So.. You're half right IMHO!

A linux desktop is entirely unnecessary. But so is Heroku.

This "just deploy to Heroku" mentality is really starting to get on my nerves.

Heroku is a great product that solves real problems for a certain class of project (and user). It is not, in any way, shape or form, the solution to every problem. Stop telling people it is.

<comment><USER14> Deploying someone's first RoR project seems like exactly the class of project and user that Heroku is a good fit for.

</comment></comment></comment><comment><USER15> Hey jrbeal, I've had the same problems. I taught myself ROR over the past year and I had huge issues getting it off the ground. I've been through over 20 different sets of tutorials, so I'm sure I can help out.

I also had a lot of initial difficulty setting up my environments, but I've gotten a lot better at it now.

If you'd like, send me an email firstname.lastname@example.com and I can try to help you and point you to good resources. It's a little hard to suggest anything right now since I don't have any context.

So send me an email and I'll try to help you as much as I can, pro-bono.

</comment><comment><USER16> Are there ruby or rails user groups/meetups around you? If not, there's a bunch of mentor groups, or reddit seems pretty supportive. Stackoverflow is pretty good but there aren't enought people answering questions for the volume they're getting

[http://www.railsmentors.org/](http://www.railsmentors.org/)

[https://github.com/rails-oceania/roro/wiki/Available- mentors](https://github.com/rails-oceania/roro/wiki/Available-mentors)

[http://www.reddit.com/r/rails/](http://www.reddit.com/r/rails/)

[http://installfest.railsbridge.org/installfest/](http://installfest.railsbridge.org/installfest/) (Railsbridge is a fantastic organization, if you emailed i bet they would help

I've been going thru same thing, my MBP hard drive died, so i installed RVM, bundler, and rails 3.2 on a couple ubuntu 12.04 laptops while i'm waiting for my Snow leopard install DVD. The key insight is to write down every step if you have to back out. And read 2 or 3 blogs and see what they agree on before starting install. These are good for 12.04

[http://excid3.com/blog/setting-up-ubuntu-12-04-with- ruby-1-9...](http://excid3.com/blog/setting-up-ubuntu-12-04-with- ruby-1-9-3-nginx-passenger-and-postgresql-or-mysql/)

[http://footyntech.wordpress.com/2012/09/19/installing- ruby-r...](http://footyntech.wordpress.com/2012/09/19/installing-ruby-rails- ubuntu-12-0/)

</comment><comment><USER17> Coming from a Windows-only background you'll find it's probably a much smoother experience while developing on a Linux desktop or in Mac OS X.

Installing a nice Ubuntu 13.04 desktop is not complex, there a video which explains installing Virtualbox and Ubuntu under ten minutes: [http://www.youtube.com/watch?v=0WiiswmOH1Q](http://www.youtube.com/watch?v=0WiiswmOH1Q) ... note that a desktop is not _required_ but given your background you would feel more comfortable having a desktop, graphical text editor (eg. gEdit or Sublime Text) and one or more terminals to run the commands.

Another option would be to install Cygwin, an Unix-like environment for Windows: [http://www.youtube.com/watch?v=WRB9t2tSsjY](http://www.youtube.com/watch?v=WRB9t2tSsjY) and continue the tutorial from there.

Honestly, I think that if you have sysadmin skills, it's likely you'll have some Unix exposure, and if you don't have yet, learning Ubuntu and Linux will be a benefit on the long run.

<comment><USER18> Try Linux Mint instead...

Its Ubuntu under the hood, but has a windows like UI.

I almost gave up on Rails because I was using windows; life is easier as a rails developer with Linux or a Mac.

</comment></comment><comment><USER19> Check out [http://railscasts.com](http://railscasts.com) [http://peepcode.com](http://peepcode.com) [http://lynda.com](http://lynda.com) [http://codeschool.com](http://codeschool.com)

</comment><comment> kot-behemoth This thread turned out to be a great source of information right when I needed it! Thanks, everyone!

However, I'm just starting to work on a webapp for a client (learning from scratch, this is my first big project in Rails), and I was wondering which version to start with. Since I'm starting with no pre-existing codebase, it's very tempting to go with Rails 4.0 as opposed to 3.2, but I'm afraid not all essential gems support it yet. Also, there probably isn't as much information for bugs and problems etc.

Any advice would be greatly appreciated!

</comment><comment><USER20> Michael is very responsive to questions although you should first use his debugging tips. He'll usually fix your problem with one line of code.

[http://ruby.railstutorial.org/help](http://ruby.railstutorial.org/help)

If you don't find your answer from either the debugging tips or a Google search, try writing your question on StackOverflow. Most of the issues you face are probably solvable by knowing what line of your error to search for.

</comment><comment><USER21> I've always found it's a lot easier if you learn the language (And others' habits & conventions) before picking up the framework. Rails will come a lot easier after you're familiar with Ruby and getting the correct environment setup (RVM/RBEnv, Familiarity with popular libraries, etc)

Best of luck!

</comment><comment><USER22> Maybe I can help! [http://askabootstrapper.com](http://askabootstrapper.com)

</comment><comment><USER23> My tip: DON'T USE RVM. (rbenv is a good alternative)

RVM is the nº1 source of problem in Ruby envs.

<comment><USER24> RVM is not that terrible. If your biggest difficulty in Ruby or Rails is RVM, you haven't been around long.

The cause of problems for beginners is quite simply "change". Rails has been through a few major revisions now, and the jump from 2 to 3 dropped a lot of people (even though 3.1.x+ has been fine), and I doubt many will drop again from 3 to 4, even though there are some big changes. The problem is that with all of the changes comes a bunch of now inaccurate information that no one will update that is found easily, some with high point rankings in S.O.

The more important problem to fix though is leadership. DHH has done a great job, but either he or someone else needs to be more vocal as a single voice leading Rails. It is led by committee currently, and it shows in the lack of vision. However, despite its problems, I'm in it for the long haul. I like it a lot better than everything else.

</comment></comment><comment><USER25> I stumbled across thinkful recently: [http://www.thinkful.com](http://www.thinkful.com) and I think having a mentor while learning to code (especially web dev) is really helpful.

PS: I have not used thinkful before.

</comment><comment><USER26> I follow this guide to set up rvm, ruby, and rails: [http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and- you/](http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/)

</comment><comment><USER27> Could you describe the problems you are facing in more detail?

I guess you would not have to pay to get directions. One-on-one help might need payment.

</comment><comment><USER28> Maybe stackoverflow or serverfault could help if you are having specific issues with the code or the server setup?

</comment><comment><USER29> Hey, I would love to help. no need of payment, just a thank you is enough. Contact me, email in profile

</comment><comment><USER30> I love Rails, but I think it might be better for you to go with a PHP framework. PHP is just dead simple to get running and deploy. I would suggest something like Yii or Codeigniter, both of which are somewhat similar to Rails in their architecture.

<comment><USER31> That's all well and good, unless you're actually wanting to learn Rails. :)

<comment><USER30> Of course. My impression was that Rails was just a means to an end though. That said, learning Rails would probably be a lot easier after first grokking a simpler php setup.

</comment></comment></comment><comment><USER32> jrbeal, you can try Laravel, it's a Php Framework and you can setup everything in a couple of minutes and probably develop your idea without having to deal with all those issues.

</comment><comment><USER33> Use node.js! It's as easy as npm install, npm start. Few other steps for the mongodb as well. None of this weird rvm crap. 90% of the time we're just putting text on the screen in various arrangements. Doesn't need to be rocket science.</comment>


2048 in Erlang - <AUTHOR> http://kukuruku.co/hub/erlang/2048-in-erlang

<comment><USER2> \- it might be easier to start your app with `application:ensure_all_started(erl2048)`. If your dependencies are well set in your app file, this will boot all dependencies for you.

\- Given you've already compiled, you don't need the `rebar compile skip_deps=true` part to start the app -- that's just to recompile before you boot it, but I guess you knew that already.

\- Eventually you get to look in releases, but they're a bit more complex. Look at [http://relx.org](http://relx.org) for an easier way in. Releases will let your system know how to boot apps (so you don't have to `-eval` anything), and lets you pre-configure shell options (`-noshell -detached`) so that you can just boot the server with a `./_rel/bin/my-release` call.

\- For information on supervisors and what things like `one_on_one` mean, see [http://learnyousomeerlang.com/supervisors](http://learnyousomeerlang.com/supervisors)

\- The naming convention for Erlang functions is `some_function`, not `someFunction`. This makes it easier to visually parse between variables (`SomeVal`) and functions (`some_function`).

\- functions like `withinBounds({X, Y})` can be rewritten as `within_bounds({X,Y}) -> (X > 0), (X =< ?SIZE) andalso (Y > 0), (Y =< ?SIZE).` -- no need to pattern match there past the initial tuple. Remove the `_` matching, and just let it crash if something doesn't fit. You'll see it in logs (somewhere) and can fix it later.

\- Functions like `getVector(up) -> {-1,0}` could easily be made declarative by using `vector(up) -> {-1,0}` or just `up() -> {-1,0}`.

\- Break out large functions more. There's often no reason to have a 100+ lines function in Erlang. If you end up nesting `case` constructs more than two level deeps, start thinking about splitting the functions up and deferring stuff to other function calls. Your code will also be more testable that way, easier to reason about when something goes wrong, and easier to delete and refactor without breaking anything.

<comment><AUTHOR> wow, that's a lot of useful information. Thank you. I haven't seen relx before. Very good find, thank you.

<comment><USER3> Another tool you might want to check out is erlang.mk, by the author of the Cowboy webserver, Loïc Hoguin -- from the announcement[1]:

 _erlang.mk is a rebar replacement. It was initially created for allowing a faster development process than rebar and for better compatibility with Linux build tools. It should work on Linux and OSX with GNU Make installed._

Here's how erlang.mk and relx can be used together to build releases (this is from a post by Loïc)[2]:

 _There is two steps to building a release. First you need to build the various OTP applications you want to include in the release. Once done, you need to create the release itself, by including the Erlang runtime system alongside the applications, a boot script to start the node and all its applications, and some configuration files.

erlang.mk solves the first step. It is an include file for GNU Make. Just including it in a Makefile is enough to allow building your project, fetching and building dependencies, building documentation, performing static analysis and more.

relx solves the second step. It is a release creation tool, wrapped into a single executable file. It doesn't require a configuration file. And if you do need one, it will be a pretty small one._

And here's a quick excerpt from a user-testimonial for erlang.mk, by Jesper L. Andersen[3]:

 _When compiling from warm, it takes rebar 9 seconds to figure out that there is nothing to do in the project. erlang.mk does the same thing in 0.2 seconds._

[1] [http://erlang.org/pipermail/erlang- questions/2013-August/075...](http://erlang.org/pipermail/erlang- questions/2013-August/075097.html)

[2] [http://ninenines.eu/articles/erlang.mk-and- relx/](http://ninenines.eu/articles/erlang.mk-and-relx/)

[3] [https://medium.com/p/708597c0dd08](https://medium.com/p/708597c0dd08)

<comment><USER2> I personally still prefer to use rebar. If you want to make building a release with relx part of rebar, use a compile hook:

{post_hooks,[{compile, "./relx"}]}.

in your rebar.config.

</comment></comment></comment></comment><comment><USER4> Very good write up!

Good overview of how to get started with Erlang. Sometimes those that give it a first try are the best ones at writing a getting started guide.

> I'm not exactly sure what one_to_one is, but it works. It makes sense to > look through Erlang documentation and find out the definition.

one_for_one just means that if one child of the supervisor dies, it will be restarted. There other choice is all_for_one, which means that if one child crashes, supervisor will restart all its children.

You can nest supervisors and create hierarchies of supervisors and workers and restart them as you need. Each process has an isolated heap (just like OS processes) and it will be neatly cleaned up by the garbage collector.

</comment><comment><USER5> The *app.src file is used to store metadata about the application, and compilation will munge it a bit and copy it into your ebin directory (without the app.src bit I believe).

Essentially, it's what allows application:start(erl2048) to work. The {mod, {erl2048_app, []}} param is what indicates you want to run the code in erl2048_app.erl (though obviously the compiled beam file equivalent) as an application; the application behavior says that starting an application calls the equivalent start/# function.

So basically the order of startup when you call application:start(erl2048) is

Erlang looks for the munged erl2048.app.src, and loads that metadata.

The mod argument specifies a module to start.

The start function in that module is called (as it is expected to adhere to the application behavior). That function should start up the top level supervisor, which in turn is in charge of starting your entire supervisor heirarchy, and by extension, your actual worker processes.

<comment><USER5> Some style stuff, for terseness, you can do things like change -

      move(left, State) ->
        move(getVector(left), State);
      move(right, State) ->
        move(getVector(right), State);
      move(up, State) ->
        move(getVector(up), State);
      move(down, State) ->
        move(getVector(down), State);
      move(Vector, State) ->
        ...

to

      move(Direction, State) when is_atom(Direction) ->
        move(getVector(Direction), State);
      move(Vector, State) ->
        ...

<comment><AUTHOR> ohh, I see. So I can pass Direction as an atom now..that's cool. Thanks!

</comment></comment></comment><comment><USER6> That was a very helpful tutorial. I plan on messin around with the code later tonight. I really am starting to like kukuruku, haven't been able to find content like this lately...

</comment><comment><USER7> 2048 is the new "Hello world"</comment>


Bloom Filters: A Powerful Tool - <AUTHOR> http://www.rubyinside.com/bloom-filters-a-powerful-tool-599.html <comment><USER2> The only caveat with Bloom Filters is that they only answer the question of set membership with high probability. That is, they can be wrong (false positives). For almost all typical cases, you'd be better off with a binary hash (or even a normal hash table) so that you always get the right answer.</comment>


Peter Thiel Reportedly Says the FBI and CIA Should Investigate Google - <AUTHOR> https://www.cnbc.com/2019/07/15/peter-thiel-reportedly-says-the-fbi-and-cia-should-investigate-google.html <comment><USER2> "He singled out Google for agreeing to work closely with China, trying to get its search engine back into the Chinese market, while deciding to let lapse a U.S. defense department contract that gave the military access to its artificial intelligence tools.

Thiel suggested the actions were "seemingly treasonous," as he delivered the opening speech Sunday at the National Conservatism conference in Washington. He asked whether Google parent Alphabet Inc.'s AI research program or senior management had been "infiltrated" by foreign intelligence agencies. "These questions need to be asked by the FBI and the CIA," Thiel said, "And I'd like them to be asked in a not excessively gentle manner.""

</comment><comment><USER3> ...says a man who is a vocal supporter of a President with conflicts of interest with multiple foreign Governments.

</comment><comment><USER4> Honestly I think this is a ridiculous take. Google's military contracts have been extremely controversial both publicly and inside Google. The thing is, if Google wants to exist in China, they must follow some orders. The US government agencies do not force that kind of control (that we know of) so they are more easily rejected. Project Butterfly and Project Maven are not even directly comparable projects also, they have very different goals and implications.

All that said I do believe Google and others need to face some sort of regulations and audits. But hunting for Chinese intelligence officers seems like a waste of time with little evidence to actually warrant such an investigation.

Apologies if this is written weirdly, I desperately need sleep.

<comment><USER5> I remember Project Maven was the drone AI targeting contract. What's Project Butterfly?

</comment></comment><comment><USER6> I think the FBI and CIA would be much better served if they were to investigate Peter Thiel.

</comment><comment><USER7> Notes from Peter Thiel's speech at the National Conservatism conference on July 14, 2019

[https://medium.com/@bonniekavoussi/notes-from-peter- thiels-s...](https://medium.com/@bonniekavoussi/notes-from-peter-thiels- speech-at-the-national-conservatism-conference-on-july-14-2019-6a51b26b202)

Twitter thread

[https://mobile.twitter.com/foggyanabasis/status/115062882956...](https://mobile.twitter.com/foggyanabasis/status/1150628829565718528)

MarginalRevolution comments

[https://marginalrevolution.com/marginalrevolution/2019/07/so...](https://marginalrevolution.com/marginalrevolution/2019/07/some- points-from-peter-thiel.html)

</comment><comment><USER8> He's internet rich, so we should all listen to his random political opinions.

<comment><USER9> His political opinions are pretty interesting in their own right.

You have to at least give him some degree of credit for anticipating many of the conversations we're only just beginning to seriously contend with right now, in 1996: [https://www.youtube.com/watch?v=GWKL0Xc46nQ](https://www.youtube.com/watch?v=GWKL0Xc46nQ)

</comment></comment><comment><USER10> It would be disappointing, if it weren't so formulaic - despite all his interesting views a decade ago Thiel is just yet another intellectual prostitute who talked a good libertarian game when confined to being inert opposition, yet given a whiff of stature he drops into repeating the bog standard authoritarian scaremongering of his latent team.

<comment><USER11> :) cool phrase - "given a whiff of stature" \- 0 hits on google.

</comment></comment><comment><USER12> Fox News says the FBI and CIA Should Investigate Google in 3...2...1 followed closely by Trump saying in his own words "The FBI and CIA Should Investigate Google".

<comment><USER13> HN in a nutshell: everyone in the comments advocating for Google to be investigated, right until the point when Peter Thiel suggests it. At that point, slam the breaks and turn 180.

<comment><USER4> What Thiel wants investigated and what the general HN user wants are very different things I would imagine. Personally I'm more concerned with what Google is doing with my data, and how much they are sharing with a PRISM like program than anything involving China. Thiel's basis for this is also rather weak. A censored search engine and sharing AI with the military are two entirely different things. I oppose both for the record, but just because they are both bad does not equate them.

<comment><USER14> The censored search engine would be de facto controlled by the Chinese military, so no they are not entirely different things.</comment></comment></comment></comment>


Did the U.S. Invent Lyme Disease in the 1960s? - <AUTHOR> https://www.govexec.com/technology/2019/07/did-us-invent-lyme-disease-1960s-house-aims-find-out/158545/ <comment><USER2> No.

> the Yale School of Public Health has found that the Lyme disease bacterium > is ancient in North America, circulating silently in forests for at least > 60,000 years—long before the disease was first described in Lyme, > Connecticut, in 1976

[https://publichealth.yale.edu/article.aspx?id=15651](https://publichealth.yale.edu/article.aspx?id=15651)

</comment><comment><USER3> Flagged for being an obvious sock puppet site.

<comment><USER4> [https://news.ycombinator.com/from?site=govexec.com](https://news.ycombinator.com/from?site=govexec.com)

What are you talking about?</comment></comment>


Using Uninitialized Memory for Fun and Profit - <AUTHOR> http://research.swtch.com/sparse <comment><USER2> Note that this is not strictly valid C: the compiler/runtime system is allowed to initialize uninitialized memory with so-called trap representations, which cause undefined behavior on access.

Of course, it does work on pretty much every real computer.

</comment><comment><USER3> Earlier discussion here: <http://news.ycombinator.com/item?id=1156628>

</comment><comment><USER4> The example of sparse arrays is not quite "uninitialised memory", more like "stale pointers". I remember implementing Knuth's Algorithm X ([http://www-cs- faculty.stanford.edu/~uno/papers/dancing-color...](http://www-cs- faculty.stanford.edu/~uno/papers/dancing-color.ps.gz) \- compressed PS file) for fun, and being horrified (as a good little C programmer) by the pointer abuse. The algorithm builds a 2 dimensional linked list structure which selectively covers columns by disconnecting half the pointers, and leaving the other half dangling so it can be reconnected later. Of course it all works beautifully, I'm just not sure that I'd want to have to debug some medium- quality engineers' implementation of it...

</comment><comment><USER5> As a hardware engineer, I'd suggest zeroing page-sized blocks of memory through a hardware interface without hogging the external bus.

But, of course, that misses the point of the article. ;-)

To say nothing about forcing a redesign of many memory products.

</comment><comment><USER6> There's more here than zeroing memory.

People writing fast, single-threaded network stuff may see immediate value w/r to poll(), or any other situation where you need a packed, easily update-able list of things.

</comment><comment><USER7> The lzf compression lib uses a similar trick as well to void spending time zeroing memory.

</comment><comment><USER8> If you're getting memory from the OS it's going to be initializing it for you, so no speedup. Otherwise you get memory as it was left by some other process, potentially leaking passwords or other sensitive information

<comment><USER9> Interestingly enough malloc(3) on Lucid Lynx box says:

           malloc() allocates size bytes and returns a pointer  to  the  allocated
           memory.   The  memory  is  not  cleared.

whereas Lion says nothing particular about it

So I wrote a quickie:

        #include <stdlib.h>
        #include <stdio.h>

        int main() {
            int m = 1024*1024; //1M
            int t = 1024*m; //total count: here 1G
            char *v = calloc(1, t*sizeof(char)); //total size: 1GB
            for(int i=0; i<t; i++)
            {
                if (v[i] != 0)
                {
                    printf("%016u @%x %x\n", i, v+i, v[i]);
                }
                else if (i % (t/10) == 0)
                {
                    printf("%016u @%x\n", i ,v+i);
                }
            }

        }

Ran multiple times with various sizes including big enough sizes (t) to statistically cover a good deal of physical RAM, and the trigger never triggers.

I notice though that on Mac OS X the program starts right on the spot, while there is always a constant delay on Lucid. Looks like one zeroes on demand (by chunks probably) whereas the other zeroes initially.

<comment><USER10> calloc differs from malloc, as it clears the memory.

From the Mac OS X man page:

The calloc() function contiguously allocates enough space for count objects that are size bytes of memory each and returns a pointer to the allocated memory. The allocated memory is filled with bytes of value zero.

<comment><USER9> Ah sorry, bad version copy/paste on my part. I actually used calloc at some point to compare behaviors in allocation time with malloc, but with malloc it still has zeros everywhere.

Nice for security, but how would one proceed when really wanting pedal-to-the- metal performance?

</comment></comment></comment></comment><comment><USER11> This is also known as the "cave exploration" problem, (maybe involving dwarfs) which was blogged and linked from I think either here or Reddit. I have lost the link though, does anyone have it?

<comment><USER6> That sounds too juicy to ignore. If you find it, please post it here!</comment></comment>


Ask HN: Take a web development company to the "next level" or do something else? - <AUTHOR> OK so what do you do to go from being a self employed web developer to running a profitable web business?
I've been building websites and web applications for various clients over the last 10 years. Things usually go pretty well but there are still feast / famine cycles. Each client gets their own custom proposal - though most small business web solutions seem to end up being a WordPress blog with some customizations. I'm happy to have the work but this is getting old and it seems like something needs to change.
The amount of information about how to run a profitable business is overwhelming. Everyone seems to be selling a class with their "best way" to grow from a web business to selling products (saas or ebooks or web based schools / classes or productized consulting and on and on...).
I have built a few failed saas web apps and one that has a single customer... In addition to experience solving a variety of business problems, dealing with customers, selling hosting, etc.
Right now it feels like I'm just floating along and things just work out. I'd like to take more control and define some goals to move into being a product / saas based business...
It seems odd / empty to say that without more specific objectives but at this point I'm unsure if I should focus on building another web app, work on writing and creating educational material, keep doing web consulting and raise my rates or move on to doing something completely different.
I imagine others have been through similar situation s before... Any thoughts or suggestions? <comment><USER2> Though there are outliers that produce successful products (37signals being the most famous), a web development company is going to scale linearly by adding staff and client projects and seeing revenue growth based on stable margins over stable unit costs. This means that the "next levels" are going to be bigger versions of previous levels not quantum leaps.

There's nothing wrong with that strategy. It just means that the business grows horizontally and the role of an owner/manager will tend to shift from production to administration and sales and human resources.

The quantum shift into a company based on producing and selling a product can be abstracted as starting a new company (it may help to keep in mind that there's nothing that prevents a person from owning two or more companies). Maybe the consulting sustains the owner while they develop the second company.

Random advice from the internet: It's not going to be appreciably less work growing one kind of company over the other. It's probably harder to get reasonable initial success as a product company versus a consultant. It's going to be hard to be successful at both.

Good luck.

<comment><AUTHOR> Thanks - that helps put things in perspective.

Yes ideally my goal is a product business weather it is under my current entity or a new one. Consulting work will fund and support those projects until they can sustain themselves. I'm not looking to hire employees and turn into an agency though would like to get "more professional" and simplify the consulting business.

I'm probably answering my own question after re-reading it... I should just try some of these classes and see what works.

Thanks again!

<comment><USER2> I'm not sure that a class is necessarily the place to start or that expending capital on courses is the best allocation of resources. There is a lot of sound advice available as open source. Even Sam Altman has some: [http://playbook.samaltman.com/](http://playbook.samaltman.com/)

<comment><AUTHOR> Yes this is helpful and inspiring.

Thanks for the link - I hadn't seen this resource before!</comment></comment></comment></comment>


The Future of Widgets on Facebook: Dead - <AUTHOR> http://www.allfacebook.com/2008/09/the-future-of-widgets-on-facebook-dead/ <comment><USER2> Talk about a picture being worth 1000 words -- I read the article and thought "sure, it makes sense, that's probably a problem" and then saw the traffic graph. Wow.

Everybody knows that this is a risk of developing inside someone else's walled garden. I wonder if there will ever be a way to implicitly or explicitly calculate the risk of something like this happening with any given platform. As someone who might develop for a platform, I can't see myself signing up for one where that's likely to happen, and that's one major thing that has kept me from developing iPhone apps.

<comment><USER3> To be fair, that traffic graph is pretty misleading. It looks like it's dropping many orders of magnitude, but really the drop is from around 850 to 400. It looks more extreme than it really is because the limits of the Y axis are from 990 to 320.

Fiddling with the range of a graph when people will assume it's 0 to something is pretty dodgy. Not to mention there's no key on it to say what the numbers stand for.

<comment><USER4> That graph is copied directly from facebook's statistics screen.

<comment><USER3> Sure, I don't mean to say anyone's being malicious here, I'm just saying, it's a shame to look at that graph and think "Oh wow what a big deal this is!" when really you're being shocked by the choice of y axis range.

</comment></comment></comment></comment><comment><USER5> On the plus side, Facebook can avoid going the MySpace route and maintain a clean, functional system by putting the myriad of applications in a cleaner place.

<comment><USER6> My thoughts exactly. Although both are functional in their own way. MySpace is about me. Facebook seems to want to position itself about my network.

<comment><USER7> There's no support for that.

</comment></comment></comment><comment><USER8> The problem is worse than this article describes. You can no longer find an application you visit unless you "bookmark" it.

If you visit a new application, you must specifically click a bookmark button at the bottom of the screen AKA "taskbar", otherwise you will have to click "Applications", "Edit", then navigate through about 5 tabs, find your application and bookmark it.

Keeping Facebook clean is important but this has had, at least the short term effect of hiding (presumably desired) applications from users.

</comment><comment><USER9> Quite true. As mentioned in the article, the Boxes tab from Facebook obscures most of the "fun" stuff added to profiles. I've returned to Facebook many times in recent weeks, and I can't recall a single time I clicked the Boxes tab (on my profile, or anyone else's). Those apps were interesting when they were "in my face", but now I forget they even exist.

<comment><USER10> Yea, I like how they encouraged people to develop all these profile widgets, and then effectively created an "All the Extra Crap Here" tab and stuck every single application into it. I'm so glad I chose to sell off my apps before these changes came into play.

The purpose of the initial system was to allow people to spice up their profiles for others to see. Sticking them into another tab just wipes out that purpose and makes Applications an individual user focus.

And seriously, "Boxes"??? Even the name of the tab sounds like it's just a dump-bin.

<comment><USER11> I think they encourages people to develop USEFUL profile widgets. The biggest and best applications get to put their widgets in the sidebar of the profile on every page.

And, of course, now you can make a full TAB for your app, so if you have a big idea you can give it a lot of space.

<comment><USER12> Exactly right, the way I see it, they have given the power to users to decide how and where to display their apps and widgets.

</comment></comment></comment></comment><comment><USER13> The point in this article about Expression vs. Sharing is a key point that I've always thought to be true. Facebook, in my opinion, works to shut out people's expressions. In a way, Facebook, and their management, have a conformist position.

Social Networking, in my opinion anyways, is supposed to be about..ehhh...socializing. That should include me being able to be exposed to new ideas, new people, new opinions, and likewise being able to express my ideas and my opinions. I think one of the big problems that we've seen with the new Facebook, and resulting decline in Widgets, is they took away a large portion of what allowed people to be different on Facebook. I will admit I use Facebook for only 2 purposes... I use it to play Mobwars (a random and pointless game) and to chat with my friends (not via messages but that IM program in that handy little bar at the bottom of the page). I don't ever visit anyone's profiles... I've had a hell of a time trying to find groups and such that are interesting to join, as with pages. I also am blessed to be able to see everything my friends are doing... hello Stalkerbook.

Facebook it seems, is becoming a mere screw around (time sink) and basic communications system. Even the communication aspect I don't think will last as more people get SmartPhones and are able to use features that are becoming increasingly cheap to send text messages. We're left then with a time sink... At least at Myspace we can be expressive...and find new music, new groups...

<comment><USER14> Give me a break, are you seriously saying that you 'express yourself' through Bush count-down clocks and quizzes on what kind of a serial killer you are ?

<comment><USER13> While I see your point on the "What kind of serial killer are you." Things like a Bush countdown clock is a way of expressing your discontent with the current president/administration. And in the scope of things I'm not limiting it to just these sorts of things. I'm talking about general ways of putting expressive ideas and symbols on your page.

</comment></comment></comment><comment><USER14> Facebook is positioning their applications as Applications with a capital 'A'. From the 'Start' looking 'Applications' button on the bottom left to the shortcuts, it seems like Facebook is trying to encourage people to build real apps with real value.

Think more Excel and iTunes and less Vampires and Werewolves- the problem is, the FB platform was getting known for shitty spam apps, not for the truly useful and innovative applications that FB can be used for. By killing the spam apps they help the real apps, like Scrabulous, Causes, and Flixster.

</comment><comment><USER15> Maybe the widgets need to refocus on the actual user doing the install?

</comment><comment><USER16> Good. Most of the facebook applications are spammy & awful. I didn't like the new facebook at first, but now, after getting used to it, I really do.

</comment><comment><USER17> Someone should do a startup that takes the best of Facebook, MySpace, Twitter, LinkedIn, Socialbrowse and Friendfeed. I'll help.

<comment><USER18> You can start by explaining how this combination of features would be compelling enough to get users from any of these services to migrate to yours.

<comment><USER17> The first thing FriendFeed lacks is a profile of the user. If I use my Friendfeed account as a link for someone to find out about me (ie in an email footer), then having some profile information alongside my feeds makes sense. This is more of a Facebook profile feature I'm thinking inserted into a FriendFeed-like 'base' site.

Also, FriendFeed lacks distinction between Friends and Subscribers, currently there are only subscribers. A person's life also consists of events they are going to, places they are or have been employed, and place they've travelled to. Each of these would be represented.

Furthermore, as a webmaster, I'd like to login and see what on-site comments have been made about pages on my site and by whom.

There should be a toolbar, allowing me to like/digg/approve any page I come across and then comment on it. Those comments can be accessed back on the site, in a sidebar like socialbrowse, or 'pulled-into' any site that wants them. In the sidebar, I should also see where else on the web discussion for any page is occurring. Also, I should be able to see what pages my friends are on at any time, and there should be a toggle to turn off the broadcast of my browsing behaviour to stay 'under the radar.' There should be chat too, either with friends or people on the same page. Also, an author or content creator profile should be seen in the toolbar of any page so a webmaster or author can claim their site or page.

A business can create a profile page and then keep it updated with the latest news, product offerings, events, press releases and fundings associated with it for stakeholders to follow.

The new site should allow 'Tweet'-like updates, and also presence updates of where someone is located and friends and news occurring in that physical zone.

There's no reason the aforementioned sites (twitter, facebook, socialbrowse etc.) can't be integrated to some extent (especially Friendfeed), but ideally this site would be standalone and a replacement. It may in fact copy text and content straight off qualifying external sites for redisplay, like imgfave does for photos. That way, it can start to track authors I like, and I can then view articles on-site without logos and ads as seen on the source site.

News for example can be submitted on-site and attached to a company or individual or, it can be aggregated from elsewhere like on Friendfeed. Expanding overall submission capabilities would be a goal. It can also implement the OpenSocial SPI.

Information is semantically marked-up and searchable.

<comment><USER18> This is a well-thought out response to my snarky one-line comment. That being said, for the casual users of social networks (who are the vast majority), would any of these things convince them to raise stakes and move over to your walled garden?

Facebook, at its inception, offered simplicity. The redesign is a sign that they still consider that to still be one of their primary strengths, not just something that allowed them to achieve their current user base. I'm not a social network power user by any stretch, so maybe I'm just not thinking big enough, but I can't imagine any feature (or set of features) that would make another social networking site irresistible to me.

The problem here, other than the obvious chicken-and-egg one with respect to users, is that there aren't any trendsetters in social networking. Announcing some new features will inevitably bring in tech-obsessed users looking for something new and shiny, but creating a feature set that specifically appeals to power users doesn't guarantee that the casual users will eventually follow.

</comment></comment></comment></comment><comment><USER19> Maybe the developers need to refocus on the new design so they need time to release...

</comment><comment><USER20> well played facebook! well played. use the app monkeys to help build traffic, then kick them off the rez. haha well played indeed.

thats sharecropping for you children. will be amusing to watch the slide/rockyou wankers fall back into the well of mediocrity that spawned them.</comment>


Judge Reviewing Pirate Bay Trial Bias Is Removed for Bias - <AUTHOR> http://www.wired.com/threatlevel/2009/05/judge-reviewing-pirate-bay-trial-bias-is-removed-for-bias/ <comment><USER2> More useful information here: [http://torrentfreak.com/biased-pirate-bay- judge-judged-by-mo...](http://torrentfreak.com/biased-pirate-bay-judge-judged- by-more-biased-judges-090520/)

"[...] the appeal court sent out a press release today in which they announce that Ihrfelt has been taken off the case. She has been replaced by three new judges from a separate division of the court."

"[...] one of the replacements, Anders Eka, is connected to the The Stockholm Center for Commercial law, together with movie industry lawyers Monique Wasted and Peter Danowsky who represented the music industry in the Pirate Bay trial."

What is going on here? I'm really surprised that after two such issues they are not checking each and every judge and his family just to prove they're not setting up the trial... This just makes the Pirate Party stronger every day. How many positions will they get if this circus continues? 2? 3?

<comment><USER3> Yeah, this is getting just plain ridiculous. It's gotten to the point where I wonder if the defense didn't actually _want_ to lose the case just to point out how thoroughly the justice system has been infiltrated by big media interests.

<comment><USER4> I do suspect that; the defense seemed too competent to not know that the original judge had a conflict of interest. They let it ride knowing it gave them a literal get out of jail free card in the case of being found guilty.

<comment><USER4> Beyond that, it also plays into the defense's stated goal of portraying the trial as a ridiculous circus.

<comment><USER4> I would estimate the probability that the defense knew about the bias before the trial as >90%. That was why they called it a spectrial. It was conducted only for the sake of spectacle as it was not legally binding. Definitely one of the more deeply funny tricks TPB has ever pulled.

</comment></comment></comment></comment></comment><comment><USER5> The judge that was hired to determine if the previous judges should be sacked wish it to be known that they have just been sacked.

The Pirate Bay Trial has been completed in an entirely different style at great expense and at the last minute.

</comment><comment><USER6> I have a hard time working out if this is a national embarrassment or just the judicial system's way of slowly finding the correct people to compile the code.

<comment><USER7> Definitely the later: people in power get screened and effectively removed, despite the fact they are biased towards powers of the establishment. Where else does it go that way?

</comment></comment><comment><USER8> It's nice to know that someone's watching the watchmen watching the watchmen, at least in some countries. By the way, when the first judge's ties to copyright industry broke in the news I was just howling. This is a great show.

</comment><comment><USER9> And how do we know that the person who removed the judge is not biased?

<comment><USER10> "Who judges the judges"?</comment></comment>


Ask HN: What is the coolest thing that you created in 2015? - <AUTHOR> <comment><USER2> My first kid.</comment>


Ask HN: Why do Wordpress self-hosted sites get spammed so much? - <AUTHOR> I have a self-hosted WP site, that hardly get any page views, max 100 per month. But, I see at least some 20+ spam comments per month on some random pages and contact pages.<p>WP does a good job at flagging them as SPAM, but I still need to keep deleting them from time to time. <comment><USER2> Wordpress has been around for a very long time, it's popular, and it's consistent. Those three factors make it _very_ easy to write scripts that crawl the internet looking for places to post comments, and those scripts get shared a lot between spammers. Consequently Wordpress's comments are just much easier to spam than other comment systems.

<comment><AUTHOR> > Wordpress has been around for a very long time, it's popular, and it's > consistent.

Isn't same for Disqus.</comment></comment>


Tell HN: Google halts Gmail and Drive apps and forces them to do security audits - <AUTHOR> I found our Google App's OAuth permissions were decertified today after seeing some users receiving permissions errors. Google did this without so much as an email to us. Upon digging in further, I discovered that they changed their policy on February 7th, effectively revoking our existing app permissions, and requiring anyone requesting those permissions go through a 3rd party security audit (3P) at the cost of (in their estimation) $15,000 to $75,000 before getting permissions back. They also state this process will take 4-6 weeks. This is not specific to us, as noted in the post below:
https://support.google.com/cloud/answer/9110914?authuser=2
As of now, we are limited to 100 users connecting accounts before we will no longer be able to accept additional users. Maybe we'll get a helpful response from Google, but considering the lack of notice, I doubt it.
This is why you can't build on a platform like Google; you never know when they will suddenly change policy (or shutdown) without notice and shut you down. No company can stop accepting users for 4-6 weeks while a security audit goes on and stay in business. <comment><USER2> This was announced last year: [https://www.theregister.co.uk/2019/02/11/google_gmail_develo...](https://www.theregister.co.uk/2019/02/11/google_gmail_developer/)

It was a reaction to apps & extensions abusing access to users' email.

<comment><AUTHOR> I remember that happening. If this is the same thing, its even worse as we never got any notice that this was coming or going to impact us.

<comment><USER3> Just curious, did the audit cost as much as they estimated? $15k is a serious expense for small companies.

<comment><USER2> A startup I was advising budgeted $75k for their audit, they folded at the end of the year unrelated to the audit, though it didn't help that they had to pour resources into that while trying to raise more funding.

</comment></comment></comment></comment><comment><USER4> Has anyone got recommendations on completing this while being an early stage startup? Besides lowering the API scope.

</comment><comment><USER5> Maybe you sent their emails to spam it was planned ages ago

<comment><AUTHOR> I doubt that. We even have emails from Google tied to Pagerduty so we never miss one. Were also using GSuite for email.</comment></comment>


Photon – a live demo of a natural language interface to databases - <AUTHOR> https://naturalsql.com/ <comment><USER2> "What is the price of Ginger Beer?"

It couldn't translate that into SQL.

"What is the price in dollars of Ginger Beer?"

> SELECT Catalog_Contents.price_in_dollars FROM Catalog_Contents WHERE > Catalog_Contents.price_in_dollars = "Ginger Beer"

Nope.

"What is the price in dollars of catalog entry name Ginger Beer?"

> SELECT Catalog_Contents.price_in_dollars FROM Catalog_Contents WHERE > Catalog_Contents.catalog_entry_name = "Ginger Beer"

Cool! You have to be more specific than I was hoping, but this is still pretty neat.

<comment><USER3> _" What is the price in dollars of catalog entry name Ginger Beer?"_

OK - but that's not "natural language".

<comment><USER2> What it might need to do is index commonly searched terms and provide a reverse lookup to the location of the row... oh wait, that's called a search engine. :)

</comment></comment></comment><comment><USER4> There's a lot missing here. During the brief and unhappy period of my life where I worked in this area, we had quite a lot of luck just generating semantics based on Wordnet in the domain in question. So here you can't successfully ask for "French wines" even though we know what a country is and that French is a correct adjectival form. Same with things like "oldest wine", that's an easy to derive superlative based on info you already have. We got some mileage out of this old fashioned tree based system at the core, with fuzzier machine learning stuff at the edges.

</comment><comment><USER5> > What singer sang in the most stadiums?

        SELECT singer.Name FROM singer JOIN singer_in_concert ON singer.Singer_ID = singer_in_concert.Singer_ID GROUP BY singer.Singer_ID ORDER BY COUNT(*) DESC LIMIT 1

It is close... sort of? It figured out it needed to join, group, and order, but it only drew the relation to the concert, not the venue. Correctness seems a huge challenge here. Even knowing SQL, I feel I'm double checking my results at times. But I can see how this might be incredibly useful someday for Salesforce if there's confidence in the results.

</comment><comment><USER6> > how many teachers older than thirty?

> SELECT COUNT(*) FROM teacher WHERE teacher.Age > "thirty"

Not a bad idea. A good idea, maybe. Implementation needs some work.

<comment><USER7> IMO better would be a database interface that acts as a normal programming language, treating tables as arrays of records. Compare:

      how many teachers older than 30
      teachers.filter(*.age > 30).len

Same length, but the second one has a degree of precision that the first lacks. (Though they might diverge somewhat as the complexity of queries grows, I suspect programming languages would do better as they have better facilities for symbolic manipulation.) Note also that the second example (and your SQL example) had to specify the table's name, while the natural language one did not—another mark against the natural language solution.

<comment><USER8> What you described sounds a lot like .NET's LINQ, which translates to SQL queries as well:

        teachers.Where(t => t.Age > 30).Count();

<comment><USER7> Linq is cool; I haven't really had opportunity to play with it as I'm not in the .net ecosystem. Another integrated language/database is kdb, although it borrows somewhat from sql's syntax.

</comment></comment></comment></comment><comment><USER9> The Covid database contains cumulative figures, so if you ask "How many deaths in ...?" you get the naive query with the sum of the Deaths column for that country, which is wrong. Actually I wonder how to explain it. I cheated and asked "how many deaths in ... on July 14?" but got the wrong query, with July 14 as Province_or_State no matter how I rephrased the date.

</comment><comment> macro-b "Select all elements from catalog" did not work...

</comment><comment><USER10> > All confirmed covid deaths

> SELECT covid_19_july_data.Deaths FROM covid_19_july_data WHERE > covid_19_july_data.Confirmed = "covid"

</comment><comment><USER11> I've seen a talk about this task, it's supposed to be hard to get enough training data for regular DL approaches.

<comment><USER12> Why do you think this is online?

BTW, they didn't make life easy for themselves by having a field called "number of records". I asked something like "what's the number of records" and "what's the sum of the number of records", but it kept replying with `SELECT COUNT(*) FROM wines;`.

</comment></comment><comment><USER13> In my opinion this doesn't make sense.

SQL is a tight, unambiguous language, that's why it exists.

This is like a legal document written in spoken English. It's only all fine when it works.

Part of writing SQL is also understanding the underling data. This won't address this issue.

This is also not replicable. Language changes in context and time.

<comment><USER14> > In my opinion this doesn't make sense. > Part of writing SQL is also > understanding the underling data. This won't address this issue.

I guess the endgoal for this is to make non-technical people also be able to efficiently work with databases. From a purely business/financial context this would save companies hours (i.e. money) onboarding/teaching employees to use their database, and even possibly remove the need to hire expensive data analysts because their lower-tier employers suddenly can interact with their databases as efficiently as they can.

edit: I also believe you're putting the cart before the horse with your reasoning. SQL and Legal English NEED to be exact, which makes them very 'complex' because you need to disallow any edge cases. This doesn't mean we WANT them to be complex. It is way more useful if it is easy and intuitive (like natural language). Matter of fact, this would save in both Legal and SQL cases a lot of time, because in both you'd often start with natural english, like 'I want to write a rent contract that protects me and my renter from legal trouble', or 'I want to know from this database which company had the highest net profit in the last quarter'. It's only then that you put money, effort and time into translating this into Legal English or SQL.

</comment></comment><comment><USER15> see also [https://news.ycombinator.com/item?id=24283687](https://news.ycombinator.com/item?id=24283687)

</comment><comment><USER16> Doesn't do anything related to language

</comment><comment><USER17> list all company

> Please check the results in the table. Did I get it right?

yes

> Great!

list all designation

> Sorry, 'designation' is confusing to me

</comment><comment><USER18> meh "is there any area column in addresses table" did not work seems straight forward to me ?</comment>


Samsung rains paper airplanes from space on the heads of Earthians - <AUTHOR> http://www.itworld.com/offbeat/136204/samsung-rains-paper-airplanes-space-heads-earthians <comment><AUTHOR> Anybody else rolling their eyes at this?</comment>


Internet File-Sharing Service Is Sued by Music Publishers - <AUTHOR> http://www.nytimes.com/2010/06/17/business/media/17lime.html?partner=rss&emc=rss

<comment><USER2> I clicked on that just to see WHAT internet file-sharing service is being sued by music publishers.

I mean, the fact that it is happening is strictly not news, or even new. They've been doing that in the general case for what, like ten years now?

Headlinefail.</comment>


HadCRUT4: no warming for 16 years - <AUTHOR> http://motls.blogspot.com/2012/10/hadcrut4-no-warming-for-16-years.html

<comment><USER2> See: <http://news.ycombinator.com/item?id=4657540>

</comment><comment><USER3> Zero content or analysis in the article. Hacker News is not the place for your pseudo science climate change denialism.

<comment><AUTHOR> Pseudo science? The article is referring to the HadCRUT dataset of global temperatures.

Are you suggesting that the UK Met Office is doing bad science?

Are you suggesting that warming is occurring despite the fact that there is no warming trend evident in the data?

Catastrophic global warming is a hypothesis based on the output of climate models. Unfortunately the actual data hasn't aligned with the predicted output of the models for many years. This dataset is yet another example.

<comment><USER3> It is pseudo science because the post contains no scientific analysis of the statistic(s). Just because I use data from the large hadron collider in some mixed up argument for a geocentric universe doesn't make my argument scientific.

You can find all sorts of things if you cherry pick time intervals, especially with such noisy data as global temperature.

>Unfortunately the actual data hasn't aligned with the predicted output of the models for many years. This dataset is yet another example.

No it isn't. You are practicing pseudo science again. You have made no comparison between the temperature data and the models, and no argument as to why a system as complex as global climate should be stable enough for direct correlations with models over relatively short time spans.

<comment><AUTHOR> The catastrophic global warming crowd seems to have no problem at all predicting a grim future based on temperature increases over a short period of time.

I tend to agree with you that planetary climate trends are not visible within the span of available global temperature data. But that argument works against the catastrophic global warming theory also.

Here is one discussion of the models vs. reality: [http://wattsupwiththat.com/2012/06/15/james-hansens- climate-...](http://wattsupwiththat.com/2012/06/15/james-hansens-climate- forecast-of-1988-a-whopping-150-wrong/)

<comment><USER3> >I tend to agree with you that planetary climate trends are not visible within the span of available global temperature data

Uh, we have temperature data available for far longer than 17 years, and it does show a clear warming trend. That is why you had to cherry pick the 17 year interval remember?

WUWT is not a credible source of scientific information or analysis so I'm not going to waste my time reading it. A model from 1988 is hardly relevant: climate science has advanced hugely since then. If scientists though the 1988 models were good enough why have they spent the last 24 years making better models?

<comment><AUTHOR> I was a little unclear. What I meant is that the instrumentation record (thermometers and satelites) is quite short (geologically speaking) vs. the proxy record (ice cores, tree rings, etc).

And maybe I can make another clarification. I accept that there is a warming trend visible in the geological record. I don't think that trend is the source of the 'debate' with regarding to catastrophic global warming.

The debate arises when climate modelers predict a _catastrophic_ rise in temperatures that is a distinctly different signal layered on top of the accepted climactic trend and which is triggered by human activities. This comes not from direct increases in CO2 but via postulated positive feedbacks in the system triggered by increases in CO2 or other greenhouse gases.

A 17-year pause in the background climactic trend (i.e. what the planet would be doing without human activities) is not at all surprising nor does it conflict with long term climactic trends.

A 17-year pause in the catastrophic anthropogenic global warming predicted by the models is a completely different story. When that is coupled to the continuing increase in CO2 concentrations you now have a way to evaluate the magnitude of the _postulated_ CO2 feedback. The pause, despite the increased C02 would seem to indicate that the models have overestimated the positive feedback.

Without the positive feedback the dire consequences predicted by the models is much less likely and so the massively expensive and disruptive policy choices are that much harder to justify -- especially in the short-term.

TL;DR A 17 year pause in warming is a strong indication that anthropogenic climate models are woefully incomplete and shouldn't be the basis for massive policy disruptions in the energy sector.</comment></comment></comment></comment></comment></comment>


Just before Xmas - Holidize My Logo - <AUTHOR> http://www.holidizemylogo.com/

<comment><USER2> I tried the two logo's I could find the quickest but both were bigger than 260x260px, which is astronomically small. Maybe up those limits to something like 800x600?

<comment><AUTHOR> Thanks for the tip. We wanted it to be the size logos usually are, when placed on the websites, so it'll be fairly easy to upload it when done. We might reconsider this size due to the fact that some just want to share their holidized logos on social channels and therefore need it bigger.

<comment><USER3> > We might reconsider this size due to the fact that some just want to share > their holidized logos on social channels and therefore need it bigger.

Or anyone utilizing larger sizes for retina.

</comment></comment></comment><comment><USER4> Got scared off by this in the T&Cs:

As between you and Conduit, you retain all rights in your Content. However, by uploading, submitting, or otherwise transmitting any Content via the Holidizemylogo Website you hereby grant to Conduit a non-exclusive, worldwide, royalty-free, sublicensable, right and license to use, reproduce, modify, distribute, display, publish, perform, transmit and access your Content and the Customized Content, as applicable, for promotional and marketing purposes, at Conduit sole discretion, in any media formats and through any media channels during the term you use the Holidizemylogo Website and/or Services and for the twelve month period following the end of such term.

<comment><USER5> I obtained, scaled, and submitted the Google logo off the main search page. I wish them luck in using Google's logo in the way they describe.

<comment><USER6> You are a smarter man then I. I blithely uploaded a company logo to the thing.. curiosity got the better of me.

Should have read that insane TaC first.

</comment></comment></comment><comment><USER7> Love the site, but I found the lack of the word Christmas a little weird. Not that I'm a Christian or anything, just that I don't identify with the term Holiday Season here in the UK.

<comment><USER8> The word 'holidize' seems to have been in use by marketroids for a while, see eg: [http://design.inkzoo.com/how-to-holidize-your-logo-design- to...](http://design.inkzoo.com/how-to-holidize-your-logo-design-to-boost- holiday-sales/)

...and you'll see from the examples there that it's not just Christmas - Halloween, Thanksgiving, whatever. In my day job I see this done _a lot_ for product sales, there are logos/backgrounds queued up for some holiday or other most of the year.

</comment></comment><comment><USER9> Odd limits on file dimensions. I couldn't get past the validation since my laziness factor outweighed my curiosity factor :$

<comment><AUTHOR> LOL! we added also a link to a resize platform (<http://picresize.com/>) if you try to upload a logo that is too big. maybe that can help?

</comment></comment><comment><USER10> Would be nice if it had some samples of what it did so i can be wow'd into trying it.

<comment><AUTHOR> Good tip! in the meantime check out this blog post with examples. [http://blog.conduit.com/2012/12/09/we-have-a-special- holiday...](http://blog.conduit.com/2012/12/09/we-have-a-special-holiday-gift- for-your-logo/)

<comment><USER10> Awesome! This is better than i expected & exactly why you need some demos, so people know. thanks! =)

</comment></comment></comment><comment><USER11> Needs more automagic and a possibility to give urls (instead of file upload).

<comment><AUTHOR> Hey - you can get a URL instead of an image, if you click under the big green button "Get Logo", the "Get Image Link here" right under it. Let me know if it works.

</comment></comment><comment><USER12> this is great!

</comment><comment><USER13> I was going to try it, but the T&C gives Conduit fairly broad marketing/promotional rights. And strangely, it only grants me license to the output for 12 months.

I'm not comfortable with that.</comment>


Writing a Linux Debugger Part 2: Breakpoints - <AUTHOR> http://blog.tartanllama.xyz/c++/2017/03/24/writing-a-linux-debugger-breakpoints/ <comment><USER2> Why are function trailing return types being used for simple data member access?

        auto is_enabled() const -> bool { return m_enabled; }

Please write this instead

        bool is_enabled() const  { return m_enabled; }

There is nothing to gain by writing function trailing return types in this case.

Leave them to complex lambdas declarations or template meta-programming.

<comment><USER3> Does this work?

      auto is_enabled() const { return m_enabled; }

<comment><USER2> Yes it does, assuming you are already on C++14 compiler.

On personal note, I don't think it is really worthwhile to use auto there.

</comment></comment></comment><comment><USER4> Does anyone know of an easy way to interact with performance monitor counters in Linux? I've been reading stuff by Brendan Gregg about DTrace and the importance of PMCs, and it made it sound like Linux doesn't have the equivalent.

<comment><USER5> Yes, this is what "perf stat <command>" does. Add more -d options to see more counters, or use -e to ask for specific counter(s) ("perf list" to list them).

</comment></comment><comment><USER6> I had a question the article states:

>"When the processor executes the int 3 instruction, control is passed to the breakpoint interrupt handler, which – in the case of Linux – signals the process with a SIGTRAP. You can see this process in the diagram below, where we overwrite the first byte of the mov instruction with 0xcc,"

0xCC is not 3 in decimal however it is 204. AM I missing something or is the actual number 3 obscured in the encoding somewhere?

<comment><USER7> 0xCC is a special opcode for the assembly instruction "INT 3" (trigger interrupt number 3), for exactly this use case of providing an 1-byte opcode for debuggers.

The general encoding for "INT <X>" is 0xCD <X>

<comment><USER6> Thanks, that makes perfect sense, I don't know why I was thinking as a literal value. Cheers.

</comment></comment></comment><comment><USER6> This is an interesting blog, I wanted to ask if any of you had any other "system specific" blogs that you read regularly and would recommend?

<comment><USER7> [http://www.brendangregg.com](http://www.brendangregg.com) for everything about tracing/performance measurements.</comment></comment>


Animating DOM Changes - <AUTHOR> https://medium.com/samsung-internet-dev/animating-dom-changes-33b031927e96 <comment><USER2> > A common misconception in Web Development is that the DOM is slow

Not a misconception at all, as the article itself proves by batching reads, and then proceeding to animate _using CSS transforms_ instead.

</comment><comment><USER3> the Animation API that they use is not supported by IE with partial support in Safari.

[https://developer.mozilla.org/en- US/docs/Web/API/Element/ani...](https://developer.mozilla.org/en- US/docs/Web/API/Element/animate)</comment>


Special Relativity Theory and Cellular Automata: Light as a CA Process - <AUTHOR> http://arxiv.org/abs/physics/9902034 <comment><USER2> Stephen Wolfram must be jumping in glee to see this.</comment>


Gaming's most fiendish anti-piracy tricks (2010) - <AUTHOR> http://www.gamesradar.com/gamings-most-fiendish-anti-piracy-tricks/ <comment><USER2> I think the most ingenious anti-piracy trick was "Game Dev Tycoon"'s, which is after this post was made.

The pirated copy had users unable to win or pass a certain point because their games started to get pirated (in the game).

They also released the cracked game themselves to torrents, thus bypassing the troubles other games had where legite players got hit by anti-piracy issues.

[http://www.greenheartgames.com/2013/04/29/what-happens- when-...](http://www.greenheartgames.com/2013/04/29/what-happens-when-pirates- play-a-game-development-simulator-and-then-go-bankrupt-because-of-piracy/)

<comment><USER3> I typically download cracked games because I'd like to one, try them first. Second, have a copy that doesn't require some DRM/Online check, etc.

I've bought probably 10-20x the games I've actually played as well. I stopped playing video games regularly in 1998, but kept buying for the next 2 decades. My rule about 10 years ago was the game had to have all DRM and be under $10.

I'll finish Baldur's Gate and Thief 1 & 2 eventually!

</comment></comment><comment><USER4> Earthbound had a pretty fiendish one too, with the game not only increasing the difficulty of the main game by spawning extra enemies on a pirated version, but also wiping out your save data after it deliberately crashed at the final boss fight. Given that this was a 30 odd hour RPG, god help anyone who suffered from that one.

There's also the infamous scorpion trick they did in one of the Serious Sam games too. If it detected the game was pirated, it'd load an invincible monster that could kill you in seconds and would hunt you down through much of the game. Certainly made for a memorable experience, though it may also gave a bunch of people the amusing extra challenge of trying to avoid the thing for as long as possible.

<comment><USER5> The scorpion trick sounds like pure fun for those up for a challenge! :D

</comment></comment><comment><USER6> In the C64 piracy heyday of the mid 1980s, there was an urban legend of this anti-piracy tactic: At manufacturing/packaging time, some games' floppies had a physical hole punched in a far-away track where _normal_ game usage would never ever send the drive head, so no problems.

Of course, pirates got a lot of mileage out of brute-force full-disk/bit copiers which would try to simply dupe every track on the disk, without regard for format or contents since this would successfully duplicate a handful of file-level tricks such as hidden or intentionally corrupted files that the game would look for. Anyways, the story goes ... if your bit-copying drive stepped out to that distant track ... whammo. <insert-expensive-mechanical- noise>

Or so the rumour goes. As brave teens, we doubted it and it never deterred anyone I knew. Interesting concept, though, if the topic is _fiendish_ tricks.

<comment><USER7> According to Jon Burton, something like this was actually done for the Amiga game Leander, although not with the intent to damage hardware: [https://www.youtube.com/watch?v=Qaq9vlfoGnA](https://www.youtube.com/watch?v=Qaq9vlfoGnA)

<comment><USER8> Here's a photo of the disk: [https://twitter.com/herrprofdr/status/959186835929878528](https://twitter.com/herrprofdr/status/959186835929878528)

</comment></comment></comment><comment><USER9> > What is known is that like more recent EA DRM, the base blasting trick > caused all kinds of problems, in particular blowing up the armies of plenty > of legitimate players.

I remember spending hours on EA's helpline trying to get them to fix this, because now and then, my base would explode, despite the game's legitimacy.

From memory, it became a "won't fix" when we worked out it was only when I would connect to a match with someone with an illegitimate version of the game.

<comment><USER10> It can happen in offline games as well - I had a legitimate install where the campaign worked but a AI skirmish would trigger this (IIRC force-applying the latest patch, even thought it ostensibly was already installed, eventually fixed it).

</comment></comment><comment><USER11> While not game related, 3d studio max had a genius one in the early 2000's. They could detect when the software was cracked and would slowly degrade the model polygons. Eventually there were a bunch of questions on the support forums.

<comment><USER12> Games are one thing, but if I was evaluating that software before buying it, such funny business would not favorably incline me towards it.

<comment><USER13> You'd probably be running the evaluation version not a pirated copy then.

</comment></comment></comment><comment><USER14> I think that Steam has been the best actual deterrence to piracy.

<comment><USER15> What's their strategy?

<comment><USER16> Always online DRM, combined with an easy point of entry for people to buy and manage games. Their prices have historically been good, and they are also convenient and trustworthy

<comment><USER17> Is it always online? I thought you just needed to be online when you booted the game, so your singleplayer game wouldn't exit on you if your internet died.

<comment><USER18> Close enough. There is an offline mode in the Steam menus, but you need to be online to initially activate it.

<comment><USER19> IME the offline mode is very flaky indeed. Every time I've needed it, it failed me.

</comment></comment></comment></comment></comment></comment><comment><USER20> Burger Time for the Apple ][ was apparently a pile of copy-protection triggers with a mediocre video game attached to it.

[https://ia801505.us.archive.org/33/items/BurgerTime4amCrack/...](https://ia801505.us.archive.org/33/items/BurgerTime4amCrack/BurgerTime%20\(4am%20crack\).txt)

[https://www.jwz.org/blog/2016/01/1982-burgertime-drm-was- har...](https://www.jwz.org/blog/2016/01/1982-burgertime-drm-was-hard-core/)

<comment><USER21> jwz has an entertaining referrer check on that link...

<comment><USER22> You can avoid that by setting a referrer header override for jwz's site in your Firefox settings, so his site never sees the HN referrer.

Luckily it seems like browsers are starting to retire that header soon anyway, so his annoying trick will break.

<comment> james-skemp I don't believe they're retiring that header totally, just returning only the domain, and not the full path. Correct?

<comment><USER9> It's only in "Private Browsing Mode", not for the everyday part of Firefox, firstly.

Secondly, you're absolutely correct, they're just stripping path information, not the domain.

</comment></comment></comment></comment></comment><comment><USER23> I was hoping this would be about how piracy was detected, but it was mostly what happened when it _was_ detected.

</comment><comment><USER24> This article came out before GTAIV. It enabled permanent 'drunk mode' on pirated copies: [https://www.youtube.com/watch?v=oSL_x- TKnvM](https://www.youtube.com/watch?v=oSL_x-TKnvM)

</comment><comment><USER10> Red Alert 2 highlights the perils of this approach - it's very easy to trigger on a legitimate install (I had it happen even on a clean XP install with the game installed directly from CD), and it just makes the game appear broken.

<comment><USER25> The reputation and sales risks of false positives are what concerned me. I'd probably not do it for that reason. I think Windows XP Activation was the first time I saw anti-piracy features go really, really bad for all kinds of paying customers.

</comment></comment><comment><USER26> I thought the two methods described in this video were both good:

[http://youtu.be/Qaq9vlfoGnA](http://youtu.be/Qaq9vlfoGnA)

Also, the method described here, even though it didn't result in a financially successful game, was pretty clever (pirating the game meant your game company would be defeated by pirates):

[https://www.theregister.co.uk/2013/04/30/game_dev_tycoon/](https://www.theregister.co.uk/2013/04/30/game_dev_tycoon/)

</comment><comment><USER27> Discussed at the time (a bit): [https://news.ycombinator.com/item?id=2738195](https://news.ycombinator.com/item?id=2738195)

</comment><comment><USER25> There's a few more not in this article or HN comments in the two, Cracked articles below:

[http://www.cracked.com/article_20482_5-hilarious-ways- game-d...](http://www.cracked.com/article_20482_5-hilarious-ways-game- designers-are-messing-with-pirates.html)

[http://www.cracked.com/article_22222_6-hilarious-ways- game-d...](http://www.cracked.com/article_22222_6-hilarious-ways-game- designers-are-screwing-over-pirates.html)

This might be worth a page that comprehensively lists and summarizes various games' approaches. Developers of new games that glance at such a page might find old ones that would work for them or get ideas for better ones. Has anyone started on such a page?

</comment><comment><USER28> Funny stuff. I still have my Lenslok with my copy of Elite for the ZX Spectrum.

Square Enix used to punish pirates for their multiplayer games by putting them all together on to the crappest servers they had and making the gameplay slightly crappy in every possible way.</comment>