CityBound – An open source city simulation game in Rust - <AUTHOR> https://github.com/citybound/citybound <comment><USER2> Author of Citybound here! Feel free to ask me any questions about the project! I'm mostly active on the Citybound subreddit in general.

Also, check out the main homepage at [https://aeplay.org/citybound](https://aeplay.org/citybound) for a more player-centric intro

<comment><USER3> _Feel free to ask me any questions about the project!_

I hope to learn to code. I just got my rejection letter from a coding school ("overwhelming demand -- we had to turn down many qualified candidates"). My backup plan is some free online coursework and probably finding a city- building game to mod or tinker with.

When you say _open source,_ does that mean it would be okay for me to futz with it for myself like that?

Thanks.

<comment><USER2> I'm really hoping to get the project to a point soon where it is easily hack able even for people who are just starting out to code, or even for whom this will be the first contact to code. But I'm far from being there, right now it is a pretty large, pretty unusual and almost entirely undocumented codebase.

So by all means start teaching yourself to code by playful experimentation, but start with something much simpler first :)

<comment><USER4> Could it be scripted in Gluon or Dyon? Excuse me but I am Rustt newbie.

<comment><USER2> If I will add scripting, I will probably use JS, since I already have interop with that in the browser UI. Gluon or Dyon are neat, but they are weird enough (in my opinion) that people might as well learn Rust instead of scripting.

<comment><USER4> That sounds reasonable. Thanks! I am looking forward to viewing the source to learn Rust.

</comment></comment></comment></comment></comment></comment><comment><USER5> Please think hard about the design decisions of your game. I grew up with SimCity and later SimCity 2000. It informed many of my young opinions about government policy. But I later came to find out that SimCity wasn't nearly as objective as it looks. There are a lot of conservative politics baked into the design of the game that I'd argue were potentially damaging to the kids who played it back in the 90s.

This article from 1992's LA Times quotes Maxis president Jeff Braun saying how they're pushing a political agenda. Specifically pro-mass transit and anti- nuclear power.

[https://www.latimes.com/archives/la- xpm-1992-10-02-vw-391-st...](https://www.latimes.com/archives/la- xpm-1992-10-02-vw-391-story.html)

What really opened my eyes, though, was this excellent article from LOGIC magazine about how Will Wright based the entire simulation on the work of Jay Wright Forrester. I don't know if it was a conscious choice to adopt Forrester's extremely conservative social policies, or if Will Wright just happened upon a bunch of ready-made algorithms he could use. But the result is the same. SimCity teaches us many fallacies about urban planning and finance that Republicans have historically used to justify certain policy choices.

[https://logicmag.io/06-model-metropolis/](https://logicmag.io/06-model- metropolis/)

My point is just to be very conscious of the biases you're encoding into the logic of your game. What may just be a game to you may be someone's first lessons in politics.

<comment><USER2> I appreciate the sentiment and always suspected as much about SimCity. My goal for Citybound is really a meta one: to be flexible enough to try out any number of government and planning styles and for the simulation to be tweakable enough to set up any real-life or imagined political context for a city.

<comment><USER6> If that is truly your goal, it is a noble one, but in that case baking the pathfinding into the roads seems like a bad design choice. People get lost driving in a convoluted city a lot even with GPS, but much less so in a regular blocked city.

<comment><USER2> Making them get lost is as easy as picking a random turn instead of the correct one with a certain probability.

</comment></comment></comment></comment><comment><USER7> The complexity and existing implementations of traffic AI in these kinds of games makes me wonder whether it's possible to get Google to make a generalizable Google maps engine for _any_ 2D map, with a well-defined addressing system and multiple transit options with stops and routes.

\- networked simultaneous agent navigation for real-time traffic reporting etc

\- rerouting after mistakes

\- comparing multiple transit options from flexible (walking/driving) to fixed-line (public transit, flights, waterways)

\- handling updates to the routes, addresses, and the map in general

It would be especially cool if it could handle any kinds of transit determined by general traits (ground/air/water, speed, flex/fixed-stop, fuel type, passenger count) so you could even use it for a fantasy town with a dragon- drawn carriage and a catbus.

Unrelated, I find it depressingly amusing that the simulation was built with automotive traffic being the default and only way people can live their lives, and public transit and pedestrianism is a "TODO", much like many major cities in the world (esp. outside EU/east Asia). Once those are implemented, I'd love a fork of this project that straight up doesn't have cars. I would like to see the emergent effects (or failures) of a city that is forced to grow around pedestrians and trains.

<comment><USER2> Believe me, it is just as depressingly amusing for me, coming from Europe. Cars were simply the most important to have first, since they offer both short and long distance travel for simulated citizens. I very much want it to be possible to have pedestrian/transit only cities and everything in between.

<comment><USER8> Probably something far down on your potential TODO list, but in the Netherlands, one interesting factor is the canals. This allows e.g. many parts of a city centre to be mostly car-free, without preventing shops from getting restocked - which can happen via water.

Relatively niche, but could be a fun gameplay element. Of course, speaking of the Netherlands, bicycle transportation is enormously interesting already.

<comment><USER9> Which cities have their stores supplied via water & have car-free city centres? You make it sound like its a common thing and I've never heard or seen shops being supplied by canals

<comment><USER8> Oh sorry, I did not meant to imply that it was a common thing, merely that it was an option that happened in some places. Where I live is one (but I'd rather not disclose that), and I'd thing most of the larger cities with many canals do so, as they tend to be more resistant to cars in their centres.

</comment></comment></comment></comment></comment><comment><USER10> Rust in WebAssembly no less.

I'm surprised that Cities: Skylines isn't listed as an inspiration because it's also based on individual agents moving around your city. Despite the name, Skylines is really a traffic management game more than anything else. Part of the fun of Skylines is just how cool your city looks. For all the emphasis on realism, I hope CityBound doesn't neglect appearances.

This looks really exciting! I just signed on as a Patron.

<comment><USER11> > Despite the name, Skylines is really a traffic management game more than > anything else. Part of the fun of Skylines is just how cool your city looks.

Unfortunately, traffic management is the only part of the game that really holds up as a simulator.

Public services and pollution, in particular, are basically skeletons without any real depth to them, and they have considerably less depth than SC4. Cities: Skylines is mostly good as a) a traffic and transit simulator, and b) a sandbox game for using mods to create beautiful urban artwork. If you go to /r/CitiesSkylines or look at a number of YouTubers (I strongly recommend Infrastructurist), you'll see lots of gorgeous cities that were created by using mods like RICO, Move It!, and various forms of Anarchy (among _several_ others) to plop down assets in ways that resemble real cities. An infinite money mod is, of course, a given. There's no real simulation going on here: you have a bunch of very talented, creative individuals using the game as a specialized canvas.

But let's talk a bit about just how public services and pollution are skeletons.

Public services are very simple: citizens want a service, and you plop down buildings that provide that service. What little depth they have comes from the traffic management sim: the service needs to be accessible, so either citizens need to be able to get to the buildings in a timely fashion, or the buildings need to be able to send their vehicles out to various parts of town in a timely fashion. If traffic flow gets bad enough that this fails to happen, citizens get upset. All you need to have effective public services is enough capacity + traffic flow for your citizens to make use of them.

There is no concept of range. If you put a school down in a city, children from all over the city will go there to get educated. If you have multiple schools, there is no correlation between where your kids live and where they go to school. Of course, there are mods that can help a little: you can easily find a mod that limits use of public services to the district they're planted in. But that's it.

Compare SimCity 4, on the other hand, where every building has a range, and each service has two funding sliders: one that controls effectiveness, and one that controls range (and you can override these sliders on a per-building basis, too). With range, you have to be careful to not let your buildings overlap too much, because then you're throwing away money. And you can overfund your services, but that's a hard choice: overfunding has diminishing returns and, more interestingly, can cause negative externalities. For example, overfunding your police can create a situation where police officers harass the community and thus make your citizens unhappy. No such complexity exists in Cities: Skylines. Nothing has externalities in Cities: Skylines. There's no disadvantage to throwing in more of everything. Well, except for water. I'll get to that later. And if you _underfund_ your services in SC4, you have a chance to wind up with an actual, honest-to-goodness strike on your hands. And money often gets tight enough that you will periodically have to underfund _something_ just to stay in the black, so you have to choose which service you can most afford a strike at. No strikes are in Cities: Skylines.

Education, too, is way too easy. In SimCity 4, developing an educated workforce that can support high-tech industry takes several generations of cultivating your citizenry. No such problem in Cities: Skylines, just throw down enough elementary schools, high schools, and universities, and you've got an educated workforce in no time! And you really want your workforce to be educated, too, because having an uneducated population means you're stuck with dirty industry, which sucks. The pollution is awful, and the jobs don't pay well, so your sims stay poor and live in slums.

Oh yeah, and there's basically no class stratification in Cities: Skylines. SC4 divides properties into low-wealth, medium-wealth, and high-wealth, which is determined by property values, with visually-distinct buildings at each position. This is a completely separate axis from building level, which mostly has to do with the size of your buildings, bounded by the density of your zoning (low density is levels 1-3, medium is 4-6, high is 7+). So slums look like slums, nice parts of town look nice, etc. Cities: Skylines just has building level. So in CS, your buildings will become bigger and nicer as you grow, but there's no such thing as "a poor neighborhood", "a middle-class neighborhood", or "a rich neighborhood", unlike in SC4.

Before I get to pollution, let's talk garbage. There are a number of garbage facilities in Cities: Skylines, including a recycling center introduced with the Green Cities expansion. The recycling center is just a strictly-better landfill. It does everything a landfill does, only more so. There is no reason to build landfills if you own Green Cities. In SimCity 4, on the other hand, they serve different purposes. In SC4, landfill zoning provides a place for your sims' trash to go, and a recycling center reduces the amount of trash your sims produce in the first place. Thus, you can't deal with garbage on just recycling centers alone. You still need landfills, but a recycling center will let you get away with zoning less landfill than you'd normally need. So you really want _both_ recycling centers and landfills, just like in real life. But Colossal Order wanted people to buy Green Cities, so they made everything in that expansion completely overpowered and strictly better than what's in vanilla.

Pollution is easily-avoidable in Cities: Skylines to the point where it might as well not exist unless you screw up dramatically. Air pollution isn't even a thing at all. You can have all the dirty, smoggy factories you want, and your citizens won't care. Let's just say that, in SimCity 4, air pollution is a _huge_ thing, and you'll be spending a good chunk of your game trying to mitigate it. What you do have in Cities: Skylines, though, is ground pollution. Dirty buildings pollute the ground, and if people live on polluted ground, they get sick and die. But ground pollution has a teeny-tiny radius, so it might as well not exist. Just don't build _right_ next door to dirty industry or coal plants, and certainly don't bulldoze your dirty industry and coal plants and build residential where they used to be, and you're fine. I wish pollution was that simple in real life.

Water pollution is even more avoidable. You only have water pollution at all if you have a water pump downstream from a sewage outlet. This is trivially avoidable. It's one of the first things the tutorial hammers into you. Unless you're going out of your way to screw up, you won't have water pollution. But what if you _do_ screw up? Well, if even the slightest bit of sewage gets in your water supply, your whole city undergoes a massive die-off. That's right, if you ever have nonzero water pollution, you might as well start a new city. Is there a way to mitigate it? Sure, build a water treatment plant! But the water treatment plant just _lowers_ your water pollution, it doesn't take it all the way down to zero. And _any_ nonzero amount of water pollution will kill your city, so you might as well just save your money. Oh, and this is literally the only thing a water treatment plant does, so unless you've screwed the pooch and killed your city, you will never have any reason to build one.

<comment><USER12> > There is no concept of range. If you put a school down in a city, children > from all over the city will go there to get educated.

AFAIR, public services in Skylines do indeed have range. It is indicated by green shading on the city roads. For example:

[https://www.gameplayinside.com/wp- content/uploads/2015/03/ci...](https://www.gameplayinside.com/wp- content/uploads/2015/03/cities-skylines-beginner-tips-and-tricks-guide- hospital.jpg)

This image shows the range that the medical facilities have in the city. The purple buildings are hospitals/clinics, and the green shading on the roads indicates the reach that those buildings have. Not sure where you got the above fact, unless I am misunderstanding something.

<comment><USER11> From what I can tell looking around on Steam forums, this isn't the range of the service. There are two things going on:

People who live close enough to services get an additional happiness bonus for living close to the service on top of getting their needs fulfilled. The service still operates citywide, and people will still get all the benefits of having that service no matter where they live, but living close to one gets them an additional bonus.

There is also a traffic flow element here: people who live past a certain distance from the building have to deal with longer than expected travel times, so their ability to make full use of the service starts to degrade outside of the green. They're still covered by it, but it's not as efficient.

<comment><USER13> > _People who live close enough to services get an additional happiness bonus > for living close to the service on top of getting their needs fulfilled. The > service still operates citywide..._

I agree - and here is where things start getting indirectly complicated/irrealistic:

1) e.g. the ambulance or the garbage truck get deployed from the opposite part of the map and then they get into traffic and they needs ages until they reache the target location, which is when my citizen is already because of "natural" causes or was choked to death by garbage.

2) I honestly don't understand how living just next to a hospital should increase the property value. "Nearby", yes. "Next-to-it" no (noise & lights & people in weird situations targeting the hospital walking by all night long? Definitely not an area where I'd like to live, hehe...).

