Microsoft's ARM blunder: Why Windows RT was DOA - <AUTHOR> http://www.theregister.co.uk/2013/01/18/7_reasons_windows_rt_was_doa/print.html <comment><USER2> If Microsoft was a B2C company, the article would be spot on. They are not, however, Apple. They are primarily B2B. Windows didn't come to dominate the desktop because consumers loved it. It dominates because it provides a value proposition to businesses. Success with consumers is part of that value proposition, and one of the things which gives it an advantage over Linux.

RT is a long term strategy. It's not a tablet OS. It's the phone too, just not yet, fully.It's not targeted at consumers. It's targeted at enterprise.

As a B2C company, Apple will not offer a roadmap or backward compatibility. Google being an advertising agency, will always seek to read one's data. Microsoft knows what it is.

<comment><USER3> Xbox is "B2C", in a very big way.

The impression I got was that it was intended for consumers. Why else would you only sell it in a Microsoft store? (I did see one in a Best Buy. It was buried in with the other tablets, while there was a shining white table with iPads a few feet away, with actual people around it fondling the merchandise).

It's true that MS did give most of their full-time employees free Surfaces. I assumed this was to promote internal use, and hey, who doesn't like free stuff?

The hardware is great, but the Windows group really, honestly didn't know how to ship a tablet OS -- they're a B2B group trying to do B2C, but not really understanding what it takes. The result is emabarassingly bad in spots. My wife was having to deal with The Scourge That Is the Windows Registry, using the event viewer and task manager to diagnose some bug in WinRT. They really do not get it . . . or if they do, it's not at the level of design and management where it matters.

You don't have to do this kind of mucking around on a Xbox. There are good reasons for this. Yet the Xbox is based on Windows. Interesting.

Windows has been institutionalized inside MS to the extent that you can't ship a platform that doesn't use it. You need to use a /lot/ of it, and it's a procrustean bed, at best. Windows is getting really old and creaky; things that you _might_ be able to justify on a desktop (e.g., a corrupt registry, or a service horking and needing some TLC) are just death on a tablet, and having consumers drop into desktop-level tools to fix stuff is just sad.

