The rise and fall of Ext JS - <AUTHOR> https://medium.com/@ModusJesus/the-rise-and-fall-of-ext-js-c9d727131991 <comment><USER3> I developed Ext-JS applications from 2011 till 2017, and during the ExtJS 4 time, it was great. I loved the quality of their documentation, and most importantly: the ability to comment on each class/method/property etc. This contained invaluable hints and insights. The community was really good.

Then they upgraded ExtJS (can't remember if it was to Ext5 or 4.x) and deleted all the comments as 'no longer relevant'.

Then they started to move certain classes (such as a SOAP client) to the 'premium' edition. Which was understandable, but annoying if you just wanted to experiment with the framework.

Then they removed the GPL edition from the download page, the only way to obtain the GPL edition was by begging on the forums. Eventually Sencha simply no longer responded on threads about the GPL version.

Last year I did a small project and attempted to use Ext6, I found it had become a monster, or even 2 monsters because they split ExtJS into the 'classic' and 'modern' editions, which were promised to be merged eventually, but I'm afraid that's never going to happen. ExtJS now requires a custom build system (SenchaCMD) to compile a project, debugging is becoming a nightmare. Bugs in the build system are rarely solved once reported.

The way I see it: extjs was a great product, but they started treating their community like sh*t, and after that it all went downhill.

Goodbye ExtJS.

<comment><USER4> I have fond memories of ExtJS until version 4 was released. I used to be huge advocate of extjs at our company, but I remember feeling horror and dismay seeing how down hill it went with 4.0. Communication with the community, their pricing policies, quality, perfomance ... too many issues. We pretty much stopped using it and ported all our projects away from it. It really was a sad day.

It was ultimately their mad push to make ExtJS "enterprise" ready and forget all the good people who helped them and were with them from the start. There really was this huge middle finger from Sencha to everyone around that time.

<comment><USER5> I met Art, the Sencha CEO, back in 2013 after having some positive experiences using Sencha Touch on iOS to develop consumer-facing apps. He said that the company was going to solely focus on Enterprise because that's what the investors wanted.

At the time that felt like it signalled the death of the company. I note that the successful JS ecosystems we have today are not enterprise-only or consumer-only.

</comment></comment></comment><comment><USER6> This article misses a point as to why the community was outraged at the license change from LGPL to GPL. I was testing switching an application to EXT JS at the time, and I was really liking it. The prototype worked so well that we were preparing to get the commercial license, and then the license change happened.

After the change was announced, a number of people said they would fork and maintain the LGPL versions. One of the people behind EXT JS showed up in online discussions at the time and insisted that would be a violation.

The problem came from it not really being under LGPL. They tacked on this extra piece:

      Ext is also licensed under the terms of the Open Source LGPL 3.0 license. You may use our open source license if you:

       * Want to use Ext in an open source project that precludes using non-open source software

       * Plan to use Ext in a personal, educational or non-profit manner

       * Are using Ext in a commercial application that is not a software development library or toolkit, you will
         meet LGPL requirements and you do not wish to support the project

There was some debate over this, since the GPL prohibits further restrictions in some cases, and a lot of people believed they could ignore those extra restrictions and treat it as true LGPL.

The EXT JS company in online forums insisted they were wrong, and further outraged the community. A lot of people, myself included, decided to stop using EXT JS. We were planning on the commercial license, but the response of the company didn't feel right, and so like many others, we abandoned EXT JS.

</comment><comment><USER7> I remember the moment when I drew a line in the sand and simply refused to use ExtJS any more: I discovered that the mysterious bug I'd been hunting all day went away if I removed a comment.

It turns out that ExtJS was building some kind of dependency tree by scanning my source code (at runtime!) and looking for things that looked like variable assignments. And it got confused by a commented-out assignment. I don't remember exactly how this caused things to break, but I do remember walking through the stack trace, slowly figuring out what it was doing, and then simply getting up and leaving for the day.

No thanks.

<comment><USER8> I doubt that ExtJS was parsing/analyzing JS code at runtime.

<comment><USER9> ExtJS required a custom build system (sencha) so it's possible it's related to that.

<comment><USER10> This would be my guess as well. I worked on a ExtJS project (v4.0.7 or so), we didn't use the sencha build tools, but when I started there we had a bash script which was a 7 iteration sorting "algorithm" that used grep to try and match the `requires`, `extends`, `model` properties to determine dependency order. It too also uses commented out code or documentation of usage, as they were the first lines it saw. I still do not understand how it worked for so many years. The first thing I did was build a deterministic dependency ordering build tool using esprima.

</comment></comment></comment></comment><comment><USER11> Idera bought out a company that I used to work for. They immediately let half of the workforce go without compensation. They are normally (in Canada) expected to pay severance, but an extremely optimistic interpretation of our employment contracts led them to believe that they could let us go and pay severance to anyone who was still unemployed some lengthy time (If I remember correctly, about 9 months) later. They are the Gordon Gekkos of the software world and I wish them absolutely no success. If you get bought out by them, lawyer up and start searching for a job immediately. If a product that you use is acquired by them, then start shopping for an alternative.

</comment><comment><USER12> As a solo freelancer, I have developed and maintained an internal management web app for a small wine importing company from 2012 to this day: a huge portion of its 15+ KLOCs codebase is ExtJS 4 (the rest is the Python backend) and I have mixed feelings about it.. Given the heavy use of complex widgets and layouts (the Grid component in particular does about everything you could ever imagine, and probably more), I often think that porting to another (more modern?) framework would be almost impossible.. I regularly browse what's available, and I'm certain that an upgrade based on a React + Material stack of some kind would be an interesting evolution, but I'm not sure I have the courage to undertake such an endeavor (not to mention the fact that my client probably wouldn't see the immediate advantage). Despite the often-mentioned appreciable learning curve (which I can't really appreciate anymore since it's been amortized on so many years and hacking sessions), here are four things I appreciate the most of Ext JS:

1\. The fact that well-written Ext JS code has a very "declarative" feel to it, despite being JS

2\. The documentation is very complete and written with love

3\. The dev environment I've been using is very monolithic, and seems very far from the incredibly scattered stack of tools that seem to slowly poison the JS landscape and culture, and which we often read articles about on HN

4\. The community (at least when I was interacting with it on a more regular basis) is great

<comment><USER13> >the Grid component in particular does about everything >you could ever imagine, and probably more

Is there anything available comparable with open license?

<comment><USER14> I'm not sure what features the Ext JS Grid has, but react-virtualized [0] is pretty great for implementing windowing and similar features.

