The Homogeneity of Instagram Travel Photos - <AUTHOR> https://hyperallergic.com/457945/alarming-homogeneity-of-instagram-travel-photos/ <comment><USER3> How many millions of people are posting on Instagram? How many billions of photos are on Instagram now?

Is it really so crazy to think that all of those billions of photos, you can find groupings of 12 that are similarly composed? How many unique photos are there to take really?

I'd be way more impressed if you could somehow come up with a set of a billion photos such that there are no compositional groupings across the set. Earth only has so many types of things on it to photograph.

<comment><USER4> I read one bit of utopian fiction where the propagation of digital production was limited to a nearby social circle. That way, people weren't constantly comparing their photographs with the best photographer in the world, or their musical compositions with the best musician in the world. People would specialize and create things, but for the benefit of their social circle, not the entire world. I wonder if something like that, but for Instagram, might be worth considering.

<comment><USER5> i don't think comparing your photo with the best photographer in the world is necessarily a bad thing, it shows you what you haven't learnt yet and how composition/lighting changes things.

if you translate that into FOMO somehow i think that's on your broken code/way of living rather than anything else.

</comment></comment></comment><comment><USER6> I've been seeing a lot of these articles lately. We need someone to write about the alarming homogeneity of articles about the similarity of Instagram photos.

<comment><USER7> the comments here are alarmingly h... well you know the rest.

