I was wrong, reflecting on the .NET design choices - <AUTHOR> https://ayende.com/blog/177921/i-was-wrong-reflecting-on-the-net-design-choices <comment><USER2> If I attempt to generalize it, I think most of C#'s differences in language design that have opposites in Java are superior. Examples include:

\+ not virtual by default (so base classes can be changed more easily without breaking/recompiling downstream clients that the base class writer doesn't know about; specifying something as "virtual" should be a deliberate conscious decision by the class author)

\+ value types (for speed, because J Gosling's idea that "_everything_ is an object is 'simpler' for programmers" has a cost -- the boxing & unboxing, and inefficient cache-unfriendly pointer-chasing containers)

\+ no checked exceptions (checked exceptions have benefits in theory but real- world practice shows that it forces programmers to copy-paste mindless boilerplate to satisfy the checked-constraint)

\+ unsigned types (very handy for P/Invoke API boundaries because legacy Win32 has unsigned params everywhere; yes, yes, Gosling said that unsigned types are confusing and dangerous but nevertheless, they are still very useful)

\+ many other examples

This doesn't mean that Anders Hejlsberg's C# language team was smarter than J Gosling's Java team. They simply had 7 years to observe how Java programmers (mis)used the language and therefore, could correct some design mistakes.

Nevertheless, C# still made some dubious decisions such as renaming "finalizers" to "destructors". Java had the better name and C# should have kept the original terminology.

<comment><USER3> What do you think of partial classes and methods in term of code quality?

<comment><USER2> I've always thought of "partial classes" as a language feature motivated by code generators not stomping on programmers' manually entered code. E.g. Winforms generates some _declarations_ in one partial class while the programmer codes UI _handlers_ in the other partial class.

<comment><USER3> When I first learned C#, I was having a hard time to navigate the code due to partial methods. So I have always wondered what C# developers think of having their methods spread out in different files.

<comment><USER4> Partial classes and partial methods exist specifically to support having code that is automatically generated paired with a human-managed source file.

While you _could_ use the support for them to split human-managed code across separate source files, that would be a horrible practice that I've never encountered in the wild, even in .NET shops with otherwise-atrocious practices and code quality.

<comment><USER2> _> While you could use the support for them to split human-managed code across separate source files, that would be a horrible practice _

To continue that type of advice, some say "#region/#endregion" is another language feature that's intended for code generators so that the IDE can collapse specific lines of code and hide it from view. Programmers should not be hand-coding "#region" themselves. That said, there is debate on that: [https://softwareengineering.stackexchange.com/questions/5308...](https://softwareengineering.stackexchange.com/questions/53086/are- regions-an-antipattern-or-code-smell)

<comment><USER5> We use regions to standardize the layouts of our classes. Except for trivial classes, you will find the same regions in the same positions making it eas(ier) to find, for example, all methods implementing an interface, or all of the private helper methods.

<comment><USER6> Regions are just useless visual clutter most of the time. You can put the methods/fields in the same order without using the regions. In my experience regions are a very bad practice used only to mask bad design that produced gigantic classes. The only place where I think they may be helpful is when you are writing a library and your class _must_ be huge because you are implementing for example a Trie or some other collection or some other object pretty complicated that doesn't make sense to divide in smaller classes. And even in that case I would first try really really hard to split it in smaller entities rather than just having a thousands lines class with some regions around.

<comment><USER5> Not sure where to go from there. You've precluded the possibility that regions and good design should exist at the same time in the same file.

Where does the absolutism in the tech industry come from? We are a bunch of individuals who have individual experience and then try to form a view of the world that satisfies our experiences. What about the experiences you haven't had or conceived of? We are constantly rewriting the rules in our head to fit the new experiences we have every day to make sure we are right all of the time. Surely, our current world views are not complete or we would have no room to grow.

Still, I'll take your comment under advisement in case my classes are big, poorly designed non-Tries.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Java and C# are seen as "old news" by some here on HN but there's a trove of software engineering wisdom in there. It was a huge boon for Microsoft to be able to learn from Sun's mistakes when they were designing a language that, on paper, is basically the same thing. C#, Java, and Go are all "wonderfully boring" languages which is a divisive topic, but they're all very good at being boring languages.

It's not just language features that made C# an improvement over Java, either. CIL is a fair bit more elegant than JVM bytecode. JVM bytecode has type- specific operations to speed up bytecode interpreters, which turns out to be irrelevant since nobody cares about bytecode performance these days.

<comment><USER8> As a low-level game dev, I consider C# a nearly perfect, wonderful language, tragically self-defeated by garbage collection.

<comment><USER9> Could you explain why garbage collection in your use case is a bad thing? The GC vs non-GC always fascinates me, and I have no strong opinion either way.

Also, doesn't C# have the ability to limit (or pretty much disable) GC?

<comment><USER10> Garbage collection is the bane of smooth framerates.

Players notice when the framerate drops. Presuming a pretty typical 60 Frames Per Second you have a tight 16.6ms time budget to do all of the work for the entire frame. All of the physics, all of the sound processing, all of the AI and everything else needs to be sliced up into little bits that can be distributed across the time the game is played.

There are many good ways to achieve this, and many ways that just appear good until someone else plays your game. If you allocate dynamically even occasionally you need a strategy to allocated about as much as you deallocate each frame or otherwise mitigate the costs.

C++ has this problem completely solved with strong deterministic semantics between destructors, smart pointers and allocators. This can be handled in C# a few ways as well, but sometimes a bunch of unallocated memory builds up and is cleaned between level loads or during downtime. When the Frame rate drops because the garbage collector consumes 1 of the 2 hardware threads in the middle of a firefight players get mad. If you only ever tested on your nice shiny i7 with 8 hardware threads you might never notice until a bug report lands in your inbox. That presumes it wasn't one of the stop the world collections and you couldn't use that last hardware thread better than the GC, both of which negate GC altogether.

Done right deterministic resource allocation costs almost nothing. You can get to zero runtime cost and nearly zero extra dev time. In practice a little runtime cost is fine, and a little time spent learning is OK, but a bug report in the final hour before shipping that the frame rate drops on some supported hardware setups but not others is really scary.

<comment><USER11> I wonder if the very low-latency GC in Go would be good enough, though? The occasional dropped frame doesn't seem like the end of the world, so long as it remains rare.

In practice, most games don't have entirely reliable performance, particularly on low-end hardware.

<comment><USER10> Depends on the game.

Drop a frame in a competitive First Person Shooter and be ready for death threats.

Drop a frame in an angry birds clone and be ready for 5 stars in a review just because you made your first game.

I suspect you could could get away with quite a bit of GC in most games. But by the time you learn whether or not you could get away with you have fully committed to language for several months. Unless you fully committed to D you are stuck with your memory management strategy. In order to be risk averse game devs dodge GC languages entirely because the benefit is small compared to the potential gain. Combine this with how everyone wants to make the next super great-<insert genre here> MMO that will blow everyone away, they think that they must squeeze every drop of perf out of the machine and sometimes they are right.

Lua is hugely popular for scripting in games. World of Warcraft used it to script the UI. Its garbage collector can be invoked in steps. You can tell it to get all the garbage or just to get N units of garbage. If you tell it to get 1 unit of garbage each frame while frugally allocating I expect you could easily meet the demands of many casual games.

Then there are games like Kerbal Space Program. All C# and all crazy inconsistent with performance. It will pause for no apparent reason right as you try to extend your lander legs and cause you to wreck your only engine on a faraway planet. I cannot say with certainty it is GC, but that cannot be helping.

</comment></comment></comment></comment></comment></comment><comment><USER12> > However, given that I'm working on a database engine now, not on business > software, I can see a whole different world of constraints.

This might be my own confirmation bias, but this is my takeaway: point of view and the constraints that you see or believe are there are the main determinant of choices, and not whether some particular pattern or feature of a language is intrinsically good.

The older I get and the more code I write, the more I find this to be true. I change my own mind about things I used to argue fiercely over and things I thought were tautologically true.

I think (hope) this is making me more open minded as I go, more willing to listen to opposing points of view, and more able to ask questions about what someone else's constraints are rather than debating about the results. But, who knows, I might be wrong.

<comment><USER13> I have many years of programming in Java under my belt. Until I started using dynamic languages I thought static typing was really important. It's not.

<comment><USER10> It rules out certain categories of bugs, makes it hard to assign a string to an int, etc...

If you are writing a small one time use script to accomplish a task clearly this that kind of protection is of low value.

If you are trying to write or maintain a system intended to last 20 years and keeps bugs out of 100 millions lines of code, every kind of check that can be automated has extremely high value.

Most projects are somewhere between these two extremes. The nature of the cutoff point where strong static typing helps or does not is what we should be debating, not its inherent value as Dahart suggested.

<comment><USER14> Simple designations like "static typing" and "dynamic typing", even when you bring in the concept of strong vs. weak (Java allows concatenating an int to a string, Python throws an error), aren't very helpful when languages like Common Lisp exist. (Edit: nor "compiled" vs. "interpreted" either for the same reason but especially in current_year when just about everything compiles to some form of bytecode, whether that is then run by assembly or by microcode running assembly a small distinction.) Specific languages matter more, specific workflows within languages matter more too. And as you say what you're trying to build also matters, but not all that much.

<comment><USER10> You are right that the type system waters are muddied by a variety of technologies and perhaps that isn't the best line to draw. I think your focus on the semantics of static vs dynamic dodges much of my point.

The crux of my argument was the larger and more complex the work the more important it is to find errors early. It seems obvious to me that languages like Java, C++ and Rust do much more to catch errors early than languages like Ruby, Python and Javascript which are easier to get started with and make a minimum viable product. Put those two things together and it seems like strong heuristic to use when starting a project.

<comment><USER14> This is why I think workflows matter too, at least as much as the language itself. If you write Python like you write Java, of course you're going to not catch some errors that Java would have caught before you ship, and you're probably going to be frustrated when you're at a company where everyone writes Python like Java. But if you write Python like Python (you can't write Java like Python), you'll find many of your errors almost immediately after you write it because you're trying out the code in the REPL right away, and writing chunks in a way where that's easier to do in Python.

Maybe a few type errors will still slip by, but you'll have found and fixed so many other kinds of errors much earlier. Kinds of errors that benefit by being caught immediately instead of festering because they passed a type checker. (I've never really found a type error to be a catastrophic-oh-I-wished-we- found-this-sooner type of bug. You fix it and move on. It's not dissimilar to fixing various null pointer exceptions that plague lots of corporate Java code.)

To me your obvious claim is not obvious at all, because the tradeoff space is so much richer than what mere type systems allow. We're not even touching on what you can do with specs and other processes that happen before you code in any language, nor other language tradeoffs like immutability, everything-is-a- value, various language features (recalling Java only recently got streams and lambdas), expressiveness (when your code is basically pseudocode without much ceremony (or even better when you can make a DSL) there's a lot fewer places for bugs to hide)... Typing just doesn't tell that much of a story.

