Class action claims Windows 10 causes hard drive failures and other problems - <AUTHOR> https://arstechnica.com/tech-policy/2017/03/unhappy-windows-10-upgraders-take-microsoft-to-court-for-lost-data-damaged-pcs/ <comment><USER2> Not really Microsofts fault but difficult to check for and explain that some disks that are already broken start to die or refuse to work after an Upgrade that rewrites big parts of the disks. Bad sectors are getting remapped when beeing written to and likely writing 10-15gb on these disks caused the disk to reach it's reserved sectors and just giving up - or the new writes couldn't be read anymore after booting.

However for someone that has no knowledge about computers and just uses them this issues might make them angry at Windows 10.

<comment><AUTHOR> Windows update could check SMART readings before attempting the upgrade. It's like 10 lines of code...

</comment></comment><comment><USER3> I have seen machines that looked OK but then you try to upgrade the OS and all hell breaks lose and when you look closely you see that disk errors messed up the install, sometimes trashing the whole system. (Although on one Windows machine it would always roll back the install and leave the machine usable)

I have seen this on both macosx and windows.

</comment><comment><USER4> I haven't seen any compelling evidence that W10's upgrade process is so broken as to break hardware or fundamentally not work correctly as described here. It sounds like coincidence.

But the fact that I read "Windows 10 destroys hard drives," nodded to myself, and thought "huh, maybe," is indicative of how incredibly poor Microsoft's QA has become lately, and how low my trust is in them as an entity. Businesswise, they've adopted some great strategies. Software quality wise, not so much.

</comment><comment><USER5> On a related note, what would be HN readers' preferred HDD SMART monitoring tool for Windows? Back on Linux the GNOME Disks utility did the job adequately but am now on Windows.

<comment><USER6> What do you want to do exactly? Windows will log and give a pop-up if a disk SMART status indicates it's failing.

<comment><USER7> Google did some tests/research/study a few years back and they noticed that hard drives fail around 40% of the time without showing any signs with SMART attributes.

EDIT: Ok, few years = 10. [http://storagemojo.com/2007/02/19/googles-disk- failure-exper...](http://storagemojo.com/2007/02/19/googles-disk-failure- experience/)

<comment><USER6> Fair- matches my experiences (seems to me it only flags a drive at the point where it's physically clicking or otherwise very dead) but they specifically asked for a SMART monitoring tool.</comment></comment></comment></comment>


Kent Beck and Don Reinertsen on Value of Storytelling - <AUTHOR> http://www.skmurphy.com/blog/2014/05/06/kent-beck-and-don-reinertsen-on-value-of-storytelling/

<comment><AUTHOR> A twitter exchange from Dec-2013 after both had presented a the 2013 Lean Startup Conference

Kent Beck: The beauty of teaching through storytelling is that the listeners' lessons aren't limited by the storyteller's imagination.

Donald Reinertsen: And, as in the old story of a donkey carrying a load of books, the payload can sometimes be more sophisticated than the narrator.

Kent Beck: Good thing I don't mind being a donkey :)

Donald Reinertsen: I rather enjoy it. Such moments permit one to unintentionally deliver an unexpected, and unreasonable, amount of value.</comment>


How Are You Watching the Fall TV Lineup? [POLL]  - <AUTHOR> http://mashable.com/2010/09/25/fall-tv-poll/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Mashable+%28Mashable%29&utm_content=Google+Feedfetcher

<comment><AUTHOR> I just ditched cable tv and bought an antenna, I can pull in 20+ channels, most of which are HD. I also ordered an Apple TV to supplement this setup, if they ever start shipping them. So far, I really don't miss cable and I'm saving about $50/mo., before equipment costs.

</comment><comment><USER2> EZTV.it</comment>


Closed-Loop Intelligence: A Design Pattern for Machine Learning - <AUTHOR> https://msdn.microsoft.com/magazine/mt833408 <comment><AUTHOR> Editor's note here: [https://msdn.microsoft.com/en- us/magazine/mt833403](https://msdn.microsoft.com/en-us/magazine/mt833403)

Instead of a tactical exploration of a thorny technical problem or new tool, this article digs into patterns and practices that can be critical to a successful machine learning project. The article delves into four key aspects of machine learning management: Connecting with users to enable closed-loop feedback, applying machine learning to the right objectives, building systems to support machine learning-based solutions, and understanding what goes into running a machine learning-based system.</comment>


Digg Founder Kevin Rose's Pownce Raises Privacy Concerns - <AUTHOR> http://www.weburbanist.com/2007/06/27/pownce-kevin-roses-newest-venture-sounds-like-glorified-email/

<comment><AUTHOR> There is nothing in the article 'claiming' that Pownce advertisements use note context - the article fully discloses (check the headline for crying out loud) that there are concerns about privacy, not that user privacy has been compromised.

There is no claim in the article that Pownce scrapes content, but nor does Pownce's privacy policy state that they don't. So you tell me: if it makes them more money, and they haven't said they won't do it, what will they do?

This kind of comment is at least as misleading as a self-professed speculative article it is reponding to.

P.S. Which do you work for - Google or Pownce?

<comment><USER3> As a quick preface, I usually think its much easier to have a coherent conversation when we actually reply to the comment we referring to, otherwise it won't be listed in the threads section and will easily go unseen.

"Moreover, they will "run some small advertisements in your list of notes" which sounds a lot like GMail., which crawls through emails to find keywords then uses those to display ads on your GMail pages."

That sentence insinuates that Pownce is--or will--use data context to increase ad relevancy. I don't believe I am inaccurately representing the article by saying so. I don't know the details of the Pownce private policy, but I do know that the excerpt I quoted (the only excerpt of the policy contained in the article) is meaningless in regards to using context to serve ads.

Sitting back and accepting this sort of speculative commentary is detrimental because it adds confusion and misinformation without bringing with it any merit to redeem itself. This article could have been done in a valid way, by an individual with an understanding of the American legal system, there may indeed be more than illusionary specters to the issue of Pownce's privacy policy, but we won't learn anything from the haphazard and speculative inquiry that this post embodies.

<comment><AUTHOR> Let's just keep this simple:'

1) We know Kevin Rose isn't a man of principle - he sides with corporations to save his skin, then the mob if he risks losing his followers (see: Digg HD-DVD scandal)

2) There is money to be made by targetting ads that used scraped content as a basis for choosing what to display to who (see: Google)

3) There is nothing in the Pownce privacy policy that says they won't scrape your content.

So a guy who will do what it takes for his company, right or wrong, has a ton of content he could scrape to increase ad revenue and he isn't saying that he won't do that. Is it reasonable or not to then 'be concerned' about ones privacy? You tell me what part of this you disagree with.

"Many companies offer programs that help you to visit websites anonymously. While Megatechtronium will not be able to provide you with a personalized experience if we cannot recognize you, we want you to be aware that these programs are available." (Pownce.com/privacy)

What do you suppose they mean by a 'personalized experience'?

<comment><USER3> "The personal information you provide may be used for such purposes as responding to your requests for certain products and services, customizing the advertising and content you see, and communicating with you about specials, sales offers and new products."

The privacy policy _clearly states_ that they will do what the article is insinuating. The article didn't even bother to quote this relevant segment, or to even mention that it exists. It instead makes it argument based on an irrelevant quote that doesn't support its insinuation. The article is poorly done, and fails to make a meaningful point because it builds a foundation on thin air, even though there was a solid foundation for it to rest upon in the first five paragraphs of the privacy policy.

That, rather than slandering Kevin Rose, is what quality journalism is based upon.

As for the personalized experience issue it seems more likely that anonymity services will impede assignment of cookies and thus the cookie framework used to maintain persistent user sessions will be rendered non-functioning. This is a protocol issue, not another mythical infringer of privacy to point fingers at while screaming hysterically.

The article uses bad evidence deceptively when good evidence is readily available, and could have been used to make the point cleanly and without making leaps of faith in the argument. Why would one waste time reading analysis performed by someone who clearly doesn't even care enough to perform analysis?

<comment><AUTHOR> Hahahah awesome. So you basically criticized the article for doing something it didn't do (make misguided claims), then in the same breath you yourself made misguided claims. This is almost too funny for words. You wrote:

"Its great to see people who haven't used a service making misguided claims."

Then you wrote:

"The privacy policy clearly states that they will do what the article is insinuating."

Misguided claims? Now you concede that the article was correct and that its claims were not misguided. So you made the false claim that the article was making misguided claims without bothering to make sure your own claims weren't misguided. What a mouthful! Yes, the article could have had more relevant direct quotes from Pownce, but it was based on solid fact as you now admit - unlike your own claims which were patently false. Let me sum it up: the article was right, and you falsely accused it of being wrong, thereby doing exactly what the article didn't do and what you criticized it for - <USER2> misguided claims.

<comment><USER3> You're ignoring what I am saying, seemingly because you are focused on mocking me. As such I'll make a final attempt to explain myself, but it seems likely that communication will be thwarted yet again.

There was solid and easily locatable evidence that supports the premise of the article in question. The article did not use that evidence, and instead based its premise upon an irrelevant quote that did not support its argument.

Thus the article is fundamentally flawed: it arrives at its conclusion by making a leap from one disconnected idea to a second; there is no chain of reasoning to follow. Worse than simply making a leap in its reasoning, it misinterprets a disjoint quote and passes it off as support for its argument.

This method of pseudo-analysis will occasionally render correct segments of analysis. That doesn't matter. The pseudo-analysis is still flawed, unreliable, and devoid of value.

<comment><AUTHOR> I have already conceded that the article could have cited better sources, but my point remains: you could have as well. You implied that the article author did not know as much as you did. You suggested that they were not only not citing sources that didn't help the argument but also making factually inaccurate claims.

In so doing, you took an implicit position of authority on the matter by claiming (as a user with insider knowledge) that the author was wrong. That was wrong, which makes you equally (or more so) guilty of unsound reasoning and misleading or misguided argument. If you claim to know better and are wrong, doesn't that make your statements even more misguided than someone who raises 'concerns' about an issue and says it quote "sounds like Gmail' and turns about to be justified in these concerns?

The article clearly raises the entire question as a 'concern' as stated in the headline. Your statements were much closer to being assertions of fact based on expert opinion. Could the article have cited better sources? Yes. Does that mean the article author didn't know what he was talking about? No, and the article turned out to be correct. Could you have cited better sources yourself? Yes. Did it turn out that the article was right and you were wrong? Also yes.

