My conversation with AT&T - <AUTHOR> http://jasongullickson.posterous.com/my-conversation-with-att

<comment><USER2> If you're talking to front line support, you are talking to a finite state machine. Getting mad at the finite state machine because a transition was not written in it will not get you better customer service. Just inspect the finite state machine looking for the transition to escalation, and provide it exactly the input needed to achieve escalation. (Edited to add: plus such pleasantries as are necessary and proper to polite society.)

(I only know what a FSM is because I was one for two years.)

<comment><USER3> I was also a frontline tech for some years, for Verizon DSL. These are all things I was asked by other geeks that I couldn't do:

* Help you configure an email client that wasn't Outlook. (I could give the servers/ports/config info, but I couldn't help you figure out where to put them.)

* Connect you directly to a higher-tier support person. At least at the time, if I tried, you'd be immediately redirected back to the front-line queue once the higher-up realized you hadn't done our troubleshooting.

* Talk to Real Network Engineers without a _serious_ wait time. You think we're in the same building, let alone _state_ as them? The hold times were always horrible to get to talk to them.

* Troubleshoot outside the script. Most of the guys we had were barely-trained phone jockeys, and the script was set up for them. I _could_ deviate from the script as it was written, but I couldn't troubleshoot anything that wasn't somewhere on the list anyway.

* No shit, some geek somewhere lost the ability to resolve DNS. First words out of their mouth: "Can you reboot your DNS servers?" I am not rightly able to comprehend the confusion of ideas that could provoke such a question. (My answer was, verbatim: "Of course not. I'm not in the same building as them, I wouldn't have permission if I were, and they're working fine for our other customers.")

Helpful hint: if the call times went over 12 minutes (this varies by call center and company), there will be folks prodding you to "resolve the call" so the call center had lower average call time stats.

Quickest route to help: Just answer questions and do what they ask quickly. "Have you rebooted." Yes. "Have you power-cycled the modem?" Yes. Sometimes they'll ask you to do it, on the phone, for documentation purposes. Either do it or lie. The quicker you get to the end of the end of the script, the quicker you get an escalation.

<comment><USER4> I got a high score in this game once, calling Dell tech support to get a hard drive replacement. I had of course done all the troubleshooting in advance, so when the agent answered I said "Hi, my hard drive is having trouble, I've done this, and I've done that, ..." basically fast-forwarding through the script that I knew must exist. And I must have done it right because his response was "Uh...OK...looks like you have a bad hard drive, we'll ship a replacement right away." Yes!

<comment><USER5> I had a similar experience.

There are little code numbers on some of the Dell troubleshooting self-help pages. When you call in, you can mention you've already tried doing XYZ and list of the code numbers. The guy on the other end of the line said, "I've never had anyone so prepared before. I'll send out a replacement laptop screen right away."

</comment></comment></comment></comment><comment><USER6> I had exactly this happen to me. After a week of explaining the issue, they finally threatened me with the cost of the lineman's visit if my computer was at fault ($1500). It had gotten so bad (128kbits) that I said I'd pay it in any case if they could just fix it. I didn't hear anything. The lineman missed his appointment and never showed and my ticket vanished from the system.

The issue dragged on for 5 weeks. Finally I called a local cable provider and begged them for service. In a miracle of bureaucracy, the place I was renting had cable _a decade_ ago and was so on their "served locations" list. They ran more than a mile of new cable and hooked me up.

Months later I was talking to some local telephone linemen (we do a lot of T1 installs requiring truck rolls) and lo and behold, he knew exactly what had gone wrong.

The DSLAM in our local exchange had gone bad and began running in degraded mode to compensate for the failure. AT&T decided that there just weren't enough subscribers to justify fixing it right away. It was scheduled to be repaired in 18 months.

Edit: My takeaway from the entire episode is that you are so impossibly far away from the reality of boxes and wires when you're on those tech support lines that you might as well be trying to direct the mars rover from your back yard with a megaphone.

</comment><comment><USER7> As obnoxious as these type of conversations are, I'd be interested to know what percentage of their 'my Internet is slow' support calls end up being resolved by kicking Little Jimmy BitTorrent offline and trying again. (Or turning off the computer that's participating in 7 botnets, etc. Anyone who has done freelance support can tell you that the customer's computer is always _wrong_.)

It's why this was funny: <http://xkcd.com/806/>

I found that paying for business class Internet for personal use was worth it for the support and service nearly on it's own. Though on the subject of rebooting the modem, I've had it work the other way too: many years ago my 512K/3mb cable started giving me only 250k up ... but over 5mb down. (It went back to normal when rebooted. (I rebooted it because I need the extra 250K up more than the extra 2mb down)).

</comment><comment><USER8> I've had similar situations happen before. Usually what I do is call the phone support, quickly run through everything I tried, and the first-line tech support guy transfers me to a call center in the US with higher-level technicians right away.

I don't really think there's any point in arguing with someone manning the chat help or lower-level phone support anyway as they don't seem to have the ability to run the more advanced diagnostics even if they wanted to. All arguing with them is going to do is frustrate you. Just work with their system a little and you can usually get things taken care of.

<comment><USER9> I'm not AT&T's "partner", I'm their customer. I pay them for service. I shouldn't have to find the optimal path through their system to get things done. Move to a different ISP, plain and simple. There's no reason the customer should be inconvenienced because they can't get their act together. It seems like a no-brainer to me, especially since some ISP's will give heavy discounts to jump ship from their competitors.

<comment><USER2> _I shouldn't have to find the optimal path through their system to get things done._

Consider this a "hacking a non-computer system" challenge. It is a very useful skill even if you never send YC an application, since there are at least a few organizations which are isomorphic to AT&T customer service which are very difficult for you to opt out of using. (Your local department responsible for collecting taxes, for example.)

<comment><USER10> Arguably it's not a non-computer system if the customer service rep is just a front-end for a finite state machine.

</comment></comment></comment></comment><comment><USER11> My experience with DSL customer support is you have to lie.

You don't use OS X - you use Windows, and IE. You don't have a WiFi router connected to the DSL modem - you're connected directly via Ethernet. You have re-installed your operating system and all drivers. Twice. Etc.

It's just more effective to do that, since you already know the problem has nothing to do with your local setup. I'll actually do things that make sense. But when they ask me to re-install the OS or stupid stuff like that - no way.

Also if you make a mistake - like admitting you're using a Mac - you can try again. Just call again and get a different agent on the line.

<comment><USER12> Um hm. Yes, I often "know the problem has nothing to do" with me. And then it sometimes Does have to do with me. The reason the suggestions are in the script is, to try what works most of the time. Thinking it out in your head can lead you to conclusions, but actually rebooting the modem may prove something. Also routers, modems are hardware shipped on a schedule, so they have bugs. Logic can be tripped up by bugs, since they negate assumptions - "clearly the modem isn't editing my UDP traffic!" etc.

</comment></comment><comment><USER13> If you want to get this fixed, you should call their number and get a technician dispatched. He can put a test set on your line at the demarc outside your house. If the SnR is bad, or someone did something dumb like put a bridge tap on your loop, he'll know.

If you want to prove that ATT sucks, congrats. Mission accomplished. Problem is, we already knew that. Go ahead and move ISPs. Don't be all that alarmed when the lawn guy cuts the cable vision line that Your cable provider buried the whopping 3" below the soil, as required by their policies. Don't be alarmed when their front line support requires you to restart your modem. Don't be alarmed when the experience still isn't what you expect as a network engineer.

Front line support sucks because it's designed to handle calls from people who really do need to be instructed to reboot their modem. If you want effective support, you have to recognize that you are the exception to the rule, not the standard.

</comment><comment><USER14> I've generally had good luck with the AT&T customer service. I play the "standard customer" role to navigate first-level troubleshooting, get escalated, then talk to the tech about my actual debugging results. (It helps that, in addition to network admin experience, I design telephony integrated circuits; I'm _very_ familiar with their testing procedures, since I've designed circuits and wrtten firmware to do it.)

Generally once I'm actually talking to the tech it's only five or ten minutes before they get a truck roll scheduled and I'm on my way. It helps to have multiple DSL modems available before calling them so you can rule out equipment malfunctions, and to directly connect the DSL modem to the service entrance after disconnecting your home wiring to rule out internal wiring problems.

In the several years that I've had my DSL, AT&T has piecemeal replaced pretty much all the copper between me and the DSLAM---no surprise, since most of it was 25+ years old. Each time, it's taken one phone call of no more than 30 minutes to get things done. The only trouble I've had that didn't require copper replacement was when a tech disconnected my (dry loop) line because he didn't hear a dial tone and assumed the connection was superfluous.

<comment><USER15> I spent years fighting with Verizon customer service about my DSL line. Not only was the DSL flaky, but the accompanying voice line would routinely lose dial tone. So there was obviously some sort of bizarre equipment problem.

After about 6 phone transfers and a technician who claimed Vermont was a city, not a state, I hung up and called a local phone company that provided DSL. The very first thing they did was run new wires into the building.

Everything has worked fine since.

</comment></comment><comment><USER16> "We have some dedicated department for some specific technical issue like wireless, Mac or gaming console etc.They are expertise on these stuffs."

Indian English!

Not the "Are expertise" bit which is just wrong, and maybe just a typo, but "some dedicated department" and "these stuffs" are good markers. (FWIW: I am Indian, and not mocking anyone, just noting what I perceived)

<comment><USER17> I also thought it was some indian who was on the other side. Though it has nothing to do with the bad service and response. He is just typing it off a script.

Note: Indian here too.

<comment><USER18> These two posts mirror me and my thought process exactly!

What triggered it for me was: "I am sorry for my typo" - I've seen a few of the 'cultural training sessions' for tech support call-centre shops, and that's a line straight out of the playbook..

</comment></comment></comment><comment><USER19> Go here: <https://secure.dslreports.com/forum/sbcdirect> and post about your issue. You can get actual competent techs to look into your issues. Every time I've had issues with SBC/ATT, this forum has helped me with 0 frustration.

<comment><USER20> This works great. Also, I've found that at least for my cable company (Charter), a mere mention on Twitter will get them to contact you and solve the matter quickly over email rather than going through their call center nightmare.

