Lessons from an Interaction Designer- TRUST THY USER... - <AUTHOR> https://medium.com/web-design-technique/a7ef1a261ab6

<comment><USER2> Guess what will happen to Wikipedia if they decided to just "trust their users".

All the good content will be gone within 24 hours. Effin gone.</comment>


Responsibility Without Authority: How to Drive Employees Crazy - <AUTHOR> https://www.linkedin.com/pulse/responsibility-without-authority-how-drive-employees-crazy-fialka <comment><USER2> We call that "Setup to fail"...</comment>


Hello, I still haven't found a mentor - <AUTHOR> In high school I was told I wouldn't fit in until grad school, I still tried to fit in but didn't work. In undergrad the prof / coach I had felt the most comfortable around explained in detail his philosophical justifications for me to be murdered while he was in the driver seat and I was in the front passenger seat on the way to a debate tournament where I ended up crying my eyes out and deciding to quit debate.
I got into the #1 ranked grad school I had dreamed of but my advisor had nothing to say and no words of encouragement when I told her my life's story... I held out hope for so many years to make it somehow and she had no advice about anything, how'd ever be able to afford a home, get a good job, have a family, NOTHING??
The tried to get CS degree and was #2 in my class but #1 was a terrifying sociopath and when profs started openly trying to make students cheat to make quotas, as in PROFESSORS WERE LITERALLY BEGGING STUDENTS TO MARK DOWN OTHER ANSWERS TO CHEAT AND STUDENTS REFUSED BECAUSE THEY DIDN'T CARE ABOUT THEIR GRADES AS MUCH AS PROFESSORS I hoped out and hoped to find someone that was in a more healthy situation that maybe I could be mutually beneficial with.
I've been trying to find a mentor on this site since 2014 now and after all those years of people making posts of wanting someone like me I've hardly even got a response. Best "job" offer I've gotten for CS work was $500 for three months - I literally got paid better than that when I was picking fruits in vegetables when I wasn't even 10 years old yet, so somebody please tell me why I tortured myself through almost 2 decades of school under people saying it would be helpful when literally no one gives a shit. <comment><AUTHOR> The few times when I've had an online relationship, just having someone to say goodnight with has been so much more comforting and sleep-inducing than any of the medications that work for a bit until they don't.

2005 or so was the first time I had a really special relationship, online, and when I tried to meet the other person like they seemed to want they kinda backed out. It's 15 years later and no matter how close we get and the other person says we need to meet, when we want to meet and I'm so ready to meet them they instant or slightly-less-abruptly ghost me.

Um I really need a job where I could afford somewhere to live and it'd be helpful to have a job where I don't have to work 7/365 since I haven't had a day off in over 5 years and so I don't even know who I am or what I'm trying to do anymore.

My best friend is someone over 2500 miles away and 10 years older than me but they text me on discord about life and we watch movies sometime.

How do I find a place where there are one or more adults who could help me find a way to survive, afford a home and food and the rest on this planet? Is there somewhere else I could find someone or a future?

</comment><comment><AUTHOR> I go around the few places I'm not too paralyzed and ask for help and I know all these years later it doesn't make sense but it's hard to imagine anything else I could get my body to do. My best friend has given up on finding a relationship but I don't wanna give up yet...

</comment><comment><AUTHOR> Two anonymous downvotes... no matter where or how I try to bare my soul I'm not wanted</comment>


The Science of Standing in Line - <AUTHOR> http://www.wsj.com/articles/the-science-of-standing-in-line-1475850601?mod=e2fb <comment><USER2> For those who are interested in the actual implementation of these models check out simmer in R, SimPy in Python or SimJulia in Julia. Simmer was just released recently and has excellent examples/tutorials [0] for an introduction.

