Special filters in glasses can help the color blind see colors better - <AUTHOR> https://phys.org/news/2020-07-special-filters-glasses.html <comment><USER2> The actual paper is available [pdf]: [http://dx.doi.org/10.1016/j.cub.2020.05.054](http://dx.doi.org/10.1016/j.cub.2020.05.054)

[Edit] Notes:

• People tested have all 3 cones but reduced function of one type ('anomolous trichromats') — either green ('deuteranomoly') or red ('protoanomoly'). These are the most common forms of colour blindness.

• "All tests were performed without the glasses." Hypothesis that the brain is being trained to compensate for the weak cones, like an audio equalizer [my analogy].

• They were testing a (patented) commercial product, in which one of the authors is invested. There may be specifics of the notch filters in the patent that were not in the paper. (I'm at work and not allowed to read active patents.)

<comment><USER3> > _I 'm at work and not allowed to read active patents._

Is that related to legal issues (as in, if you don't read patents, there's less chance that you'll end up being prosecuted if you accidentally implement something similar)?

<comment><USER2> I believe damages can be higher if you _knowingly_ infringe on a patent vs _unknowingly_ infringe on a patent, but I don't even play a lawyer on TV.

<comment><USER4> Yes, [https://en.wikipedia.org/wiki/Treble_damages](https://en.wikipedia.org/wiki/Treble_damages)

</comment></comment></comment></comment><comment><USER5> I just saw a post on reddit where at a wedding, the wife gave her husband some similar glasses. Lots of crying. Many of the comments were similar to here where colorblind people said they don't help.

This makes me wonder if some new colorblindness glasses manufacturer is planting "viral" content.

<comment><USER6> >This makes me wonder if some new colorblindness glasses manufacturer is planting "viral" content.

This is it. Last couple of rounds of these "magic glasses" have also followed the same pattern, trying to prey on colourblind people's loved ones to buy them these expensive glasses. Everything I've read from people who've actually tried this says they're underwhelming, they work by blocking some of the spectrum around where you have issues (for instance I'm Red/Green so I have issues around those colours but especially browns and purple) so you can distinguish differences more clearly.

They do NOT let you see more colours magically, just distiguish the now reduced colour set better.

I'd love nothing more than some magical solution to cure my colourblindness, when I was a kid up till I was 15 (I got diagnosed really late) my top three careers were Astronaut, Military Pilot and Commerical pilot, if anyone remembers that one scene in Little Miss Sunshine that was very close to my reality. Unforutnatly until we start replacing eyeballs somehow it just doesn't exist.

tl;dr don't buy these, they're trying to use your impulse to do something nice for someone against you.

<comment><USER7> I had only heard of Enchroma but then stumbled across and bought some Pilestone glasses last month. I think they cost me around £120 here in the UK.

At first I put them on and they just made everything look tinged with pink so removed them after a minute or two. Then I noticed the instructions. I had assumed glasses didn't need instructions but all it said was to leave them on for at least 15 minutes for your eyes to adjust.

My eyes did 'adjust' after a few minutes more and while it wasn't something that would make me cry like the viral videos, there was definitely an emotional reaction. I wore them on a walk through the countryside and the vivid colours of certain flowers did make me stop and I found I couldn't stop grinning.

I did find that reds look a bit orange - things like the Royal Mail van which is certainly red appeared quite bright and what I would previously have called orange. Who knows if that's wrong or right though? It's hard to know how everyone else sees things.

I don't wear the glasses day-to-day but I do take them with me if we are going somewhere picturesque.

<comment><USER8> The reaction of 'grinning' you describe was the same for me when my sense of smell was fixed surgically and began working properly some years ago.

</comment></comment></comment></comment><comment><USER9> I'm colorblind and have never tried the glasses, but:

As many of you know, the western US has been experiencing significant wildfires in recent years.

When the smoke gets particularly bad in the valley I live in, the one upside is that colors -- particularly red become much more vibrant -- I marvel at stop signs, stop lights and naturally-occurring purples, in particular.

It makes it seem as though not only can I distinguish, but my perceived color spectrum widens. I swear I can see the colors clearly as they should be, even though I lack whatever cones or rods required. While I don't react to it with crying in the videos, it's certainly stunning and emotional.

I've been working on software over the years to try and duplicate the effect using a phone camera. It doesn't seem to be a simple brown filter.

</comment><comment><USER10> Glasses to correct/improve colour vision have existed for decades, though I don't know how these differ.

As a kid, my parents took me to try out a pair (maybe 25 years back)... but I just didn't like it. Everything seemed so much more colourful, and bright. It was almost like sensory overload.

Everything was also more confusing; I didn't actually feel like I could differentiate colours any better - colours were different, sure, but I still didn't know what they were.

<comment><USER11> I experienced something very similar when presented with glasses to slightly correct my vision as a child. I found the world too sharp and distinct. When I looked at a tree each leaf stood out, while my experience had been that there should be no individual leaf, it should be blended.

I decided not to use the glasses and since my vision wasn't that bad I stumbled through. I realize as an adult now if I had just waited I likely would have acclimated to the situation.

<comment><USER12> I never saw leaves on trees either until I finally got glasses at 18. I was told constantly as a kid that I needed glasses, but I just brushed it aside because I couldn't imagine things being better. If only a doctor would've told me to put on a pair and walk around before refusing, I think my life would've been quite different.

Then again, when I finally did get glasses, I refused to wear them more than a few minutes a day for my first month. They just made me uncomfortable, visually and mentally. It seems like people are always most comfortable with what they know, even if it's objectively worse.

<comment><USER13> I still vividly remember the day I walked out of the opticians at 9yo with my first pair of corrective glasses (myopia). It really freaked me out because I literally saw the sidewalk ride up the side of adjacent building walls as I walked along the street. I wanted to immediately take them off. But after a few hours that feeling just went away.

</comment></comment></comment></comment><comment><USER14> Searching EnChroma Glasses (as referenced in the article), led me to this Colour Blindness Test:

[https://enchroma.com/pages/color-blindness- test](https://enchroma.com/pages/color-blindness-test)

As expected, I am not colour blind, but if you are not sure, give it a go!

<comment><USER15> I had never heard of EnChroma until I bumped into YouTube videos recording reactions of people seeing true color for the first time in their life. Quite an experience, I gather.

Here is one example (via invidio.us): [https://invidio.us/watch?v=XSD7-TgUmUY](https://invidio.us/watch?v=XSD7-TgUmUY)

Edit: Just read in this thread that they may be viral marketing, and the glasses are not as special as they are expensive.

</comment></comment><comment><USER16> My former employer was the optical lab that actually manufactured the EnChroma lenses for a few years. My best friend also works there, is red-green colorblind and found that the EnChroma lenses didn't help him at all.

</comment><comment><USER17> I'm colorblind, imagine you've seen colors a certain way your whole life - decades - and then someone gives you glasses to see colors "correctly". The colors just look wrong, not "correct". Why would I wear them? I know the color of everything already. Its also discriminatory, who says that the correct way to see colors is your way? Also, my whole life I've been discriminated against in jobs because of some broad definition of color blindness, at least some folk have made some steps to be able to categorize levels and types of color blindness now. Many jobs that weren't open to me when I was younger are now open to me, but I'm too old now. It isn't a "disability" requiring fixing.

<comment><USER17> Downvoted even though I am colorblind and actually know what I'm talking about!

<comment><USER18> You provide nothing constructive or objective with your comment. Also your comment goes against truth, as we know the full range of visible light spectrum by measuring it.

<comment><USER19> Visible light spectrum as in wavelengths going from small to large do not have all colors in it. For example, magenta is missing, because it is not achievable with single wave.

Not sure what it has to do with anything.

<comment><USER20> ...and if you are physically unable to see one of the colors in magenta, you cannot see magenta. Not sure what that has to do with anything.</comment></comment></comment></comment></comment>


How Apple works: Inside the world's biggest startup - Fortune Tech - <AUTHOR> http://tech.fortune.cnn.com/2011/08/25/how-apple-works-inside-the-worlds-biggest-startup/ <comment><USER2> I love this article and having worked with Apple on the outside (from the music business) it rings true. It was really interesting to see where the two businesses collided because at heart, Steve Jobs operates a lot like a music executive: decisive, intuitive and driven by taste, not market.

However he was able to shape the company around that vision holistically where because of the mergers and such in the music business, that mentality only pervaded labels, not corporate.

As a label exec once said to me in a moment of frustration: "he treats technology like I treat music, and we depend on each other in certain aspects of our business. But he has a lot more business outside of mine and I hate him for it."</comment>


Ask HN: SaaS founders how often do you get requests for buying your source code? - <AUTHOR> I got one request today.
So yesterday P emailed us using @gmail.com email account requesting for a demo. In the email, P claimed to be from Athens, Greece. That's fine, we are based in Singapore. We can figure out our time differences.
Today I had the demo with P over Google Meet.
Mid-way through the demo, P offered to buy our source code. I'm skeptical of P's intent because it's coming from @gmail.com email account. And upon asking for his company's name and url domain, he avoided my question 2 times at least.
Before ending the demo, P emphasized that our software product is what he wants in Greece. I politely responded that I will discuss with my partner.
After the demo, I sent P an email to politely reject his offer.
My gut feeling tells me that it could be an organised scam. Do you have similar encounter? <comment><USER2> I haven't experienced this as a scam. Doesn't mean you shouldn't be aware. I've often had requests for my source code and "why don't you just open source it", often ignoring the thousands of dollars it costs to operate the services per month.

I wouldn't get too excited about it unless P can give you some details as to why he wants to buy it, history of being able to successfully commercialize, etc. etc.

If P has the ability to provide your product in Greece, why not try for a partnership/sales agreement rather than buying the source? Once they buy the source, that's it, it's gone.

<comment><AUTHOR> Great idea. Partnership/sales agreement. Thanks for sharing.

One part of me finds it hard to establish trust, not to mention make deal, with people using public email domains like @gmail.com @hotmail.com etc...

<comment><USER2> I wouldn't worry too much about the public email. There are a few reasons people do this. Sometimes companies do this to appear smaller than they actually are, sometimes, people are investigating on behalf of another business, sometimes they have businesses and forward their email to their personal, etc. etc.</comment></comment></comment>


Ask HN: how can Obama use a BlackBerry without going to Canada? - <AUTHOR>

Hi gents,
From what I understand, Blackberry Enterprise Server sends email via Blackberry's datacenter (see http://en.wikipedia.org/wiki/BlackBerry).
I keep reading about how the US President is using a BlackBerry, but surely this is without sending the mail (even encrypted) to a third party, particularly one from outside the US? Yet what other options are they? <comment><USER2> The actual device that Obama is using is from Certified Digital, and I've been looking but haven't been able to find anywhere that it says it is using the blackberry network (aside from all the reports that say 'Obama's Blackberry).

I'm wondering if this is just a poor naming convention by the press. Like saying 'he grabbed a kleenex' when grabbing a tissue.

<comment><AUTHOR> Engadget - who you think would know about these things - keep saying it's definitely a BlackBerry, rather than the NSA-certified device that was originally planned.

But then again, maybe they are indeed full of it. Do you have a ref for the Certified Digital quote?

</comment></comment><comment><USER3> ComputerWorld thinks it's a Sectera Edge. I submitted the article earlier:

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

</comment><comment><USER4> IMAP & SMTP

<comment><USER5> It might have changed, but last time I had a BB (9 months ago), it was a BlackBerry server that logged into MY mail server via IMAP, retrieved the messages and then pushed them to my device.

I never gave it much thought about where the BB back-end servers are located, but if they're in Canada, then my email would have all been routing through Canada.

<comment><USER6> I have a Blackberry (in the UK) and yes this is how it works. We have, I think, EU servers so I dont know if the US has it's own dedicated servers.</comment></comment></comment>


You Should Be Angry - <AUTHOR> https://bpodgursky.wordpress.com/2020/03/22/you-should-be-angry <comment><USER2> This article is a bit - or maybe a lot - callous, but it makes some good points. Shutting down the economy is not free of human costs. People will lose their livelihoods and some will lose their lives to the coming recession.

Where I disagree is the premise that we're "eating the young to save the unhealthy old". The implication here is that letting the virus run wild is an appropriate trade to make for saving the economy from a recession. That's pretty unconscionable in my opinion.

We should be angry, but it should not framed as a generational dispute. We should focus on the fact that countries like South Korea, Taiwan, and Japan are able to deal with this with much less disruption. We should be angry that we do not have enough masks for everyone. We should be angry that testing was not available until this became a crisis. We should be angry that the healthcare system cannot coordinate a coherent response.</comment>


Mapping Spinoza's Ethics - <AUTHOR> http://ethica.bc.edu/#/visualization <comment><USER2> I remember now wanting to create such a thing when I read the Ethics as a philosophy undergrad in the 90s, but lacking the tooling, time, or talent to do so. This is far more involved and better done than what I had imagined, or could have achieved.

To the creators, thank you so much for your work!</comment>


Will VBA Die? (2019) - <AUTHOR> https://www.thespreadsheetguru.com/blog/are-vba-macros-dead <comment><USER2> Nah... why should it? It works and it does what it needs to do and more if you decide to hook into the Windows API or Mac's API.

Want to parse 500mb structured XML file? Okay. Takes 3 seconds or so.

I had a lot of fun creating a full featured & modern look & feel application using Excel's VBA runtime as my platform. Sure... I had to create everything from scratch, but learned so much while doing it. Kind of miss it at times since I now work with Java.

By the time I moved jobs, the codebase was +30k lines and even built an auto- updater, auto-installer, diagnostic, and AD type of authentication for the app, but most importantly saved tens of thousands of hours by automating reporting, analysis, detect errors, and querying that analysts, accounting, and some BI's would do as part of their normal work.

VBA is great for analysts to work in Excel all day & every day who want to get into programming a little more, but want to have it apply directly to their daily work.

Now.... I wish Access does die...

<comment><USER3> Your Excel+vba application's features remind me of when I joined an investment bank in 2000. I had come from an insurance company where I was considered the Excel\vba wizard, and I was impressed, in the extreme, by my new colleagues' approach to Excel development. Even during the interview process I had realized that, when it came to vba, I was but a babe in the woods. They had auto-updating code (when you "published" code, all client workbooks downloaded the latest version), code-generated collection classes, interface inheritance, tests, error detection, higher-level functions via Application.Run(), self- contained worksheets with embedded vba code that would operate even if moved to a new workbook.

Inevitably, new hires would be unhappy that they did, in fact, have to write vba code all day and would argue for switching to a better language. Our team manager would say, "Vba gives us a superpower no other language does: we can deploy whatever we want, whenever we want, to whomever we want. In any other language, getting 'Hello World' in front of a user is a six month project."

<comment><USER4> What would the role names be for positions like this at an IB? Been interested in this type of work.

<comment><USER5> Something called "Desk Developer", "Deskdev", "Rapid Application Development" or "RAD".

I was in the Deskdev team in an investment bank for 4 years, great fun and I learned a lot about Excel.

<comment><USER4> Ok cool. Thank you!

</comment></comment></comment></comment></comment><comment><USER6> It'd honestly be a shame if it did (but I understand the stresses that might cause it to happen).

Flash back to ~1986, and Bill Gates wrote an article for a Byte magazine special edition in which he described a unified version of BASIC implemented across a suite of GUI productivity applications.

Keep in mind, this is before Windows 3.0 and the Microsoft hegomony, before Word for Windows, (and Access, Project, Visio, etc.), before OLE/COM/ActiveX/IDispatch, and all of which are arguably necessary to complete the vision he outlined in the article. Ten years later, the vision of the article was realized, and thirty-five years later, it not only still exists, it's still useful across a huge cross section of computer users. (Despite the radical changes in the industry over that time.)

Microsoft has gotten a lot of flack over the years, and a lot of it has been earned, but the ability to identity a useful target state ten years in the future and rally an organization to achieve that goal is an amazing accomplishment.

</comment><comment><USER7> I'm working on an excell addin right now. It doesn't use VBA (it uses microsoft interop libs for .NET) And I have zero interest in using VBA, but I will admit, it would have been much easier to do this project in VBA instead of C#. Debugging would have been easier. I could debug inside the VBA code- behind instead of Attaching to the excel process in Visual Studio. Deployment would have been easier. I could make an .xlam file and just give it to the users instead of A separate visual studio project that creates an installer on each build. Excel interop would have been easier too(probably, I'm not 100% sure.) But using the Microsoft.Office.Interop.Excel libs are kinda hard. I don't have any good reference material for this lib, but for VBA, there are tutorials all over the internet for doing common things. I mostly avoided VBA because I prefer the syntax of C#. I would imagine most people that only know VBA would have no interest in using C# to write office interop code, and I don't blame them. As for javascript, I doubt anyone that knows VBA well would have a hard time learning javascript, and if the codebehind for excel was slowly migrated to that, most devs would welcome the change.

<comment><USER8> I'm the other way. Started a large project in VBA once, jumped over to C# interop and never looked back. I found the libraries to map fairly well to the same named functions in VBA when it came to worksheet manipulation. My biggest issue was that the interop has quite a bit of latency. You really want to accomplish as much in one call as you can (i.e. read whole ranges into an array instead of looping through cell by cell).

Edit: If this is internal, you can also set up one click deployment to some folder on the network that will auto update the add on for end users.

<comment> non-entity I was working on a small program that originally used the C# interop and found the latency pretty bad as well. For a small document, it was taking like 4 or 5 seconds to do what we wanted (dont remember exactly what that was atm). Eventually, I used some OpenXML library Microsft offered that was basically LINQ to XML with some types / extensions and found something interesting:

On smaller documents, the OpenXML manipulation blew the COM interop out of the water in terms of speed, but with larger documents (hundreds of thousands of rows), I think the COM interop was either faster or at least just as fast.

</comment></comment></comment><comment><USER9> Microsoft should rather provide a better path toward office automation rather than just frustrate users. As I have seen it, javascript isn't even remotely close to the sort of integration that made the success of VBA. Like how can I save a javascript macro as a user? Javascript user defined function?

VSTA was a good attempt in its time, a mini visual studio integrated in office with VB.net and C# instead of VB6. That would have been cool.

<comment><USER10> Agreed. JavaScript has no real upside here besides being fashionable. whereas built-in C# with access to the .Net framework would be really powerful.

<comment><USER11> JavaScript has a huge upside because a lot of people already know JavaScript. The more tools and platforms switch to JavaScript the more of an office superhero users are when they know something about the language. The productivity of employees will jump off the charts. When you send someone to train for one thing that utilizes JavaScript you get the benefit that those skills may also happen to work with something else as well.

<comment><USER12> At some point, I hope we can get past this argument. Learning a new language for rudimentary tasks is not particularly hard. I'm not sure why people decided that JavaScript of all things was what we had to all latch onto.

<comment><USER13> Because it's the new Franca lingua of programming. Everyone knows it whether they like it or not. There's value in not have to switch context while programming. Also there's typescript which makes JavaScript usable. I don't like JavaScript either but typescript isn't terrible and the ecosystem is much bigger than any Microsoft programming ecosystem which results in less reinventions of the wheel. MS has also been treating JavaScript as a 1st class citizen on Windows

<comment><USER14> > MS has also been treating JavaScript as a 1st class citizen on Windows

Eh what now?

The ActiveSctipt host for JScript (for shell and Classic ASP scripting) hasn't been updated since Windows 2000, and for shell scripting in-general Microsoft has been ("was" at this point?) pushing PowerShell since its demo at PDC 2003.

WinJS for Windows 8 was a huge waste of money for the company that people always seem to forget.

And their Chakra JS engine is effectively now retired given Chromium+V8 replaced EdgeHTML earlier this year.

The only places Microsoft has been using JS are for their current set of Electron-based applications (VS Code, Skype, MS Teams, Azure Storage Explorer, etc). TypeScript is nice and all (and I really love it and I hope it brings algebraic typing and structural typing to more languages) but it's only popular because Google, of all people, adopted it for Angular.

</comment></comment></comment></comment></comment></comment><comment><USER15> As long as Excel is used by businesses, VBA will be relevant. Excel will probably continue to exist - and be supported and updated to ever newer versions - forever, so it stands to reason that VBA will probably also exist forever. Unless Microsoft goes bankrupt and Excel isn't picked up by another company. Which will also probably never happen.

<comment><USER13> Microsoft is slowly transitioning Excel macros to Javascript / Typescript. It will happen eventually.

<comment><USER6> The Excel object model is really a COM/IDispatch object model... it's been accessible from non-VBA applications essentially since the beginning.

Not Excel, but one of my first consulting projects was at a company that developed some custom libraries in Java and for a company that used ASP for the front end. The architecture we used ran the Java code in the Microsoft JVM, which then made Java accessible via IDispatch (and therefore by ASP's scripting engine).

IIRC, we were doing stuff similar to this:

        let javaObject = CreateObject("java:com.company.library.ApiClass")

        print javaObject.version

This is essentially a part of the 'embrace and extend' functionality that MS added to Java and got sued by Sun over. (There were also mechanisms for relatively easily calling into Windows from the MSJVM too... it felt an awful lot like the Proto-CLR that it was.)

<comment><USER16> At the moment the implementation is to basically inject code, but I imagine eventually Microsoft would like to move away from that.

Issues like DCOM and legacy systems would need some interface from Microsoft of course to handle IDispatch, GC etc, but thats what Microsoft do.. And to behonest, as much as I like to rip on them, they do it well.

Edit: I think the Java example is a little bit different, but i don't know anything about Proto-CLR!

<comment><USER17> Have a read about Ext-VOS here.

[https://blogs.msdn.microsoft.com/dsyme/2012/07/05/more-c- net...](https://blogs.msdn.microsoft.com/dsyme/2012/07/05/more-c-net-generics- research-project-history-the-msr-white-paper-from-mid-1999/)

"Project 7 and .NET Generics"

[https://fsharp.org/history/hopl-draft-1.pdf](https://fsharp.org/history/hopl- draft-1.pdf)

WinRT, as it was originally designed, traces its ideas back to that Ext-VOS project, but going back to COM as they were thinking about it back then.

[https://docs.microsoft.com/en-us/uwp/winrt-cref/winrt- type-s...](https://docs.microsoft.com/en-us/uwp/winrt-cref/winrt-type-system)

</comment></comment></comment></comment></comment><comment><USER18> There's really two camps of VBA, the "application builder" and the "spreadsheet functionality" camps.

Application builders are trying to build interfaces for things that will run in a non-spreadsheet (i.e. non-reactive, not always-recalculated-to-be- consistent) mode. That's bound to be brittle, because that's not what Excel is for.

Spreadsheet functionality extending people OTOH write almost 100% what in ordinary programming is known as "pure functional style". Too often to write complex formulas in Excel (even something as simple as the Black-Scholes equation) people have to use multiple cells to keep things tidy and debuggable. You can use VBA functions for that. You can also write short loops to "solve for zero" with the bisection or Newton method etc. as long as they don't run for long. None of that interferes with spreadsheet semantics.

</comment><comment><USER19> Quote: "What Will Replace VBA? Short answer: JavaScript. "; and author follows with some logic about JS vs VBA using cross-platform.

Except this will never happen:

1 - M$ loves backward compatibility. It's what keeps their software being sold all these times. Worse case JS will have bigger user share and that's it, but M$ will never cut VBA out.

2 - Also majority of business is done on Windows. Cross-platform means absolutely nothing to corporations. The day that Windows dies that's the day VBA will die as well.

3 - JS as golden boy vs VBA? pleease. Best case scenario you're switching from one ugly boy to another ugly boy. Both VBA and JS are horrors. Don't believe me? Go read'em horror stories about JS cross browsers implementations. JS solved the problem of cross-platform only to open the problem of cross browsers. Good luck having Apple implement the same JS in Safari as their mortal enemy from Google in Chrome.

<comment><USER16> 1) They are paid to support their own tech, when they drop one (Silverlight for example) it can be a serious hit for a buisiness.

2) Yes, but it is changing thanks in part to dotNet core understanding this too. So we should see some benefits across the board for everyone.

3) Well, like PHP back when it was the golden boy against Perl, it's up to the developers to decide the direction of the language itself. Browsers and Node are big players to influence that too, but M$'s interest bringing TypeScript for example is evidence they might believe that.. Also as for standards, I might be wrong but I think they now decide their own standards, with all the browsers as members ?

<comment><USER20> > They are paid to support their own tech, when they drop one (Silverlight for > example) it can be a serious hit for a buisiness.

...but you _can_ still download and run Silverlight.

Fun fact: if you load up Netflix in a browser that's too old to support the html5 player, they'll prompt you to install the Silverlight plugin. [https://help.netflix.com/en/node/23742](https://help.netflix.com/en/node/23742)

</comment></comment></comment><comment><USER21> Excel is one of the reasons I want to leave a career of Business Analyst behind.

Regardless of the process, the last step is always to dump the data into Excel and spend tons of time to create good-looking charts and tables. It usually takes me a full day to do that plus write wiki pages in Confluence (another pain point).

I just want to stay away from spreadsheet -> which means I need to get further from business and get a more technical position.

<comment><USER22> I think you may find R an excellent tool/ecosystem for that kind of work.

<comment><USER21> I'm actually trying to break into BI or DE, so Python is my first choice. I also have some experience with C++ but it is not that useful for corporate development nowadays.

</comment></comment></comment><comment><USER23> Ha - good timing! I've been using VBA today and yesterday actually!

Often only a few times a year I use it now but when I do it I feel productive.

In case your wondering I has a previous Excel VBA Macro that I wrote for updating a SQL Server Database based on data in Excel. The macro first has to run checks against data in an IBM AS/400 Database.

I ended up having to pull out the macro to do a bulk update in an ERP. It was faster to do this then re-write in an modern language (especially since I work with the data in Excel first).

</comment><comment><USER24> Some points:

* I guess with Office365, JavaScript makes some sense, but why not just go VBA to WebAssembly?

* What about the Python rumors a couple years ago?

* I should probably turn my NecroVisualBasiCon library into A book. If you use the Access.Application library, right-click and toggle the hidden members, that COM object has a few extras like loading/saving objects from the VBProject that make e.g. git integration feasible.

* VBA does an outstanding job of providing 80% of what you want and no more.

</comment><comment><USER25> My first apps ever were extremely customized VBA Access databases. I already knew QBasic so doing VBA was easy. It affords a ton of power. I was able to create an entire interface and workflow easily and have everything contained within one Access file. The only downside was when multiple users wanted to use it (I think one had to save/close to let another in). For small things (a workflow tracking a university's scheduling changes) it can be great. Filemaker is a similar tool and both tools allow rapid development and prototyping. It might not be that useful to seasoned programmers, but to people who just want to get something done quickly, and especially for people who don't program much, it's an amazing tool.

</comment><comment><USER26> I wish Microsoft would just make a CSA already, c# for apps. This would be a huge win on so many fronts that I am shocked they havent done it already.

Increase C# mindshare.

Better Lang means a better ecosystem.

It's a free win.

It's also an ad for office. I started appreciating Outlook and Excel once I had vba filters and maps

<comment><USER27> Very surprised after all these years (decades?) they have not done something like this. Basic has been a low priority at MS for a long time now.

<comment><USER28> It could have made for an interesting alternative to PowerShell as well.

<comment><USER26> Not a PS1 expert by any means but you have to spend some time with it to appreciate the design decisions. It's a very "wholesomely" designed language.

Try eg. The for each parallel construct which made me realize why the output in PS1 behaves how it does.

<comment><USER28> That's always been the problem for me, I don't use it often enough to become fluent with it.

<comment><USER26> You're missing out. As a full time Linux user (since a year), PowerShell is by far the best shell out there (once it starts after 5 secs)

<comment><USER28> I'm not going to start using it for the sake of it. Some tools I just dip in and out of when I need to. Build software is the same, I haven't modified my build scripts for a year.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> VBA won't "die" anytime soon for the same reason Office or VB/VB.NET are still around. Legacy code. Almost every office in the US and probably around the world has VBA code in one of their office products ( excel, access, etc ).

Google spreadsheets was going to kill Excel, C# was going to kill VB, Sql Server was going to kill Access, etc. Look at how that turned out?

Maybe in an ideal world, but in the real world, there is a ridiculous amount of time, money and resources invested in VBA code. These sunk costs are very meaningful to corporations and governments and as long as corporations and governments give microsoft huge stacks of money, microsoft is going to keep VBA around.

</comment><comment><USER30> I don't think it will. Microsoft might add another macro language but everyone is obsessed with backwards compatibility at MS and I highly doubt they would remove something as widely used as this. I used to be really annoyed by this as an engineer, but in contrast to Google's culture where products are shutdown all the time I've started to come around that users should come first to avoid getting this reputation, even if it does become a combinatorial hell of different versions. I work at MS so I'm biased probably

</comment><comment><USER31> As far as I'm concerned, JavaScript (or at least JScript, MicroSoft's proprietary reimagining) replaced VBA 13 years ago. I haven't had to do anything programming with Excel for rather a long while, but way back in 2007 I was already writing JScript programs to automate spreadsheet tasks.

</comment><comment><USER32> I hate VBA with a passion, but on the other hand it saves me many many hours every month through my ability to automate tasks. I would love for almost any language to replace it, but there has to be some kind of replacement if it goes away.

</comment><comment><USER33> Between the spread of excel across businesses and MS focus on compatibility it seems rather unlikely. It is kinda ridiculous how much depends on VBA macros.

Weirder things have happened, but whatever would replace it, would create an industry overnight.

</comment><comment><USER34> I don't own a Windows computer, but I've seen some incredibly interesting stuff come out of the VBA for Excel, which I sadly never have had a chance to learn.

Does anyone here have a side-by-side comparison of the LibreOffice BASIC vs the VBA?

<comment><USER35> The main difference will be the object models for the various applications. LibreOffice's object model was designed around the expected scripting/automation language - Java. That means that the object model, especially the properties and methods of those objects, is written in a very Java-accented way that would normally feel like foreign vocabulary mixed into a Visual Basic-based dialect. If you're used to that, then the way objects work in VBA (or the very similar Lotusscript) might feel a little bit weird at first, then make more sense than the LibreOffice objects/properties/methods. (Similarly, writing Java against a COM- or OLE-oriented API object model feels awkward, even if you can do all of the same things that you could do with VBA.)

</comment></comment><comment><USER36> > one of the easiest coding languages to learn if you don't have a computer > science background

Really? A language that has values passed by value, values passed by reference, references passed by value and references passed by reference? (And both late and early binding, and auto-boxing with all kinds of mysterious type-conversions, etc. and so on. And default properties.)

What makes it easy for beginners is the integrated environment, which is also what makes it difficult for more experienced programmers as it doesn't integrate with their version control system and other common tools.

</comment><comment><USER37> If traders/quants and financial analysts in banks say that they don't need VBA anymore, sure it will die. Otherwise, not a chance. Trust me.

</comment><comment><USER38> Not sure why they wouldn't go something C#/.NET based. If you're going to go the JavaScript route, at least pick TypeScript.

<comment><USER39> Whatever your position on the static typing debate surely one of the sweet spots for dynamic languages is casual use by non-professionals?

<comment><USER10> C# has a dynamic runtime. In that sense it's very similar to VB with can also be strongly typed or dynamic.

</comment></comment></comment><comment><USER40> Well judging from the fact that my first computer my father bought back in 1988 Amstrad CPC 6128 is still alive and kicking with very active community and more development tools than it ever had, I think its safe to assume that software never dies. Only thing it takes is a small dedicated community and it can last for centuries. Partly because father and mothers infect their sons and daughters with their passion for the technology and the the loop never ends. What else never dies is necrophilia in software , apparently people are addicted to declaring software dead prematurely. Oh and of course clickbait because some people are desperate for views. It started with Java back in to 2000s and still going strong. I am not fan of Java but I am also not that delusional to declare Java dead. So no I think its pretty safe to assume VBA is not going anywhere.

</comment><comment><USER41> It's weird to me that we haven't settled on a common, stable, purpose-built high-level language specifically for business logic. Stuff that doesn't change much, that doesn't need to concern itself with the platform, only the business. That code should be portable to whatever shiny new underlying system gets invented; why does it keep having to be re-expressed every few years?

The situation is much better (though still far from ideal) when it comes to data. Everything knows how to use CSVs. Relational databases, from a schematic perspective, really haven't changed terribly much in decades. NoSQL came around but that was really just an alternative option; you don't see everyone scrambling to migrate their SQL data to Mongo. SQL isn't quite a standard, but it would be dramatically easier to migrate an ancient MS SQL database to Postgres than an ancient COBOL codebase to Java.

<comment><USER42> The great thing about standards is that there are so many to pick from.

What is the difference between what you are imagining and Java or python?

<comment><USER41> I guess I'm talking about a domain-specific language. Something where you only articulate business processes and formulas, and nothing more. Java and Python are _programming_ languages. You use them to tell a computer what to do. Whereas this would be a _representation_ language. You'd be able to carry that representation around with you and drop it into different programming contexts.

<comment><USER43> You should look at Sqlite, not just as a portable business environment, but as a data format and deployment format.

</comment></comment></comment></comment><comment><USER44> Imagine Excel with Python.

Edit: I believe Libre has python.

<comment><USER45> [https://www.xlwings.org/](https://www.xlwings.org/)

<comment><USER18> I made some code using xlwings to allow you to emulate spreadsheets with machine learning models à la scikit-learn.

[https://github.com/asemic-horizon/stanton](https://github.com/asemic- horizon/stanton)

</comment></comment></comment><comment><USER46> JavaScript, for better or worse, is probably the most widely used language out there, by nature of being the language in the browser. The push for cross platform, mobile and web with frameworks that leverage it have leaned in on and expanded JS greatly. The engines are highly optimized (more than any other scripting language as feature rich), cross platform and nearly ubiquitous.

VBA just isn't. Anything not JS is just about a non-starter for the web versions of these applications, and that's where things are headed. If you're on Linux it's probably the only option in the space for a while.

JS is pretty decent, the ecosystem is massive, and you have the option of TypeScript if you want something more formal. Guessing everything MS offers will actually be written in TS, just consumable in plain JS or TS.

</comment><comment><USER47> Reading the replies to this post, the title is most certainly click-bait and not encouraging deep discussions.

</comment><comment><USER48> I have a soft spot for VBA. Programming macros in Excel was my introduction to programming; it made me realise how simple it can be to automate a repetitive process and save yourself literally hours a day with just a small investment of time.

</comment><comment><USER49> I still think that original Excel macro language was better than VBA. It essentially excel's formula language extended to be imperative language and represented as sheets. At the same time it was user friendly and had kind of lisp feeling.

</comment><comment><USER50> If there's one thing I've learned in 15 years of IT work, it's that once business users have discovered a thing it will never die.

No matter how outdated, shitty, useless, etc. it may be, some jackass has built their entire workflow around it and has more power than you to prevent that from ever changing.

</comment><comment><USER51> VBA was my entree into professional programming and I'm not ashamed to admit it. I enjoyed using BASIC to solve my own problems (games) as a kid, but VBA showed me how fun it was to solve other people's problems.

</comment><comment><USER52> VBA will "die" (in the same way fortran is dead) when people can record macros in another language, and then keep those macros baked into xlsm files.

</comment><comment><USER53> Hopefully not. It's withstood the test of time, why replace it with something trendy?

Edit: Yes, Python has also withstood the test of time... as a scientific and web language. There's no reason to assume that it could replace VBA as a spreadsheet automation language used by relatively non-technical business folks.

<comment><USER39> Python is widely regarded as a very good first language for non-programmers.

</comment></comment><comment><USER54> With ExcelDna, which is open source .NET library, has very fast C API and rich COM API, I don't know why one would use VBA for new dev. One commenter here said debugging of interop libs is hard, but my experience is quite opposite - it works nice from Visual Studio with normal F5.

</comment><comment><USER55> Microsoft will probably port VBA to WASM. With the mass of all MS Office dll involved, this can grow huge.

</comment><comment><USER56> VBA was the first environment/language that I professionally used at the beginning of my career. It was so efficient to navigate in an environment that had 1000s of Excel files. I did not realise how fast I could develop the things needed to be done.

</comment><comment><USER57> Short answer? No. Just like COBOL and fortran. With us until the heat death of the universe.

</comment><comment><USER58> One of things that at least the old Microsoft was really good at was backward comparability.

<comment><USER59> Did they break that recently ?

<comment><USER10> They keep compatibility but abandon a lot of stuff. If they switch to JavaScript VBA development will slow to almost nothing and it will take years for the JavaScript stuff to catch up, if ever.

Something similar happened with visual studio. 2008 was really nice, very customizable and fast. Then they redid everything in 2010 and the result was slower with way less capability. And even now there are still a lot of features that 2008 had not implemented.

<comment><USER60> I also love vs2008 over vs2010 and still use it for some projects just because it feels so nice and snappy.

But which features exactly are missing in vs2010 that were in vs2008 (except the snappy feeling)? I have not actually noticed anything missing and would like to know more

<comment><USER10> 2008 had an excellent macro recorder which was gone on 2010. 2008 had an easy way to customize toolbars and menus by drag and drop. With 2010 setting up a toolbar is much harder. There were a few other things but I don't remember right now.

</comment></comment></comment></comment></comment><comment><USER61> If they killed it today, then if VB6 is anything to go by, it will still be chugging along unconcernedly in 2050. VBA was a huge component of VB6, so it would be relatively easy ( I think) for MS to produce a 64 bit VB7.

</comment><comment><USER62> Depends on what you're using VBA for, it is for Excel data processing or analytics. IMO it will likely die out, there are much better data solutions on the market for data analytics that use python.

</comment><comment><USER63> I can relate to every single point he makes about how great VBA is compared to other languages and how annoying it is that MS has basically abandoned it in favor of JS.

</comment><comment><USER64> As any single provider language, VBA will die on the moment Microsoft decides to kill it.

They don't seem to be in that mood, so no, not today.

</comment><comment><USER65> this will definitely will be a huge relief for many sys-admins in windows environments... I think javascript isn't a bad choice since ms isn't as ignorant as some years ago, when it comes to new standards.

</comment><comment><USER66> Hey, hey, my, my, VBA will never die.

The real question is whether VB6 will ever die.

</comment><comment><USER67> TL;DR: No, or at least not anytime soon (author guesses 2035.)

</comment><comment><USER68>
        10 PRINT "Nope"
        20 GOTO 10

</comment><comment><USER69> No, it will not.

</comment><comment><USER70> Betteridge's law of headlines rings true.

<comment><USER71> Will VBA live?

</comment></comment><comment><USER72> Betteridge's Law says no.

<comment><USER73> COBOL's Law also says no.

</comment></comment><comment><USER74> As it is 2020 and VBA still exists. No.

<comment><USER75> We've taken 2019 out of the title above since if there's anything interesting about the article, it's not that.</comment></comment>


Tell HN: VirtKick has pulled the rug out from under us - <AUTHOR>

You might remember https://www.virtkick.com (discussion: https://news.ycombinator.com/item?id=8527185), which billed itself as an open source, self-hosted Digital Ocean and led a campaign on IndieGoGo: https://www.indiegogo.com/projects/virtkick-take-cloud-back#/story.<p>There was some concern at the time about requiring copyright assignment, and it looks like the concern was well founded. They have switched their model and are now releasing a rather limited subset of the functionality as open source and moving to a paid, SaaS model. So far as I can tell, it's not possible to set it up on your own infra. <comment><USER2> It would really shock me if no OS solution exists in 2015 (solution could equal piece of crap, but there has to be one).

I don't think it would be too difficult to build the infrastructure yourself.

OpenStack is a viable route you can look at for managing "cloud" infrastructure.

Concerning the startup, well ... Somebody seems to always get shafted by a startup. If you paid them $2 for their unsucessful indiegogo, download the limited open-source stuff and move on.

</comment><comment><USER3> Huh, that's a bummer. I liked having an open source PaaS platform.</comment>


Will general motors die because of Tesla? - <AUTHOR> <comment><USER2> They already died once, in 2009.

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

</comment><comment><USER3> That's the 9th question in two days and now three submitted in two minutes. Is that an attempt to gain more karma?</comment>


Ask HN: Is there a HIPAA for dummies for medical startups? - <AUTHOR>

We're kicking a medical product idea around, and my understanding of HIPAA is basically "that sounds scary".  I know there are a few people around here who are doing medicine related startups, and I hope one of them can point me to some resources for understanding what a technology provider needs to account for.<p>I know step #1 should be "talk to a lawyer", but I'd really like to understand as much as I possibly can beforehand. <comment><USER2> Go to the source: [http://www.hhs.gov/ocr/privacy/hipaa/understanding/index.htm...](http://www.hhs.gov/ocr/privacy/hipaa/understanding/index.html)

It's not really that hard. Keep personal data secure when stored and encrypted when in transit.

</comment><comment><USER3> We've been in this space for a long time, doing both consulting work and two healthcare web services.

It is usually a mistake to think of HIPAA as some sort of over-arching checklist of requirements such as encryption schemes.

Instead, your goal is to put together a privacy and compliance plan that meets the HIPAA Rule as well as state and local regulations, which sometimes are more specific or strict. I find that the best way to start is to think about how your service uses data, who are your users, and what are they doing with the data (sharing it with others, keeping track of it, submitting claims through your system, etc.). Once you've figured that out, use the flowchart on the HHS website to determine if you are a covered entity under the HIPAA rules: [http://www.cms.hhs.gov/HIPAAGenInfo/Downloads/CoveredEntityc...](http://www.cms.hhs.gov/HIPAAGenInfo/Downloads/CoveredEntitycharts.pdf)

Once you've determined if you are a covered entity, you can narrow the parts of the Rule in which you need to become expert. Depending upon your business, you may determine that you are a healthcare clearinghouse, a provider, a payor, or not a covered entity at all. Each of these entities have specific requirements, and you'll need to work with these requirements as well as fill in details in your privacy plan so that you can act within the law and also be a good data steward for your users. If you are not a covered entity, you still may need to comply with some parts of the Rule because you are acting as a Business Associate (BA) of a covered entity. Or you may not be a business associate-Google Health for example does not consider itself to be a BA.

The HHS website ([http://www.hhs.gov/ocr/privacy/hipaa/understanding/index.htm...](http://www.hhs.gov/ocr/privacy/hipaa/understanding/index.html)) is a good place to start. After that, the HIPAA Rule is formally implemented in 45 CFR Part 160, and Subparts A and E of Part 164:

* [http://www.access.gpo.gov/nara/cfr/waisidx_07/45cfr160_07.ht...](http://www.access.gpo.gov/nara/cfr/waisidx_07/45cfr160_07.html)

* [http://www.access.gpo.gov/nara/cfr/waisidx_07/45cfr164_07.ht...](http://www.access.gpo.gov/nara/cfr/waisidx_07/45cfr164_07.html)

Privacy rules are just one of the complex parts of healthcare. This is a huge part of the economy, and a large amount of the inefficiency isn't because someone hasn't created a web service to streamline it. Healthcare data aren't like banking transactions-there is a complex vocabulary and making it machine readable has been a huge challenge and isn't anywhere near being solved. There are also many embedded interests (employees with jobs they don't want to lose as well as big companies with profit motives). The upside is that if you do something successful, you will improve the lives of many.

Best of luck with your venture, and get in touch with any questions (mscantland at innova-partners dot com).

<comment><AUTHOR> Ah, that's good info. I thought it was more along the lines of the PCI stuff. Glad it's not!</comment></comment>


HTML5 Canvas performance: low-level optimization tips and tricks - <AUTHOR> http://www.elekslabs.com/2012/11/html5-canvas-performance-and_9.html Low-level optimizations matter even if you write your code in high-level language such as JavaScript. Code is still executed on same hardware as if you write it on C++. Each JavaScript engine is different. You can have significant performance boost in one browser, but at the same time your fix may make your code slower in another browser. Test your code in all browsers your application must work with. Keep the balance between code readability and performance considerations. Sometimes it makes sense to inline function even if it makes your code less readable. But always make sure that it brings you desired value: it doesn't make sense to sacrifice code readability for 2 ms performance boost for code that is already fast enough. Think about object allocation, memory usage and cache utilization, especially if you work with memory intensive algorithms. <comment><USER2> Kudos, writing flood fill is tricky...lots of gotchas. Another tip: _always_ use === instead of == if you are doing numeric compares. You might see a perf increase there.

If you are interested, I have a decently quick floodfill here. Might be worth a benchmark but never got around to it: <https://gist.github.com/4071852>

Another thing is, this stuff can easily be thrown into a webworker, which will definitely help with some more complicated fills on larger canvases.

</comment><comment><USER3> Function inlining is absolutely automatic in modern JS runtimes. Of course, that doesn't mean the functions you want inlined will get inlined, so it can still occasionally pay off to do it by hand - but make sure you test to see if the results are actually better. Sometimes the runtime will decide not to inline a function for a good reason. For example, if the function you're calling has something wrong with it that deoptimizes it in the JS runtime, inlining that function will successfully deoptimize the outer function. Now more of your code is running slowly.

EDIT: If you're micro-optimizing, why not cache '((hitColor >> 24) & 0xFF)' in a local at the top of the function instead of computing it every iteration? Loop invariant code motion might hoist it for you, but I don't know why you wouldn't do that by hand.

Also, wrapping your integer arithmetic in ( ) | 0 may improve its performance in Firefox and some other browsers because it allows the JIT to omit overflow checks. Should help since you're doing a lot of addition to index into arrays.

</comment><comment><USER4> nice article. i've been optimizing my canvas algos for the last couple days and i'll see what other bits i can pull from here. keep in mind, firefox may take a nose dive in canvas ImageData performance (we-re talking a factor of 2-3) if this bug isnt resolved soon - <https://bugzilla.mozilla.org/show_bug.cgi?id=746773>.

my nightly FF does in 500ms what FF16 does in 250ms and chrome does in 200ms :(

</comment><comment><USER5> Also creating dictionaries (associative arrays) may help to keep track of objects without having to run over the whole array every time you need to access an object.

<comment><USER3> This is only true if you're doing a ton of array searching. Using an Object as a dictionary in JS has a lot of overhead so it's going to be much slower than using a dense array in many cases.</comment></comment>


PoC||GTFO 0x16 [pdf] - <AUTHOR> https://www.alchemistowl.org/pocorgtfo/pocorgtfo16.pdf <comment><USER2> I absolutely love the name.

Here's a Google Docs mirror, stripped down to 15MiB by removing hidden data:

[https://drive.google.com/file/d/1DASC25AIlHPdzOYs2-eB3iVqfjN...](https://drive.google.com/file/d/1DASC25AIlHPdzOYs2-eB3iVqfjNUItuz/view?usp=sharing)

@edit re: why would anyone remove the hidden data?

It makes sense when you mostly want to read the thing and/or put it on an e-book reader. I'm not saying you HAVE to use this version, it's just that if you don't plan to look at the hidden data at first, I'd download it.

<comment><USER3> I don't understand why you would remove the hidden data. I understand that size is a concern for somebody who might just be interested in reading a pdf. But this is totally beside the point when studying weird machines. The whole idea is to poke around within the polygot. [https://twitter.com/travisgoodspeed/status/92539248920853708...](https://twitter.com/travisgoodspeed/status/925392489208537089)

> The latest (pocorgtfo16.pdf) is a polyglot that is valid as a PDF document, > a ZIP archive, and a Bash script that runs a Python webserver which hosts > Kaitai Struct's WebIDE which, allows you to view the file's own annotated > bytes ...

<comment><USER4> I mean, the polyglot thing was cool the first time, cool the second time, only slightly less so the third time, and and so on. But by the 16th time, when the PDF size has blown up to 48MB hosted on a slow server, and I'm watching a seemingly-endless spinner as my phone tries to download the whole thing over a poor LTE connection, just so it can throw away all the extra stuff and let me read the few KB worth of text in the issue… as best as I can, at least, when (as with all PDFs) their fixed line width is terribly suited for phone screens, and not all that well suited for _any_ commonly used electronic display…

…well, I start to think that they could do a better job of showing off their savvy and old-school-ness by using a plain old HTML page. Maybe without any CSS - that seems like their style.

</comment></comment></comment><comment><USER5> Fun zine.

As a side note the acronym POC is widely used in the humanities to mean "people of color". Combined with 'GTFO', well er, I wasn't sure what I was going to find upon opening the PDF.

<comment><USER6> Funny how different communities use language differently.

The few times I've encountered that usage of PoC, it took me a minute to figure out that we weren't talking about proof of concepts having unique challenges.

</comment></comment><comment><USER7> Slow going 48mb PDF. Mirrors:

[https://nyc3.digitaloceanspaces.com/example- name/pocorgtfo16...](https://nyc3.digitaloceanspaces.com/example- name/pocorgtfo16.pdf) [http://openwall.info/wiki/_media/people/solar/pocorgtfo16.pd...](http://openwall.info/wiki/_media/people/solar/pocorgtfo16.pdf)

<comment><USER8> Or backing up on IPFS: [https://ipfs.io/ipfs/QmeARDNzk5mmMe64aYNHJThMsfF7b5voSFhKh9y...](https://ipfs.io/ipfs/QmeARDNzk5mmMe64aYNHJThMsfF7b5voSFhKh9yQKqwnQA/pocorgtfo16.pdf)

</comment></comment><comment><USER9> I find the nostarch press printing[1] which is printed with the same paper as a bible to be quite fun. An interesting discussion this past weekend about what I would have thought if I had come across it in the drawer at a hotel.

[1] [https://www.nostarch.com/gtfo](https://www.nostarch.com/gtfo)

<comment><USER10> Hah, I was given one at a conference and did indeed leave it in the drawer!

(chuck you were at that conference; next time you stay in that hotel try to stay in room 611 and see if it's still there).

</comment></comment><comment> default-kramer > Technical Note: This file, pocorgtfo16.pdf, is a polyglot that is valid as a > PDF document, a ZIP archive, and a Bash script that runs a Python webserver > which hosts Kaitai Struct's WebIDE which, allowing you to view the file's > own annotated bytes. Ain't that nifty?

Is this true or a joke?

<comment><USER11> I have not ran it yet, but historically these statements that they make are true.

<comment><USER12> It's true. Couldn't open as ZIP, though, GNOME's Archive Manager refuses it.

<comment><USER13> Same issue in OSX with a couple of Unzip tools. Old fashioned unzip in terminal worked perfectly though.</comment></comment></comment></comment>


Move your feet - <AUTHOR> http://swanson.github.com/blog/2012/08/27/move-your-feet.html <comment><USER2> My father used to give me similar advice when I struggled with physics problems: "Keep your pencil moving."

Along similar lines, John Carmack once said: "If you aren't sure which way to do something, do it both ways and see which works better."

<comment><USER3> Or, to use a local quote, "Startups rarely die in mid keystroke. So keep typing!"

<http://www.paulgraham.com/die.html>

<comment><USER4> That sounds both promising and scary. Especially considering that octopart.com, featured in this article 5 years ago is on decline: <http://www.quantcast.com/octopart.com>

Starting up is tough.

<comment><USER5> We've been focused on increasing engagement, conversions and API traffic and have made quite a bit of progress there but those metrics aren't included in the Quantcast stats.

<comment><USER4> Are you able to pay yourself market salaries yet? 6 years passed since Octopus started...

</comment></comment></comment></comment></comment><comment><USER6> I agree 100%. More if I could - the best way is to just get stuck into it and get some momentum. Though I think reasonably early on you step back and check you're doing things optimally.

One day I started running, just like the OP: I put on some shoes and ran. Eventually I followed a co-worker into a 5k race, 10k, half marathon, and eventually full marathon.

Much later I started a new job where one of my co-workers was an ex-pro runner. We went running one day and had to stop me right at the beginning: my running style was awful - I mean I got from point A to point B, but even with 1000s of kilometers under my belt I hadn't gotten good at it! It took me ages to unlearn and relearn to run.

<comment><USER7> What did you do wrong?

<comment><USER8> The OP's argument is wrong. BOTH activities require learning the basics.

What parent, and the OP, did wrong was not understand that running with correct form is not an intrinsic, instinctual human ability. You must learn to do it correctly.

<comment><USER9> _that running with correct form is not an intrinsic, instinctual human ability_

That has to be the most ridiculous sentence I've read on hn in a while. Obviously running with the latest running shoe will skew 200,000 years of human evolution, but _humans are very much well adapted for running 'correctly'_

<comment><USER10> If by latest running shoe you meant latest cushioned, arch-supporting, spring- embedded running shoe, I disagree. That kind of shoe will cause you to run very poorly and will probably injure you, unless you pay careful attention to your form and practice hard. If, on the other hand, you meant a barefoot running shoe (partial to Vivo myself), those induce a much more natural form and make it easier to maintain. I've been running with a barefoot shoe for years with just three principles, which I discovered mostly on my own by feeling it out before finding out that I was right: 1) Pelvis aligned with the ground, 2) Spine erect, shoulders back, 3) Strike ball first.

</comment></comment></comment></comment></comment><comment><USER11> An article by Cal Newport goes into depth on when "just get started" makes sense, and when it's a bad idea: [http://www.iwillteachyoutoberich.com/blog/getting-started- is...](http://www.iwillteachyoutoberich.com/blog/getting-started-is-bad- advice/)

<comment><USER12> Wow, that was an awesome piece that I hadn't seen, thanks for linking to it.

I think it could be summarized as: If resources are sufficient and exact implementation does not matter, just get started, but when resources are scarce and there are many different possible ideas, with hugely different potentials, just starting won't get you very far.

</comment></comment><comment><USER13> Programming is a skill, which means that learning programming languages and techniques is not as simple as accumulating facts. No written guide to programming, no matter how thorough, will ever be sufficient because there are countless details which have to be left out, details which you can only assimilate while engaging in the practice of programming.

No one would suggest that you could become a world-class singer by merely going through a book on the subject. With these physical skills, it's obvious that learning involves doing something other than just absorbing knowledge. I think that, with programming, its nature as a skill is often overlooked because it's knowledge work. The key thing to keep in mind is that you must actually do programming in order to learn languages and techniques.

In Matt's case, he was also trying to develop a new habit - using TDD. Many aspects of programming are like this. Perhaps you want to start documenting your code more or you want to start doing daily standup with your team or _whatever_. These are all habits, some involving just you and some involving your team or organization. Recognizing them as habits will allow you to apply techniques for successfully developing a new habit.

<comment><USER14> > No written guide to programming, no matter how thorough, will ever be > sufficient [...]

Unless, perhaps, if you include exercise and solving them as an integral part of that written guide.

<comment><USER15> Well, yeah, but where would anyone ever find something like that?!?!

<comment><USER14> Are you asking seriously?

<comment><USER15> Negative.

</comment></comment></comment></comment></comment><comment><USER16> Wanna improve your running? Start doing squats. The way to build up speed is to increase the force each step has against the ground. Moving your feet is fine, but if you train your body to push off the ground with more muscle you will certainly go faster.

Computer programming/rails learning is a lot of the same. Not sure what you mean by going right into the mastery of the language. In most compsci/programming stuff there are a lot of fundamental similarities between languages and really the differences can be challenging at first but are easy adaptable after a few examples and maybe a seg fault or two.

I guess my point is that every art form has a proper way of preparation. Move your feet, sure you will get better, but if you only follow this montra you are sure to run into a wall.

<comment><USER17> I agree 100%. Squats (actually leg extensions and leg curls are better for runners) are the secret, the thing people who didn't bother to do the research don't know. They don't have the edge.

Paralysis via analysis is bad, I agree with the post's main point. But mindlessly grinding is equally bad.

</comment></comment><comment><USER18> Great engineers ship. It's helpful to remember that no matter what you write, someone will be able to criticize it. It's a lot easier to write code that does its job than it is to write code that's going to be critically evaluated by a huge panel of theoretical, hyper-critical programming gods.

A good thing to do when you find yourself paralyzed in a rut is to tell yourself you're going to write the first one as a throw-away prototype, whose purpose in life is to explore the solution space and learn what you need to do it right. Give yourself the freedom to do whatever on that first version. The learning is always the most valuable part of any deliverable anyway.

<comment><USER19> Good tip, though we all know half of the web is built using that throw-away- soon / it's-just-an-mvp code. there is nothing as permanent as temporary code.

<comment><USER18> Even more common is the code that was never written.

</comment></comment></comment><comment><USER20> The funny thing is that TDD is actually a great way to break paralysis analysis. State what you want your new feature to do, get it working, improve it, or don't... you've got your ass covered so you can always make it more "perfect" later on without worrying about breaking anything. Without the safety net there's a pressure to get it right first time as it might be too risky to change it later.

<comment><USER21> This is true only once you've decided on your tools, and rails has such an outrageous selection that I can see people getting stuck before they start.

Should I be using Test::Unit or RSpec? Maybe Cucumber? Should I be testing this functionality as unit tests, functional tests or integration tests? Should I seed the database with fixtures or factories? If I want to use factories, should I use Machinist or Factory Girl? How am I going to test client-side functionality? Selenium tests, or webrat or javascript unit tests? If I'm using javascript unit tests, then do I use Jasmine, or QUnit, or Mocha?

The answer to most of these questions is really just a matter of personal preference, but you can see how easy it is to get overwhelmed even after you've decided to do TDD on Rails.

<comment><USER22> Great perspective. I called my dad last night and he told me he'd been thinking about "this LastPass thing you keep telling me about" and that he wanted to try it out and asked me if it basically was the gold standard or are there other companies that do it better.

I told him that I could discuss the options with him for a half hour but the point isn't to pick the best password manager, the point is to use a password manager. There are 10 different companies in this space and telling him about all of them will only create a barrier to entry. The huge wins you get from the macro-optimization of starting far outweigh any micro-optimizations between different providers.

</comment></comment></comment><comment><USER23> I built my first and second rails projects without writing any tests. These were very small projects, just a few weeks of work on the larger one. By the time I was two weeks into the second project, I knew I was wasting a lot of time because I kept doing similar tests in the console when writing or modifying new code. But by that point I already felt like I had too much uncovered code to start writing tests. Cause if someone looked at it and saw just one test, what would they think ? (I know, right?)

The real reason is some kind of fear, that I do not exactly understand. Luckily, these were very small projects and never became anything I had to actually support or the tragedy would have been a lot more substantial - as it is my main loss was my own education.

My third rails project I forced myself to write specs and NEVER use the console for anything that slightly resembles testing - even if its just "trying things out". I put it all in tests and code and spent the effort to get my testing setup really fast and slick.

I've written dozens of tests now and still have a lot to learn but I'm definitely seeing a lot ofvalue. Hopefully it is not just cognitive dissonance. I've spent way more time on tests than on the actual code. I expect though that part will get better. I've been programming for sixteen years, but only testing for a few months.

One thing that really helped me is having some examples - the first I looked at were the tests that come with Devise, the other was the specs in Diaspora (<http://github.com/diaspora/diaspora>) . They have like 1700 tests for that rails app. I'm doubt they are a paragon of testing virtue, but it is a hell of a lot more relevant than the same trivial examples I've been reading in blogs for the last decade.

</comment><comment><USER24> That's the problem that can be witnessed in software development teams too. Analysts are over-represented in our craft so there's a real risk of analysis paralysis. A potential remedy is a more impulsive type on the team who prefers to start playing with the problem. You should be careful not to stop him from doing that. If there's no such a person then someone, preferably a leader, should move on to prototyping if the project got stuck.

All that applies to individual software development too. If you see no progress because you are constantly analyzing then start prototyping.

</comment><comment><USER25> Enjoyed the post thoroughly. Been working in software for 6 years now and I can remember countless instances where I could not get working code out because I wanted to achieve perfection. It wasn't until last year when my mentor told me the same thing, don't be shy of typing, write the damn code. I am happy for you that you have this figured out early in your career.

</comment><comment><USER26> Best advice I got from a friend about programming is: make it work, then make it better, then make it faster.

</comment><comment><USER27> Nice post, I can relate a lot as a fellow engineer and a wanna be runner. haha I think in software a lot of what impedes progress is attitude and reputation protection. Since we assume there is a "correct" way to do things we spend a lot of time trying to learn that instead of just shipping something. My thought is that we have a fear to put something non-optimal out there because we think another engineer is going to look at our code and assume we are an idiot if we didn't execute every detail to perfection, or didn't use some particular pattern that's popular. I think this is kind of sad since solving problems and creating something interesting is really what software is all about. When you're starting to be a runner I think the attitude is different, people respect the effort of just getting out and doing something. We also know the body isn't going to respond instantly, pushing too hard to fast will cause injury instead of improvement. Yet somehow in knowledge work we assume learning time is zero, even though we know this is never actually the case. Hopefully some day the culture will shift to more like that of running, until then it's more of an individual battle to have the courage to just ship something.

\- Dave Mathew (@mathewda)

</comment><comment><USER28> True. But not forget that you have tens of years experience of walking and running before you decided to improve your running. If you would have that many years of Ruby experience you would have better chance to get to TDD nirvana too.

<comment><USER29> This. That said, since the OP is already a developer I would think he has _sufficient_ base to dive into a RoR project should he desire.

Perhaps if his domain were radically different (say, embedded systems) he would need to explore the fundamentals of web application architecture before putting together a rails app.

That said, I still remain on team "learn the fundamentals", and have yet to find a truly compelling reason to take the "grok as you go" approach. Maybe I'm just stubborn.

</comment></comment><comment><USER30> Hmmm, While a agree with the general gist, I've seen many MANY projects fail because of "just starting".

Coming from games I can whip out C/C++/OpenGL and get something bouncing on the screen. I can prototype. But at some point I need to add in artists and designers at which point it will be months till I have anything close to Unreal or Unity.

But I don't know Unity or Unreal so I stick with C/C++/DirectX and then hit that wall.

I assume the same is true for other areas. I could write webapp in cgi/perl/html/js or cgi/python/html/js or php/html/js those are what I know. But if I chose Rails or insert-framework-of-the-month-here I'd gain so much functionality.

Back to games. I could hack an iOS game together in ObjectiveC/C++ or I could choose a framework and get free server side highscores, free in app purchase framework, free social network integration, etc... etc... etc...

So yes, you can fail because you never take the first step. But you can also fail because you don't realize that the few hours it takes to make a working prototype is actually only 1% of the work you have to do to ship and that if you'd have chosen a framework/engine you'd start at the 50% or 75% mark instead of the 0% mark.

</comment><comment><USER31> I can relate to this quite a lot.

Protip: Now it's time to go outside, the satisfaction of running outside exceeds that of running on the mill by far!

<comment><USER32> The form is also quite different. I cannot run on a treadmill due to my gait (though while I run outside I do concentrate on improving my form).

</comment></comment><comment><USER33> I have been doing professional RoR development for a couple of years. I have made several attempts to use proper TDD, but always revert back to old habits.

I can think of four reasons why this happens to me:

a) there aren't many good examples of applications built using TDD available. see <http://s831.us/PM6jkb> ,

b) TDD becomes very difficult when your application incorporates complex 3rd party data sources and APIs,

c) feels like you are writing the application twice (once in Cucumber/RSpec and once in RoR),

d) pressure to "get something done" results in backsliding.

By contrast, I have been running for exercise the last couple of years. Running is not competing with an established habit and I see immediate benefit from almost each run. I highly recommend getting a FitBit or Nike+ SportWatch GPS and signing up for a stretch goal. For example, successfully ran the Dipsea this spring. Now training for half marathon in October.

<comment><USER34> My problem with TDD is that I never know what I _need_ to test, until I've at least started spec'ing the project, and I don't do that on paper. I do that in code.

<comment><USER35> I face this issue as well. I see the value in TDD but at the beginning of a project I often end up wasting a lot of time churning through articles on TDD and researching the documentation of various test frameworks because figuring out what I _need_ to test before I start writing code never seems to click with me. I believe it's a skill that I simply need to improve but my progress is slow-going which often gets frustrating.

</comment></comment></comment><comment><USER36> This reminds me the best running advice I ever received. In a comment when asked how to run fast, a very accomplished ultra runner replied, "If you want to run fast, run fast."

<comment><USER19> Nice, I also like this one: "You begin running as fast as you can, and then gradually increase your speed." (sounds better in Hebrew, taken from the cult movie "Operation Grandma")

</comment></comment><comment><USER37> You can hurt your knees quite easily by "grabbing any pair of shoes"... like I did. It took me 3 months to recover. Before you start running, buy a pair of shoes that better fit your body type[1]

[1] <http://www.therunningadvisor.com/running_shoes.html>

<comment><USER38> Or scratch that and go barefoot. Let your feet do what they were meant to do by themselves: running!

<comment><USER39> Yep. The problem with modern shoes is that they give people the bad habit of hitting the ground with their heel, the shoe compensating the shock with some kind of absorption.

The "secret" is simple is to simply run using the ball of the foot (the fleshy part at the end). You run on the tip and use the heels as a natural shock absorber and preserve your knees. This will have the added benefit of strengthening the heels as well.

With that in mind, running barefoot is pretty safe (and you can do it outdoors with Vibram-like shoes).

I do that kind of running regularly as part of the warmup routine at my Taekwondo dojang.

<comment><USER14> For the beginners: Just start very gradually. Your calves will get extremely sore in the beginning. Soreness isn't harmful, but it's painful.

</comment></comment></comment></comment><comment><USER12> An interesting corollary to "Move your feet", instead of overanalyzing, is that you can't get good at something without doing it repeatedly. When you do something over and over again the analyzing mind starts noticing things that often turn out to be useful. The problem with the mind is that it does not really seem to know when it has enough information. As in the running case, the best thing would be to go out running (not too often at first, to avoid injuries), and gather information about running. But the mind does not mind to just analyze and analyze the same insufficient information available.

</comment><comment><USER40> Aka "just fucking do it". The #1 cause of startup failure is making yourself very busy pretending to work

<comment><USER41> Ship.

</comment></comment><comment><USER19> Yep, "Perfect" is the worst enemy of "done". Users don't view source before they open their wallet. Don't write bad code, but don't avoid writing code, as it will be never be perfect.

</comment><comment><USER42> I'm not sure that programming and running are both skills that are innate to humans. I started running because I was inspired from reading Born to Run. I basically went out and did it. Little training is required. There is some skill involved, but mostly just heart. One has to learn the skill of programming. I can't tell my son to "go program", but he can "go run".

</comment><comment><USER43> Nice analogy!

Kent Beck, rediscoverer of TDD (who surely can't be expected to have analysis paralysis on how to do TDD), actually wrote about exactly this a while ago: <http://www.threeriversinstitute.org/JustShip.html>

</comment><comment><USER19> Very well written, honest and so true, I can relate so much, reminds me of this excellent post: [http://www.zemanta.com/fruitblog/i-bet-you-over- engineered-y...](http://www.zemanta.com/fruitblog/i-bet-you-over-engineered- your-startup/)

</comment><comment><USER44> Yep.

Nike hit gold with "Just do it" 'cause it really does sum things up.

If nothing else, throwing yourself into something will give you a context and sense of the immediately relevant parts of the subject that will make your eventual research and preparation much more effective.

</comment><comment><USER45> I disagree with the sentiment that the best way to move forward is always to start hacking. I too tried to learn TDD by simply writing tests first, which was frustrating and unproductive.

That approach seems similar to learning to program by typing random words into iPython until something happens - it could work, but it's going to take you months to even discover a "for" loop. It's better to read a tutorial and the documentation while experimenting.

I finally caught on to TDD after watching the screencasts at destroyallsoftware.com, and I highly recommend it to others wanting to learn. TDD is a completely different way to develop, not just an additional step on your old routine.

</comment><comment><USER46> I think the last part of the post where he meets the ex pro runner is key. There's the old adage of "practice makes perfect" whereas in reality it's "perfect practice makes perfect". Learn how to run properly first (much harder than it looks) then start to add the miles / pace. Chi Running is a fantastic book for this (although it's incredibly verbose). A key thing I learned there is the value of a metronome to aid in cadence.

</comment><comment><USER47> I guess this is true for many activities, not all. If my to do list app has bugs, the worst that could happen is some users will get annoyed and leave. If my medical equipment software has bugs, people might seriously get injured or even die. In the first case, just start and get it done makes a lot of sense. In the second case it doesn't.

Nice article and nice advice though.

<comment><USER48> I don't think that's the point of this article. The real point is that you learn through actually doing stuff. You can read as many books as you want about designing your medical equipment, but I can be pretty much anything that you won't get it right the first time anyway. So read just as much as you need to get you started, get to real work, and soon you'll find out what else you have to read about. And so on and so on. Try, fail, educate yourself, repeat. With your to do app release after 3-4 iterations, with medical equipment release after 30-40. But keep on trying and actually doing, vs meditating about it.

This is how I see this article, and therefore it applies to both, to-do apps and more serious stuff.

</comment></comment><comment><USER49> Also depending on your goals though, for recreational purpose, it probably doesn't matter what approach one takes. I can't compare playing golf with running. Golf is probably a thousands times harder than running just to get started. To get the thing right and do it well in the long run, start with the proper form is crucial.

</comment><comment><USER50> This is a common problem we've been encountered through time. When I find something news, I will search "the best of" .. right after that. And leading to that is a lot of search, research, finding cool things. Now I rather create work things then make it sexy like ladies later :D

</comment><comment><USER51> I still believe in reading books and solidifying your fundamentals first before jumping into a big project. I've learned the hard way that just jumping into and try to figure out things as you don't understand does not work for everyone.

</comment><comment><USER52> Yeah, specs are that hard.

</comment><comment><USER53> Now I know my disease, a septic shock variant of analysis paralysis.</comment>


How to create an AI startup – convince some humans to be your training set - <AUTHOR> http://simplystatistics.org/2016/03/30/humans-as-training-set/ <comment><USER2> "It will also be interesting if there is a legal claim for the gig workers at these companies to make that their labor helped "create the value" at the companies that replace them."

Well, I would certainly hope any employee help create value for the companies they work for... even if they get laid off eventually.

<comment><USER3> The key word here is "legal". Without having a contract to that effect, no employee or contractor can just appropriate equity, regardless of how much sweat they put into building the company. I'm not sure why OP thinks there might be a legal claim.

</comment></comment><comment><USER4> I think he's _really_ missing the point about the importance of self-play in Alpha Go. Human play provided a seed for training the system, but the thing that made it work was the fact that the computer could play an unlimited number of games against itself; the fact that Go is a game with clear rules made it possible to label a huge number of board positions without any human- derived training data at all. The human-derived training set isn't nearly enough for this.

<comment><USER5> Do you have first hand sources about this? I have now been hearing all and everything about what makes Alpha Go so great... First it was the hardware, then it was the use of the Monte-Carlo tree search with NN... And even more just 1 day ago [https://news.ycombinator.com/item?id=11382954](https://news.ycombinator.com/item?id=11382954)

<comment><USER4> "the AlphaGo algorithm, this is something we're going to try in the next few months — we think we could get rid of the supervised learning starting point and just do it completely from self-play, literally starting from nothing."

[http://www.theverge.com/2016/3/10/11192774/demis-hassabis- in...](http://www.theverge.com/2016/3/10/11192774/demis-hassabis-interview- alphago-google-deepmind-ai)

(This is why I take exception to the claim in this blog post that the supervised training data was critical to success...)

<comment><USER5> Ok thank you for your answer. So many things are claimed that it is hard to track what is real and what is just hype.

I agree that it's something big. Training Alpha Go on itself means something bigger than "just" optimizing a statistical model on human data. I think recognition of logic elements to strategy planning are parts of what will make ML really close to IA. (With memory, and cleverness to learn) And are the next big steps.

</comment></comment></comment></comment><comment><USER6> Would have like to hear at least one concrete exemple of startup actually doing that. Seems a bit theoretical at the moment, as big companies doesn't need to do that thanks to existing datasets, and I've never heard any startups using dozens (hundreds?) of contractors for this kind of job.

<comment><USER7> Netflix used humans to tag movies for their recommendation system.

Source: [http://www.theatlantic.com/technology/archive/2014/01/how- ne...](http://www.theatlantic.com/technology/archive/2014/01/how-netflix- reverse-engineered-hollywood/282679/)

<comment><USER8> Netflix is not a startup.

<comment><USER9> At one point, Netflix was a startup.

<comment><USER8> Yes but it wasn't in 2014 or 2012.

</comment></comment></comment></comment></comment><comment><USER10> This does hit at one of the most basic debates of the next decade - how much of my actions and behaviours do I own? Creating a link from one page to another, thus providing PageRank with value - do I get a cut of that value? Purchasing a book or a film, thus making profit for the reseller's recommendation engine? Driving around populating maps with my GPS co- ordinates. Just generally leaving digital footprints makes someone a training set somewhere - and yet instead of this being a public good it's private profit - the term bandied Around after 2008 was "socialising risk, privatising profits". The same debate should be happening here - but I only occasionally hear about something like it.

Or am I listening in wrong places?

</comment><comment><USER11> It wont work this way in the short term.

Any company doing "AI" will get there over a long period of time by employing people to do actual work and then slowly automating that work away. If you wait for a huge dataset or some new technique there will be tons of competition.

</comment><comment><USER12> >It will also be interesting if there is a legal claim for the gig workers at these companies to make that their labor helped "create the value" at the companies that replace them.

I'd assume that you'd be waiving any legal claim they might have when they sign the ToS or w/e. I mean, in all fairness, they are getting paid to perform these actions and be recorded. What more would they have any claim for anyway? A percentage based on the times their anonymized playthroughs were used?

"Well, we've got 1,000 people and each played 100 games of Go. We took that 100,000 games and trained a single dataset to play against itself." User is 1 player of 1,000. Company makes 20,000,000 and sets aside 25% (magically) for paying back the original people. Those people now get $5000. That $5000 is cool but it's not life changing.

EDIT: It occurs to me that my numbers could be skewed. This could be significant if they only used 100 people or so, I guess. My point wasn't necessarily to shoot down the notion just to discuss it. What would the person have a claim to be it legal or otherwise?

</comment><comment><USER13> Microsoft, perhaps inadvertently, did that. Tay's stream of consciousness can now be used as a training set for an abusive content monitoring AI.

<comment><USER14> You could crawl 4chan and get a bigger dataset of abusive content. But that cold lead to terminators showing up on my lawn.

</comment></comment><comment><USER7> The interesting question is what would you call these humans who are serving as your training set. Do you call them "Machine Therapists" (trying to coax the AI to proper behavior)? "AI Educators" (providing the material that is used to teach the AI)? "Data Scientists" (they are curating data and handing it off to the machine)?

<comment><USER15> Hopefully they call them "people who gave their informed consent to use their data in this specific AI project".

</comment></comment><comment><USER16> Searle would have us interpret this as the company taking the intelligence of the humans, refining and repackaging it.

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

</comment><comment><USER17> Unclear how this is new, even Google, Amazon, etc. have either been doing this internally, offering it as a service, been susceptible to man-in-the-middle exploits to mining real world data for training sets, released data, etc.

<comment> awinter-py Spot on. One recipe to become a tech acquisition target is to collection a 'new kind' of user data -- all big companies are hungry for this.

This phenomenon is not at all new; data has been informing investment models forever and access to that data comes from having the right customers, and is closely hoarded once gotten.

Some of the largest companies in the late middle ages were wool buyers -- they weren't permitted to trade internationally, but they used locally owned franchises and market knowledge to corner the market anyway. And many of the largest ag commodities futures traders in this century also own substantial farm acreage. Those capital one guys who were SEC'd for trading options on credit card receipts were leveraging customer activity.

Point being -- you've always needed data to train a good model.

</comment></comment><comment><USER18> With the many parameters, the _normal equations_ will become large. In that case, can consider solving the equations with the old iterative method Gauss- Seidel.

</comment><comment><USER19> I've only a little experience in NN, but getting trainers is rarely the bottleneck - it's usually in programming the NN.

</comment><comment><USER20> I plan to do just that, but my end goal is to provide a free service that has tons of value for my users.

</comment><comment><USER18> There's a chance that some Web site ad targeting is being done this way.

</comment><comment><USER21> This is kind of "no duh".

Not really an article that adds much value or understanding, especially for a blog seemingly being targeted to a technical audience.</comment>


Decision tree research papers from the last 30 years - <AUTHOR> https://github.com/benedekrozemberczki/Awesome-DecisioN-Tree-Papers <comment><USER2> Was first thinking (hoping) this was a decision tree what to read for all research papers of the last 30 years. Would be a gigantic tree but immensely cool to traverse such a tree based on decisions (questions) in the root and child nodes until you reach a collection of leaf nodes with papers to read. Parked that idea for later :).

This is also nice but not for me personally as the topic is not in my direct interest for now.

Thanks!

</comment><comment><USER3> Lists can't be Show HNs. Please see [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html).</comment>


On the Cruelty Of Really Teaching Computer Science[pdf] - <AUTHOR> http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF

<comment><USER2> Good penmanship, by the way (date: 1988). Do young kids today get to practice their handwriting much?

Good stuff so far: _"By evoking the need for deep conceptual hierarchies, the automatic computer confronts us with a radically new intellectual challenge that has no precedent in our history."_

<comment><AUTHOR> We still do, for now. But I can see the transition coming in one or two people eschewing handwriting for laptops in eachof my classes at the high school level.</comment></comment>