Ask HN: What is your personal website setup? - <AUTHOR>

I'm trying to reduce the friction in managing my personal website.  That's includes everything from hosting services, to ssh & ftp clients, to content management tools.<p>What do you use and recommend?  What are you using that you don't like and would like recommendations on better alternatives? <comment><USER2> It's really depends if my website contains only static or dynamic content.

If my website has only static content, I prefer to have a simple dedicated server on OVH[1] with Amazon CloudFront[2] as CDN. It is very cheap and provide a very service wordwide with the CDN. Amazon CloudFront is better than Amazon S3 for a worldwide scenario since your static files are always close to your users. Note that you must directly reference your Cloudfront instance in your DNS to avoid any SPOF.

When my website has some dynamic content, it is another story. I use Amazon RDS[3] as Database with a Multi-AZ Deployments. For the CPU I use different amazon EC2[4] instances in the region that provide the best latency for my users (in general us-east since I want good performances in North America and Europe). I then use Amazon CloudFront CDN[2] to deliver the static content of my website.

In any case, I use Route 53[5] as DNS.

[1] <http://www.ovh.com/us/dedicated-servers/>

[2] <http://aws.amazon.com/cloudfront/>

[3] <http://aws.amazon.com/rds/>

[4] <http://aws.amazon.com/ec2/>

[5] <http://aws.amazon.com/route53/>

</comment><comment><AUTHOR> * I'm using a static template from theme forrest and Octopress[1] for my blogging software. I love Octopress so far and plan to go full Octo soon to make things simpler.

* I'm hosting with a VPS on Dreamhost[2] at $9.95/month which I find very expensive for such a completely mediocre service. I'm bothered by hosts trying to simplify the hosting process with endless panels and management tools that contort the hosting process into something more confusing instead of making it simpler. I've been using Heroku for projects and would like to use it for my personal site but I'm not sure if that is what Heroku was designed for really.

* I'm operating almost entirely from my OS X laptop now and FTP files to my server through FTPzilla. It works but every time I fire up FTPzilla I can't help but feel like there is an easier and smarter way to do all of this.

* I'm using Namecheap[3] for domains and like it mainly because using GoDaddy in the past has made anything better feel like a god send. A friend started managing a few domains with me on DNSimple[4] recently and I think its a great resource.

[1] - <http://octopress.org/>

[2] - <http://dreamhost.com/>

[3] - <http://www.namecheap.com/>

[4] - <https://dnsimple.com/>

</comment><comment><USER3> * Namecheap[1] for domain name

* Route 53[2] for DNS

* Jekyll[3] for managing content

* S3[4] for hosting

I do all my development on my Macbook Pro, with vim. Then I use s3cmd[5] to push the static files up to S3.

[1] - <http://www.namecheap.com/>

[2] - <http://aws.amazon.com/route53/>

[3] - <https://github.com/mojombo/jekyll>

[4] - <http://aws.amazon.com/s3/>

[5] - <http://s3tools.org/s3cmd>

</comment><comment><USER4> Linode, nginx, uwsgi, django, postgresql. It's for a vanity site that no one reads, and one thing I like is that the whole stack hardly uses any resources when nothing's happening.

I do site admin with key based ssh/scp and nothing else. The key has a passphrase, and my Ubuntu desktop manages the passphrase nicely.

I don't like that I tried to leverage django's out of the box admin module too heavily; I should have written (or reused?) a small app for site management.

I'll be moving to a lightweight python framework, like bottle or flask, for the next incarnation. The framework will manage creation of static content (posts and comments) and everything will be served as static as much as possible.

</comment><comment><USER5> Linode, Nginx, Jekyll, Git deployment using Gitolite.

Workflow to get a static site online:

      git clone pr0d:www/skeleton-jekyll
      cd skeleton-jekyll/jekylldocs
      [... add/edit files here ...]
      git add .
      git commit -m "Initial commit."
      git remote add example pr0d:www/example.com
      git push example master

At this point a hook builds the pages and sets up nginx using a template config (in the same repo), a few seconds later the site is live. Quick, easy, and can be done on any machine with Git and a text editor.

As for domains, I love <http://iwantmyname.com>

</comment><comment><USER6> I use blogofile [1], a Python tool that generates static HTML, running on a Linode which hosts a few other sites.

[1] <http://blogofile.com/>

</comment><comment><USER7> I recently moved all my personal and side project sites over to Linode.com . One box for WordPress/MediaWiki sites, one box for Ruby+CouchDB sites. Even though I'm still in the midst of replacing an SFTP habit with a combo of rsync & wget, I love it. Inexpensive to run and easy to do what I need to keep things running.

</comment><comment><USER8> You may want to try github pages <http://pages.github.com/>.

</comment><comment><USER9> Mine's backed up by webapp2 (App Engine). I use Zerigo for DNS. Will go with Flask for future deployments.

</comment><comment><USER10> I use Tumblr. <http://codebeatsandpixels.com>

<comment><USER11> Hey, I'm from a Sri Lankan family living abroad, was just wondering what the developer community is like over there?

</comment></comment><comment><USER12> ramnode.com 512mb vps super cheap, go http fileserver, static html, github repo.</comment>


Show HN: FOSS Guitar Karaoke (With Lights) - <AUTHOR> http://www.thingamagig.net/ <comment><USER2> This is pretty sweet. Demo video really helps to explain the concept. It's like what I imagined my friends and I doing while playing Rockband...if we were talented enough to play real instruments. Seems like one of those things that you can't imagine a future without. Nice work @fivedogit

</comment><comment><USER3> Favourited, this is really cool. It's what I hoped Rocksmith 2014 could do but can't.

</comment><comment><USER4> That's pretty cool. Great work. What needs to be done to make this so that an average person could use it?</comment>


Tent Space: a non-commercial alternative to couch surfing for motorcyclists - <AUTHOR> https://advrider.com/tent-thread-with-a-little-generosity-you-can-travel-the-world/ <comment><AUTHOR> ADVrider was started by Chris Macaskill who went on to found Smugmug and Cake.com. You might have been him interviewed in the General Magic documentary. A great guy.</comment>


NBC News launches a twice-daily Snapchat news broadcast - <AUTHOR> https://techcrunch.com/2017/07/19/nbc-news-launches-stay-tuned-a-twice-daily-snapchat-news-broadcast/ <comment><USER2> There's only the briefest mention in the OP of NBC Universal being an investor, but it's worth mentioning than NBCU (a part of Comcast) is one of Snapchat's biggest investors, with a $500M stake: [http://www.cnbc.com/2017/03/03/nbc-invests-500-million-in- sn...](http://www.cnbc.com/2017/03/03/nbc-invests-500-million-in-snapchat- ipo.html)

</comment><comment><USER3> This feels like a natural extension of stories, where previously it was a sequence of short videos shot by your friends, now it's a sequence of slightly longer videos shot by a professional news organization. So in the short term I'm sure it will draw in more eyeballs to watch more ads, but long term it seems like it does nothing to bridge the gap between the traditional "social" functions of Snapchat with the news content delivery aspect; they almost feel like two separate apps.

As for the show itself, it's ok. It's a really quick flyover of the daily headlines; reminded me a lot of a radio news headline briefing you might hear on NPR or similar, just with video added. I think it's unfair to hate on it because it's "too short, too high-level, too vapid, etc.". Of course it's not hard-hitting original in-depth journalism but it's a convenient way to get the headlines quickly, on-demand, anywhere, without waiting for a dedicated TV or radio program. Especially in these days of heightened political interest, it's hard to argue that it's better for someone to remain completely ignorant of U.S. and world affairs rather than consume news in a format that may not be the most detailed or the most interesting to you personally.

Side rant: I can't help but feel personally offended whenever I read an article or comment that assumes I have a "low attention span" just because I'm a Snapchatting millennial. The variety of social backgrounds encompassed by the term "millennial" is so broad that blanket insults like "low attention span" border on outright ageism.

<comment><USER4> You make a good point. Low attention spans aren't a millennial thing--it's a human nature thing. Snapchat and facebook may benefit from this phenomenon the most, but HN does too.

<comment><USER5> It's not nature, it's in society and it's a bit like a plague numbing it down to real feelings and deeper thoughts.

</comment></comment></comment><comment><USER6> I remember when people on digg would ceaselessly hate on twitter back in 2008, and now here I am on HN in 2017, ceaselessly hating on Snapchat.

<comment><USER7> "They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown." \- Carl Sagan

The trick is being able to tell Bozo from Einstein a priori.

<comment><USER5> Also maybe no one will laugh but only indicate laughter and be clinically depressed a few years down the line.

</comment></comment></comment><comment><USER8> Anyone with young kids up to their teens will know that Facebook is gone and snapchat is the new hot. Also instagram which is owned by Facebook but the point is that the next generation don't want to hang out on a social media network with their parents. Always looking for new things.

While also looking at features like the snaps.

So introducing grown up news into snapchat might not actually be a good long term choice for the platform.

</comment><comment><USER9> This is smart on NBC's behalf, and Comcast. Personally, this is more of the merging between "News" and Entertainment that I find disturbing. Fortunately, I don't use snap, and never would consider using it.

</comment><comment><USER10> Hey, if that's what it takes to reach new potential viewers, then they should go for it.

<comment><USER11> Don't know, man. Every time part of the establishment (i.e. everything that's already out there and have already made a name for themselves) tries to reach out for the younger crowd it makes itself more démodé, not less so.

I've never used Snapchat, though. So I don't know whether this is cool or uncool by their community's standards.

<comment><USER12> The NYTimes has absolutely been able to adapt to the digital age successfully, so why can't any other news organization. The trick is to remove any executives who are afraid of change rather than embracing it.

<comment><USER13> I thought they had a ton of debt, largely for their new offices? Did that change?

</comment></comment></comment></comment><comment><USER14> they are starting to sound more like a media company than a camera company

<comment><USER15> Were they ever really a camera company? (Excluding those stupid glasses)

<comment><USER14> well thats what they claimed on their filings.

</comment></comment></comment><comment><USER16> Nice it will be in between the Kardashian fit booty and what to do when he cheats stories. Snapchat is a wasteland.

<comment><USER17> People use Snapchat for many reasons, sponsored stories are just one of many.

<comment><USER18> Its definitely not for substantial news.

<comment><USER19> By your definition of substantial.

We can try to argue about the definition of "substantial" if you want, but in the end, the fact is that I can find you ten thousand young teens that don't give a fuck about politics and do give many fucks about a Kardashian booty transplant.

