I like Meteor.js because I'm lazy - <AUTHOR> http://paul.molluzzo.com/i-like-meteor-js-because-im-lazy/ <comment><USER2> There is an unfortunate belief that any programming system which is significantly easier to use must automatically have caveats that make it unfit for 'production' use. And another similar belief that such systems are unfit for use by 'real' engineers. For example, if AngularJS had come up with an easier-to-understand way of creating components (directives) then it may have been dismissed as just another tool for novices. But some aspects of AngularJS are sufficiently complex that it is acceptable to 'real' engineers.

These are false beliefs and one of the reasons that (this is obviously an estimate off the top of my head) about 95% of programmer time is wasted solving problems that have already been solved numerous times. I see people hinting at security or other concerns related to using Meteor in production, but I have yet to see an example where one of these concerns actually caused a production issue.

I would be very interested to hear if anyone had actually tested Meteor in production, or had specific concerns related to security or anything that leads them to the conclusion that they must come up with their own different/more complex solutions to problems that Meteor solves.

Taking advantage of a system that solves 90% of your problems rather than reinventing six wheels is not lazy. Its just sane and mature.

The psychology of programmers related to tools and frameworks is childlike. Its as if everyone is in a playroom with a bunch of tiny blocks of different shapes. Every once in awhile a kid figures out how to construct generally useful connector shapes or recognizable objects from the smaller blocks. Then when another kid wants to use the larger pre-composed structures to play with, everyone makes fun of him because he is 'cheating' and must be too dumb to use the tiny blocks.

<comment><USER3> I've used it on a production site. There still is a learning curve, as with any new technology, but I've been very happy with it. I hope to do more with it. I'm working on a CMS built with Meteor, as my clients tend to be less than technically proficient.

The main problem I've had with it relates to IE7/IE8. The standard password encryption results in a JS error on those browsers due to the password encryption taking too long. We run the whole site on top of HTTPS, though, so we took a little hack to remove the extra client-side encryption on IE7/IE8. It's not ideal, but then again the default encryption for passwords is there primarily for those that don't use HTTPS (passwords are sent over the wire hashed such that HTTP sessions still maintain safety with the passwords...this hashing is slow by design, and the IE7/8 javascript engine isn't good enough to do it in a reasonable time frame).

</comment></comment><comment><USER4> I've been learning programming for about a year and Meteor was the first Javascript framework that I used. I found it remarkable how quickly and easily I was able to get something up and running, given that I had relatively little experience with Javascript (I read most but not all of Eloquent Javascript).