(Don't get me started on WinRT).

<comment><USER2> Microsoft have always eaten their own dogfood. That's where Server and Office and Project came from...and obviously, Visual Studio.

Giving RT devices to employees continues this tradition. It's also evidence that this is an enterprise strategy, not B2C.

I used Windows 2.0. I was using WordPerfect when the first versions of Word were being developed. Surface is an MVP.

[edit]

A Note about Xbox. The way Microsoft handled the RRoD issue was pure B2B. They made it right for people out of warranty. Their choice of three years was the same as the period over which businesses depreciate assets. A B2C response would have been, "You should have purchased XboxCare."

[/edit]

<comment><USER4> If its an enterprise play, how come its software doesn't tie into the enterprise? No outlook, no power in Office, no AD integration: these are all things critical in the enterprise.

MS is certainly going to take the intel-based Surface into the enterprise. This one seems like a weird chimaera, sitting between the enterprise world and the consumer world. And that won't capture the average tablet buyer's imagination.

<comment><USER2> That's a good question. The answer I think is that Microsoft's ARM strategy is long term.

Instead of kludging around in the OS, you refactor Outlook, Office, Active Directory, etc. to better address the new reality of less powerful devices becoming prevalent. Clearly that's already happening as Microsoft pursues improvements in the cloud. It is also the same direction the companies the techpress love to compare them against - Apple and Google - are pursuing.

Microsoft's bet is that they will be better at delivering cloud services to enterprise (and thereby to consumers). I think the evidence makes this a pretty safe bet.

</comment></comment></comment></comment></comment><comment><USER5> I am going to ignore most of this because it's just more of the same (even if a fair amount is true) - it's fashionable to dog on ms right now.

But declaring that using Windows RT (and by extension the full NT kernel) as a basis for their tablet line was a fatal flaw ignores a whole raft of significant potential benefits to across their whole product line.

I was surprised when I found out that they were doing a port for their tablet instead of basing it on their mobile code base, but once they announced they were going to be using mainline nt on the phone too it all clicked.

Let's get real: The core NT kernel team is the unheralded jewel of microsoft. They put together a good base when their legacy16/32 base of 95/98 was clearly close to technical self destruction. In 10 years Windows stability on the desktop went from borderline worst to best in class by a notable margin. And while few people realize it, they have been consistently the first major player with modern security features and systems like nx, boot chain validation, driver signing requirements, default auto software upgrades, heavily improved os/browser sandboxing, document version based backups, 1st party FDE, and on and on.

Note I'm taking the NT kernel team. Not microsoft as a business, app developer, marketer, pariah. I have code in the linux kernel, am typing on os x and goog/aapl make my gadgets.

All I know is if I saw tablets/phones as an existential threat to my business and my earlier efforts had clear technical problems, I'd want to put my best team thats proven they can evolve on it. It's a perfect time - phones are shipping 4 cores and 2 gigs, meanwhile my server 2012 domain controller has been running great with 2 vcpus and uses on average 700mb.

At the same time laptops and servers are making a huge push into super low power operation. This requires more than just hardware changes - the mobile os's work hard on freezing workloads that aren't actively being used and it makes a big difference. Traditional desktop OS's are super bad at this because of history and existing applications, but future laptops and datacenters are destined for similar techniques. Even if WinRT dies horribly, the laptops people buy in a few years will be benefiting from microsoft's shared learning there. And of course, maybe that full windows laptop they buy won't be running on an x86 cpu.

I'm not rushing out to buy a surface or lumia it's true, but they certainly have piqued my interest and in my opinion they are currently doing the best technical/product/design work that they've done since... pretty much ever.

<comment><USER6> What is sort of weird is that Microsoft is the only company that is doing this with their own kernel. Everyone else (Google, Apple) have appropriated some other open source technolog for that (NetBSD for OS/X, Linux for Android) as if the kernel somehow wasn't a competitive advantage anymore.

I have no idea which approach is "better," this is just an interesting observation and might hint at the values of the companies involved.

<comment><USER5> I think building a tier 1 (or even tier 2) from scratch has gotten a well deserved reputation for being borderline impossible.

Just consider how many great efforts have crashed in the last 20 years: AmigaOS, GemOS (Atari), OS/2, BeOS, MacOS9, Palm, Symbian, WinCE and others. The ones that are still hanging on don't paint a much brighter picture.

I'm sure there are a few teams out there that would have a good shot, but the daunting task+access to good/free that your staff already has experience with... well.

That said, it's great MS is still at it - heterogenous infrastructure is probably a lot more resistant at a macro scale.

</comment></comment></comment><comment><USER7> Has Microsoft _ever_ produced a good version 1? Maybe XBox? I don't know much about games. But for the most part I think what MS is good at is slowly improving a turd until it's really quite nice. DOS, Windows, IE, Office, and Visual Studio were all much worse than their competition initially, but successful by their fourth versions or so.

But I don't know if MS has the heart anymore to go through a few rounds of failure to reach success.

<comment><USER8> Most big tech products are like that. The first Android and iOS devices were pretty crap (but showed promise).

</comment></comment><comment><USER9> to be honest, what fascinates me is that microsoft seems to have invested a lot of work the past few years to bring forward a pretty decent line up of integrated products. if you want windows and office like you had, that's fine. and much of the windows 8 UI disaster was actually made up by the press to have a great story, even that one video with the guy's dad. i was shocked when i saw that. then i installed windows and while setting up my account, it actually taught me about the new things pretty well. there's room for improvement for sure, but compared to apple, they do not only need to come up with a reasonable set of visible features (yes, this is how the masses work, not us here), but also make these mostly visual features feasible for business and consumers. people tend to forget that talking about 'business' does not mean a brooklyn hipster photography shop, or a startup (although there are just as many employees there) - it means a small shop in india, a global giant like boeing or a government system in germany (munich switched back).

and, in all that chaos, they need to present a clear thread from the mobile sales guy to enterprise software, from consumer home to consumer mobile.

apple is basically focusing on getting the story at home right. now they have the luxury of adding to that, which they become less and less effective at. the iphone was fantastic, and my home is now equipped fully with apple. but it sucks that this is where the story ends, at least for now (i'm sure they've figured this out already).

i'd love to see microsoft getting a bit more love, honestly. all these guys working hard, being the 'bad guy' since the 80's and everyone forgetting that there's a reason they're still in business, were never close to being shut down and very rarely every fire more than a few people. when they do, it's even in the news (last firing spree iirc was 2000 employees, 3 years ago or so, with +100k staff).

very sad that the 'press' still finds it lovely to tell us all how much microsoft really sucks. i love visual studio, i love c#, i love my iphone but man the windows phone 8 is so smooth and great to use, i love the macbook it beats any other notebook, but I also love windows 8 and the freshness of it.

what a drama world.

<comment><USER10> I imagine, since you say you love C# are you a .Net programmer? Others have pointed out that .Net programmers are Microsoft's biggest cheerleaders these days and have a conflict of interest in speaking about Microsoft's future since maybe they have staked their career on .NET.

<comment><USER11> Personally, if I wanted an interpreted language with bytecode, I much prefer C#. Much nicer language than Java. But the windows tools suck in my book (VS is slow as hell, their compilers are arcane, etc) and I much prefer Mono. The nice thing about Mono is that you can target every platform ever with it, including mobile.

So if I were contracted to write something business class in something interpreted, I'd definitely put C# with Mono at the top of the list. It is much nicer than Java to develop in, and has platform parity.

</comment></comment></comment><comment><USER12> I still think MS are up to something with Win 8. Look at the new Thinkpad Helix for example. Its a full fledged i5/i7 11.6" Laptop running Win8, and if you remove the Display you have a i7 powered tablet running Win8. Basically all your computing needs in one device. Sure they need to sort out a few things here and there, but this is the 1st generation of devices which looks really good. WinRT is DOA though, it needs alot of work and i dont see that worth it.

</comment><comment><USER13> Yeah, even as a .Net developer who generally has high praise for C# and VS, I agree that the WinRT Surface was DOA. Its exactly like those Android tablets that came out in 2011 with Android 3.x-really nice devices, definitely not garbage, but aren't worth the price they are being sold at. The difference is that was two years ago and Android tablets are finally moving ahead, after dropping in price (Fire, Nook, N7) and improving massively in terms of the OS on parity with iOS (JB and up). MSFT can't afford to enter the market like this two years late.

I'd say that the tablet should'e been priced at 299, with the keyboard cover thrown in. Maybe that'd have increased its popularity. On the plus side it also has file system access, command line, and powershell (for the 1% of the market who are geeky Windows sysadmin types). It also should've been sold at a lot of different stores right out of the gate.

</comment><comment><USER14> What's up with the repeated use of the term "fondleslab" here? Is that actual UK slang, or is the author just a weirdo?

I could not concentrate on any points made in this article because the repeated use of that term was wildly offputting.

<comment><USER15> Use of a funny word is wildly offputting?

Reminds me of an ancient bit on HBO's "Not Necessarily the News"... guy in the dark complaining bitterly at the TV, they rush him out the door into the front yard, limping in bathrobe, his eyes squinting in the sunlight, narrator loudly proclaims "GO OUTSIDE!". ;)

<comment><USER14> "wildly" might be overstating it, but I find it gross. Same way some people just don't like the word "moist", I guess. I was curious where the word came from.

Anyhow, back to our regular discussions of what Fondleslabs are going to conquer the market in 2013.

</comment></comment></comment><comment><USER16> What problem does Windows RT solve? Aside from niche use cases for IT types, nothing I can see. Potential customers seem to agree -- they're not buying it.

<comment><USER11> It solves the problem of Microsoft not having a tablet. There was a big pie in ipads, they wanted some pie, make a tablet. While they were at it, they could make it one of the most closed platforms ever conceived to try to make that app store money. Because that is where the new revenue is at, after all. That was Microsoft's arguments, at least, I'd imagine.

<comment><USER16> >>>It solves the problem of Microsoft not having a tablet.

For _customers_.

</comment></comment></comment><comment><USER17> I'm old enough to remember Apple II's (and personal computers in general) were the BYOD of the late 70's and early 80's.

<comment><USER4> That's an interesting point, as it shows that today's BYOD could crystallize into another homogenous world. I kind of thing it won't, though, just because, in the late 70s and early 80s, personal computers were rare and relatively expensive things. In today's BYOD, we are talking much greater proliferation at much lower cost.

<comment><USER17> I'm not thinking less about consolidation and more about disruption. BYOD is the personal computer to Microsoft's mainframe.

</comment></comment></comment><comment><USER18> Excellent slogan: _Microsoft: The software stinks_

or it is better suited for Java?</comment>


Some Startup Ideas - <AUTHOR> https://blog.orangecaffeine.com/some-startup-ideas-27007c5e2a24#.2kaj0yiv2 <comment><USER2> Although it's great hearing about start-up ideas, I think for me what keeps me most excited and efficient is the passion for the problem I am solving. I think it's critical for startup founders to be passionate about the problem they're solving, and if someone told me about a problem it would take longer for me to get onboard cause I don't know the problem at hand.

What are your thoughts?</comment>


Elixir 1.5 released - <AUTHOR> https://github.com/elixir-lang/elixir/releases/tag/v1.5.0 <comment><USER2> Official announcement: [https://elixir- lang.org/blog/2017/07/25/elixir-v1-5-0-releas...](https://elixir- lang.org/blog/2017/07/25/elixir-v1-5-0-released/)

We have published a draft version of the announcement since the release notes are not super helpful for those unfamiliar with Elixir. Is it possible to update the link to the official announcement? Thank you!

EDIT: We are done with the changes on the draft. We've added asciicinema snippets to show some features, improved the section on Calendar changes and also mentioned the compilation time improvements (expect at least 10% faster compilation).

<comment><USER3> Thanks you and all team members for amazing work! Elixir is truly a breath of fresh air it's really painful to go back to node at work :)

</comment></comment><comment><USER4> Elixir is truly an under-appreciated language. I've only toyed with it, and I'm really impressed with the whole ecosystem. Elixir, Phoenix, Ecto, Hex, etc all make a great ecosystem, and the awesomeness that is BEAM/OTP is just amazing. I loved the hot code deploys, and updating a system while it's running is something I've never seen before in action. Also Rustler is a great way to write CPU intensive NIF code too.

<comment><USER5> I wonder how the popularity trend of Elixir has been lately. I know you can try to see it through GitHub or Google Trends, but as many members of the Elixir community use Slack I don't know if it's the best way to do it. One thing I'd like to see would be the evolution of downloads of the language and on Hex.

<comment><USER6> It's got HN hype and a lot of the negatives that come with that (awful learning materials by people who haven't used it in production) and a decent amount of real world use though nothing major for now.