[0] [https://bvaughn.github.io/react- virtualized/#/components/Lis...](https://bvaughn.github.io/react- virtualized/#/components/List)

</comment></comment></comment><comment><USER15> It's interesting that in such an otherwise complete account of ExtJS that so little is made of the rise (and subsequent fall) of jQuery.

The author rightfully talks about some of the (terrible) decisions made by the frameworks owners, that _pushed_ folks from the community; but (imo) the greater effect was the rise of jQuery, which embraced an open source model ExtJS scorned and built a staggeringly large community which _pulled_ many folks from ExtJS.

It's a rather naive view, but Google Trends data from 2004 to now[0] tells a VERY good version of this story

[0]: [https://trends.google.com/trends/explore?date=all&q=jquery,E...](https://trends.google.com/trends/explore?date=all&q=jquery,ExtJS,Sencha,AngularJS,ReactJS)

<comment><USER16> jQuery is dom traversal and manipulation (with a common ajax interface) - ExtJS is (was) a UI framework. It's an apples and oranges comparison - <USER2> worked on several ExtJS projects, all of which used jQuery for one thing or another. I think it's actually pretty accurate to say that frameworks like angular are more responsible for its decline since their feature sets are much more similar.

<comment><USER17> That is all technically correct (best kind). But that's not how it's viewed by the scores of people new to web development. Broadly speaking, you can use both to create a dynamic UI, just at very different levels of abstraction. And at the time when an ExtJS license cost hundreds of dollars and jQuery was picking up pace and was proper FOSS, someone new to web development would be much more likely to reach for jQuery.

The problem with jQuery was that it was almost good enough: it has a system of plugins which were abused to no end to make things like morals and calendars and whatnot. And then there was jQuery UI which promised all the loveliness if jQuery but for UI (I still shake a little when I remember it).

jQuery was and still is great as a helper for "I want to show/hide this thing on the page". It's just the show/hide behavior can quickly morph into 2-4K lines of spaghetti code manipulating all the UI and having all the business logic built in.

<comment><USER18> interesting autocorrect modals to morals.

</comment></comment></comment></comment><comment><USER19> People should give more credit to Ext JS. For a long time, Ext JS was the best choice for enterprise applications and made possible for web applications to replace desktop dinosaurs, such as inventory, accounting, trading apps, etc. Sencha is still a great choice for such apps as it offers components optimized for "data-intensive" apps, but with ES6 and React they are behind technologically.

My company is selling premium themes for ExtJS and we saw a big decline in sales with Ext JS 5 and Ext JS 6, especially after the "min 5 license" change.

We're now working on our own framework called CxJS which has features similar to React, Angular and Ext JS combined. Please take a look if you're looking for an alternative to Ext JS.

[https://cxjs.io/](https://cxjs.io/)

[https://www.codaxy.com/Themes](https://www.codaxy.com/Themes)

[https://docs.cxjs.io/widgets/grids](https://docs.cxjs.io/widgets/grids)

[https://cxjs.io/examples](https://cxjs.io/examples)

[https://starter.cxjs.io/dashboards/sales](https://starter.cxjs.io/dashboards/sales)

[https://worldoscope.cxjs.io/4v5b3k2](https://worldoscope.cxjs.io/4v5b3k2)

</comment><comment><USER20> I think most developers who used ExtJS will have love/hate memories of the framework. I mostly used the framework from 2007-2014 at a previous job, and at the time the extent of most developers' JavaScript knowledge was how to manipulate the DOM with Prototype, jQuery or a similar library. ExtJS was a whole other animal compared to that with its own Java-inspired class system that sat on top of JS, a JSON-style declarative approach to design UI layouts and an extensive data model, store and proxy system that was actually incredibly powerful.

This day was always going to come, however. Sencha's commercial side has always had a habit of making bad decisions, and have always focused on attracting companies rather than developers. This led to initial success on the enterprise side of things - they had a large percentage of the Fortune 100 on their customer books. The problem was that developers didn't use ExtJS outside of the enterprise setting. This was primarily due to the decision to use GPL for the open source license and later to completely alienate individual developers by introducing a 5-developer minimum purchase for commercial licenses. Although I was highly competent with ExtJS and Sencha Touch, I never used it on any side projects mainly because of these issues. All of this meant that when it came to hiring developers with ExtJS experience, it was always a struggle, and I believe it is for this reason that it never took off outside of the big corporates.

</comment><comment><USER21> The article has one false assumption, "that IDERA is a company that focuses on SQL & other IT performance tools". It's not. They started focusing on developer tools in 2015, acquiring Embarcadero (Delphi and C++Builder.)

Disclosure: I work there. So I know that they are more than the article says ;)

I personally would suggest waiting and seeing what happens. Usually when there is an acquisition it is a good opportunity to correct mistakes the previous owner made. I'd suggest the author of this article actually contact Idera, let them know his thoughts, rather than posting a blog only. There are real people at the company and they'll read feedback, and now is a good time.

<comment><USER22> There's a dead comment below yours that says "IDERA fired the entire Ext JS dev team yesterday" \-- is that true or false? Why was it downvoted to oblivion?

Edit: apparently it's true: [https://news.ycombinator.com/item?id=15366051](https://news.ycombinator.com/item?id=15366051)

<comment><USER23> This exchange is pretty much what it felt like to be in the ExtJS community after jack slocum exited. The sencha people would make grand claims about the amazing things they would do for the community, then do essentially the opposite, and afterwards remain mute to all criticism. Nice to see that the Idera acquisition hasn't changed anything.

<comment><USER24> > it felt like to be in the ExtJS community after jack slocum exited

I've to admit that, on some rather rare occasions, I'm thinking about Jack Slocum and how he gave away/was taken away that thing that once was a truely remarkable, changeing lib for js, at least if you take into account when extjs was released. And I wonder what would have happen to him if he invented something like extjs in our venture capital and crowdfounding times.

<comment><USER25> Oh those were pretty venture capital times as well.

</comment></comment></comment></comment></comment><comment><USER26> Great post. The history matches my firsthand experiences with Ext JS and Sencha, both in terms of tech and dev community engagement.

If you're curious about what Sencha code looks like: [https://github.com/SixArm/sixarm_sencha_demo_rest_json/blob/...](https://github.com/SixArm/sixarm_sencha_demo_rest_json/blob/master/app.js)

</comment><comment><USER27> As a developer who was forced to use ExtJS, I'm quite glad it fell.

<comment><USER28> I remember the debug/dev version of the library being the exact same thing as the production one. :|

</comment></comment><comment><USER29> As a developer of some "popular" widgets, I owe a great deal to ExtJS because it taught me that encapsulation, especially in JavaScript, a scripted language with defacto accessible source code, is just absurd. A simple thing like that reminded me of functional programming and the rest is history.

Extending a dropdown component meant that i had to copy some closure just to change a number in a wrapped function, and then update the copy-paste with each extjs version that touched it. Why? Because the developer didn't know any better. Similarly now you have "private" fields in classes, etc because some group wants them, because other languages have them so ofc JavaScript needs it too. When all you have is a hammer...

ExtJS is very much rooted in me as a "not like this", as much as Douglas Crockford is preaching a "keep it simple, stupid, like this". I get pleasure just by hearing him give a talk and saying that while they kids are adding and adding to this pretty ok language, he only needs tail call optimizations, because keeping to the good parts is more than enough.

<comment><USER30> Encapsulation to me is about limiting the supported API. It sucks to release something, and then find many of your users are depending on accidentally- exposed private values or functions that are all going to break if you do the dream refactor needed to fix all the previous problems and enable new stuff. In situations where the API consumers can't pin an old version (like how a plugin can't choose the version of the product used), then you end up with a constant churn of breakage if the system doesn't limit its API exposure to just the mature public parts. In situations where the API consumers can pin an old version, you end up with consumers updating as slow as possible only when they want a new feature occasionally, missing many fixes or other improvements until much later.

<comment> a-kojeve I agree. I like functional programming, but at some point, you're going to have some type of encapsulation, whether at the closure, module, actor, or network boundary. It's always important to think about what API you're exposing.

</comment></comment></comment><comment><USER8> I liked ExtJS 3.4 Never migrated to any newer version as it would require rewrite of our app which would negate any benefit for a long time. I instead dropped old browser compatibility cruft from ExtJS 3 and moved styling to sass/CSS3. Gutted all network access code too in favor of modern alternatives.

It worked fine. ExtJS 4 was overengineered and less performant and sencha cmd was crap.

I like the basic architecture and easy extensibility. Nothing "modern" compares if your goal is to have a basic app and be able to simply include another js file at the end to extend/override anything, even if you've not anticipated it in the basic app.

Nevertheless I'll never use it again for anything new. Its (ExtJS 3) basic architecture (component tree separate from DOM) is easily replicable in the modern browser (for the amount of money they're asking for a license) and that's all I really care for. I don't care for their widgets.

When web components will be supported universally, there will be no need for separate component tree, and for me that will be it for ExtJS's architecture.

</comment><comment><USER31> Our project management app - paymoapp.com is built on Sencha and we're a bit worried. We spent a lot of resources building ext6 apps on top of the old ext4 core - hopeful Idera won't do crazy stuff, it's a good framework worth saving.

</comment><comment><USER32> What the community probably didn't realise is that bills had to be paid in a tough situation. The price rise was not something they did out of greed but rather something of a last ditch effort to be profitable.

<comment><USER33> perhaps, but why did they let the 'bills' get so high?

<comment><USER34> VC funded company...

</comment></comment></comment><comment><USER35> And yet, to this day nothing comes even close to what ExtJS/Sencha offered and offers :(

</comment><comment><USER36> With the world full of Reactish frameworks now I wonder if someday we will return back to these neat frameworks that understood browser limitations really well and created such a surreal experience in the initial days of SPA. Names like Prototype JS, Mootools, Dojo etc. where evolving with some great ideas and Ext JS took it to a whole new level. It's sad to see demise of most of these libraries (jQuery I think is the only survivor).

<comment><USER37> What do you think has been lost?

</comment></comment><comment><USER38> We used to be in an era where Java developers had JSF and .NET developers had Webforms - two technologies that were the perfect storm for component vendors. This is all falling apart now that we have npm and webpack - and the only thing Java or .NET are good for is the REST service infrastructure they provide. No company should be using Webforms or JSF type technologies anymore.

<comment><USER39> So we've gone from using components with lifecycles - in the form on JSF and Web Forms, to using components with lifecycles - in the form of React and Angular.

I'm not knocking React or Angular - I use and enjoy them both. And I find it much more convenient to have components that live entirely in the browser instead of trying to maintain a stateful UI server-side; I certainly don't find Web Forms or JSF development to be very enjoyable.

I just find it mildly amusing that front-end web development seems to continually re-discover old concepts. That's certainly not a bad thing; better to re-discover good old concepts than to forget them completely.

<comment><USER40> I do wish they would remember some of the previous shortcomings, though.

In a way, I feel like security teams have it easy. Just look at whatever vulnerability worked 5 years ago on old frameworks. Solid chance it is easily exploitable on frameworks getting going today.

</comment></comment></comment><comment><USER41> Really interesting article. I used ext js for a project and found the components worked better than anything I've ever used. The grid is super powerful and polished. Setting up a server backed customized drop down is super easy. Lookups are powerful. Trees and charts are powerful. Their dialog builder works super well. A lot of the components can be built, positioned, embedded with a purely declarative json syntax. If it stayed under the BSD license I have no doubt we would all be using it today. For building super data heavy internal enterprise apps it's amazing. Check out their component examples here -

[http://examples.sencha.com/extjs/6.2.0/examples/kitchensink/...](http://examples.sencha.com/extjs/6.2.0/examples/kitchensink/#all)

Unfortunately I wouldn't recommend using it due to the licensing mess. So depressing.

</comment><comment><USER42> 2010: Backbone.js, Angular.js, Knockout.js released

2011: Ember.js released

2012 (?): KendoUI came out and is just better than Sencha

2013: Angular, Backbone, Ember become mainstream

2013: React.js released

2015: Ember and Angular copy React

2017: React mainstream

I dont think it had anything to do with license. Browsers got better, javascript got easier, single page apps became popular, competition happened, Sencha is complicated as hell.

<comment><USER43> I use Sencha ExtJS every day.. (now v.6). We still have a few applications with it but have recommended that my clients move to React (for new development). I have heard a lot of complaints over the years about Ext's complexity and I guess I would have to agree. It's a bit like writing windows code with MFC. Not completely horrible if you know like the entire library, but somewhat daunting at the beginning. The grid control was pretty nice (I think someone commented on that), but the newer component based architectures are much better.

</comment></comment><comment><USER44> Is it just me or medium's comment section is fundamentally wrong? It's always a pain for me to browse

<comment><USER45> It's not you. It drives me insane. I really don't understand why it requires so many page reloads to navigate a thread.

<comment><USER46> If you have too much noise in your comment section, Graphcomment is a nice (not free) alternative.

[https://graphcomment.com/en](https://graphcomment.com/en)

(I work for GraphComment)

<comment><USER47> "Features" is a 404

</comment></comment></comment></comment><comment><USER48> Our experience with ExtJS version 2 (later upgraded to 3), was even with one of the people who literally wrote the book on it, the application still descended into spaghetti code of a homegrown (very much "grown") framework around it.

Our later rewrite in Angular was more structured, though I do admit at least some of that is because it was much of the same team who were now more experienced (and also no longer treated it as an afterthought to the backend), and it being the second time round.

Also much like the Angular 1 -> 2 change, Ext 3 -> 4 was a very large change, and while it was a change for the better (providing many of the features of our homegrown framework in the core), it was still difficult to upgrade.

</comment><comment><USER49> We abandoned it at v4 because it just doesn't fit within the modern landscape.

Building the DOM via JS wasn't going to work for us. We had to re-learn how make simple things and we were at the mercy of the Ext API. The resulting DOM was incredibly bloated, different in IE, and was a nightmare to style.

Template-driven apps like Angular, JSX in React, Vue, etc are much easier to use overall. Less to learn, faster adoption for new developers, cleaner separation, better portability, and small, clean, and consistent output.

To be fair, the original authors of our application had little idea what they were doing either and misused/abused Ext, which made everything 100x worse.

</comment><comment><USER50> ExtJS is a prime example of what I like to call "Best Buy Developers".

What are "Best Buy Developers" you ask?

They are the kind of software engineers who shop for frameworks like they are shopping for a TV at Best Buy. _What if I need to watch YouTube inside my grid component?!_ What if I need to add in sorting that can only be done on the server-side? What if the application grows to be 10,000 forms? goes the thinking. Instead of focusing on absolute simplicity, clean code, minimal dependencies, pragmatism and addressing the needs of the application at the present time, they try to predict the future needs of the application without having any ideas on what the future could possibly look like and not being product visionaries themselves. Everyone always wants to feel like they can predict the future and have solutions ready for problems that don't exist yet, but most of the time they're wrong and the abstractions created in the process, in retrospect, look rather crazy. I speak from experience here.

At the time ExtJS was becoming popular, there was a big desire to duplicate the desktop look and feel in the browser. Anyone remember the ExtJS desktop interface, complete with start button??? I'm guilty of making on those beasts, complete with graphs and windows that could be dragged and minimized. It made for good demos, but wasn't useful. It turns out that the web offers a lot better UI's and UX interaction concepts than desktop apps and it was a poor decision to try and duplicate 1990's and early 2000 UI paradigms in the browser. It was cool at the time you could duplicate a Microsoft Access style fancy filter grid component (and to your boss who didn't know about ExtJS it made you look cool), and frankly many people latched on to it because it was beyond their abilities to do in raw HTML/CSS, and the API was well done, and hid a lot of the early complexity with doing more complicated layouts in CSS and javascript and slow browsers of the day. For your typical engineer who couldn't implement drag and drop using raw mouse events and the DOM, ExtJS provided an easy way to get their job done.

I was an early adopter of ExtJS (since version 1 and I used 2 and 3). I remember being excited about the remoting framework and I'd spend a lot of time dreaming up UI's created with components from the kitchen sink page. I was excited when the designer came out. I tried to convince everyone at my current company to use it, thank god they ignored me. I remained excited about it for a little while longer...

But then something changed. I changed the way I approached software. I no longer cared about fancy stuff. I started to care more about the actual product and what it can do, how easy it is to use for the user, and if it actually solved the problem or not (rather than look fancy or like "big boy" desktop software). I started to not care about component libraries. I learned that its more important to have absolute simplicity and pragmatism than a big framework with a kitchen sink that can seemingly do everything and solve all your problems.

And just like that, I said goodbye to ExtJS and moved on with the rest of my life.

</comment><comment><USER51> The stage setting sounds a little too grim- JS debuggers (Venkman etc) and smartphones existed in 2005, and people haven't stopped using editors like vi or textmate to write code.

<comment><USER23> I built smartphone web apps in 2005, and I can assure you there wasn't a single smartphone browser even close to being worth a damn. Safari on the original iphone was the first decent browser on a phone, everything before that was garbage from a JS developer perspective.

It is true that there were some desktop debugging tools (i remember a js debugger for IE6), but it was difficult to set up, and nothing like firebug or chrome dev tools. Live DOM inspection and editing didn't exist.

Despite the lack of tooling and the horrors of IE6 I still feel that was a golden age in web dev. It was a time of wild experimentation, where a single js dev could gain global notoriety by creating a cool hack or a nice library.

<comment><USER51> Yeah, smartphone web apps were server side business. But smartphones existed, windows mobile & symbian ones.

Here's a post on using the Firefox DOM inspector from 2005: [http://www.codestore.net/store.nsf/unid/BLOG-20050228](http://www.codestore.net/store.nsf/unid/BLOG-20050228)

</comment></comment></comment><comment><USER52> I love ExtJS, and still use the version 5. This post is very true for me too. I didn't upgrade to version 6 because the new license system and the last versions is still very unstable in my tests.

But I will really miss the JSON-way of creating interface. With Xtypes everything is defined as a json object. And is incredible the customization options of their components. Other thing that I will miss a lot is how well integrated is the presentation components with their data layer.

</comment><comment><USER53> What's the best way to migrate from ExtJS (50k LOC codebase)?

They had many excellent components, buffered lists, grouping in lists, tree panels etc. So many useful components.

Is there an alternative?

<comment><USER42> Probably react because you can do it piece by piece - you can embed react inside other frameworks

These screenshots are from 2014 but have React and KendoUI playing together: [http://curator-lilita-10664.bitballoon.com/related-study- ite...](http://curator-lilita-10664.bitballoon.com/related-study-item- picker.png) [http://curator-lilita-10664.bitballoon.com/faceted-study- ite...](http://curator-lilita-10664.bitballoon.com/faceted-study-item- list.png) [http://curator-lilita-10664.bitballoon.com/work-area- metadat...](http://curator-lilita-10664.bitballoon.com/work-area-metadata.png)

KendoUI and Sencha are pretty much the same thing so I would expect you not to have much trouble.

</comment></comment><comment><USER54> For me, Ext was the bridge between Flex/flash development to more native SPA programming after Steve Jobs decided it would kill Flash. It held my hand as I learned Javascript, and it gave me the space to fail when I realized I couldn't use for-in in a javascript app. It also hid away the core functionality under such a huge layer of abstractions that it was impossible to debug anything in the framework. I loved Ext though.

<comment><USER55> Heh, yeah. I often see this ahistorical "LOL why did anybody ever use this loser code" attitude, when the last 10 years have seen a tremendous transition in front end technologies and development practices. See also: YUI.

</comment></comment><comment><USER56> Interestingly I found ExtJs (3) when I was evaluating every single data grid component there was. I found theirs to be the best at the time (2009) and went all in to the framework. Someone mentioned a love/hate relationship and that's pretty accurate. The level of polish on it was unlike anything else at the time but it was an all-in proposition. You had to buy into the eco system and stay in to use it.

</comment><comment><USER57> I started JS in 2011 with ExtJS 4 and it was pretty awesome.

Later it got too bloated and expensive and I switched to Ember.

Whole other thing. Missed all the widgets ExtJS had out of the box. Also, it seemed that Ember used MVC like ExtJS, but had a totally different idea about it.

Now use React and craft most widgets by hand, didn't expect a framework to be so flexible.

React components feel like using the ExtJS xTypes again, really nice.

<comment><USER20> Sencha were working on a project called ExtReact that allowed you to use ExtJS components in React, replacing the JSON-style component declaration syntax with JSX. This would have been pretty amazing - as ExtJS' biggest strength was always the variety and depth of their components (especially the grid).

<comment><USER58> I feel like newer frameworks are catching up. I recently started using semantic-ui-react and so far I really like it. It's nowhere near as complete as Ext (doesn't even have a grid, just simple tables), but the trade off of cleaner and simpler development is a good one IMO

<comment><USER20> I love Vue and React. It's the UI layer where things don't match up, however. There are plenty of examples of UI frameworks, some which sit atop React/Vue, that on the surface look to have everything ExtJS offers. Ext had hidden strength behind the scenes though. The Ext.util.Observable pattern for event handling; the Ext.data package for binding component data to server-side back- ends using Ajax, REST and SOAP proxies; under appreciated features such as keyboard navigation and state management with options to persist to cookies and local storage. At the time it felt bloated and the learning curve was crazy, but looking back on it in an age where heavy client-side JS apps reign supreme, it actually doesn't look all that bad.

<comment><USER58> I worked at a company for 4 years that used Ext for everything. I got to know the framework really well. Everything you say is true, but I honestly don't miss it. I like that React (I've never used Vue), leaves this open to your choice.

Sencha really wanted their customers to lock into Ext and not be able to leave. I like that modern solutions are about choice and flexibility.

</comment></comment></comment></comment></comment><comment><USER59> Can anyone recommend a stable, well documented alternative to Ext JS grids? I am currently developing with React, and would like to replace our internal tables with something as fully featured as Ext JS. (Features like remote filtering, inline editing, custom components, custom queries, etc).

<comment><USER19> CxJS offers a complete grid solution + all other components

\- [https://docs.cxjs.io/widgets/grids](https://docs.cxjs.io/widgets/grids)

\- [https://fiddle.cxjs.io/?f=vwyHzOO1](https://fiddle.cxjs.io/?f=vwyHzOO1)

Disclaimer: Autor here

<comment><USER59> What about remote data? I don't see any mention of built in options for remote sorting, filtering and editing.

<comment><USER19> Remote data works just fine. CxJS grid exposes sort information which can be combined with filters and pagination to get data from the server.

[https://docs.cxjs.io/examples/grid/pagination](https://docs.cxjs.io/examples/grid/pagination)

</comment></comment></comment></comment><comment><USER60> ExtJS was a web client of mine from '09\. They were well funded, but always seemed more focused on the next round of funding than their product. Also, they seemed to penetrate the corporate market, but not the average developer. Some smart people on that team though.

</comment><comment><USER61> Someone please explain me the difference between Override, Extend, Plugin and Mixin.

And what happens when i apply all of them in any order to a given method.

Could you also explain why basing your development on overriding and extending seemed like a good idea? Were people that scared of HTML and CSS?

<comment><USER23> Extend subclasses, mixin composes into a new class (like traits), override and plugin augment existing classes, with override replacing existing methods (which can break with every new release), and plugin fitting into a hook that remains compatible across releases.

All makes perfect sense to me. They're standard OO techniques, the novelty was introducing them to JS developers.

</comment></comment><comment><USER62> if memory serves me right, ExtJs is popular in NAS solutions such as synology and openmediavault, not sure how this will play out for them.

<comment><USER56> They can keep running and developing on the old version they use. I think my synology uses ExtJs 3. As a user, I could not care less - still works....

</comment></comment><comment><USER63> Caddy HTTP server is a history repeating itself like Ext-Js. It is quite sad.

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

</comment><comment><USER64> can someone explain to me the benefit of acquiring a totally unrelated company and how that makes business sense?

<comment><USER65> A quick way to inherit a lot of engineers

<comment><USER66> But then they just fired all of them apparently. [https://www.linkedin.com/feed/update/urn:li:activity:6316923...](https://www.linkedin.com/feed/update/urn:li:activity:6316923189536571392)

<comment><USER67> IOW, business as usual for any Idera acquisition (see Delphi)

</comment></comment></comment></comment><comment><USER68> ExtJS - I have good memories of working with its well-documented, excellent API. For me, it was a precursor to learning iOS development. Only to denounce Apple shortly after, once I realized that Apple will insist that I continue to upgrade my hardware to their latest piece of shit perpetually, throughout my entire life. So yeah. I'm still a web developer. ^_^

</comment><comment><USER69> > 2005: Smart phones did not exist.

Yeah, ok.

<comment><USER70> Well, yeah. Phones at that time were mostly just laid out to render WAP pages only, if anything at all. And virtually nobody used that feature.

Phones actually rending HTML/CSS/JS in a useful way came years later, roughly 2007+.

<comment><USER71> >> Phones at that time were mostly just laid out to render WAP pages only

Well, phones in general maybe. _Smart_ phones and PDAs like the iPaq running Windows CE (or whatever it was called - it had so many name changes I lost track) had a half decent version of IE on them.

Back around 2004-2005, you were universally mocked for putting a giant screen against your face when making a phone call. Kinda funny considering how big screen phones are so popular today.

Some of those Windows devices even had decent res. I had a Toshiba e800 (pda, not phone) in 2004 and it had a VGA screen, which was quite sharp (esp considering that even the original iPhone in 2007 had only 320x480).</comment></comment></comment>


An Electron and Vue.js quick start boilerplate - <AUTHOR> https://github.com/SimulatedGREG/electron-vue <comment><USER2> I've been using this for not that long. It's definitely a must have for you vue.js lovers who are working with Electron. Developer is constantly fixing bugs and adding new features.</comment>


Dropbox Wants More Access to Your Computer, and People Are Freaking Out - <AUTHOR> http://motherboard.vice.com/read/dropbox-infinite <comment><USER2> On a single-user machine all the interesting stuff (personal documents, configuration, browser history etc) is in userland anyway. And people are already entrusting Dropbox with their personal files.

I'd say this article represents Twitter-fishing -- search the comment-ome on any recent event and you'll find somebody panicking, or being crude, or whatever else you want to write an article about.

</comment><comment><USER3> Wow. Pretty garbagey article. Yes you can find some people on twitter that wouldn't want to load a kernel extension from Dropbox. Back in reality: nobody will even know, nobody will care, everybody will be happy if "it just works".

</comment><comment><USER4> I would have no problem with a kext from Dropbox as long as they publish the source and use reproducible builds.

But given their ties to the US National Security establishment I would definitely pause before giving them blind kernel access.

</comment><comment><USER5> Tomorrow's headline: "Dropbox lays off enterprise sales team"

</comment><comment> maze-le I cannot see any reason whatsoever, that this has to run in the kernel.

<comment><USER6> I guess when a program asks to read a file, dropbox has to intervene at quite a low level to get it from a remote server rather than the local file system where the program thinks it is.

<comment><USER7> On Linux you can use Fuse in userland. On OSX I'm not sure.

<comment><USER8> Fuse filesystems on OS X are user-land applications entirely outside the kernel. However, I believe OSXFUSE itself, atop which the filesystems are built and operate, requires/includes a kernel extension.

(Edited for better explanation than initial wording)

<comment><USER9> That's right. OSXFUSE includes a kernel extension ([https://github.com/osxfuse/kext](https://github.com/osxfuse/kext)). There is no other technical way to achieve this without a kernel extension on both Windows and OSX.</comment></comment></comment></comment></comment>


Vagrant plugin for Xhyve - <AUTHOR> https://github.com/sirn/vagrant-xhyve <comment><USER2> Author here! Didn't expected to see the plugin being posted here. The plugin is still very incomplete, and I haven't been able to find any time to work on it. But feel free to ask me anything!

There's also another implementation by different author: [https://github.com/oldpatricka/vagrant- xhyve](https://github.com/oldpatricka/vagrant-xhyve) that use different approach and easier to install (vagrant plugin install vagrant-xhyve)

<comment><USER3> Why aren't you/vagrant using libvirt?

<comment><USER2> Not sure about Vagrant, but I don't think libvirt has Xhyve support yet (and there's already vagrant-libvirt[1] available).

I decided to make the plugin for Vagrant because it's something I'm familiar with.

[1]: [https://github.com/vagrant-libvirt/vagrant- libvirt](https://github.com/vagrant-libvirt/vagrant-libvirt)

</comment></comment></comment><comment><USER4> This is really awesome. Looking forward to seeing progress on it. Ideally this could become the default provider for Vagrant on OS X in the future. I'm sure it'd be a million times better than VirtualBox.

</comment><comment><USER5> Well done! Great work so far @sirn, thanks for your hard work :)

</comment><comment><USER6> A Vagrant Plugin is the first think I've asked on HN when I've seen Xhyve here. Great stuff!

</comment><comment><USER7> Surely this is an "Xhyve plugin for Vagrant"?</comment>


Planet Money Makes a TShirt - <AUTHOR> http://planetmoney.com/shirt

<comment><USER2> This story's been done before but planet money is still awesome

[http://www.amazon.com/The-Travels-T-Shirt-Global- Economy/dp/...](http://www.amazon.com/The-Travels-T-Shirt-Global- Economy/dp/0471648493)</comment>


Fix Your Boring Slides - <AUTHOR> http://randsinrepose.com/links/2013/11/15/fix-your-boring-slides/

<comment><USER2> Is it also working for Microsoft PowerPoint, sir??</comment>


China sets up Hong Kong crisis center in mainland - <AUTHOR> https://www.reuters.com/article/us-hongkong-protests-shenzhen-exclusive/exclusive-china-sets-up-hong-kong-crisis-center-in-mainland-considers-replacing-chief-liaison-idUSKBN1Y000P <comment><USER2> There have been a lot of major stories about China recently:

Landslide pro-democracy victory in HK district council elections:

Hong Kong Election Landslide Signals More Frictions With Beijing: [https://www.nytimes.com/2019/11/25/world/asia/hong-kong- elec...](https://www.nytimes.com/2019/11/25/world/asia/hong-kong-election- protests.html)

Recently-leaked PRC government documents confirm details of the Xinjiang camps:

China Didn't Want Us to Know. Now Its Own Files Are Doing the Talking: [https://www.nytimes.com/2019/11/24/opinion/china-xinjiang- fi...](https://www.nytimes.com/2019/11/24/opinion/china-xinjiang-files.html)

'Absolutely No Mercy': Leaked Files Expose How China Organized Mass Detentions of Muslims: [https://www.nytimes.com/interactive/2019/11/16/world/asia/ch...](https://www.nytimes.com/interactive/2019/11/16/world/asia/china- xinjiang-documents.html)

Leaked China Files Show Internment Camps Are Ruled by Secrecy and Spying: [https://www.nytimes.com/2019/11/24/world/asia/leak-chinas- in...](https://www.nytimes.com/2019/11/24/world/asia/leak-chinas-internment- camps.html)

Chinese intelligence agent defects to Australia:

Would-Be Chinese Defector Details Covert Campaigns in Hong Kong and Taiwan: [https://www.nytimes.com/2019/11/22/world/asia/defector- spy-t...](https://www.nytimes.com/2019/11/22/world/asia/defector-spy-taiwan- hong-kong.html)

Defecting Chinese spy offers information trove to Australian government: [https://www.smh.com.au/national/defecting-chinese-spy- offers...](https://www.smh.com.au/national/defecting-chinese-spy-offers- information-trove-to-australian-government-20191122-p53d1l.html)

<comment> seph-reed Don't forget the bits about a sizable chunk of western media going to lengths to fit their mould, and the sheer amount of world companies which China has powerful portions of stock in.

It starts to paint a picture of a very quiet and tactful fascist world conquering through totally legal business moves.

Also, just to get the idea out there, I'm totally down for a lesser standard of living for the sake of not putting any more gas in their tanks.

[https://github.com/caffeine- overload/bandinchina](https://github.com/caffeine-overload/bandinchina)

</comment></comment><comment><USER3> The pro-Beijing camp expected the support of the "silent majority" in the election, which did not exist, but was reported by the Liason Office.

The problem: "The people in charge of manipulating Hong Kong public opinion for the CCP [the Liason Office] are also the people charged with reporting on their own success." Source: [https://foreignpolicy.com/2019/11/25/hong-kong- election-beij...](https://foreignpolicy.com/2019/11/25/hong-kong-election- beijing-media-delusions-victory/)

<comment><USER4> Bad assumptions. "Silent majorities" do not vote in their majority.

Minorities are almost always significantly bigger voters proportionally — a greatly counterintuitive point about democratic states.

</comment></comment><comment><USER5> I feel sorry for the Chinese people. That's because Xi has set the government and the country on a path that is almost guaranteed to turn out bad.

Let me explain why I say that. To start, China faces many serious problems today, like poor demographic trends, massive bad debts, the trade war with the US, and the Honk Kong and Uighur crises. In order to deal with these problems, the government needs to make good decisions, and in order to do that it needs good understanding of the realities involved.

Now the problem with Xi's authoritarianism is that it cuts off the sort of communication needed to find out what is going on. That includes the free expression of ordinary people, university experts, and people in the lower levels of government. All of them are constrained to be silent or say what the government wants to hear, instead of the truth of what is actually happening. As a result the higher levels of government get more and more out of touch with reality and make poorer and poorer decisions.

I am guessing this will lead to some sort of collapse in the next two or three decades. For those who say no, it is not possible, just take a look at the history of China over the last century. There have been many crises and wild changes in direction, and there is no reason at all to believe that Xi has finally gotten the country on a permanently stable path.

Something else. For years in the comments here at HN, when there was a negative article about China, many China defenders would say it was false, and defend China's policies and general way of government. But in the last few months, they have pretty much given doing this, and instead their main tactic is to try to divert the conversation through false equivalency claims. It seems they have realized China as it actually is can't be defended to people who are not already strong supporters.

<comment><USER6> You don't have to, Chinese people are generally happy :)

<comment><USER5> The Chinese people are happy in some ways, unhappy in others, and it varies from person to person. But they are forbidden by the government from expressing their unhappiness, at least many types of unhappiness. And I take it you think that is a good thing.

</comment></comment></comment><comment><USER7> Seems all is going to plan for Beijing, slowly encroaching on more human rights of the people of Hong Kong. I read an ominous quote from Global Times that said, when talking about the US Hong Kong bill:

"If we take this US bill seriously and shrink from tackling riots, Hong Kong will suffer from an accelerated collapse of the rule of law and be erased from the modern world. [...] If riots continue, Hong Kong is doomed." [1]

I suppose replacing the chain of command in terms of Hong Kong will help circumvent the CCP and secure more 'peace and prosperity' for China.

[1]: [http://www.globaltimes.cn/content/1170691.shtml](http://www.globaltimes.cn/content/1170691.shtml)

<comment><USER8> It's pathetic how the mainstream media is reporting on this. Almost dead silence. Beijing has effectively removed our free speech. Businesses have a feduciary obligation to increase shareholder value, and saying anything bad about Beijing can have huge economic consequences.

<comment><USER9> I've had no problem finding articles about this in mainstream publications, including the NY Times. Maybe it's only TV news that is silent?

<comment><USER2> It's definitely being reported on, it's just that the impeachment stuff has a much higher volume and is drowning a lot of it out.

</comment></comment></comment></comment><comment><USER10> How the West got China wrong; It bet that China would head towards democracy and the market economy. The gamble has failed

[http://archive.vn/5VQR9](http://archive.vn/5VQR9)

<comment><USER11> The gamble has not failed. It just takes longer. Democracy and market economy are definitely gaining on the Chinese people. More people are studying aboard and wanting China to be more like the West, although some bureaucrats are stubborn and holding China back. Take Hong Kong as an example, nobody would image such pro-democracy would happen at such a massive scale. Hong Kong people have done it. The Hong Kong people demand democracy more than ever. I am very very proud of them.

<comment><USER12> I'm curious why parent is down-voted, is this line of thinking completely out of wack? I thought China is definitely going to become more democratic, following similar path as Japan and Korea.

<comment><USER13> In what way is China becoming more democratic? Last time I heard, China doesn't have free elections and those that spoke against the government got jailed, beaten, or disappeared.

<comment><USER14> China has indeed gone through a number of phases of relative (relative being the key word) openness. Similar to the Krushchev thaw, subsequent re- tightening, and then re-loosening in the late Soviet era.

After the Mao era, things became increasingly unrestricted until the '89 crackdown. A second relative period of relatively lax censorship came in the new century. It has been tightening again since Xi came to power, but arguably still less strict and totalitarian than under Mao.</comment></comment></comment></comment></comment>


Schoolboy hacker Omar Khan who upped his grades faces 38 years in jail - <AUTHOR> http://www.timesonline.co.uk/tol/news/world/us_and_americas/article4168112.ece <comment><USER2> "he installed spyware on school hard drives that allowed him to access the computers from remote locations."

Uhh. I think thats actually called a backdoor. How large has the definition of spyware grown nowadays?

<comment><USER3> about as large as the definition of 'hacker'

</comment></comment><comment><USER4> See, if you are going to hack your grade, you do this: 1) Change some of your bad grades to better ones 2) LOWER some of your higher grades 3) Do this for others people's grade 4) Don't be greedy and make large changes. No Fs to As

If such a change is detected, the blame wouldn't fall on you. It seems that all those crackers are very short sighted and fail to think their plan though.

</comment><comment><USER5> "prosecutors claim that he then used teachers' passwords to hack into computers and change his test scores"

is it really hacking if you have the password?

<comment><USER6> A lot of people would consider social engineering part of hacking.

Either way, a hacker doesn't feel the artificial limitation of rules. He had a mission to complete, and he had the passwords to help him complete it, so he took the simple path. Sounds like a hacker to me.

That said, the punishment does not fit the crime.

</comment></comment><comment><USER7> This is outrageous. 38 years (or even 1 year) for fiddling with high school grades? Really?

<comment><USER8> Too true, Back in my day, when we cheated, they just failed you and made you do it again. Repeat a year, or get out of jail when you're 50-something for something you did in HS; choices.

Zero tolerance and all that yap, I guess. Wouldn't want him to grow up and become a tur-rist.

</comment></comment><comment><USER9> If only the penalty for lying on your résumé were as harsh.</comment>


MongoDB and the Dangers of Schema Rot - <AUTHOR> http://jeskew.github.io/mongodb-and-the-dangers-of-schema-rot/

<comment><USER2> I don't know where to start with your ramblings.

1\. Don't use an ODM - MongoDB is scheme-loose for a reason yet you want to lock in a schema with a mapper????? 2\. Go use PostGres if you're that worried about so called schema rot else write migration scripts like everyone else.

There is always a price to pay for flexibility and scalability

<comment><AUTHOR> 1\. Sometimes, you have to work on someone else's code and deal with the decisions they made years ago. In fact, it's how developers spend the vast majority of their time.

2\. See above.

Postgres in my experience has proven far more scalable than Mongo, and the price of "flexibility" is unreliability.</comment></comment>


Ask HN: is it ok to outsource your startup blog? - <AUTHOR>

<comment><USER2> It might make sense as an owner of the startup to outsource your blog. But as a reader I am interested in reading about the experiences of the founder.

If you have little time to blog then write a post in pieces. One post per week is not that much of work. Besides writing a blog will help you in many ways. It will help your organize your thoughts and it will help you gain new potential customers and you will probably make a few friends on the internet as well.

<comment><AUTHOR> Thanks for your advice

I am hoping to learn as i start blogging

for my startup</comment></comment>


Trent Reznor And The Formula For Future Music Business Models - <AUTHOR> http://techdirt.com/articles/20090201/1408273588.shtml <comment><USER2> I think Cherrypeel (my startup) is well positioned to help bands and fans connect. I wrote a response to this post here: <http://cherrypeel.com/#p=/b/blog></comment>


Keys to Being Excellent at Anything - <AUTHOR> http://blogs.hbr.org/cs/2010/08/six_keys_to.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+harvardbusiness+(HBR.org)

<comment><USER2> I dropped everything and went to a tennis academy for high school when I realized I was lucky enough to live have the family to support me financially, and where I lived wasn't a great place to achieve whatever potential I had.

After going to the academy for two years and getting consistently better, I started hearing more and more from people about my "potential", although I wasn't one of the "stars" who would go on to make great money playing professional tennis.

I had finished high school that year, and instead of going to college I decided to take a year off and continue playing international tournaments on the junior circuit. I had done decent and was in the top 1000 worldwide, but wanted to really see how I could do. I had the rest of the year in eligibility (it was June when I graduated, and you can play until the year you turned 19, which started the next January), so I packed my bags and played something like 25 tournaments that fall in a number of different countries.

I did poorly. I made it inside the top 650 or so, far from my goal or realizing any potential I thought I had. It seemed that I just didn't have quite the talent necessary to make it, nor do anything noteworthy with my tennis.

This was disheartening, but I had six more months before I would have to go off to college while keeping full eligibility, so it seemed like my best bet was to practice- with a new perspective that I didn't quite have years earlier.

So this time I got a private coach along with the normal academy practices. Every afternoon when everyone else was in school, we'd keep working. I figured that even though I wasn't a natural talent like some of those guys, a few hours' edge on them every day would help my case. My coach was great, super intense and helped push me when I was tired. I hit my physical capacity a few times and had to take a day or afternoon off every once in a while, but the fact that I was doing more than those supposedly untouchable _natural talents_ was ACTUALLY working. I was noticeably better, a "friggin' moose on the court" as my coach would say, and I started really competing with and even beating some of the guys ranked in the top 100.

I think too few people really work very, very hard, which is what's required to make up for natural talent. This causes the huge amount of naysayers, who never see anyone with little talent exceed expectation. Because of that, too few of the untalented work hard. It's a vicious cycle.

<comment><USER3> We're fortunate enough in first world countries to have the luxury of having forgotten what hard work really means, and most people are too lazy to really dedicate themselves to _anything_.

</comment></comment><comment><USER4> Getting to the bottom, he describes how he no longer beats himself up about not being better at tennis since he knows he could be better if he was willing to invest the time in it.

The same realization about foreign languages is what caused me to gradually stop studying them. The value in being near-fluent in something is pretty clear, but the value of being sub-conversational is usually not. Once I realized I was unlikely to travel and live in the countries whose languages I was studying, it made more sense to give them up.

The whole 10000 hour thing is both exciting and depressing. Exciting because it means you can do anything ("any (one) thing") you dedicate yourself to. Depressing because it suggests limits to how many areas you can reasonably excel at.

<comment><USER5> I read your comment from my iPhone while stuffing my face with cookies. Reading from the iPhone implies zooming in heavily if I want to upvote. Eating cookies implies having one hand covered in crumbs. Thus, I had to finish my current cookie, clean my cookie hand, and then zoom in before being able to upvote your comment. However, I found your comment worthwhile enough to do so—thank you!

<comment><USER4> The cookie monster reads Hacker News! (and has an iPhone) =)

</comment></comment></comment><comment><USER6> Steps 1-3 and 5-6 are "easy", but how do you step 4?

 _4\. Seek expert feedback, in intermittent doses_

It would be great if my company did code reviews on everything a la Google, but that's not going to happen any time soon. I code in my spare time, but what expert is going to want to check out my spare time projects, project euler solutions, or what have you, and give feedback? So, how do I go about getting expert feedback?

<comment><USER7> I think you might be surprised. I'm not sure where you'd go to find these people, however. Is there something like stackoverflow for code reviews? I just posted a related Ask HN:

<http://news.ycombinator.com/item?id=1632965>

but sadly got no responses. I just procrastinated half an hour reading HN. I probably would have preferred to review some young, eager programmer's code.

<comment><USER8> It is as hard to find great students as it is to find great masters.

<comment><USER9> Yes, as the Asian proverb goes:

"When the student is ready, the teacher will appear."

</comment></comment></comment></comment><comment><USER10> Just out of User Interface curiosity how many other people immediately scrolled down to the six bullet points and ignored the rest?

<comment><USER11> Flow:

1\. While the page is loading, look at the utm_source crap in the URL and wonder why the submitter couldn't be bothered to clean that up.

2\. Read the first sentence and identify this as a writer of the "I should start with a personal anecdote to make people like me" school of writing (a US thing? not sure), and start skimming for the actual content.

3\. Slow down when the "Anders Ericsson" anchor appears, and wait for the mandatory "10,000 hours" reference.

4\. Skim the six points, and realize that there's nothing new here -- you've read the same article before, only written by someone else.

(yeah, yeah, I'll log off now.)

<comment><USER12> Flow:

1\. Decide to read comments before the article.

2\. Read your comment.

3\. Decide I don't need to read this again.

4\. Decide to leave a thank you before going elsewhere.

Thank you for your informative summary.

<comment><USER13> Flow:

1\. Read article, throw up.

2\. Read comments, then realize that the comments made this substandard post worthwhile.

3\. Upvote many comments.

4\. Return to regularly scheduled programming.

<comment><USER14> Thanks for pointing out the comments. I was about to dismiss the article as well but there are some great contrarian comments as you pointed out. My favorites:

-Innate talent > Practice. Painful to admit, but better if you can own up to your weaknesses early on and focus things you are better at.

-Extensive practice only applies to single tasks, not complex activities such as business which requires being good at multiple disciplines plus coordinating and understanding the interaction between those disciplines

</comment></comment></comment></comment></comment><comment><USER15> This is true, but no matter how much he wants to a 5'5 guy is not going to be the heavyweight champion of the world. Hard work can certainly get people beyond their limits, but people born with a special talent in one area can push that boundary even farther just by working as hard as everyone else.

<comment><USER16> No, but he could be excellent in his weight class.

<comment><USER17> I think basketball would have been a better example but the point stands. If you are 5'5 and really good at sports you should play soccer instead of basketball if you want to reach the highest levels.

</comment></comment></comment><comment><USER18> This is a motivational article. And a good one with great specific tips on how to optimize your workload. But obviously wrong in that natural talent has little to no effect on skill. But of course you have to say that in a motivational "working hard gets results" gist type article.

</comment><comment><USER19> If you spend 10,000 hours playing Trivial Pursuit it's called cheating.

</comment><comment><USER20> Great... but don't forget key number 7. - Don't give up too early.

<comment><USER21> This! I once gave up a business after thinking it wasn't any good. A year later I checked the analytics (after I removed the front page and let the domain expire) I found that traffic picked up from articles I wrote earlier, and had been high for over right months. Of course, with no site there, they all bounced right off. D'oh!

</comment></comment><comment><USER9> Once can combine numbers 2 (hard work first), 3 (intense practice), and 6 (regular/ritualized practice) by doing some "deliberate" and challenging study first thing every morning. For example, find a true classic in the field of interest, and consume it for 1-2 hours immediately after waking up.

I've been doing that with SICP and it's been an immensely rewarding experience.

</comment><comment><USER22> Relevant:

The Role of Deliberate Practice in the Acquisition of Expert Performance

-Psychological Review

[http://projects.ict.usc.edu/itw/gel/EricssonDeliberatePracti...](http://projects.ict.usc.edu/itw/gel/EricssonDeliberatePracticePR93.pdf)

</comment><comment><USER23> Inspirational. Thanks for posting this.

</comment><comment><USER24> summary:: loop(time)

        if(good_time_of_day)
          practice_what_u_like_to_do;
        else
          do_other_stuff;

end-loop;</comment>


The most important API you've never heard of - <AUTHOR> http://rockhealth.com/2015/03/important-api-youve-never-heard/ <comment><USER2> ah HL7.

> I hope you like XML documents, flat files, pipes and hats, SOAP, and even > CORBA.

Completely true. But that's not really the problem. You can download an HL7 or XML-parsing library and the dirtiness of the representation is converted to JSON or whatever works for you.

The problem is API loopholes.

HL7 does a pretty fair job defining what concepts get put into which fields. However, many implementations ignore the computer-readable fields and literally dump everything as 80-character human-readable console outputs in the "custom text" fields. Want any structured data? You're gonna have to write a text parser specific to the hospital's legacy console systems.

There's also a good deal of standardization over how things SHOULD be presented (ICD-9 etc), but those are ignored. Often times physicians or pharmacists just type the drug into a free-text box. 5 different spellings of Ampicillin are the least of your worries -- it gets bad when the dosage is mixed in with the name, and it gets worse once you get into compounds or mixes. The standard isn't the problem, its the data mapping problem for all the human-inputs.

And then you get into fun stuff where billing people use different codes than everyone else for the same drugs, procedures, admissions, etc (there's a reason billing admins are so highly paid... it's a black art where you get creative how you describe things to the insurance companies).

All of this is to say that I would love to see a RESTful, well-modelled API over HL7 messages, but the problems go far deeper than the protocol spec (and that's just for technical side of things... the politics and business threats of open APIs that the article talks about are completely true as well). It's been a couple of years since I've been in the space and not at all familiar with these new FHIR specs, but I wish that process all the best. If you're looking for a real challenge, it's not picking up Clojure or whatever is the language du jour... a true challenge is doing anything in healthcare.

<comment><USER3> The data mapping problem's what we're running into as well, and we're just trying to consume a tiny fraction of what's in the EMR for a patient (specifically, we're trying to get medication data into the backend for a service that does some pretty neat patient-specific stuff based on that data).

The service we're interacting with has all the structure we need, but doctors and nurses aren't data entry specialists: for the most part, they seem to ignore all the structured fields that they're given and encode all the information ("Ampicillin 5mg three times daily") as free text in the medication's "Description" field.

The problem's not in the protocol spec here (at least, not for our application). The problem's more a human factors issue-- how do you get the clinics' staff to provide you with the clean, structured data that you actually need? Needs to be something that's lower-impedance than just entering a prescription as plain-text (or they'll continue to circumvent your system), and it needs to require minimal retraining or you're going to get push-back from the staff who are expected to use it.

<comment><USER4> If convincing people to use a more structured UI is difficult but they're quite happy giving you all the information you need in their own way, why not just accept the data in the format that they want to give it to you in? It seems like a pretty simple NLP problem - you've got a known set of drug names and contractions, a set of timing intervals and a set of dosages. If they're not bothering to provide some of that information that might be an issue (depending on how well you can rigorously determine and encode the context- specific assumptions that they're making), but if they are providing it all to you like that then parsing your clean data out of the text can be done with extremely high accuracy. Potentially higher than the accuracy of a doctor picking from a set of dropdowns, before anyone says "extremely high isn't good enough for healthcare".

I'm sure it's an avenue you've explored - what's been the major challenge?

<comment><USER5> "It seems like a pretty simple problem" is why the startup community makes more or less zero headway against enterprise problems.

<comment><USER4> It's a statement that comes from knowing a lot about the tools and not a lot about the area in which you're applying them. That applies to a lot of startups, rarely the successful ones, and in this instance it certainly applies to me, and probably most of the readers of this thread.

The purpose of the comment is to offer up the strawman solution so that we can hear more about the interesting part of the problem that means it isn't trivial.

</comment></comment></comment></comment></comment><comment><USER6> See also (edit: just noticed that they include some of these links at the end of the article): [http://docs.smartplatforms.org/](http://docs.smartplatforms.org/)

SMART on FHIR builds on top of FHIR for cross-EHR applications. In their words ([http://smartplatforms.org/for-developers/](http://smartplatforms.org/for- developers/)):

"SMART on FHIR takes advantage of a new and powerful set of health data standards called Fast Healthcare Interoperability Resources, or FHIR. By using HL7's FHIR for the clinical data layer, SMART offers a standards-based platform with broad reach, a rich set of detailed models, and the opportunity to create population-level as well as patient-level apps. SMART on FHIR also uses an updated set of authorization and authentication standards including OAuth2 and OpenID Connect."

and

[http://jamesagnew.github.io/hapi-fhir/](http://jamesagnew.github.io/hapi- fhir/)

(extension to the HL7 Java API "Hapi" which deals with FHIR and is (IMO) one of the more full-featured implementations of FHIR)

Disclaimer: I used to work for a major EHR company but no longer do so.

<comment><USER7> Just wanted to chime in here -- I'm the architect for SMART Platforms and happy to answer any questions. Over the past five years I've gotten much more deeply involved the healthcare standards development world than I ever would have imagined. I came at this space from the perspective of wanting to build applications that plug into real-world systems, but in some ways I've been digging lower and lower down the stack trying to lay firm groundwork. There's constant tension between laying groundwork and trying to get "real" work done.

<comment><USER6> Do you think that there's any chance of getting interop via FHIR (with or without SMART) as a condition of winning the DHMSM deal? My impression (rightly or wrongly) is that a lot of vendors are doing a lip service/wait- and-see approach to FHIR and truly opening up.

<comment><USER7> I'd like to hope so. I think we've seen this kind of interaction play out on a much smaller scale in the commercial world, and we're seeing more of it. For example, when Intermountain Healthcare selected a Cerner EHR, they did so as part of a multi-year partnership [1], under the condition that Cerner would provide open interfaces to their EHR data so that Intermountain could continue developing (and begin porting their existing) home-grown decision support tools. Part of the arrangement was an innovation fund to support development of the specifications needed. And I think that's actually a great pattern, since we certainly won't have all the answers right out of the gate. With respect to DHMSM, the timeline is long enough that it's very hard to name relevant technologies on the way in, without the concern that they'll be out of date (or at least out of fashion) by the time implementation hits.

1\. [http://www.cerner.com/Intermountain_and_Cerner_announce_stra...](http://www.cerner.com/Intermountain_and_Cerner_announce_strategic_partnership/)

</comment></comment></comment></comment><comment><USER8> The one big problem I see with healthcare information is red tape. Independent developers and small shops do not have the resources to deal with lots of red tape. We saw with the recent VAT changes in Europe that it's really hard for anyone who isn't an enterprise company to deal with lots of regulation.

Before we start talking APIs, I want to know the hoops I'm going to have to jump through before I even git init.

<comment><USER9> I wrote up a project plan that details the players and some of the steps to get HL7 data through the traditional integration methods that exist today. Check it out: [https://catalyze.io/learn/how-to-integrate-with-epic-or- any-...](https://catalyze.io/learn/how-to-integrate-with-epic-or-any-ehr)

I think FHIR only helps this process if it standardizes/centralizes security. So much of the process of setting up integration is getting whitelisted by an organization and setting up VPNs and other security measures that have nothing to do with HL7 or FHIR or IHE profiles. If startups have to establish credibility and integrity at each hospital they go to, the cycle will continue even with a public API.

</comment></comment><comment><USER10> The problem in healthcare is humans and organizations, not software. There is no will to conform to standards and foster interoperability.

You can rant about it all you want, but that's the reality. The status quo exists for a reason.

<comment><USER11> Except a huge reason they refuse to conform to standards is because you are asking them to do a lot of extra work for no extra pay. The EMR systems, by and large, are not good. The user interfaces do not make it easy to conform to standards. It is not reasonable to expect docs to do it under those circumstances.

<comment><USER10> When I say "they" I don't mean the doctors, I mean the hospital administration. They operate on a different set of incentives and motivating factors. The doctors are usually not involved in the process in a very substantive way. It's this fundamental disconnect, which is so common in enterprise software, that's brought us to where we are today.

I know people on HN have fire in their breast to change the world but the rock is harder to move then many think. I tried to do it for almost 5 years and didn't get very far.

<comment><USER12> You need to motivate them where it counts, the almighty $. I want to add I'm not saying this sarcastically at all. The motivation of hospital administration comes down to a bunch of numbers on paper. If you can _prove_ that they will have _significant_ gains by implementing one of these standards they will move. However, most of them have been around long enough to see the standards come and go and are aware that HL7v2 is still in use 99% of the time. To them it is truly a case of, "If it ain't broke, don't waste the money fixing it." My hope is that FHIR and its approach to solving the problem of a bloated unwieldy standard with extensions will gain ground. If hospital administrations can be convinced to implement a simpler and cheaper standard to start, which has the potential for extension in the long-term. It will go over far better than the current approach of, "We'll implement this new standard for you that will take nearly 2 years, cause budget overruns, and never really see adoption." (The only people that end up benefiting are the consultants implementing the spec.)

Additionally, there's still an emotional component of "You're not getting our data because we don't trust you know how to secure it properly." From the personal experience of having worked with the IT staff at various medical institutions there is often a level of paranoia around their data. Which, in some regards is fully justified given the regulations (HIPPA, HITECH, etc) they are required to meet. The issue is that it often moves beyond meeting the regulations into a place of attempting to exceed the regulations. Which, seems like a smart move until it is too late and you've only succeeded in adding extra bureaucracy into your internal processes. These added burdens are then foisted upon external parties who are attempting to integrate with the system and therefore, by the nature of the regulations, the processes which have been previously set forth by the implementing institution.

All of that said, I agree with your statement, "I know people on HN have fire in their breast to change the world but the rock is harder to move then many think.". However my take is that we are attempting to move the wrong rock. Healthcare institutions need to learn the correct way to introduce and enforce secure yet flexible processes and policies in regards to technology. After that occurs then the technology rock will be much easier to move.

I'm going to add that I've been a Medical Software Engineer for just shy of 10 years and it has been both an extremely frustrating and also extremely rewarding ride.

</comment></comment></comment></comment><comment><USER13> This article totally misses the mark. The MPH and non-technical Health IT folks get super excited over FHIR, but its probably DOA. Its been mired in committee for years and makes a ton of compromises. If you look at the demo code, it isn't terrible per se[1], but ordering back to the EHR through FHIR is locked into order sets. Order sets for those not in the industry amount to pre set lists of procedure/medication/whatever orders defined on a per hospital basis. Trying to order a specific thing off order set for an individual patient is a be messier.

And honestly, the APIs at Allscripts, EPIC, et al are getting a lot better. The APIs avoid a lot of the free text nonsense that floatrock mentioned. They aren't great, especially around allergies and immunizations, but I think they have legs.

[1] [http://www.hl7.org/implement/standards/fhir/](http://www.hl7.org/implement/standards/fhir/)

</comment><comment><USER14> _you'll probably be integrating with a 70's-era MUMPs-based EMR system, which will be expensive, painful, and slow_

The funny thing is, if you study MUMPS even briefly, you will be struck a weird sense of deja vu... It's what we call "NoSQL" now. And it was superseded by RDBMS in the 80's for a reason.

<comment><USER15> They were going to switch my local hospital to a MUMPS system for something like 27m (or was it 127m, I forget). I looked at the technology and almost cried.

Fortunately they fired that CIO (who literally knew nothing about computers or IT, but hey, the committee appointed him).

<comment><USER16> If you live in the US, it's pretty much standard to use considering that Epic, VistA, GE, and MEDITECH are all based on it.

<comment><USER17> If you live outside the US, InterSystems is rapidly getting EMR/EHR contracts with their InterSystems HealthShare® system. I haven't heard how much it uses FHIR, but find it likely that if there is a market that it will become a part of solutions available to purchase.

</comment></comment></comment></comment><comment><USER18> I knew even before I clicked the link that it would be discussing e-health records :) I worked with them in a small division of McKesson (RelayHealth) a few summers ago as an intern and the company was described to me as "the biggest company no one's ever heard of." Hope there's finally some agreement on the format and information sharing takes off so we can focus on the important things! So much of my work today seems to involve data munging that I'm starting to wonder if this is all a career in data science really has to offer.

<comment><USER19> "the biggest company no one's ever heard of." That would be blackrock. Or perhaps pimco.

</comment></comment><comment><USER20> Sadly, I don't see this happening without the government making it a requirement that EMR adopt the standard. The resilience to change in healthcare is unimaginable.

<comment><USER21> Maybe that's because we (software engineers) are not providing them value?

As far as I can tell, the EMR system my surgeons & doctors use is solely a hindrance to his workflow as compared to paper charts. I'm sure it's easier for the people/computers processing paperwork and billing on the backend, but for the doctors and nurses in the room all I've heard so far are complaints. From my observation, the UI/UX of the whole thing is terrible. I'm actually embarrassed by it as a member of the profession.

<comment><USER22> Sadly, the EMR is not made for your surgeons - it is made for the people doing billing. EMRs are good at capturing the data that is needed to get as many dollars as possible from insurance companies. It is only recently that quality of care metrics have had any impact on billing (Gross oversimplification - Under the ACA Medi[care/caid] payments can be limited for low quality care). Prior to the ACA the increased costs of making good EMR workflows for providers was a net negative from a hospital revenue perspective.

<comment><USER23> This is super true. There's not a lot of proof of business models for healthcare IT outside of billing. If you try it you'll quickly learn that a practice or hospital's interaction with insurers is the most important one they have.

</comment></comment></comment></comment><comment><USER24> We are building our app on FHIR (NavHealth.com) it's great to see so much interest on hn

</comment><comment><USER19> Don't waste your time. HL7 is a wasteland.

It is a career killer.

</comment><comment><USER25> $10-150k per integration doesn't sound so bad. Ever meet a supposedly modern allegedly-REST API rife with side effects and asymmetry?</comment>


Georgia government sites hacked (and spreading malware) - <AUTHOR> http://blog.sucuri.net/2010/02/georgia-government-sites-hacked-and.html

<comment><USER2> Georgia the country, not Georgia the US state

<comment><USER3> I think most people know that now after feeling like morons last year

</comment></comment><comment><USER4> Hey, you could use a simple "curl" instead of lynx.

<comment><AUTHOR> Yes, I am just used to lynx since it comes installed by default :)</comment></comment>


Esther Dyson on Investing in Startups in Russia - <AUTHOR> http://wanttt.com/posts/topic/esther-dyson-on-investing-in-startups-in-russia

<comment><USER2> The interviewer here is astonishingly bad. He seemed deeply uninformed (about Yandex, "that's a Google clone, right?"). And there's this constant, "Russia is a third-world country" vibe from the interviewer. For example, "Can you tell us how you actually made money on Russian companies?"

Blogger journalism makes me miss real journalism.

</comment><comment><USER3> Junk. Not worth watching.

This has virtually nothing to do with "Investing in Startups in Russia". It is basically Esther Dyson, whoever she is, enumerating her successful exits and plugging several of her new ventures. That's it.</comment>


Math and the City - <AUTHOR> http://judson.blogs.nytimes.com/2009/05/19/math-and-the-city/ <comment><USER2> If you like that you might also be interested in Benford's Law which points out some really unexpected Digit distributions in a lot of data sets.

Smeed's law is one my favorites. It accurately predicts the traffic fatality rate as a function of motor vehicle registrations per capita. It is accurate almost everywhere it has been tested, for over 50 years.

<comment><USER3> Your comment got me curious about Smeed's law, the Wikipedia article is pretty interesting (<http://en.wikipedia.org/wiki/Smeeds_law>).

 _Smeed himself took his law as expressing a truth about group psychology: people would take advantage of improvements in automobiles or infrastructure to drive ever more recklessly in the interests of speed until deaths rose to a socially unacceptable level, at which point safety would become more important and recklessness less tolerated._

<comment><USER4> Your link should have an apostrophe - Smeed's, not Smeeds.

<comment><USER3> Odd, it seems as though HN eats the apostrophe. This link should work: <http://en.wikipedia.org/wiki/Smeed%27s_law></comment></comment></comment></comment>


Web Reflection: A Safer JS Environment - <AUTHOR> http://webreflection.blogspot.com/2012/08/a-safer-js-environment.html <comment><USER2> Object.freeze and Object.seal should absolutely not be used in production code unless you have no choice. They incur a tremendous performance penalty in V8 [1] and aren't great in other engines either. Combining them with the window object (aka this in global scope) isn't going to be great either since that thing also comes with a terrible performance penalty [2].

[1] <http://jsperf.com/freeze-vs-seal-vs-normal/3>

[2] <http://jsperf.com/variable-access-performance>

<comment><USER3> Well, not every app is a game and needs things like superfast property access at all times. A typical app needs to be responsive, but "decently fast" property access can fall well within what's needed for "responsive", plus you get all these new guarantees about unmodified state. The lower numbers in the first benchmark are still fairly fast, it's just that cached property access is so much faster (the test itself is also approaching about as microbenchmark as you can get, so we shouldn't generalize with the results too much).

Really, Object.freeze, seal, etc are not widely used yet, and so aren't found much in the popular benchmarks, and so haven't received much attention from the Javascript engine writers. That will change if they start to become more popular. My understanding is that v8, for instance, just doesn't touch those after the initial code generation, so you don't get the optimizing compiler at all right now. That will change very quickly if the next version of the Kraken suite has a bunch of tests with sealed and frozen objects.</comment></comment>


The Shortest Possible Game of Monopoly: 21 Seconds - <AUTHOR> http://scatter.wordpress.com/2010/05/30/the-shortest-possible-game-of-monopoly-21-seconds/# <comment><USER2> "Whenever you land on an unowned property you may buy that property from the Bank at its printed price. You receive the Title Deed card showing ownership. Place the title deed card face up in front of you. If you do not wish to buy the property, the Bank sells it at through an auction to the highest bidder. The high bidder pays the Bank the amount of the bid in cash and receives the Title Deed card for that property." - [http://richard_wilding.tripod.com/monorules.htm#buyingproper...](http://richard_wilding.tripod.com/monorules.htm#buyingproperty)

Player 1 lands on two properties, but this auction does not occur.

This can easily be solved by simply saying "'no auction' house rule". Few people actually honor this rule anyhow. I don't object, I don't think it's a very good rule either. (Then again, I don't think it's a very good _game_ , so my opinion may be suspect.) The biggest problem is the word "auction" is underspecified; it could mean many things and you'll spend more time arguing over it than playing if you try to take this seriously.

I have found it remarkable how few people play by the actual rules, and how few people realize they are not playing by the actual rules. Including some people who claim to hate the game because they are not following the rules. (Often this revolves around not using timers which the rules will often explicitly mention; my version of Scrabble does, for instance, though the online rules I find do not.)

<comment><USER3> Easily fixed: the auction does occur, but no one bids on the properties.

<comment><USER2> I have seen it argued that sells at auction does not admit the possibility of not selling it. I do not remember if that was tournament rules or not. You can then buy it for a dollar, if you like, it won't change the results.

If you're going to rules lawyer, you gotta do it all _proper_ like.

I'm not arguing this will necessarily make the game any longer, I'm just saying this isn't a by-the-actual-rules game. It shares this in common with probably 99%+ of all games of Monopoly that are played.

It is not uncommon for games to fail to cover cases in the rules, such as nobody even bidding a dollar for property in Monopoly. Jenga sort of crashes if you get the game into a state where there are no more levels with removable pieces, or at least strictly read mandates that the next person to move is a loser, which is an undesirable outcome.

<comment><USER4> Using an auction maybe you could make the game shorter by getting player 2 to buy properties, thus loosing money, so when he lands on something player 1 buys she has none left.

</comment></comment></comment></comment><comment><USER5> Couldn't this game theoretically be over much faster?

From [http://www.hasbro.com/monopoly/en_US/discover/strategy/rules...](http://www.hasbro.com/monopoly/en_US/discover/strategy/rules.cfm#buy)

      Whenever a player lands on an unowned MONOPOLY property he may buy that property
      from the Bank at its printed price. He receives the Title Deed card showing
      ownership and places it face-up in front of him.

      If he does not wish to buy the MONOPOLY property it is sold at auction by the
      Banker to the highest bidder. The buyer pays to the Bank the amount of the bid
      in cash and receives the Title Deed card for that property. Any player,
      including the one who declined the option of buying it at the printed price,
      may bid. Bidding may start at any price.

This article doesn't seem to be following the official rules (at least, according to the multiple "Action: None"s scattered throughout).

Faster variation:

 _Player 1_ : Rolls a number causing him to land on ANY property. Declines to purchase, but bids the price up such that Player 2 receives the deed but pays all of his money.

 _Player 2_ : Lands on community chest, has to pay some amount of money greater than the mortgaged value of property received on last play, goes bankrupt.

Am I missing something?

<comment><USER6> This is also brought up in the comments of the article itself. Yes, the game could be over in fewer turns/dice rolls this way. But then, would someone really pay that much for the property at auction? Maybe not.

<comment><USER5> Agreed, but we are talking about the shortest _theoretically possible_ game anyway, so might as well put all options on the table.

One could argue that rolling doubles 5 times in the first 7 roles is just as unlikely. :)

<comment><USER6> Ah, right. My thinking was that in the scenario proposed in the article, it doesn't matter what player 2 does (apart from the dice rolls, which is beyond their control anyway) they'll still lose. You only have to control the actions of player 1. While in the auction scenario you need to control both players to make it work. So if you were actually playing as player 1 and all the dice rolls lined up, you would only be guaranteed to pull off the scenario in the article. But I guess it doesn't matter since both scenarios are theoretically possible.

</comment></comment></comment></comment><comment><USER7> There's a tool-assisted speedrun of Monopoly for the NES that takes a different approach than the one described in this page:

<http://tasvideos.org/520M.html>

<comment><USER8> Oddly enough, I came to post exactly that. To spare anyone having to hunt up the obsoleted movie to find the strategy (which hasn't changed in the newest movie, which merely improves luck manipulation), here's a link to their strategy which tells you all the rolls they used: <http://tasvideos.org/988S.html>

Actually, there were two routes and the one that would, in theory, be faster ended up being slower because they would have been forced to wait too long for the dice to hit the right numbers. Lest you think that's easy, I suggest looking up the TAS of the Shining Force games. The videos are incredibly boring. The interesting part are the complex process they've gone through to disassemble the random number routines and manipulate them to their benefit. They actually have complex programs in Lua, Matlab or possibly a few other things to optimize the randomness for them, which are pretty crazy.

One such discussion of the complex end of luck manipulation can be found here: <http://tasvideos.org/2258S.html>

And the scripts it mentioned are in the forums proper. There may be more (I haven't read the whole thread), but a lot of them can be found here if anyone is interested:

[http://tasvideos.org/forum/viewtopic.php?t=1759&postdays...](http://tasvideos.org/forum/viewtopic.php?t=1759&postdays=0&postorder=asc&start=160&sid=37a9886c0fd9bd1281a3a230bdfc8d8c)

It's a LOT more involved than you might expect.

</comment></comment><comment><USER9> The article itself is quite interesting, but I almost skipped the video, which is at least as amusing! It was worth the watch.

</comment><comment><AUTHOR> Does monopoly has a set of notations like Chess for game tracking?

</comment><comment><USER10> Shortest game I ever played was less than 3 minutes. On my first turn I bought St. Charles Place. On the other player's first turn he bought on of the light blue properties. On my second turn I bought Virginia. On the other player's second turn he bought States Ave. I mortgaged my 2 properties and traded him them for his one property and all his cash. On his next turn he landed on Community Chest and couldn't pay the school fees.

<comment><USER11> While I could see why you'd offer the deal (he wouldn't be able to build on his new monopoly until he passed Go a couple times to unhock), I'm not sure why he'd take it. I would think he'd know that being out of cash would keep him from getting any new properties for a long time...

You did make sure he had the money to pay the 10% interest fee on transfer, right?

<comment><USER10> Yes he paid the 10%. He likes to play with rules I don't like: Free Parking pot, double money for landing on Go, and no even build rule. So he may have been lucky and I may have been unlucky. He took a chance and it could have paid off for him. Either way it was probably going to be a short game.

</comment></comment></comment><comment><USER12> I found this article completely incomprehensible until I remembered that Monopoly is localised. Park Place? Boardwalk? You mean Park Lane and Mayfair, surely? :)

</comment><comment><USER13> A shorter way would be for one player to buy a property then have another player trade all his money for it. Then that player would have to mortgage the property. Then they would get a community chest that makes them lose more money than the mortgage value. This would take only 2 turns.

</comment><comment><USER14> another solution (i think)

player 1

      1, 1 --> community chest, collect 200
      4, 4 --> lands on jail, just visiting
      2, 4 --> purchases st. james

player 2

      2, 2 --> -150 from income tax
      3, 7 --> lands on virginia avenue

player 1

      1,1 --> purchase tennesse
      2,2 --> chance (go to new york), purchase new york
      purchase 3, 3, 4 houses (costs 1000)

player 2

      1,1 -- lands on st. james, pay -550
      1,2 -- lands on new york avenue, pay -800

      GAME OVER

shit, this is a hard game...have spent the past half hour going for sub-seven moves...anyway

</comment><comment><USER15> If you can enumerate all the rules, properties, cards, etc., it seems to me the shortest game problem can be solved with dynamic programming. :)

</comment><comment><USER16> Why buy Park Place?

<comment><USER5> You have to own all of one color before you can put houses/hotels on them.

<comment><USER16> Oh yeah! It's been a while since I've played.</comment></comment></comment>