You tell me. Seriously. You tell me: what is worse: (1) failing to site the right source but writing truthful content, or (2) implicitly claiming expert status and writing false content defaming an accurate source.

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> Its great to see people who haven't used a service making misguided claims. Pownce's advertisements are akin to those on Facebook's recent update page: they are simple text ads.

Nothing about them, and certainly nothing about the quote used in the article, suggest that they are using note context to target audiences.

This kind of article with haphazard speculation is no signal and all noise.</comment>


Ask HN: Where does a beginner programmer start? - <AUTHOR>

Hey everyone, I'm currently working full time while doing one unit a semester of a computer science course at university. In my spare time I am trying to learn as much about different languages (currently C, objective-C, html, css and php) as I can, however I am getting frustrated as I don't really know where to start and how to go about practising. I have been reading a few books but it's just not the same as actually working on a project and learning on the go.
If anyone has any suggestions or resources that could help me it would be greatly appreciated if you provide them!
Thanks in advance <comment><USER2> Pick a _simple_ project and see it through to completion. That's really the only way.

So not making your own search engine, a dating website, twitter for cats, anything like that. Far too large of an undertaking. Those are for later in your career.

Because you listed Objective-C, I'd really recommend making a menubar app then launching it on the Mac App Store. People expect menubar apps to be small utilities that do one thing well. Perfect for someone just starting out. And having launched an app to THE App Store is a huge boost to your portfolio and self-esteem.

So pick some little piece of functionality you need and wrap it up as a menubar app. Forum notifications, whois-lookup, image upload, workflow enhancement... I'm sure you can think of something.

I made a small menubar app (see below) when I was learning Objective-C myself. Highly recommended, once you have the basics down, to get to work on a simple app.

Reddit Notifier: [http://itunes.apple.com/us/app/reddit- notifier/id468366517?m...](http://itunes.apple.com/us/app/reddit- notifier/id468366517?mt=12)

</comment><comment><USER3> First of all, practice makes perfect, throw yourself in to a project, even if the task seems childish and inane, get yourself in to the routine of regularly churning out code and you will become a much better developer.

One thing you will find is time pressure, as you go forward you will want to give up or spend more time with your family, make sure you devote some time to them as well, an unhappy coder generally makes for unproductive sessions.

Once you are in to the swing of things, coding away big chunks every day, you will find that the standard functions given to you no longer suffice, try to write a small library to ease whichever issue you are having (but please, don't bother us with it if it's yet another javascript library!) and you will begin to understand modularity and namespacing.

One key thing is this: if you have the passion, no matter your situation you will become a much better programmer, if you don't care or don't devote time to the task you will wilt.

There may be those who claim that they learned python in 6 weeks, or became a coding superman guru in 12, but this is a game of masters and those stuck behind them, it's a long journey ahead of you and a few years before you can really say you are competent but if you stick at it like the rest of us, get involved with the community and do your part, you will inevitably, through trial and strength of will, be where you want to be.

If you are stuck for a project, try implementing a simple text based game in PHP, then try to convert some of the code to c and port it to the software level, it will teach you a lot about the differences between programming languages and when to use one over the other.

P.S. Wrote this comment for your deleted topic :)

</comment><comment><USER4> For practicing or learning new coding things I like to read a projects source, run a debugger on it, and basically spend a couple days/weeks analyzing how every aspect of the system works. Then after I'm comfortable i.e. I can go through in my head for example the structs, their function calls, the system flow, etc, I try to program my own implementation of the system, a part of it, or a plugin. This has worked for me ,hopefully it helps :)

</comment><comment><USER5> Personally, I feel I have gained most experience from creating solutions to (sometimes) stupid or easy problems. Stuff to generally making my life easier. I even built a small social network focused around dating because I didn't want to pay for the existing ones. (Needless to say, no one uses it today. :)) These kind of projects give me the most inspiration to learn new stuff and finish it.

So find something that bothers you and fix it!

</comment><comment><USER6> CodeSchool.com has a lot of great classes on a wide variety of programming topics. Also, think of a simple project you want to work on and do that.