<comment><USER7> I believe Discord uses Elixir, and I think that counts as "major."

<comment><USER8> Yes, and they wrote some interesting blog posts about it:

[https://blog.discordapp.com/scaling- elixir-f9b8e1e7c29b](https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b)

[https://blog.discordapp.com/how-discord-handles-push- request...](https://blog.discordapp.com/how-discord-handles-push-request- bursts-of-over-a-million-per-minute-with-elixirs-genstage-8f899f0221b4)

</comment></comment></comment></comment></comment><comment><USER9> I highly recommend playing with Elixir or another purely functional language. I've only gone through the Programming Elixir book[1], but it has fundamentally challenged how I think about solving problems in other languages.

[1]([https://pragprog.com/book/elixir13/programming- elixir-1-3](https://pragprog.com/book/elixir13/programming-elixir-1-3))

<comment><USER10> Beware, because it can make you hate your current day-job language

<comment><USER11> Not for me. I've gone back and forth between projects that required functional languages, and projects that didn't across different companies. Bad code is bad code no matter what language it's written in. What makes me love my day job is whether I have the ability to make it better, and if those that work with me are aligned in wanting to do so.

I think practitioners of functional languages get a little preachy when really, exposure to functional languages should just be assumed to be part of the basic training of any engineer. It's a tool and as good as it is for some things, it's absolutely awful for others.

<comment><USER10> What are functional languages, as a group, "absolutely awful" at?

<comment><USER11> Low level code. Drivers, interfacing on COM/serial/USB ports, graphics programming or anything that requires more finely tuned data structures you have to manage yourself, low latency work where you can't afford to have a random GC happen at a bad point in the run loop...

Lots of things.

</comment></comment></comment></comment></comment><comment><USER12> It's a fast-paced development! That's pretty great. I hope core team would consider slowing down a bit and catch up with Deployment, Monitoring(which Phoenix team working on it) and Platform(e.g. http/2) departments.

v1.5 seems to have a bunch of bug fixes and deprecation (Hah! I'm not sure if it's like move fast and break thing). It is potentially the case.

In every important part, there seems to have a solo smart person working on it. E.g. Cowboy(I know it's erlang but Phoenix depends on it significantly), Distillery. That could be a good thing. Less people may catch up with each other faster. It also mean a load of works! And also mean some convention are out of sync (e.g. configuration which I think Conform is the proper way lately)

<comment><USER13> Yep, I just finished to setup a build and deploy system for Phoenix using edeliver and it's definitely not nice. A bunch of files in different languages, it feels unnecessarily hard. I hope that'll put some effort in that.

<comment><USER10> I host the production site I'm working on at Gigalixir[1] (with the postgres DB in Google Cloud) and it's been pretty sweet. Deploys have been trivial (the way they should be, if you aren't interested in also becoming a devops expert). Jesse Shieh is extremely responsive and a committed founder. Unlike Heroku, Gigalixir does not restart its servers nightly, which is very relevant if you store any state app-side (such as a cache).

[1] [https://gigalixir.com/](https://gigalixir.com/)

<comment><USER14> I wasn't aware of Gigalixir, thanks for mentioning that. Looks very promising.

I've been hosting my site at [https://clever-cloud.com](https://clever- cloud.com) with good results. I've been using Docker there but they just added beta Phoenix support which makes it really easy. They're French, and I'm in the US. So there have been time zone issues and support has been a bit lackluster at times, but generally they've fixed all the issues I've brought up and have been responsive. Price is right.

</comment></comment></comment></comment><comment><USER15> Can anyone doing Phoenix in production share their typical HTTP response times?

I built a small Phoenix project about a year ago, and compared to Rails it wasn't quite as fluent but still pretty nice. But ever since then, I've been trying to decide if the extra development time is worth it for the performance gains. I get that Elixir is more scalable, and I love how the RAM requirements compared to Rails are tiny, but what I still haven't been able to really answer is the latency improvement. According to these benchmarks it is about as fast as Django:

[https://www.techempower.com/benchmarks/#section=data-r14&hw=...](https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=query&b=2&s=1&l=sg&d=1n)

Is that really the best I can hope for?

<comment><USER16> Phoenix creator here. The techmeme results are not representative of the framework. Several months ago they added Phoenix in a preview, but it was a very poor implementation. They were testing JSON benchmarks through the :browser pipeline, complete with crsf token generation. They had a dev DB pool size of 10, where other frameworks were given of pool size of 100. And they also had heavy IO logging, where other frameworks did no logging. We sent a PR to address these issues, and I was hoping to see true results in the subsequent runs, but no preview was provided this time and we weren't able to work with them on the error rate issues they ran into. After these experiences we've decided the core-team's time is better spent on the framework than chasing techmeme issues. If you go by real-world success stories from companies switching from Django, Rails, etc, you can certainly expect much better.

<comment><USER17> > The techmeme results are not representative of the framework.

I've seen several instances of this, now. Some Rails benchmarks jumped up pretty high as well when they managed to get someone to competently configure Puma. Practically the same story, just changing out names.

Take techempower benchmarks with a boatload of salt. Not only are they not particularly representative of your real world use cases, they apparently are often not representative of competent use of the tools they're benchmarking.

Hopefully this is an issue the techempower people figure out some way to address. It would be nice if this was a more trustworthy resource.

</comment></comment></comment><comment><USER18> I think this is the best news all week! Congrats to the Elixir team. I love working with Elixir. Hopefully I will be able to contribute to the ecosystem soon. Excited about the future.

</comment><comment><USER19> There's quite a few nifty little things in this one.

I'm not sure I like the child_spec change, personally I like the supervision mode to be explicit when calling children.

I do like the developer tools, the breakpoint support, the UTF8 for atoms (which I'm realizing we may want in our DSL since we're converting user input strings to atoms), and the @impl that allows to explicitly declare which functions are there for an interface.

Overall, it's amazing to be part of the elixir community, rarely have I seen such emulation, positivity, speed of growth, and effectiveness achieved so fast for a language. Congrats @josevalim for bring the power of BEAM through a wonderful syntax!

<comment><USER20> > which I'm realizing we may want in our DSL since we're converting user input > strings to atoms

careful there. Theres a hard limit on the number of atoms that can be created in an environment, and serializing user input to atoms can get dangerous

<comment><USER21> also not being garbage collected...

<comment><USER22> String.to_existing_atom/1 is helpful.

[https://hexdocs.pm/elixir/String.html#to_existing_atom/1](https://hexdocs.pm/elixir/String.html#to_existing_atom/1)

</comment></comment></comment></comment><comment><USER23> Congrats on the new release! While this is all great news, it's still quite hard to get a full-time Elixir job outside of US. Kind of like staring at the candy shop display while it's closed. I'm wondering how to make this happen. I'm in a place where Elixir is just not going to happen and seems unreasonable to expect that I'll be able to convince people to switch to it right after joining a new place. Seems like the only option is to find spare time for playing with Elixir, but that proved to be difficult when I need to invested time in a different stack that actually helps me pay the bills.

<comment><USER24> You should keep checking out the forum[1] for remote work opportunities. And I don't think it's that hard, I just got a job in Europe in elixir ;)

[1]([https://elixirforum.com/c/elixir-jobs](https://elixirforum.com/c/elixir- jobs))

<comment><USER23> The job offers are not that often, so I guess you've beat everybody, myself included, with production experience.

</comment></comment></comment><comment><USER25> I haven't had this tingly feeling since when I first used Ruby/Rails 2. Elixir is growing and setting the bar of what "developer ux" means.

mix test mix docs Genserver Pattern matching

The list goes on, you find yourself in The Zone more often.

<comment><USER26> I totally agree with this. I feel like it makes me think differently about my programs in a way that I haven't before. It's really enjoyable.

</comment></comment><comment><USER27> I would love to see these 2 year old performance benchmarks updated where Elixir scaled to 2m connection on a single node.

[http://www.phoenixframework.org/blog/the-road- to-2-million-w...](http://www.phoenixframework.org/blog/the-road-to-2-million- websocket-connections)

</comment><comment><USER28> Congrats to the Elixir core dev team for another fine release. The improvements to iEX's debugging capabilities are going to make a big difference to day-to-day developer UX. Thanks!

</comment><comment><USER29> What an amazing release! I've never been as excited about a language and its ongoings as I am with Elixir. Thank you Elixir team for creating such a great language and making all of your work so accessable, transparent, and friendly.

Well done!

</comment><comment><USER30> What frontend stack fits Elixir most symmetrically? Is there a "ClojureScript" to Elixir's "Clojure"?

<comment><USER31> Elm works very well with Elixir[0]

[0] [https://www.dailydrip.com/topics/elixirsips/drips/phoenix- an...](https://www.dailydrip.com/topics/elixirsips/drips/phoenix-and-elm)

<comment><USER32> In what way does Elm work better with Phoenix than, say, with Rails or Django?

<comment><USER31> For me it was that the mindsets of Elm and Elixir were very similar. Create small functions that accept data, and emit data, sometimes create a message with some data attached to it. Using pattern matching is very similar between both languages for matching on message types and shape. Also both languages share a nearly identical pipe operator, which influences the building of very strait forward function pipelines for transforming input or data into responses and output.

</comment></comment></comment></comment><comment><USER5> Great news, all those debugging improvements look great. I was actually considering how break points would help me on my current debugging.

I've been using Elixir for almost two years now and it's no silver bullet, but overall it has been a really great experience.

</comment><comment><USER33> Good news from elixir and erlang

</comment><comment><USER34> That, great news, I'm especially curious about this line here:

[ExUnit] Show code snippet from test source file in case of test errors

ExUnit backtraces have historically been a bit hard to read sometimes IMHO.

<comment><USER2> This line is about showing a snippet of the test when a test fails. We did this before but only for assertions.

I am afraid this change will not improve the qualify of the stacktrace itself.

If you run into a situation where the test report is less than ideal, please open up an issue so we can discuss if there is something that can be done about it.

</comment></comment><comment><USER35> "Using () to mean nil is deprecated" <\- interesting.

<comment><USER36> I'm just starting to use elixir and I'm curious, when would one use `()` in place of `nil`?

<comment><USER37> it's one of the controversial points in lisp dialects. treating empty list as nil means it's falsey when used as predicate which has it's pros and cons.

for instance if empty list is truthy, this pseudocode won't terminate if tail is defined to always be a (possibly empty) list:

        while seq:
            head, seq = seq.head_tail()
            f(head)

<comment><USER38> If empty list isn't "falsey", it's not Lisp. It's a "Lisp-like" at best.

Sussman and Steele had the good sense not to call Scheme "<something> Lisp", because they knew that it would "ring falsey".

<comment><USER37> could you produce an exhaustive list of properties of a proper Lisp so that i don't mistakenly call something that isn't a Lisp, a Lisp?

<comment><USER38> Yes, I could. Though I would avoid using _proper_ ; the aim isn't to deem something "good" or "bad", just whether a name applies to it. An "improper" Lisp is very good and proper something else, and perhaps very Lisp-like language with a lot of conceptual compatibility with Lisp.

In a Lisp:

* expressions evaluate their sub-expressions strictly, usually in a left-to-right order unless otherwise noted (in the case of control constructs which repeat or omit the evaluation of some parts, and such).

* evaluation of all expressions either always produces a value, or in he case of multiple value support, always produces a tuple of zero or more values. In any case, when an expression appears in a spot where its value is required, its first value is taken, and if it returns no values, its result is taken to be _nil_.

* Tokens consisting of nothing but the 26 upper and lower case letters denote interned symbols. Two symbols _nil_ and _t_ are special in that when the are used as expressions, they evaluate to themselves and may not be used as variable names. Symbol names may be case-insensitive/folding so that _NIL_ and _nil_ denote the same object.

* A type exists called a _cons cell_ (or just _" cons"_) representing a pair of values bound together. It is produced by a two-place function called _cons_ which creates a cons and initializes its two fields from those two arguments. The left argument initializes a field called _car_ , and the right argument initializes a field called _cdr_.

* A pair of unary functions _car_ and _cdr_ take a cons cell argument, and retrieve the _car_ and _cdr_ field, respectively. _car_ and _cdr_ may also be applied to _nil_ , and return _nil_.

* Cons cells are mutable, except possibly cons cells derived from literals expressed in program source code (for the sake of being able to put compiled program images in read-only memory, and condense their representation by collapsing identical conses). The functions _rplaca_ and _rplacd_ mutate the _car_ and _cdr_ of a cons.

* The printed notation for a cons cell is _(a . d)_ where _a_ recursively denotes the printed notation for whatever object constitutes the _car_ , and likewise _d_ is the printed notation of the cell's _cdr_. In the special case when _d_ is the object _nil_ , the _(a . nil)_ notation condenses to just _(a)_ which is understood to be equivalent.

* Lists are represented by _cdr_ -recursive chains of cons cells: a list is zero or more conses, referentially linked via _cdr_ fields, with the _car_ fields used for the containment of the list elements. The symbol _nil_ appearing in the _cdr_ of a cell indicates the end of the list. A cons cell appearing in the _cdr_ of a cons cell indicates that the list continues. A value other than _nil_ or a cons cell also terminates the list, but "improperly": the list as a whole is called an "improper list".

* The symbol _nil_ by itself represents the empty list. There is no "improper empty list": a non-empty list begins with a cons cell. (In some situations, there is an "emergent phenomenon" in which a non-nil atom behaves as an empty improper list; e.g. (append '(1) 3) -> (1 . 3).

* The symbol _nil_ also denotes the (one and only) Boolean false value. A form which returns a Boolean indication returns _nil_ to indicate "false", and any other value to indicate "true". The symbol _t_ is a canonicalized representation of truth.

* Every object which is not a _cons cell_ is an "atom". The _consp_ function returns _t_ (true) when its argument is a cons cell, otherwise _nil_. Its logical opposite is the _atom_ function which returns _t_ for an atom, and _nil_ for a cons cell.

* A Lisp supports the functions and operators: _null_ , _and_ , _or_ , _cond_ , _eq_ , _equal_ , _apply_ , _eval_ , _quote_ , _cons_ , _car_ , _cdr_ , _rplaca_ , _rplacd_ , _list_ , _append_ , _lambda_ and _let_.

<comment><USER37> strikes me as a detailed description of a very particular implementation that you specifically like. considering lisp is a family of languages - which of these rules do you accept deviations from and by how much?

<comment><USER38> > _detailed description_

Hardly at all; even the 1960 Lisp 1 manual ran for some 160 pages; this is just a few bullet points. It leaves a lot of room for family inclusion.

But not every Tom, Dick or Harry that walks in off the street is your family member, or even a friend.

> _very particular implementation_

Nope; just the original thing and many of its derivatives that can legitimately be called some kind of Lisp.

"Lisp" is in fact the name for a particular set of _implementation features_.

You may have a very nice implementation of some sort of list processing with all the equivalent expressivity and power, or whatever measure of pedigree we choose; it's just not Lisp: pick another word.

> _which of these rules do you accept deviations from and by how much?_

None. These are the things someone shouldn't mess with, if they want people to refer to their programming language as a Lisp dialect.

And, in fact, at least if we look at major works in the mainstream, most of those who do change those things understand this and don't use that term in naming their language. So, a fairly good approximation to the predicate _" is not Lisp"_ is _" does not have 'Lisp' in its name"_.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER39> What do people use as a PaaS provider for Erlang/Elixir?

<comment><USER40> Heroku is fine for development. However, it does not work with hot code swapping. There are ways around it, and some people don't believe it's a gain.

There is also [https://github.com/hashrocket/gatling](https://github.com/hashrocket/gatling) that promises the Git push workflow but with hot upgrading capability.

<comment><USER2> Heroku is OK as a deployment platform. Hex powers Erlang/Elixir communities on a small Heroku dyno ($7). And 99% of Elixir developers should not worry about hot code swapping anyway. Let your load balancer or your PaaS take care of it.

<comment><USER41> Hex runs on 1 small Heroku Dyno? That's amazing.

<comment><USER42> I believe that's alongside using Fastly for CDN work, which might pick up a majority of the work, I'm not sure.

</comment></comment></comment></comment></comment><comment><USER43> Is Elixir being used exclusively for web development? If not, what else are people using it for?

<comment><USER44> Backend services that need high reliability, low latency, lots of concurrency. Lower p99 latency and better concurrency model than Java, more reliable/productive than C++.

</comment></comment><comment><USER45> Could somebody explain the @impl feature in a little more detail. I'm confusing the terminology of callback functions I think.

<comment><USER46> Before this change, if you wrote a module (let's call it MyFoo) that implemented a behaviour, your only clue would be the `@behaviour Foo` near the top. All the functions in MyFoo would look the same; you'd need to look in the Foo module to look at Foo's list of callbacks if you wanted to know which of MyFoo's functions implemented Foo's callbacks.

Now with this change, you are free to mark those functions in MyFoo with `@impl true`. It's entirely opt-in, but once you use it, it enforces the presence of `@impl true` on all MyFoo's callback implementations. This allows the programmer to make these functions' purpose clear, and uses the compiler to make sure the annotations aren't stale or incorrect.</comment></comment>


Resource Compiler for Go (single executable deployment) - <AUTHOR> https://bitbucket.org/tebeka/nrsc

<comment><USER2> This is a cool idea, and I love the convenience of deploying a single-binary app when using Go for servers.

When deploying web servers, though, I'd prefer to leave the images and other static resources out of my binary, because this means I can use an rsync-based deployment with --copy-dest and --link-dest. --copy-dest means that deployments are blazingly fast (I only have to copy changed files) and --link- dest means that deployments are cheap on space (unchanged files are hardlinked to the copies). Granted, bandwidth and storage are cheap and getting cheaper, but it still adds up, particularly for large server clusters.</comment>


Why Exercise Won't Make You Thin - <AUTHOR> http://www.time.com/time/health/article/0,8599,1914857-1,00.html <comment><USER2> Submitted 28 days ago:

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


Show HN: never/over, a fan-curated shrine to Daft Punk - <AUTHOR> http://www.neverover.co/?ref=hn

<comment><AUTHOR> Some friends and I all think Daft Punk is pretty awesome, and have been imagining what a collaborative multimedia shrine to Daft Punk might look like. What if there was one place online created by the fans to represent Daft Punk media/culture? What would it look like? What would it feel like?

This is our first take at it, and we'd love to hear your thoughts, questions, and critiques..</comment>


Ask HN: What is the best coronavirus map? - <AUTHOR> I haven't found a truly comprehensive map in which you can find/sort/filter all relevant data (daily moves, filter by country/region/city<p>- JH coronavirus was a good first-mover, but filter is bad, not optimized for mobile. Bubble map is not necessarily good with so many overlapping regions<p>- Bloomberg, NYTimes and many other are static figures with little to improve and allow for deep dives.<p>- Kudos to the nextstrain community for providing a awesome epidemiologic tree <comment><USER2> Don't think there's a best yet:

[https://www.cdc.gov/coronavirus/2019-ncov/cases- updates/worl...](https://www.cdc.gov/coronavirus/2019-ncov/cases- updates/world-map.html)

[https://sneezemap.com](https://sneezemap.com)

[https://bing.com/covid](https://bing.com/covid)

</comment><comment><USER2> [https://healthmap.org/en/](https://healthmap.org/en/)

[https://www.arcgis.com/apps/opsdashboard/index.html#/bda7594...](https://www.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6)

</comment><comment><USER3> This is US and Canada only, but updated frequently and seems to be based on accurate sources - [https://coronavirus.1point3acres.com/en](https://coronavirus.1point3acres.com/en)</comment>


Google Pulls YouTube Off the Amazon Echo Show - <AUTHOR> https://www.theverge.com/2017/9/26/16371292/google-youtube-amazon-echo-show <comment><USER2> Amazon inexplicably banned sales of Chromecast on Amazon.com some time ago. [0]

What goes around comes around.

[0] [https://www.theverge.com/platform/amp/2015/10/2/9439281/amaz...](https://www.theverge.com/platform/amp/2015/10/2/9439281/amazon- ban-apple-tv-chromecast-why)

</comment><comment><USER3> Google cancelled Amazon's access without warning because the Echo Show "creates a broken user experience".

I get that it's a 1st gen device, but that statement sounds like Equifax wrote it with such blatant bullshit from Google.

What are they going to do next, tell me that Oracle is cheaper than MySQL??

</comment><comment><USER4> Google did something similar when they pulled the youtube app on Windows Phone. They really know how to not be evil.

<comment><USER2> Microsoft's app removed all the ads. Simple TOS violation. Very straight forward.

<comment><USER4> Here's the real reason: [https://blogs.technet.microsoft.com/microsoft_on_the_issues/...](https://blogs.technet.microsoft.com/microsoft_on_the_issues/2013/08/15/the- limits-of-googles-openness/)</comment></comment></comment>


New documentary exposes media consolidation and government collusion - <AUTHOR> http://www.savetheinternet.com/blog/11/06/14/killswitch-and-battle-over-internet

<comment> Vic-nyc This would be a very interesting and timely movie, since we're approaching a cycle when conglomerates are, once again, consolidating into ever-bigger entities. (think AT&T trying to buy T-mobile as a small example).

I would also recommend Tim Wu's book "The Master Switch" that discusses media monopolies in the U.S. in historical perspective, from the telegraph and early telephone on to movie studios and on to the Internet nowadays. As the book explains, the Internet itself in its current open form is a historical aberration, similar to the multitude of choice in the early days of radio which was short-lived, to be soon replaced by monopolies under the government's helping hand. In fact, many technological inventions would not even have been possible when they happened (and some were delayed by decades) because of large monopolies. The origination of the Internet itself, the book explains, is a direct result of the splitting of AT&T in 1984, which allowed, for example the standard modem jack to exist (jacks and equipment were proprietary before that), and which disallowed AT&T from getting in the Internet business as an ISP. It seems that these lessons have begun to be, once again, forgotten by our modern generation. The solution to all this would be that the government properly fulfills its role of ensuring free market access and prevention of monopolies. It would also entail what's termed a "separations principle", the creation of distance between each of the major layers in the information economy.

<comment><AUTHOR> Good insights Vic-nyc.

Tim Wu's book is excellent and was one of the many books that have influenced me in the writing of this doc. He's on our list of future interviewees.

His explanation of the "Separations Principle" is essential reading for any one that wants to protect the integrity of the Internet as we know it.

Have you read Evgeny Morozov's book, "The Net Delusion"...? Interesting book -- He looks at the future of the Internet and of democratic government from an interesting perspective. His central premise is that totalitarian governments in the 21st century will look increasingly more like Huxley's, "Brave New World" than Orwell's "1984"...

We plan on interviewing him as well...

</comment></comment><comment><USER2> For folks more in-the-know than me on govt/corp history, does the power struggle between the people and controlling entities (wether it be the govt or the corps as we are seeing more recently) ebb and flow? Is this an ebb in out history where we see the balance of power pouring to the corp side of the scale or is this an unprecedented moment in history where we see control in health care, research, internet, communications, news, newspaper/magazine, popular culture (TV shows, Disney-created properties, modern fads, etc.), food, etc. all primarily dictated by corporations?

I'll do my part to pledge money for this movie because I think it is important to shine as much light as possible into dark corners... the lack of light allows nasty things to grow it seems, but I also (unfortunately) have no expectations that any change will come out of this as a result.

It seems like we have more information about corruptions and injustices now than we ever have in the history of the world; whether it is too overwhelming or "just not bad enough to care", the result of things mostly staying the same and going down the same path seem to continue.

Either things aren't as bad/terrible/horrifying as movies like Lose Change and Zeitgeist make them out to be or we (humans) are extremely difficult to mobilize as a group.

I really don't know how to think about gross imbalances of power. You see it so much it doesn't surprise you any more, but you still hate it, but I'm also very busy so I'm not running out with signs to stand on corners trying to get people to change their minds.

Anyone have more valuable thoughts on this to help put this in perspective? I'd appreciate it.

<comment><USER3> A couple of books on the topic: "The Master Switch" by Tim Wu, and "The Creation of the Media", by Paul Starr.

"The Master Switch" goes through the history of radio, where an initial period of experimentation was stifled by regulation, with big business (the large networks) being the major beneficiary; the two weren't necessarily opposed.

On the other hand, the former will show you that eliminating regulation doesn't necessarily eliminate the problem. In the absence of effective regulation in the 19th century, Western Union seized an effective monopoly on telegraphy. Having done that, they then made a deal for cut rates with the Associated Press whereby AP-affiliated newspapers (effectively, any paper that wanted to cover national stories) were forbidden to editorialize against the monopoly.

<comment><AUTHOR> Hi rst:

You're right, "Master Switch" is a great book. It has influenced me in the writing of #killswitch.

Link to #killswitch project: [http://www.kickstarter.com/projects/akorn/killswitch-a- docum...](http://www.kickstarter.com/projects/akorn/killswitch-a-documentary- film?ref=live)

I have not read "The Creation of the Media", by Paul Starr. What can you tell me about that book?

</comment></comment></comment><comment><AUTHOR> For those that want to know more about the film... check out our kickstarter page:

[http://www.kickstarter.com/projects/akorn/killswitch-a- docum...](http://www.kickstarter.com/projects/akorn/killswitch-a-documentary- film?ref=live)

(Our 5 minute trailer is posted there - and you can contribute to production if you would like to - we've raised over $14,000 in two weeks thanks friends passing this along)

You can read our treatment on our official website: www.killswitchthefilm.com

And if you want to see the film projects we've worked on in the past go here: www.akorn.tv

Thanks everyone for taking interest. We have no advertising budget, so any interest we generate is word of mouth.

</comment><comment><USER4> Interesting how on one hand people are claiming that the government is colluding to create internet censorship, and on the other hand the government is sponsoring a device to help circumvent internet censorship:

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

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

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

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

Left hand? Right hand? What will the government do when people create their own mesh internet?

<comment><AUTHOR> Very interesting, Colin.

Our central premise in #killswitch - the documentary, is that decentralization of knowledge is essential for democracy.

The Printing Press gave society this during the enlightenment period, halting centuries of oppression in the Western World. And the Internet is doing this today by revitalizing democracies in the Western world and helping ignite revolution in the Middle East.

We advocate a Constitutional framework that protects the integrity of the Internet. i.e. a separations principle, whereby content providers should not be ISP's and vice versa. (Detailed account of this in Tim Wu's, "Master Switch").

We are averse to any "Big Brother" Regulation by the Government or "Brave New World" Corporate take-over of the Internet.

The only way to combat oppression is to have accountable governance is to have decentralization of info/knowledge.

One of a demcocracy's central purposes is to protect this decentralized and accountable framework (by protecting the decentralized integrity of the Internet).

One way the gov. can do this by enforcing the 1st Amendment, i.e. Freedom of the Press and Freedom of Speech. But the gov. won't do this with out an aware and educated citizenry. Which is why we're making the documentary.

Check out our trailer on kickstarter when you get a chance: [http://www.kickstarter.com/projects/akorn/killswitch-a- docum...](http://www.kickstarter.com/projects/akorn/killswitch-a-documentary- film)

      (for a detailed account of how our founding father's expressed the difference between Freedom of the Press and Freedom of Speech, check out Robert McChesney's  "The Death and Life of American Journalism")

</comment></comment><comment><USER5> Whilst not directly related to #killswitch, if you'd like to see some great documentaries related to the balance of power between business, government and the public then I can highly recommend checking out the work of documentarian Adam Curtis <http://en.wikipedia.org/wiki/Adam_Curtis>

</comment><comment><USER6> This is actually a request for donations to create a documentary...

but there is a trailer.

</comment><comment><USER7> This Stock Blog gives insight on daily stock market trading as well as stock trading analysis and technical analysis of the Stock Market and individual stocks making the news. We don't give Stock Picks ( I guess the stocks that I buy are stock picks ) but we do give stock alerts on the best stocks to watch and the hottest stocks to trade daily <http://stockmarkettowatch.blogspot.com> Stock trading blog</comment>


Apple App Store has paid devs over $70B since it's launch - <AUTHOR> http://www.businesswire.com/news/home/20170601005532/en/Developer-Earnings-App-Store-Top-70-Billion <comment><AUTHOR> The best news in this release is the 58% growth in subscription revenues. Since Apple has never had a system to allow paid upgrades, subscription is the best way to build a sustainable software business on the store. So this rapid growth indicates that customers are accepting subscription based software and that's great news.

I also posted this because on other threads some devs felt that because the market is top heavy that only huge developers like SuperCell and Kings were the beneficiaries. They felt that paying $99 a year and being forced to buy an Apple computer just weren't worth it. I wanted to point out that's not true and that strangely, despite my failure I'm an example of it.

My iOS app business has essentially been closed for over a year. I was never able to get revenues above $70k a year, and they've fallen over time, mostly because my main app is in a niche that's really hard to grow and frankly not worth the effort. And because my other ideas weren't successful, or I didn't do them well enough.

But still I've profited from the massive growth of the app store. I recently took a job for a company that has a large free app (as well as other internal apps used by employees). I'm now making over $130k a year (salary plus benefits) in one of the cheapest places in the country to live. Plus, I'm still making around $1500 a month from my existing apps, without doing any updates.

All the revenues from the growth in the App Store has created a lot of good jobs and developers benefit directly from them. I'm in particular grateful for the one it created for me, at a great company with outstanding benefits as well as management philosophy and business principles. For all the things we bitch about as developers, I have to point out that by comparison to most jobs it's a pretty awesome gig for those of us lucky enough to be employed as developers.

</comment><comment><USER2> Actual title: "Developer Earnings from the App Store Top $70 Billion"

Please don't unnecessarily change titles. Per the guidelines:

> _please use the original title, unless it is misleading or linkbait._

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

I understand you were likely trying to make it more informative (Which app store? Since when?), but as the given title doesn't appear to warrant editing according to the guidelines, please refrain from doing so.

</comment><comment><USER3> F up title editorialization - bloody f developers paid to f company a shitload of money!

<comment><AUTHOR> Sorry, don't understand your point. I'm up over $100K in what Apple has paid me the last 5 years over what I've paid them. Not counting contracting gigs and job paychecks, or it would be 3x that.

<comment><USER3> The original title is "Developer Earnings from the App Store ...".

F###### Apple is just the f##### bank in the process where you develop goods consumed by your customers. By chance that bank is the same company as the owner of the platform you're using to reach your customers.</comment></comment></comment>


California to end DST? - <AUTHOR> http://www.sfgate.com/bayarea/article/California-is-one-step-closer-to-ending-daylight-11190212.php <comment><USER2>
      If passed, the bill would repeal California's 67-year-old Daylight Saving Time Act.

It's not that simple. It would have to pass both houses, be signed by the Governor (or override a veto), _and_ be approved by voters at the next statewide election. That's rather sloppy reporting.</comment>


It is legal for Grammarly to read, share and store forever all my emails? - <AUTHOR> https://law.stackexchange.com/questions/18427/it-is-legal-for-grammarly-to-read-share-and-store-forever-all-my-emails <comment><USER2> Good reason not to use Grammarly. Consider this my last contribution to their project before turning off the plugin. Bye!</comment>


CSS Triggers – What work is triggered by changing CSS properties - <AUTHOR> http://csstriggers.com/ <comment><USER2> Related [and linked] blog post: [https://aerotwist.com/blog/css- triggers/](https://aerotwist.com/blog/css-triggers/)</comment>


Show HN: My contact form for deleting Facebook - <AUTHOR> https://www.jeremiahlee.com/posts/delete-facebook/ <comment><USER2> Very well-made, I thoroughly enjoyed it. Relevant content that communicates your decision, provides supporting facts, and encourages others to take a stand. The design is right on, as a tasteful satire of social media. Way to take the power back!

<comment><AUTHOR> Thank you for the kind note!</comment></comment>