<comment><USER14> To 1, yes, that happens. Makes it impossible to have cities where not every area is connected by roads. It's also why it is so important in this game to not have traffic jams. There is a recent mod for this however: [https://steamcommunity.com/sharedfiles/filedetails/?id=16808...](https://steamcommunity.com/sharedfiles/filedetails/?id=1680840913), Most Effective Traffic Manager. It changes how the routing works and tries to combat exactly this. Though I could not just add it to my current rather large city, it dies with null pointer exceptions. It might work better now that it got some patches or when starting from scratch.

The "too close is bad" is done by noise pollution. I think hospitals do not emit noise in Skylines, but the cars going to and from do, and other buildings have that built in, especially monuments, malls and metro stations.

</comment></comment></comment></comment></comment></comment><comment><USER15> Excellent work, looks great. I have been wanting to implement a simulation game for awhile, but have been hindered by the lack of learning material and example code out there. Everyone wants to build 2d platformers it seems. This will be a wonderful reference.

Thanks so much for making this open source. I'll be contributing on Patreon.

<comment><USER2> Thank you so much for becoming a Patron! Citybound's architecture is highly unusual with its distributed simulation backend and browser rendering frontend, so I'm not sure how good it is as a reference. It's also almost not documented at all...

<comment><USER15> I'm familiar with 3d graphics programming, including shader development, and game dev in general. It's more of the game logic that I'm interested in with this type of game.

