Elsevier Store - Over 16000 books DRM free for $1 - <AUTHOR> http://store.elsevier.com/coArticle.jsp?pageid=17600012

<comment><USER2> Umm, no. That's not what it said.

They went DRM-free on their books, meaning their collection of 16000 books are now DRM-free.

There is some sale for some books selling for 1$ but absolutely nothing about the entire collection being available for 1$.

This is misleading.

<comment><USER3> There are 100 books on sale for $1 each

</comment></comment><comment><USER4> The watermarks in their PDF files are quite ugly: they put "This book has been licensed to XYZ" on the left side of each page. Since those lines are seperate text objects, they are also trivial to remove. For $1 ugly watermarks are okay, but the regular price of many of those ebooks is more than $100. There must be a better way to do this...

Update: the watermarks are actually in their own layers that can be hidden in Evince. Nice, I didn't expect that! On the other hand, the PDFs lack a TOC.

</comment><comment><USER5> Can anyone link to a single book that has a listed price of $1? On the left- hand side, one can supposedly browse "$1 eBooks by subject", but all of them appear to cost __way __more than $1.

For the hell of it, I went to the "Mathematics and Statistics" section of these supposed $1 ebooks and added _Information-Theoretic Methods for Estimating of Complicated Probability Distributions_ to my shopping cart, thinking that maybe the discount isn't activated until items are in one's shopping cart. Nope! Not only is the ebook still $200 in my shopping cart, but there's no obvious way to remove the item from my shopping cart.

<comment><USER6> Add the ONESALE code to your cart and they change to $1.

<comment><USER5> Ah, that worked. Thanks!