<comment><USER20> I think its pretty clear and universal what "news of substance" means in the context of news journalism. In fact most newspapers have a separate section for entertainment for this reason.

Your comment and diction seem be the very definition of "insubstantial."

<comment><USER19> >Your comment and diction seem be the very definition of "insubstantial."

At least I never resorted to personal attack.

<comment><USER20> I didn't attack you personally, I commented on the content of your comment.

<comment><USER19> Getting deeper into this is a waste of both of our times, but for the record, the reason I felt it was a personal attack was challenging my "diction" seems to challenge my very ability to string together words. I took it as being told "you talk like a dumb dumb and therefore your argument holds no weight."

If that's not what you meant, well, that's fine, maybe I'm being over sensitive, but that is how your words were received.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> Why would we choose to read the sort of fake news that olds deliberately poison their minds with?

<comment><USER22> We've banned this account for trolling. Doing this on HN will eventually get your main account banned as well, so would you please not do this?</comment></comment>


Computers During World War Two: Konrad Zuse - <AUTHOR> http://waste.informatik.hu-berlin.de/Diplom/ww2/zuse_e.html

<comment><USER2> It is often said that war spurs innovation, with WWII as the prime example. To some extend that might be true for the USA and in particular the bay area. But I wonder what all those great minds could have achieved if they hadn't been forced (by circumstance or otherwise) to work on machines for destruction.

We also tend to forget that WWII utterly destroyed the scientifically and industrially most advanced nation at the time: Germany. That must have set us back a few years.

<comment><USER3> It has set back Europe mainly. Not the US. The US (and the Soviet Union) imported all available scientic knowledge from Germany after the war. Even before the war many European scientists (especially those with jewish background) moved to the US. After the war the US searched even for those who were Nazis. Remember Wernher von Braun? He played a central role at NASA. Before that he was a part of the German war machine.

Zuse tried to be sucessful after the war in Germany. In a different environment (for example the US) he might have been more influential. I don't know why he didn't move to the US.

I saw him once when he was old and his ideas were slightly strange.

I should also mention that the linked article paints a very rosy picture about Zuse. In the last years there was some discussion about how much he worked for the Nazi war machine and whether his biography is correct.

<comment><USER4> You miss the opportunity cost. There was still a lot of time an energy spent in the US on ways to destroy enemies. You can't measure what would have been if these resources had been put on other tasks.

<comment><USER5> People and organizations - such as aristocrats and governments - that have large amounts of money to spend as patrons of science, also tend to be very interested in finding new ways to destroy enemies. It has been this way for centuries, even millennia.