</comment></comment><comment><USER21> When he practically begged you to call, why didn't you? Those primitive chat features are not suitable for working out complicated issues. This reminds me of when people insist on discussing something a dozen messages at a time on Twitter, when it belongs in email (and would be simple there).

</comment><comment><USER22> _No need to start a new session, I'm ready to troubleshoot on Windows XP_

 _How did you change the computer?_

 _I have an xp machine handy and plugged it into the modem, then connected the mac (with the chat session) to a second ethernet port_

 _Mr. Gullickson, the speedstream modem has only one Ethernet port._

i couldn't help but laugh at that part. every time i've had to talk to technical support because of some problem on their end, i always get the runaround because i use an unsupported operating system, to the point that now i just lie and tell them i'm using windows. i was pretty surprised that the technician actually called him out on that.

<comment><USER23> _i was pretty surprised that the technician actually called him out on that._

I don't think you need to be surprised. There's a high likelihood that the operators are educated and intelligent.

I'd imagine that having to stick to a script isn't very fun for the person on the other end of the phone / chat session - especially when you're tied to responding in a certain way and are regularly patronised by annoyed customers.

</comment></comment><comment><USER24> Any conversation with a large company not well known for service will probably go like this. The lower-tier support technicians have a script they follow, and if you stick to it you will A) actually get support, and B) not make some support guy's day suck. The person he was talking with was clearly out of their depth and doing their best to get him in touch with somebody that could help him.

</comment><comment><USER25> This really could be a conversation with any ISP and any technical support line.

<comment><USER26> It doesn't even have to be an ISP, you get pretty much get the same with most technical support lines on any computer-related product.

</comment></comment><comment><USER27> Seemed like the blogger had an axe to grind more than they wanted their issue resolved. If you were choked, I doubt a low level chat rep could fix it anyway.

</comment><comment><USER28> I get it. Sometimes ISPs realize that making your life difficult is easier than fixing the problems that can occur where lines go bad. No matter the provider, edge cases exist, and 3-5% of the time a company sucks. Anecdotally I can say comcast is that provider for me, but generally speaking they were not much worse than AT&T or my current provider, consolidated. All have been decent 95% of the time.

<comment><USER29> Aren't ISP's contractually obliged to stay somehow reasonably within the speeds they advertise?

</comment></comment><comment><USER30> I have griped to AT&T several times about how their 2wire 3800hgv-b router (used for their UVerse service) is broken when you set up pass-through to an internal box. They call this "DMZplus".

What happens is that when icmp packets relating to connections from the DMZplus host arrive at the 2wire router, the 2wire drops them. This breaks path MTU discovery, unix-style traceroutes, etc. It is not a general limitation of the 2wire box, since hosts that are not using DMZplus can receive related icmp just fine. It's caused by the pathologically stupid way that the 2wire router implements "DMZplus". It basically assigns itself AND the internal host the same external IP address, and uses its best guess which traffic to forward and which not to. They missed some corner case relating to ICMP in the state tracker, and AT&T's response is that since it's a "feature" that few people complain about, if I want it fixed I shouldn't be using UVerse. Even after I've pointed out that this behavior violates the tcp/ip standard.

</comment><comment><USER31> I once had a Verizon support rep literally _trick_ me into purchasing a service I didn't want, no doubt to get a commission. I have no love for Verizon.

On the other hand: I had Charter cable internet a few years back. It was spotty, expensive service (1 Mbps, $50/mo), and tech support was crap.

Funny thing is, I resubscribed to them about a year ago, and found that somehow, they've improved _dramatically_. The one time I was having connection issues (and knew it wasn't my box), the tier 1 phone support person performed a remote line test within 5 minutes of me calling, and actually understood concepts like "ping" and "DNS". She even had records of the times my connection had been down. Getting the issue resolved was a breeze (I think they increased power in a repeater or some such). For the first time I felt like I was interacting with a human and not a script.

Hopefully this wasn't a fluke and ISPs are slowly starting to change for the better...

</comment><comment><USER32> Its almost the same here in India. The so called "tech support" has 5 steps they want us to go through, irrespective of anything.

      1. Press the "Start" button
      2. Click on "run"
      3. Type "cmd" and press "enter"
      4. Ping router
      5. Ping (their) DNS servers

The good thing happens to be, they arrange for a visit by a lineman if you straightaway answer in the negative to all of them.