DHH has a great post on learning how to program. [http://37signals.com/svn/posts/2582-how-do-i-learn-to- progra...](http://37signals.com/svn/posts/2582-how-do-i-learn-to-program)

</comment><comment><USER7> Not to sound snarky, but try browsing previous posts to Ask HN. There are numerous times when someone's asked a question like this. Rather than rehash, try reading the good recommendations provided in those threads.

</comment><comment><USER8> I think Udacity has it spot on. It's great to finish a project and actually have something to show for it, instead of having ticked off x number of book pages or tutorials lost in the ether.

<comment><USER9> Great advice! Building a basic search engine is pretty awesome and keeps you engaged. Really enjoyed it and now I'm taking as many courses as my time permits :D</comment></comment>


Cmd.fm - <AUTHOR> http://cmd.fm/ <comment><USER2> Interesting concept, but it's always surprising to see a newly created web- based audio player that expects Flash rather than using HTML5 audio. Doesn't work at all without Flash.

<comment><USER3> Is it, though? The state of HTML5 audio is still pretty atrocious.

<comment><USER2> Apart from the selection of codecs, HTML5 audio seems to have pretty much all the bases covered.

As for codecs, depending on your application, you can either pre-transcode all your audio to an appropriate codec, transcode on the fly, or even use a Javascript transcoder and the Audio Data API.

<comment><USER3> I just came from a project that required heavy use of HTML5 audio, and let me tell you that the 15+ ffmpeg calls during the audio build step were the least painful part of the process.

HTML5 audio in iOS is a bit of a black box, with variable, unpredictable and undocumented behaviors between iOS5 through 7. These guards are intended to shield users from obnoxious behavior, but in the process, make the feature useless for everyone else.

You get one HTML audio element whitelisted in response to a user-initiated event, so you need a "click anywhere to do something useful!" screen. Also, you've got that one element to work with, so something like sound effects with a background track is out of the question.

Once you've got a whitelisted element, you can then re-use that element to play individual sounds by swapping out the src attribute of that single whitelisted audio tag, which queues a new web request and plays back the sound whenever the web request finishes... which is usually several seconds after you wanted it to play.

This happens regardless of whether or not the sound has been played before; the result isn't cached locally.

So, if you want to produce something remotely workable, you do audio spriting and never switch out to a different audio file. You create a build step that pulls in all of your audio, all of your sound files, puts them together into a single wave file, generates an audio atlas, and re-encodes audio to mp3, wav and ogg to hit all the major players (rinse and repeat for other channels of audio). Which works on most devices, but iPads decide to ignore currentTime assignments on that audio track, so the whole thing is kind of botched.

That's before we try to get stuff predictably working in IE, which can go anywhere from screwing the whole thing up to unpredictably mutating volume levels. That's before we support Firefox, which doesn't loop audio like everything else does and randomly stops playing audio. That's before we support Android, which exhibits different behaviors across the stock browser and Chrome, and so on, and so on.

If you want to play a single audio track in one or two desktop browsers, then sure, the technology is somewhat ready for you. Codecs are the least painful part of the problem. Anything beyond that is a travesty.

<comment><USER4> My experience matches this. For a serious project, it is a clusterfuck of dogshit proportions.

<comment> ezequiel-garzon "a clusterfuck of dogshit proportions"

I thought it might be a standard expression in some literary circles, but according to Google it turns out to be original poetry!

</comment></comment></comment></comment></comment></comment><comment><USER5> Very cool app. Few thoughts:

\- If a track doesn't start buffering quickly enough, maybe automatically skip it?

\- Running 'clear' also clears the current track, but it should really be persistent.

\- This might go against the popular opinion, but I'd like to see "now playing" pinned at the top, so when the window scrolls, it scrolls under it, instead of effectively hiding it.

\- Consider setting a cookie to track preferences.

\- If you could link to the source (the current song's soundcloud link) that would be excellent. At the very least, a permalink or something.

<comment><USER6> Point 2, 3 and 4 are nice, but wouldn't really fit in the command line interface, which is the main feature of the website, I think.

<comment><USER5> I agree in theory, but I think that breaking the mold slightly will help it grow past a cool tech demo.

I'm mainly comparing this against using SoundCloud directly, or something like turntable.fm. A big feature I like is being able to +favorite a song that I like, or buy the album, so anything that causes me to lose context greatly devalues the app.

And for the cookies, it's really just the background and comment preferences. Maybe the cookie could be named .cmdfmrc or something?

</comment></comment></comment><comment><USER7> I noticed it requires flash.

If not already, you should use Sound Manager 2 [http://www.schillmania.com/projects/soundmanager2/](http://www.schillmania.com/projects/soundmanager2/) and its api. It's amazing. It auto selects HTML5 or Flash on both pc and smartphones. It even checks if people have flashblock enabled and tells them to "click here to enable flash".

I've used it on 2 projects before [http://timeforzen.com](http://timeforzen.com) and [http://residentevilradio.com](http://residentevilradio.com) (it can also stream from shoutcast servers.) I've got HTML5 disabled on those 2 projects because it was still beta and glitchy at the time the feature was introduced.

</comment><comment><USER8> Oddly, I can play most stuff, but not drum & Bass. It just says

        Searching genre..
        Found! Playing 'Drum & Bass' genre, yay!

        </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----

        The song is ended (but the melody lingers on)

        </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----

        Welcome to cmd.fm!

        Use 'help' command to see available commands
        >

It's rather odd...

<comment><USER9> Hah, I looked for dnb first but missed it in the list due to the columns format, so I started with grime instead.

I wonder if it's due to the ampersand.

<comment><USER10> Seems to be. Piping straight to the backend works just fine for Drum & Bass if you URL Encode.

</comment></comment></comment><comment><USER11> I also prefer TUI over Ajax GUI but here I think we don't have the tools and environment that define a real TUI. For example, can I pipe the genre list to grep or sort or awk? Can I script a player in a cronjob? I doubt it (cannot check because on a phone)

<comment><USER12> TUI, seriously? It's been called CLI for years.

<comment><USER13> CLI is for dealing with an application or system through its command line: "apt-get install foo"

TUI are usually curses-based interfaces that live in the terminal and have menu, windows and sometime support for interacting with them with the mouse (for example aptitude or alsa-mixer).

</comment></comment></comment><comment><USER14> If you're like me and escape your spaces instinctively (e.g. "Progressive\ Rock" instead of "Progressive Rock"), it won't work. Hold back the desire to press the "\" key.

<comment><USER5> A little formatting magic in the background would be great. For instance "progressive rock" and "triphop" work, but "progressiverock" "prog rock" and "trip hop" don't.

<comment><USER15> Removing all whitespace, converting everything to lowercase and removing special chars should to the job. I hope they build it in.

</comment></comment></comment><comment><USER16> You should actually constrain volume to 1-100. I'm currently listening at 2000, and I tried 1000000 and it was painful.

</comment><comment><USER17> For some reason, can't see how to comment, am I missing something?

<comment><USER18> Comments are taken from SoundCloud. They're not realtime from other listeners.

<comment><USER19> Thank you, I was quite confused. Thought this might have just been a neat shell for another streaming radio of some sort.

</comment></comment></comment><comment><USER20> Long ago, there was music, call it pop. Much time passes and the same music is still played, but it has been renamed folk. Edison, got involved and the guy on the Martin discovered Fender so now they call it folk rock. Just to be clear, folk didn't go away, it is still around and thriving---fix your genres please :)

</comment><comment><USER21> Doesn't work at all with the "Vimium" Chrome extension [1]. What a shame.

[1] [https://chrome.google.com/webstore/detail/vimium/dbepggeogba...](https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb?hl=en)

<comment><USER22> Sure it does. Just press i to enter insert mode. You have to do this for a couple of things to work (ie direct links to .swfs). It sucks to do, but I'm not going to give up Vimium to avoid having to enter insert mode every now and then.

</comment></comment><comment><USER23> Love the nowhere layout! Is it possible to go to the previous track? Sometimes you get a song really stuck in your head and its nice to play it on repeat for a while while you work on something.

<comment><USER24> Also, usually the exact moment when I want to look up the name of a track that I like is when it just finishes playing. This is also the exact time when this interface removes the name of the track and replaces it with the new 'now playing' song. Please keep a record of all songs played in the scrollback!

</comment></comment><comment><USER25> Would love to see this expand. More general soundcloud search, etc. I played the "Funk" genre and it started repeating after only a few tracks. Nice demo of the concept though.

</comment><comment><USER26> Funny, you can tell by which generation/culture a player was made based on the listed genres. In this case I see acid jazz, trip-hop, and moombahton but no dubstep or glitch hop.

<comment><USER27> I'm playing Electro House right now. There's also Electronic, House, and Techno. You can't really judge them for not bothering to list _every_ subcategory.

<comment><USER26> Not saying they must list every one. Rather it's always interesting / fun too see to see when someone releases a player w/ genres which ones they'll offer.

</comment></comment></comment><comment><USER28> This is lovely. Although it would be great of there could be some link or info about the track being played because this could work as a brilliant music discovery service.

</comment><comment><USER29> Kind of cool, but doesn't allow much customization of the music. I'll stick with my terminal and pianobar for now.

</comment><comment><USER30> Current volume is 100, enter value between 0 and 100 > 100 [USER]: Cannot call method 'setVolume' of undefined [[;#f00;;;TypeError: Cannot call method 'setVolume' of undefined at playerVolume ([http://cmd.fm/js/common.js:26:15](http://cmd.fm/js/common.js:26:15)) at setVol ([http://cmd.fm/js/terminal.js:182:3](http://cmd.fm/js/terminal.js:182:3)) at Object.term.push.prompt [as eval] ([http://cmd.fm/js/terminal.js:358:11](http://cmd.fm/js/terminal.js:358:11)) at Object.z [as commands] ([http://cmd.fm/js/terminal/jquery.terminal-0.5.4.min.js:70:18...](http://cmd.fm/js/terminal/jquery.terminal-0.5.4.min.js:70:186)) at HTMLHtmlElement.t ([http://cmd.fm/js/terminal/jquery.terminal-0.5.4.min.js:41:20...](http://cmd.fm/js/terminal/jquery.terminal-0.5.4.min.js:41:201)) at HTMLHtmlElement.x.event.dispatch ([http://cmd.fm/js/jquery.js:5:14129](http://cmd.fm/js/jquery.js:5:14129)) at HTMLHtmlElement.v.handle ([http://cmd.fm/js/jquery.js:5:10866)]TypeError](http://cmd.fm/js/jquery.js:5:10866\)\]TypeError): Cannot call method 'setVolume' of undefined at playerVolume ([http://cmd.fm/js/common.js:26:15](http://cmd.fm/js/common.js:26:15)) at setVol ([http://cmd.fm/js/terminal.js:182:3](http://cmd.fm/js/terminal.js:182:3)) at Object.term.push.prompt [as eval] ([http://cmd.fm/js/terminal.js:358:11](http://cmd.fm/js/terminal.js:358:11)) at Object.z [as commands] ([http://cmd.fm/js/terminal/jquery.terminal-0.5.4.min.js:70:18...](http://cmd.fm/js/terminal/jquery.terminal-0.5.4.min.js:70:186)) at HTMLHtmlElement.t ([http://cmd.fm/js/terminal/jquery.terminal-0.5.4.min.js:41:20...](http://cmd.fm/js/terminal/jquery.terminal-0.5.4.min.js:41:201)) at HTMLHtmlElement.x.event.dispatch ([http://cmd.fm/js/jquery.js:5:14129](http://cmd.fm/js/jquery.js:5:14129)) at HTMLHtmlElement.v.handle ([http://cmd.fm/js/jquery.js:5:10866)](http://cmd.fm/js/jquery.js:5:10866\))] Current volume is 100, enter value between 0 and 100 >

</comment><comment> Stealth- I prefer this sort of interface _any_ day compared to a bloated AJAX-y web interface that kills my browser.

</comment><comment><USER31> This is really useful. It would kinda cool if you made this into a command line app. Still, good job!

</comment><comment><USER32> This is certainly an interesting idea, definitely appeals to the programmer/hacker type. Its not a service for everyone since it looks complicated and scary to someone who has never opened a terminal before. I think this is fun though and you did a good job!

</comment><comment><USER33> This is absolutely fantastic! I'd love a native Alfred style Option + Space interface so I could quickly chop and change between the music because having to switch to Chrome then the right tab is cumbersome. This is really great however, excellent job.

</comment><comment><USER34> Odd: When I play a genre, the site tries to POST to [http://localhost/cmdfm/api/users/](http://localhost/cmdfm/api/users/), which is denied by my local Apache since it does not exist.

Coding error?

</comment><comment><USER16> How do we chat in the repl? I'm getting messages I'd like to engage with.

<comment><USER35> I think these are the comments from soundcloud.

Though it would be really cool to have a chatroom for each song. My first interpretation was the same as yours and I was wondering if there is a char room per genre or one chatroom per song.

Amazingly useful app!

</comment></comment><comment><USER36> I wrote "play Jazz" and pressed enter then I see that it searches and finds something but then it just stops at 0:00 minutes and does nothing. (Firefox 23 on OS X)

<comment><USER36> Oh interesting, after upgrading to Firefox 24 it started to play the music.

</comment></comment><comment><USER37> Good stuff! I personally don't have a use for it, but I think other's need to see this.

If anyone is looking for a front-end job, look in the right place. Look in the source.

</comment><comment><USER38> Excellent! Bookmarked and will be listening, I've definitely needed something like this for a while, and it's really a beautiful design to pull off.

</comment><comment><USER39> This would be even better if it were a real terminal command-line app for OS X (and installable via brew) and Linux (and installable via apt).

</comment><comment><USER40> Can you download this as a standalone app? I'd love a command line music player I can just boot into from my terminal

<comment><USER41> Check out pianobar, a command line Pandora client. It works great for me!

[http://6xq.net/projects/pianobar/](http://6xq.net/projects/pianobar/)

</comment></comment><comment><USER42> ah. that made me sad. i thought it was a telnet or something emulator into the actual service. But it's just a html/js shenanigans :(

I'd like the actual service to be a command line via telnet or other established protocol, so i can automate it via cron, arduino buttons and what not the cool kids use today.

<comment><USER43> How would you expect the audio to be delivered in a service you accessed via telnet?

<comment><USER42> no. I thought the service gave you a audio stream URL and then via telnet/etc you could control what was dumped into that steam.

I thought the site was just a convenient way to demo it all together by already opening the steam in an audio html tag or something and exposing the console api on the same page.

<comment><USER44> Just curious - what would be desirable about an actual telnet service that does this? You seem disappointed that it wasn't that, but I'm struggling to understand the advantages.

<comment><USER42> integration.

if you had telnet/rest or any other standardly documented access point, I could schedule stations with a cron script. Have a hardware button with an arduino. The sky is the limit.

The way it is now, it's just a toy. nothing other than a slightly more inconvenience to use than pandora. it doesn't really add anything different. Well i could emulate keystrokes and expose an API myself, but then i could already do that emulating mouseclicks in pandora anyway.

</comment></comment></comment></comment></comment><comment><USER45> I hear nothing. I get some error when I'm trying to change volume. Where do these great comments came from?

</comment><comment><USER46> Wow, I'm in awe. I have seen a lot of wonderful mash-ups but this really tickles my fancy. Great job.

</comment><comment><USER47> This is awesome! Nice idea, would be great to be able to search for a given track by name / author.

</comment><comment><USER25> Doesn't work at all for me. Mac OSX 10.8.5, tried Firefox and Chrome.

Edit: the cli works, but no music.

<comment><USER48> It wasn't working for me either. It turns out that that you need to have Flash installed and enabled to run by default for the music to play.

<comment><USER25> Strange. I went to chrome:plugins, checked Flash (was enabled) then went back to cmd.fm and now it's working.

</comment></comment></comment><comment><USER49> I'd love to get these implemented:

\- Ctrl + L

\- 'w'

\- 'ls'

</comment><comment><USER50> Oh nice. A black screen -.-

</comment><comment><USER51> Very cool. I like the awake layout. Listening to some rock music now.

</comment><comment><USER52> missing one thing for me, the Status page should also show in which Genre you are currently, i cant see that anywhere

</comment><comment><USER53> I am enjoying this immensely. Thank You!

</comment><comment><USER54> awesome idea, unfortunately doesn't work with a mobile browser keyboard

</comment><comment><USER55> This is so ill. Nice work.

</comment><comment><USER56> love it. Can you give an idea of what tech are you using for this.

</comment><comment><USER57> No country :(

</comment><comment><USER58> Great idea!

</comment><comment><USER59> absolutely brilliant.

</comment><comment><USER60> this is the best

</comment><comment><USER61> this is so cool

</comment><comment><USER62> OMG I LOVE THIS. The Dream Pop playlist is awesome, thanks OP. I love discovering new music!</comment>


We're happy with SQLite and not urgently interested in a fancier DBMS (2016) - <AUTHOR> http://beets.io/blog/sqlite-performance.html <comment><USER2> This is just a thought: SQLite is a really good file format. Why aren't we replacing CSV with it, especially for big data applications?

CSV can be difficult and ambiguous to parse correctly (because there's no real standard) and isn't extremely performant. The only thing it has going for it is its universality.

SQLite is lightweight, structured, supports indexing for performance and is extremely easy to use.

<comment><USER3> CSV's biggest competitor is XML.

But both XML and SQLite have the same issue: They give you just enough rope to hang yourself with. While SQLite is a fantastic micro-database engine and a file format, it isn't a very good universal B2B format because there are too many features you'd have to support to interoperate.

I'd argue CSV's biggest strength is that it is easy to parse correctly, because the format is so simple and the standard is largely the superset. The biggest problem for CSV is that the most popular desktop application for view CSV (Microsoft Excel) sucks at it, and causes data corruption on save (and has for at least twenty years).

If people wanted a relational database as a file, I can think of nothing better than SQLite, but in B2B you want automated tooling that can parse the format without human involvement. If you need some structure there are some simpler XML-based formats which accommodate that, but still offer far fewer features you'd have to support than SQLite does.

Ajax might become popular in this space, but I'm yet to see it.

<comment><USER2> > I'd argue CSV's biggest strength is that it is easy to parse correctly

Not sure I resonate with that. I work with large CSVs of varying provenance every day (I work in big data) and there's always some CSV edge case that stymies my analysis pipeline.

Timestamp parsing is extremely hard if it's not ISO-8601, as well as handling of unicode encoding, missing data, type inference, European usage of , as a decimal point, hidden characters, etc. One of the costs of almost complete freedom in input is the "interesting" possibilities people come up with to stymie your code.

The Pandas read_csv method has tons of switches to deal with all kinds of CSV parsing definitions precisely because there is no standard. Fortunately this covers 80% of the use-cases. [https://pandas.pydata.org/pandas- docs/stable/generated/panda...](https://pandas.pydata.org/pandas- docs/stable/generated/pandas.read_csv.html)

Excel's CSV parsing isn't the greatest, but does a surprisingly decent job considering how ill-defined CSV is.

XML isn't really on anyone's radar in the big data world. It's an interchange format yes but is hugely inefficient for dataframe-type data.

<comment><USER3> > Excel's CSV parsing isn't the greatest, but does a surprisingly decent job > considering how ill-defined CSV is.

No, it really doesn't. Save this as a CSV, open it in Excel, hit save, and then review the raw CSV:

"1000000000012345", "Hello",

"2000000000067890", "World",

Here's what Excel (O365) does to it for me:

1E+15, Hello,

2E+15, World,

That data is now permanently lost. And this corruption occurs for almost all EAN/UPCs. There are many ways to get around this in Excel, but the default experience is data corruption and has been for most of my lifetime. It is a terrible application for CSV. If they followed the standard every column would be what it is: Text.

> XML isn't really on anyone's radar in the big data world.

But is a central theme in the business to business back-end systems world. I'm talking about ordering, invoicing, remittances, hospital records, hospital billing, and so on. No clue what "big data" is, we deal with billions of transactions a year, but that's likely not what you're referring to.

<comment><USER2> 1\. I think in the first instance, Excel performs type-inference and coerces it into a numeric type and writes a truncated precision version of numeric fields in CSV, which is an abominable sin. There are workarounds for this [1], but agree this is terrible behavior due to CSV's lack of types.

Arguably, there should have been an explicit Excel switch which forces all CSV data to be parsed as raw strings.

I've seen problems with Excel CSVs that are worse than that: I have serial numbers that have leading 0's that have semantic meaning, like 000002324122323. Most CSV parsers cannot tell that this isn't a numeric type and so handle it wrongly. So I resort to [1].

2\. Big data is of course somewhat ambiguous nomenclature as well, but is nowadays typically understood to mean the Hadoop ecosystem or similar. Data is typically ingested into a distributed file system (HDFS, S3, etc.) in formats such as Parquet, Avro, JSON and often CSV. A schema-on-read database like Hive sits on top of this layer and presents a SQL interface to the user. Tools like Apache Spark provide programmatic transformations that operate on the data on the large.

CSV is often promoted as a format for storing structured data due to ease of ingestion and inspection (all you need is a text editor for troubleshooting). However, you pay a performance penalty every time an analytic query is run because CSV doesn't support indexes, predicate pushdowns, compression, etc. and records can sometimes be uninterpretable under certain schemas (in which case they are simply excluded or dropped).

Sometimes having one too many commas in a row can completely mess things up (all the columns get shifted in a record) -- I found this out the hard way when Spark exported malformed CSVs with un-escaped commas.

[1] [http://support.pitneybowes.com/SearchArticles/VFP06_Knowledg...](http://support.pitneybowes.com/SearchArticles/VFP06_KnowledgeWithSidebarTroubleshoot?id=kA280000000TTCfCAO&popup=false&lang=en_US)

</comment></comment></comment></comment></comment><comment><USER4> We use SQLite in an app with about 1,000 active users. It took us:

\- 0h to manage backups ("cp"),

\- 0h to manage seeds and tests fixtures ("cp"),

\- 0h to configure and secure (void),

\- 0h to write the deployment scripts (void),

\- 0h monitoring/watchdog jobs (void),

\- 1h to rsync for failover ("rsync")

My last projects always spent at least a good 100h to do all of this the right way. Then, if it is not good enough, we'll move to RDS or equivalent.

<comment><USER5> > 0h to manage backups ("cp")

Are you aware that's unsafe? To make a safe backup use sqlite3's ".dump" command (or filesystem snapshotting, but I've had bad experiences with that, at least on btrfs).

<comment><USER6> I'm not very familiar with the details here. What are the problems with cp?

<comment><USER5> cp does not make atomic snapshots. It copies by reading (usually sequentially) chunk by chunk from the source file, and writing these chunks to the destination file. This takes time. If the database has writes at the time of backup, the backup might be invalid (it contains some old parts and some new parts).

(Unless you use e.g. the --reflink option of GNU cp, in which case it makes atomic snapshots on filesystems that support it).

<comment><USER7> Isn't one of the more important points of POSIX that reading sequentially results in an atomic copy ? As long as you keep the file handle open and the fs supports it.

<comment><USER5> I don't know which point you mean, but that would mean that any writer would be blocked indefinitely by any other reader. That amounts to a read lock. You don't get a read lock just by opening a file for reading. You can test that with a simple shell script

        {
            echo line1
            echo line2
        } > test.txt
        {
            read line
            echo got "$line"
            sleep 2
            read line
            echo got "$line"
        } < test.txt &
        # concurrent write
        sleep 1;
        {
            echo line2
            echo line1
        } > test.txt
        wait

This script does a concurrent write while the reader is in the "sleep 2" phase. The output should be

        got line1
        got line1

(given that the sleeps do the expected thing).

POSIX might contain something that requires aligned blocks of 512 bytes or so to be read or written atomically. But only if you do that in a single system call, of course.

</comment></comment></comment></comment></comment></comment><comment><USER8> As a postgresql nut, the people suggesting those other platforms (incl. pgsql) are idiots. Postgres in particular would be a bad idea unless he wanted to incorporate VACUUM() into his loading screen

</comment><comment><USER9> SQLite is a fantastic database for desktop applications. [https://www.sqlite.org/appfileformat.html](https://www.sqlite.org/appfileformat.html) is a great essay on its benefits for this kind of use-case.

<comment><USER10> Not only desktop, but most mobile platforms as well. Beeing coded in a single C file makes it portable as hell. Their documentation is also a prime example, with great insight.

<comment><USER11> Not only desktop and mobile, but it can be used as the storage format for larger scale distribued systems. For example it's the on disk format for FoundationDB.

>Beeing coded in a single C file makes it portable as hell.

It's not coded in a single C file...

<comment><USER9> It kind of is... the SQLite "amalgamation" process takes all of SQLite's source code (across 100+ files) and concatenates it together into a single sqlite3.c file: [https://www.sqlite.org/amalgamation.html](https://www.sqlite.org/amalgamation.html)

<comment><USER11> That's horrifying and interesting. Thanks for linking it!

I wonder if the alleged 5-10% performance gains are compared with usage of LTO.

</comment></comment></comment></comment></comment><comment><USER12> Can confirm. SQLite is great. I've written an e-commerce website for a customers a few years ago. Most of the data was static and only updated a couple times per day in bulk. It was easy to do the main import/data update completely offline, then copying over the db file to multiple servers and doing mostly read-only queries on the DB. SQLite was more than fast enough and not having to manage another service was totally worth it. It's good having SQLite in your toolbox.

</comment><comment><USER13> We use sqlite in data-heavy visualization website ([http://atlas.cid.harvard.edu/](http://atlas.cid.harvard.edu/)): We currently have an approximately 22GB sqlite file with the two largest tables going up to 150 million rows each. It still works just fine. The limiting factor seems to be the I/O throughput of the instance and disk of the server (EBS volumes).

Read-only workloads, most of which eventually get cached by the webserver, but still. Each visualization ends up pulling a large amount of data (sometimes in the 10 thousands of rows) so the network / serde overhead and the administration costs of an external database server adds up, though things have changed recently so perhaps a revisit is in order.

Where it hurts is: The query optimizer sometimes stumbles and does silly things (e.g. not always very smart about column / index selectivity statistics). The data import takes a long time (compared to e.g. postgres' COPY), so that's another pain point.

<comment><USER14> You can help the optimizer stumbling by running ANALYZE [1] with representative data present, and turning off auto-analyze. This was intentionally designed as a feature so you could set up the statistics for a db, empty it, deploy it out to the end user and know that the optimizer isn't gonna go off and do something funky.

[1]: [https://www.sqlite.org/lang_analyze.html](https://www.sqlite.org/lang_analyze.html)

</comment></comment><comment><USER15> FYI: SQLite doesn't have ALTER TABLE.

<comment><USER16> And this pisses me off every time a schema change needs to be made in mobile apps I develop.

</comment></comment><comment><USER17> Could (2016) be added to the title?

</comment><comment><USER18> _> The idea is that a more complicated DBMS should be faster, especially for huge music libraries._

How "huge" are they talking about? I built a tool that imports Apache logs into sqlite for quick analysis and that easily handles several million records.

<comment><USER19> Just a ballpark: my beets DB is 15 MB for ~1000 albums (well, folders). This post[0] claims 10M albums ever released. So _maybe_ 150 GB upper bound? Assuming my db has been vacuumed recently (~~probably not true~~ Edit: nope, still 15M after vacuum) and ignoring that indexes will scale slightly non- linearly.

[0]: [https://www.quora.com/How-many-music-albums-are-available- in...](https://www.quora.com/How-many-music-albums-are-available-in-the-world)

<comment><USER18> I think 10m is far too low to be the total number of albums. But it would be impossible to actually calculate that figure given the number of producers that have released content outside the scope of any particular authority (eg NIN has released stuff to download only from their site. Aphex Twin uploaded a load of stuff to SoundCloud. Etc). But we digress.

My music collection is massive. It's got 30 years of singles and albums in there. And several years of DJing too. Plus a massive amount of DJ sets (like several hundred gig of DJ sets alone). Yet XBMC / Kodi handles it fine "despite" being sqlite backed. So does Subsonic and that just uses some Java equivalent. And as I've said already, I can throw several million records of Apache logs into sqlite without any issue.

The performance of sqlite is actually really good. It's super fast. Which is why the author can make those boasts on its website. Plus the compactness of the db (ie one file produced) and the ease to create a db makes it a perfect choice for desktop and mobile applications.

I think some people read that WordPress runs on MySQL or spend 10 minutes building their first CMS in PostgreSQL and then think the world and their mother should be using this miraculous new RDBMS they've just discovered themselves. (I'm probably being too harsh there)

<comment><USER19> Yeah. To be clear, I think even a 150GB sqlite database would perform just fine for beets' purposes.

<comment><USER20> Even as a heavy PostgreSQL fan and promoter I don't see why you would choose anything BUT sqlite for single-user applications unless you needed something that only other databases provide (richer procedural language support or other extensions that the fairly basic but still adequate featureset SQLite provides) - size of the dataset is only one factor to consider when choosing the storage layer for your application, and there's a _lot_ of valid solutions for handling 1TB or less of data easily.

<comment><USER21> Real typing? [https://firebirdsql.org/](https://firebirdsql.org/)

</comment></comment></comment></comment></comment></comment><comment><USER22> Related note: in the last year I started using SQLite with my Clojure scripts instead of using a remote database, and I'm storing everything in git. Works like a charm for single-user tasks.

<comment><USER23> Do you store the binary .sqlite in Git or source .sql and build the .sqlite?

<comment><USER24> Wouldn't tracking the binary with Git make a new copy on every commit?

<comment><USER25> The .db file can change, even if the data/records don't. One approach is to dump the sql to text and store that in git. (e.g. [https://stackoverflow.com/a/846665](https://stackoverflow.com/a/846665))

</comment></comment></comment></comment><comment><USER26> I am on the train that the idea of using SQLite for a webapp, even one where SQLite can handle the traffic just fine, isn't nearly as good of an idea as some would have you think. Nevertheless, the idea of switching a local end- user application off of SQLite in favor of a client-server RDBMS is bonkers IMHO. You would be making everything about the application dramatically more complex for no real benefit. This blog post is considerably nicer than the idea deserved.

</comment><comment><USER27> Abstract the persistence layer, document the contract, build a conformance suite, and write your one impl that uses sqlite. I know sometimes there seems to be an impedance mismatch between callers and databases, but often it's not that bad. And no, don't use an ORM or existing DB abstraction to do this. Sure it takes work, but pluggable storage is nice on some of these types of things.

<comment><USER28> Congratulation, you just rewrote the base for an orm.

<comment><USER27> Sorry, put in my no-ORM edit as you may have been writing this. No, I mean higher level than that. ORMs suck as solving your problems specifically. Think more like an API than an ORM. I just started a side project and here's the beginning of an example of the iface I mean [0] and here's the beginning of an example of the sqlite impl I mean [1] (all untested and really early stage of course, but the idea is there).

0 - [https://github.com/cretz/yukup/blob/eecb3b24b33f40e6a1eefaa5...](https://github.com/cretz/yukup/blob/eecb3b24b33f40e6a1eefaa5a3a6ebcd1d2cb084/yukup/storage/storage.go) 1 - [https://github.com/cretz/yukup/tree/eecb3b24b33f40e6a1eefaa5...](https://github.com/cretz/yukup/tree/eecb3b24b33f40e6a1eefaa5a3a6ebcd1d2cb084/yukup/storage/sqlite)

<comment><USER28> But they abstract the underlying db very well and have an uniform api that you can rely on. It's also tested, documented and battletested.

It has drawbacks but if accepting several db is an important goal, you don't want to handcraft this unless you can measure inaceptable perfs.

<comment><USER27> > they abstract the underlying db very well

I am admittedly unfamiliar with this specific case, but even a cursory glance showed me some sqlite-specific code embedded in the main library portion [0].

0 - [https://github.com/beetbox/beets/blob/4f7c1c9beda6c2a5b0705e...](https://github.com/beetbox/beets/blob/4f7c1c9beda6c2a5b0705e868fb61e9b0af0e16d/beets/library.py#L107)

</comment></comment></comment></comment></comment><comment><USER29> I'm actually working on a project that's in the process of migrating from SQLite to MySQL as the preferred DB. I'll admit that the reasons we're doing it are probably not applicable to a desktop application like this.

The real wins for us are multithreaded and multiprocess DB I/O. This is something MySQL can handle, but SQLite really isn't designed to do well or efficiently.

</comment><comment><USER30> The mistale here is thinking that a "fancier DBMS" MUST be off-process.

I totally wish for a fancier DBMS that can be embebed (firebird fit here!) and work on mobile (but not here yet).

And not only "fancier" in the limited sense that most believe. I truly mean A LOT FANCIER.

<comment><USER31> MySQL Embedded[1] is a thing; used by some KDE apps. IIRC, it insists on using multiple files rather than a single file like SQLite does, but otherwise is a pretty much a turn-key component. No such luck with PostgreSQL so far.

[1] [https://www.oracle.com/mysql/embedded.html](https://www.oracle.com/mysql/embedded.html)

</comment></comment><comment><USER32> Unless for example, your run a background process which periodically imports data from an external source and inserts into sqlite database, while your web application continues to render pages for visitors based on existing old data.

Your web page will fail, as it will time out on database lock because of that background process.

<comment><USER33> You'll want to turn on write-ahead logging for that scenario[1]

[1]: [https://www.sqlite.org/wal.html](https://www.sqlite.org/wal.html)

</comment></comment><comment><USER34> Kudos to this guy. As the maintainer of an open source project, the hardest job is to tell people "your idea is stupid and I won't do it"

<comment><USER35> That seems pretty easy. It's much harder to try to understand where someone is coming from and engage with them in a positive way, even if you're rejecting their idea in the end.

</comment></comment><comment><USER36> Somebody clue me in on "asymptotically better database behavior"

</comment><comment><USER37> If you use Rust. [https://crates.io/crates/rusqlite](https://crates.io/crates/rusqlite)

</comment><comment><USER38> I agree wholeheartedly with this article, despite being somebody who has written a "fancy" popular database system ( [https://github.com/amark/gun](https://github.com/amark/gun) ).

SQLite is good enough for pretty much everything, just use it!!!

<comment><USER39> You've posted countless comments like this to promote your database. Often you include a lot of low-substance, barely relevant verbiage as packing, if not camouflage, for the promotion. That doesn't help.

I don't say it lightly, but you're basically spamming HN, as users have been complaining for a long time (e.g. [1], [2]). Even when you don't appear to be doing it, you're doing it [3]. It's past time for this to stop; please stop.

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

2\. [https://news.ycombinator.com/item?id=16677493](https://news.ycombinator.com/item?id=16677493)

3\. [https://news.ycombinator.com/item?id=16749503](https://news.ycombinator.com/item?id=16749503)</comment></comment>


New example of rare Etruscan writing found - <AUTHOR> http://arstechnica.com/science/2016/03/rare-example-of-lost-language-found-on-stone-hidden-2500-years-ago/ <comment><USER2> Great news for Etruscan scholars. I could relate to the point that most of the examples of Etruscan writing they have is from graves or tombs. I worked at the Brooklyn Museum in the 80s and was fascinated, as were most, by Egyptian Heiroglyphics. One of the curators of that department told me that a lot of them were about etiquette, very mundane and boring in subject matter. So I am sure that Etruscan scholars are chomping at the bit to get to this snippet.

From a linguistic point, like Basque, Etruscan seems to have been isolated from the languages spoken around them. The thought is perhaps they were neolithic natives to the area.

I studied the Celts back in the 80s, and Celt really refers to a common culture of shared art, social norms, beliefs and less about race or genetic group. Etruscan as a language was truly different than Celtic and other surrounding language groups. There were so many different bands of Celts in a set time period from Turkey to the UK and Ireland. Comparatively, their women also fought with the men. Celtic Queen Boudicea is a Celt from the British Isles that fought the Romans in 60-65 AD. Celtic women did have positions of status as evidenced by objects found in their tombs.

I can't wait to hear about what the snippet is. I am hoping by longshot it is something more than an honorific, or at least names a God or other figure.

<comment><USER3> > Great news for Etruscan scholars.

Doesn't sound like a huge group.

<comment><USER4> IIRC a better understanding of Etruscan civilisation would be of major significance to our understanding of the history of ancient Rome, a subject which still seems to have a pretty wide following.

<comment><USER3> Never said it wasn't, hah. I'm a huge fan of ancient civilizations. Was just making a note

</comment></comment></comment></comment><comment><USER5> The most interesting part of the story:

 _But we know almost nothing about their daily lives, in part because most of their writing was recorded on perishable objects like cloth or wax tablets._

Fast Forward 2800 years. What of our Dropbox files, helium filled hard drives, USB thumb drives, DVD-R discs, LTO tapes, etc will survive? Nothing. Because who will be copying all those bits every 5 years into the next latest trend in storage? Nobody.

So all of the insights recorded in the ancient Hacker News community forum will be lost to antiquity. :)

Edit: if perchance this post survives for 2800 years: Hi!

</comment><comment><USER6> It really can't be overstated; prior to this the amount of writing was basically zilch, and it was almost all grave markers. There wasn't really an expectation that would ever change, so this is a hugely pleasant surprise.

<comment><USER7> This contains just 70 legible _letters and punctuation marks_ , less than your comment; so there's not really that much potential for understanding new words.

The largest Etruscan body of text we have is 1200 words, it somehow ended up as wrappings for a mummy in Egypt.

<comment><USER8> I guess it can be overstated.

<comment><USER6> I guess so!

</comment></comment></comment></comment><comment><USER9> If only the Emperor Claudius' dictionary survived.

[https://en.wikipedia.org/wiki/Claudius#Scholarly_works_and_t...](https://en.wikipedia.org/wiki/Claudius#Scholarly_works_and_their_impact)

</comment><comment><USER10> Isn't the real question whether we need to update Unicode now?

</comment><comment><USER11> It doesn't count til somebody finds an Etruscan orgy painting.</comment>


Colorillo: real-time action painting - <AUTHOR> http://colorillo.com/

<comment><AUTHOR> A little side project by nader and me. People can simultaneously draw on the same page.

The Comet part was built using <http://orbited.org/> and <http://www.rabbitmq.com/>

</comment><comment><USER2> here's my drawing: <http://colorillo.com/aaen></comment>


Ask HN: Why most websites violate GDPR even with annoying popups? - <AUTHOR> In order to collect personal data, you need to get explicit consent from the user. We can see such consent requests across the web on any advertisement based websites.
If we check developer tools, we can clearly see that cookies already been set. Google analytics scripts been loaded. It doesn't look as an opt-in for me.
Even if we try to comprehend content of such requests, it'll send the user to hundreds of websites in order to read their "Privacy Policy".
Does it violate General Data Protection Regulation? Because I can't see the way it's not.
Why to use such popups in the first place if you still violate the rules?
Even Google been fined for violating GDPR:
https://www.cnil.fr/sites/default/files/atoms/files/san-2019-001.pdf
> 101. In the two cases described, five actions are necessary for the user to access the information relating to personalised advertising and six for geolocation. <comment><USER2> This kind of laws exist mostly to make people think UE is taking care of privacy and force foreign websites to comply to specific UE laws.

It is the same with IA and public surveillance. Despites UE says it's against facial recognition, countries as France for example are using this and are aiming a national level deployment.

UE just want you to think everything is fine with your datas, but has no plan on enforcing the law. The goal is clearly not to focus on privacy. Creating GDPR experts roles that block foreign countries to push their websites in europe is much more valuable.

Anyway it's impossible to comply with this law. French law forces you to store customers datas for 10 years (invoices can't be destroyed) and ask you to delete EVERYTHING if the customer ask for it. Even if you wanted to, you cannot comply to this law, which has anyway some huge flaws.

It's UE politic bullshit

</comment><comment><USER3> Yes it definitely violates the GDPR. This is the expected outcome of any laws that aren't being enforced.</comment>


The Great Unwashed - <AUTHOR> http://www.nytimes.com/2010/10/31/fashion/31Unwashed.html?src=me&ref=general

<comment><USER2> I've smelled lots of stinky people and never told them they stink.

If everyone acts like me, it makes sense that these people don't get told they are stinky.

<comment><USER3> Business opportunity: "Honestly, do you stink?"

A total stranger and/or scientific equipment rates your aroma. Because in general, it's hard to smell yourself, and taboos can make it hard for your friends and coworkers to give honest feedback.

<comment><USER4> this could be a web app too.. where you could anonymously tell people they stink

<comment><USER5> One of the ideas on <http://failin.gs>

</comment></comment></comment></comment><comment><USER6> I live in central America, so skipping a shower or two WILL get you on peoples lousy side. Hell in here you'd have to shower twice a day as a minimum. Oh and no deodorant? Oh man I've heard that "but I don't stink!" excuse a million times. Yes you freaking do!

</comment><comment><USER7> I don't think that I could skip the daily shower, if only for the fact that it is one time out of the day where you can just let your mind and body completely relax.

PG talks about the ability to find your top ideas in the shower: <http://www.paulgraham.com/top.html>

<comment><USER8> For me, the 5 minutes in the shower substitute for coffee: it helps me feel awake and ready to go.

</comment></comment><comment><USER9> People are so sold on the you are disgusting and smell and only buying product will save you.

Personally I like a shower every day but saying that I haven't bothered with soap or shampoo for maybe the last 5 years. I also don't bother with deoderants. Strange though it may seem people never notice and are happy to sit next to me and give me hugs etc.

Lots of stinky people actually wash very often. If I was smelly I'd do something about it too.

<comment><USER10> You make it seem like this is a non-issue for you, but it looks like you created a new account to comment on this. Are you concerned about this opinion being linked with your real (or better-known) identity?

<comment><USER9> It's my first comment so I needed to think up an account name.

</comment></comment></comment><comment><USER11> _In fact, Ms. Palmer, the chief executive of Osea, an organic skin-care line, often travels to meet business contacts at the five-star luxury hotels where her line is sold. They might be surprised to read that Ms. Palmer, a petite, put-together brunette, showers "no more than three times a week," she said, and less if she hasn't been "working out vigorously."

She contends that a soapy washcloth under her arms, between her legs and under her feet is all she needs to get "really clean." On the go, underarm odor is wiped away with a sliced lemon._

Some of us ought to note that it's not necessary to be the model customer in order to build a successful business.

Personally, I'd have a hard time getting over the cognitive dissonance, though.

<comment><USER8> "On the go, underarm odor is wiped away with a sliced lemon."

A sliced lemon seems like it would be at once more expensive and less convenient than a stick of antiperspirant, though mitigated somewhat if you happen to have a lemon tree.

</comment></comment><comment><USER12> >other gold standards of personal hygiene, like frequent shampooing and deodorant use.

Using deodorant does not have an effect on hygiene. Hygiene is about being clean; deodorant is about being dirty and not smelling like you are.

Being clean is important; if one has sufficient hygiene (in most climates), deodorant might not be necessary - it certainly shouldn't be referred to as a hygiene product.

<comment><USER5>
        Using deodorant does not have an effect on hygiene.
        Hygiene is about being clean; deodorant is about being
        dirty and not smelling like you are.

Many deodorants do fight bacteria to an extent, and if you use an unscented stick, you'll still sweat your own scent without the bacterial funk.

</comment></comment><comment><USER13> Anecdotally, my father claims that a little body odor was much more socially acceptable when he was growing up in north Texas during the 50s and 60s (consider that climate and the typical clothes that an adult would wear out of the house during that time). My mother, meanwhile, is Vietnamese and wears no deodorant at all.

In fact, I was surprised to see no discussion at all of Asian Americans; east Asians generally have fewer apocrine glands and thus less body odor.

</comment><comment><USER14> Most people are used to putting copious amounts of detergent in their hair every day. This makes the scalp's oil production go into overdrive. Stop shampooing and your hair is like an oil slick. This effect takes many months to go away, thus making most of us dependent on shampoo.

<comment><USER15> Exactly. If I don't shower every day, my hair gets really oily. I've often wondered what would happen if I indeed let those months pass and get a more "natural" secretion of oil, but the time it takes it just too much.

<comment><USER14> There are some ways to mitigate the problem during the transition: showering more frequently, furious manual hair-cleaning in shower, natural shampoos, washing with just conditioner.

<comment><USER9> Or just shave your hair off and start afresh ;)

</comment></comment></comment></comment><comment><USER16> Back in high school, I became incredibly paranoid about hygiene to the extent that I damaged the skin on my hands through overwashing, and was paranoid about not touching my shirt/pants after i'd been on a train, between the time when i'd washed my hands and walked to the kitchen table to eat.

At one point I realised it had all gone completely crazy, and during uni I took a conscious choice to relax, and to try and be more 'normal.' This meant observing the way others behaved, when they washed their hands, what they touched, what they considered normal. The diversity of the way people act, and what they think is clean/dirty is startling. I'm still perfecting my own middleground, and the people in this article are doing their best to reconcile so many differing ideas.

The instance in this article that people perceive deodorant-ness as cleanliness is amusing in the least, and nauseatingly smelly for the worst scented deodorants.

</comment><comment><USER17> There seems to be a continuum here: I don't shower everyday during winter, but during summer I have to - otherwise I stink too much.

I guess it depends on what you do, how much physical work you do, where you live, and properly also on your body.

That said - no deodorant means I stink in a couple hours.

</comment><comment><USER18> I stopped using antiperspirant a few months ago. Not for any health benefits, since those seem tenuous at best... just because I never found antiperspirants to work all that well for me, and the way skin feels when antiperspirant is on it kind of weirds me out.

Still use deodorant, though. No complaints. And my wife has certainly been known to tell me "you smell, go shower", so I think she'd be honest in this area.

</comment><comment><USER19> I skipped shampooing my hair for a few days on vacation this Summer and I was shocked at how much better it looked. Ever since, I shampoo about once a week.

I never found a hair style that worked for me until very recently. It turns out that if I just don't do a damned thing to it, it looks awesome.

If you have frizzy, dry hair, try letting it keep its natural oils for a day.

</comment><comment><USER20> "removing some of the good bacteria that help maintain a healthy balance of skin." ... this quote makes me think there's about to be a huge market at Whole Foods for probiotic cosmetics. Anyone for starting a line of kombucha lotions?

</comment><comment><USER21> I stopped using antiperspirant several years ago and just use deodorant. Yes, there is a difference. The former contains aluminum, which is associated with Alzheimer's. And if you're a women who applies this stuff after shaving your armpits, you're really soaking it up.

I suspect the sexual pheromones are impaired more by antiperspirant than deodorant, so you may want to do different things for a job interview than for a date.

As far as showering, why not do it more frequently but without as much soap? Sometimes, I just do the smelly parts :-)

There are many things which are worth doing more frequently than doing perfectly. Cleaning in general is one of them. The AVERAGE cleanliness and avoiding extreme uncleanliness is far more important than getting something perfectly clean on a regular basis.

<comment><USER5> From the article:

        Some [...] are concerned about antiperspirants containing
        aluminum, even though both the National Cancer Institute
        and the Alzheimer's Association don't share those
        concerns.

Antiperspirants are better avoided for the damage they do clothing than the damage they do the brain.

<comment><USER21> I'd rather be safe personally since there's little downside. just because it hasn't been recognized as a risk by some groups doesn't mean eventually become clear that its a risk. I don't need to have the same standard of proof that they do or any at all when I decide to steer clear of something that some day might turn out to be a risk.

</comment></comment></comment><comment><USER22> Print version: [http://www.nytimes.com/2010/10/31/fashion/31Unwashed.html?_r...](http://www.nytimes.com/2010/10/31/fashion/31Unwashed.html?_r=1&ref=general&src=me&pagewanted=print)

</comment><comment><USER23> Utilizing less chemicals, like baking soda for deodorant link: <http://www.marksdailyapple.com/primal-personal-products/>

<comment><USER24> Baking soda is an amazingly effective anti-odorant - I think it works by creating a pH that discourages bacterial growth. Seriously.

</comment></comment><comment><USER25> Please don't post links to pages that redirect me to a login. It sets a bad example.</comment>


Online Pawn Shops Lend Cash Fast  - <AUTHOR> http://online.wsj.com/article/SB10001424052970203518404577094701656317574.html

<comment><USER2> Brick and mortar or online, still basically a loan with a very high interest rate (~36% in this case) while also putting up collateral worth more than the loan.

Only use these services in the most dire of financial circumstances. If you're in a situation where you have to pawn valuables, it may be time to start thinking about getting a normal job to reassess and regroup.

<comment><USER3> I don't know where you're getting ~36%? Borrower in OP had a 3% interest rate, and the article stated an industry average of 10-20%.

With that aside, I don't entirely disagree with your argument.

<comment><USER4> Interest on loans/credit is reported in terms of annual rate, not monthly. This loan at 3% per month is 36% per year. You won't find a credit card in the US at an interest rate that high.

<comment><USER5> I would not be so sure about credit cards. I was in search for basic credit card when just moved to USA to start my credit history somewhere... I was offered credit cards which are:

1) Secured. I.e. I have to have whole credit line amount as a cash on CD with the same bank.

2) Annual fee is 50% of credit limit

3) standard APY 37.5% and penalty APY even higher

4) Credit line - less then $500

And I bet this one was not worst one.

</comment></comment></comment></comment><comment><USER6> If you have to borrow at 36%, you are doing it wrong. You must consider your exit strategies or simply look for a job.

</comment><comment><USER7> I'm reminded of a line from the producers: "Never invest your own money."

I don't see how one could make methodical and appropriate business decisions with the gun pressed to their head of potential financial ruin.

</comment><comment><USER8> I was hoping to read of something truly innovative, like putting up your Steam account as collateral. Oh well.

</comment><comment><USER9> Lend

<comment><USER10> That's a non-error:

<http://public.wsu.edu/~brians/errors/nonerrors.html#lend></comment></comment>


Five Programming Languages You Won't Use by 2030 - <AUTHOR> https://insights.dice.com/2020/02/03/5-programming-languages-you-wont-use-2030/ <comment><USER2> I expected to see PHP there. Its interest has been declining for years.

[https://trends.google.com/trends/explore?date=all&q=%2Fm%2F0...](https://trends.google.com/trends/explore?date=all&q=%2Fm%2F060kv)

[https://insights.stackoverflow.com/trends?tags=php](https://insights.stackoverflow.com/trends?tags=php)

<comment><USER3> Sadly, there's so much LAM _P_ stuff in enterprise including core apps and CMSes, that it's going to hang around like COBOL and FORTRAN zombies forever. Statamic, Facebook, Asana and many other startups with seemingly "lower"-technical investments reach for Linux, Apache HTTPd, MySQL and PHP because they are?/were? as pervasive as JavaScript and HTML. The bigger and older the business, the more complexity and more legacy bits there's going to be... heck, there's still operational DC electric utility companies in SF and NYC for elevators running since the time of Edison & Telsa.

I would bet Java and C# will also hang indefinitely around too.

It takes ballsy but careful technical leadership to standardize and phase-out crunchy legacy systems like mainframes with suitable modern replacements.

</comment></comment><comment><USER3> By contrast, languages worth looking at:

\- Rust: hope for correctness, speed, generics, 0CAs and no GC

\- Crystal: Ruby syntax with gradual typing and compiled performance

\- C, JavaScript: never going away

\- assembly: to know there's no magic box

\- Pony: Orca, the GC every dynamic language should've used

\- TypeScript/Elm: safer JS

\- Haskell: stretch your mind

\- Erlang/Elixir: how application lifecycle, actors, concurrency, errors and GC pools should be done for the most part</comment>


Apple Watch Sales Have Plummeted - <AUTHOR> http://www.dailytech.com/Apple+Watch+Sales+Have+Plummeted/article37429.htm

<comment><AUTHOR> Sales are down to as little as 4,000 a day. They are very good compared to the lowkey Android Watch segment but, with the marketing done for the Apple Watch, they're lower than many expected.

The Apple Watch launch appears not to have affected FitBit sales, with FitBit now outselling Apple Watch again. [http://intelligence.slice.com/tracking-the- fitness-of-fitnes...](http://intelligence.slice.com/tracking-the-fitness-of- fitness-trackers-fitbit-is-in-a-class-by-itself/)

<comment><USER2> I'm curious to see what these charts will look like when watchOS 2 is released, or if it'll even make a difference.

P.S. Good to see you here John.

<comment><AUTHOR> It might change things a bit once the watch itself can actually run 3rd party apps. I think it would help sales a lot for Apple to allow the types of face customizations that Android Wear does and to make a ton of commercial faces available from major brands. Google is now starting to do that with Wear.

PS - Good to see you, too. I've been kicking around HN for a while.

</comment></comment></comment><comment><USER3> Isn't it a bit early for sales to have "plummeted"? The iPod barely sold at all for its first several years and iterations, and it was one of the most successful products of all time. [https://en.wikipedia.org/wiki/IPod#Sales](https://en.wikipedia.org/wiki/IPod#Sales)

<comment><AUTHOR> I think, now that Apple is this dominant cash-flush company that spends a ton on advertising, everyone was expecting an iPad-style sales curve (it went up and up until it started falling off last year) instead of a large pre- order/launch day event and then sales tapering off to not much.

There's also the fact that, at least in the immediate future, the smartwatch category isn't poised to take off like smartphones did. Smartwatches are still kind of interesting but not as big a game-changer as smartphones were. Smartphones were the first time you could do these things on the go all the time. Smartwatches, so far, just help you take your smartphone out of your pocket less often. This can easily change, of course. And I say that as someone with an LG G watch that's planning on messing around with development.</comment></comment>


Airlines eye crueler ways of making passengers miserable - <AUTHOR> https://www.latimes.com/business/lazarus/la-fi-lazarus-airline-seats-from-hell-20190426-story.html#nws=mcnewsletter <comment><USER2> Massive discussion: [https://news.ycombinator.com/item?id=19756921](https://news.ycombinator.com/item?id=19756921)</comment>


Jim Clark on Productivity: Don't Spend Your Day on Social Media - <AUTHOR> http://calnewport.com/blog/2016/05/27/jim-clark-on-productivity-dont-spend-your-day-on-social-media-instead-spend-your-day-building-the-next-big-thing/ <comment><USER2> What if you're not in programming and there's just not that much to learn and study about your line of work?

<comment><USER3> Sorry, a little dense today, what do you do that lets you have 8 hours of social media time that doesn't have much to learn / study about?</comment></comment>


Show HN: The wave method of building color palette - <AUTHOR> https://wavepalette.com/about/ <comment><USER2> Played with the controls and skimmed the article. I'm missing some practical rationale for this, if there is one. Is there a reason to expect that what we find harmonious in sound would apply to color as well? I can't say I find the color palettes generated by the tool particularly appealing.

<comment><AUTHOR> This is an assumption. The color palette is harmonious, in my opinion. When we built the palette only by wavelength, the results were excellent. But theory and computation still require refinement. We are working in this direction.

<comment><USER2> Sight and hearing are completely different. We have high resolution in perception of audible frequencies, but perceive color in three wide bands. This means that resonance and overtones in sound can be perceived in a way they can't with light. The whole premise seems conceptually flawed to me.

It's like attempting to play a chord progression by passing white noise through a three band equalizer.

<comment><AUTHOR> I will try to explain why we take the resulting color. On the example of the same yellow color. We can get it both in pure form and in mixed form (green and red). But for us it will be the same yellow color. And it will also be in harmony with black (for example).

</comment></comment></comment></comment><comment><AUTHOR> Found an bug in my algorithm. Fix on site. The update in the mobile application will be within a week.

</comment><comment><AUTHOR> And one more update.</comment>


Lords urge government to reconsider national ID card - <AUTHOR> http://www.computerweekly.com/news/4500270964/Lords-urge-government-to-reconsider-national-ID-card <comment><USER2> If it can help to look at the neighbours, on my case I don't feel the ID card in France helped to reduce fraud and terrorism (why is that there in the article anyway ?), it just added more bureaucracy, processes and cost I believe.</comment>


Apple Accidentally Approved Malware to Run on macOS - <AUTHOR> https://www.wired.com/story/apple-approved-malware-macos-notarization-shlayer/ <comment><USER2> Since the whole point of notarization is to give Apple the power to revoke malicious binaries on its system after-the-fact, this seems like it works by design, no? Apple quickly revoked the notarization once they were alerted of the malware.

Otherwise Apple would have to scan every single binary submitted for notarization, which then puts a pretty large onus on them should anything slip through.

<comment><USER3> If Apple didn't want scan every binary submitted for notarization then they didn't need to introduce the notarization. They already had the means to revoke malicious binaries after-the-fact by revoking the corresponding developer certificate. The main difference with notarization is that it forces binaries to be submitted to Apple early for inspection in comparison with signing using developer certificate which happens locally.

<comment><USER4> Wouldn't you also want the ability to revoke just certain binaries? Let's say a large company like Microsoft accidentally somehow got malware on their Excel app, you wouldn't want to terminate the dev cert because that would also cancel Outlook, Word, PowerPoint, etc

<comment><USER5> If I'm not mistaken you can create as many code signing certificates as you want, so it makes sense to sign each application with its own certificate. Of course this wouldn't help when Apple "kills" the entire developer account I guess.

<comment><USER6> Nope, you can only generate 5 Developer ID Application certificates for the lifetime of your Developer account. It's a real pain to get another one, I had lost all of mine (didn't have a real Mac, so was using various temporary Hackintosh and KVM installs) and it took 2 months of emails to both Developer support and the Security team to get another one issued [and backed up].

<comment><USER7> It took you five times before you learned to make backups? Woah.

<comment><USER8> That's a bit condescending. The signing stack is very complicated and folks often make mistakes when attempting to back up (export) the correct private key and certificate pair.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Those news about Apple approving malware are so wrong: the notarization is not an approval, it's more like a registration.

It would be news if it was on the App Store, which has a review.

<comment><USER10> > The Apple notary service is an automated system that scans your software for > malicious content, checks for code-signing issues, and returns the results > to you quickly. [0]

Apple seem to be saying that it is more than a registration process. Not passing a human review would be bigger, but it is a review of a kind.

[0] [https://developer.apple.com/documentation/xcode/notarizing_m...](https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution)

</comment></comment><comment><USER11> I'm confused, when did Apple "approve" anything? The notarisation software isn't a review process.

<comment><USER5> What else is the scanning of an uploaded executable than an (automated) review process though? The notarization process wouldn't be needed to implement a "kill-switch" for executables by revoking the certificate (code signing with an Apple certificate was required long before notarization). If anything, the notarization creates an illusion of security for the user which might be worse than an unsigned executable (because at least an unsigned exe looks shady right from the start, but a notarized exe _had_ been scanned by Apple so it's ok to run, right?)

<comment><USER12> > _What else is the scanning of an uploaded executable than an (automated) > review process though?_

It's a pass of checks that might or might not find something.

It's not some official stamp of approval, except to say "those checks passed ok".

<comment><USER13> "Those checks passed ok" is an approval in itself. The notarization process has the outcome of either being approved or being denied. Approved means "officially agreed or accepted as satisfactory.".

<comment><USER14> When a Justice of the Peace notarises a piece of documentation, they are not vouching for authenticity they are only voicing for certain claims made: the document was presented on a certain date, and/or that this copy is an accurate facsimile of the provided original.

Notarisation for macOS similarly only means, "the developer presented us with their application and their certificate of authenticity and we signed it with the certificate that allows macOS to run it without complaining."

There's no attempt by Apple to claim that the application is safe or does what it says on the tin.

Scanning for malware is simply to avoid embarrassing situations me an author/publisher finding they've been compromised by some well known malware.

The outcome of notarisation is that the app has been notarised.

It's like claiming that the outcome of toasting a sandwich is approval or rejection, no the outcome of toasting a sandwich is you have a sandwich that is toasted, aka "toasted sandwich."

You might reject a sandwich which isn't built properly (eg: has mismatched bread slices, is missing contents or smells of dynamite). But toasting the sandwich provided by the customer doesn't mean you actually like it.

<comment><USER13> > There's no attempt by Apple to claim that the application is safe or does > what it says on the tin.

So that isn't part of the notarization process. It still was approved by Apple and thus was notarised.

> It's like claiming that the outcome of toasting a sandwich is approval or > rejection, no the outcome of toasting a sandwich is you have a sandwich that > is toasted, aka "toasted sandwich."

That's disingenuous. If I send a Sandwich to be toasted by Apple and get it back toasted that means the Sandwich was indeed approved by Apple since it has been toasted.

<comment><USER15> If I set up a toasting service and you sent me a ham and cheese sandwich spread with Nutella, you're going to get it back toasted. That doesn't mean that I approve of that nasty sandwich filling though.

<comment><USER13> Then you should not toast it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> Apple created a process whereby applications are run through automated checks for malware in order to be approved for installation on MacOS by the public. The title is accurate. The process isn't perfect, but human review isn't perfect either. One issue this brings up is the false sense of security that review and approval processes such as this create among users.

</comment><comment><USER17> It's astonishing that the developer community is fine with requiring open source projects to pay $99/yr for notarization to run on macOS. Malware authors will happily pay the developer account fees, as seen here, while open source projects are seriously hindered.

It should be possible to verify developers and distribute open source apps without a cost on macOS.

<comment><USER18> $99/year is such a small amount relative to the costs of software development that it's hard to worry about. Meanwhile, there is good value. (The developer resources Apple provides are not free.)

You can argue that Apple should provide developer resources at no cost, but that just means someone else is paying for them or you will pay them in some other way... or do without.

I think at this point in the tech boom we can all understand that when a company gives you stuff of value at no cost there are significant tradeoffs and paybacks. In software development, I think you want most arrangements to be straightforward transactions. The strings attached to no-cost things tend to build up and cause problems, especially if you have success.

Edit: I struck a nerve, but I don't think this should be very controversial. I'll try to take the objections one at a time in comments.

<comment><USER19> > $99/year is such a small amount relative to the costs of software > development that it's hard to worry about

Huh? Some Open Source/Free software have a $0 budget.

<comment><USER18> Software development typically requires at least a computer (a Mac for MacOS and iOS development), internet service, and electricity.

Dwarfing those, though, is the significant time software development takes. For OSS, the time is donated, whether by individuals or by corporate sponsors who sometimes dedicate employee hours to projects of particular value to them. But in either case the donator has to be in a position to afford it, which typically means significant income from other means.

<comment><USER20> > But in either case the donator has to be in a position to afford it, which > typically means significant income from other means.

Even if someone has the time and resources to contribute to OSS, it does not automatically follow that they should be willing to spend said time and resources on notarization (of all things).

Put another way, not every purchase is worthwhile just because you have a million dollars in the bank.

</comment></comment></comment></comment></comment><comment><USER21> They even gave Apple a head start by disguising it as Flash.

</comment><comment><USER22> Notarization doesn't actually review the software. It's just a financial and technical barrier to reduce (not absolutely prevent) the spread of mutant versions of malware.

</comment><comment><USER23> The title is not justified. Nowhere in the text is it proven that it was approved by accident. It might have been an employee acting with malice aforethought

<comment><USER24> Notarization is an automated process. There's no human involved.

<comment><USER23> ah then the title is completely false

<comment><USER24> It's automated approval...

<comment><USER23> ... which is neither approval nor accidental

<comment><USER25> Maybe "erroneously" is a better word than accidentally. That's the word Apple used when apologizing to Charlie Munroe for their automated systems revoking his Apple Developer ID and remotely disabling his published Mac apps:

 _" We determined that your app Downie 4 was erroneously identified as malicious due to invalid logic in our malware detection system. This triggered the revocation of your certificate under Section 5.4 of the Developer Program License Agreement."_

[https://blog.charliemonroe.net/a-day-without- business/](https://blog.charliemonroe.net/a-day-without-business/)</comment></comment></comment></comment></comment></comment>


Google's Go team decides not to give it a try - <AUTHOR> https://www.theregister.co.uk/2019/07/17/google_go_team_try_keyword/ <comment><USER2> As someone who have basically only programmed in python, I'm having a hard time imagining what error handling in go is like.

</comment><comment><USER3> And thanks God for that.

Go has a special design philosophy. It's what makes it go.

If you don't like it, there are plenty of other languages out there for you. Stop trying to change Go into one of them.</comment>


New Technology: Dynamic Resizing of Images - <AUTHOR> http://ajaxian.com/archives/new-technology-dynamic-resizing-of-images The article goes on to say 'Well, it looks like Michael may have gotten his wish as Adobe has hired co-inventor Shai Avidan to their team.' As such, it looks like this promising technology will be integrated into a proprietary application/technology published by Adobe. I think it would be interesting to have this technology in the HTML 5 spec.  This is, of course, assuming it could be done in-browser and doesn't take a ton of processing power to do. Have there been any attempts to include more innovative technologies, such as this, in a W3C recommendation for something as broad as HTML? <comment><AUTHOR> From the article, 'Well, it looks like Michael may have gotten his wish as Adobe has hired co-inventor Shai Avidan to their team.' Unfortunately, that makes it seem like this promising new technology will be lost to a proprietary implementation. It would be great to see something like this in the HTML 5 spec.  This is, of course assuming that it could be done in-browser and isn't very processor intensive to do. Is this something the W3C could possibly consider?

<comment><USER2> more generally, is there any framework to do image processing in javascript?

</comment></comment><comment><USER2> I intend to work on javascript tools to make this happen at DevHouseBoston <http://devboston.pbwiki.com/Dev3Projects></comment>


Ask HN: How do you keep track of CLI programs you install on linux - <AUTHOR> I was reading a post about a CLI program for listening to the radio in the terminal. So I installed it, then realized I had already installed a similar program. Any advice on keeping track of CLI programs installed on Fedora, or any linux? <comment><USER2> I don't have a good answer for your immediate question, but your post made me think, "there must be a way to show all available binaries in the current PATH".

And, of course, there is.

      compgen -c | sort | less

[https://unix.stackexchange.com/questions/60776/list-all- file...](https://unix.stackexchange.com/questions/60776/list-all-files- binaries-in-current-path)

<comment><AUTHOR> Thanks. I hadnt thought of this. The problem is it returns everthing. Im wodering if there is some way to grep and identifier. I guess I should just keep a list in my notes app.

</comment></comment><comment><USER3> I just keep a simple text file list of applications I must have.

</comment><comment><USER4> dpkg-query -l

<comment><AUTHOR> Thanks. I tried this on my Fedora 29 workstation but it returned nothing.</comment></comment>


Estimate the reading time for a page / artile bookmarklet - <AUTHOR> https://gist.github.com/darkliquid/5244870

<comment><AUTHOR> Today I tweeted a suggestion for a lunch time / 10 minute bookmarklet: estimate the reading time for the current page. Someone replied with a basic working example. Thank you internet.</comment>