</comment></comment></comment><comment><USER7> bad title, for EU only 100 eBooks for 1 EUR+Tax , not 16000 eBooks : [http://store.elsevier.com/coArticle.jsp?pageid=18100024&loca...](http://store.elsevier.com/coArticle.jsp?pageid=18100024&locale=en_EU)

-Offer valid until November 5, 2013.

-Limit 10 books per order with this offer.

<comment><USER8> In the US, it's also only 100 books that are available for $1.

</comment></comment><comment><USER9> Or you can just go to Project Gutenberg which "offers over 42,000 free ebooks: choose among free epub books, free kindle books, download them or read them online." [http://www.gutenberg.org/](http://www.gutenberg.org/)

<comment><USER10> > Or you can just go to Project Gutenberg which "offers over 42,000 free > ebooks

I am not sure Elsevier's collection intersects very much with Gutenberg.

</comment></comment><comment><USER6> Don't buy the ePub or PDF only versions of books. They do not give you files of either format. They're some weird Adobe DRM that can only be opened in Adobe Digital Editions.

<comment><USER3> I bought three PDFs and they were normal PDF files with no DRM. High quality, nicely typeset. They work in Evince with no problem. One of them was _Low Tech Hacking_ , which is a fun book that talks about lock picking, social engineering, WiFi exploits, and more.

<comment><USER6> It's the ones that are listed specifically as just "PDF" or "EPUB" not the ones labeled "Mobi, EPUB, PDF."

I picked up Low Tech Hacking too. :)

</comment></comment></comment><comment><USER6> This site is bad. You can't order more than 3 ebooks at a time.

</comment><comment><USER11> Couldn't find any book on programming?</comment>


HandBrake 1.2.0 Released - <AUTHOR> https://handbrake.fr/news.php?article=42 <comment><USER2> Great software in term of both quality and active development, and I also have very positive experience interacting with their dev/contributors (reporting bugs etc.).

But not sure why this is on front page today, as it has been released almost a month isn't it?

<comment><USER3> I've always been a little unclear on the barriers between Handbrake and its dependencies. Does Handbrake maintain custom forks/patchsets that get applied to ffmpeg, etc.? I knew Handbrake as a GUI for ffmpeg, and in my research, I have come across one or two things that implied there was something unique about their backend that wasn't yet upstream, but ultimately not much else.

Since you're familiar with the project's development, would you mind clearing some of this ambiguity up for me? Thanks.

<comment><USER4> Handbrake applies about a dozen patches on top of the FFmpeg tree. See them at [https://github.com/HandBrake/HandBrake/tree/master/contrib/f...](https://github.com/HandBrake/HandBrake/tree/master/contrib/ffmpeg)

Note that HB uses a release (4.1) rather than git master HEAD. So, some of those patches may get rescinded with new ffmpeg releases.

Also, it's best to think of ffmpeg as having two parts: the libraries (codec, format, ...) and the API controller which sets up the processing pipeline and manages its run i.e. parsing the commnad line, registering input/output streams, and executing the required operations. The latter for ffmpeg is in fftools/. Handbrake implements its own top-level controller.

</comment></comment></comment><comment><USER5> This is huge: "Added support for AMD VCE and Nvidia NVENC hardware-accelerated encoders". Shouldn't that mean 5-10x increases in encoding speed for your average gaming Windows machine?

<comment><USER6> Yes, but beware that those encoders don't come close to providing the same quality at given bitrate. Unless you're in a huge hurry, you should stick to x264 which will generate a significantly better looking video at the same filesize.

<comment><USER7> NVenc has gotten a lot better over the years. Using the "slowest" preset definitely seems to give the best results

I encoded 1250GB~ of Star Trek: The Next Generation Blu Ray's to 355GB of H.265/HEVC video, and I feel the result speaks for itself [https://i.imgur.com/VklppOK.jpg](https://i.imgur.com/VklppOK.jpg)

FWIW. Running the file through an i7-4790 would take roughly 4 1/2 hours

A GTX 1000 series does it in 4 minutes

<comment><USER8> NVENC on the Turing architecture (RTX2080/2070/2060) is at the highest quality setting comparable to x264 fast. During complex scenes closer to faster. Older architectures (Pascal etc) are worse.

Gold standard for H.264 quality/encode time/bitrate is still x264 medium / slow.

For H.265, the situation is much different. x265 is far from as mature as x264 and frankly the licensing is such a mess that it looks like H.265 might actually lose the war of next generation codec. Instead VP9 -> AV1 seems to be the industry's codec of choice with adaption from Google, Twitch and Facebook. Also note Apple is back on the AV1 page.

<comment><USER9> I like messing around with ffmpeg from time to time, and while I love free formats I have say VP9 is practically unusable for me, it just takes insane amounts of encoding time. I'm unsure what hardware people are using for it, especially when it hardly multi-threads...

<comment><USER8> That's all too true. However it's important to remember that when H.264 started to get public traction (this is back in 2005, when Apple started pushing H.264 movie trailers), realtime CPU encoding was deemed impossible at that point in time. It just wasn't realistic back in 2005 to produce H.264 on a CPU, instead hardware encoders were used to accomplish the task.

Fast forward 10 years and basically every single laptop has hardware accelerated H.264 encoding through Intel's QuickSync FFHW and desktops have it through Nvidia. On top of that the software encoder (x264) is so fast that it's possible to do it in realtime on a CPU.

There is a fair chance that VP9 will see the exact same pattern here. Today CPU encoding is unfeasible, as you've noticed. However Intel is releasing VP9 encoding on their QuickSync encoder with newer CPU's and Nvidia will from my guess have it either 1 or 2 GPU generations from now. Same goes for AV1 here.

It's also interesting too think that the age of these aggressive improvements in CPU speed we've had over the past 14 years (from 2005) might come to an end, where efficiency instead comes from specialised hardware, such as fixed function hardware doing encoding on the chips, as NVENC/QuickSync does today. I don't know if realtime AV1 encoding will be feasible on a consumer grade CPU within the next 10 years, but i sure know it's hardware counterpart will be.

</comment></comment></comment></comment></comment></comment><comment><USER10> One huge issue with HandBrake is the very deep 8bit pipeline limitation, which is showing its age and lack of forward thinking. HandBrake is incapable of properly encoding 10bit streams. Until that is fixed, I had no choice but to find an alternative.

<comment><USER11> What content comes in 10-bit in the first place? HDR is just becoming a thing and I'm pretty sure that's restricted to UHD Blu-rays.

<comment><USER12> A significant amount of content coming from a recording monitor for professional cameras, or in-camera itself, usually in ProRes/DNxHD form. Using an NLE for transcoding is miserable, and ffmpeg doesn't have the most intuitive CLI syntax for people who just want quick buttons to press.

Pro-world also uses transcoders, and not everyone likes/is able to use Adobe for that.

<comment><USER9> I'm surprised people working with professional footage don't have better tools for that but fair enough.

<comment><USER12> Oh, there definitely are better tools out there, I'm just saying where the source material is coming from. Transcoding specific apps are relatively far and few between, so we end up having to use use other apps for this at times. Handbrake, ffmpeg, Apple's Compression (is it still alive?), Adobe Media Encoder, etc. Having to use DaVinci Resolve, Premiere Pro, Medi Composer, etc to create proxies or flip between formats is overkill and time consuming.

<comment><USER13> > _Apple's Compression (is it still alive?)_

Yes. Why wouldn't it be?

<comment><USER12> I haven't been on Apple's site in a long while (or on a Mac). Wasn't sure how Compression and Motion were faring since FCPX came out.

<comment><USER13> FCPX has been going from strength to strength since the release, with a constant stream of big updates, and winning lots of hearts back from the FCPX backslash.

This is also interesting: [https://offthetracksmovie.com/](https://offthetracksmovie.com/)

(Interesting factoid: the same person spearheaded and designed all of FCP, FCPX, and Premiere)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> I have nothing to say but that I am pleased that such a great software is still in active development. I've just updated! Thank you very much.

</comment><comment><USER15> Reading the changelog, one entry catch my eye: "Switched core decoding library from Libav to FFmpeg"

Do anyone know who won the fight of this fork?

<comment><USER16> Considering that mpv[1] recommends FFmpeg I would say FFmpeg won.

I say that because mpv is one of the projects that mostly use parts of FFmpeg internals and also one of the first projects to use modern futures (and deprecate older versions too).

[1]: [https://github.com/mpv-player/mpv#ffmpeg-vs- libav](https://github.com/mpv-player/mpv#ffmpeg-vs-libav)

<comment> m-p-3 YouTube-DL also uses FFmpeg to remux or convert data streams when needed too.

</comment></comment></comment><comment><USER17> Hands down one of the best pieces of software I've ever used. Never had any problems with it, does what it says on the tin.

</comment><comment><USER18> I like Handbrake but wish it has the functionality of MakeMKV too

<comment><USER19> You can if you're on macOS. You can make it to where handbrake can read the Blu-ray.

[http://www.macobserver.com/tmo/article/directly-rip-and- conv...](http://www.macobserver.com/tmo/article/directly-rip-and-convert- bluray-disks-with-handbrake)

<comment><USER20> Will these libraries continue to work after the 60-day mark?

<comment><USER19> I'm unsure. I have a paid license for MakeMKV and it hasn't been an issue for me.

</comment></comment></comment></comment><comment><USER21> Does anyone have recommended settings for H.265 encoding of 1080p, which is comparable in quality to H.264? The former seems less sharp, using default HB presets.

</comment><comment><USER22> Years ago when HandBrake started to ship without deCSS and use non-DVD sources, we were finally allowed to use it at work as a UI for ffmpeg to make mp4 files with x264. Due to lawyers, we were not allowed to use any software that bundled deCSS. No VLC for us, but that was okay with its lack of frame advancing.

<comment><USER23> Couldn't you have forked it, removed the deCSS code and used that internally? It's opensource after all, same with VLC.

</comment></comment><comment><USER24> Great software. Just wish I didn't need it so often.

</comment><comment><USER25> I loved handbrake but haven't used it in a long time since I haven't bought a DVD/blu ray in a long time.

<comment><USER26> Not that _I_ would do this, but I've heard that sometimes people rent DVDs/BDs from public libraries and then rip them..

<comment><USER27> Yeah, but who would do that? There's no such thing as a pirate; those are stories to scare little children and media company executives.

</comment></comment></comment><comment><USER11> Lovely piece of software.</comment>


How to set Google chrome in full-screen and all the rest not front of it? - <AUTHOR> I have a KIOSK in Railway, where public users are using the KIOSK to print Train tickets. On the kiosk it is using Windows 8.1 Pro and Google Chrome.
1) Boot:
When the Windows 8.1 Pro starts it execute the batch script from startup Please see: http://i.imgur.com/UWMKMru.png
2) script:
timeout 1 > nul @start /b cmd /c "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=c:\lummens timeout 10 > nul @start /b cmd /c "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --kiosk
3) Problem:
as you can see the batch script is set to first execute a chrome which is not in kiosk mode, but after 10 second later google chrome another instance is launched to make it full-screen. both executes but the biggest problem is. the first chrome instance always comes on top of second chrome instance which is executed as --kiosk
How can i execute the first chrome instance always behind the last chrome instance please?
NOTE: when i launch manually the batch script it always works. but when i do windows reboot , it is very random and not stable, often the first window of chrome remain in front of the last window of chrome which is launched as --kiosk
Please advise. <comment><USER2> Why not aim it at a shortcut that has --kiosk in the path already? C:\Users\User\Desktop\shortcut.lnk instead.

<comment><AUTHOR> I did. But Opera still stay on top, how to minimise them by hook or crook?

</comment></comment><comment><AUTHOR> Using shortcut.lnk will make the first instance behind the last instance?</comment>


Sononym: Machine Learning Sample Organizer for Musicians - <AUTHOR> https://www.sononym.net/ <comment><USER2> I have the hardest time just coming up with names for the sounds I generate. For whatever reason it never occurred to me to skip names (or just use like guids or something) and find files by traversing a similarity graph.

</comment><comment><AUTHOR> ( From the makers of Renoise: [https://forum.renoise.com/index.php/topic/51554-sononym- samp...](https://forum.renoise.com/index.php/topic/51554-sononym-sample- browser/) )

</comment><comment><USER3> I recently tried to find some information on how to algorithmically calculate a delta distance between audio samples. It was like hunting for a needle in a haystack of papers that were all focused on copyright infringement detection.

</comment><comment><USER4> Honestly, this is awesome. Organizing things like sounds can be such a chore.

<comment><USER5> Do you currently use a program to organize sounds now?

<comment><USER4> very elaborate file names.

</comment></comment></comment><comment><USER6> I've wanted something like this so bad for so long! It's one of those things that just doesn't quite justify taking my own time to build over the current way of doing it.

The only thing is when I am adding new samples to my library, I play over each one to make sure they are a high enough quality. And if something really catches my ear, I'll add a favorites tag to it as well. So I'm not sure what my sound library would be like today if I didn't do any of that.

</comment><comment><USER7> This is going to be so useful. Can't wait.

</comment><comment><USER8> I know I need to dive deeper but...will this work for whole songs? The context being a collection of music and DJ'ing. Having something to make me relevant suggestions would be fan-f*ckin-tastic.

<comment><USER9> According to here, no: [https://www.reddit.com/r/WeAreTheMusicMakers/comments/8irsik...](https://www.reddit.com/r/WeAreTheMusicMakers/comments/8irsik/sononym_machine_learning_sample_organizer_for/dyurf00/)

"We are focusing on understanding loops and one-shots, as these types of sounds represent the vast majority of what sound designers and musicians are dealing with."

But Beatunes is attempting to do such a thing. Pretty scary UI though ;-)

</comment></comment><comment><USER9> Will it work with music: the description claims it's focused on musicians and sound-designers. Special needs there, for sure

</comment><comment><USER9> sononym-dev answering questions on reddit: [https://www.reddit.com/r/WeAreTheMusicMakers/comments/8irsik...](https://www.reddit.com/r/WeAreTheMusicMakers/comments/8irsik/sononym_machine_learning_sample_organizer_for/)

</comment><comment><USER10> I'm excited to try this. Organizing samples, especially new ones into your existing library is such a pain.

</comment><comment><USER11> It would be sweet to see something like this integrated into a sample service like Splice or Noiiz.

</comment><comment><USER12> Germany and audio software. Name a better duo.

<comment><USER9> Klang, Ton, Schall, Geräusch... it's like Eskimos and Snow!

</comment></comment><comment><USER13> If they expose an API I will use this for sure!

</comment><comment><USER14> Very cool. I love seeing stuff like this.</comment>


One (programming) language for the rest of your life. Which one? - <AUTHOR> If you had to pick one single computer language to use from now until the end of time, which one would you pick? What qualities are you looking for? What are your programming goals?<p>If you like, you can specify a platform or libraries if they colored your choice of language. <comment><USER3> C99. It can do everything I want, and while there are some tasks for which it's not the ideal language, I can write my own libraries to supplement the existing ones.

If I'm going to be stuck with only one language, I'd rather use a language where some things are harder than in other languages, rather than a language where other things are simply impossible.

<comment><USER4> Agreed. Not to mention that you can just write your own flavor of any language you choose (most are already written in C). Plus, you've got til the end of time, so the fact that it'll take a few years to write the first one shouldn't be a problem.

</comment></comment><comment><USER5> C++. That way, I'll look forward to my death.

<comment><USER6> hahahahahaha :D made my night! thanks!

</comment></comment><comment><USER7> Lisp, because it can consume any other language's functionality, which means that I don't have to choose.

<comment><USER8> Yeah, but if you use c or c++ you can implement a Lispinterpreter over the weekend, so you'd have both. The other way round it's rather hard.

<comment><USER9> _The other way round it's rather hard._

The hardest part would be finding a reason to do that.

<comment><USER10> The reason would be to write a Lisp interpreter.

<comment><USER11> You missed the "other way round" part.

<comment><USER12> No, he did not. The reason to write a C compiler / interpreter in Lisp is that so you can then write an Lisp system on top of C and show off your 'uber-haxor skillz'.

</comment></comment></comment></comment></comment></comment><comment><USER13> What an inane question. That's like asking Thomas Edison which brand of telegraph key he'd like to use for the rest of his life.

<comment><USER14> Bad example. People who send morse code (there are still a few) seem to care a lot about which they use. And since Edison was famous as an an extremely fast telegrapher, he'd probably be especially picky.

<comment><USER13> Oops, you've misunderstood me -- my telegraph post was, dare I say it, too telegraphic.

Yes, Edison (like all other telegraphers) must have cared a lot about telegraph key design, just as great hackers care about language design. I did not mean to imply otherwise.

What I was _trying_ to say is that it's inconceivable that a hacker of Edison's caliber would use a single technology for his entire life, even in the (already extremely hypothetical) absence of external factors. That's because, within a handful of years, _the hacker changes the tech_ to the point that it's no longer the same thing.

I would suggest that Edison not only cared a lot about telegraph design -- he cared so much that he took every aspect of the telegraph apart to see how it could be improved, and eventually developed the Edison telephone ([http://encarta.msn.com/media_461551270_761563582_-1_1/Thomas...](http://encarta.msn.com/media_461551270_761563582_-1_1/Thomas_Edison_Telephone_from_1911.html)) along with a vast raft of other tech that was unknown in his youth.

What makes the question inane is that it assumes that "now until the end of time" is equal to or less than the lifetime of a computer language. It's not. Computer languages evolve so fast that nobody has _ever_ stuck with one language throughout their lives. If external forces don't rewrite your language, you eventually rewrite it yourself -- you develop a bunch of libraries and restate problems in terms of them. And by "eventually" I mean "in weeks, rather than months or years" -- Steve Yegge rebuilt Rails in Javascript in less time than it took me to write this stupid post.

I suppose I could try to claim that I would be happy to be a Lisp programmer until the end of time. When someone accuses me of cheating by using Arc (which I hope to do, someday), I'll just claim that it's really Lisp. When someone needs a device driver written, I'll just claim that x86 assembly is really Lisp -- all I need to do is write the assembler in Lisp, yes? Or should I go for broke and claim that my "eternal language" is the native language of a Turing machine? It'll take me a long time to get back up to, say, Rails, but I've apparently been sentenced to spend _the rest of my life_ at it, so why not bite off something challenging?

<comment><USER15> computer languages evolve so fast? all languages used today are at least 10 years old

<comment><USER13> I wrote some Java code back in 2000, but then I stopped using the language. I picked it up again in 2003 or so, and found that it had changed.

Today, Java has generics, which I haven't studied and therefore don't understand. I believe the consensus is that you can't really be a Java programmer without understanding generics, so -- oops! -- I'm not a Java programmer anymore. My knowledge is oh-so-2003.

Tomorrow Java may get closures -- the debate rages. If it does get closures, all the Java programmers will have to update their skills or fall off the wagon.

The other day I heard a guy on a podcast talk about his disastrous attempt to test-run Drupal 3.0 (god knows why). That software is about three or four years old. Apparently it doesn't work anymore. PHP and/or MySQL and/or Apache have evolved right out from under it.

The _names_ of all the programming languages used today are at least 10 years old. Just as the _name_ of the English language dates back to Chaucer's time and before. Have you tried reading Chaucer?

<comment><USER15> never crossed with any of his writtings

the thing is that innovations in languages don't happen tomorrow. Though when they do happen, an experienced progammer shouldn't have any difficulty in adapting in a new feature of a language that is added to supposly to add value.

Since you reffered to natural speaking languages its obvious that it seems natural, programming languages to take characteristics of other languages as it happens in real life that they take words from each other.

</comment></comment></comment></comment></comment></comment><comment><USER16> javascript: it's "like scheme with syntax", necessary anyway for cool web apps, expressive, has closures, lexical scoping, and with Rhino you can access any of the Java libraries (without writing Java code) and run it efficiently on any platform (for server-side or desktop apps). It's really the do-it-all language.

<comment><USER17> I think (and hope) you are right. Its not to ugly either (I guess depending on how you "grew up"). Lisp for people who can't program without braces ;)

<comment><AUTHOR> Oliver Steele has written a great functional programming library that adds list comprehension and textural/literal lambdas to Javascript.

I keep meaning to play with that, but I always seem to have something else (like work) that I need to worry about.

Analogy alert: I kinda see functional programming as like giving up smoking. It may hurt a bit at first, but it's much better for you in the long run, providing you don't annoy everyone by continually letting them know...

<comment><USER17> Man I wish I had a name like "Steele".

"Guy Steele" - now that is a name that demands greatness just by the force of the name.

<comment><USER14> _Man I wish I had a name like "Steele"._

So did a famous Soviet political leader.

</comment></comment></comment></comment></comment><comment><USER18> C#

with C# compilers running on almost every platform. It can do old things like c & c++ can, and it has advanced string and memory management set up by default. c# has more control and ease of use than any other language i have played with.

If i need to consume a DLL i can do it through old ways like C methods, OLE, COM, or through new managed methods.

other languages are nice, but if i had to use just one from now and to forever, C# is the only language i see that has the ability to span the gap. Ruby, PHP, Perl, Lisp, erlang, Java, smalltalk, etc... do not seem as flexible across all of the needs to program both software and hardware.

C# can be used to program Dirext X, and OpenGL, it can be used to hack your GPU and to program your portable device. Mono runs on linux and so you can use C# in any embedded app.

</comment><comment><USER19> Lisp - for the sheer power and enjoyment of using it

<comment><USER20> If you give someone Fortran, he has Fortran. If you give someone Lisp, he has any language he pleases.

<comment><USER21> But as coffeeaddicted said above: if you give someone C/C++, he can implement a lisp interpreter easily and then have any language he pleases..

<comment><USER20> Given Lisp, I can implement a Lisp interpreter easily:

        (loop (print (eval (read)))

<comment><USER21> Yes, but can you write a standards-compliant C++ compiler?

<comment><USER22> Easily, because in bizarro-one-language universe, I also have an infinite supply of monkeys. Hah!

<comment><USER9> Put one monkey to work on C++ and assign the rest on Hamlet. Oh, and make the C++ one use a typewriter too.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> If you had to pick one single tool to use from now until the end of time, which one would you pick?

 _Choices:_

Hammer, Drill, Screw Driver, Saw.

<comment><USER24> Poor analogy. These are, for all intensive purposes, tools for mutually exclusive tasks. Programming languages are in general for the purpose of writing programs. While they may different slightly in capabilities they are for one purpose. A "better" (IMHO) analogy along those lines would being choosing a handsaw, bandsaw, circular saw, or kitchen knife.

<comment><USER25> No insult intended: [http://www.urbandictionary.com/define.php?term=For+all+inten...](http://www.urbandictionary.com/define.php?term=For+all+intensive+purposes)

<comment><USER24> :-O Yikes. How embarrassing. No insult taken. I have pointed this out in other's writing. Funny how easy it is to slip and type mistakes like this when you're rushing out comments. Good catch...

</comment></comment></comment></comment><comment><USER17> Lisp - its not really a language to much as a meta tool to allow you to build DSLs to solve your problem.

</comment><comment><USER26> Haskell - If I was in some timeless eternity I wouldn't have to bother with monads. Otherwise if I get bored I might hack together a big bang with Lisp.

<comment><USER27> As tempting as lisp is, I think i have to throw my hat in the Haskell ring.

Lisp lets me turn pure thought into code, as it turns out a good percentage of my thoughts are pretty crappy. Haskell fixes that.

</comment></comment><comment><USER28> Blub. Why choose a lesser evil?

<comment><USER20> Whatever language, I just hope it comes with decent documentation.

<comment><USER28> Blub's is the best, as far as I can tell.

</comment></comment></comment><comment><USER29> Since the question specifically includes libraries, I would pick the language with the best selection of useful libraries, and the largest community of users actively creating new ones. For my money, that would be Java -- even with all eternity to write my own libraries, I'd prefer have the option of not doing so, so that I can focus my time on the areas where it is important to roll my own.

</comment><comment><USER30> If I could only work with one language, then I'd have to say Forth. While I don't know this one nearly as well as any of the others, this one allows you to work at the assembly instruction level up through the level of abstraction of languages like Python/Javascript. Lisp on LispMachine hardware would offer you the same sort of advantages.

The C and D languages look like they might also be fairly good choices. Everything else doesn't seem to give you the flexibility to go down to the metal while also having the ability to move up to much higher levels of abstraction.

</comment><comment><USER31> Coldfusion. Name another language supported by three commercial vendors plus a fourth open source version (smithproject.org)? My goal is simple - <USER2> application development.

<comment><USER32> "Name another language supported by three commercial vendors plus a fourth open source version."

I'm sure you could say the same about C++ and Java, and probably a bunch of other languages. But that doesn't really say much about the language itself, only who uses it.

<comment><USER33> Not to mention Lisp, which has no fewer than 8 commercial and 10 open source implementations listed here:

<http://wiki.alu.org/Implementation>

But you are certainly right that the number of implementations is irrelevant, as long as there is either one good open source one or 2+ commercial ones.

</comment></comment></comment><comment><USER34> Do you have to stick with a single implementation (once you choose MRI you couldn't switch to JRuby) or just the same language?

Probably Lisp or some other highly growable language.

</comment><comment><USER35> python

<comment><USER36> cpython, jython, IronPython, pypy or stackless? :)

<comment><USER37> Those are implementations not languages, the language is the same language.

And when people don't mention a specific implementation they usually mean CPython.

<comment><USER12> You are right. Partially. As far as I know Stackless introduces some new concepts.

</comment></comment></comment></comment><comment><USER38> I was half tempted to pick Python, but I suppose my true answer would be C.

</comment><comment><USER39> Lisp.

</comment><comment><USER40> Verilog. You software weenies don't seem to understand that your fluffly abstractions need to run on real h/w. So I'd rather have control at the lowest level.

</comment><comment><USER41> I am still learning many things about python but I think it would be the one language I would choose for the rest of my life.

</comment><comment><USER36> Don't Care! I know I'm going to cheat! :)

</comment><comment><USER23> What happens if I don't pick anything?

<comment><AUTHOR> You will be forced to maintain poorly written C++ for the rest of your days.

Quote from some guy at Continental. "It wasn't a memory leak, it was a memory faucet!"

<comment><USER42> The nice thing about C++ is that memory leaks are easy to fix. Valgrind is a pretty bad-ass tool.

In garbage collected languages leaks can be very hard to track down. And they do happen from time to time.

</comment></comment></comment><comment><USER43> C# (with MS .NET on Windows, ASP.NET on the web, and Mono on *nix)

</comment><comment><USER44> ASM

because if I don't have ASM, I'm not going to get much of anything else done.

<comment><USER45> I was going to chose this as well because eventually I'll want to interact with new (and exciting) hardware. I think that's the overriding concern.

For instance, no matter how much I love PLT-Scheme, Haskell, etc if I chose one of them there'll come a time when I want to code on a new piece hardware and won't be able to because I cannot access the underlying memory registers.

But if you have to choose which hardware specific asm then that's even harder...

<comment><USER46> That's easy: Motorola 68000

</comment></comment></comment><comment><USER47> are you trying to start a religious flame war on yc news?

<comment><AUTHOR> I don't know about Flame War, but I think it's an interesting question.

Personally, if I had to choose one language right now, I'd probably choose Javascript, simply because the syntax is easy for a PASCAL/C/C++ user, and it still manages first-class functions, much like my first real (non-BASIC) language, which was PS-Algol (think Java reflection, first class functions, easy persistence, but in 1987, not 1997!)

Once Javascript gets a mainstream in-browser JIT, it may well become even more my language of choice than it is now.

Other than Javascript, Rich Hickey's Clojure, is a pretty good candidate. I love the syntax, and being able to work directly with the JVM libs.

</comment></comment><comment><USER31> @kajecounterhack

Maybe you should tell the four vendors that keep producing new versions that Coldfusion is dead.

As to other languages/frameworks - did I mention that it needs to scale as well?

</comment><comment><USER48> Python till I die baby!! And then some...

</comment><comment><USER49> Java, because I don't have a trust fund.

</comment><comment><USER50> python in this world, lisp in paradise

</comment><comment><USER51> Erlang.

</comment><comment><USER52> @rmason -- coldfusion?

its DEAD.

quick application development...hmm. Some other language + framework would be more like it.

I like C++ or lisp.</comment>


Docker Part One: Containers - <AUTHOR> http://www.theregister.co.uk/2014/11/28/docker_part_1_the_history_of_docker/ <comment><USER2> I have read a lot about Docker now. Here and elsewhere. I even have been to Docker talks in my town. Still I do not get what the usecase is.

Everytime I ask that, I get the answer "When you want to run applications seperated from each other in their own environment". Yeah, I get that. But what is the real world use case for that? Who wants to do that? Now I will get answers like "Everybody who wants to run applications in containers" :) Yeah ok. But who? Do bloggers need Docker? People who run onlineshops? Would Ycombinator benefit from running Hacker News inside a Docker container?

<comment><USER3> Imagine you have 20 services that need to run with your website ( 5 database daemons, 5 nodejs apps, 5 ngnix instances, 2 dns servers, 2 mail smtpd daemons, 1 git repository ).

Your infrastructure consists of 5+ virtual servers that host your services. Each virtual server might be database only or db + dns or web + dns or ... you got the point.

What docker allows you to do is to isolate all those 20 services in separate containers that if any of them is being hacked your attacker will end up compromising only that service without any access to the main server.

What docker allows you to do is to version control the configuration and the container for the different services in a way that if you need to reinstall a service ( redeploy your app ) it is less of a hassle and since it is containeraized you will not be compromising your other services while doing that.

etc.

<comment><USER4> So you have 20 containers each running their own version of the OS? Don't you have to spend a lot of time keeping all of those up to date with OS/library/app updates?

It seems like the kind of thing that makes sense if you have a big deployment anyway, so you might as well hive stuff off, but makes much less sense if you're a "small" shop.

<comment><USER5> No. The containers share the same OS.

<comment><USER6> Can you make changes in the underlying OS image, and those changes are directly visible in the application images, without restarting said applications?

</comment></comment></comment></comment></comment><comment><USER7> I gasped at this assertion: "Virtuozzo, by the way, is still the best container system available. Unfortunately, it isn't open source, and that means you have to pay if you want to use it. Virtuozzo, by the way, has the distinction of being the only halfway decent container solution to (currently) run natively on Windows."

I don't even know how to process a comment like that about Virtuozzo. The fragility of Virtuozzo and OpenVZ is infamous. We get more support queries about our software running on OpenVZ and Virtuozzo containers than all other virtualization types combined (our stuff runs on a few hundred thousand hosting servers, we have a really good sample size).

For years, whenever we get a mysterious "this thing stops for no reason" or "this error doesn't make any sense" or "sometimes it works and sometimes it doesn't" support request, literally our _first_ clarifying question is, "Is this an OpenVZ or Virtuozzo system?" It is, frankly, broken by design, with regard to memory allocation.

<comment><USER8> I don't know when they changed from "user_beancounters" to "VSwap" but VSwap fixes all these problems. It is also a problem with FreeSwitch (the VOIP server software, like Asterisk). Under VSwap-enabled OpenVZ there is not 1 problem.

<comment><USER7> I wish they would tell their customers. We have not stopped seeing these types of problem reports. And, I've heard that the problem was solved numerous times in the past, so I'm hesitant to believe that it is finally fixed now.

</comment></comment></comment><comment><USER9> I don't think this is a very good article in general and especially not for HN where Docker has been covered in detail already. (The history of the LXC vs. libcontainer split is pretty far inside baseball and not even that interesting IMO.)

Speaking of Docker, I did find some interesting repos today: [https://github.com/socketplane/socketplane](https://github.com/socketplane/socketplane) and [https://github.com/ibuildthecloud/only- docker](https://github.com/ibuildthecloud/only-docker)

<comment><USER10> These are definitely exciting times for container networking!

</comment></comment><comment><USER11> One of the things I've found interesting about rapidly popular opensource solutions in the last 1-2 years is how quickly venture cap funding comes in and drives the direction of future development.

Docker has a whole ecosystem of bolt-on github projects that fill-gaps that the Docker project hasn't had time themselves to fill because they are too busy organising conferences, withholding features until the keynote of said conference, and working out how to spend the millions of dollars on future development.

Even the gap-filler github projects are getting VC funding (see [http://weaveblog.com/2014/12/03/announcing-weaveworks-and- ou...](http://weaveblog.com/2014/12/03/announcing-weaveworks-and-our-series-a- funding/)). Weave will either become the standard networking stack, or be made irrelevant by an in-tree featureful implementation.

So Docker are on this tightrope trying to innovate whilst avoiding stepping on the toes of their VC-funded 'partners', so their response was simple-core with a plugin framework for partners to integrate into. Anyone else picturing fragmentation in 6-12 months time?

</comment><comment><USER12> I reached part 3 and still don't know a thing about Docker other than it's history and how its the best thing since sliced bread and it's amazing that it is what it is because its amazing.

Does part 4 finally deliver on the promise in the title?

<comment><USER13> Bit of a personal plug, but I've put together a screencast about Docker, and people seem to think it is helpful at giving an overview @ [https://sysadmincasts.com/episodes/31-introduction-to- docker](https://sysadmincasts.com/episodes/31-introduction-to-docker)

</comment></comment><comment><USER14> I have a more general question for you: I am a senior developer who is starting to figure out devops because I need to deploy two different products we built. I have limited Chef and Ansible experience and pretty good Unix skills. Should I start out with Docker or am I missing some crucial pieces I should go through first? The use case is "media processing services" in one case, and a sports betting game in the other.

<comment><USER15> I used puppet (masterless) in a small company, and in my new company I'm using Ansible and Docker. Puppet and Chef are great, but they're overkill unless you have large infrastructure. If there's only one of you doing 'ops', you don't have large enough infra (in my opinion). Ansible is easy to configure and learn, and doesn't wrap you in dependency hell like puppet can.

I would avoid Docker until you have a use-case that Docker solves for you. Use your preferred distro's packaging technique. It can be a bit of a pain (.deb in particular) to start with, but once you're familiar, it's portable and manageable with your OS's native tools. Things 'just work', and don't need an agent to be installed and kept up-to-date. If something goes wrong, it's in your OS's standard logs, not some strange arcane location. And most importantly, you have a bigger pool of interneteers to help learn from and troubleshoot with. I can't complain about the Docker IRC channel, good experience there, but there's still fewer of them.

If you are a .debber and want your own repo, check out Aptly, which makes life much easier than previous repo software on offer. [http://www.aptly.info/](http://www.aptly.info/)

TL;DR: Docker is 'another _thing_ to learn', and it's not trivial. Put it off until it solves a problem for you; there's plenty of other stuff to get up to speed with.

</comment></comment><comment><USER16> I'm sorry, if you cannot see the benefits to running programs inside a container, then you have been reading the wrong article. I have been using FreeBSD jails for years, and now on Linux deployments, docker as well.

Lets say you have a server, it runs a mail server, database server, web server (proxy) and application server.

If they all run without containers, if one service gets compromised, and a root exploit is found, that's it game over.

If you have a service that starts eating up memory, with proper configuration, it can't overload the root server. Basically each jail/container can only see itself and any exploits cannot effect the host system, or other jails/containers (when configured correctly).

It also allows for easy expansion, when one jailed/containered service gets to large for the server, just move it to another server easily and quickly.

It also allows for speedy deployment, with docker you can bundle everything on your laptop, create an image, then ship this straight to an external host like EC2/Goole Cloud (for example), with the addition of pre built containers for Django/Rails/Postgres/MySQL etc, it creates a ready working environment for developers who might not be to hot on configuring systems. The "shipping" ability to docker is a by product of the container which is another added benefit. There are loads more features than what I have stated here, this is just a very brief summary.

<comment><USER17> > if one service gets compromised, and a root exploit is found, that's it game > over.

For root exploits isn't Docker toast as well? I haven't followed Docker in much details, but does Docker actually promise that commands run as root will be contained?

<comment><USER6> There is a certain level of isolation for root even inside containers, but in the case of a privilege escalation exploit you would most probably achieve "real" root even if inside a container.

</comment></comment></comment><comment><USER18> Can someone could explain why "If you use Puppet, chances are you love Docker ..." (from Part 2)?</comment>


No, Section 230 Does Not Require Platforms to Be "Neutral" - <AUTHOR> https://www.eff.org/deeplinks/2018/04/no-section-230-does-not-require-platforms-be-neutral <comment><USER2> > _It's foolish to suggest that web platforms should lose their Section 230 > protections for failing to align their moderation policies to an imaginary > standard of political neutrality. Trying to legislate such a "neutrality" > requirement for online platforms—besides being unworkable—would be > unconstitutional under the First Amendment._

... [https://en.wikipedia.org/wiki/Section_230_of_the_Communicati...](https://en.wikipedia.org/wiki/Section_230_of_the_Communications_Decency_Act)</comment>


The Programmer Hierarchy [pdf] - <AUTHOR> http://lukewelling.com/2006/08/03/java-programmers-are-the-erotic-furries-of-programming/

<comment><USER2> Still funny but seriously needs to be revised. For example: Haskell (off to the side unattached to anything because it is its own little world), Groovy (just above Java), Scala (above Perl), Obj-C (diagonally above C), Erlang (*-Ruby developers consider it better than Ruby, but Erlang developers are humble enough to place it below Ruby, but not humble enough to place it any lower), Eiffel (somewhere between Groovy and OCaml), OCaml (off to the side above Perl, perhaps above everything, but Ruby, Scala, Erlang would be above it).

</comment><comment><USER3> So old I think it came pre-installed on the internet.

<comment><USER2> Written by Al Gore, then?</comment></comment>


"Is It Time for Swift?" with Ben Sandofsky - <AUTHOR> https://realm.io/news/ben-sandofsky-time-for-swift/ <comment><USER2> Along with the ARC transition, the move from PowerPC to Intel was incredibly smooth (relatively). But much of the work for that was done long before the change actually happened.

Both of those changes required very little from developers. Obviously a new language is going to take much more. The biggest challenge with Swift is keeping the programming interface simple. While it gets rid of the @ signs that people stumble over in Objective-C, Swift didn't really reduce the amount of learning required to create a program. Rather, it seems to be everyone's new favorite place to talk about exotic programming concepts, which results in terrifying blog posts like this one: [https://developer.ibm.com/swift/2016/01/27/seven-swift- snare...](https://developer.ibm.com/swift/2016/01/27/seven-swift-snares-how- to-avoid-them/)

I wonder how long it will be before someone like Douglas Crockford shows up with Swift: The Good Parts.

<comment><USER3> I think the major advantage for new developers isn't the level of conceptual complexity but much clearer and cleaner syntax, which also happens to be more inline with most other modern popular languages. That's a major advantage.

</comment></comment><comment><USER3> I often hear the argument that "Swift is changing too fast, let's wait until it settles down" but the changes so far have really been minute. It's not even a factor at all for us.

Taking our app (40 kloc) and our SDK (4 kloc) from 1.2 to 2 took us less than 3 hours. Almost all changes were correctly migrated by the built in migration tool.

The Bro app couldn't possibly take more than 15 minutes.

<comment><USER4> Considering the talk didn't show any screenshots, describe all the specifications, or even provide a line count, where are you getting 15 minutes from?

<comment><USER3> From the fact that the app is a clone of Yo.

<comment><USER4> It isn't a clone of "yo." It's based on it. It has a superset of its features.

I'd go into detail, but my point is your tone of authority when you have absolutely no idea what you're talking about.

<comment><USER3> I'm sorry about my tone, but my point is that even our sprawling app was converted almost automatically. The breaking changes are very few, and even fewer of them require any action on the part of the developer (the only exception I can think of is error handling). It can't possibly take a week to migrate Yo, unless you spent months writing it.

</comment></comment></comment></comment></comment><comment><USER5> This was very insightful. My director has been asking why we're not porting to swift yet. I now got the answer.

..."BECAUSE OF YOUR TOXIC DEADLINES".</comment>


Show HN: PLEN portable robot and software - <AUTHOR> https://medium.com/@PLENGoer/making-robots-from-scratch-55fdcf6f2bb9 <comment><AUTHOR> This company [https://plen.jp/](https://plen.jp/) has made robots before. They are running a kickstarter for an interesting new project. It's a programable portable camera/speaker combo with some interesting UI.</comment>


Secure Email Based  in Switzerland - <AUTHOR> https://protonmail.com <comment><USER2> One downside of protonmail is that they don't provide access via IMAP, so once you migrated it would be hard to back up your emails or leave them for another vendor.

They apparently now have a beta of IMAP access though: [https://protonmail.uservoice.com/forums/284483-feedback/sugg...](https://protonmail.uservoice.com/forums/284483-feedback/suggestions/7180858-imap- smtp-tls-support?tracking_code=017f0a56f118f5c74289c5ba64cb3281)

<comment><USER3> And I don't understand how they manage to make it "easy" for the user to make both their "special" emails encrypted by the user and unreadable to their server and at the same time allowing users to send the "normal e-mails" to other e-mail servers/users that have to be unencrypted.

Anybody knows?

Edit: can fully unencrypted e-mails be sent and received via their services at all? And how did they solve that?

<comment><USER2> It's described here: [https://protonmail.com/support/knowledge-base/encrypt- for-ou...](https://protonmail.com/support/knowledge-base/encrypt-for-outside- users/)

Apparently, you have to have shared a password with the end recipient through some other channel before you send them an email.

</comment></comment></comment><comment><USER4> Unless email is E2E encrypted from all the sources I care about like banks and stuff I don't see the point.

</comment><comment><USER5> My question is always the same (as a protonmail user): why don't they open- source their android app? There aren't reasons not to do so. For example I wanted to improve their app adding a feature in the past, but I can't

<comment><USER6> Because then you could open a protonmail competitor easier.

</comment></comment><comment><USER7> While they are hosted in Switzerland they are staffed from the US iirc so if you are worried about state survielence don't count on geography to save you.</comment>


Eclipse 3.7 Unleashed - <AUTHOR> http://www.eclipse.org/

<comment><USER2> Highlights:

      * Better Maven integration. Includes starting Maven builds and maintaining pom files.
      * Jubula provides automated functional GUI testing for Java and HTML.
      * Xtext 2.0 makes it even easier to create domain specific languages.
      * EGit 1.0 provides tight integration with the Git version control system.
      * WindowBuilder, a popular GUI builder, is now open source and part of Indigo
      * Drag to Install support with Eclipse Marketplace Client.

</comment><comment><USER3> Good, I was worried I had too much RAM.</comment>


Ask HN: Has anyone else been booted from PH for being "not quite a product?" - <AUTHOR>

We were trending on Product Hunt, and then removed by the moderators for being "not quite a product." Has anyone else had this experience?<p>Interested in finding out more - there doesn't seem to be any set criteria, and what's worse is many of our competitors have trended to top spots. Wondering if anyone else has run into this. <comment><USER2> Well, you either have a product or you do not. What does this product weigh? Is it an intangible 'product', like you sell upwards movement on search rankings? Say more, get a better answer...</comment>


Adaptive Binary Arithmetic Coding - <AUTHOR> https://github.com/ramenhut/abac <comment> TD-Linux A word of caution: CABAC, as well as many use cases that surround it, are heavily patented. This is one of the reasons why Opus and Daala use (different) range coders instead: [https://datatracker.ietf.org/doc/draft- terriberry-netvc-codi...](https://datatracker.ietf.org/doc/draft-terriberry- netvc-codingtools/?include_text=1)

<comment><USER2> Indeed, VP* codecs (Webm etc, from On2 acquisition) avoid arithmetic coding like the plague due to patents.

<comment><USER3> Hmm, I think the range coder used in VPx is basically just an arithmetic coder with the labels changed. It's not any less efficient.

Also, JPEG and LZMA have arithmetic coders with no current patent claims. CABAC just has specific patents.

CABAC is not good on CPUs anyway - it's only fast on hardware due to using lookup tables in the critical path.

</comment></comment></comment><comment><USER4> This seems to be the blog post mentioned at the bottom of the read me file:

[http://www.bertolami.com/index.php?engine=blog&content=posts...](http://www.bertolami.com/index.php?engine=blog&content=posts&detail=arithmetic- coding)

</comment><comment><USER5> Starting from this page: [http://www.bertolami.com/index.php](http://www.bertolami.com/index.php) , I noticed that many links are implemented in JavaScript and do not support middle-clicking.</comment>


Androidpttrns.com - <AUTHOR> http://androidpttrns.com/ androidpttrns.com is the shameless copy of the awsome pttrns.com for android <comment><USER2> Also - <http://mobile-patterns.com/></comment>