In situations when they want me to "check the automatically configure IP address/DNS servers checkbox", restart modem, and such stuff (and I don't use Windows), I just try to simulate the system that they are expecting, from my Mac (if they tell me something like "open control panel, go to network properties, double click on TCP/IPv4", it fairly obvious they want me to change the IP address or the DNS servers). Usually it works out pretty well.

</comment><comment><USER33> I think the problem being highlighted here is that AT&T (and many company's support) is becoming out of line with what we're expecting from _good_ customer support these days.

While I am not yet a customer, from my understanding if you call/contact Zappos for example, their customer service reps fix the problem. They don't run through a script, and they don't put you off onto another department that will have you troubleshoot the same steps again.

Yes, I realize there is a difference between network troubleshooting and shoes, but having enabled and well trained reps who are the first to receive the calls and are able to actually fix most scenarios is important these days. Of course these things come at a cost and many larger/older companies are not able to come to grips with that type of a change.

<comment><USER34> "Good customer support" is a matter of perspective. As customers, we prefer highly qualified responders who understand and solve our problems. Most businesses prefer to pay as little as possible to people who are just good enough to keep you from canceling your service.

At the scale of AT&T's business, if they can keep you just this side of canceling, they will consider their customer support "good."

</comment></comment><comment><USER35> DSL is one of those things it pays to spend a bit extra on. Here's a transcript of my last customer support experience:

      - dial dial dial, ringle-ringle (one ringle-ringle, that is)
      - <irish accent>Hello, Fast.co.uk.  How can I help you?</irish accent>
      - Something's up with my DNS.  I can't resolve google.com.
      - Hang on, let me check a few things...

... followed by a discussion with a guy who knew everything he needed to fix my problem (and every problem I've called them about) in a few minutes.

For this privilege, I pay maybe $3/month more than I would with BT or some other terrible provider that you hear horror stories about. I consider it tech-support insurance.

And since this is my livelihood, I consider it money well spent.

</comment><comment><USER36> I had my suspicions, and then I came across this line:

        They are expertise on these stuffs.

Yup. Definitely an Indian.

<comment><USER37> ... because, obviously, only Indians can't spell.

<comment><USER38> no, because there is a set of grammars that seem to be consistently mis- matched when one overlays English on Hindi or Urdu. One of the exemplar being an intent of "Noun adjective" that ends up being "Noun Noun-form of adjective"

</comment></comment></comment><comment><USER39> So someone gets frustrated with online customer service-person, obviously non- native English speaker, and then gets 'clever' by claiming something that doesn't even pass the smell test from Level-1 support?

And then saves and posts the entire conversation? Ugh.

</comment><comment><USER40> <http://xkcd.com/806/>

</comment><comment><USER41> AT&T is bar none the worst company in the world when it comes to Customer Service. Although, in this case, the conversation could've been applied to just about any support call.

<comment><USER42> While I don't doubt that AT&T internet service is terrible in some cases, I do have to say that they're wireless telephone support is actually quite good every time I've called. Always helpful, always apologetic, and issues get resolved quickly the times I've called.

It's the one thing that I think I'll miss when the iPhone is available elsewhere. I dread having to deal with Verizon's customer support again when they finally have a few other phone choices I'm interested in.

</comment></comment><comment><AUTHOR> Follow-up post: <http://jasongullickson.posterous.com/coincidence>

</comment><comment><USER43> I tried signing up for AT&T DSL twice via their online form. They never got in touch with me even though I received email confirmations from the signup process.

I even chatted with an AT&T representative who could see that I had signed up, but couldn't tell me why no one had contacted me. And they also weren't able to sign me up for service either!

<comment><USER44> I had a similar experience with using their online forms to sort out moving my phone and internet to a new apartment. When it didn't happen, I called customer service who told me that sometimes things just disappear if you do them through the website. AT&T's website is a complete joke.

</comment></comment><comment><USER45> Reminds me of the problem my parents just had with Dell. My mother broke the USB port on her computer and got a technician to come and fix it. For some reason, the technician replaced the power supply and motherboard (which clearly were not causing the problem). After he did this, the computer would not boot and he decided it must be due to the hard drive having too much data on it. When I was home later that night, I moved that hard drive into another computer and booted it. It worked. Obviously this technician had no idea what in the world he was talking about. He came back the next time, he replaced the motherboard once again and gave us another hard drive. Now we have 2 hard drives in that computer (we have to send one back. We may clone the old hard drive onto the new one since the new one obviously has a longer life left). The USB port issue has still not been solved. TECHNICIANS SUCK (for the most part)

</comment><comment><USER46> Here's something strange that happened to me recently:

I call to one of the frontline people, explain the problems, tell them that a technician already visited me came and checked that it wasn't a physical problem, etc. Then see says that they are going to send another technician.

Then, 5 minutes later, someone that isn't a FSM calls me and talks to me and realizes that I'm not the average non-geek customer, oh he also uses a mac too. That makes me very hopeful. Then he says he is going to call me from the datacenter so we can run some tests, because there might even be a dirty optical fiber. He also _cancels_ the technician visit because we two agree that the problem isn't in my house! At this point I'm very confident that this guy will solve my problem.

Except he never called, I don't know his name and there is no protocol number (because he just called me directly).

</comment><comment><USER47> I had this issue happen with my AT&T DSL line. I even got to the point where a technician was supposed to come out and look at the line but he never showed up.

I called back, I jumped through all their hoops, and then they eventually connected me to another more advanced department who just looked a few things up, said "ok, here's the problem, hold on gonna put this order through to fix it."

Within 2 minutes my connection was back to 6Mbit. Whatever they did they were able to do it COMPLETELY REMOTELY. I never found out what was going on but I suspect I may have ended up on some sort of black list, maybe because of torrents or some other traffic profiling.

It blew my mind. I suffered that speed for nearly 3 months before getting it fixed.

</comment><comment><USER48> If you have a good local independent computer technician available -- not Geek Squad -- they can usually navigate AT&T for you and get the issue resolved quickly.

We do this on a regular basis and don't have any trouble with AT&T. Yesterday I got to chat with the fellow doing front-line technical support about the 12 feet of snow they had gotten recently while he resolved the couple of system issues that AT&T were having on my client's line.

There are some key phrases that can make things go a lot smoother, and technicians that deal with AT&T (or Comcast, or whoever) on a regular basis know what they are.

<comment><USER49> And the key phrases are?

<comment><USER50> "Shibboleet".

<http://www.xkcd.com/806/>

</comment></comment></comment><comment><USER51> I'm sure we all have horror stories like this. And we all wonder why the phone companies/ISPs don't hire technical people (like us) to do tech support, it would be so much easier!

However can you imagine being a front line tech support person? You'd hate it. People ringing you up the when the cat knocks their cable out. You'll spend all day telling people to turn it off and turn it on again, and that'll work for 50% of people who call you.

Front line tech support treat you like you know nothing about computers because most of their customers know nothing about computers.

</comment><comment><USER52> Other side of the planet, but I've had my plan rate-achanged accidentally and it really did take severla levels of technical support (although the problem was recognized, nobodoy could solve it) to fix it -there turned out ot be only one or two guys in teh country who could actually figure out how to untagle the mess they'd created.

</comment><comment><USER53> I have a hard time believing a network engineer would know so little about front-line support that they would continue on this track for so long. If I was his supervisor, his evaluation would say "perseverates".

</comment><comment><USER54> I had same painful AT&T experience, although i was able to log into the modem and it displayed connection speed in the advanced menu.After frontline hell, second tier support fixed the problem.

</comment><comment><USER55> While these various tech companies have terrible support, I'm glad they are the first line of defense so that I don't have to answer ALL the tech questions from friends, family, and acquaintances.

</comment><comment><USER56> Anyone else wonder why black was chosen for the two characters in the conversation along with one of their dialogue and only one was orange.</comment>


Python Anywhere. Share Python/Bash/SQL console instances. - <AUTHOR> http://www.pythonanywhere.com/

<comment><USER2> Together with Python e-learning courses this could be a real winner. I say this because back when I tutored compsci students, my most effective method was to use shared (GNU) screen sessions. The pair programming and the ability to see how others worked helped students become confident with Python a lot faster.

Unfortunately back then, students tended to use Windows and setting up Cygwin scared a lot of them before they even got around to doing any programming. A tool like Python Anywhere would definitely be a far more attractive approach if I were to do something similar today.

<comment><USER3> Have you considered installing Enthought free edition ? It has in a single package: Python, Numpy, Scipy, IPython, and you can install it on Linux, Windows and Mac.

<comment><USER4> Sorry to contact you this way, you have no email address in profile:

<http://news.ycombinator.com/item?id=3882489> is misleadingly titled.

"Mac OS X 10.8 restricted to App Store, signed apps by default"

Says an App has to be released via the Appstore and signed to be installable under the default settings. This is not true. An app needs to be Signed OR in the Appstore to be installable by default.

Can you please edit your post title to include the word OR or a "/" between the two mechanisms?

<comment><USER3> Unfortunately I can't edit the title anymore (really sorry about that), HN let's you modify a post for a limited amount of time, after which the title (and the possibility to delete a post) is frozen.

As a side note, the title is the non edited title of the linked article, I didn't wrote this article ...

</comment></comment></comment></comment><comment><USER5> What is with these people trying to have startups everywhere with IDEs on the web?!

I'll have everything local, thank you.

<comment><USER6> Here's one answer: <https://news.ycombinator.com/item?id=3877475>

<comment><USER6> OK that link totally didn't do what I thought it would. Anyways, what I meant to say was: see Tycho's post below - sometimes you're at a PC which doesn't have Python installed.

So it doesn't have to be a replacement for your desktop, although it can be. It can also just be a complement - if you use dropbox or github, then you can know that, no matter where you are, you can always get to your code and work on it... internet cafe in Thailand, friend's PC, locked-down-corporate- desktop...

<comment><USER5> These IDE on the cloud bring no value to me besides not having my tools around, or not having access to them due to possible network failures.

Not to mention the possible issues with data security.

</comment></comment></comment></comment><comment><USER7> Any chance for adding Jython?

Edit: Apparently there are some bugs with the Dropbox snyc. When trying to open a .txt file (in the same shared Dropbox dir) I always get an IOError...

output=open("proj4-suc.txt","r") IOError: [Errno 2] No such file or directory: 'proj4-suc.txt' (but it is shown in the file explorer too..)

<comment><USER8> Hey, if you drop us a note via "send feedback" or make a post in our forums we can help...

<comment><USER7> Just did that via "send feedback".

Many thanks, apart from that i didnt find any bugs so far and everything works as on my local machine via the Dropbox integration!

</comment></comment></comment><comment><USER9> That is pretty cool. It reminds me on Cloud9 IDE <http://c9.io/>. But I guess Python Anywhere is a better fit for Python developers. And you guys are beating Cloud9 with the price. I like that :-) I am not a Python developer, but I will send the link to my Python friends. Good luck with that.

</comment><comment><USER10> I would love you guys to uninstall some common libraries like Django and let the users decide what kind of version that would fit. Except from that it is very cool! Would love to hear more about how this is implemented technically.

<comment><USER6> You can install modules locally, using pip install --user, and then I gather that the right combination of virtualenv hacks in your WSGI file will let you choose the django version... Will try and get that documented somewhere.

</comment></comment><comment><USER11> Do they seriously not have SSL support for their own login page?

I really cannot bring myself to put in a password to a non-encrypted web page, let alone trust them to protect my files.

Is there an ETA on this?

<comment><USER6> We're definitely keen to get it in asap. The hang-up was getting secure websockets working - that was showing up a bunch of socket errors server-side, but the latest dev testing seems to show things are looking better, so we hope to get it in real soon. weeks not months...

<comment><USER6> Just to say that HTTPS is now live across the site, and active on all pages...

</comment></comment></comment><comment><USER12> Nice. Now I can use Python at work (where the computers and servers are otherwise locked down).

</comment><comment><USER13> This website crashes my browsers (Omniweb and Safari, any webkit-based browser?)

<comment><USER6> hey, will you drop us a note via "send feedback" and we'll see if we can debug this?

</comment></comment><comment><USER14> Hopefully a DB backend other then MySQL will be added in the near future.

<comment><USER8> Lots of people have asked for Postgres, so I can +1 that on our tracker for you... Any other DB you'd like?

<comment><USER14> My votes would be for Redis and MongoDB.

I assume SQLite is available via Python?

<comment><USER6> yep

</comment></comment></comment></comment><comment><USER8> thanks for the post, ziziyO!</comment>


Masked thieves storm into Chicago colocation (again!) - <AUTHOR> http://www.theregister.co.uk/2007/11/02/chicaco_datacenter_breaches/

<comment><USER2> This is a big problem at a lot of data centers. It's _very_ rarely made public. It's bad for business, ya know. I personally know of one incident (at a major data center) where some bad guys stole a bunch of super valuable gear by lowering it out of a window down to street level.

<comment><AUTHOR> Do you think thieves are more commonly stealing valuable equipment or specific valuable information?

<comment><USER2> I'd bet money all but a _very_ few are after just the equipment itself.

Step 1) Have your cousin the janitor let you in the back door.

Step 2) Take an expensive looking gadget from the loading dock.

Step 3) eBay it for $10k.

</comment></comment></comment><comment><USER3> sounds a bit like a shadowrun...</comment>


Things to do before your project dies - <AUTHOR> https://yoric.github.io/post/how-to-survive/ <comment><USER2> What we've tested with our platform ([https://www.aidlab.com/developer](https://www.aidlab.com/developer)) was to reach out as many as possible local geeks/hackers and ask them to play with our device. We stopped coding, manufacturing, prototyping etc for like 2 months, just to show our poor designed, glitchy prototype (it was far far away from the MVP).

So we have presented them what's going on inside in-depth, what are the possibilities, and what are we currently struggling with. They were really eager to help - some of them actually bought the product so we had both: market validation and great feedback.

</comment><comment><USER3> I'm a reformed test hater. Now I love tests! I've found that tests are a great way to feel confident in what I'm publishing.

</comment><comment><USER4> Sorry to hear about your project. I met someone just recently who works for an Israeli company called OrCam - they have a pretty swish glasses-mounted camera solution for assisting vision impaired users</comment>


Functional Geometry - <AUTHOR> http://shashi.github.io/ijulia-notebooks/funcgeo/

<comment><USER2> I am watching SICP lectures, and one of them describes implementing something very similar in lisp.

