Go Python, Go: Stream Processing for Python - <AUTHOR> https://blog.wallaroolabs.com/2017/10/go-python-go-stream-processing-for-python/ <comment><USER2> What about the use of Pony? I did not hear about it before but I do like some of the ideas of the language I read on their website. However, they also state "Pony is pre-1.0. We regularly have releases that involve breaking changes. This lack of stability is plenty of reason for many projects to avoid using Pony." How are you going to deal with that?

<comment><AUTHOR> I personally work at both Wallaroo Labs and am on the Pony core team. A number of engineers at Wallaroo Labs are committers to Pony. We are active members in the Pony community and a large driver of many of those breaking changes to Pony. At least 3/4 of the breaking changes to Pony over the last 9 months came from us at Wallaroo Labs. From our side it's not particularly problematic to make the occassional update.

<comment><USER3> "At least 3/4 of the breaking changes to Pony over the last 9 months came from us at Wallaroo Labs." -> And you're proud of yourselves ?!?

(Just kidding of course).

<comment><AUTHOR> I'm going to be writing a blog post on this, but you inspired me to touch on it a bit.

When we went looking at what we should use to implement Wallaroo, one of the things that appealed to us about Pony was that it was a high-performance actor based runtime that we could help mold. We gave consideration to writing our own implementation in C but, we'd still be working on that rather than talking here on HN now if we had.