<comment><USER6> The type system is your friend, not your enemy. You are comparing the type errors to the null pointer exceptions, aka the billion dollar error. You can have an extremely powerful type system, with very low ceremonies, that checks continuously that you are not shooting your foot AND having a REPL. For example using F#. Your code will be extremely expressive and creating DSL can be a breeze, with the huge benefit that even your DSL will be type checked at compile time.

<comment><USER14> That's my point, all that is in favor of F#, not static typing in general. I'm not opposed to type systems -- Lisp's is particularly nice, I like Nim's -- but having static types or not isn't enough of a clue that such a language really is suitable for large systems or can catch/prevent worse errors quicker.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I think it's valuable to read interviews with Anders Hejlsberg [0] about the design process for both .NET and C#. They are old but clearly communicate why certain decisions have been made (spoilers: compatibility).

[0]: [http://www.artima.com/intv/anders.html](http://www.artima.com/intv/anders.html)

</comment><comment><USER16> You never really learn a language, and you never really are an expert in using it.

While you may know a lot about what the language is, how it works, and accepted ways of using it, your opinions on how to do things will always be evolving (hopefully).

Sometimes all the experts who use a language will be behind the times. For a long time experts championed strong OO design. Now all the experts champion hybrid OO/FP style things (witness Java 8!).

This too shall pass, and we should have the humility to realize that no-one knows for certain what will be the next evolution of software development.

</comment><comment><USER17> One of the greatest lingering flaws in both C# and Java is the lack of metaclasses.

Because classes aren't real objects and therefore not necessarily also instances of other classes (their metaclasses) as they would be in Smalltalk, there is no class-side equivalent of "self/this," nor of "super." In effect, you cannot write static (class) methods that call other static methods without explicitly referencing the classes on which those other methods are defined, completely breaking class-side inheritance and rendering class behavior (and instance creation in particular) needlessly brittle.

I believe the explosion of factories, abstract factories, and just generally over-engineered object construction and initialization schemes in Java and C# would have been side-stepped if both languages had always had a proper metaclass hierarchy paralleling the regular class hierarchy, as well as some form of local type inference.

<comment><USER7> > I believe the explosion of factories, abstract factories, and just generally > over-engineered object construction and initialization schemes in Java and > C# would have been side-stepped if both languages had always had a proper > metaclass hierarchy paralleling the regular class hierarchy, as well as some > form of local type inference.

That's a bit harsh. "Factory" is a term that became prominent in Java as a result of the language design decision not to include first-class functions, so any time you see "Factory" just think "function that returns an object", and any time you see "AbstractFactory", think, "type of function that returns an object". In C# you can just use delegates and the explosion of factories isn't really there.

I'd say your opinion of this explosion might change if you work in a good codebase which makes sensible use of techniques like IoC. Yes, it feels a bit silly to have a component in your project which does nothing more than instantiate objects, but you end up with classes that are much more cleanly defined in terms of the interfaces they expose and consume, and you can write unit tests that don't make you feel like you're damaging your code base to get the unit test to work.

At least, when it goes well.

My experience with metaclass programming (a fair bit of Python metaclass programming) is that it can often be replaced by generics, reflection, or various code generation tricks in C#, and I don't end up missing metaclass programming that much. Metaclass programming isn't a silver bullet, it's a tool that complements other tools in the right toolbox (Python, Smalltalk) but would just get in the way in other toolboxes (C#, Go).

There's a narrative here that we're somehow "neglecting" the lessons we learned with old systems like Smalltalk, Lisp, etc. when we make languages. It's a seductive narrative but I think it's mostly papering over the sentiment that language X isn't like my favorite language, Y, and therefore it's bad. I welcome the proliferation of different programming paradigms, and besides a few obvious features (control structures, algebraic notation for math) there are few features that make sense in every language. That especially includes metaprogramming, generics, reflection, macros, and templates.

<comment><USER18> First class functions aren't replacements for factories. An abstract factory provides several methods for constructing related objects of different types. The objects come from different type hierarchies, whose inheritance structures mimic each other. For instance, you might have a hierarchy of EncryptionStream and EncryptionKey objects. Both derive in parallel into AESEncryptionStream and AESEncryptionKey. Then you have an EncryptionFactory base class/interface which has MakeStream and MakeKey methods. This is derived into AESEncryptionFactory, whose MakeStream makes an AESEncryptionStream and whose MakeKey makes an AESEncryptionKey.

The client just knows that it has an EncryptionFactory which makes some kind of stream and some kind of key, which are compatible.

AbstractFactory doesn't specifically address indirect construction or indirect use of a class, but it does solve a problem that can also be addressed with metaclasses. If we can just hold a tuple of classes, and ask each one to make an instance, then that kind of makes AbstractFactory go away.

The thing is that in a language like Java, these factories have rigid methods with rigid type signatures. The MakeKey of an EncryptionFactory will typically take the same parameters for all key types. The client doesn't know which kind of stream and key it is using, and uses the factory to make them all in the same way, using the same constructor parameters (which are tailored to the domain through the EncryptionFactory base/interface).

If we have a class as a first class object (such as an instance of a metaclass), that usually goes hand in hand with having a generic construction mechanism. For instance, in Common Lisp, constructor parameters are represented as keyword arguments (a _de facto_ property list). That bootstraps from dynamic typing. All object construction is done with the same generic function in Common Lisp, the generic function _make-instance_. Thus all constructors effectively have the same type signature.

Without solving the problem of how to nicely have generic constructors, simply adding metaclasses to Java would be pointless. This is possibly a big part of the reason why the feature is absent.

<comment><USER7> Yes, you're absolutely right that functions don't cover all use cases of factories. I was mostly thinking about the "why are there factories _everywhere_ " complaint, which is mostly about factories that just produce one object.

> If we can just hold a tuple of classes, and ask each one to make an > instance, then that kind of makes AbstractFactory go away.

That seems like just one particular way to solve things. I guess I don't see what the fuss is about, if we are talking about metaclasses in particular, because we could also solve this problem with generics, and the factory solution doesn't seem that bad to begin with.

> Thus all constructors effectively have the same type signature.

Or turned around, the type system is not expressive enough to assign different types to different constructors, and is incapable of distinguishing them. This matches with my general experience, that metaclasses are useful on the dynamic typing side (Python, Lisp, Smalltalk, JavaScript) but annoying on the static typing side (C++, Haskell, C#).

But of course that makes sense. In a system without static types, the only way to pass a class to a function is through its parameters, so you have to pass the class by value. In systems with static typing, you have the additional option of passing a class through a type parameter, which has the advantage of giving you access to compile-time type checking. Furthermore, there are real theoretical problems with constructing type systems which allow you to use metaclasses involving whether the type checker is sound and whether it will terminate.

</comment></comment></comment></comment><comment><USER19> While I'm inclined to suspect that non-virtual by default is better from a design perspective‡, don't assume the point about performance is overwhelming. HotSpot has done devirtualization for a long time. You can detect not only when a method is never overridden, but also when it's never overridden at a particular call site. A virtual method that's never overridden can sometimes have no extra overhead, while a virtual method that is overridden may have sufficiently small overhead that it rarely matters.

[http://insightfullogic.com/2014/May/12/fast-and- megamorphic-...](http://insightfullogic.com/2014/May/12/fast-and-megamorphic- what-influences-method-invoca/)

‡ I've used non-OO languages, but never an OO language without virtual by default.

<comment><USER20> Since we're talking about performance: the time it takes HotSpot to perform this optimization is also a perf hit for your program.

At the end of the day, the fastest code is one that doesn't have to run.

HotSpot is an impressive technology but the optimizations it has to do to overcome Java's design really only pay for themselves in most frequently executed code paths and only after some time to gather necessary info to perform the optimizations.

It's ok for long-running server code but not good for, say, short-lived command-line program.

Or to put it differently: a language that has perf-friendly design, like Go, matches Java's speed with 10% of engineering time and resources spent on the compiler and optimizations. Perf friendly design means it has to do 10% of the work to achieve the same end result.

<comment><USER19> This may be true in general, but the CLR uses bytecode and a JIT compiler, so that point may be a lot less relevant to it. In addition, devirtualization is apparently valuable enough that they're going to add it to the CLR, per the article.

<comment><USER21> Java compiles to bytecode and most implementations JIT, just like .NET. JVMs are more advanced than the CLR at optimization.

<comment><USER19> Yes, my point is that once you're comparing two environments that use bytecode and a JIT, you can't necessarily cite the cost of startup time and the cost of JIT compilation as a reason to avoid possibly-virtual calls.

</comment></comment></comment></comment></comment><comment><USER22> _" Another issue is that my approach to software design has significantly changed. Where I would previously do a lot of inheritance and explicit design patterns, I'm far more motivated toward using composition, instead."_

This, more than anything, has dramatically improved the quality of my designs... and made coding fun again.

Immutability and Lambda functions have also had a tremendous impact on my designs.

Is the term _Object-Oriented-Programming_ relevant anymore?

<comment><USER23> I don't see how preferring composition over inheritance makes OOP less relevant. In fact, GoF even _suggests_ using composition over inheritance in OOP. Nor do I see how immutability and lambda functions are mutually exclusive to OOP either. You can have all of these things and still reap plenty of benefits from OOP. The benefits of OO polymorphism and several decades worth of architectural design patterns are not irrelevant just because functional programming concepts exist. Both should be used advantageously and when appropriate.

<comment><USER22> It's possible to do _Functional Programming_ with an OO language these days using anonymous methods/Lambdas.

The GoF patterns either need updating or perhaps we're on the verge of calling this hybrid environment something completely different (?)

</comment></comment></comment><comment><USER24> I'm surprised the creator of RavenDB took this long to come around on composition vs inheritance. Good on him for admitting his transgressions, however.

<comment><USER25> > Another issue is that my approach to software design has significantly > changed. Where I would previously do a lot of inheritance and explicit > design patterns, I'm far more motivated toward using composition, instead.

I picked up on this too; object-oriented design patterns have lost a lot of mindshare over the last ten to fifteen years. There was a time when it seemed like design patterns were taking over the world. We're still living with some of the monstrosities spawned during that era. I wonder if design patterns can ever be rehabilitated.

</comment></comment><comment><USER26> Java is not "virtual by default", it is virtual-only, except for private methods, which don't participate in inheritence.

I like the Java convention, for one thing, because it is one less decision for programmers to make. I've seen many C# programmers who are oblivious to what virtual means.

<comment><USER27> What about "protected final"?

</comment></comment><comment><USER28> _" Someone was wrong on the Internet, it was me."_

</comment><comment><USER29> The bigger question is why the hell a post like this makes it on top of hacker news? This was by far the most pointless read ever.

On top of that arguing that non-virtual by default is worse than virtual by default is completely superfluous. Just add the damn keyword everywhere and you have virtual everywhere. Same for final.

But Java has everything non-final and virtual by default, which sucks badass because both require great care when implementing the method.

Extending code that was not designed to be extended is very common in Java, because you can. Adding final can easily be forgotten. Removing final, which is required in C#, will only be done IF you intended to make that method extendable, same for virtual.

Yes a great gain. Now I need to argue for each final I add to Java classes and methods, because you know, it seems wasteful to add it, while in fact it is crucial, since maybe just 1% of any code I write was meant to be replaceable by a third-party. Mostly, you want to use other mechanism for extension, like decoration & composition.

If it took ten years to learn that falsehood (non-virtual is worse than virtual by default), then we talk about one hell of a regression huh.

<comment><USER30> Virtual methods are also significantly slower to invoke.

<comment><USER10> Significantly?

Have any benchmarks to back that up?

Last time I benchmarked in the language I use most (C++) I couldn't get a difference distinguishable from my margin of error.</comment></comment></comment>


Ask HN: Why do sites do tracking on the client side? - <AUTHOR> It is a common pattern to send user behavior data from the client (web/app) to the 3rd party trackers. This attempt can be blocked by the client, e.g. by browser extension or DNS filtering (like pihole or nextdns).
Why don't the websites track users from the server instead? Because it's "eaasier" for the site owner to just drop-in the google analytic/whatever 3rd tracker script in the head, then setting up the server to proxy the submission?
I may understand why the sites don't do analytics on their own (because it's easier to just hand to the 3rd party provider, and the site owner may not be programmer at all). However I don't see why they prefer to do the tracking from the client side. <comment><USER2> Because tracking on the client-side gives you can give you a lot more info on what the visitor is doing.

For example, if you have a landing page and only track on the server side, you can not know the session length as you only know when the request to that page happened, but not when the user left.

I am considering to also add a server-only tracking option for for my analytics platform[0], but the data it provides will be limited by a lot. For example now you can tag users based on the actions they do (click a button, scroll on the page, encounter an error, etc.) and it's gonna be lot harder, if not impossible to track those actions on the server-side, thus user segmentation and other useful features are vastly restricted.

Also, as you mentioned, tracking server-side means that your server should be able to run the analytics platform and it might be harder to integrate analytics than simply including a JS on your pages. Imagine you have a static website, hosted for free, in that case you don't even have the option to add analytics on the server-side.

[0]: [https://usertrack.net/](https://usertrack.net/)

</comment><comment><USER3> The people in my company who do it want to track mouse movements to help the UX team find areas of improvement.

Personally, I feel the negatives of client-side tracking outweigh the benefits, in no small part because of the lack of focus on privacy that it shows. So far I've fought off their desires to put it in my product. But it is a battle - too many of the people who are not tech-savvy think client-side is the best answer.

</comment><comment><USER4> Agree with your thinking, few why points:

\- anti-fraud

\- sales conversion verification

\- bot filtering

\- ads and ads network policies

\- heatmaps and session recording

All above brings money/revenue to home.</comment>


Show HN: Update of Emacs' calendar to enable changing number of months displayed - <AUTHOR> https://gist.github.com/3363643

<comment><AUTHOR> Got fed up with lack of way of changing the number of months displayed by Emacs' calendar, and after a fruitless web search for a solution, wrote the fix myself. So, I decided to share.

FYI:

* Adds the new function 'calendar-set-num-months' to the built-in emacs calendar, which changes the number of months displayed in the calendar

* Number of months defaults to 3 (as per original calendar) but can be set to e.g. 6 or 12 months using 'calendar-set-num-months'.

* Alternatively, you can change the default number of months by editing the value of 'calendar-num-months' in this file.</comment>


Why Analysts' Stock Recommendations are SH*T - <AUTHOR> https://medium.com/@Nvest/why-experts-stock-recommendations-are-sh-t-47ccd8e2d159

<comment><USER2> To avoid the scatology, I'd start with the efficient market hypothesis, which isn't perfectly true, but is pretty close to being true.

It's hard to predict the stock market. If there is a lot of hating on a stock, the value is probably low to begin with, which means the stock has room to go up.

<comment><USER3> It is hard to predict, but many analysts claimed they have the edge and fool people making bad investments.

</comment></comment><comment><USER4> If I remember correctly, Jim Cramer's suggestion for how to use analyst recommendations is: don't buy a stock that is recommended by four or more analysts, and if you own it and a fourth analyst starts covering it, sell. It may not be going down, but its best days are behind it.

<comment><USER3> Lol, i love this...</comment></comment>


Behind the scenes at the Marmite factory in Burton-on-Trent - <AUTHOR> https://www.derbyshirelife.co.uk/out-about/events/behind-the-scenes-at-the-marmite-factory-in-burton-on-trent-1-4190524 <comment><USER2> I once attempted to make my own Marmite by boiling up the slurry remaining from a batch of home-brewed beer. The experiment was not a success.

</comment><comment><USER3> Food of the Ghods! Love the damn stuff.</comment>


User Interface: Communicating color efficiently - red & green - <AUTHOR> http://blog.kissmetrics.com/communicating-color-efficiently/

<comment><USER2> User interfaces should be inaccessible to the colorblind?</comment>


Techno Viking Takes Youtube Uploader To Court - <AUTHOR> http://pulseradio.net/articles/2013/01/techno-viking-sues

<comment><USER2> Weird piece.

It says things like "[punishment] would send a confusing message to Youtube uploaders everywhere, so it will be interesting to see how the German courts approach this matter." In Germany there is the so called "Recht am eigenen Bild" which means you cannot just film random people and share the images or even exploit them for money. This is a law specific to Germany. Its application does not mean much for "Youtubers everywhere".

I strongly support this as a matter of privacy. Gawking is creepy.

And before someone says some "but he was in a public space, he was at a public event" yadda yadda: See KunstUrhG §23 (2) "Die Befugnis erstreckt sich jedoch nicht auf eine Verbreitung und Schaustellung, durch die ein berechtigtes Interesse des Abgebildeten (...) verletzt wird."

<comment><USER3> I'm sorry, but if you are literally marching down the street in a parade, you lose the claim of "privacy". I understand the "exploit them for money" part and I agree with that part of your argument. However, the "cannot just film random people and share the images" seems, to put it bluntly, insane. If you march in a parade down the street, people can take pictures and share them. There is absolutely zero expectations of privacy when you march in a public parade down a public street.

<comment><USER4> Having lived in Germany (Muenster) for 4 months, I noticed they have many such laws Americans would be aghast at. For example: blue laws that enforce family friendly working hours for stores (i.e. 9-6), laws that keep your employer from snooping on you, a two year required warranty on consumer electronics.

It comes down to how you want to live your life. While Zuck bombastically preaches that "privacy is dead" and the rest of us American sheeple fall in line, those in Germany have seen the worst of authoritarianism under the Nazis and the Soviets and have chosen how they want to live. Not a bad idea.

<comment><USER5> > a two year required warranty on consumer electronics

This isn't limited to Germany, it's a European-wide directive. And I fail to see how it can be viewed as negative.

<comment><USER6> It drives up prices. I prefer having a choice. I don't need a 2 year warranty on simple cheap devices. But the warranty is always there for a small price for the important things (like my motherboard or laptop).

Often times the additional cost of the mandatory warranty will put a product out of reach for people who would be happy with the mfr's standard warranty.

<comment><USER7> Warranty replacement costs are proportional to failure rate - for example, if 1% of devices will fail within 2 years, warranty costs would add 1% to the cost price.

What sort of electronics products have a failure rate so high that the costs of a 2 year warranty is anything but trivial?

<comment><USER6> I am typing on a cheap Logitech K120 keyboard I got at Walmart. (at work I have a nice WASD[1] keyboard) I spent about $10 on this keyboard. if it stopped working in the next two years I wouldn't want to even bother dealing with the warranty mailing it back and waiting weeks for the replacement to arrive. I'd just throw it out and go buy another $10 keyboard.

1) <http://www.wasdkeyboards.com/>

<comment><USER8> I'd say that you chose a poor example as Logitech's customer service (in Europe at least) is second to none. They will send you replacements for free _very easily_ , while asking only minimal proofs (usually your serial number is enough). I know plenty of people who got their mouse or keyboard replaced in a few days after contacting customer service, without being asked to send the defective one.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> He should challenge the uploader to a dance-off instead.

Nobody survives being over-danced by Techno Viking.

</comment><comment><USER2> Google Cache: [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://pulseradio.net/articles/2013/01/techno- viking-sues)

</comment><comment><USER10> Can anyone comment on how a model release would apply to a situation like this if it were to occur in America?

</comment><comment><USER11> Techno Viking on HN... It made my day. His guy is a legend.

They say he's "The only man who could kill Chuck Norris", to me that is an understatement. I'd say "The reason Chuck Norris does not dare to visit Berlin" is more accurate.

<comment><USER12> Chuck Norris does not leave the States because he's a hatemongering bigot who would get "the vapors" at gays being treated like human beings.

I really wish his meme would die already.

<comment><USER13> Agreed. I just replace "Chuck Norris" with "Mr. T" anytime I read one of those memes. Makes more sense that way.

<comment><USER14> There are so many fools left to pity.

</comment></comment></comment></comment><comment><USER15> [http://www.neatorama.com/2013/02/21/Technoviking-Sues- Filmma...](http://www.neatorama.com/2013/02/21/Technoviking-Sues-Filmmaker/)

</comment><comment><USER16> Techno Viking is actually awesome! He should embrace his popularity. :D

<comment><USER17> If he sued for the profits the guy made then I would still see him as awesome. Take down however is not awesome.

</comment></comment><comment><USER18> Best version, in case you haven't seen it:

<https://www.youtube.com/watch?v=_dIUM4LRVsE></comment>


The Rise Of Seth Godin Infographic - <AUTHOR> http://www.awarelabs.com/blog/the-rise-of-seth-godin-infographic/

<comment><USER2> I think this is a testament to raw hard work. I can only imagine the grit and determination he had to keep going every single day with getting little to nothing back for so long. Great share.

</comment><comment><AUTHOR> The man only missed 22 days in 5 years! He worked for 15 years before that in media and wrote 5 books before he even started blogging.

Lesson learned: Blogs don't take off on their own.</comment>


Training of deep neural network with Mixed Precision [pdf] - <AUTHOR> http://on-demand.gputechconf.com/gtc/2017/presentation/s7218-training-with-mixed-precision-boris-ginsburg.pdf <comment><AUTHOR> Video : [http://on- demand.gputechconf.com/gtc/2017/video/s7218-boris-...](http://on- demand.gputechconf.com/gtc/2017/video/s7218-boris-ginsburg-training-of-deep- networks-with-half-precision-float.mp4)</comment>


Ask HN: What ERP system do tech startups use? - <AUTHOR>

My company (Envato.com) is looking at changing our accounting/ERP system and I'm curious to know what other startups and tech companies use? Apparently eBay/PayPal use SAP, but that is a little too large for us :-) <comment><USER2> The 'E' in ERP is for 'Enterprise' (<http://en.wikipedia.org/wiki/Enterprise_resource_planning>), which in my mind is another stage of development beyond startups.

As pbreit says, use QuickBooks.

</comment><comment><AUTHOR> So far my investigations have led me to a few interesting companies using Netsuite, specifically Groupon, Sixapart, Gawker and Atlassian. Still investigating :-)

</comment><comment><USER3> Along with this, does anyone use OpenBravoERP? Intriguingly, it has always been one of the top SourceForge projects.

</comment><comment><USER4> Tech startups don't use ERP systems. Pretty much everyone starts with QuickOoks.

</comment><comment><USER5> Quickbooks cloud or excel.</comment>


GNU Screen v.4.2.1 - <AUTHOR> https://savannah.gnu.org/forum/forum.php?forum_id=7961 <comment><AUTHOR> Notables from 4.2.0:

      * layouts
      * window groups
      * better mouse support
      * vertical split
      * new and expanded commands

Though I doubt this will entice me back from tmux, even though my primary motivator at the time (ages ago) was lack of vsplit in screen.

Also notable is if you upgrade you can't re-attach to sessions started by an older version of screen.

<comment><USER2> That was my problem with tmux. I don't really care for vsplit (and could've had that with screen patches), so feature-wise there's no big difference. Some version of screen is often pre-installed on servers, so that's probably my first choice when it comes to situations where running things in the background is my prime motivation. For multiplexing on my home system that's not an issue, so both would be fine.

I recently started trying out tmux for that purpose as someone told me its memory usage wasn't as creeping. Can't really detect a big difference, though, after a while both of them take up a few hundred megs.

Not close to the vim vs. emacs holy war level. More like emacs vs. xemacs.

Or did I miss some hidden gems of either of them?

<comment><USER3> There's a feature that I've discovered recently that makes vertical split a lot more useful. It's PREFIX+z. it maximises the current pane. This means you can use mouse to select-copy without spanning multiple panes. Then you can do PREFIX+z to return to panes.

        > did I miss some hidden gems of either of them?

They're pretty similar. I think I moved to tmux because it was easier to get going in openbsd.

An odd advantage I've found for it - there's a great book - Pragmatic Guide to Tmux. It's very thin, yet contained all of the features I thought I wanted, and a couple of more that I didn't know about (including the z thing from above). I like books that are both thin and yet contain everything I want.

<comment><USER4> Heh. My reason from screen is the exact opposite. It's easier to be available on all servers i ever connect to... which is why i won't care for those features anytime soon.

</comment></comment></comment></comment><comment><USER5> Been using Screen for more than 10 years and it has been stable like a mountain! The only new feature that I care about slightly is the vertical split (frickin wide screens!)

Here's to another 10 years of Screen!

<comment><USER6> Maybe you know the answer to this then. Can I tab backwards? Been using screen since 2007 and still can't figure it out.

The stuff in this link doesn't appear to work... [http://unix.stackexchange.com/questions/14142/gnu-screen- mov...](http://unix.stackexchange.com/questions/14142/gnu-screen-move-between- regions)

<comment><USER7> C-a <TAB> is bound to the "focus" command. "focus" can receive parameters ("up", "down", "top" and "bottom") Without parameters, it defaults to "down", which is why you cycle downwards with you press C-a <TAB>.

To tab backwards, you call "focus up". It's not bound by default, but you can bind to, say, C-a U:

bind U focus up

and from then on "C-a U" cycles upwards.

</comment></comment></comment><comment><USER8> I'd really like to see GUI integration with screen. I'd like my X terminal application to be able to attach to a GNU screen session, display all my screen windows as tabs, and then later detach again.

<comment><USER9> Well, there is xpra, [https://www.xpra.org/](https://www.xpra.org/) which allows disconnection and reconnection of X apps. It's pretty good when you get it to work.

<comment><USER10> Thanks for introducing me to Xpra! I feel this is a tool that will need some getting used to.

Where does it stand in multi-user scheme of work? Suppose I need to give several users access to a certain application running on a remote server. Do I create separate user accounts for each user on that remote server? Do they start a separate display for each user? Where should I ask my noobish questions?

<comment><USER9> I'm no expert, but each user can create an xpra session, which they can connect to remotely by ssh. You just need to install it and provide ssh access. I don't know whether other options might work.

x2go might be an alternative, where you connect to get a complete desktop.

</comment></comment></comment></comment><comment><USER11> Neat changes, but I'm still going to stick with tmux. Tmux not only works better, it's changed the way I develop. Everything is done in a Tmux window with Vim and shell. Tmux is how you can create a shell-based IDE with splits and different functionality. I came from Emacs, and liked the IDE-ness of it, but I can capture almost all of that behavior with tmux + vim.

</comment><comment><USER12> The status line syntax of screen was terrible. It was almost read like a magic incantation. tmux felt way better. I wonder if this changed at all.

<comment><USER13>
      caption always "%?%F%{w}%:%{K}%? %{R}%H%{-} %{B}>>%{-} %L=%{k}%-Lw%45>%{G}%n%f %t%{-}%+Lw%=%{-}%-22<%{B}<<%{-} %{R}%Y-%m-%d %0c:%s%{-}"

Nope, it's still terrible. :)

<comment><USER14> Yeah. They took ideas from things like PS1 setting with Bourne shell, and kept going. Keeping the variables to single letters was intended to have the format string be approximately the same length as it might actually be displayed. However, that doesn't work well in practice. It would be better to go with keywords (or maybe even key-phrases) instead.

</comment></comment></comment><comment><USER15> I still use Screen every day. I tried to switch to tmux, but tmux's copy mode isn't as good as screen's. For example, in tmux you can't search case insensitive in copy mode, which is really a must for me. I think that's probably the biggest reason I didn't switch.

Am I the only one who extensively uses the copy mode?

</comment><comment><USER10> What is the advised way of using the new version on CentOS?

Will the new version land in any of CentOS repositories? [http://wiki.centos.org/AdditionalResources/Repositories](http://wiki.centos.org/AdditionalResources/Repositories)

</comment><comment><USER16> I use tmux because in it vim can be set to show in italics what should be shown in italics.

</comment><comment><USER17> Best CLI program ever!

<comment><USER18> It's not really a CLI. In traditional parlance it's a CUI, though it frequently _hosts_ a CLI...

<comment><USER17> What's the 'U'?

<comment><USER18> User, like in GUI.

CUI is either "Character User Interface", "Console User Interface", or "Captive User Interface". The first two are mostly orthogonal to "Command Line Interface" (CLI), which can be character based or graphical. The last asserts that the interface fails to play well with the shell, which is nearly always true of GUIs and is frequently true of console programs that make heavy use of ncurses (though not always, and can be true without that).

</comment></comment></comment></comment><comment><USER19> Sorry screen, but you're too late. I've been using tmux for as long as I can remember! ... unless someone can convince me of reasons to switch? :)</comment>


Aurelius Acquired by DataStax - <AUTHOR> http://thinkaurelius.com/2015/02/03/aurelius-acquired-by-datastax/

<comment><AUTHOR> Hadn't heard of Titan before. tl;dr from: [http://thinkaurelius.github.io/titan/](http://thinkaurelius.github.io/titan/)

"Titan is a scalable graph database optimized for storing and querying graphs containing hundreds of billions of vertices and edges distributed across a multi-machine cluster. Titan is a transactional database that can support thousands of concurrent users executing complex graph traversals in real time."

</comment><comment><USER2> I love titan and seeing them get acquired by Datastax makes me hope for even better support for cassandra.</comment>


Fire and Motion - <AUTHOR> http://www.joelonsoftware.com/articles/fog0000000339.html <comment><AUTHOR> "It took me another fifteen years to realize that the principle of Fire and Motion is how you get things done in life. You have to move forward a little bit, every day. It doesn't matter if your code is lame and buggy and nobody wants it. If you are moving forward, writing code and fixing bugs constantly, time is on your side."

Ok, back to firing and moving.

</comment><comment><USER2> I have no problem starting up the editor and going - but then again most of my projects are self-inflicted.

</comment><comment><USER3> Thumbs way up on this, Joel really captured the Windows API strategy with this. Couple this with "How Microsoft Lost the API War" and you have Joel's most pertinent thoughts.

</comment><comment><USER4> So...if Microsoft is like the Israili army...who are the Palestinians?</comment>


Ask HN: How to introduce git to colleagues? - <AUTHOR>

Hi HN,
2 weeks ago I started a new job at a small web development agency. To my horror, they don't use any form of version control.
My boss asked me to introduce git to my colleagues. I've never had the pleasure of training people, and I'm really excited. I'm also terrified. I have no clue where to start. Nobody in my team has any experience with git, besides finding code on Github through Google...
I don't like the idea of being the annoying new colleague that disrupts everyones workflow which they are comfortable with, although they all agree it's a good idea & I'm 100% sure that they will benefit from this in the long run.
My biggest fear is that it will take a while until they'll have a full grip on git. I want to implement the following model: http://nvie.com/posts/a-successful-git-branching-model/
I know that I have to start with baby steps here, does anyone else have experience introducing git into an organisation? Do you have any pointers and/or tips? I'm personally quite hectic when trying to explain certain things so I want to make sure I can teach them in a nicely structured manner.
Thanks in advance, looking forward to reading your comments. <comment><USER2> Hello,

As part of a school project in Software Engineering, I had to help my team understand and use Git.

Making them commit their work is fairly simple, that they can do with little guidance. The problems occour when they have merge conflicts.

We all worked in the same branch (stupid, I know, I didn't know better then) which created a lot of merge conflicts. The team had some issues fixing that in the beginning, but tools like SmartGit / SourceTree made their experience better.

Based on my limited experiences, I would recommend the following:

1 - Start with the simple parts, checking out code and committing.

2 - Then, introduce the concept of feature branches. Do not go all the way that Git flow does in the beginning, keep it simple for now, and then, when more of the organisation understands Git, you can go over to the full Git flow model. Ensure that people focus their branches, and let them only live for a short amount of time. This so that work can be synced up regularily.

3 - What can go wrong? Show them a somewhat advanced merge conflict and how you solved it.

4 - Try to introduce it to them using a GUI client (SourceTree / SmartGit) if they're not into the Command line. It can make adoption easier and less painful.

Good luck!

</comment><comment><USER3> With git, one doesn't realize its importance, unless they use it. So I would suggest first use it for smaller codebase like some utility libraries or something. This will give them real exposure to git.

Don't try git with repos where lots of people are committing very regularly. Once good number of people have got their hands-on with smaller repo, then shift larger projects to git. Also then you can convince everyone with the model u want to implement.

This way you should be able to start shifting major repositories in like 2 months.

</comment><comment><USER4> I would start off with a single wiki page, that is dead-simple with nothing but instructions that are commands

To submit: type this To fetch: type this To resolve: type this

etc.

The internal workings of Git are way too messy to introduce all in one go</comment>


What are the best ways to develop an eye for promising emerging technology? - <AUTHOR> On that same note, what questions should we ask ourselves when assessing the potential value or impact of a given technology? What habits can and should be built to do so successfully? <comment><USER2> People want it. They may not want what the geeks designed, "what the tech is for" but it meets and emotional need / desire.

Think consumer level, mass adoption of email in the beginning. People didn't get it (and the very expensive hardware, difficult new knowledge, etc) to communicate - none of their friends had email yet. They did it for status and self image. The cost and difficulty of the task were part of the benefit at that time.

New tech must meet some emotional level desire - even B2B stuff. Someone needs to take a risk to adopt it first - there needs to be sufficient payoff - emotionally - for that to happen.

Superior tech, by itself, rarely is enough to make new tech "promising".

</comment><comment><USER3> If anyone could give you a specific answer to this, then they would be able to a become billionaire or trillionaire.

My unsuccessful guess: technologies that are currently serving a niche well but aren't yet modified to serve the masses.

</comment><comment><USER4> Develop calculated risk taking and stop your head from saying "it already exists".</comment>


What Happens When the AI Bubble Bursts? (2018) - <AUTHOR> https://thenextweb.com/artificial-intelligence/2018/06/13/what-happens-when-the-ai-bubble-bursts/ <comment><USER2> The web was genuinely revolutionary and it still had a bubble. Just because something is a big deal doesn't mean people can't make an even bigger deal out of it.</comment>


Ask HN: What are the best technical/startup blogs that you know about? - <AUTHOR>

<comment><USER2> I follow the following:

Buffer - open.bufferapp.com - great insights on culture, work priority and personal development for developers

HubSpot - [http://blog.hubspot.com/](http://blog.hubspot.com/) \- great tips on marketing for developers

Mark Suster - [http://www.bothsidesofthetable.com/](http://www.bothsidesofthetable.com/) \- Amazing insights on views from developer and VC sides

Fred Wilson - [http://avc.com/](http://avc.com/) \- not particularly technical but a lot of startup advice. Also, MBA mondays are great.

</comment><comment><USER3> If you are into mobile app development, I write at [http://www.avocarrot.com](http://www.avocarrot.com)

</comment><comment><USER4> I write about tech/startups: [http://www.lauradhamilton.com/](http://www.lauradhamilton.com/)

</comment><comment><USER5> Thomas Tungz - [http://tomtunguz.com/](http://tomtunguz.com/)

<comment><USER2> He's an amazing chap and writes short but interesting and helpful articles.</comment></comment>


Tumblr's anti-porn algorithm is flagging basically everything as NSFW - <AUTHOR> https://www.dailydot.com/parsec/tumblr-nsfw-algorithm-flagging-2018/ <comment><USER2> Oath is desperate to put more ads on Tumblr, because they massively overpaid for it ($1 billion) and have been throwing money at it ever since (100s of millions). I guess because of the way the content is displayed they can't just segregate nsfw stuff into a demonetized stream, but if they think they can turn Tumblr into a mainstream site that shows family-centric ads, they clearly don't understand what they bought.

<comment><USER3> This is clearly Tumblr's Digg moment. They are going to have a 100% write down on this one.

It is also worth adding Twitter has built a reasonable ad business and they are full of just as much porn as Tumblr. Google actually shows ads for porn and other adult services on their platform. If any of the higher ups at Verizon are reading this:

\- Fire everyone involved in the NSFW filtering. Clearly this wasn't even tested.

\- Fire everyone who thought NSFW material had to be purged from your platform.

There is a short window where you can reverse the decision and benefit from all of the people who were reminded Tumblr existed. After that window closes, your business is dead.

<comment><USER4> \- Fire everyone who thought NSFW material had to be purged from your platform.

I mean, can't they see that a lot of traffic flows through tumblr via those interests? Do they not know how much of a loss of usage that this will cause? I legitimately have zero other reason to use tumblr.

<comment><USER5> On the contrary, it's probably a small part of their service. The nature of Tumblr is to make it easy to find like minded people, and construct a subset of the site that's full of what you're into. So it's very easy to feel "Tumblr is all left-wing teens" or "Tumblr is all porn" depending on what you go looking for. But Tumblr is a galaxy of niches and I doubt porn was their mainstay. This fact probably caused them to underestimate the disruptive effect of banning it.

<comment><USER6> Actually, I more tend to agree with this article ([https://techcrunch.com/2013/02/18/tumblr-is-not-what-you- thi...](https://techcrunch.com/2013/02/18/tumblr-is-not-what-you-think/)) that a big part of the appeal of Tumblr was a bit more the opposite of this: Tumblr could act as a personal microblog of sorts, where you could put up a page that wasn't very easily discoverable, and share with a few friends interests and memes that you didn't want to necessarily broadcast to the world in full Facebook fashion. That includes people's porn stashes, as well as NSFW kinks and other quirks. Other stuff too (memes etc.), but the NSFW was a significant part of Tumblr.

Furthermore, my impression of Tumblr was that it had quite a bit of artists. Most artist-oriented platforms have policies that aim at banning the more overt commercial pornography, while allowing artistic nudity or erotica with appropriate tags (see DeviantArt, Vimeo, etc.) I was actually quite surprised that Tumblr didn't try this route at first to be honest. From what I can tell the "adult content ban" Tumblr implemented is way overly broad-based, not to mention very US-moral attitude centric (eg "female presenting nipples" is less of a big deal in many countries).

<comment><USER7> I'm not a big fan of this meme of porn being bigger than what it is. Tumblr was never about that and Snapchat wasn't and isn't a sexting app.

The adult content that showed up was pretty annoying, especially on some tags that were seemingly less censored. Like, most LGBT tags were clean, but some would have a lot for whatever reason. I'd welcome the change back then (which was around acquisition time). But even then it was apparent Tumblr's odds of becoming anything other than another diary/blog graveyard weren't great.

Tumblr occasionally banning thinspo blogs was probably much more of an "attack" on the core user base. Not by numbers but in spirit.

edit: and for the record I'm not especially talking about parent's comment, not sure why i picked this one, mostly agree with it

<comment><USER8> Last time Tumblr broke out the numbers porn was 11% of the biggest blogs. More than 1 out of 10 blogs is a porn blog. That's a huge portion of their user base and will likely cause it to totally crash.

<comment><USER7> As long as the overlap with regular users is small there's no reason for why that would cascade [0].

That kind of content is usually banned/censored on most mainstream services, just letting it be will get you a non-insignificant number. I've seen people claim 3% for twitter, no clue if true or not, but few would say that about Twitter here. Too many people in tech are in the core user-base to fall for this.

[0] unless shut down this will be a loooong slow death no matter what happens. I still have a semi popular account on one of the dead sites of the era. Everybody knows it's dead but these communities are a bit like families, hard to completely ghost them.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> While Tumblr have every right to have whatever terms of service they like, this feels like a bait-and-switch to me. People and communities have become accustomed to allowing NSFW stuff on Tumblr, and if Tumblr had forbidden this from the get go these people who have set up somewhere else and not on Tumblr.

What we need[1] is for social networks to be interoperable, with open data and protocols, so that a user can up sticks, move to a different site, and take their existing data (posts, images etc) with them and _keep their followers_.

1\. As I have argued before, see [https://cabalamat.wordpress.com/2018/08/30/dont- nationalise-...](https://cabalamat.wordpress.com/2018/08/30/dont-nationalise- facebook-mandate-open-data-and-protocols/)

<comment><USER10> I think you're pretty much describing Solid

[https://en.wikipedia.org/wiki/Solid_(web_decentralization_pr...](https://en.wikipedia.org/wiki/Solid_\(web_decentralization_project\))

Though I could be wrong. I never fully grokked Solid last time I read about it.

<comment><USER9> That and Mastodon, ActivityPub and IPFS are examples of the sort of thing I have in mind.

Also the decentralised flood-fill model of Usenet.

<comment><USER11> You can't move between Mastodon instances and keep your followers.

<comment><USER12> And that's a poor design decision. Why should it matter.

</comment></comment></comment></comment></comment><comment><USER13> "it's often hard to see why LGBTQ content gets flagged as NSFW – although the underlying reason is, of course, homophobia and transphobia.*

I think you need to start with the impossible, define porn/nsfw.

Why is lingerie provacative and bikinis aren't? Why is nudity even a problem? Why nipples and not elbows... Ultimately, this stuff is the very definition of subjective... something that is entirely determined by perception. What is and isn't "safe for work" is constantly changing. Taboos allow dishonesty to continue.

Call it homophobia if you like, but I call the whole thing conservatism.

Personally, I think our rapidly changed attitudes about homophobia and transgenderism is closely related to sexual liberalism generally. Without online porn, gay culture could easily have stayed closeted.

<comment><USER10> When I was a teen my favourite joke was, "people with foot fetishes are lucky. To them, every beach is a nude beach."

Really does apply here. It's increasingly absurd to define what's sexually explicit as our society becomes increasingly liberal about our sexuality.

It was easier back when there was a very narrow definition of heterosexuality, leaving everything else to be homosexuality and/or some form of "perversion". We're basically dealing with the propagation of those attitudes forwards through time.

</comment></comment><comment><USER14> I wouldn't label the algorithm as anti-porn. I'd label it "how to lose user base and drive the company to a hole" algorithm. It's not likely that it detects actual porn, it's basically failing miserably and the result is abandonment. That's what you get when you want to be PC and yet another "me too, I do cool stuff too" company. There are lessons to be learned here, and for that - thank you Tumblr :)

<comment><USER15> > That's what you get when you want to be PC

I'd hardly consider this "trying to be PC".

[https://i.imgur.com/cgGx4JR.png](https://i.imgur.com/cgGx4JR.png)

This is more about bowing down to America's backwards views on sex and nudity, most likely in order to appease advertisers and/or Apple.

<comment><USER16> I can't imagine the advertisers being too hot on literal nazism and white supremacism, though. At least I hope not.

<comment><USER17> Well, you wouldn't think so, but a lot of the anger on Tumblr the past few days has been that they're destroying major communities (more than just NSFW; they deleted everything tagged with "chronic pain", for goodness sake, and how is that relevant?), but leaving all the Nazis alone.

<comment><USER18> Deleting "chronic pain" posts makes sense if Tumblr is trying to eliminate drug-related posts with as much cleverness and grace as the porn purge. (Chronic is uncommon slang for marijuana.)

<comment><USER19> Chronic pain is also closely link with opiod abuse.

</comment></comment></comment></comment></comment></comment><comment><USER20> It would be quite humorous, and also quite telling of the experience of those implementing this, if it turned out to be classic class imbalance during training.

If 90% of the training dataset is nsfw, and you train a classifier naively on that dataset, and your test and validation data is 90% nsfw, then 90% accuracy is very easy.

<comment><USER3> I would really, really like to know what they are doing. Was it an in-house solution, something from a startup, or something from an established enterprise tech company?

One of the things I've been saying repeatedly is that companies are going to implement machine learning incorrectly, and there will be obvious failures and blow ups, but the most dangerous and catastrophic failures will be a cascade of things that look like they work correctly. In this case, Tumblr implemented something that was blatantly obviously broken. That's just pathetically poor management.

In the next 10 years, I would give high odds of least 1 company in the s&p 500 will fail due to bad machine learning implementation(s.)

<comment><USER21>
      > from an established enterprise tech company

My first guess, based on basically nothing at all, was that this was an IBM Watson project. 0.3 seconds of Googling found that IBM has already published a case study on their website about Verizon using Watson. So, I'm going to go with that.

[https://www.ibm.com/case-studies/verizon](https://www.ibm.com/case- studies/verizon)

</comment></comment></comment><comment><USER22> Tumblr is dead. I give it three months before it's forgotten by the majority of its former user base.

<comment><USER23> So the question is where will that userbase go, now might be the time to position yourself to accept them if you're a similar site .. I probably wouldn't be here [on HN] if Slashdot/Digg/etc. hadn't screwed up in the past.

<comment><USER24> It seems that most people are going:

\- Twitter \- Pillowfort \- Wordpress \- Mastodon

depends a lot on what the user was into posting.

I'm also seeing quite a few more people operating on multiple sites at once now, even SFW blogs. So they'll post Tumblr, Pillowfort, and Wordpress at the same time so their former users can still see them.

</comment></comment></comment><comment><USER25> I do never used Tumblr but AFAICT porn is the most common contents, so i bet the major source of revenue...

BTW the neovittorian movement against sex in general (disguised in many form to health things, anti-pornography for pedagogic things, anti-prostitution because of racket, ...) it's a clear sign of our degradation as society.

<comment><USER26> I'm not sure it's a degradation of society. I think it's unhealthy, but the original Victorian era taboos didn't result in a degradation of society. In fact it appears to have given rise to something of a backlash against that kind of thinking culminating in the roaring 20's. Then the depression hit, and WWII, and in the aftermath of WWII female empowerment (women in the industrial workplace) there was a backlash movement against women to "put them back" in the home. But then the counter backlash of the 60's and 70's hit. We've spent the last ~120 years swinging the pendulum back and forth, I'm not sure this is anything else but a part of that same pattern.

</comment></comment><comment><USER9> I'm sure the upload filters the EU wants to mandate will be every bit as successful as this, in terms of the number of false positives.

</comment><comment><USER27> Why not just make ads show on SFW content and have some sort agreement with advertisers. It's not like google has to block everything or maybe they have privilege.

</comment><comment><USER28> I'm not sure how this proves the algorithm is doing a poor job. Any NSFW classifier is going to have a non-trivial error rate. Tumblr hosts LOTS of images. So if you have a non-trivial error rate and multiply it by LOTS of images you are going to get LOTS of images being misclassified incorrectly. It's not surprising someone was able to write a story about a bunch of images being misclassified. This doesn't seem to tell us anything about whether the algorithm has a high error rate or not.

<comment><USER29> In this case, the ultimate arbiters are the users of the service. Judging by their feedback so far, it is doing a poor job (and it doesn't matter if it's state of the art etc - that just means that our state of the art algorithms are that bad).

<comment><USER30> tumblr's announcemnt about removing nsfw content got flagged,i'd say the algo is trash

</comment></comment></comment><comment><USER31> Artificial stupidity combined with corporate stupidity, it's predictably not going to end well.

</comment><comment><USER32> I feel like the discourse might be missing the point, starting at why we are here: Tumblr was removed from the App Store. Tumblr is a website but without a doubt it thrives on being a mobile app on iPhones and iPads. This ended up happening because of course the NSFW content on Tumblr is _notable_ , even if we don't know the actual scale. Lots of pornbots and what not.

What concerns is this: Well and good that Apple says "we don't host pornographic communities on our app store" and Oath immediately sacrificed the lamb to appease Apple. How is this a problem after so long? What if I told an Apple executive the exact same content manifests in Twitter and Reddit?

Evidently the app stores have no interest in hosting NSFW artists and the open web should step up.

</comment><comment><USER33> I read a lot of posts on Reddit bemoaning Tumblr's decision to stop carrying adult content. A lot of people there and here feel that this decision spells the end of the company. That may be the case, but I never understood how Tumblr was profiting from hosting all that adult content to begin with. I presume they're selling ads, in which case disassociating themselves from anything that could be considered pornographic seems like reasonable business logic.

I'm not questioning whether Tumblr's decision is fair, or morally right or wrong. I just don't see how Tumblr was generating enough revenue to cover their costs to begin with. Is image hosting really that cheap?

<comment><USER34> Keep in mind Reddit users also predicted the death of Reddit during the pao/banning fiasco. It's only grown since then.

<comment><USER35> False. That was the beginning of the end. [https://www.alexa.com/siteinfo/reddit.com](https://www.alexa.com/siteinfo/reddit.com)

<comment><USER34> Your link only goes back to the beginning of 2018. Pao left in 2015.and your link is comparing overall rankings of websites. That in no way tells you anything about redditt's traffic growth.

[https://www.statista.com/chart/11882/number-of-subreddits- on...](https://www.statista.com/chart/11882/number-of-subreddits-on-reddit/)

<comment><USER35> The banning of completely legal and non-controversial content didn't stop with Pao. That was the start. It's only accelerated. And that's what you see in the stats. Reddit is down in popularity since 2015.

They abandoned their userbase and are attempting to bootstrap up into a gentrified facebook clone with new emphasis on personal identity (ie, having people post to their user profile pages instead of subreddits, and the implementation of commercial ad "personal" profiles like u/washingtonpost).

And luckily for them in 2016 a partisan political issue finally provided motivation for people to leave Facebook for other sites. This explains your observations about number of subs.

<comment><USER34> If you make that assertion please provide data in the form of graphs or tables. All I said was pao left in 2015, and during that time I remember Reddit users predicting it would go there way of digg. It didn't.

</comment></comment></comment></comment></comment></comment><comment><USER5> My feeling is that this may be the breakthrough moment for Mastodon.

<comment><USER36> Is there an example where a centralized commercial service was successfully replaced by a more open, federated service?

<comment><USER5> The electronic mail that came before SMTP would be a good example.

<comment><USER36> Email is a good example and somebody else mentioned the web in general.

I think the big difference there is that there are game changing advantages to end users being able to send email anywhere and to access all of the web rather than what was essentially one web site.

Federating Tumblr (and Twitter with Mastodon) seems like a lateral move at best. The worst case is that it makes it harder to use and so it might even be a step backwards.

</comment></comment></comment></comment><comment><USER37> This "article" was clearly done only to gain page views using the ongoing tumblr topic regarding adult content removal. The implication that company decision was done to oppress the LGBT community by algorithm automated actions is ridiculously sad but again, helps pumping the hype and virtual anger. Author didn't take the effort of thinking about possible reasons why algorithm works around NSFW content in such way but instead already judged that tumblr is going after LGBT (+ whatever else comes in that string of characters; I couldn't care less - it's enough that I'm somehow a part of that community but it's like with least liked family member - you really don't wanna see it or interact with) community and we should all care because this is an "problematic" issue. The victim card is being placed on the table.

After seeing around what topics the author revolves the overall tone of this "journalism" example is not surprising.

I did back-up my tumblr, I'm waiting for reliable platform to emerge where I could post cat pictures, funny and not always politically correct images and whatever else.

</comment><comment><USER38> There was another post here a week or two ago about an image processing algorithm that turned everything into blurry genitalia. Could it be related?

edit: Found it. I'm not the only one who wondered if this was the case! New comment in that thread: [https://news.ycombinator.com/item?id=18601287](https://news.ycombinator.com/item?id=18601287)

</comment><comment><USER39> Why are or why can advertisers be so inflexible with the concept of the internet containing nsfw content?

<comment><USER40> Because society hasn't wised up to the fact bloggers and news are doing to social media the equivalent of what parent- and religous groups did to box TV and movies into well-defined bounds for allowed content.

</comment></comment><comment><USER41> My Tumblr blog of 2 years (future-tech) with 20K followers was summarily terminated today. There is no NSFW content on it. The termination happened shortly after I started protesting Tumblrs new policy. I did notice, however that some benign posts were incorrectly flagged as NSFW.

</comment><comment><USER42> Why does the author seem to suggest that the nazis are less affected by this than pictures of furniture?

<comment><USER15> I'd argue that they are since searches for some "adult" terms are now censored but searches for nazi terms are not.

For example:

[https://www.tumblr.com/search/breast/recent](https://www.tumblr.com/search/breast/recent)

[https://www.tumblr.com/search/nsfw/recent](https://www.tumblr.com/search/nsfw/recent)

vs.

[https://www.tumblr.com/search/1488/recent](https://www.tumblr.com/search/1488/recent)

[https://www.tumblr.com/search/heil+hitler/recent](https://www.tumblr.com/search/heil+hitler/recent)

[https://www.tumblr.com/search/sieg+heil/recent](https://www.tumblr.com/search/sieg+heil/recent)

edit: Image of other examples in case you don't want to actually go to tumblr's website.

[https://i.imgur.com/cgGx4JR.png](https://i.imgur.com/cgGx4JR.png)

<comment><USER42> Tumblr also allows me to search for raygold and PTHC does that mean they approve of child pornography now?

I don't believe that the fact that they've restricted a pretty small set of porn-related keywords suggests that furniture is more likely to be caught by tumblrs filters than nazi content, which is the claim the article appears to make.

<comment><USER29> I think the point is to highlight the "sex is worse than Nazis" logic behind this prioritization.

<comment><USER43> I think the reality is that someone important somewhere went on tumblr and said "hey we can't advertise on this, there's porn everywhere!", rather than them trying to filter things out in order of unpleasantness.

<comment><USER44> Didn't they just have their app removed from Google's Play Store for the presence child porn on their platform? I think the point might be that they cannot reasonably be expected police their platform to determine what porn is and is not acceptable. Surely there is going to be _a lot_ of porn posted that is crazy unacceptable, and I'm sure they don't want to have to sift through it all to discern what is what.

I am actually surprised porn is a big thing they are known for, considering their platform is aimed at kids/adolescents?

</comment></comment></comment></comment></comment></comment><comment><USER45> I'm glad Tumblr existed (not just for porn) but I hope this kills them. What a huge stab in the back to their community, it should not go unpunished.

</comment><comment><USER46> Tumblr is truly dead without NSFW stuff. Nobody cares for anything else in it (except you and 10 others, outlier, to pre-empt your reaction).

<comment><USER46> Not sure what's the controversy here. Here's a Medium post on the same idea: [https://medium.com/futuresin/tumblrs-porn-ban-could-kill- it-...](https://medium.com/futuresin/tumblrs-porn-ban-could-kill- it-85b31c76a470)

</comment></comment><comment><USER47> well, looks like my old automated tumblr works fine [http://apologiseinsincerely.tumblr.com/](http://apologiseinsincerely.tumblr.com/) \- I was worried some of the robots carrying women would look bad, or some image manipulations might resemble something they weren't.</comment>


No more Butlers in AI: Design process to re-imagine AI persona - <AUTHOR> https://medium.com/@kipsearch/no-butlers-30b92715f580#.a9g6x0tlz <comment><USER2> I like the penguin it's cute, but I can't help but think of Microsoft clippy</comment>


In a Warming West, the Rio Grande Is Drying Up - <AUTHOR> https://www.nytimes.com/interactive/2018/05/24/climate/dry-rio-grande.html <comment><USER2> This is what worries me the most about my home region. The surface water is turning to be unreliable, the groundwater is being siphoned out at an alarming rate, yet we still continue to add more and more pressure to the system.

Not just farming and agriculture, either. People are moving to Phoenix and Santa Fe and Dallas and Houston at amazing rates, but the water systems can't keep up. In the Dallas suburbs, one public water system owns exactly one lake and has partial rights to three others but all of those lakes drop to alarming levels almost every summer. Yet, the cities inside that water district keep adding more and more houses and commercial buildings and water connections because nobody wants to say "we might not have enough water for those who are already here." I don't even know if a city government _could_ say that.

But here we are. More people moving into dry areas expecting to be able to drink, wash, and clean, but with less water every day with which to do it.

<comment><USER3> Understand that agriculture water use and people water use are not comparable. There is typically 10x to 20x water use per acre of farm as there is for one person, Penn state ran some numbers for their region [1], it is even worse in California where people are literally farming in land that is essentially desert.

The bottom line is that if people and communities are replacing farmland then there is a net increase in the availability of water by a large margin.

Something to keep in mind when looking at water availability.

[1] [https://extension.psu.edu/water-system-planning- estimating-w...](https://extension.psu.edu/water-system-planning-estimating- water-needs)

<comment><USER4> That's not the only competition for water. In Texas somewhere between 10-50% (depends upon location) of fresh water is used for fracking, not to be used again for human consumption for generations, if ever. [https://www.scientificamerican.com/article/water-use- rises-a...](https://www.scientificamerican.com/article/water-use-rises-as- fracking-expands/)

IIRC it's even encroaching upon Dallas' suburbs.

<comment><USER5> 10-50% is nuts, especially for technology we ideally should want to get rid of and replace with cleaner energy.

<comment><USER6> To say nothing of all of the other negative external costs of fracking. I wish one of the carbon cost agreements had gone through.

<comment><USER7> The fracking I'm familiar with tries to reuse the fracking fluids as much as possible. Still some oil and gas activities do consume large quantities of water: pressure maintenance injection and Steam assisted gravity drain, the last one is used a lot in the Canadian tar sands.

<comment><USER4> This article is five years old, they don't because recycling costs more than fresh water from the ground and injecting used fracking water is easy and cheap. Contrast to Pennsylvannia where they recycle 90% (and I don't think they had the same drought conditions Texas went through for a long time before 2017).

[https://www.texastribune.org/2013/03/19/texas-recycling- oilf...](https://www.texastribune.org/2013/03/19/texas-recycling-oilfield- water-has-far-go/)

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> > Others may not have to hope for rain. Chris Sichler, who farms 650 acres > near San Antonio, has wells to pump groundwater onto his fields should the > irrigation canals dry up and the rains not materialize. "I'm droughtproof," > he said. "When we plant in the spring we don't even take into consideration > how much snowpack or surface water there's going to be."

What an astonishing attitude for someone who is watching one natural resource actively disappear. He's only "droughtproof" for as long as the groundwater remains.

I'm sure past farmers could never imagine the Rio Grande being used up.

<comment><USER9> Maybe he means he's droughtproof for as long as he lives, which is a reasonable assumption (albeit quite selfish).

After all, the Rio Grande didn't dry up overnight, and for someone who was a farmer, say, 50 years ago, it was reasonable to assume that it would last their lifetime as well.

<comment><USER8> You're probably right, but that's the sort of thing I'm talking about.

</comment></comment></comment><comment><USER10> Meanwhile around the great lakes where water is plentiful we are bulldozing farm land for new homes. I wonder if this could make problems later on when water is rare out west and the farms can't produce. They will be bulldozing homes to put the farm land back in because it is near water.

<comment><USER11> We'll just pump it out and run it hundreds of miles away like it's done with Lake Mead. What could go wrong?

</comment></comment><comment><USER12> We have not had a good snow year since 2011 or so. The upside is that maybe Lake Powell will finally dry out. Too many people, too many farms and ranchers. Desert was not meant for people, it will expel them. Good. The needs to be wild again.

</comment><comment><USER13> The south west is a damning indictment of big government short sightedness. The army corps of engineers diverted all these rivers to create irrigation, and now you've got all these people populating a region that wouldn't naturally have been able to handle that kind of population.

<comment><USER14> You could say the same thing about CA

Earthquakes, fires and mudslides but it's ok because "surf and ski in the same day bro".

Something something glass houses, stones, pots and kettles...

<comment><USER15> california has plenty of water for the people here, we do not have plenty of water to grow almonds and alfalfa in millions of acres in the central valley. Agriculture is like 80% of all CA water usage. If you include golf courses and lawns in that, it bumps it up to ~95%.

<comment><USER16> Water used to grow almonds - 1.1 trillion gallons per year - is just about enough to provide water for around 23 million people in California (~59% of the population).

A $5-$6 billion crop, consuming half the residential water for a $2.7 trillion economy. If you include alfalfa, which is even worse than almonds, it's something comparable to 150% of all the residential water use in California.

It's a spectacular failure on the part of the state of California. Where are the famous CA voter propositions when you need them? A large share of the alfalfa and almonds - aka California's water - gets exported to Asia. It's social and economic suicide for meager benefits.

</comment></comment></comment></comment><comment><USER17> In case anyone is wondering why on earth we're growing so much food in the middle of the desert, you can look to lack of disease as an answer.

I mean, there's more to it than that. The warmer climate means the southwest has more growing days, but that's kind of a no-brainer for a lot of people. The disease part is a little less obvious though.

Take a look at grapes. A lot of grapes are grown in very arid environments. Why is that? Well, that's because grapes are susceptible to a particular fungus called Black Rot. In parts of the United States with particularly wet and humid summers, this disease can pretty much destroy your entire harvest. In dry, arid parts of the country, however, it's unheard of.

So that's just on example, but the rule can apply for just about any type of fungus. If you are growing fruits and vegetables in a water-rich but particularly humid part of the United States then you are going to have to contend with more fungus than those parts of the United States that are considered a desert.

It's not just fungus either mind you. Pretty much every agricultural pest known to man thrives in water-rich but humid parts of the country, but is less common in those parts of the country considered desert.

So, there you go, that's why we don't grow more fruits and vegetables in, say, southeastern Texas, which is especially wet.

That being said, overcoming the pests that come with humid weather isn't a terribly hard problem to solve. There are plant varieties out there that have been bred to be more resistant to humid-weather diseases. Some of these are even heirloom crops, meaning they've been around for a while. Unfortunately, there's usually some kind of downside. Maybe the crops in question are less flavorful. Maybe the yields are smaller. Maybe they don't ship well over long distances. Each of these are pretty serious commercial considerations that usually restricts these crops to the niche market of quirky local organic farmers. When it comes to grapes in southeastern Texas, you're dealing with a less familiar taste and an utter lack of brand recognition. As a consequence, southeastern Texas wine producers really need to rely on agritourism to sell their product, otherwise I doubt a single one of them would be in business.

I see ag-tech as a potential solution, but the end result wouldn't necessarily be solutions that make urban farming more feasible, but rather solutions that make it possible to control pests more effectively, preferably in a non-GMO and organic fashion, so we can grow the same crops cultivars typically grown in the desert. Removing the various middle-men that stand between small farms and the consumer would also help. Smaller farms can manage pests more effectively and they're more open to trying out atypical crop cultivars, including cultivars that may taste better but have smaller yields or don't ship well. Problem is, small farms typically aren't economically viable due to the bargaining power that crop buyers and grocers possess. If you want to stop growing food in the desert, give them more price bargaining power so they can at least make a living.

</comment><comment><USER18> This could work out. We can build the Trump Wall right down the middle of the river.

<comment><USER19> I wouldn't put it past Trump to run the wall down the middle of New Mexico.

</comment></comment><comment><USER20> Those who don't believe in Natural Selection will be victims of it.

</comment><comment><USER21> Texas's governor, Greg Abbott sued the federal government to stop climate change regulations.

Then when Hurricane Harvey hit, he said the federal government needed to give him over $100 billion for the cleanup.

<comment><USER22> What is your point?</comment></comment>


CVE, a key cybersecurity resource, is at risk inside and out - <AUTHOR> http://www.sfchronicle.com/business/article/CVE-a-key-cybersecurity-resource-is-at-risk-7107509.php <comment><USER2> Paywalled.

Maybe we should refrain to link articles that cost money to read (I wonder how many of us will pay), but on the other side it was pretty normal to tell friends about some newpaper articles they didn't read. Maybe we need an abstract to let everybody know what those articles are about?

<comment><USER3> The weird thing is, however, the article wasn't paywalled originally, I read it successfully the first time, but when I wanted to revisit it later, it was walled. Perhaps they have an automatic filter if the article gets a lot of traffic.

</comment></comment><comment><USER4> It won't be Skynet that exterminates the human population, it will be a (number of) small group(s) to whom we voluntarily or rather unknowlingly give control over all aspects of our lives: cars, fridges, smart homes, airplanes, dams, nuclear weapons... Somehow we should raise awereness before it's too late. Hopefully it's not too late already.

<comment><USER3> How is this related to the article?

</comment></comment><comment><USER5> Very interesting headline, unfortunately the content is behind a paywall :(

</comment><comment><USER6> Paywalled :-/

<comment><AUTHOR> This link should be outside the paywall: [http://www.sfchronicle.com/business/article/CVE-a-key- cybers...](http://www.sfchronicle.com/business/article/CVE-a-key- cybersecurity-resource-is-at- risk-7107509.php?t=dfe34148577d4f3860&cmpid=twitter-premium)</comment></comment>


Venture Capitalist Sounds Alarm on Startup Investing - <AUTHOR> http://online.wsj.com/articles/venture-capitalist-sounds-alarm-on-silicon-valley-risk-1410740054

<comment><AUTHOR> Interesting anecdote:

"For the first time since '99, in the past 12 months, I've been in board meetings where the company says, "Our only option is a 10-year lease," at record pricing on a per square foot basis here in San Francisco, which is two or three times what the rent was three years ago. And so this is why it's all cyclical—because the landlords get greedy.

</comment><comment><USER2> Another excerpt: "Excessive amounts of capital lead to a lower average fitness because fitness, from a business standpoint, has to be cash-flow profitability or the ability to generate cash flow. That's the essence of equity value. And so I think we get further and further away from that in the headiest of times."

</comment><comment><USER3> The fact I need to sign up to read this article is stupid. Why is it on HN?

<comment><USER4> Anyone have a mirror? Looks like an interesting article.

Edit: actually, I found one: [http://online.wsj.com/news/article_email/venture- capitalist-...](http://online.wsj.com/news/article_email/venture-capitalist- sounds-alarm-on-silicon-valley-risk-1410740054-lMyQjAxMTA0MDEwNTExNDUyWj)</comment></comment>


Should we give up on the dream of space elevators? - <AUTHOR> http://www.bbc.com/future/story/20150211-space-elevators-a-lift-too-far

<comment><USER2> > _The Obayashi Corporation, one of Japan's five big construction companies, > last year published plans for a more robust space elevator carrying robotic > cars powered by maglev motors similar to those used on high speed rail > lines. These would carry humans making the required tether strength greater. > Their design would cost $100bn, with transport costs down to $50-100 a > kilogram._

That seems... incredibly cheap for a space elevator. Are they saying their design would cost $100bn total, or is that for the car only?

<comment><USER3> I would have guessed closer to the world's GDP, maybe a few orders of magnitude more.

</comment></comment><comment><USER4> What about instead of space elevator some sort of re-usable space launcher - i.e. a HUGE tunnel like contraption that basically propells a vehicle up and out of atmosphere without rockets but something else... - - think like a large hydrolic delivery system that goes x amount of miles from upper atmosphere and vehicle launches at whatever the velocity is to break out of atmosphere ? (I'm no rocket scientist obviously)

</comment><comment><USER5> No.

[http://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines](http://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines)

Why give up on something because we can't do it _right now_.

<comment><USER6> Yes. Because it's fundamentally flawed. You will not beat physics because you wish it. It will always take the same (relative) amount of power to escape earth velocity. Shunting some of the friction to entropy on substances (wear and tear) in sizes/lengths/stresses that are affected by atmosphere and space junk, leads to a more complicated and less reliable mechanism for transport. You STILL have to fight gravity and air resistance with an elevator. It's bought you NOTHING of value to build.

<comment><USER5> > It will always take the same (relative) amount of power to escape earth > velocity.

Not really, most of the energy in a rocket launch is used to push the rocket fuel higher so it can be burnt to push the remaining rocket fuel higher.

If we could build a space elevator then the energy used to get a mass into space would be considerably lower since electric motors are much more efficient at lifting loads than rocket engines (and that assumes a mechanical method of lifting not some kind of mag lift system).</comment></comment></comment>


Android Becomes Number One in U.S. Smartphone Market Share - <AUTHOR> http://www.readwriteweb.com/archives/Android_number_one_in_us_smartphone_market_share.php <comment><USER2> Wow. I'm surprised that WP7 has 10%. I still haven't seen one in the wild except in the hands of developers.

<comment><USER3> WP7 is under-rated. I've seen more than a few in non-developer hands.

<comment><USER4> The only people I saw with a WP7 (3 of them in total) got theirs because it came with a free XBOX 360 at purchase.

If this is any indication it could imply that people with WP7 are not attached to the platform like iOS or Android users are.

<comment><USER5> Alternatively, it could be because WP7 is mostly focused on the U.S. and therefore has the weird two-year-contract-stagger effect going on. Couple that with the mass appeal of the iPhone and the ubiquity of Android on lower-end phones (remember, WP7 focuses on the high-end).

<comment><USER6> Just a point of reference, this is a chart from November:

[http://www.linuxfordevices.com/images/stories/chitika_androi...](http://www.linuxfordevices.com/images/stories/chitika_androiddevices_nov2010_new.png)

At that point probably close to 70% of all Android phones as measured by website traffic where clearly in the high end (Incredibles, Evo, Droid, Droid X, Droid 2, etc...).

If Android is dominating, it's doing from the top-down.

</comment></comment></comment></comment></comment><comment><USER7> I wonder how accurate this is given that we don't know what effect the Verizon iPhone has had?

<comment><USER8> I haven't seen any numbers reported on the Verizon iPhone, which I think hints at the impact being minimal (if you sell a lot, you talk about it).

<comment><USER7> They have said it was the best selling product in their history. That implies that it was at least as good as the droid or the htc incredible.

That kind of volume might well be worth a couple of percentage points.

<comment><USER8> Ah, a quick google turns up a lot of references to that, I had missed it. I took the lack of lines on launch day to mean it didn't break any records, but I guess that's not the case.

</comment></comment></comment></comment><comment><USER9> Er... why is it that developers for Android apps are making less? I would think that having a larger market share, chances is that we will make more from our Android apps.

</comment><comment><USER10> Impossible on the face of it. Android is not a smart phone.</comment>