[http://youtu.be/2QgZVYI3tDs](http://youtu.be/2QgZVYI3tDs)

<comment><USER3> The SICP picture language is based on the same paper by Peter Henderson. [http://mitpress.mit.edu/sicp/full-text/book/book- Z-H-15.html...](http://mitpress.mit.edu/sicp/full-text/book/book- Z-H-15.html#footnote_Temp_202)

</comment></comment><comment><AUTHOR> nbviewer seems to be down.

you can access it here: [http://shashi.github.io/ijulia- notebooks/funcgeo/](http://shashi.github.io/ijulia-notebooks/funcgeo/)

If anyone is trying to run the code, you are gonna need my fixes to compose [https://github.com/shashi/Compose.jl/tree/rotation_fix](https://github.com/shashi/Compose.jl/tree/rotation_fix) Will get it merged upstream and tag a new version soon.

<comment><USER4> Ok, we changed the URL to that from [http://nbviewer.ipython.org/github/shashi/ijulia- notebooks/b...](http://nbviewer.ipython.org/github/shashi/ijulia- notebooks/blob/master/funcgeo/Functional%20Geometry.ipynb).

</comment></comment><comment><USER5> In a similar vein, on of my professors is describing stringed instruments in scheme (based on the picture language) [http://www.cs.brandeis.edu/~mairson/Papers/ICFP062-mairson.p...](http://www.cs.brandeis.edu/~mairson/Papers/ICFP062-mairson.pdf)

<comment><AUTHOR> Very cool!

</comment></comment><comment><USER6> Service unavailable. Cache works fine:

[http://webcache.googleusercontent.com/search?q=cache%3Anbvie...](http://webcache.googleusercontent.com/search?q=cache%3Anbviewer.ipython.org%2Fgithub%2Fshashi%2Fijulia- notebooks%2Fblob%2Fmaster%2Ffuncgeo%2FFunctional%2520Geometry.ipynb&rlz=1C1GIWA_enDE600DE600&oq=cache%3Anbviewer.ipython.org%2Fgithub%2Fshashi%2Fijulia- notebooks%2Fblob%2Fmaster%2Ffuncgeo%2FFunctional%2520Geometry.ipynb&aqs=chrome..69i57j69i58.2431j0j4&sourceid=chrome&es_sm=93&ie=UTF-8)

<comment><USER7> Also, the ipynb-file is available from github:

[https://github.com/shashi/ijulia- notebooks/blob/master/funcg...](https://github.com/shashi/ijulia- notebooks/blob/master/funcgeo/Functional%20Geometry.ipynb)

[https://github.com/shashi/ijulia- notebooks/blob/master/funcg...](https://github.com/shashi/ijulia- notebooks/blob/master/funcgeo/Functional%20Geometry.ipynb)</comment></comment>


IE6 Funeral in Denver - leave a remembrance - <AUTHOR> http://ie6funeral.com/

<comment><USER2> Quick. Shot it with a silver bullet. In the head. Ram a wooden stake through its heart. Just in case, fill its mouth with salt and sew its lips shut.

Make sure the coffin is made of lead. Pour no less than 6 feet of concrete around it. Mark it clearly so as nobody ever tries to open it.

<comment><USER3> hehehe

</comment></comment><comment><USER4> It'd be nice to hear a eulogy from an actual IE6 developer.

</comment><comment><USER5> Is IE8 backwards compatible with IE6? Doesn't that hold the browser back? If someone isn't writing for IE6, does than mean IE8 won't be fully utilized?

<comment><AUTHOR> IE7 and IE8 have an IE6 compatibility mode, which is normally not used unless the page is really broken. What's funny/sad is that "IE6 mode" is not 100% the same as IE6's rendering, so for a while web developers were afraid that they would have to support IE6, IE7, and "IE6 mode", but there was such an outcry that MS changed the defaults and it's almost never an issue in real life.

</comment></comment><comment><USER6> I look forward to the day that stop keeping IE6 alive by talking about it. First rule of fight club...

<comment><USER7> Never going to happen. IE6 is infamous. I plan on telling my grandkids about it : ).

<comment><USER8> "You kids have it so easy these days with your fancy browsers. In my day, we had to wait 15 seconds for IE6 to start up from a cold boot, and when it finally got started, it could barely handle CSS selectors unless you stayed up all night coding around it, and it lasted 10 minutes before crashing! And we were _grateful_ for those 10 minutes! But you couldn't wouldn't appreciate it, with your fancy SVG graphics and canvas elements. Canvas! Pfah! We never dreamed of canvas! Let me tell you about something called Flash...."

</comment></comment></comment><comment><USER9> I will spit on its grave.

</comment><comment><USER10> Time spend for talking(bitching) about IE6 dead > Time spend for IE6 fixing

<comment><USER11> I've spent about 2 hours total bitching about IE6. I've spent entire nights trying to make things work in IE6.

IE6 typically takes 10 minutes - 6 hours to get things working in. Even just the act of having to make sure that things work in itself takes time.

@time_spent_bitching += 1.minute</comment></comment>


Ask HN: Costs & Pricing? - <AUTHOR>

Hi,
We are working on a product targeting businesses. This involves supplying hardware (that we source from elsewhere) and software to go along with it. About 50% of the cost is going towards the hardware.
Now, we are trying to essentially figure out two things:
1) How much it would cost us?: Currently we have taken into account Hardware & software costs (basically how much it would take to sustain us for the period of customizing the product), shipping, supplementary hardware to be kept in the inventory and misc expenses like costs during the pitching period etc.
2) How do we price the product: We are working in a market where our customers might be reluctant to come onboard initially. So we figure the pricing model should be aggressive. That said, we are low on capital and hence we need to make some money from the initial customers also to sustain ourselves.
Are we ignoring anything major in deciding the costs? How do we build an effective model for pricing? Any links or articles on the subject would be of great help.
Thanks in advance. <comment><USER2> Regarding #2, my standard recommendation is Don't Just Roll The Dice, a free e-book that covers the territory nicely. You can find it here: <http://www.neildavidson.com/dontjustrollthedice.html> Don't underprice yourself too quickly. Price has a signal effect, and is viewed as a proxy for quality. You should definitely aim to make money even on your early customers.

Regarding #1, there's no magic-- just total up the expected expenses, and leave some breathing room.

Note: the only relationship between #1 and #2 is that you want to make sure your price exceeds your cost. Otherwise, the price should be independent of your costs-- the key factor is the perceived value you provide the customer.

<comment><AUTHOR> Thank you very much! You've been a great help.</comment></comment>


Ask HN: Is it wrong to submit your own blog articles to HN - <AUTHOR>

This question was inspired by a comment I got on a submission. I was asked not to submit my own blog articles to HN but let someone else do this should they find them interesting.
My argument is that: 1. My blog is less then 2 months old so not many people are reading it, changes are not one of those people will post articles here 2. I do this openly (my handle and blog name are the same, I never made this a secret) but I suspect some others just have a login to HN that does not reflect to their blog and as such post articles 'anonymously'
So what do you think, are blog writers allowed to post their own articles (at least the ones they think are relevant to HN) or should I stop doing so? <comment><USER2> If you really think it's up to snuff, sure, there's no rule against it and lots of precedent. But if you're just trolling for views, no. "This blog is young" is not a sufficient reason to submit something.

<comment><USER3> As a general rule, content that gets lots of upvotes is welcome, stuff that falls of the "new" page with 1 point is a waste of the precious few minutes actually spent on the "new" page.

Of course, good articles do sometimes fall off the "new" page with 1 point; but I'd take a look at the the average points received by your submissions, and try to be more selective.

Sorry.

</comment></comment><comment><USER4> Only if they're boring and badly written. Or if you're spammy about it.

When in doubt, hop on IRC and see if someone else thinks it's worth submitting.

<comment><USER5> The unofficial HN IRC is #startups on {webchat,irc,chat}.freenode.net

</comment></comment><comment><USER6> I'd say go for it, within reason. Maybe not every single post, but it's OK to get started. Considering the good quality found on ihackforfun.eu, I doubt it will take you long to build a considerable audience.

Out of curiosity, why did you go for the TLD eu, having the possibility of picking com, net or org?

<comment><AUTHOR> the choice for EU was a simple one, since I live in Belgium I wanted either a .be or something more international. I choose .eu since I'm in Europe and not .com since it is not my commercial activity (I have other domains for that), .org on the other hand seems more for organisations and my blog is a one man operation :-) As an additional factor I have to admit to work for the .eu registry so of course I want to promote the .tld a bit but that was more a happy side effect, my business domain for example is a .be since I target small companies within my region.

<comment><USER6> You work for the _registry_ that oversees your domain!? Talk about domain security!

<comment><AUTHOR> I work in the quality assurance and testing department so I do not have access to production systems but I must admit it is a lot of fun using my own domain in testing. It is actually the registrar/hosting companies that have more power, the registry only acts on a domain is there is a clear case of malware hosting etc. or in case of a legal dispute. A domain holder cannot interact with the registry except by going through a registrar so we as a registry hardly ever interact with domain holders. So if I ever have a problem with my registrar I'm still pretty much on my own but at least I have a grasp on the code of conduct they have to follow :-)</comment></comment></comment></comment>


Next Hacker News DC Meetup TOMORROW, June 28th - <AUTHOR> http://meetup.hackernewsdc.org/events/21756741/

<comment><USER2> I like the "Book Trading" idea. I would have brought my copy of "Founder Stories" by Jessica. Being in Richmond, I wish I could come down to DC.

By the way, if you live in and around Richmond, reply back to this so that we can put something similar together in Richmond.

<comment><USER3> I go to college in Richmond, but live in Fairfax during the summer so I'm pretty excited to go to one of these after almost a year of "Oh, I should drive up but I have class the next day".

<comment><USER4> I'm in the fairfax area as well. We should def have something for NOVA seeing how traffic sucks going into DC</comment></comment></comment>


Evolution Is the New Deep Learning - <AUTHOR> https://www.sentient.ai/blog/evolution-is-the-new-deep-learning/ <comment><USER3> Having studied this extensively back when they were called Genetic Algorithms, I would like to offer a few insights.

1) One of the biggest reasons they fell out of favor for more "mathematical" approaches was that no one could really explain why exactly they worked. It makes sense on the surface that "survival of the fittest" and doing something akin to multiple stochastic gradient descents would work, but no one has really been able to produce a mathematical proof as to why.

Since other folks are producing good examples of "explainable AI", I don't know how Genetic Algorithms/programming could be made 'explainable' as to why they achieved an optimal solution other than hand-waving to how evolution works in nature.

2) The most important thing to define is the fitness function, this defines what the search space looks like and how easily a globally optimal solution can be derived. For a good example of an interesting search space that a genetic program would have a difficult time with, see Schwefel functions [0]. Back when I researched these things closely, my intuition was that reality rarely fits neatly into good fitness functions and I felt that at the point you are understanding the problem, you may just be better off with a direct approach, which leads to

3) Genetic programming should only really be considered when there are no known alternatives or they are way too computationally expensive.

In either case, I would welcome a resurgence in a topic I once knew quite well, though I haven't been in that field for a few years now.

[0] [https://jamesmccaffrey.files.wordpress.com/2011/12/schwefels...](https://jamesmccaffrey.files.wordpress.com/2011/12/schwefelsfunction.jpg)

<comment><USER4> _1) One of the biggest reasons they fell out of favor for more "mathematical" approaches was that no one could really explain why exactly they worked._

Kind of like how nobody can really explain how the brain works, or life in general. My gut feeling is that it is hubris to think that we are going to "figure out" intelligence with increasingly sophisticated mathematical models anytime soon. We are not giving proper credit to how complex it is, and the multi-billion year developmental process that it took. We think we can just short-circuit that with some fancy math because we've had success with planetary orbits and other comparatively rudimentary phenomena.

The current industry approaches are great for extracting certain kinds of value out of large data sets, but in terms of producing a result that could even begin to be considered as interesting as life (i.e. AGI or "strong AI"), I believe we will have to rely on creating a system whose inner workings are too complex for us to understand.

In other words, going off of Arthur C Clarke's definition, life is magic. And we're trying to create something equally magical. Almost by definition, if we can analytically understand it, it's not going to be interesting enough.

<comment><USER5> > We are not giving proper credit to how complex it is, and the multi-billion > year developmental process that it took.

Or we are simply not ready to accept that it's simply a big book of heuristics fine-tuned over biological eons.

It's just big. We have too many interwoven, interdependent, synergistic faculties. Input, output, and a lot of mental stuff for making the right connections between the ins and the outs. Theory of mind, basic reasoning, the whole limbic system (emotions, basic behavior, dopaminergic motivaton), the executive functions in the prefrontal cortex, all are very specialized things, and we have a laundry list of those, all fine-tuned for each other.

And there's no big magic. Nothing to "understand", no closed formula for consciousness. It's simply a faculty that makes the "all's good, you're conscious" light go green, and it's easy to do that after all the other stuff are working well that does the heavy lifting to make sense of reality.

<comment><USER4> Your last paragraph seems to contain the kind of overconfidence that I'm talking about. I don't understand how you can say "consciousness is simply X" or "it's easy to do that [if you handwave away the hard parts]." Clearly it's not that simple or easy, or we would have done it.

We can't even create life from non-life. How can we begin to understand all the stuff you're talking about that's been layered on top? We don't understand this stuff well enough to just handwave it away as unimportant or trivial.

<comment><USER5> I'm assuming a simpler model, no need for magic, because so far I don't see what behavior/data this simple model cannot explain.

> Clearly it's not that simple or easy, or we would have done it.

We don't have the computational power yet. Not to mention the vast amount of development required. Think of the climate models, that are huge (millions of lines of code), but they're still nowhere near complete enough, and they only have to model sunlight (Earth's rotation, orbital position, albedo), clouds, flows (winds and currents), some topography (big mountains, big flats), ice (melting, freezing), some chemistry (CO2, salts). And they only have to match a simple graph, not the behavior of a human mind (eg Turing test).

So, it's not easy, even if simple.

> We can't even create life from non-life.

We understand life. Cells, RNA, DNA, proteins, mitochondria, actins, etc. It's big, it's a lot of moving parts, and we understand it, but we can't just pop a big chunk of matter into an atomic assembler and make a cell.

And I think intelligence/sentience is similar. It's big, not magic.

<comment><USER6> > We don't have the computational power yet

Certainly you do realise that this has been a moving goalpost for half a century? It seems that lately people started to avoid giving a concrete estimate of the power required, though. It was so easy in the 90-s! «Human visual/verbal system processes gygabytes per second/has n flops to the xth» or the like. Well, now we have that and more; how come a deeper modeling, a finer processing, a more complicated network has come to be needed?

And your examples are incorrect, for example Navier-Stokes equations plus some general physics knowledge always have allowed us to estimate how much data we need for a certain fidelity of a finite-term weather forecast. Certainly we need more for a complete climate model, but we know what we need. No such thing about the brain.

It's an easy way to score some rationality points by voicing rejection of "magic", but it's a strawman. Nobody will bother arguing for a mythical homunculus in the seat of the soul, nor even for a concise formula summing up the workings of the mind. Pick harder targets. "It's just big" or "it's just a bunch of heuristics cobbled together" is a non-explanation. The brain is not a Rube Goldberg machine that manages to produce any sort of work simply due to its excessive complexity – it is energetically economical, taking into account that neurons are living cells that need to sustain their metabolism and not merely "compute" when provided with energy. Its discrete elements aren't really small by today's standards, nor are they fast. The number of synapses is ridiculous, but since they aren't independent, at a glance it doesn't add that much complexity too (unless we abandon reason and emulate everything close to the physical level).

Yet we have failed to realistically emulate a worm. By all accounts we have enough power for 302 neurons already. There's no workload to give to overwhelm available supercomputers. It's knowledge and understanding that we lack, and it's high time to give up on the delusion that more power, naturally coming in the future, will somehow enable a creation of predictive brain model, for this would truly be magic.

<comment><USER5> I know that people constantly underestimated the required computing power, as more and more finer details of the brain and cognition are unraveling. That doesn't make my argument invalid. I don't think we need to do a full brain emulation. That's the worst case scenario.

We're getting pretty good at computer vision, what's lacking is the backend for reasoning, for generating the distributions for object segmentation and scene interpretation. Basically the supervisor. (As unsupervised learning is of course just means that the supervision and goal/utility functions are external/exogenous to the ML system, such as natural selection in case of evolution.)

My example illustrates that yes, we can give an upper bound on molecule by molecule climate modeling, but that's just a large exponential number, not interesting, what we're interested in is useful approximations, which are polynomial, but they being models, they need a lot of special treatment for the edge cases. (Literally the edges of homogeneous structures, like ice- water-air, water-air, water-land, air-land [mountains, big flats, etc] interfaces. And the second order induced effects, like currents, and so on.) That means precise measurements of these effects, and modelling them. (Which would be needed anyway, even if we were to do a back to the basics N-S hydrodynamics model, as there are a lot of parameters to fine-tune.)

For the brain we know the number of neurons, the firing activity, the bandwidth of signals, etc. We can estimate the upper limit in information terms, no biggie, but that doesn't get us [much] closer for the requirements of a realistic implementation.

> Yet we have failed to realistically emulate a worm.

[http://openworm.org/getting_started.html#goal](http://openworm.org/getting_started.html#goal) seems to be matter of time, not lack of understanding. ( [https://github.com/openworm/OpenWorm#quickstart](https://github.com/openworm/OpenWorm#quickstart) ) But maybe I'm not up to date on the issues.

> it's high time to give up on the delusion that more power, naturally coming > in the future, will somehow enable a creation of predictive brain model, for > this would truly be magic.

a) people are saying exactly this for years, that we have enough data already, we need better theories/models

b) they fail to accept that more computing power and data _is_ the way to test and generate theories.

> The brain is not a Rube Goldberg machine that manages to produce any sort of > work simply due to its excessive complexity

A Rube Goldberg machine is simple, just has a lot of simple failure modes. (A trigger fails to trigger the next part, either because the part itself fails, or the interface between parts failed.)

> Its discrete elements aren't really small by today's standards,

If you mean cells, or cortices, agreed.

If you mean functional cognitive constituents, I also agree, but a bit disagree, as they are small parts of a big mind, all interwoven, influencing, inhibiting, motivating, restricting, reinforcing, calibrating, guiding, enhancing each other to certain degrees.

So in that sense consciousness is a big matrix which gives the coefficients for the coupling "constants" between parts. A magical formula if you will. But not more magical, than the SM of physics.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> As expected, the article seems to be a typical content marketing piece. If you're looking for real insights into evolutionary algorithms, specifically "neuroevolution", I highly recommend to read this article: [https://www.oreilly.com/ideas/neuroevolution-a-different- kin...](https://www.oreilly.com/ideas/neuroevolution-a-different-kind-of-deep- learning)

I enjoyed it much more than - what feels like - a quickly thrown together marketing piece with no real value for the reader.

<comment><USER8> Thank you, saved it for later. Do you have any other links to offer?

<comment><USER9> A few links you can look at if you're interested in neuroevolution, from the same group of researchers:

Ken Stanley and Risto Miikkulainen original NEAT (NeuroEvolution of Augmenting Topologies) paper: [http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf](http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf)

Ken Stanley's novelty search page, and a link to his book, "Why Greatness Cannot Be Planned: The Myth of the Objective": [http://eplex.cs.ucf.edu/noveltysearch/userspage/](http://eplex.cs.ucf.edu/noveltysearch/userspage/)

Risto Miikkulainen's Evolving Deep Neural Networks paper: [https://arxiv.org/abs/1703.00548](https://arxiv.org/abs/1703.00548)

Ken Stanley & team's work at Uber, with links to some recent papers: [https://eng.uber.com/deep-neuroevolution/](https://eng.uber.com/deep- neuroevolution/)

<comment><USER10> Are these evolutionary techniques considered more or less sample-efficient (and or cpu-efficient) compared to DL with GD ??

</comment></comment></comment></comment><comment><USER11> "Like Deep Learning (DL), EC was introduced decades ago, and it is currently experiencing a similar boost from the available big compute and big data. However, it addresses a distinctly different need: Whereas DL focuses on modeling what we already know, EC focuses on creating new knowledge."

What utter nonsense. Genetic Algorithms do exactly the same thing that Deep Learning methods do: optimize a function for a particular criterion. Genetic Algorithms are useful when taking gradients is not viable, as with RL methods - and RL methods can use Deep Learning! Seriously misleading.

Also, this: "Remarkably, although several human-designed LSTM variations have been proposed, they have not improved performance much—LSTM structure was essentially unchanged for 25 years. Our neuroevolution experiments showed that it can, as a matter of fact, be improved significantly by adding more complexity, i.e. memory cells and more nonlinear, parallel pathways." \- this is not at all a new idea? How can you even pretend what you're doing is novel.

<comment><USER12> Genetic algorithms yes but genetic programming is actually able to invent new things. Possibly optimizing the set of weight of a neural network to solve a given problem is more similar to genetic programming, if you see the NN as a computational unit.

<comment><USER11> Genetic algorithms 'invent new things' by doing exactly the same thing as other optimization methods - tweaking the values of particular parameters. The only difference in is how they do so.

<comment><USER12> Optimizing genes leading to an intelligent neural network is what biology did basically. If your optimization problem changes the behavior of something able to compute in order to maximize the ability to solve a task, then that's inventing things IMHO.

<comment><USER13> Respectfully,

We've had "learning-to-learn" algorithms for a few years now. Including LSTMs that can be learn the gradients for other LSTMs, and deep-RL algorithms that can optimize neural networks.

Its hard to say its inventing new things... there is still a clear goal - <USER2> loss - and we are optimizing it; poorly in the case of genetic algorithms.

I would say genetic methods are simply poorly described reinforcement learning problems, which means that there is a 1-to-1 mapping between Deep Learning and Genetic Algorithms.

PS. Making a distinction between "Genetic Algorithms" and "Genetic Programming" is like calling Deep Learning "Differential Programming" \-- changing the name of a thing does not change the thing itself.

<comment><USER12> I don't want to mean that this is "novel" at all, I played a lot with genetic programming like 20 years ago. However in my opinion genetic algorithms and genetic programming are _not_ the same thing, while closely related: genetic programming is using genetic algorithms as a search strategy to find a way to write a program in order to solve a problem. It is more closely related to reinforcement learning in theory, you just have a problem, a fitness function, and you provide no hints about how to solve it. Note how this is fundamentally different than having already an algorithm in lack of good _parameters_ , which is what GA does. When such parameters are computer instructions, things start to be semantically interesting. However there is a big difference between reinforcement learning and genetic programming: the second will output a program that can be simplified and understood. NNs are much more opaque so even when they outperform known techniques, what they do is not clear. A more practical example: 20 years ago I wrote a GP framework based on a simple stack language (so that programs are always valid, it's an alternative to use S-expressions). Then I used it in order to generate a new hashing function to minimize the collision I had in my hash table. The output of the GP was a code snippet that I could understand, translate into a specification, re-write in C. It effectively invented a good hashing function. You can see _everything_ as an optimization problem, but at the end of the day if the output of a GP is similar to the output of a mathematician that you hired to write a better hash function, well, this is kinda questionable if it was just optimizing or if while doing it the program invented something.

Also note that in the 90s things produced by genetic programming went patented, because they were novel algorithms.

<comment><USER13> Right, but what would be the difference if this program was produced by Deep RL algorithm, where the state is the current program (an encoding of the program) and the actions are valid instructions in your stack language?

An episode in this case is an iterative call to the Deep RL system until it outputs <STOP> at which step you give it a reward (negative number of collisions say), and before that you can send the actions to your stack machine.

Once you're satisfied with the final number, just concatenate all the produced actions to get your final program.

I just don't see a fundamental difference, especially once you start doing things like Asynchronous Actor-Critic et al. And then you can start doing Monte Carlo Tree Search on top of that since you have a simulator available...

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Interesting to see that we're a long way from this technique actually generating anything valuable.

E.g. if you try the LSTM Music Maker they link to ([https://www.sentient.ai/sentient-labs/ea/lstm- music/](https://www.sentient.ai/sentient-labs/ea/lstm-music/)) and enter a melody, the resulting 'improvisation' will neither have any of the hallmarks of your initial input nor obey any of the conventions of any genre of music I recognise. It'll just spew out a random-seeming spray of notes. Compared to, say, JukeDeck ([https://www.jukedeck.com/make/track- generator/essential](https://www.jukedeck.com/make/track- generator/essential)), which uses bog-standard AI, it's got a long way to go.

<comment><USER15> Evolutionary approaches won't necessarily produce better music. This is a well-researched area.

The challenge with all GA work is finding the right fitness function. If you don't understand your domain well enough to define a good fitness function you're going to be wasting your time, and no amount of algorithmic and/or AI magic is going to help you.

<comment><USER16> I think the point here is that we don't need to define a fitness function for "good music", but a fitness function for e.g. "reconstruction error" for auto- encoders. While the latter is still challenging, it seems slightly easier, although I'm not sure that it's significantly easier than general manifold learning...

</comment></comment></comment><comment><USER17> If only wishing made it so...

Evolutionary approaches have always had one big feature in their favour: they are far more fun to work with.

They produce all these fascinating oddities, like the one that learnt to outsmart it's opponents at infinite tic-tac-toe by playing coordinates 10 __2312 and 4 __7875 and watching them run out of memory trying to build a data structure for the board.

They are also far easier to combine with human expertise, i. e. "I can do this! Let's throw some of my ideas into the gene pool".

But empirically it's hard to deny that neural nets have been used for some incredible things over the last years. I think it's the rare hype that is deserved.

<comment><USER18> As others mentioned the hard part is modeling your problem, how to encode the "individuals", defining a good fitness function etc. I think he neural networks are more poplar now because are easy to use, you throw data at it and you get some results(though IMO I am scared that we are using things that we do not understand exactly how they work)

</comment></comment><comment><USER19> These "evolved neurons" look ridiculously more complicated and expensive to evaluate than a base neuron for a minor improvement in performance. The Music Maker paper mentioned that LSTMs haven't changed in "25 years", but didn't mention the 2014 Gated Recurrent Units that have become so popular specifically because they are much more simple to understand and evaluate. This approach seems to be going in the opposite direction.

I guess the idea of them being evolved is that you don't _need_ to understand them, but evaluation performance is definitely a concern and doesn't seem to be addressed much. Interesting early work though!

<comment><USER20> Likely solution bloat, another of the EC/GP oddities that arise. During reproduction you randomly disrupt solutions, so to protect good solutions from being disrupted, the solutions increasingly add irrelevant stuff. This drops the probability that the good part gets messed up, but leads to loss of population diversity, as there are an infinite num er of useless things you can add /d o

</comment></comment><comment><USER21> I think this is true, broadly. Biological evolution has a large advantage in that it introduces a large amount of exogenous variation into the system (it just randomly changes DNA via a number of ways, and selects the "best" changes). This can be good as it allows you to do a lot more exploration than with a comparable gradient based approach, as the gradient based approach can't explore entirely new parameters; it can only look at parameters that have already been shown to be good. This is why, for instance, dead neurons are a problem with ReLUs. I don't think (but have not proof) that this would be a problem with evolution.

I think that evolutionary approaches are a lot better at the exploration phase, but weak at exploitation; gradient methods tend to be the opposite.

I think some sort of combination of the two, like Max Jaderberg's "Population based training of neural networks" [1], is the way to go.

[1]: [https://deepmind.com/blog/population-based-training- neural-n...](https://deepmind.com/blog/population-based-training-neural- networks/)

</comment><comment><USER22> I wrote my MSc thesis on Genetic Algorithms in 1998 and I've been waiting for the time when they become popular. There is a lot of discussion going on about the need for "explainable models" and I'm quite surprised that it's not considered trivial that e.g. Genetic Programming builds computer programs that are actually models. Explainability is of course harder but how much closer can you get to building models automatically?

</comment><comment><USER23> The problem is in the genotype-phenotype map and getting that right. We should be looking at developmental evolutionary neural networks. That is, evolutionary algorithms evolving the genetic architecture (genotype) that generates (development) neural networks (phenotype).

</comment><comment><USER24> This is funny. I did my master thesis back in 2003 using "genetic" algorithms. Maybe I should try to get funding for an AI startup

<comment><USER25> I did a 1st year Uni project using GA to evolve neural network topology in 1996 ... maybe I should dig that out and get me some VC $.

<comment><USER26> That stuff is hot right now.

</comment></comment></comment><comment><USER27> Everything old is new again

<comment><USER28> I guess we should get ready for another AI/neural network winter. Kernel methods will be popular again!

<comment><USER27> Only if you can fit the buzzwords neuro or deep into empirical/statistical methods ;)

</comment></comment></comment><comment><USER29> This article explains very little about the actual technique. Digging into the paper, it seems like this has to do more with training a network with multiple data sources at the same time, to take advantage of related patterns across data sets.

I'm not professionally versed in NNs myself, but what would be the closest equivalent to recreating this sort of training with tools available today? (in Keras or R for instance)

</comment><comment><USER30> I just tried their music maker ([https://www.sentient.ai/sentient- labs/ea/lstm-music/](https://www.sentient.ai/sentient-labs/ea/lstm-music/)).

Was this ONLY trained by Bach Chorales? Everything sounds so fugue.

</comment><comment><USER31> Schmitt, Lothar M (2001), Theory of Genetic Algorithms, Theoretical Computer Science 259: 1–61

Schmitt, Lothar M (2004), Theory of Genetic Algorithms II: models for genetic operators over the string-tensor representation of populations and convergence to global optima for arbitrary fitness function under scaling, Theoretical Computer Science 310: 181–231

</comment><comment><USER32> A philosophical tangent: Evolution did not always produce the best outcomes. Would neuroevolution be vulnerable to similar effects? Probably a good research area. [https://www.wired.com/2009/07/st- best-5/](https://www.wired.com/2009/07/st-best-5/)

<comment><USER33> What's the definition of best

<comment><USER34> 350,000 species of beetles.

<comment><USER15> In music, evolution produced Bach, so it can't really be considered a failure.

It took a while though, and it's possible alternative approaches would have been produced a similar result more efficiently.

<comment><USER34> It also produced Justin Bieber and Weird Al. Point being, if the goal of your evolutionary algorithm is Bach, how do you filter for that result among the other million possibilities? And what makes Bach the success of music? Maybe more people prefer listening to Taylor Swift.

</comment></comment></comment></comment></comment><comment><USER26> I had success with GP because, as a programmer, I found it straightforward to map the problem domain onto a set of operations. Mapping the problem domain, IMHO, is the hardest part, and in all of my problems, it was hard to map it to differentiable functions. GP doesn't have that problem.

</comment><comment><USER35> Gradient descent is already a type of evolution that converges to a truth

</comment><comment><USER36> Don't want to jump into the fight between DL and Genetic algorithms, but can somebody explain their experience with the music paper, demo, and work? I personally am not impressed...Are you?

<comment><USER36> I believe these type of algorithms work really well for stocks but not music, GANS work better for music. What is your take?

</comment></comment><comment><USER37> "In this Omniglot multitask character recognition task, our research team improved error of character matching from 32% to 10%"

Death to CAPTCHA

</comment><comment><USER38> I submitted 4 bars of a Boston song and what the AI generated was incredible if you're deaf or enjoy bleeding from the ears.

</comment><comment><USER39> it's just not. Evolution learns more sloly than reinforcement learning, which itself learns much more slowly than supervised deep learning. Evolution doesn't have gradiants, and needs a huge amount of samples to learn anything.

<comment><USER40> Actually, evolutionary strategies make use of either empirical or naturalised gradients on the search space.

<comment><USER39> I guess sexual reproduction is kind of like sharing gradients. Is that what you mean?

<comment><USER40> Not quite, genetic algorithms represent the search space usually as bit sequences, so you can just mix subsequences from two parents, that's reproduction.

In contrast, evolution strategies have a search distribution, and compute a gradient update to that distribution from an entire generation. So it's really more 'search gradients' than evolution. The only thing 'evolutionary' about it is that the minibatches are called generations.

</comment></comment></comment></comment><comment><USER41> the music generation demo isn't really impressive to me. the outputs were pretty random.

<comment><USER42> Yeah this demo was not great. But I just found this article about AI-generated music, and it's actually very good: [https://futurism.com/a-new-ai-can-write- music-as-well-as-a-h...](https://futurism.com/a-new-ai-can-write-music-as- well-as-a-human-composer/)

</comment></comment><comment><USER43> If evolutionary algorithms are so magical, why do I only encounter them in academia?

<comment><USER44> They're fairly widely used, but often in places where they are not well publicised - e.g. engineering optimisation or financial trading.

<comment><USER43> My MSc advisor wrote a big book on multi-objective evolutionary optimization.

[http://www.springer.com/gp/book/9780387332543](http://www.springer.com/gp/book/9780387332543)

He liked to have his students compare random search to evolutionary algorithms. There tended to not be a huge difference. I think that's why they are not so widely used when there is any kind of better method around. Probably in most cases you'd want to just understand the domain better.

Hence, I don't believe EAs are the next big thing.

</comment></comment></comment><comment><USER43> The only thing EAs have going for them is a biological metaphor, the magic of Darwinian evolution, fountain of endless novelty. But, modern science shows evolution does not really work in a Darwinian manner, so thus the metaphor ends.

<comment><USER45> Can you provide a source for what modern science you're referring to? What alternative to Darwinian evolution do you have in mind?

<comment><USER43> [https://en.wikipedia.org/wiki/Extended_evolutionary_synthesi...](https://en.wikipedia.org/wiki/Extended_evolutionary_synthesis)

Essentially, variation comes from many other sources than random mutation on DNA. Random mutation itself is seen as mostly a bad source of variation, leading to destruction of the genome.

<comment><USER45> That's a very interesting hypothesis, thank you for the link. However, it doesn't seem to support what you're claiming about mutations, from my cursory reading. Can you provide a source for this claim that random mutation is a bad source of variation?

[http://extendedevolutionarysynthesis.com/about-the- ees/why-i...](http://extendedevolutionarysynthesis.com/about-the-ees/why-is- the-ees-contentious/) explicitly rejects the idea of a revolution regarding mutation and other genetic sources of variation:

> How can the EES seek 'profound change' and yet disavow 'revolution'?

> All recognized causes of both evolution (e.g. natural selection, genetic > drift, mutation, etc) and inheritance (e.g. genes), as well as the vast body > of empirical and theoretical findings generated by the field of evolutionary > biology, are accepted by the EES.

> Hence the EES does not entail a rejection of current understanding within > the field, and does not require revolution. The EES seeks only to supplement > the existing causal framework through recognition of additional causes of > evolution (e.g. developmental bias) and inheritance (e.g. epigenetic > inheritance), entirely complementary to those long-established within the > field. Nevertheless, should these additional processes prove to be > important, the conceptual change to evolutionary biology could very well be > fundamental.

Although not in your source, I did find the following. Known as Drake's rule: as a genome's size increases, the mutation rate also tends to decrease. [https://en.wikipedia.org/wiki/Genome_size#Drake's_rule](https://en.wikipedia.org/wiki/Genome_size#Drake's_rule). A recent update to Drake's rule suggests that mutation rate is also negatively correlated with population size too, not just genome size ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3494944/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3494944/)). And another interesting article about mutation in reproduction: [https://www.nature.com/articles/ncomms15183](https://www.nature.com/articles/ncomms15183) (somatic mutation is two orders of magnitude higher than germline mutation). This is intriguing, though I have to wonder how the genome ever grows if mutation supposedly becomes so strict over time as to become a non-factor (transposons, gene duplication?). It's worth noting that mutations do occur more frequently in non-coding sections of the genome, which may not be accounted for in the studies I've linked to.

Still, regardless of my sources, I would like to see you provide support from specifically EES proponents for the devaluation of mutation as a source of genetic variation, as you implied.

<comment><USER43> There is John Sanford who claims random mutation is destroying our genome.

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

<comment><USER46> Right, but he also believes the Earth is less than 100,000 years old. Do you believe that, too?

<comment><USER43> I don't know :| It seems to be the most plausible explanation if genetic entropy is true. I'd be interested is a good refutation of his thesis, but it makes a lot of sense mathematically.

</comment></comment></comment></comment></comment></comment></comment><comment><USER47> Would the B-school types leave science and engineering to real scientists and engineers, please?

<comment><USER48> Look up the author's name and then see if you can stand behind your comment.</comment></comment>


Ask HN: How to use vouch feature? - <AUTHOR> I have showdead on, and I see a lot of links that are not necessarily spam, and have somehow been marked dead.  Here's an example [1]  This link is not really spam, but not something I'm particular interested in.  So, I'd vouch for it but I'm not going to vote it up.
Should we be using vouch to say "this is not spam"?  Or "I know and trust the submitter"?  Or "this is a good link"?
Does vouching for something decrease some internal karma?  Should I "save my vouches" for something that is really important?
[1] https://news.ycombinator.com/item?id=14471231 <comment><USER2> I think it's ok to vouch that. I also think that vouching too many too stupid post will make the mods remove your vouch ability, but a single bad vouch is probably not enough.

Anyway, write to the mods directly email@example.com to get an official reply.</comment>


Will Twitter Sell or IPO? CEO Dick Costolo Says "Neither" - <AUTHOR> http://www.readwriteweb.com/archives/ces_2011_will_twitter_sell_or_ipo_ceo_dick_costolo.php?sms_ss=hackernews&at_xt=4d28cebc52e892f3%2C0 <comment><USER2> I have a hard time seeing how Twitter can exist on its own right.

Twitter is a technological platform, _par excellence_. Twitter facilitates the exchange and dissemination of 140-character messages, no more, no less.

I fail to see how they can make a proper business out of that, in the long run.

<comment><USER3> While correct, your description seems a bit reductionist to me. Twitter's value doesn't come from its ability to shuttle short messages around the web -- but from it's cultural presence, it's more-open-than-Facebook social graph, and the large amount of people who use it as a simple-enough-for-ma RSS reader.

<comment><USER2> If Twitter aims to be yet another RSS reader, so be it. But I doubt that's what they're going after.

Twitter indeed has a strong presence on the web, but I'm wondering how that presence can be translated into a self-standing business.

</comment></comment></comment><comment><USER4> They should have businesses accounts pay $100/year, honor system with a badge or something if you have paid (your company would look really bad if it didn't), and they could make a ton without having to do much.</comment>


Ask HN: How was your college experience beneficial to you as a person? - <AUTHOR>

Hey HN,
So this is my first post. Been lurking for about a year now. I apologize in advance if this sounds trite, terribly written, and overdone as a topic, but I really need some guidance.
I'm a first year CS student commuting to college and would like to transfer out. The university I'm at offers a fantastic program, I love my professors and I'm generally around some of the smartest people I've ever met. Except I feel as though I'm disconnected from the community because I'm only there when class is in session. I have some friends who were CS majors here, but opted out because the classes became too difficult. The clubs and social life at this university are also abysmal. I'm terrified to transfer because it's the only thing I know as of now.
I want to build something with someone. Whether it be programming related or life long friendships that other colleges always boast about, I just feel like I'm not getting those same opportunities that my facebook friends are getting at other colleges. I know to take those pictures and statuses with a grain of salt, but when I look at myself, I haven't been apart of anything. I just don't want to look back on my college years and say," That was the longest summer camp of my life."
Is this solidarity beneficial to me? Did you feel as though your college experience made you a stronger programmer because you were surrounded with the right people? What is the college experience? How was your college experience beneficial to you as a person? <comment><USER2> I'll go ahead and throw my 2 cents your way since I just graduated last month (and will be back for grad school in the Fall). I think our perceptions on the whole "college experience" is different now but I was a lot like you when I got to school too.

In short, I mainly kept to myself within the CS department. While I had friends there, my relationship with them was majorly school-based. My girlfriend and guys I hung out with on a regular basis were all in different fields but that never bothered me because we still all had a blast. I worked on personal projects and homeworks mostly by myself, but I personally preferred it that way because it was so much more rewarding to me to do it that way than to have someone else walk me through it. So, was this solidarity beneficial to me? I think it was for me but could see how others may want more. One thing I did do was find a few professors I really respected and talked to on a regular basis which I think was more beneficial to me than most peer interactions.

On another note here is something to think about Facebook: You only see what everyone wants you to see about them. Kids in college largely have the same mindset as you...they want to be having the best time of their life, so you can be sure that is how they perceive themselves on social media and crop their content to fit that. I can remember countless parties where a large group of people walk in, pose against the crowd and take pictures, then leave. Maybe they go hang out somewhere else or maybe they go home, but you can be sure the next morning they all have those pictures all over Facebook showing 'what a great time' they had. Personally, after my sophomore year I stopped using Facebook all together and only get on when I have an email notification I need to attend to.

What kind of clubs and social life are you looking for? If you have a strong CS dept, it is likely your professors head their own research groups for their field and would at least let you come to the meetings if not participate in the research yourself if you showed some initiative. If you are really unhappy I'd consider transferring but only after you're sure that what you are looking for isn't available where you are. Sometimes you just have to look a little harder and put yourself out there.</comment>


Greed, Betrayal and Medical Misconduct at North York General - <AUTHOR> https://torontolife.com/city/greed-betrayal-medical-misconduct-north-york-general/ <comment><USER2> There is a good podcast with a similar bit of greed called Dr. Death. Highly recommend if this article interests you.

One common thread is how bad misconduct can be deemed "personal" and hidden from public view with internal hospital panels. In this story it happened at the same hospital - But a Doctor can do a horrible job, even as far as resulting fatalities, be asked to resign, and go join another hospital with no repercussion.

We are quick to blame government healthcare or insurance companies for healthcare issues while leaving this important loophole wide open. When confronted by reporters or investigators, the members of these internal medical boards either remain silent or hide behind the "I've been an admin at a prominent hospital with years of medical experience, I know better than you."

</comment><comment><USER3> "He was taking advantage of peculiarities in OHIP's billing system, which encourage all sorts of chicanery that, while not always illegal, can tempt doctors into bending the rules"

This explains a lot. If you have two issues they really do make you book again. They send you for unneccessary tests and refuse necessary tests. Everything is setup to beat the system. What you really need (medicine wise), getting better, safest choices are not really part of it anymore.

I think Ontario needs to move away from fee based billing. It seemed like a quick way to inflate how many people have a family doctor. Doctors see more people but appointments are 10 minutes of less. Pay doctors an annual salary and force them to work for the government as an employee and impose standards with customer service in mind.

<comment><USER4> In what industries or occupational areas has forcing people to work for a particular entity and imposing standards on them improved quality and/or efficiency?

Many in healthcare see fee for service giving way to value based care but it isn't a simple knot to cut.

[http://www.hl7.org/about/davinci/index.cfm](http://www.hl7.org/about/davinci/index.cfm)

<comment><USER3> Fee for service increases the amount of services performed. On the surface that provides additional value in terms of more services performed so greater coverage with fewer doctors.

That goes against the government who may want to limit the number of services because of budgets. So services not under government watch are over ordered and services under ration are underordered.

On the patient side you are not getting the best medicine you are getting medicine that pays the most fees.

</comment></comment></comment><comment><USER5> Somewhere along the line of acquiring mountains of school debt and being squeezed by insurance and hospital administrators a lot of doctors stop caring about patients and focus on "efficiency".

<comment><USER6> This is in Canada where most health care is covered by the province and medical schools don't cost nearly as much as US medical schools.

<comment><USER7> I wonder if he wanted to make money, it would make sense for him to try to move to US? Not sure though how easy it would be to get a US licence for a Canadian doctor.

</comment></comment></comment><comment><USER7> I wonder if he wanted to make money, it would make sense for him to try to move to the US? Not sure though how easy it would be to get a US license for a Canadian doctor.

</comment><comment><USER8> If you look down the list of deliveries included in the article, you will see that at least one of the other doctors has an unusually low rate of weekend deliveries, but that they peak significantly on Thursday and Friday.

This is likely because many OB-Gyns induce labour for the opposite reason to that which is alleged of Shuen: so their weekend golf game doesn't get screwed up by a delivery.

In truth, there is little difference between inducing labour for financial versus personal reasons. No doctor ever said to a patient, "I have a tee-off time at 9:30 Sunday so we have to get this baby out now."

This means that the issue of consent is identical in both cases. Consent means "informed consent". It doesn't matter if you're trying to get the extra billing for a weekend delivery or if you are trying keep the weekend call schedule quiet; it doesn't matter if you pop a misoprostol in during a vag exam or go through the formal induction process with the hospital. If the patient doesn't know the REAL reason, it's still a crime because of the absence of INFORMED consent.

This has been happening as long as there have been OB-Gyns. Babies come when they want, and doctors have always tried to manipulate that for their own preference.

Shuen's crucifixion is therefore more the result of his motivation than the fact of his behaviour. He was apparently doing for money what almost every OB- Gyn does for reasons that we consider more noble, or at least understandable, but which are actually no different because they prioritize something other than the health of the baby and the mother.

Even if doctors were truly altruistic, reality would still require inductions for the banal reason of hospital staff scheduling or resource availability. We are fools if we think this is any different from what Shuen did.

Any system motivated and rewarded by money will always suffer from these sorts of imperfections, as will any system that is not motivated by money.

It is the height of naivete to think otherwise. Shuen just flew a little closer to the sun than everyone else.

Also, the article neglects the obvious problem with chain of custody. Once you throw an exam glove in the garbage, it's gone. If Shuen ever got his day in an actual court, his lawyer would tear that evidence apart to the point where it would have to be disregarded by a judge or jury. It's not fair to trot it out now in this hatchet piece as if it is the smoking gun.

Keep in mind that the nurses justifiably hated Shuen because he (admittedly) behaved like a complete asshole to them. Nurses are really good at finding clever ways to take you out under those circumstances. You have to interpret that piece of evidence in light of the unbridled hostility of those who collected it.</comment>


Ask HN: PostgreSQL and other server backup services? - <AUTHOR>

Hi all,
I'm looking to back up user-generated data on a server. This includes a PostgreSQL database and a few directories with uploaded files. Both are fairly small for now (<1GB).
I could hack something up with cron, pg_dump and rsync, but would rather prefer paying for a hosted service that knows what they are doing. Surprisingly, all the backup services I've found so far seem to be for home desktops, but this must be a common need for everyone that runs servers?
If I do have to set it up myself, then any suggestions about best practices are of course also welcome. <comment><USER2> [https://github.com/meskyanichi/backup](https://github.com/meskyanichi/backup) might be a good solution. Even if you don't know Ruby, it's amazingly straightforward.

Edit: [http://learnaholic.me/2012/10/10/backing-up-postgresql- with-...](http://learnaholic.me/2012/10/10/backing-up-postgresql-with-backup- and-whatever-gems/) for scheduling, too (if you want to leave cron alone)

<comment><AUTHOR> Thanks, that looks very useful!

</comment></comment><comment><USER3> Do you just want backups or hosted/managed? Heroku have a huge postgres platform with backups, forking!, etc - [https://www.heroku.com/postgres](https://www.heroku.com/postgres)

<comment><AUTHOR> Thanks for the suggestion. However, for now I'd like to avoid building my entire app "the Heroku way", and keep the PostgreSQL server hosted on the same server or at least the same network as the rest of the app. But you are right in that perhaps a fully managed PostgreSQL server is the way to go for reliability.

<comment><USER3> I don't think you're required to move anything, when you create an app and add the database you're given the db credentials and can access it from whatever you want and it scales/bills independently from the hosting platform.

There's also AWS: [http://aws.amazon.com/rds/postgresql/](http://aws.amazon.com/rds/postgresql/)

</comment></comment></comment><comment><USER4> [https://www.jungledisk.com/](https://www.jungledisk.com/)

Their interface isn't the greatest but it works.</comment>


Ask HN: My University's library needs suggestions for books on Agile Development - <AUTHOR>

User research of my University's library has shown that there is a need for books on Agile Development. Do you guys have any suggestions? <comment><USER2> My usual list of book recommendations is as follows:

For general practical guides I'd look at one or both of:

* "Practices of an Agile Developer" [http://amzn.to/9B7hJg](http://amzn.to/9B7hJg), which talks about various practices in a fairly methodology independent way. The reason I really like it is that it has some excellent pointers for checking when adoption is/isn't working.

* "The Art of Agile Development" is another nice book [http://amzn.to/bksP7T](http://amzn.to/bksP7T) in a similar vein. This is more process-prescriptive though (they're talking about a varient of Extreme Programming)

I'd also also take the time to read the seminal books on the two most important (in my opinion) agile methods:

* Agile Software Development with Scrum [http://amzn.to/bOkPZ1](http://amzn.to/bOkPZ1) \- the book that formalized Scrum

* Extreme Programming Explained: Embrace Change - the book that formalized XP. Read both the first [http://amzn.to/cdLAtx](http://amzn.to/cdLAtx) and second [http://amzn.to/bqMhEa](http://amzn.to/bqMhEa) editions if you get a chance. They're interestingly different.

I'd also add the various books on Lean by Mary & Tom Poppendieck [http://amzn.to/9wsASi](http://amzn.to/9wsASi) and also 'Kanban' by David J Anderson to the list [http://amzn.to/en6PQ2](http://amzn.to/en6PQ2) as well.

You might also find these of interest:

* The Scrum Guide - [http://www.scrum.org/Scrum-Guides](http://www.scrum.org/Scrum-Guides)

* The Agile Atlas - [http://agileatlas.org/](http://agileatlas.org/)

* The Agile Alliance's Guide to Agile Practices - [http://guide.agilealliance.org/](http://guide.agilealliance.org/)

lots of useful info there ;-)

<comment><AUTHOR> Thanks for the great list. I will go through it and pass on the suggestions.

</comment></comment><comment><USER3> The most important one is this: [http://agilemanifesto.org/](http://agilemanifesto.org/)

Yes, it is only 3 paragraphs and a title, but if you want it in book form you can print it out and put it between some covers. The important thing is to read those 3 paragraphs carefully and to think about them. Avoid getting caught up on the bandwagon of some management methodology that claims to be Agile, because it probably isn't.

And read Clean Code by Robert Martin, one of the writers of the Agile Manifesto. One of the things encouraged by Agile is TDD, that is to say, a cycle of coding that starts by writing a failing test, then writing code to pass the test and then refactoring code to be better according to principles like DRY and YAGNI.

If you work in this Red-Green-Refactor cycle, then you will have a tough time when faced with a tangle of spaghetti code written in Java or C++. That's when books like Working Effectively with Legacy Code by Michael Feathers come in handy.

In general, steer clear of books about Agile, and focus on books that teach something real, but happen to fit into the Agile Manifesto philosophy. Talk to some developers that you know are truly Agile developers, not practitioners of a methodology, and ask them for book recommendations.

</comment><comment><USER4> i like [http://www.amazon.com/Agile-Software-Development- Cooperative...](http://www.amazon.com/Agile-Software-Development-Cooperative- Edition/dp/0321482751) (cockburn's cooperative game), but i am not sure if it's suitable for a library.

i guess what i mean is, that i think it's a great book for a developer. but it's not very prescriptive, so may not be great for teaching. it's more about trying to get you to think than telling you what to do. imho.

<comment><AUTHOR> Thank you. You might be right, but then again I think that when it comes to a bigger collection of books you could say that this book is just one of many. So having it prescribe is not such a bad thing when you keep in mind that it is just ONE of the ways to do things.

</comment></comment><comment><USER5> Code Complete and Rapid Development should be in any software engineering library.

<comment><AUTHOR> Thanks, I will have a look at it.</comment></comment>