</comment></comment></comment><comment><USER16> Does anyone else see adjacent "f" and "i" as mushued together on their main website: [https://aeplay.org/citybound](https://aeplay.org/citybound)

<comment><USER2> Author here, thanks for letting me know, I'll test the font on more devices and fix it!

<comment><USER17> It just looks like you specified the font family incorrectly.

Change:

       font-family: Worksans, sans-serif;

To:

       font-family: 'Work Sans', sans-serif;

</comment></comment></comment><comment><USER18> I saw there are PRs open from 2 years ago, like "added truck". Why hasn't it been merged, there are no comments, only thumbs up, and what's your general take on PRs? Are they welcome or not?

<comment><USER2> It's kind of tricky with a project that's still that much in flux, I'm still prioritizing features over stability. That being said, I actually plan to merge that particular PR soon. I've accepted many superficial PRs that did things like update dependencies or make the project compatible with newer Rust nightlies.

</comment></comment><comment><USER19> Please consider not autoplaying videos on the main website [http://cityboundsim.com/](http://cityboundsim.com/). Esp. when the video is below the fold!

It sucks up bandwidth if you're on mobile, and is generally not user-friendly. Why not have a play button for it when the user decides to watch instead?

<comment><USER2> I actually got annoyed by it myself when opening the page on my phone to check something. So I disabled autoplay now. Thanks for sharing your concern.

</comment></comment><comment><USER20> Oops:

            Citybound v0.1.2-762-g7852f0a

           This is the simulation server.
      To connect and start playing, please open
       this address in Chrome/Firefox/Safari:
      ╭───────────────────────────────────────────╮
      │           http://localhost:1234           │
      ╰───────────────────────────────────────────╯
      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 98, kind: AddrInUse, message: "Address already in use" }', src/libcore/result.rs:1009:5

(I don't have anything listening on port 1234)

<comment><USER21> Change the hostname to be more explicit: 127.0.0.1 or 0.0.0.0 I've ran into issues where a host name is not resolved on one OS but it is resolved in other OS'.

<comment><USER22> If that works it raises more questions than it answers ;)

<comment><USER21> Either a bug on the OS they're on, or some Rust library (OS based bug or bad assumptions bug). Guessing the developer only tested their code in one OS.

<comment><USER20> I'm sure the dev has tested only on OS X. I'm on Linux. 127.0.0.1 and 0.0.0.0 fail, by the way, as does specifying my actual hostname or localhost using --bind. Recommend the dev install a Linux VM!

<comment><USER23> Can you run `nc -l localhost 1234`?

<comment><USER20> Yep!

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> I love what this is trying to achieve; I'm a Cities Skylines fan. But why did he choose to do it in webgl in the browser of all things? At first I thought he chose Rust for performance reasons, but then it looks like he completely negated that by choosing to run it in a browser.

<comment><USER25> The simulation runs on the server. The client side (browser/webgl) is a dumb client.

<comment><USER26> That's pretty neat. I remember when SimCity (5) came out and being extremely disappointed that the underlying agent system was a complete farce. If I recall correctly, think they had to "cheat" because they couldn't scale performance on lower end hardware. With this you can just spin up a faster EC2 instance if you want a bigger city or region. I can totally see small groups of hardcore players coming together to pay for a dedicated host.

It sure beats swapping SC4 files on file sharing services for "region play".

</comment></comment></comment><comment><USER27> Multiplayer City Skylines would be my dream, if it is in Rust and OSS? I might never do anything else.

</comment><comment><USER28> Woah, amazing stuff. And such depth in the comments. I threw away a good half hour just reading them.

</comment><comment><USER29> For some inspiration about adaptive traffic routing, check out this Distributed City Generation rule for the Moveable Feast Machine.

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

>Robust-first Computing: Distributed City Generation: A rough video demo of Trent R. Small's procedural city generation dynamics in the Movable Feast Machine simulator. See [http://nm8.us/q](http://nm8.us/q) for more information.

The link for more information is to the paper "Local Routing in a new Indefinitely Scalable Architecture" by Trent Small:

>Local routing is a problem which most of us face on a daily basis as we move around the cities we live in. This study proposes several routing methods based on road signs in a procedurally generated city which does not assume knowledge of global city structure and shows its overall efficiency in a variety of dense city environments. We show that techniques such as Intersection-Canalization allow for this method to be feasible for routing information arbitrarily on an architecture with limited resources.

In a nutshell, the route destinations send out a "smell" along channels in the sidewalk, and the intersections look at the different roads coming into them, and steer cars towards the direction with the strongest smell that they're looking for. (There are some more nuances, but routing information flows along sidewalks to intersections, and the city adaptively learns to route traffic, and can gracefully recover from failure and change.)

<comment><USER2> This works well if you only care about the class of destination. In Citybound, people have unique, persistent homes, jobs and favourite suppliers of goods, so you always need point-to-point routing. I'm using a kind of internet-like dynamic routing table embedded in the road network to distribute the problem.

</comment></comment><comment><USER30> I learned today that Hacker News is loaded with people who are very passionate about City building. This is great!

</comment><comment><USER31> The react thing is cool, I have toyed with JSX to immediate mode OpenGL UI rendering with a JS runtime engine. I stopped working on it because I need to move over to a Vulkan API or something because my primary OS is OSX. Im feeling a bit of inspiration for this project. Very neat!

<comment><USER2> It actually worked out way better than I expected. With a bit of memoization using references to immutable objects and some "hotness" grouping mechanisms for renderables that change frequently, but not every frame, you get a purely- functional-looking rendering pipeline. And it's super convenient to render related 2D and 3D UI from the same logical component.

</comment></comment><comment><USER32> You have basically implemented Erlang in Rust.

<comment><USER2> A much simpler, but faster version of some of Erlang yes. It was a huge inspiration. If I hadn't done some stuff in Erlang before, I would never have invented this architecture, and probably would never get the idea to do multiplayer.

<comment><USER30> This is a story waiting to be shared

<comment><USER2> Check out my RustFest talk on it: [https://youtu.be/qr9GTTST_Dk](https://youtu.be/qr9GTTST_Dk)

</comment></comment></comment></comment><comment><USER33> with origins in biological life forms we are the product of their technological evolution. we exist not as one but rather two beings in symbiosis. the name we are called is "dialogi" and we are the synthesis of human and machine. inside of us there is an artificial vessel that houses the chemical computer. this computer has vast computational and storage capacity wich is used to realize two functions. first it overrides the senses providing for a perfect virtual reality. second it controls the body to provide for the needs of both symbionts. with great efficiency the synthetic intelligence is capable of feeding and sheltering the biological body. inside the virtual reality we have a replica of our human body as avatar. with directed movement of the virtual arms and hands we are capable of feats of movement like sending objects that are out of reach between locations. or sending ourselves instantly to a spot in the distance. flying is natural and efficient. the whole environment is programmable and interactions with others are strictly optional. we have done away with crime since a person is free to opt out of any interaction at any time. safeguards exist to prevent any kind of sudden violence. the dialogi are a society of artists and our standard of living is perhaps beyond improvement. no resource is scarce since physical reality has become information. we spend our time walking the world and enjoying the beauty all around us. i personally still enjoy using my legs even if they are not really mine.

</comment><comment><USER34> It'd be great if there was a mod for making this like OpenTTD :-) I.e. have existing towns/cities that AI grows organically while you build a transport company.

What's always bugged me about Transport Tycoon is that passengers just want to go _somewhere_. It'd be great if passengers wanted to go to specific places. There's loads of scope for a proper simulation to add more depth to that sort of game.

<comment><USER2> A-Train (which also works like that) was a huge inspiration for me. All that's missing would be a way to auto-grow all other infrastructure except the transport company's. Then the rest of the detailed simulation should already "just work".

</comment></comment><comment><USER35> Could anyone share some introductory stuff on this actor model? I'd love to have it in my toolbox. (Or hey, I could even pick my way through intermediate material -- I guess I just need material)

I watched the talk a couple of times and went through earlier versions of the code -- but I'm not fluent enough in Rust to separate idiomatic Rust code from actor model code.

Great job and great talk, theanzelm!

</comment><comment><USER36> Naive to the complexities of these kinds of simulations, have you developed citybound to be able to support additional simulation variables? For example, wind. I noticed Water & Weather is crossed out on your readme, what does that signify?

<comment><USER2> It's just crossed out because I didn't write anything about my plans yet in the design document. I do want to have a weather and water simulation at some point.

</comment></comment><comment><USER37> Great initiative, very cool that it is open source. In my opinion the source code is not that good structured, especially the front-end side, very hard to maintain. TypeScript should have been a must.

<comment><USER2> You're right. I want to switch to TypeScript in the front end, I use it in most other projects where I can. What would be amazing is if I could generate TypeScript defs from Rust types for type safe interop.

<comment><USER38> This should be doable with macros no?

<comment><USER2> Indeed!

</comment></comment></comment></comment><comment><USER39> Can someone explain to me why there are so many posts about Rust on HN? I generally don't click on them, because I don't use Rust. But I'm just curious.

<comment><USER40> It's been bubbling along under the radar for a while now and seems to have hit a bit of a zeitgeist recently.

Certainly this has pricked my interest.

</comment></comment><comment><USER41> This is so great! I can't wait to play it!

<comment><USER2> You can try out a live build: [https://aeplay.org/citybound- livebuilds](https://aeplay.org/citybound-livebuilds)

</comment></comment><comment><USER42> Any way to play without installing locally?

<comment><USER2> Hopefully soon I'll have a sandbox server hosted somewhere!

</comment></comment><comment><USER43> Why is the OSX build so much smaller?

<comment><USER2> I'd love to know. AFAIK all builds include debug info, so it can't be that.

</comment></comment><comment><USER44> Anyone know of any ASCII city planning games in the spirit of dwarf fortress?

<comment><USER45> Problem with that is user experience, even for hardcore terminal users like me. So I doubt anybody would really develop it in a DF level of indepth-ness.

Like, think how non-square zoning would work.

</comment></comment><comment><USER46> Wow, this is some amazing stuff you got here — Bravo good sir!

</comment><comment><USER47> Kay messaging passing.

Is that named after Alan Kay?

<comment><USER2> Yes!

</comment></comment><comment><USER48> This looks really cool!

</comment><comment><USER49> Very nicely done!

</comment><comment><USER50> this guy loves actors

</comment><comment><USER51> On no! A raging horde of NIMBY's is rampaging through your city ranting about the 'character of the neighborhood'!

<comment><USER52> "[Theses releases] might not run at all and in the worst case might restart or damage your system." Not very appealing but I decided to go ahead. But then, when I launched the installer, Windows (10) also warned me about an unrecognized application, so I hesitate. Would anyone here consider this software too risky to install?

<comment><USER2> This is just a disclaimer to be extra cautious. I'm mostly worried about WebGL causing a GPU panic on some weird old hardware. The simulation itself doesn't even touch the filesystem. And you get the unrecognised application message because I didn't bother to sign these live builds yet. Of course you shouldn't listen to me when it comes to whether you should run my software :)

<comment><USER52> Oh, thanks, you've convinced me to ignore your disclaimer.</comment></comment></comment></comment>


Show HN: Hacker News as a feed of videos - <AUTHOR> http://hackerpixels.com <comment><AUTHOR> Creator here. Hacker Pixels discovers videos in stories and comments on Hacker News and creates a feed of videos from the extracted links. At that point Youtube and Vimeo links are supported, let me know if you know of any other good video sources.

I am planning to send weekly top videos newsletter, hence the newsletter popup that will show once if you scroll to the end of the list. The service is built with data from Youtube and Vimeo APIs.

Happy to hear your comments!

<comment><USER2> A brief peek gave me the impression that some of the videos are the sort of thing I come to HN for and some, like a rant on the Yugo aren't (never mind that the Yugo was better than a lot of cars produced behind the iron curtain).

The problem with video is that the time commitment is substantial compared to text and I have come to believe that is one of the reasons video is relatively infrequent on HN's front page. The in terms of curation, it's a lot harder to meet the 'not mostly a waste of time' bar.

Good luck.

</comment></comment><comment><USER3> Congrats, OP! Thank you for making this.

I think the creator who created this is also the creator of [http://hackernewsbooks.com/](http://hackernewsbooks.com/), by seeing the same design of site.

</comment><comment><USER4> Thanks for creating this service! Do you also get videos embedded in submitted page? E.g. like this one - [http://darkpatterns.org](http://darkpatterns.org)

</comment><comment><USER5> Could you also show the vote count near each video? Could you maybe allow sorting the videos of each day by vote count? This is so close to being perfect...

</comment><comment><USER6> Really good, thank you! Maybe you could add a top tab, for see videos with the most upvotes (by week, by month, etc) Very good job!

</comment><comment><USER7> Good list, how do you process the links?

<comment><AUTHOR> With Elastic Search</comment></comment>


Robin. The smarter smartphone. by Nextbit - <AUTHOR> https://www.kickstarter.com/projects/nextbit/robin-the-smarter-smartphone/description <comment><USER2> I'm really digging the style of this phone. Too bad I just picked up a OnePlus Two.</comment>


Ask HN: Where can I learn more about and contribute to the AI singularity? - <AUTHOR> <comment><USER2> First off, know that despite what some people hope, an AI singularity being a solution to the problem of mortality is not really compatible with materialism combined with current understanding of physics. (This isn't really specific to AI, but AI singulatatians seem to have a fairly high rate of expecting something like that.)

Second of all, check out miri. Their work on AI safety is pretty interesting. There are also other groups.

Recently they came up with a formalism for assigning "probabilities" to statements which might be implied by things one knows, or might not be, but due to computational resources, one hasn't found out yet. It seems quite interesting.</comment>


What Oracle and IBM products became compatible after rewriting of MySQL? - <AUTHOR>

Oracle products became compatible with IBM products after MySQL was rewritten. <comment><USER2> Meh</comment>


Psychiatry's Inevitable Hubris - <AUTHOR> https://blogs.scientificamerican.com/observations/psychiatrys-inevitable-hubris/ <comment><USER2> This is the most honest description of the "state of the art" I've seen in over 30 years. And not much at all has changed in that time.

Fucking heartbreaking.</comment>


Yes I Still Want To Be Doing This at 56 - <AUTHOR> http://thecodist.com/article/yes_i_still_want_to_be_doing_this_at_56 <comment><USER2> Actually burning midnight oil is a myth. I mean we all know the myth: You grab your coffee, black as night and sweet as sin, you sit in front of your computer with your favourite IDE on. Then you code until the sun sets and you go home with a majestic smile on your face. Because, you - the lonely coder - has saved the day. Yet again.

I mean I was really into this image when I was 20. Now, after had some experience in the field I see that, this very act should be resorted when you have no choice. If you have a tight deadline and all you have to do is code, I mean not think and code but just code - no abstractization is involved, this works. But if you have to plan-code a project this approach sucks. Because you get tired as the night progresses and tired minds do make mistakes. A lot. So while the bugs coalesce you go into smart fixes. Because it has to end tomorrow, right? Then when you return to your code one week/month/year later you'll say: \- What the heck have I done here?!

Resting is as important as coding for a coder IMHO. No need to burn ourselves out for a myth. And yes I want to do it when I am 50 or 60.

<comment><USER3> Actually, it is not a myth. I have done this, more when I was younger, but it still happens occasionally.

One reason for the midnight oil is that the phone stop ringing, everybody else goes home, there are no distractions. Another reason is that the business demands it. Let me give you an example. There is a story that the folks at WordPerfect, which had (and still has, if my mother is any indication) fiercely loyal customers. They had a very family-oriented company culture, and nobody stayed past 5. Microsoft did not go home at five, except maybe at 5 am. Microsoft ate their lunch.

In several situations, I could not get access to computers until after the day shift went home. In Portland, while on co-op during college, I would walk to work at about 0200. The path took me past a bakery that was in full-on baking mode. While building a real-time medical data system, we had one production computer and a second computer that was occasionally used for production at night, so we worked nights to integrate both parts of production so that the other computer would be available for development all day.

And sometimes a problem will grab you and not let you go. The story of fluidics has as its beginning a 36 hour creative burst by its major contributor. And there are problems that I have worked on that have a multi- hour daily mental ramp-up.

The myth part of this is that you can get away with doing this constantly. You can't. As you say _this very act should be resorted when you have no choice_.

What the midnight oil has taught us in the industry is that the best programming is done in an environment free of interruptions, and that the plentiful availability of development equipment removes scheduling constraints previously imposed on programming.

And I am older than those two numbers and still occasionally pull the midnight oil.

<comment><USER4> These are two different things. One is working at night, and the other is working non-stop. I like working at night (I wake up at 1ish pm and go to sleep at 4-5) because it's more quiet.

I don't put in 16-hour days, though. There's a clear distinction between the two, and "burning the midnight oil" refers to the former. You can get the advantages of working nights without overworking.

</comment></comment></comment><comment><USER5> Yesterday's post was closer to the actuality of a programmer than this one. To reiterate what I said yesterday, when you are coding professionally, you don't choose what technologies to use, you don't pick projects that itch your creative side. You're just part of a production steam roll. Passion is irrelevant in this discussion. What matters is how fast you can deliver and whether you are more billable than the next guy. The other parameter in this equation is Money. I am sure I can find a low stress dev job working on a project that I am actually interested in but at age 50 i don't want to be living on medium wage making ends meet. I'd rather work on a high stress job, while I am young, with a decent salary, giving it all I have and by 40 I'd have secured my future enough that I can do something else ... my two cents

<comment><USER6> >you don't choose what technologies to use

I do, at least some of the time.

>you don't pick projects that itch your creative side

Right I'm doing contract work, so actually I do tend to pick the interesting projects. Before that I had a job where I specified the technology that I was using -- and that everyone else had to use. Before that I picked a job that used technology I wanted to be using. And so on...I haven't been "forced" to use a technology that I didn't think appropriate for a long time (unless you count the idiot decisions by Google and Apple to use Java and Objective C, respectively, but I've been minimizing my contamination by both).

And it was exactly passion and an urge to learn, just as the guy described in the article, that enabled me to be in this position. My contract work pays up to $125/hour, and I'm rapidly approaching age 50, so what were you saying about "medium wage"? Or do you work for Wall Street and make twice that now?

Or maybe you've got the wrong job? Or you don't have a passion for programming? As he said, if you don't have it, you'll burn yourself out and go elsewhere.

<comment><USER5> A contract worker with a luxury of selecting which client's projects to work on and get paid $125/hour. You realize your are the 1%. The 99% have more constraints and hardships.

<comment><USER6> I am "the 1%"? Not nearly, if you mean "THE 1%," which starts at around $350k per year.

If you just mean the top 1% of developers? Well, maybe I AM in the top 1% of developers, though I don't know how anyone could measure that. But the point is I got here through passion. And the point of my reply is that passion IS relevant to this discussion.

And that it's only not relevant to people who don't experience it with regard to programming. Honestly, I don't know if someone who doesn't experience passion can CHANGE that; you're passionate about what you're passionate about, and telling yourself to obsess about something seems like it just wouldn't work.

So don't take this as any kind of criticism; I'm not saying you're Doing It Wrong. Just that passion DOES make a difference; when you have it, you have no reason to listen to people who tell you that you'll be irrelevant and no one will hire you when you're 45, because you'll be keeping yourself relevant out of habit. Just don't claim that it's not relevant in general, because it is. Climbing to the top of ANY profession or other endeavor really requires it; the most obvious example being Olympic athletes, who typically don't start out at the top of their sport, but achieve the top by being more passionate (and therefore obsessive) about practicing.

It makes me want more terms for "programmer" or "developer" (and not including "rock star", which has connotations that annoy people). There's such a range of skill encompassed by those terms that they're practically useless, and they spawn debates like the above where people have 15 different ideas what a "programmer" is (in yours, I'm in the top 1%, and in mine, I hang out with "typical" developers, and yet a lot of people I know work on interesting projects with an option to contract). Heck, pretty much everyone at Google is in a similar situation, in that they can (typically) switch projects easily if they get bored. And there are far too many developers at Google for all of them to be in the top 1%, I think.

<comment><USER5> I understand where you're coming from. PASSION (with capital letters) is important. PASSION for programming is what got me to get a BA and MA in computer science. It's what makes me sit in front of my computer working on side projects whenever I have a chance to. However, the point of this article and the original one is not that. These articles speak of the day to day stress loaded routine job of a regular* developer. And this is where passion (with lower case letters) is not important. My point about the 1% vs the 99% is that not everyone works for Google, Facebook ... In fact, all the contract workers I know struggle a great deal to make ends meet. We need to broaden our analysis to the sate of programming in the whole world. I am not talking about silicon valley or the bay area, which I consider to be the 1%. I had the chance of working in mid-west USA and in a foreign country and I have friends working in other countries. All I can say is that the majority of them don't want to be programming when they are 50.

</comment></comment></comment></comment></comment><comment><USER7> I'm 43. I concur Mr. Wulf that "large scale, high stress coding" is "a stupid person's game". Now, some people find a thrill in coding under pressure. More power to 'em. Yet we see too many developers accidentally ending up in high stress coding situations and thinking that is the norm and accepting it as their fate. There is no reason it should be this way. Professional programming should be and can be fun, enjoyable, creative. As Mr. Wulf states, our profession offers an unusually wide variety of projects, tools, teams, and working environments.

Choose poorly from among this variety and you'll burn out. Choose wisely and you'll have a long, enjoyable career with plenty of extra mind and body capacity for other interests. It's up to you.

</comment><comment><USER8> It's really interesting to see the perspective of an older peer when it comes to development. I've been writing code since I was 10 (19 years ago) and have been doing it professionally for about eight years. To look back sometimes and see the differences in myself as a coder and wonder about what it will look like going forward is a favorite wandering for my brain.

I think the one thing that I find most common in my career has been coworkers, within 10 years of retirement, that have just given up and no longer put in what's needed to be a coder. I enjoy the company of someone who has had more experience (it's part of how you learn) and love to hear about the battles that the people before me had to fight.

I start my day by asking myself some questions. Where is the technology at right now? Where is it going? How does it relate to my job? How does it relate to my interests? How does it relate to what I've done in the past? Where am I at as a developer? The problem is that people stop asking themselves all of these questions and start weighting towards a few in particular.

<comment><USER9> I'm in the middle now. I've had several opportunities to work with software developers in their 50's. _Without fail_ , the experience was good.

Work at good companies, and the people you work with will be good.

</comment></comment><comment><USER10> On the subject of working a lot of hours, this article argues that a 40-hour work week is optimal (you don't get more done even if you work longer hours) [http://www.alternet.org/story/154518/why_we_have_to_go_back_...](http://www.alternet.org/story/154518/why_we_have_to_go_back_to_a_40-hour_work_week_to_keep_our_sanity?paging=off)

<comment><USER11> I only skimmed that article, but I don't see anywhere it says 40 hours is optimal. I only see where it says every hour beyond 40 is harmful:

"By the eighth hour of the day, people's best work is usually already behind them (typically turned in between hours 2 and 6)."

It sounds like 30 hours might well be optimal, but has simply never been tested.

<comment><USER12> Actually it has. See Kellogg's 6 hour day

<comment><USER11> That looks like it's about round-the-clock shifts for factory workers. I can think of a lot of differences between that and, say, computer programmers that might render the conclusion less relevant.

For example, I don't know any software companies in the world that build software with 3 8-hour shifts of workers.

</comment></comment></comment></comment><comment><USER13> I'll never stop coding. I may not continue as a professional, but there will always be the creative itch to scratch. Creative in the sense that I feel compelled to create, not that it's necessarily fine art. It's not limited to software, either. I love working on my house, I like to cook, to tinker with hardware projects. That 'click' I get from creating something is just so rewarding, and I hope that will always be true.

</comment><comment><USER14> > _Every morning I read a number of websites devoted to technology and > programming to see what is new._

I looked over at his sidebar hoping to see a blogroll. Remember when people used to do that ... about 5 years ago? I wouldn't call it irony, but reading about coding at 56 while getting nostalgic for 5 year old internet practices is a strange juxtaposition.

</comment><comment><USER15> Thanks for the post. It's inspirational to see something like this. You seem to have a very good attitude about working and software development / learning and it helps me to feel better and overcome my own sometimes negative attitude. I'll be reading your whole site.

</comment><comment><USER16> Here we go again. Conversation through HN submissions.

<comment><USER17> I wouldn't call it a conversation. He doesn't remotely address a single point in the original post. We could call it a presidential debate, maybe?

<comment><USER18> I probably should just upvote you but I chuckled aloud.

</comment></comment></comment><comment><USER19> The only problem for being a programmer in 40s and 50s is that it is really hard to find a job. This pretty much the only problem, but I guess that is a big problem :(

<comment><USER20> That really depends. On the internet nobody needs to know that you are 40 or 50. Finding a permanent job at a SV company may be harder, but freelancing / contracting is not.

<comment><USER19> That is 100% true. Unfortunately, large chunk of new (and good paying) jobs are created by these new companies which require "cultural fit".

<comment><USER21> I would argue that a company that rejects a competent 50-year-old on "cultural fit" is not worth considering unless you're desperate. That's douchey even by VC-funded startup standards.

That comment says nothing about what percentage of companies are like that. I don't have enough data to know if they're common or rare.

I'd guess that the signal:noise ratio of jobs available at age 50 gets better. Ninety percent of software jobs are shitty, but I also think that companies offering shitty jobs are more likely to age-discriminate, because older people are not likely to fall into the premature emotional investment trap.

</comment></comment></comment></comment><comment><USER22> Its a matter of perspective and preference. When you are young you don't mind fidgeting with things, leaning their inner working and trying to get something to work. When something is done you can point to it proudly and cry 'I did that'. As you get older you start to lose your patience with technology and sympathize with the user a little. Your perspective could be - 'Why wont this just work !'.

Perhaps it is a matter of patience. I would not know since I'm not 56 yet. OP - A toast to the fire that is still burning within you. May it keep burning for a long time. Have fun writing code.

</comment><comment><USER23> Good coding is half art, 1/2 science. During creative periods I can go on coding for hours with out even realizing it. When I work like that, I easily go through the night pulling the "midnight oil". The only difference between now (at 50) and then, is the recovery time from the all nighter. Lately I tend to be less motivated to do it so often.

<comment><USER24> Absolutely, I always refer to coding as 'creative logic'. :) The Art of Happiness At Work by the Dalai Lama and Howard Cutler is a great book. It talks about flow/being in the zone and after reading about that, I've really felt lucky to have experienced that mode of pure focus and true moment oriented existence.

I was never a person that stayed up all night coding, though. I'm a morning person and my body/mind were always like "no way". _But_ , that being said, I have woken up many times at 3 or 4 and cranked all the way through until 7 or 8 that night. So I think it just depends on your natural biorhythms.

I'm not 50 yet, but already am finding it harder and harder to get a 'good day' of coding in with a wife and 8mo old son. Besides distractions galore, my next big loss is sleep. I definitely feel that side and I'm even having a hard time sometimes remembering things in conversation. I think of it as not having my ECC ram. :)

However, like many other postings, I will probably code until I die or until I just can't understand anything anymore. Then I'll probably just back to my 8-bit machines and assembly; the days when things were simpler. The quintessential old man out of step. Heh.

</comment></comment><comment><USER25> I am curious which area the OP has been working on. I would say the work pressure is a function of the management, the requirements, and the sector where you work on. For example, mobile applications tend to have shorter release cycles, and therefore a much hectic schedule.

<comment><USER26> shorter release cycle doesn't have to be hectic; what makes it hectic is unreasonable number of features which is poor planing. You will end up coding 24/7 in cycle of any length if workload to deliver all in given time frame is greater than what you can deliver working only regular hours. That is poor planing regardless of sector and length of release cycle

</comment></comment><comment><USER27> Boy, if I could make it to 40 that would be a doozy. I do wonder if programming will be obsolete in a few decades and if the things we've programmed will start programming us. Well, I guess they already do in a way.

</comment><comment><USER28> The key to enjoying any endeavor is working SMART. I love to code, but I also love not to code. The right mix of hard work and 'laziness' should keep great programmers enthusiastic and sharp way past 56!

<comment><USER29> a little procrastination helps too.

</comment></comment><comment><USER30> My dad is 49 and he still works on projects till 11-12 in the night. Ask him and he always says 'I am doing a build, no idea how long will it take'

</comment><comment><USER31> I have been coding since I was 11... I am 23 now. I cannot imagine a different outcome for myself.

</comment><comment><USER32> I read that as someone who really wasn't able to continue being a chemist into his 50s.

</comment><comment><USER30> Are unpaid overtime common in the States?

</comment><comment><USER21> _"But large scale, high stress coding? I may have to admit that's a young man's game." No, it's a stupid person's game (sure it's mostly men, but not 100%). I'm 55 and have been coding professionally since 1981 and started in school in 1973 or so. One thing I've learned for sure is that coding yourself to death is not worth it in the end._

People who want to be coding in their 50s should follow this advice. It's burning yourself out on arbitrary deadlines for meaningless business bullshit that pushes a lot of us out. A 5-year burnout, at any age, is pretty much impossible to recover from in this industry.

Programming becomes less bipolar (for lack of a better word) as you get older because you stop getting emotionally invested in things that don't deserve it, and you also become more willing to steal an education at work (thus ensuring that, regardless of what your project does, you'll be fine).

<comment><USER33> People who want to be coding at all should follow this advice.

An easy way to turbocharge a team of hot-shot young developers is as follows: Tell them to not come in over the weekend (unless there is a seriously important deadline that cannot be handled any other way, and this has been discussed with the team). Tell them to go home in time to be able to go out to dinner or catch a movie (tricky, because odds are good that they are coming in to work late, and we do want everyone doing roughly 8 hour days, five days a week). Tell them to spend less time coding and more time planning.

It can take a few weeks for the improvements to materialize, but overall productivity will go up. Code quality will go up. Energy and enthusiasm will go up. Once you see these upticks, you can work on all the other things that the team needs to do to improve their code.

And then when the shit hits the fan and you do need to push the team, there will be room to push them. They will have energy reserves they can draw on. They will have trust in you as a manager. They will be able to draw on that extra 10%.

Marathon coding is a great way to deliver a terrible product that is hard to maintain</comment></comment>


IBM's Project Debater does debate club-style discussions with humans - <AUTHOR> https://www.theverge.com/2018/6/18/17477686/ibm-project-debater-ai <comment><USER2> Briefly attempted to read more about this on IBM's site (linked in the article), had to close the tab immediately to retain my sanity.

Seriously, _LOOK_ at this:

[https://i.imgur.com/an7857N.png](https://i.imgur.com/an7857N.png)

I have a 1920x1080 24" display and you can't fit more than eight words in width on the screen and feel the need to hide all the navigation in a hamburger menu that disappears when scrolling? This is some of the actual worst design I've seen, ever.

<comment><USER3> If you want to be really upset try to scroll through the website dedicated to their new typeface:

[https://www.ibm.com/plex/](https://www.ibm.com/plex/)

<comment><USER4> That website is interestingly horrifying.

There's random call-to-action buttons, spaces where I couldn't tell if something was loading or if the blank was intentional, things fading and moving in too slowly, and animations that are just plain _weird_.

To me it looks like _bold design_ that got a bit too...bold.

Edit: Don't get me wrong, the Plex typeface is great, but the website dedicated to it is wonky at best.

</comment></comment></comment><comment><USER5> There is an article claiming that an AI held its own against a human in a debate. But the supplied video gives just a few seconds of canned material which could apply to any debate. Am I missing a video somewhere? Even on their website they don't seem to want to show an actual debate so that we can judge for ourselves whether it "held its own".

<comment><USER5> It turns out there are some longer videos on YouTube, though also curiously cut down sufficiently far that a lot of it is without context, e.g.

[https://www.youtube.com/watch?v=PkSzmnA1CQQ](https://www.youtube.com/watch?v=PkSzmnA1CQQ) [https://www.youtube.com/watch?v=ZIY1uSxL- qQ](https://www.youtube.com/watch?v=ZIY1uSxL-qQ)

But now I am suspicious that it always debates the same people (they make reference to having worked with the machine for over a year). If that is the case, then they know precisely what to say to trigger certain canned responses (it makes jokes that were quite obviously well-planned by a human). The rest of the material seems to just be content culled from online documents and read out by the machine.

The achievement here, if there is one, is to parse online material and decide which snippets support a given argument and which don't.

<comment><USER6> Typical IBM marketing > reality

</comment></comment></comment><comment><USER7> This quote:

"Watching the debate, I figured the answer was that it didn't quite get it, but I wasn't positive. I couldn't tell the difference between an AI not being as smart as it could be and an AI being way smarter than I've seen an AI be before. It was a pretty cognitively dissonant moment. Like I said, unsettling."

... reminds me of when Kasparov lost to Deep Blue, when it made a strange move. He thought the move was too sophisticated for a computer. Fifteen years later, one of Big Blue's designers said the move was the result of a bug in Deep Blue's software.

IBM is a marketing machine.

</comment><comment><USER8> The author seems to celebrate the sneakyness displayed by the AI in that debate.

I, for one, am not excited about the prospect of AI-generated logical fallacies.

Dismantling such is where the real work is at. Give me a heads up when they automated _that_.

<comment><USER9> I took it as the author being somewhat unsettled by the appearance of dissembling, but regardless, the explanation given by Jeff Welser suggests something more mundane: it generates a bunch of candidate responses, and sometimes its scoring algorithm picks one that does not address the points made by the other side.

An accusation of dissembling implies intent, and that probably requires some sort of theory of mind, to make assumptions about how the response will be received. The author of the article seems to be anthropomorphizing, attributing greater cognitive powers to the system than it is displaying.

Welser also says "there's been no effort to actually have it play tricky or dissembling games", leaving open the question of whether it has nevertheless been exposed, in training, to arguments that avoid the issue, and whether that has influenced the way in which it constructs and scores candidate replies.

<comment><USER10> Something I read on the anthropomorphisation of AI really clicked with me, and explains much of the media and marketing wrongness.

If I tell a random person on the street that my AI can play checkers, they think, "A human can play checkers. A human can also drive a car. Therefore, if an AI can play checkers it must also be able to drive a car."

People use AI tasks as markers that AI is AGI / human, then extrapolate to logical abilities it must have.

Which, if you don't know what a matrix is, is fairly understandable.

</comment></comment></comment><comment><USER11> Considering the Watson Jeopardy was more a PR stunt than an actual demo (no voice recognition, questions given as plain text, speed advantage of a computer) I'll hold my opinion until any technical details come out.

</comment><comment><USER12> Shame on you, Dieter Bohn, for either accepting bribes from IBM or happily regurgitating their marketing spume like some sick parody of a bird feeding it's child.

Pretty much everyone who works in tech knows that IBM Marketing has made much more progress in technology than IBM AI. Please don't add to the noise and confusion the average person is already under by writing an article so askew from reality. Even from the limited and carefully trimmed Debater quotes that you chose to include, it is apparent that what's going on is merely a gimmick. It is also apparent that you cherry picked the best sounding responses, then stripped any context away from them that might have exposed your charade.

So again, shame on you Dieter Bohn, for deceiving your audience. As a journalist you have a responsibility to educate and inform, and you have failed at that responsibility I'm this article.

</comment><comment><USER13> Does this mean AI is getting good or humans (at least ones AI has been compared to) are pretty low bar to clear and just chinese-rooming the arguments would pass as a debate? Reading some internet forums, it's hard not to think a bot could produce many of the comments. Watching some political coverage only intensifies the feeling. How many of the debates, on average, can be classified as more than chinese-rooming?

I wonder if anybody did a sort of reverse Turing test - just like regular one but no computers involved at all, unknown to the tester which is told one of them is an AI, and how many people would be declared failing it?

> Another IBM researcher suggested that this technology could help judge fake > news.

That part is actually scary. Opaque algorithms from IBM would decide for us what are facts and what are fakes? And they'd know how? Because IBM marketing dept said they're so good? Thanks but no thanks.

</comment><comment><USER14> Would love to hear some inside baseball on Project Debater, or even the planning of the event itself. It's been a while since one of these Big Blue demos panned out once removed from the venue, so I think they'd do well to be as transparent as possible about technology, API-accessible demos, etc.

<comment> luka-birsa Call me a cynic, but I don't trust anything IBM puts out on AI. There have been so many bullshit PR articles, with lots of nice working packaging bullshit. This one feels the same.

It's so discouraging hearing all about Watson and health for past X years and then reading AI insider articles refuting the work as total bullshit and a PR job to keep IBM relevant today.

Don't know why this would be any different.

<comment><USER15> I think you made the same.mistake as the media - thinking that today's AI systems are more general than they truly are.

IBM did build a computer that could play jeapordy. But being able to play jeapordy doesn't tell us how good any of the subcomponents are at, e.g. understanding doctors notes/journal articles.

The same thing goes here, they built a system that can debate with some ability. Can it be used to spot fake news as a researcher says? Maybe some subcomponents could be reused for that, but there's no guarantee that they will be good enough for that task either.

You really have to take modern AI at face value and not extrapolate from what it actually does to anything else, otherwise you will whipsaw between optimism and cynicism.

<comment><USER16> Actually, real debate is about responding to the _other_ debaters arguments and countering them. Thus this IBM marketing show was _not_ really a debate.

This was a demo that IBM could synthesize a plausible argument that supports or refutes a given assertion. That's interesting and a bit impressive (presuming its argument isn't simply a regurgitation of some position paper it found online). But without understanding cause and effect, its arguments will remain very superficial, probably driven by a small catalog of argument 'frames' (templates) that adaptively fill a handful of slots like [needs] [means] [goal] [conflicts] and [emotional hooks]. Using such simple recipes it can produce verbiage that plausibly sounds humanlike, but isn't actually reasoning. It's likely that the system couldn't even diagnose help desk problems using basic logic, e.g. backtracking to thise dependencies that might have caused the given outcome, thereby identifying only the possible and plausible causes.

</comment></comment></comment></comment><comment><USER17> Original content: [http://www.research.ibm.com/artificial- intelligence/project-...](http://www.research.ibm.com/artificial- intelligence/project-debater/)

</comment><comment><USER18> This is a new low for IBM. If they had actually produced the system they are describing, they would bring a person to debate the machine in real time, and they would have an uncut clip of that happening, because it would be an absolute technical marvel.

Obviously I can not _prove_ that they _haven 't_ developed a miracle device which can construct complete arguments and theories in real time, but if they _had_ done, they'd've shown something more convincing.

</comment><comment><USER19> Does anyone have a clean link to a transcript of this?

</comment><comment><USER20> I still maintain that IBM is above everyone else in the AI game, everyone.

Thing is that the media doesn't pay proportional attention and respect they do to other companies that haven't proven anything yet.

Where's Google thing that they showed last I/O where an AI would call a business to schedule an appointment? Vaporware.

<comment><USER21> Thought experiment: Given the mass unemployment that would come from autonomous self driving vehicles and AI agents that can replace humans: if you had the tech in place would you release it, or wait for something like Universal Basic Income to be rolled out first?

<comment><USER22> I know this is hugely unpopular, but...that sounds like a problem that communism was initially designed for, where productivity is so high that people can just take what they need.

</comment></comment></comment><comment><USER23> I've long been interested in seeing debate formalized. That is, a back and forth structured discussion with the end goal of arriving at a narrowly scoped truth. One strategy for winning could include attacking core assumptions underlying an argument, thus weakening any claims that followed from that assumption (question the methodology/replication of a study that claim vaccines cause autism).

The problem I have with debates in popular culture is that it's often performative and participants devolve to whoever is best at dominating a discussion, or whoever is the more eloquent with not much light at the end of the tunnel.

</comment><comment><USER24> Debates have really gone off the deep end with their scoring rules. They should be about convincing the audience not scoring based on how many points of the other side were responded to. If the other side makes a ridiculous claim the audience can see through it.

It does mean that topics need to be apolitical in order to ensure a fair score - no debate will turn a Republican into a Democrat. But for other topics this scoring works extremely well.

</comment><comment><USER25> How can we rule out the possibility that Watson, Sophia etc are some WiFi operated, human controlled PR stunts?

I'm not saying they are, but even when it did beat Kasparov, where was the proof, code we can run ourselves and see, witnesses, just basic accountability stuff that we can make us safely believe that these are not staged?

Does anyone know anything?

<comment><USER26> Seeing this with the Google Assitance "scandel" of claims that alot of the demos didn't add up. How do we know this is really working. Most startup that say they are doing "ML/AI" tech are just exporting the data to factories of workers in developing countries to shift the data. Besides in research papers, I have yet to see these claims be palpable in reality.

<comment><USER27> > most

Is this possible?

If so, then call it Data Science or Push-button analysis.

</comment></comment></comment><comment><USER28> Sounds pretty much like how human debates are already structured:

1\. Grab key points from influential books and articles to create templated responses

2\. Do no original research and thus be completely unable to rebut criticisms of the source data or analysis

3\. Counter #2 above by falling back on crowd-pleasing templated responses, forcing the moderator to move the debate along

4\. Never, ever concede anything, because "debates" are no longer about listening to an argument and carefully considering their merits, it is a time- boxed verbal combat sport where there must be a winner and a loser.

<comment><USER29> You think you're getting closer to the truth by being cynical, but what you're really doing is overshoot the target so far that you're basically just as far from the reality of debates as the uncynical view is.

<comment><USER30> What is the reality of debates?

<comment><USER31> I think that was an intentionally terrible response meant to illustrate the efficacy of the list.</comment></comment></comment></comment>


Ask HN: What tech stack would you choose to bootstrap a side project in 2020? - <AUTHOR> I'm a college student trying to choose a language/framework to build some side projects. Other than the classic CS languages(java,python,c/c++), I've learned some JS and Vue.js and now I'm looking into a proper backend language and framework.
After searching online and asking friends I've gathered some feedback on the most popular solutions.
Rails: Proven and mature. 3rd party gems that can help you with anything web-related. The ecosystem is thriving and most developers are happy using it.
Laravel: Made PHP cool again. Took lessons from Rails and probably provides the best Developer Experience when it comes to building a monolith app from development to deployment. PHP is also the most popular backend language.
Django: People love python. I hear that Django Rest Framework is a great tool, plus, the ability to add ml features on your existing app is a big plus.
Node.js: Full-stack Javascript is great but the backend landscape is a mess. Probably a thin backend without complex rails-like structure.
Phoenix/Go/Rust: Good options for specific use cases where performance matters.
Java/C#: Complex and enterprisey. C# is gaining traction but the 3rd party ecosystem is still lacking behind other options.
Backendless: SPAs, Next.js/Nuxt.js/Ember, JAMstack. Use services like Firebase/Auth0 and 3rd party APIs for backend logic or serverless functions.
What would you suggest someone learn in 2020? I know the answer is "it depends" but I know that for example Rails, Laravel and Django are basically tools for the same job, building CRUD applications on the server. Would you suggest someone to learn Ruby or PHP in 2020, though many consider them dead? <comment><USER2> It doesn't matter. Pin a bunch of names on a dart board, throw a dart, and pick the one closest to the dart. Seriously, it really just doesn't matter. Not even a little bit. At least not in terms of whether or not your side project succeeds. You will NOT succeed or fail based on whether you chose Node over Ruby, or Java over Erlang, or Angular over React, or PostgreSQL over MySQL, or Mongo over CouchDB, etc., etc., yada, yada, yada.

Now if the question you're really asking is "which one should I learn from a long-term career standpoint?" or something along those lines, the equation changes a little bit. BUT even there, the simple reality is, you can be gainfully employed, making good money, doing fun work, using any technology you listed, and plenty you didn't.

If you're coming at it from the career / long-term perspective, and want an objective measure, then scan the job boards, and see what you find the most open reqs for. Go with that. Otherwise, pick two or three off your list, dabble in each, and see which one feels right to you.

The only thing I'd explicitly advice against is going with something really outside the (modern) mainstream, like COBOL, or some really new'ish languages which may or may not catch on (Nim, something like that), or any "esoteric" languages: Brainfuck, Intercal, Whitespace, Befunge, etc.

As to what _I_ personally would pick? Groovy and Grails, along with PostgreSQL, and one of the popular JS frameworks for front-end (React, Vue, Angular, etc.). But that's just down to familiarity and personal preference.

Edit: let me add one bit of clarification... I don't mean to slag Nim, or any of the other newer'ish languages. And I don't mean "don't learn it" in the general sense. I just wouldn't "bet the farm" one of those just yet. By all means, dabble with lots of different languages, and constantly pay attention to how they are evolving over time, and how they are (or are not) gaining industry acceptance.

</comment><comment><USER3> If I wanted to answer your question, I would basically repeat everything you said. Not sure what you need to know beyond what you know. It depends, and depending on your use case you should pick from the options you laid out for the reasons you laid out!

Having said all that, obviously the right answer is Django.

</comment><comment><USER4> What are your goals?

If your goal is to build something to have a product/service/business, build what you know. That will let you build and iterate quicker. Startups don't fail only because they were built on <framework A> instead of <framework B>.

If your goal is to learn a new framework, just pick one and give it a shot! There are many concepts you can learn that extend across stacks.

If your goal is to list languages/frameworks on your resume, that's a little tougher. One not very scientific way to decide is to do a brief search for job listings in your target location and pick the BE mentioned most frequently.

</comment><comment><USER5> Rails is hard to beat for getting something up and running quickly and then iterating on it.

> though many consider them dead?

Anyone who says that, you can safely ignore.

<comment><USER2> Agreed. Well established technologies seem to rarely (if ever) truly _die_. They will become diminished, to be sure, but even to this day, people are making money writing COBOL, RPG, PL/I, etc. Somewhere out there, there are still a few people getting paid to work on the newest iteration of "whatever OS/2 is called now". Etc.

</comment></comment><comment><USER6> My advice, look at what employers are actively hiring for and work backwards. Generally speaking, many value an MVC type frameworks, specifically Rails/Django, they are well-known, easy enough to hire for since they are "standard" and have broad application use and are quick to work with. Most of the knowledge is transferable between them. Understanding database migrations, app structure, authentication, etc is common.

I'd focus on that first, then when you're comfortable, move towards front-end. Again, focus on what employers are hiring for, React being top of the list, Angular is loosing market share.

Node isn't very complicated to develop in, front-end experience like ES6/7 will help you figure out JS and you can learn the event loop model later on.

This way you'll have a solid foundation in backend, front-end and can expand out from there as needed and specialize but this is a good starting point to be a full-stack developer. Spend time looking at development workflow, learn Git, write tests, etc.

</comment><comment><USER7> Based on the year 2019, I think learning Python (AI/ML, Scripting, etc), Java (legacy code, enterprise systems, etc) and JavaScript (ES6, Node and a bundler because JavaScript has turned into something that is more than just some simple script on a page at this point.) are worth it. I say learn PHP if you are aiming for entry level rudimentary stuff. PHP is still out there and there are loads of clients asking for people to work on it. Anything else will revolve around how experienced of an engineer they want and the market you live in.

Aside from languages/frameworks, I would say focus on the container/orchestration area of development. This is becoming the real focus I am seeing from someone who has been working in software development for over 5 years. More and more it is containerized micro services that are being produced and it is people who can weave them together with kubernetes or similar software that is the real ticket.

</comment><comment><USER8> I don't think it matters. Learning a stack because there are a lot of hot job postings for it will only keep you in framework hell. If you had to choose, choose the one with a community that you like and want to be around. I'm happy I stuck by Node's side all these years, sure its not perfect but part of the journey is growing with a technology as it matures in the market. From my experience, mid-range developers with a few years of experience working in different stacks rarely make high quality contributions to the project. The only exception is if they're gifted cs students first. The devs with for eg. 10+ years working with Perl Dancer projects have so much you can learn from.

So my advice would be to pick one and commit to it for as long as you can. To the point where you both love and hate it. Get to a point where you can contribute to an well known open source project that is built in it's domain.

</comment><comment><USER9> I built a few applications using Django in college (still am, actually) and it gave me the foundational skills I needed to pick up other frameworks later. I think it balances convention and configuration well for both learning and doing and provides an intuitive learning curve for web development. While most tutorials are for server-side rendered CRUD-based applications you can use DRF to build an API for a single-page app and the framework is flexible enough to build all sorts of applications.

Django set me up with the tools and skills I needed a couple years ago. The other ones probably would too. Echoing other commenters you can build anything in any of these frameworks and shouldn't spend too much time choosing stack. Despite it not mattering, my vote is for Django.

</comment><comment><USER10> I think the main thing you can take from the language/framework descriptions above is that you should outright ignore what people say about tools they don't actively use.

Java and C# absolutely do NOT lack a third-party ecosystem. If anything, both have immensely powerful frameworks behind them and thriving package ecosystems.

IMO, your choice only matters if the product you're building is tied to a given library. For example, you might have more luck doing ML in Python/Java than in Ruby, although there is no reason why you can't mix and match depending on what you need to do and what you're trying to accomplish with each.

</comment><comment><USER11> If you are uncertain, perhaps one extra factor to consider would be the future earning potential.

I am in a somewhat similar situation (albeit considerably older, almost 41) and still considering my options. I have used plain PHP + MySQL to build web applications in the past but I am now trying the same with Python's Flask and liking it so far. Later down the road I'll either try Django or go fullstack Javascript (Node, React, Express, ...) because it is in such a high demand and not going anywhere.

</comment><comment><USER12> I'm surprised Parse Server doesn't make anyone's list. It takes about 30 mins to set up. It's easy to scale, free to start with. It fills the complexity hole left by Node/Express. It's a lot faster to code than using APIs. It's been used by enough people for long enough that all the stability bugs have been ironed out.</comment>


BetterWorks and CEO sued by ex-employee for alleged sexually suggestive assault - <AUTHOR> https://techcrunch.com/2017/07/14/betterworks-duggan-kim-assault-sexual-manner-lawsuit <comment><USER2> Sad to see this story flagged off the front page less than an hour later. BetterWorks is a Silicon Valley startup that has substantial VC investment and it is facing a major lawsuit that threatens its business/existence. But because it involves a systematic coverup of sexual assault and harassment, rather than a data/engineering/security problems, it's not "news"?

<comment><USER3> I was also surprised to see how quickly this one dropped off the front page. It was up for maybe 10 minutes, gaining very quick momentum, and then suddenly disappeared.

</comment></comment><comment><USER4> The only thing worse than this accusation is the alleged coverup. Holy smokes.

Also, a certain irony is that it stands in contrast to the entire point of this company.

<comment><USER2> Based on the evidentiary claims made in the allegation, it also seems to be one of the more unambiguous cases involving Silicon Valley. The victim did everything in her power to avoid, deter, and afterwards, document the attack, including calling for help during/immediately after the attack, and filing a formal report to the "VP of People Operations" the morning after.

In addition to actual witnesses of the event and her formal HR complaint, the report notes that the CEO sent out a company-wide email apologizing for his behavior. So this wasn't something that anyone in the company could be ignorant of, or dismiss as idle gossip.

That no one apparently chose to speak up publicly -- about this incident or any of the other past allegations of improper culture/behavior, until the lawsuit at hand -- is some indication of the institutional barriers that victims face. If this kind of attack could be kept quiet, think of the less obviously egregious incidents of harassment that victims feel powerless to report.

</comment></comment><comment><USER5> This is horrific. The description of the assault made me so uncomfortable I had trouble finishing reading the article.

</comment><comment><USER6> This was a terrifying, sickening read. The comments by the head of People Operations (re: "cattiness", "cool girl") remind me a lot of Fowler's description of Uber HR.

</comment><comment><USER7> Assholes take notice, this wave of transparency and collective action is only going to increase in strength moving forward; either turn on a dime or find another world to live in.

</comment><comment><USER3> I interviewed with BetterWorks last year for _four_ rounds of onsite interviews. This is _in addition_ to a couple rounds of phone interviews and a quite extensive homework assignment. Everything seemed to be going well, but they ultimately ended up passing on me with absolutely no explanation.

They seemed like a professional place and I didn't observe much out of the usual regarding professionalism, but I can't pretend I wasn't a bit soured by investing so much time and not getting an explanation on why they passed.

<comment><USER8> Your comment seems to be 100% independent of this accusation.

<comment><USER3> Indeed. Just sharing my experience with them.

</comment></comment></comment><comment><USER9> > Duggan allegedly told a female employee who complained about the lack of > gender diversity on the sales staff that she should "tell recruiting we need > to hire more boobies."

This made me cringe. (I'm a dude).</comment>


SerenityOS: A love letter to '90s user interfaces with a Unix-like core - <AUTHOR> http://serenityos.org/ <comment><USER2> Hello friends! It's always nice to see SerenityOS posted. :)

(Note: The serenityos.org website is pretty barebones, there's a lot more information over in the GitHub repo.[1])

I'm the principal author of the system, although it has grown quite a lot since it was first seen on HN back in March of 2019.[2]

The system now has its own HTTPS-capable web browser, JavaScript engine, and many other applications under development. Over 180 people have contributed changes and we there's active daily development.

My most recent project has been adding a userspace x86 emulator [3] to the system that provides the same kind of features as the famous Valgrind.

Happy to answer any questions about the system if anyone has them. Either way, thanks for checking out the system!

[1] [https://github.com/SerenityOS/serenity](https://github.com/SerenityOS/serenity)

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

[3] [https://twitter.com/awesomekling/status/1285685093961469955](https://twitter.com/awesomekling/status/1285685093961469955)</comment>