Pony has gotten us quite a bit. The runtime was used for a number of production projects at one of the major banks so we knew that while there might be some bugs (what code doesn't have them) that we could use it to jumpstart our process.

I gave a talk about Pony and its relation to Wallaroo where I put out the figure of 18 months. I think that as a wild ass guess, using the Pony runtime saved us about 18 months of work to build the foundation we want/need for Wallaroo.

Speaking as a member of the Wallaroo Labs team, it's really nice to have a community based project that you can help mold and grow with. It's been a boon to us as a small development shop in a way that either writing from scratch ourselves or using an existing more widely used runtime wouldn't be.

Speaking as a Pony core team member, I encourage other companies who think they could benefit from a high-performance actor based runtime to have a look at Pony. You could have a large hand in shaping it into the runtime that you need.

</comment></comment></comment></comment><comment><USER4> While the comments about being pythonic are valid, I think this looks fantastic and I'll take it for a spin around the block. Are you using this in your production environment already?

In regards to the 'name' being a function - a class attribute might indeed be more correct but a function allows for dynamic computation names where its applicable.

<comment><USER5> So use @property then?

<comment><USER6>
        __SOME_VAR = "foo"

        @property
        def some_var(self):
            return self.__SOME_VAR

    ?

<comment><USER7> Yes, just like that. Check out this fantastic talk on being pythonic: [https://www.youtube.com/watch?v=wf- BqAjZb8M](https://www.youtube.com/watch?v=wf-BqAjZb8M)

</comment></comment></comment></comment><comment><USER8> I like the absence of java-based tools. But IMO the Word count example is really verbose : [https://github.com/WallarooLabs/wallaroo/blob/0.1.2/examples...](https://github.com/WallarooLabs/wallaroo/blob/0.1.2/examples/python/word_count/word_count.py)

With Apache Spark, the Word count example is a lot shorter: [https://github.com/apache/spark/blob/master/examples/src/mai...](https://github.com/apache/spark/blob/master/examples/src/main/python/wordcount.py)

<comment><USER9> The word count example has... 8 classes. To count words.

</comment></comment><comment><USER10> Proof that you can write Java code in any language. [https://steve- yegge.blogspot.de/2006/03/execution-in-kingdom...](https://steve- yegge.blogspot.de/2006/03/execution-in-kingdom-of-nouns.html) comes to mind when reading the snippets.

<comment><AUTHOR> We are in the process of working with folks on a more "pythonic" API. Our first goal was to get something that would be easy to use out the door then get feedback on ideas we have for something more idiomatic to the language. It's an approach we plan to take when we add support for other languages such as Go and JavaScript over the next few months.

We are looking for folks to help drive the next version of the API. The first one was done with feedback from a couple of clients who were interested in using Python and in many ways reflects their tastes. Feedback from a wider range of Python users is something we are actively soliciting at this point.

 _disclosure: I work at Wallaroo Labs, creators of Wallaroo._

<comment><USER11> I'll be in touch. Best email please?

<comment><AUTHOR> email@example.com

</comment></comment></comment></comment><comment><USER12> Question for spooneybarger or anyone else at Walaroo Labs.

How do you see this comparing to something like Dask? Would it compete with Dask, or be able to somehow work together with it?

Dask seems to let you write idiomatic Python code and not even think about splitting, joining, etc... and it builds the pipeline automagically by introspecting the AST.

<comment><AUTHOR> We are actively looking at how we can better handle use cases like Dask handles. A couple folks we are working with use Dask heavily and are looking to switch. They are far more expert in Dask than we are so I don't want to shoot my mouth of. The issues they've general discussed with us are around performance and scaling problems they have had. We are still actively learning from them and hope to have a first version to start addressing those use cases around the end of this year. Ideally middle of Decemeber.

Dask is very "batch" oriented, which as I said above, is something we are in the process of adding to Wallaroo. Wallaroo is very stream processing oriented. Wallaroo's strength are working with stateful, event-by-event applications.

If you were to take word count as an example. Dask would be great if you had a body of text in files or whatnot that you needed to count. There's a beginning and end to that task. Count the words in this text. Wallaroo would shine if you had a stream of never ending text, like twitter's trending topics.

That's a very coarse outline of a couple of differences. While we are working with clients to help them move off of Dask by adding that functionality to Dask, I also think that if you wanted to, you could use Wallaroo along side a more batch oriented system like Dask. Stream processing and batch processing are complementary. A number of technologies (us included) are looking to unify them. Why? Well, there's a lot of operational overhead to running a batch system and a streaming system. A lot of folks would like to run a single system that works well for both.

I hope that answers your question.

<comment> happy-go-lucky > Stream processing and batch processing are complimentary

Must be _complementary_ , I think.

<comment><AUTHOR> Indeed. I regularly mix the two up. Thanks. Editing to fix.

</comment></comment></comment></comment><comment><USER13> I've used the similar Apache beam project before. [https://beam.apache.org](https://beam.apache.org)

I mainly used their java libraries, but the python binding have been coming along.

<comment><USER14> We recently checked in streaming support in Beam Python here: [https://lists.apache.org/thread.html/82f5b5d2ab2ddd3849584f6...](https://lists.apache.org/thread.html/82f5b5d2ab2ddd3849584f6dfe4128cbd551b10cc0864cae6701d3fc@<dev.beam.apache.org>)

You can take a look at and run the streaming wordcount example in Beam: [https://github.com/apache/beam/blob/master/sdks/python/apach...](https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/streaming_wordcount.py)

In addition to the available local execution, Google also offers running Beam pipelines as a managed service in Cloud Dataflow ([https://cloud.google.com/dataflow/](https://cloud.google.com/dataflow/)). Python streaming is in private alpha--contact us at dataflow-python- firstname.lastname@example.com if you'd like to try it out.

Note: I work for Google on Apache Beam and Cloud Dataflow.

<comment><USER13> I used Google Cloud Dataflow at a previous job. I really did like it and feel like Beam is set up pretty well. Thanks!

</comment></comment></comment><comment><USER15> No support for Python 3

<comment><AUTHOR> Python 3 support is on the roadmap for later this year.

In general, our roadmap is determined by what we think is important but also is heavily influenced by the needs of folks we are working closely with.

There's an almost infinite number of things we could work on so we live to drive our direction based on the needs of folks we are working with. In the case of Python, the early users were all Python 2.7 and thus we focused there. We've recently started working with folks who are looking for Python 3 support (in particular, 3.6) so we are going to be adding it.

If anyone is interested in adding features, language support etc to Wallaroo, we'd love to help. You can find us on freenode in the #wallaroo channel or stop by our user mailing list ([https://groups.io/g/wallaroo](https://groups.io/g/wallaroo)) and we can help you out.

<comment><USER16> Enterprise user here.

Can confirm that we moved all the things to Python 3 (and it was easier than expected). Especially all the data processing pipelines.

No Python 3 is a deal breaker in 2017.

<comment><AUTHOR> We'll have you covered by the end of the year if you are interested in checking us out then.

</comment></comment></comment></comment><comment><USER17> Could anyone recommend any resources comparing the various stream processing frameworks? Apache Storm (which I am familiar with), the below mentioned Apache Beam (of which I just heard for the first time), this new Wallaroo and any others? Beside their homepages, that is.

<comment><AUTHOR> Stepping outside of my "Wallaroo Labs employee" role for a moment.

Comparisions can be really hard. What's right for one application or project isn't right for another. I'd be happy to chat over email with anyone interested in stream processing about the types of applications they are looking to build, the requirements they have etc.

I get nice use cases and information we can use at Wallaroo Labs to help drive our product. In return, I will give unbiased feedback on what you should be looking for to solve a given problem.

My personal email is in my HN profile.

Disclosure:

In case it isn't obvious, I work at Wallaroo Labs, the makers of Wallaroo. I'm also one of the authors of Storm Applied, Manning's book on Apache Storm.

<comment><USER18> I'd be interested in understanding which design is closest to yours, however. Flink? Akka Streams? Another?

<comment><AUTHOR> That's complicated and nuanced. I'd be happy to have that conversation over email.

firstname.lastname@example.com

</comment></comment></comment></comment><comment><USER19> Hahaha.... that's so so so similar to something I've developed for my machine vision pipelines...

<comment><AUTHOR> Would you be interested in chatting more about that? We are always looking for use cases we can learn from. My personal email address is in my profile if you are interested.

</comment></comment><comment><USER20> Looks good. Guess this is the first library I heard dealing with streaming in Python.

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER21> Very interesting library, haven't heard of it yet.

<comment><AUTHOR> Thanks. We've been working hard on Wallaroo. Plenty more improvements to come but we felt that it was time to get it out there and get feedback to help us drive the work we do over the next few months.

<comment><USER22> Can I suggest having a Docker image of all the pre-compiled bits available? I was really interested in trying it out but don't know if I want to invest the time trying to compile everything for a tool that I don't know a lot about yet. If setup was just a `docker pull` away I would probably already be going through the tutorial.

If the 4 terminals required were instead just:

`docker run -d --name wallaroo -v ~/wallaroo- tutorial/celsius:/srv/application-module -p 0.0.0.0:4000:4000 wallaroolabs/wallaroo-quickstart`

Or something similar I think a lot more people on this thread would be trying it out right now.

It looks really promising! If I get the spare time I'm definitely interested enough to give it a whirl.

<comment><AUTHOR> First: thanks!

Re docker:

It's one of the options we are looking at to make it easier to get up and running.

Any particular reason that docker appeals to you?

We're not sure at this point in time what the best means is.

If there was a docker based QuickStart, what would you expect to be able to do with it?

Run the first example app? Something more?

</comment></comment></comment></comment><comment><USER23> Very cool, thanks for sharing!

<comment><AUTHOR> Thanks! It's really nice to get positive feedback on something that you've spent months working on and are still pouring yourself into every day.</comment></comment>


Ask HN: Before I write a single line of code, I - <AUTHOR> I'm about to start coding a new project, that is a little more sophisticated than my usual tinkering. So, I've been thinking about the primary use case, sequence diagrams of the systems, the data structures and the like, and I still haven't written a line of code.<p>How do you organize yourself before starting to write code? What works and what doesn't? Why? Or, is it just better to start coding and figure it all out on the fly? <comment><USER2> More advice: think in terms of iterations. You might be thinking of everything in terms of some holy grail platonic ideal of the project, when in fact you will hit a number of road bumps and change your mind along the way that may completely change that.

So start smaller. What's a key piece of functionality that might set a good foundation you can build off of? Building this has the dual benefit of giving you a cognitive "win" while starting to work the "bones" of the project into your muscle memory. You'll have a much clearer idea of what the next step you need to take is to get it to that larger end-goal.

</comment><comment><USER3> I always model the database first then I start coding. In my experience if the DB is right the rest is easy.

<comment><USER4> Pretty much what I was thinking. If there is too much logic at the app level, its often worth revising your database models. Though a lot of the youngsters these days don't seem to bother with relational databases.

</comment></comment><comment><USER5> I'm tired of working for years on hobbies that ultimately get big and I think can turn into businesses only to find I have built this huge unmaintainable edifice of untested spaghetti that I have to shelve.

So now, whether it's on the job or on my home project time, I get the git repo and build scripts squared away with some awesome testing framework that constantly watches the file system and rebuilds and running my test suite as I'm working on the code. This way I can do TDD and get higher quality code more consistently.

<comment><USER6> Is that the obstacle to turning them into businesses? I think getting paying customers is the hard piece of the puzzle? The cashflow will help solve the spag-bowl problem. You can hire a chief refactoring officer :-)

<comment><USER5> There are a lot of obstacles to me turning my ideas/hobbies into businesses. Yes, getting paying customers is the hardest piece of the puzzle. On my last endeavor, I got way into the server-side weeds with profiles and accounts and billing. It was a neverending spiral because I had designed something far too complicated without a test suite; I decided it could never be completed.

I think my biggest challenge was my consistent inability to form functioning teams around my ideas. I've usually flown solo or been taken advantage of by my team (me doing all the work, them contributing nothing, waiting to see it reach "critical mass".) On the last go, I even offered a guy an equal partnership, but that was not enough and he never committed. It tempts me to think my ideas were not viable when I could never convince my peers to jump on the bandwagon. I always had users who seemed to get value out of my services, and that kept me going.

I've never gotten a huge amount of attention or gotten funded, and frankly I like the autonomy, so I have never sought any funding. Of course, that means if I have any hope of getting financial rewards from bootstrapping my hobby work, I've got to be very organized, which I never have been on past projects.

For my current project, I've decided to open source my new codebase with the AGPL. In the business I'm looking at getting into, open source is common with the popular services, but these projects rarely get any outside contributors. Hopefully I can at least get code reviews, bug reports, and maybe even some code contributions if followers don't mind assigning their copyrights to me.

On this new project, I've got a really tricked out client-side JavaScript development environment with Gulp, Webpack, Karma, and Closure Compiler. I'm really happy with how simple and powerful the build system is, and I'm hoping that by making it easy to build and test, I can attract devs to join my team.

<comment><USER7> Why do you think you need TDD to write logical and tight code? It's one way, but there are less drastic ways to the same ends.

<comment><USER5> Just for me (YMMV) I find that when I write untested code, I make too many large cognitive leaps in my changes. My code looks good at the time and it usually looks well-factored, but entropy and shortcuts always seem to creep in there. Pile all those errors up over a 5 year timespan on code that slowly accretes since I'm maintaining it on my leisure time, and I always wind up with really untrustworthy code and occasional frustrating regressions when I make changes.

The test suite with good coverage gives me confidence that the code continues to work as I make changes (no regression bugs.) It's about having complete trust in my code, no second guessing, and no time ever wasted in a debugger chasing down issues.

And, I want to be able to cut a build at any time as long as all of my tests pass and feel confident I'm not shipping a broken build. I've never been able to do that on any project in the past, and I think it will be one mark of success on this new project. I've implemented a mini feature toggle system in my build scripts to make that possible.

Finally, I'm using Closure Compiler with full optimizations in my production build to do minification. Closure Compiler itself can (theoretically) break the build with its over-aggressive optimizations, so part of having a complete coverage test suite is being able to run the tests against the production build and catch any bad optimizations that CC makes. Because of my architectural choices, I REALLY need that test suite.

Do I need to write the tests before the production code (do full TDD) or can I write tests after? Well, I am the type of guy who won't write the tests after because I always want to move on to the next fun thing. I just force myself to do it, and take my medicine up front.

<comment><USER7> There is a big difference between "untested code" and "tdd code"

There are two different ways to test code.

1) Do the TDD thing. Write 1 test. Code to pass. Repeat.

2) Write code that works. Iterate on it. Refactor, clean it up. Then write some tests that test the final product.

You can have tested code in both cases, but I claim the code from #2 will look cleaner than the code from #1.

</comment></comment></comment></comment></comment></comment><comment><USER8> Check all the news I can find.

And when I'm not procrastinating, I write up a kind of spec, which I then revise into code sketches, and what I would like APIs to look like.

And then I fill it in. Rinse and repeat.

</comment><comment><USER9> I think there comes a point beyond which planning can be used to avoid having the purity of your ideas corrupted by the inevitable messiness of their implementation. I've recognized it in myself, at least.

The only thing I can suggest is that you put your notes aside, set up a repo, branch and just write some code.

</comment><comment><USER10> Start your project with a plan on a piece of paper and without a computer in front of you.

Not sure if this comment by edw519 can help you though it works for me.

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

</comment><comment><USER11> README.md

[http://tom.preston-werner.com/2010/08/23/readme-driven- devel...](http://tom.preston-werner.com/2010/08/23/readme-driven- development.html)

</comment><comment><USER12> > Why? Or, is it just better to start coding and figure it all out on the fly?

Yes it is. Write code towards the solution and see what it leads you. Then you might get into a "writers block" and can't decide whether data structure A or B is best. So you think about it some, decide which one you like and write more code. Then you might find out that you thought A was best but it turns out B was better. So you refactor your code base, write some more code and so on.

<comment><USER4> In my experience it will lead to some half thought through design and a load of technical debt.

"Weeks of coding can save you hours of planning".

<comment><USER12> In my experience, you would have gotten just as much technical debt and bad designs if you so had spent months of planning before typing the first character of your code.

<comment><USER4> You must do some poor planning.

</comment></comment></comment></comment><comment><USER13> 1\. write down business requirement (Break to small stores that you can finish each story in a day) 2\. write down technical requirement (over all) 3\. write down expect test cases in English. (When something happen, what is expected)

</comment><comment><USER14> … write down the features of some extremely restricted version of an MVP and finish that first, applying YAGNI as strict as I can.

</comment><comment><USER15> ... set up version control.

Thankfully nowadays this is basically _git init_ for me. In the past it involved much more.

</comment><comment><USER16> … prepare lots of tea.

</comment><comment><USER17> Get a Mt. Dew

</comment><comment><USER18> Think.</comment>


The Beauty of COBOL (2018) - <AUTHOR> https://devops.com/the-beauty-of-the-cobol-programming-language-v2/ <comment><USER2> Have not dealt too much with COBOL but learnt it a while ago. It was one of the easier languages to comprehend quickly. I thought it was well suited for input and data processing focused applications.

I do remember thinking it's odd that a line has exactly 80 characters and putting an asterisk in the 7th or 8th row means the line is a comment.

This is probably not true these days with modern COBOL. But when I saw Python the first time, and that it enforces similar restrictions with intendation and then Golang following suite, I had to smile that such old concepts of enforcing style still are seen as useful today.

Often we just have to go back and see what others have done decades ago to get new ideas!

<comment><USER3> >> This is probably not true these days with modern COBOL

It still is. Which column (not row) a statement starts in matters and it's a syntax error to start the wrong statement in the wrong column. Sorry I don't remember any specific examples because it's been a few years since I last used COBOL.

I remember hearing that this had something to do with how the early COBOL programs were encoded on punched cards. Anyway there was some practical aspect to it that is now not an issue anymore with the changes to hardware.

<comment><USER4> This was the case with Fortran 77 too, and for the same reason (punch cards). But modern Fortran (F90 through F2018) no longer requires formatting by column.

<comment><USER3> Good point. I think maybe one reason is that COBOL is valued for its consistency, with the same code often running on modern machines that was written 50 years ago or so (at least that was the received wisdom when I was working at a COBOL shop). Perhaps the same is not the case with FORTRAN?

</comment></comment></comment></comment><comment><USER5> For me, COBOL is so over-presented in the media among the old (mainframe) lagnuages, but I recently was surprised to see a production mainframe LPAR offering an APL2 interface,and it seems the language is still maintained on zOS[1]. But I never heard of business application written in APL.

1 [https://www.ibm.com/support/pages/apl2-whats- new](https://www.ibm.com/support/pages/apl2-whats-new)

<comment><USER6> APL was strongly supported by IBM early on, and was used for verification of early IBM systems. When you look at APL in context, it was extremely ahead of its time.

</comment></comment><comment> ainar-g Oh man, I always wanted to learn more about COBOL. People like to crap on the language, but this article makes it seem like it's not that bad, actually. I could see myself programming that, for a large sum of money of course.

With that said, the real COBOL code is probably much more horrifying, when you consider, just how much uglier real-world code is compared to small tutorials and review articles. I would really like to read a series of "COBOL War-Time Stories".

<comment><USER7>
      how much uglier real-world code is

One of my first projects in COBOL was to complete a rewrite, using structured programming, of a report writer that dated back into the 1960s. If you think COBOL is hard to follow, imagine COBOL code _laden with gotos_ and older than the 1968 standard.

<comment><USER8> Yeah, that sounds fun. Did that have the evil "alter" statement, which caused even more spaghetti with gotos?

<comment><USER7> I think ALTER usage was formally disallowed.

</comment></comment></comment></comment><comment><USER8> I wouldn't call it beautiful, but COBOL is a fairly capable language. I used Microsoft COBOL on the original IBM PC (twin floppy) in 1985 to produce a realtime multiuser data collection system in a factory. This interfaced to various machines and devices using a custom TSR* routine written in x86 assembler.

COBOL was chosen by the customer as they were running an IBM System 36, and the implementation was capable of calling the assembly code almost directly.

Each compile would take around 20 minutes, which teaches you to be careful with the syntax! When the source code got beyond 64k, we had to build the app in sections as that's all IBM Edit at the time could handle at one time. As the article shows, COBOL is quite verbose, so 64k isn't that large!

In later years we updated to Microfocus COBOL which was much better than the Microsoft version.

I can't imagine any modern programmer having any problems learning COBOL sufficiently well in a few days. It was my third language after BASIC and assembler.

[*] TSR = Terminate and Stay Resident program, which you loaded into MSDOS first, prior to running the main (COBOL) program. A very poor-man's "multi- tasking".

</comment><comment><USER9> OpenCOBOL is now GNUCOBOL. [https://sourceforge.net/projects/open- cobol/](https://sourceforge.net/projects/open-cobol/)

</comment><comment><USER10> > Well-written code is a work of art. Always has been, always will be.

The same thing was thought of assembler programming a few decades ago. Now it is rather a lost art. I fear that a day would come when machine learning algorithms can write code on their own and coding itself would become a lost art like assembler has become now.

<comment><USER11> Assembler isn't lost? It's still very common in hardware development.

</comment></comment><comment><USER12> To clarify, COBOL (similarly to SQL) was intended as a UI - it was created for business people, non-programmers.

<comment><USER7> No, it wasn't. Non-programmers didn't program in COBOL. Non-programmers generally lacked access to IDEs (even basic TSO workflows), compilers, and computer time, let alone JCL and data sets.

COBOL was intended for business cases for which FORTRAN was ill-suited, and COBOL shops generally didn't need science/math implementations.

Even PL/1 and RPG required a degree of programming skill.

<comment><USER13> Actually, yes it was, in a way. COBOL was intended to do away with programmers and to allow their managers to interact with the computer directly. Programmers of the day worked with machine language and generally took forever to deliver bits and pieces of functionality due to the low level nature of their tools. The idea behind COBOL was that the compiler would take a high level specification (the 'source code') which any competent person should be able to put together rather than that this specification had to be handed to the programmers.

Of course, the end result was that we ended up with just one layer of abstraction and programmers were in more demand than ever before because of their increased productivity, and the 'managers' ended up being programmers themselves.

This then led to the schism between 'systems' programmers (those that understood assembly) and 'applications' programmers, those that only worked in high level languages.

When I started working professionally in IT this division was still quite visible.

<comment><USER14> _"When I started working professionally in IT this division [the schism between 'systems' programmers and 'applications' programmers] was still quite visible."_

I think you nailed a rather fundamental trait (spectrum) in programmers that carries on, morphing along with times.

From systems to business logic, or from the 'container' (pun not intended) to the 'content', and dare I generalize: from a strictly technical eye to a strictly goal/business mindset (again, this is a spectrum, everything in- between exists, all flavors contribute to make a world).

The cliche would be your low-level C/Rust guy versus some frontend Flash/Js person; but this is oversimplifyling (C person might be very goal-driven with a business approach; Js person might be a performance expert). Reality speaks more of an engineer's world view so to speak: from "bottom -> up" (those that assemble elementary pieces, that need to crack the puzzle by understanding each component, like Lego) to "top -> down" (those that rather manipulate large abstract/complex entities as 'black boxes' and rather work on their structure, the graph, dimensions, and shift behavior thusly with surgical cost-effective changes).

Oh just my 2cts I'm probably rambling. I just know that these two extremes on the spectrum are what we battle with for every decision we make, if we are aware _enough_ of _both_ sides. _(Is that a blessing or a curse?.. you tell me!)_

I think it's why, deep down, we still (and might always) search for 'the next C' (cue Rust, Go, D, depends on use-cases I suppose), or why some people are almost principled advocates of the WebAssembly paradigm in complement or replacement of the Js ecosystem. These are the technical people of the spectrum. The high-level engineers are more about pushing for interoperability, available skill pool, maintainability.

It's just that 'programming' as a skill now pertains to three dozen very different jobs so the general line is much fuzzier than in the 1950-60-70's; but I think it's a product of human intelligence, whether how we think or how we build our tools, our machines. _Historical parallels, yadi yada._

The mainframe situation, I think, is even more telling. Every programmer under the Sun has thought of ways to replace COBOL, and there are decent candidates. But the business side of us, of above, of reality, has mainframes still running on COBOL. Because as a 'black box', it works; the benefits of a rewrite have not yet justified their cost.

I know a solid team usually requires at least 1 of each 'sides' of the spectrum, keeps everyone else honest (as engineers in a problem space).

<comment><USER15> Then there are mathematicians and quants, like me: breastfed on Matlab, weaned on Python, claim a much deeper understanding of algorithms and code factoring techniques than front-end jockeys, but still shudders at memory management (other than by preallocating matrices/numpy arrays), devops and other practices that are all in a day's work for "man's man programmers".

Granted, we're precisely what PL authors had in mind from time to time (eg with SQL): nonprogrammers who can write domain code. But because our training goes into proving big-O complexity, etc. front-end jockeys look at us as if we're capital-P programmers.

</comment></comment></comment></comment></comment><comment><USER16> I still have nightmares about COBOL. "Beauty" and "COBOL" do not mix in the same sentence. Forget this article, it's not a nice language at all. I'm not going to crap all over the language -- I understand the requirements of its time -- but now you'd have to be crazy to _want_ to use it.

It's not even true that COBOL programmers earn a lot of money because it's a niche and there are few programmers still writing it and banks are in a hurry to hire them. That's not my experience: all the COBOL programmers I know are mostly old guys earning average/below average salaries. And dealing with banks and similar institutions, which is a hell of its own.

If you like writing software and enjoy nice programming languages, COBOL is not for you. If you want to earn a lot of money or work on interesting projects, COBOL is not for you. If you're a bank manager, maybe COBOL is for you.

<comment><USER17> > "Beauty" and "COBOL" do not mix in the same sentence.

The author is falling into the trap of assuming that "easy to learn" = "optimal". COBOL is extremely easy to learn; you can learn it in a few days. That simplicity comes at a price: you outgrow it _really fast_. You can't even write a generic sort routine or a linked list data structure in COBOL; the language just doesn't allow that sort of reuse. I thought it was almost comical that the author had so little experience with COBOL that he wrote that it allowed you to not repeat yourself: the painful experience of rewriting things like sort routines every time you had a different comparison condition or rewriting linked list traversal code when you had a structure with a different schema than the structure that you last wrote linked list traversal code for was the reason everybody started abandoning COBOL for more flexible languages like C (even Pascal was better).

<comment><USER18> I won't argue the merits of COBOL. I stopped doing it for a living 35 years ago for a reason, but sort is not a good example. COBOL has generic SORT and MERGE facilities built in as verbs. In an IBM environment (i.e. writing real applications) you'd be hard pressed to build something that has better performance than what's provided out of the box.

<comment><USER19> Those were good for working with flat files and nothing else!

<comment><USER18> You don't need sorting for VSAM or DB2 or their non-IBM equivalents.

</comment></comment></comment></comment></comment><comment><USER20> Interesting. The problem of cobol is that is verbose, like java. Type type and then type. Copy and find all the time. Good luck to understand any as it takes a lot of time to read it.

Do not like cobol or java.

<comment><USER2> Curious what language you would prefer? Just to trying to understand you argument better. Assembly?

<comment><USER21> Python is relatively low on the kind of boilerplate Java has.

(Or if you want to go more extreme, Haskell can really give you some terse programs.)

I'm not the OP.

<comment><USER22> As someone who has worked with both in a professional setting, Python has a lot of similarities with COBOL, IMO.

<comment><USER23> As someone who has also done that, the most important thing in common is that they're programming languages. COBOL is a rigid and "square" language, I'm tempted to call its style "COBOLic".

Any language where the dots at the end of statements are crucial part of the logic flow can't be that similar to Python.

</comment></comment></comment></comment></comment><comment><USER24> I wonder when it will dawn on the COBOL tool vendors that a big chunk of what makes COBOL unpleasant is the all-upper-case presentation. The program is SHOUTING ALL THE TIME.

</comment><comment><USER25> Has anyone made a syntax converter for COBOL to make it read like C-style language? At the very least, it would be trivial to make a macro to get rid of the magic column numbers.

</comment><comment><USER26> COBOL was the original "self documenting language." And that is why many others followed it.</comment>


Ask HN: Has anyone used a HURD-based system before? - <AUTHOR> I'm just curious, maybe someone tried it for development purposes, or just to mess around?
Honestly, if Arch/Hurd was ready, I'd have tried it myself. The most usable distro is probably Debian/HURD, has anyone used that, and if yes - is there an immediately noticeable difference in how the system performs/feels?
And is it really that big of a deal that it's only 32 bit at the moment? (Yeah it limits the
maximum usable RAM, but otherwise?) <comment><USER2> Yes, I've messed with it (most recently in a virtual machine about a year ago). But then again, in the same time-frame I've also " _messed with_ " Plan9, BeOS-recreation Haiku, and several other oddballs.

Hurd _works_ , but then again so do a lot of other things. I very much like the philosophy of micro-kernels and everything-else-implemented-by-a-server, but in practice (perhaps just because of unlucky timing combined with performance penalties) that hasn't (yet?) caught on.

(I used the Debian distribution.)

<comment><AUTHOR> Did you install it on hardware or in a VM?

And damn, I've always wanted to give Plan9 a shot too, mainly just because I really like the "Everything is a file" approach^^

edit:

formatting

maybe -> mainly

<comment><USER2> > Did you install it in hardware or in a VM?

>> _(most recently in a virtual machine about a year ago)_</comment></comment></comment>


Ask HN: What podcasts do you listen to every week without fail? - <AUTHOR> I am interested to know what are some of the podcast you lisen to every week. For me its The Daily. <comment><USER2> I'm a fan of the bizarre. Here's what I listen to:

* The Magnus Archives

* Alice Isn't Dead

* Rabbits, The Black Tapes, Tanis (all from Pacific Northwest Stories, aka Public Radio Aliance; you'll either love or hate these)

* Knifepoint Horror

I just discovered this great nonfiction podcast, on design and architecture:

* 99% Invisible

</comment><comment><USER3> samharris.org</comment>


OpenFace: Free and open source face recognition with deep neural networks - <AUTHOR> http://cmusatyalab.github.io/openface/ <comment><USER2> I also built an Open Source (GPL3) facial recognition program as well, called uWho (github.com/jwcrawley/uWho). Mine doesn't need anything like CUDA or OpenCL, and runs on a 6 year old laptop at 1280x720@15fps.

I ran it at our free, ticketless convention called Makevention (bloomington, IN). Estimates were that 650-700 people showed up. My tracker counted 669 uniques, which I think is spot on.

I also wrote mine for privacy in mind. The database was a KNN on a perceptual hash of the face. The data that was stored was only a hash and could only verify a face: it could not generate the face from the hash. Considering the application (Maker/Hacker con) I wanted to be sure that this was the case. (The data only resided on that machine, and it's wiped now.)

I've halted work on the _gui_ version of it. Now I want to make it into a client/server, where the clients are RasPis (or other cheap compute with camera) and the server is whatever good machine you have. Initially, I'll reimplement the same algo, but I know that KNN has exponential time/cpu requirements the more samples I get.

<comment><USER3> OpenFace can optionally use a CUDA-enabled GPU, but it's not a requirement. The performance is almost real-time on a CPU. After detection (which varies depending on the input image size), the recognition takes less than a second. We have a few performance results on the FAQ at [http://cmusatyalab.github.io/openface/faq/](http://cmusatyalab.github.io/openface/faq/)

I'm surprised (and skeptical) uWho can do detection+recognition at 15fps. I would expect face detection alone in 1280x720 images to be much slower than 15fps. On my 3.7GHz CPU with a 1050x1400px image, dlib's face detector takes about a second to run. This is also my experience with OpenCV's face detector, which I noticed your code is using. Also OpenCV's face detector returns many false positives, especially in videos. See this YouTube video for an experimental comparison: [https://www.youtube.com/watch?v=LsK0hzcEyHI](https://www.youtube.com/watch?v=LsK0hzcEyHI)

Also, I think it's a strong claim that faces can't be generated from a perceptual hash. One property of perceptual hashes is that hashes that have a close hamming distance to each other are more similar (of the same person). I wouldn't be surprised if a model could successfully map perceptual hashes to faces given enough training data. I read a good paper about doing this (not specific to faces) but can't remember the reference now.

Edit: I just added some simple timing code to this sample OpenCV face detection project on my 3.60GHz machine: [https://github.com/shantnu/FaceDetect](https://github.com/shantnu/FaceDetect) On the John Lennon image from the OpenFace FAQ sized 1050x1400px, it takes 0.32 seconds, which is about 3fps. This is slightly quicker that dlib's detector on the same image, but it also returned a false positive.

<comment><USER2> I'm doing a bit of tricks to speed up the performance. And I'm perfectly find that you question the performance :) I encourage you to try it out.

My first problem/observation is that Haar cascades looove running on a GPU due to their Float-y nature. But dealing with them on a CPU frankly stinks. I was getting 1 frame/10 seconds at 800x600 with the included Haar face detector. That's effectively unusable.

Turns out there's also LBP cascades, which are integer based. And they run _fast_ on a cpu. But, from my observations, they have many false positives. But they seem to have no issue with false negatives, so I grab all the faces, plus a few "junks".

The speedup is, is that I can use an LBP and then throw the region of interest (the potential face) onto a Haar cascade eye detector. Now that I'm dealing with much smaller pictures, haar runs acceptably. Literally, if (eyes.size > 0){is valid face.....}

Then I proceed to use the built in function on OpenCV contrib Face library. The problems with the library are numerous. Mainly, the settings are provided without good descriptions, or whatever the defaults of whatever academic papers had them set as.

Because I'm also an academic, I was able to get ahold of quite a few large datasets of face data. After doing so, I wrote a few small programs that attempted to calculate the ideal settings for the FaceRecognizer call, which I believe I did so. (The settings are in the call, in the source.)

Of course, I do get some slowdowns depending on how many faces there are (mainly, stay away from google searches for faces). But then again, 4 haars on 50x50 images is not that bad at all.

My machines used: Thinkpad T61 (8GB ram), Intel NUC (8GB ram, I5 cpu) Camera: Logitech C920 webcam

I did try my code using the max resolution the camera could acquire (1920x1080).... 1 frame/5 seconds.

</comment></comment></comment><comment><USER4> I would use it to detect friends that come over to my place and load their taste in music on my media server.

<comment><USER5> Can do the same thing a little more simply by sniffing phone 802.11x mac addresses and/or bluetooth identifiers.

Can also modify the idea a bit to create an "unknown person" warning system if it detects unauthorized device IDs broadcasting within range.

<comment><USER6> > Can do the same thing a little more simply by sniffing phone 802.11x mac > addresses and/or bluetooth identifiers.

I believe the iPhone now randomizes MAC addresses when probing.

<comment><USER7> No, not in practicality. It only changes the MAC when the iPhone is asleep. Since apps have so much background functionality, the phones almost never sleep.

</comment></comment></comment></comment><comment><USER8> Oh good, now the 7/11's will be able to detect who I am by my face through their security cameras and will do some targeted advertising to me as I walk the aisles.

<comment><USER9> Needs to be trained first, and if you train it with a population as large as 7/11 customer base it's accuracy is gonna crash to the ground

<comment><USER10> I thought it came pre-trained?

<comment><USER11> on celebrity faces, yes.

</comment></comment></comment></comment><comment><USER12> It would be interesting to see if it's possible to recognize people in films. I'm not sure if it's much harder or not. In a way, a video is more complicated than an image, but you have way more data to recognize a face. Someone know if there is any work in that direction?

A plugin for vlc that can show you the name of any actor when you ask would be really fun!

<comment><USER13> Google Play has already had this for a little while: [http://ccm.net/faq/30199-google-play-movies-tv-now- integrate...](http://ccm.net/faq/30199-google-play-movies-tv-now-integrates-a- facial-recognition-tool)

It's pretty trivial since you know the actors in the movie and can do the face recognition for the people on screen using the existing methods when the video is paused, but still quite neat to see it happen.

</comment></comment><comment><USER14> can copwatch.org find a clever way to use this?

<comment><USER15> I like the way you think!

</comment></comment><comment><USER16> Actually, it's nice to see functionality like this in the open. Attached to a wide range camera pointing to a local train station it should be fairly easy to match faces to people driving to work leaving their house and flats unguarded.

There was a nice book, "Database Nation", that described a case of scanning licence plates of cars crossing a bridge to see who's at home and who left for work. Made burglaries a lot easier.

And now we do that based on faces ... nice .. /s

</comment><comment><USER15> "We do not support the use of this project in applications that violate privacy and security. We are using this to help cognitively impaired users to sense and understand the world around them."

Oh okay. Surely this will stop any bad actors.

<comment><USER17> Do you suggest they not release this code? Or would you post the code with out the disclaimer?

<comment><USER15> I think they're acting in good faith, but I wish they'd acknowledge that disclaimers are not a particularly effective preventative measure. I agree that putting this provision in the license would help, although it would still be subject to interpretation.

I guess my main objection is that it's naive to expect to have the best of both worlds -- there are always tradeoffs, and the disclaimer doesn't acknowledge that tools like OpenFace cannot be released without negative consequences along with the good ones. It is what it is.

<comment><USER18> They're not saying that you can't use it for that, they're saying they're not supporting use cases that do that. The disclaimer really just means "please don't file bugs and expect help if your scenario is to monitor a public intersection" for example.

</comment></comment></comment></comment><comment><USER19> The efforts people will go to to avoid using HTTPS.... [https://cmusatyalab.github.io/openface/demo-1-web/](https://cmusatyalab.github.io/openface/demo-1-web/)

<comment><USER20> To be fair, the likelihood of someone MITM'ing a connection to a docker container running on the localhost is near zero. Which is what the original issue that prompted those instructions was about[0].

[0] - [https://groups.google.com/forum/#!topic/cmu- openface/TNZR_QV...](https://groups.google.com/forum/#!topic/cmu- openface/TNZR_QVR8Nc)

<comment><USER19> Ah, that makes more sense. I hadn't considered that running it with docker would make it appear to not be at 127.0.0.1 to the browser</comment></comment></comment>


Why I turned down investor money for my startup - <AUTHOR> http://pandodaily.com/2013/04/24/why-i-turned-down-investor-money-for-my-startup/

<comment><USER2> It should be noted that pandodaily.com didn't turn down investor money:

"I've also raised a bunch of cash from some of the people I respect most in the industry. This includes: Marc Andreessen, Peter Thiel, Tony Hsieh, Zach Nelson, Andrew Anker, Chris Dixon, Saul Klein, Josh Kopelman, Jeff Jordan and Matt Cohler, all investing as individuals. Also investing are a handful of seed funds including the CrunchFund, Greylock Discovery Fund, Accel's Seed Fund, Menlo Ventures Talent Fund, Lerer Ventures, SV Angels and Ooga Labs."

<http://pandodaily.com/2012/01/16/why-i-started-pandodaily/>

<comment><USER3> That makes their site suspect IMO. I probably would have done the same but I am willing to bet my last dollar that they'll be nicer to start-ups funded by their funders. And yes, I've read the declarations of impartiality.

</comment></comment><comment><USER4> Does anyone have any more info on getting a business line of credit? What kind of cash flow are banks looking for to give that? My company has recently started generating some solid revenue, and I'd love to take some of these opportunities since we are largely bootstrapped.

<comment><USER5> if you've got revenue you should be able to pull something. it's the pre- revenue people who get turned down.

</comment></comment><comment><USER6> Alex: in case one goes for a team of advisors rather than VCs, what kind of compensation should I plan for them to have? equity? monthly fee? friendship points?

<comment><USER7> In terms of the article posted yesterday[1], you want to pay them as little as possible. Keep them hungry instead of fat and happy.

1\. <https://news.ycombinator.com/item?id=5589867></comment></comment>


I Am a Bad Software Developer - <AUTHOR> http://eewz0z.pen.io/ <comment><USER2> I'm a bad software developer too. I've always had my suspicions, and nobody has commented on how bad my code is, but I'm convinced I too am bad.

But here's the thing, the author (if that is you Colin) and I have both created things that people use. The author has even contributed to open source projects (I can't imagine my code would pass that mustard), so it can't be THAT bad.

Is there a balance between creating beautiful code and actually solving problems?

I'm constantly trying to get better at coding, but after years I still find myself making mistakes. Often mistakes that don't break code, but just are not efficient.

So, what are we to do?

<comment><AUTHOR>
        But here's the thing, the author (if that is you Colin)
        and I have both created things that people use.

I'm not the author, it's just something that I thought would resonate with the HN crowd, and about which they might be able to offer some thoughts and possible solutions.

        ... can the system be so wrong as to consistently overlook
        a good developer even if they are bad at interviews?

Yes, it can. I'm sure that when I've been hiring I've overlooked or even actively passed on candidates that would have been excellent employees. The system is not set up to find the best programmers, or even the best employees. I do know what it is optimised for, but certainly good, and even excellent, programmers can easily be overlooked.

Especially if they are bad at interviews.

</comment></comment><comment><AUTHOR> Oh, bother - just seen that this is a duplicate. the discussion is over here:

<https://news.ycombinator.com/item?id=5664839>

</comment><comment><USER3> Bad developers tend to be really bad. They have seldom heard of SICP, or contributed to an open source project etc. You sound like you are simply going through a run of bad luck.</comment>


Ask HN: Can You Recommend an Online Mentoring Service? - <AUTHOR>

Can anyone recommend an online service that pairs students or otherwise new users of technology with verified or otherwise screened experts that field? I have seen many sites that attempt to do this -  but interested in user feedback as to which ones have seemed to have the most reputable community of experts.<p>Thanks! <comment><USER2> airpair.io</comment>


China prepares to rank its citizens on 'social credit' - <AUTHOR> http://www.latimes.com/world/asia/la-fg-china-credit-system-20151122-story.html <comment><USER2> This is more or less an explicit version of the implicit tactics which, implemented as a whole, comprise the credit score system in the USofA. For a very direct take on the topic (there are other works on the issue, as it is backed by a fairly large school of thought) check out "The Making of the Indebted Man" by Maurizio Lazzarato. [1]

[1] [https://mitpress.mit.edu/books/making-indebted- man-0](https://mitpress.mit.edu/books/making-indebted-man-0)

</comment><comment><USER3> Interesting article, though the shot at atheists is yet another example of how they remain one of the few minorities folks can openly malign without fear of consequence...</comment>


Apple faces class action lawsuit over failing MacBook butterfly keyboards - <AUTHOR> https://9to5mac.com/2018/05/12/apple-keyboard-lawsuit/ <comment><USER3> I manage software development teams. I spend my days in video meetings, writing emails, reviewing code (sometimes writing it on side projects to keep current) and writing documents. I type 120 WPM and live and die by my keyboard. Most of the time I am using an external keyboard but when I travel or work flexibly away from my house, it's all on the butterfly keyboard. After a year, several keys were useless, - enter ;, j and e. They would stick and repeat the character too much, or not recognize a hit at all. Like a good Apple fan boy I always purchase Apple care so I was able to send it in for repair but being without a machine for three days was a non-starter. So, I ordered a Lenovo T480S, installed Linux and prepared an environment for when my MBP 2016 touchbar unit went back to Apple. My MBP has been back from Apple for two months now and I have yet to boot it.... The keyboard on this Lenovo is ridiculously great-- it's amazing to be able to work again :) And, its not just me we've had 4 MBP Touchbar retinas have keys fail around the 9mos to 1yr mark. One 3 of them, Apple gave us grief as if it was standard "wear and tear." Uh, ya, these $4K aluminum rigs are going to be around dust, and humans have hair ... and... well its on you to make a more resilient key switch Apple... As for me, sticking with Lenovo box from here on out.

<comment><USER4> > The keyboard on this Lenovo [T480S] is ridiculously great-- it's amazing to > be able to work again :)

It is really incredible how low Apple has managed to drive people's expectations wrt keyboards. I feel like Thinkpad keyboards have gone steadily downhill since the ~2005 T4x series (I still use a T43 on a regular basis, and do side-to-side comparisons between it and newer machines). Macbook keyboards by comparison are nearly unusable, unergonomic garbage: key caps not shaped, linear action with very harsh bottoming, comically oversize trackpad that you always manage to accidentally press with your palm while typing, sharp edge case that pokes into your wrists. Typing on a Macbook is slow and results in pain halfway through the day. Even the bottom of the barrel Acer Aspire One with the flat key caps (again, a machine I actually own and regularly use and can make comparisons against) provides a better typing experience.

<comment><USER5> The Apple touchpad is by far the best trackpad I've ever used on any laptop. By such a wide margin it's ridiculous. I never accidentally press it with my palm or have any other issues with it.

I agree fully that the keyboards are hot garbage, though. I can type well on them, they're just painful over time due to the harshness you mention.

<comment><USER4> > I never accidentally press it with my palm or have any other issues with it.

There seem to be two kinds of typists: ones that rest their palms, and ones that hover their palms. If you hover, you will never encounter these issues. I rest my palms to the degree that any touchpad that is not recessed gets unintentional input. I also believe, based on personal experience, that the ergonomics of a pointing device are in general inversely proportional to the amount of hand/arm movement, so larger touchpads are going to be less ergonomic than smaller ones (a corollary is that touchpad gestures will give you RSI). Having three buttons for a pointing device is essential. Macbooks fail on all counts on these criteria. The closest to ideal touchpads that I have encountered are on the T4x/T6x series Thinkpads - 2" large and deeply recessed. Unfortunately they only have two buttons.

<comment><USER5> I rest my palms. No issues.

Smaller touchpads have always been more uncomfortable and harder to use for me.

</comment></comment></comment></comment></comment><comment><USER6> At the start of the year I bought a full spec 15" MBP. Two weeks in the B key stopped working so I took it to the Apple Store and they literally gave me a brand new one. Why did the B key stop working? Apparently it was a crumb. So I had a total system replacement of a £3000 laptop because of a crumb. Insane. Yes I know the broken one will be repaired and re-sold as a refurb but still that is just crazy.

I ended up returning the MBP for a refund anyway as I really didn't enjoy the new butterfly keyboard. I found it quite painful to type on for more than about 20 minutes.

I strongly feel the latest generation MBP is a step backwards in what a "professional" wants and needs from such a machine. Sure make the consumer MacBook model as thin as possible but don't butcher the Pro model to save 0.2mm by introducing a god awful keyboard and removing a bunch of crucial ports so we have to rely on bloody dongles!

Ninja Edit: Forgot to mention how much I hated the TouchBar. What sucks is the actual _idea_ of the touchbar is pretty nice but replacing the function keys with it on a Pro machine is idiotic. They could have easily added the touchbar while keeping the function keys but decided not to probably to be minimal/simple.

<comment><USER7> > I found it quite painful to type on for more than about 20 minutes

I keep hearing this. I've been using the new keyboard for > 1 yr and I literally have no complaints. I have adjusted my typing style to a bit lighter of a touch as the keys don't travel as far, but I've not experienced any discomfort.

<comment><USER8> I guess it just goes to show how different everyone types from each other and how well of a compromise the previous keyboard turned out to be, even if unintentionally.

<comment><USER7> I suppose. On the other hand if you type on every keyboard like it's an IBM Model M, any keyboard that isn't a high travel mechanical keyboard is going to be uncomfortable. I adjusted my typing style to fit the new MacBook keyboard, and I have no complaints.

<comment><USER9> The second I need change to accommodate my hardware, is the second that hardware is replaced....

Of course I am typing this is on an mechanical keyboard with Cherry Switches, which is the only way to type

<comment><USER10> The DataHand has magnetically held keys. If you press them too gently, they don't move at all, so there's no chance of pushing them a bit but them not registering.

When you push hard enough to move them, they pass through an optical sensor and then can move a lot further, so there's effectively no equivalent to keys bottoming out, or the feeling of jamming your finger into a hard surface.

It's such a good design to invert both those problems and make them non- problems, I'm a bit sad I haven't seen it anywhere else on a more common style of keyboard.

</comment></comment></comment></comment></comment></comment><comment><USER11> I've got no idea why the new macbook is the way it is. Apple really missed a sweet opportunity to move the mac and iphone over to usb-c at the same time. They could have easily added two usb-c ports while keeping a usb-a port and the SD card reader. At the same time, they could have moved the iphone to usb-c and converge a lot of their designs into something clean and easy. I'm typing this on an xps-13 while charging both my phone and laptop over usb-c with the same charger and cable.

Instead, apple now has multiple incompatible cables and devices. Not only has the rest of the industry caught up to them, apple has regressed in the meantime.

<comment><USER12> There are multiple points of view. As for me, I'm fine with Lightning: mechanically it's the best connector I've ever seen. But moving "everything" to USB-C means that exactly ZERO of my USB devices are pluggable into the new laptops.

Also, please don't start with the "but somebody needs to move the world forward" narrative. Move the world all you want, but don't hold me hostage. And "moving the world forward" does not require dropping existing USB connectors.

I'm also amused by the "oh, in a year or so every device will have switched to USB-C" narrative. Guess what, it's quite likely that my JTAG programmers, logic analyzers, USB microscopes, USB ports on oscilloscopes, 3dconnexion spacemouse, label printer, sheet-fed scanner, barcode scanners, and at least 20 kinds of development boards will NOT switch to USB-C anytime soon, and most of them quite likely never will (ever tried routing a USB-C connector on a 2-layer board?). Oh, and I wrote that list just by looking around me, I probably have even more devices.

<comment><USER13> > As for me, I'm fine with Lightning

I'd have expected Lightning to remain but the other end of the cable should've either switched to USB-C or some sort of adapter been included in the box.

As things stand you could walk into an Apple Store, spend the better part of _four thousand_ pounds on a MBP and an iPhone X, and get home to find out that you can't plug one into the other without Apple wanting to take another £35 for a USB-C to Lightning cable (obviously other cables are available but that's beside the point).

That's absolute madness and destroys the idea that Apple hardware exists within any sort of ecosystem.

<comment><USER14> > *I'd have expected Lightning to remain but the other end of the cable > should've either switched to USB-C..."

Use the iPad Pro 29W USB-C charger (or Anker's USB-C chargers, etc.) and Apple's USB-C to Lightning "Power Delivery" (USB-C PD) cable, you can ultra fast charge iPhone X, iPads, etc., and yes, you can charge it from current Macs or other brand laptops with USB-C.

<comment><USER13> My point, I suppose, was that one of those cables should be in the box.

The charger's neither here nor there for the sake of my argument: as things stand, you can plug your phone into the charger and the connection between the two can be USB-A, USB-C or Jony Ive's finger for all it matters.

<comment><USER15> This was the most frustrating thing for me. I have a new touchbar mac and iphone x and when i realized i needed a usb-c to lighting cable and went to the apple store in downtown sf they didn't have any in the store. this was ~6 months after the iphone came out so it wasn't even an initial rush related issue. crazy.

</comment></comment></comment></comment></comment></comment><comment><USER16> I love how Apple is finally shooting itself in the foot by the atrocious repairability of their devices. The keyboard in the A1706/7/8 MBP is _extremely_ time-consuming to replace because you need to get your dremel tool out and undo an umpteen of tiny bolts and then replace them with tiny screws as this video demonstrates: [https://youtu.be/YMueATtTcQg?t=879](https://youtu.be/YMueATtTcQg?t=879)

In previous models, you could at least simply rip the keyboard out like this (which was of course an imposition as well): [https://youtu.be/2PyhbiwUkE0?t=1229](https://youtu.be/2PyhbiwUkE0?t=1229)

Imagine if the keyboard was simply screwed on in the first place. The keyboard plate would maybe need to be 1 mm thicker, making the entire device thicker by as much, but an AASP worker could simply replace the thing in a 5 minute job (instead of 2 hours, i.e. never).

PS: Could someone vouch me. HN thinks I'm a bot.

</comment><comment><USER17> Being design-forward is fine, but Apple fell completely into the trap of "function follows form". The in retrospect aptly-shaped "trashcan" Mac Pro was probably the ultimate expression of this. But at this point they're not a computer company, so the products need to be viewed in this light. They've decided to be a luxury brand, in which form is in fact more important than function, and the correctness of this decision is shown by their financials. But when you buy a Macbook Pro, you have to be aware that you're essentially buying a Louis Vuitton, or - dare I say it? - Burberry laptop. It's meant to be seen, not used.

<comment><USER18> Macbook Pros still have best screens, best touchpads and unix operating system that just works and is perfectly compatible with the hardware.

The only thing that comes close is XPS oine from Dell. Thinkpads with linux just can't compare (bad screens, software trouble with "reasonable resolution", no MS office, etc). Anything with Windows can't compare, since who would want to use spying os with ads in start menu?

I would love anything as good as MBP but there just isn't anything.

<comment><USER19> None of that matters if you can't type

<comment><USER20> This is my precise dilemma. I want all of what glogla champions, but I have tried the new keyboards for an hour or so in the stores and they are like typing on ice.

There are essentially two input devices in a modern computer: Apple has nailed the trackpad, but they've flubbed the keyboard.

</comment></comment></comment></comment><comment><USER21> Anyone know what this means for non-US residents? We're in Canada and my partners 12" Macbook keyboard has failed 3 times, requiring the complete replacement of her Macbook once and the whole top-case twice. Which caused plenty of downtime for repairs, usually weeks at a time. Now she's experiencing small problems for the 4th time.

Maybe if it succeeds someone can create a class-action in Canadian courts...

<comment><USER22> Can you even use court cases from a different country as precedent?

<comment><USER21> My spouse who's a Canadian lawyer said a number of Canadian laws have referenced American (and historically more importantly British) law as examples during proceedings but they can't be cited directly as precedent case-law.

It's just a helpful data point when establishing new laws and assisting judges to form their legal opinions in cases without existing examples within Canadian law... and I'd assume also inspire Canadian lawyers to form their own class actions when they've already been tested in American courts.

I was just curious if foreign parties could play any role in American ones, which I doubt is the case.

</comment></comment></comment><comment><USER23> Apple is in a bad spot. The new MacBook Pro isn't enough better than the old one, and is demonstrably worse in several ways.

I've bought very "tock" generation of MBP for a dozen years but I'm skipping this one. I just don't need the extra horsepower or the extra headaches.

<comment><USER24> > Apple is in a bad spot.

They have beat sales estimates on the MBP and still show growth despite a contracting market. A few people raging on hacker news is not representative of the market, nor even software developers as a whole.

<comment><USER25> loosing influencers (IT professionals are influencers for their family and friends) will hurt apple in the long run.

<comment><USER26> A few people raging on Hacker News is not representative of all influencers, either.

As a counterpoint, my current MBP (more than a year old) is half the weight of my old one, and while the keyboard is worse, it's not significant enough for me to jettison the entire ecosystem, which is great. The Touch Bar is fine for me, though I've configured it to act like my old machine.

Summary:

+2 points weight

+1 point improved display and resolution

-1 point keyboard

+0 points Touch Bar

<comment><USER27> >it's not significant enough for me to jettison the entire ecosystem

But significant enough that I bought a five-year-old used MBP rather than buy a new one. I don't care about weight: I miss the 17". And improved resolution? It's the same in 2017 as it was in 2013.

2017 MBP compared to used 2013 MBP

CPU +16%

GPU + 200%

RAM + 0%

Display + 0%

Weight 4.46lb vs 4.02lbs

Keyboard failure rate: +100%

Cost difference $2,000.

So basically unless you need graphics, get a used one.

<comment><USER28> Display is better, 25% maybe.

</comment></comment></comment></comment></comment></comment><comment><USER29> I wish there is something as World Wide Class Action.

The biggest problem isn't with the design issues here. Apple is not perfect, every new design will come with its own set of problem and trade offs. Normally most of these are Net positive gain. This time around I am pretty sure the Keyboard is mostly a step backwards, because reliability is the most important thing for a Keyboard.

And what is worst is that people has been complaining about it since 2015, and in 2016, then 2017, two version later they still haven't done a thing, apart from making the keyboard louder to make you think you pressed the button.

There is still a lot to love for the iPhone. ( Even that is going downhill, but still loveable ) But Mac has been on the sideline with no attention and care.

I would beg Tim Cook please do not come out and say you Love or you care about the Mac. You are no Steve Jobs and do not have Reality Distortion Field. When you say something like you you are only really taking a piss and add insult to injury.

And last note: Please prove me wrong in WWDC 2018.

<comment><USER30> The 2017 keyboards have been an improvement over the previous iteration. Less failures.

It's also ridiculous to say that they don't care about the Mac when they just released the iMac Pro and are currently designing the new Mac pro.

<comment><USER31> They say they care, their actions have proven otherwise. They need more than a _promise_ of a new Mac Pro and an iMac Pro which _starts_ at $5000 to win back their most loyal Mac fans after years, literally years of neglect.

And after this, they are gonna need years to rebuild that trust.

<comment><USER30> I mean, before these new MacBooks what was the number one complaint on this website about Macs? They don't make pro machines anymore, they don't care about pro users, etc.

Now, as soon as they actually do something about that, no one cares anymore.

</comment></comment></comment></comment><comment><USER32> Great. Hopefully this will force/cause them to reevaluate the butterfly keyboards and get back to a more sensible design.

Or if they really have to keep those (imo) awful keyboards, I feel like they could at least offer more clicky/soft/silent keyboards as an option.

<comment><USER33> Agreed, I don't mind the new keyboard (apart from when a key fails), the only issue I have is how much louder they are than the old style.

</comment></comment><comment><USER34> The fact that the keys occasionally stop working is a problem.

The bigger problem is that this can't be fixed in stores, and it takes 13 days to get your computer back once you ship it to Apple.

<comment><USER35> Yikes. On pretty much any ThinkPad except for the X1 series, replacing the keyboard is a five minute task you can do yourself, and Lenovo will overnight you a new keyboard. The only tool needed is a #1 Philips screwdriver.

Alas, the X1 Carbon and X1 Yoga abandoned this design. The keyboard is no longer a CRU (Customer Replaceable Unit). It's a complete teardown to get to it. But if you get the onsite service option they will send someone out the next business day to replace it.

<comment><USER36> Once upon a time, Apple keyboards were just two hooks and a hinge away from replacement (and RAM was right under there too) [http://www.laptoppartstore.com/uploads/9/3/9/4/9394972/50755...](http://www.laptoppartstore.com/uploads/9/3/9/4/9394972/5075539_orig.jpg)

</comment></comment></comment><comment><USER37> Two keys are failing on my MBP 15" (one rocks and sticks; the other is loose on one corner and occasionally falls out). I have AppleCare and my options were to:

\- Send or deliver the laptop for repair and wait ~1-2 weeks for its return.

\- Pay ~$35 for two replacement keys and butterfly mechanisms from an online spares shop and attempt the repair myself.

I chose to pay the $35 — the keys should be here next week.

I'm now concerned this will recur after the fix unless I only use an external keyboard, which seems daft for a laptop.

After 15+ years of buying Apple laptops I'm seriously considering making the repair myself then selling the laptop, and buying a Lenovo or Dell. I type 100wpm+ and good keyboards are so important, but I'd really miss several macOS-specific apps (Sketch, iTerm, Airmail).

<comment><USER38> I recently went through the same Mac to Windows conversion.

For a Sketch replacement, try Lunacy by Icons8 -- it's a Sketch clone for Windows (not quite as good, but pretty damn close, and it opens even complex sketch files perfectly). It's also free.

For an iTerm replacement, use ConEmu with WSL. You'll have to fiddle around with the settings to make it look good, but it's hugely customizable, and then you can run Ubuntu or Arch or whatever else you want natively on Windows.

<comment><USER39> figma runs in the browser. equally powerful as sketch

</comment></comment></comment><comment><USER40> I manage a team of roughly 10 devs and I have seen them one at a time get pissed off at their MB Pro and ask to switch to using a Linux machine. The keyboard is always the biggest complaint. I even made our company change its onboarding process to offer the option of buying a Windows laptop and installing some distro of Linux on it instead of just giving everyone a Mac (which they and the rest of Silicon Valley have been doing for years).

I bought my first Thinkpad when I checked out the new MB Pros when they came out in Fall of '16. I was so disgusted by the keyboard that I went home and bought my X1 Carbon and learned how to set up a Linux machine (surprisingly easy!)

Apple has really lost its way. They're selling eye candy now, not work machines.

<comment><USER41> Heyo, what Windows laptops are you providing these days? I'm possibly going to jump ship and it's about time to get a new laptop.

<comment><USER40> Thinkpads are #1. System76 and the XPS 13s are also a hit.

<comment><USER42> There's been a half-dozen LVFS / System76 drama threads[1] in the past week alone. Despite whatever your feelings are on BIOS, the general consensuous from S76 owners are the laptops aren't that great.

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

<comment><USER40> It's a newer thing on our team for sure. Time will tell if System76 are a good choice.

</comment></comment></comment></comment></comment><comment><USER43> Apple is a joke. My experience with Dell XPS 13:

Keyboard failed, most likely some dirt or liquid. I was in foreign country so bad situation. Dell technician arrived next day to my hotel and changed keyboard in front of me. They even got correct keyboard layout (czech). This was done as part of basic 2 year warranty, I have no business plan.

<comment><USER44> I can vouch for this - had my charger overnighted in a foreign country free of charge.

I used to be able to rely on Apple to put this kind of effort in, but I don't think I would be able to today. Dell are really trying.

<comment><USER45> I received a DOA monitor from Dell last month and they tried to tell me I could only get it replaced with a refurb, after an hour on the phone they finally agreed to replace it. Then it took literally a month of waiting days between emails asking me to provide bits of info I already provided in the first phone call before the finally delivered it. Why is there PC support so different?

<comment><USER46> Mostly because their monitors very rarely have issues. I've personally deployed/managed probably over a thousand Dell ultrasharp monitors and over the course of nearly ten years, I've only seen one go bad. And I do remember it was not easy getting it replaced, a relative ordeal compared to ProSupport on the PC. Their PC support is seriously unmatched, I tell everyone to get the Pro support and accidental coverage for laptops, I have many stories of Dell asking no questions and sending brand new replacements. My favorite is the 3k precision laptop that fell off a crane and we sent back essentially a box of whatever was left and two days later had an exact replacement.

</comment></comment></comment></comment><comment><USER47> I'm on my second 13" MBP, after this exact problem. The first one had this problem pretty severely on the 'n' key, the new one has it on 'j' but not as bad.

Anyway, this helps prevent the accidental double taps on the bad keys: [https://github.com/toothbrush/debounce- mac](https://github.com/toothbrush/debounce-mac)

</comment><comment><USER48> I had to pay ~$700 for a repair of my work MacBook Pro 15" because I tried to fix the problem by removing the key cap and cleaning under it.

My current work computer is old MacBook Pro. My personal one is Dell XPS 13" and if nothing happens to their design, my next work computer likely will be Dell Precision 15".

</comment><comment><USER49> Apple filed a patent for ingress prevention this year to address this issue. Not sure when it will make it into production: [https://patents.google.com/patent/US20180068808A1/en](https://patents.google.com/patent/US20180068808A1/en)

<comment><USER50> 1\. I wonder if they could replace existing keyboards with the new design.

2\. Some of the designs they show look like they would still allow dust to get in but make it even more impossible to get out...

</comment></comment><comment><USER51> I have several keys that randomly type twice, I hate it. Went through the tech support and at the end they wanted me to reinstall the OS.

But that is pretty much nonsense, as when I hit the key in a different place, it reacts differently.

</comment><comment><USER52> I upgrade my two macbook pro 15" every year. I have not upgraded since 2015 due to these keyboards. Come on apple. Go back to the 2015 keyboard... nobody ever complained about that keyboard. This is the risk of "fixing" a problem that doesn't exist... you can actually break something that was reliable.

</comment><comment><USER53> I have come to appreciate the new keyboard, primarily because the keys feel more stable under fingers than the older keyboards. The shorter travel doesn't bother me, though the additional noise is slightly annoying and the arrow key layout is sub-par. But, on the whole, the keyboard is fine. I've only had mine for three months, so it remains to be seen how it holds up.

It's the other parts of the MBP design that suck: USB-C induced dongle hell is real. The touchbar is a useless gimmick. Battery life isn't great.

</comment><comment><USER54> If anyone working at Apple is reading this, know that this keyboard has cost you two laptop purchases from me alone.

At work I still use a 15" MBP from four years ago. I would have happily updated by now (if nothing else, because the anti-glare coating peeled off in the center of the screen); instead, I'm going to keep it until you abandon the butterfly keyboard.

And for my personal machine, I have an even older 13" laptop. I was going to buy a 13" MBP, but I won't buy anything that has that butterfly keyboard.

</comment><comment><USER55> I don't see the lawsuit mentioning the other common failure mode - <USER2> falling off.

<comment><USER56> Me too, and they say it will be over $500 to fix as they need a whole new casing

<comment><USER57> This is what turns it from a minor issue to a severe one in my mind.

I've killed a few keyboards on older Thinkpads. The replacement part was maybe $50 new, and considerably less for a used one on Ebay. It's not integrated with any other component and can be changed in 10 minutes with only a Phillips screwdriver.

I'm sure integrating the keyboard with the expensive machined aluminum upper case, trackpad and whatever else is built into that component resulted in a laptop that's 1mm thinner.

<comment><USER58> I have encountered Lenovo integrating the keyboard on other some of their models while helping friends with repairs. Of course, the top case replacement was not so insanely expensive, but it was still a point of frustration from the repair perspective. Certainly disappointed in Apple making the same move here.

</comment></comment></comment></comment><comment><USER59> If the average resolution is at least one $700 keyboard replacement plus 1-2 weeks (and they really should calculate a dollar amount for lost time), this ought to be massive. Yet, like many class actions, this will probably end handing out $3 checks or some other insulting amount.

What we really need to hope is that they've been working on a redesign or reverted design for awhile, as these things take years.

</comment><comment><USER60> When it works, the butterfly is great. Feels a lot better than older MBP keyboards. However, it does have frequent issues. If Apple can fix that while keeping the feeling of typing, it would be great.

<comment><USER48> And what about typing speed? I feel that I type slower on the new MBP than on older models.

<comment><USER60> I don't think I've noticed a difference, but it's not something I've been paying attention to.

</comment></comment></comment><comment><USER61> Thank god I bought the 2015. Not sure how long to hold out to buy a laptop for my wife. She's a graphics artist and is really really really tired of using Windows.

<comment><USER62> They still sell the 2015 new, it's a bit hidden, but available. We bought one a few months ago for a dev, after his second MBP had failing USB-C ports. The new MBP seems like such a weird step back. Sound is worse, keyboard is arguably worse, unnecessarily reductive (and often faulty) ports, gimmicky touch bar, no more magsafe, etc.

<comment><USER63> Are you saying that they are selling the 2015 on the Apple website? Could you show me where? I couldn't find it on their website.

<comment><USER64> They sell the 15" "Late 2015" model: [https://www.apple.com/shop/buy- mac/macbook-pro?product=MJLQ2...](https://www.apple.com/shop/buy-mac/macbook- pro?product=MJLQ2LL/A&step=config#)

<comment><USER65> Oh, wow! Do they sell the 13" anywhere? That'd be very tempting...

(fwiw, pasting in the corresponding model numbers into the URL gave me no such luck)

</comment></comment></comment></comment></comment><comment><USER66> Hey Apple...please prioritize robustness over thinness...I don't care if my laptop is super thin and has keys that only have to travel .00000003 millimeters if the thing isn't going to work after a dust particle falls on it.

</comment><comment><USER67> My B, and Up/Down Arrow keys were either hard to press or would "double" events. I now have a compressed air bottle next to my desk. It seems to do its job but I never had to do this with my previous MacBooks!

Another issue I face is pain in my first finger joints (right below the fingernail bed) after a long day of typing. Maybe I just have heavy fingers but the old softer keys were less harsh.

Another unrelated (we'll it is like a keyboard, right? :) issue is the TouchBar requiring two taps for most things. I even have my TouchBar as "static" with just a few buttons.

</comment><comment><USER68> I got a $2 can of compressed air and it helped my keyboard a lot - posting in case it helps some other hackers

<comment><USER69> We are an all Mac office and I can assure you that compressed air works great… until it doesn't anymore.

<comment><USER33> Yep, I used compressed air on my new MBP maybe 5 times before it stopped "fixing" the issue. Now, after a lot of hassle, I have managed to get Apple to fix the keyboard. MBP has been at an AASP since last week Monday, fingers crossed it'll be fixed soon... I was pretty tempted to just buy a new MBP from Apple while my current Mac is in repair and return the new one when my Mac got fixed.

</comment></comment></comment><comment><USER70> The "debris gumming up the keys" issue with the MacBook butterfly keyboard is certainly annoying. But there's a pretty easy fix in my experience: a few strategically delivered bursts from an air duster will clean them out nicely.

Apple even provides a guide on how to do it: [https://support.apple.com/en- gb/HT205662](https://support.apple.com/en-gb/HT205662)

<comment><USER71> The bigger issue is the loosening of the C-clamps due to this inevitable wear that makes the keys come right off.

Also, this happened to me inside of four months with the computer. I didn't have to air-can my previous Macbook Air for the four years I had it.

</comment></comment><comment><USER72> The worst part for me is the sound, the noise is so much more irritating than other keyboards for some reason. I think perhaps because of the higher pitch.

</comment><comment><USER73> I've got 15" 2017 and for me the keyboard is not the biggest problem; rather it's the integrated graphics.

Intel HD 630 is so bad that I can spot the lag during scroll in Safari. I switched to Radeon by turning on Photos.app(yes, if you ran Photos it would switch to discrete graphics).

I just can't grasp why the 13" has better integrated graphics than 15".

</comment><comment><USER74> I haven't had a key fail on my 2017 yet, but the keys are all over the place in terms of how they feel. The delete key works but feels like not actuating properly. The spacebar is awful.

</comment><comment><USER75> Still using my mid-2015 rMBP, waiting to upgrade until Apple fixes the issues with the current gen. Also waiting for at least 32GB RAM.

<comment><USER76> I've got 16GB in a 2010, and I've been wanting more since. No idea why they are stuck in 2009 - 2010.

</comment></comment><comment><USER77> I cuently have tree keys acting up. It's a pain in the ass and as much as I've loved Apple poducts fo almost 3 years, I'm eady to give them the old eave o.

Translation: I currently have three keys acting up. It's a pain in the ass and as much as I've loved Apple products for almost 30 years, I'm ready to give them the old heave ho.

</comment><comment><USER78> I've had the keyboard replaced twice for the exact same issue, the "B" key kept repeating. I'll probably have to pay extra if it happens again, but already you I've lost about days waiting on the repair since they have to ship it out.

I prefer to use an external keyboard when I can, but that can't be avoided all the time.

</comment><comment><USER79> On my third New-gen 13" Macbook Pro, can confirm it's the worst laptop i've owned in 10+ years

</comment><comment><USER80> May be this lawsuit will prompt free (or low cost) keyboard repairs similar to $29 battery replacement.

</comment><comment><USER81> I would gladly pay top dollar for the 2013/2014 MBP with upgraded internals. Beautiful machine.

</comment><comment><USER82> Had also one key which was registered as two key strokes every fifth to tenth time. Super annoying and the solution was strange: after vacuum cleaning and blowing the keyboard many times the only thing that helped was resetting the NVRAM with Command + Option + P + R.

</comment><comment><USER80> I love the butterfly keyboard and one of the key did get stuck and since then I started using compressed air once a week and it looks good so far after an year. So I would suggest the same for others and refrain from eating around your keyboard as much as possible.

<comment><USER83> I hope Apple reads this and sees how absurd their design is if people go to such lengths to keep their machine from failing.

<comment><USER80> Using compressed air is not so bad. Plus I like my MacBook Pro look new and shiny :)

</comment></comment></comment><comment><USER84> I spend a lot of time in the tropics (Thailand) and my keyboard gets stuck keys all the time. It's currently my single quote key. I have tried massaging it, smacking it, faith healing, etc. Nothing helps.

</comment><comment><USER85> I have a 2015 Macbook Pro and Im sort of anxious because if it breaks, I really don't want to get a butterfly keyboard one. Is there any idea when they will release a successor?

<comment><USER86> They still sell that model new.

</comment></comment><comment><USER87> I've hated that keyboard with the fiery passion of a thousand suns since the first time I used it and it kept getting worse with every stuck key - one of several reasons why the 12" MB is a "Bimbo" model that looks pretty and works like crap - but the idea of fixing this via lawsuit seems like a bad precedent. Their design sucks and the whole world needs to know how terrible it is but using lawsuits in this way for what ultimately comes down to a product just being kind of crappy seems innovation stifling. Give permission to make crappy things and let the market penalize you for it.

</comment><comment><USER88> Typing this comment in my MBP 2012, when did this butterfly keyboard started? On what model?

</comment><comment><USER89> Apple has lots of cash, The vultures(lawyers) who like class action lawsuits will endless look for and try to find a case against Apple so they can extract a lot of money and line their pockets.

<comment><USER51> As someone with a problem machine, I would prefer my money in the pockets of a vulture than Apple.

</comment></comment><comment><USER90> I don't understand why this deserves a class action lawsuit. Sure, it's not a great design, but is it bad enough to sue over? All companies release flawed products all the time

</comment><comment><USER91> whoeversaysmacbookkeyboarddoesn'tworkisclearlylying /s

</comment><comment><USER92> Sure, the new keyboard is polarizing. I personally love it, but I get why others hate it.

But nobody seems to be mentioning that the _old_ Macbook keyboards failed too, collected dust and debris just as much (in my personal experience). Probably once a month I'd have to pry off a keycap, blow below, and snap the keycap back on. Half the time it would be the space bar.

Now it's the same thing, except you use a can of compressed air instead [1]. Which I have to do, again, probably once a month. Yes it seems dumb to have to buy one (and it's not like they warn you in advance), but on the other hand, I'm no longer worried about breaking the mechanism when snapping on/off.

[1] [https://support.apple.com/en-us/HT205662](https://support.apple.com/en- us/HT205662)</comment>


Kodak Alaris Reintroduces Iconic EKTACHROME Still Film - <AUTHOR> http://www.kodakalaris.com/en-us/about/press-releases/2016/kodak-alaris-reintroduces-iconic-ektachrome-still-film <comment><AUTHOR> This is amazing because this film was discontinued 4 years ago becase of a lack on interest in slide film and the advent of digital photography. This isnt a replacement for Kodachrome which is ektachromes brother.</comment>


"Ideas by Raganwald" is free today - <AUTHOR> https://leanpub.com/b/raganwald

<comment><AUTHOR> It would be insulting to say "in honour of Aaron," given that I obtain a great deal of gratification when people read my works and that a wider audience helps my career.

But I will say that reading about academics open sourcing their works in his honour reminded me that everyone wins when ideas travel freely, and that is the theme of one of the books in this bundle.

</comment><comment><USER2> Thanks Reg!</comment>