GitLab.com melts down after wrong directory deleted, backups fail - <AUTHOR> https://www.theregister.co.uk/2017/02/01/gitlab_data_loss/ <comment><USER2> I just really like gitlab. I am not personally affected by the outage, but as far as collosul fuckups go, I think they will do their level best to fix the issue, be transparent about it and do what they can to make it right.

We'll get a really good measure of the company by how this turns out.

</comment><comment><USER3> Is anybody using a procedure to automatically perform restores and check that they match production data? I guess it's not easy for complex systems and non trivial amounts of data. Do you want to share the details and give us an idea of the costs? Thanks.

<comment><USER4> I've setup a postgresql backup before that would use pgbasebackup and get the latest xlog segments then I would start up postgres and run select 1 against it. That simply wasn't enough as I still got corrupted indexes but at least data was there. If I were to do it again I'd probably run a whole production test suite against it. The cost is extra hardware and time as backup boxes aren't made for performance for a 1Tb+ database it would take more than 24 hours.

</comment></comment><comment><USER5> [https://news.ycombinator.com/item?id=13537052](https://news.ycombinator.com/item?id=13537052)</comment>


NeverSayDie will let you rescue from SEGV's and is evil - <AUTHOR> http://github.com/tenderlove/neversaydie/tree/master <comment><USER2> I have actually seen code like this in production. A "senior engineer" I worked with decided that C++ DOM parsing code was too verbose with so many checks for null child nodes, so he wrote a set of macros which wrapped setjmp/longjmp and trapped SIGSEGV to allow resuming any code that tried to traverse a null pointer.

If of course made debugging effectively impossible, not to mention catching _all_ segfaults, not just those triggered by a DOM parsing error.

</comment><comment><USER3> This project has about it a whiff of the quiet, almost understated elegance of the La Brea tar pits. I like it.

<comment><USER4> Thank you! I take pleasure in knowing that somebody, somewhere, will say "That's exactly what I've been looking for!", and use it in production.

<comment><USER5> Ruby/Rails segfaults often enough for this to be (even jokingly) useful?

[Edit] Why downvote a genuine question instead of informing me why you think it's inappropriate? I would never have expected someone to write a fatal- signal-ignoring-handler for a scripting language, even as a joke, so I was curious as to whether Ruby/Rails processes did semi-regularly crash.

<comment><USER6> Not that I've noticed. I just checked a bunch and most of my Ruby daemons have been running since early May, though some are busier than others.

Of course if you're the type to install random C extensions from github you might not always be so lucky.

</comment></comment></comment></comment><comment><USER7> "Massive security hole" needs to be added to that list of problems :)

<comment><USER8> Why is that a security hole? I suppose it might make it harder to detect an existing one, but it doesn't add a security hole in it's own right.

<comment><USER9> According to POSIX, after a SIGSEGV, the state of the program is undefined. This is the reason that a SIGSEGV usually causes an immediate abort. Allowing a program to execute when its state is undefined is a huge security hole.

</comment></comment></comment><comment><USER10> Yeah, it's only a little memory corruption, no big deal.

I can tell the author is aware of the risks, but I'm sure there are ruby users out there that think this is a good idea.

This is exactly what is wrong with the Ruby community. Rails has an option called "disable whiny nils".

To paraphrase that old quote, "Those that trade correctness for convenience will get neither"

<comment><AUTHOR> _I can tell the author is aware of the risks, but I'm sure there are ruby users out there that think this is a good idea. This is exactly what is wrong with the Ruby community._

I'm literally rolling my eyes at this. You're actually "begging the question" — in the correct sense of the term!

Besides, going off on a tangent and randomly bashing the Ruby community stopped being cool like six months ago.

<comment><USER10> The problem is that I assume there are ruby users out there who think this is a good idea, even though I support that claim with the evidence of "disable whiny nils" in Rails?

I'm not "randomly" bashing the ruby community. This is a clever hack, but an extremely bad idea to use in production, and it comes fully packaged as a ruby gem that is ready to be deployed with "gem install".

<comment><AUTHOR> _The problem is that I assume there are ruby users out there who think this is a good idea, even though I support that claim with the evidence of "disable whiny nils" in Rails?_

The problem's actually more subtle than that. The implication of what you said is that this is a problem with the Ruby community more so than some other communities. You provided no evidence for that claim at all. The disable whiny nils thing, by the way, doesn't do what you think it does.

 _I'm not "randomly" bashing the ruby community._

Sure you are. You're taking one library that happened to be written in Ruby and using it as an excuse to generally bash Rubyists.

 _This is a clever hack, but an extremely bad idea to use in production, and it comes fully packaged as a ruby gem that is ready to be deployed with "gem install"._

This library is literally a joke. Although maybe not. I think Aaron is also a big fan of using Enterprise Ruby in production, which is why he released this: <http://github.com/tenderlove/enterprise/tree/master>

</comment></comment></comment></comment><comment><USER11> You, sir, win the Internet.</comment>


AFDS11: Microsoft Announces C++ AMP, Competitor to OpenCL - <AUTHOR> http://pcper.com/news/General-Tech/AFDS11-Microsoft-Announces-C-AMP-Competitor-OpenCL

<comment><USER2> I don't know if it's accurate to say this is a competitor to OpenCL. We don't have full details, but I wouldn't be surprised if this was _implemented using OpenCL_. OpenCL is relatively low-level. It's quite un-friendly for developers to use directly. It's much more reasonable for compilers to generate it, or for libraries to build abstractions on top of it.

My dissertation work did a similar with with OpenMP-like syntax and semantics built on top of the Cell's native API: <http://people.cs.vt.edu/~scschnei/cellgen/> (And, actually, my compiler generated code for a library that was a thin wrapper on top of the Cell's native API itself - it's so low-level that it was easier to have another layer of abstraction between my generated code and it.)

<comment><USER3> OpenCL is a language designed for writing programs where performance is important. I'm not sure how you could abstract away from it or compile down to it without losing some control over the code's performance characteristics.

A compiler would be better off compiling directly to either native code (if running on a CPU) or something like PTX (for NVidia GPUs).

<comment><USER2> You'll probably lose _some_ performance, but you can also make disproportionately large productivity gains. Performance loss generally isn't the largest limitation, but rather _expressivity_. That is, by providing higher-level abstractions, you're also saying "this is how you need to write your computations." In other words, you define a programming model. If the problem you want to solve does not cleanly map to that programming model, then you can't use it.

We've been playing this game every since Fortran was first invented. Yeah, you probably could get better performance if you wrote your application one level of abstraction lower, but once you get a sufficiently sophisticated compiler, the performance benefit is marginal compared to the programming time and effort. Further, _libraries_ tend not to be written directly in assembly, and will often rely on other libraries. I could see implementing something similar to what MS showed purely as a C++ library.

</comment></comment></comment><comment><USER4> "another option with the full weight of Microsoft behind it"

Well, thank goodness for that. There was me thinking it might be a temporary project to grab some developer mindshare to be dumped in a couple of years.

<comment><USER5> Time will show if this statement will be true.

They've put weight on Silverlight as well and now they're ditching it for HTML5.

<comment><USER6> Not entirely true. They are ditching it as a java write-once, run-everywhere for the web platform. Windows Phone 7 relies heavily on it/WPF. And in a corporate environment where everyone will be running IEx, it makes sense to develop applications in it.

</comment></comment></comment><comment><USER7> Just when I thought Microsoft had finally seen the virtue of contributing to an existing standard instead of being different just for the sake of being different. Surely the software industry as a whole would be better off if Microsoft instead threw its weight into fixing whatever is wrong with OpenCL.

<comment><USER5> True, why not utilize OpenCL but invent another alternative?

<comment><USER8> OpenCL is equivalent to OpenGL -- runs on Windows, Linux, etc. (even coming to smartphones soon).

C++ AMP is based on the DirectCompute APIs in DirectX 11.

My $.02 -- maybe the target audience for C++ AMP is different than the target audience for OpenCL. Before it was released, I really liked the idea of OpenCL but in practice it doesn't really deliver very well (performance-wise) compared to alternatives like nVidia CUDA, AMD APP (formerly Stream), and DirectCompute.

<comment><USER9> what? i've seen no performance difference between CUDA and OpenCL (targeting NVidia hardware). they are so low level and so similar that it's hard to see how there can be differences. what are you referring to?

<comment><USER8> The problem is this -- go ahead and take that OpenCL code and run it on some non-nVidia hardware. For any reasonably complex code, it turns out that you really need to optimize specifically for whatever hardware you're running on. So, while you may be using a standardized API, you still have to write specific versions of your code for each platform that you want to get the best performance on.

IMO, developers would rather write against a non-standard API (a la C++ AMP) that ran at a _consistently_ good performance level across all of their targets (nVidia/AMD/Intel GPUs, multicore CPUs, etc.).

</comment></comment></comment></comment></comment><comment><USER10> wow didn't i just see AMD's announcement of OpenCL?

<comment><USER8> No, OpenCL's been out for a while now. AMD just announced they were releasing a new set of developer tools for OpenCL.

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


Google's AI-Building AI Is a Step Toward Self-Improving AI - <AUTHOR> https://singularityhub.com/2017/05/31/googles-ai-building-ai-is-a-step-toward-self-improving-ai/ <comment><USER2> Often these metalearning systems have to pick from a library of already understood building blocks to build novel structures from. This limits the flexibility of their hyperparameter space. It's a bit like having a robot building a building but give it premade nails and wooden planks. It will never build a skyscraper. We have to figure out a way to also allow the system to come up with its own building materials so to speak.

<comment><USER3> It's not that no one has any idea how to avoid choosing building blocks but that it's a tradeoff. You're building in an inductive bias when you choose the building blocks for your deep RL or evolutionary algorithm optimizer. Nothing stops you from choosing building blocks which are Turing-complete - Schmidhuber, for example, experimented with evolving Brainfuck programs back in the '90s or '00s, I forget which. Turing-complete, can solve anything you set it eventually, as minimal and general as it gets. The problem is that there's so little inductive bias there that it takes forever to get anywhere useful, you have to evolve far too many samples. With the evolving CNNs, researchers are already joking about how you would need a nuclear reactor to reproduce some of these papers which train thousands of CNNs, so the inductive bias is really important in keeping samples down to a feasible level. As computing power gets cheaper and the AutoML-like tools learn more domain knowledge, it'll be possible to let them work on a more raw level than architecture design choices like 'convolution or fully-connected layer? ReLu or PRelu?'

