What skeuomorphism is (and isn't) - <AUTHOR> http://sachagreif.com/what-skeuomorphism-is-and-isnt/ <comment><USER2> "It helps tell these apps apart ("Find My Friends? Oh, right, the one with leather!").

It makes the apps more approachable ("Hmm, this looks just like my real-world address book, it can't be much harder to use")."

Honest question: are these two things really issues? I've just never encountered the level of non-technical user that would be lost but for those particular touches. And I know there's a huge amount of selection bias in there, but I think usability/distinctiveness can be achieved _without_ kitschy textures or creating your own set of UI elements.

If anyone has more links on it actually helping new users, I'd love to see them. The reasons just sound like post-hoc rationalizations to me. Especially because realistic/skeuomorphic/what-have-you skins have gone in and out of fashion over the years and I don't recall complaints that, say, iTunes looked less "just like" a CD player than the old System 7.5 CD player app.

(And honestly, in the few minutes I played with the Lion Address Book out of curiosity, I felt like I was missing something big about how it worked. That one in particular seems like a case of things getting more confusing because it presents a physical metaphor that doesn't really fit the digital version.)

<comment><USER3> > I've just never encountered the level of non-technical user that would be > lost but for those particular touches.

They say that economics happens at the margins. In other words, changing the price of a sandwich from $3.40 to $3.25 isn't going to make you buy 10% more of them. But in the population of consumers, there is a chunk that are on the margin that will be totally converted, and that results in a 10% volume increase in aggregate.

Something similar may be going on here. Make a design tradeoff (using leather) in order to get a 10% user benefit, even if 50% of your users get no benefit.

</comment></comment><comment><USER4> I think this issue is beyond defining. Skeuomorphism has been generalized to cover most designs that include faux textures or design elements.

When it comes to Apple's design decisions, they absolutely have no idea what they are doing with all of these disgusting flourishes. see this article: [http://www.fastcodesign.com/1670760/will-apples-tacky- softwa...](http://www.fastcodesign.com/1670760/will-apples-tacky-software- design-philosophy-cause-a-revolt)

<comment><AUTHOR> That was a good article, thanks.

But I guess I'm giving Apple the benefit of the doubt: although I personally agree that some of their designs are tacky and over the top, I trust them enough to assume they have their reasons.

<comment><USER5> Interesting reading. If this quote from link above is true:

"Skeuomorphism is a catch-all term for when objects retain ornamental elements of past, derivative iterations--elements that are no longer necessary to the current objects' functions."

Then Sacha Grief, might be wrong. The example he given, used blue leather and white buttons and he derided the example as not skeuomorphism. But in that example only a part of it was the ornament (i.e. blue leather). I could be wrong but what does ornamental take into account? Whole thing or just a part?

I mean rest of his story does make sense, but it's still an invalid example.

EDIT: It might be a nitpick, but I like to know what is and isn't skeuomorphic.

<comment><USER6> The quotation you refer to doesn't nullify Sacha's point. It says it's a "catch-all term for when objects retain ornamental elements of the past." Sacha says the blue leather texture example is NOT skeumorphic because the textures did not exist in past iterations of the product, since there was no original to begin with.

If I translate a physical object into a digital version and replicate ornaments that add no function in the digital version (ie. a leather texture), that's considered skeumorphic. On the other hand, if I apply a leather texture to my UI for random app X, that's not skeumorphic.

</comment></comment></comment></comment><comment><USER7> I think this distinction is important, just so people are using the same vocabulary.

But genuine question: is there another word we can use which means semi- photorealistic leather, stitching, physically textured, etc. interface? Usually with all that being largely gratuitous?

In other words, if we're not bashing skeuomorphism, what is the name of the thing we're meaning to bash instead? :)

<comment><USER8> Baroque?

<comment><USER9> That's a good word for it.

There was a short-lived trend in design a few years back that used the term "maximalism" to mean something similar - covering every surface, layering metaphors on top of metaphors, mixing traditions from all over.

</comment></comment></comment><comment><USER10> >Apple knows what they're doing

They did, once upon a time. Look at the aesthetics of recent iterations of iCal though, and you can see that they really, really don't anymore.

<comment><AUTHOR> Honestly, I understand not agreeing with the direction they're going in, but that doesn't mean they don't know what they're doing. Maybe we're just not the target market for all these apps?

<comment><USER11> Bingo, all the piling on here is really just the chauvanism of hackerdom. Hey I don't need this texture, ergo this texture is stupid and useless.

Meanwhile as the post points out, these textures and animations are important comforts, cues and guides for many users, especially newer users.

<comment><USER12> do you have a citation for that? I don't really believe that fake leather makes an app more approachable or easier to use. Of course, if there are usability studies that prove me wrong, I'm happy to revise my opinion.

</comment></comment></comment></comment><comment><USER13> There are plenty of skeumorphic apps that users love. E.g. the Korg drum machine app that looks and works like a Korg drum machine.

What people are actually objecting to is apps that have gratuitous visual borrowings that do nothing but consume screen real estate and occupy storage space. In most cases, Apple's "skeumorphic" apps don't even waste screen real estate (if you rip all the textures out, they look like normal Cocoa/Touch apps) so it's just a question of "do you the texture looks nice" (in my case: no) and "is it worth the megabytes of junk you now have on your hard disk" (definitely no if you answered "no" to the previous question).

Frankly, if Apple stripped the visuals to the bone in Mac OS X in the interest of making the best use of the limited space on SSDs, I'd be very happy.

</comment><comment><USER8> > It helps tell these apps apart

I would agree, variation is very important in this respect - however, this skeuo-leather-morphic design is but one small niche in the set of all possible variations. Have Apple exhausted their own potential? Is the only way for them to further refine their software really for them to turn away from minimalism and add more and more revolting kitsch?

If this is true, why does it have to be _this_ particular style of kitsch?

<comment><USER14> I don't remember Jobs praising minimalism, but rather beauty. It's all throughout his biography, he was a big fan of beautiful, functional design. I think skeuomorph interfaces are beautiful if done right - yes, they might be more beautiful than functional, but what if Apple values beauty over functionality? I remember reading about an Apple engineer working hard to get rounded rectangles to draw in their early OS without affecting overall performance, and Jobs pushing him further and further until it was done. Rounded rectangles are so not functional.

<comment><USER15> Sure. I think Garageband, with it's skeuomorphic knobs and the like is a good example of what you are talking about.

On the other hand, Lion's iCal is absolutely hideous. No beauty there.

</comment></comment></comment><comment><USER16> In the 1990s, there was criticism of older Mac OS software because there was no indication of the current application's name in the single menu bar. (This is pre-MacOS X, which placed the application's name next to the Apple icon.) In iOS today, there's similarly no indication of the current app. I think the idea of the individual design for iOS apps is that it's easier to tell at a glance which app you're in.

</comment><comment><USER17> Here is a unique take on skeuomorphism - It mentions that if Apple doesn't eventually steer away, younger users may feel a disconnection with iOS...