</comment></comment><comment><USER8> loosely related, but here is an amazing project by Dutch photographer Hans Eijkelboom (20 years in the making) that explores the topic of 'homogeneity': [https://www.citylab.com/design/2014/12/20-years-of-photos- sh...](https://www.citylab.com/design/2014/12/20-years-of-photos-show-just- how-boring-we-all-are/383781/)

(the book: [https://www.amazon.com/gp/product/0714867152](https://www.amazon.com/gp/product/0714867152))

<comment><USER9> I think this type of work is much better evidence for the claim of cultural homogeneity from the article: The photo series are all taken within short time windows of a couple of hours in the same location.

Instagram on the other hand contains billions of pictures from multiple locations taken over long periods of time. It is only natural to find some repetition and much harder to argue how much of that repetition can be attributed to lack of creativity.

</comment></comment><comment><USER10> Isn't this akin to complaining if people for access to tools for drawing, that there would be a lot of fruit bowls out there? The fact is, cameras on cell phones have brought artistic tools to an incredibly large set of people, and of course there is to be expected alot of mimicry. But lots of originality can come through. Browse through Dribbble sometimes. There can be plenty of creativity in remixes and covers of others work.

<comment><USER11> I imagine if someone built Instagram for ancient Greek art and analysed it they could rediscover things like the Golden Ratio. And those Doric columns... all the same.

And with photography much of it isn't mimicry per se so much as the fact that humans find a lot of similar things interesting even if they pay no attention to other people's artwork at all. Even if entirely uninterested in other people's travel shots, people often find the rowing boat trip they took with their partner interesting enough to record a picture of their partner taken from said rowing boat, and so we end up with a lot of shots of partners sitting in the prow which can't really _not_ be compositionally similar to other shots of other partners sitting in other boats on other rivers.

</comment></comment><comment><USER12> Those photos all look amazing. Now I want to replicate those shots and put them on Instagram.

<comment><USER13> This comment made my day. :)

</comment></comment><comment><USER14> This has less to do with Instagram and more to the fact that all art is derived from other art.

<comment><USER15> It has more to do with the fact that most humans are social and cultural mimics, and genuine creativity is rare - and not always welcome when it appears.

</comment></comment><comment><USER16> I feel the the homogeneity is a result of what they're looking for - <USER2> sharing pictures of their vacations are not the same as people trying to be "influencers".

I don't think any of the travel pictures I see on Instagram of shared albums on Mac/iOS are like these. But then I'm not following influencers, I'm following friends and family (travel photos), and dogs (no travel photos, but definitely dogs)

</comment><comment><USER17> If I went to any of those locations I'd take a picture that looks exactly like that but there is a huge difference - the people in it are _me_ or my close ones. And the people watching my travel pictures are _our_ friends.

People who follow random people on Instagram are the enigma, not that they all take the same photos.

</comment><comment><USER18> Trust HN commenters to call into question the (perfectly reasonable) premise of the article.

The fact that Instagram is visual, not drably textual like HN, shouldn't really prevent anyone from discerning the fact that there's a significant amount of imitation, cliché, and trendy conformity in the images people post.

<comment><USER19> In an attempt to appear unique, everyone ends up doing the same thing.

Instagram is just a reflection of what society does in real life. This is visible in fashion, hair styles, beard, and whatever is the trend now.

I personally don't understand why so many people have this need to look like their peers. Does anyone with more social skills have an explanation?

<comment><USER20> It's pretty simple, and really not caused by people attempting to appear unique. There are two main factors: 1. All humans has a need to be accepted and approved of by their peers, 2. Humans also have an essentially identical neural architecture and a very similar set of likes and preferences to their peers. This results in groups of people with similar habits, clothes, and so on. The vast majority of humans normally want to fit in and conform, rather than be the odd one out in a group, see the entry on tribalism in any good anthropology textbook.

Also, anyone who claims not to understand this is either lying, engaging in some form of virtue signalling or has some sort of mental illness.

<comment><USER21> But take computer games, for instance. The main character (or any important character) is usually very different from everyone around them. Both in the way they act, but also the way they look. Nobody wants to play as the NPC.

To me, that applies to real life as well. But it would seem that a lot of people want to stand out in a video game/movie/book etc., but conform in real life?

<comment><USER18> Not everyone can be the protagonist in real life, but they can imitate a prominent person and thereby associate themselves with that person's success and prestige. It's a variety of narcissism in which less successful people deal with their narcissistic urges by becoming "followers".

See [https://en.wikipedia.org/wiki/Collective_narcissism#The_char...](https://en.wikipedia.org/wiki/Collective_narcissism#The_charismatic_leader- follower_relationship)

</comment></comment></comment></comment></comment><comment><USER22> Black Mirror's Nosedive episode did up all the sets, scenery, costumes, and makeup as one gigantic Instagram post.

</comment><comment><USER23> [https://www.instagram.com/socalitybarbie/](https://www.instagram.com/socalitybarbie/) would fit into many of these

<comment><USER24> It's like she's got the exact same expression on her face in every picture. It's almost doll-like.

And if I hadn't been looking for the joke, I'd have done a double take, because it does look exactly like a real account from a distance.

</comment></comment><comment><USER25> Shouldn't that be self-evident? Humans have a lot in common and so do the things they find attractive or memorable. Even if someone attempted to be the world champion of uniqueness, in a population as large as Instagram users that would be hard to accomplish.

</comment><comment><USER26> How is this alarming? Who gives a toss if people who want to be "influencers" are all doing the same thing? Frankly it makes it easier for the humans to ignore them.

<comment><USER27> The author is struggling with the fact that humans are overwhelmingly a mimicry bunch.

Personally I don't think there's anything wrong with it, it's the only way there can be billions of people. The automation & cloning process when it comes to personality, choices, behavior, likes, dislikes, etc. saves an incredible amount of time at scale.

30 minutes spent reading comments on Reddit or Imgur for example reveals that almost everybody is copying everybody else on there. You see witty lines, factoids, memes, repeated ad nauseam for years. The moment someone comes up with something new, it's immediately copied for hopeful points (attention and validation of existence; I think those things lacking is a serious and common issue for most people, which is why it works so well as a system in communities).

Imagine if everyone on Reddit, to post something, had to be original. 99%+ of the site instantly disappears. The effort or type of brain required to come up with new, very entertaining memes for example. Humanity wouldn't get anything else done if that much originality was required of all things, it's a division of labor applied to social everything.

There's nothing to be alarmed about. In my opinion most people have nothing interesting or original to contribute (by default I think it would have to be that way), so they copy everything from the more interesting tiny minority and it gets passed down the chain in a cascade of mimic. Most of humanity is a lifestyle and behavior clone top to bottom. Humanity is a tribe of organized copying, passing down what works from one person to the next to save time.

It takes either a particularly outstanding character/personality/thinking abnormality, or a large amount of effort, to do something original when the composition comparison is a billion other people.

<comment><USER21> Interesting. Kind of like how the evolution of our DNA works - we are fundamentally just imperfect replicators, introducing random mutations to the information. Ones that are deemed beneficial are propagated further, others are ostracized.

</comment></comment></comment><comment><USER28> I for one am utterly amazed that a social media platform does not actually foster creativity and originality. What.A.Surprise

<comment><USER29> One could say the same about HN comments. ;)

<comment><USER30> Congratulations! I tried to be clever and find this exact comment, but somewhat surprisingly yours is unique!

</comment></comment></comment><comment><USER31> It´s called genre.

</comment><comment> rich-tea Yeah, some people lack imagination. I used to make electronic music. I lack imagination. I wasn't good at it. But I had fun doing it nonetheless.</comment>


How PostgreSQL is tested [video] - <AUTHOR> http://blog.pgconf.us/2017/02/how-postgresql-is-tested.html <comment><USER2> Anyone feel like giving a summary?

<comment><USER3> Postgresql testing works the same way it has worked for the last 20-30 years. Each test consists of a SQL script, an expected result file, and a result file. A shell script runs the SQL script through the pg commandline, and dumps the results to the results file. Diff then tells you if the test pass. Also the shell scripts were rewritten in C for cross platform support. Not available via SQL, ie vacum? No tests. Concurrent modifications? No tests. Testing query plans that don't use order by have fun.

They have a new test suite built around TAP ([https://testanything.org/](https://testanything.org/)) and perl so now they have automated tests for more things like certs, and replication.

<comment><USER4> There are three basic suites of tests:

\- pg_regress, which is as you say a set of SQL scripts run on a running server with generated output compared to the expected output. There could be multiple expected outputs, see for example float tests.

\- pg_isolation_test, which is a part you are misunderstanding. This facility has been introduced with SSI (serializable transactions) to test concurrency.

\- TAP tests (author of the replication/backup/recovery part here), which has roughly three test suites:

\-- src/bin/ to test all the in-core binaries

\-- src/test/ssl to test SSL configurations. This has proved to be useful lately when moving all the SSL parameters to be reloadable.

\-- src/test/recovery to test all the kind of replication scenarios.

There are as well modules in src/test/modules that use TAP tests to run regressions on pg_dump, commit timestamps and extension interactions.

<comment><USER5> Thanks for the helpful detail!

Are there, in fact, no tests on VACUUM and others? Is that a problem? Are there plans to add them? Would you be looking for contributors to do so?

<comment><USER4> The query VACUUM is being tested via SQL. Now if you are referring to autovacuum, there are no tests directly designed with this purpose in mind. autovacuum is running in any instance running the regression tests as it is always enabled by default.</comment></comment></comment></comment></comment>


Show HN: Reddit from the Powershell command line - <AUTHOR> https://github.com/manojlds/redditps/

<comment><USER2> That's interesting. I wonder if it would work on something like the Surface RT/2, which is locked down.</comment>


Watch All the Apple TV Aerial Video Screensavers (2015) - <AUTHOR> http://benjaminmayo.co.uk/watch-all-the-apple-tv-aerial-video-screensavers <comment><USER2> Pity there isn't a single one from the southern hemisphere. That said, they are gorgeous. I'd just like to see something from the other side of the globe.

<comment><USER3> There should be some new 4k ones. They demo'ed them at the recent Apple event.

<comment><USER4> Hmm.

Open question to anyone with the latest tvOS firmware sitting around: what happens if you grep it for `entries.json`? Do you get a different URL?

Obviously what I'm getting at is ways to try and find (or keep an eye out for) the latest URLs.

<comment><USER5> This ([https://sylvan.apple.com/Aerials/2x/entries.json](https://sylvan.apple.com/Aerials/2x/entries.json)) appears to be the new URL for all the screensavers. The new entries file includes both normal and HDR versions of each of the screensavers, though on non-HDR displays, the SDR versions look a lot better than the (converted) HDR ones [1]. Unfortunately, all the new screensavers are encoded using HEVC [2] so they can't easily be played on OS versions without native support.

[1]: [https://github.com/JohnCoates/Aerial/issues/378#issuecomment...](https://github.com/JohnCoates/Aerial/issues/378#issuecomment-329681377)

[2]: [https://github.com/JohnCoates/Aerial/issues/378#issuecomment...](https://github.com/JohnCoates/Aerial/issues/378#issuecomment-333063235)

<comment><USER4> Wow, that was awesome reading how the new URL was obtained!

Thanks very much.

</comment></comment></comment></comment></comment><comment><USER6> see also: [https://github.com/JohnCoates/Aerial](https://github.com/JohnCoates/Aerial)

</comment><comment><USER7> John Gruber noted [1] that you can see a swimming pool with 2 sharks in it in one of the 4K Dubai day flyovers, though I haven't found them yet...

[1] [https://daringfireball.net/2017/09/thoughts_on_apple_tv_4k](https://daringfireball.net/2017/09/thoughts_on_apple_tv_4k)

Edit: Could be bottom right of Dubai, day, 1?

<comment><USER8> Dubai, day 4, at the 2:30 mark, left hand side. I'm pretty sure they're just painted on the bottom of the pool, not actual sharks.

</comment></comment><comment><USER9> Because Screensavers don't save screens anymore maybe we should call them energy wasters instead.

<comment><USER10> With the usage of OLED that's not quite true, burn-in can happen again which is an odd thing. Easier to fix than it was though, apparently.

<comment><USER11> It's more image retention. I've used my lg oled to show quite a bit of static images over the last year and haven't had anything permanent. There's even a tool built in to help clear it up.

</comment></comment></comment><comment><USER12> These are nice, to be sure, but in the spirit of artificial pixel scrambling, I can't help offering an antithesis:

[https://www.macupdate.com/app/mac/5849/plasma-tunnel- saver](https://www.macupdate.com/app/mac/5849/plasma-tunnel-saver)

Still my favourite.

<comment><USER13> You might like Electric Sheep [1] as well then.

My fav is the Word of the Day. It shows a nice blue background which doesn't hurt the eyes, with a word of the day. Though I don't use a screensaver on my MBP anymore; it needlessly drains the battery. Instead, I made a small Python program which selects a random word and shows the meaning for that word, using dict. Now that I think of it I could've used the current date as seed plus some calculations to come up with a stable word throughout the day which changes daily.

I also like the Chromecast one with photos from the past, tho a bit confronting Google has all that data.

[1] [https://gold.electricsheep.org/](https://gold.electricsheep.org/)

</comment></comment><comment><USER14> Anyone here who can point towards using them as Windows Screensavers?

<comment><USER15> Windows screensaver: [https://github.com/cDima/Aerial](https://github.com/cDima/Aerial) Mac screensaver: [https://github.com/JohnCoates/Aerial](https://github.com/JohnCoates/Aerial)

</comment></comment><comment><USER16> brew cask install aerial

<comment><USER17> For those that are wondering: this installs these screensavers on MacOS. [https://github.com/JohnCoates/Aerial](https://github.com/JohnCoates/Aerial)

<comment><USER18> Does it download the videos themselves onto your local mac or does it stream them like the AppleTV does ?

<comment><USER19> It caches them. Uses a ton of space though, so be careful.

<comment><USER20> Yep, 11GB.

</comment></comment></comment></comment></comment><comment><USER21> Anyone know how to make this work for Kodi, especially as audio visualization? (I don't mind downloading the videos first)

<comment><USER22> [http://kodi.wiki/view/Add-on:Aerial](http://kodi.wiki/view/Add-on:Aerial), actually installed it earlier today, had to reboot after, to get the downloads working

</comment></comment><comment><USER23> This slide show became available on Kodi about 6 months back and makes for an awesome screensaver</comment>


Ask HN: How do you manage mentally context-switching between technologies? - <AUTHOR> For those of you who need to regularly switch between programming languages, libraries, tooling and anything else used in software development for work, I'm curious to hear about any practical measures you take to stay afloat and be productive. I've given mind-mapping and flash cards a whirl, but I've found personally that neither have been sustainable in the long-run.<p>One of my motivating reasons for asking this question is because (as a generalist) I feel like imposter syndrome is starting to get the better of me. <comment><USER2> Focus on the task not the tools (unless you are building a tool/language/library). Whatever you are trying to build is always going to involve a very small fraction, of all the capabilities every language/library/tool provides. So focus on the capabilities you need. Don't fill your head with stuff that you don't use.</comment>


A new log4j 2.0 - <AUTHOR> http://www.grobmeier.de/the-new-log4j-2-0-05122012.html#.UL-Nd4M723k <comment><USER2> "In old days, people wrote things like this:

      if(logger.isDebugEnabled()) {
        logger.debug("Hi, " + u.getA() + " " + u.getB());
      }

"Many have complained about it: it is very unreadable. The log4j 2.0 team thought about things like that and improved the API. Now you can write the same like that:

      logger.debug("Hi, {} {}", u.getA(), u.getB());

<comment>~

They had a good reason to write it that way! Otherwise, `u.getA()` and `u.getB()` are evaluated and the values discarded when debugging is turned off. Evaluating these functions may be expensive (e.g. walking the stack), or may have debug-specific side effects.

<comment><USER3> Wouldn't u.getA() and u.getB() still be evaluated first so that their values can be passed to the debug method? Without the if statement, how is the debug method not being called?

<comment><USER2> In the original code, the debug call is guarded by a condition:

      if (log.isDebugEnabled()) {
        log.debug("{}", expensiveOp(), debugModeOnlyOp());
      }

But in the new code, the calls to expensiveOp and debugModeOnlyOp will be called every time this sequence of code is run regardless of the condition:

      log.debug("{}", expensiveOp(), debugModeOnlyOp());

which is equivalent to the old code:

      var x = expensiveOp();
      var y = debugModeOnlyOp();

      if (log.isDebugEnabled()) {
        log.debug("{} {}", x, y);
      }

In most languages that do not support macros, it's impossible to correctly state the dependency of expensiveOp & debugModeOnlyOp on the log.isDebugEnabled() flag using log4j's new API.

</comment></comment></comment></comment><comment><USER4> NO!

Sorry, let me rephrase that: FUCK NO!

What Java needs is for all the fucking logging separatists to grow the fuck up and accept that for the greater good we need a single solution for this -- and for Oracle to grow a brain, and to give Java a proper logging API and a good default implementation so we can stop wasting more energy on all the fucking logging frameworks for Java that do not work.

Anyone not working towards giving J2SE a good logging API and at least one good implementation that can be distributed with the JDK can go to hell.

<comment><USER5> SLF4J basically won, IMO. Barring extremely specialized uses, there's not hugely compelling reasons to use anything else than slf4j-api as the logging interface to your backend of choice, I think. So there is a good default choice, and the "proper logging API" exists.

Flume uses it, logback uses it, log4j is compatible with it, and it's compatible with pretty much everything, or you can write your own logger however you like.

P.S. You sound really pissed about this. Do you have personal experience with logging frameworks?

<comment><USER4> No, slf4j doesn't solve any problems: it just gives you different problems. What makes it twice as infuriating is that slf4j _looks_ really promising until you realize that it is just more pig-lipstick, albeit in a different color than before.

PS: That is because I am really pissed. If there is one thing I fucking hate it is all the time you have to spend trying to fit components together that use any one of the gazillion different logging frameworks and combinations of logging frameworks that are possible. But I'll give you that: I despise the shitheads behind log4j more than I despise the people behind slf4j.

Logging sucks in Java.

<comment><USER5> Specifics, please. I just implemented a logging backend for slf4j on Android in roughly ~1 hour with virtually no prior knowledge other than generally how to use slf4j and how to use Android's Log class.

It just worked, and it was pretty darn simple, and now I have fancy log messages. I even customized the tags so that instead of com.example.some.path.to.Something, I can summarize that to c.e.s.p.to.Something.

<comment><USER4> Writing a logging backend for slf4j isn't hard. Anyone unable to do that should not be programming.

Trying to figure out how to a) get lots of components that rely on wildly different logging frameworks and even multiple versions of the same logging frameworks and b) try to distill that into common practices in an engineering organization, is hard. In part because you have to spend two hours explaining the problems we've been through every time someone thinks all these problems have a 5 minute fix.

(And the slf4j technique of placing a bridge in the class path and hoping for the best is just priceless. That deserves an entire hour of slow clap)

<comment><USER5> Okay, now we're getting somewhere, but as someone who has used Java more client-side than server-side, I'm not familiar with the problems everyone's else been through. I would love for you to enlighten me, if you could!

Also, what would you substitute in place of StaticLoggerBinder? It did strike me as somewhat janky to rely on a class with a matching name and class just _existing_.

<comment><USER4> The problem is not software. The problem is people.

Rather than trying to explain the problem (which most people who work on logging struggle to see), let me outline how you determine when the problem is either solved or absent.

The problem is solved when people like me (a hands-on system architect who writes code and tries to make decisions on behalf of a number of developers) do not have to think about logging APIs, facades or backends anymore. When nobody in my organization has to spend time trying to resolve the conflicts that arise from different logging technologies (and different versions of same technologies) being in use in the same system.

We have an example of that in Java: the collection classes. For most bread- and-butter uses Java has List, Map and Set types that people can just use. They are well designed, well documented and you can count on them to be available at no extra cost. It is unusual for a non-mad( _) Java programmer to feel the need to introduce extra dependencies for simple lists, sets, maps etc.

You most likely are not going to feel the pain of logging chaos if you are writing a single application. If you try to make decisions on behalf of 50+ projects, some of which rely on an obscene number of libraries, that pain will manifest itself every day and you will re-live the same pointless discussions and get the same pointless advice over and over and over.

Hope this sheds some light on why I think what I think.

(_) there are idiots who depend on third party implementations where the types in J2SE would suffice.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Not to be a pessimist but, I can do without more versions of log4j.

The pain and annoyance of fighting version conflicts from multiple dependencies and the desire of some to include slf4j directly in their jar files gives me FAR more pain than anything syntactic related to how the logger actually works. If you want to truly improve logging, find a way to avoid this mess.

<comment><USER7> The standard logger in JDK is entirely serviceable.

<comment><USER6> That doesn't fix anything.

Examples:

One dep want log4j-api 1.6.4 one wants 1.4, this doesn't matter to the client but I have to make sure to override one in maven to make sure the API version matches the back end version. When your project has 20 dependencies all using log4j, its a pain in the ass and makes your POM quite ugly.

Two deps stupid enough to include slf4j in their JAR files, now my build process consists of pulling the deps from maven, then running a script to manually strip out the slf4j files from the jar. Yes this is the authors fault but a logger that would allow 2 versions on the classpath would be amazing, granted it would require some trickery with the class loader to make work.

<comment><USER6> And of course I got slf4j and log4j backward in my examples.

</comment></comment></comment></comment><comment><USER8> So why is this better than slf4j + logback? I'm not seeing any advantages.

log4j, slf4j, and logback were all written by the same guy, Ceki Gülcü. I'd be interested to hear what he has to say about it.

<comment><USER9> Ceki is still on the Apache Logging project management committee. You might reach him on the log4j mailing list to ask him.

slf4j and logback are a good combination. Of course there are differences, some are highlighted in the blog post.

From the website - decide yourself. <http://logging.apache.org/log4j/2.x/manual/index.html>

So why bother with Log4j 2? Here are a few of the reasons.

\- Log4j 2 is designed to be usable as an audit logging framework. Both Log4j 1.x and Logback will lose events while reconfiguring. Log4j 2 will not. in Logback exceptions in Appenders are never visible to the application. In Log4j 2 Appenders can be configured to allow the exception to percolate to the application

\- Log4j 2 uses a Plugin system that makes it extremely easy to extend the framework by adding new Appenders, Filters, Layouts, Lookups, and Pattern Converters without requiring any changes to Log4j.

\- The performance of Log4j 2 is similar to that of Logback. It is slightly slower in some tests and faster in others.

\- Due to the Plugin system configuration is simpler. Entries in the configuration do not require a class name to be specified.

\- Support for Message objects. Messages allow support for interesting and complex constructs to be passed through the logging system and be efficiently manipulated. Users are free to create their own Message types and write custom Layouts, Filters and Lookups to manipulate them.

\- Log4j 1.x supports Filters on Appenders. Logback added TurboFilters to allow filtering of events before they are processed by a Logger. Log4j 2 supports Filters that can be configured to process events before they are handled by a Logger, as they are processed by a Logger or on an Appender.

\- Many Logback Appenders do not accept a Layout and will only send data in a fixed format. Most Log4j 2 Appenders accept a Layout, allowing the data to be transported in any format desired.

\- Layouts in Log4j 1.x and Logback return a String. This resulted in the problems discussed at Logback Encoders. Log4j 2 takes the simpler approach that Layouts always return a byte array. This has the advantage that it means they can be used in virtually any Appender, not just the ones that write to an OutputStream.

\- The Syslog Appender supports both TCP and UDP as well as support for the BSD syslog and the RFC 5424 formats.

\- Log4j 2 takes advantage of Java 5 concurrency support and performs locking at the lowest level possible. Log4j 1.x has known deadlock issues. Many of these are fixed in Logback but many Logback classes still require synchronization at a fairly high level.

\- It is an Apache Software Foundation project following the community and support model used by all ASF projects. If you want to contribute or gain the right to commit changes just follow the path outlined at Contributing

</comment></comment><comment><USER10> What about logback (<http://logback.qos.ch/>)? I thought that it was the new log4j.

<comment><USER9> log4j1 was the beginning. Then one of the team left and build logback. The log4j2 team wants a logging framework which is build in "the apache way" and under "apache license". The project has grown fantastically and you can expect some cool features in future.

Still logback is a great framework. The log4j2 team learned of it and I think it is also in the other direction.

My (personal) recommendation is you use slf4j and chose a logging framework to your taste. You might choose based on a specific feature, on issue which has not been resolved in the other framework, on the license or how easily you can contribute.

That said, the log4j2 project is pretty active.

</comment></comment><comment><USER11> I really with the log4j people would just call it quits. They spent 5 years not delivering anything. Then the tragedy of commons logging happened, which only seems to survive because Spring Source uses it.

Please. Fucking. Stop. Just delete the damned project. End the ridiculousness and JUST USE SLF4J.

<comment><USER9> slf4j is not a logging framework.

</comment></comment><comment><USER12> You guys should have tried to get back the logback author and his project back under the Apache umbrella instead of creating yet another loging implementation. Your "improvements" could have been labeled as logback 2.0.

Yet another implementation causes only more fragmentation (the only real pain w.r.t to logging) and in almost all cases the existing solutions are totally sufficient.

<comment><USER9> Ceki is not liking the Apache model. He left because of that. You can read more about his reasons on his blog: [http://ceki.blogspot.de/2010/05/committocracy-as- alternative...](http://ceki.blogspot.de/2010/05/committocracy-as-alternative- for.html)

But still he is a community member and PMC of Apache Logging: [http://people.apache.org/committers-by- project.html#logging-...](http://people.apache.org/committers-by- project.html#logging-pmc)

On the other hand, we (the Apache guys) are not liking how the logback project is operating. At least it is me who does not like it, but I guess the others think similar. We want a community driven logging project which uses the Apache License. We surely don't want a logging project which is officially run by a company (like QOS runs logback). I have seen many cases where this does lead into problems.

That said it will be difficult to motivate Ceki to get back to Apache Logging. But we are open to his contributions and hope that there will be a good, technical exchange between both projects.

Another personal note: I am really against person cult. The Apache Logging project has some really great and experienced committers on board. One of them is working on Java logging for around 20 years and he set a very, very high bar for log4j. Having Ceki on-board is definitely of interest, but he is not the only person who knows about logging.

Please have also in mind, that a new log4j2 release is just the beginning of our journey (hopefully).

</comment></comment><comment><USER13> Nice to see some new ideas are explored. We can't have only one logging framework. Keep up the good work !</comment>


Feedback on Data Analytics Bootcamp Offered by UC Berkeley at Belmont Extension? - <AUTHOR> I have come across Data Analytics boot camp offered by University of California Berkeley at Belmont Extension, its 24 weeks bootcamp part-time and costs $12,000. Can you please share your thoughts on this, how worth is it for that money and chances of getting a good job in data science area in terms of its curriculum and so on, providing any feedback would be great. <comment><AUTHOR> Following is the URL to bootcamp info: [https://bootcamp.berkeley.edu/data/](https://bootcamp.berkeley.edu/data/)

<comment><AUTHOR> can anyone please provide some feedback on data analytics bootcamp offered by UC Berkeley</comment></comment>


Apple uses ColdFusion - <AUTHOR> http://investor.apple.com/Application.cfc <comment><USER2> Just a friendly heads up:

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

links to:

<http://blog.pud.com/post/5239917032/users>

Which gives a 500 internal server error.

</comment><comment><USER2> I love this guy Pud, but honestly man you have nothing to prove. What is the expected reaction here? "Haters gonna hate" - meaning I don't think you'll win any converts to ColdFusion with this information, that said why do you feel that you need to? Keep kicking out successful businesses like you've done for years and ignore the "n00bs" who can't see any value in a site not crafted with the latest pre-release of RoR and Node.js.</comment>


Whale makes human like sounds - Listen to the audio clip. - momma-joe http://www.bbc.co.uk/news/science-environment-20026938

<comment><AUTHOR> This is hilarious, and really impressive.

"Der der der-der derrr der der-der!"

I think the whale's just making fun of us.</comment>


MicroEval (YC S12) Aims To Take The Pain Out Of Performance Reviews - <AUTHOR> http://techcrunch.com/2012/08/16/microeval-launch/ <comment><USER2> At MSFT my 1:1 with my manager is pretty much this. If there's any immediate good/bad things that he needs to share with me, that's the venue we do it in. It's one of the reasons why I really appreciate working for him (I had previous managers that didn't help me at all and I was lost in the weeds).

It's not for everyone; but I personally really appreciated timely feedback on what I was doing right and what I was doing wrong.

For the last few annual reviews it's been pretty hands off from my side of things - anything that is brought up about great things I did or things I struggle with we've talked about it already numerous times over the year. If you're surprised in your annual review you're doing something wrong.

<comment><AUTHOR> Agree 100% Splines. We've found that people are surprised way too often in their performance reviews (which is actually how this company came about). 1:1s and face to face interaction is incredibly valuable and we don't seek to replace or uproot that in any way. However, another important component is keeping a record of progress so that the annual review is based on something factual or at least written (especially when the review is the basis for promotion/termination/bonuses etc). In addition, we've seen that MicroEval can be a good tool that facilitates and begins conversations about performance and growth.

</comment></comment><comment><USER3> I'm all for improving performance in the workplace. Many businesses desperately need it. However I feel like this product is striving to be a faster horse instead of tackling the underlying issue. Namely that performance reviews of any type can be gamed. Doesn't matter if they're every six months or every ten minutes.

I think performance reviews can be eliminated entirely. VPs that are in charge of products could be evaluated on how much revenue their product brings in. VPs could have the power to fire anyone working under them. Same with the managers working under the VPs.

The idea is to motivate employees to achieve one thing: bringing in more revenue (which is the goal of all for-profit companies anyways). There's no need to slice and dice the "performance" into pieces. Just empower people and measure revenue.

<comment><USER4> Thanks for the feedback spaghetti. To some extent, and for some positions, hard metrics such as revenue are definitely a very strong indicator of performance. However, this approach neglects the fact that businesses and types of employees are extremely nuanced.

Often times it is very difficult for an employee to identify the reasons why they are not performing up to expectations (this even applies to the revenue model).

In our research, we have also found that a culture driven only by numbers and money typically produce unhappy employees and decreased morale. Cultures that are driven on improvement and achievement through performance tend to produce happier employees that are excited to work for a what is likely unique company.

Ultimately, we created MicroEval to increase the conversations happening in the work place. And we want to provide the participants of those conversations concrete things to talk about. Having identified the nuances of one's performance gives them a clearer target for improvement.

<comment><USER5> I think youre on the right track - Ive worked on an eval application in the past and your research about numbers / metrics is spot on. Try to stay away from quantifying performance and focus on helping managers / employees capture achievements / shortcomings. Give employees an opportunity to demarcate the achievements / shortcomings they jotted over the year before the final eval.

</comment></comment></comment><comment><USER6> This article takes the perspective that the purpose of performance reviews is to provide feedback to employees. It was my understanding that the purpose of performance reviews was to provide evidence to the government that you had reason to fire the person. Attacking the first idea won't bear much fruit if what people want is the second.

This is a (slightly) different area, but during my year as a teacher, my much more experienced coworker, who came from the New Jersey system, couldn't emphasize enough that anytime a "problem" student committed any infraction, no matter how minor, he wanted us to write it down. He was quite explicit that this documentation should be based on our view of the student, not the conduct, and that the purpose was that, should a parent complain about actions we were taking against their child, we wanted to have a huge file of infractions to show off.

(Clarification of "based on the student, not the conduct" -- otherwise good student commits an infraction that might merit discipline ("She punched through the girls' bathroom window"). We don't care. Awful student commits a minor infraction ("Talking in class"). We write it down.)

<comment><USER7> In the US we have at will employment, so using performance reviews primarily for evidence to fire people is not going to something that is common.

<comment><USER6> Nominal at-will employment might not provide all the protection you would expect. For example, though the employer may end an at-will contract for "any" reason, certain reasons are legally prohibited.

Further, you might want to read [http://www.huffingtonpost.com/aaron- greenspan/why-i-sued-goo...](http://www.huffingtonpost.com/aaron- greenspan/why-i-sued-google-and-won_b_172403.html) for an example of court thinking:

'In fact, clause 6 of the AdSense for Content Terms and Conditions does not allow Google to terminate accounts for "no" reason--only "any" reason. Much to my amusement, the judge interrupted her to make a point that sounded familiar.

"But you couldn't terminate my account because of the color of my eyes, could you? I have brown eyes. You couldn't terminate my account because of that."

Ms. Milani reiterated her previous arguments, but the judge didn't buy them.'

Personally, I would argue that "the guy has brown eyes" is sufficient "any" reason, but I appear to be losing the popular battle.

<comment><USER7> You're correct. My only point is that it is not enough of an issue here in the US that accumulating evidence to fire somebody is not a primary reason to institute performance reviews company-wide (in general).

</comment></comment></comment></comment><comment><USER8> This was an idea I was toying with for a while, and even started working on as a side project, so while I'm kind of bummed these guys have beaten me to the punch (and it looks like they did a nice job doing it), in a way it's sort of nice to see that other teams out there concur with my assessment that the current state of performance reviews is nothing short of awful.

I think the real question for something like this is: Can you convince management that its a big enough problem?

Ask any rank and file employee at a mid size company and they will tell you that evaluations are miserable, and borderline useless. When I mentioned some ideas for improving evaluations to my manager at my current job, the feedback I got was basically that the current system "wasn't great", (and basically everyone agreed), but it wasn't bad enough to justify the pain of switching to something else.

Convince the decision makers that bad evaluations are enough of a problem to justify switching, and then make it easy to do so, and reviews could actually (gasp!) become useful again.

<comment><AUTHOR> Thanks for the validation kadabra9. This is absolutely a problem we are aware of and in our experience, management does recognize that there is an issue. However, what it may come down to is offering a product that is so clearly better than the current methodology and solutions that it becomes a no brainer to switch. This is what we'll be continuing to work towards. Would love to hear more of your thoughts if you'd like to shoot me an email.

</comment></comment><comment><USER9> I'm torn by the screenshot; do the buzzwords in the sample make this more or less appealing to your customers?

If there is no measurable difference, can you do the world a service and reduce the buzzword usage?

When I'm faced with a question like "Did this individual contribute to collaborative innovation and excellence in a dynamic group setting?" I tend to throw-up in my mouth a little and stop giving honest answers and start thinking about which answer will most benefit me...

</comment><comment><USER10> This is a great team and I'm excited for what they will do. Everyone hates performance reviews!

</comment><comment><USER11> $10/employee/m - seems expensive for a form tool that collects minimum data

</comment><comment><USER12> Is Techcrunch connected to/or sponsored by YC by any chance? I'm not accusing, I'm questioning out of real curiosity...I see many many YC-related posts on Techcrunch..hence the curiosity.

</comment><comment><USER13> I guess there's a void in the market somewhere after the Rypple acquisition by Salesforce?

</comment><comment><AUTHOR> Link to site: <http://microeval.com></comment>


Free YouTube Video Editor Alternative - <AUTHOR> https://medium.com/@sanjana18rm/free-youtube-video-editor-alternative-here-is-everything-you-should-know-6919bfe1cd7c <comment><USER2> After I read this blog, I tried using the tools. Since my laptop is not that high end, I couldn't risk to test camtasia . So I tried hippo video. I found a few things useful.

1\. Creating video on the fly with multiple recording options ( resolution, device selection etc.,) 2\. Easy sharing, collaboration (comments) and reactions on shared page is pretty cool 3\. Analytics for video is brilliant 4\. I think tracking might be easy in future

Camtasia may be good in some cases. Since I didn't explore it, I skip that.

</comment><comment><USER3> We have used Camtasia for our video edits. While it is super simple to use, it is pretty heavy in the size. The cost of $249 was something which we were not comfortable.

The other challenge that I have seen with Camtasia, it doesn't give me the flexibility to make the video interactive. If I want to add a bunch of questions to the Video, it looks like I can't do that with Camtasia.

</comment><comment><USER4> The killing of the YouTube editor strikes me as a significant snub to Chromebook users. Can Google not see a browser-based video editor as useful? I could see a browser-based video editor as a core app in either Google Classroom or G Suite. I strongly believe the best alternative to YouTube video editor would be a browser-based video editing tool.

<comment><USER5> A lot of parameters creep in when its browser based compared to a local app. But also a lots of doors open to make the best use of APIs and integrations with other cloud tools. Had used HippoVideo once or twice, apart from the chrome extension being a pre-requisite, which I can live with, it seemed to handle the recording and editing pretty well. Might be a place to start for your needs, its a free browser based tool!

</comment></comment><comment><USER6> Agree with the list of alternatives. I have used Camtasia before, but I feel it's pricey and yeah, I have to download the software to my computer. On the flip side, Hippo Video is an online video editing tool which is good.

And I feel iMovie Maker is for Professionals. I don't think anyone looking for quick video editing is comfortable with iMovie Maker.

</comment><comment><USER7> With iMovie Maker we can create production-quality videos, so those who're looking to edit simple videos in a quick span of time can either go for Camtasia or Hippo Video. Both are equally good. I've tried both of them. Camtasia is a downloadable software whereas Hippo Video is an online video editing tool.

<comment><USER8> Camtasia is a good tool indeed. For people without the tech aptitude, a browser-based tool can be a lifesaver. Disclaimer - am from HippoVideo

<comment><USER9> Hi, how are your securities? Do you save a copy/version at your end even after i delete the video after editing?

</comment></comment></comment><comment><USER10> Yeah I loved using YouTube editor so much, now that it's gone I was searching for an ideal alternative so long. This piece of writing has given me good choices. I'm gonna try them all and see which suits my requirements better. Thanks!

</comment><comment><USER11> Thanks for the piece. It's definitely a good idea to inform people about the free editing softwares available, in the event that they cannot afford to pay for pro tools like iMovie Maker, or any other software for that matter.

</comment><comment><USER12> What about schools that run on Chromebook? Does any of the editing tool here support chromebook? The withdrawal of the YouTube Video Editor feels like a snub to Chromebook owners—and educational users, in particular.

<comment><USER13> Hippo Video is the answer. Give it a try and you'll love the way it works. Start creating videos in a jiff & Feel like a pro when using its beautifully crafted editing features.

</comment></comment><comment><USER14> I liked the way the sharing and privacy options works in hippo video. Whereas camtasia needs me to download the video and store that in some hosting site for sharing purposes. In Hippo all this is in a single place.

</comment><comment><USER15> Videos are very important in digital marketing. I hope this tools will help to create intuitive videos. It's sad that YouTube is leaving this market and good to see that few players there to match that macho

</comment><comment><USER16> I create quite a few instructional videos online and edit it using camtasia. If the editor is as good as the post says then I'll give it a go. Has anyone tried it? Is it worth the time?

<comment><USER8> Hippo Video has a good editor and can be used for the instructional video purpose. It has a free trial period, do give it a try.

</comment></comment><comment><USER9> I have been using camtasia, but need to download and install and licence is also limited per user. I have been looking for an alternative. Hippo video looks is an Exellent option.

</comment><comment><USER17> I have used Quicktime and Handbrake to record and convert video to reduce size and share . But Hippo Video gave me the convenience to do all from browser. I love Hippo Video!!!

</comment><comment><USER18> Wow, Hippo Video lets us create GIFs! I make lot of GIFs in a day, lol that's my hobby. GIFs + Editing + Video creation is a deadly combo. Gonna try creating GIFs right away.

</comment><comment><USER19> Movie Maker Online? Man, I'm done and dusted with it. It's the most complex tool I've ever seen. How did it even qualify as an alternative?

</comment><comment><USER20> Very impressive, i was looking for one, seems my search end here. keep it up guys .</comment>


Windows Is Bloated, Thanks to Adobe's Extensible Metadata Platform - <AUTHOR> https://www.thurrott.com/windows/109962/windows-bloated-thanks-adobes-extensible-metadata-platform <comment><USER2> You would be surprised at how much cruft in Windows over the years has been directly due to Adobe. I had many bug triage sessions where Windows developers at Microsoft had to work around Adobe problems to keep Windows users happy. I always thought it was unfair and was quite impressed by Microsoft at their willingness to handle this so quietly.

<comment><USER3> File metadata is not cruft. It's a very good thing. Vista's/Win7 Explorer.exe with its metadata columns is GREAT.

Even better was Windows (Live) Photo Gallery. Sadly it's dead since Feb 2017, you can't even install it anymore, as only a now broken WebInstaller exists. Photo Gallery was hand down 1000 times better than Picasa/Lightroom/Photos/iPhotos for just browsing photos and videos. And it alo supported tags with hierarchy (eg "City/New York/Manhattan").

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

Sadly WinFS failed, metadata is nowadays often misunderstood and persived by companies contra productive in the age of cloud service strategies. Flickr is probably the only well known photo service tht keeps metadata. Facebook made it popular to strip metadata and keep annotations internally (as vendor lockin) - now common also with other services.

I hope there will be a kind of come back of metadata. People need more education to understand the concept, that's all.

<comment><USER4> > _Even better was Windows (Live) Photo Gallery. Sadly it 's dead since Feb > 2017, you can't even install it anymore, as only a now broken WebInstaller > exists._

This sounds like a challenge. You're on.

\- Do some scratching around; discover sites hosting "wlsetup-all.exe"

\- Point the Web Archive at download.live.com

\- After some trial and error with broken pages find [http://web.archive.org/web/20161130174327/https://support.mi...](http://web.archive.org/web/20161130174327/https://support.microsoft.com/en- us/help/18614/windows-essentials)

\- Follow the "Download options" link

\- Eventually land on [http://web.archive.org/web/20161226002912/https://support.mi...](http://web.archive.org/web/20161226002912/https://support.microsoft.com/en- us/help/17779/download-windows-essentials), and disable JavaScript so the page doesn't kill itself (remember on Chrome you just click the (i) to the left of the URL)

\- Ah, a "Download Now" link!

      $ curl -vv http://go.microsoft.com/fwlink/?LinkID=255475
      Location: http://g.live.com/1rewlive5-web/en/wlsetup-web.exe

      $ curl -vv http://g.live.com/1rewlive5-web/en/wlsetup-web.exe
      Location: http://wl.dlservice.microsoft.com/download/C/1/B/C1BA42D6-6A50-4A4A-90E5-FA9347E9360C/en/wlsetup-web.exe

Hmm...

      (note s/web/all/g)
      $ curl -vv http://g.live.com/1rewlive5-all/en/wlsetup-all.exe
      Location: http://wl.dlservice.microsoft.com/download/C/1/B/C1BA42D6-6A50-4A4A-90E5-FA9347E9360C/en/wlsetup-all.exe

Can I...?...

      $ curl -vv http://wl.dlservice.microsoft.com/download/C/1/B/C1BA42D6-6A50-4A4A-90E5-FA9347E9360C/en/wlsetup-all.exe
      < HTTP/1.1 404 Not Found
      (...)

Server Error

      (...)

404 - File or directory not found.

The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.

Hmmm.

\- Try and load wl.dlservice.microsoft.com/robots.txt in the Web Archive

\- Get redirected to Microsoft homepage!!

\- Lookup wl.dlservice.microsoft.com/* in Web Archive

\- "805 URLs have been captured for this domain."

\- Search for "c1ba..." \- get hits!

[http://web.archive.org/web/20170416220642/http://wl.dlservic...](http://web.archive.org/web/20170416220642/http://wl.dlservice.microsoft.com/download/C/1/B/C1BA42D6-6A50-4A4A-90E5-FA9347E9360C/en/wlsetup- all.exe)

137329840 bytes.

There are other sites that have copies of the file, but a) this one is from the Web Archive and b) I've verified using a mixture of WA and still-live Microsoft redirects that this is the latest-ever release.

<comment><USER3> Thanks!

I previously copy&pasted the folder to another PC, and manually patched the registry and copied some dlls to get it working.

<comment><USER4> Oh, nice. No problem ^^

</comment></comment></comment></comment></comment><comment><USER5> In one of the comments on the page, a reader ran the analysis [1] on a windows installation and reports the bloat size.

 _Total bytes wasted: 5341278_

[1] [https://gist.githubusercontent.com/riverar/f4a56b91580af1bd3...](https://gist.githubusercontent.com/riverar/f4a56b91580af1bd3cf4dfacc3733bc3/raw/8f35e3def3173ded72c5715e5af37e830b2a639f/results.txt)

<comment><USER6> amusingly that's about 50% of the size of the webpage itself (2.4mb)

<comment><USER7> Surely you mean twice the size of the web page.

<comment><USER6> er, yes!

</comment></comment></comment></comment><comment><USER8> By the sounds of it, this bloat is minor. (Keep in mind, the author is pointing out the two most extreme examples.)

Bloat arises from a lot of different places, a lot of which cannot realistically be controlled without drastically affecting user expectations, system performance, and how software is developed.

Consider graphics. If you are quadrupling the color depth, you are quadrupling the amount of memory required for graphics resources. Even more fun, if you are doubling the resolution you are quadrupling the amount of memory required for graphics resources. Going back to the olden days would only be an option if they are willing to compromise on the quality of the graphics.

At the other end of the spectrum are developers. Should they really be choosing things like the type of an integer to reduce the size of code and data? Old software was often limited due to such considerations. In some cases software used bizarre tricks to reduce bloat, such as cramming data into the unused bits of an address. (Apparently that was common on 68000 based personal computers.)

Don't get me wrong, there is a lot of unnecessarily bloated software. Yet I suspect that the vast majority of that bloat exists for very good reasons.

<comment><USER9> > (Apparently that was common on 68000 based personal computers.)

I wouldn't say it was very common, but there are some notable examples, such as Amiga BASIC which was incidentally written by Microsoft. As a result it needed a patch to run on machines with the bigger M68k CPUs (which had 32 address lines vs. 24 address lines on the 68000), but it was so awful it died a swift death in any case.

<comment><USER10> Not quite because it was awful, but because Amiga REXX was so much better.

<comment><USER9> AREXX ports were fantastic, but the language is awful. But Amiga BASIC was no longer shipped wit the OS as of 2.x anyway, so unless you got a copy elsewhere there was no choice. But Amiga BASIC had falled out of favour long before that.

</comment></comment></comment></comment><comment><USER11> It's not just Windows that is bloated; so is macOS, Android, and iOS. The wastefulness annoys me and I don't want to hear its okay because we have tons of disk space and RAM - it is still wasteful.

I understand why they kitchen-sink operating systems - its mainly so they can crow about new features when releasing new versions of the OS. But I wish they would offer alternate installs for those of us who are proficient.

<comment><USER12> On android I'm still severely limited by disk space and RAM, the waste is very noticeable. It still is on PC for most users too, cheap SSD's are still quite small, there are a lot of new laptops sold with 64GB SSD's and 2GB RAM. Good luck running anything in node.

</comment></comment><comment><USER13> It's not the first time Windows has shipped with shameful metadata. For example, a .wav file shipped with Windows XP appears to be authored with a pirated version of SoundForge: [https://web.archive.org/web/20060721090521/http://techrepubl...](https://web.archive.org/web/20060721090521/http://techrepublic.com.com/5208-11183-0.html?forumID=89&threadID=173539&messageID=1765547)

<comment><USER14> Eh, that sort of thing happens all the time. We have customers that are national banks of foreign countries that are running on unactivated or cracked Windows servers.

I would bet that case was a contractor who was using their own equipment. Similar things have bit us in the ass with freelancers that have ripped off stock images and presented them as their own.

<comment><USER13> Yeah, but you'd expect the golden master .iso of a major Windows release to be examined in greater detail and not sloppily add bloat like that. It's in great contrast to earlier releases like Windows 95 where blinking dots were removed from the task bar to save a few kilobytes of demand paged memory. [https://blogs.msdn.microsoft.com/oldnewthing/20031010-00/?p=...](https://blogs.msdn.microsoft.com/oldnewthing/20031010-00/?p=42203)

<comment><USER15> The difference is Win95 had a floppy disk version sold to consumers. 13 disks specially formatted to store an extra 200kb each.

[https://blogs.msdn.microsoft.com/oldnewthing/20050819-10/?p=...](https://blogs.msdn.microsoft.com/oldnewthing/20050819-10/?p=34513)

</comment></comment></comment></comment><comment><USER16> It's great investigative work into Windows binaries, and I hope it gets addressed for the sake of people's disk space, but I think the tone is too harsh and overstated.

Example: He cites effects on startup time - but has he considered the existence of virtual memory? When explorer.exe loads and maps the bloat into address space, it doesn't need it in RAM until the first page fault accessing it which likely will not even happen.

<comment><USER17> Most binaries in Windows are signed. This requires the loader to load each PE section, hash, do some number crunching, and compare the result -- which results in the entire file being loaded into memory before execution. This involves (potentially random?) disk I/O, which can be surprisingly slow on certain platforms (e.g. Xbox One, HoloLens, anything IoT, anything with eMMC).

<comment><USER16> Fair point. Another reason code signing is stupid.

</comment></comment></comment><comment><USER18> Given this bloat resides in the metadata of PNG assets exported from Photoshop, couldn't this affect any operating system?

How many applications on Mac OS utilize PNG assets which were exported from Photoshop without any further optimization?

<comment><USER13> When you add a .png file to an xcode iOS project, it will add a build step to pngcrush the asset automatically. [https://developer.apple.com/library/content/qa/qa1681/_index...](https://developer.apple.com/library/content/qa/qa1681/_index.html)

<comment><USER18> Interesting. I did not know that. Would the same hold true outside iOS targets?

<comment><USER19> macOS supports true vector assets, so I'm guessing it reduces the need for such measures. But coming back to your question: I'm not sure, but both iOS and macOS use the same asset filetype, so I'd assume so.

</comment></comment></comment></comment><comment><USER6> I wonder how many hundreds of kilobytes that adds up to in a 20gb windows install

<comment><USER20> What's the story on that footprint, anyway? We went from (from memory) ~250-350MB Win98 to ~700-800MB XP to ~10-15GB(!?!?!) Win7, and just up from there. Plus the default settings seemed to starting going _really_ crazy with swapspace/caching around the time of Win7. Another 10+GB if you didn't tell it to knock that crap off. Why the sudden, giant shift? They didn't add 10-15x the features, that's for sure.

<comment><USER21> WinSxS (Windows Side By Side) assemblies were introduced to avoid dll hell by allowing Windows to store multiple versions of installed dll's. So even a minor security patch may leave the former version around because other apps may use/expect it. I think that might add some bloat over time? Also Windows Update installer caches. A ton of Windows updates actually leave their installers around in case you want to uninstall them. That can add up! I've seen it easily get to 1-2 GB.

</comment></comment></comment><comment><USER22> I can't comment on this issue, but if you want to get an idea of how a company can take over an excellent software and ruin it making it beefier and slower, just take a look at the wonderful snappy gem that was Cool Edit Pro and what it became after being morphed into Adobe Audition.

<comment><USER23> I still have an installer and valid license for the last version of Cool Edit Pro. So glad I hung on to it!

</comment></comment><comment><USER24> shameless plug: you can throw a windows pe file (exe, dll, etc.) at leanify and it will remove all the garbage in pngs in that pe file (even those embedded pngs in high res ico file in pe file), and it will also optimize png compression with zopfli. But don't use it on windows system files because modifying those pe files will definitely break the digital signature.

<comment><USER17> Author here -- Very neat, saves writing another tool!

</comment></comment><comment><USER25> Is it feasible to remove this junk yourself, or will the system freak out about hacked binaries? Would it also complain if I just applied to the PNG files?

<comment><USER26> I'm a Linux specialist and a stranger to Windows but logically any modification of binaries should result in security issues.

And in a perfect world the external PNG content would also be verified.

<comment><USER27> All Windows binaries are signed. Changing the embedded PNG will void the signature. Not sure what Windows will do if explorer.exe has a bad signature.

There is also a Windows system integrity checker service which disallows changes to protected Windows files, and repairs them automatically (using a cached copy).

<comment><USER28> Well, then you modify that, too.

It's your computer, you installed the software, you have a license, therefore you own that copy, and can modify it however you wish. (EU Copyright Directive, especially Article 6 and following).

Now, the question is, why does Windows not allow me to add signatures that should be considered acceptable by default, why can I not modify my own OS installation?

<comment><USER27> Can you modify Android or iOS system files or add your key? Rooting is not really an answer, because in that case you can also root Windows.

I was under the impression that you can only legally modify files for fair use or compatibility purposes, not just because you want so.

<comment><USER28> Yes, and no.

On Android, I can change which keys the bootloader accepts for signing, and add my own.

From then on, the system will allow me to normally push updates, etc.

Apparently, on Windows, even as Root/Admin, I can not do so.

Additionally, that is correct in the US, but in the EU, having a license is equivalent to owning the copy, and having all relevant ownership rights, such as the right to modify, right to rent out, right to resell your copy, etc.

If you can buy a car, add a different FM radio, and resell it, so you can buy a Windows copy, modify the start button to show a penguin eating an apple, and resell it.

<comment><USER27> You can do whatever you want on Windows if you know your way. You can disable the system integrity checker if you are admin.

You are wrong regarding the right to modify software. It seems to say pretty clearly that you are only allowed to modify software only to make it work as intended:

Exclusive rights of the rights-holder: the translation, adaptation, arrangement and any other alteration of the program;

Limitations of those exclusive rights: A lawful acquirer of a program may reproduce, translate, adapt, arrange or alter the program, when it is necessary in order to use the program in accordance with its intended purpose.

[http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=URISERV%3...](http://eur- lex.europa.eu/legal-content/EN/TXT/?uri=URISERV%3Ami0016)

<comment><USER28> > You are wrong regarding the right to modify software. It seems to say pretty > clearly that you are only allowed to modify software only to make it work as > intended:

That's your interpretation of the law, the ECJ has ruled otherwise.

<comment><USER27> Please link to said ruling. The one I could find was related to the right to sell an unmodified backup copy.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> Egad that XML is horrible! Whoever thought that could possibly be a sane format?

And to repeat it over and over — it's like a boot stomping on disk space, forever.

<comment><USER12> Adobe doesn't really get xml at all. A couple of times I've had to make software produce InDesign templates ([https://spin.atomicobject.com/2017/04/25/dynamic-indesign- te...](https://spin.atomicobject.com/2017/04/25/dynamic-indesign-templates- xml-data/)), you have to do string templating because real xml serializers aren't compatible with the "sortof xml" that adobe uses.

<comment><USER30> I did a big project involving InDesign and the XML import a few years ago (CS4 times). Once I learnt to be very careful when editing the templates, it was pretty satisfying.

I remember that certain XML tags had to use the exact namespace defined in the Adobe spec, but other than that it all seemed pretty XML compliant.

I was using Python / ElementTree, and had to override the namespaces to make sure the exact name was being used. Or something.

[https://docs.python.org/2/library/xml.etree.elementtree.html...](https://docs.python.org/2/library/xml.etree.elementtree.html#xml.etree.ElementTree.register_namespace)

What other problems did you encounter regarding XML compatibility?

<comment><USER12> It's honestly too many years ago now to remember, I just remember trying a couple of perfectly reasonable things (maybe attributes, maybe multiple sub lists, I'm not sure) and having it break. But I think it only broke when you created a new template, not when you were using an existing one with new data, or something along those lines. You could make a change and not realize it broke things for a week.

It was incredibly temperamental too. I got the initial bare bones demo working and showed the powers that be, but after that a spent a week trying to do it again and it wouldn't work. I one stage me and a colleague went through a tutorial on it in sync and the same steps would work on one computer but not the other.

Had we got it working well we might have even saved this particular company (mostly a graphic design one), they were in the advanced stages of circling the drain. It's frustrating when you see the potential of huge productivity improvements but their just out of reach.

</comment></comment></comment></comment><comment><USER27> I remember an article saying that making a trivial change to Windows requires 5 minutes to change the code and 2 weeks to deal with the aftermath (testing/...)

I wonder how easy it actually is to remove this XMP metadata, considering that it could potentially break some application which loads a PNG directly from explorer.exe with a broken PNG parser or something.

</comment><comment><USER31> Ok, how can a Windows user defend himself from that?

<comment><USER32> You can't. This metadata is in the system binaries, which are cryptographically signed and can't be changed. Hopefully the article spurs Microsoft to fix it though.

</comment></comment><comment><USER33> Wow, that's a bloated format. Here it is as XML:

        <?xpacket begin="?" id="W5M0MpCehiHzreSzNTczkc9d"?>
        <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.4-c002 1.000000, 0000/00/00-00:00:00        ">
           <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
              <rdf:Description rdf:about=""
                    xmlns:xmp="http://ns.adobe.com/xap/1.0/">
                 <xmp:CreatorTool>Picasa</xmp:CreatorTool>
              </rdf:Description>
              <rdf:Description rdf:about=""
                    xmlns:mwg-rs="http://www.metadataworkinggroup.com/schemas/regions/"
                    xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
                    xmlns:stArea="http://ns.adobe.com/xmp/sType/Area#">
                 <mwg-rs:Regions rdf:parseType="Resource">
                    <mwg-rs:AppliedToDimensions rdf:parseType="Resource">
                       <stDim:w>912</stDim:w>
                       <stDim:h>687</stDim:h>
                       <stDim:unit>pixel</stDim:unit>
                    </mwg-rs:AppliedToDimensions>
                    <mwg-rs:RegionList>
                       <rdf:Bag>
                          <rdf:li rdf:parseType="Resource">
                             <mwg-rs:Type></mwg-rs:Type>
                             <mwg-rs:Area rdf:parseType="Resource">
                                <stArea:x>0.680921052631579</stArea:x>
                                <stArea:y>0.3537117903930131</stArea:y>
                                <stArea:h>0.4264919941775837</stArea:h>
                                <stArea:w>0.32127192982456143</stArea:w>
                                <stArea:unit>normalized</stArea:unit>
                             </mwg-rs:Area>
                          </rdf:li>
                       </rdf:Bag>
                    </mwg-rs:RegionList>
                 </mwg-rs:Regions>
              </rdf:Description>
              <rdf:Description rdf:about=""
                    xmlns:exif="http://ns.adobe.com/exif/1.0/">
                 <exif:PixelXDimension>912</exif:PixelXDimension>
                 <exif:PixelYDimension>687</exif:PixelYDimension>
                 <exif:ExifVersion>0220</exif:ExifVersion>
              </rdf:Description>
           </rdf:RDF>
        </x:xmpmeta>

        <?xpacket end="w"?>

And here it is as SXML ([https://en.wikipedia.org/wiki/SXML](https://en.wikipedia.org/wiki/SXML)):

        (*TOP* (*PI* |xpacket| "begin=\"?\" id=\"W5M0MpCehiHzreSzNTczkc9d\"")
         (|adobe:ns:meta/:xmpmeta|
          (@ (@ (*NAMESPACES* (|adobe:ns:meta/| "adobe:ns:meta/" . |x|)))
           (|adobe:ns:meta/:xmptk|
            "Adobe XMP Core 5.4-c002 1.000000, 0000/00/00-00:00:00        "))
          "
           "
          (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:RDF|
           (@
            (@
             (*NAMESPACES*
              (|http://www.w3.org/1999/02/22-rdf-syntax-ns#|
               "http://www.w3.org/1999/02/22-rdf-syntax-ns#" . |rdf|))))
           "
              "
           (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:Description|
            (@
             (@
              (*NAMESPACES*
               (|http://ns.adobe.com/xap/1.0/| "http://ns.adobe.com/xap/1.0/"
                . |xmp|)))
             (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:about| ""))
            "
                 "
            (|http://ns.adobe.com/xap/1.0/:CreatorTool| "Picasa") "
              ")
           "
              "
           (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:Description|
            (@
             (@
              (*NAMESPACES*
               (|http://ns.adobe.com/xmp/sType/Area#|
                "http://ns.adobe.com/xmp/sType/Area#" . |stArea|)
               (|http://ns.adobe.com/xap/1.0/sType/Dimensions#|
                "http://ns.adobe.com/xap/1.0/sType/Dimensions#" . |stDim|)
               (|http://www.metadataworkinggroup.com/schemas/regions/|
                "http://www.metadataworkinggroup.com/schemas/regions/" . |mwg-rs|)))
             (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:about| ""))
            "
                 "
            (|http://www.metadataworkinggroup.com/schemas/regions/:Regions|
             (@ (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:parseType| "Resource")) "
                    "
             (|http://www.metadataworkinggroup.com/schemas/regions/:AppliedToDimensions|
              (@ (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:parseType| "Resource")) "
                       "
              (|http://ns.adobe.com/xap/1.0/sType/Dimensions#:w| "912") "
                       "
              (|http://ns.adobe.com/xap/1.0/sType/Dimensions#:h| "687") "
                       "
              (|http://ns.adobe.com/xap/1.0/sType/Dimensions#:unit| "pixel") "
                    ")
             "
                    "
             (|http://www.metadataworkinggroup.com/schemas/regions/:RegionList| "
                       "
              (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:Bag| "
                          "
               (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:li|
                (@
                 (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:parseType| "Resource"))
                "
                             "
                (|http://www.metadataworkinggroup.com/schemas/regions/:Type|) "
                             "
                (|http://www.metadataworkinggroup.com/schemas/regions/:Area|
                 (@
                  (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:parseType| "Resource"))
                 "
                                "
                 (|http://ns.adobe.com/xmp/sType/Area#:x| "0.680921052631579") "
                                "
                 (|http://ns.adobe.com/xmp/sType/Area#:y| "0.3537117903930131") "
                                "
                 (|http://ns.adobe.com/xmp/sType/Area#:h| "0.4264919941775837") "
                                "
                 (|http://ns.adobe.com/xmp/sType/Area#:w| "0.32127192982456143") "
                                "
                 (|http://ns.adobe.com/xmp/sType/Area#:unit| "normalized") "
                             ")
                "
                          ")
               "
                       ")
              "
                    ")
             "
                 ")
            "
              ")
           "
              "
           (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:Description|
            (@
             (@
              (*NAMESPACES*
               (|http://ns.adobe.com/exif/1.0/| "http://ns.adobe.com/exif/1.0/"
                . |exif|)))
             (|http://www.w3.org/1999/02/22-rdf-syntax-ns#:about| ""))
            "
                 "
            (|http://ns.adobe.com/exif/1.0/:PixelXDimension| "912") "
                 "
            (|http://ns.adobe.com/exif/1.0/:PixelYDimension| "687") "
                 "
            (|http://ns.adobe.com/exif/1.0/:ExifVersion| "0220") "
              ")
           "
           ")
          "
        ")
         (*COMMENT* " whitespace padding ") (*PI* |xpacket| "end=\"w\""))

The only terrible thing about the SXML is the preserved-whitespace from the XML (which of course wouldn't exist in pure SXML); otherwise it's much nicer and contains exactly as much information.

<comment><USER34> Not the only one. Whoever decided that namespaces should have "[http://"](http://") needs to be fired out of a bloody cannon.

<comment><USER35> The URI<->URL equivalence that justifies "[http://](http://) namespaces" was a neat trick insofar as it means you can use the URL of the XML schema definition file (.xsd) as the URI of the namespace in a document that contains it - thus allowing XML readers to automatically perform schema validation when encountering a new schema.

...but given how well DNS-based package names in Java have worked out (i.e. poorly) I'm surprised they went in that direction.

On the bright side - URIs (and so, XML namespaces) don't need to use the [http://](http://) scheme - they could easily switch to urn: [http://stackoverflow.com/questions/4116282/when-to-use-a- urn...](http://stackoverflow.com/questions/4116282/when-to-use-a-urn-for- xmlns)

</comment></comment></comment><comment><USER36> Next time, run `optipng -o9 -strip all` on all your png files!

</comment><comment><USER37> Which is funny, because all of the things I hate about Microsoft and Windows have absolutely nothing to do with whether or not they provide bloated binaries, containing PNG images that are bundled with extra XML tags and descriptors.

Gee whiz! What a world!</comment>


OSOS: Block China from Using Open Source - <AUTHOR> https://github.com/amoffat/OSOS <comment><USER2> No, just no. I want Open Source to be a true meritocracy, irrespective of creed, race, identity, country, etc. I think I am not alone in that.

If we start using Open Source as a political weapon, we've let the genii out of their bottles, and can never put them back - we will have forever changed how non-developers use Open Source.

Projects could then start asking things like "Are you pro-life?", "Are you pro-choice", "Do you support impeachment?", "Do you support making America great again?".

Taken to the extreme, projects could become Pro-X and their stance used as campaign advertising fodder (e.g., Apache powers X% of the world's web, and they stand behind candidate Y), users choose a project not because it is the best technically or fits their need the best, but because it supports their favorite cause, or because it echoes their favorite rallying cry of protest.

We would also ensure Open Source will not, can not, be used on government programs. Government programs are not allowed to show favoritism to any vendor or support any political cause or candidate. If a specific Open Source project supports a particular cause or candidate, then choosing to use/contribute to that project could be construed as favoritism, and many program managers will shy away from even the hint of the appearance of favoritism.

Please do not support OSOS, or anything like it. Please do spread this caution far and wide.

<comment><USER3> I think this is an important concern. Two possible responses follow, though I don't think that they are entirely adequate.

First of all, it's not obvious why we should only consider technical concerns—perhaps reduced performance is a price worth paying. One might even say that technical performance is useless as a metric per se; technical performance is useful insofar as it works for good ends, which is exactly the sort of norm OSOS would work towards.

Second, it is possible to endorse some norms as above concerning who should use software without endorsing _all possible norms_ , in the same way that we have a nonzero number of relatively uncontentious free speech restrictions (e.g., don't shout fire, etc.) Now, whether OSOS is something that can be justified in a similar fashion is yet to be seen, but it is certainly worth trying.

</comment></comment><comment><USER3> I share the author's concern about the spread of the party's totalitarianism. But one should think very carefully about whether this sort of action is productive, and I do not see anything like the level of reflexion that would be sensible in thinking about this; I hope that if this takes off such discussion takes place before, perhaps here.

A small contribution, then:

1\. Open source components of VPNs help the spread of democracy, but wouldn't work under OSOS.

2\. Norms on communities like GitHub at the moment also exist in China because programmers will have to use GitHub (for example); now communities that will comply with CCP-imposed norms will spring up to replace them. And the Chinese market is pretty big.

</comment><comment><USER4> Judging developers by origin of country is the same as judging people by color. This is hate speech.

<comment><USER5> +1

</comment></comment><comment><USER6> The Chinese people and Chinese government are different things. Why arbitrarily punish all of the citizens and organisations of one country?

Additionally this would punish anyone visiting China including humanitarian organisations and diplomats.

</comment><comment><USER7> Please no. My favorite new library [https://ant.design/](https://ant.design/) is a contribution to open source from China.

<comment><USER6> A significant number of contributions towards React (Native) and its libraries are from China. The ecosystem would be worse off if OSOS were included.

</comment></comment><comment><USER8> Easy fix. Download the program-source and then remove the China-block from the source. Next!!

Who decides who is 'not allowed' to use the open-source program? It's a silly concept, and very open to political abuse.

</comment><comment><USER9> How does this compare or relate to the wave of projects moving to source available?

How about the Chef / ICE debacle which found support here?

</comment><comment><USER5> How about "ban Trump supporters from using Open Source projects", would it be nicer?

See, this type of thing can be abused easily.</comment>


Haskellish/Pythonic/C++ Job offer - <AUTHOR>

The theory is that asking for a HN is a good filter for a good coder.
( This offer will likely go on reddit, my apologies if you see it more than once. )
I am looking for a haskellish/pythonic HN reader for a senior dev/Technical director.
I need someone able to model and code well (No architect who never codes).
The ability to communicate well with a team is also a big plus. You don't need to speak french (we are in France) but a reasonnably good english is mandatory.
If You :
* like coding 4+ hours straight.
* like to solve a coding problem elegantly (and are bothered if can't)
* like and read real CS books (SICP, TAOCP, CTM etc...)
* code in haskell, python and c++.
* are a gamer (this one is optionnal)
* are interested in computer graphics (optionnal too)
You fit the bill. I would like to talk to you. contact me  ("contact at gamr7 dot com").
What we offer:
* interesting problems and creative freedom
* quality of life (no overtime, sunny countryside, french food and low rent)
* a pay in Euros
* confortable workplace, etc...
* coding in haskell, python.
Note : I looked at the etiquette doc. It says nothing about posting job offers. I really thinks that this one fits well within the HN community, it fits the "could interest a hacker" criteria. I didn't find any way to directly post in the jobs section.
Edit: added email contact . <comment><USER2> Hmmm...

4+ sure, but more then 6hrs. in a day and I start introducing bugs and end up with negative productivity.

Yep on #2 and #3

Yep on C++ and Python, I still have not gotten to haskell, but I really do want to because I used to write specs in predicate calculus.

Doom was my game, Q3 blew my mind, but I have not gamed in years.

I am indeed interested in computer graphics, and I've done a bit of OpenGL for bioinformatics.

What you offer sounds interesting, but where the heck are you located?

<comment><AUTHOR> We are located in France, at Roanne, 1h from Lyon.

( The 4+ is basically a filter on non-coders. I completely agree with you about overtime. )

<comment><USER2> Well poop! If I wasn't neck deep in the middle of a project I don't want to quit, I'd apply.

I'll remember to check if you guys are still hiring 6 months to a year from now.

</comment></comment></comment><comment><USER3> Wow the homepage looks great, very cool stuff. This is something that is really needed too.

I am very skilled in Python, have toyed around a lot with Haskell but not really written anything significant. Probably only written about 200 lines of C++ in my life... Is that ok or you demand strong knowledge in all three?

How much Haskell do you use anyway(just out of curiousity) and for what?

Do you do raycasting?

</comment><comment><USER4> I'm wondering how someone who might be interested could get in touch with you . . .

<comment><AUTHOR> You can contact me at "contact at gamr7 dot com"

</comment></comment><comment><USER3> What is the product you create?

<comment><AUTHOR> A tool/middleware to generate cities for games or simulation. The site (<http://www.gamr7.com>) has more info. Don't hesitate to ask if something is not clear tho.</comment></comment>


Ask HN: What is the greatest thing you have done out of jealousy/envy? - <AUTHOR> <comment><USER2> Worked on a novel for 10 years. A romantic rival was a somewhat successful novelist. Someday, I'll finish it when I find my voice again.</comment>


Taking a pubsub message broker approach to logging - <AUTHOR> https://blog.rapid7.com/2018/01/16/taking-a-message-based-approach-to-logging/ <comment><USER2> I think the author did a very good job of describing message-based architecture's benefits and the options available.

I've been a huge fan of message-based architecture for years yet there was still a number of things for me to learn from this.

An example is "a message should be self-describing". Its something I instinctively do, but if asked about I'd never mention.

Good piece. Thanks for sharing!

</comment><comment><USER3> So you have basically found out that one could log structured data and use message routers to pass these logs around? Well, congratulations, better late than never. The industry uses that for many years now.</comment>


Ask HN: Nuclear Cruise Missile Fuel - <AUTHOR> The recent civilian video showing the very large shock wave from the recent Russian offshore military explosion, as evidenced by condensation behind the shock wave front, indicates either a low-power nuclear detonation or massive chemical explosion. Since the fission reaction rate for normal density plutonium is too low to achieve nuclear explosive yield, plutonium must be imploded to give sufficient density for nuclear detonation. Presumably the nuclear cruise missile motors would not have been built with implosive shells of high explosives, which seems to indicate that the nuclear motor fuel was uranium-235. Does this reasoning seem correct? <comment><USER2> _Speculations on the Nenoksa Explosion[1]_ is interesting. I'm not qualified to judge its accuracy.

The author's opinion is that it had to have been U-235:

"When you are concerned about weight, as a cruise missile designer must be, the places to look in these designs would be the moderator and reflector for the reactor. Highly (above 90%) enriched uranium is the only possible fuel; plutonium is too hard to handle, and lesser enrichments add too much weight. The moderators in the Tory and Rover reactors also served as structural elements."

[1] [https://nucleardiner.wordpress.com/2019/08/11/speculations-o...](https://nucleardiner.wordpress.com/2019/08/11/speculations- on-the-nenoksa-explosion/)

</comment><comment><USER3> If youre talking about one of these videos, they are from the munitions dump in Siberia, not where the nuke missile tests were

[https://observers.france24.com/en/20190806-residents- russian...](https://observers.france24.com/en/20190806-residents-russian-town- share-images-evacuation-damage-after-military-warehouse-expl)

<comment><AUTHOR> The video I refer to shows the sea and some coastline, with the fireball far offshore. Good comment, but no.</comment></comment>


AWS Data Transfer Price Reductions - <AUTHOR> https://aws.amazon.com/blogs/aws/aws-data-transfer-price-reductions-up-to-34-japan-and-28-australia/ <comment><USER2> This is a big win for folks either in those regions, or using CloudFront there.

Sadly no relief in sight for the Sao Paulo region, but that's what telco monopolies get you...</comment>


After 7 years as CFO, I'm retiring from Google to spend more time with my family - <AUTHOR> https://plus.google.com/+PatrickPichette/posts/8Khr5LnKtub

<comment><USER2> Leaving "to spend more time with my family" has become such a cliched euphemism for getting fired were I Mr. Pichette I would have searched high and low for some other title even if it describes his situation perfectly.

Or maybe it's supposed to be irony. Sometimes I miss that.</comment>


Freedom: a Mac app that gives you up to three hours of internetlessness - <AUTHOR> http://www.ibiblio.org/fred/freedom/

<comment><USER2> For a slightly less drastic solution, install the Firefox plugin LeechBlock.

<https://addons.mozilla.org/en-US/firefox/addon/4476>

It will allow you to block time consuming websites at time you configure.

I block Reddit, Digg, and Hacker News throughout the day with the exception of the first hour of the morning, over the lunch hour, and from 5:30pm on.

<comment><USER3> or 8aweek.com

</comment></comment><comment><USER4> Luckily you don't need this if you have a mac mini. The wireless card in it is so shitty that it essentially performs this service for you randomly throughout the day.

</comment><comment><USER5> Bravo! I wish something like this existed on Linux: preferably implemented in the kernel so that it cannot be overridden with ifconfig or another command. Also: cute name for such a service: Go DOS Yourself.

<comment><USER6> It's too Clockwork Orange-y.

Just develop some freaking self-control.

</comment></comment><comment><USER7> This is actually not a bad idea, considering that pretty much everyone uses distributed version control now. Set the timer for an hour, commit commit commit, push, read hackernews, repeat. :)

<comment><USER5> It would be easy for the service to reject port 80 but allow the port used by the version-control system.

More difficult would be allowing access to programming documentation on the web while rejecting time-wasting web sites. One idea is to reject any web page that has changed in the last 24 hours on the theory that the time-wasting sites are constantly changing (are topical) whereas the sites you need to do your work are not. (I do not know if it possible programatically to determine when a page last changed.)

<comment><USER7> Honestly, I just removed reddit from my bookmarks toolbar, and make a conscious effort to not go there. That has made me much more productive even during "downtime". The side effect is that I post here more, but at least there is the lock out feature if I notice I'm wasting too much time here ;)

</comment></comment></comment><comment><USER3> the only problem with this is that I use the internet for coding a lot (online docs, etc) I guess 10 minute spurts of freedom might be nice.

</comment><comment><USER8> How ironic: "Freedom enforces freedom"

</comment><comment><USER9> when I need "freedom" I just turn off my google notifier. no endless new mail sounds to distract me.</comment>


Tech Robot - <AUTHOR> http://www.element14.com/community/groups/robotics?ICID=hp_robotgroup

<comment><USER2> I think the Robots indicated are used for assembling of indistrial parts, welding, for product line management etc.Hope I am right. Mainly you should note that a Robot is a intelligent machine without intelligence. It works as you program it.

</comment><comment><USER3> What is tech robot and what is it used for.</comment>