CSS3 Buttons - <AUTHOR> http://lab.simurai.com/css/buttons/ <comment><USER2> This is how this page looks in IE6: <http://i.imgur.com/PVT7u.png>

_Note_ I understand it's an experiment, just for curiosity

<comment><USER3> To be honest, I thought it would look much worse. I would say it is even acceptable if you design for a website with a tech-savvy audience.

<comment><USER4> Yeah, that looks like it degrades rather gracefully. As long as (1) the text is still readable, and (2) the buttons are clickable, I say people should just go for it.

<comment><USER5> With a little more effort you should even be able to make them look a bit more like buttons in older browsers or Internet Explorer.

</comment></comment></comment></comment><comment><USER6> Brilliant - kinda looks like hard candy. But...

 _If you're planing to use the BonBon buttons for production.. Well, I don't recommend it.. yet! Yes, I'm sorry, life is hard._

<comment><USER7> As long as there's no license attached I wouldn't use it in production anyway.

<comment><USER8> Why? Getting sued over the CSS used for buttons?

</comment></comment></comment><comment><USER9> They _feel_ laggy. It's like there is a delay added to their animations on mouse hovering... or is it just ineffective? Can't say I like it.

<comment><USER10> There is a delay for the button to "shift" up AND glow. That's two steps and most buttons have only a single visual feedback, so it feels like it's laggy due to this extra step. I agree that it's a bit too much.

</comment></comment><comment><USER11> Aaaah my eyes! (After viewing the page in IE8.)

These buttons don't degrade gracefully at all.

<comment><USER12> I can only imagine. They're unusable even in Safari 4 (the reflections turn into white boxes that cover up most of the buttons).

Of course, when you're pushing the envelope, you're pretty much by definition going to leave the laggards who stick to older technology behind.

<comment><USER11> From the point of view of the user, I strongly subscribe to the school of thought that says build it working for everyone and enhance for the users that have better browsers. These buttons, as the post itself says at the end, are just not ready for production.

<comment><USER13> I missed the part that says it's not ready for production when I first read it. Here's part of the quote from the end:

> This is just a demo and not meant to be used on your next project that > targets the average internet user.

</comment></comment></comment></comment><comment><USER14> Has anybody made an @font-face package with icons? That would be super helpful and nice for doing icons on buttons etc...

<comment><USER15> <http://pictos.drewwilson.com/> has

<comment><USER16> aren't they a massive over engineering? Like having to create the appropriate fall back for older browsers would be a real pest.

<comment><USER15> all modern browsers support font-face, I have doubts about whether they dont suffer from the fout but thats about it, people who arent web developers really dont like dealing with images, its a pretty huge pain so just being able to type some text and have a nice icons show up is a nice choice for some.

</comment></comment></comment></comment><comment><USER17> Hitting inspect element in Chromium on Linux gives me an "Aw Snap" crash. :-\

<comment><USER18> I've been getting a lot more Aw Snaps after upgrading to Chromium 7.whatever on Linux.

It happens all the time when I'm searching for things on google.

</comment></comment><comment><USER19> Are we going to see "Flaming" CSS3 buttons anytime soon!? I mean yes mark up is just a href tag but the CSS itself is a bit huge when you look at the styling?

</comment><comment><USER20> I learned a few bits about CSS3, such as splitting up border radius for top and bottom.

</comment><comment><USER21> I guess sexy is a relative term.

</comment><comment><USER22> My soul weeps for their beauty

</comment><comment><USER23> There must be a bug in the lastest Dev version of Chrome. Some strange transparent white box on the "top" of the buttons.

<http://imgur.com/CTVFM.png>

<comment><USER24> Not a Chrome bug so much as an artifact of Windows blur APIs as far as I can tell. Shadows and blurs look less Gaussian and more bidirectional motion blurred on Windows in Chome and other modern browsers.

</comment></comment><comment><USER25> ...if you think children's vitamins are sexy.

</comment><comment><USER26> Just because you _can_ doesn't mean you _should_.

<comment><USER27> Not all HTML and CSS happens in a browser. Many interfaces are written that are rendered by webkit, and in those instances this is awesome.

<comment><USER28> Could you give some examples, please?

<comment><USER29> I don't have examples, but many "web developers" create desktop apps that thinly wrap webkit or their rendering engine of choice to permit HTML/CSS markup for their GUI.

I do this with Prism all the time to deploy web apps to my company, but you could equally embed webkit yourself into any app - and use these buttons in a single (known working) environment.</comment></comment></comment></comment>


Show HN: Build Backend API with a click - NoCodeAPI - <AUTHOR> http://nocodeapi.com/ <comment><USER2> This is what I have been needing a long!! Thanks for making it.

<comment><AUTHOR> Awesome. What you gonna build with this?

<comment><USER2> I'm going to use this to send my new subscriber alerts to my telegram. Then I'm going to replace my custom APIs to get data from Google sheets and link preview. Its like now I don't need to code for mundane stuff anymore, just setup the service and it's ready. Really good Job mate!

<comment><AUTHOR> Amazing, use case. I'll share this on website use-cases

