You must learn JavaScript  - <AUTHOR> http://thenerdary.net/articles/entry/you_must_learn_javascript <comment><USER2> JavaScript isn't really important for non-web development. I used to program video games for hand held consoles and JavaScript was the last thing on my mind.

Okay, maybe I was working for the unmentioned 1% (and for what it's worth, the company I currently work for uses JavaScript). And really, it's not a bad idea to learn JavaScript - it's pretty ubiquitous and chances are you will work for a company that uses it at some point in your career. But honestly, I'm getting a little sick of all these articles that seem to forget that there is more to programming than web apps.

Edited to remove snarkiness.

<comment><USER3> Want to make a bet that we'll see JavaScript used to script a game within the next 5 years? I'd bet money that we will.

<comment><USER4> Don't know what you mean by this comment. There already are plenty of games written exclusively in Javascript. I've written a couple myself. Even if you exclude html5/websockets, it's entirely possible to write a server/client game, even a complex one, just with AJAX (Asynchronous JAVASCRIPT And Xml). And that's not even counting the tons of singleplayer games, hell look at the JS1k and JS10k contests, most if not all of the entries were games.

Edit: or was that sarcasm?

<comment><USER5> He's probably talking about embedding a JavaScript engine within a game to script the lower-level (usually C/C++) game engine, a role that is currently often filled by Lua: [http://en.wikipedia.org/wiki/Lua_(programming_language)#Vide...](http://en.wikipedia.org/wiki/Lua_\(programming_language\)#Video_games)

I wouldn't be surprised if this has been done too, but if it has it's not as popular as Lua.

<comment><USER3> Yep, exactly. I expect that as node.js rises in popularity in general, JavaScript's use as an embedded game scripting language will rise (possibly at the expense of Lua and Python).

Actually now that I write this, I wonder about the possibility of JavaScript game scripting combined with something capability-aware like Caja for hosted game mods. Could be an interesting area to explore.

<comment><USER6> There is a robust implementation of JavaScript for the JVM (Rhino), part of which even ships with Java 6, so scripting a Java-based game seems a straightforward step. On .NET, JScript similarly seems to be an almost first- class citizen (though, unlike Rhino, I've never used it).

</comment></comment></comment></comment></comment></comment><comment><USER7> I _very reluctantly_ conceded this point a few years ago, but in a slightly different way. I've been doing JavaScript-as-a-kludge-for-whatever-server- side-framework-I-happen-to-discover-the-limitations-of for a while. I'm discovering that the complexity of every browser's quirks means I'm going to have to do more than just "learn it". And therein lies the problem.

JavaScript isn't an awful language (all languages have their pluses and minuses and developers are so touchy on this subject, I don't even want to broach it). It's the sheer number of platforms (browser/hardware/OS combinations) that make JavaScript painful to learn properly. Every browser on every device must perform adequately. It's not a matter of supporting Windows or MacOS, it's every variant of RIM device, i* device, every browser on Windows Mobile taking into account the performance/memory footprint (to a lesser extent anymore), and devices with browser variants running on Android.

For the sake of my current set of projects -- requiring reasonable compatibility across platforms, but not a universally good user experience on all, learning jQuery became a necessity. Though I'd prefer to not be framework dependent, I've found that understanding how to use jQuery has also improved my understanding of the various quirky implementations of JavaScript in general.

I have no doubt that future projects will require a good user experience on most platforms. Does anyone have any suggestions regarding good, comprehensive resources in this area? The blog post mentions several online resources for folks wishing to learn/understand the language (some of which I haven't used before), but I'm wondering if there are particularly excellent tools beyond that (IDEs, good debuggers beyond Firebug) or anything else out there that can assist in identifying code that _won't work_ , or _won't work well_ in cross platform scenarios (for free or not).

<comment><USER8> I have found that between firebug and chrome you can generally nail down most bugs. What one does not catch the other does. IE is a whole different beast you have to have visual studio to do any decent level of debugging and it is still painfull. That said sticking to a toolkit eliminates a good deal of the cross platform cross browser issues. 9 times out of 10 when we do have an issue it is css rather than javascript hat bites us. We use Dojo or jQuery for projects depending on size and both are good at smoothing out the inconsistancies as long as you color in the lines.

<comment><USER9> IE developer toolbar really helps with JavaScript and CSS debugging. It believe it is built into IE 8. [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=...](http://www.microsoft.com/downloads/en/details.aspx?FamilyID=95e06cbe-4940-4218-b75d-b8856fced535)

<comment><USER10> It's pretty poor: You can't even inspect the global scope without being stopped on a breakpoint.

<comment><USER8> Yep, I have to agree the only way to half way decently debug IE is with VS and that is still not as pleasurable as Firebug or Chrome's debugger.

</comment></comment></comment></comment></comment><comment><USER11> "If you asked me 3 years ago what language you should learn I would've said Ruby. If you asked me 6 years ago, it was PHP."

You should have concluded that you're not the best person to give advice on what programming language a person should learn. Anyway, the right answer is C++, and the rest will follow.

<comment><USER12> Everyone knows the best language is Modula-2...

</comment></comment><comment><USER13> I agree that JavaScript is a very good thing to learn, but it seems odd that the article doesn't even mention server-side JS. Yes, jQuery is wonderful, but a large share of the things that are getting people excited in the JS community lately revolve around Node, Socket.io, and other attempts to break JavaScript out of its DOM playground.

Criticism aside, it's good to see articles like this. There are more subtleties to JS than a lot of people realize. Instead of getting frustrated and blaming the language when it doesn't behave like [insert favorite language here], one should take the time to study its fundamentals.

<comment><USER14> To be honest, that was implied. I only used client side as the beginning point because it's the one with the least amount of fuss to setup and the quickest reward. It was trying to be encouraging and encourage core JavaScript education.

You should know that the server side technologies are a big piece of the inspiration for writing this. I'm sorry I didn't convey that correctly.

</comment></comment><comment><USER15> While we're on the subject, why is JavaScript the only language available for the browser? I can run tons of languages from the command line since they all follow the shebang (#!) convention. Why can't I run Python or Ruby with the <script> tag?

It seems like any language that had appropriate DOM bindings should be able to run so long as the user's browser has the appropriate interpreter. (Kind of like a plugin, but for embedded interpreted languages.) For example:

<script language="Python" version="2.5+" downloadfrom="<http://www.python.org/dompython> ">

Is this just too much to ask?!

<comment><USER16> Although you can compile the syntax of Python or Ruby into JavaScript fairly easily, the semantics don't match up very well.

You can run <script type="text/coffeescript"> today. All of the interactive bits on CoffeeScript.org are implemented with it -- and here's an example of a site that uses it for something a little more creative (View Source):

<http://thelincolnshirepoacher.com/>

<comment><USER17> Not to mention that coffescript will work on any javascript runtime, not only browsers. It works on rhino, on node, for scripting Qt, and anywhere you can run js.

</comment></comment></comment><comment><USER18> Since 2005 JavaScript has become the underground Lingua Franca of Internet.

And now the underground is reaching the surface, JavaScript isn't that slow anymore.

At this point, I see no solution to escape it. I agree, unfortunately, you _must_ use JavaScript. Or die in obscurity (that later one is a little bit an exageration).

It simply "makes sense" to have the client do as much of the job as possible so that the server does as little as possible.

<comment><USER19> Why does it make sense to have the client do as much as possible so the server does as little as possible?

<comment><USER20> I could think of a couple reasons:

* bandwidth bill.

* rich interactions without back-and-forth server trips.

* What's on client-side can technically be saved on client-side. Thus, making distributed setup possible. And that contributes to lower bandwidth bill.

* client hardware is no longer wimpy, why not use all those CPU cycles on users' laptop/iphone/ipad/android/etc.

</comment></comment></comment><comment><USER21> Back in the heyday of Netscape, I did JavaScript client-side development as part of web development. It was often frustrating work.

Recently I began reading Crockford's "JavaScript: The Good Parts". I must admit that, as I make my way through the book, I find myself shaking my head in amazement at the idiosyncracies and weaknesses remaining in the language. It was a clumsy language then and remains one now. But it's the only show in town where the browser is concerned.

Crockford claims that, by restricting oneself to a subset of JavaScript (i.e., the "Good Parts" of the title), one can do what is necessary. He writes also about the bad and awful parts of JavaScript. I am thankful that Crockford had the skill to discern signal where I saw noise, and the patience to carry out and publish his reorganization.

But reading about JavaScript is still good for laughs!

<comment><USER5> It's true that it's easy to write very bad JavaScript when you're first starting out, but I rarely run into those problems any more now that I've learned which corners of the language to avoid.

I don't always agree with Crockford's decisions on what's good and bad, but overall he's right, and that's why it's important to use a book like "The Good Parts" when you're learning it. That said, I always recommend "JavaScript: The Definitive Guide" as well.

</comment></comment><comment><USER22> "Do not pass go. Do not collect 200 dollars."

This isn't a game, there are no hard and fast rules. You can be successful in this world as a highschool dropout and you can live in abject poverty with a PhD in economics.

Learn JavaScript, or don't. In about a year, you'll be able to do Python and Ruby in the browser. I'm pretty sure there are JavaScript libraries that will do a conversion for you right now, but Mozilla is pushing to have native support for it anyway. I mean, what was the point of having the DOM if you weren't ever going to access it from anything but JavaScript? You can do C# and VB in the browser right now, too (SilverLight).

But really, learn every language. There is no "killer language" to learn. You should be learning them all. And once you get 10 or so under your belt, the others come with little effort. Languages aren't special. They're mostly all the same.

edit: and if you thought 6 years ago that PHP was the hot language and 3 years ago Ruby was the hot language, you have only been paying attention to your little corner of the world and need to get out more.

<comment><USER23> "In about a year, you'll be able to do Python and Ruby in the browser."

I've been hoping for something like this. But I don't see any indication that it's going to be a reality any time soon. Did you see this somewhere, or is it just wishful thinking?

Also, even if it comes to _a_ browser, how long until it's in place on _all_ mainstream browsers? (I'm looking at you, IE)

<comment><USER24> <http://visitmix.com/labs/gestalt/>

and a demo in ie9 - [http://blogs.msdn.com/b/nickhodge/archive/2010/06/29/having-...](http://blogs.msdn.com/b/nickhodge/archive/2010/06/29/having- fun-with-html5-script-python-amp-svg.aspx)

<comment><USER23> Yeah, I don't see any signs of impending mainstream (cross-browser) acceptance of NativeClient any time soon.

Gestalt is not a viable solution in my opinion, as it rides on top of Silverlight.

</comment></comment></comment></comment><comment><USER25> I'm surprised nobody's mentioned Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.

[http://www.codinghorror.com/blog/2007/07/the-principle-of- le...](http://www.codinghorror.com/blog/2007/07/the-principle-of-least- power.html)

</comment><comment><USER26> I vehemently disagree with the message of the post. It's unnecessary to suggest that anybody must learn anything, let alone JavaScript in the browser. Plenty of technologies exist that abstract away the need to know JavaScript and allow a developer to focus solely on their application rather than the underlying technologies that allow their application to run on a target platform (note, I'm a co-founder of one such technology, <http://www.noloh.com>).

Similarly, I wouldn't demand that anyone learn assembly or C. While it can be useful in certain situations to have that knowledge it's most definitely not necessary. It's perfectly acceptable to learn and use a higher level language, whether it's NOLOH or one of many other tools and languages that generate the necessary JavaScript or other underlying code. This has the benefits of freeing the developer up to concentrate on their application, while allowing the producers of such tools to worry about the numerous implementation details regarding the many different target platforms. This also has the benefit of allowing for easier porting to non JavaScript platforms.

Clearly if you're somewhat religious about having to know and being able to reproduce all the underlying architecture that runs your application then you must learn JavaScript, but for many others, using a language they know, or learning a higher level language can fully allow them to focus on their applications is ideal.

There also exists a middle ground, for example in the case of NOLOH, if the developer knows some of the basics of JavaScript they can create, or wrap existing 3rd party JavaScript widgets or modules, but extensive knowledge of JavaScript is not necessary, and the truth of the matter is that the vast majority of developers are not of that type, but rather looks to use an existing module created by someone of that type.

Thus, I would argue that if you're a developer of a particular type, either one that's religious, or one that plans to create certain types of client modules or wrap/integrate client modules with little to no API, then you must learn JavaScript, but for the vast majority I believe it's becoming increasingly less necessary.

<comment><USER27> I think its becoming increasingly less necessary to learn something else. I think javascript is, after a decade or so, finally coming into its own. I agree that one should use a library that lets someone else deal with the inevitable bullshit of browser compatibility. The question is then, "what language should I use"? I used GWT for example, since I know Java, and I assume there are people who will find noloh easy to pick up because they already know the language. However, javascript _is_ a high level language, so references to assembly and C are straw men. Noloh and GWT add yet another layer of abstraction on top of an already complex system. They offer little advantage beyond familiarity, and prevent comprehension of the system as it really is.

<comment><USER26> _...references to assembly and C are straw men._

Referencing C and assembly are not straw men, in the context of the web and the browser they serve equivalent purposes.

 _They offer little advantage beyond familiarity, and prevent comprehension of the system as it really is_

Rather than respond with a long post, there are significant advantages to using something like NOLOH instead of JavaScript directly. Rather than going into it detail here, I will merely point to 2 issues of php|architect that go in-depth into the many significant advantages you gain, similarly the noloh.com website goes into some of the advantages in the 3 read-more home blocks:

NOLOH: The Comprehensive Framework - <http://www.phparch.com/magazine/2010/may/>

Lightweight, On-demand, and Beyond - <http://www.phparch.com/magazine/2010/november/>

<comment><USER27> Assembly and C are low level languages. Javascript is high level language. The claim appears to be based on the fact that it is the lowest level available in the browser as if this somehow makes it comparable to assembly language, the lowest language available on computers. It is a straw man argument. Saying that they server "equivalent" purposes is bollocks. Using your flawed logic, one could say that because javascript is also the _highest_ level language supported natively by all browsers that it therefor serves the same purpose as HAL in 2001.

The fact that various companies have sprung up that can take a language and generate javascript from it doesn't make javascript comparable to assembly.

Normally one takes a high level language and compiles it to a lower level language. However, it is not the case that simply compiling one language into another automatically dictates that one is higher than the other. In this case, it is done because javascript is the only language available, and some people don't want to learn it. I suspect that most people are put off learning javascript because the first time they tried it it was a PITA. Especially, it didnt do the same thing in IE as it did in Chrome. So people wrote frameworks like GWT and NOLOH so they could use languages that were familiar to them. I understand why: its easier to solve one unknown at a time. Presented with two problems: a) I don't know javascript and b) browsers are shitty, people decided to tackle problem (b) and ignore problem (a) by writing libraries in their familiar language. Ironically they probably now know more about javascript than anyone else.

I'm opting to deal with problem (a) and solve problem (b) by using jQuery. YMMV.

As for the advantages of something like NOLOH, yes, sure there are many advantages to using what is essentially big enough to be called middleware. However I suggest that the advantages initially presented by its ease of use will be quickly outweighed by all the things it can't do, or that it demands you do "its way". Perhaps NOLOH is the worlds first middleware that doesnt have this problem, or perhaps its the 2010 version of MFC. The problem is, by the time you find out its the latter, its too late. The risk of that discovery is greater than the learning curve of javascript and modern frameworks. Unlike assembly language.

<comment><USER26> I'm too tired to properly respond to this. It's clear that you don't know what NOLOH is, or the advantages it provides. By it's nature, it's not equivalent to GWT, and provides significant advantages over doing web development in most other frameworks or languages. The fact that it abstracts away JavaScript is only one of it's features, and as mentioned previously you can still use JavaScript. Furthermore, if you read the "Lightweight, On-demand, and Beyond" article I linked you to you would've seen how it's not middleware in the traditional sense and actually produces lightweight and on-demand output for target devices that is significantly more optimized and targeted than one could ever hope to do manually. Either way it's irrelevant as this just sidetracks from the real topic of discussion in that it's not necessary to learn or use JavaScript and that in most development cases it's advantageous and faster not to.

There was no reason for you to bundle NOLOH negatively in your response without actually taking a hard look at it. From your initial statements it's clear that you don't fully substantiate your arguments, but rather phrase things for most impact, which just makes it very difficult to have a meaningful conversation.

Frankly, I'm sick of having these type of discussions on Hacker News, I expect a higher class of individual here, but over the years I've clearly forgotten to lower my expectations. I feel like I'm on Fox news dealing with an aggressive host who isn't listening to what I'm saying and just lists false associations for psychological deception.

I'm very comfortable with my history and experience and can't be bullied into thinking otherwise. Your reasoning of the history behind why people wrote frameworks is flawed, but frankly, it doesn't matter. It doesn't matter what I say, or what I link to, or what arguments I present. You have your viewpoint, which is okay. It's clear from the personality type you expose in your response that any further response would fall on deaf ears.

An aside, NOLOH has been around in some form since 2005, pre-AJAX craze, so we can definitely appreciate the evolution of the web.

<comment><USER28> I would have liked to have read both articles you linked to, but in fact, all I got were abstracts pointing to a magazine that costs $5.00 to read. Perhaps it might have been better to link to the actual website: <http://www.noloh.com/>

<comment><USER26> I'm sorry, I wish php|architect would expose their articles without a pay wall, or subscription. They have an exclusivity period of 3 months.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> This is "you must learn JavaScript in the browser," isn't it? JavaScript I don't mind. Programming in the browser, ugh.

<comment><USER8> The point of the article was if you are doing web you have to do JavaScript a conclusion I agree with. JavaScript and Browser based apps is the web of the future when talking about apps. Most new development of web applications are taking place not with struts or ASP or PHP but with JavaScript relegation the others to providing REST services to the browser based app.

Personally I could not be happier, I hated the old page POST model for anything other than web magazines. It was painful to gyrate back to the server for every state change. I agree with the authors conclusion JavaScript is rapidly becoming the default language of the web UI and not having experience in it will put you at a disadvantage if you plan to do web UI work.

The interesting part that I see is just as the role of the designer and developer defined over the last 15 years to become two independent roles we are now seeing the roles of UX developer and systems developer diverge. I know a good deal of people on each side of the fence who are happy about that fact.

I see Java and C# guy that are happy that their role stops at the REST service interface. And I see front end guys who are ecstatic about not having to worry about contorting objects into relational structures and integrating with queues and legacy systems. I see the new web apps as a maturing of the art.

</comment></comment><comment><USER30> I've spent considerable time becoming an "expert" in other non-web languages. I'm curious about others' experiences with projects like Parenscript ( <http://common-lisp.net/project/parenscript/> ):

"Parenscript is a translator from an extended subset of Common Lisp to JavaScript. Parenscript code can run almost identically on both the browser (as JavaScript) and server (as Common Lisp)."

Does anyone have experience with such tools? How about suggestions for similar tools in Python / Ruby?

</comment><comment><USER31> _Knowing JavaScript well is probably one of the most challenging and rewarding things you can do as a programmer_

Do others agree with this (the importance of learning JavaScript _the language_ well)?

As someone just learning JS and jQuery and just starting out with web development, JavaScript seems like a rather boring language that is strangely ill-suited to manipulating the DOM.

If JavaScript was jquery then I could see myself thinking of it as a really cool language worth exploring beyond "how can I do x".

<comment><USER32> I don't think your question makes much sense - you aren't going to get very far if you can't or won't distinguish between a language and its common libraries.

One thing I will concede is that using vanilla javascript to manipulate the DOM is very, very painful, which is exactly why libraries like prototype and jquery exist - to help make this less tedious and to make your experience, as a developer, more pleasurable and faster (as well as for your code to be DRYer, but that's just an added bonus, I'd say).

When you say "if javascript (were) jquery...", I can't help but think you don't understand jQuery. It's a library for javascript. Would you say "If Ruby were Rails then ..." ? No, you wouldn't, because Ruby on Rails is built on top of the language, just as jQuery is built on top of javascript.

Sit down sometime and read the source of jQuery and you will very quickly see that javascript is a really cool language that you can do cool stuff in. If jQuery doesn't float your boat, then maybe you should look at underscore.js - there is a very good annotation for it linked off their website.

<comment><USER31> I understand the concept of a library. What I don't understand is: JavaScript was designed as a domain-specific language, yet performing the most common tasks that it was designed for (manipulating the DOM)is, as you say, "very, very painful".

If you consider a language's standard library to be part of the language, then it seems like poor language design not to build-in functionality that makes manipulating the DOM at least as easy as jQuery makes it.

Thanks for the response, I will certainly peruse the jQuery source.

</comment></comment></comment><comment><USER33> I second this. Learning JS really opened my eyes to the web and made me appreciate it more.

There's a reason why it's tied with RoR as the top language on Github: <https://github.com/languages>

</comment><comment><USER34> if one agrees with the idea that js will be everywhere, why learn a skill that will be commodity? there will be lots of people you can hire to do it for you.

real world example. say my html is sloppy. but I'm really good at core components (python, django, machine learning bits). So I can just hire a less skilled person off oDesk and pay them $10 an hour to review my HTML code, while I spend time on more important things.

</comment><comment><USER35> _Frameworks are nice. They are helpful. If anyone scoffs at you for using a framework while you're learning, don't listen to them._

I'd take this a step further. If you are doing heavy javascript development always use a framework like mootools or jquery. They remove over 95% of the browser compatibility issues that you will run into. (I personally like mootools)

</comment><comment><USER36> I know python, SQL and actionscript and learning JS now.I totally agree to knowing the importance of JavaScript. even if its just for the sheer joy to have the ability to write little addons for browsers, and _customize_ the internet little for yourself (and potentially for others).

</comment><comment><USER37> End-to-end web programming in JavaScript using NodeJS is breathtaking to see in action.

</comment><comment><USER38> The truth value of "You must learn JavaScript" is true if and only if "You must learn HTML" is true.

</comment><comment><USER39> Also make sure you learn js. Don't end up learning something like jquery.

</comment><comment><USER27> Totally agree. Started with assembly language, then C, C++, C#, Java. I'd been dreading doing anything in the browser, and was playing with GWT and other esoteric things. But I'm finally getting my head around javascript and its just a heck of a lot of reward for very little effort. Its fun!

</comment><comment><USER40> Also, I have just bought the book "JavaScript : The Good Parts" from www.flipkart.com(India) to read it, but really getting no time to read.</comment>


Welcome to Your Bland New World - <AUTHOR> https://www.bloomberg.com/opinion/articles/2020-09-07/welcome-to-your-bland-new-world-of-consumer-capitalism <comment><USER2> _But what makes a brand a bland is duality: claiming simultaneously to be unique in product, groundbreaking in purpose, and singular in delivery, while slavishly obeying an identikit formula of business model, look and feel, and tone of voice._

...

 _If there's a sense that VC-backed blands target the woes of VC-bros, it's because many do. As Chamath Palihapitiya noted:

"The VC community is an increasingly predictable and lookalike bunch that just seems to follow each other around from one trivial idea to another."

This may explain the blands clustering around, for instance, hipster baby gear (Bloom, Lalo, Bumbleride), personalized supplements (Baze, Thyrve, Care/of), and valet parking (Oobeo, Luxe, SpotHero). And it certainly explains the blands that help other blands with funding (Expa), accounting (Bench), retail (Leap), returns (Loop), consumer insights (Perksy) and "high-volume hiring for the hourly workforce" (Fountain)._

Fascinating article</comment>


Ask HN: An academic web app idea, anyone interested? - <AUTHOR>

Problem:
As an academic I am overwhelmed by the number of articles that are published in the relevant journals every week and there is no "efficient" way to filter out the irrelevant ones and keep up with the on going progress in my field of research.
Solution:
All good journals have RSS feeds and in the context of academic interests you can "easily" detect relevant papers based on author, keywords and affiliation (one might eventually add some social feature as well, but it definitely would work based on individual ratings without any social features).
So a user would select some journals and starts by staring the relevant papers or authors or ...
After a while there would be enough evidence accumulated to support the classification of new papers into relevant or irrelevant groups.
Also there would be room for all sorts of alerts and sharing and commenting and ...
I (and I am sure many others) have had this idea for a long time but I am a currently not a position to do this myself and other people who attempted to do it had done it wrong, I was wondering if there is anyone who want to do this (I would be happy to help in design or even implementation or I'd be also happy if anyone gets the idea and build their own tool without getting me involved).
Ali <comment><USER2> Hey Ali and others who are interested,

I've been working towards launching a startup called Bibdex (<http://www.bibdex.com>) for a little while now. I want to help all research- oriented fields to sift through the large number of publications.

It's amazing how many articles and manuscripts are published every day, not to mention blog posts and social commentary. Unlike the average person's surfing habits online, professionals in these fields are required to be on top of the available research, but most of the available research is not very good. That seems like a problem worth solving, and a potentially profitable one if industrial and institutional researchers are willing to pay to save their time and publish higher quality research.

I'm curious. Have you seen <http://www.mendeley.com> yet? If you have, why doesn't that solve the problem for you?

\-- Sunir, Founder & Developer, Bibdex

P.S. I'm interested in having other people join as co-founders.

<comment><USER3> Sunir,

If you are not heavily invested in the name "Bibdex" for your company, you might want to look at changing the name because "BibDesk" (<http://bibdesk.sourceforge.net/>) already exists as an usable product organizing publications. Specifically, the problem is that I would type/write/search for "bibdesk" when I hear "bibdex" and be rewarded by a product in the same market.

-J

<comment><USER2> Yes, thanks for the feedback. As with all things, good names are in short supply. I've learnt that it's a very common thing for grad students to build citation management software, and I fell into that trap as well.

</comment></comment></comment><comment><USER4> I am develoing an opensource webapp with similar requirements (noticing relevant parliament/government news in Lithuania).

It can index more than RSS feeds (you know, government websites ;-)) and uses Lucene/Solr for searching documents.

Our website: <http://kaveikiavaldzia.lt/> Source code: <http://github.com/emilis/PolicyFeed>

I would gladly answer any questions.

</comment><comment><USER5> It sounds to me like maybe you should go one further than just creating a superb academic RSS reader, and instead try to create an online community for academics -- a la reddit for PhDs.

Instead of simply indexing links to other sites, I think it would make sense to provide the necessary tools for academics to _easily_ host papers via this service. This way you wouldn't need to rely on typically paywalled online academic journals, and you wouldn't have to wait for papers to trickle down from Nature, etc.

<comment><USER6> Yep - do some crowd sourcing like HN for academics.

<comment><AUTHOR> You all know, things like HN does not happen that often, specially in a world ruled by old professors. To build an HN for academics, first you need to be field specific (really narrowly specific!) and you need to be well known or supported in that community (this would make you an old professor!)

<comment><USER7> Don't start with the professors - start at the bottom and work up. Find a large-ish existing community of PhD students (e.g. all students at a certain lab) and build up from there.

</comment></comment></comment></comment><comment><USER8> This needs to be done well, I agree. Everybody I know in academia has had this idea, so there is demand. However, journals are far too late. In many disciplines everything is shared a year in advance via working papers. These are often posted on authors webpages or on conference pages before anywhere with a formal rss feed. I want to subscribe to specific authors and be confident I get things first.

This will be hard to do well and while the CPM might be great for some categories, it's a niche product. It would be a great service though.

<comment><AUTHOR> not all fields are like that and not in all areas you want to be on the bleeding edge. For many purposes keeping up to date at journal paper level is more than enough.

<comment><USER8> True, but that isn't really that hard to do now. I can basically keep up to date by subscribing to top journals in my field.

</comment></comment></comment><comment><USER9> Well here is the rub of it. Are you willing to pay a monthly subscription fee? How much?

<comment><USER10> if you could convince labs themselves to pay for it, it'd be a money maker, although this may require more direct marketing at first. many academic institutions hold subscriptions/licenses in the $10k range.

<comment><AUTHOR> this would actually boost education and research performance and I am sure with the correct product and correct marketing could make good (!?) money.

<comment><USER11> I wouldn't bet on it. Making money in the academic institutional licensing world is tough, especially if you are marketing something that doesn't impact bottom-line figures for people who are concerned. Arguably this use case is as far removed from bottom line value adds as possible. In an optimal world you have a killer app that reduces University lead COA by 30% or something, but this would have to grow organically (so a lot of direct sales approaches are no good).

A friend of mine has been doing a lot of direct sales (quite successfully I might add) to institutions, but the reason he's making money is that his target audience is already doing a lot of number crunching, they have big budgets, and he's directly saving them cash. Something like this is probably a "nice to have" feature that would be near impossible to convince the school to pay for, to speak nothing of a worthy price tag (greater than $2k/yr for instance).

I sounds like a fun project, but I would not expect it to pay much, if anything. And an ad model's monthly revenue would be a joke.

</comment></comment></comment></comment><comment><USER12> I've looked into this problem briefly myself, and as a PhD student who runs an academically oriented start-up/web app, it's something I'd be very interested in seeing happen. In principle it should be quite easy to get working, at least for a few select journals (in my case it's the arXiv I'm interest in).

However, the one stumbling block that I see is an easy and effective way to extract citations. An important filter for whether a paper is relevant to me would be whether it cites some seminal papers in my field. There are services out there which index citations (SPIRES in my field[1]) but there is always a bit of a delay before they are updated. Using them would ruin the real-time nature of the service.

The only way I see around that is to extract the citations from the papers in the journal feed as they come in. But now the service has gone from a weekend project to a large undertaking that would require a substantial infrastructure to work.

I'll see how this thread continues to evolve, but I'd like to have further discussions about making this a reality.

[1] <http://www.slac.stanford.edu/spires/>

</comment><comment><USER13> Whatever you do, don't reinvent the wheel. Build on top of a service like <http://superfeedr.com/> or <http://www.postrank.com/>

</comment><comment><AUTHOR> Wow! I am speechless at the moment!

Thanks for all the comments and suggestions.

Go on guys!

I am checking the websites and products mentioned.

At least now we know for sure that everybody is having this problem AND there is no popular solution to this.

By the way, I am in Brain research.

<http://www.yourxiv.com> at least explains the problem and promises a solution but it only covers Physicists.

<http://www.academia.edu/> seems to cover everyone (I am giving it a try right now) but they are overdoing the social part. (too much facebook!)

<http://pubget.com/> is not addressing this problem (as far as I understand)

<http://techlens.cs.umn.edu/> TechLens also addresses this problem but it seems not to cover every body (all research areas).

Many other things mentioned are not related or are addressing different problems.

Still reading your comments, Ali

<comment><USER14> Techlens does not cover preprints!

</comment></comment><comment><USER15> Isn't that something that Mendeley is trying to do? I would be interested in seeing something like this and helping when and where needed.

<comment><USER10> I've used Mendeley (and use papers.app when I'm on a mac) and it has helped me more with organizing papers than in filtering them. What you see as an academic in the morning is a 100 papers staring you in the face and you fall back on pattern recognition at points if you don't have more than a few minutes. Whose names and institutions do you recognize? Which titles seem most similar to your line of research? But you can miss a lot of interesting things and not view things tangentially related, but possibly useful as often. Journal clubs attempt to mediate this by having a group of people each pick an article and bring it to the table but crowdsourcing this and having cross lab "bringing to the table" would be very useful.

<comment><USER16> I started JournalFire so journal clubs could post what they were reading online. You can follow clubs or individuals, and the articles they're reading or discussing will show up in your feed. Let me know what you think <http://journalfire.com>

<comment><USER17> I'm using it and trying to setup our journal club through it. Nice tool.

</comment></comment></comment></comment><comment><USER10> I've faced the same problem with info overload, even with the new astrophysics subfields introduced by arXiv. I am an active user of papers.app and have used Mendeley in the past; it helps with organizing but filtering is still a challenge.

I've thought about doing something like this for the arXiv, even something as simple as setting up a <http://www.pligg.com/> may be a start; I'm planning to do at least that much for my own lab in the next few months.

I've already got two other startups of my own so I couldn't commit to a larger version of this side project at this point, but ping me if you want to chat about ideas and I could possibly point you to others with more bandwidth. I have experience in iPhone app development, web dev, and machine learning--and of course in startup founding and academia (I've worked in 7 labs doing research, now am a PhD student in astrophysics).

</comment><comment><USER14> Ali,

I have some experience in the process of doing the filtering you are mentioning as I write a blog on compressed sensing (<http://nuit- blanche.blogspot.com/>), a field that spans a wide range of communities that are, often, not talking to each other nor have the same culture.

I don't think Mendeley or any RSS feed services help much as they both target the same dead tree people who are generally about two years behind on the good stuff. Arxiv is good but not all the communities use arxiv either and so it really is a mix of different tools that yield the most results.

I have a high interest in expanding and automating my current processes and would be very much willing to talk to somebody who would want to spend some time on this.

I also agree with one of the posters, how much do you think people would be willing to pay for this service ?

<comment><USER18> I thought you meant you were using compressed sensing powered filters, maybe working on the summaries of papers from an RSS file.

That would be VERY interesting (and - dare I say it - probably impossible)

</comment></comment><comment><USER19> <http://academia.edu/>

<comment><USER20> Was going to post this too. Seems designed precisely for what the OP wants.

<comment><AUTHOR> Yes, it claims so, but so far I can't see how it does it. It is full of social feature but seems to lack the intelligent filtering thing we need.

</comment></comment></comment><comment><USER21> Looks like what you want is a version of this: <http://techlens.cs.umn.edu/tl3/>

Read an article about Techlens on ACM here: [http://portal.acm.org/citation.cfm?id=1297268&dl=GUIDE&#...

<comment><USER22> The ACM abstract gave a good overview of what the site was supposed to do, but when I went to the actual site, it was horriblyi designed with no clear description of what the service was supposed to do.

Maybe if the OP Gave a very well designed application using existing implementations it would take off.

</comment></comment><comment><USER23> There is definitely a need for this.

@kaelswanson had this idea 4 years ago (and I'm sure many others)

BUILD IT

</comment><comment><USER24> Have you heard of PubGet?

<http://www.PubGet.com>

<comment><USER2> I haven't heard of it yet. Have you been using it? What do you like / dislike about it?

</comment></comment><comment><USER25> I think you could construct this in a day using Yahoo Pipes. <http://pipes.yahoo.com/pipes/> It doesn't require programming skills.

</comment><comment><USER7> Mendeley has been mentioned a few times already. I'll just point out that it has some kind of API. I have no idea what it enables, I've been meaning to look into it, but it might be useful in terms of getting citation information for new papers, etc. In other words you might be able to build the system you want on top of Mendeley.

<comment><USER26> Hi alimoeeny, et al., I'm the community liaison for Mendeley and would like to make myself available for any questions you may have if you decide to start building with the Mendeley API. You can indeed get citation information from it, as well as tags for finding related research, readership, and article metadata. The developers portal is <http://dev.mendeley.com>.

Additionally, on article pages on the main site, for example, [http://www.mendeley.com/research- papers/search/#0/abstract:r...](http://www.mendeley.com/research- papers/search/#0/abstract:recommender+systems+discipline:computer-and- information-science) you can see a "more like this" link which finds related research.

The combination of article recommendations and collaborative filtering improves discovery, so if you want to build something, I would of course suggest that Mendeley is a good place to start.

</comment></comment><comment><USER27> Check out <http://www.yourxiv.com>

</comment><comment><USER28> Have you had a look at PhilPapers: <http://philpapers.org/> ? It does exactly what you propose, but only for philosophy.

</comment><comment><USER29> This problem isn't unique to academia. If I were you I'd create a few Pipes (Yahoo Pipes) and then use Google Reader as a front-end that supports sharing and commenting.

<comment><AUTHOR> I agree I am surprised why Google scholar has not made such thing (maybe as a Google Reader feature).

<comment><USER18> What exactly is RSS feeds from Google Scholar missing? (eg [http://nsaunders.wordpress.com/2010/06/17/create-your-own- go...](http://nsaunders.wordpress.com/2010/06/17/create-your-own-google- scholar-rss-feed/))

</comment></comment></comment><comment><USER30> There is one website working on these lines <http://www.NanoInfoline.com/>

</comment><comment><USER31> Don't most professors pay students to do this?

</comment><comment><USER32> Have you tried Google Scholar Alerts? Works well for me. If that doesn't suit, consider it as a baseline for functionality.

<comment><AUTHOR> I actually use Pubmed to get notifications on people or keywords that I am interested in. And I should confess that it is not that bad (but it could be much much better)

</comment></comment><comment><USER33> <http://journalfire.com/>

</comment><comment><USER34> i want something like this. :-)

</comment><comment><USER35> I'll volunteer 10-15 hours a week to build a recommendation engine like this!

I too have wanted a search-engine/feed-reader, no-holds-barred web-experiment that does exactly what you describe. I'm not an academic, but I have fairly deep & broad reading interests across mathematics, physics, economics, history, etc. Ok, make that broad interests in basically every subject that is truly interesting. I'm the guy who pretty much reads journal articles for fun because newspapers, magazines, blogs, and most books suck and just aren't smart enough.

But it's more work for me to find reading material I like and want to learn from than it is for me to read it.

I could certainly hack around on something like this, as I too have been wanting to _scratch this itch_ for a many years. I've got the time, since I'm currently un(der)-employed(ahh, gotta love contracting) and bored, but my first two roadblocks would be:

1) instant non-starter: I no longer have any university library proxy account to use to login and scrape the journals, abstracts, authors, citations, etc. I personally could care less about copyrights on academic papers. _I justify my position via jury nullification using a jury of one—me._ And I don't give a second thought to doing whatever dirty work it takes for building a system of scraping scripts to pull all info about every paper from every journal out there.

2) If the beta site gets even the smallest amount of traffic, I will be crushed by EC2 server and bandwidth bills.

I realize a bajillion other folks probably want to build the exact same thing, and I realize it's stupid to build your own when someone else might already be well along the way and just needs some help.

Anyone need a Linux/Ruby/SQL/Sysadmin/Wear-All-Hats-Get-Shit-Done developer? I'm in LA and on #freenode. Just say the word!</comment>


Protein synthesis: an epic on the cellular level (video) - <AUTHOR> http://www.youtube.com/watch?v=u9dhO0iCLww

<comment><AUTHOR> Please flag my submission if you think it is too 'reddit'.</comment>


Martin Fowler's book on DSLs - <AUTHOR> http://martinfowler.com/dslwip/Intro.html

<comment><USER2> apparently if you take smalltalk or a lisp dialect, cut the performance by an order of magnitude, remove most of the really interesting metaprogramming features (leaving pretty much just a crass _eval_ function), and all of the awesome interactivity and incremental development functionality that make systems like Squeak and SLIME such a joy to use, and finish by making it vaguely line-oriented, you get a language that makes people go gaga.

go figure.

<comment><USER3> Right. Now, you have two options:

\- Make snide comments.

\- Figure out why that's so, and what can be done about it.

</comment></comment><comment><USER4> Wohoo! Someone who gets the idea of a state machine framework. Check out my effort at building one of these - datamagi.org. This is quite interesting actually - if you look through the change history at the top of the page you can see I've been using one of Fowler's books as a reference. Previous to seeing this article I had not known of any prior work in this area.

</comment><comment><USER5> Yes, ruby is a good tool for DSL.</comment>


Details about MIDI 2.0 - <AUTHOR> https://www.midi.org/articles-old/details-about-midi-2-0-midi-ci-profiles-and-property-exchange <comment><USER2> This bothers angers me: >To implement MIDI-CI and MIDI 2.0, you need a manufacturers SysEx ID. A SysEx ID by itself is $250 a year

That would be a re-hash of the hobbyist USB VID/PID fiasco. MIDI synthesizers are one of the main non-activities which non-professional people have been doing. So many amateurs and educators whip up MIDI synthesizers in a few hours in a workshop or after work. And that is thanks to MIDI being a dirt-simple, unlicensed standard.

>You will also have access to the MMA Github which has code for MIDI 2.0 to MIDI 1.0 translation (and vis versa)

<comment><AUTHOR> I was just listening to the midi 2.0 webminar from the midi association, and as I understood there are some free sysex and ci id for non profits / hobbists, but if you make money out of it you should register. I guess mainly to prevent ID collisions.

<comment><USER3> It's pure money grabbing. They could just as well avoid collisions by specifying a UUID for the SysEx ID, and then everybody could generate their own independently.

<comment><AUTHOR> I guess you can use the free IDs, and then place the uuid in the stream or packet. Everybody happy.

</comment></comment></comment></comment><comment><USER4> I feel MIDI is severely underutilized outside music. It's a simple, standard protocol that relays switches being turned on/off, and knobs being turned high or low. The only standard alternative that I know about is would be USB HID interface which has its limitations.

What are some cool uses of MIDI you have seen outside music-making?

<comment><USER5> I'm not in that industry, but isn't it also used for controlling stage lights in some cases?

<comment><USER6> MIDI will often be used to trigger the console to change cues which then uses DMX512 to control the lights.

</comment></comment></comment><comment><USER7> I have just started to play around in the world of electronic music and have had my first real exposure to MIDI. I just want to say ... wow. Something like this is so rare. I have pieces of equipment from different decades that can talk to each other using a $2 cable and no computer in between.

As a programmer I'm used to walled gardens and competing standards. MIDI is a breath of fresh air. I hope whatever 2.0 brings can keep this spirit alive.

<comment><USER8> There is MIDI competition, more open and some say better, it just never caught on outside open-source/hacker/maker circles.

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

<comment><USER9> OSC is fantastic in many ways, but it makes for a pretty inefficient (and unnecessary) replacement for the primary use case of MIDI, which is note on/off messages. It's much better suited to some of the other layers that got bolted on top of MIDI, such as MIDI Show Control. For most musical purposes, MIDI v1 is perfectly sufficient, well-documented, optimized, and open (from the standpoint of being free to implement).

OSC absolutely has caught on in a lot of professional applications, just not the ones that MIDI was initially designed to serve. It's huge in the world of theater, for example.

(Background: I wrote the initial OSC implementation for QLab [a theatrical show control application].)

<comment><USER10> My main beef with OSC is that there is no "there" there. It is hyper flexible at the cost of you needing to design your own meta-protocol. Like every single instrument that supports OSC has a different API with a mess of docs you need to read. Doesn't really get me in the mood for making music. The DAW manufacturers had a very hard time creating user interfaces that studio engineers could use to configure OSC, and I think that was a main reason nobody ever used it as a synthesizer control protocol.

<comment><USER9> Very much so. It's a useful layer to build an API on top of, but saying a device speaks OSC is like saying a backend service speaks HTTP.

</comment></comment></comment></comment></comment><comment><USER11> I once had a dream that every new synth, sampler or drum machine I brought into my studio would automatically recognize the local MIDI network, joined it and would pop up as a new device in my Cubase sequencer.

All wireless of course. Like Bluetooth but actually working. A man can dream.

PS: it would also stream multitrack audio over ASIO wireless and expose its inputs and outputs.

<comment><USER12> Also:

\- perfectly synchronised

\- zero latency

This may be hard to realise with lots of devices and wireless connections.

<comment><USER13> > This may be hard to realise with lots of devices and wireless connections.

Assuming that the latency of the wireless connections is at least relatively predictable, you could just introduce a suitable delay like with NTP time syncing, right? Of course, it's possible that the latency will be wildly unpredictable and in that case it's pretty much impossible, but that doesn't have to be the case.

<comment><USER14> In the parent's case this latency includes time from a human key press (piano key). The other cases you mention can be compensated for but of course the human input is non-predictable.

</comment></comment></comment></comment><comment><AUTHOR> I for one expect that MIDI 2.0 helps to boost the RTP MIDI protocol adoption (over ethernet). It has much more speed, longer distances, less latency, proper packet loss recovery (which is not a problem on local networks) and overall much better hardware ecosystem.

Even on WiFi it is useful although latency is very jittery.

Disclaimer: I'm working on a RTP MIDI implementation for linux ([https://github.com/davidmoreno/rtpmidid](https://github.com/davidmoreno/rtpmidid))

<comment><USER15> > Even on WiFi it is useful although latency is very jittery.

Could you elaborate on why Wifi latency jitter would be an issue for MIDI?

From an outsider's perspective and with only a vague knowledge of MIDI, it doesn't seem to be something that should be any more sensitive to latency jitter than other realtime applications like audio/video.

<comment><AUTHOR> Music performance is a synchronized effort, and with very precise timings. If there is lag, everything is just a bit late and a musician can (unconsciously) compensate up to some point. But for example (if my math is correct) 120 bpm, has 8th notes every 250ms.

If drum beat is sometimes, and only sometimes, 100ms later than it should, the result is not nice at all. And it is random jitter.

<comment><USER15> Ok, thanks - I wouldn't have thought 100ms variation would be that noticeable.

<comment><USER16> As an amateur musician, I played with real time synthesis a lot. Latency, and especially jitter in latency is the biggest enemy. 100 ms is an eternity. 5-7 ms is still noticible and anything above 10 ms becomes a nuisance. Some artists, especially drummers, hear 2 ms differences.

And it's quite logical really. A reasonably fast tempo is 180 bpm. Playing sixteenths notes would separate them by 80 millis. Then you have separation in swing style sixteenths, funk (which is often ahead of the pulse by a tiny fraction) and the real scale is around 20 ms. That's comparable to 50 frames per second.

This is also the reason (among others) why orchestras need conductors. The right side would hear the left side 100 millis later due to the speed of sound.

</comment></comment></comment></comment></comment><comment><AUTHOR> As I read it, in brief, it adds much more resolution, and a introspection protocol using bidirectional communication which allows property exchange and profiles.

Both very welcome additions! Finally no stepping on CC and note velocity, and the DAW can really know about the synth / controller capabilities, as it knows already with VSTs.

And keeps MIDI 1.0 compatibility.

<comment><USER17> Now we just wait a decade for any DAW to support it, plus another million years if you're an Ableton Live user...

<comment><USER18> Reaper will probably have it quickly. They update it at least once a month and don't have any need to upsell to the next version or tier.

</comment></comment></comment><comment><USER19> Midi 2 adds some much-needed features (per-note pitch bend, for instance), but what I expect to happen is that the major manufacturers are going to only implement the parts they care about.

I'd kind of like to see MIDI replaced outright with something built on a somewhat different (less piano-centric) abstraction; something more voice- oriented rather than note-oriented. Instead of having some number of fixed pitch notes that you turn on and off and settings that apply to all notes, you have voices that you can control independently (set volume, filter cutoff, control the envelope, disable and enable, and so on). You can do that now with the one-note-per-channel trick or MPE if it's supported, but it's kind of kludgy and only works with synths that are multitimbral to begin with.

</comment><comment><USER20> > Property Exchange uses JSON inside of the System Exclusive messages.

For some reason this made me lol. The idea of cramming some JSON inside a SysEx seems crazy.

Hopefully the timing is actually improved in 2.0. Once you are past "hello world" getting midi gear to sync up has always been a nightmare.

<comment><USER21> One of ESR's relatively recent rants about protocol design is optimizing the right thing vs scaling a protocol for use over long time, so he's a big fan of using JSON in the next generation of NTP.

One quote summarizes a couple thousand words "We should be designing to minimize the cost of human attention."

[http://esr.ibiblio.org/?p=8254](http://esr.ibiblio.org/?p=8254)

when you can run all the world's stratum 1 traffic on a raspberry pi, you shouldn't be optimizing for bw and speed, but for bug-free-ness and security and ease of use. Likewise back when a minimal computer system was a multicard S100 Z80 system minimal midi made sense, but now a days it should be like adhoc wifi with a REST API or something similar.

<comment><USER22> Text is not how we optimize for correctness. I can already see my cheap synth failing on scientific notation oddities, BOM, and other JSON gotchas.

Please read up on langsec.

</comment></comment></comment><comment><USER23> I'm trying to understand the 'bi-directional' part. There used to be a idea of midi out & midi in. So does this mean you only need one cable connected now?

<comment><USER24> It sounds that way - but they also say that connections over 5-pin DIN is/will be MIDI 1.0 only.

</comment></comment><comment><USER25> The future of MIDI is AVB and/or AES67 with OSC

<comment><USER26> You seem to be the only person commenting that gets it. I think that might be because anyone who cares just skipped this press release. Even calling this MIDI 2.0 is a deception. We have MIDI, it's great. The tools that follow exist already and MIDI 2.0 doesn't appear to add any value.

Whatever this hustle is, it can fuck right off in my book.

</comment></comment><comment><USER27> Wow. This took so long to happen that I assumed it had already happened, a decade ago. Early RFCs went out while I was in college.

</comment><comment><USER26> MIDI 2.0 looks like garbage and it barely features what Open Sound Control has been doing forever. I'm interested, but the demos here were made by people that don't make music and suck at hardware, software, blogging, and video presentation.

Whatever this is, I'm hard pressed to care.

</comment><comment> yc-kraln Is the connector still that only DIN+USB-Micro hybrid? It looks like it's expensive and fragile.

<comment><USER28> For backwards compatibility, all MIDI 2.0 features will still work over 5 Pin DIN cable.

<comment><USER29> According to the linked page, 5-pin DIN still only supports traditional MIDI 1.0 and there's no plan to change this currentlyt.

<comment><USER19> ...which means that almost everyone using midi 2.0 between multiple devices will be doing it over USB, which is a shame because very few hardware synthesizers or controllers can act as a USB host.

That's fine if you're connecting everything to a computer, but it's kind of a step backwards from what MIDI used to be, which was an easy way to connect almost any keyboard to almost any synthesizer made in the last three and a half decades or so.

I've wondered if CAN bus would be a good modern-ish alternative to DIN-5 and USB, but I don't know enough about it to say if it has some limitation that's not immediately apparent but which would become a problem. (On the plus side, it's much faster than plain DIN-5 midi, allows longer wires than USB, and it seems to be supported natively on a lot of cheap microcontrollers.)

<comment><USER30> I reckon CAN would be a great alternative. It has inbuilt support for message prioritization, so important stuff like timing sync messages could have higher priority. Also it's differential so long cable runs are not a problem and it has good noise immunity. Oh, and it's a bus so virtually unlimited devices on the same bus, in any topology.

Oh, and also I've always wanted to use my synths in the car!

It would be nice if the protocol of the future was wireless and could support the actual audio as well though, but all that adds extra complexity of course.

</comment></comment></comment></comment></comment><comment><USER31> > 16bit note velocity

For electronic drums I would of much prefered at least 24bit. Volume is by far and away a drum's most expressive dimension, so it will be limited by a 16bit velocity range. Adding velocity curves just masks the problem

Though of course 16bit is orders of magintude better than the current 8bit range

<comment><USER32> > _For electronic drums I would of much prefered at least 24bit. Volume is by > far and away a drum 's most expressive dimension, so it will be limited by a > 16bit velocity range._

It wont be limited at all, real human players have no control as subtle as 256 levels, much less 65K levels... Nobody would even notice anything...

<comment><USER16> Not my experience. The expressive control is exponential, so either you clip on either end of the velocity spectrum, or you get discrete steps at the lower end.

<comment><USER33> I agree with the previous person that 256 levels of amplitude _should_ be sufficient purely when it comes to velocity as long as these levels are spread appropriately (i.e. non-linearly). If the expressive control is exponential, that suggests to me that the data itself should be exponential.

I know literally nothing about drumming but I've no doubt there are plenty of other characteristics of a drum strike than velocity. Such as the mass being applied to the hit (e.g. is it being hit with the weight of the stick alone or is it the drummer's whole arm) or the location of the strike, or the release time.

<comment><USER34> Speaking as a producer who's programmed a lot of natural-sounding drum tracks...

There are plenty of variables other than velocity -- location on the drum head being the prime one, but there are others. Because of this, sampling an acoustic drum kit involves capturing a suitable number of random variations, and the end result is often gigabytes (i.e. hours of content) in size, even though each sampled hit is just a few seconds long. Not having enough variation in your sample set makes the programmed drums sounds unnatural, since excessive repetition doesn't gel with how we experience acoustic drums.

Certain variables are more important than others, though. One notable sound is the 'rim shot' which means striking the drum head and rim simultaneously, which causes all kinds of constructive interference and results in a very powerful sound. It's the holy grail of rock drumming. In drum programming, rim shots are often a separate stack of samples with its own velocity layers, each layer with a set of random variations.

<comment><USER35> The new attributes in the spec should make it possible - although not entirely easy - to include 2D position information with note on messages.

I would have been happier with a more general note spec that left the number of attributes and their resolution open and system-definable. This would allow 2D/3D/4D/etc control of note events, super-high resolution pitch definitions for microtonal support, and so on.

Bandwidth really isn't an issue any more, so there's no reason to limit the spec to a low common denominator.

Even so - 2.0 is better than the limitations of 1.0. So that's progress.

<comment><USER36> 3D positioning was added to 1.0, described in RP-049 dated 2009-07-23. The parameters' MSB is 61 (0x3D, nice)

It bears some resemblance to OpenAL source parameters which is little surprise as Creative seems to have written it. Some obvious differences:

\- sources' positions are sent in azimuth/elevation/distance, i.e. spherical coordinates instead of rectangular

\- the positions are always relative to the listener instead of often having a listener that moves around in a stationary 3D world

\- the source is now allowed to be both spatialized _and_ stereo with extra parameters for angular distance between the "speakers", the roll angle of the pair, etc.

I located the PDF maybe on Google, maybe by accident more than a few years ago. (I think it was from MIDI.org even then) I had to make an account at MIDI.org in January just to look through the specs, and it was there. Now I can't find a link so I'm afraid it disappeared behind the MMA member paywall. <sigh> Here's to progress.

</comment></comment></comment></comment></comment></comment></comment><comment><USER37> Not as fun to read, outside the music industry. Lack of consistent samples has been MIDI's major issues, and even in games these days, nobody uses it, sadly.

<comment><USER38> MIDI is just a control protocol. You are thinking of General MIDI [1], which defined a vague set of sounds associated with a program number, that allowed playing a sequence on different engines with horribly mixed results as you said.

MIDI 2.0 brings additional capabilities to device interconnection, and AFAIK has nothing to do with GM (which not many people care about anymore)

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

<comment><USER39> Lack of consistent samples is far worse without General MIDI. You could get a flute switched with a snare drum.

<comment><USER32> Lack of consistent samples is not an issue with professional use of MIDI.

Professionals (musicians, engineers, etc) don't use MIDI as a general-purpose playback method, they use it to control their samplers, synths, external effects units etc.

They don't need "consistent samples" because they provide their own samples, different for every song (plus pure synth sounds, etc).</comment></comment></comment></comment>


Gypsies and Jet-setters: Bruce Sterling at 2006  - <AUTHOR> http://archetyp.al/blog/2013/03/06/gypsies-and-jet-setters-bruce-sterling-at-2006-sxsw/

<comment><USER2> I find it painful how political speculation from seven years ago is still so entirely true. This speech resonates today and better articulates how 'politically backwards' the US remains.

As an aside, I don't know if it is an attention span issue but I found the first ~25 minutes much more engaging than the later half.</comment>


Introducing YUI - The Rising Giant - <AUTHOR> http://www.smashingmagazine.com/2007/10/01/introducing-yui-the-rising-giant/ <comment><USER2> I waffle between YUI and Extjs. Ext is slightly smaller for the full stack of widgets and all, but in the way I end up using each, YUI is slightly smaller. YUI is better documented and somewhat better supported do to higher user count, but Ext has some nice widgets. Design of YUI seems a bit more stable, as well. Ext changes pretty frequently.

</comment><comment><USER3> I've been using YUI for the past few months and it's impressive. Not quite as out-of-the-box as you'd hope but the capabilities are endless. Also, I think it's time we stop mentioning Scriptaculous/Prototype in the same sentence as YUI, jQuery and Dojo.</comment>


Making money with iAds? Not so easy - <AUTHOR> http://webdesktoplife.com/post/6684344795/making-money-with-iads-not-so-easy <comment><USER2> iAds has its issues. But this blog post isn't the reason not to use or rely on them. Just because this guy who has a very unpopular app hasn't made much on iAds doesn't extrapolate out to iAds or ads in general not being useful for mobile.

15,382 downloads for a free app is a low download number. An unpopular app is simply not going to make you money no matter what monetization you try.

Imagine a blog post saying "Making money with Adsense? Not so easy" and then someone proceeds to detail how his site which gets 5 hits a day isn't making much, so he concludes that there's no money in websites using ads. And I suspect if this app had started as a paid app, he would have also made a piddling amount and would have written a comparable blog post about how you can't make money selling apps.

That said, iAds aren't doing well. Apple seems to be having trouble filling them. I think mobile ads are down across the board, so you do need to use multiple networks as people have mentioned.

<comment><USER3> Which begs the bigger question, why hasn't any single ad network dominated the mobile space, like Adsense did for non-mobile space?

<comment><USER4> Ads on mobile is going to be a marginal business compared to the web. Screen real estate is at an absolute premium, alternative revenue models exist (such as charging your users directly), and there's a high barrier to any call to action (such as signing up to your service on a mobile keyboard).

I doubt that any ad network will gain the traction to dominate the space.

</comment></comment></comment><comment><USER3> I think it comes back to active daily use. The author mentions revenue spikes coinciding with installs, so I think its reasonable to conclude that users used the app after they installed and did not return again.

</comment><comment><USER5> You should generally speaking use something like AdWhirl, (which will also show iAd's when they're available), because it will show other adds when your iAds don't fill.

<comment><USER6> Or www.mopub.com - that's what we use - really good stuff, I have been meaning to do a write-up for HN.

<comment><USER5> Thanks, I'd wanted alternatives.

Can you link an app that uses it?

<comment><USER6> Sure, this one does: [http://itunes.apple.com/us/app/gaia-gps-lite-offline- topo/id...](http://itunes.apple.com/us/app/gaia-gps-lite-offline- topo/id333273242?mt=8)

I am mostly just running house ads now, but Mopub is great for being able to promote sales and mix in back-fill ads too.

It's nice that it's all open source too.

</comment></comment></comment></comment><comment><USER7> I've actually been very happy with iAd for my Zazen Suite lite version, which is a free meditation app for iPhone.

The only problem is that the fill rate is low, and I've been horrible at adding something to backfill. Good reminder to do that.

</comment><comment><USER8> I suggest you to look into AdWhirl (<https://www.adwhirl.com/>), that let you use multiple ad networks at the same time.</comment>


Draftin' MTG Draft Simulator BETA 3 - <AUTHOR> http://www.draftin.co/articles/14 Draftin' has entered its third beta release! I would like to take a moment to thank all of the Beta users who participated in Beta 2, you all have been a huge help in finding issues with Draftin' that I did not find myself. In Beta 2, you guys/gals uncovered an array of bugs which have been patched, along with usability issues around user interaction and menu/GUI simplicity which have been fixed/updated.
Anyway, I have been taking a more community oriented approach to Draftin's continued development. Basically, I am letting the users give large input as to what they would like to see in Draftin', and I have been prioritizing development based on that input. Beta 3 is entirely community driven, consisting of all the most reported issues/bugs. Hopefully Beta 3 brings a much more well rounded and bug free drafting experience!
#### Beta 3 contains the following updates
- Add flashing tab on various events throughout Draftin' if user is on another web page/tab. - Play audible sound on various events throughout Draftin' if user is on another web page/tab. - Fix UI issues in My Cards section where card rows are out of sync. - Make user profile display users cards. If you ever leave a draft/the coordinator deleted the draft, you can now retrieve your last drafts cards from your profile. - Greatly improved Set selection UI. - Fix server error when users try to join the same draft twice. - Fixed issues with kicking users from a draft.
Anyway, that's all for Beta 3. I am calling this update a usability update as it touches on the main issues you all found in Draftin'. I hope everybody enjoys the updates and continues to help push this little MTG draft simulator towards dev complete!
If you like this tool or have suggestions then feel free to leave them here. :) <comment><USER2> Can anyone explain what "drafting" is?

It's apparently not playing the game itself.

<comment><USER3> Drafting (Limited) is often more competitive than playing typical MtG with pre-made decks (Constructed)

In fact, drafting has become so popular that the next MtG expansion has a card that's only playable while drafting: [http://www.wizards.com/magic/magazine/article.aspx?x=mtg/dai...](http://www.wizards.com/magic/magazine/article.aspx?x=mtg/daily/arcana/1430)

<comment><AUTHOR> Oh yeah I saw that. It's gonna make life tough supporting it in my app lol.</comment></comment></comment>


Inspirograph - <AUTHOR> http://nathanfriend.io/inspirograph/ <comment><USER2> Cool! Nice work.

Here's a first-hand user's experience: It took me a bit to figure out how to make it work. I thought I should click the pen hole and press my mouse key as I move it around. Maybe a simple how-to description to get me started would be helpful. Of course, I could just play with it a little more :)

</comment><comment><USER3> Argh... It doesn't understand touch interface. That would've been a match made in heaven.

<comment><USER4> Works with my stylus on a Surface Pro. Feels way more natural than doing it with a mouse since I'm literally moving a pen in circles.

<comment><USER5> Stylus works as mouse, not touch, as far as web events are concerned. (IIRC)

So this won't work well on an iPad...

</comment></comment></comment><comment><USER6> " _Inspirograph isn 't mobile friendly... yet! A beautiful, ad-free Inspirograph app is in the works._"

Wonder if that will be free as well. How would one go about transforming a (desktop) web app such as this one into an app for each mobile platform?

Edit: and here's the source:

[https://github.com/nfriend/inspirograph](https://github.com/nfriend/inspirograph)

Looks like a bit of framework bloat (in my opinion), this is really the kind of thing that could cleanly be done with minimal frameworks and libraries. But the source still looks nice (and there's even a windows screensaver version??)

</comment><comment><USER7> This is something of a tangent, but this is kind of a cool visualization of what is sometimes called a "spinorial" object -- an object which can undergo a full rotation and yet not come back to its original state. Here the number of rotations necessary to restore the original state depends on the number of teeth on the gears.

A more classic spinorial object is a belt attached to, say, a book, or apparently your own arm holding up an oriented plate:

[http://en.wikipedia.org/wiki/Plate_trick](http://en.wikipedia.org/wiki/Plate_trick)

</comment><comment><USER8> Great piece of work! Had lots of fun with it.. Reminds me some Twitter visualizations we did a while ago [http://romain.vuillemot.net/publications/visap13-spirograph-...](http://romain.vuillemot.net/publications/visap13-spirograph- designs-ambient-display-tweets/) (hopefully Spirographs drawing are fully automated in this case ;)

</comment><comment><USER9> This is my childhood, and the gallery is great!

<comment><USER10> Exactly this. It's such a simple concept (spirographs themselves), but using this site put me into an almost trance-like calm. And clicking buttons to choose the "plastic wheels" was even easier than finding them in the box.

</comment></comment><comment><USER11> I understand that it probably doesn't work with the intended aesthetic, but I kept looking for a "make it go" button, because using a nub-mouse to wind the gear around repeatedly is hard.

<comment><USER12> you can hold the left/right arrow keys

</comment></comment><comment><USER13> Instantly reminded me of using my brother's Spirograph when I was a kid, so you definitely did this well :-)

[http://i.imgur.com/ARokLzv.jpg](http://i.imgur.com/ARokLzv.jpg)

</comment><comment><USER14> I've always loved that you can get such profound geometry out of spinographs: flowers of life, toruses, and what look like pentagonal solar-magnetic bands... a reality hack to be sure.

</comment><comment><USER15> This really is impressively done. (yet) liberated from the constrains of real plastic begs elements of special significance. For instance, where's the möbius gear?

</comment><comment><USER16> I like the fact that while the site isn't mobile compatible, they actually took the time to identify mobile visitors and give them a friendly warning about it :)

</comment><comment><USER17> Click an drag isn't working for me in Firefox or Chrome. The arrow keys work though. Am I doing something wrong?

</comment><comment><USER18> How can I get the moving gear to be on the outside of the fixed rings (the two that have inside and outside teeth)?

</comment><comment><USER19> That's a nice application of epicycloid graphs. Every programmer should have her own implementation of it :)

</comment><comment><USER20> Reminded me of school...

</comment><comment><USER21> There goes my productivity. Way to cool...

</comment><comment><USER22> great work! reminds me of my childhood, thanks!

</comment><comment><USER23> this is very nicely done</comment>


The Real Cost of Patent Trolls: $80B/year - <AUTHOR> http://www.bu.edu/law/faculty/scholarship/workingpapers/Bessen-Ford-Meurer-troll.html

<comment><USER2> I am quite sympathetic to the deadweight loss arguments in this paper, but placing the blame on the trolls is a bit misguided. They're responding to incentives, even if we don't like them. I wish the paper were more oriented around the law and the practices of the patent office.

Also, again while sympathetic, this paper was clearly researched after the authors had taken a position on the issue (notice the book mention). They started with a position, and went looking for data ex post facto.

They make no distinction between more and less legitimate patents. If a company is infringing on what many of us might consider a legitimate patent, then yes they will suffer financially. The paper elides over such a distinction.

Using stock price as a proxy for future foregone profits is clever, but it's a heck of an assumption. I don't think it rises to the level of empiricism. It's interesting for sure, but best understood as a statistical artifact.

<comment><USER3> >They make no distinction between more and less legitimate patents.

It's a valid position to question the legitimacy of the patent system as a whole and to consider _all_ patents illegitimate. There are multiple levels on which the entire system is ridiculous, both ethically as well as economically.

I won't take a position on the paper since I haven't read it (yet).

</comment></comment><comment><USER4> "lost wealth"?

How can we lose money we don't have to begin with?

Revised title: "The Opportunity Cost of Patent Trolling: Estimated at $80B/yr"

What is a patent?

Ask that question and you get a wide variety of answers.

Does it require the grantee to do anything? No. Except pay fees.

Does it give the grantee permission to manufacture, market and sell anything? No.

Does it guarantee the grantee protection from competition? No.

So what is a patent?

It is a right to sue. (And thereby a right to threaten to sue.)

And currently, I believe the patent office is granting around 200,000 of these annually. The number keeps increasing.

Are rates of innovation in line with this the number of grants? What percentage of patents are actually practiced?

Are the numbers of new technologies and products reaching the marketplace increasing in line with the increases in the number of grants? Are there more inventions or more inventors, or do inventors just need more and more protection year after year?

How about the rates of patent litigation and threats of patent litigation (patent trolling)? Ah ha.

We can talk about innovation and incentives, motivation and effects, and get lost in academic arguments about inventors and economics, but it does not change what a patent is:

Pure and simple, it is a right to sue.

And selling this right to sue (or should we say licensing it), now by the 100's of 1000's each year, has itself become a major source of revenue for the government. It's a business.

Grant the right to sue indiscriminantly one hundred thousand times or more each year and you just might start to see some grantees exercising their right to sue (or threaten suit) ... without any intention of ever manufacturing, marketing and selling anything.

Never underestimate the path of least resistance.

Manufacturing, marketing and selling versus threatening patent litigation and asking for compensation. Which of those two do you think is an easier route to profits?

The point that many miss is that only one of the two is actually using the patent.

That's because a patent is a right to sue.

It grants no other permissions. It carries no obligations other than the need to pay fees.

As such, trolls operate squarely within the system. They are exploiting patents for their true worth. Patents are expensive to prosecute and maintain. Go figure.

As others point out, the system is the bigger problem. You do not need to be an expert in intellectual property or economics to figure out what incentive is created by granting the right to sue, a hundred thousand times each year.

</comment><comment><USER5> The existence of patent trolls shows how far the system is out of control.

Patents are designed to provide an incentive for companies to invest in heavy research and to publish the results, while being guaranteed a limited monopoly on the invention in order to monetize it. (Or at least that's what they should be for). That is in the interest of society as a whole.

What is not in the interest of society as a whole are (1) patents on inventions that did not incur any cost (2) passing on these monopolies to entities that do not plan to produce anything.

<comment><USER6> _Patents are designed to provide an incentive for companies to invest in heavy research and to publish the results, while being guaranteed a limited monopoly on the invention in order to monetize it. (Or at least that's what they should be for). That is in the interest of society as a whole._

Sorry to nitpick, but the patent system doesn't directly incentivize heavy investment in research initiatives. It incentivizes _publicly disclosing_ how to practice the invention in exchange for a limited monopoly on practicing that invention. The government and other interested organizations incentivize research by offering grants, prizes, or outright subsidizing the research.

 _What is not in the interest of society as a whole are (1) patents on inventions that did not incur any cost (2) passing on these monopolies to entities that do not plan to produce anything._

I disagree with point (1) if by "cost" you're referring to financial expenditures. Psychic cost and other non-tangible costs are still very real. More than that, however, the patent system's purpose isn't to make people money. Its _only_ purpose is "[t]o promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries." US Const. Art. 1, sec. 8, cl. 8. As implemented in Title 35, the Patent Act accomplishes this by requiring _disclosure_ of the patentable subject matter in exchange to this exclusive right to practice the invention for a limited time.

<comment><USER5> Interesting points, thanks for the exact quotes.

I think my point still stands, though. Maybe this is not the intent of the law, which I think is exactly the problem.

There is no benefit to society and "the Progress of Science and useful Arts" if somebody has just an idea (that anybody else could have too - maybe about a cool device, a cool algorithm, a cool user interface), publishes this idea and gets "the exclusive Right to their respective Writings and Discoveries."

Science and society only benefit if this an idea worth protecting. The my crucial point is: How do you measure this "worthiness"? If you measure it in the potential money you can get from idea, you're in the current (bad) situation. The competitive forces of a free market will always provide a better result without artificial monopolies. If you measure it in the cost required to reach this discovery, then we have a yardstick on which to measure whether something is patent worthy or not.

Just my $0.02. Not a layer, but somebody who has been in the software industry in various capacities for long time.

<comment><USER6> _There is no benefit to society and "the Progress of Science and useful Arts" if somebody has just an idea (that anybody else could have too - maybe about a cool device, a cool algorithm, a cool user interface), publishes this idea and gets "the exclusive Right to their respective Writings and Discoveries."_

That's just it, though: they don't get legal protection for _publishing_ the idea. They get legal protection for patenting it, which requires that the idea be more than an idea--it has to be an invention. The USPTO is charged with the task of ensuring that the invention is novel, non-obvious, useful, and adequately reduced to practice. Basically, they're giving you an exclusive right for giving someone "instructions" on how to practice your invention. Whether the USPTO does a good job at this is obviously the issue, and my answer is that they don't, which comports with your overall thesis.

</comment></comment></comment></comment><comment><USER7> My favorite professor, Michael Meurer was my patent law professor. Great guy who came as close to being balanced and realistic on the current state of the patent world.

Can't wait to read and comment</comment>


Spotify and the great leaps of faith - <AUTHOR> http://www.techcrunch.com/2009/08/05/spotify-and-the-great-leaps-of-faith/

<comment><USER2> I get the impression the best _analogy_ for Spotify is Hulu for Music.</comment>


Slimscroll.js: Make any browser display iOS style scrollbars - <AUTHOR> https://github.com/venkateshwar/slim-scroll

<comment><AUTHOR> It's a bit tricky, but this library seems to push the ordinary scrollbar out of view and generate a new iOS style scrollbar replacement instead.</comment>


Covid-19 React Native Exposure Notification - <AUTHOR> Apple and Google are working hard to roll out their exposure notification api. Only approved public authorities will have access to the api. However, Google publicly released the proposed Android interface.
Based on that interface, I wrote a react native module to bind to it. I have no idea if any public health authorities will be using react native, but if they are, maybe this could give them a head start.
I'm just locked up in my house with nothing to do but try and think of ways to help. Even if it never gets used, I at least learned some things.
https://github.com/codejamninja/react-native-exposure-notification <comment><USER2> What is this exactly? I'm seeing mostly boilerplate code. Anywhere I should be looking?</comment>


LittleTable: A Relational Time-Series Database at Cisco Meraki - <AUTHOR> http://dl.acm.org/citation.cfm?id=3056102 <comment><USER2> Can anybody comment how this compares to open source alternatives [1] [2] ?

[1] [https://clickhouse.yandex/](https://clickhouse.yandex/) [2] [https://eventql.io/](https://eventql.io/)

<comment><USER3> As far as I can see, the design shares some similarities with ClickHouse.

LittleTable sounds less performant than ClickHouse:

LittleTable - "returns 500,000 rows/second"

ClickHouse - "processes hundreds of millions to more than a billion rows and tens of gigabytes of data per single server per second."

LittleTable also seems to be much less flexible (e.g. ClickHouse offers quite a few different storage engines, views, materialized views, and other goodies).

ClickHouse rocks.

<comment><USER4> The Yandex offering, as far as I can tell, is the best open source TSDB.

<comment> chaotic-good It's not a TSDB. It doesn't support ingestion without some fancy batching. The insert rate will be too limited without that. MergeTree was designed for batch processing, not for real-time processing.</comment></comment></comment></comment>


Ask HN: Is identity theft protection service worth it? - <AUTHOR> I have been a member of Lifelock for a number of years now.  It seems more expensive than it use to be, and I don't get copies of my credit reports anymore.
I am debating whether I should continue with the service.
What is your opinion on these types of services and are they worth it? <comment><USER2> A credit freeze is another tool; it prevents potential creditors from extending credit since they won't be able to pull your file to verify your creditworthiness. Temporary unlocks can be done when you need to apply for a loan, etc.

[http://krebsonsecurity.com/2015/06/how-i-learned-to-stop- wor...](http://krebsonsecurity.com/2015/06/how-i-learned-to-stop-worrying-and- embrace-the-security-freeze/)

</comment><comment><USER3> Free- block your SS# at the source, [http://www.ehow.com/how_6926296_block- social-security-number...](http://www.ehow.com/how_6926296_block-social- security-number.html)

But you also want to have your identity checked for other risks, such as when medical records , email records, address, and existing accounts can be compromised. What is the best detection service? I'm not sure it's Lifelock. I'd compare.

ID theft insurance- pays for the costs of fixing identity breach, and some also offer a person who does the work for you filing all the paperwork and cleaning up damage.

</comment><comment><USER4> No.

Just register for a free credit monitoring service like Credit Karma/Sesame or a non-free one like Amex CreditSecure.

That's all you need.</comment>