[http://blog.apptopia.com/discussing-mobile-design- pt-1-apple...](http://blog.apptopia.com/discussing-mobile-design-pt-1-apple- and-skeumorphism/)

Thoughts?

</comment><comment><USER18> maybe skeuomorphism should be added to the list of "Shit apple fanatics say"

<http://www.youtube.com/watch?v=FFhjDX-DUew></comment>


Meet Magic Leap One – Twitch - <AUTHOR> https://www.twitch.tv/magicleap <comment><USER2> Magic Leap says that they will be going through the hardware and platform at 2pm ET, today (June 6). Not many details otherwise in their email.</comment>


Amazon may give developers your private Alexa transcripts - <AUTHOR> https://www.engadget.com/2017/07/12/amazon-developers-private-alexa-transcripts/ <comment><USER2> Doesn't change anything for me, other than affirm my decision to not bug my own home.

These seem like fun toys, but there's no way I'm allowing closed-source surveillance devices that send data to who-knows-where/who, under terms that are mutable by a TOS change nobody ever sees, protected by a firm with interests only sometimes aligned with mine, stored for who knows how long in to my home.

Even if you're fine with all the rest and think Amazon/Google/Apple/whoever is perfectly aligned with your interests, the storage aspect should be troubling. In the US, we've been on a steady downward slope of privacy intrusions from our government. Imagine your personal political boogyman in power when the next bad terrorist strike happens and everyone is in freak-out mode. Last time the Patriot act was sitting in a drawer, waiting for the right time. What is in the next version, sitting in a drawer right now?

<comment><USER3> Whenever I saw a dystopian movie/comic where people would willingly put an always on listening device into their homes, I thought: "Never gonna happen!"

<comment> Joe-Z Because in dystopian movies (your comment reminded me of 'The Fifth Element') they never show the 'but it's just so convenient!'-part.

Not arguing for these things, I'd never get one either, but I'm just saying there are (probably?) positive sides to having one as well.

</comment></comment></comment><comment><USER4> The headline is missing the part where it's the transcripts of your interactions _with that developer 's service_. They're not handing over your full transcripts of all interaction with the device. Rather misleading.

My only reaction to this is that it's kind of weird they weren't already doing it.

<comment><USER5> > They're not handing over your full transcripts of all interaction with the > device.

Not yet.

<comment><USER6> What incentive would they possibly have to do that?

They are a publicly traded company. The executives have a fiduciary duty to the shareholders and will be personally accountable if they willfully neglect that (vs just the company being liable). There is almost no valid argument that an executive could not anticipate the blowback from doing that and no executive in their right mind is going to risk personal liability like that.

But say one did. The people who could leak that information include:

\- Every single third-part skill developer

\- Amazon employees

\- Government employees if they are giving it to the government

\- Any one with the technical skills to reverse engineer the hardware

The conspiracy theory would reach hundreds of people if not thousands.

If people are getting this worked up about this, the lawsuit would be inevitable and the executive that green lit it would be thrown under the bus and their career would be over and they would go bankrupt fighting the personal lawsuits.

<comment><USER7> > The executives have a fiduciary duty to the shareholders and will be > personally accountable if they willfully neglect that (vs just the company > being liable). There is almost no valid argument that an executive could not > anticipate the blowback from doing that and no executive in their right mind > is going to risk personal liability like that.

Has there ever been a case of executives being held personally liable for their companies doing grossly stupid and evil things that were obviously going to have blowback? Things like Union Carbide and the Bhopal disaster, the Sony rootkit CDs, Volkswagen cheating on emissions tests, United Airlines carrying out criminal assault on a passenger? Not a rhetorical question, maybe there is such a case that I don't know about.

<comment><USER8> Plenty.

Here is an example for Volkswagon(just because I happen to remember it):

"Federal prosecutors announced criminal charges on Wednesday against six Volkswagen executives for their roles in the company's emissions-cheating scandal"

"The six executives include a former head of development of the Volkswagen brand and the head of engine development. One of those charged on Wednesday, Oliver Schmidt, was arrested in Florida last week; the other five are believed to be in Germany"

"The automaker is set to pay $4.3 billion in criminal and civil penalties in connection with the federal investigation, bringing the total cost of the deception to Volkswagen in the United States, including settlements of suits by car owners, to $20 billion — one of the costliest corporate scandals in history"

[https://www.nytimes.com/2017/01/11/business/volkswagen- diese...](https://www.nytimes.com/2017/01/11/business/volkswagen-diesel-vw- settlement-charges-criminal.html)

Here is an article about Enron executives(quite a bit here): [http://www.nytimes.com/2006/01/29/business/businessspecial3/...](http://www.nytimes.com/2006/01/29/business/businessspecial3/10-enron- players-where-they-landed-after-the-fall.html)

Here is one about Tyco:

" finding Kozlowski and Swartz guilty on 22 of 23 counts of grand larceny and conspiracy, falsifying business records and violating general business law. They face 15 to 30 years in prison"

[http://money.cnn.com/2005/06/17/news/newsmakers/tyco_trialou...](http://money.cnn.com/2005/06/17/news/newsmakers/tyco_trialoutcome/)

I'm sure there are more, just don't know of any off the top of my head.

"the Sony rootkit CDs" \-- was this illegal? Note that we can't punish people for things we don't like.

"United Airlines carrying out criminal assault on a passenger" \-- IIRC, the police carried the passenger off. I also thought the airlines have the authority to order people off planes. Like it or not, IIUC this was legal too.

<comment><USER7> > "the Sony rootkit CDs" \-- was this illegal?

Hacking computers is _very_ illegal - to crazy extremes, indeed.

But the other examples are relevant, thanks! Upvoted.

</comment></comment></comment></comment></comment></comment><comment><USER9> I have a question for anyone who has privacy concerns with these type of devices: do you own a smartphone? Those seem nearly infinitely more dangerous from a privacy standpoint than a smart speaker. First off, you are likely to carry them with you wherever you go instead of being stationary in your home. Secondly they are more technically advanced with additional sensors like GPS and much higher processing power and storage space. And lastly they are much more difficult to completely monitor due to having a network connection that isn't created and operated by the device's owner.

<comment><USER10> I think it's the level of intimacy implied by an always-on listening device in your home. While a cellphone can track your location, I think people have adapted to the idea of being tracked in public. What's creepy about smart speakers is that there's now something in your home that can betray the simple privacy of a conversation with a friend. This is something new.

<comment><USER9> If you are willing to believe that a smart speaker is compromised to a degree that violates your privacy, why would you believe your cell phone can't be compromised to the same degree? You cell phone is also likely to be present for every "conversation with a friend" at which your smart speaker is present so I think the "intimacy" issue is a red herring.

<comment><USER10> > If you are willing to believe that a smart speaker is compromised to a > degree that violates your privacy

IMHO the smart speaker's normal function violates my privacy by recording what I'm saying and sending it to Google/Amazon/Whomever for unspecified data analysis and processing. It doesn't need to be compromised to do so.

> You cell phone is also likely to be present for every "conversation with a > friend" at which your smart speaker is present so I think the "intimacy" > issue is a red herring.

You're right, but the _perception_ of privacy is not rational. A modern smartphone's primary interface is not its microphone - at least not yet. A smart speaker's primary interface _is_ its always-on microphone. This is not too dissimilar from how Google Glass was creepy because one of its main features is as a potentially-always-on camera - even though a smartphone also has a camera.

<comment><USER9> >IMHO the smart speaker's normal function violates my privacy by recording what I'm saying and sending it to Google/Amazon/Whomever for unspecified data analysis and processing. It doesn't need to be compromised to do so.

Then that is a fundamental misunderstanding of the stated and verified function of these devices. They only send data out after the devices have been activated with their wake word. Various consumer tests have shown this to be true. If you still don't trust these companies to actually tell the truth about what these devices do, I don't know why you would trust the same companies to not lie about what their smartphones/tablets do. Especially when that functionality would be easier to hide on a smartphone or tablet with a cellular connection.

>You're right, but the perception of privacy is not rational.

And that is my entire point. The privacy fear about these devices is not rational. They are no more dangerous than the laptop or smartphone that almost everybody already owns.

</comment></comment></comment></comment></comment><comment><USER6> This comment thread, the thread on the article, and the article itself are so disappointing. I expected more from Hacker News and Engadget.

This is fake news and so many people fell for it. And I NEVER use the term fake news, this is literally the first time.

Like many cases of fake news it is based on something that is true but either through ignorance or intentional misdirection is drawing and leading people to draw a false conclusion.

What is actually happening:

\- Website app can see an access log of every page you visit on it when previously they could only see successful pages that didn't error or result in a 404. Just instead of a typed URL it is a spoken sentence.

\- Web app STILL CANNOT access what you requested from other web apps (other Alexa skills).

What everyone is ready and the Engadget article strongly implies:

\- amazon is now sending everything you say to all developers even if you said to to another app

Edit: To the one person (so far) who down-voted me and to the others who probably will as well... I'm OK with that. I am willing to sacrifice some HN karma to spread the word that intentionally misleading articles like this are not OK. And coming on Hacker News and allowing yourself to be mislead rather than form your own opinion is also not OK. We deserve better.

<comment><USER10> > Just instead of a typed URL it is a spoken sentence.

This is why I'll never use a smart speaker - the line between when I am and am not subject to Amazon's privacy policy and information sharing with their "partners" is blurry from a user POV and completely depends on Amazon's tech working as intended.

With a computer it's binary, I am either typing something into the computer or I am not.

<comment><USER6> It's pretty clear...

\- When you say the wake word it starts.

\- The light is on when it is recording.

\- Once you say a phrase to activate an app it goes to that app.

That last one is a bit fuzzy. "Open APP_NAME", "tell APP_NAME" and a few other phrases will trigger it which may not be all that clear.

This change only effects stuff you say after you trigger the app.

And if Amazon doesn't obey it AND somehow no one can reverse engineer and detect that they aren't playing by the rules... someone at Amazon will whistle-blow and it will cost the company millions if not billions.

Sound the alarms when I developer reports receiving logs of conversations that weren't with their app. There are thousands of developers. One of them has to be honest.

The only concern I possibly have is if the governments orders them to activate it as a listening device, but this particular article is not about that.

This article is distorting the truth to get clicks. Period.

<comment><USER10> > and it will cost the company millions if not billions.

Honest question: has any company been successfully sued for privacy violations and paid out anywhere near this much? If so how long do you think the laws that allow such a lawsuit will persist in today's political climate?

Also, note that Alexa's Terms of Use include a mandatory arbitration clause[1] which may prevent any effective recourse even if Amazon's entire trove of data was shared inappropriately.

[1] [https://www.amazon.com/gp/help/customer/display.html?nodeId=...](https://www.amazon.com/gp/help/customer/display.html?nodeId=201809740)

<comment><USER6> I wasn't talking about suites or fines. Amazon Prime is such a large business they can lose hundreds of millions just from cancelled subscriptions and list customers (and it would only take a 10% loss to do that).

</comment></comment></comment></comment></comment><comment><USER11> I can't say I'm surprised. Removal of privacy is an ongoing process as we, as users, continue to trade privacy for convenience. After each milestone, we settle in to allow for the next.

I don't see this changing, at the end of the day, people value convenience over privacy, even if we yell about it.

<comment><USER12> This isn't removal of privacy. The article even says that the information would be limited to transcripts of interactions for skills that the developer owns.

Currently developers can only see what users are trying to do if they successfully invoke a registered "intent". For example: GetHoroscope what is the horoscope for {Sign}. The only information that the developer can currently see is that the user invoked the "What is the horoscope for" intent and provided the "Sign" parameter.

This would allow developers to handle _all_ interactions with their skill, not just registered intents.

</comment></comment><comment><USER13> Every time I read something like this, I further justify my decision to buy into the Apple ecosystem. They may be proprietary, but they haven't done anything privacy-wise to upset me.

<comment><USER14> Every time I read something like this, I further justify my decision not to buy into anybody's ecosystem!

Free software and decentralisation is the answer.

<comment><USER15> Calm down, Stallman.

<comment><USER10> Stallman is an optimist.

</comment></comment></comment></comment><comment><USER16> Lots of anti-Amazon news coming out the day after prime day. From alexa spying to the effect Amazon has on rural communities.

One article today on CNBC even went so far as to claim Amazon is responsible for the lack of inflation in the wider economy.

If history is any guide then expect this negative PR campaign to continue over the coming weeks.

</comment><comment><USER17> I mean Amazon erased 1984 from kindle users so yeaaah.

This is one more data point in the they don't care about you category.

</comment><comment><USER18> I expected better from hackernews. Not from engadget though, read their other articles and you'll know what I mean. It's a clickbait.

Alexa records and streams only when you say the wake word. Concerns raised by fellow hackernews users are legit but it's not happening yet.

</comment><comment><USER19> the other day I thought of a secondary device (that's not connected to the internet) that would go along with Alexa or whatever mic-connected device that "somehow" scrambles the sounds so that it's just noise to Alexa until you say the keyword, at which point it unscrambles for some given period of time so Alexa can understand.

Is such a device possible?? I don't know, probably not but it would help me feel better about getting one of these devices

</comment><comment><USER20> I thought this already happens, as long as your voice app is being called. You have special analytics tooling.

</comment><comment><USER21> Seems like you should go ahead and assume this is happening if you use one.

</comment><comment><USER22> I feel there should be an agent with a fiduciary duty to my best interest.

</comment><comment><USER23> > It would also raise serious privacy concerns for users.

To me, that device class alone raises serious privacy issues.

<comment><USER24> Yeah, I mean, I wanna raise a privacy outrage over this news but like... If you put an Amazon or Google connected microphone in your house... You've already given up your privacy. Who else they share it with is just gravy at that point.

<comment><USER25> I actually want a device like this that does not connect to the internet. So, I can ask for the time while half asleep without opening my eyes and more importantly while keeping my bedroom dark.

However the idea of having an always on microphone connected to the internet creeps me out.

<comment><USER26> > I actually want a device like this that does not connect to the internet.

You won't get a decent one until we outlaw spying on people in exchange for a service. Then plenty will pop up. There's just no point in trying to compete with these services now, and anyone who tried and did even a sort-of OK job would just get snapped up by (or, failing that, mercilessly destroyed by) a bigco and set to working on spying services.

FWIW I also think "loyalty card" and CC data collection/selling should be illegal, not just spyvertising Internet services. The standard should be only allowing the bare minimum to make the service work (so CCs would have to collect transaction data, yes), NO selling or sharing, transparency requirements, retention limits, and prohibitions on vertical integrations that allow companies to use what they know against people when trying to sell unrelated goods/services.</comment></comment></comment></comment>


Why don't business leaders consider good coder for management? - <AUTHOR> <comment><USER2> Skills can be learned and honed. I have had several managers who have only managed that are terrible managers.

Based on that, the problem is a value add proposition. The really good coders might add more value as really good coders. Transitioning that person to a position of manager, might be negative value as there will be impact as a really good programmer will have to be replaced, and then trained to be a manager.

If you really want to transition to management from any previous role, go get outside training, add degrees or certifications to your resume. Apply for the next management position, or jump ship to a new company hiring in as a manager.

It can also give you some leverage in upcoming reviews after being passed over for management roles for a raise to make compensation on par as if you were doing a manager position. Where as if you are more valuable as a developer you should be compensated for the job you are doing, but don't want to be doing.

I would also stress to, for anyone regardless of role to also negotiate for a severance package so that your cheaper to keep than to be let go. Start it low at a month or two of salary. Try for it lue of a next raise or a smaller raise plus severance when offered future raises. If you do get a severance package (in writing) make sure each future review you negotiate more months of pay in the severance. Also only accept the severance if it does not specify exit terms, so any exit from the organization you are compensated regardless.

<comment><AUTHOR> Thanks for your response. We grew to the point where we needed someone to take over a role of management. And someone who isn't that good at coding that's getting the role. It's interesting, I'm the one who still clearing most code reviews or designing hard projects. I'll definitely keep in mind the severance packages negotiations if I go to a bigger company.

<comment><USER2> Also try to get your severance in months of pay and not hard dollar amounts if you can. Severance is a win win, as the business doesn't have to pay you now and has no impact on the current bottom line. So at the surface there is no impact to throwing you a bone if they let you go. where I gets fun is when you rack up 6-8 months, as then they have to make you happy, or their paying you and a new employee (your replacement) for the terms of severance.

Having it in months, then it is based on current rate pay on exit, so if you get significant future raises even more pain for them on exit.

</comment></comment></comment><comment><USER3> Because they're two separate skills. Being good at development doesn't mean you're good at management.

</comment><comment><USER4> I think this is a great question, and it has some precedent in other professions. Non-lawyers are not allowed to supervise a lawyer's work in law, as I understand it. There's always complications dealing with the law.

When I worked in aerospace, there were various assertions about structural engineers getting into management over more specialized engineers because of their "whole vehicle" orientation or some such.

</comment><comment><USER5> Because honestly, most coders are really bad at management. They are two completely different skill sets.

</comment><comment><AUTHOR> If you have done it, could share how? Were you 80% coding 20% managing?

<comment><USER2> Right now I'm managing a team of 10, and still find the time to do some coding. Any more than 10 I need to charge members to be team leaders to take burden off when I know it is too much,

If you manage through stewardship, explain tasks and expectations, trust your report will make the right decisions. Then it's mostly monitor allowing people good at their jobs to do their job. Then constant conversations individually, stand ups are great, but one on one as well every day.

I still find time to take ease to put down tasks. However most of my time is designing and grooming tasks, directing traffic, and unblocking my development team.

The job of a manager is to get out of the teams way, and to stay on top of roadblocks to keep all the lanes open. I also take responsiblity for watching out for process/workflow improvements to always keep improving, faster, better, less effort as that means more work done in less time and resource strain.

</comment></comment><comment><USER6> same reason they don't consider plumbers for management.</comment>


NCrunch: execute tests as you type - <AUTHOR> https://www.ncrunch.net/ <comment><USER2> I've been using NCrunch at work for a few years now and it's really indispensable, especially if you have tests that run fairly quickly. You get test results and code coverage for your change a few seconds after typing. The only drawback is that I frequently forget to commit changes because the tests use the current editor state instead of what's been saved, so I sometimes forget to save.

<comment><USER3> Isn't the current editor state usually missing semicolons and stuff? Does it wait till you have no syntax errors to start?

<comment><USER2> Not always. No, it just shows me build errors as well.

Behind the scenes the complete solution is copied to a temporary location and files that are open in an editor are replaced by the current editor state. And then it will effectively try to build and run tests at every keystroke.

</comment></comment></comment><comment><USER4> Ncrunch is by far and away the best tool I use for .net development. As ubiquitous as resharper, and light years ahead of jetbrains' continous testing. I can't believe this is only hitting hacker news now. TDDing is a dream with ncrunch.

<comment><USER5> Can't agree more. The support is also great. It even works with .NET Core projects. I wish it existed on VS code.

<comment><USER6> I get there mostly with a pinned terminal and 'dotnet watch test' in my tests directory

</comment></comment></comment><comment><USER7> NCruch is fine when it works, but it can go wrong in subtle ways and generally be more trouble than it's worth. IIRC, This was evident when DI, reflection and assembly scanning is involved, to do with the "shadow copy" of the code and binaries and it getting out of sync or behaving differently to the main.

</comment><comment><USER8> AFAIK, VS Enterprise edition now has the same feature.

<comment><USER5> Does it? VS Test Explorer runs tests only on demand afaik.

<comment><USER9> Yep. [https://docs.microsoft.com/en-us/visualstudio/test/live- unit...](https://docs.microsoft.com/en-us/visualstudio/test/live-unit- testing?view=vs-2017)</comment></comment></comment>


ContentCory – Simplified Social Media Content Calendar Built with Laravel/Vue.js - <AUTHOR> http://www.contentcory.com <comment><AUTHOR> Hi guys!

Would love to hear what you think about ContentCory, a simple tool I created to manage your social media content calendar. I built it on Laravel/Vue.js with the Laravel Spark boilerplate.

I personally found existing tools too complicated for what I needed, so I decided to build one myself, focussing on creating a really nice overview of my content.

Just to be clear: Cory doesn't publish or schedule posts, it's purely keeping all your posts and post ideas in one place.

Main features:

\- Receive reminders of your posts

\- Drag and drop posts

\- Add team members

\- Search your posts

\- Add tags

\- Centralize visuals and video's

\- Save your post ideas in an 'idea box'

Would you use a tool like this? Why / Why not? Are there features you are missing?

Thanks for your feedback!!</comment>


Stock rout demotes Jack Dorsey from billionaire to millionaire - <AUTHOR> http://www.theguardian.com/technology/2016/jan/20/twitter-square-jack-dorsey-downgraded-billionaire-millionaire-tech-stocks <comment><USER2> [https://www.youtube.com/watch?v=xzMUrB- Um1Y](https://www.youtube.com/watch?v=xzMUrB-Um1Y)

<comment><USER3> Yes -- even down to the face and beard. Taken with [http://hooli.xyz](http://hooli.xyz) and [http://abc.xyz](http://abc.xyz), it seems that show is a bit of a crystal ball (or a really good mirror?).</comment></comment>


Lisp's reputation is so bad that many people don't even take a look at Lisp - <AUTHOR> http://ilc2009.scheming.org/node/6 <comment><USER2> This reads like a Chinese government strategy document: "the world thinks we suck. How do we convince everyone we're vibrant and fun-loving?"

I've been a Lisp hacker for years -- Symbolics Lisp Machine in my bedroom, coded in at least a half dozen different Lisp dialects -- but I ended up using Smalltalk for my startup. Treating Lisp's "rehabilitation" as a mere branding exercise shows just how screwed the Lisp community still is, and is symptomatic of the underlying issue. (By "Lisp", I mostly refer to Common Lisp.)

Lisp's problem is a meta-problem. The community is actively _resistant_ to advancement, change, and evolution in the language. Attempts to modify (or even clarify) aspects of the Common Lisp standard are tedious exercises in futility, but the standardisation straitjacket is still seen as a good thing. A bit strangely, this resistance to change existing standards is accompanied by a slowness to standardise (even informally) anything that isn't already. The end result is that there's still no reliably portable way to write networking code in CL.

And this is why Lisp is unpopular.

The stasis is sad and ironic, given Lisp's hackerdom beginnings. Rather than wonder why, in 2009, so few are using Lisp, we should be amazed that the language is still pretty cool two decades after the innovation stopped.

I hope the Clojure guys change things. They seem to have the right approach.

Footnote: I was going to be a member of the CLRFI group (roughly equivalent to PEP or SRFI) that got some interest at ILC 2005, and which was going to try to create some sort of forward momentum in the community. It frizzled out, of course, and now <http://clrfi.alu.org/> appears to redirect to the ALU homepage.

<comment><USER3> "I hope the Clojure guys change things."

In many ways, Clojure seems like a deliberate response to each of the common complaints against Lisp.

        Lisp is old and moldy. It must be primitive by today's standards.

Hard to call Clojure "old" when it's only been around a couple years.

        The exciting languages to learn now are Python, Ruby, Groovy, etc.

Clojure has been very successful at building nerd "street cred." It has latched onto the fascination with functional programming for parallel applications, for one. It also makes use of concise syntax for data structure literals, like Python and Ruby, too. Dynamic, etc. etc.

        Lisp is only for artificial intelligence.

Don't think Clojure has this problem.

        Lisp is interpreted and slow.
        Lisp programs page heavily, so they're even slower.

Clojure gets the performance benefits of running on the highly tuned JVM, with tricks like type hints to get close to Java speeds for critical portions of code. Worst case, you can always drop into Java as your "assembly" language.

        The parentheses look weird and hard to manage.

Clojure mixes up () with [] {} to make code easier to mentally parse.

        Lisp uses prefix notation for things that every other popular language
        does with infix notation, which is just very weird. (And it leads to
        more parentheses.)

No change here.

        Lisp is too big.
        Lisp is too hard to learn.

Clojure is pretty small and doesn't take much time to get started.

        Lisp is all about lists and recursion; that's all you do with it.

Some might start to think "Clojure is all about functional programming." Don't know if that's good or bad.

        I don't know which implementation to use.

There's only one Clojure implementation.

        It isn't "batteries included" (that is, it's not easy to get set up with all the tools and libraries you need).

You get all the libraries written for Java.

        I don't like Emacs, and you can't use Lisp without Emacs.

I use Emacs, which is also great for Clojure, so I can't judge how easy it is to program in Clojure without Emacs.

        Lisp isn't useful for my career; few potential employers want it.

You might be able to sneak Clojure into a Java shop.

<comment><USER4> No offense but I don't think you get the concept of batteries included. Python has batteries included, Clojure has batteries available.

Even the clojure contrib jar is not included by default and has to be downloaded separately and then clojure needs to be launched with extra command line arguments to setup the classpath properly (or you need to fiddle with the classpath from within clojure), the same goes for any Java library that you want to use.

<comment><USER3> Except for the classes in the JDK. That gives you networking, file I/O, string processing, regex, Swing GUIs, JDBC, ZIP compression, some XML processing, among other things.

Even by itself, that is better than most Lisps out there, if not enough to make a Pythonista happy. The problem with this stuff is usually the painful verbosity of Java necessary to use it, but you can wrap away that pain very quickly with Clojure.

I do take the point about needing to fiddle with the classpath for any other Java code you want to use. But for me the Java classpath system holds up better than most other software deployment mechanisms. Usually, you just download a jar file, drop it on your classpath, and it just works. I think jar files are an unappreciated success story of the Java ecosystem. Clojure has functions to easily add jars to the classpath at runtime, which is even better, but I find it does not always work seamlessly for me.

</comment></comment></comment></comment><comment><USER5> I went to see if there was anything like ActiveRecord for Lisp, because, well, that's a pretty metaprogramming-heavy domain. What do I get as the first google hit? A forum post asking about that, [http://coding.derkeiler.com/Archive/Lisp/comp.lang.lisp/2006...](http://coding.derkeiler.com/Archive/Lisp/comp.lang.lisp/2006-04/msg00735.html) \--- never a good sign. Two people answered, one with a link to his rant on comp.lang.lisp, and one talking about the virtues of CLSQL.

The code snippet from CLSQL looks horrendous:

      ;; select the user with ID 1 and set his username column to joe
      (let ((user (first (select 'user :where [= [id] 1] :flatp t :refresh t))))
        (setf (username user) "joe")
        (update-records-from-instance user))

Compare this to

      User.find(1).update_attribute(:username, "joe")

16 tokens vs 45. I don't know CLOS, but

      (update-attribute (find *User* 1) 'username "joe")

is a great start.

<comment><USER6> I've been using leftparen (a framework written in PLT Scheme) for a project, this would be something like:

      (rec-set-prop! userid 'username "joe")
      (store-rec! userid)

</comment></comment><comment><USER7> I've been programming in Common Lisp for about a year and I consider myself an intermediate beginner. Someone made a terrific comment in response to Ron Garret's post earlier: the way you get productive in today's environment is primarily through libraries.

Thus the situation is inescapable. You need tons of libraries to be productive. You need tons of programmers to write these libraries. You need an easy learning curve and appealing features to get these programmers. The bottom line is that you need the bad coders as well.

As a beginner, I can safely say that it took a while before I finally got reasonably productive in Lisp. I still consider it 'the best' programming language. But the learning curve is much steeper than Python.

Lisp will get nowhere without all the bad programmers. This may sound cynical, but the reason is that academically minded programmers won't spend time writing things like a download library for youtube videos, which many people find useful. These programmers are now all over Python.

So why is Lisp difficult to learn? The most severe in my opinion is assignment. People find it intuitive to make temporary variables and store intermediate results in these. This is done by 'let' in CL, but if the previous style of programming is assumed, 'let' is clumsy and inconvenient to use.

Another achilles heal I would like to mention is the lack of an editor with propper auto-completion. Yes, slime does this, but using emacs is too geeky for many programmers (remember you need these people) and this creates an additional stumbling block.

Yet another problem is the CL websites. Remember that many people are in a hurry. The Python website is ripe with snippets that lets you do stuff fast without understanding much. In contrst, CL gives you some of the most monotone autogenerated documentation sites I've ever seen. Again, fine for people who already know Lisp, tedious for people that want to try stuff out as beginners.

Faced with these realities I don't blame anyone who just want to get things done and run with Python. Unfortunately.

<comment><USER8> _Someone made a terrific comment in response to Ron Garret's post earlier: the way you get productive in today's environment is primarily through libraries._

I think that was me. FWIW, I find CL's libraries to be adequate in many cases, but certainly not as good as Perl's.

(I have done a few Java projects, and I don't consider their libraries adequate at all. You are either stuck with full-stack frameworks, or a legacy API from 1995. I've also found that most Java programmers that write libraries don't know what OO is, and that makes the libraries painful to use. YMMV.

Slime is also vastly easier to use than Eclipse, even with "emacs emulation" turned on. Again, YMMV. :)

<comment><USER9> I don't know the specific Lisp or libraries involved, but reddit (YC funded) famously switched from Lisp to Python, (mainly) due to libraries.

<http://blog.reddit.com/2005/12/on-lisp.html>

</comment></comment></comment><comment><USER10> I belong to those people who tried to get into lisp and gave up, because the confusion to navigate per potential advantage over my major language (python) was too large. My background is a knowledge in C, Python and Java, using Python mostly. I mostly looked into lisp, because I kept encountering something I call the syntactic barrier when I tried to remove duplication from my code, and I knew: lisp had macros. Macros could break this barrier. So looking into lisp looked promising.

I didn't care too much about the syntax, a good editor fixes this without a problem and it was a good opportunity to look into emacs a bit (usually, I use vim). Surfing through the chapters of practical common lisp when pretty well and understanding was not exactly hard.

However after that, I was faced with confusion. There is a boatload of lisp dialects, each with a boatload of implementations and each implementation as another boatload of libraries that do something looking similar to what other implementations libraries do without being the same or compatible. How am I supposed to select any of these without having a clue? After a few days of back and forth, I decided to close the book lisp for me, because I could not find a way through this wall of selections -- at least not without investing a lot of time. Too much time for too little benefit over python.

HTH, Tetha

<comment><USER9> Some people (like esr) say the main benefit of lisp is not to use it, but to use the insights it gives into how to think about code. It may be that you already have that.

<comment><USER11> I agree, but if a language _doesn't_ teach you things you can use outside of it, that's a really bad sign. This is in no way unique to Lisp.

(I've been meaning to write about things I've learned from the dozen or so languages I've at least dabbled in, but haven't had the time.)

</comment></comment></comment><comment><USER12> Hopefully some of the cooler Lisp dialects like Clojure & Nu will help out a bit. The "crazy parentheses" is usually the core reason people hate lisp, but until they realize its power, it's stupid stuff that prevents them from learning it.

For example, Nu is one of the coolest languages out there that allows one to do quick and dirty "scripting language" hacks in Objective-C. Due to Lisp's simple structure, Nu was able to directly map Objective-C method call signatures into something that clearly looks like basic Lisp. It allows one to code in 2 languages, but the Objective-C part of the language actually looks very similar to normal ObjC. One of the biggest benefits of Nu is that writing unit tests in ObjC is no longer painful... the whole testing structure is as simple as typical ruby unit test cases.

Clojure is another one of those wonderful libraries that is a must-have for anyone doing normal java. Even basic string manipulation is extremely verbose and annoying in Java, but is probably too heavy to load a JRuby/Jython interpreter... I think that's where clojure helps fill the gap. I recently implemented an "equivalent" of a google-analytics tracker in Clojure and the final result was only around 200 lines of code (with a little bit of java here and there). It's quite nice to use clojure as a glue-language to make all your java libraries work together with little clutter as possible.

<comment><USER13> _The "crazy parentheses" is usually the core reason people hate lisp_

I very strongly suspect that the "crazy parentheses" is not actually why most people who hate Lisp hate Lisp. Crazy parentheses are nowhere near the top of my list of reasons, anyway. And, blaming parentheses is the same as complaining about the sigils in Perl or the significant white space in Python; it's just not a very intelligent argument, and can probably safely be dismissed as merely uninformed. Sure, you like what you're accustomed to, but you can become accustomed to different syntax quite easily...one or two weeks is all it took for me to switch from Perl to Python, and then back again a few years later.

A syntactic difference is just a very simple concept to latch on to; both for those who hate Lisp (for whatever reason) and those who want to explain away the people who hate Lisp (without having to address the real, but complicated, problems). There are a lot of very good reasons to hate Lisp, but they take more than one or two sentences to explain, and most folks just aren't going to invest that much effort in talking about something they just don't have that much interest in.

The linked article does mention a few of the very good reasons to hate lisp, and leaves out a couple that I think are possibly even more important:

\- Lisp has a community that is generally hostile to newbies and outsiders (mentioning other languages, in particular, seems to be a big source of trouble). Contrast this with just about _any_ other modern dynamic language community. Friendliness is practically religion in the Perl, Python, and Ruby communities (though I think only Perl has a formal religious institution for the purpose at perlmonks.org ).

\- A community that has a deeply ingrained culture of NIH. There are dozens of incompatible Lisps, with dozens of incompatible libraries for all sorts of tasks. I've found Lisp to be the most difficult language with which to produce useful software as a beginner of any dynamic language I've tried. Not because Lisp is inferior to Perl, Python, Ruby, etc. but because I found it impossible to find any combination of components that made it possible for me to produce useful software without running into bugs or incompatibilities that my weak knowledge couldn't overcome. Even if Lisp allows for code that's half or a quarter the size of any other dynamic language (which seems an unlikely compression), the sheer volume of excellent libraries in Perl/Python/Ruby means I can write a tenth the code, making those languages a win even if the total line count, including libraries, is higher. I've been told (grouchily, in keeping with the smug Lisp weenie tradition) that _tons_ of great libraries exist for Lisp. Despite this assertion, I've never been able to build even a toy (but useful) project in Lisp.

<comment><USER14> Lisp was my favorite language when I studied (hrm, long ago).

IMHO, there is quite a lot of support for the argument that modern day scripting languages are getting closer and closer to becoming lisps, except for syntax and the macro system. (Maybe Perl 6 will have meta-language power enough to equal the macro system? I should start learning it.)

I've never really understood why there are no successful projects to transfer code between the S-EXPR parenthesis-based syntax and some Algol-like notation; if that managed to also copy comments between the formats and auto formatted well, it would be an easy introduction for new lispers.

<comment><USER13> _Maybe Perl 6 will have meta-language power enough to equal the macro system?_

Not only does it have full-on raging macros, you can redefine the languages own syntax inline. Check out one of Larry's recent talks about STD.pm (here's a Google Tech Talk from last year, which is nowhere near as funny as Larry usually is, but is still quite informative: <http://www.youtube.com/watch?v=JzIWdJVP-wo> )for a real "when you see it, you'll shit bricks" moment. Perl 6 is far more intimidating than I ever realized. They seem to have looked at everything good about Perl (and a handful of other languages) and said, "Let's do a lot more of that." It's somewhat scary how much more of "that" they've done. So, there's macros from Lisp, lazy evaluation from Haskell, redefine-able grammar and syntax from I dunno where, a new regex language, etc. It takes TMTOWTDI to obscene new heights (kinda like Lisp). If power is the sole determining factor in what language you choose, there's a strong case to be made that Perl 6 is the one you want. I don't know that I entirely buy that (if I did, I guess I'd be using Lisp), but I'm hopeful that the real result of Perl 6 will be a language as capable as Lisp with a community and library culture as strong as Perl 5.

<comment><USER14> What I meant was, will it be as easy to use as lisp macros?

To take most everything good existing and sum it, is how you make Perls. :-) I'm not arguing here, I do Perl today.

You should have put the content of the last sentence first; too few will read it.

</comment></comment></comment></comment></comment><comment><USER15> _The problem is, someone with these preconceptions often doesn't even look for our replies!_

How's about conceptualizing the problem less as "People don't come to the light about how Lisp is not as problematic as they think it is" and more as "We need to explain better how people's lives are going to improve if they learn and use Lisp". (I know, I know, I may have just committed the sin of marketing. Please forgive me.)

I do not have a Lisp-sized hole in my life right now.

<comment><USER11> I think ensuring first that peoples' lives _would_ be helped if they learn and use Lisp is important, too. Some people take this for granted (and can come off as incredibly condescending, PS), but I'm not so sure anymore.

I know (and _really_ like) Scheme, but the balkanized Scheme ecosystem can be very confusing to curious onlookers, and can make finding one implementation with all the libraries relevant to a project difficult. There's the tiny core language, then there's a bunch of SRFIs that implementations choose whether to support, and implementations are all over the place as far as quality, libraries, and portability. (I eventually settled on Chicken.)

I learned some Common Lisp, but ran into so many portability and library problems, for stuff that would be trivial in Python, that I ultimately gave up on it. In retrospect, Scheme is a much better fit for my taste, anyway.

For a while, Python was my default language for real work. (Lately, I've switched to Lua. They're quite similar, though Lua has incorporated more of Scheme's good ideas, has more of its own, and has a _much_ cleaner design, IMHO.) While neither has macros, they have a collection of libraries, an active community, an obvious standard implementation, great support for interactive development, a decent syntax, etc. Macros aren't everything, and SwellJoe's comment about NIH (<http://news.ycombinator.com/item?id=550634>) is _absolutely_ correct. (Lua's design, in particular, assumes from the start that it will be embedded in something else. It's very simple to use it with other languages and their libraries.)

While I don't know Ruby (Python & Lua already fill that niche for me), I'd expect Ruby programmers find similar productivity there.

<comment><USER16> I wonder how much this balkanization is a result of the syntactic extension capabilities of lispish languages? The fact that you can implement changes to the language in the language makes it easier to improve it in terms of coming up with new features/patterns etc. However this can be a double edged sword when you need to then train large numbers of programmers in order to create libraries etc. for the new language. Or maybe its not that the splintering occurs directly because of the language. Instead it might occur indirectly due to lisp programmers, having been exposed to the idea of language extension through lisp, become more prone to creating a whole new language when the one they have doesn't suit their needs precisely?

<comment><USER11> Well, first, the core Scheme spec is _tiny_. Tons of people have written at least half-complete Scheme interpreters (self included, in OCaml). It's a fun project, and it teaches you a lot about programming, even if you don't do the tricky parts (like full continuations). This seems to feed a strong "just fork your own" sentiment in the community, though, and that probably leads directly to a mishmash of incompatible libraries. That's Scheme, though, not Common Lisp; CL was an attempt to reign in several divergent Lisp dialects.

Also, I think people overuse macros. Certain people have put a lot of time into promoting them as the biggest asset of the language, which tends to encourage people to use them where they're not only unnecessary, but likely to make code harder to understand / maintain. (See, for instance, <http://news.ycombinator.com/item?id=542746>. Especially: "Q: What do you get when programmers design a language while trying to get something else done? A: PHP")

While I'm not knowledgeable enough about Ruby to say for certain, I could see making a big deal about "monkeypatching" causing similar problems there. Maybe the Ruby community encourages more restraint, though. Anybody?

</comment></comment></comment></comment><comment><USER17> I absolutely love Common Lisp, but it has some problematic areas, which are not the classical stupid ones you sometimes still hear from clueless people (such as "lots of parentheses", "lisp is slow", "lisp is for AI only" etc.).

I won't even say that libraries are a real problem. Sure there is no CPAN, but still there are a lot of very good CL libraries around, and they are not really hard to install.

But:

1\. The language is sophisticated. This is a "problem", in the sense that such a language takes time to study. It will never be popular. The Condition system and CLOS, for example, are way more complex and versatile than, say, the equivalent areas of Java. And then there are macros. Common Lisp has not been designed as a mainstream language for mainstream programmers. It is, I fear, an elite tool.

2\. Certain kind of operations are inconvenient. Maybe when CL was designed, sockets, multithreading, text processing etc were not so popular. But now, it feels like CL has not really adapted well to the modern world. Having to install a compatibility library for using sockets is reminiscent of things like "trumpet winsock". Does not feel very cutting edge.

3\. The literature is lacking. "Practical Common Lisp" is very good, but one book is not enough. For example, what are the best practices to organize large CL programs? No book tells it (maybe some obscure out-of-print text that I have not yet tracked?). What about programming idioms, or patterns as you prefer? Apart from an ancient presentation by peter norvig, nothing exist. And so on.

4\. The ANSI standard is a big blessing and a big curse. It is a well-written and smart opus. But nowadays no one has the resources for a new standard; both in terms of money and focus. This means that ANSI CL seems an ancient pinnacle of beauty which will never be equalled and certainly can not be improved. (the perfection of ancient architecture, as seen by renaissance architects, comes to mind). This makes CL a splendid but dying civilization.

5\. I have a feeling that the community is slowly dying as well. While in recent years many CL sites and blogs have appeared, comp.lang.lisp has lost many important contributors. Nor I can really blame them: while still a wonderful language, CL is nonetheless petrified, and I suppose one may became slightly bored after a decade or two of discussing the finer points of the Standard.

<comment><USER18> You're dead-on about the lack of literature. I am no lisp expert (python stole me away), but something like the PythonChallenge for lisp could go a long way towards building a working knowledge. I really wish we could have books like Norvig's PAIP in the public domain - it is really one of the best books on lisp ever, however very expensive - more so in third world countries. Oh and I really wish that brackets were used rather than parantheses - there is RSI you know!

<comment><USER11> It seems particularly telling to me that Norvig himself seems to have switched to Python for most work.

Christian Queinnec's _Lisp in Small Pieces_ is another absolutely brilliant book on Lisp, btw. It and PAIP are both about equally expensive, but both are well worth it IMHO. (FWIW, PAIP is probably of more interest to people with no intention of using Lisp.)

(Also: Remapping your keyboard helps, whether you do it in your editor or overall. And, I did not write the above just to say "IMHO FWIW PAIP". Honest. :) )

</comment></comment></comment><comment><USER19> In response to the parting question from the article, here's an idea: make cool things with Lisp. Make cool things _for_ Lisp.

<comment><USER20> That seems to be how Erlang has achieved its recent popularity... some big successes in telecommunications systems and ejabberd.

</comment></comment><comment><USER21> Before i learned scheme(I don't know CL), i didn't know how to write python. I knew how to write python syntax, but had no idea how to write code that doesn't suck. I still write bad code, but at least i know when its bad and i need to change it. Scheme thought me how to spot ugly code. I still use for and while loops(recursion is expensive in python, and you shouldn't write scheme in python) but i learned to write small and simple functions and combine them in smart ways(list comprehensions, maps, filters, decorators...). I guess i knew that from reading about the unix philosophy, but it took me to see it in code to understand it. So learning scheme might help you to be a better programmer, or it might screw you up and you end up writing stuff like this <http://www.pick.ucam.org/~ptc24/yvfc.html>

p.s. I've never written anything longer than a textbook exercise in scheme, so i don't know if you can actually write real stuff in this(or how hard it is) but playing with it is really fun, you should to it just for that.

</comment><comment><USER22> My suggestion for anyone wanting to make Lisp popular: make a Lisp analogue of Mark Pilgrim's "Dive Into Python". Or at least consider whether it is possible to write such a book for Lisp in its current state.

<comment><USER23> Isn't that Peter Seibel's "Practical Common Lisp"?

<comment><USER7> Pretty much. PCL is a great book that did much to bring the O'Reilly flavor to the community. Another good contribution is the Common Lisp Cookbook website, that contains snippets for common tasks.

Sadly, this doesn't seem to have struck the heart of the problem (although Lisp-in-a-box that came with PCL seems to have done it for some people).

Think about why Java is so widely used. I would argue that it's because of one thing: portable packages.

</comment></comment></comment><comment><USER24> Can someone explain the "it's only for AI" objection that people bring up? I have heard it from a few people first-hand and they couldn't say much else about it. Is it like "Macs are just good for graphics?"

<comment><USER11> Some people (apparently) assume Ruby is only for the web; they're confusing it and Rails.

Lisp was closely associated with AI a few decades ago.</comment></comment>


Los Angeles City Council Votes to Increase Minimum Wage to $15 - <AUTHOR> http://www.bloomberg.com/news/articles/2015-05-19/los-angeles-city-council-votes-to-increase-minimum-wage-to-15

<comment><USER2> I would rather see the money go into education, so instead of being stuck at a minimum wage job, those workers will have a chance at a real career.

The problem is that the economy will catch up to the raise eventually. Most businesses will start charging more to compensate for the increased labor costs and everyone making more than minimum wage will now have less spending money.

<comment><USER3> Higher minimum wages do not drain the economy [1]. Those wages are fed back into buying more goods, driving the economy from the roots.

Also note that Australia locked in their minimum wages in the 80s, and are among the highest in the world for both median and average networth. [2]

I would prefer better higher education, or at least affordable higher education, but addressing the minimum wage vs cost of living is not something to be swept under a rug.

[1] [http://www.dol.gov/minwage/mythbuster.htm](http://www.dol.gov/minwage/mythbuster.htm) [2] money.cnn.com/2014/06/11/news/economy/middle-class-wealth/</comment></comment>


Profile Ruby 2.0 apps using DTrace – Part 1 - <AUTHOR> http://crypt.codemancers.com/posts/2013-04-16-profile-ruby-apps-dtrace-part1/ <comment><USER2> Mark Dalrymple recently wrote a great series of posts at Big Nerd Ranch's blog on dtrace: [https://www.google.com/search?q=dtrace+site%3Ablog.bignerdra...](https://www.google.com/search?q=dtrace+site%3Ablog.bignerdranch.com&aq=f&oq=dtrace+site%3Ablog.bignerdranch.com&aqs=chrome.0.57.8616j0&sourceid=chrome&ie=UTF-8).

Full disclosure: I work at Big Nerd Ranch.

</comment><comment><USER3> If anyone is interested in learning DTrace in detail, Amazon has a fairly comprehensive text:

[http://www.amazon.com/DTrace-Dynamic-Tracing-Solaris- FreeBSD...](http://www.amazon.com/DTrace-Dynamic-Tracing-Solaris- FreeBSD/dp/0132091518/)

<comment><USER3> I found the book's website -- it has the errata and you can download all of the scripts from the book:

<http://www.dtracebook.com/index.php/Main_Page>

There's another very detailed book available for free from illumos (the OpenSolaris fork):

<http://dtrace.org/guide/preface.html>

</comment></comment><comment><USER3> DTrace is a great tool that doesn't get enough attention. I'm glad to see articles like this that show off the basics of how to use it.

DTrace support is also one reason I'd _really_ like to see FreeBSD supported as a first-class platform on AWS and/or Azure. Maybe this'll be the year...

<comment><USER4> thanks for your input. indeed, we are going to follow it up with some live examples.

</comment></comment><comment><USER5> Really great to see more articles on dtrace recently. The one feature I was missing from them all, is a way to sort and parse dtrace logs programmatically. Since dtrace can dump method calls out-of-order, some sorting is necessary to see the correct program flow.

So here's a start: dtrace-json

<https://github.com/doublerebel/dtrace-json>

It's in IcedCoffeeScript but could easily be adapted to Ruby or another language. I used it to debug a native iOS module for a Titanium Mobile app. HTH others as much as it did me!

</comment><comment><USER6> For the JVM we have btrace (<https://kenai.com/projects/btrace>), which also integrates nicely with dtrace. It also has a good VisualVM plugin (<http://visualvm.java.net/plugins.html>).

<comment><USER3> Mono also supports DTrace on Mac OS X and FreeBSD:

<http://www.mono-project.com/DTrace>

<http://www.mono-project.com/SGen_DTrace>

<comment><USER6> btrace is a complete DTrace-like implementation for the JVM that doesn't require DTrace (but can integrate with it if you want). It allows complete runtime instrumentation of the code - you can profile specific methods, trace argument values and much more.

</comment></comment></comment><comment><USER7> I don't see any info about the version they're running, commands "dtrace -l" and "dtrace -f write" just fail and print the usage on my Fedora 18 (package systemtap-sdt-devel-2.1-2.fc18.x86_64). Too bad, DTrace seems interesting !

<comment><USER8> You are using SystemTap and not DTrace. It probably has different and incompatible CLI.

<comment><USER7> oh you're certainly right ! I just queried yum for a bin/dtrace binary, got this package, and assumed dtrace was part of systemtap!</comment></comment></comment>