[0] [http://r-simmer.org/articles/](http://r-simmer.org/articles/)

</comment><comment><USER3> One result worth noting is that checkout line speed is faster when each worker has their own line. [http://web.ics.purdue.edu/~yrosokha/docs/Humans%20Are%20Not%...](http://web.ics.purdue.edu/~yrosokha/docs/Humans%20Are%20Not%20Machines%20-%20Impact%20of%20Queueing%20Design%20on%20Service%20Time.pdf)

</comment><comment><USER4> Article from NPR in 2010 where Professor Richard Larson was interviewed directly on the same subject[1] and even mentioned in the WSJ article, too.

[1] [http://www.npr.org/templates/story/story.php?storyId=1301208...](http://www.npr.org/templates/story/story.php?storyId=130120883)

</comment><comment><USER5> Pay wall!

<comment><USER6> Click the "web" link at the top of this page. This will lead you to the Google search result for that article. From there, there won't be any pay wall as it is against Google's SEO rules.

<comment><USER7> Same paywalled result. If everything you found on Google was open then paywalls wouldn't exist.</comment></comment></comment>


How to set up your own Certification Authority (CA) (2013) - <AUTHOR> https://jamielinux.com/articles/2013/08/act-as-your-own-certificate-authority/

<comment><USER2> certified[1] has been a great for me so far in this matter.

[1][https://github.com/rcrowley/certified](https://github.com/rcrowley/certified)

</comment><comment><AUTHOR> A cursory reading didn't turn up anything obviously wrong or insecure with this setup, with the possible exception of there being insecure defaults in openssl.cnf which is minimally edited. Would love if anyone else could confirm that!

Other instructions on this site include setting up an intermediate CA using a similar process and details of the signing process. Great info, anyways.

<comment><USER3> I was having a really hard time last week trying to figure out good settings to pass to OpenSSL in 2014. There are quite a few tutorials over years, and as an outsider it's really hard to evaluate the relative benefits.

I'd really love to see a continually updated set of best practices for using OpenSSL for a variety of tasks, like creating a CA, intermediate cert, cert for ssl/tls, etc

<comment><USER4> I'm working on a PKI "manual" which will be up soon. I kind of forgot about it but it details a lot of things about PKI in 2015 and current security best practices. Still has omissions though hence why it's not up yet.

</comment></comment></comment><comment><USER5> I'd suggest to rather use easy-rsa[1] because wrestling bare OpenSSL is not something you want to do unless you absolutely have to.

[1] [https://github.com/OpenVPN/easy- rsa/blob/master/doc/EasyRSA-...](https://github.com/OpenVPN/easy- rsa/blob/master/doc/EasyRSA-Readme.md)

</comment><comment><USER6> If you are a Ruby user I would recommend looking at the r509 project. [1]

It includes a HTTP interface for issuing certs and an OCSP responder.

[1][https://github.com/r509](https://github.com/r509)</comment>


How often do Startups Join Together? - <AUTHOR> http://ceklog.kindel.com/2011/10/05/how-often-do-startups-join-together/

<comment><USER2> It's not common but not exceptionally rare either. It happened to Reddit, Clustrix, Ninite, and Parse. Reddit was not a happy marriage, but the other 3 seem to be.</comment>


What if Canada had spent $200bn on wind energy instead of oil? - <AUTHOR> https://www.theguardian.com/world/ng-interactive/2018/jun/15/canada-oil-sands-pipeline-trans-mountain-what-if-invest-renewable-wind-energy <comment><USER2> > since 1999

> at the current cost

Wow great research. By the same token, Canada should cancel the next $200bn of expenditures on wind energy and save it. By spending it in bulk in 20 years, surely it will be able to get much more energy at a lower price. Genius.

<comment><USER3> The balance between inflation and dropping turbine prices. I'm sure there are trend lines somewhere...

</comment></comment><comment><USER4> * REQUIRES TIME-MACHINE

 __STUPIDLY GOES FORWARD IN TIME FOR 2018 TECHNOLOGY INSTEAD OF 2025...OR 2050

 __* CANADIAN ENERGY SEARCH TEAM OF THE FUTURE NEVER COMES BACK BECAUSE FUTURE IS FULL OF SEX ROBOTS

<comment><USER5> Yeah, a time machine -- or reading any of the publications the Rocky Mountain Institute has been putting out since the 1970s (e.g. Brittle Power) that show, when accounting for externalities, renewables and energy efficiency have been cheaper than fossil fuels and nuclear since the 1970s. Renewables and energy efficiency should have won in the marketplace for decades. Why didn't they? it is because of an tilted playing field where people don't pay the full cost (including risk) for fossil fuels and nuclear at the gasoline pump or on their electric bill -- but instead they pay it in higher health care costs, taxes for the military, or government-absorbed risk like for nuclear meltdowns. [https://en.wikipedia.org/wiki/Rocky_Mountain_Institute](https://en.wikipedia.org/wiki/Rocky_Mountain_Institute) "The Lovinses described the "hard energy path" as involving inefficient liquid-fuel automotive transport, as well as giant centralized electricity- generating facilities, often burning fossil fuels such as coal or petroleum, or harnessing a fission reaction, greatly complicated by electricity wastage and loss. The "soft energy path" which they wholly preferred involves efficient use of energy, diversity of energy production methods (and matched in scale and quality to end uses), and special reliance on "soft technologies" (alternative technology) such as solar, wind, biofuels, and geothermal. According to the Institute, large-scale electricity production facilities had an important place, but it was a place that they were already filling in the middle 1970s; in general, more would not be needed. In a 1989 speech, Amory Lovins introduced the related concept of Negawatt power, in which the creation of a market for trading increased efficiency could supply additional electrical energy to consumers without increasing generation capacity—such as building more power plants."

</comment></comment><comment><USER6> Article says 912 million barrels produced since 1999 with cost of extraction $40 per barrel for 36 billion spent on equipment, wages, etc. the average cost of oil since 2000 is $65 per barrel so 912 million barrels grossed 58 billion.

It isn't clear who invested 200 billion and why they continued to invest since they have a loss of 178 billion having only netted 22 billion.

<comment><USER7> > Article says 912 million barrels produced since 1999

Actually, it says:

> In 2017, the Alberta oil sands produced roughly 912m barrels.

The article doesn't actually tell us the whole history, it just cherry-picks one year.

There's other suspicious playing with numbers going on:

> About 60% was turned into gasoline and diesel, enough to fuel 73m vehicles

So.. if 100% had been turned into fuel for those vehicles, that would translate to.. 122m vehicles, weirdly identical to their number for electric vehicles.

Then they're comparing a 12L/100km (19.6mpg) ICE vehicle against a Chevy Bolt in the pricing section?

Not much to see here, sadly.

</comment></comment><comment><USER8> Then we could have recovered some of the wind from the mouths of our politicians.

</comment><comment><USER9> Or how about on Internet infrastructure?

</comment><comment><USER10> Weren't too many electrical cars back then.

<comment><USER11> There was plenty of demand for electricity though, and electric cars are definitely not a new technology(0)

0\. [https://en.wikipedia.org/wiki/Electric_car#History](https://en.wikipedia.org/wiki/Electric_car#History)</comment></comment>


Category Theory abstractions for Clojure - <AUTHOR> http://funcool.github.io/cats/latest/ <comment><USER2> What is the value of Category Theory for programming? I'm genuinely interested, as my knowledge about this subject is little to none.

<comment><USER3> Category Theory is all about composing things and being able to reason about them mathematically. In programs, we compose lots of things (functions, types, objects, systems...), and being able to abstract that away is valuable. Bartosz Milewski has been putting together a nice series ("Category Theory for Programmers") for a little while now, that seems to be pretty well-received and may give you the answer you're looking for: [http://bartoszmilewski.com/2014/10/28/category-theory-for- pr...](http://bartoszmilewski.com/2014/10/28/category-theory-for-programmers- the-preface/)

<comment><USER2> Thank you. I've just finished the first chapter and it has been a pleasant reading so far. The mapping of "real world" onto Category Theory surely makes the matter more approachable.

</comment></comment></comment><comment><USER4> It seems like within a week of me trying in earnest to adopt Clojure as another language in my arsenal, HN starts having a lot more regular Clojure visitors to the front page. Is this just confirmation bias, or does it seem to other HNers like Clojure is getting more traction and attention these days?

<comment><USER5> Clojure certainly seems one of the darling languages on HN (along with Haskell, Rust, Go). The thing that _I'm_ noticing all of a sudden is the uptick in articles on category theory -- which, similarly, I was only made aware of about 3 weeks ago.

Is there a graphical representation somewhere of buzzwords appearing on HN over time? If not -> hack-a-thon project.

</comment></comment><comment><USER6> Neat. You should know that cats is also the name of a Scala library [1] that includes a lot of similar concepts.

[1] [https://github.com/non/cats](https://github.com/non/cats)

</comment><comment><USER7> Not a great deal of explicit category theory in this. Somone ought to implement Moggi's paper on exceptions and show exactly what the constructions mean.

<comment><AUTHOR> This paper?

[http://www.cs.cmu.edu/afs/cs/user/crary/www/819-f09/Moggi91....](http://www.cs.cmu.edu/afs/cs/user/crary/www/819-f09/Moggi91.pdf)

<comment><USER7> Yes. Many category theorists would find Moggi91 opaque. It could benefit from commentary and more detail than would be standard for a published paper, if the intention is to make the categorical semantics of functional programming with side effects accessible to a wide audience. I guess one could suss this out of Robert Harper's book on the foundations of programming languages, but I was thinking of something more direct.

</comment></comment></comment><comment><USER8> The "monads" library they ding for not-great documentation is [https://github.com/bwo/monads/](https://github.com/bwo/monads/) (the documentation is admittedly not great).

</comment><comment><USER9> Exciting! I was looking for a ClojureScript monad library just last month. Can't wait to dig in to this one.

I think there is a lot of potential to help with the complexities of asynchronous failures.

</comment><comment><USER10> I wish the author didn't make the same mistake as Haskell by calling it _return_. But i guess it has become convention now.

<comment><USER11> Yeah. I guess "return" is still an improvement on the previous name, η. :)</comment></comment>


Google OnHub ships without IPv6 support - <AUTHOR>

Just got my OnHub in the mail yesterday.<p>Boy, was I disappointed when I realized that it didn't support IPv6. :( <comment><USER2> Supposedly it's coming: [https://www.reddit.com/r/OnHub/comments/3j6tzl/onhub_disappo...](https://www.reddit.com/r/OnHub/comments/3j6tzl/onhub_disappoints/cumu06k)

I guess consumer electronics are being developed like games now.

<comment><USER3> Routers have been like this since firmware updates were easily distributable. It's lucky there's an update at all

</comment></comment><comment><USER4> WTF? How can anybody ship a consumer Internet device without IPv6 support in 2015? That's ridiculous.

I mean, that would have been a bad idea years ago, since we all have a vested interest in spreading IPv6 support. But now, when even laggards like TWC support IPv6 on 90% of their residential network - and more and more Internet sites are up and running on IPv6 - shipping a device like that is just shortsighted as hell.</comment>


ArangoDB Receives $10M Series A Funding - <AUTHOR> https://www.arangodb.com/2019/03/arangodb-receives-series-a-funding-led-by-bow-capital/ <comment><USER2> Congrats to the Arango team! I used it at my earlier workplace for computing suggested friends/followers which replaced an older service (Postgres + redis and application server-side caches). The resulting solution was faster, ran on a single modest machine (8 GB RAM, 4 cores) and allowed us to spin down 3 higher-end machines and reduce a layer of caches on application-servers. Writing the microservice using Foxx (which is built-in to Arango) was a pleasure and the easy deployment + Swagger API was a great developer experience. The community slack was friendly and helped me out with some AQL.

</comment><comment><USER3> I'd never heard of Arango before seeing this post, but the main selling point seems to be:

"A native multi-model database from the ground up, supporting key/value, document and graph models. You can model your data in a very flexible way."

Which actually seems like it could actually justify having its own query language. The built in search is also a nice touch.

<comment><USER4> Imagine you would go to your preferred online marketplace and search for a generic product.

You get 1000+ results.

So you filter by avg.star-rating > 4.0

Still 500+ results.

Those with just one 5 star rating in front of the one with 300 reviews and a 4.8 avg. Annoying.

What I really want:

I would like to filter for products that have at least 5 (relatively long) reviews, an average rating of 4.0 and at least 2 of these review comments mentioning the use case for which I would like to use this product. Maybe I just want the verified purchases to be counted or the reviews of friends and friends of friends...

Using a native multi-model approach you can do both. Simply retrieve all category X products ranked by product rating, limit 50/page or perform advanced lookups - without having to synchronize data from a document or relational model with an additional graph or search engine.

Combining full text search with scorers, graph traversals and/or join operations you could do an ad-hoc query in AQL to get the most relevant products & reviews with a single query.

Multi-model provides choice. In data modeling and querying.

<comment><USER5> > Those with just one 5 star rating in front of the one with 300 reviews and a > 4.8 avg. Annoying.

That's easy enough to solve with a bayesian average. The problem is many developers and product managers don't know much or anything about stats.

<comment><USER6> How exactly? By adding a number (C) of average (2.5 stars) "virtual" reviews to all products?

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

<comment><USER5> Like so:

[http://www.evanmiller.org/how-not-to-sort-by-average- rating....](http://www.evanmiller.org/how-not-to-sort-by-average-rating.html)

</comment></comment></comment></comment></comment><comment><USER7> Seeing all the comments here it seems like Arango is a good fit for many use cases.

I would really recommend to the founders of the company to invest in marketing , it's really important for developers to have something that speak to them.

My point is maybe the issue here isn't performance of features of the database but rather the marketing that prevent it from finding its market fit.

<comment><USER8> We don't really care about the performance (speed) but mostly about features (text search + timeseries) and scalability with clusters

<comment><USER9> What? We who?

<comment><USER8> "We" is a prospective customer of this db. Maybe other devs/companies do need speed over multi-functionality

</comment></comment></comment></comment><comment><USER10> I'm waiting for an official round of testing by Jepsen (e.g. not in-house testing, but paid testing by Kyle Kingsbury).

It should be a bar to pass for every distributed database.

</comment><comment><USER11> Well deserved! At work I have been using ArangoDB for a few years now as a graph database. So far it's been working great with up to 100K graph nodes across two dozen collections.

<comment><USER12> I liked the idea very much, but I guess I won't use any unmanaged infrastructure software any time soon.

I had too many struggles in the past with MySQL and RethinkDB so I will go with what cloud providers are offering.

</comment></comment><comment><USER13> Congrats, the ArangoDB folks are also very nice people other than skilled developers.

<comment><USER14> Claudius from Arango. Thanks Salvatore! Long time not seen, I hope you are well.

<comment><USER13> All fine, greetings!

</comment></comment></comment><comment><USER15> ArangoDB is a perfect tool for prototyping or early stages of companies that need data that might have multiple looks to it. I've used it on tons of small projects and have nothing but praise. It's a solid not-so-little beast.

<comment><USER16> Can you ELI5 the use cases?

</comment></comment><comment><USER17> Congratulations on the funding!

I don't understand under what specific use case ArangoDB works best; the comparisons section lists Cassandra and Neo4j, and my understanding was Cassandra was for something like chat apps and Neo4j was for something like GIS analytics. Enlighten me?

Also, how convertible is a proprietary query language like AQL/CQL to SQL? Is it fully declarative, and version completely independently of the database core?

<comment><USER18> Regarding the question on the query language, AQL is fully declarative. In this respect it is like SQL. However, there are a few differences between AQL and SQL: * SQL is an all-purpose database management and querying language. It is very complex and heavy-weight as it has to solve a lot of different problems, e.g. data definition, data retrieval and manipulation, stored procedures etc. AQL is much more lightweight, as its purpose is querying and manipulating database data. Any data definition or database administration commands are not part of AQL, but can be achieved using other, dedicated commands/APIs. * for data retrieval and manipulation, the functionality of SQL and AQL do overlap a lot, but they use different keywords for the similar things. Still simple SQL queries can be converted to AQL easily and vice versa. There are some specialized parts of AQL, such as graph traversals and shortest path queries, for which may be no direct equivalent in SQL.

AQL is versioned along with the database core, as sometimes features are added to AQL which the database core must also support and vice versa. However, during further development of AQL and the database core, one of the major goals is to keep it always downwards-compatible, meaning that existing AQL queries are expected to work and behave identically in newer versions of the database (but ideally run faster or are better optimized there).

<comment><USER17> Okay, I like how backwards compatibility is preserved. I worked with mongoDB at my previous company and we ended up not being able to migrate to mongoDB 3.x. I think it was because we forked 'eve-mongoengine' and couldn't merge upstream changes, which ended up forcing us to version the entire stack through the database at the same time, which passed the threshold of feasibility.

We were absolute idiots, but I still think a data warehouse should be idiot- proof, which is why I like SQL.

I read through the documentation for ArangoDB and I would be concerned about the lack of native strict type definitions and referencing in AQL, as well as the dearth of type availability in ArangoDB in general. Is this a design decision related to not supporting data/database administration, or something to be added later to the roadmap?

It sounds like if you support write-intensive paths through the database, it would be considered an OLTP database for some OLTP workloads; do you publish TPC-C benchmarks anywhere? What about resource utilization?

Is there a particular reason to support JavaScript first? Is it because Swagger has JavaScript-first support, or a different reason?

<comment><USER18> ArangoDB is a schema-less database. There is currently no support for schemas or schema validation on the database core level, but it may be added later, because IMHO it is a very sensible feature. When that is in place, AQL may also be extended to get more strict about the types used in queries. However, IMHO that should only be enforced if there is a schema present.

To keep things simple and manageable, we originally started with AQL just being a language for querying the database. It was extended years ago to support data manipulation operations. I don't exclude the possibility that at some point it will support database administration or DDL commands, however, I am just one of the developers and not the product manager. And you are right about the main use case being OLTP workloads. For OLAP use cases, dedicated analytical databases (with fixed data schemas) are probably superior, because they can run much more specialized and streamlined operations on the data. To my best knowledge we never published any TPC benchmark results somewhere. I think it's possible to implement TPC-C even without SQL, however, implementing the full benchmark is a huge amount of work, so we never did...

</comment></comment></comment></comment><comment><USER19> Used the free edition for a while, mainly for graphs, and it was amazing. Will most likely use a paid version once it exists as a managed service.

<comment><USER20> I also feel managed service is quite critical offering they're missing right now. Considering recent AWS and Elastic debacle, market is going to be tough for Open Source products like ArangoDB.

<comment><USER21> Jan from ArangoDB here. Can't disclose anything yet but feel free to join the webinar of our co-founder Claudius. He will share details about our future plans in only 2 weeks [https://www.arangodb.com/arangodb-events/why-native- multi-mo...](https://www.arangodb.com/arangodb-events/why-native-multi-model- plus-sneak-peek/)

</comment></comment></comment><comment><USER22> I'm a bit more confused on this one, not having seen the tech before. Isn't the DB space absurdly saturated with open source tools like this not really having much life in them?

Postgres is a multi-model db, with document/keyvalue/graph -- isn't it just pretty easy for an established player to add data model onto their platform?

<comment><USER4> The art is to combine all data models using one query language without duplicating data.

</comment></comment><comment><USER23> I played with Arango a few years ago to prototype some graph stuff. Super fun to play with and it was awesome being able to traverse the graph so easily.

We were playing with data to make it easy to go from a specific analyte that was generated all the way up through its protein, DNA, chromosome, disease, and phenotype via the graph. I'm sad the project never went anywhere, but even back then Arango was great.

Congrats to the team!

</comment><comment><USER24> ArangoDB is definitely my database of choice. There is a lot to like. Ease of setup and clustering, free REST API, solid graph features with AQL, great docs. I have been promoting it in my projects. I would love to be their partner or tech evangelist for Southeast Asia. If you guys are looking, I am game for it.

</comment><comment><USER25> Congrats, Arango! We recently ported a large rethinkdb app to arango and it has been a joy to use. AQL is awesome.

</comment><comment><USER20> I wonder how would one douse investors concern of having Open Source product like ArangoDB, and AWS effectively eating their lunch if/when wide adoption comes?

Congratulations on the funding btw! I'm a happy and grateful user.

<comment><USER18> The database market will all its competition is definitely challenging. I have no doubt AWS will increase their database market share over time. The good thing about this competition is that it is forcing all vendors to be innovative and to find (more) USPs.

AWS DocumentDB seems to be pretty much tied to the MongoDB API right now... So At the moment this will somewhat limit its functionality. However, they will not stand still and probably also extend into the multi-model space at some point. Apart from that, not everyone will be willing to pay for DocumentDB or have their data located in Amazon datacenters.

<comment><USER12> _" AWS DocumentDB seems to be pretty much tied to the MongoDB API"_

I could imagine that they didn't build DocumentDB from the ground up.

DocumentDB is probably just a MongoDB compatible API for one of their base services (S3 or DynamoDB).

As far as I know, they build Serverless Aurora on top of S3, with the help of S3 select. So they will probably just create another custom-DB compatible API if they have the impression that this custom DB becomes the next big thing.

<comment><USER18> Exactly, AWS DocumentDB is only MongoDB API-compatible, but it's not using any MongoDB components.

It's an implementation of its own, leveraging many the base building blocks and infrastructure Amazon has created.

DocumentDB is currently tied to the MongoDB 3.6 API, that means all the transactional extensions MongoDB has added recently is not present in DocumentDB (yet).

</comment></comment></comment></comment><comment><USER26> Congrats!

We've used ArangoDB for a while where I work, and have only had positive experiences so far. The query language, speed, and flexibility are all nice to work with.

</comment><comment><USER27> hmm, I wonder how hard it would be to make a JavaScript driver that lets you manipulate data just like you do in JavaScript, eg. using map,reduce/filter, push etc. For me it's a lot of overhead when switching back and forth between different languages, eg. between JS and SQL. Even though SQL is a powerful language and I'm really good at it.

<comment><USER28> (full disclosure: I work for ArangoDB but this is my own personal opinion)

Coming from a JS background AQL is actually pretty easy to learn. Personally the only thing that keeps tripping me up is that AQL doesn't have a triple- equals and JS has trained me to avoid double-equals in comparisons.

This is how you fetch every user in a collection:

        FOR user IN users RETURN user

This is how you fetch every admin:

        FOR user IN users FILTER user.role == "admin" RETURN user

This is how you fetch their email addresses:

        FOR user IN users FILTER user.role == "admin" RETURN user.email

Compare this to the equivalent in SQL:

        SELECT email FROM users WHERE role == "admin"

The AQL example is IMO easy to read if you know JS or any similar language. AQL even has object and array literals. There are a few idiosyncrasies but you can get very far without needing to invest time to "properly" learn the language. The naive approach usually results in pretty good performance out of the box.

I'd say the mental overhead of switching into AQL and out doesn't quite compare to that of e.g. SQL or even MongoDB queries but you are of course correct that there is some overhead nevertheless. That said, there are community-maintained ODMs for ArangoDB if you don't want to touch another language to write the queries by hand.

I would strongly recommend giving AQL a try though. When I started using ArangoDB (before becoming a contributor) I was hesitant as well but what quickly won me over was that I was able to read most AQL queries without having to learn an entirely new language.

<comment><USER27> > This is how you fetch every user in a collection:

        await db.users

This is how you fetch every admin:

        await db.users.filter( user => user.role == "admin" )

This is how you fetch their email addresses:

        await db.users.filter( user => user.role == "admin ).map( user => user.email )

I think it can be done using JavaScript Proxy.

Here's an update query:

       user.email = "email@example.com"

</comment></comment></comment><comment><USER29> Arango feels wonderful already. I'm thrilled to see how new funding improves the user experience. :) Cheers and congrats!

</comment><comment><USER30> Single best tool out there and am a big fan and user in our products.

</comment><comment><USER31> What are the closest equivalents / competitors to ArangoDB?

<comment><USER32> OrientDb is a multimodel db with graph support, so it seems pretty similar.

</comment></comment><comment><USER33> Outstanding! Well deserved for an outstanding product!

</comment><comment><USER34> Congratulations to the whole team. Well deserved!

</comment><comment><USER35> Nice going, congratulations!

</comment><comment><USER36> World domination from here

</comment><comment><USER37> Great work boys.

</comment><comment><USER21> Congrats, guys!</comment>


Student wants a bit of direction - <AUTHOR>

Hey,
I am currently finishing my second year of study as a Computer Science Major. About 12 credits away from my AA. Honestly... These programming classes suck. They don't teach me much other than printing out to the screen and getting a bit of input. Maybe a bit of manipulation but that is mostly it. I have tried to do stuff on my own and read through beginner books (Intro/Begginer books on C++, C, Lua, Python) and even the "Serious" programmer books (Currently reading Pragmatic Programmer. Next on the list is Code Complete and Productive Programmer). I just lose my way though. Once I know some of the language, I try to think of ways to make little projects and such but to no avail. I want to work with AI. Mainly Natural Language Processing and Machine Learning. It's just what I want to do. Is there any advice anyone is willing to give? Maybe some open source project to point me to?
Thanks for reading. Have a nice Day/Night! xD Jorge <comment><USER2> You're stuck where I was about a year and a half ago. My classes basically sucked, and all I got out of 2 years in my Comp.Sci course was how to make small applets in Java, and how to print patterns in C++. I know it can be demotivating. My advice? Start following projects. Read the code written by people working on some of the most awesome projects out there. No, really _read_ it. Don't understand something? Go find documentation for it. No documentation? Email the people working on the project or go to their Mailing list/IRC channel. People in the open source community are generally polite and very helpful. There's tons of stuff out there. Oh, and stop switching languages. I decided that I won't try anything besides the 2 languages that I already know well enough (C++ and Python), until I become really really good at them.

As for your desire to learn NLP and ML, as michaelpinto said, follow the courses of Coursera, and you can also try to reach out to Dan.But I would suggest doing small project (a blogging engine, a small game, whatever strikes your fancy) first. Because that kind of stuff is just as important as learning theory. Because until you've done something, you'll keep thinking of yourself as a beginner.

For finding projects? Go to Github, Bitbucket etc. I won't recommend anything myself, because it has to be something you yourself are comfortable with. And you'll actually have to read the existing code before starting to contribute. I guarantee you, you'll learn something new.

Best of luck!

<comment><AUTHOR> Thank you! First time I have heard of Coursera but this site is pretty awesome.

</comment></comment><comment><USER3> I'm no expert, but it sounds like you want to learn to run a marathon before you can crawl. However that said if you have a passion for something pursue it with gusto: Read every book, article and blog that you can find on Natural Language Processing and Machine Learning and find someone who is a true master. Then ask that person how to get started.

I did a quick casual search and found this: <https://www.coursera.org/course/nlp>

I would try to contact Dan and see what he thinks: <http://www.stanford.edu/~jurafsky/>

What's the worst that can happen? Reach out...

<comment><AUTHOR> Thanks for the advice! Just to clarify a bit because I noticed that I wasn't specific enough. I want to know what I should do next, not build the next Siri so to speakI am on my phone but I will check out the links as soon as I get on my PC. Thank you Again!</comment></comment>


Folk music style modelling using LSTMs - <AUTHOR> https://github.com/IraKorshunova/folk-rnn <comment><AUTHOR> Demo here: [https://www.youtube.com/watch?v=YedcDs_- Zdc](https://www.youtube.com/watch?v=YedcDs_-Zdc)

Daily Mail: [http://www.dailymail.co.uk/sciencetech/article-4544400/Resea...](http://www.dailymail.co.uk/sciencetech/article-4544400/Researchers- create-computer-writes-folk-music.html)

From my understanding, the sheet music for the demo was created by an AI, but the music was recorded by actual musicians.</comment>


Show HN: Browser-based typographic design tool (inspired by Adobe Illustrator) - <AUTHOR> http://f37foundry.com <comment><AUTHOR> Developer here, I created this for the font foundry's new website, using React, MobX and Typescript among other things. Hopefully it's of interest in demonstrating a "desktop-class" experience built using HTML, CSS and JS.

There's a short GIF showing some of the features here: [http://f37foundry.com/type-tester.gif](http://f37foundry.com/type- tester.gif). If you're familiar with Illustrator, some of the shortcuts/modifier keys work, for example alt+arrows to kern pairs of letters.

Happy to answer any questions, I plan to write a bit about my experiences in the form of a blog post soon.

Best viewed in Chrome, desktop only.</comment>


Even If You Weren't Born into Nobility, You Can Buy Your Way In - <AUTHOR> https://www.bloomberg.com/news/articles/2020-02-02/even-if-you-weren-t-born-into-nobility-you-can-buy-your-way-in <comment><USER2> That was always the case... Tons of "nouveaux rich" have become "nobility" over the last 10+ centuries...

I think the French had the right idea with the guillotine...

</comment><comment><USER3> Conrad Black did that, and discovered the hard way that it can backfire when you dearly need your previous home country's diplomatic resources.</comment>


Which Machines Do Computer Architects Admire? (2013) - <AUTHOR> https://people.cs.clemson.edu/~mark/admired_designs.html <comment><USER2> I'm not a computer architect (so my opinion shouldn't count in this thread), but as someone who did a lot of numerical programming over the years, I really thought Itanium looked super promising. The idea that you can indicate a whole ton of instructions can be run in parallel seemed really scalable for FFTs and linear algebra. Instead of more cores, give me more ALUs. I know "most" software doesn't have enough work between branches to fill up that kind of pipeline, but machine learning and signal processing can certainly use long branchless basic blocks if you can fit them in icache.

At the time, it seemed (to me at least) that it really only died because the backwards compatibility mode was slow. (I think some of the current perception of Itanium is revisionist history.) It's tough to say what it could've become if AMD64 hadn't eaten it's lunch by running precompiled software better. It would've been interesting if Intel and compiler writers could've kept focus on it.

Nowdays, it's obvious GPUs are the winners for horsepower, and it's telling that we're willing to use new languages and strategies to get that win. However, GPU programming really feels like you're locked outside of the box - you shuffle the data back and forth to it. I like to imagine a C-like language (analogous to CUDA) that would pump a lot of instructions to the "Explicitly Parallel" architecture.

Now we're all stuck with the AMD64 ISA for our compatibility processor, and it seems like another example where the computing world isn't as good as it should be.

<comment><USER3> Itanium is essentially a VLIW architecture and... well, as the bottom of the page mentions, VLIW architectures tend to turn out to be bad ideas in practice.

GPUs showed two things: one, you can relegate kernels to accelerators instead of having to maximize performance in the CPU core; and two, you can convince people to rewrite their code, if the gains are sufficiently compelling.

<comment><USER4> Specifically, the promise of VLIWs (scalar parallelism) was overhyped--the Multiflow compiler couldn't find enough scalar parallelism in practice to keep all 28 ALUs busy (in the widest model we built), or even all 7 ALUs (in the narrowest).

(I ended up running the OS group at Multiflow before bailing right before they hit the wall.)

<comment><USER5> We need new programming models that make it easier to expose static parallelism to the compiler. Doing it all in plain old C/C++, or even in "managed" VM-based languages, cannot possibly work - and even conventional multi-threading is way too coarse-grained by comparison to what's most likely needed. Something based on a dataflow-oriented description of the code would probably work well, and be possible to integrate well enough with modern functional-like paradigms.

<comment><USER6> VISC seems at least potentially promising.

[https://www.anandtech.com/show/10025/examining-soft- machines...](https://www.anandtech.com/show/10025/examining-soft-machines- architecture-visc-ipc/2)

<comment><USER4> Yes, but VLIW's premise was that all that coordination that the VISC architecture is doing at runtime in hardware could be computed at compile-time in software.

</comment></comment></comment></comment></comment></comment><comment><USER7> I think one of the most influential designs of recent times has been the DEC Alpha lineage of 64-bit RISC processors[1]. Originally introduced in 1992, with a superscalar design, branch prediction, instruction and data caches, register renaming, speculative execution, etc. My understanding is that when these came out, they were way ahead of any other CPU out there, both in terms of innovative design and performance.

Looking at this chip, it seems to me that almost all the innovations Intel brought to the Pentium lines of CPU over many years were basically reimplementing features pioneered by the DEC Alpha, just over a decade later, and bringing these innovations to consumer-grade CPUs.

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

<comment><USER2> I loved working on DEC Alphas. They seemed to me like the best of breed conventional 64 bit machines, and it was sad when we quit buying them because x86 boxes were cheaper.

> it seems to me that almost all the innovations Intel brought to the Pentium > lines of CPU over many years were basically reimplementing features > pioneered by the DEC Alpha

I can't find a strong source to link, but I thought most of the Alpha team ended up at Intel. If so, that would explain the trickling in of re- implementations.

<comment><USER8> One of my CS professors used to work at DEC. His lectures were starkly clear and pretty intense.

Jim Keller and other folks from PA Semi worked at DEC earlier in their careers.

<comment> cbm-vic-20 I worked at DEC- one thing that I really miss is the high quality of documentation they produced. A lot of it has been archived here:

[https://archive.org/details/bitsavers_dec](https://archive.org/details/bitsavers_dec)

</comment></comment></comment></comment><comment><USER9> There are some really great designers on the list, like Sophie Wilson and Gordon Bell, but the list of admirable machines comes up really short — and missing a lot of really significant and admirable machines.

Maybe these are the machines _bad_ computer architects, like Alpert, admire. Alpert is notable mostly for leading the computer industry's most expensive and embarrassing failure, the Itanic (formally known as the Itanium), despite the presence on his team of many of the world's best CPU designers, who had just come from designing the HP-PA --- a niche CPU architecture nevertheless so successful that HP's workstation competitors, such as NeXT, started using it. Earlier in his career he sunk the already-struggling 32000, the machine that by rights _should_ have been the 68000. (And maybe if they'd funded GCC it could have been.)

What about the Tera MTA, with its massive hardware multithreading and its packet-switched RAM, which was gorgeous and prefigured significant features of the GPU explosion?

What about the DG Nova, with its bitslice ALU chips and horizontal-microcode instructions? What about the MuP21, with its radical on-chip dual circular stacks?

What about the HP 9100, with its dual stacks and PCB-inductance microcode, where the instruction set was the _user interface_?

What about the LGP-30, which managed to deliver a usable von Neumann computer with only 113 vacuum tubes (for amplification, inversion, and sequencing)?

What about the 26-bit ARM, with its conditional execution on every instruction, and packing the program status register into the program counter so it automatically gets restored by subroutine return, and, more importantly, interrupt return?

What about Thumb-2 with its unequaled code density?

What about the CM-1? Anyone can see that AVX-512 (or for that matter modern timing-attack-resistant AES implementations!) owe everything to the CM-1.

And the conspicuous omission of the Burroughs 5000 has already been noted by others.

I mean, there are some good designs on the list! But it hardly seems like a very comprehensive list of admirable designs.

<comment><USER10> It sounds like they just went around the room and asked some folks to list off some systems. I don't think a terrible amount of thought was put into this.

I'd add the Tandem NonStop to my personal list. I don't know why I overlooked the LGP-30 [1], I'll have to find a schematic. 113 vacuum tubes is really impressive, I wonder if there is any overlap with this design and System Hyper Pipelining [2]. Do you know of other architectures that use time multiplexing to reduce part count?

What bit serial computers do you like?

Ahh, it is the Story of Mel computer, awesome.

[1] [https://en.wikipedia.org/wiki/LGP-30](https://en.wikipedia.org/wiki/LGP-30)

[2] [https://arxiv.org/abs/1508.07139](https://arxiv.org/abs/1508.07139)

<comment><USER9> NonStop is super interesting! HP has most of the old Tandem papers and manuals online still, I think, and you can see how the software and hardware co- evolved. It's mind-boggling the extent to which they designed the operating system around transactions; with things like TIP, the Transaction Internet Protocol, they did try to get wider adoption for that approach, but it's largely been forgotten. A shame, since we spend so much of our time debugging highly-concurrent distributed systems these days.

Delay-line and drum computers (like the LGP-30, the HP 9100, and the grandmama of them all, the Pilot ACE) all sort of had to do a sort of time multiplexing; the Tera MTA I mentioned, as well as the CDC 6600's PPs (FEPs), worked that way too, time-sharing a single ALU and control unit among many register sets. That's also one of the things going in modern GPUs, but it's hard to say it's to _reduce_ part count. Still, they'd need a lot more parts to do the same thing if they didn't do it.

This CSR/SHP thing sounds really interesting! Thank you!

<comment><USER10> I should provided a link to the Tandem tech reports [1], they make for great reading, great for the Little Gray Cells. I do think hardware supported distributed transactions would make many problems go away. Fusing what was once modular has unlocked lots of gains (ZFS), with the rise of the hypervisors and abstract VMs, we are getting there in baby steps. Modularity incurs a cost that is much higher than most people realize, if we see something that _could_ be modular, we usually take it, but those decisions force future decisions we aren't aware of. I think someday we will view it in a similar light to OO.

I got to tour the Tera offices in Seattle in the late 90s, about all I remember is that it was a torus and it used some finicky silicon process that was leading to manufacturing delays. I was all into Beowulf and Mosix [2] at the time using Alpha or x86, so I wasn't drawn to it that much.

[1] [https://www.hpl.hp.com/hplabs/index/Tandem](https://www.hpl.hp.com/hplabs/index/Tandem)

[2] [https://en.wikipedia.org/wiki/MOSIX](https://en.wikipedia.org/wiki/MOSIX)

<comment><USER9> The other machines that I think of as being the siblings of the Tandem are the Nova (a lovely instruction set crippled by its shitty OS), the HP 3000, and of course the byte-addressed PDP-11. Despite their differences they all have a very similar flavor, reflecting a CISCy Zeitgeist when minicomputers were just beginning to cut their umbilical cords to PDP-10s and the like.

Tera's first machine was bipolar (ECL I assume) and they finally squeezed out a CMOS successor with a lot of assistance from their EDA vendor. Never knew the story of why moving to CMOS was so urgent.

Amusingly, it was the Beowulf list where someone converted me to the Tera religion (rgb I think). I was convinced that was the way all computers would work soon. And, well, it's how GPUs work, kind of. But mostly I was wrong.

Not sure I agree about modularity. Galaxies, mammalian bodies, trees, bacterial films, cars, books, and river systems are modular. It would be surprising if we could make software non-modular. But we could make it only as modular as a tree.

<comment><USER10> I am happy you don't agree on modularity. I don't want to be correct, I want to arrive at correct conclusions. :)

Composition is great, scale free self similarity is probably the basis for the universe.

Modularity is a great _design_ technique, it can also make things weaker and force other (unknowable) design choices because the module boundary prevents the flow of information/force. Overly constrained modular systems encourage globals, under constrained modular systems are asymptotic to mud/clay.

I don't want to use K8S as a strawman to attack modularity, but I think it is an example of using this powerful design tool to solve the wrong problem using mis-applied methods all the while being _more_ complex and using _more_ resources. In the case of designing systems, modules/objects/processes (Erlang sense) are critical, but not so much in building/engineering them. Demodularizing or fusing a design can make it more robust and more efficient.

I don't _dislike_ modularity, I just think it is a bigger more complex topic than most give it credit for. Unix is highly-non modular and very poor composition. It sits on a molehill of a local maximum, itself sitting in the bottom of a Caldera, a sort of Wizard Mt on Wizard Island.

Other things you might like is the research around "Collapsing Towers of Interpreters" [1]

Or Dave Ackley's T2 Tile Project and Robust First Computing [2]

Would love to chat more, but internet access is spotty for the next week, non- replies are not ignores.

[1] [https://lobste.rs/s/yj31ty/collapsing_towers_interpreters](https://lobste.rs/s/yj31ty/collapsing_towers_interpreters)

[2] [https://www.youtube.com/watch?v=7hwO8Q_TyCA](https://www.youtube.com/watch?v=7hwO8Q_TyCA) [https://www.youtube.com/watch?v=Z5RUVyPKkUg](https://www.youtube.com/watch?v=Z5RUVyPKkUg)

</comment></comment></comment></comment></comment></comment><comment><USER11> It's disappointing that most machines today suck so badly. How did that become the state of the industry, with so many smart people working so hard and nobody likes their latest designs?

The last high-performance design I actually liked was the DEC Alpha. You could write a useful JIT compiler in a couple hundred lines.

I suspect that nVidia's recent GPUs are wonderfully clever inside, but they don't publish their ISA and the drivers are super-clunky. So I can't admire them.

I appreciate the performance of intel Core chips, but there's so much to dislike. The ISA is literally too big to fully document. The kernel needs 1000s of workarounds for CPU weirdnesses. You have to apply security patches to microcode, FFS.

RISC-V would be great if we had fast servers and laptops.

<comment><USER12> What's wrong with Power 8 & 9? What's wrong with ARM64? What was wrong with Sparc64 until Oracle screwed it up (well...register windows...ok). How is RISC-V intrinsically better than those architectures, considering it doesn't exist in a form that performs anywhere near as fast?

</comment></comment><comment><USER13> Surprised nobody picked the Atari 400/800 and Amiga 500 computers (which are the 8-bit and 16-bit spiritual parent/child machines by the same people).

On the other end, pure CPU only machines are kind of interesting as a study in economy, like the ZX Spectrum, a horrible, limited architecture that managed to hit the market at an unreasonably cheap price, make money, and end up with tens of thousands of games.

<comment><USER14> OMG did I love my Atari 800 back in 1985 when it was clearly one of the best price/performance machines available at that time.

Overlooked by many (but not all) was its built-in MIDI ports and its abilty to control all those early model beatboxs and synths...unfortunately I forget the name of the rather crappy software that I used to get things talking and synced up, but it did work and the bitmapped color graphics were way ahead of its time.

Too bad Atari self destructed with the cartrage business, and who knows what other poor business decisions it made, but that computer was one of my favorite things of my late teens.

<comment><USER15> Are you mixing up the Atari 800 and ST, the 800 didn't have MIDI ports.

</comment></comment></comment><comment><USER16> Interesting that the B5000 didn't make this list. Berkeley CS252 has been reading the _Design of the B5000 System_ paper for years. The lecture slides don't criticize it but _Computer Organization and Design_ sorta does:

 _The Burroughs B5000 was the commercial fountainhead of this philosophy (High-Level-Language Computer Architectures), but today there is no significant commercial descendant of this 1960s radical._

<comment><USER17> I was also surprised - but I wonder thats the computer architectures language designers like, not computer architects.

</comment></comment><comment><USER18> The list seems biased towards pre-2001, so I'll toss one in: Cell. I hold that it was so ahead of its time, it dragged game devs, kicking and screaming, into the future ahead of schedule when they were forced to support the PS3 for the extended console cycle. :)

Larrabee was cute, but to this day I still have no idea what their target workload was.

<comment><USER12> Yup. Most of this was culled from a 2001 conference (so small but distinguished sample set), and you really need to read the detail to understand what they were appreciative of. It's not a good/bad thing and probably represented what they were thinking about at the time (e.g. Alpert calls out Multiflow because it influenced a processor he built). Sites even includes a backhand at VAX by calling it the example of what they didn't do in Alpha; damning with faint praise.

I haven't fired up my Cell dev board (Mercury) in a while. Prolly should do that. :-)

</comment></comment><comment><USER19> I always thought of the 6809 as the Chrysler Cordoba of 8 bit microprocessors, with soft Corinthian Leather upholstery and a luxurious automatic multiply instruction.

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

</comment><comment><USER20> The CDC-6000 and Cray-1 designed by Seymour Cray are the most admired, hands down.

It is also notable that quite a bit of R&D was done in Chippewa Falls, WI, which is just a regular old town in America's Dairyland.

<comment><USER21> I'm no architect but I loved the Cray-2. I took over an old datacenter that had one just sitting there and a sense of awe hit me every time I saw it. What cost 12M brand new and was a marvel of engineering (12x faster than Cray-1!) was just sitting there collecting dust. Crazy world this is. They eventually sold it to a collector I think.

<comment><USER12> The Y/MP I got to use was pretty cool too...a multiprocessor Cray. But then that's a Chen design and I don't imagine Seymour would approve of everything that went into it.

<comment><USER22> In college our ACM chapter named its DEC machine (I think it was a Tru64, but it's so long ago I don't remember) "cray-ymp." If you were a member of the ACM you got an account on it, and I used to MUD from it.

One of the MUD admins was astounded when he noticed I was playing from what he thought was a real Cray Y/MP. If I was smarter I would have played along. Alas...

<comment><USER12> Missed opportunity for amusement.

Funny enough the Y/MP-48 was running Unicos (Cray's mostly-Unix) and someone had compiled nethack or rouge or something similar and was playing it until he had sucked up all the funny-money the department had budgeted for the year (yeah...we got accounted for CPU time, and yeah...someone screwed up the quotas). There was a kerfuffle....

</comment></comment></comment></comment></comment><comment><USER23> Surprised the PDP-6/10 didn't make the list as it was the dominant research architecture for a certain period. Another Gordon Bell jewel.

<comment><USER12> Alas...so little respect for the 36-bitters these days. The PDP-10 especially was hugely influential.

<comment><USER14> I wrote my first non-BASIC program ever on a PDP-10 or 11 and as I remember, it was one of those numberical programming for Engineers classes where we had to figure out why, when using floating-points vs integer math, that 2 != 2.0 (because 2.0 was actually 2.0000000000001 of course)

The funny thing was...no one told me the secret and I musta spent 5 long hours pulling out my hair.

If I remember right, one of the RAs running the computer center finally had pity on me and showed me what was going on...

I'm not really sure I can call them the "good ole days of programming", but that was how things were done back then.

</comment></comment></comment><comment><USER24> As far as processors are concerned I loved the Zilog Z80 and the Motorola 68000. Oddly enough I really disliked the MT 6502 and the Intel 8086.

As total systems I loved the HP 41CX, the Sinclair ZX Spectrum, the Symbolics Lisp Machine and the Apple Mac IIcx (or really just any Mac before the PowerPC debacle).

After that era, I just started home-building x86 machines, and while there was the odd preferred component, it never went beyond the 'A is better than B' stage.

<comment><USER25> I started on the 6502, but outgrew it.

Still, cult chip! I mean, something like the following shows obsessive dedication to the thing:

[http://www.visual6502.org/JSSim/](http://www.visual6502.org/JSSim/)

</comment></comment><comment><USER26> Anyone admire forthchips? Such as the 144-core chip from [http://www.greenarraychips.com](http://www.greenarraychips.com)

</comment><comment><USER27> >Processor design pitfalls - Designing a high-level ISA to support a specific language of language domain

Is there an equivalent pitfall in designing the ISA to support a specific Virtual Machine?

For example, wouldn't the performance of a server processor when running the Java Virtual Machine be a key factor in determining its commercial success? I've always wondered whether the failure of Itanium wasn't at least partly caused by the shift from binary executables to bytecode with the contemporary success of the Java language. Even when JIT compilers were used, they were probably too simple to take advantage of the VLIW architecture.

<comment><USER28> I don't feel that's the core reason but you do bring up a good point; some technologies are too good for their time and get swept in the history books due to nobody having a clue how to utilise them properly.

Not sure if that's the exact case for Itanium but your argument fired a neuron. :)

</comment></comment><comment><USER29> The machines I most admire are mechanical computers like the ones used in WWII era battle ships for targeting their long guns. Those machines performed differentiation and curve matching using cams and gears.

<comment><USER30> There is a fascinating series of videos on YouTube that describe the US Navy analog fire control computers. I had no idea such things existed until I came across those videos.

<comment><USER31> A friend's father back in the early 90s was convinced that analogue computers were going to come back and kick the asses of these newfangled digital pretenders :)

He was a little strange, but I loved seeing his workshop and attempts at building such computers. It's a pity I'm not in touch any more, I would like to learn a bit more about what he was actually doing and if it was effective at all.

</comment></comment></comment><comment><USER32> I have a small IBM 390 which I haven't been able to find out much, but I did spot while searching that my 1999 S/390 has a 256 byte cache line. That's 4x over a 2020 i7.

</comment><comment><USER33> Pentium Pro should be on the list. The out of order execution, especially with the micro-op translation was a huge breakthrough.

<comment><USER34> The Pentium Pro pioneered neither of those concepts.

<comment><USER12> Very true, but I believe it was the first to deliver them at consumer price points and volumes.

</comment></comment></comment><comment><USER35> M68k and Z80 IMO deserved to be in that list much more than x86.

<comment><USER31> The Z80 and its implementation in the ZX Spectrum 48k will always have a place in my heart. So many BASIC games typed out, so many magazine tapes loading strange programs and games.

And the M68K powered my Atari ST, my friends Amigas, and so much more.

Makes me wish I could get a small ZX Spectrum, Atari ST, and Amiga hardware kit that would interface with USB HID stuff and output displayport/hdmi. (rather than software emulation on a Raspberry Pi)

</comment></comment><comment><USER36> The ones listed by 4 or more people (not including Bell) were:

\- CDC-6600 and 7600 - listed by Fisher, Sites, Smith, Worley

\- Cray-1 - listed by Hill, Patterson, Sites, Smith, Sohi, Wallach (also Bell, sorta)

\- IBM S/360 and S/370 - listed by Alpert, Hill, Patterson, Sites (also Bell)

\- MIPS - listed by Alpert, Hill, Patterson, Sohi, Worley

Special mention:

\- 6502 - only listed by Wilson, but she was the chief architect of ARM so i think her choice is important to note

\- Itanium - mentioned in the top-ranked comment in this HN discussion

\- DEC Alpha - mentioned in the second-ranked comment in this HN discussion

</comment><comment><USER37> I was always partial to the DEC-10 architecture. That said my first exposure to a machine that had been really well thought out was the IBM 360.

</comment><comment><USER38> [https://en.m.wikipedia.org/wiki/VAX-11](https://en.m.wikipedia.org/wiki/VAX-11)

32 bit system from the late 1970s.

<comment><USER39> The VAX was, I think, co-designed alongside VMS. The two together were an innovative design, distinguishing architecture from implementation, a comprehensive isa, a roadmap for the future, etc etc. VAXcluster was amazing integration of both.

I believe the design was influenced by Djikstra's Structured Programming book but have no evidence.

My epiphany on the issues with the isa came when I discovered that the checksum calculation used by the VMS backup utility was faster when done in a short instruction loop over the microcoded instruction. MicroVAX II. Microcodes were a huge barrier between the speed potential of the electronics and the actual visible isa. Duh!

Cray knew this, but he didn't build product lines, just single point products. Sun built product lines with RISC and ate Digital Equipment's lunch.

</comment></comment><comment><USER30> I'm tempted to suggest Babbage's Analytical Engine, on the basis of shear audacity alone. Babbage was just amazingly ahead of his time.

</comment><comment><USER40> Well, pretty much anything will run AutoCAD these days.

<comment><USER41> same goes for CATIA V5...

</comment></comment><comment><USER42> Are there any notable/not-just-academic "clean sheet" CPU architecture efforts other than what Mill computing is doing?

</comment><comment><USER43> I admire AMDs Zen architecture.

<comment> yjftsjthsd-h For internal engineering beauty, or because it apparently made good trade offs and is taking the market to town right now? :-)

</comment></comment><comment><USER44> No mention of the SuperH.

</comment><comment> vi-mode I'm into computers for decades. The first time after ages a computer blew my mind again was when I got deep into k8s.

If you haven't yet do it now, check k8s out, get knee-deep into it and not from a devops perspective but as one who admire computers.

<comment><USER31> More software than hardware, but I share the same wonder at Kubernetes. I love the whole concept of: "this is a big blob that runs your stuff, don't worry about networking and some other server-type considerations, just run your apps and there's a bunch of magic"

It's a little sad to see my previous career disappear, I'd love nothing more than to manage some VMware clusters running Linux VMs for the rest of my life, but technology moves on. It's forcing me to become a coder and manager rather than sysadmin.</comment></comment>


Starting a Business "Art of the Start" Style - <AUTHOR> http://www.thinkingserious.com/2007/12/31/starting-a-business-art-of-the-start-style/ <comment><USER2> I would rather take advice on startups from someone who actually built a successful startup. The art of talking about something, however persuasively, is not the same thing as the art of doing it.

</comment><comment><AUTHOR> For many, the new year will be a time to launch new businesses. In this fast paced Web 2.0 digital world, we don't have time to create big binder sized business plans before we get started. Here are the specific action items to take, and a free template you can use to get those new businesses launched in 2008.

</comment><comment><USER3> _Are you ready to stake everything on your idea?_

Saying you're willing to "stake everything" stops you from doing the thinking needed to get an honest and accurate assessment of your risk.</comment>


Show HN: Our 5 month project Airtime for Email - <AUTHOR> https://www.airtimehq.com

<comment><USER4> What if the recipient's user agent does not display images? At least with a text-based signature, the message still goes through, even if it isn't fancy.

Actually, as a recipient, I'd be annoyed to have this trigger gmail's "show images?" dialog, only to find upon choosing "display images" that the only thing I get is... a marketing message from the sender.

That said, I still love the idea!

<comment><AUTHOR> Thanks for the feedback! If the recipient's user agent doesn't display images we don't record an impression, and so it doesn't show up in the analytics.

I totally understand that it might be annoying to only get a marketing message from clicking "Display Images". I guess the way I look at it is that it's a chance for companies you're already interacting with to tell you things about themselves that you might not already know - so it might be annoying or if you like the company it might be cool too.

It's also an amazing platform for organizations like schools, charities and political campaigns to do outreach with. For example, a charity can have their big donors install this in their signature and have a unified, centrally controlled donation message going out every day that's always current and updated.

Thanks again for the feedback!

<comment><USER5> There was some guy, on HN recently, who could convert any image to CSS (kindof hacky) -- CSS is always displayed, even if browser won't show images.

You will wouldn't have analytics, but at least the ad would display.

<comment><AUTHOR> Wow I'd love to look at that project. The one problem is that we don't always have access to the actual HTML of the emails being sent out.

For example, you can integrate Airtime with GMail but Gmail doesn't actually allow you to play with HTML tags. You have to do it by inserting an image and then linking the image by hand. Effectively it's the same result, but it really limits our options in terms of styling etc.

</comment></comment></comment></comment><comment><USER6> A real "About Us" section would be nice. No marketing unit is going to do business with two twitter accounts.

And IMHO don't use twitter accounts with your position on SOPA. 95% of your customers don't care or don't (want to) know.

<comment><AUTHOR> Great points all. About Us section is coming ASAP. Agree on the SOPA banners as well. Thanks for taking the time to let us know.

</comment></comment><comment><USER7> Viewing the site on a landscape iPad, all you see is the first screenshot and a pricing button. There's no visible scrollbar or hint at more content further down the page. At first, I thought it was a bit strange that you would throw people straight to your pricing info without further explanation - <USER2> realised there was more on the front door when I came back to it a second time. Might be worth tweaking the sizing so in this format you get a small hint that the content continues?

<comment><AUTHOR> Thanks for the heads up we'll check it out!

</comment></comment><comment><USER8> It looks like a nice service but you really need a privacy policy. What data are you storing, what are you going to do with that data and what can I do to opt-in or out?

I can't imagine many organizations getting clearance to use this without that.

<comment><AUTHOR> Excellent point. Added to our todo list :)

</comment></comment><comment><USER9> I use standard images (three of them) linked to my Facebook, Testimonials, and Twitter - they do end up getting a lot of hits so I see the benefit in something like this. Not sure if I would go through the hassles of tracking email opens for my conversations with people though.

I also find that when the emails are coming back it is quite annoying to have all the image placeholders in the conversations.

<comment><USER10> Agreed on having the standard icons in the footer. I do like the idea of being able to update the marketing message so if someone opens an old email - <USER3> are current with the brand message.

I also include my photograph in every outgoing message - a little corny, but it does help at subsequent networking events.

</comment></comment><comment><USER11> This looks like a fantastic premise, but could where can I get more details about how it's implemented?

I work at an ad agency, and every single client we have wants a fancy email signature, but it's always a huge pain in the ass to get it implemented in a way that works properly company-wide, and looks good across multiple email clients.

<comment><AUTHOR> Thanks! It's just a simple HTML snippet that gets inserted into their emails. The snippet contains an image that we change on the server side. It's gets a lot more complicated than that, but that's the basic premise. I'd love to chat more some time - feel free email me at firstname.lastname@example.com if you're interested!

</comment></comment><comment><USER12> Cool concept, I can imagine this getting into enterprise emails everywhere.

Anyone interested in rolling their own should check out Movable Ink (<http://movableink.com>) -- dynamic content for email.

<comment><AUTHOR> Thanks for the feedback. Yep Moveable Ink has similar technology and they're a great startup. Our product is just a bit more targeted to marketing :)

</comment></comment><comment><USER13> Who's the target market for this? Most marketing teams want analytics on the actual links in the email body, rather than the signature. And if they had that in place, then tracking the signature is pretty simple addon.

<comment><AUTHOR> Any company with employees that send out a lot of email every day. So for example if you have a big sales team, the marketing department doesn't have to tell them "Ok this week we want to talk more about widgetX" instead all they have to do is upload one banner and instantly every email that the sales team sends out has a banner a banner talking about the widgetX".

It's also great for charities, schools and political campaigns to raise money.

<comment><USER13> I don't think that would be as effective as a single email devoting to marketing it, so the value of your product wouldn't be as high.

For charities, yes I see the value, although I'm not sure if that is a huge revenue source.

<comment><USER14> As someone with a decent annual investment in salespeople and customer service staffers, this product looks incredibly valuable, and one of our marketing members is looking into becoming a subscriber because it solves an important hassle point for her.

Broad 'newsletter' emails don't get read as much, because they're not going to contain specific relevant information to customers' existing orders or other information they need.

In contrast, a service like this allows a little promotional banner to be shown to customers who are almost certainly going to be reading the email, because they are placing an order, checking up on an order, or inquiring about a product. And below the email from the salesperson/CSR, you can promote a relevant product or message that is highly likely to get read. The traditional way has been to badger salespeople until they change their signature, which doesn't work very well. Now, it's all automatic.

To the founders: there are a lot of people on here who seem not to understand your product. That's OK, I don't think they're in your target market and don't appear to have the painpoint you're solving. In most of traditional corporate America, this is a big pain point you're solving, especially for the poor marketing people who are tired of trying to get those signatures updated.

<comment><USER13> But wouldn't a text signature be many times more effective then an image that may not even appear in some mail clients?

<comment><USER14> I don't know the answer. It might. In general, graphics have better CTR (at least in my industry, which is not as tech savvy), but you're correct that image blocking counteracts that to some degree. It's worth doing a trial and seeing which performs better.

</comment></comment></comment></comment></comment></comment><comment><USER15> How does this work? I thought that most email clients these days tried to avoid tracking by refusing to display external images by default. Am I missing something?

<comment><AUTHOR> It's just an image in the bottom of the email. Many clients do avoid tracking but many don't. For example on an iPhone all images are loaded by default. Additionally a lot of people press "Display Images Below".

Initially I thought that images being blocked would be the biggest hurdle to this project, but it was being used prelaunch by 20 customers and we served over 110,000 impressions during that time (an impression isn't recorded if the image is blocked).

<comment><USER16> Not to discredit you, but this doesn't sounds very compelling: "Many clients do avoid tracking but many don't."

Any percentage number to back up that claim? 110,000 impressions out of how many? Also what's the conversion? Would be interesting to see more research into this (and articulated on the website).

Other than, looks coo1! Good luck!

<comment><AUTHOR> Thanks for the feedback! It's impossible for us to tell what percentage of the total number of emails sent the 110,000 impressions represents because our server only gets hit when images are loaded. If images aren't loaded our server is never hit, and it's as if the email was never sent.

The total CTR across all 110,000 impressions was 0.42%, however we log an impression both when an email is being composed and when it is read on the other end. So if we discount the false positives for composing impressions then the CTR jumps to around 0.91% which is incredibly high given that the banners are not at all optimized.

We're working on better analytics to be able to separate legitimate impressions from composing impressions, but don't quite have that functionality yet.

Thanks again for commenting I really appreciate it!

</comment></comment></comment></comment><comment><USER17> Great idea, and I love your guys' design! Did you guys design it yourselves or use a toolkit?

<comment><AUTHOR> Thanks so much! It's mostly done by hand but the buttons are from Foundation: <http://foundation.zurb.com/>

</comment></comment><comment><USER18> Wisestamp much?

<comment><AUTHOR> You can definitely use this with WiseStamp although that's not the recommended path to integration :)

</comment></comment><comment><USER19> Oh yeah</comment>


Orbital's Cygnus freighter reaches International Space Station - <AUTHOR> http://www.bbc.co.uk/news/science-environment-24306173 <comment><USER3> Thanks for submitting this - given the nigh-eclipsing popularity of SpaceX on social networks I hadn't heard about this recent launch or Orbital's recent activity at all.

<comment><USER4> SpaceX gets too much publicity.

<comment><USER5> I prefer to think of it as that SpaceX gets the right amount of publicity, and their competitors get too little.

<comment><USER6> Competitors like Orbital deserve very little publicity. I know something about engineering practices at Orbital (my spouse used to work there) and they're just not comparable to SpaceX at all.

<comment><USER7> Please explain their engineering practices.

<comment><USER6> An engineering culture obsessed with never innovating. Do you know what happens when an Orbital engineer wants to verify that a satellite will have enough battery power throughout its lifetime even given eclipses? They copy an excel spreadsheet from a shared network drive that has the analysis for the last satellite they worked on. This spreadsheet performs numerical integration using recursive cell references. It takes several minutes for excel to crunch through it. Of course, it involves lots of complicated formulas that are easy to get wrong, especially given excel's interface (this is really, really not what excel was designed for), and you can't even use modern features of excel (like named cell references) because the group forbids their use since not everyone understands them. You can't write code either for the same reason. You certainly can't use matlab because that costs money and the company is unwilling to pay. When you do find defects in the spreadsheets (say, for example, when doing a power budget, the spreadsheet calculates current and tries to compare it to the max current available but someone screwed up and instead compared 1/current to the max current available), management will insist that you NOT go back and fix the bug in the older spreadsheets for satellite that have already flown: who cares whether or not they're going to fail in space, we've already shipped them!

Most of the aerospace industry is like this: it is filled with people who devote themselves to one singular goal: don't fuck up in a new way. You can fuck up, you can even do so catastrophically. That's allowed. But if you fail doing something new, your career will be terminated with extreme prejudice.

<comment><USER3> Well, isn't that to be expected? It's a big company and seems NASA-y

I'm not a fan of Orbital either - thanks for sharing your insight though! - <USER2> think SpaceX's approach is far superior. But nonetheless, it's nice to hear about the competition occasionally, too.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> It's interesting how many unmanned resupply crafts there are for the ISS now. Russian Progress, European ATV, Japanese HTV and the Dragon. Now what is really needed is something manned to complement the Soyuz. SpaceX is aiming for it at least.

<comment><USER9> SpaceX, Boeing, and Sierra Nevada Corp. SpaceX is certainly farthest along but the CST-100 is a fairly mature design as well, and SNC have already completed captive carry tests on DreamChaser test models. With any luck there may be 3 separate manned spacecraft being made by American companies within the next 5 years.

<comment><USER10> And also Energia is working on the PTK NP project.

</comment></comment></comment><comment><USER11> I'm not an expert in the field, but I think one advantage SpaceX has over Orbital is that its capsule is reusable.

<comment><USER12> Another is that, according to the BBC website, "Upmass: 6t" for Dragon versus "Upmass: 2.7t" for Cygnus - a shade under half as much cargo carried to orbit.

<comment><USER8> According to the Wikipedia article, the Dragon's cargo capacity to the ISS is 3.3t. 6t is for separate "DragonLab" missions.

</comment></comment></comment><comment><USER13> Real life becomes more and more like the SciFi movies I grew up with.

Off to watch "2001: A Space Odyssey"</comment>


Tesla's Autopilot Could Save the Lives of Millions, but It Will Kill Some First - <AUTHOR> https://www.bloomberg.com/news/features/2019-10-09/tesla-s-autopilot-could-save-the-lives-of-millions-but-it-will-kill-some-people-first <comment><USER2> Tesla's Autopilot has purportedly caused crashes already: [https://www.bbc.com/news/technology-49594260](https://www.bbc.com/news/technology-49594260)

Good news is there were no injuries in this incident.

But there are also cases of fatality blamed on Autopilot: [https://www.bloomberg.com/news/articles/2019-05-01/tesla- sue...](https://www.bloomberg.com/news/articles/2019-05-01/tesla-sued-over- fatal-crash-blamed-on-autopilot-navigation-error)</comment>


【 OSCP PWK & AWS DevOps Study Buddy 】 - <AUTHOR> I'm currently studying for AWS DevOps Engineer and OSCP Certifications, and I wonder if anyone is also preparing for these 2 exams. (I didn't find a combined interests of both for people around me)<p>Much appreciated! <comment><AUTHOR> P.S. Or any AWS exams will do, doesn't have to be DevOps</comment>


Show HN: Git(lab), Jenkins, Redmine and IRC on our wall - <AUTHOR>

I've always dreamed about a project like that when looking at status boards at other companies. We finally had the time to do our own. Here are some photos:
http://www.flickr.com/photos/robert_olejnik/sets/72157633736087905/
The stack: Django, mustache.js, Chart.js, Bootstrap and custom Supybot plugin.
Maybe will be inspiration for someone else ;-)
Do you guys have similar status boards?
Cheers, Robert. <comment><USER2> [http://www.flickr.com/photos/robert_olejnik/sets/72157633736...](http://www.flickr.com/photos/robert_olejnik/sets/72157633736087905/)

</comment><comment><USER3> Dude, that's clean and elegant. Roughly how much work went into that? I'd love to snag a copy of it if you're willing to open source it.

</comment><comment><USER4> Sweet! Should be open sourced ;)

<comment><USER5> Yes!

</comment></comment><comment><USER6> I would be interested in hearing how your team uses IRC.

</comment><comment><USER7> Did you come up with the graphics yourself?

</comment><comment><USER8> How did you create this?</comment>


Counting Characters in UTF-8 Strings Is Fast - <AUTHOR> http://canonical.org/~kragen/strlen-utf8.html <comment><USER2> I can't reproduce these results. Running his program, GCC's own strlen() soundly beats all the other strlens in all three test cases. Compiled without optimization (gcc -g -Wall -o mystrlen mystrlen.c mystrlen.s) with gcc 4.1.2 on an AMD Opteron 265, I get strlen() taking about 0.04 each time, compared with 0.18 for my_strlen() and 0.06 or 0.06 for ap_strlen_utf8_s (the elite assembly version). Although honestly, you should not expect GCC unoptimized to beat your hand-coded assembly anyway! These tests need to be done with optimization.

Compiled with optimization, (gcc -g -Wall -std=c99 -O2 -march=i686 -pedantic -o mystrlen mystrlen.c mystrlen.s), I get strlen() taking 0.02, versus my_strlen() at 0.04 and ap_strlen_utf8_s (the awesome assembly one) at 0.06 -- 200% slower.

So I'm not sure his results are right, even in the direction. The general theme, though (that strlen is not a very expensive operation) is true.

Here are the complete results:

% gcc -g -Wall -o mystrlen mystrlen.c mystrlen.s mystrlen.c: In function 'timethings': mystrlen.c:57: warning: implicit declaration of function 'my_strlen_utf8_s' mystrlen.c:59: warning: implicit declaration of function 'ap_strlen_utf8_s' % ./mystrlen "": 0 0 0 0 0 0 "hello, world": 12 12 12 12 12 12 "naïve": 6 6 6 5 5 5 "ããã«ã¡ã¯": 15 15 15 5 5 5 1: all 'a': 1: my_strlen(string) = 33554431: 0.176222 1: strlen(string) = 33554431: 0.041959 1: my_strlen_s(string) = 33554431: 0.157842 1: my_strlen_utf8_s(string) = 33554431: 0.158211 1: my_strlen_utf8_c(string) = 33554431: 0.307177 1: ap_strlen_utf8_s(string) = 33554431: 0.063365 2: all '\xe3': 2: my_strlen(string) = 33554431: 0.180825 2: strlen(string) = 33554431: 0.043419 2: my_strlen_s(string) = 33554431: 0.166384 2: my_strlen_utf8_s(string) = 33554431: 0.161270 2: my_strlen_utf8_c(string) = 33554431: 0.309674 2: ap_strlen_utf8_s(string) = 33554431: 0.064023 3: all '\x81': 3: my_strlen(string) = 33554431: 0.176232 3: strlen(string) = 33554431: 0.042303 3: my_strlen_s(string) = 33554431: 0.157776 3: my_strlen_utf8_s(string) = 0: 0.083548 3: my_strlen_utf8_c(string) = 0: 0.311597 3: ap_strlen_utf8_s(string) = 0: 0.083935 % gcc -g -Wall -std=c99 -O2 -march=i686 -pedantic -o mystrlen mystrlen.c mystrlen.s mystrlen.c: In function 'timethings': mystrlen.c:57: warning: implicit declaration of function 'my_strlen_utf8_s' mystrlen.c:59: warning: implicit declaration of function 'ap_strlen_utf8_s' % ./mystrlen "": 0 0 0 0 0 0 "hello, world": 12 12 12 12 12 12 "naïve": 6 6 6 5 5 5 "ããã«ã¡ã¯": 15 15 15 5 5 5 1: all 'a': 1: my_strlen(string) = 33554431: 0.039751 1: strlen(string) = 33554431: 0.020602 1: my_strlen_s(string) = 33554431: 0.158968 1: my_strlen_utf8_s(string) = 33554431: 0.159315 1: my_strlen_utf8_c(string) = 33554431: 0.075991 1: ap_strlen_utf8_s(string) = 33554431: 0.063607 2: all '\xe3': 2: my_strlen(string) = 33554431: 0.039673 2: strlen(string) = 33554431: 0.021445 2: my_strlen_s(string) = 33554431: 0.159388 2: my_strlen_utf8_s(string) = 33554431: 0.158209 2: my_strlen_utf8_c(string) = 33554431: 0.127230 2: ap_strlen_utf8_s(string) = 33554431: 0.063322 3: all '\x81': 3: my_strlen(string) = 33554431: 0.039742 3: strlen(string) = 33554431: 0.020674 3: my_strlen_s(string) = 33554431: 0.158717 3: my_strlen_utf8_s(string) = 0: 0.082357 3: my_strlen_utf8_c(string) = 0: 0.076103 3: ap_strlen_utf8_s(string) = 0: 0.064756

</comment><comment><USER3> Detractors of UTF-8 often point to the "inefficiency" of counting characters as a reason not to use it for Unicode. I'm glad to see that this is not a valid concern.

<comment><USER4> Detractors of UTF-8 are just wrong, period. On modern machines, main memory bandwidth gives you about 10 cycles or more _per_ _byte_ of input of free processing. It's irrelevant. And it's important to note that "how many glyphs does this string contain" is a pretty obscure question to be asking in the first place. What's the problem being solved here?

The beauty of UTF-8 is that all (all!) of the common string operations continue to work as-is without change. strlen/strdup/strcat/strcpy? Yup, same behavior. Linear search for substrings or regexes? Yup, same behavior. Alphabetic comparison? Check. Just use it, and don't mess with encodings or you _will_ mess things up. If you don't know how it works, just trust it. If you think you know how it works and still believe it doesn't meet your requirements, you're wrong.</comment></comment>


Show HN: I just created a new language called Y - <AUTHOR> https://github.com/SanderMertens/y <comment><USER2> You think this is funny? Y?

</comment><comment><USER3> I feel bad for not understanding the humor in this...</comment>


Lessons from GitHub's First Year (2011) - <AUTHOR> http://tom.preston-werner.com/2011/03/29/ten-lessons-from-githubs-first-year.html

<comment><USER2> Summary:

       1. Start Early
       2. Adapt to Your Customers
       3. Have Fun
       4. Pay attention to Twitter
       5. Deploy at Will!
       6. You Don't Need an Office
       7. Hire Through Open Source
       8. Trust your Team
       9. You Don't Need Venture Capital
      10. Open Source Whatever You Can

</comment><comment><USER3> The link for propane is no longer good.

</comment><comment><USER4> I think the deployment-analogy is bullshit. Todays web services like facebook, instagram, github... seems to think it's more important to push new fetures in a rapid phase, than actually make sure you don't break something. At any given time you can go to any of these services and find some part that is temporary broken, and I can't understand when this became a acceptable practice??

But guess what, bullets might be cheap but good will is not!

<comment><USER5> He's more nuanced than that: basically says in your 1st year mistakes are cheaper than sharpening axes nobody will ever see, because early-adopters' goodwill is very high; then mistakes get progressively more expensive as audiences widen, so you should be more and more careful. It's nothing at all like Facebook's infamous "move fast and break things".</comment></comment>


Natural user interface ideas with interactive paper prototypes (short video) - <AUTHOR> http://www.istartedsomething.com/20100825/microsoft-explores-natural-user-interface-ideas-with-interactive-paper-prototypes/ <comment><USER2> I never do enough of paper prototyping, and always regret it. This looks a great technique for communicating a UI, especially a non-standard one, in motion.</comment>