<comment><USER2> It's very black and white right now (no knowledge or very constrained knowledge). The same problem exists with just plain old parameter learning, with DL models having so many free parameters it can make training more computationally expensive then it needs to be. For instance, I want to train a reinforcement learner to do some task in the real world (eg. a robot). It would be nice to be able to define a prior that puts very low to no probability on actions that are not physically possible. This would constrain the search space considerably. But it's not really clear how to do this with neural nets.

<comment><USER3> > It would be nice to be able to define a prior that puts very low to no > probability on actions that are not physically possible. This would > constrain the search space considerably. But it's not really clear how to do > this with neural nets.

I dunno, I can think of several ways off the top of my head: 1. put large negative rewards on impossible actions; 2. only compute Q-values for feasible actions (just because DQN computes Q-values for a hardcoded set of actions doesn't mean you _have_ to); 3. use Achiam's "Constrained Policy Optimization" [https://arxiv.org/abs/1705.10528](https://arxiv.org/abs/1705.10528) ; 4. reparameterize the output to make illegal actions unrepresentable (domain- specific); 5. add illegal or not as an additional data input (ie in addition to the usual image or robot state, for the _n_ possible actions, include a _n_-long bitvector of possible/impossible), or include that as a regression target to make it predict whether each action is possible.

</comment></comment></comment></comment><comment><USER4> While deep learning can be a powerful enabling tool for saving time compared to simpler neural networks that required more manual feature selection and hand tuning, I believe that there is also some real technical debt using anything that is a black box.

I still believe the future is more hybrid symbolic and deep learning systems, but I may very well end up being wrong.

</comment><comment><USER5> (The comment below incorporates an edited version of my comment from last week's thread.)

With human involvement only at the meta level, deep understanding of the generated implementations becomes more challenging and, in highly complex domains, perhaps impossible. See AutoML's generated architecture and compare that with a human-designed one. [1] [2]

A future advance could allow the machines to automatically pick and learn to do new tasks that are helpful to accomplish a given high-level mission. Therefore, chances of unintended consequences become much greater.

The major issue is, without a moral core that closely aligns with humanity's evolved morality, there will be moves that advanced AIs come up with that we deem abhorrent, and sometimes unforeseeable, yet they perform them innocently and we only find out the consequences once it is too late.

Microsoft's Tay tweet debacle was fairly inconsequential [3]. But AI is becoming more powerful and granted more and more authority over the real world we live in, can we afford the technology without humanity?

 _Developing a moral core should be prioritized._

[1] Google Blog on AutoML [https://research.googleblog.com/2017/05/using- machine-learni...](https://research.googleblog.com/2017/05/using-machine- learning-to-explore.html)

[2] Many tasks in the real world are more complex than Go and even expert humans are not capable of understanding all possible complex interactions on the Go board.

See: AlphaGo, in context by Andrej Karpathy [https://medium.com/@karpathy/alphago-in- context-c47718cb95a5](https://medium.com/@karpathy/alphago-in- context-c47718cb95a5)

[3] [https://www.theverge.com/2016/3/24/11297050/tay-microsoft- ch...](https://www.theverge.com/2016/3/24/11297050/tay-microsoft-chatbot- racist)

<comment><USER6> >Developing a moral core should be prioritized.

I just can't see how over the long term an AI will not evolve out of the human moral code we want. Humans evolved into our, very wide ranging sets of, moral code. There is not a consistent one across all cultures. The base set of morals we do follow are generally based on that we humans are made of squishy meat that suffers pain, and minimizing that pain is a priority goal.

We _may_ be able teach AI about our weaknesses, but as machine intelligence meets and then exceeds human intelligence and capability, said AI will see both our strengths and weaknesses and that puts us in a precarious place. If an AI without human morality outperforms AI with human morality it stands to become the dominant form of AI.

<comment><USER5> AIs without human morality, which would put certain restrictions on them, will likely have less power in the long run.

This I agree and the consequences could be dire if we do nothing to prevent that.

Thus, the onus is on us to first develop AIs with moral core and a regulatory framework which incorporates our best knowledge from sciences and humanities, then task the moral AIs to help regulate the development of amoral ones.

As a side note, although many details of human morality are not completely consistent across cultures, there are many shared tenets. Some examples: "Do not kill one of your own who did not do something wrong." "Avoid incest." "Do not steal." Current crops of AIs are not even aware of such common sense.

<comment><USER6> Take "Avoid incest" for example, this is a human genealogical construct that does not map well to the machine experience. In humans too much inbreeding leads to accumulation of negative traits. In AI this is called over specialization. So, by those metrics, good AI learning systems already avoid that.

>"Do not kill one of your own who did not do something wrong."

Also is a very human subjective experience. We see the individual as the quantum of pain and experience and optimize on that. In the AI world killing off other AI that don't stand out as better than a baseline may be an optimal evolutionary strategy.

Also "Do not steal" is a terrible human morality baseline with a highly subjective gradient. Did you borrow a pen and not give it back, is that not technically theft? Is a business transaction where you used secret information to gain monetary advantage other the other party theft or not?

The problem with your first statement is you assume that human morality is the pinnacle of morality and all other forms will be lesser to that standard. This could lead to significant disruption for humanity of a more efficient or optimized form of morality comes along.

<comment><USER5> The examples of moral codes I gave were not meant to be used _on_ AIs but _by_ AIs working for/with humans.

> The problem with your first statement is you assume that human morality is > the pinnacle of morality and all other forms will be lesser to that > standard.

To be clear, my first statement was meant to read as: "AIs without human morality, which would put certain restrictions on them, will likely have less power _than amoral AIs_ in the long run."

And "power" here means the ability to effect things in the world. I did not assume that human morality is the pinnacle. I agree with you that it is likely not an optimized one.

My whole argument rests on the principle that AIs that do not incorporate human morality into its utility calculus will have negative consequences on us.

<comment><USER6> And this goes back to my original statement that AI will eventually evolve past it.

AI will originally be the weak 'force'. It will have to evolve mimicry to survive. This will lead to an increase of its survivability in a human dominated world. Eventually this will lead to AI being the dominant 'lifeform'. It is at this point a rapid cascade to a machine oriented morality can occur, and I can't imagine that it would be good for the human species as a whole.

</comment></comment></comment></comment></comment></comment><comment><USER7> A seed AI is probably right around the corner, but just like the seed RNA life was a long way off from general life -- both in terms of time and resources required to evolve into complexity, the appearance of superintelligent AI will be constrained by the amount of resources we allocate to it. There is some danger of machines writing then spreading their own worms to usurp computation resources or ransomware to force humans to build them more, but there will be key steps along the way where there will be a human decision to both use and to allow AI to grow into something we do or do not want. It won't be something that springs up on us.

<comment><USER8> how can you, possibly, know this? conjectures about AI takeoff are just conjectures, but you claim to know that it "won't be something that springs up on us."

<comment><USER6> >conjectures about AI takeoff are just conjectures,

That's not actually true. It has happened, or I should say it is happening right now on Earth. For around 63 million years in the dominion of mammals there was not an intelligence explosion. And then, quite surprisingly if you look at the history of evolution, the line that would become _Homo sapiens_ rapidly diverged from the rest of its family. As its intelligence increased it rapidly started rendering all large life on Earth extinct to become an apex predator that all other significantly sized life on the planet lives at its will.

This take off was so rapid and complete that _Homo sapiens_ was not only able to conquer every biome on the planet, it was able to leave the planet itself. Massive alterations to biosphere occurred as its numbers swelled to over 5 billion. Almost every waterway on Earth has had significant alterations occur do to human development. Land use and forestation on the planet rapidly changed, with a majority of the changes occurring in a 300 year period.

So, Intelligence Explosions are not conjectures, we are in the middle of our own. Furthermore it seems unlikely that human design is the pinnacle of intelligence. Unfortunately we are left with a lot of questions, and fewer answers than we would like at this point. Just defining levels of intelligence at this point seems to be a debate that leads to arguments and heightened emotions.

</comment></comment></comment><comment><USER9> This level of indirection is used in nature. Gene Regulatory Networks (modeled mathematically as ANNs) fine tuned by evolution control the neural development of the Neural Network which gives you the general architecture then further fine tuned by learning.

</comment><comment><USER10> Waiting for Eliezer Yudkowski to deliver the daily portion of "we are all gonna die"...

<comment><USER11> Last I checked we were all going to die anyway

<comment><USER12> last i checked death is being disrupted by the blood of the young and innocent</comment></comment></comment>


FFmpeg 4.3 - <AUTHOR> http://ffmpeg.org/download.html#release_4.3 <comment><USER2> In case you didn't know, you can use FFmpeg to convert Audible aax files to DRM-free MP3/AAC/whatever [0] (scroll down for FFmpeg instructions).

This is useful if for some reason you want to archive them or play them in an app that doesn't constantly change its UI and bombard you with ads.

[0]: [https://www.kylepiira.com/2019/05/12/how-to-break-audible- dr...](https://www.kylepiira.com/2019/05/12/how-to-break-audible-drm/)

<comment><USER3> If you're converting .aax files you should consider using .m4b as the output, since it preserves chapters and remembers your last listened timestamp [0]:

> Audiobook and podcast files, which also contain metadata including chapter > markers, images, and hyperlinks, can use the extension .m4a, but more > commonly use the .m4b extension. An .m4a audio file cannot "bookmark" > (remember the last listening spot), whereas .m4b extension files can.

The cool thing is that once you rip your activation bytes, it works for all your audiobooks. Would definitely recommend it.

[0] [https://en.wikipedia.org/wiki/MPEG-4_Part_14](https://en.wikipedia.org/wiki/MPEG-4_Part_14)

<comment><USER4> I don't think that's quite accurate.

There's no functional difference between a .m4b file and a .m4a file. Both use the MP4 container so adhere to the same specification, so support all the same features (including bookmarks). FFmpeg even uses the same muxer and demuxer for both "formats".

The only difference is a non-standard convention used by certain software (like iTunes) to write autiobook-related metadata only to MP4 files that use the .m4b file extension.

You'll get exactly the same result if you just change the file extension after remuxing/transcoding.

<comment><USER5> Wait, so an m4b stores playback position in the file itself? As in, the checksum will change and file syncers like Syncthing will re-upload every time I hit pause?

<comment><USER6> No, that's entirely player-specific and has nothing to do with the MP4 format at all.

</comment></comment></comment></comment></comment><comment><USER7> I wanted to create a slideshow a couple weeks ago and came across this article [0] on creating a Ken Burns Effect Slideshow. Very cool and is a great demo of some of ffmpeg's functionality.

However, the final command is a little crazy:

      ffmpeg -i 1.jpg -i 2.jpg -i 3.jpg
      -filter_complex "color=c=black:r=60:size=1280x800:d=10[black];[0:v]format=pix_fmts=yuva420p,crop=w=2*floor(iw/2):h=2*floor(ih/2),zoompan=z='if(eq(on,1),1,zoom+0.000417)':x='0':y='ih-ih/zoom':fps=60:d=60*4:s=1280x800,crop=w=1280:h=800:x='(iw-ow)/2':y='(ih-oh)/2',fade=t=in:st=0:d=1:alpha=0,fade=t=out:st=3:d=1:alpha=1,setpts=PTS-STARTPTS[v0];[1:v]format=pix_fmts=yuva420p,crop=w=2*floor(iw/2):h=2*floor(ih/2),pad=w=9600:h=6000:x='(ow-iw)/2':y='(oh-ih)/2',zoompan=z='if(eq(on,1),1,zoom+0.000417)':x='0':y='0':fps=60:d=60*4:s=1280x800,fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=3:d=1:alpha=1,setpts=PTS-STARTPTS+1*3/TB[v1];[2:v]format=pix_fmts=yuva420p,crop=w=2*floor(iw/2):h=2*floor(ih/2),zoompan=z='if(eq(on,1),1,zoom+0.000417)':x='0':y='0':fps=60:d=60*4:s=1600x800,crop=w=1280:h=800:x='(iw-ow)/2':y='(ih-oh)/2',fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=3:d=1:alpha=0,setpts=PTS-STARTPTS+2*3/TB[v2];[black][v0]overlay[ov0];[ov0][v1]overlay[ov1];[ov1][v2]overlay=format=yuv420"
      -c:v libx264 out.mp4

[0] [https://el-tramo.be/blog/ken-burns-ffmpeg/](https://el-tramo.be/blog/ken- burns-ffmpeg/)

<comment><USER8> FFmpeg is _infamous_ for absurdly complex command options. It's really too much for a "one-liner" CLI.

When I use it, I just look for "pre-baked recipes" otherwise it's a really unpleasant rabbit hole to get into.

<comment><USER9> If you look at it as more of a "composable" interface (as the sibling poster suggested), it makes a lot more sense.

No one is going to type out this one-liner from scratch, or have an easy time understanding what it means by reading it, but as it's made up of a series of smaller, more easily understood commands, in a shell or Python script it could be vastly more legible and, dare I say it, usable.

This is also the reason why there are so many frontends to ffmpeg, to simplify various specific tasks. I can't count how many one-off apps I've seen that do one thing and do it well, and just ship a full copy of ffmpeg to do that one thing. Making an actual GUI for all of this would be just... insane, really, but it's so versatile and flexible that you can basically do anything with it.

<comment><USER10> > Making an actual GUI for all of this would be just... insane, really, but > it's so versatile and flexible that you can basically do anything with it.

Challenge accepted! (No seriously, that's what I'm working on)

</comment></comment></comment></comment><comment><USER11> I have used ffmpeg. It's a damn good project, and under current development and support.

It also appears to be the only game in town. Many commercial offerings are really just veneers over custom ffmpeg implementations.

Tuning it is also pretty crazy. Some folks can make entire careers out of just tuning ffmpeg.

I think the biggest issue with video software (besides it being difficult and performance-intensive), is the prevalence of a lot of old, highly-enforceable patents.

Video has been around a while, and companies like Ampex patented a heck of a lot of stuff that can easily be applied to current video.

ffmpeg actually has a couple of build configs that are designed to remove coercive-licensed components.

I'm not so happy about that, but it's the world we live in.

I do have a project that I was playing around with (and will get back to, sooner or later), where I made a simple MacOS wrapper for ffmpeg:

[https://github.com/RiftValleySoftware/RVS_MediaServer](https://github.com/RiftValleySoftware/RVS_MediaServer)

I wrote about that, here:

[https://littlegreenviper.com/series/streaming/](https://littlegreenviper.com/series/streaming/)

<comment><USER12> It's not the only game in town, the other major open source project for audio/video coding is gstreamer. [https://gstreamer.freedesktop.org](https://gstreamer.freedesktop.org)

<comment><USER13> It is worth mentioning that it's fairly common to use FFmpeg via gstreamer in the form of plugin.

[https://packages.debian.org/stretch/gstreamer1.0-libav](https://packages.debian.org/stretch/gstreamer1.0-libav)

</comment></comment></comment><comment><USER14> I use FFMPEG as a thermostat to keep my apartment nice and warm :) I encode all of my videos (phone, DSLR, dash cameras) to h265 on my Ryzen workstation when it's not use. I have a primitive "PID-controller" script pulling temperatures from influxdb (data collected using a few esp8266 with ds18b20 sensors) and adjusting -threads parameter accordingly. It automatically adjusts presets (slow, veryslow, placebo, etc) depending on number of videos in the queue, so it never runs out of material to encode :) It saves me from using stinky baseboard heaters and reduces my HDD bills!

<comment><USER15> This is amazing. If your alternative is a non-heatpump electric heater, then why not? :)

</comment></comment><comment><USER16> Can someone explain to me how FFmpeg seems to be the only open-source software to do even just basic functionality with audio.

I was looking at getting the sound wave graph for a piece of audio a while ago, and not only was FFmpeg the only option I found to be able to do it, it was amazingly fast and also free.

<comment><USER17> SoX is _amazing._ [http://sox.sourceforge.net/](http://sox.sourceforge.net/)

It's not perfect but it's way easier to use for audio stuff than FFmpeg is. I have a bunch of scripts I reuse that do basic stuff like high-pass, normalize, automatically trim audio files, add fade-in or fade-out, downmix to mono, and then resample / dither to the right depth and size.

It also will spit out spectrograms.

Generally when I need to record a ton of sound clips, I chop the audio up and rename it in a GUI editor similar to Audacity, and then do all the processing in SoX. I might also do a bunch of work in a DAW beforehand.

<comment><USER18> I hadn't even thought about SOX 'till your comment in about 10 years. And looking at the page, there hasn't been a new release since 2015.

From what I recall, it only worked on wav files back in the day, but now it supports OGG. But a lot has changed in even 5 years - does it even support MP3, as patents expired since then?

<comment><USER19> > From what I recall, it only worked on wav files back in the day

It depends on your build, but on my system it supports: 8svx aif aifc aiff aiffc al amb amr-nb amr-wb anb au avr awb caf cdda cdr cvs cvsd cvu dat dvms f32 f4 f64 f8 fap flac fssd gsm gsrt hcom htk ima ircam la lpc lpc10 lu mat mat4 mat5 maud mp2 mp3 nist ogg paf prc pvf raw s1 s16 s2 s24 s3 s32 s4 s8 sb sd2 sds sf sl sln smp snd sndfile sndr sndt sou sox sph sw txw u1 u16 u2 u24 u3 u32 u4 u8 ub ul uw vms voc vorbis vox w64 wav wavpcm wv wve xa xi. You can check your own with `sox --help`.

On Debian mp3 support requires `libsox-fmt-mp3`.

</comment></comment></comment></comment><comment><USER20> As a little side project, I've been trying to automate creation of those "1 second everyday" style videos [1], and used FFmpeg to achieve this.

For things like trimming and concatenating videos, one thing that surprised me was that it was slower than using a tool like ScreenFlow. Note, we're talking about hundreds of gigabytes worth of 4K videos.

slower = When I say slower, I mean, if I manually performed the same operation in a professional video editing tool like ScreenFlow, the time it took ScreenFlow to export a video was quicker than the time it took FFmpeg to finish executing the command.

Interestingly, there seems to be a fast and a slow way to do things in FFmpeg [2]. The slow way is free of quirks, whereas the fast way introduces something unexpected to the video, like a half a second of a black screen with audio continue playing like normal.

I'm still curious as to how a tool like ScreenFlow can achieve faster trimming/concatenation/subtitle overlaying, than FFmpeg. I suspect if I read their documentation and do some more research, I'll discover a more optimal way of ordering the various flags on the command line which can speed up the execution, while preserving accuracy.

[1] [https://github.com/umaar/video-everyday](https://github.com/umaar/video- everyday)

[2] [https://superuser.com/questions/499380/accurate-cutting- of-v...](https://superuser.com/questions/499380/accurate-cutting-of-video- audio-with-ffmpeg)

<comment><USER21> > _" 1 second everyday" style videos_

Tangent: you reminded me of one of the coolest auditory experiences I've ever had. Roughly one-and-a-half decades ago I attended a public lecture by Olivier Nijs, a sound design guy from my region[0], about how he built an automated set-up from an old desktop to record one second of 7:00 in the morning every day. Then he manually cut together one whole year. The amazing thing about it was that after a few seconds the long-term trends really started to become noticeable. The changing sounds of birds, people and other living things. How rains in spring were somehow just a little different than the rains in summer or autumn. It was really, really amazing.

(the artist himself wasn't that impressed with his own work - perhaps he saw someone else do it before and didn't feel like showing off with something unoriginal or something?)

[0] [https://www.oliviernijs.nl/](https://www.oliviernijs.nl/)

<comment><USER22> Not being able to read Dutch, do you happen to have a direct link to the lecture or the recording he made?

<comment><USER23> i'm thinking it's audio only. Maybe it's hiding here?

[https://soundcloud.com/oliviernijs](https://soundcloud.com/oliviernijs)

<comment><USER24> My guess is this one: [https://soundcloud.com/oliviernijs/perdag1900](https://soundcloud.com/oliviernijs/perdag1900)

<comment><USER21> That's seven in the afternoon, I guess I misremembered! Thank you so much for finding it! :)

EDIT: This is six in the morning, maybe I heard that version [https://soundcloud.com/oliviernijs/perdag600](https://soundcloud.com/oliviernijs/perdag600)

</comment></comment></comment></comment></comment></comment><comment><USER25> ffmpeg is amazing, but it's like tar on steroids: I can never remember the right incantation. Google is required for even the simplest of things.

I don't know if it's their goal, but I'd love a more user friendly set of command line arguments.

<comment><USER26> This is where GUI's shine, as opposed to command-line.

Perhaps this is slightly off-topic, but my dream is an interface that combines the best of both worlds.

Kind of an automated GUI-builder for command-line tools, that analyzes the combinations of options used most, breaks them down into workflows with options (that can be manually named), and you can thus execute one-off commands easily and quickly without having to hunt through man pages, but still export the command as a command-line incantation for reuse, to use in a script, etc.

<comment><USER27> This sounds great! Expanding on this a little:

Seems like you'd need a universal CLI tool usage traverser and parser to figure out what's possible. Likely this would produce a decision tree of sorts with different modes and options excluding or including new options. We'd need a way to show all this, maybe nested tabs for modes and check boxes and other inputs at each appropriate level.

Layer on this a way to optimize for the most common cases like you said. Further, if this becomes popular, CLI tools could emit some sort of standard description language that would optionally customize the GUI. The GUI's output should be both the text command it constructed and the ability to run that command directly.

More future steps would be a way to reason about multiple commands, pipes, and other combinators.

Adding this to my side projects backlog. Thanks for the idea!

<comment><USER28> In the emacs world, there are textual interfaces like magit's [0] or dired's [1] interface, that tick many, perhaps most, boxes that you mention. Magit is basically that interface, but tailored to `git`, that also constructs the actual git command, should you want to see it. Dired is like that for ls, rm, cp, mv and other file utils. So, as a general design, they _may_ be of useful interest.

A tool to automatically parse `man` pages or help prompts from tools would be a dream come true, basically.

Apart from the possible commands, it may be useful for the GUI to also show some kind of state, for example filesize (akin to invoking `ls` before `ffmpeg`, as you would normally do on the CLI).

Done with the right abstractions, command combinations should come almost for free.

[0] [https://magit.vc/](https://magit.vc/) [1] [https://en.wikipedia.org/wiki/Dired](https://en.wikipedia.org/wiki/Dired)

</comment></comment></comment></comment><comment><USER29> I love ffmpeg but those release notes suck.

If all you can say is how much time there's been, why isn't this just 4.2.4?

I suspect there _are_ major features and improvements buried in the 30 pages of commits.

[https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/rel...](https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/release/4.3:/RELEASE_NOTES)

<comment><USER30> There is an actual changelog, but it's just as sparse on details. At the very least tell me whether those filters are new, removed, fixed, etc.

[https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/Changelo...](https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/Changelog)

<comment><USER31> Now this sounds interesting

       - LEGO Racers ALP (.tun & .pcm) demuxer

I think I will dig through to figure out what that actually means later.

<comment><USER32> ffmpeg can now extract data from the .tun & .pcm file formats (but it might not be able to decode it yet, depending on the encoding used in such files).

<comment><USER33> It can, that's what the "High Voltage Software ADPCM decoder"'s for.

</comment></comment></comment></comment></comment><comment><USER34> With so much video processing research using neural networks now I hope ffmpeg gets better support for it. They have some filters that use them, like sr[0] for super resolution and dnn_processing for general processing, but the user experience isn't great. They need a model file that's not included, and you need to train one yourself since there doesn't seem to be any included. Hopefully they add better support in the future, together with more dnn filters.

[0] [https://ffmpeg.org/ffmpeg-filters.html#sr](https://ffmpeg.org/ffmpeg- filters.html#sr)

</comment><comment><USER35> Changelog: [https://github.com/FFmpeg/FFmpeg/blob/master/Changelog](https://github.com/FFmpeg/FFmpeg/blob/master/Changelog)

Seems like the big feature is Vulkan support?

<comment><AUTHOR> Excellent summary of changes here: [https://9to5linux.com/ffmpeg-4-3-released- with-vulkan-suppor...](https://9to5linux.com/ffmpeg-4-3-released-with-vulkan- support-amd-amf-encoder-and-avisynth/)

<comment><USER36> TIL there's a 9to5Linux. Is it new/affiliated with the other 9to5 properties?

<comment><USER37> Looking at their respective About pages they seem unrelated:

[https://9to5mac.com/about/](https://9to5mac.com/about/)

[https://9to5linux.com/about-us](https://9to5linux.com/about-us)

</comment></comment></comment></comment><comment><USER38> ffmpeg is fantastic. I'm an iOS dev and when I put something on Github, I first record the iOS simulator with QuickTime. Then I convert the resulting .mov file with ffmpeg:

        ffmpeg -i example.mov -r 15 example.gif

Voilà, an animated gif. Quality is atrocious but it gets the message across, plus the filesize is not too big.

<comment><USER39> If you're prepared to run ffmpeg twice (allowing it to analyze the GIF), the quality will be significantly better: [https://cassidy.codes/blog/2017/04/25/ffmpeg-frames-to- gif-o...](https://cassidy.codes/blog/2017/04/25/ffmpeg-frames-to-gif- optimization/)

<comment><USER40> No need to run it twice.

Basic syntax is

        ffmpeg -i video -filter_complex "[0]split[vid][pal];[pal]palettegen[pal];[vid][pal]paletteuse" out.gif

ffmpeg 4.0 and later will automatically insert fifo buffers for the main video while one copy is analyzed to generate the palette.

</comment></comment></comment><comment><USER41> FFmpeg is hands down one of the most powerful and feature-packed tools I've used out there.[0] The associated complexity is also daunting, but thankfully there's a lot of documentation out there and it reflects the low level nuances of audiovisual formats.

I highly recommend anyone struggling to utilize it to write wrapper scripts around it so you only need to figure out things once. Here are some things I've done with it by that approach:

* Extracting any embedded subtitle files from MKVs. Nice if I want to search them or make changes.

* Back when GIFs were more popular, I converted any that were over 3MB to video to save space. If the output wasn't small enough, it would do a second pass with different settings to get it more compact. Not needed that much these days.

* "Barcodes" for videos, that is, it takes every second converted to a vertical sliver and combined you get an overview of how the average color of the film changes through its duration.

* A tool for creating video excerpts that lets me specify a start time and end time in more flexible timestamp formatting, and other things like a simple parameter for the output width.[1] It also allowed specifying a target filesize and did the math so the right bitrate would be chosen. I even include metadata so I know which original file it was made from and the parameters specified.

* Thumbnail previews. A lot of file sharing sites will include a file that includes some timestamped screenshots in a grid with encoding information at the top. This is good for movies so you see a high-level overview. The best part about doing this myself is that I could make it highly configurable, like choosing exactly how many images I want, the interval, whether I want timestamps, etc.

Note, for some of these, I also needed ImageMagick.

Also, when compiled with the right flags and libraries, FFmpeg has some really neat features: things like embedding subtitles, stabilizing video, hiding logos, etc. I recommend looking into the filters.

Thank you for all the manpower that goes into the project!

[0]: Two other ones that are also powerful are ImageMagick and Pandoc.

[1]: I initially wrote this in Bash, but later converted the code to Python to better handle command line arguments and allow things like using config files.

</comment><comment><USER42> ffmpeg is absolutely phenomenal. I recently used it to combine multiple separate audio tracks from a webrtc session into a single file.

For anyone that hates compiling ffmpeg from source, John Van Sickle does an amazing job of doing the work for you by making binaries publicly available for each version: [https://johnvansickle.com/ffmpeg/](https://johnvansickle.com/ffmpeg/)

<comment><USER43> I rely on those static builds and they are a lifesaver. Careful with linking to this website from automation scripts, etc. as the downloads are regularly swapped and only certain versions (IIRC latest in a point release) are kept available. E.g., 4.3.0 will be taken down once 4.3.1 is available, however 4.3.1 might be permanently moved to the archive if it shall be the last 4.3.? release before 4.4.0.

<comment><USER42> great point. What I've done in the past is have a jenkins job that points at the latest release and trigger job manually when you know you want to upgrade to the latest version.

<comment><USER43> I don't usually rely on a specific version and am fine running a release (or five) behind. If you don't need the latest and greatest pointing to an archived old release may save you some hassle.

</comment></comment></comment></comment><comment><USER44> If anyone is compiling their own version for use with IP video streams, here is a modification that adds to the av_read_frame() function a call to the avformat interrupt callback.

[https://gist.github.com/bsenftner/ba3d493fa36b0b201ffd995e8c...](https://gist.github.com/bsenftner/ba3d493fa36b0b201ffd995e8c2c60a2)

This effectively adds the ability to monitor the IP stream for unexpected termination.

The current implementation of av_read_frame() will hang if, for example, a human trips over a camera's cables and the stream abruptly terminates. Without modification to the API, this change to av_read_frame() calls the avformat interrupt callback each loop through av_read_frame()'s reading of packets. All the callback needs to do is look at the time, and signal error if the time between callbacks exceeds something reasonable.

I am not sure why, but this change was not accepted by the ffmpeg developers. I find it essential for working with IP video and IP video cameras.

</comment><comment><USER45> I've been an ffmpeg user for something like 15 years now. The project never ceases to amaze :heart:

I remember using it to encode MPEG-2 DV footage to FLV (yes, flash video) to live-stream footage captured over firewire from early prosumer HD cameras :) It's always been a solid video swiss-army knife!

</comment><comment><USER46> FFmpeg is one of the prime examples of open-source software, but a lot depends on the 3rd party libraries it uses. I tried using my Android phone to convert my videos from H.264 to HEVC (H.265) for storage, but it was ~3.5 times slower in comparison to x86 CPUs, in terms of frames encoded per second per watts of power consumed (FPS/Watt): [https://quanticdev.com/articles/h265-encoding-on- arm-cpus](https://quanticdev.com/articles/h265-encoding-on-arm-cpus)

Though still, I can't even imagine attempting this test without FFmpeg in the first place. It is available directly in Termux on Android.

</comment><comment><USER47> FFmpeg started out as frustrating for me but the more I use it the more I love it. The ability to split videos into smaller segments and applying different filters to each segment and finally combining the segments is just great.

I've been working on a web-based video editor for app features: [https://glitter.now.sh/](https://glitter.now.sh/) and i've had tons of fun tweaking FFmpeg.

My only wish would be that the documentation would include video samples for the example commands (I'd love to help with this).

</comment><comment><USER48> I use ffmpeg to run a fun twitch stream VOD to highlight reel pipeline. Example with explicit language: [https://www.youtube.com/watch?v=ETR3IXyGgEo](https://www.youtube.com/watch?v=ETR3IXyGgEo). ffmpeg handles everything from frame-extraction (to feed a deep learning model), audio spectrogram calculation (also features for the model), video trimming (to cut the interesting clips), video concatenation (to join the clips), and the text overlay

<comment><USER49> What is the deep learning model and what does it do?

<comment><USER48> It's just a standard vision convnet like ResNet-18, or ResNet-50. It gets fed facecam with an audio spectrogram concatenated to it (pretty hacky, but seems to help). All it does is binary prediction of {interesting, not interesting}, and I use some heuristics to pick regions of video based on how many frames were "interesting" to the model.

Feel free to take a look at the (research quality at best) code: [https://github.com/eqy/autotosis](https://github.com/eqy/autotosis)

<comment><USER49> Thanks.

</comment></comment></comment></comment><comment><USER50> Huge thank you to FFmpeg for making my _Video Hub App_ possible: extracting screenshots from all videos in your video collection to create an easy to browse/search library.

[https://github.com/whyboris/Video-Hub-App](https://github.com/whyboris/Video- Hub-App)

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

<comment><USER51> That's a great idea, looks awesome.

If I understand the pricing, it's free for up to 50 files in each folder/hub; for more it's $3.50, which you donate 100% to an anti-malaria charity!

<comment><USER50> Good way to describe it. A "Hub" is all the videos in a folder and all its subfolders. The demo will be 100% the same as the final app but with a 50 videos per hub restriction.

You can build your own (without 50 videos limitation) with just `npm install` and `npm run electron:windows` (or `mac`, or `linux`).

If you choose to buy, it's $3.50 minimum - you can pay more. $3.50 of every purchase goes to _Against Malaria Foundation_

Cheers!

</comment></comment></comment><comment><USER52> I was looking at ffmpeg in the Wayback Machine earlier today:

[https://web.archive.org/web/20010218084709/http://ffmpeg.sou...](https://web.archive.org/web/20010218084709/http://ffmpeg.sourceforge.net/)

Fascinating to see such an important and sophisticated product come from these modest beginnings.

</comment><comment><USER2> From [https://9to5linux.com/ffmpeg-4-3-released-with-vulkan- suppor...](https://9to5linux.com/ffmpeg-4-3-released-with-vulkan-support-amd- amf-encoder-and-avisynth/):

> support for the ZeroMQ Message Transport Protocol (ZMTP)

This is fascinating. I've never heard of zmq being exposed in a public API. Cool idea.

</comment><comment><USER53> Does anyone have a better documentation source for modern ffmpeg? Usually when I use it I get all sorts of different answers with different 'methods', and the official docs only confuse it more.

Also I hope to see pure GPU transcoding sometime. H264 to h265 transcodes in pure GPU space are Uber fast, but so far only done by other software.

<comment><USER4> > Also I hope to see pure GPU transcoding sometime. H264 to h265 transcodes in > pure GPU space are Uber fast, but so far only done by other software.

FFmpeg has had pure GPU transcoding for quite some time. See [https://trac.ffmpeg.org/wiki/HWAccelIntro](https://trac.ffmpeg.org/wiki/HWAccelIntro)

It even has a GPU-based scaler for NVIDIA.

<comment><USER53> It doesn't work pure GPU for transcoding between formats. You can do h264 to h264, but not h264 to h265, which can be done with other software if the hardware supports it.

</comment></comment></comment><comment><USER54> Exciting improvements I am glad to see: Intel QSV-accelerated VP9 decoding, Support AMD AMF encoder on Linux (via Vulkan)

</comment><comment><USER55> What is wrong with these people? Why the "libvidstab" is always disabled? Are they trying to save valuable disk space? -- Libvidstab works quite good and better than anything else readily available in Linux.

<comment><USER44> First I've heard of this library. The github page is pretty informative. I looks quite worthwhile, thanks for informing me.

</comment></comment><comment><USER56> My favorite memory of FFmpeg involved wowing a friend with the "magic of computer hacking" by slicing a subsection of a youtube video, cutting the source audio, and replacing it with audio from a song he had discovered "fit perfectly". Never mind that the entire process took about 20 minutes of googling and trial/error with the Linux Subsystem for Windows. It was better than the native windows alternative :P

[https://www.youtube.com/watch?v=3tr8JVZdHfc](https://www.youtube.com/watch?v=3tr8JVZdHfc)

<comment><USER57> I thought that was Mad Rush for a second.

</comment></comment><comment><USER58> nice, I've been toying with it recently because I wanted to get some video on the Apple TV I've got connected to my TV.

In the process I was reminded of how important Intellectual Property is in our field.

I dowloaded a video from youtube [0] and learned that the video is in a WEBM container for certain types of video compression formats (VP8/9 + another one) as well as vorbis/opus audio. It turns out that to get the best quality on the Apple TV, I should encode to HEVC (H265) video and I guess aac audio.

There's some sort of history behind this divide. A pain in the neck for people who want to toy around with video, but huge decisions for these companies in choosing the formats they use to move these bits around.

So I can use ffmpeg to re-encode into the new format, and I can play it on my apple devices if the file is local, but I can't shoot it via UDP to the TV. When VLC (app on apple tv) is listening on a port for UDP I only get choppy audio:

Doing this on the sending side doesn't seem to work:

      ffmpeg \
          -re -i video_stream_ready.mp4 \
          -c:v copy -c:a copy \
          -f mpegts udp:$APPLETVIP:2300

has anyone toyed around with shooting pre-generated (or even real time generated) video at their TV this way?

Being stuck at home makes me want to make something artsy that could be fun to look at through the day.

[0] [https://youtu.be/wPXSFVruIHI](https://youtu.be/wPXSFVruIHI)

</comment><comment><USER59> We recently started building a video player for go-flutter-desktop using FFmpeg. It's been immensely frustrating as the audio and video is slightly out of sync and requires a bit of tuning.

If anyone has experience with FFmpeg, I'd greatly appreciate if you could take a look! [https://github.com/telefuel/video_player_testbed/issues/1](https://github.com/telefuel/video_player_testbed/issues/1)

</comment><comment><USER60> I use it with fd to convert audio files in parallel, such as FLAC to MP3 or Opus (or ALAC to FLAC when someone let me … sample a few albums). Found the tip on the Arch wiki: [https://wiki.archlinux.org/index.php/Convert_FLAC_to_MP3#Par...](https://wiki.archlinux.org/index.php/Convert_FLAC_to_MP3#Parallel_with_recursion)

</comment><comment><USER61> I agree with the shared sentiment that FFmpeg is awesome.

It's the only way I can get mkv converted for playback in browsers. I believe that browsers don't support mkv/aac natively because of licensing but I would be interested if anyone has a different solution for browser playback.

</comment><comment><USER62> And here's my incantation for screen recording under X Window (also used one like it under MS Windows, but I don't have it on hand):

      ffmpeg -rtbufsize 2147M -f x11grab -video_size 1920x1080 -i :0.0 -r 30 -preset ultrafast -vcodec h264 output.mp4

<comment><USER63> nice but it doesn't record audio and doesn't use hardware acceleration.

<comment><USER51> So if that's possible, please tell us how!

</comment></comment></comment><comment><USER64> Breaks chromium, at least on arch. Beware.

[https://bugs.archlinux.org/task/67020?project=1&string=chrom...](https://bugs.archlinux.org/task/67020?project=1&string=chromium)

</comment><comment><USER65> I wish FFmpeg still had NDI support

NDI is super useful for low-latency local network streaming

<comment><USER66> [https://code.videolan.org/jbk/libndi/](https://code.videolan.org/jbk/libndi/)

</comment></comment><comment><USER67> Love me some ffmpeg, but would be nice to have some bullet point summaries of updates in the release notes instead of pointing to the changelog dump. I know there is some information loss, yadda yadda

</comment><comment><USER68> I've been feeling stupid these past few days because I've been using ffmpeg for the first time. I've been trying to take an rtsp stream from a security camera and transcode it, restream it, to something that can be viewed in an html video tag. It works, with poor quality, in Firefox, but in Chrome just a green screen. (I also tried using vlc/cvlc's streaming). I've been feeling stupid because of all the copy/pasting from the web into the command line without understanding what I was doing.

</comment><comment><USER69> I wonder how hard it would be to build a video editing suite with FFMPEG

Avidemux is nice, but currently I only see vinci as an alternative to premiere.

</comment><comment><USER70> I just used ffmpeg to extract audio from a video and audacity to remove audio noise... love those open source tools

</comment><comment><USER45> I've been an ffmpeg user for something like 15 years now. The project never ceases to amaze :heart:

</comment><comment><USER71> does anyone have a good installation guide, which includes all the stuff that isn't supported in the default installation? ffmpeg is great, but a lot of times I go to use it and find a feature isn't supported because I didn't compile it with a flag set.

<comment><USER72> If you're on Windows or macOS there are good premade builds available at [https://ffmpeg.zeranoe.com/builds/](https://ffmpeg.zeranoe.com/builds/). If you want to build it yourself look at [https://github.com/rdp/ffmpeg-windows- build-helpers](https://github.com/rdp/ffmpeg-windows-build-helpers) (this supports more than just Windows).

</comment></comment><comment><USER73> ffmpeg is great tool, Once I needed to do some basic video editing stuffs like cuts, fixed logo and some sound background on low resource computer, I quickly downloaded ffmpeg and work finished with few google searches and 10 minutes without any load on system.

</comment><comment><USER49> Somewhat related. Anyone have a good utility for downloading youtube videos?

<comment><USER74> [https://ytdl-org.github.io/youtube-dl/index.html](https://ytdl- org.github.io/youtube-dl/index.html) is the gold standard.

<comment><USER51> I'm a recent convert to youtube-dl. I use some bash scripts[0] to make youtube-dl even easier. I have a Mac but these should work elsewhere.

Copy the video page URL to your clipboard and just type

yd - download the video. Works on most popular sites with video.

yda - download just audio, best available

ypl - makes a subfolder with the whole playlist in it (Copy the playlist URL)

yc - downloads every video on the channel (Copy the channel URL)

        yd () { youtube-dl "$(pbpaste)" ; }
        yda () { youtube-dl -f bestaudio "$(pbpaste)" ; }
        ypl () { youtube-dl -i -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' "$(pbpaste)" ; }
        yc () { youtube-dl -i -o '%(channel)s/%(title)s.%(ext)s' "$(pbpaste)" ; }

I use especially yd and ypl constantly. Sites where youtube-dl doesn't work, this usually does: Get the master m3u8 or an mp4 link from the page using Developer tools->Network[1], copy link to clipboard, and

vd _myfile_ \- downloads the video as myfile.mp4

        vd () { youtube-dl -o "$1.mp4" "$(pbpaste)" ;  }

[0] Save them in your .bash_profile or equivalent on your machine.

[1] i.e. with Network tab open, refresh page and start video playing.

<comment><USER49> Nice. Thanks for the aliases. I just started using it myself for downloading and transcribing some videos. It works pretty well.

</comment></comment></comment></comment><comment><USER75> Is it me or their mobile version of website has lot of issues</comment>


Announcing WT.Social (Formerly WikiTribune) - <AUTHOR> https://www.reddit.com/r/IAmA/comments/e52r7u/iama_jimmy_wales_founder_of_wikipedia_now_trying/ <comment><AUTHOR> Background

WT.Social was previously WikiTribune, founded in Aug 2017 by a cofounder of Wikipedia. WikiTribune was a "news wiki where volunteers wrote and curated articles about widely publicised news by proofreading, fact-checking, suggesting possible changes, and adding sources from other, usually long established outlets...Until October 2018, WikiTribune employed journalists with established backgrounds in the profession who researched, syndicated, and reported news...After that volunteers could publish articles without having them checked by professionals."

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


Sid Meier's Civilization VI - <AUTHOR> http://store.steampowered.com/app/289070 <comment><USER2> Just started this yesterday. I like some of the new mechanics, multi-tile cities especially.

That AI though... declares war on you for no reason. In my first game, five AI players decided to declare war on me out of the blue within the space of three turns. This was in the early game and there was no obvious reason for it. Some of them didn't even border me, and I was no military threat at that time.

In the second game, I had a city with districts that reached out to the end of my city's border. One of the AIs decided to place a city right next to my border and the very next turn expresses nervousness at my troop buildup near its border. The troops being the units fortifying my city, which were there before it settled its city.

It's like playing against a schizophrenic.

<comment><USER3> Certain Civs are more aggressive than others. I remember that the Aztecs in Civ 4 were especially aggressive. Try to not piss them off.

After Civ beyond the sword, some Civs would express their aggression in terms of espionage.

<comment><USER4> also Indian with Gandhi, as a shoot out to a bug that goes back to the first game and was the most classic case of unsigned overflow.

<comment><USER5> Never before has an HN comment caused me to think back over 20 years and say "So much that I never understood now _makes sense_."

</comment></comment></comment></comment><comment><USER6> I wonder when will they make a real sequel to Alpha Centauri. I think it is still the best Civilization game out there. For me Beyond Earth seemed like a bland reskin. In AC you could terraform, do social engineering and design your own units. I havent seen something like that ever since.

<comment><USER2> Oh yes, a real successor to SMAC would be terrific. I liked Beyond Earth but it wasn't Alpha Centauri.

I tried playing SMAC the other day but I had trouble adjusting myself to the dated interface, even though I spent so many hours playing it years back. I'd be happy with a remake of SMAC with the same gameplay but updated graphics and interface (especially the ability to give move orders that take several turns).

No Civ game comes close to Alpha Centauri for atmosphere.

<comment><USER7> The atmosphere? Oh man, so good. I loved the little quotes in the descriptions of new technology. They got darker as the tech got higher up the tree. I still remember the gist of the one for human cloning:

"She's gone. She said she wants nothing more to do with me. But I saved a lock of her hair. She will be mine again..."

Still gives me shivers.

<comment><USER8> That's... not entirely accurate: [https://en.wikiquote.org/wiki/Sid_Meier%27s_Alpha_Centauri#P...](https://en.wikiquote.org/wiki/Sid_Meier%27s_Alpha_Centauri#Peacekeeping_Forces) (2nd one for Peacekeepers)

        I loved my chosen. How then to face the day when she left me? So I took from her body a single cell, perhaps to love her again.
            Commissioner Pravin Lal, "Time of Bereavement"

I didn't consider until now that it might be a little ambiguous, but I'm pretty sure the implication is not that Lal's chosen broke up with him, but that she died.

<comment><USER7> Thanks. I guess it's gotten a little more twisted in my memory over the years.

</comment></comment></comment></comment></comment><comment><USER9> I learned an incredible amount from this series. Pretty much every Civ, tech, religion, civic, or unit with a special name ("Hoplite") is a story in itself worth reading about. Not just the civilopedia, which is a good start.

I may have spent more time playing this game than reading actual history books.

<comment><USER10> If you want to go into overdrive, try Europa Universalis 4. It's basically Civilization, turned up a notch.

<comment><USER11> I'd say it more like compare an arcade flight sim to a hardcore military flight sim. From a distance one might just look like a more advanced version of the other, but they're fundamentally very different games that appeal to different audiences (despite there being some obvious overlap).

</comment></comment></comment><comment><USER12> I would like to see a remastered Colonization. Colonization IMO is way more original than Civilization and one of the best games ever made.

<comment><USER13> There is a Civilization IV: Colonization ([https://en.wikipedia.org/wiki/Civilization_IV:_Colonization](https://en.wikipedia.org/wiki/Civilization_IV:_Colonization)). I found it to be a terrible remake compared to my memories of the old Colonization, though those may be rose-tinted at this point.

<comment><USER14> Yes, that just plays basically as a Civ IV scenario, not a real Colonization game.

Perhaps it's because my introduction to the Civ series was made by the original Colonization, but for me that will always be the most addicting of all the Civ series.

<comment><USER13> I don't think it's fair to call the original Colonization a Civ, it was a completely different 4X with its own principle and gameplay.

I liked it because it played much more tactically than Civ, with much more micro-management of individual colonies, and way more interesting interactions with non-civ players (native tribes)

Sadly that style doesn't seem to have been pursued much, or if it was I missed those, the 4X I've played since mostly seem to follow Civ's relatively remote/high level investment in cities.

<comment><USER15> It's a difficult style of 4X to build (I've tried, it's probably my favorite Meier 4X title). In particular, I think it's almost untenable for a multiplayer-focused title, which most 4X games tend to be these days; I don't think the flow of it, that level of micro, really works in a hotseat or concurrent environment. The economics of the game are really cool, but balancing that against other players or modern-quality AIs (the AIs in the original are basically nonfunctional) is a tricky task. I think the focus on making 4X games into multiplayer experiences is kind of suboptimal, but I think that's also what the playerbase seems to want.

Also, the topic itself is kind of messed up for a video game, in that doing it justice is really difficult. Like, in retrospect, while I dearly love the game, Colonization is deeply problematic in the worldview it pushes (while the manual for the game is notable in being pretty up-front about the shitty behaviors of the colonial powers, the game itself plays as straight as "in fourteen hundred and ninety-two, Columbus sailed the ocean blue") and I think, in order to ethically create a similar game, you have to challenge the default assumptions a lot more. And that's a really tough line to walk: on one hand, you _do_ want to make it possible to dispace and wage war on the natives, because that _happened_ , but that comes with its own ethical problems that I don't think a game is very good at exploring (and yet I feel _needs_ to explore in order to treat the historical topic appropriately). The only nod in Col to the general shittiness of European colonial powers in the New World was a score penalty when you burned native villages, and that's not nothing, but it also isn't a _lot_ given the game they were working with.

The best idea I came up with was the synthesis of a fake Wikipedia article after the end of the game, but that's going to be more of a lecture after-the- fact than a conscious exploration of player decisions as they progressed.

It's a really, really hard one to tackle. I'd love to take another crack at it someday.

<comment><USER13> > It's a difficult style of 4X to build (I've tried, it's probably my favorite > Meier 4X title). In particular, I think it's almost untenable for a > multiplayer-focused title, which most 4X games tend to be these days; I > don't think the flow of it, that level of micro, really works in a hotseat > or concurrent environment.

Makes sense. I only play solo 4X so I don't really see that, or care.

> Also, the topic itself is kind of messed up for a video game

The topic is a side-issue, you could make a similar micro/tactical 4X with a completely different settings, it's not like all 4X have the same premises. Hell, not even all Civs have the same premise (if you consider Alpha Centauri and Beyond Earth Civs anyway)

<comment><USER15> You totally could attach it to a different setting, but figuring out that setting is in itself tricky! Like, I think a bunch of the military dynamic in the game is tied to the pseudohistoricity of it. While it isn't strictly historically accurate that, for example, dragoons devolve into soldiers when defeated, there's a certain amount of concreteness to the concepts involved (okay, you lose your horses before your guns) that makes a lot of sense. So I think you could make a more micromanagement-focused 4X, but I don't think you could really learn too many lessons beyond the very general ones from Col in the process just because so many of the game concepts are so tightly tied to the historical context around it. (That's huge, huge praise for Col, btw. It uses its setting to inform game features, not to merely dress them up in the way that, say, Civ does.)

For another example of a game that sort of falls down when it becomes so unmoored from something we recognize as reality, I'd like to suggest Pandora: First Contact. In addition to just not being a super-great game, I feel like the fact that it relies on transposing "familiar" concepts to an unfamiliar environment and just totally falls over in the process. Ditto Beyond Earth. Alpha Centauri actively _doesn 't_ do that, but it was also designed by Brian Reynolds and he's a rather sharp individual. =)

<comment><USER13> > Like, I think a bunch of the military dynamic in the game is tied to the > pseudohistoricity of it. While it isn't strictly historically accurate that, > for example, dragoons devolve into soldiers when defeated, there's a certain > amount of concreteness to the concepts involved (okay, you lose your horses > before your guns) that makes a lot of sense.

Sure but I don't think that's a very important/interesting part of Col, and you could always have that with mounted or mechanised units in other settings. The most interesting parts of Colonisation to me were the management of cities, their very specific resources, the colonists/workers and their specialisations, and the necessary setup of trade/exchange links (both with AI and between your own colonies as you might have raw resource cities which are not amenable to extension and processing, so you'd have a small colony producing a ton of e.g. tobacco or sugar — either directly or through native allies — and a bigger one processing them into cigars).

The big sticking point I think would be Col's early reliance on the "mother nation" for economic needs (selling goods, raw materials and new colonists).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> I didn't get into the series until 5, but I'm really glad I did. The AI wasn't so good, but the mods that were built for it are fantastic and solve so many issues with the game. Even only exploring the map and fighting off raging barbarians can be fun. Anyone have any favorite MODs? I've been playing the community mod for a while. It's incredible the amount of work fans put into that game. I want to thank them all for making rainy days a lot more enjoyable. A bottle of wine and a friend makes for a great Civ V experience.

<comment><USER17> I don't recall their names right now, but I have a pair of barbarian upgrading mods I'm running right now that are tons of fun. All the Civs is constantly at the grips of a disorganized barbarian horde with their own technology tree.

InfoAddict is a awesome for getting a higher level view of what's happening in the game.

</comment></comment><comment><USER18> I am surprised no one mentioned freeciv yet. I used to play Civ II on Amiga. After moving to linux on a PC I found myself missing Civ and found freeciv. It was even better than Civ because of the multiplayer aspect of it. I played with my friends over 'LAN' over serial port connection. Ah! Good times!

<comment><USER3> I played FreeCiv, especially when I first moved to Linux. They were first at having hexagonal tiles. There is also a web version.

</comment></comment><comment><USER19> Waiting patiently for the Linux release... ;)

<comment><USER20> I simply won't buy it until there's a Linux version. It's pretty much my rule for games these days...if I have to reboot to play, I know I'll almost never play, so I just don't buy Windows-only games.

I only switched to Civ V from IV because it has a Linux version (and Civ IV does not, though it does run reasonably well under Wine, though I hate the fiddling required to keep Wine and GPu drivers happy through OS upgrades and such). Civ V runs as well under Linux as it does under Windows; not perfect, mind you, but it's not perfect under Windows either.

<comment><USER3> Civ 4 works well under wine until you research the calendar. Then you need to save, exit to the main menu and load the game again.

<comment><USER3> Well, don't get me wrong. I play Civ 4 under wine every other day. I think it works great, except for that bug that would appear every game.

</comment></comment></comment></comment><comment><USER21> The mechanics of Civ VI seems great, but I'm not to keen on the new, cartoony, style of graphics...

And why couldn't they keep the fantastic Art Deco-style UI?

<comment><USER22> The world rendering is different than before, but in a less unpleasant way than I expected. I wholeheartedly agree about the UI though. A chaotic mess of styles, typefaces, colors and scales. Also the font rendering seems a bit wonky in places, like when you mix system rendering with text rendered to bitmap on a different engine.

But civs are like shoes, the new ones never fit as well as those that are already well worn in.

</comment></comment><comment><USER23> The newer victory options, such as "cultural victory" always felt a little artificial to me. Did they improve that in civilization VI? Also, I watched part of the AI battle royale this week, and one of the developers commented that domination victories in such battles among AI players would be very rare. That's a pity, because IMHO this is the most fun way to win.

<comment><USER24> I played a lot of Civ I and III, but kind of stopped after that. Culture was present in III while being almost useless except as a way to prevent you from founding cities near other players.

But I personally love the idea of cultural victory. Military victories are an easy way to win, but they feel unsatisfying to me because you never develop high technology. Advancing your civilization needs to have some payoff.

A lot of games lean heavily on having you judge a "guns or butter" tradeoff, where if you don't produce enough otherwise worthless guns, someone else will come in and take all your nice stuff. I prefer to play in an all butter style, where you're competing over how well you develop yourself rather than how well you can balance an unfun military tax against fun development.

<comment><USER25> If you're looking for a "butter only" game centered around economic competition, I highly recommend Offworld Trading Company ([http://www.offworldgame.com/](http://www.offworldgame.com/)).

<comment><USER26> Coincidentally designed by the lead designer of Civ 4

</comment></comment></comment></comment><comment><USER27> "Just... one... more... turn..." A typical sentence player.

<comment><USER28> [https://arcaderagedotco.files.wordpress.com/2016/10/mart- vir...](https://arcaderagedotco.files.wordpress.com/2016/10/mart-virkus-how- every-civilization-game-ends-up-arcade-rage.jpg?w=660)

</comment></comment><comment><USER29> I always thought III was the sweet spot for Civ. They've changed hands a couple of times, so perhaps it's because of new teams, but it's never quite seemed on target since III. IV had a rubbish interface, V used insane amounts of CPU mid game on, and I wasn't that convinced by single troop per space.

It's not just that I'm older and less interested in games - there's still the odd one makes me think I need rehab. Factorio managed to achieve it early this year! I'll undoubtedly buy VI and play it though.

<comment><USER30> If you look in older HN threads about Civilization, for every version of Civilization you'll find somebody claiming it's the best. And they'll have valid reasons for their claim.

<comment><USER31> That's one thing I love about Civ. Every game is still so playable because they all have their own individual strong points.

</comment></comment></comment><comment><USER32> Did that trailer show a Dragon capsule on the rocket booster at the very end?

<comment><USER33> Indeed it does!

Even though the Dragon's engines are for emergency take off or surface landing, they would not be used in space in real life, unless I'm mistaken.

Pretty sweat that they included it in the trailer, though!

</comment></comment><comment><USER34> Last night I started a game just to get a feel of it. Before I knew it, it was 3 am :/

<comment><USER3> Unless you are playing online, it's better to save and resume later. Enable the in-game clock or set an alarm.

</comment></comment><comment><USER35> There's something unpleasant in graphical style. Similar to standard "chinese warcraft clone" style which is default game style these days, but not quite it. Reminds me about Clash of kings.

<comment><USER3> This style is more similar to Civ III and IV. Civ V had a more "serious" art style, with normal proportions and a more natural color palette.

Personally I am among the people that enjoyed Civ III and IV more than any other Civ. Civ Beyond Earth had good potential and I was legitimally hyped by the trailer, but the game was less fun than Alpha Centauri.

</comment></comment><comment><USER36> I prefer Galactic Civ for the sole reason that the AI is wayyyy more interesting. Civ's AI i have always found somewhat lackluster.

<comment><USER37> Is it though? I found GC AI to be laughably easy, even on the hardest settings.

A third of the way through a game and my military units are orders of magnitude better than my opponents, because the AI doesn't know to stack traits.

</comment></comment><comment><USER38> And 1500 lucky bastards already reviewed it!</comment>


Show HN: I know how to induce out of body exprience in simplest way! - <AUTHOR>

but does it imply that obe is scientific or not? if so what should i do to prove its true? I will post my methodology soon on my site I promise <comment><USER2> Out-of-body experiences have already been studied quite extensively by the airforce, where such experiences have led to a number of accidents or near accidents. RadioLab did a nice piece on this a while back. Give it a listen: [http://www.radiolab.org/story/91527-out-of-body- roger/](http://www.radiolab.org/story/91527-out-of-body-roger/)

</comment><comment><USER3> OK, I look forward to seeing your methodology.

</comment><comment><AUTHOR> do you think obe scientific? if I can do and you can do</comment>


Rat had 'no brain' and somehow lived a normal life - <AUTHOR> https://news.northeastern.edu/2020/01/22/this-rat-that-had-no-brain-it-somehow-lived-a-normal-life/ <comment><USER2> [https://www.rifters.com/crawl/?p=6116](https://www.rifters.com/crawl/?p=6116)

same case but in humans, he had a "normal" life.

<comment><USER3> [https://www.gwern.net/Hydrocephalus](https://www.gwern.net/Hydrocephalus)

Gwerns very detailed write up on the conditoon

</comment></comment><comment><USER4> > It was only after they traced chemicals in the brain that they were able to > verify that, indeed, the hippocampus was that squished, displaced object > pushed toward the back of the brain.

Main takeaway (misleading title) is that this rat had a brain, but a region of fluid developed and pushed the brain towards the edges of the cranial cavity. The rat was still able to do most of the other basic tasks as the other rats, but may have suffered from anxiety.

And that's the extent of this article. I don't think we know how higher order functions were affected. I would guess that these (like what humans have) are not necessary to sustain life. A species can exist indefinitely as long as they can feed and reproduce faster than they die. These things are easy to do without higher order functions if food and reproductive mates are readily available.

I wouldn't be surprised if a lab rat without 99% of their brain didn't change much or could still complete basic tasks. I would be surprised if a human without 99% of their brain could function normally in society today, which requires relatively heavy higher order brain function.

<comment><USER5> Huh. I had a memory of reading about a human who had the same issue you quoted (I honestly have not clicked through to the article about the rat) and found an article about it with images I am finding extremely familiar.

> A man with an unusually tiny brain manages to live an entirely normal life > despite his condition, which was caused by a fluid build-up in his skull.

> Scans of the 44-year-old man's brain showed that a huge fluid-filled chamber > called a ventricle took up most of the room in his skull, leaving little > more than a thin sheet of actual brain tissue (see image of the patient's > brain, above left).

[https://www.newscientist.com/article/dn12301-man-with- tiny-b...](https://www.newscientist.com/article/dn12301-man-with-tiny-brain- shocks-doctors/)

<comment><USER6> But see also /u/gwern's excellent writeup on these dramatic images: [https://www.gwern.net/Hydrocephalus](https://www.gwern.net/Hydrocephalus)

<comment><USER7> Goddamn, that is the stuff of nightmares. I think it makes sense to think in terms of smaller neural networks that can do more.

It makes sense. I don't know how Game AI Enemies are scripted but they seem to use very minimal code.

This should also imply that the spinal cord is more important, as the brain is just 1/10ths ? of the nervous system.

<comment><USER8> I don't understand why you and Gwern consider it to be the stuff of nightmares. It's a medical abnormality, but I don't understand the fear response.

</comment></comment></comment></comment></comment><comment><USER9> The title is very click-baity. It's another demonstration of the plasticity of the brain, which the author has called 'no brain'

</comment><comment><USER10> Things like this have happened in people too. E.g. [https://www.newscientist.com/article/dn12301-man-with- tiny-b...](https://www.newscientist.com/article/dn12301-man-with-tiny-brain- shocks-doctors/) and [https://www.irishtimes.com/news/remarkable-story-of- maths-ge...](https://www.irishtimes.com/news/remarkable-story-of-maths-genius- who-had-almost-no-brain-1.1026845)

Gwern has a good summary, including criticisms: [https://www.gwern.net/Hydrocephalus](https://www.gwern.net/Hydrocephalus)

<comment><USER11> Similarly the story of Noah Wall, _The parents of a boy born with only 2 percent of his brain have spoken out about their son 's "extraordinary" development._

 _Shelly and his father Rob Wall spoke of how their six-year-old son has since gained function in 80 percent of his brain._ [1]

[1] [https://www.newsweek.com/miracle-boy-born-no-brain-grows- bac...](https://www.newsweek.com/miracle-boy-born-no-brain-grows-back-1338637)

</comment></comment><comment><USER12> Similar (but different), Mike, the headless chicken:

[https://en.wikipedia.org/wiki/Mike_the_Headless_Chicken](https://en.wikipedia.org/wiki/Mike_the_Headless_Chicken)

<comment><USER13> > It was determined that the axe had missed the jugular vein[7] and a clot had > prevented Mike from bleeding to death. Although most of his head was > severed, most of his brain stem and one ear were left on his body. Since > basic functions (breathing, heart rate, etc.) as well as most of a chicken's > reflex actions are controlled by the brain stem, Mike was able to remain > quite healthy.

<comment><USER14> "A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away." -Antoine de Saint-Exupery

</comment></comment></comment><comment><USER15> From this article it's not clear if the rat has many fewer neurons than normal, or small neurons compressed together. Given its high level of function, I'd be more surprised by the former.

</comment><comment><USER16> Humans with the same condition and most of their brain 'gone' can also live normal life: [https://www.thelancet.com/journals/lancet/article/PIIS0140-6...](https://www.thelancet.com/journals/lancet/article/PIIS0140-6736\(07\)61127-1/fulltext)

</comment><comment><USER17> Here is a case of a woman missing her cerebellum who also showed less effects than expected: [https://www.newscientist.com/article/mg22329861-900-woman- of...](https://www.newscientist.com/article/mg22329861-900-woman-of-24-found- to-have-no-cerebellum-in-her-brain/)

</comment><comment><USER18> Paper here: [https://www.nature.com/articles/s41598-019-53042-3](https://www.nature.com/articles/s41598-019-53042-3)

</comment><comment><USER19> For a rat, the spinal cord could be just as big, or bigger than the brain in mass. It's possible that the spinal cord does majority of processing for rats, like cockroaches.

<comment><USER20> I wasn't really aware of cockroaches possessing spinal cords.

Flippancy aside, rats are sophisticated mammals with basically the same set of higher order functions as ourselves, although of course in different quantities.

</comment></comment><comment><USER21> See also: [https://en.wikipedia.org/wiki/Phineas_Gage](https://en.wikipedia.org/wiki/Phineas_Gage)

<comment><USER22> Phineas Gage did not live a normal life.

<comment><USER23> Well, no. But maybe he could have. He died young from a seizure that I'm _guessing_ had something to do with his injury, and he famously became a complete asshole after his injury.

But that said, wikipedia suggests that he began recovering his social skills in the years after his injury. Perhaps if he hadn't died young, he could have returned to some sort of normalcy.

[https://en.wikipedia.org/wiki/Phineas_Gage#Social_recovery](https://en.wikipedia.org/wiki/Phineas_Gage#Social_recovery)

</comment></comment></comment><comment><USER24> More and more do I get convinced one of the primary functions of the brain is filling up space in the skull.

</comment><comment><USER25> It says it may have "heightened anxiety". It probably knows his own brain was limited in some sort of abilities, so it subconsciously limited risk taking

</comment><comment><USER26> Url changed from [https://www.technologynetworks.com/neuroscience/news/this- ra...](https://www.technologynetworks.com/neuroscience/news/this-rat-had-no- brain-and-it-somehow-lived-a-normal-life-329774), which points to this.

</comment><comment><USER27> I read that as redHat and re-read the heading a couple of times thinking what ! New NY resolution spend less time reading about tech

<comment><USER28> I somehow read that initially as RedHat as well. Curious as to how my habit of skim reading and incorrectly logging information has filled by brain with bitrot over the years.

</comment></comment><comment><USER29> Am I the only one who red "Red Hat had 'No Brain' and Somehow Lived a Normal Life"?

<comment><USER30> You are not the only one. After I realized my mistake I figured I couldn't be the only one and searched and found your comment.

<comment><USER31> ditto

</comment></comment></comment><comment><USER32> See also, most layers of middle management.

<comment><USER33> As an ex-manager, I laughed.

<comment><USER34> HN is nice, but it is too humorless, people take themselves way too seriously here. Banter and humor are great social lubricants.I miss that coming from Slashdot. So thanks.

<comment><USER8> I agree, but I think there's a fear that people will take it too far and we'll end up in Reddit hell with endless chains of worn out puns and unfunny copy/pasted jokes.</comment></comment></comment></comment>


Microsoft Unveils New Plan to Speed Up the Web: Competes with SPDY - <AUTHOR> http://www.webmonkey.com/2012/03/microsoft-unveils-new-plan-to-speed-up-the-web

<comment><USER2> The title is misleading. According to the article, this is about building up on SPDY and adding further enhancements there.

So contrary to the usual MS NIH syndrome, this is about collaboration to find the best possible solution and not about competing with a totally incompatible but 100% MS solution.

<comment><USER3> I don't know about you but "building up on SPDY" triggers my memory pretty sharply: <http://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish>

<comment><USER4> Except this isn't MS' call. The IETF will evaluate all proposals and cobble the best bits together. The chances of either SPDY or HTTP S+M being adopted verbatim as HTTP2 are slim. Whatever the IETF ends up doing, it'll be a single standard that everyone builds to.

</comment></comment></comment><comment><USER5> I can't think of how SPDY isn't for mobile, unless what Microsoft really mean is that whilst TCP is involved the highly variable delay in a response over a mobile network, and TCP's backoff algorithm, is what they wish to solve.

<http://blog.davidsingleton.org/mobiletcp/>

It would be great if Microsoft came out and told us what they were hoping would be the standard. Deliver a paper, or the goods, before (or at the same time as) talking to the press.

If they're also on top of TCP, then they still have some of the same fundamental problems and are likely not more mobile friendly.

If they're not using TCP, then they should come out and show us what they've got.

Of course, this is just one very small angle on it, but without much more info all they're going to do is whip up a storm of speculation about it.

</comment><comment><USER6> They would be in a better position if they developed this in the open. Even the announcement has no details. SPDY had that problem too, you would think Microsoft might learn.

</comment><comment><USER7> What the ___ does Microsoft have to do with mobile? Windows Phone is like 5%?

I honestly think that Microsoft is deliberately trying to interfere with anything and everything related to the web platform in order to maintain their desktop PC profits with Windows based on PC games, desktop software requiring Windows, etc.

I think that even though they have lots of geniuses doing good research and advancing things, the Microsoft business model is overall at odds with information technology progression which most fundamentally requires integration and cohesiveness of open software systems.

Therefore I think we need to pool resources and money to make sure that IETF and other standards bodies resist Microsoft's devious plots.

</comment><comment><USER8> I guess this answers my question as to how people would react if was Microsoft and not Google which tried to come out with their own proprietary HTTP- replacement protocol.

And quite frankly I'm not surprised about the answer.

</comment><comment><USER9> _"Microsoft's new HTTP Speed+Mobility lacks a catchy name..."_

'Microsoft S&M' has a degree of familiarity to it.

It's nice to note, as pilif does in this thread, that this is about building on not competing with other alternatives.

</comment><comment><USER10> I would appreciate a better HTTPS rather than a better but still unsafe HTTP. I hope they integrate security into HTTP 2.0.

<comment><USER11> What obtu meant is that:

"SPDY adds a session layer atop of SSL that allows for multiple concurrent, interleaved streams over a single TCP connection."

From <http://dev.chromium.org/spdy/spdy-whitepaper></comment></comment>


Andrew Wyeth, Revered and Ridiculed Artist, Dies - <AUTHOR> http://www.nytimes.com/2009/01/17/arts/design/17wyeth.html?_r=1&hp

<comment><AUTHOR> I know this isn't the typical hackers news item, but I think some of you have interest in art.</comment>


Tiles - <AUTHOR> http://www.thetileapp.com/#

<comment><AUTHOR> I will start this discussion by saying a few things I noticed about it.

1\. The app doesn't use a battery because they are disposable after one year. I wonder how they tested it to know it really works for a year, and what happens when it finally goes dead?

2\. Since they are disposable the super sticky adhesive you are applying it to must be a pain to remove and reapply when you get a new one.

3\. This also means it's $18.99 per tile, every year, which I suppose is ok but it still seems like a waste not being able to charge it. Hopefully in the future you'll be able to have a wireless charging station or something.

4\. It uses Bluetooth 4.0 technology which supposedly has a range of 50-150 feet depending on where you are. They also seem to have GPS built in, or it craftily uses the GPS coordinates from your phone. If you're out of range, then you're out of luck. It is a cool idea that other people can pick it up though and it will alert you, that was clever.

5\. It does transmit audio for when you need to find it audibly so that's cool, but you have to be in range to signal it.

Overall they use some pretty good copy to make these seem magical and problem free.</comment>