I used it to make an online multiplayer Go board where you can see your opponent moving the pieces, for the purpose of teaching games: [https://github.com/muraiki/senseinogoban](https://github.com/muraiki/senseinogoban) Being able to make something like this as a beginning programmer was really exciting! Since I'm pretty new to programming I don't know if the code is that great but it might give some ideas to people who are interested in using Meteor in a graphical way (as opposed to something like a To Do list).

</comment><comment><USER5> I'm a big fan of Meteor. As a front-end dev that got his start in JavaScript with jQuery, it's been really easy to settle into. I did a pre-release of a Meteor app into production today ([https://properapp.com](https://properapp.com)) and it's running pretty well.

The latest dev shop outlines what's in store for the 1.0 release ([http://www.meteor.com/blog/2013/10/01/geoff-schmidt-at- devsh...](http://www.meteor.com/blog/2013/10/01/geoff-schmidt-at- devshop-8-getting-meteor-to-10)) and based on where they're at now, it's exciting to think of what will be possible.

Definitely not a toy, though, and something that should be evaluated carefully.

<comment><USER6> I'm surprised that you're using Meteor for what would seem to be a single-user use-case. Meteor's strength seems to be multi-user real-time apps, but this looks more like a job for Angular/Ember plus an API backend.

I was looking toward Meteor for a similar project because of its handy client- server syncing capability, but decided not to use it because it didn't seem to suit the more traditional webpage model and the click-to-save-changes paradigm. But your site is making me reconsider this. I've been learning and implementing my site in Angular/Restangular, which involves me writing code to POST to/GET from my Rails backend. I'm aiming to let users add and remove nodes in a plan/document and rearrange their ordering - would that be easier to do in Meteor? I'd love to make use of Meteor's object syncing and other features. What's your experience been like? Did you try Angular or other JS MV* frameworks?

By the way, I love your site's design and iconography. If you built the whole service alone, I'd be very impressed.

<comment><USER5> Re: the choice for Meteor, this was somewhat of a fluke. I'm not a traditional developer, and only dabbled with Rails and the like on an anecdotal basis. My past experience with things like jQuery made it easy to pick up Meteor and its basic concepts, so I just started building the app above (it's something I really wanted/needed and I didn't want to waste a lot of time inner-bickering about what tech to build it with).

I guess for your idea I'd have to see a sketch, but on the surface, yes, I'd say something like that would be pretty easy. The cool thing about Meteor is that it takes a lot of the thinking/logic out of the loop. So for example, you would have the nodes as a Mongo collection and for each plan/doc, just store their position info. Meteor/Mongo update automatically, so if say you used something like jQuery UI drag/drop, you would just have it update the given object in Mongo when you pick it up or put it down. Make sense?

My overall experience has been that I haven't gotten frustrated with Meteor like I did with other frameworks. It's not as rigid, sure, but if you take the time to develop a good design practice, it can be really efficient. Plus, having both front and backend code in JS is a serious time saver.

Thanks for the complements on design. Save for the octopus, logo, and animated gifs outlining the process (oh, and the nice header on the blog), this was a 100% solo effort.

</comment></comment></comment><comment><USER7> Have you tried similar frameworks like Derby ([http://derbyjs.com/](http://derbyjs.com/))? If so, can you compare your experiences?

<comment><USER8> > Have you tried similar frameworks like Derby > ([http://derbyjs.com/](http://derbyjs.com/))? If so, can you compare your > experiences?

I tried Derby.js because of one important for me missing feature of Meteor: serverside HTML rendering - required for search engines and also for CMS or content like applications. IMO Derby.js got it right there.

Unfortunately Derby.js is seriously lacking professional documentation of any kind: Meteor already has books and 2 very good and long enough video courses (from pluralsight and tutsplus)

<comment><USER9> Did you check out the meteor package "spiderable"? It might need to mature a bit but it might do the trick

<comment><USER8> > Did you check out the meteor package "spiderable"? It might need to mature a > bit but it might do the trick

Of course I did :). It's not usable at all :). It's also not reducing the initial loading time (very high for any public webpage).

</comment></comment></comment></comment><comment> wc- It was fun developing the MVP for [https://lawyermatch.me](https://lawyermatch.me) on top of Meteor. Would I recommend meteor in its current form (v0.6.5 or so) for a large production website? No, but neither do the core meteor devs. Would I use it again for a quick prototype? Absolutely, especially if you are already planning to use mongo, node, handlebars, or the other core meteor technologies.

I saw one of the core devs speak in Chicago a week or two ago, and the main feeling I came away with was that the Meteor team has a well planned roadmap of features, solid funding, and a plan for generating revenue, all of which will hopefully mean Meteor isn't going anywhere.

Edit - I think this article hits on some of Meteor's strengths re: ease of development, but some of the features Meteor uses to accomplish this turn into gotchas later. For example, the autopublish and insecure packages are awesome for a 5 minute demo but for anything further they should be removed. Without them, devs are back to thinking about queries and what clients receive what data, permissions, etc. These are very important things obviously but it might be a little misleading for someone using Meteor for the first time.

</comment><comment><USER10> Totally acceptable to use Meteor first because you don't want to "reinvent the wheel" so to speak. It's fantastic for prototyping real-time concepts.

If your idea works, then you can "mature" your codebase a little. But, from the get-go, you'll want to make something usable, to see if your idea works at all. Meteor is perfect for that sort of thing.

<comment><USER2> If you build a working system with Meteor and then re-implement some or all of it, doesn't that mean you are in fact re-inventing the wheel?

<comment><USER11> Maybe it's more like custom-building a wheel to the exact specifications that you figured out when using a 'normal' wheel. Sometimes customization matters.

</comment></comment></comment><comment><USER12> I really like Meteor too. It makes developing a sophisticated app incredibly easy. Even though it is only in preview mode, it is extremely polished. I can't wait to see what version 1.0 has in store!

</comment><comment><USER13> Interesting enough, I found that Meteor is not production ready, in both current implementation (not mature) and some design decisions. I was thinking about writing blog post about it, but no idea when I'll have time to do it, so I decided to stop by.

I have experience with Meteor in production and had some serious performance- related problems. Not that they're not solvable, but some solutions kill some core design decisions of Meteor. Just in case - I didn't pick Meteor for the project, I was asked to help with it.

Anyway, here's short list:

1\. Collection synchronization does not really work even for relatively small amounts of data (say 10k records).

\- It does not make much sense to send few MB of initial data to the client. Paging API was moved to some distant future and you end up writing REST-like API on top of Meteor, which breaks idea of collection synchronization, which contradicts statement on their website - "no need to write REST APIs anymore". I don't say it is not usable at all, you just need to be really-really careful about what you send to client and it is easy to fail at this.

\- SockJS (transport protocol used by Meteor) does not have rate-limiting built-in. If client connects using one of the polling transports and payload is too large to be received in 30 (? - vanilla SockJS uses 5) seconds, server drops connection thinking that client timed out. Partially, it is SockJS problem and partially it is Meteor problem, as Meteor will just send all outgoing data without caring if client is on slow connection. But because of previous point, generally it is bad idea to send large amount of data anyway.

\- Server-side subscription API is very limited. Official documentation has following sample: reactively count number of admins in collection. This is done by listening on collection changes and counting admins by incrementing (when admin is added) and decrementing (when admin is removed) single variable. If there are 10k admins in database, increment function will be called 10k times.

2\. Minimongo is interesting concept, but fails on many levels:

\- It is MongoDB written in JS, but slow

\- Does not have indexes ("client won't handle amounts of data for indexes to be viable"), aggregation, map reduce, etc. There's no official API to create index on server-side either.

\- Its reactive - whenever model is changed, Meteor figures out which fields were changed and broadcasts changes to all listeners. And this is _not_ fast. Inserting 10k items to collection will take around 2 minutes on AWS large instance with node executable using 100% CPU.

\- Because MongoDB is not "reactive", Meteor just polls collections every 5 seconds to see if they changed by outside application. I really hope it only tracks addition/deletion of records and not scanning through all rows in database during each polling iteration

\- Meteor API is hiding MongoDB handle, but there's a way to get it (through hack) and use it directly. And it takes 3 seconds to insert same 10k items

3\. Client-side is not as convenient as current MV* frameworks

\- Meteor is using non-reactive templating engines and attempts to make them reactive. And this might be performance bottleneck, especially on mobile devices. When single variable changes, Meteor will re-render whole template. If you have some 3rd party plugins (like WYSIWYG editor, which injects own DOM markup), you have to wrap it with special blocks, which prevent Meteor from re-rendering them.

\- As a result of previous point, DOM is not stable.

\- Unlike AngularJS/Ember/etc, Meteor does not track individual variables. AngularJS does it by checking if variable changed in digest loop, Ember uses property-like system, etc. Meteor has global, flat namespace called "Meteor.session", where application stores _all_ reactive variables that can be referenced by their name. `Meteor.session.set('mymodule.hello', 10)`. It is hard to structure application, when core reactive part is just a singleton dictionary.

\- Once you get used to bidirectional data binding between forms and models, it is hard to get away with events. But that's minor.

4\. Overall architecture (nitpicking):

\- Meteor API likes singletons. `Meteor.session`, `Meteor.methods`, `Meteor.templates`, etc. Single, flat namespaces everywhere

\- Even though code can be written in a way it can run on both client and server, there are subtle core API differences. Like it is not possible to use `HTTP.get` on the client without callback, but it works on the server, just blocks the fiber. If you use callback on the server, you need to block the fiber manually (using future or fiber API), etc.

\- No server-side templates. Yes, there's crawlable package for Meteor, but it is just PhantomJS (WebKit) that runs on the server and renders pages for crawlers. Yikes.

This pretty much sums my experience with Meteor.

<comment><USER14> I'm running a Meteor production app myself and found similar performance bottlenecks.

However, the Meteor community has really done some great work in solving some core issues and others are on the 1.0 roadmap.

Some comments on this below based on our own experience.

> 1\. Collection synchronization does not really work even for relatively > small amounts of data (say 10k records).

The issues around polling and how the server side cursors/observe works is definitely not perfect. Started using the SmartCollections package which ditches polling altogether and goes with the MongoDB OPLOG for synchonization. Has been performing well for us so far and solved many issues around performance.

[https://github.com/arunoda/meteor-smart- collections](https://github.com/arunoda/meteor-smart-collections)

>2\. Minimongo is interesting concept, but fails on many levels:

Really depends on the usecase. I'am not sure if there is any other alternative to MiniMongo at the moment for other frameworks.

The key thing is you really shouldn't expect to do many MB's of client data storage in your app.

>3\. Client-side is not as convenient as current MV* frameworks

The key issue here is the how the DOM is re-written with the current rendering engine.

The new 'Meteor UI' rendering engine and component architecture is promising to solve this issues with html element level reactive-rendering as well as an method for proper UI components delivering similar capability to what Angular offers.

\---

The framework is still growing up, but we are hard pressed to find something that delivers similar developer productivity.

Once you understand the framework and IF it fits your needs, Meteor can work well for production.

<comment><USER13> > Started using the SmartCollections package which ditches polling altogether > and goes with the MongoDB OPLOG for synchonization.

Yes, I'm aware about this package. However, in my case, I had to reactively count number of items in collection. SmartCollections does not have `observe` for server-side cursors and core Collection implementation is slow, so I decided to use `setTimeout` to check collection size every few seconds, which turned out to be much faster than generic collection implementation.

> The key thing is you really shouldn't expect to do many MB's of client data > storage in your app.

True, it just contradicts point 003 on [http://www.meteor.com/](http://www.meteor.com/)

Plus, I was also referring server-side. Application does not work with node.js MongoDB driver, it still goes through thin minimongo layer, which hides most of the driver API. And it is not fast either (due to reactivity) - see insert performance example.

Overall, I don't say it is not possible to run Meteor app in production (I have one). It is just there are alot of different quirks and gotchas in Meteor that should be worked out manually or with help of community-created packages. And all this information is mostly scattered around StackOverflow, Meteor bugtracker or in Meteor source code itself.

It is quite unpleasant to stumble upon collection synchronization performance when you have most of the application in place.

</comment></comment></comment><comment><USER15> We ([http://differential.io](http://differential.io)) have been using Meteor.js almost exclusively since switching from rails about 5 or 6 months ago and are very excited about where the framework is headed.

Obviously, it's still new and has some kinks but 1.0 is around the corner, and we've found the ease of development is well worth the few issues we've had to work around.

An example app: [http://assistant.io](http://assistant.io)

</comment><comment><USER16> If you're curious, here's another example (open-source) Meteor app: [http://telesc.pe](http://telesc.pe)

</comment><comment><USER17> I was hoping some of meteor's users could answer a few questions about it.

Can meteor use Postgres instead of MongoDB? Could meteor do sync with the database through a server-side rest client (instead of mongodb)? Is TDD possible? Is CoffeeScript possible?

</comment><comment><USER18> Always amazes me how some posts like this one have zero comments in the blog itself but a dozen in HN.

<comment><USER19> that's pretty common, HN threads usually get more comments then on the actual site, comments on actual sites usually don't do that good at all

</comment></comment><comment><USER20> Stop it, JavaScript.

Stop it. Stop being used for application programming.

Stop.

<comment><USER21> Why?

<comment><USER22> Because JavaScript sucks in a multitude of ways? I don't think anyone with experience developing in a few different languages disputes this, nor do I probably have to namedrop A-list developers who have renounced JavaScript for large systems.

It used to be the only choice for cross-platform web applications, but with cross-compilation emerging as a real alternative that is no longer true, so the sentiment has merit, and it is a proper criticism of a framework that relies entirely on writing everything in JS.

<comment><USER23> I am sorry, but this sounds like you simply don't know the language.

Javascript has one big problem and that is that most people either know it from front end people who are NOT really into programming and on the other side there are many people that just don't know JavaScript and use it like C-style languages, just because it might have some similarities with it.

That's actually a problem a lot of multi-paradigm, flexible, expressive and powerful languages suffer. People want to use it like the language they mostly used, get frustrated about how it's a different language and not just a slightly different syntax.

So either you do it like Python and force people into something or you have to deal with a lot of people, complaining about something they don't understand, which simply is easy with JavaScript, because it has a lot of features.

I mostly blame it to the fact that most people learn Java and a certain style of Java as their first language. It's actually saddening, because it causes computer science to become more and more a "just good enough" thing. It's sad, because it started with people (and with that I mean Ada Lovelace, just like various scientists in nearly every decade of the last century) who did what they did not because it was cool and well-paid to do computer stuff, have your own startup, etc., but because they had enough enthusiasm and imagination to make this possible. Lovelace in the 1th century(!) imagined that there could one day be "calculating machines" used to draw paintings!</comment></comment></comment></comment>


Provider Fighting Secret Surveillance Order Denied Access to Relevant Law - <AUTHOR> https://medium.com/digital-freedom/as-a-provider-fought-a-secret-surveillance-order-court-denied-it-access-to-relevant-law-c4e2daa3474d <comment><USER2> The court is wrong that this is not a Due Process Clause violation. Secret laws are anathema to the Anglo-American view of due process. And in a common law system legal opinions are "law" just as much as statutes. Beyond that, the court's reasoning that a litigant should trust the other side's characterization of a case turns the concept of adversarial litigation on its head. It's a laughable view.

</comment><comment><USER3> Original EFF blog post without Medium's login interstitial: [https://www.eff.org/deeplinks/2017/06/provider-fought- secret...](https://www.eff.org/deeplinks/2017/06/provider-fought-secret- surveillance-order-court-denied-it-access-relevant-law)

<comment><USER4> Made it to the front page for a tiny bit, too: [https://news.ycombinator.com/item?id=14565062](https://news.ycombinator.com/item?id=14565062)

Hoping a good conversation about it happens this time.

</comment></comment><comment><USER5> This is madness. How can we have secret laws? Do we take some secret court judge's word?

<comment><USER6> We don't have secret laws, we have secret opinions on public laws.

<comment><USER7> Doesn't that have the same net result as secret law? Legal opinions lead to precedence which is basically "law" in court, no?

<comment><USER8> I think you mean "precedent" or "precedents" rather than "precedence".

<comment><USER7> I do! Thank you for the correction (no sarcasm). I had no idea.

</comment></comment></comment></comment></comment><comment><USER9> Instead of an Article III court, that sounds like an ex parte conversation predating the matter, which the judge is using to decide the matter, which is not ok. If this really is required by Congress, judges ought to give serious thought to whether accepting an appointment to the FISC is consistent with their ethical duties, I.e., "A judge should not ... accept ... an appointment if the judge's governmental duties would tend to undermine the public confidence in the integrity, impartiality, or independence of the judiciary." That article III judges are willing to administer procedure like that gives pause.

</comment><comment><USER10> Why is this not getting press coverage? This looks like a huge deal...

</comment><comment><USER11> Title is a bit misleading. The court didn't deny access to statute. The court denied access to opinions issued by the FISC. This is still really terrible because precedent is, in a way, just as important as statute in determining legal outcomes. But it's a little bit different than what the title of TFA would have you believe.

Yes, precedent can in some instances be considered 'law'. But to a non-legal layperson it's not generally referred to as such. Most people when thinking about what the 'law' is think about statute.

So it's still terrible, but the article headline is a bit misleading.

</comment><comment><USER12> Seems like a violation of the 6th amendment.

</comment><comment><USER13> Sounds draconian and unconstitutional.</comment>


Hellish 'twin' of Earth makes finding truly Earth-like planets more likely - <AUTHOR> http://ca.news.yahoo.com/blogs/geekquinox/discovery-hellish-twin-earth-makes-finding-truly-earth-014919315.html

<comment><USER2> Nature news has a better writeup: [http://www.nature.com/news/exoplanet-is- built-like-earth-but...](http://www.nature.com/news/exoplanet-is-built-like- earth-but-much-much-hotter-1.14058)

Direct link to the pair of papers:

[1] [http://www.nature.com/nature/journal/vaop/ncurrent/full/natu...](http://www.nature.com/nature/journal/vaop/ncurrent/full/nature12767.html)

[2] [http://www.nature.com/nature/journal/vaop/ncurrent/full/natu...](http://www.nature.com/nature/journal/vaop/ncurrent/full/nature12768.html)

</comment><comment><AUTHOR> Thanks for the info!</comment>


Ask HN: Downvote. What are you saying to the other guy when you downvote? - <AUTHOR>

I frankly have tried to wrap my head around the concept, but I just don't get it. I don't remember ever downvoting unless it was an accident. I find it quite similar to throwing stones at someone and hiding when you do it.
Assuming a comment is not insulting, what do you mean to say about yourself and the other guy/gal when you downvote?
Would you still downvote if the other person would know you did?
Thank you for responding. <comment><USER2> Sometimes what I'm saying is that I would prefer not to have more metadiscussion about downvotes, but would rather discuss interesting technology trends or science news that satisfies one's intellectual curiosity.

I take every downvote I receive seriously and try to figure out how to make my comments better. New submissions can't be downvoted, so for those I can only learn from which ones (mine or other people's) get the most upvotes.

It's not a big deal. It's best to come to HN without a lot of ego invested in karma. Just try your best to post thoughtful comments and the karma (and especially karma average, something I still have a lot to learn about) will happen in its own time.

<comment><USER3> _New submissions can't be downvoted, so for those I can only learn from which ones (mine or other people's) get the most upvotes._

I think I have noticed there's a huge time-sensitivity on which stories "catch on". In other words, I suspect you could post the same link twelve hours apart and get a completely different number of upvotes. I speculate that this is because readership is concentrated in the PST timezone. So story lack-of- upvoting isn't quite the same learning experience as comment-downvoting.

</comment></comment><comment><USER3> I don't down-vote for disagreement. I down-vote for comments that I think are seriously detrimental to the goal of maintaining high signal-to-noise in HN.

For example, imagine a comment that just said "LOL!". Yes, I would downvote that, and it says "Please don't make empty comments like that. If you like it, upvote it, and be done with it".

I also downvote for flagrant wrongness, and I mean really mean flagrant. For example say there was a post on geolocation and somebody insisted in all seriousness that the Earth is flat. I would downvote that for the obvious reason.

That said, I think the general guidelines do not frown on voting for disagreement and many people do.

I don't know for sure, but I suspect I downvote once for every 50 upvotes or something of that order - it's pretty rare.

</comment><comment><USER4> The point of comments is to add something thoughtful to a discussion that hasn't already been added. Thus, if there is a comment that is not contributing, a downvote is feedback about that comments contribution, relevance, or politeness.

</comment><comment><USER5> I rarely downvote a comment, but when I do it's usually because of some glaring fallacy or misstatement of fact.

I would be fine with votes being open to the votee or even public.

</comment><comment><USER6> From guidelines:

Resist complaining about being downmodded. It never does any good, and it makes boring reading.

<comment><AUTHOR> I am not complaining. I really would like to understand.

</comment></comment><comment><USER7> _Upvoting_ : done when you think the comment deserves more votes that it has.

 _Downvoting_ : done when you think the comment deserves fewer votes than it has.

 _Asking HN About Downvoting, in A Tone That Suggests Such Negativity is Incomprehensible to Someone of Your Elevated Consciousness_ : done when you are miffed about being downvoted (although you will deny this vehemently) :)</comment>


Where Is My Mind? The rise and fall of the claustrum - <AUTHOR> http://nautil.us/issue/79/catalysts/where-is-my-mind <comment><USER2> I've had the idea for a while that the brain is a rx/tx device that allows a "soul" (choice engine, memory access) to interface with this existence.

I don't know what the "signal" is, or where "souls" reside. And I'm using quotes because I'm not sure that the words are sufficient to express what I mean...

<comment><USER3> That is an old idea, that begs the question. Why would we evolve a transceiver for something that obviously was not needed for survival? What the hell was all the soul stuff doing before apes evolved transceivers? And what good did the transceiver do before it worked well enough to tune in souls?

It smacks of a desperate attempt to justify believing in a soul. If you want to believe in a soul, just do. Dragging in nervous systems just muddies the water. Gods, souls, Grace, are made out of pure belief. They don't need stuff.

<comment><USER4> Yup, the brain as "receiver" is an old idea, like you said. But your attempt at refuting it is quite narrow and has a lot of assumptions.

One such assumption is taking evolution as an unchangeable constant. To me it seems like if the "receiving" of the soul theory is true then evolution no longer plays any major role. It would simply be a story, or a lore. In a similar way when playing an RPG has a back-story that cannot really be experienced and never actually happened in the game.

<comment><USER3> It is meaningless to talk about "refuting" it. It's a "just so" story. Whoever wants to believe in it will, evidence or no. If you assume souls matter, and evolution doesn't, you have achieved nothing, and cannot predict anything. You are reduced to catalogging observations with no pattern, or just siiting and drooling.

[https://en.m.wikipedia.org/wiki/Nothing_in_Biology_Makes_Sen...](https://en.m.wikipedia.org/wiki/Nothing_in_Biology_Makes_Sense_Except_in_the_Light_of_Evolution)

</comment></comment></comment></comment><comment><USER5> >Or, as Koch now startlingly suggests, it may be the case that the dualism between mind and matter is the obstacle for locating consciousness in the brain, and that matter already, somehow, experiences itself. Combining vitalism and materialism, the idea of panpsychism—that fundamental matter has conscious elements—is admittedly strange but, then again, so is consciousness.

What a weird ending for the article. Unless it was tongue in cheek, or I missed something, it sounds anticlimactic to go through an exhaustive description of scientific development to then finish mentioning such a hand wavy / mystical theory under a "we've seen weirder things" platitude.

<comment><USER3> Agreed, a sensible overview of the history of research, and then a launch into cloud cuckoo land. It's as if the editor decided it needed to bring along the loons (who, it must be said, have the majority).

I have long wondered why so many people have such a hard time thinking of consciousness as an activity. "Where does the mind go when you die?" reads to me like "where does the flow go when you turn the water off?" or "Where does the signal go when you hang up the phone?", or even "where does the conversation go when you stop talking?"

I am also disappointed they did not mention frontal lobes, at least to say why not.

<comment><USER6> it's not really cloud cuckoo land at least in terms of the philosophy of mind. dual-aspect monism and panpsychism are serious lines of thought in philosophy.

<comment><USER3> Not with any falsifiable basis. It all amounts to religion with the serial numbers filed off. If you want religion, go for honest religion. Dressing it up in science clothes benefits nobody.

</comment></comment></comment></comment><comment><USER7> Waaay out in the water see it swimming</comment>


Graffiti Artists Use Moral Rights to Prevent Building Demolition - <AUTHOR> http://ipkitten.blogspot.co.uk/2013/10/graffiti-artists-use-moral-rigths-to.html

<comment><USER2> As a general principle, this seems like bad policy.

1) It means that a building owner has an overwhelming incentive to never allow graffiti on their building. 2) It means that graffiti artists have the power to retard residential growth in a city, worsening NYC's problem with affordable housing.

But judges don't make policy, so we'll see how this plays out.</comment>


Taking the LSAT with Zero Preparation - <AUTHOR> https://www.vice.com/en_us/article/3kvv3n/i-took-the-lsat-with-zero-preparation <comment><USER2> The LSAT is what's known as a "learnable" exam, which means that taking it without preparation is 100% not indicative of the final score one could get. This is well-reported all over law school forums where people took it cold and got a 140 and after months of study ended up with a 177. Or started with a 155 and ended with a 165.

The LSAT (especially the logic games) is mostly pattern-recognition and understanding the "type" of problem you're being asked to solve. Getting a high score (e.g. over 170) the first time around is probably impossible because the questions are formulated so weirdly (in other words, you'd need to be familiar with the format to do well). Further, you'd probably not be used to the time constraint and end up guessing on whatever you didn't have time to answer. This article is just stupid bravado, but then again, it's Vice and they're not exactly known for hard-hitting journalism.

NB: 158 going in cold is _very_ high (which is why the article seems like humblebragging to me). A 20 point increase is doable with an intense studying regimen. And with a 178, you can write your ticket to basically any law school (given a 3.5+ undergrad GPA).

<comment><USER3> I know a guy (with BA in physics) who almost aced the LSAT going in cold (i.e. had never seen a practice test), on a dare, without any intention of becoming a lawyer. At some point a decade ago I was vaguely curious to try the same, but not curious enough to overcome laziness and actually sign up for the test (and nobody dared me).

My impression is that people who spend a lot of time thinking critically about text, have a solid understanding of grammar, and have done lots of logic puzzles (say, work through Smullyan's books for fun) and other mathematics problems tend to do pretty well without any specific training.

One reason many Americans have trouble with tests like the LSAT is that we spend very little time or effort up through high school on solving real math problems (as compared to trivial mechanical exercises), with the result that students' technical reading comprehension and critical thinking also tends to be pretty poor. See e.g. [http://www.de.ufpe.br/~toom/travel/sweden05/WP- SWEDEN-NEW.pd...](http://www.de.ufpe.br/~toom/travel/sweden05/WP-SWEDEN- NEW.pdf)

<comment><USER2> I'm not saying this isn't true, but I take stories like this with a grain of salt. Every now and then, you'll have someone claiming that they got a 170+ with no practice on TLS or reddit. Since the LSAT is multiple choice, even a completely random outcome has a nonzero chance of scoring a perfect 180.

I'd argue that what makes the LSAT difficult isn't the raw _difficulty_ but rather the time management. Most people could probably do decent on it if they had as long as they needed, but the fact that you need to pick the _best_ answer in like 2-3 minutes when the _question_ is like two paragraphs long makes it very unlikely that a neophyte will score well. Once you study it, you learn to look for certain things and only end up skimming questions for the key information. Without having ever seen the test, you will most likely do what any sensible person _would_ do: read the question carefully, read every potential answer carefully, come up with your answer, eventually run out of time, and blindly guess on the last 5 questions on every section.

<comment><USER4> I did the test cold, expecting it to be in-situ practice for a 'real' test which I anticipated to write a year later. I scored over 170 easily.

I later trained to become an LSAT instructor on the basis of my scores and realized I didn't have any aptitude for it because none of my strategies for dealing with the test were explicit - they were just my test taking routine.

If you did logic puzzles for fun as a kid and read enough to develop a large vocabulary, good test taking practices will take you the rest of the way. For what it's worth, in my experience most of the kids who did the LSAT coming from the sciences considered it a joke and prepared minimally with good results. They, however, constituted maybe 1/100th of the test takers.

</comment></comment></comment></comment><comment><USER5> > Testy told me she too once took the LSAT, though she doesn't remember her > score. Unlike many of today's students, she didn't spend months studying. > "Honestly, I didn't even know at the time people did that." She says LSAC > actually worries test-takers spend too much time preparing. It suggests > students familiarize themselves with the test and the rhythm of the > questions and maybe take an online course.

This sounds about right. I took the LSAT in college after doing some studying. Between my first practice test and my final test I went up 12 points to 168.

For those unfamiliar with the test there are 3 types of sections, plus an essay, which isn't really used by admissions offices nor is it a factor in your score. The multiple choice questions are a long form reading with many questions about a long passage, a logical reasoning section with a question per prompt, and logic games with several questions for a set of logical rules. The first two, reading and analytical, saw almost no difference in studying. There's a couple tips to get the flow of the test but there isn't much to learn: its fairly good test of innate skills. The logic games sections, even coming from a computer science background and solving similar problems for fun, were pretty challenging especially with a clock. However there are only a dozen or so variants to the games, with the occasional ringer and so studying by practicing a few of each variant has a huge pay off.

<comment><USER6> The clock is the test. That's pretty much the LSAT in a nutshell. This is much more so than the SAT, the GMAT, or even the bar exam.

</comment></comment><comment><USER7> I run an lsat prep website. A cold 158 is a very high score. The median LSAT is 151. Most students can improve about 10 points with practice.

Beyond that, improvement gets dicier, as it depends on actually changing your patterns of thinking. The LSAT is a test of precision, and gets to a level most people are never called to think about when making everyday arguments.

It's actually a very interesting test, many people here on hacker news might find it fun to try. You can print this free version: [https://www.lsac.org/docs/default-source/jd- docs/sampleptjun...](https://www.lsac.org/docs/default-source/jd- docs/sampleptjune.pdf)

I _strongly_ recommend doing it timed, as it is as much a test of your intuition with reasoning as anything else. It also uses subtle psychological biases to lead you astray. Each section is 35 minutes. If you only have time for one, try the logical reasoning.

Law school admissions is in flux right now, as there is a move to start using the GRE as an admissions test. At the highest level of schools, this will likely help get a few STEM graduates into law school. Mostly though, it's seen as a move by schools to pad their enrolment, as law student numbers have declined in recent years. Skyrocketing tuition is the main cause.

The big open question is how the GRE and the LSAT will be compared in the rankings. My impression is that the GRE isn't very important in grad admissions, so people don't study for it. I suspect that motivated law applicants will be able to achieve a comparatively higher GRE percentile than LSAT percentile, as the GRE's subject matter is more trivially learnable, and the motivated prelaw students will be ranked against the unmotivated GRE takers who are using it for grad school admissions.

<comment><USER8> You mention skyrocketing tuition, but haven't mentioned the second major cause of declining admissions, which is that employment rate for new grads _still_ hasn't recovered from 2008-2009 declines[1].

[1][https://www.nalp.org/0917research](https://www.nalp.org/0917research)

<comment><USER7> Thanks. Yeah, that's the other half. If jobs and salaries were up I'm sure more would take the debt. Right now you need a scholarship for most schools to be worth it.

</comment></comment></comment><comment><USER9> Incoming: Bay Area LSAT registration skyrockets as techies try to outdo their law school friends with zero prep.

<comment><USER10> After that: A bunch of nerds blow the LSAT out of the water, get admitted to Yale, and become crappy lawyers because they lack every other skill necessary to be a lawyer(social skills, mainly).

</comment></comment><comment><USER11> We're also starting to see some law schools not require the LSAT for admission. I know that Harvard, Northwestern, and Georgetown Universities are among those that have started accepting GRE or ACT scores.

From the article, I noticed an interesting parallel to medical school admissions:

> Testy told me she too once took the LSAT, though she doesn't remember her > score. Unlike many of today's students, she didn't spend months studying. > "Honestly, I didn't even know at the time people did that." She says LSAC > actually worries test-takers spend too much time preparing. It suggests > students familiarize themselves with the test and the rhythm of the > questions and maybe take an online course.

I've had mentors say the same thing about the MCAT for medical school admissions, and even our USMLE board exams taken during medical school. It's almost as if it's a requirement for everyone to pay up for a service that just drills you until you can expect the kinds of questions that can come up, rather than actually being tested on conceptual knowledge.

<comment><USER7> Not ACT, just GRE. And Testy was actually recommending people prepare _less_ than they do. (I think she's wrong, incidently. If she had a $200,000 scholarship riding on the outcome, she'd prep)

The LSAT is entirely different from MCAT. It's a skill based test. From what I saw the MCAT is more content based, and you can cram the knowledge, except for the reading section.

</comment></comment><comment><USER12> I took GRE without prep as a non-native speaker. Lets just say I severely underestimated it, and went on to do other things in life … the concept of these tests are quite foreign in Northern Europe, so I was not expecting it /at all/. If I wanted to ace it, it would've probably taken me weeks to prep properly (especially all the silly math things, that I mostly forgot about how to do fast enough without mistakes or stressing out). Never ended up submitting my application, even though I had several first author papers as an undergrad, I felt too defeated by it.

<comment><USER13> I would expect the language to be the issue? As a European I took the GRE with zero prep and comfortably got an 800 on the numeric part and a 6.0 on the essay part (I felt I was consciously pandering with an American-style essay because that seemed to be what they wanted), but dropped a bit in the verbal part (640) which seemed to be just about knowing dictionary definitions for a lot of obscure words.

</comment></comment><comment><USER14> Wow the logic games are pretty interesting (sample: [http://www.admissionsconsultants.com/lsat/lsat-prep- game.pdf](http://www.admissionsconsultants.com/lsat/lsat-prep-game.pdf)) They feel like Karnaugh maps and state machines to me :-)

<comment><USER7> And those aren't even real ones. Try the ones in this official practice test:

[https://www.lsac.org/docs/default-source/jd- docs/sampleptjun...](https://www.lsac.org/docs/default-source/jd- docs/sampleptjune.pdf)

<comment><USER14> Awesome, thanks. I find those quite entertaining.

</comment></comment></comment><comment><USER15> I found the writing amusing, but I don't understand the premise.

If I were a writer, I'd happily take any standardized test, with zero prep and zero consequences. Then I'd tell you how I scored. And, so what?

I did not find his manufactured premise of "always thinking I might be a genius at something" too compelling.

Suggestions to strengthen the piece:

1\. Now, he should study hard for 5 months and then take it again.

2\. Interweave a profile of another LSAT test taker who has hung his or her dreams on scoring well.

3\. Take 3, or 10, standardized tests in other domains, and report on what it says about his greatest area of strength.

</comment><comment><USER16> I once went to take a tough mudder without any preparation. I wanted to see what shape I was in straight from the computer chair.

Well, it was in Mount Snow - turns out that going up and down large mountains was the hardest part for me. The obstacles themselves were pretty straightforward, but I was completely exhausted from jogging up mountains. I did skip the ice bath, though.

</comment><comment><USER17> The Wiki article on the LSAT has an interesting section:

[https://en.wikipedia.org/wiki/Law_School_Admission_Test#Scor...](https://en.wikipedia.org/wiki/Law_School_Admission_Test#Scoring)

 _In the most recent study Nieswiadomy took the LSAC 's categorization of test-takers into 162 majors and grouped these into 29 categories, finding the averages of each major_

...and ironically, the last and second-last majors are criminal justice and pre-law, respectively.

<comment><USER7> I'm not american, so I may be incorrect, but I believe many of the top ranked schools tend not to have prelaw/criminal justice as a major. So it could be in part a school quality issue.

</comment></comment><comment><USER18> I scored pretty high (I don't remember the score though) on a cold LSAT, but after taking a course with an instructor who got multiple 180's, my official score was in the 99.9th percentile.

I got into a top 5 law school, but didn't get a scholarship even with my LSAT score, a 4.0 GPA, and multiple honors (including PBK).

Two weeks into the semester I transferred to the MSCS program. Best decision I ever made.</comment>


Crime-Predicting Algorithm Outperforms Humans - <AUTHOR> http://www.technologyreview.com/news/428354/la-cops-embrace-crime-predicting-algorithm/

<comment><USER2> Never quite understood the draw of headlines like this: "Human With Tool Outperforms Human Without Tool"

Yep. That's what humans do. Now, if you really want to catch my attention, give me a headline like this: "Humans Without Tool Completely Fail To Freak Out When New Tool Appears".

<comment><USER3> A valid point. Though, there's something to be said for having the right tool. Give me the headline "Human with shovel outperforms human without shovel at predicting crimes" and we'll talk.

</comment></comment><comment><USER4> > Where police used to sit in daily meetings to plan where to patrol, they can > now spend more time actually out on patrol, since the computer's doing the > planning.

While this is a nice application of machine learning, I can't help but wonder how much of their increase is due to the above fact.

Police being part bigger parts of their neighborhoods must be a non-negligible variable.

<comment><USER5> Even if you assume that the algorithm's quality is exactly on par with the seasoned police veterans, the fact that it's fast is a sufficient value-add by itself.

<comment><USER6> In that case, I've got an even cheaper and faster solution: Pick some points on the map randomly.

Now that I think about it, this could be used as a control.

<comment><USER7> That would actually have the added benefit of avoiding profiling.

<comment><USER8> Why is that a benefit?

<comment><USER7> Assuming both methods are equally effective, then it prevents bad PR.

</comment></comment></comment></comment></comment></comment><comment><USER9> I wonder what the guy who police stopped from breaking into the empty house will do? Let's say the guy stopped from a burglary for some time. He doing it by choice for a reason (has no job, hungry, does not want a job, can't find one - could be many reasons). What he will do next? Will he go into different area or try something new like killing someone? The question is will this technology applied from only one side shift the crime distribution on the map or shift it on the type of crime distribution? The real problem is not addressed. Someone just try to make some money by providing symptomatic cure.

</comment><comment><USER10> I wonder how log it'll be until "the bad guys" start stealing/sniffing/hacking/buying each days map from the cops, so they know where it's relatively safer to commit crime?

</comment><comment><USER11> What will be said to those who claim racial profiling by these algorithms?

<comment><USER6> Would people complain that the police are or aren't visiting their neighborhood?

<comment><USER11> Oddly enough, both.

<comment><USER12> This is not so unreasonable. In many neighborhoods, underprovision of actual police services (cf Public) Enemy) is as big a problem as getting hassled for no reason.</comment></comment></comment></comment>


Micron's Automata Exploits Parallelism to Solve Big Data Problems - <AUTHOR> http://www.eetimes.com/document.asp?doc_id=1320203&

<comment><AUTHOR> For more details about this processor:

[http://www.micron.com/~/media/Documents/Products/Other%20Doc...](http://www.micron.com/~/media/Documents/Products/Other%20Documents/automata_processing_technical_paper.pdf)

[http://www.micron.com/~/media/Documents/Products/Other%20Doc...](http://www.micron.com/~/media/Documents/Products/Other%20Documents/automata_processing_technical_paper_supplementary_material.pdf)

Peformance:

It uses DRAM process.for a snort test(intrusion detection) this (relatively small) chip compares to 9 large FPGA chips.it takes 1/9 of the power. They have 8 chips on a dimm module.

Question: what are some interesting applications for this ? and how do they map to finite automata ?

</comment><comment><USER2> This type of processor implements nondeterministic finite state machines². Effectively it allows you to perform regular expression matching, very fast and on large data sets. They implemented this in a very clever way exploiting the fact that DRAM access is extremely parallel by nature. It is useful to solve data mining problems, such as those arising in bioinformatics.

It is quite likely that there are also certain government agencies among the early customers...

²[http://en.wikipedia.org/wiki/Nondeterministic_finite_automat...](http://en.wikipedia.org/wiki/Nondeterministic_finite_automaton)

<comment><USER3> Fascinating. Can we add a stack?

<comment><USER2> I believe you are thinking of a different computing paradigm.

<comment><USER3> I am thinking about what it takes to turn a NFA into a push-down automata.

</comment></comment></comment></comment><comment><USER4> I wonder if this would be good for features in computer vision too.</comment>


Bangkok meetup - <AUTHOR>

hi everyone. I've finally bitten the bullet and gone out to see the world. I'm currently travelling around Thailand for a few weeks. Are there any fellow YC fans in Bangkok interested in meeting for a few drinks? <comment><USER2> We would need a place that can seat several people comfortably in a discussion format which has drinks.

My wife and I are wracking our brains but I think the upshot is there is no venue in Bangkok which is easy to find, serves drinks, and is quiet. Also, wireless Internet access would be nice. I'm thinking about a cafe.

Starbucks on Lungsuan road is nice. If you'd prefer to support the Thai Man instead of the American Man then the True coffee shop in Siam Paragon is also nice. The nice thing about Paragon is, for YCers who have already made your millions, the Ferrari dealership is conveniently located right there in the mall.

<comment><USER3> The Londoner brewpub on suk soi 33. Brewed beer > brewed coffee.

</comment></comment><comment><USER4> Starbucks Langsuan is the logical choice. Provided not university exam time or Sunday afternoons, it's reasonably quiet and possible to get seats. Londoner Pub is OK too at non-peak times, although discerning people prefer Bull's Head in 33/1. One thing to be said for the Suk 33 area is that there's lots of good stuff to eat (ramen, no less) in 33/1.

Of course there's always Cafe Ubuntu in Soi Saladaeng :).

<comment><USER3> The Londoner is larger and doesn't get as packed as quickly (avoiding peak times, of course). Bull's head is a superior pub no doubt, but is not great for a largish meeting.

At any rate, anywhere will do. When is this scheduled for? I'm figuring on heading to the islands later this week.

<comment><USER5> Only ask that the venue have simple directions for the country bumpkins like myself

<comment><USER3> The Londoner is at the corner of Sukhumvit 33. Easy to get to. The Bull's Head is down Suk 33/1, very easy to get to by BTS. The Phrom Phong station exit is just in front of the mouth of the soi.

I don't know where the Langsuang Starbucks is, never been there.

</comment></comment></comment></comment><comment><USER3> When are you around in Bangkok? It seems there is something of a community out here, but I'm not aware of any previous meetings.

</comment><comment><AUTHOR> hi shafqat. I'm actually a programmer turned primary teacher so I don't code for a living any more. Like most hackers however I usually have a side project. Nothing at the moment but I'm getting lots of travel related ideas thanks to this trip. how long have you been in thailand?

</comment><comment><USER5> Hey - Not a programmer (SEO), but I've been looking for one to hook up with in Thailand. Live near Phuket but will be in Bangkok next weekend.

Silentmind - I'm looking at travel projects as well :)

</comment><comment><USER2> There is the semi-weekly Beercamp meetup, which vaguely overlaps. It is largely composed of the English-speaking Barcamp community. Not sure if that counts.

<comment><USER3> Where is it announced? In particular, how does one find out where / when it is to show up?

</comment></comment><comment><USER6> Hey - I'm in Koh Samui right now... for another week. Then in Bangkok near the end of the month. What are you working on? Startup?

</comment><comment><USER7> On a similar note, any YC folks in Singapore. Just moved back here, would like to meet new people.

</comment><comment><USER2> Sure, where and when?</comment>


Punk science: a growing movement wants to make scientific tools available to all - <AUTHOR> https://www.economist.com/news/christmas-specials/21732703-growing-movement-seeks-make-tools-science-available-everyone-including <comment><USER2> hate these paywall posts

<comment><USER3> Turn off js</comment></comment>


Waldo: Search the JavaScript Runtime in under 1 KB - <AUTHOR> http://javascriptweblog.wordpress.com/2011/07/11/waldo-search-the-javascript-runtime-in-under-1-kb/

<comment><USER2> That's actually quite awesome -- I am amazed that I went on for this long needing something like this yet not getting the idea to write it.

Not strictly related to the project, but I think it would be a good idea if posts that introduced some javascript project/tool automatically loaded it into the page. This way developers could just open the browser's console and play around with it instantly.</comment>


Serverless: I'm a Big Kid Now - <AUTHOR> https://www.simplethread.com/serverless-im-a-big-kid-now/ <comment><USER2> > Nobody wants to manage servers. Managing servers is a nasty side effect of > wanting to execute code.

Actually, I am setting up a serverless app now. 4-5 lambdas, s3 buckets, RDS, IAM roles, and 6 weeks (easily) getting everything into CFT's and Ansible so that I can deploy this relatively small app.

You know how I would replace all that stuff? 1 single VM. (Alright, _maybe_ 2, 1 for the database.)

A server _buys_ you ease of deployment. It really does. Code needs an environment. Lambdas punt on dependency management and environment. You have to build the environment for the lambdas using IAM roles, RDS, s3 -- out of toothpicks. All that stuff (security, storage) is _already there_ for you in a VM.

I was talking with my brother in law about his serverless deployment of ~23 microservices he had carved up out of a Java Spring app. A small change anywhere in the code meant he had to redeploy all of it, not because of how the code was structure but that was the only way the build tools allowed him to do it. More problematically, the dependencies had to be built into every single lambda and made the build longer. (No, lambda layers didn't work for us. Way too complicated to figure it out.)

Honestly after going through tons and tons of pain to deploy these lambdas in both cases, it's just way easier to deploy on a VM. Maybe not for developers who just can't do anything if it's not done in their IDE, but from a broader, more globally-looking DevOps perspective, there are hidden costs.

Yes, it's easy to develop for lambda. But WOW, it's _awful_ in deployment in comparison to just putting things on VMs.

<comment><USER3> I don't dispute that serverless deployments are a mess. But I look at it the other way: they make you deal with scaling up front, whether you need it or not. RDS, S3, all that... it scales to huge volumes. Your single VM will not. You _can_ set up auto scaling with multiple VMs but by that point you're going to be dealing with a lot of the issues you have with serverless deployments.

Now, could a lot of serverless deployments do just fine on a single VM because they never get enough traffic? ...probably. To my mind that's the real problem with serverless: it's a premature optimisation that simply isn't needed in a lot of cases.

<comment><USER4> Right, I'm a big fan of the monolith, but that doesn't preclude anything you just described. Absolutely use RDS. Absolutely use S3. Even on a low traffic app.

But what I see a lot of is engineering teams making sweeping consistency judgements. RDS and S3 are great as services, everything should be a (micro)service. Our calendar feels amazing as a React SPA—everything should be built in React.

No. 90% of a product is just CRUD to support the 10% of magic that customers really value. Ship the 90% as a monolithic CRUD app and spend those cycles on that 10%.

<comment><USER5> This right here. As a less experienced engineer in the past I once made the unfortunate call to go all in on a JavaScript SPA to replace the simple server rendered rails views because it was "correct" and we should have "modern" code.

It's been many years since then and all this really did was bloat the client with metric tons of business logic, punch inconsistent holes through the API layer, and cause the entire web product to have abysmal load times (normal is somewhere in the 5 second range IIRC).

I think it's understated how much damage the young technical leaders typically employed by early stage startups can really do. I can tell you this because I was exactly this person, and I got to see what following hype without doing actual mature research leads to.

</comment></comment></comment></comment><comment><USER6> Isn't the article's vision of things like Kubernetes (and similar) a bit too idyllic?

I've heard talks by experienced K8s adopters (I want to say "Kubernetes failure stories", but googling comes up with similar hits but not the specific talk I was thinking of) where they mention that when K8s goes bad, it has all the negatives or knowing the "traditional" tech stack _plus_ all the failure modes of K8s itself. They argue that it's _more_ stuff you have to know about, not less; and when trouble hits, it can get very complicated to understand why.

(Not picking specifically on K8s; this applies to similar orchestrators/container tech).

<comment><USER7> Some of these stories (I just Googled for "kubernetes failure stories") have little to do with K8s. This one[1] is just whining that his app is slow when it runs out of CPU. That's more of a "I don't know what I'm doing" story, isn't it? Lifting the CPU rate limits in a container is not exactly a cost- free magic wand.

1: [https://medium.com/omio-engineering/cpu-limits-and- aggressiv...](https://medium.com/omio-engineering/cpu-limits-and-aggressive- throttling-in-kubernetes-c5b20bd8a718)

<comment> yjftsjthsd-h > That's more of a "I don't know what I'm doing" story, isn't it?

Sure, but k8s is big enough that "very few people know what they're doing" is a valid argument. It's loosely like saying that git sucks because the technology is solid but it's extremely complex and hard to get a grasp on.

<comment><USER7> I don't think the ergonomics of k8s are anywhere near as bad as those of git. I think the perception of k8s as complex and confusing is promulgated by people who already don't understand how their process starts and runs on any given Linux box without container orchestration. Naturally these people are overwhelmed by adding k8s on top.

The article to which I linked describes itself as "a wild ride of discovery" but all that has been discovered is basic aspects of the Linux process scheduler. The author could have skipped the wild ride if they had understood Linux first.

<comment><USER8> Add to this conspicuous lack of good bottom-up description of how things mesh together, and suddenly instead of having _complex system built out of simple parts_ people face _complex system built of magic_. It's a credit to k8s that you can trudge forward in the second case, but I'm too divorced from "k8s newbie" to reliably check what's the current "newbie introduction" :/

</comment></comment></comment></comment></comment><comment><USER9> One pain point I have is that functions as a service systems like Lambda have an special event format - this is sorted out by tools like Up which will install a small adapter and let you run your normal Http server in lambda. [https://apex.sh/docs/up/](https://apex.sh/docs/up/)

Besides this, the other service I like is Fly [https://fly.io/](https://fly.io/) with lets me submit a container and runs that all over the world where necessary. Google Cloud Run does something similar, but its region locked. Fly is like global lambda for containers.

Between these tools and services, I've stopped caring about servers completely. Never need to install a package or use ssh again. I either submit just the app executable to lambda using Up (for light HTTP APIs) or send a container to Fly (for heavy servers, TCP, web sockets) and that's it.

<comment><USER10> You can now deploy apps on Cloud Run to different regions and use Google's HTTPS Load Balancer to traffic them with a serverless endpoint group.

<comment><USER11> CloudRun is a no-go for apps that need custom domains as they have a 50 domain limit which cannot be increased.

[https://cloud.google.com/run/quotas](https://cloud.google.com/run/quotas)

</comment></comment></comment><comment><USER11> > Serverless container services such as Heroku, Netlify, AWS ECS/EKS Fargate, > Google Kubernetes Engine, and Azure Kubernetes Service

IMO I don't think Heroku and others fit the serverless paradigm.

To me serverless is about automatic scaling of performance and cost.

With Heroku you need to provision capacity in advance, and you pay for it whether you use it or not. Heroku doesn't scale automatically either, you do that manually.

<comment><USER12> Heroku does have autoscale capabilities based on avg response time. You set a min and max dyno count and off you go. It's as simple as it sounds but for run of the mill, follow-the-daytime apps it works.

<comment><USER11> As long as you're already provisioning a pro dyno which starts at $250.

<comment><USER12> Didn't know, thanks. I was on an enterprise account.

</comment></comment></comment></comment><comment> awinter-py > Serverless container services such as ... Google Kubernetes Engine ... You > don't have to worry about running the cluster that hosts your control > servers, node servers

You don't _have_ to worry about it, you _get_ to worry about it.

At least from a cost perspective, GKE isn't serverless. Also I always end up with 2 node pools because the default one is misconfigured. Also kube runs so much crap that the first node barely fits any app containers.

Wouldn't call GKE a win for 'not managing nodes'.

</comment><comment><USER7> Serverless: so grown up that Google App Engine launched 12 years ago and hosts several huge, valuable services. The question of whether serverless is ready answered itself years ago. The remaining questions for prospective adopters are whether it meets your requirements, and are you mentally ready to adopt it (because cramming legacy concepts into serverless never works).

<comment><USER13> And in reverse, it can be surprisingly tricky to convince serverless advocates that it's not so new and GAE fits their definitions.

<comment><USER10> To most people, serverless==lambda. That's where most of the conversation lives and dies.

<comment><USER13> I'd be a lot less grumpy at them if they talked about "Lambda" or even "FaaS" development then :D

</comment></comment></comment></comment><comment><USER14> The developer experience (DX) will more or less get solved by over the top vendors. Serverless.com and Begin.com are doing great jobs at this so far. For any of the concerns about proprietary-ness - sure. But you're already locked in once you start using S3, or relying on any other technology decisions like which database you use. It's not currently free as in freedom to use some of these early serverless solutions, but I'm also having a hard time seeing a world where we have globally distributed, fault tolerant, reliable, secure compute capacity at this cost that isn't running in someones basement.

<comment><USER15> Backblaze B2 is now S3 API compatible: [https://www.backblaze.com/blog/aws-to- backblaze-migration/](https://www.backblaze.com/blog/aws-to-backblaze- migration/)

</comment></comment><comment><USER16> > Security – The operating system installed in a container is usually short- > lived, very minimal, and sometimes read-only. It therefore provides a much > smaller attack surface than a typical general purpose and long-lived server > environment.

Is this true? I always thought things like Docker are massively insecure because they don't respond to the threat landscape that well, since they are kind of 'frozen in time' and kept that way for years at a time without any critical security updates.

<comment><USER17> If you're deploying your own application, you should probably build your image from a known maintained base image, rather than from a community supported one, and then periodically rebuild it - it's like how you'd have to redeploy your app if there was a security issue in one of your dependencies. I wouldn't recommend using any of the public Docker images outside of local dev environments

</comment></comment><comment><USER18> > I think I'm starting to develop a decent radar for which trends are going to > have a lasting impact and which ones are going to fizzle out.

For those who want to get some fast insight to technology which is being adopted or dropped across industries in the software space then definitely check out Thoughtworks Technology Radar. It's regularly updated.

[https://www.thoughtworks.com/radar](https://www.thoughtworks.com/radar)

</comment><comment><USER19> I absolutely like managing servers. It makes sure I am fully aware where my data is at what time, and what is handling it. in a European world with GDPR that became a lot more important. At the same time this has been a big factor in recent data leaks. Those leaks happened mainly because implementation issues, but those organisations didn't _choose_ to make their data available in unsecured S3 buckets. It was able to happen because they didn't have enough visibility.

There's also many reasons given that don't really make sense.

> Your containers are cattle, not pets. If your container crashes, a new one > is automatically fired up.

If my container crashes, I want to find out why so I can prevent it from happening again. One of the issues with these serverless technologies is that they make this kind of debugging harder. I don't want code to randomly crash and just getting restarted to be the solution. It means there is something wrong. To be fair he does mention this later on in the article.

> Serverless functions force you to write your code in a stateless way

So what. If I want to have my own server I can also do it stateless if that makes sense to me. Being forced in a direction is not a positive.

I think the scaling is very interesting. But this is not something that's required for many applications. It doesn't mean everything should be serverless. It just means there's a good option to choose from for usecases that can really benefit from it.

Pushing serverless for everything is like putting blockchain into everything because it's a buzzword right now.

<comment><USER20> Disposable infrastructure is a fundamental piece of distributed systems. Stateful infrastructure is rarely disposable.

</comment></comment><comment><USER21> Is it really that expensive to keep a server running 24/7 vis a vis the development complexity of lambdas?

It depends on your work load. And your trust level in Amazon of course.

<comment><USER22> No it isn't expensive to keep a server running 24/7.

It's expensive to keep that server maintained.

<comment><USER23> Updating a typical linux server can seem daunting, but it is not complex. For example to update a centos linux system:

rpm -qa | grep -i kernel && yum -y update && reboot && ..... After system comes back online, ensure the kernel is a newer version rpm -qa | grep -i kernel

Other utilities like ukuu for debian or ubuntu systems make updating the kernel a breeze.

If you're worried about specific packages, sure that can be daunting, so avoid updating software you are concerned about breaking ( keep an eye on security alerts for that software, which you should be doing anyway if you are using it on a VM container, or serverless... none are immune to vulnerabilities! ) and do not install unnecessary software.

</comment></comment></comment><comment><USER24> > Nobody wants to manage servers. Managing servers is a nasty side effect of > wanting to execute code.

I'll take issue with this one. I'm fully aware I'm weird, but I _do_ actually enjoy managing servers. And with that effort spent managing servers, I buy the ability to actually create the environment in which my code runs, and interact and improve it over time, rather than relying on someone else's idea of what's good for my code. Moreover, I get the ability to dictate the security environment in which my code runs, instead of hoping my cloud provider is doing it properly enough for me (and not busy snooping on what I'm doing in the process).

I think what the poster means is " _I_ don't want to manage servers, I want to write code." Which: fine. The world needs people who focus on writing good code. But I'm sick and tired of this attitude that coding is somehow more noble or better than the important work of building and maintaining the environment in which the code runs. You don't like it? Awesome, don't do it. But stop spitting on people who do, and who legitimately enjoy doing it.

</comment><comment><USER22> Is Heroku severless now? (i.e. on-demand pricing, no capacity planning, etc.)

</comment><comment><USER25> I feel we need to move beyond the "serverless" nomenclature. Although, what would be better? Remote Lambdas ?

<comment><USER22> Lambda is a "Function as a Service" product and FaaS is (usually) serverless in nature.

S3, DynamoDB, AppSync, API-Gateway, and Faregate are also serverless, but not FaaS products.

</comment></comment><comment><USER26> One thing that bothers me about serverless functions is that there is virtually no concurrency. Once you return you have no assurance that your code will keep on working.

If you want to perform actions that might be throttled (cloudwatch for example) and are not critical for the response, you cannot have a singleton processing them after you return, because they might not be processed.

<comment><USER27> How could it be orchestrated by the cloud if there's no clear end to your workload?

<comment><USER26> Of course, I'm not saying the opposite. But you're sacrifying development options in the process

</comment></comment></comment><comment><USER28> Anyone that mentions vendor lock-in with cloud never worked in IT before cloud.</comment>


Steubenville Rape Guilty Verdict: The Case that Social Media Won - <AUTHOR> http://ideas.time.com/2013/03/17/steubenville-rape-guilty-verdict-the-case-that-social-media-won/

<comment><USER2> CNN coverage of the trial is also getting some scrutiny in social media: [http://www.change.org/petitions/cnn-apologize-on-air-for- sym...](http://www.change.org/petitions/cnn-apologize-on-air-for-sympathizing- with-the-steubenville- rapists?fb_action_ids=10151514617470219&fb_action_types=change- org%3Arecruit&fb_ref=__DCjiIqHOIm&fb_source=other_multiline&action_object_map=%7B%2210151514617470219%22%3A550988101588843%7D&action_type_map=%7B%2210151514617470219%22%3A%22change- org%3Arecruit%22%7D&action_ref_map=%7B%2210151514617470219%22%3A%22__DCjiIqHOIm%22%7D)</comment>


Man views porn using Safari, files lawsuit against Apple - <AUTHOR> http://arstechnica.com/tech-policy/2013/07/man-views-porn-using-safari-files-lawsuit-against-apple/

<comment><USER2> There is another blackmail in the blackmailing society of the US, what a country, glad that I don't live there, the more I read about the place the less appealing it is.

I probably get bashed by patriots, but I don't care.

</comment><comment><USER3> _He alleges Apple 's porn offering led to unfair competition between his wife and porn stars, which ultimately caused a deteriorating relationship_

Rofl</comment>


State of the Tau 2020 - <AUTHOR> https://tauday.com/state-of-the-tau <comment><USER2> Note support for the tau constant has been added to several languages and frameworks including the upcoming .NET 5.0 runtime.</comment>


Don't Mess with Texas – TI-99/4A Megademo [video] - happy-go-lucky https://www.youtube.com/watch?v=ZhSUhE03XFw&feature=youtu.be <comment><AUTHOR> Oh wow, the TI-99/4A, I learned BASIC on this computer! If you didn't have the tape storage unit, which could save data onto an audio cassette, you had to re-type your program into the computer if the power went out or unit was reset.

It also had an external voice processor as an addon which was really creepy [https://www.youtube.com/watch?v=kUPkCNcT1Yw](https://www.youtube.com/watch?v=kUPkCNcT1Yw)

<comment><USER2> It was my family's first computer and the one I wrote my first programs on. Three things that stuck in my craw about it were:

1\. BASIC supported PEEK but there was no POKE.

2\. You could save files to a disk but you had to remember the file names because there was no way to list them.

3\. Lower case letters were just small versions of uppercase.

For the last one, a year or so ago I actually found a dump of the Apple IIe font and hacked an emulated TI-99 to use it, and it worked and looked great, so I have no idea what they were thinking.

Anyway, it's awesome to see them be able to squeeze so much out of it in this demo.

<comment><USER3> If you plugged in the Mini Memory cartridge, it added a POKE command to TI BASIC.

There was a common cartridge, "Disk Manager 2", which gave you common DOS-like disk management utilities.

The lowercase font really was absurd. A few programs redefined them with much more pleasant fonts. The "Adventure" module for running the Scott Adams text adventures comes to mind.

<comment><USER4> The Editor/Assembler program gave you a better font as well as 40 colummns instead of the normal 32.

<comment><USER3> That text mode is a lot nicer, but you give up sprite support to use it.

</comment></comment></comment></comment></comment><comment><USER5> I grew up and learned basic on a TI-99/4a. It was a wonderful and simple time... but TI Basic was so incredibly slow.

At least Extended Basic allowed you to use sprites and overall felt a bit faster.

In TI Basic, you accessed the more interesting parts of the machine "Call" functions (e.g. "Call Color", "Call Char", "Call hchar", etc.), and I always found Commodores peek/poke mess very primitive and a bit more inaccessible in comparison. On the other hand the TIs basic and extended basic didn't allow you to access the full capabilities of the machine. Possibly because they wanted you to buy their expansion cards, which I always thought was a dumb mistake from TIs side. That, and that super slow Basic. Especially, considering that the TI has decent capabilities on paper.

I was only about 7 years when I started programming on the TI, and I always wanted to try to write assembler on it, but (happily) moved on to more powerful computers before I got around to it a few years later. I believe it required an extra expansion card to unlock assembler -- but I really wanted to see what the machine was capable of unconstrained by the Basic Interpreter.

Thanks to the guys who made this demo. It is fun to finally get to see what could have been, and super impressive for someone who grew up programming the machine.

This demo is definitely not representative of the applications and games available on the machine at the time.

Well done!

<comment><USER6> The slow BASIC was due to the completely insane doubly-interpreted implementation. The BASIC interpreter was written in GPL (Graphics Programming Language; [https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A#VDP...](https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A#VDP_RAM_and_GPL)), which was itself interpreted at runtime.

<comment><USER7> If I understand that correctly, the BASIC programs were stored in VDP RAM. If that's anything like the MSX (most of which also used this video chip), that means that BASIC tokens are read from a slow 8-bit bus by writing addresses byte by byte to a port and reading the content from another.

There's functionality to automatically increment the VDP address, but any non- contiguous read will have to write the VDP address to the port.

I really like this layered design despite its performance impact. It meant that they could fully utilize the VDP RAM where the CPU local RAM was lacking.

<comment><USER6> Not only the BASIC programs you wrote (which do indeed live in VDP RAM). The BASIC interpreter itself was stored in GROM, which was read-only but had a similar slow 8-bit interface with an address port and a data port on it, and written in GPL bytecode which was then interpreted by a GPL interpreter which lived in real ROM.

If they'd written the BASIC interpreter in actual machine code and put it in ROM then your BASIC programs (and the interpreter's own volatile data) could still have lived in VDP RAM, but everything would have been rather faster...

[http://www.unige.ch/medecine/nouspikel/ti99/gpl.htm](http://www.unige.ch/medecine/nouspikel/ti99/gpl.htm) is a detailed description of what GPL looks like.

</comment></comment></comment></comment><comment><USER8> Good times. I owned one of these.

The TI-99/4A was never very popular, but there was one store called "The Bach Company" on San Antonio Road in Palo Alto that specialized in selling hardware and software for it.

It's easy to forget just how hard it was to get software for a home computer in the early 1980s. If you had a modem, then you could use bulletin boards, but the first 300 baud models (plus required RS-232 interface) cost even more than the computer itself and so were out of reach for me at least.

One of the things the Bach Company sold was 99/4A software on audio cassette. It was packaged in a plastic bag along with a paper printout brochure. Even though I was just a kid, looking back I'm amazed that it never once occurred to me that I could sell software the same way.

<comment><USER9> On my home town in Portugal the only BBS available could only take about 5 simultaneous connections, nevermind the outrageous prices for connecting outside the city center.

</comment></comment><comment><USER10> Fairly unrelated, but fun: "Don't mess with Texas" is a long-standing _anti- littering_ campaign.

<comment><USER11> * Don't Mess with Texas - Wikipedia || [https://en.wikipedia.org/wiki/Don't_Mess_with_Texas](https://en.wikipedia.org/wiki/Don't_Mess_with_Texas)

"The campaign is credited with reducing litter on Texas highways roughly 72% between 1986 and 1990."

</comment></comment><comment><USER12> (Not relevant to this demo in particular, just a piece of trivia I only learned in the past few years:) It makes sense to think of the TI-99 as part of the 8-bit microcomputer boom of the 1980s (Commodore 64, Apple II, TRS-80), but it actually had a 16-bit processor! (Which communicated with most of the rest of the computer through an 8-bit bus.)

[https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A#Fir...](https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A#First_personal_computer_with_a_16-bit_processor)

<comment><USER13> The contemporary of the Apple II and TRS-80 was the Commodore PET. The C64 came much later.

<comment><USER12> I'm talking about 8-bit microcomputers in general, from the late seventies to the mid-to-late eighties:

[https://en.wikipedia.org/wiki/Home_computer#Notable_home_com...](https://en.wikipedia.org/wiki/Home_computer#Notable_home_computers)

EDIT: I owned a Commodore 64 and a TRS-80 in the eighties, and used an Apple IIe at school. These were all programmable in Basic, and although the C64 was clearly the most powerful, they were all similar in power compared to, say, an Amiga.

<comment><USER14> The Amiga used the 68K so it was more powerful than the previous microcomputers that were mostly 6502 (some Z80).

<comment><USER15> Although to be fair, when referring solely to BASIC performance, MS's AmigaBasic was complete trash.

</comment></comment></comment></comment></comment><comment><USER16> Does the demo run at this speed on a real TI-99/4A? The notes say the video has been recorded on a MAME emulator...

<comment> happy-go-lucky You may want to check this out:

[http://hackaday.com/2017/01/30/dont-mess-with-texas-the- ti-9...](http://hackaday.com/2017/01/30/dont-mess-with-texas-the- ti-994a-megademo/)

<comment><USER17> Lovely summary, thanks! I kind of wish the video description linked either to that page or directly to the creator's linked Pouet comment, as they do a pretty good job explaining why the demo is significant.

[http://www.pouet.net/prod.php?which=68783#c782205](http://www.pouet.net/prod.php?which=68783#c782205)

</comment></comment></comment><comment><USER18> The TI-99/4A uses the TMS9900 16-bit processor. I looked it up on Wikipedia and was surprised to see that this chip requires a four-phase clock. Anyone know why it uses a four-phase clock?

The reason I'm curious is that four-phase circuitry was a big thing in the late 1960s, used in mostly-forgotten early MOS computers such as the Autonetics D-200 and the Four-Phase Systems AL1 chip. But I'd be surprised to find TI using four-phase logic in 1976.

See: [https://en.wikipedia.org/wiki/Four- phase_logic](https://en.wikipedia.org/wiki/Four-phase_logic)

</comment><comment><USER19> I spent many, many hours with my family's TI-99/4A. I think my parents got it from Radioshack, as we had a Realistic tape deck to store programs with it. It was the base model with the speech synthesizer.

It was the first computer I had ever used, and learned to program in BASIC at around 6 or 7 years old. I don't think I would be interested in programming and electronic circuits (and by extension, electronic music composition) if it wasn't for that early exposure.

This is a great demo to see. You almost never hear of the 99/4A anymore.

<comment><USER20> Similar story here. Although I didn't get into programming until I got an Apple //e a few years later.

I remember typing in a program on the 99/4A (a game called downhill ski or something like that) from BYTE magazine, or some such magazine. I remember the pain of debugging typos... The hours it took typing it in.

I was expecting something like one of the cartridge games to pop out. I was quite disappointed with the fact that it was ascii, the character was a > or < sign, and the trees were asterisks. All I could think was it took a whole saturday to program that, and the result was not worth the effort.

Years later when I got the Apple, my expectations had been tempered by the previous experience.

Of interest is that my sister did not get into electronics or programming. We both played games on both computers, but took different paths in life. I'm not sure if she would say now that the computers had much impact on her life direction. She's a medical doctor now, fwiw.

It's part of the reason I cringe whenever I hear someone on the internets pleading for information on how to teach their kid to program. I think being exposed to such environments is great, but it might just be that your kid is more suited to being a doctor, lawyer, teacher, fire fighter, what have you.

There is a world of difference between "teaching my kid to program" vs "showing/exposing them to the awesome world of programming."

</comment></comment><comment><USER21> Hi all - this is Dya - I worked on the intro music for the megademo. There is now a real hardware recording here: [https://www.youtube.com/watch?v=-U7j5o0bVPA](https://www.youtube.com/watch?v=-U7j5o0bVPA)

</comment><comment><USER3> I've waited a long time to see a "real demo" on the TI-99/4A so this is just super cool to see.

</comment><comment><USER22> I still have mine but don't have the setup to hook it up to a monitor. Extended Basic was sweet; wrote lots of little games with it. This machine doesn't get the love it deserves.

</comment><comment><USER23> Brings back good memories. When my power pack went, I was devastated.

</comment><comment><USER24> We had one at my high school with the speech synthesizer module. I spent quite a lot of time messing with that thing. Got it to do passible Dakota after a bit of work.

</comment><comment><USER25> The TI-99 is a desktop computer, at first I thought it was a calculator like the TI-98.

<comment><USER26> TI-98? No such thing as far as I know.

The TI-89, now. That is a calculator. Also a significantly more capable machine in virtually every respect.

<comment><USER25> You're right, I was thinking of the TI-92.

</comment></comment></comment><comment><USER27> this makes me realize I need to get back up in the demo scene as well dust off my ol' TI-99 with speech and crush some Parsec!

</comment><comment><USER28> This is an Amiga demo, the TI-99/4A wasn't so fast.

<comment><USER5> Why do you think it is an Amiga demo?

<comment><USER28> The boucing ball, and Wolf3D/Doom wasn't yet a big thing in the 1981-1984 years... And the quality of graphics and sounds, the number of colors, the speech synthesis: the TI99 was more shhhh shhhh... The real 99/4A: [https://www.youtube.com/watch?v=7UxJM7AhZvw](https://www.youtube.com/watch?v=7UxJM7AhZvw) Not the same world!

<comment><USER5> The demo was credited as 2017, so I don't think you can really use the bouncing ball or Wolf3D as reasons.

You could actually buy a speech synthesizer for the TI.

Yes, the demo is impressive compared to what else was available on the machine, but it actually had a (underutilized) 3 Mhz CPU and pretty advanced graphics system.

The TIs biggest problem was that it came with very little RAM, so you generally had to store application data in video memory or expansion cards, which made the machine incredibly slow.

More info about the demo here: [http://hackaday.com/2017/01/30/dont-mess-with- texas-the-ti-9...](http://hackaday.com/2017/01/30/dont-mess-with-texas-the- ti-994a-megademo/)

<comment><USER28> OK for the 2017 demo, but the TMS9900 was slower than the Z80/6502 of the same time, because it was a 16-bit microprocessor with a 8-bit bus, and registers were mapped to the RAM. This demo required power, and is very far from all other TI99/4A games, and most of them were written in assembly (the basic was too slow). So I still think it's a fake, or it is running on a deeply modified emulator, or with hardware extensions listed in the wikipedia page * ) but it's not a "vanilla" TI/994A.

* [https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A](https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A)

<comment><USER3> I don't have any problem believing this can run on real hardware. One of the programmers, Tursi, has done some amazing things that do indeed run on the real thing.

I'm not sure what you're counting as "vanilla", but a TI with the Speech Synthesizer and the 32K RAM expansion is vanilla to me. Those are utterly ubiquitous and period-correct OEM upgrades.

If it required the F18A, which is an FPGA implementation of the TMS9918 graphics chip with some significant new features on it, I'd agree that wouldn't count. That chip makes it a totally different graphics machine.

<comment><USER28> > TI with the Speech Synthesizer and the 32K RAM expansion is vanilla to me

Agree

> graphics chip with some significant new features on it, I'd agree that > wouldn't count.

Agree too. If the graphics chip was so powerful, it's hard to understand why it was so underused, and not integrated in other microcomputers of this time. The video memory of the TI was 16KB, I had several computers with this size, and you couldn't render with this quality, even statically because at 256*192 it's less than 2,6 bits per pixel. And the number of sprites is more than impressive.

<comment><USER3> Actually the TMS9918 is used in a lot of places - in addition to the MSX (which I see you noted below) it was also used in the Colecovision game console and Sega's SG-1000 among others.

The sprite support was great, especially for the late 1970s. Though, I continue to be impressed with what an unencumbered architectire like the Apple II can do with sprites purely in software.

Sega actually kept going with the architecture - the Sega Master System used an upgraded 9918 based chip, and the Genesis/Mega Drive built further on top of that.</comment></comment></comment></comment></comment></comment></comment></comment>