</comment></comment></comment></comment><comment><USER6> Couple of years ago, I visited the computer museum in Berlin. I made a lot of pictures of the Zuse computers which were on display there. You can find those here on my Dutch site: [http://thenextcorner.com/2008/01/zuse-computer- tentoonstelli...](http://thenextcorner.com/2008/01/zuse-computer- tentoonstelling/)

Amazing that a fully mechanical machine was able to make calculations based on a programming language.

<comment><USER7> Around 1990 my girlfriend and I visited Deutches Museum in Munich. At one point we both stood bent over a display intensely studying something when we were approached by an elderly gentleman. "I guess you are into computers?" "Yes we both are?" "Then I have a hot tip for you, around that corner they are working on restoring one of the old Z-machines to make it work again. Konrad Zuse himself is helping out." We vent there and saw three people concentrated around several very big blueprints. One of them was and old man with snow- white hair, holding a big yellowed sheet filled with a big mesh of electrical diagramming. Still going strong at the age of 80. A special gem to take away from that visit.

</comment></comment><comment><USER8> The TC proof for Zuse's Z3 is worth a read: [http://www.zib.de/zuse/Inhalt/Kommentare/Html/0684/universal...](http://www.zib.de/zuse/Inhalt/Kommentare/Html/0684/universal2.html)</comment>


Why do I hardly ever see an Apple employee on the internet? - <AUTHOR> I see Google, Microsoft and Facebook employees often, but why there is no Apple? <comment><USER2> [http://worrydream.com/Apple/](http://worrydream.com/Apple/)

<comment><USER3> Also this : [http://worrydream.com/#!/Freedom](http://worrydream.com/#!/Freedom)

</comment></comment><comment><USER4> I've noticed this too, and can only imagine that Apple clamps down hard. People I admired before they joined Apple (such as David Betz, Jordan Hubbard and Doug Field) became practically invisible, as if they'd fallen into a black hole.

I suppose they're well cared for, but I also suppose that it can be lonely in there.

</comment><comment><USER5> A bit late, but I worked in the Hardware Org there for ~3 years. There are notable limits on any sort of public comment or contribution. Just about everything has to approved by an external comms group, legal, and an open source approval group if it's software. This applies to both communications & public software contributions. Email messages to public mailing lists have to be approved. Release notes for software, xquartz CUPS etc, have to be vetted and approved. Contributions to open source projects are even more arduous as there's yet another group asserting authority. As far as the company is concerned that applied to _anything_ created by the employee, there is no software work unrelated to employment.

The fear of the eldritch powers of The GPL run deep with lawyers and (some?) upper management. Circa ~2010 my group was told _NO_ GPLv3, not even binaries. "Exceptions" were made once reality was explained. ZFS for OSX was another casualty of licensing fear. Internal builds worked pretty well until approval for CDDL fell apart.

In reality everyone I worked with participated in public forums without mentioning employer or anything that would obviously track back to Apple. Going to conventions etc was as a private citizen and then expense the costs later. Public code contributions were either under pseudonyms or private patches.

</comment><comment><USER6> Apple has notoriously strict security protocols. I actually wrote a book about it, but here's some resources (near the bottom) [http://theriseofsiri.com/inspiration/](http://theriseofsiri.com/inspiration/)

</comment><comment><USER7> Hmmm...what do you mean exactly? Multiple ones are on twitter etc. [http://www.businessinsider.com/apple-employees-you-should- fo...](http://www.businessinsider.com/apple-employees-you-should-follow-on- twitter-2012-6#thomas-han-icloud-engineer-1)

</comment><comment><USER8> There's also a certain amount of fear involved: I know some Apple employees online (not blogs), but does sharing information about it endanger that? Who knows...

</comment><comment><USER9> You don't see them at conferences either. :/

</comment><comment><USER10> What do you mean by the "internet". If you go on linkedin for example, can you not search for people working at Apple ?

<comment><USER11> I think that by saying 'internet' he wanted to say on HN or social networks. For example you see tons of Google's guys having a public blog but not Apple's.</comment></comment>


Is a 'Stack' the Best Way to Understand Everything? (2017) - <AUTHOR> https://www.nytimes.com/2017/04/11/magazine/new-technology-is-built-on-a-stack-is-that-the-best-way-to-understand-everything-else-too.html <comment><USER2> Interesting take, but it misses the fundamental point of the stack metaphor: each layer has to depend on the existence of the previous layer. An operating system can't exist without hardware to run on; an application can't exist outside the context of an operating system. The author seems to think that any system with multiple components can be called a "stack" \- at that point, you truly have reduced the term to a buzzword.

</comment><comment><USER3> I got the impression that the author of this article doesn't understand what a stack is. The examples he gives are all over the place.

The article was generally cringey but this sentence stood out:

 _Stack logic is only just finding its footing in the corporate world, and it hasn't spilled into mainstream conversation just yet._

<comment><USER4> The term "LAMP stack" is at least 15 years old and even RMS commented on it a long time ago. That's as mainstream as it gets.

<comment><USER5> In what world do you live in where RMS is a mainstream figure? Or LAMP stack is a mainstream term?

<comment><USER6> That's like saying differential equations aren't mainstream just because not everyone takes university-level math. Stacks are a mainstream technical concept in a mainstream technical profession. The relevant domain for determining prevalence is "Programmers." Non-technical people don't count.

<comment><USER7> I'd actually say the relevant group is "people trying to understand the domain" (given the question in the headline).

Which, generally, boils down to a group that is largely programmers, and even those that aren't programmers DO (AFAICT) have familiarity with the "stack" concept (non-technical Eng Managers, non-technical PMs, etc)

I'm not saying you're wrong in any way, just pointing out that it can be said in a way that doesn't sound like "programmers are all that matter" (which I don't think was your intent anyway).

</comment></comment></comment></comment></comment><comment><USER8> It's the best way to understand cleanly separated hierarchical systems, sure. So it's great for computers (which are designed this way by humans to keep their complexity manageable), but it's a poor way to understand biological systems (for example) which are a mush of innumerable interconnected feedback loops beyond the capacity of any human mind to fully understand.

<comment><USER9> It's not necessarily the best way to understand things designed by humans. A strict view of "the stack" leads one to ignore the direct (side-) effects of different layers on each other and to invent the imaginary sin of the "layering violation".

<comment><USER8> It's the best way to understand things designed by humans _to fit in with that way of understanding_. Some humans can design things which operate without hierarchies (see The Story of Mel) but normal humans will struggle to understand them.

</comment></comment></comment><comment><USER10> > Is a 'X' the Best Way to Understand Everything?

No. Next question.

</comment><comment><USER9> Once upon a time, Edsger Dijkstra, the inventor of the stack (data structure) attended a lecture by a prospective faculty member at UT Austin, who discussed topics related to a (network protocol) stack. Hilarity ensued.

Yeah, that's got nothing to do with the article.

<comment><USER11> Do you have a source for that? Would be funny and interesting to read into that.

</comment></comment><comment><USER12> The original use of "stack" as a metaphor in programming _should_ trace to assembly language, but I do not see any mention of that here. I would guess the people who have transformed the term into a "buzzword" are not well-versed in assembler.

<comment><USER8> That's not really what they mean by 'stack' in this context, though. That's a 'stack' as a form of memory management, which is just a LIFO queue. In this sense they mean a "software stack" which is just a bunch of nested software systems (eg. OS <\--> Web server <\--> Web application).

<comment><USER13> People have stretched the concept quite far, but your example IS a stack with a meaningful concept of up and down.

Can you replace the application while leaving the OS in tact? Of course. Now try replacing the OS without impacting the other two.

<comment><USER14> The OSI model is stack with a top and a bottom, but each layer can be replaced, in theory.

The processor stack and a software stack really are distinct things, because the "software stack" has the notion of interfaces at the top and the bottom of each layer.

The fact that at the implementation level, the call stack sometimes mirrors the software stack is not really relevant. It's sort of accidental: each layer could be a process, connected with other layers by a pipe for instance.

<comment><USER8> > but each layer can be replaced, in theory.

That's literally the entire point of the abstraction. Each layer is independent and can do its thing without considering what other layers are doing.

Of course, like all abstractions, it's leaky, which leads to things like Nagle's algorithm causing lag in MMORPGs when devs don't turn it off (no offense, Animats! :D )

</comment></comment></comment></comment></comment><comment> GuB-42 Stack: a pile of objects, typically one that is neatly arranged.

Fundamentally, a stack is not about technology. Sure, it is used to represent a data structure in software, but the same can be said for queues, heaps, pipelines... And yes, it can also be used when the graphical representation of something looks like a pile of boxes sitting on top of each other, which is common in tech (ex: the TCP/IP model).

It may be true that tech popularized the word "stack" but it is just as easy (in fact easier) to imagine a stack of books rather than anything software related. Using that as an argument that "software is eating the world" is circular reasoning.

<comment><USER15> I was at a hospital recently and saw this. In the first waiting area there was a vertical queue for patients charts. I watched nurses pop off the top and then manually move every chart up to refill the top of the queue.

Then in another waiting room I saw the same thing, except it was basically a ring buffer. They used a little magnet to denote the top and I watched them keep filling below my chart and then back to the top above the other charts. No need to move every chart every time.

I highly doubt these nurses are thinking tech or programming. They're just being naturally clever.

</comment></comment><comment><USER16> I read this someplace.. thought it is fun to share.. we went from spaghetti (mainframe) code to lasagna (stacks / tiered architecture) to ravioli (micro- services) :)

<comment><USER17> Yea, but sometimes one persons ravioli tastes like lasagna or spaghetti.

<comment><USER18> It's more about form than flavour. Two different raviolis can have totally different stuffings, but no reasonable person will confuse a lasagna for a ravioli... although I suppose you could put a ravioli layer inside a lasagna...

<comment><USER19> It would take an intrepid determined cook to produce the culinary metaphor of what a modern microservice landscape looks like: a bucket of ravioli that are connected to each other by a web of spaghetti. (Does that sound like more pasta than filling? Yes, it does.)

</comment></comment></comment></comment><comment><USER20> Definitely. Tough sometimes one have to allow for an abstraction leak : [https://c1.neweggimages.com/NeweggImage/ProductImage/A1S7_1_...](https://c1.neweggimages.com/NeweggImage/ProductImage/A1S7_1_20170516537927113.jpg)

</comment><comment><USER21> When Reggie Watts broke things down in terms of stacks, it helped me understand a lot more: [https://youtu.be/CJQU22Ttpwc](https://youtu.be/CJQU22Ttpwc)

</comment><comment><USER22> I hereby officially coin the next buzzword for 2020: Deep-Stack-Chain

Combining the AGI capabilities of Deep Learning with hyperdimensional system architectures to create decentralized Cloud infrastructure like never before!

<comment><USER23> If you can present it in AR/VR then I'll take two!

</comment></comment><comment><USER24> People use the word "stack" in multiple ways. So... ?

</comment><comment><USER25> I initially thought the title was in reference to the wonderful [https://stacks.math.columbia.edu/about](https://stacks.math.columbia.edu/about).

</comment><comment><USER26> There are 10 ways to understand everything:

1) A stack 10) a queue

</comment><comment><USER27> Betteridge's law of headlines strikes again.

</comment><comment><USER28> How is there not a single mention of Hypercard?

<comment><USER29> Which term I never understood. The actual structure of cards is a DAG.</comment></comment>


Bret Victor's Bookshelf (2015) - <AUTHOR> http://worrydream.com/Shelf2015/ <comment><USER6> These are his books on "Programming Languages" and "Programming" (in the bottom right corner of the image):

* APL: The Language and its Usage

* The Design an Evolution of C++

* The annotated C++ Reference Manual

* The Joy of Clojure

* Eiffel the Language

* Programming Erlang

* Forth (Salman et al.)

* Thinking Forth

* Introduction to Fortran

* The Little Schemer

* The Seasoned Schemer

* The Reasoned Schemer

* The Little MLer

* Programming in Lua

* Lucid, the Dataflow Programming Language

* Functional Programming in Scala

* Clause and Eiffel

* Scatchpad

* Smalltalk-80, The Interactive Programming Environment

* Smalltalk-80, Bits of History, Words of Advice

* The TeXbook

* The METAFONTbook

* TeX: The Program

* METAFONT: The program

* Viewpoint: Toward a computer for visual thinkers

* Visual Grammars for Visual Languages

* How to design programs (Felleisen et al.)

* Design Patterns (Gamma et al.)

* The art of the Metaobject Protocol

* Elements of Programming

* Concepts, techniques and models of computer programming

* Structure and Interpretation of Computer Programs

* Types and Programming Languages

* Essentials of Programming Languages

* Advanced compiler design and implementation (Muchnick)

* Introduction to Algorithms (Cormen et al.)

* Hacker's Delight

* Programming Pearls

* Coders at Work

* Computation: finite and infinite machines

* Purely functional data structures

* The space and motion of communication Agents

* Superdistribution

* A small matter of programming

* Basic Theory for Computer Scientists

</comment><comment><USER7> His digital bookshelf is great too

[http://worrydream.com/#!/Links](http://worrydream.com/#!/Links)

I've read most of those books but when it comes to math/electronics I unfortunately only understand some of it a big fault in my choice of areas to study.

If I could do it over again, math would at least have been as important to me as the arts and philosophy.

I'm always a little envious of people who are able to read the kind of books on his 2015 bookshelf and actually understand them.

Then again we can't be good at everything.

</comment><comment><USER8> Why do we keep talking about Victor Bret? The world largely ignored his ideas.

<comment><USER9> No it wasn't ignored. I was largely inspired! Inspired to invent on principle. He also produced amongst others real products such as his synthesizer which received rave reviews.

</comment></comment><comment><USER10> Interesting selection. I'm surprised to find some of my more eclectic favorites included:

\- Naked Ape, Desmond Morris

\- Feynman Lectures on Computation - <USER2>

\- Guide to Feynman Diagrams - <USER3>

\- Visual Complexity - <USER4>

\- Data Analysis - <USER5>

\- Emergence - Jonhson</comment>


2048 As A Service - <AUTHOR> https://github.com/Semantics3/2048-as-a-service <comment><USER2>
        This API follows ZEST principles.

        All requests must begin with a /hi.

        Failure to do so will result in a 800 'Please say hi...' error.

Priceless!

</comment><comment><AUTHOR> 2048-as-a-service author here.

Do also checkout our demo showcase app built using the 2048-as-a-service API:

2048 - Startup Growth Edition (MVP) - [http://2048.semantics3.com/2048.html](http://2048.semantics3.com/2048.html)

<comment><USER3> Doesn't work for me. I'm using Safari on iOS 7.1.

<comment><USER4> Doesn't work for me either. Latest version of Chrome on Android.

</comment></comment></comment><comment><USER5> This feels like HN satire but someone has actually gone and written the code so it's fairly elaborate...

<comment><USER6> IMO, the best April 1st jokes are both good satire and well thought out enough to actually be implemented. Consider that RFC 1149 was intended as a joke, only to actually be successfully implemented years later.

</comment></comment><comment><USER7> I get that this is a joke, but I do think a really cool concept for a game would be one where there is just an API for the "state" and that is responsible for the mechanics and rules of the game, but that you would build your own custom client for the UI. For example, some kind of spaceship battle game where you create your own interface for controlling the ship... it would be kind of a meta-game where creating the interface a certain way might give you advantages in terms of efficiency versus others.

<comment><USER8> Schemaverse[1] could be considered something similar, I think, down to the "space-based strategy game", although it is controlled by raw SQL queries instead of an API.

[1] [https://schemaverse.com/](https://schemaverse.com/)

<comment><USER7> Wow, that's really cool -- thanks!

</comment></comment></comment><comment><USER9> In hindsight, this seems... inevitable ;-)

(I can't help but wonder where and how 2048 will show up next.)

</comment><comment><USER10> 10/10 would trust a ginormous 1-line Perl script again

</comment><comment><USER11> Finally, 2048 is now _enterprise-ready_.

<comment><USER12> I see no Java in this repo?

<comment><USER13> And where are the unit tests?!?!

<comment><USER14> Unit tests? You mean functional api level load testing?

</comment></comment></comment></comment><comment><USER15> Are there seriously people running obfuscated Perl scripts from third parties in a terminal with root access?

You might as well open up a SSH daemon on the default port without root password.

<comment><USER16> Yes, you see Perl is hip now. And since the hipsters barely learned how to make an alert in JS before calling themselves a "full stack dev" they really don't know any better.

Perl one liner bro - check it out.

</comment></comment><comment><USER17> This is hilarious. This probably won't be, but should be the final entry in the series of 2048 clones.

I guess that you could de-servicify it and create own2048, not that I know how it would differ from the original version...

<comment><USER18> A desktop application that is distributed exclusively on floppies?

<comment><USER19> We are still missing the C64 version.

</comment></comment></comment><comment><USER20> Not sure if I'm doing it right, but [http://2048.semantics3.com/2048/](http://2048.semantics3.com/2048/) (their mvp) just returns {"message":"Please say hi..."}

<comment><USER21> This is actually documented in the API. Turns out the API just wants your program to be polite and say hi when calling it.

[https://github.com/Semantics3/2048-as-a-service#zest- princip...](https://github.com/Semantics3/2048-as-a-service#zest-principles)

<comment><USER22> It is nice to see the INTERCAL way of doing things making a comeback.

</comment></comment></comment><comment><USER23> Edit: It's missing a snarky game over message. Something like "you pivoted too late" would be perfect for a game like this, don't you think?

"Unstoppable! You are the next Rap Genius!"

"Growth Hacker Extraordinaire! You are the next Optimizely!"

I like it more than the other offers that April Fools has provided thus far. Somewhat reminiscent of this thread: [http://chan.installgentoo.com/g/thread/38087806](http://chan.installgentoo.com/g/thread/38087806)

</comment><comment> li-ch And Threes!'s creators becomes more bitter and sour...

</comment><comment><USER24> I would like to see an Excel extension with boss-mode key.

</comment><comment><USER25> Slightly off-topic, but even this month's Ponder This challenge

[http://domino.research.ibm.com/Comm/wwwr_ponder.nsf/Challeng...](http://domino.research.ibm.com/Comm/wwwr_ponder.nsf/Challenges/April2014.html)

is devoted to 2048...

</comment><comment><USER26> I remember I used to play hangman by texting letters to a phone number and it would reply with how much of the word I had figured out. It would be awesome to be able to play 2048 over SMS (but painstakingly slow to complete).

<comment><USER27> COuld be formatted on 1 line. Like this: x-x-x-x-x-x-2-4-4

Requires some 1D to 2D though.

<comment><USER28> SMS seems to support newlines on my phone. Not sure how widely supported that is, though.

</comment></comment></comment><comment><USER29> That "Sexy Perl one-liner" is hilarious.

<comment><USER29> For reference: perl -e 'my $host = "[http://2048.semantics3.com/hi/";my](http://2048.semantics3.com/hi/";my) $cmd = "curl --silent -L $host"."start";my $output = `$cmd`;my $session_id = $output;$session_id=~s/. _?ID:\s(\w+)._ /$1/si;my %keyMap = ( 'w' => 0, 'd' => 1, 's' => 2, 'a' => 3);print STDERR $output,"\n";while(1) { print STDERR "Input (w - up, a - left, d - right, s - down):\n"; my $userInput = <STDIN>; chomp ($userInput); if(defined($keyMap{$userInput})) { $userInput = $keyMap{$userInput}; } else { print STDERR "Invalid move.. w - up, a - left, d - right, s - down\n"; next; } my $cmd = "curl --silent $host"."state/$session_id/move/$userInput"; my $output = `$cmd`; print STDERR "\n$output\n"; if($output=~/Message:/si) { exit(0); }}'

<comment><AUTHOR> HN formatting screws up the code :(

This will work:

        perl -e 'my $host = "http://2048.semantics3.com/hi/";my $cmd = "curl --silent -L $host"."start";my $output = `$cmd`;my $session_id = $output;$session_id=~s/.*?ID:\s(\w+).*/$1/si;my %keyMap = ( 'w' => 0, 'd' => 1, 's' => 2, 'a' => 3);print STDERR $output,"\n";while(1) { print STDERR "Input (w - up, a - left, d - right, s - down):\n"; my $userInput = <STDIN>; chomp ($userInput); if(defined($keyMap{$userInput})) { $userInput = $keyMap{$userInput}; } else { print STDERR "Invalid move.. w - up, a - left, d - right, s - down\n"; next; } my $cmd = "curl --silent $host"."state/$session_id/move/$userInput"; my $output = `$cmd`; print STDERR "\n$output\n"; if($output=~/Message:/si) { exit(0); }}'

<comment><USER30> More readable:

        my $host = "http://2048.semantics3.com/hi/";
        my $cmd = "curl --silent -L $host"."start";
        my $output = `$cmd`;
        my $session_id = $output;

        $session_id =~ s/.*?ID:\s(\w+).*/$1/si;
        my %keyMap = ( 'w' => 0, 'd' => 1, 's' => 2, 'a' => 3);
        print STDERR $output, "\n";

        while(1) {
            print STDERR "Input (w - up, a - left, d - right, s - down):\n";
            my $userInput = <STDIN>;
            chomp ($userInput);

            if(defined($keyMap{$userInput})) {
                $userInput = $keyMap{$userInput};
        	}
        	else {
                print STDERR "Invalid move.. w - up, a - left, d - right, s - down\n";
                next;
        	}

        	my $cmd = "curl --silent $host"."state/$session_id/move/$userInput";
        	my $output = `$cmd`;
        	print STDERR "\n$output\n";

        	if($output=~/Message:/si) {
                exit(0);
        	}
        }

</comment></comment></comment></comment><comment><USER31> I was just thinking about trying to write a command line 2048 and then I see this.

<comment><USER32> [https://github.com/bfontaine/term2048](https://github.com/bfontaine/term2048) is a good one ;)

</comment></comment><comment><USER33> This seems like a lot of work for a joke.</comment>


[video] Say NO to Acta - <AUTHOR> http://www.youtube.com/watch?v=citzRjwk-sQ Learn more and take action about ACTA at http://lqdn.fr/ACTA (subtitles included : fr, en, es)<p>Here are few ways to act against ACTA, right now: http://www.laquadrature.net/wiki/How_to_act_against_ACTA <comment> cm-t Good work from La quadrature du Net !</comment>


SpaceshipGenerator: A Blender script to procedurally generate 3D spaceships - <AUTHOR> https://github.com/a1studmuffin/SpaceshipGenerator <comment><USER2> It amazing the traction that Blender is now getting. After a lifetime of delivering our 3D courses in Max, our school has recently switched to blender. Despite being long-time Max users, all our staff having nothing but praise for Blender. They are like kids in a candy store. It was the Covid thing that precipitated this move. Max is platform-dependent, making it unsuitable for home use. Today I returned to Max to tweak an old project and I am reminded of what a funckwinkle it is: full of built-in bugs and inconsistent UI choices.

The design landscape is very subject to catastrophic change. I remember when Quark Express went from being king of the hill to playing second fiddle to InDesign, in what felt like a couple of months. This was the outcome of some very poor customer-antagonising decisions by Quark.

<comment><USER3> I tried to learn Blender about ten years ago and just couldn't get past the UI. I tried again this past week, and have already modeled and rendered a proof-of-concept for what I was hoping to do with it.

The 2.8 UI redesign was nothing short of a game-changer.

<comment><USER4> Do you think it would be simple enough for an 11 year old to learn without getting too lost? My nephew is into claymation and is generally artistically inclined (but otherwise not very into school, even in the best of times). I'm looking for something to help him learn remotely, so anyone's tips or resources would be appreciated.

<comment><USER2> Exciting development! ZBrush has just released a stripped-down free version of their app: ZBrush Core

[https://zbrushcore.com/mini/](https://zbrushcore.com/mini/)

For any young person interested in digital clay, this is tops! ZBrush is the market leader in digital sculpting.

</comment></comment></comment></comment><comment><USER5> The result screenshots are pretty cool-looking... and I personally wouldn't board any of these spacecraft! The decks should be stacked along the main engines' thrust vector, so the acceleration doubles as a source of artificial gravity.

Maybe I should open an issue...

<comment><USER6> If you've got a magically efficient drive that's unrealistically fuel efficient to sustain long term high thrust like in The Expanse that's one option. But if we're waving our magic wands anyway, why not just wish up artificial gravity instead?

<comment><USER7> It would be much harder to maintain homogeneous artificial gravity so I imagine if/when it is invented, it will look like waves creating centers of higher gravity and lower gravity underneath each deck, making you feel like you're riding on a bumpy road instead of walking straight.

        ``'-.,_,.-'``'-.,_,.='``'-.,_,.-'``'-.,_,.='``

<comment><USER8> Another model is that each mobile object worth keeping held down gets its own gravity well which moves with it via an array of pads in the floor. They feel a constant acceleration, but gravity is uneven where they aren't.

</comment></comment></comment></comment><comment><USER9> Really cool. I recently began playing around with procedural 3D design and found Sorcar[0] which gives Blender Houdini like capabilities.

A good place to start for anybody interested in exploring this sort of thing.

[0] [https://github.com/aachman98/Sorcar](https://github.com/aachman98/Sorcar)

<comment><USER10> But still away from Houdini which is the gold standard still.

</comment></comment><comment><USER11> Quite good, though very much in the style of Aliens. I'd like to see if some deep learning techniques can make ships like Chris Foss, Peter Jones or Angus McKie.

[https://www.chrisfossart.com/](https://www.chrisfossart.com/) [https://arthive.com/artists/65054~Peter_Andrew_Jones/works/3...](https://arthive.com/artists/65054~Peter_Andrew_Jones/works/354661~Spaceship) [https://www.pinterest.ca/lleephoenix/space-art-angus- mckie/](https://www.pinterest.ca/lleephoenix/space-art-angus-mckie/)

</comment><comment><USER12> Some more in Houdini: [https://www.youtube.com/watch?v=cNPO_w9YRb0](https://www.youtube.com/watch?v=cNPO_w9YRb0)

<comment><USER13> Big fan of this Houdini artist's procedural helmets and robots

[https://twitter.com/mglhs_com/status/1081153465328549889](https://twitter.com/mglhs_com/status/1081153465328549889)

</comment></comment><comment><USER14> A more up-to-date fork since this original repo hasn't been updated in two years: [https://github.com/ldo/blender_spaceship_generator](https://github.com/ldo/blender_spaceship_generator)

<comment><USER15> Thanks! I only tried using the original which wasn't updated for blender 2.8.

</comment></comment><comment><USER16> I recently started playing No Man's Sky, a space game that has systems and planets procedurally generated.

More varied spaceships and spaceship classes are something I'm looking forward too, maybe the developers can take some inspiration from OP.

<comment><USER2> Procedural general works well for terrains and ecosystems, but not for man- made objects. There has been some great work on procedurally generated architecture, but they all need extensive manual tweaking before they can be used. This tells us a lot about what differentiates design from natural forces.

</comment></comment><comment><USER17> I remember seeing this a while back when I was looking into how a procedurally generated trading card game might work, where every single card was unique. It ended up being beyond me, but I'd love to see it come to life at some point, similar to Keyforge.

</comment><comment><USER18> Just needs some rendering presets, star field backgrounds, lens flare, GPT-2 title generation, and you've got random SF novel book covers!

<comment><USER19> Speaking of random SF book covers: [https://thrilling- tales.webomator.com/derange-o-lab/pulp-o-m...](https://thrilling- tales.webomator.com/derange-o-lab/pulp-o-mizer/pulp-o-mizer.html)

<comment><USER20> This is so fun to play with. Thank you for sharing!

</comment></comment></comment><comment><USER21> For those people who want to learn more about Blender here some lesser known YouTube channels with great content:

[https://www.youtube.com/channel/UClUvUh2AoIhJRezjduP3xcQ](https://www.youtube.com/channel/UClUvUh2AoIhJRezjduP3xcQ)

[https://www.youtube.com/channel/UCzghqpGuEmk4YdVewxA79GA](https://www.youtube.com/channel/UCzghqpGuEmk4YdVewxA79GA)

[https://www.youtube.com/channel/UCREsnxg5H2HAj86KVREdGMw](https://www.youtube.com/channel/UCREsnxg5H2HAj86KVREdGMw)

[https://www.youtube.com/user/mediagabbitt](https://www.youtube.com/user/mediagabbitt)

[https://www.youtube.com/user/Blenderfan93](https://www.youtube.com/user/Blenderfan93)

[https://www.youtube.com/channel/UC2U5mRfclG1Rrr1ztNkpGKA](https://www.youtube.com/channel/UC2U5mRfclG1Rrr1ztNkpGKA)

[https://www.youtube.com/channel/UC-6vHjpfo62aJpQk_n9siUw](https://www.youtube.com/channel/UC-6vHjpfo62aJpQk_n9siUw)

Most of those channels show really professional work with great tutorials.

</comment><comment><USER22> This got me thinking about Limit Theory [1], where _everything_ will be procedurally generated. Not sure if the project is still alive though. I remember getting so hyped over it in 2014 or something...

[1]: [http://ltheory.com/faq.html](http://ltheory.com/faq.html)

<comment><USER23> Sadly looks like no: [https://www.kickstarter.com/projects/joshparnell/limit- theor...](https://www.kickstarter.com/projects/joshparnell/limit-theory-an- infinite-procedural-space-game/posts/2270873)

It doesn't appear the code was ever released either.

<comment><USER7> Well, it appears someone received a bonus of $180,000 without releasing any code. Thanks again, kickscamter.

</comment></comment></comment><comment><USER24> Previously on HN: [https://news.ycombinator.com/item?id=11929493](https://news.ycombinator.com/item?id=11929493)

Also, someone a while back posted procgen for 2D spaceships. Will update when/if I find it.

<comment><USER25> Perhaps this one? [https://github.com/zfedoran/pixel-sprite- generator](https://github.com/zfedoran/pixel-sprite-generator)

<comment><USER24> That's it, thanks!

</comment></comment></comment><comment><USER26> Reminds me of Warning Forever, which would generate 2d spaceships: [https://en.wikipedia.org/wiki/Warning_Forever](https://en.wikipedia.org/wiki/Warning_Forever)

</comment><comment><USER27> This is really cool. Spaceships feel like a limited choice for this though. Being able to generate models of humans or animals already animated to a standard skeleton would be a hugely useful asset. As a hobbyist game dev I'd love to buy random monsters off the unreal asset store, but I can't help but feel it'd be really lame if the monsters in your game were seen in some other unrelated game. That would be super limiting on any immersion instantly imo. Tools like this could help a lot. Maybe it's even easier since the skeleton would be the same?

Not familiar with modeling

</comment><comment><USER28> Of possible interest is Kate Kinnear's thesis[1], titled _The Aesthetics of Science Fiction Spaceship Design_ , which is about techniques for procedural generation of sci-fi spaceships. Also discussed on HN[2].

[1] [https://uwspace.uwaterloo.ca/handle/10012/4935](https://uwspace.uwaterloo.ca/handle/10012/4935)

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

</comment><comment><USER29> Reminds me of the spaceships in Avorion: [https://www.youtube.com/watch?v=3R7xwseIkcE](https://www.youtube.com/watch?v=3R7xwseIkcE)

<comment><USER30> Was just playing that yesterday, and was getting ready to jump back in today.

BoxelWare revamped the procedural ship/station generation immediately prior to the 1.0 release, and they're fantastic: [https://www.youtube.com/watch?v=CLdmGxLWWfI](https://www.youtube.com/watch?v=CLdmGxLWWfI)

</comment></comment><comment><USER31> Very cool. I used to draw spaceships as a child so this brings back memories. Suggestion for OP: add more curves to the mix to increase variety.

<comment><USER32> also 'wings' and 'wing alikes'

</comment></comment><comment><USER33> This is great!! Blender is SO HUGE, even after years learning it I've not yet dabbled much into scripting, but it's the spirit of sharing like this that lets us dive in to an examples and learn so much!!

Blender is truly remarkable software, and it just keeps getting better and better! I'm loving the 2.83 beta grease pencil updates.

</comment><comment><USER34> One of my favorite aspects of Diablo was the randomly generated levels. Imagine a space strategy game, where your "civ" is randomly generated giving you a random tech tree, with random ships of random attributes.

That would so much more depth and replay-ability and make it much much harder to over optimize.

</comment><comment><USER35> This is very cool, but they all looks like the same "kind" of space ship to me. Even though I'm sure they are very different, they aren't distinct. And in that way, this doesn't seem very useful.

<comment><USER36> The "extreme" examples are more visually interesting and distinct. But yes, its too obvious that they all follow the same scheme.

</comment></comment><comment><USER15> Has this been updated for 2.8? I've used this when learning Blender scripting and the script had a bunch of issues with the procedural materials because of API changes.

That being said Blender is some heroic software.

</comment><comment><USER37> Really interested to see how the concept art industry will adopt tools like this

</comment><comment><USER38> I've never done any 3D modelling, how feasible is it for a programmer to approach it purely via scripting? Im very familiar with Python, and this script doesn't look too complex.

<comment><USER39> Blender has a great Python API[0] that allows you to do almost everything that you could do in the editor with code. You do have to run your code from inside the Blender app though.

[0] [https://docs.blender.org/api/current/info_quickstart.html](https://docs.blender.org/api/current/info_quickstart.html)

<comment><USER40> I'm unsure of why you say "almost" everything when the UI code is simply calling the python API to do it's function. You could do anything and _more_ in the python API, as it's what the UI uses but you can use all the parameters via the code while the UI doesn't expose everything.

Unless something changed recently regarding this.

Also, regarding executing the code from outside, you can run blender headlessly, running the code with it when running blender via terminal. So you could use it as a windowless client if you so wish.

<comment><USER41> Blender is a truly fantastic tool, but some of the scripting is a bit hacky, IMO.

I recently built some pretty complex Blender automation[1], and my experience was that while technically nearly everything that can be done in the UI can be automated, there are problems that fell into two main buckets for me:

1 - There are basically two parts to the Python API - bpy.ops, and everything else. If something is in the "everything else" category, it works pretty well, but not everything can be done through that part of the API. bpy.ops is (AFAICT) the equivalent of using Selenium to automate clicking on web pages instead of actually interacting with the underlying API, and it feels super fragile.

2 - A _lot_ of the API is not documented well, and I frequently ran into situations where there was no information on what I wanted to do, or the information was outdated. The impression I get is that most of the core Blender devs and users are _not_ using the scripting features, or not using them extensively, because answers on StackOverflow and similar to things like "how can I change property X of every material's shader in my project, oh, and by the way, I have 1000 materials in my project" are usually "I guess you'll just have to click through each of those and set it" even though the API supports it if one digs far enough. A lot of the extensions I thought I could use as reference for things like arranging shader nodes in a useful way have been broken ever since 2.8, but there's no indication in the UI of this.

The pane in the scripting view that continuously shows the script equivalent of actions taken in the UI is a big help, and again, Blender is a really, really fantastic tool. But I can definitely understand some frustration with the scripting feature.

[1] [https://www.thelostworlds.net/Software/Soul_Reaver_to_Blende...](https://www.thelostworlds.net/Software/Soul_Reaver_to_Blender_Conversion_Toolchain.html) \- better docs are coming soon, I promise.

</comment></comment></comment></comment><comment><USER42> "Upgrade to 2.8x required" 8(

Sadly, I've only just installed Blender so I have no idea how to update the add in. Give me a couple of years to get to grips with it please.

<comment><USER43> I guess you must've downloaded an older version of blender. The latest official release version is 2.82 which you can download here [https://www.blender.org/download/releases/2-82/](https://www.blender.org/download/releases/2-82/) .

<comment><USER44> No- it's the script that needs updating.

eeereerews has the link to the issue that leads to a link with a corrected version of the script

</comment></comment></comment><comment><USER45> That's really cool ! Even the "extreme" examples could be an entire specie/race/civilization in a space game

</comment><comment><USER46> Procedurally generated spaceships was the first idea that came to mind when I learned about Blender's scripting capabilities. :)

</comment><comment><USER47> big spaceships should be skyscapers instead of boats so thrust works as gravity.

looks nice though!

</comment><comment> awinter-py which part docks with ISS

</comment><comment><USER48> All these ships have Bangle Butt.

</comment><comment><USER49> ok now THIS is what i am here for - thanks for the link!</comment>


Us: Customizable visual search. YC: Wait, what? Why customizable? - <AUTHOR> http://linkapic.com/blog/2011/04/linkapic-customizable-visual-search/

<comment><USER2> You need a little animated video. Or at least pictures of what it does. Although I read the FAQ and all the pages on your blog, I'm having difficulty understanding if this is an add-on to a mapping application, or something like that Color app that was famous for 15 minutes a few weeks ago, or...well, I'm just confused about exactly what it does, and not curious enough to spend time trying to figure it out. I'm guessing PG and others at YC didn't reject you as such, they just weren't able to work out what it's for.

I hope that doesn't come off as harsh. It's a common problem on landing pages, in FAQs, and in documentation; people forget to begin with short, clear statements that answer the questions: what is this for? why does that matter? How do I do something cool with it?

I remember spending most of an afternoon many years ago trying to wrap my head around TeX, and eventually losing interest because Microsoft Word's equation editor seemed an awful lot easier for anyone short of a typesetting professional. The documentation seemed to say 'go away and leave me alone.'

<comment><AUTHOR> Hey, thanks for your insightful comment. I agree we should have a video of what it could do. Will have that up soon.

The idea is to do more or less what Google Goggles does, but where users contribute to the content. We will use Flickr et al to initialize the database of searchable places in the world.

</comment></comment><comment><USER3> So basically: 1\. A content creator takes photos of objects and tags them (links, texts whatever) 2\. I take photos of those places and linkapic shows me what the content creator tagged those photos (objects) with.

Right?

I think that a twist to your idea might be interesting. Say Content Crator tags objects/photos. The way you have it now I have to take a photo of the same object to see the tag. Instead how about that if I am walking around you can show me nearby tagged images based on GPS.

There would be more discovery for me and less work. Taking photos of things and then waiting to see the notes sounds like work. But walking down the street and seeing interesting things that other people have taken photos of in the vicinity and tagged becomes interesting.

And it can be a tour because one tag can have directions to the next object etc.

\--- A side note: The discussion in your blog is meandering in my opinion (SEO/democracy etc) and the point is not well made. It would be best to just stick to the basic use case w/o pitching/marketing as pg likes to say.

<comment><AUTHOR> You did get the basic idea -- content creators can basically make a world around them visually searchable. Say, a University or zoo can link their buildings or exhibits to more information. Any visitor can then look it up.

The twist that you mention seems interesting -- we were planning to add a feature that would let users discover tags nearby, as well as "related" (say, a user snaps a winery, he/she can see other wineries nearby). The original idea behind snapping a picture to search was to give a higher degree or precision, so users can get answers to "What is this building?" or "What is this statue?".

</comment></comment><comment><AUTHOR> Here is a part story of what we learned from our YC interview, and how (thankfully) PG and team made us think hard about our assumptions. The rest of the post is about what came out.</comment>


Python for Ruby Programmers (LA RubyConf 2013) - <AUTHOR> https://speakerdeck.com/mleone/python-for-ruby-programmers

<comment><USER2> To add to other comments, things the author could have expanded upon:

* vararg keyword arguments ( __kwargs)

* Keyword-only arguments (Python 3)

* help, vars, a few other nice introspective builtins

* Assignment unpacking (multiple names as left-hand side of an assignment)

* The strangest "first blush" difference between Ruby and Python, or at least the one which I found oddest when I first started switching, is that a new Ruby class is defined from the `class {Name}` line, the whole body executes in the context of the already-created class. Not so in Python, the class object will only exist once the body has finished executing.

* No mention of generators? Also outer v inner iteration is a pretty big split between two otherwise similar languages.

Mistake-ish

* obj.__dict__ -> vars(obj)

* obj.__class__ -> type(obj)

* Python's lambdas are not one-line, they're one-expression. The reason you "can't do [this] in Python" is that if:elif:else: is a statement, so doesn't fit in lambdas. But you can have arbitrary complex code in lambdas aside from that, by following <http://codon.com/programming-with-nothing>. For instance you can (although you should not) write:

        map(lambda num:
                0 if num % 3 == 0 else
                num * 2 if num % 4 == 0 else
                num,
            range(1, 6))

* Author talks about methods a lot. They're not methods, a method is part of an object. They're functions. Granular functions, inner functions, ...

* We generally don't say Python values "evaluate to False", we say they're falsy: they're _never_ equal to False (outside of False and — for historical reasons — 0), they're just equivalent when evaluated in a boolean context (or passed to `bool()`). Also, the list is _way_ incomplete: _any Python type defines its own "falsiness"_ by implementing __bool__ (or __nonzero__ in Python 2)

* Python's reflection and metaprogramming are roughly on par with Ruby's, their lack of use is more of a cultural artefact (possibly historically motivated) than a technical one. Consider adding methods to existing types for instance. You can do it in Python (on python-defined types), you just very rarely do, it's not in the culture to do something like that. Same with using metaclasses, it's done but it generally isn't the first thing a Python developer will reach for, aside from things like registering classes on the fly/on definition

Odd comments:

* Ruby mixins, as far as I know, work by injecting the module in the inheritance chain somewhere above the new class. MI is clearer and just as powerful.

<comment><USER3> Is Python's multiple inheritance model still wonky? For example, I remember this being a "broken" (that is, incompatible with MI) class:

        class BaseClass:
            def __init__(self):
                do_important_work()

It's broken, because this class doesn't expect to have any superclass other than Object, and hence doesn't call

        super(self, BaseClass).__init__(*args, **kwargs)

or something like that (which by the way, is super awkward syntax, repeating both self and BaseClass). But if it's subclassed as one of multiple base classes the parent classes _might_ not get their __init__ methods called (or _you_ might not get your __init__ called, because they forgot to call super().__init__ as well, and the superclass inheritance order ended up putting them in front of you).

<comment><USER4> > which by the way, is super awkward syntax, repeating both self and BaseClass

In Python 3, you can write just `super()`, even though I personally prefer the verbose (and thus explicit) way.

In single-inheritance cases, there's actually no benefit of using super(), so using `BaseClass.__init__(self, _args,_ *kwargs)` is even more explicit.

<comment><USER4> I screwed up the markup there, it's supposed to be

        BaseClass.__init__(self, *args, **kwargs)

</comment></comment></comment></comment><comment><USER5> The presentation incorrectly identified Python dictionaries as "lists". It also identified actual Python lists as lists.

The presentation states that tuples are "immutable lists" and that they "should be homogeneous, but [this is] not enforced". I disagree: tuples are meant to act as "records" (as in a database or other set of data), which are neither lists nor homogeneous.

The presentation brought up multiple times filter and map. An article by Guido in 2005 [1] argued that these tools should be cut from Python 3. While they still exist, I am under the impression it is considered more Pythonic to use list comprehensions in the place of filter and map, as stated in the article.

Python not having define_method is misleading. One can define a method of a class as one would any attribute of the class [2]. However, it is far easier to dynamically define a method in Ruby than in Python, because lexical scoping is inherent to a Ruby block but not a Python loop.

Python not having method_missing is wrong. One can simply override __getattr__ and return the appropriate function [3].

[1]: <http://www.artima.com/weblogs/viewpost.jsp?thread=98196>

[2]: <http://ideone.com/njXDzO>

[3]: <http://ideone.com/EB9MQ8>

<comment><USER2> > I disagree: tuples are meant to act as "records" (as in a database or other > set of data), which are neither lists nor homogeneous.

Indeed, hence `namedtuple` (named tuples extend tuples). The author got it _exactly_ backwards: tuples are generally heterogenous, the (rare) cases of homogenous tuples are reflexive short lists and hope of a slightly cheaper creation cost.

</comment></comment><comment><USER6> Not bad, but the big weakness is that the author seems to be very familiar with more expert-level aspects of Ruby, but not so much with Python. And turns that into "Python doesn't have these".

For example, he mentions Python doesn't have an equivalent of method_missing -- it's technically true that there's nothing you define on a Python class to _specifically_ intercept a nonexistent method, but that's because Python's standard facility for this operates more generally at the level of attribute access. Suspect there's a bit too much expectation of Python to be message- passing like Ruby in not seeing that one.

Similarly, Python has plenty of metaprogramming features, they're just implemented differently -- and from a different conceptual standpoint -- than Ruby's. And so on and so forth.

<comment><USER7> There are also a few non-idiomatic practices he seems to favor. For example, he seems to advocate use of `filter`, `map`, `reduce` in a few places, which, in Python, are better expressed with list comprehensions, combined with builtins like `sorted`, `all`, `any`, `sum`, etc. Adding the `operator` module opens up even more functional constructs without ever touching `map`, `reduce`, or `filter`.

<comment><USER8> Using list comprehensions as a replacement for filter and map I can see. I don't really see where you're getting at as far as substitutes for 'reduce' are concerned. For me, the 'operator' module is a justification for using 'reduce', not a replacement for it.

<comment><USER2> > I don't really see where you're getting at as far as substitutes for > 'reduce' are concerned.

Reduce simply isn't used much in Python code, as a product of both culture and rather lacking lambdas. It's used so little (pretty much the only "usual use case" is covered by `sum`) it's been moved out of the builtins and to the functools module in Python 3 (whereas `map` and `filter` have remained)

<comment><USER7> Thank you, that was much more eloquently put than I could have provided. Indeed, `sum` was the one common use case I could think of, so I didn't bother including it as an example. I honestly can't say I miss `reduce` at all when writing python.

<comment><USER2> > Indeed, `sum` was the one common use case I could think of

There are 4 other not-completely-uncommon cases in the builtins, implemented in a significantly more efficient manner for the latter 2 (ignoring Python v C): min, max, any and all. And map and filter _technically_ but repeatedly concatenating lists together (in python) isn't the most useful way to peg your CPU.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> Author here: Thanks much for the feedback. I definitely have more experience in Ruby than Python. In a longer version of this talk, I go into more detail on list comprehensions, iterators and decorators. I'll work to include these to some degree for the shorter talk too.

Also, if I say "Python doesn't have these," I'm often saying it in support of Python! :)

<comment><USER7> I definitely appreciated the open-mindedness of the presentation, and I thank you for a comparison without any petty language-flaming :)

</comment></comment><comment><USER9> Technically, you can open up Python classes:

        class Test(object):
            pass

        t = Test()
        def test(self):
            print('ehlo')
        Test.test = test
        t.test()

This is rarely done in practice, however (at least, as far as I can tell)

</comment><comment><USER10> Weird that author never mentioned PEP8 guide. I think it's the main thing that difference Python from Ruby developers. If you follow the PEP8 rules, you can interact with other Python programmers without much problems, and enforce you to be a better and organized programmer.

<comment><USER11> Though the author didn't mention it explicitly, I actually felt that the author did a fairly good job of covering this when he said:

> It's harder to write code that pisses off other developers in Python

</comment></comment><comment><USER12> I know very little of Ruby, but difference 13 states that Ruby has stronger metaprogramming features in that "Python doesn't have define_method, class_eval, and method_missing". Are these really things that can't be implemented with metaclasses and overloading __getattr__?

<comment><USER2> * method_missing is "return a callable from __getattr__"

* define_method simply isn't needed, just set a function as attribute on a class tadaa you've defined a method:

        >>> class A: pass
        ...
        >>> a = A()
        >>> a.foo()
        Traceback (most recent call last):
          File "<stdin>", line 1, in <module>
        AttributeError: 'A' object has no attribute 'foo'
        >>> A.foo = lambda self: 3
        >>> a.foo
        <bound method A.<lambda> of <__main__.A object at 0x100623c10>>
        >>> a.foo()
        3

* class_eval I never really understood the use case for, if it's just to add new methods to an existing class, take the previous recipe and annotate the function with the `classmethod` decorator:

        >>> A.bar = classmethod(lambda cls: 4)
        >>> A.bar()
        4
        >>> a.bar()
        4

but there might be more to it I missed.

</comment></comment><comment><USER13> Thanks for posting. As a Ruby programmer I have been wanting to learn Python since 2 weeks and hopefully this will get me started for good.

<comment><USER14> Except if you have a good reason for wanting to learn Python, I will say as a rubyist you should learn a functional programming language like clojure or scala if you don't know them already. This is because both Python and Ruby are OO and similar in alot of ways.

<comment><USER7> I would say you are right except in one case, which is scientific computing. The OP touched on it, but that is definitely the "killer app" of the Python ecosystem, IMHO. Not that the languages you mentioned don't have equivalents, but if you are a rubyist who just wants to do some heavy-duty scientific/data- intensive computing without stepping too far out of your comfort zone, I can see Python being an attractive option.

<comment><USER15> I am in the exact same situation. I know Ruby, as my first language, but keep running into scientific applications where Python or R is used. The languages are so similar, it is pretty easy to move between the two at a superficial level, but does take away some bandwidth trying to stay current in them both. It seems that if you are going to do web based work, Ruby is a good choice, but it you are going to be actively involved in non-weby stuff, Python is a better choice. I say this as a dedicated Ruby guy, who would rather stay with it, but am being pushed into more and more Python....

<comment><USER16> I know nothing about scientific computing, but I am sure you took a look at this,right? <http://sciruby.com/> It goes like: " Ruby has for some time had no equivalent to the beautifully constructed NumPy, SciPy, and matplotlib libraries for Python. We believe that the time for a Ruby science and visualization package has come..." But status is pre-alpha, last commit 7 months ago... so dunno how much it can help...

<comment><USER7> I don't know much about that project, other than the fact that it isn't mature yet. In my comments above, I didn't mean that Ruby _didn't_ have any libraries focused on scientific computing, just that they didn't have the community and tools for scientific computing that Python has.

</comment></comment></comment></comment></comment></comment><comment><USER17> Broke my heart when he said you shouldn't need powerful anonymous functions :(

<comment><USER2> It's so highly unlikely you'll get them, you should probably resign yourself (or use a different language, or try to approach it from the other direction: convert Python statements to expressions so you can use them in existing lambdas, after all Python's current lambdas are no more restricted than Haskell's, it's just that _the rest_ of Python doesn't play nice with them)

<comment><USER17> I know Python will probably always have shitty suport for functional stuff. What bothered me the most was the bit in his presentation where he said using anon functions are "harder to test", "harder to follow" and lead to code duplication, implying you should instead create a stupid named func like "process_num" instead of passing a lambda to map directly.

</comment></comment></comment><comment><USER18> As a longtime Ruby person who has recently been doing a bit of Python, I find Ruby to be more regular (echoing its Smalltalk heritage, another plus point), but the one Python thing that really jarred - but which I have never seen anyone else complain about! - was having to put all those pesky colons in after defs, ifs etc.

On the credit side, I don't understand why anyone would grumble about the indentation thing - this comes very naturally, and has the pleasing side- effect of gently coercing you into writing shorter functions.

<comment><USER19> If you are allowed to complain about the pesky colons, then we should be allowed to complain about having to put "end" everywhere :P

</comment></comment><comment><USER20> One of the things that bothers me about python is the way you have to specify 'self' for instance methods. Instance methods should be the norm not the exception.

<comment><USER5> Interestingly you can do this:

        class Foo:
            def bar(self):
                return "bar"

        foo = Foo()
        foo.bar()      # returns "bar"
        Foo.bar(foo)   # returns "bar"

So it's not actually specifying `self` for instance methods; it's just a special thing about class instances that calling a method will call its class's method passing the instance as the first argument.

After realizing this, I was enlightened.

<comment><USER2> > Foo(foo, bar) # returns "bar"

I think you meant `Foo.bar(foo)` here.

<comment><USER5> You're right. I'm not thinking.

</comment></comment></comment></comment><comment><USER21> One point about "Functions as variables". Ruby actually does have method objects, which you can access via the method method.

      def add(a,b)
        a+b
      end

      def process_numbers(a,b,method)
        func.call(a,b)
      end

      method(:add) => #<Method: Object#add>
      process_numbers(1,2,method(:add)) => 3

This isn't a normal programming paradigm in Ruby though.

</comment><comment><USER16> "elif" just doesn't sound good :P</comment>


NSA Announces New Civil Liberties and Privacy Officer - <AUTHOR> http://www.nsa.gov/public_info/press_room/2014/civil_liberties_privacy_officer.shtml?utm_content=bufferea2c2&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

<comment><USER2> So, the real problem is that people smart enogh to make meaningful contributions to the modern economy are also by definition going to be too smart to be appeased by silly gestures like this. I doubt even the reinstatement of Binney would be enough to convince the people who need to be convinced. Spooks will eventually have to settle for allowing a secure domestic infrastructure and relying on traditional HUMINT. Legitimate foreign threats such as Iran will be able to construct their own secure infrastructures, and no one smart enough to actually produce economic value in an advanced industrial economy is going to do much undedr what essentially amounts to tyranny. An economy of disempowered 'app' progammers may be easy to subjugate but it is also about as strategically useful as an army of slaves with down's syndrome.</comment>


John McCain's campaign trail: 'The Weasel, Twelve Monkeys and the Shrub' (2000) - <AUTHOR> https://www.rollingstone.com/politics/politics-features/david-foster-wallace-on-john-mccain-the-weasel-twelve-monkeys-and-the-shrub-194272/ <comment><USER2> Dang, do I ever love DFW's rambling. It's so _enjoyable_ compared to everyone else's rambling.

I have always wondered why he uses the word 'which' in a way that nobody else does, as in:

"...he had to eject, which basically means setting off an explosive charge that blows your seat out of the plane, which ejection broke both McCain's arms and one leg and gave him a concussion and he started falling out of the skies right over Hanoi."

The second 'which' does not seem grammatically correct to me, but he does it _all the time_, and he probably knows the rules better than anyone. I assume it's a archaic form that he was the last holdout for?

<comment><USER3> It's very much grammatically correct, but it's certainly fallen out of favor. You'll see it in older scientific papers.

</comment></comment><comment><USER4> So, there goes John McCain (he just died). It's a real pity, he seems to have been one of very few politicians on the Republican side that actually spoke his mind and that stood up to the bully.

His voice will be sorely missed, both within the USA as well as outside of it.

I lost a family member to cancer last week (@60), it went from A-ok to gone in the space of two months, it's a very harsh disease.

<comment><USER5> The voice that matters most for a politician is their vote, McCain did not use his vote to stand up to Trump, quite the contrary.

<comment><USER4> McCain being part of the Republican party would be expected to vote along the lines of that party most of the time so I see no surprise there. But given the ample opportunity that others have had to speak out it is surprising that so few do and allow all this to assume the mantle of acceptability. That McCain chose to make himself heard deserves recognition, even if his voting record is as it is, especially today.

<comment><USER6> His voting record helped cause the deaths of around 80 Yemeni children in the past month. I'm sure their families are relieved to know that McCain opposed outside influence in US elections.

<comment><USER7> Ah yes his voting record magically guaranteed a proxy war between Iran and KSA in Yemen and Syria.

The Middle East was a fucked up place before the impact of US foreign policy and it will still be fucked even if the Us goes into full isolationism, dictatorships and theocracies with forced national identities governing non- heterogenous ethnic groups tend to cause that.

It's the same reason why European empires broke down and why the Balkans are in such a mess.

<comment><USER6> >Ah yes his voting record magically guaranteed a proxy war between Iran and KSA in Yemen and Syria.

His voting record sold Saudi Arabia the bombs used to kill those children, and the attacks could only take place with US support.

<comment><USER7> Ah so it's the bombs that Saudi Arabia uses which are the problem? Do you blame Obama for them as well? He approved on just as many sales heck he lobbied for many of them Or do you blame Obama for his foreign and security policies which greenlit the power struggle between Iran and KSA which started this whole mess?

Hindsight is always 20/20...

But since we're talking about pure logistics here do you think KSA would have problems purchasing those bombs from anyone else? KSA buys as much weapons from Europe these days as they do from the US, if the EU and the US won't sell them bombs then Russia, China or India would, heck KSA is even flying Israeli made drones.

And the whole argument is just utterly shameful, it's nothing more than the old hyperbolic trope of but think of the children.... if KSA only dropped bombs on the Iranian backed houthi rebels would that make McCain's voting history acceptable in your mind?

Because if all it takes is a few tragic oopsies with too much collateral damage then I don't even want to know what you think about everyone else in US politics since no one can hold a candle to the US when it comes to oopsie I didn't mean to hit that....

<comment><USER6> >Do you blame Obama for them as well? He approved on just as many sales heck he lobbied for many of them Or do you blame Obama for his foreign and security policies which greenlit the power struggle between Iran and KSA which started this whole mess?

Yes. McCain has been a prominent advocate for this war for a long time, but the neocon ideology behind it infects both parties.

>But since we're talking about pure logistics here do you think KSA would have problems purchasing those bombs from anyone else? KSA buys as much weapons from Europe these days as they do from the US, if the EU and the US won't sell them bombs then Russia, China or India would, heck KSA is even flying Israeli made drones.

They also need US intelligence support for these attacks to happen. If the US was opposed to the war, it would be difficult to find a replacement able to provide both elements that doesn't have good relations with Iran.

>And the whole argument is just utterly shameful, it's nothing more than the old hyperbolic trope of but think of the children....

It's not "think of the children," it's "think of the innocent civilians being slaughtered and the pain that must cost their families." This isn't some overblown moral dilemma, real people are dying because of these decisions.

>if KSA only dropped bombs on the Iranian backed houthi rebels would that make McCain's voting history acceptable in your mind?

If somehow the only victims of war were willing participants, it seems likely my views would change.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I'm surprised that these topics about McCain are appearing and sticking around. From HN's guidelines:

"Off-Topic: Most stories about politics, or crime, or sports, unless they're evidence of some interesting new phenomenon. [...] If they'd cover it on TV news, it's probably off-topic."

If this is the new standard then it's a worrying incursion of US politics into HN.

Can someone make a convincing argument as to how McCain's death is of particular interest to hacker culture? My feeling is these topics are sticking around because they're honoring a guy that seems beloved by both sides of the political spectrum (no dispute from me there), but it doesn't change the fact that this doesn't fit HN guidelines.

Edit: And before someone mentions it, I'm aware that I myself am breaking the guidelines by questioning the appropriateness of this topic. I think it's a fair discussion to be had when neither the flagging mechanism or HN's moderation staff are enforcing what should be the principal rule of the site.

<comment><USER9> I think the majority of the votes are not due to McCain but because the author is David Foster Wallace, who is fairly popular on HN. The article, albeit about McCain, is broad and at times focused on the realities people involved in political journalism, youth engagement in politics, why we try like certain candidates, etc...

At least that's my opinion

</comment></comment><comment><USER9> This is sort of tangential, but I was wondering if anyone here who is a fan of David Foster Wallace has seen the movie on Netflix about him? I wasn't sure if it's good. Edit: it's called "The End of the Tour".

<comment><USER10> I saw the movie. I had hoped it would be good, but I can't say that it was _meaningful_ to me. The protagonist became a terrible shell of himself to have met his idol, and the idol himself was not a traditional hero, rather a matured one. I admit, I have yet to read Infinite Jest. I truly enjoyed Gravity's Rainbow by Thomas Pynchon, to whom David Foster Wallace was often compared, and I am glad you pointed out the author of TFA so I might read this present piece.</comment></comment>


To Keep Up with AI We Need Bigger Brains - <AUTHOR> https://www.wsj.com/articles/to-keep-up-with-ai-well-need-high-tech-brains-1509120930 <comment><USER2> I think the first thing we should do is to understand how superlative human intellectual performance _as it exists today_ even works, and try to make it commodity knowledge taught in everyday classrooms.

In a typical physics, mathematics or engineering curriculum, we learn a lot of fields, such as mechanics, electrodynamics, calculus, signal processing, control theory, and so on. But we don't learn about the human cognitive processes that went into the discovery of those fields. At best we get a caricatured view of the subject's history. Thus, you might learn that Galois came up with the idea of groups. But what was he thinking when he did that? What were the challenges that he was up against that inspired his idea? In short, how did he _think_ , and how might we emulate him for our problems? Ditto for Maxwell, Riemann, etc.

In all the courses that I took, there was none that explicitly taught me how the mind solves challenging problems or comes up with creative solutions. This knowledge is supposed to be somehow imbibed indirectly by learning the fields themselves, which I think is very inefficient. We need to make dissemination of this wisdom more systematic.

A parallel is the field of strength training, in which specific exercises, equipment, and nutritional methods were discovered over a brief period of time. The professional body builders of today are giants compared to their peers over a century ago. Something similar needs to happen for cognitive skills as well.

<comment><USER3> Bodybuilders today are on mass quantities of steroids, insulin, human growth hormone, etc. The old strong men (Görner, Sandow, etc.) can compare favorably with pretty much anyone not on PEDs today. In general they had smaller chests, but I think that was an aesthetic choice, as I've heard large chests were considered somewhat effeminate at the time.

</comment></comment><comment><USER4> Not only bigger brains. Human I/O as of now is limited.

Communicating one word at a time, one picture at a time or one sound at a time is slow and has significant overhead.

AI doesn't need to transfer information one word, picture or sound at a time. It can potentially pass on any arbitrary representation no matter how large, at massive speeds.

Then, going back to humans: a human expert take decades to train. Once trained, transferring that expertise involves starting the process again. Not the case with AI. Take the state of an AI, serialize it, instance it thousands of times, you've got thousands of experts.

<comment><USER5> > _Communicating one word at a time, one picture at a time or one sound at a > time is slow and has significant overhead._

We don't. We have massive parallelism in how we communicate. The aphorism "a picture is worth a thousand words" is based on that.

All in all, AIs beat humans on _very specific_ problems, but they're worthless for most tasks - and an AI that's specialised to one task is very rarely suitable for another. You can get a human to do quite complex tasks _and_ use initiative with only the simplest of instructions. Don't even need to be at expert-level. Where is the AI that can wash, dry, and fold the clothes, change the baby, make lunch and dinner, fix the leaky sink, and bring the dog in at night? Yet that's a very humdrum day for a human.

<comment><USER4> A man in the middle ages thinks of the future of a time with more castles, more knights, more kings. What you described is similar: an extrapolation of the current state of AI, forever basically, even despite the overwhelming evidence that AI is progressing far faster than evolution ever did in just a few decades. This discussion is not about the current state of AI.

Despite the skepticism, strong AI will happen, maybe not in your lifetime but close enough... after that, given the fact that our fitness function includes dumb variables such as having nice hair my money is on the AI. Given a human and a strong AI (human level intelligence AI), the AI would prevail.

e.g: When a human reads text, the human needs to reconstruct the semantic meaning from the text. The AI can transfer semantic meaning directly. The AI can even share trained neural ensembles or any computation device to perform a specific task.

And btw, there is already some basic form of narrow intelligence built in your washing machine, it's called fuzzy logic, so technically you already have a form of AI washing your clothes.

<comment><USER6> Hi partycoder, both for your (quote) "man in the middle ages", whose vision of the future was biblical apocalypse real soon now, not more kings and castles, and for your contemporary (quote) "human" whose future somehow is also an apocalypse of sorts, if you are not yourself doing something to prevent/hasten this future, may I put it to you that you are much more like a middle-ages man than you think? Apocalypse are convenient exonerators.

<comment><USER4> It seems you didn't get the point of the analogy. My point is that the outcome of paradigm shifts are hard to predict. It would have been hard to predict for a middle ages person to predict the Reinassance and everything that followed after.

</comment></comment></comment></comment></comment><comment><USER7> There is a subtle difference between Knowledge and Intelligence

</comment><comment><USER8> I can't read the full story because of the paywall so I can't be sure of the point.

From the title it sounds as good as if we need bigger legs to keep up with cars. However there are fundamental differences between moving around and thinking. I'd be surprised to be able to get a bigger brain in time to be on par with AIs. I'd be more surprised to have the time or the will to go through all the training that would make me an expert in several fields. However we already have specialized AIs in many fields. An example: I played a few thousands of games of Go, a typical pro played tens of thousands, AlphaGo millions. It had nothing else to do. I'll never match that, even with a bigger brain.

<comment><USER9> I assume it's some superifical point about robot AI being too advanced for humans to debug.

</comment></comment><comment><USER10> Paywall avoiding link: [https://www.facebook.com/flx/warn/?u=https%3A%2F%2Fwww.wsj.c...](https://www.facebook.com/flx/warn/?u=https%3A%2F%2Fwww.wsj.com%2Farticles%2Fto- keep-up-with-ai-well-need-high-tech- brains-1509120930&h=ATPxGv1jZF_9OZ3TJIA4wFcJCEy1JjvwWfeI2yvlh44EarIXdySn1zl_FaI- YvCLu6K66igrrEEgWCUBstwHHVdRiKCeqo5-isuccw&_rdr)

</comment><comment><USER11> Or, you know, people could stand up for themselves and stop working on AI.</comment>


Launch HN: BitsyBox now available to the public - <AUTHOR> http://www.bitsybox.com/pricing

<comment><USER2> Took me a while to figure out what you were selling. You should make that more clear on the homepage.

I also wondered about this paragraph on your features page:

 _As an added bonus, when you use BitysBox for static image hosting, you get a built-in Content Delivery Network (CDN). We use Amazon's hugely popular S3 storage engine, which means that images are delivered by servers around the world. This makes your websites render even faster, with no setup required._

1) S3 isn't really a CDN, so this isn't really true

2) Product name is misspelled in the first sentence

<comment><USER3> That's true, you need CloudFront in order to CDN-enable your S3 buckets. It's not too much more difficult to set up, though, just need to flip a switch on the bucket.

</comment></comment><comment><USER4> 1) I think you'll lose conversions at signup when people are tasked with trying to figure out how many "API hits per hour" they'll need. What qualifies as an "API hit"? What happens if you go over your API hit allotment? Does your site just stop working for the rest of the hour?

2) What qualifies as a "user" on a site? If I am a web developer using the service, do myself and my client both qualify as individual "users"? Can we both use the same account?

To simplify the packages I would probably split them up into three different tiers:

Free \- 5 Pages

Basic - $10/mo. \- 20 Pages

Advanced - $20/mo. \- 100 Pages

I would give all accounts unlimited users and unlimited "API Hits" to reduce confusion. If an individual account is bogging down the system I would deal with that if the time comes rather than try to explain to people what an API hit is.

One thing I find curious is that it appears that the client's server requests the data from BitsyBox via a PHP include in which case I am wondering about the content delivery via CDN claim. Wouldn't Amazon be delivering the data to the client's server, at which point the client's server would push the data out via whatever path it wanted, as opposed to the data being delivered directly to the client from CloudFront/S3?

<comment><AUTHOR> Thanks for the feedback about the packages. We'll take all that into account for any future changes to the offering.

The CDN claim is for the serving static images, not for data served through the API. We're offering a PHP client to make it easier to work with our API, but you're welcome to use your own code to connect, download, and parse data if you want.

</comment></comment><comment><USER5> It would really help to provide a little more info about what the product is on the homepage. From the first look I really had no idea what you are selling. (That small paragraph at the bottom is really way to small.)

Maybe move the pricing lower and have some hooks to get people interested at the top?

<comment><USER5> ah... just noticed the link leads to pricing page. Sorry about my stupid moment.

</comment></comment><comment><USER6> Can you also offer a plan that just charges for API hits. I don't really understand limiting the number of users and pages unless you are hosting pages yourself too?

Oh and your sliders appear to display incorrect numbers while in the midst of sliding (at least on chrome for linux and mac).

<comment><USER2> Agree about sliders. The totals don't update until you release the mouse (FF 3.5, Vista).

</comment></comment><comment><USER7> Seems like a lot of work went into this so props for that.

It is a bit unclear though. I think you need to simplify your message or make it more concrete somehow.

Also, U2's great but it's a little distracting on the video..

That's my 2 cents..

</comment><comment><USER8> I think your landing page is slightly messed up. The red "sign up now" button overlaps the r of "for" when there is still plenty of space beside it.

Browser: Minefield 20091021 on Win XP.

<comment><AUTHOR> Thanks for the heads up. We fixed it.

<comment><USER9> Not for me... (unless you haven't pushed the button yet)

Firefox 3.5.3 on Karmic x86_64

<comment><AUTHOR> Can you guys try refreshing your cache to grab the CSS changes?

<comment><USER10> You might want to integrate some sort of cache busting mechanism to your js/css/image files to prevent this kind of caching problem.

</comment></comment></comment></comment></comment><comment><USER11> Im not sure I understand what your offering or why I should use it.

What advantages, for example, does it have over using AWS directly? (or have I missed the point - it's really unclear)

</comment><comment><USER12> Hm, I was sure this was an even smaller version of busybox.

</comment><comment><USER13> To the extent I understand this, you're selling web hosting. But there's no mention of traffic limits. For my $10/month 20-page single-site:

\- Can my 20 pages of 'content' each be 700MB movies?

\- Can I serve millions of hits / thousands of GB per month?

I suspect the answer is no, but when you talk about "content storage" and "content delivery" such metrics are the usual ways an offering is defined.</comment>


Coder automates own job, gets fired - <AUTHOR> http://boingboing.net/2016/06/08/coder-fired-after-6-years-for.html <comment><USER2> I love the comments trying to let the manager off the hook. My boss would have literally defenestrated me if I didn't know for 6 years that my direct report was running automated tests and not picking up additional work. That's what resource management is for.</comment>