</comment></comment></comment></comment><comment><USER3> when I access [https://nocodeapi.com/dashboard/marketplace](https://nocodeapi.com/dashboard/marketplace), on my browser I get a hover indication on all the tiles but when I click nothing happens. :(

I can click on docs button but all the tile and the activate button are disabled?

<comment><USER3> The console is flooded with CORS errors. I thought maybe it was the Firefox enhanced tracking protection but disabling it has no effect.

</comment></comment><comment><USER4> Awesome. Simple design and easy to understand place when u feel lost trying different apis and cant get job done.

</comment><comment><USER5> Amazing! I'll give it a try!</comment>


The Hacker's Manifesto turns 30 today [1986] - <AUTHOR> http://phrack.org/issues/7/3.html#article <comment><USER2> I remember reading this in high school. I remember thinking I was hot shit for knowing how a proxy works.

If only I'd done more than simply sneak past the firewalls.</comment>


Show HN: REBL – Credit based on your income and expenses - <AUTHOR> https://www.rebl.cards <comment><USER2> This is going to be a negative comment, I'm sorry in case I'm misunderstanding things.

I wonder how big the set of people is for whom it holds that:

1\. Income > Expenses

2\. They make good financial decisions

3\. They decide they need a small loan

You'll always have a selection bias towards people who do 3, but not 2 or 1. Thus you'll be forced to price the high default rate into your product or use predatory practices to squeeze peoples payments when they cannot afford them.

> We are looking to build a product that isn't predatory towards the people > that need help the most.

I think the main problem with small loans is that they are almost never used for investment. They are used to buy stuff for consumption.

If you're just barely cash flow positive, buying a TV on credit is not a good long term choice, and the loan that enables it feels predatory.

Last, I am not sure if giving up all privacy is the kind of "future of credit" that we should applaud.

<comment><AUTHOR> Hey konschubert, first off thanks for your feedback and poking holes into our product, it really helps us with our planning especially in the early stages of our company.

We are building this product as an alternative to what exists in the the market today. One of the problems we solve with not giving cash to the consumers like alternative lenders is that we can kind of control where the money is spent. Illicit goods have to be purchased with cash and with a card method, our consumers will be spending with reputable retailers where CCs are accepted.

Another problem is that the primary method for these consumers to solve their money issues include loans and credit cards with high interest rates, fees that make money when a consumer carries a balance. With our 30 day payback, we want to make sure those fees don't happen, we strictly want to focus on monetizing through the interchange fee and once we grow, partner offers similar to how seated and freebird work. Also, regarding the limits, since we have transparency into their bank accounts, we will grant limits that are within the means of being paid back by our users.

Lastly, regarding the privacy issue, totally understand that point of view. This card is built for someone that has no other option because they are new or have bad credit. We want to bring them into a world of manageable credit that helps them grow into the next level of cards whether that is with us or another company.

</comment></comment><comment><AUTHOR> Hey everyone, Varun, founder of Rebl here. We are looking to build a product that isn't predatory towards the people that need help the most. Locking individuals into a high-interest rate card is the current trend of the market and at Rebl, we want to change that.

Rebl is thin file charge card designed for those with steady cash flow but relies on access to their bank account instead of their credit score. Our ideal consumer is someone with low or no credit, as well as someone who may have damaged their credit in the past but is rebuilding. We set a low starting limit that grows with the consumer's needs with a 30-day revolving payback window. Because of the payback period and full transparency into a user's financials which also us to make on the fly credit decisions, we carry low amounts of risk compared to our competitors and see this as the future of credit.

</comment><comment><USER3> Hello from Dapp.com!</comment>


Gury: HTML5 Canvas jQuery-inspired helper - <AUTHOR> http://thechangelog.com/post/1291711468/gury-a-jquery-inspired-html5-canvas-javascript

<comment><USER2> (Disclaimer: I am writing a currently-unreleased jquery-based canvas helper)

I really like the idea here, and am all for more people using the canvas element, but I don't really think the built in canvas API is unwieldy, or even remotely foreign to anyone working on the web.

The only interesting functionality exposed in the API that I could find was some basic animation - defining a translation, saving the context of the canvas (for later rendering?) and then running the animation. Can anyone explain why this is interesting? Maybe it's a little early to pass judgement?

edit: Okay, the support for tags on objects you draw onto the canvas is pretty useful. This would definitely be useful for anyone developing a canvas game.

<comment><USER3> It appears to just syntactic sugar. Chaining things, etc etc.

I like it, but I have to admit it doesn't seem to add a whole lot yet.

<comment><USER4> I find the raw canvas API to be a little bit clunky and unwieldy. The syntactic sugar makes it a lot more likely that I'll use canvas without a second thought.

Making something more pleasant, even just a little bit, can lower the barrier enough to get a lot of people going.</comment></comment></comment>


Getting Over Taxis - <AUTHOR> https://medium.com/@timoreilly/getting-over-taxis-79849b3a4282 <comment><USER2> Get over cabs? I like uber, but when I'm traveling on business there are some things Uber cannot provide me, things I want.

(1) When I get off a plane in a strange city my phone doesn't always work, and if it does I probably don't get data. The taxi stand outside an airport is convenient, identifiable, and works reliably no matter the state of my phone.

(2) I don't want a ride from someone in their personal car. I want an easily- recognizable vehicle driven by a person licensed by some sort of local authority. I want a visible number or other identifier on the outside of the vehicle.

(3) Professional detachment. Uber rides often take an overly-friendly tone. I like chatting with drivers, but I often don't want to chat. Maybe I'm on the phone with a client, maybe I have a client traveling with me. I don't want to feel bad or be down-rated if I don't act friendly.

(4) Local knowledge. A professional cabbie will, within a few weeks, develop some serious local knowledge about streets, hotels and restaurants. With Uber drivers it is hit and miss.

When it comes to business travel, especially international travel, cabs still provide value uber cannot match.

<comment><USER3> (1) has never happened to me in a US city, and very rarely in non-US cities. (2) has never bothered me because Uber keeps a log of every ride I take, the rating system gives me a much more confidence in the driver than a random government licensing scheme, and the app tells me the license plate number so the vehicle is easily-recognizable. (3) has never happened to me -- you may be thinking of one of the other ridesharing services where driver and customer are considered peers. (4) presupposes the taxi driver speaks English well enough to communicate their "serious local knowledge" which IME is indeed "hit and miss."

<comment><USER2> When I land in SF, if I haven't purchased any plan ahead of time, my rate 5$ per MEGAbyte. That is IF my phone actually works, which is probably 90% for outgoing and 50/50 for receiving incoming calls. Canadian ISPs are horrible, but we don't have much choice. Since Uber relies on having a working phone it cannot rise above that horrible bar. Taxis don't require any working technology.

My "plan": [http://business.telus.com/en/business/bc/business-travel- roa...](http://business.telus.com/en/business/bc/business-travel-roaming/us- roam-ready)

<comment><USER4> I don't think transportation services should be optimized for Canadians With Expensive Data Plans That Landed In SFO.

If you land at SFO you have an array of transportation services. Taxis are still there. You can take BART. There are shuttles. You can rent a car.

For most people Uber is better than a taxi.

<comment><USER2> I never said that Uber should go away. I am pointing out that neither are Taxis, that they are two different services for two different markets. Taxis provide things that uber cannot, one cannot totally replace the other.

As for airports not optimizing transport for Canadians, airports should do exactly that. Any city wanting to be a business hub should indeed try to accommodate international travelers. And they all do. If canadians have a rough time at a US airport, I think it safe to assume the Chinese, Japanese, Arab or Indian business traveler will have it worse.

Car rental is not an option for many international travelers. Licensing issues mean most will never bother. BART is great, but it isn't for the uninitiated traveler on a dark night. The routing is not intuitive. And it is really loud, not a pleasant experience after a long flight.

</comment></comment></comment></comment></comment><comment><USER5> Some comments here mention "AI driving the car" being the end game. I can't help but wonder what happens when a self driving car gets hacked, doors locked (unlocking disabled) and driven off a cliff.

Self driving cars will be magical and transformative but we don't really know what will happen. It may end up requiring a human co-driver to take over in case the algorithm misbehaves. So I do hope that self driving cars will come with regulation that mandates the presence of a licensed driver with ability to take over the manual controls.

Update: Here is a small sample of articles about "non-hackable" systems getting hacked...

[1] Nuclear power plants: [http://www.dailydot.com/politics/industrial- ethernet-switche...](http://www.dailydot.com/politics/industrial-ethernet- switche..). [2] air-gapped computers: [http://www.wired.com/2015/07/researchers-hack-air-gapped- com...](http://www.wired.com/2015/07/researchers-hack-air-gapped-com..). [3] autopilots: [http://www.computerworld.com/article/2475081/cybercrime- hack...](http://www.computerworld.com/article/2475081/cybercrime-hack..). reply

<comment><USER4> Google prototypes have a big, red stop button that, I assume, takes precedence over hackable software.

Similarly, it's easy to not have door unlocking connected to hackable software.

In general, I find hacking worries unwarranted.

Sure, cars from car manufacturers were hacked because car manufacturers are bad at writing software and are bad at security.

Google is good at software and they are top-notch on security. They have been fighting hacking of their web services from day one, they employ world class cryptographers and security researchers. They are also aware that if their cars were hacked, it would be a very bad PR.

Requiring licensed driver would significantly hamper adoption of self-driving cars not to mention cutting off people who need such service the most (e.g. old people who are no longer fit for driving; disabled people; drunk people etc.)

<comment><USER6>
        > Google prototypes have a big, red stop button that,
        > I assume, takes precedence over hackable software.

You think so? I would assume not. I doubt the car is just going to screech to a halt via some hardware switch, think about the danger of someone pressing that while in the center lane of a highway.

Instead it's probably synonymous with giving the software a "stop now" command. I.e. it would know to safely pull over to the side of the road, or take the next off-ramp in that situation.

So if someone had hacked the driving software that could be overridden.

I do think idibidiart is being overly alarmist. Self-driving cars don't have to be perfect, and there could certainly be malicious hacking incidents, but they're highly likely to outnumber the cases where people die now due to imperfect human drivers.

<comment><USER5> I agree there is more benefit than harm, but I doubt any self-driving car will be legal without a manual override... if at least for national security reasons.

</comment></comment></comment></comment><comment><USER7> CTRL+F insurance

2 results. Right at the beginning. Nothing more.

The main problem with Uber in Germany was the insurance. Fix that. Try again.

I think there is a market now but that one will be gone fast as soon as we have the AI driving.

<comment><USER8> Also you need a special drivers license [1], that needs to get renewed every 5 years and entails that you are mentally and physically fit (checked by a doctor) and know much about the region you're going to drive in (checked in a test). They also want to see your criminal record and traffic offense register.

[1]: [https://de.wikipedia.org/wiki/Führerschein_zur_Fahrgastbeför...](https://de.wikipedia.org/wiki/Führerschein_zur_Fahrgastbeförderung)

<comment><USER7> The Ortskundeprüfung ("local knowledge test" = learn a ton of street names) is the only problematic part of it and it needs to be reformed away.

</comment></comment></comment><comment><USER9> I like Uber as a consumer but I simply don't understand why people as smart as even o'reily defend their business despite them knowing the end game.

Their main goal of Uber is to replace all their drivers with automated cars.

As a consumer that means a lot of good things but not for those who was depending on it as an income. There is a dishonesty either to other people or to themselves that I simply don't get here.

<comment><USER10> >Their main goal of Uber is to replace all their drivers with automated cars.

Yeah, that's _why_ we're in favor of Uber.

<comment><USER9> Thats fine then just don't talk about how it's better for the uber drivers.

<comment><USER10> 1\. You're confusing the author's position with my own. I don't claim (and frankly don't care) whether or not taxi drivers get a better deal than Uber drivers. The reason I don't care is that taxi service is terrible, and I consider each taxi ride I've taken to be just shy of theft ... and this in NYC, Philly, Paris, Rome, Lyon, Atlanta, Le Mans, Berlin, Moscow, Abu Dhabi, Bejing and literally every place in the world where I've had the misfortune of hailing a cab.

2\. You're categorically insane if you think taxi drivers will survive the arrival of driverless cars. Until that happens, the author's points may well hold.

<comment><USER9> 1) I am not confusing anything. You said "we're" unless you talk about yourself in plural. I have had my fare share of cabs around the world too. To claim normal taxi in any normal city is terrible is absurd and just an attempt to pump up your position as being more rational than it is.

I don't care who gets a better deal either I just know that both solutions of upsides and downsides thats it. Coming out in defence for one or the other based on what O'reily does is where it goes wrong.

2) Why the strawman? Where did I ever claim such a thing?

<comment><USER10> No, point 2 is not a strawman. Your argument implied that Uber would be affected by automation, but taxis would not.

If you're willing to admit that both services are affected by automation, then your point about Uber welcoming automation is a red herring.

Moreover, the article is a rebuttal to an argument that says "Uber = bad, because it treats the drivers unfairly". As such, evidence to the contrary invalidates that argument, _even_ if one doesn't particularly care about driver pay.

<comment><USER9> Uber hire drivers as freelancers but treat them as employers.

\- Uber drivers can't hire people to drive for them.

\- Uber drivers can't decide which car they want to use.

\- Uber drivers can't decide the price they are charging their customers.

\- Uber discourages tipping.

\- Uber doesn't pay for their healthcare.

Thats not a clear case of anything. Thats the opening of an important debate because it points to some underlying issues with society and technology that needs to be debated much more seriously than simply yelling "Luddite fallacy" and what people otherwise like to brush aside any concern about the speed of technology vs. societies ability to cope with it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> The author's calculations about how much it costs to make the payments on a car are flawed. Driving for Uber full time, your car won't last as long as the loan. Based on my experience driving for Lyft and Uber last year, you can figure about 5-7K miles per month for a full-time driver.

</comment><comment><USER12> I use Uber almost every day. I love it. I also like vending machines. I hope that one day my Uber rides will be entirely like interacting with vending machines.

</comment><comment><USER10> Susan Crawford's argument seems to hinge on taxis being transportation infrastructure, which is well-taken in and of itself, but her conclusions don't follow her premise.

If taxi service is such a vital component of transportation infrastructure, then the solution is to make it public. This would address all her concerns about driver exploitation while also preventing another company from undercutting the established infrastructure.

If you're in favor of private taxi services, it's hard to be against Uber/Lyft.</comment>


Gasoline-Powered Boots Were Made for 22 M.P.H. (2007) - <AUTHOR> https://www.nytimes.com/2007/03/17/business/worldbusiness/17gazshoes.html <comment><AUTHOR> So apparently HN removes 'These' from titles on submission, as well as 'The'. I really don't like this: it holds the potential for actually changing the meaning of titles (e.g. 'The Who' vs 'Who'!), as well as just making their grammar clunky.

In this case, the original title was "These Boots Were Made for 22 M.P.H.", which is a clear reference to "These Boots Were Made For Walking", which is erased by the title change. (To be fair I did add 'Gasoline-Powered' first, to make it clear that they aren't just particularly good sprinting boots...)</comment>


Google to allow Android users in Europe choose default search engine - ga-vu https://news.yahoo.com/google-allow-android-users-europe-091033768.html <comment><AUTHOR> "Search engine providers will be allowed to bid in an auction to win a spot on the users' screens, along with Google, to become the device's default search engine on the Android home screen as well as the Chrome browser."

So Google wants to make sure they win no matter what.

<comment><USER2> They also prompt you to install additional browsers during setup. This just states they will change the default search behavior within Chrome if chrome is installed as well.

Not sure I get your comment.</comment></comment>


Preserve the Heritage; Ski with Wood - <AUTHOR> http://www.woodenskis.com/ <comment><USER2> Appreciate the nostalgia but it's not for me. I moved off wood skis 40 years ago. Those puppies break!

</comment><comment><USER3> Mostly these are just sold for display on peoples walls as the write up says. I did learn on skis not too different from this. My grandfather came from Telemark. One advantage of the old time skis (the really long ones) is that you could go fast. Billy Kidd had a video about racing the old timers with long wooden skis in California. He could not beat them.

</comment><comment><USER4> Most skis still have wood cores. Nearly all freeride/powder skis.

And while I love throwback equipment for a sport like golf, skiing is dangerous enough that I'd rather have the best modern equipment available.</comment>


ClojureScript 1.7 - <AUTHOR> https://github.com/clojure/clojurescript/commit/25019841f67c877d1d6ec7b6625f2bb997f352bb

<comment><USER2> Some comments I've seen are that it is simply about establishing parity with Clojure 1.7 while keeping the current release strategy (it's not about semantic versioning).

If you are curious, here is the Wiki page that tracks the path to release: [https://github.com/clojure/clojurescript/wiki/Road- Map](https://github.com/clojure/clojurescript/wiki/Road-Map)

</comment><comment><USER3> That's not very helpful. All the commit contains is a version bump. Not what changed, not why, nothing.

Anyone can tl;dr what changed?</comment>


How to Order Starbucks Coffee with a Commodore 128 - <AUTHOR> https://motherboard.vice.com/en_us/article/wjgzk4/how-to-order-starbucks-coffee-with-a-commodore-128 <comment><USER2> While I'm always excited to see Commodore 8-bits in the news, connecting one to IRC and talking to a bot is nothing new.</comment>


Ask HN: Review our startup: Eventil, helping organise tech events - <AUTHOR> Eventil helps organise your tech events (conferences, workshops or smaller meet ups).
You'd like to improve upon Lanyrd concept (a directory of tech events & speaker profiles) and extend it with an all-in-one workflow tool to help organisers with everything related to tech event organisation e.g. finding a venue, ordering t-shirts/badges/lanyards, finding sponsors, in short: assisting in logistics for tech events organisation.
We've been successfully organising/co-organising the well known tech conferences (RuPy, PolyConf, GeeCON) for the past 10 years. With this experience we want to help others to focus on essentials, and as result to create more effortlessly even more and better tech events.
The prototype allows to: - create and manage events and groups - sell tickets - order badges and lanyards - manage « Call for Papers » process - enable community voting for talk proposals
Thanks for reading. Your feedback is highly appreciated.
URL: https://eventil.com/ Register URL: https://eventil.com/register <comment><USER2> I has too many features that are hard to explore and barely work at the moment, I'd suggest bringing the number of things down, but make them work and make it clear how an organizer signs up and benefits from doing so.

I don't think I want to move my event tickets there, but would use the tools if they helped me do the organizing stuff. Hope to check it out once the tool is in decent shape.

</comment><comment><USER3> I do find the concept engaging. I have organized a bunch of events (probably dozens, maybe a hundred) and I hate starting from scratch. Every time. I like the idea of a continuum between your local meetup and a 3 day full-blown conference. Anything that automates anything in the path is welcome. Checking out.

</comment><comment><USER4> Do you have any interest in scaling this down to meetups as well?

I've been thinking of trying to organise one to scratch my particular technical itch and my plan was pretty much to throw something up on meetup, though I don't have any plans for a venue.

P.S. your site is down.

<comment><AUTHOR> Yes, smaller events such as meetups or workshops are in the top of our priorities. We see many similarities in the « organisation process ». Meetup.com is certainly a great option, it provides an excellent marketing out of the box because of its scale. If you needed any specific help with your event, feel free to contact me via email, I'd be glad to help.

PS. The site should be up now.

</comment></comment><comment><USER5> Sign-on through GitHub is a nice touch. :)

/me really doesn't like having to create new accounts for things.</comment>


Barrage: Write once, run everywhere patterns for sensor data analytics - <AUTHOR> https://blog.miosoft.com/2015/06/introducing-barrage/

<comment><USER2> Neat: sounds like an event stream processor. I've done this in the past with temperature sensors using open source libraries like Esper ([https://github.com/espertechinc/esper](https://github.com/espertechinc/esper)) and in exchange for a bit of additional complexity you can do really interesting things like convert almost natural language alert definitions into running code.

<comment><AUTHOR> Interesting that you would bring up the concept of almost natural language. Barrage is actually built on top of Avail which is sincerely the most expressive language I've ever seen. Check it out: [https://www.availlang.org/](https://www.availlang.org/)

</comment></comment><comment><USER3> This is very interesting but does raise the question of how to adequately define patterns. One would have to have a working understanding of the type of events that need alerts, and how they look on a sensor, as well as what type of false alarm could look the same. But it is a definite step up from threshold-based alerting, which is hugely susceptible to false alarms.

<comment><AUTHOR> Using the patterns on their own is a bit of an iterative process, but I'm sure you can imagine how it's a substrate on which all kinds of interesting automation of pattern learning could be built.</comment></comment>


Show HN: PyCNN – Image Processing in Cellular Neural Networks - <AUTHOR> http://blog.ankitaggarwal.me/PyCNN/

<comment><USER2> I initially interpreted the title as a Python API to CNN the television channel and was curious how that was implemented. But, after clicking on the link I actually learned a bit about something that seems pretty fascinating. So, thanks for that!

<comment><AUTHOR> Hi, I am the author of this library. I am really glad you liked it and it helped you learn. I started this last year when I was working on a research project to remotely enable real-time image processing using cellular neural networks (CNN) on raspberry pi from Internet application. This was part of a demo at 14th Cellular Nanoscale Networks and Applications (CNNA) Conference 2014. I have also written a blog post, available at [http://blog.ankitaggarwal.me/technology/image-processing- wit...](http://blog.ankitaggarwal.me/technology/image-processing-wit...).

Any feedback is much appreciated. Thanks!</comment></comment>


Playing the Game of Infinite Leverage - <AUTHOR> https://www.bloomberg.com/opinion/newsletters/2019-11-05/money-stuff-playing-the-game-of-infinite-leverage <comment><USER2> Summary: Robinhood's margin system is completely broken and allows for practically infinite leverage. One guy leveraged up to 1'279'550 USD on a 4'000 USD deposit.

Current "leaderboard":

[https://www.reddit.com/r/wallstreetbets/comments/drt5tr/guh_...](https://www.reddit.com/r/wallstreetbets/comments/drt5tr/guh_of_fame_2019/)

And an outbreak of memes on Reddit:

[https://www.reddit.com/r/wallstreetbets/comments/dr4iem/cont...](https://www.reddit.com/r/wallstreetbets/comments/dr4iem/control_your_autism/)

[https://www.reddit.com/r/wallstreetbets/comments/drxcpw/this...](https://www.reddit.com/r/wallstreetbets/comments/drxcpw/this_one_is_for_the_history_books/)

[https://www.reddit.com/r/wallstreetbets/comments/drsxau/the_...](https://www.reddit.com/r/wallstreetbets/comments/drsxau/the_new_brokerage_war/)

[https://www.reddit.com/r/wallstreetbets/comments/dr3eki/say_...](https://www.reddit.com/r/wallstreetbets/comments/dr3eki/say_something_im_guhving_up_on_you_official_music/)

[https://www.reddit.com/r/wallstreetbets/comments/dpwa5v/in_l...](https://www.reddit.com/r/wallstreetbets/comments/dpwa5v/in_light_of_todays_events_i_have_decided_to_be/)

People wondering what is Robinhood even doing:

[https://www.reddit.com/r/wallstreetbets/comments/drmr6y/how_...](https://www.reddit.com/r/wallstreetbets/comments/drmr6y/how_the_fuck_does_robinhood_exist/)

[https://www.reddit.com/r/wallstreetbets/comments/drn8gf/this...](https://www.reddit.com/r/wallstreetbets/comments/drn8gf/this_sub_has_gone_to_a_new_level/)

[https://www.reddit.com/r/wallstreetbets/comments/dr6gus/robi...](https://www.reddit.com/r/wallstreetbets/comments/dr6gus/robinhood_is_in_violation_of_finra_rules/)

</comment><comment><USER3> Other thread about this [https://news.ycombinator.com/item?id=21454344](https://news.ycombinator.com/item?id=21454344)

</comment><comment><USER4> This is just a game, right? From what I read,this isn't actual stock, options, or leverage except in namesake.

Did I miss something?

<comment><USER5> Yes. RH is lending these people real money to execute real trades. RH should be ashamed of themselves, this has the potential to be a existential fuckup.

<comment><USER6> It's a pretty amazing oversight on their part. If it goes badly, they will lose a great deal of money.</comment></comment></comment>


IBM releases DB2 Express-C 9.7.2 - <AUTHOR> http://antoniocangiano.com/2010/06/01/ibm-releases-db2-express-c-9-7-2/

<comment><USER2> DB2 is incredibly underrated outside the "large enterprise" crowd. It is a truly awesome RDBMS with bazillions of cool features (and a somewhat ugly Java UI). It has the equivalents of most of Oracle's features and has the scalability of Oracle while being both more user-friendly and considerably cheaper.

Its response times for simple queries are not exactly stellar though so I wouldn't recommend it for simple CRUD websites. But for serious data heavyweighting on a budget, DB2 Express-C (the free edition) is excellent.

</comment><comment><USER3> As much as looking a gift horse in the mouth is poor form, I can't resist doing it. In the download page, drilled down to the "Get Support and Extra Features" link: [http://www-01.ibm.com/software/data/db2/express/support.html...](http://www-01.ibm.com/software/data/db2/express/support.html?S_TACT=ACDB2011&S_CMP=ECDDWW01)

        [Feature                    Free      Paid (3k USD/yr)]
        ...
        Data replication            No        Yes
        Max. processor utilization	2 cores   4 cores (max 2 sockets)
        Max. memory utilization     2GB       4GB
        ...

As a chaser, I like to read Robert Young's opinions on DBs, such as [http://drcoddwasright.blogspot.com/2009/04/what-i-told- bob.h...](http://drcoddwasright.blogspot.com/2009/04/what-i-told-bob.html)

<comment><USER4> Robert Yong in his post tries to speculate and pontificate. One thing about speculation is that you will likely get things wrong. And he gets it wrong on every point. He does not have any insight in to what went in IBM. Take it from someone who does. Just because someone has a blog does not make him an expert.

<comment><USER3> (Late notes, mostly to jot down a few URLs; also, the R.Young post I linked to above got further debate)

\- At <http://news.ycombinator.com/item?id=1084150>, late in 2009, there had been some debate on the merits/etc. of DB2.

\- R.Young is giving the "DB2 9.7 freebie" a spin under Linux: [http://drcoddwasright.blogspot.com/2010/06/bill-teds- excelle...](http://drcoddwasright.blogspot.com/2010/06/bill-teds-excellent- adventure.html)

\- A bit of search led to a series of articles by Chris Eaton. List at <http://it.toolbox.com/blogs/db2luw>, best practices to configure DB2 guides at [http://it.toolbox.com/blogs/db2luw/best-practices-for- db2-fo...](http://it.toolbox.com/blogs/db2luw/best-practices-for-db2-for- luw-24982)

\- Another post in that series includes a comment which clarifies what is and is not included in DB2v9.7 Express-C: [http://it.toolbox.com/blogs/db2luw/db2-97-announced-by- ibm-i...](http://it.toolbox.com/blogs/db2luw/db2-97-announced-by-ibm-i-think- it-has-something-for-everyone-31292#2724772) ["What is not yet included in Express-C is PL/SQL support, CLPplus or build in package libraries (DBMS_PIPE, UTL_SMTP, etc)."]

</comment></comment></comment><comment><USER5> No catch. Unless you need more then 2gb ram and more then 2 cores.</comment>


BASIC, Second Edition (1964) [pdf] - <AUTHOR> http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/dartmouth/BASIC_Oct64.pdf <comment><USER2> Notice the MAT (matrix) commands on page 51.

When I first came across BASIC in the 70's it was known for three things in particular: (i) being interpreted rather than compiled, (ii) having these MAT commands, and (iii) being simpler and beginner friendly than FORTRAN or Algol.

The MAT commands seem to have been dropped from most later versions.

(It was at first a compiled language, but it really took off once interpreters become available on time-share systems. It was probably that aspect, rather than the syntax, which made it more suited to beginners).

</comment><comment><USER3> It's interesting to note the usage of the slashed O (letter o) as opposed to the modern slashed zero (see [https://en.wikipedia.org/wiki/Slashed_zero](https://en.wikipedia.org/wiki/Slashed_zero) ).

<comment> once-in-a-while Some old mechanical typewriters didn't have the Zero '0', one had to use the 'O' character. That's the historical reason.

<comment><USER4> My dad's old typewriter also didn't have a number 1 key, so you had to use lower-case L (ie, l).

</comment></comment></comment><comment><USER5> length of program: ...in general no more than two feet of teletype printout. Teletype feet as a unit of cyclomatic complexity is retro-cool.

<comment><USER6> As slow as teletype printing is, you probably wouldn't want to wait for more than about 2 feet of output anyway.

<comment><USER7> You generally had no choice about it. For example, Dartmouth Time Sharing supported the Teletype ASR-33[1], which ran at 10 characters per second. So if you were printing a moderately long program you would need to wait 5 minutes or more.

Also the density of the tape wasn't very high (I'm guessing less than 10 characters per inch). Which means that 5 minutes of printing amounted to 300 inches, or 25 feet. It wasn't really a problem, because the paper tape naturally curled up.

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

</comment></comment></comment><comment><USER8> Here are some photos of students and others using the system at Dartmouth ca 1964. Many show the rolls of teletype paper.

[https://www.flickr.com/photos/dartmouthflickr/sets/721576432...](https://www.flickr.com/photos/dartmouthflickr/sets/72157643275728555/)

This paper from Science in 1968 explains how the time-sharing operating system (one of the first ever, including two CPUs communicating through a shared disk) was "designed and constructed by a team consisting of the authors (Kemeny and Kurtz) and a dozen undergraduate students."

[http://dtss.dartmouth.edu/sciencearticle](http://dtss.dartmouth.edu/sciencearticle)

They write, "This experience revealed that bright undergraduate college students were extremely adept at computer programming, and that with little training they could produce major programs and software systems better than those professionally produced and commercially available."

</comment><comment><USER9> I like that motto "Typing is no substitute for thinking." in the PDF. Applies equally well today :-)</comment>


SpaceX's 'Starhopper' bursts into flames during static fire test - <AUTHOR> https://techcrunch.com/2019/07/17/spacexs-starhopper-bursts-into-flames-during-static-fire-test/ <comment><USER2> Pretty sensational article. As early as 21 hours ago the reddit thread on this event clarified that the craft looks fine and had apparently been refueled since the flames. This article was written 9 hours ago and lacks basic info from that reddit thread.

[https://www.reddit.com/r/spacex/comments/ce7rkw/spacex_starh...](https://www.reddit.com/r/spacex/comments/ce7rkw/spacex_starhopper_static_fire_live_15_miles_away/)

<comment><USER3> "SpaceX's test vehicle, a small-scale demonstration craft for some Starship components, caught fire after what appears to be a fuel leak or dump following an otherwise successful static fire test last night. It's not clear why the craft suddenly burst into flames, or whether it was seriously or even superficially damaged."

That's sensationalist? And Reddit is the cure?

<comment><USER2> At the time of that writing, it wasn't clear if the craft caught fire or a cloud of gas outside the craft caught fire. So saying the craft burst in to flames is a little misleading.

And the SpaceX subreddit is a super high quality heavily moderated sub that is regarded as one of the best places to get SpaceX info. As I said, there was lots of information in that thread that was missing from the article. So yes, for SpaceX info reddit very much is the answer. Why wouldn't it be?

</comment></comment></comment><comment><USER4> This article is much better: [https://www.nasaspaceflight.com/2019/07/spacex- resume-starho...](https://www.nasaspaceflight.com/2019/07/spacex-resume- starhopper-tests/)

</comment><comment><USER5> Bug successfully reproduced.</comment>


OCaml: what you gain - <AUTHOR> http://roscidus.com/blog/blog/2014/02/13/ocaml-what-you-gain/ <comment><USER2> I have very fond memories of OCaml. It was OCaml that introduced me to functional programming, way back in 2000 in my freshman year at the uni. I'm a Lisper/Clojurian these days, but I think warmly of OCaml's type system, the speed, the self-containedness of the distribution, and the fact that getting the code to compile tends to mean getting it to actually work.

My #1 gripe with OCaml is the fact that its strings are composed of single- byte characters. I know there's Camomile, but not having it as part of the language core creates a sense of disintegration akin to PHP and Python 2.

There's also this: [http://www.podval.org/~sds/ocaml- sucks.html](http://www.podval.org/~sds/ocaml-sucks.html) which I mostly agree with.

But, all in all, OCaml rocks.

<comment><USER3> > I know there's Camomile

Camomille is great, but it exhaustively covers the _whole_ UTF standard, which you might not need for more casual uses. There are other libraries bringing lighter support for UTF strings (ocamlnet for instance I believe). Nevertheless, Camomille does a pretty good job if you're concerned by compliance.

> There's also this: [http://www.podval.org/~sds/ocaml- > sucks.html](http://www.podval.org/~sds/ocaml-sucks.html) which I mostly > agree with.

It's a pretty old page. I'm not sure its content is still accurate. I'll have to look into that.

<comment><USER4> > created: 2007-01-31 > updated: 2013-02-11

not that old, even though ocaml metabolic rate increased a lot in the recent years

<comment><USER3> Well, I don't know. The "No polymorphism" section is misleading (though polymorphism doesn't carry the same meaning from one language to the next): There's this comment on higher order functions not being supported which surprises me. See the section 7.13[1] and 7.14 of the OCaml documentation. These features are availabe since ver 3.12 of the distribution.

[1]: [http://caml.inria.fr/pub/docs/manual- ocaml-4.01/extn.html#se...](http://caml.inria.fr/pub/docs/manual- ocaml-4.01/extn.html#sec227)

</comment></comment></comment></comment><comment><USER5> If you program in OCaml be sure to checkout Batteries [1], it is an extension (which also replaces some stuff) to the standard library which eliminate most of the criticisms I had against OCaml. Also, don't try to avoid opam [2], I didn't really want to use it at first because I always prefer to use my system's package manager (using Debian), but it makes your life so much easier.

[1] [http://batteries.forge.ocamlcore.org/](http://batteries.forge.ocamlcore.org/)

[2] [https://opam.ocaml.org/](https://opam.ocaml.org/)

<comment><USER6> Do people try to avoid using package managers? Why? On my system I regularly use homebrew and opam but also have occasional need for pip, cabal and more recently npm. Not everything is packaged upstream (nor would I expect it to be).

I can't imagine how the OCaml ecosystem worked before opam as it's rapidly become a fundamental tool.

<comment><USER5> I don't know, my instinct tells me that I should avoid having many independent package managers in order to keep everything in the same place and avoid conflicts. But I don't really have any reasons to think that those are better ways to do things.

<comment><USER7> My instinct agrees with you, but for one small matter. Ubuntu only just started packaging Ruby 1.9.3 - a version that came out years ago and which is to be deprecated next year - in the latest version.

I don't know about OCaml but trying to do Ruby or Python development without using pip or gems (not to mention virtualenvs or RVM gemsets etc.) seems like an exercise in futility and perpetual brokenness.

I'd like it if system package managers could actually keep up with the needs of developers, but they seem to have failed. Until they can get their shit together, we now have the irritation of managing all these many, many language-specific package managers rather than just using apt-get like sane people. If the system level package manager were able to talk to the language level package managers, that'd be a big improvement.

The number of times I've typed `sudo gem install nokogiri` and then had to fumble around and work out exactly which variant of libxml-dev-0 or whatever is needed before I can install a RubyGem with a native dependency shows we've got some brokenness that needs fixing.

<comment><USER8> > I'd like it if system package managers could actually keep up with the needs > of developers, but they seem to have failed.

I would argue that they fail at this because it's a goal that's in direct conflict with their primary goal: to serve end users. The needs of developers are dramatically different. Having multiple versions of a package is a must for developers, but would just cause weird unpredictable issues for end users. (Unless you are very clever and do something like Nix, of course.)

I wrote more about this topic here: [http://technomancy.us/151](http://technomancy.us/151)

</comment></comment></comment></comment></comment><comment><USER9> If I may repeat an old comment of mine, lightly edited for freshness (I dont mean to hijack this thread. It is not often that I get an opportunity to interact with people on HN who are fond of OCaML or are likely to have an interest in it. This is the exact demographics who might appreciate Felix)

        --

For the early adopters and experimenters amongst you, you might like Felix [http://felix-lang.org/share/src/web/tut/tutorial.fdoc](http://felix- lang.org/share/src/web/tut/tutorial.fdoc)

The site is undergoing a major reorganization right now, so some links will break.

It is a whole program optimized, strongly typed, polymorphic, ML like language that can interact effortlessly with C and C++ and has coroutines baked in. It has type-classes as well as modules. Functions written in it may be exported as a CPython module. This might be useful if one wants to gradually transition from a Python based src tree.

Its own demo webserver is based on coroutines, this is the same webserver that serves the language tutorials. It uses a mix of lazy and eager evaluation for performance and compiles down to C++. Execution speed is comparable to hand written C++, mostly better. Its grammar is programmable in the sense that it is loaded as a library. So in the same way that languages may acquire libraries, Felix may acquire domain specific syntax.

With inaccuracies in analogies assumed, Felix is to C++ what F# is to C# or to some extent Scala is to Java.

It is also mostly a one man effort but with a feverish pace of development so it comes with its associated advantages and disadvantages.

Tooling info is here [http://felix- lang.org/share/src/web/ref/tools.fdoc](http://felix- lang.org/share/src/web/ref/tools.fdoc)

The author likes to call it a scripting language but it really is a fullfledged statically compiled language with a single push button build-and- execute command. [http://felix-lang.org/](http://felix-lang.org/) The "fastest" claim is a bit playful and tongue in cheek, but it is indeed quite fast and not hard to beat or meet C with.

      --

Removing comment and putting it here to conserve real estate.

@zem I think you just blew your cover :) As I said its been mostly a one man effort, so there are areas that need work. Its an exciting language, welcome aboard.

@jnbiche Oh no! I am by no means the creator, just someone who finds it exciting.

<comment><USER10> Please respond to comments directly rather than trying to "preserve real estate". It makes it much more difficult to follow conversations.

<comment><USER9> Noted.

I had participated in a rather contentious thread today and there the nesting had gone way out of hand. That and I did not want my comment to be the dominant conversation on this post.

I got downvoted here, so its likely that my within-post conversation annoyed some. Yes, I know you didn't downvote. Its also possible I came across as a conversation hijacker. That was certainly not my intent. Have to say the blog posts are strikingly well written. In fact quite surprised how a Python aficionado takes to OcaML like duck to water so quickly. (Duck typing pun narrowly avoided)

</comment></comment></comment><comment><USER11> You might like F# even more(well except that clr is not as good outside of windows, but still pretty decent)

As my coworker at the time put it. If Ocaml and python had a baby together it would be f#

<comment><USER12> I'm a big fan of F# as well. I haven't tried it outside of windows, on mono. I've always wondered how well supported mono was and what the library ecosystem was like (I could just google that, and probably will)

Any personal experience with it?

Right now I'm diving into haskell, partly because I want a static, type- inferred, functional language on linux (my home platform of choice) and partly because I like the idea of using a language that has really pure (functionally and generally) ideas it's trying to implement. Digging it a lot so far as well.

<comment><USER13> F# has a huge following on macs. The Xamarin guys drive it, and practically every major open source .Net library is available for mono.

I haven't tested it on linux, but I've found it works pretty well on macs.

<comment><USER14> The Seattle F# user group just had an event last night, and the first talk was 1 hour on how to create iOS apps with F# using Xamarin/Mac. If anyone is interested, a recording is at [http://www.youtube.com/watch?v=MriHEnq5MR4](http://www.youtube.com/watch?v=MriHEnq5MR4)

</comment></comment></comment></comment><comment><USER15> OCaml looks really good, I've heard good things about it for awhile now. I'd like to learn more but and currently learning Haskell and want to focus on learning that for awhile.

Does anyone know why OCaml gets compared to Haskell so often? It sounds like OCaml doesn't force a purely functional paradigm on you, so how is it any more functional that a number of good scripting languages (Python, Ruby, Peal, etc)?

<comment><USER16> OCaml has a similar type system to Haskell's. It has algebraic data types. It also has all the normal higher order functions and combinators "done right". It also commits strongly to using first class modules as an organizational component atop the functional core.

I don't think "functional" means a whole lot. Many languages with lightweight, first-class lambdas like to jump on that bandwagon by implementing map/fold/scan/take combinators on lists, sometimes even lazy ones, but that whole game is just a sideshow to the real meat of what makes Hindley-Milner typed languages with ADTs quite fun to work in.

<comment><USER17> Hindley-Milner is fun until you need nominal subtyping or mutable assignment, then the whole "semi-unification is undecidable in general" comes up to bite you.

<comment><USER16> How does HM get in the way of mutable assignment?

<comment><USER18> Polymorphism (more precisely, generalization of unknown types) is incompatible with references. For example:

        let r = ref []

Here r has type 'a list ref (reference to a list of 'a where 'a is unknown).

        r := ["hello"]

r has type 'a list ref, := has type 'a ref -> 'a -> unit, and ["hello"] has type string list, so it works (if we instantiate 'a with string).

        let n = 1 + (List.head !r)

1 has type int, + has type int -> int -> int, and we can type (List.head !r) as int since we can type !r as int list since we can type r as int ref list (this time instantiating 'a by int).

So, we just added an int and a string and the program will probably crash. What's wrong is that every line is correct but because of the mutable store, the program as a whole is incorrectly typed.

The solution is to generalize only a subset of all syntactic constructs. The historic solution in Ocaml is to never generalize expressions that may allocate memory (that's the "value restriction") . For example, a function application (like f x, or ref []) may allocate, but a variable or a constant (like x or 1 or []) can not. That's why [] has type 'a list but ref [] has type '_a list ref ('_a can be unified only once, so in the above example an error would occur at the "let n").

<comment><USER16> Ahh, that's sort of obvious in retrospect, but I was blinded thinking in terms of Haskell where IO protects against such generalization.

<comment><USER18> The equivalent Haskell program is

        import Data.IORef

        main :: IO ()
        main = do
            r <- newIORef []
            writeIORef r ["Hello"]
            x <- readIORef r
            print $ x + 1
            return ()

The reference is bound by "r <-", ie a lambda (as this desugars to ">>= \ r ->"), and lambdas are never generalized (even in ocaml).

I think that the reason why it works is that because there is no way to let- bind r except with a toplevel unsafePerformIO.

<comment><USER16> Yup, that's precisely what I forgot to think about.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> I'm planning to learn ocaml in the coming weeks, as I want to try ocsigen ([http://ocsigen.org/](http://ocsigen.org/)). Seems to me there is good activity in the Ocaml community lately (eg new books came out recently)

<comment><USER5> I like OCaml but really, Ocisgen is crap. People making it have no idea how today's web works.

Some parts of it (lwt, js_of_ocaml) are nice and maybe useful piece of code, but you don't want to use the framework as a whole to develop a webapp.

The problem with Ocsigen is that it reinvents the meaning of everything, even the HTTP verbs, to suit its internal needs. For example, it is not possible (or it must be very painful) to make an API for your Ocsigen app so that other apps can interact with yours. First, you have to forget PUTs, HEADs, and DELETEs, but also GETs and POSTs are used incoherently by the resulting code to update parts of the webpage, submit forms, etc.

If you want to make a site/webapp that only focus on itself and never have to interact with anything else than its visitors, then Ocsigen might be a suitable tool for the job, otherwise I wouldn't use it.

Disclaimer: I only used Ocsigen for one day, it was at JFLO, which expansion in French would translate to French Ocsigen Lectures Day. I get what I know of it and what I'm saying here by the day-long courses and hands-on tutorials given by Ocsigen developers and by discussing these problems with them afterwards.

</comment></comment><comment><USER20> > Another example is the Config object. When I started the Python code back in > 2005, I was very excited about using the idea of dependency injection for > connecting together software modules (this is the basis of how 0install runs > programs). Yet, for some reason I can't explain, it didn't occur to me to > use a dependency injection style within the code. Instead, I made a load of > singleton objects. Later, in an attempt to make things more testable, I > moved all the singletons to a Config object and passed that around > everywhere. I wasn't proud of this design even at the time, but it was the > simplest way forward.

That's called a "god object", unless I'm mistaken. It's an abomination in any language. I have the misfortune of maintaining a codebase with this "feature". Never, ever, do anything like this.

<comment><USER19> Never used or inherited such a design, but I'm curious about what practical problem you encoutered. Care to illustrate?

<comment><USER20> Once you have implemented this design pervasively, you can forget about reusing your code in another context. Because it is impossible to tell which part of the god object is needed in a given part of the code, you have to initialize everything in the god object. With a bit of luck, you're working in Java and mixing this anti-pattern with some Spring dependency injection, in order to make this mess really impossible to untangle.

And obviously it encourages mixing up layers. Why have modularity when you can access your data access components from anywhere?

And in general, circular dependencies are a code smell. Whenever I thought I needed to use them, I came to realize it was the wrong decision.

</comment></comment></comment><comment><USER21> OCaml is a great language, but IIRC the creators didn't talk much to the community, about where they were going, etc. Contrast with Clojure, Golang, Python... So many people steer away and go bet on something else.

<comment><USER22> The conversation between the OCaml creators and the community is a lot more focussed. Back in 2005 when we were developing the Xen toolstack using OCaml [1], I subscribed Xensource to the Caml Consortium [2]. This let us meet with the main team once a year, and air our concerns in a structured way. This is so much easier to handle than a firehose of e-mails. Nowadays I still attend the annual Consortium meeting, but more in a capacity of reporting on our activities at OCaml Labs and there are still a healthy set of industrial users who like this mode of interaction.

[1] [http://anil.recoil.org/papers/2010-icfp- xen.pdf](http://anil.recoil.org/papers/2010-icfp-xen.pdf) [2] [http://caml.inria.fr/consortium/](http://caml.inria.fr/consortium/)

</comment></comment><comment><USER23> But what you lose seems to be readability if going by this code sample

let menu = GMenu.menu () in let explain = GMenu.menu_item ~packing:menu#add ~label:"Explain this decision" () in explain#connect#activate ~callback:(fun () -> show_explanation impl) |> ignore; menu#popup ~button:(B.button bev) ~time:(B.time bev);

<comment><USER3> I don't know how other similar languages deal with GUI. It's always sort of hairy, obscure code when you look at it closely. Mainstream languages (like Java) usually give you GUI building tools which generate all the boilerplate stuff, but if you look at that generated code, it doesn't look so appealing either imho.

If you know the GUI libraries inside out, then the code becomes much easier to grasp though. The lablgtk library (which provides gtk support) is quite well written, providing both a modular interface and objects, but indeed there's a learning curve.

Lastly, you might find it more palatable with a little bit of formatting:

      let menu = GMenu.menu () in
      let explain = GMenu.menu_item ~packing:menu#add ~label:"Explain this decision" () in
      let callback () = show_explanation impl in
      explain#connect#activate ~callback |> ignore;
      menu#popup ~button:(B.button bev) ~time:(B.time bev)

<comment><USER24> > I don't know how other similar languages deal with GUI. It's always sort of > hairy, obscure code when you look at it closely.

The best languages for GUIs I've seen are specialized declarative DSLs. Things like QML, XAML, JavaFX FXML, XUL, and even HTML. Anything else very much sucks, in my experience.

<comment><USER25> And Qt pre-QML. The user interface is declaratively described in XML (which can be edited visually with Qt Designer). You then use a utility (uic) to generate e.g. C++ class which you can use through composition and inheritance. UI events are wired to code through Qt's signal/slot system.

</comment></comment></comment></comment><comment><USER26> Title made me think of this [http://www.youtube.com/watch?v=B9MgWFU3JhM](http://www.youtube.com/watch?v=B9MgWFU3JhM)</comment>


Why Svelte Won't Kill React - <AUTHOR> https://medium.com/javascript-in-plain-english/why-svelte-wont-kill-react-3cfdd940586a <comment><USER2> > _The difference is 0,15 seconds — which means it is negligible._

Maybe on desktop. It's surprising JS devs keep ignoring the low end mobile market which globally accounts for the majority of devices.

</comment><comment><USER3> I work with Vue more than React, and am biased to the title. Other than that, this is on target :)

<comment><USER4> Hello, author here - I'm using React as example because I know it better, but many things I talk about in the article also apply to Vue. Perhaps should have named it "why Svelte won't kill vDOM".</comment></comment>


Cloudflare for Teams - <AUTHOR> https://blog.cloudflare.com/introducing-cloudflare-for-teams/ <comment><USER2> What is this in just one sentence?

<comment><USER3> Here's my attempt:

"Secure internal applications, mobile devices, and users, without a VPN."</comment></comment>


Fast and branchless line drawing routines - <AUTHOR> http://www.edepot.com/algorithm.html

<comment><AUTHOR> This is an interesting advance from a few years back in 2D line drawing routines. With 3D being all the rage, we sometimes forget that some environments still need fast 2D code that even works on old 8-bit CPUs.

The classic routine was by Bresenham. The previously fastest routine was by Wu, but his approach is complex. Compare them and see why:

<http://www.edepot.com/linebresenham.html> <http://www.edepot.com/linewu.html>

By comparison, EFLA just uses a pair of increment values in its main loop and no branching. I don't want to spoil how it works, but the key is in how the x and y increment values are chosen and why one of them is taken from the upper 16 bits.</comment>


iOS 14 Features Handwriting Recognition from Apple Pencil into Typed Text - <AUTHOR> https://www.macrumors.com/2020/03/09/ios-14-ocr-apple-pencil-text-conversion/ <comment><USER2> So glad to see the second comment on the MacRumors article says "Eat up Martha."</comment>


Show HN: Toodles – Project management directly from the TODO's in your code - <AUTHOR> https://github.com/aviaviavi/toodles <comment><USER2> We used something like this on the teams I lead at Dropbox to (what I felt) was great effect. We had a script that would regularly run and sync with Phabricator, our bug tracking tool of choice.

One thing that we did differently, however, was to "assign" TODOs based on project or team rather than individual people. This way we could triage issues more flexibly to people according to their workloads and also build in more immunity to organizational change (when I was around we still had TODOs for the founders -- ten years in!).

<comment><USER3> > One thing that we did differently, however, was to "assign" TODOs based on > project or team rather than individual people.

If this works for your team, that's awesome, but beware, I think you'd need a very disciplined team with good communication for this to work. I've found on some teams, if a task is not assigned to a _single_ individual, nobody feels "on the hook" to do it. Things assigned to a group can tend to pile up un- looked-at, because everyone thinks someone else will take care of them. You can fix this by having some kind of rotating duty, where people pick up ownership of issues on some schedule but if you're going that far might as well just assign directly from the start.

<comment><USER4> * differentiate between backlog and ready for development: (bi)weekly triage * bugs first, then code reviews, then features * order features by priority; PM? Triage as well? * work ready for development list top to bottom

Looks like the tags and keyvals could cover some of that. Maybe a bit hard to express priority (or change it).

Would be neat if changes in the dashboard would update the todos in your code (bit scary though)

<comment><AUTHOR> Priority does get encapsulated via the special p=INT key val.

Also the edits you make in the UI actually are applied to the code! :D

My work flow is running a toodles server in a copy of our repo they we reserve for toodles, and commit the changes after planning meetings or similar.

</comment></comment></comment></comment><comment><USER5> Looks interesting! I'm looking forward to trying it.

The annotation syntax looks powerful but do people really edit thier code to adjust priorities and assignees?

On a related note, I review `TODO` in PRs and consider whether to allow them in the codebase; and `DEBUG` to indicate code that shouldn't even be checked in. Does anyone else have a codetag for this? DEBUG doesn't seem to be a well- known codetag, and I'd prefer to use something other people use.

<comment><AUTHOR> > Does anyone else have a codetag for this? DEBUG doesn't seem to be a well- > known codetag, and I'd prefer to use something other people use.

My team now uses `TODO(#pr)`. The #pr tag meaning it should be taken care of in this pull request, but I don't think that's common. Though maybe if toodles gets some use it will become more common :)

<comment><USER6> Do you open PR's before you start writing code? How do you know what number to fill in?

<comment><AUTHOR> Ah sorry that was a little confusing. "#" signifies a tag / label in toodles, so #pr means adding the literal "pr" tag to the todo. So we're not adding a PR number.

</comment></comment></comment></comment><comment><USER7> If you happen to use Probot, there's a plugin that supports automatic issue creation.

* [https://probot.github.io/](https://probot.github.io/)

* [https://github.com/JasonEtco/todo](https://github.com/JasonEtco/todo)

</comment><comment><USER8> This is great. Aaaaand here's a Microsoft patent covering it: [http://patft.uspto.gov/netacgi/nph- Parser?patentnumber=6,748...](http://patft.uspto.gov/netacgi/nph- Parser?patentnumber=6,748,582)

<comment><USER9> Wow... Out of curiosity, how did you find this?

<comment><USER8> Someone left it as a comment on my blog 10 years ago when I talk about Todo driven programming. I remembered this happening.

</comment></comment></comment><comment> vim-guru I made the very same thing years ago. I remember ending up removing the web- interface and use the CLI and vim-wrapper instead. I still think the syntax of the comments etc was pretty good [http://hkjels.github.io/ntask/](http://hkjels.github.io/ntask/)

</comment><comment><USER10> It would be handy if github, gitlab, vs baked this kind of solution directly into their tooling to help expose todos in open source software

<comment><AUTHOR> Oh that's a cool idea - Maybe there's an opportunity extend this into a github/gitlab/etc plugin. I'll look into that!

<comment><USER10> Actually, if you did that you could create your own "open source todos" site that had links to todos in source code for popular projects

</comment></comment></comment><comment><USER11> Neat! We use a TODO.md, but this solution can keep track of the exact position. Looks very useful.

If there's a way that the developers can run it without installing the Haskell suite (maybe binary releases for Windows, Linux, macOS), we will try it.

Does it ignore paths like node_modules/ and others or support command line arguments for that?

<comment><AUTHOR> > If there's a way that the developers can run it without installing the > Haskell suite (maybe binary releases for Windows, Linux, macOS), we will try > it.

Great, I was waiting for someone to ask for a binary distribution before actually going ahead and setting it up. I'll go ahead and do that then.

> Does it ignore paths like node_modules/ and others or support command line > arguments for that?

Yes, you set a list of regexes per project for toodles to ignore.

<comment><USER5> Yes, I'm halfway through installing on my Mac, it'd be much easier to use a docker container or pre-built binary :)

I created an issue suggesting a docker container, hope that's not annoying!

PS in case it helps others: for macOS10.12 + brew, I had to add:

        extra-deps:
        - MissingH-220.127.116.11

to `~/.stack/global-project/stack.yaml`

<comment><AUTHOR> Just curious, which stack resolver are you using?

<comment><USER5> Whatever `brew install stack` installed...

       $ stack --version
       Version 1.7.1 x86_64
       ...lots more output, skipped...

That's all I know :)

</comment></comment></comment></comment></comment><comment><USER12> just like `rake notes` in my rails apps which also lists FIXME and OPTIMIZE.

[https://edgeguides.rubyonrails.org/command_line.html#rails-n...](https://edgeguides.rubyonrails.org/command_line.html#rails- notes)

</comment><comment><USER13> Very cool. Go already has the notion of custom notations in comments for handling todos and bugs. I wrote about it here: [http://pokstad.com/2018/07/26/gonotes.html](http://pokstad.com/2018/07/26/gonotes.html)

</comment><comment><USER14> Maven has a similar plugin: [https://www.mojohaus.org/taglist-maven- plugin/](https://www.mojohaus.org/taglist-maven-plugin/)

Example: [https://maven.apache.org/plugins/maven-project-info- reports-...](https://maven.apache.org/plugins/maven-project-info-reports- plugin/taglist.html)

</comment><comment><USER15> This looks pretty cool, I'll try it.

If you use Xcode, this link has a pretty nice script you can add as a Build Phase, and it generates warnings out or TODOs.

[https://crunchybagel.com/xcode-todo-warnings- swift](https://crunchybagel.com/xcode-todo-warnings-swift)

</comment><comment><USER16> There's a pretty nice implementation of this sort of idea in atom (I only played with it tho): [https://imdone.io/](https://imdone.io/)

</comment><comment><USER17> Off topic, I'm looking for a solution to embed SVG diagrams directly in my code as comments, with the ability to edit them as in inkscape.

<comment><USER18> This sounds ambitious, but I imagine emacs can do it. Is that a feasible approach for you?

</comment></comment><comment><USER19> Neat idea! I might throw something like this together for myself in awk for command line use.

<comment><AUTHOR> Just an fyi, toodles has a CLI command if you pass the `no_server` flag, might save you some coding.

</comment></comment><comment><USER20> TODO FIXME write an insightful comment here</comment>


How to stop giving a F$% what people think. - <AUTHOR> https://medium.com/life-hacking-2/46bf86584c95

<comment><USER2> Mincing a curse in the headline of an article about not caring what people think strikes me as a bit weak. We're allowed to say "fuck" these days.</comment>


Kim Stanley Robinson's "New York 2140" - <AUTHOR> http://nymag.com/selectall/2017/03/kim-stanley-robinsons-new-york-2140-review-a-drowned-nyc.html <comment><USER2> _I took a graph of a map of Manhattan and of the greater New York region and U.S. Geological survey's print then looked at the streets and the contour levels and I simply marked the 50-foot intervals to see what kind of an island was left, what kind of a bay. And then I walked around town with a tourist-map version of that that I had altered so that I could have a smaller version of that. I wandered around and I looked at the terrain and I looked at the streets running from like Fifth and Sixth avenues between the Empire State Building and say 20th — there's a 10-foot drop there that would [in a 50-foot sea-level rise] be the tidal zone that is actually several blocks of the wetland at low tide, but underwater at high tide. Even though it would be the shallows with waves breaking._

That actually sounds incredibly fun. Taking pictures and photoshopping in water at the appropriate levels would be pretty cool too.

I have to say, not having been to New York and having nothing on the line, that actually does sound like an incredibly cool setting.

<comment><USER3> Would it really be remotely cost-effective to take a skyscraper and refit the bottom three stories to be underwater? Sounds like a stretch. It would probably be cheaper to abandon low-lying areas and demolish the buildings there.

<comment><USER2> Given that skyscrapers seem to describe buildings of 40+ floors, losing 3 is less than 10% of the total floors, possibly a little more of the total floor space given that upper floors may not have the same dimensions, offset by possibly fewer elevator shafts beyond certain points. If the bottom can be retrofitted to be very secure in water (extra concrete?), then I don't see why you would abandon it. It's not like you're constructing a whole new building and have to forego three floors, it's already existing and it's just a matter of putting the work in to make sure it's still usable.

These things are all anchored into bedrock anyway, so it's not like you should have to worry about the material under the foundations shifting or eroding.

<comment><USER4> Most of the things that skyscraper needs in order to be a viable structure - electricity, data, water, sewage - lie underground in systems that will not survive extended submersion beneath seawater.

<comment><USER5> Kim Stanley Robinson has this problem in general. It's as if he just doesn't care about the science in his sci-fi. Engineering problems just get hand-waved around whenever they're inconvenient. Terraforming Venus? No problem! Ten kilometer tall spiral launch structures? Sure! A service corridor that goes all the way around a planet? Easy! I might be more inclined to forgive him if he could write a halfway interesting character, or manifest some semblance of a theme, but I'm just constantly disappointed. His work seems more ambitious than spaceships and rayguns, but it always comes up short. I'd rather spend my limited leisure reading time on mindless space potboilers like _The Expanse_.

<comment><USER6> I've just about given up halfway through _Years of Rice and Salt_. If the writing is this pedestrian, I need more of a point than _reincarnation!_

In truth, I'll probably read the whole thing eventually, since I bought the paperback already, but it's certainly not a page-turner.

<comment><USER7> The point isn't reincarnation -- that's just an excuse to have similar characters in different eras. The point is to think about how different (better in some ways, worse in others) the world would have been if Western Europe hadn't been as dominant as it was in our history.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I've very mixed feelings about KSR. His ideas are interesting and worth thinking about, but I've always found his writing style unbearably flat and boring. I really wanted to read the Mars trilogy, but gave up after the first volume, the writing was so dull and lifeless.

So here we go again - a book that seems like it's focused on interesting ideas, but is that worth plowing through acres of arid prose?

<comment><USER9> I got through about 2/3 of Red Mars and put it down a few years ago. Even though it was fascinating and unbelievably well researched, it just felt like work to read it. A few years later I decided to try again and ended up reading the whole trilogy. And loved it. I think you have to adjust your expectations a bit and look at his writing for what it is; an exploration on "what would it really be like if X happened".

Most sci-fi is a narrative set in some kind of technologically-different universe. His is more like a serious meditation on what that universe would be like if it really did exist.

<comment><USER10> Red Mars has kind of a weird rhythm to it. I think Robinson was trying to make a sort of "fake history", so plot lines and characters kinda peter-out or go no where in a way that happens in real life, but not in most fiction (GRR Martin is the only other author I've read with a similar style). I really like the technique, but I can see why its not everyones thing.

The later books in the series slowly take on a more traditional structure, with focus more on a smaller cast of "heroes" about whom most of the action takes place.

<comment><USER8> It's not the structure of the narrative. It's the writing style itself. Feels very detached and cold, very clinical. The characters have the emotional personality of shadows on a wall; they may have guts but have no heart. When people were dreaming in the 1960s about computers writing literature, this was the stereotype of computer-written text.

Meandering plot lines I'm fine with. I kinda like it in fact.

<comment><USER11> That's an interesting critique that is very opposed to my own reading. Do you have specific examples? From my perspective, things like the Sax/Anne debate about terraforming Mars, or Frank's resentment at living in Boone's shadow, or Boone's amusement at/exploitation of being a larger-than-life figure struck me as very well developed emotionally.

</comment></comment></comment></comment></comment><comment><USER12> Very intriguing article - I'm going to get the book. A major nitpick that made me stop reading the article though..

>To truly spoil the end of the book...

You've just convinced me to buy it, and now I can't read further in your article. I don't know if its safe to keep reading, and I'm not going to tempt spoiling the book. Even if it is tongue-in-cheek, how would I know that for sure?

<comment><USER13> Knowing the ending may make you want to read it even more.[0]

I know, atleast for me, it can help influence what I should consume when given time constraints.

[0][http://pages.ucsd.edu/~nchristenfeld/Publications_files/Spoi...](http://pages.ucsd.edu/~nchristenfeld/Publications_files/Spoilers.pdf)

<comment><USER14> I know that, when I read/see a surprising or exciting twist in a story, I get a thrill of excitement and delight; if I knew it was coming, though, it's replaced with, at best, a duller sort of "yep, there it is" sensation. Knowing that I've missed out on that thrill is upsetting.

Relatedly (because I have actually had people argue with me about this before) I really don't get why so many people (like these researchers) feel the need to tell me that those sensations I just described are invalid or imaginary.

</comment></comment></comment><comment><USER15> Here's a higher res copy of that nice cover art by Stephan Martiniere ([http://www.martiniere.com/](http://www.martiniere.com/)):

[https://fsmedia.imgix.net/6c/17/d1/3e/0a61/470f/a3e8/85c1e77...](https://fsmedia.imgix.net/6c/17/d1/3e/0a61/470f/a3e8/85c1e775f036/robinsonnewyork2140-hcjpg.jpeg)

(Looks slightly upscaled, but probably from a better source than in the posted article.)

<comment><USER2> Very cool. The one thing about this picture is that I imagine there would be a lot more sky bridges in a situation like that. Perhaps that's covered in the story. I guess I'll have to find out. :)

<comment><USER15> It would make the picture too cluttered, I think.

</comment></comment></comment><comment><USER16> Any thoughts on KSR's thoughts on hacks?

> What I wanted to say with that part of the plot is you can't hack the > system, you have to legislate the system. Because hacks are reversible and > they are too secret and they're kind of like a desire for a technical, > silver-bullet solution like you might get out of Silicon Valley people but > in fact these are laws, global laws. So what you really need is legislation > to change them and Piketty-ing the tax code.

<comment><USER17> I didn't understand that point. Wouldn't legislation be more reversible than hacking (eg, healthcare, USDA, EPA, etc at the moment due to change of government)? I must be missing something.

</comment></comment><comment><USER18> One of my favourite authors. I like how optimistic his books are, reminds me of the Culture series.

<comment><USER19> This is a surprising to me since, of Robinson's work, I've only read Aurora. One of the primary impressions it had on me was the overwhelming bleakness of the universe and the futility of space exploration/colonization.

Perhaps I should muster the courage to try some of his other work.

<comment><USER20> The unfortunate part about Aurora is that it is "optimistic" only in the context of all of the Red Mars trilogy, and 2312, and really only in the last chapter, where...

 _SPOILERS below_

the characters go "well, eff it, I guess we have to make it work here on Earth". It seems to me that, in the arc of KSR's work, Aurora is the effective acceptance that humans will have to make Earth work for them, for better or worse, even as they collectively wrecked the planet. And that seems a nice segue into New York 2140.

<comment><USER21> Aurora is also told from the PoV of characters that are extremely anti- extrasolar travel.

 _SPOILERS below_

Note however at the end of the book cryo-sleep is developed. This technology removes the main moral argument and technological difficulty against extra- solar travel as presented in the book. It is even noted in the book that a new wave of human colonization is taking place. KSR seems to be making both arguments at once but only telling one side of the story.

<comment><USER22> > This technology removes the main moral argument and technological difficulty > against extra-solar travel as presented in the book.

Not quite. The other difficulty presented is the sparsity of places suitable to settle at. And what you do then if you're not very lucky on arrival.

<comment><USER21> >And what you do then if you're not very lucky on arrival.

Option 1: Go to sleep and go home.

Option 2: Setup a small research station in a spun up asteroid and get terraforming.

Option 2 is much nicer with cryo-sleep. Try a terraforming experiment and sleep for 50 years to see how it worked out. You can even cycle people between Earth and the research station (see the plot of Alien). Planetary Geologists can live their lives on geologic time scales.

Or you could improve your odds by sending robots or small teams to many different stars (sleep, explore, sleep). You don't need to bring a full-cycle ecosystem until you decide to stay. Find good planetary sites and then send over the supplies.

My read of Aurora was that interstellar colonization was about to take place, but the PoV characters were against it.

</comment></comment></comment></comment></comment></comment><comment><USER23> I haven't read Robinson's book, but the interview is intriguing ... many speculative worlds based on the premise of man-made ecological catastrophe are positively grim ( _On The Beach_ , _Jem_ , etc.) but Robinson's NYC is (apparently) coping quite well.

JG Ballard tackled a somewhat similar scenario in 1962 with _The Drowned World._ (1) It was London, not NYC, and the catastrophe was still progressing, which would lead ultimately to human extinction or the triumph of the reptiles. The beauty in the book was Ballard's language, the evocative descriptions of the world, and the sad main character living out his remaining days in a skyscraper penthouse. Worth reading (and comparing with Robinson's book).

1\. [http://www.telegraph.co.uk/culture/books/10273413/Will- Self-...](http://www.telegraph.co.uk/culture/books/10273413/Will-Self-on-JG- Ballards-The-Drowned-World.html)

<comment><USER7> Yes, I love Ballard's catastrophe novels. But of course as prophetic as the _The Drowned World_ seems to us today, Ballard wasn't writing it as a serious prediction of the future -- he just liked writing about the world ending in weird ways -- water, fire, a mysterious wind, etc.

<comment><USER24> My theory about most of Ballard's "sci-fi" was that he just liked to throw his characters in (or immediately after) some world-shifting event (mostly in the sense of "catastrophe") and see what kind of neurosis or madness would emerge from the new environment. So the external environment was mostly a backdrop for the development of the characters' mental maladies.

It's pretty rare to find a character in Ballard's stories who acts "rationally" and usually (at least in my experience) the few that do tend to look alien/mad because they are still using human logic and common sense in a world that has obviously moved in a totally different direction.

</comment></comment></comment><comment><USER25> Related, this is a fun tool to play with - well if your idea of fun includes enacting disaster fantasies anyway:

[http://gothamist.com/2015/10/13/nyc_climate_change_map.php](http://gothamist.com/2015/10/13/nyc_climate_change_map.php)

</comment><comment><USER26> The cover has a similar asthetic to SimCity 2000's box art:

[http://agentpalmer.com/wp- content/uploads/2014/02/SimCity-20...](http://agentpalmer.com/wp- content/uploads/2014/02/SimCity-2000-Box-Cover-Art.jpg)

</comment><comment><USER27> I read it already and really enjoyed it. It's a mixture of the quiet descriptiveness of the science in the capital series with the forward thinking genius of his earlier scifi, interspersed with some serious nerding out over the economy and it's role in the world. Thumbs up.

</comment><comment><USER28> I have lived in his small home town of Davis for a decade, and I still haven't bumped into Kim Stanley Robinson. From his writing, I was sure I'd run into him at Delta of Venus café one day. No such luck.

<comment><USER29> He even mentions a "Delta of Venus" in 2312; however, his preferred spot seems to be Mishka's.

<comment><USER28> Interpreting personality from books to predict hangouts is a funny endeavor, but I can see how Mishka's would be his choice. If it isnt the good coffee, tea, and pastries, Mishka's is filled with college students and professors, many of whom are scientists. Obviously scientists play a central role in his writing. Delta of Venus attracts the more alternative crowds, as well as english lit students and the like. The people there have edremind me of some of the characters and settings in Green or Blue Mars.

In any case, these are just passive musings. I frequent Delta of Venus because I like the patio.

</comment></comment></comment><comment><USER30> Love this, from one of the answers the author gave:

> "You can indeed become enormously wealthy and still be a good person just > playing the game. That point needed to be raised because, as Orson Welles > once pointed out, everybody has their reasons. Very few people are thinking > as a sociopath might think, that nothing matters to me."

Glad to see this sentiment is a driver in this book's dystopia. A little slice of healing for our political climate.

</comment><comment><USER31> >"why neoliberal capitalism is the only real villain of the book"

I doubt that neoliberal capitalism will be "the real villain" 100 years from now. Capital is in the process of being superceded by information (a further rarification/reification of social relations).

Either way, it's hard to imagine neoliberalism making a good sci-fi villain. At all.

<comment><USER32> > Capital is in the process of being superceded by information

Sometimes I really can't follow comments on HN for technical jargon, this one I can't follow because I have no idea what you're on about.

How do you see capital being replaced by information?

<comment><USER4> I'm not the GP but here's an example of larger trend that they might point to in support of their argument:

Excerpted from Matt Levine's Money Stuff newsletter: [https://www.bloomberg.com/view/articles/2017-04-04/hacienda-...](https://www.bloomberg.com/view/articles/2017-04-04/hacienda- hedges-and-unicorn-votes)

> One simple story to tell here is that globalization and technology have > shifted the bargaining power between entrepreneurs and providers of capital. > These days, if you want to start a social-media company, you don't need to > raise a lot of money from investors to build a factory. You just need a dorm > room, and your parents are probably paying for that. And if your social > media company is a success, it can go global instantly with near-zero > marginal costs. (Yes, I know, this does not exactly describe Snapchat, which > is focused on developed economies and which has weirdly enormous costs, but > still.) The path to being a gigantic profitable company is paved relatively > more with ideas, and less with capital:

Vivek Wadhwa, a distinguished fellow at Carnegie Mellon University's College of Engineering, says the "winner-take-all" culture in which a few tech companies emerge as hugely profitable from among a far-larger number that fail encourages investors to give tech executives more leeway.

Meanwhile the same forces of globalization and technology mean that there are a lot more people with capital. U.S. tech companies can raise money from China, or the Middle East, rather than limiting themselves to New York and San Francisco. Globalization opens up new markets, which makes good business ideas more valuable, and new sources of capital, which makes those ideas easier to fund.

So winning entrepreneurs are more valuable, while capital is less valuable and less scarce. Of course the bargaining dynamic between the people with ideas and the people with capital has shifted. You'd expect to see some of that playing out in price -- investors paying billions of dollars for unprofitable social-media companies -- but at some level, if you are a young billionaire entrepreneur, you don't really need any more money. You might as well bargain for more power, or more freedom.

<comment><USER33> >are a young billionaire entrepreneur, you don't really need any more money

Oh good, I'm glad the future can only be described as how the options of a select few are going to be different

<comment><USER4> That's my mistake, I included a paragraph that wasn't relevant to this specific topic but was covered in the article itself.

</comment></comment></comment></comment></comment><comment><USER34> Lots of interesting ideas in the book spread out through a really mundane story. The best part of the book for me is the chapters with the New York Citizen telling us the history of the city and how it got to be to where it is in 2140. The story itself has some highlights, but overall it was mostly a slog to listen to.

</comment><comment><USER35> Funny, he really seemed interested in drowning NYC in his book 2312 (very good novel). I suspect he wanted to expand on the topic, besides the drowned city just being the setting for a few situations in the book. It might be worth comparing both descriptions of NYC to see what changed after his research.

</comment><comment><USER36> It seems more likely they would go damns and dikes then let the water over run the city. Manhattan surrounded by a wall where the ground of the city is were it always is, and a 50ft wall around it.

</comment><comment><USER37> This is great, I want to see a whole series of these scifi books for other cities of interest around the globe.

<comment><USER38> There's at least one scene that's similar to the premise of this book in one of the Mars Trilogy books—but set in London, where the Thames is flooded.

</comment></comment><comment><USER39> Nitpick about New York 2140 - did KSR mix up neap and spring tides at one point?

</comment><comment><USER40> All the bitcoins will be mined

</comment><comment><USER41> Really excited to read this book! I live by the Mars Trilogy, and by 2312, and I'm currently in 40 Signs of Rain. I'll add this to the list!

Note that there's a key typo in the introduction, suggesting the setting is 2040, and that made for a confusing first few minutes, but really, the book is set in 2140 indeed. Can't wait!</comment>


Hardware Managed Thread Concurrency for Irregular Apps [pdf] - <AUTHOR> https://pdfs.semanticscholar.org/ac6a/c7ffa46605203fcd8b511dc06a84d009f3b9.pdf <comment><USER2> A really interesting idea. Taking feedback from the current execution to drive future scheduling is prevalent in software. Makes sense to push it to hardware too. I wonder how apple is doing hardware managed thread scheduling in the latest processor.</comment>


Claim Your Red Bull: Class Action Settlement - <AUTHOR> http://www.energydrinksettlement.com/claim

<comment><USER2> How much can you get?

<comment><AUTHOR> $10 cash or $15 of Red Bull product.</comment></comment>


Free in-browser VNC service launched today - <AUTHOR> https://vnc.cloudsigma.com

<comment><USER2> Web site rejects iPhones. Can't read about it.</comment>