Eric Sink on version control - <AUTHOR> http://spin.atomicobject.com/2010/01/27/january-softwaregr-meeting-eric-sink-on-version-control <comment><USER2> _Eric cited Cisco, with 15 terabytes in source control, and 50 developers writing perl scripts on top of ClearCase to serve 6000 users. That scale of problem is something the open source, distributed tools aren't able to handle._

Obviously ClearCase can't handle it either if they need 50 developers to manage it. As much as I despise ClearCase, I don't think the tools, their development process, or implementation idiom are the problem here. Keeping 15TB of objects in a differential system is a _category error_ (if more than a few % of that isn't generated or data they've got bigger problems).

<comment><USER3> Not necessarily, since Cisco is a hardware/networking company, I would imagine that a lot of that data is VHDL (or some other hardware descriptor language), schematics, and even compiled binary images. They would also be storing the tools they use to build the products themselves in there (compiler, linker, assembler, etc).

I would also wager that a lot of the 15TB of data is historical in nature, a lot of that for products that aren't being made or sold anymore but for which the source code, compiled images, etc is still stored there.

Version control is not necessarily just for source code or text files, and what better place to store these extra version-specific artefacts than in the version control system.

<comment><USER2> But there's no reason to store those artifact objects as if they were diff/patch/merge-able -- store them separately as archived read-only blobs.

A lot of people use a standard hierarchical filesystem that gets rsynced around, a new option would be to store them in something like S3 and keep their addresses as references in source control.</comment></comment></comment>


A (brief) retrospective on transactional memory - <AUTHOR> http://www.bluebytesoftware.com/blog/2010/01/03/ABriefRetrospectiveOnTransactionalMemory.aspx

<comment><USER2> This is an excellent overview of the very real difficulties of implementing software transactional memory in practice, and the implications that has for users of STM.

Personally, I've always been skeptical about how easy it will be to both use and implement STM in a language and platform. Simple cases are easy, but the semantics of things like nested transactions get hairy fast. While I agree that it's doable to use STM to synchronize a program, I'm still not convinced it's _easier_ than using locks.

</comment><comment><USER3> I'm always excited to read about STM. It is my opinion that a startup could make a decent living off STM, given that it wouldn't have to support a large, existing ecosystem like Microsoft. Lots of papers have been written, there are probably open-source implementations out there, and it's a very nice problem to work on.</comment>


Why Siri Should Have Launched on the Mac - <AUTHOR> http://onthelaunch.com/2011/12/siri/

<comment><USER2> While this article certainly has a reasonable core point -- that the 'oddness' of using Siri in public is unsettling, and could dent the pickup of voice control through embarrassment -- it's hard not to argue the opposite too: that had Siri launched on the Mac first, it would have languished in obscurity. If it had launched on Mac first, I'm sure the author would have been arguing it should have launched on iPhone instead.</comment>


Ask HN: So what do you guys think of DotNetNuke? - <AUTHOR>

I'm being asked to give business advice from a technical perspective (cost, ease of maintenance, etc..) to a client about their platform which is currently DNN. I've done all of my web development so far using the LAMP stack. Can you guys shed some light on DNN for me? I know a little, but HN seems to always know more than I do about, well, everything. What say you? <comment><USER2> I think the appropriate question to ask before talking about the technical merits of various platforms is:

1\. How much content do they have in DNN already?

2\. How much of that is going to be tough to migrate out of there?

3\. What kinds of customizations have already be done in DNN?

4\. Why are they contemplating moving to a new l(a|n)(m|pg)(d|r|p) platform and who do they know to program in these new technologies? Is that you? It might make sense to move to a linux, nginx|apache, postgre, django|rails platform if they want to make a website that is very custom and needs to be fairly maleable.

</comment><comment><USER3> I'm a .Net developer and this is based on light work with it a couple years ago so...

It wasn't great. Developing modules was confusing and overly complex. The documentation was horrible. The data access stack was plain stupid if you follow the "correct" way. It's written in VB.Net and many of the examples were in VB.Net. (the VB.Net thing was a big reason I didn't continue)

</comment><comment><USER4> I used DNN awhile back and it's not horrible. If they're a Microsoft shop and the app is working and their growth is incremental, let sleeping dogs lie.

If they're bringing you in to make a clean start with the best web frameworks available, then one of the Ruby/Python/PHP frameworks others mention would be better IMHO.

If the answer is somewhere in the middle, you might have a look at the Castle Project (<http://www.castleproject.org/>), which I've had some good results with in the past.

</comment><comment><USER5> Go with Drupal at least.</comment>


Linode increases storage by 20% - <AUTHOR> http://blog.linode.com/2012/12/14/storage-increased-by-20/

<comment><USER2> I love Linode, and use them for just about everything, but storage is the one place they fall behind on. I wouldn't mind low amounts of storage on instances if they had some sort of internal "cloud" storage like Amazon S3 or Rackspace Cloud Files (ie I'd still have to pay, but there are no bandwidth charges associated with moving data around).

That said, only having one complaint is a great vote of confidence, and a boost in drive space is always welcome!

Thanks, guys.

<comment><USER3> This seems like a business opportunity. You could create a third-party linode storage service, and proxy through nodes inside their network so that your clients don't have to pay for the bandwidth. You could just store the files on S3 but be able to offer competitive rates since you'd be getting a volume discount at amazon.

</comment></comment><comment><USER4> I really like using Linode. More than the size, space, and cost (which I do value), I appreciate their straightforward and detailed documentation library for administering. That, mixed with their tools, makes using Linode quite enjoyable.

<comment><USER5> I enjoy the hardware, the administration not so much. Their control panel seems to log you out if you don't do anything for longer than a minute, and the graphs have failed to show up on multiple occasions. The whole thing is steeped in early 2000s web UI. First time I encountered their monthly data volume billing I was baffled (hint: over-use costs as much as pre-paying for extra, there's no need to do it as far as I know). Customer support's been friendly though.

</comment></comment><comment><USER6> Linode has been working very well for our company as we roll out lots of servers all around the globe. We find the service pretty robust. Only wish they increased the bandwidth quota more.

</comment><comment><USER7> This seems like a good strategy for Linode - rather than decrease their prices as their running costs get cheaper, they offer more for the same price. This keeps them competitive on price, but keeps their revenue high. It reminds me of the way that car manufacturers tend to make their smallest car get bigger with each new iteration, and then introduce another smallest model. People stick with the model they like but are now paying for the second smallest car, at a higher price.

<comment><USER8> Disk space is particularly cheap. It's probably almost a natural process as they swap out older failed drives with newer ones of the same price but higher capacity.

They've upgraded RAM in the past too, but they're still not offering great value on those terms compared to Hetzner or other German hosts. CPU performance isn't particularly impressive either. What Linode does have are great customer service, a good web interface, and good choice of datacenter locations.

</comment></comment><comment><USER9> Apparently this is the second time they've increased storage on their systems since I've been with them. I have a Linode 512 plan and I had 8GB of more storage to add to my existing disks (they only added 4GB today to my plan level).

I also have to say, it was painless to upgrade the storage. Click Shutdown in the UI, resize partition, boot back up, and you're done.</comment>


User-generated questions and video answers for creative professionals - <AUTHOR> https://itunes.apple.com/us/app/spiel-app/id1449212004?mt=8 <comment><AUTHOR> Enjoy sharing what you know? Join our Q&A app and give video answers to questions directed at the community. Not ready to give a Spiel? No problem. Feel free to ask questions, or watch videos from creators as they answer practical questions, discuss the challenges they face, or provide explanations to users questions. We ask that you encourage one another by participating in the assessment of the Spiels you watch, as we believe it will build a stronger community.

Due to users feedback, we made it incredibly easy for users to skip our signup flow to see what's going on inside the app first. So please feel free to download our new version released today and test out our app instantly.</comment>


Ask HN: Contact Management solutions - <AUTHOR>

I'm surprised I haven't found a solution for this already: I've been manually copying out contacts from GMail contacts in Highrise for a while now, (even though VCard importing helps slightly) I still find it frustrating. I've searched around a few times but can't find anything that will sync highrise (or competing product I can use for managing call lists, which I would gladly switch to) with GMail contacts. Doesn't anyone know of one? <comment><USER2> <plug> Sharepad at <http://GoSharepad.com>.

We're still making some last minute changes & fixes but it should be up in a few weeks. Each Sharepad account connects to one Gmail address. Once signed up it will continuously do a real time 2-way sync between your Gmail account and Sharepad account. It will sync emails, contacts, & tasks. You can kind of think of it as email centered around your contacts as opposed to a big dumblist like you have with regular email clients. It allows you to take notes & place follow-up tasks on contacts as well.

Finally, you can share your pad with anyone simply by dragging & dropping any one of your contacts to the "Padmates" group. They can then login and manage the account with you - send emails under their own name - add & edit notes/tasks under your contacts etc.. Perfect for lead collaboration or customer management in that sense. Also good for managing projects together.

Again, we're still in the process of getting help videos up and the blog/FAQ etc but you can signup for a free account to check it out now if you like.

</plug>

<comment><AUTHOR> This is cool, and I wanted to sign up, but the page tells me "Field must be between 6 and 120 characters long." even though the password I'm trying to use is 9 chars.

<comment><USER2> Sorry about that. Should now be fixed.

</comment></comment></comment><comment><USER3> You might want to check out Nuevasync, it syncs Gmail Contacts with Highrise Contacts if I am reading their landing page right.

<comment><AUTHOR> Thanks frossie these guys look interesting</comment></comment>


The Cyborg Compulsion - <AUTHOR> http://markburgess.org/blog_cyborg.html

<comment><USER2> This is a fantastic article. Perfectly encapsulates all of my issues with AI doomsayers.

 _> Cynics might say that you have to eliminate humans because of expense and human error, etc, but now we are losing sight of purpose: what are humans here for? Humanity is the source of intent, and there is no independent evolutionary mechanism competing with that. Without humans, there is not even a process to automate._

Some very intelligent people are quick to jump aboard the "AI existential crisis" train without considering the larger evolutionary picture. We are not separate from the computer systems we create, they exist in a symbiotic relationship with us and they are driven by _our_ basic needs. Our basic needs are driven by the emergent biological properties of our bodies and our ecosystem. While it can be argued with our "intelligence" we do harm to these things, it is not in our best interest to eliminate them. Machines (and automation) are just logical _necessarily biological_ extensions of humanity. Silicon is just life's next evolutionary step. It is not reasonable to believe, based on patterns of evolutionary development, that life (including humanity) is at serious existential risk from this progression.

 _> For an intelligence to emerge, in an artificial system, we would have to very purposely built it and train it interactively. We are not merely databases. Even if we could do this:

> Do we know what intelligence is?

> Why would be make something to imitate our own?

> Would an artificial system have curiosity? (perish all the Internet cats!)

> Why do we think that intelligence would escape and kill us?

> Why would we equip the intelligence with access to the tools for our demise?

> Are we so sure that we would even be noticed or interesting to an artificial > intelligence?

> Would we even recognize artificial intelligence if it were different from > our own, and vice versa?_

Fantastic questions. Brilliant author, was a pleasure to read.

<comment><USER3> > Our intelligence grows from childhood over many years of training, through > our physical and mental interactions with the world. We learn methods along > side experiences. It is not about the speed of linear computation, or the > amount of memory.

There's nothing in principle that prevents machines from learning methods. For example, there's software that can learn some simple algorithms: [http://arxiv.org/abs/1410.5401](http://arxiv.org/abs/1410.5401)

> Do we know what intelligence is?

It's hard to pin down exactly what anything is (unless it's something we constructed from axioms). I'd be hard pressed to tell you exactly what a car is (must it have exactly 4 wheels?) -- but I still look for them when I cross the street.

You know intelligence when you see it. Bill Gates is more intelligent than a fish. That's a useful distinction to make in the world! (And that's what words are for)

> Why would be make something to imitate our own?

It's economically valuable! That's why Facebook, Google, Microsoft, Baidu, IBM are collectively investing billions of dollars per year.

> Would an artificial system have curiosity? (perish all the Internet cats!)

From the outside, curiosity looks like a drive to explore without a definite prediction about how it might help you achieve ultimate goals.

Curiosity in that sense should automatically appear in some (theoretical) systems -- for example, Marcus Hutter's AIXI formalism ([https://en.wikipedia.org/wiki/AIXI](https://en.wikipedia.org/wiki/AIXI)).

More concretely (but less directly akin to curiosity), algorithms that make tradeoffs between exploitation and exploration, such as solutions to the Multi-armed bandit problem ([https://en.wikipedia.org/wiki/Multi- armed_bandit](https://en.wikipedia.org/wiki/Multi-armed_bandit)) could display a kind of curiosity. When faced with a number of lotto levers, with independent and unknown payout schedules, the optimal solution involves switching around between exploiting known high-payout levers and becoming "curious" and trying out new levers.

The Monte Carlo tree search ([https://en.wikipedia.org/wiki/Monte_Carlo_tree_search](https://en.wikipedia.org/wiki/Monte_Carlo_tree_search)) algorithm used to make Go AIs employs such a strategy ([http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102....](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.1296)). The algorithm tries out certain variations of play, and then sometimes becomes "curious" as to whether certain other lines of play might be better, and switches over to deepening its investigation of them.

These are just examples of things that are somewhat functionally equivalent to curiosity from the outside -- it says nothing about the internal sensation of curiosity that humans experience. I have no idea what's necessary for that!

> Why do we think that intelligence would escape and kill us?

If there _were_ extremely intelligent software (a huge if!), it does seem ridiculous to claim that it'd escape or hurt people. Why would it be driven to do such a thing? The argument espoused by some very smart people e.g. Elon Musk, Stuart Russell ([http://edge.org/conversation/the-myth-of- ai#26015](http://edge.org/conversation/the-myth-of-ai#26015)), Bill Gates, Stephen Hawking, et al runs a bit like this:

Intelligent software, without being malevolent per-se, might in the pursuit of its goals incidentally do things that people don't like. (More on this line of reasoning: [https://selfawaresystems.files.wordpress.com/2008/01/ai_driv...](https://selfawaresystems.files.wordpress.com/2008/01/ai_drives_final.pdf))

Humans don't harbor a particular ill-will towards ants, but if we become interested in some (orthogonal) goal like building a basement for a house, we might along the way destroy some ant colonies. When human-level intelligence arrived and went about its business, it led to the extinction of quite a few species.

<comment><USER2> Great answers, one thing I have a particular problem with, however, is this:

 _> Humans don't harbor a particular ill-will towards ants, but if we become interested in some (orthogonal) goal like building a basement for a house, we might along the way destroy some ant colonies. When human-level intelligence arrived and went about its business, it led to the extinction of quite a few species._

I would argue that the goals of human beings are almost entirely orthogonal to the goals of ants whenever we come in contact. But this isn't a fair comparison. Human beings and their intelligence didn't emerge from the complex interactions and structures created by billions of ants. We evolved completely separately, shaped by hundreds of millions of years of different evolutionary pressures, including competition for resources (albeit at different scales). When we destroy ant hills it's because we're competing for space with a species we differentiated from hundreds of millions of years ago and now exists in a completely different ecological niche than we do.

A more fair comparison would be likening AI (and all automata + the internet) to the cerebral cortex of the mammalian (human) brain and human beings to the brainstem. Human beings are ancient, robust and necessary for all basic functionality of the organism ("humanity" as a whole). We are responsible for homeostatic regulation as well as fundamental, reactive survival instincts and processes. We make "emotional", visceral assessments of situations and react before higher-order systems are able to even assess the complexity of the problem. Further growth and development of "humanity" as an organism selected for the growth of the cerebral cortex (automata) to assess, interpret and manage more complex internal and external interactions. This allows the humanity (the organism) to be more robust and self-sufficient.

Viewed through this lens, a developmental pattern that would lead to an existential crisis for human beings seems unlikely at best and, for the most part, extremely improbable. We may not be able to individually predict how AI will develop, but we can make some educated guesses based on comparisons to emergent systems we've already seen in nature - and I think "ants vs. humans" is just poor pattern matching. :)

<comment><USER3> > We may not be able to individually predict how AI will develop, but we can > make some educated guesses based on comparisons to emergent systems we've > already seen in nature - and I think "ants vs. humans" is just poor pattern > matching. :)

Oh, I think I see. I didn't mean to imply anything about how higher intelligence might develop, and I agree that the ants and humans analogy doesn't say much about how intelligence might come about. It was just supposed to illustrate what can happen (from the ant perspective) when comparatively super intelligent goal-seeking things are present in a shared environment (regardless of how they arrived).

I have little idea if/how/when highly intelligent AI could arrive. Can we entirely rule out the possibility of AI researchers making advancements over time, and then eventually some research lab building one that's super intelligent compared to us? Why? [normally things as unlikely-sounding as this wouldn't merit discussion in my book, but in this case there might be high stakes!]

<comment><USER4> > _Can we entirely rule out the possibility of AI researchers making > advancements over time, and then eventually some research lab building one > that 's super intelligent compared to us? Why?_

That's not the thing we should be worried about, or at least that's the point I got from the article. The thing we should be worried about is the way machine learning is applied in the here-and-now: the ethics of big data social networks, the robustness of complex (API-driven) systems, and so on. I fully agree that these issues are much more pressing and worrying than some emergent super-intelligence.

But I thought the article was weak in its discussion of dreams, creativity, and linear "flat data". It links to a June 2015 popular mechanics article about applying a genetic search optimization algorithm to discover gene regulatory networks, downplaying it as not-true-intelligence. But it does not mention deep neural networks and their higher-dimensional abstractions, particularly the psychedelic "inception" images.

The author also mentions "linear reasoning", and says he expects we'll learn more about intelligence from stem cell and Alzheimer's research, and the "tissues surrounding neurons, and the roles they play in contextual regulation." As if to set up some dichotomy between machine and biological intelligence. But what about deep neural networks?? I'm not sure how that would affect the author's arguments, but I'd like to see it discussed.

</comment></comment></comment></comment></comment><comment><USER5> > _Hand-made confectionary [sic] is still popular._

Huh.

> _Tupperware has not replaced basket weaving_

Right. Handmade baskets are a staple in any modern american home.

> _Although music can be programmed by computer, opera and classical music are > booming._

Really? Have you turned on the radio in the past 30 years? I live in a major metropolitan area, and there are only two classical music channels. And they are constantly going on fundraising drives, begging listeners to donate so that they can stay on the air.

<comment><USER6> Handmade candies are certainly popular.

I have several handmade baskets, though I confess that they were handed down to me from my parents. They don't have to be a staple, however, to still have a place these days.

> Really? Have you turned on the radio in the past 30 years? I live in a major > metropolitan area, and there are only two classical music channels. And they > are constantly going on fundraising drives, begging listeners to donate so > that they can stay on the air.

That means that classical music hasn't found a stable home on the radio in your area. It doesn't at all mean that classical music and opera aren't booming. The 21st century is jam-packed with classical composers and there are plenty of people recording, performing, and consuming those works.

<comment><USER5> Handmade candies aren't popular, they're trending. Just like artisinal pickles.

Also, there's a reason why orchestras all over the country are going on strike or shutting down.

<comment><USER6> > Handmade candies aren't popular, they're trending. Just like artisinal > pickles.

Things trend because they're... wait for it... _popular_.

> Also, there's a reason why orchestras all over the country are going on > strike or shutting down.

Unless you assume that all classical music is orchestral or that you can only experience such music in a certain setting, I'm not sure where you're going with this.

</comment></comment></comment></comment><comment><USER7> I'll be happy to put my keyboard down, to write not a single line more of code; there's quite a bit I could do if I wasn't always mired in the realities of writing production grade code.

Of course, I imagine that will happen at some point after when McDonalds has been completely automated, and self driving cars can navigate Montana winters with ease.

It's an odd article to downplay the impact and capabilities of automation and AI, and then complain that programmers haven't been replaced by the same.

</comment><comment><USER8> > We need to sharpen our understanding of both intelligence and mechanical > behaviour: what is smart behaviour, and who says so?

And also: is there a simpler or better theory that accounts for all of the evidence, that is more plausible than intelligence?</comment>


Apple Is Withdrawing Safari's Do Not Track Feature - <AUTHOR> https://www.engadget.com/2019/02/07/apple-removes-safari-do-not-track/ <comment><USER2> I would prefer if DNT was used to prevent those GDPR cookie warning popups and just respect my wishes just as the visited site expects me to respect their copyright.

Obviously DNT is not a hard protection for privacy just like (c) 2019 doesn't protect your copyright.</comment>


Is the World Ready for Floating Nuclear Power Stations? IEEE Spectrum - <AUTHOR> https://spectrum.ieee.org/energywise/energy/nuclear/is-the-world-ready-for-floating-nuclear-power-stations#.XZKEQXfPUS8.hackernews <comment><USER2> Hardly the _first_ floating nuclear power station.

I see no logical difference between a general-purpose floating nuclear power station and a one which is dedicated to (say) powering an aircraft carrier.

Both floating, both nuclear. Both subjected to the same risks. If anything, the carrier is exposed to greater risk.</comment>


Introduction to AVX2 optimizations in x264 - <AUTHOR> http://www.scribd.com/doc/137419114/Introduction-to-AVX2-optimizations-in-x264 <comment><USER2> A couple of comments/elaborations on the "core differences" mentioned in the article:

The first difference mentioned is that whereas the first SSE2 implementations were often implemented using 64-bit ALUs internally, yielding roughly the same performance as doing two equivalent MMX ops manually, this isn't the case with AVX2. However, it may be worth noting, that it largely _is_ the case with the current AVX ("AVX1", i.e. pre-Haswell) implementations.

The second cited difference is that there's a 128-bit "boundary" in many of the operations. This is effectively what can throw down the drain the hopes of getting 2x gains over SSE2 just by naïvely migrating into AVX2. For instance, you cannot do shuffles to/from arbitrary components anymore, but have to consider the 128-bit lane boundaries instead.

The third issue, i.e. data layouts of internal formats and the assumptions of various algorithms are probably the most significant factors that determine how large a benefit you are going to get. Typically the internal data layouts (i.e. is my pixel block size 2x2, 4x4, 16x8 or something else?) are married with the ISA. Thus, when migrating from one instruction set to another, these typically may need to be reconsidered if speed is paramount. Interestingly enough, this means that when the ISA changes, you most likely want to do some higher-level algorithmic optimizations as well.

</comment><comment><USER3> Anyone have a non-scribd copy?

<comment><AUTHOR> There's one attached to my newsletter that goes along with the latest changes; see [http://mailman.videolan.org/pipermail/x264-devel/2013-April/...](http://mailman.videolan.org/pipermail/x264-devel/2013-April/010044.html).

</comment></comment><comment><USER4> Are there binary builds available with AVX2 support compiled in for testing? I'm curious if FMA(3/4) support available in AMD processors would increase performance. A quick Google search shows that there are some patches available for FMA support.

<comment><AUTHOR> I only pushed the code a few minutes ago, but binaries should probably be up at <http://x264.nl/> relatively soonish (it's not my site though, so I wouldn't know exactly).

If you want to test without a physical Haswell, the Intel Software Development Emulator should work okay, albeit somewhat slowly. I'd post overall numbers for real Haswells, but Intel has apparently said we can't do that yet.

Regarding FMA, FMA3/4 are floating point only. Since x264 has just one floating point assembly function, only two FMA3/FMA4 instructions get used in all of x264 (not counting duplicates from different-architecture versions of the function). An FMA4 version has been included for a while; the new AVX2 version does include FMA3, but of course that won't run on AMD CPUs (yet).

XOP had some integer FMA instructions, but I generally didn't find them that useful (there's a few places I found they could be slotted in, though).

<comment><USER5> I've heard that there are c libraries for things like SSE2. I assume the same is true of AVX2. If this is so, why do you write so much of x264 in assembly? Do you find that there are significant gains versus c-code that uses SIMD libraries? Have I been misled that C is nearly as fast as assembly 99% of the time?

Note: I'm not trying to question your engineering chops, just trying to correct my own misconceptions.

<comment><AUTHOR> "C libraries for things like SSE2"? Do you mean math libraries that have SIMD implementations of various functions that are callable from C? This here is effectively _writing those libraries_ ; they don't exist until we write the code.

<comment><USER5> I'm talking about something like this: <http://sseplus.sourceforge.net/fntable.html>

I'm not an SIMD expert, but it seems like this implements similar primitives to those that are available to assembly (and not C). My question is basically whether the algorithms you're talking about could be implemented with these primitives. Although I guess no such library yet exists for AVX2.

<comment><AUTHOR> Intrinsics aren't really C; they work in a C-like syntax, but you're still doing the exact same thing as assembly: you still have to write out every instruction you want to use, so you're not really saving any effort compared to just skipping the middleman.

In return, you are stuck with an extremely ugly syntax and a much less functional preprocessor, with the added bonus of a compiler that mangles your code.

<comment><USER6> With intrinsics, you don't have to think about register naming. You still might count registers to avoid spills (and check the assembly to make sure), but there is less of a mental context switch than writing straight assembly.

<comment><AUTHOR> I almost never spend more than a few seconds considering register allocation/naming when writing assembly (part of this is because x264's abstraction layer lets macros swap their arguments, so you don't have to track "what happens to be in xmm0 right now" mentally). In some rare cases it can get tricky when you start pushing up against the register cap, but that's _exactly the case where the compiler tends to do terribly_ , and you'd want to do it yourself.

The pain of not having a proper macro assembler in C intrinsics is orders of magnitude worse than having to do my own register allocation in yasm, so for now, yasm is the lesser of two evils.

<comment><USER7> Is there any hope of a compiler ever coming close to the level of optimization you can get from hand-coded assembly language? The numbers in your table routinely exceeded 10x gains over straight C. What's the compiler doing that's taking so long? Is it not able to vectorize at all?

<comment><AUTHOR> x264 actually turns off vectorization in the configure script, because it's caused crashes and bugs in the past on various platforms. But even if you enable it, it usually almost never triggers. Even the Intel compiler's autovectorization only triggers in a few functions, despite its reputation, and typically does an pretty mediocre job.

The problem has many parts:

1\. Autovectorization in general is just extremely difficult and even trivial code segments often get compiled very badly. It feels like the compiler is trying to fit the code into a few autovectorization special cases -- for example, a 16x16->16 multiply gets compiled into a 16x16->32 multiply, and then it laboriously extracts the 16 bits, probably because nobody wrote code to explicitly handle the former variant. A good autovectorizer would have to have a vast array of these sort of things to "know what to do" in a particular case, I'd imagine.

A lot of autovectorization resources seem to be tuned towards floating point math (which typically doesn't need the same sort of tricks), which probably exacerbates the problem in x264's case.

2\. The compiler doesn't know enough. It can't guarantee alignment, it doesn't know about the possible ranges of the input values or the relationship among them, it doesn't know the things the programmer knows.

3\. SIMD algorithms are often wildly different from the original C. Much of the process of writing assembly is figuring out how to restructure, reorder, and transform algorithms to be more suitable for SIMD. The compiler can't really realistically do this; its job is to translate your C operations into machine operations, not rewrite your algorithm.

Part of this problem is that C is just not a great vector math language, but part of it is also that the optimal algorithm structure will depend on the capabilities of your SIMD instructions and their performance. For example, when the _pmaddubsw_ instruction is available, it's faster to do x264's SATD using a horizontal transform first, but if not, it's faster to do it with a vertical transform first. The Atom CPU has pmaddubsw, but only has a 64-bit multiplier, making it too slow to utilize the horizontal version (so it gets the vertical version instead).

You can definitely finagle code into getting hit by the autovectorizer, especially with Intel's compiler, but it takes a lot of futzing to make it happy, and even when it is happy, it can be many times slower than proper assembly. Of course, it's not useless -- it can get you some relatively free performance improvements without writing actual SIMD code. But it's not a replacement.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Nice gains. Thanks for the writeup and explanations!</comment>


Ask HN: What are the pros/cons to using a single non-JS lang to rule them all? - <AUTHOR> The important point is to be able to effectively use a single (non-JS ^) programming language for mobile, browser and server-side. Ideally, to cut down on the technologies folks would have to come up to speed on and allow them to go deep with a particular language. This is beyond isomorphic apps, though, these are included. So, F# can theoretically run on the server, in the browser (via Fable [1]) and on mobile (via Xamarin Studio [2]). Clojure has a similar story since JVM languages can run on Android mobile phones/tablets and there is ClojureScipt [3]. These are just some examples of ones I am aware of. (I wonder if there is something like Fable for Swift?)
Is this a pipe dream, or is there real value to this approach?
^ Why non-JS? Mainly because I am interested in exploring other languages that can include statically typed, compiled languages.
[1] https://fsprojects.github.io/Fable/ [2] https://www.xamarin.com/studio [3] https://github.com/clojure/clojurescript
Edit: styling, grammar <comment><USER2> The ultimate dream (IMO) is to use CHICKEN Scheme for everything. You can use it on the web [1], transpile to JS [2], run on Android [3], and since it's so portable, you can basically use it anywhere C code can run (embedded, etc.).

In practice though, it's not so glorious. CHICKEN still lacks strong numerics libraries (think Numpy, APL), and SPOCK, while useful, isn't as rugged or battle-tested as say, Clojurescript. It doesn't transpile to the greatest JS code, and I don't believe it works with all browsers (docs seem to indicate it needs work [2]).

I think it could be reasonable to eventually get this level of support, but the Scheme community is already quite small and needs people to work on these sorts of things. Right now, I'd say it's unreasonable to write everything (JS and numerics are the big problem) in CHICKEN, but we're getting close.

[1] [http://wiki.call-cc.org/chicken-projects/egg- index-4.html#we...](http://wiki.call-cc.org/chicken-projects/egg- index-4.html#web) [2] [http://wiki.call- cc.org/eggref/4/spock](http://wiki.call-cc.org/eggref/4/spock) [3] [https://github.com/chicken-mobile/chicken-android- template](https://github.com/chicken-mobile/chicken-android-template)

<comment><AUTHOR> Thanks for your response. This is the type of thing I am wanting to do, even if not with CHICKEN Scheme. :)

</comment></comment><comment><AUTHOR> To clarify ... I am seeking advice on whether choosing a single non-JS language for "all" form factors is reasonable given existing languages, libraries, etc.

</comment><comment><USER3> ClojureScript sounds like it's already doing this; I think most people simply prefer writing JS to writing Clojure.</comment>


Ask HN: Which game console will be the easiest to develop for? - <AUTHOR>

All major game consoles and Ouya. <comment><USER2> Mobile consoles like PSP(\s*)? and Nintendo .?DS.? are loosing quickly market share to AppStore-based devices (from apple, google, etc...) in mobile or tablet form.

I would bet for firefoxOS on the mobile/tablet market (<http://www.mozilla.org/en-US/firefox/partners/)-> just because "low-end" devices will grab a lot of market share in "developing" countries and users with their first smartphone (think about growth).

For living room & sofa consoles... the hardest part is not programming, but publishing. Try the one with more "indie" games.

</comment><comment><USER3> Depends what languages you know etc.

Xbox has XNA, which is OK.

Ouya has many Android game libraries, amongst others: libGDX.

Or you could count Steambox as a console, and develop in whatever you want (to a certain degree).

<comment><USER4> I like XNA, isn't it defunct now though?

</comment></comment><comment><USER5> I spent some time playing with kinect sdk and was surprised to see how mature it looked. Easiness totally depends on what you are trying to achieve.</comment>


An end to frivolous patents may finally be in sight - <AUTHOR> http://www.economist.com/sciencetechnology/displayStory.cfm?story_id=15479680

<comment><USER3> If you don't want to read through all the explanation of what patents are and why the they are too strict here is the two paragraphs of news:

"America's Supreme Court is about to issue a ruling which, by all accounts, will make it difficult, if not impossible, to get a patent for a business process. And because most business processes are, at bottom, computer algorithms, the Supreme Court's judgment could also bar all sorts of software patents in the process. As a result, a lot of patents for online shopping, medical-diagnostic tests and procedures for executing trades on Wall Street could be invalidated.

The roots of the dispute go back more than a decade to two inventors, Bernard Bilski and Rand Warsaw, who sought to patent a method of hedging weather- related risks in energy prices. The USPTO concluded that the process was too abstract and denied the application. On appeal, the Federal Circuit actually upheld the patent office's decision—and said, crucially, that the process would be eligible for a patent only if it was "tied to a particular machine or apparatus" or if it "transformed a particular article into a different state or thing". Failing on both counts, the inventors took their case to the Supreme Court, which has been pondering for the past few months whether the "machine-or-transformation" test is an appropriate standard. It is hard to conclude it is not. "

<comment><USER4> Not to be nitpicky with the article, but it's a little misleading when it says (right above this quoted section):

 _"What is clear is that the "non-obviousness" part of the test for patentability has not been applied anywhere near rigorously enough to internet and business-process patents. Because they lack a history of "prior art" to refer to, examiners and judges have granted a lot of shoddy patents for software and business processes."_

Bilski has nothing to do with obviousness. Bilski is about the subject matter requirement, which is that patents can only be granted on certain types of inventions. For example, physical machines can be patented, but electronic signals cannot.

This is another reason (in addition to Grellas's below) that I doubt Bilski will have a big effect on software patents. Regardless of the outcome of the case, it will be most likely easy to work around, simply by tying the software to some sort of machine, be it a computer, mobile phone, embedded circuit, or anything else.

</comment></comment><comment><USER5> I wouldn't hold my breath that the forthcoming _Bilski_ decision will put an end to frivolous patents.

While it is true that the justices appeared to be highly skeptical at oral argument of the patent claims being asserted in this case, one must remember context here: in essence, _Bilski_ was _the_ decision by which the Federal Circuit sought to rein in process patents in the first place, and it did so with a rationale that, while clearly limiting such patents, relied on a somewhat arbitrary test that finds no direct support in either the constitution or the patent statutes (industry participants clearly see the case as potentially major and have filed over 50 amicus, or "friend-of-the- court" briefs with the Court). One might think of it as a pragmatic test by which the Federal Circuit sought almost out of desperation to bring some measure of sanity to this area.

It is never good news for your case, though, when the Supreme Court agrees to hear a case that first adopted a novel test that the lower court basically invented. This typically means that at least a good number of the justices are prepared potentially to reverse that decision and, if that should occur here, this will mean that there may be _broader_ scope than exists today for the granting of process patents.

Again, the justices did not seem impressed at argument with the claims for broad patentability as asserted by the claimant in this case and they may easily rule against him, as did the Federal Circuit court. But they may choose to rule on narrow grounds that perhaps strike down the Federal Circuit test without attempting to define the rules definitively going forward (the Court often does this on the theory that an issue will continue to develop over time as it considers how best to finally deal with it).

It is a mistake to have raised expectations about the impact of this case in striking down process and software patents. It may happen but, if it does, that will be a surprise and not an expected outcome. In this sense, this piece is a bit over-optimistic, in my view.

</comment><comment><USER6> I have to admit: this is one of the most well reasoned, clearly articulated discussions of the patent system I have read in a very long time.

Only one portion that I think is misleading:

"Meanwhile, the loss of patent protection for software could make programmers realise at last that they have more in common with authors, artists, publishers and musicians than they ever had with molecular architects and chip designers. In short, they produce expressions of ideas that are eminently copyrightable."

As you can imagine, the process of copyrighting code is somewhat unwieldy. The definition of what constitutes copyright violation (changing variable names? functionally similar code with a differing structure?) and what constitutes fair use is hazy. Is it the answer to the patent woes of today? Probably not, but it could evolve into a more complete solution if/when it is more heavily utilized and more cases are litigated to develop a stronger precedent.

<comment><USER7> _The definition of what constitutes copyright violation (changing variable names? functionally similar code with a differing structure?) [...] is hazy._

I was under the impression that this was generally pretty clear-cut. What's relevant is not primarily the content of the works but how they came about, i.e. whether or not one of them is a derived work of the other. _Proving_ that it is or isn't a derived work can be difficult, but I don't think that's a problem with the law itself. (as usual: not a lawyer)

The definition of fair use is arguably hazy though, I agree on that.

<comment><USER8> > What's relevant is not primarily the content of the works but how they came > about, i.e. whether or not one of them is a derived work of the other.

No. What's relevant is the content of the works, not how they came about. If you've been locked in a soundproof, opaque box since birth with nothing but a typewriter, and you manage to type out part of the screenplay of Star Wars without ever having seen it, you've still violated copyright. There are many, many cases where no actual copying was ever proved and yet copyright violation was found.

<comment><USER9> While this is true of patents, it is _not_ true of copyrights. Independent creation is a valid defense.

[http://en.wikipedia.org/wiki/United_States_copyright_law#Inf...](http://en.wikipedia.org/wiki/United_States_copyright_law#Infringement)

"[If] two individuals both create a story that by pure coincidence is nearly identical, but each without knowledge of the other, there is no infringement since there is no copying."

<comment><USER8> Quoting Wikipedia for legal matters is better than nothing, I suppose, but hardly decisive. In this case, Wikipedia is wrong, as I have noted: many courts have found copyright infringement without any proof at all being presented that anything was copied. With the facts given - two individuals creating by pure coincidence a story that is nearly identical - <USER2> published it first is going to win the court case, and the court will presume that the other party copied it, even if no one testifies that they saw the other party reading, editing, and copying from the first story.

If you by pure chance happen to have a music file on your hard drive that decodes to play "Thriller" by Michael Jackson, and you claim that you created it independently and have never heard of the song before, I assure you the court will rule against you and the music publisher will not be required to submit any proof that you copied it from, say, a CD of Jackson songs.

The "copy" in copyright is NOT copying the other person's work. It's producing the copy you made. So in the story example, the second person's published story is the infringing copy, "Copying" from the first story is not the copying that is covered by copyright; it's the creation of items that appear to be copies.

Wikipedia is simply wrong here and it's kind of sad that HN is so ignorant about copyright law.

<comment><USER9> Sorry, but quoting Wikipedia is better than quoting no evidence at all, which is what you've done.

</comment></comment></comment></comment></comment></comment><comment><USER10> No matter what the decision is, there is an army of patent lawyers whose livelihoods depend on the existing system. They will fight the only way they know how (filling lots of lawsuits) for years before business practices change.

</comment><comment><USER11> While copyright does last for 70 years, it doesn't seem all that useful to software developers. After all, if the idea behind a piece of software is not protected, it is a relatively simple matter to rewrite it (if given the idea).

That said, an end to software patents would be welcome indeed. I wonder if this would have any impact on the H.264 patent?

<comment><USER12> Actually that very much scares me. What's to prevent any company from copyrighting a small passage of code and then rigorously suing everyone and their brother for it? At least with patents you can claim prior art.

<comment><USER13> IANAL, but copyrights also differ from patents in that you have to show intentional imitation, not just similarity. Since prior art would reasonably prove that couldn't have copied something, this would imply that this avenue of defense is strictly stronger than the prior art defense against patent litigation. Some quotes from Wikipedia (with the usual caveats):

> "... two authors may own copyright on two substantially identical works, if > it is determined that the duplication was coincidental, and neither was > copied from the other."

> "Infringement requires... that the defendant copied the protected work... if > two individuals both create a story that by pure coincidence is nearly > identical, but each without knowledge of the other, there is no infringement > since there is no copying."

</comment></comment></comment><comment><USER14> The transcript of the relevant Supreme Court hearing is the reason for hope and is remarkable thoughtful: [http://www.supremecourtus.gov/oral_arguments/argument_transc...](http://www.supremecourtus.gov/oral_arguments/argument_transcripts/08-964.pdf)

<comment><USER15> Not necessarily. Apparently, the justices are often toughest in argument with the side they are thinking of ruling _for_.

</comment></comment><comment><USER16> No Sign of End to Headlines Expressing What _Might_ Be True

</comment><comment><USER17> I don't feel as optimistic as the author does; yes, the SCOTUS is currently examining what may turn into a landmark case on the patent system. However, this is a seemingly addled Supreme Court, given some of its recent decisions -- and many of the members are the same ones who didn't buy Larry Lessig's assertion that copyright terms, currently the life of an author + 90 years, is far beyond the constitution's "limited time" requirement.

<comment><USER18> Yes, but many of the questions raised by the justices were skeptical of patenting abstract ideas. I think the consensus is that Bilski will lose, and the real question is how narrow the Supreme Court's decision will be.</comment></comment>


Earthcomber Cries Patent Infringement Against Loopt - <AUTHOR> http://www.techcrunch.com/2008/10/03/earthcomber-cries-patent-infringement-against-loopt/

<comment><USER2> "a system and method for locating and notifying a user of a person, place or thing having attributes matching the user's stated preferences."

This is an inevitability, not an innovation. They probably have a patent on holographic GPS, or HDTV-smartphone applications too...they just can't get them to work.

</comment><comment><USER3> Any patent that has a little squiggly blob labeled "internet" in the picture should be automatically denied.

</comment><comment><USER4> <http://www.earthcomber.com/splash/index.html>

I guess they had to hire some kid down the street to design their website so that they could afford the patent lawyer.

</comment><comment><USER5> if you can't beat them in the market... ligitate and extort</comment>


Image searches for "Tiananmen" are now show protests on Google.cn - <AUTHOR> http://laughingsquid.com/google-takes-a-new-hard-line-approach-to-china/

<comment><USER2> From what I understand, the filtering is IP-activated. Outsiders have always been served normal results.

<comment><AUTHOR> I never thought I would want to tunnel _into_ China, but it appears from the few proxies I've tried that filtering is off.

A few very dubious free proxies with mixed functionality may be found here: [http://www.hidemyass.com/proxy-list/China/fast/show- planetla...](http://www.hidemyass.com/proxy-list/China/fast/show-planetlab/2/)

Edit: Screenshot: <http://imgur.com/8nDXo.png> and IP: <http://imgur.com/0o3Am.png>

SOCKS5 using 18.104.22.168 port 80 on Firefox is a quick way to mess around - though this doesn't take into account DNS resolving locally. There are discrepancies between the two searches still, but searching for "Tianamen"[sic] yields many more of the protest images.

</comment></comment><comment><AUTHOR> This could be due more to Google not responding to take down claims than lifting bans altogether...</comment>


Gender Decoder for Job Ads - <AUTHOR> http://gender-decoder.katmatfield.com/ <comment><USER2> As someone who's been in HR/Recruiting, most well-written job ads will come across as being masculine. They should lay out specific position requirements (i.e. education/credentials, experience, hard/soft skills - though I much prefer to have credentials lead the way on skills at all times; if it's in black-and-white it's real, any spoken assertion is as good as the paper it's written on), specific responsibilities, and if appropriate, specific projects the employee will be involved with - which may include team sizes. They may also list starting salary, but I've always preferred to list it BOE and discuss - it leads to people setting their personal anchor lower and makes things easier.

Any "cultural" discussion about the workplace should happen at the interview, and that's where you get into the fuzziness of "gender-coded language" \- which to me is kind of nonsensical to begin with. English is a nongendered language, but evolved from multiple gendered languages; there will always be connotations. Connotations and vagaries do not belong in a job description/advertisement.</comment>


How to Quantify (and Fight) Gerrymandering - <AUTHOR> https://www.quantamagazine.org/20170404-gerrymandering-math-standard/ <comment><USER2> The Supreme Court is actually a very poor place to decide this. A court does not have the ability to gather facts, but only to decide on what is presented to it. It is a very poor way to create law.

A legislature, on the other hand, can call witnesses and do fact finding. Congress could very well create law that would specify more exactly what the Constitutional clause means.</comment>


Two proposals for browsers - it's about time - <AUTHOR>

I've been reading a bunch of stuff on HN about user privacy, etc. and trying to build something myself which lets the user feel secure and in control, but current web technology doesn't let me do it. So I wanted to propose two things on here, and maybe someone here would run with the idea.
1) I propose a simple mechanism to guarantee that a resource located at a certain URL is always the same. Similar to how we have https:// blabla, and the user agent warns us if the server's certificate is not trusted, we should have httpc:// blabla to indicate constant resources. Sites all over the world can download resources from httpc:// urls and store hashes to them in various formats, and your user agent can trust one or more of these authorities. When downloading, it would compare the hashes against the ones downloaded from these authorities, and if there is even a small deviation, it would give you a warning just like https://
I can see this being used in app stores for the web (curating apps and various versions of apps, like Apple does) and also for secure logins. I would like someone to make guarantees that my password is not being sent in the clear to the server that I am connected to. Right now, the web forces us to trust a remote server completely, when interacting with a website. For example, when I enter a password, I have no assurance that the server won't misuse it. (See http://xkcd.com/792/)
This simple change would make possible a variety of applications that we haven't even thought of, besides these two.
2) The second proposal is to have iframes that are on top of everything else in the containing window, no matter what. That would enable 3rd party logins (such as OAuth) do be done in the iframe, without worrying about clickjacking. The javascript inside the iframe should have a way of checking whether the iframe is of this type. At most one such iframe can be shown in any given window.
This would lead to much more pleasant interfaces, and once again, the user would receive the extra protection. Of course, this means that Flash and other plugins would have to play nice with this. We could implement this rather easily with a browser extension that causes a borderless window to appear (like Flash does) above the actual browser window.
Thoughts? <comment><USER2> On 1) There are parts of the stack that do some of the things you describe here. For example, on HTTP level there is ETAG <http://en.wikipedia.org/wiki/HTTP_ETag> and there is offline web app proposal <http://www.w3.org/TR/offline-webapps/> They are used for different purposes and they work (whether they work well is a different matter), but in a way they can be used for "constant resources". I don't really see how such mechanism can be used as a guarantee against sending a password in the clear.

On 2) I would rather see someone work on solving the underlying problem, which in a nutshell is security. That's a hard problem and I don't really see it solved with iframes.

All that said, you are absolutely right: these are problems and should be worked on.

<comment><AUTHOR> The thing is, the ETAG and other headers are sent by the server. They may be different tomorrow.

Technically we don't have to have a different scheme like httpc:// ... although it would be better to have it, because people can see at a glance the httpc:// and know that guarantees have been made (as opposed to headers having been sent).

The only guarantee we need to make is that the file is constant. That is easy enough to check without even having a web of trust. Since something is constant, just add a couple of authorities on the internet to each browser, and if even one of them disagrees, show the warning. (A rogue "authority" can of course mess up someone's login screen by claiming it changed, but the similar things can be done by rogue dns servers.)

Anyway once you guarantee the constant-ness, other authorities can guarantee things like "safety". And the best part is, httpc:// files should be the same to everyone, regardless of cookies, IP, etc. so ANYONE can go and verify their properties. There is NOTHING like this in user agents right now (automated verification of guarantees about a resource) but there should be!!

</comment></comment><comment><AUTHOR> About proposal #2 ... technically, all we would have to do to implement "topmost iframes" is to make their z-order highest in the browser renderer. Now that I think about it, flash and other commonly installed plugins that may create a window "on top of" the browser would not make clickjacking possible, since those windows receive the mouse inputs.</comment>


TensorFlow Fold: Deep Learning with Dynamic Computation Graphs - <AUTHOR> https://research.googleblog.com/2017/02/announcing-tensorflow-fold-deep.html <comment><USER2> Here is a summary of the TensorFlow Fold paper. [http://muratbuffalo.blogspot.com/2017/01/deep-learning- with-...](http://muratbuffalo.blogspot.com/2017/01/deep-learning-with-dynamic- computation.html)

</comment><comment><USER3> For anyone interested in really flexible differentiable graphs, Chainer is the most flexible convenient library I've used. It's all I use for prototyping neural nets anymore, and I'm surprised not to see more adoption. It feels like working in numpy.

<comment><USER4> In large part, in the CPU section, it _is_ working in numpy. I think of the neural network libraries, Chainer is made by the people who like actually coding the most.

I mean, for example, lots of the TensorFlow type checking gets done in Eigen, where it's done by C++ template metaprogramming (that's how it worked when I looked at it, anyhow): Chainer type stuff just gets done by runtime inspection.

Which one is faster? TF, by far. Which one would you rather have in _your_ codebase?

Edit: after reading the damned thing, they add in more runtime type stuff. And after looking over TF back again, they still have this hybrid thing going on where it's some Eigen stuff and some runtime stuff. I mean....

</comment></comment><comment><USER5> The paper is dense and I'm on a train. Can anyone summarize the difference between TensorFlow Fold and Chainer?

Also, self promotion: Gorgonia ([https://github.com/chewxy/gorgonia](https://github.com/chewxy/gorgonia)) has support for dynamic computation graphs ala Chainer since day 1... however, batched computation remains difficult to implement.

<comment><AUTHOR> TensorFlow Fold provides a TensorFlow implementation of the dynamic batching algorithm (described in detail in our paper [1]). Dynamic batching is an execution strategy for computation graphs, you could also implement it in PyTorch or Chainer or any other framework.

Our particular implementation of dynamic batching uses the TF while loop, which means that you don't need to make run-time modification to the actual TF computation graph. At runtime, we essentially encode the computation graph for (let's say) a parse tree as a serialized protocol buffer (tf.string), so instead of varying the computation graph itself we vary the input to a static computation graph instead. This particular implementation strategy is very much a byproduct of how TensorFlow works (static computation graph, heavy lifting happens in ops implemented in C++).

[1] DEEP LEARNING WITH DYNAMIC COMPUTATION GRAPHS, [https://openreview.net/pdf?id=ryrGawqex](https://openreview.net/pdf?id=ryrGawqex)

<comment><USER6> Congratulations on the nice work! It is very elegant to use combinators to formulate and solve this problem. Though my worry with combinators is that they introduce awkwardness with setting up 'long range' DAG edges, you _can_ have to do a lot of shuttling of things around manually through tuples and whatnot, I'm not sure how it is with your framework.

Am I right in thinking that there is no bucketing going on here? In other words, each batch is fixed length, and a short-lived DAG is planned and then simulated with tf.while to accommodate the set of shapes in that particular batch? Are there any problems when the input shapes are wildly different in expense? For example, imagine a size-agnostic convnet. Maybe some of the images in the training set are small, others are large, how would that look in your framework, if it can be done? Is junk padding part of picture, to help match almost-equal tensors to allow them to be batched?

<comment><AUTHOR> Thanks, insightful questions.

You're absolutely right about combinators and long-range dependencies. We have a special block type in the high-level API ([https://github.com/tensorflow/fold/blob/master/tensorflow_fo...](https://github.com/tensorflow/fold/blob/master/tensorflow_fold/g3doc/py/td.md#td.metric)) for accumulating results here without having to explicitly shuttle them around; not perfect but very handy in many cases.

Regarding your second question, the equivalent of padding in dynamic batching is "pass through" do-nothing ops, which are introduced transparently but worth being aware of if you want to understand the machinery. The worst case scenario here is chains of wildly varying lengths, where we need to add pass- throughs to the shorter chains to match the length of the longest chain.

</comment></comment></comment></comment><comment><USER7> Github link: [https://github.com/tensorflow/fold](https://github.com/tensorflow/fold)

Paper link: [https://openreview.net/pdf?id=ryrGawqex](https://openreview.net/pdf?id=ryrGawqex)

</comment><comment><USER8> This is great news, was just wondering when TensorFlow would support this after reading about PyTorch.

<comment><USER9> They got scooped and pushed to publish the interns project.

<comment><USER10> I believe the TensorFlow Fold paper came out before PyTorch.

</comment></comment></comment><comment><USER11> The concept seems interesting. I have stopped the close investigation of the stack I use at the "Keras level" and mostly use things below that as a black box. I'm defaulting to Theano since I only have one GPU to work with but as far as I can tell switching to TensorFlow is basically a small config-change. I've only browsed this but since I mostly do NLP (and virtually no image recognition) I suppose it could be worthwhile to switch. I guess I'll need to open the black boxes a bit and see what Theano does :)

</comment><comment><USER10> Why does the GitHub page say this is not an official google project, yet it's on the google blog?

<comment><AUTHOR> Please note that the GitHub page says "not an official Google product", rather than "project". An official Google product would be something like gmail.

<comment><USER10> I guess I was confused because the main TensorFlow page doesn't have that phrase. Made it sound like it won't be officially supported by Google.

</comment></comment></comment><comment><USER12> The "leading" DL framework is playing catch-up to Chainer, PyTorch and DyNet. Another Google product development bungle.

<comment><USER13> The way I see it, TF is about to pull _way_ ahead thanks to XLA JIT/AOT. All of a sudden you get the ability to fuse things at a much more granular level, which could reduce memory bandwidth requirements by a lot. Frameworks like Torch can't do any fusing at all, since their computation is fully imperative. Tactical win for imperative frameworks, I suppose, but strategically functional graph is the way to go. DB people realized this in the 70s, ML people are realizing this now.

<comment><USER12> TF is way behind on UI, which is why it's making Keras its front-end. It's fairly slow on multi-GPUs compared to Torch and neon. It might pull ahead in performance on GCE, but that's just for lockin.

<comment><USER13> TF is in a fortunate position of having several UIs at this point. It's a lower level framework with a lot of power. If you don't need all that power, Keras or TFLearn or Slim are pretty great. If you do, it's there for you. I see no evidence that Google's goal with TF is to lock you into anything, and especially GCE. I'm a former Google employee, and I can tell you unequivocally — that's not how Google actually works.</comment></comment></comment></comment>


Type-ahead suggestions based on the real-time search intent of a user - <AUTHOR> https://medium.com/myntra-engineering/real-time-context-based-smart-type-ahead-suggestions-316ac7a25107 <comment><USER2> Where else can the real time user context getting used in Myntra?</comment>


SURBL - <AUTHOR> http://www.surbl.org/ <comment><USER2> Great! Yet another blacklist to cause collateral damage for us poor email admins.

If there's one type of person than invokes homicidal rage in my otherwise fairly mellow personality is the arrogant email admin who won't allow an exception so a person on one of my RBL-listed servers can communicate with one using his servers. The worst is flat-out rejecting email (as opposed to using scoring) because the sender's mail server is listed on a single RBL of the fifty or so that are out there. It's not like the users have any knowledge of the ugly politics involved with the RBL vigilantism that goes on behind the scene of the mail servers, so in the end they are the ones who suffer pointlessly.

I once talked to an admin who had the balls to be _proud_ that he forced one of his employer's satellite offices to capitulate and get removed from all RBLs so they could communicate with corporate. Let me tell you... I've never communicated with a more self-righteous prick.

Yeah, yeah, I know: you have the right to do whatever the hell you want on _your_ mail servers. However, when you take the supposed high road by denying proven legitimate email due to a listing on some 3rd party list, you're being a major asshat.

We can achieve 99.5% effective filtering with per-mailbox statistical filtering. There's no reason to create yet more lookup traffic dedicated to the spam problem.

The entire RBL concept is broken. Please don't add to this ecosystem.

(Note to the creator, admins, and users of backscatterer.org: There's a special hell for each and every one of you.)

<comment> mike-cardwell Email would be a _dead_ technology without the existence of RBLs.

<comment><USER2> Hyperbole much?

I've run a few mail servers in my time, never having used RBLs, and they do just fine with statistical filtering. I've used email services (and did admin work for a couple), and had nothing but trouble with RBL-related issues.

RBLs are run by people with political axes to grind, and RBLs are used by people who haven't been burned enough to know any better.

<comment> mike-cardwell No hyperbole. You've clearly not run any large mail systems.

</comment></comment></comment></comment><comment><USER3> Oookay... and how is me sending out spam with my competitor's website in it handled?

<comment><USER4> Yeah. I had a similar idea a while back (as I noticed that 99% of my personal spam filter rules on a web forum I was running were URL filters for scam companies), and then immediately realized that attack and shelved the idea. I feel like the answer to this question, if they have even thought it through (which they probably haven't), should be the first thing on the site, right after the paragraph that describes what they do.

<comment><USER5> The URL should only be part of the signal. There might also be legal remedies to you if your competitor is spamming people with your URL.</comment></comment></comment>


To Prevent Deadly Infections, FDA Approves First Disposable Duodenoscope - <AUTHOR> https://www.nytimes.com/2019/12/13/health/disposable-duodenoscopes-infections.html <comment><USER2> And a mere $3,000 for each one--and thus $3,000 for each use.

This is crazy.</comment>


Leaked Executive Order Reveals White House Plans for H-1B Visas - <AUTHOR> https://www.axios.com/h1-b-salaries-2228205505.html <comment><USER2> Would it help to include a CAP per country, just like for green cards? If India could not get more than 10% of the annual H1Bs for example, would it help?

Is there also currently a CAP per company? Or can they submit as many applications as they want?

<comment><USER3> Since H1B is for skilled people, certain countries have developed infra for certain type of skill. India produces more software tech, Korea/Jp in hardware, Europe in fashion models and language teachers etc.</comment></comment>


LuaJIT for ARM now in Git head: benchmarks - <AUTHOR> http://luajit.org/performance_arm.html

<comment><USER2> There are claims that ARM's "Jazelle RCT"[1] technology could improve JIT (and not limited to Java). Anyone know if that's just marketing or if there could be worthwhile speedups from this on more recent cores?

[1]: [http://wiki.tiprocessors.com/index.php/Cortex-A8_Features#Ja...](http://wiki.tiprocessors.com/index.php/Cortex-A8_Features#Jazelle_RCT_Acceleration)

<comment><USER3> IMHO Jazelle and ThumbEE are just marketing gimmicks.

Jazelle was (is?) half-proprietary and is only useful for a really stupid Java bytecode interpreter. Nowadays, Java is JIT-compiled with much better performance.

And ThumbEE came way too late for it to be useful. It requires setup/teardown, doesn't work well with existing code and adds several other complications. It has very few features that may be of use for any VM that has already undergone some basic optimizations.

Believe me, you don't want to waste your time with this.

</comment></comment><comment><USER4> Too bad ARM11 is an ancient processor.

It would be interesting to see LuaJIT vs. Dalvik.

<comment><USER5> What are you talking about!?

Firstly, ARM11 is an instruction set and not a processor in itself. Secondly, Mvidia Tegra[1] is an ARM11 processor and the Qualcomm MSM7201A which LuaJIT targets seems to be Qualcomm's current generation of mobile chipsets[2].

Doesn't sound ancient to me at all. Sounds pretty current actually. Sure, I'd like an ARM7 version of LuaJIT (specifically, for Cortex-A9 MPCore), but this is still an interesting start. Also, now that theres an ARM11 port, its not too far of a stretch to think that ARM7 might follow sometime in the nearish future.

[1] <http://en.wikipedia.org/wiki/Nvidia_Tegra>

[2] [http://www.qualcomm.com/products_services/chipsets/mobile_pr...](http://www.qualcomm.com/products_services/chipsets/mobile_processors.html)

<comment><USER4> The instruction sets have a v in them, like ARMv5, ARMv6, etc. The latest version is ARMv7. ARM11 is a core, and has since been obsoleted by the Cortex A8 which has been obsoleted by the Cortex A9 (e.g. Tegra 2 uses Cortex A9).

The MSM7201A is anything but current; it was used in the T-Mobile G1 from 2008.

<comment><USER5> Cortex A9 came out last year, that doesn't automatically make all ARM11 based processors, as you said, an "ancient processor".

2008 may not be the latest tech, but its not exactly "ancient" either. The majority of PC owners use processors older than that. Hell, the computer I'm typing this on is running on a 2006 Core 2. Definitely not current, but ancient is going a bit far since it still runs quite competitively for all but the most demanding tasks.</comment></comment></comment></comment>


Ask HN: Do you use no-reply[at]startup.com? - <AUTHOR>

What are people's thoughts on the use of no-reply email addresses to communicate with customers and have you conducted any testing on this? <comment><USER2> We just bounced this idea around a bit while launching the beta of matchist (<http://matchist.com>).

The way I see it, every email is an opportunity for feedback and I like to make it as easy as possible for customers to give us feedback. So we've started sending all our emails from founders at matchist dot com, so if they reply, they'll actually reach us.

I also think the "no-reply" thing is very impersonal. I personally HATE when I read emails that say "DON'T REPLY TO THIS EMAIL. IT GOES TO AN UNMONITORED BOX AND HONESTLY, WE REALLY DON'T CARE WHAT YOU HAVE TO SAY NOR DO WE WANT TO HEAR YOUR WHINING."

</comment><comment><USER3> Never. We need to communicate. As 37 Signals say, your startup is known by the amount of responses it give to people. Engage your customers, where they are and in what way or by which medium or mail they want to reach.

</comment><comment><USER4> I've not done any testing, but I HATE them personally. I think it was Twilo that I spotted recently had a really nice 'from' email address, I think it was direct to an engineer or similar. Made me feel like I could reach out when/if I had questions.

I really don't see any reason to ever use a 'no-reply', and not a monitored email address.

<comment><AUTHOR> This was my thoughts. As a customer it feels like you don't care about me and just want to, usually, advertise your new services to me.

Even if the email reply went to a "call centre" of some description I think it would present a better image than "we don't care about what you think, just give us money".

<comment><USER4> Indeed - the most confusing for me are those that have a 'no reply' but then contain email addresses in the body of the email - yahoo do that for their groups.

There was a good article on no-replies on HN a while back, but I can't seem to find it.

<comment><USER5> I think I found it - <http://news.ycombinator.com/item?id=4558433>

<comment><AUTHOR> Excellent, thanks!

</comment></comment></comment></comment></comment><comment><USER5> I haven't conducted any testing, but I've read several articles which said not to use noreply. In addition, as a customer, when I receive an email from a 'non noreply', I feel better and I feel that they're there to help. Look at:

\- <http://customer.io/blog/dont-use-noreply-on-emails.html>

\- <http://blog.cakemail.com/why-you-should-never-use-a-noreply/>

I think this is the link ljf was looking for:

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

</comment><comment><USER6> Let's look at it from the other angle: Why/when would you _not_ use a no- firstname.lastname@example.com? When you want to receive communications from a customer? What about other examples?</comment>


Bradley Manning not guilty of "aiding the enemy," convicted on 19 other counts - <AUTHOR> http://arstechnica.com/tech-policy/2013/07/bradley-manning-not-guilty-of-aiding-the-enemy-convicted-on-19-other-counts/ <comment><USER2> I like how WikiLeaks blames the Obama Administration for the actions taken by a military judge who doesn't report to Obama. For those who feel that Obama could simply order the judge to make a certain verdict, read up on "UCI"s and then apply that knowledge to the ongoing issues with sexual assault cases in the military (pay special attention to the cases where charges are being downgraded or thrown out entirely because Obama dared to mention that military members who commit sexual assaults should be punished).

Perhaps WikiLeaks should read the Manual for Courts-Martial before they make factual accusations, so that the accusations will at least be plausible?

</comment><comment><USER3> Discussion here:

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


Vernon Lee's "Satan the Waster" - <AUTHOR> https://publicdomainreview.org/2019/03/20/vernon-lees-satan-the-waster/ <comment><USER2> Interesting to see this both in the "Public Domain Review" and here on HN. Lee was writing in the aftermath of the outbreak of WWI and upset with how the international culture she knew growing up in Europe during the mid 19th century was destroyed by the rise of nationalism. Perhaps fortunately, she didn't live to see WWII, which would have depressed her even more. Now that we seem to be entering into another period of nationalism, Lee's work is sadly relevant again.</comment>


Mongoid_fulltext: full-text n-gram search for your MongoDB models - <AUTHOR> http://code.dblock.org/ShowPost.aspx?id=195

<comment><USER2> It seems as if for every database / NoSQL solution that comes out, someone writes a full-text search provider for it; why aren't people using something full-featured and abstracted away from the data model like Lucene and not reinventing the wheel all the time?

<comment><USER3> Try to get that running on something like Heroku. Lucene is like renting a private jet to bring your kid to school every day.

</comment></comment><comment><USER4> does this scale? Just recently I was using mongoid_search and it performed very slowly on just 5000 documents, autocomplete was not usable. I switched to solr and its easily handling 100K documents as of right now. I don't know if mongo is really a good fit right now for search functionality. Id love to see benchmarks with mongoid_fulltext.

<comment><USER3> Scale depends on what you're trying to do. I definitely think that mongoid_fulltext will work for 100K documents if you're trying to do relatively simple autocomplete. But this technology is not meant to compete with solr or any other dedicated search engine.

<comment><USER4> In my particular case, I noticed continual slow down every 1000 or so documents I kept creating when using mongoid_search. I was only doing a simple search, indexing on just a title field in my documents.

<comment><USER5> Based on my quick reading* of the mongoid_search code it looks like it is using a regex query against the keywords array which requires a full scan over the index. In fact the way it is being done is probably far less efficient than just doing a normal regex table scan without the keyword array. If you were to modify the search method to do a normal string query (maybe using $in for OR and $all for AND) you should get _much_ better performance.

*Ruby isn't my native language so I may be missing something.

<comment><USER3> Yes. But don't confuse with mongoid_fulltext. It doesn't do any regexes, it uses map/reduce where each n-gram is indexed separately.</comment></comment></comment></comment></comment>


Women Are Not Better at Multitasking. They Just Do More Work - <AUTHOR> https://www.sciencealert.com/women-aren-t-better-multitaskers-than-men-they-re-just-doing-more-work <comment><USER2> What a bad article. It uses a paper the asserts women aren't better at multitasking as proof that women do more work. On a website called sciencealert no less... The only thing that is that women seem to do more housework based on a survey.</comment>


North Korea is almost entirely dark at night - <AUTHOR> http://us1.campaign-archive2.com/?u=2889002ad89d45ca21f50ba46&id=8c24cf49d1

<comment><USER2> It's worth noting that most of the country is wired for electric lighting; the issue since the fall of the Soviet Union has been fuel shortages. The Soviets used to sell them fuel and energy for practically nothing.

</comment><comment><USER3> I'd be interested in a comparison of how India, China, Egypt, Vietnam, etc. compare. Perhaps a luminosity per capita index in rural and urban areas?

<comment><USER4> You can see Egypt here: <http://www.flickr.com/photos/28634332@N05/5146231463/>

In fairness, the dark areas outside the Nile aren't dark because of economic or political oppression; they're dark because that's a desolate desert with no water at all.

<comment><USER5> thanks for sharing. the rest of the set is here - [http://www.flickr.com/photos/28634332@N05/sets/7215762518833...](http://www.flickr.com/photos/28634332@N05/sets/72157625188331491/)

amazing photos</comment></comment></comment>


Lies, Damned Lies, and Medical Science - <AUTHOR> http://www.theatlantic.com/magazine/print/2010/11/lies-damned-lies-and-medical-science/8269 <comment><USER3> Long article, but one I found particularly interesting as I have a medical background.

The article presents it as if it was some big revelation in 2005, but I'm not sure it was as big as implied. I mean some of the specifics were, but I trained in my residency between 2000-2003, and we were very much trained to be skeptical of studies, and to question results. Evidence-based medicine was in strong force.

 _His model predicted, in different fields of medical research, rates of wrongness roughly corresponding to the observed rates at which findings were later convincingly refuted: 80 percent of non-randomized studies (by far the most common type) turn out to be wrong, as do 25 percent of supposedly gold- standard randomized trials, and as much as 10 percent of the platinum-standard large randomized trials._

Non-randomized studies are the most common, of course. They are the cheapest to perform by far. but whenever I read non-randomized study, I think "interesting" but realize it doesn't mean anything. Correlation does not equal causation. These non-randomized studies though are the ones that raise questions and possibilities that later fund/justify more costly randomized- controlled studies.

And something to be aware, which is perhaps part of the purpose of this article, is that there is a reporting/publishing bias. Negative and neutral results simply don't get reported in journals. You form a hypothesis, perform a study, and get negative results -- well, you're not going to try to publish it. Statistically speaking, there's going to be some bell curve distribution about the actual result. So let's say the actual result is "0" (no effect) for a drug or treatment. If you do enough studies, you'll get a few that fall on the positive side, which I presume is what accounts for some of the false positives.

<comment><USER4> "You form a hypothesis, perform a study, and get negative results -- well, you're not going to try to publish it."

This seems fundamentally incorrect to me. Wouldn't research all around just fail if no one ever reported their negative results, thus dooming many other researches to performing the same fruitless experiments?

<comment><USER5> It's actually worse than that, if a lot of studies are being done:

Let's say that you only publish when you discover an effect with a p-value of better than 0.05 -- that is, when you believe that, if the effect weren't real, then the probability of observing an effect at least as extreme as the one you got has less than a 5% chance of happening. This is pretty typical.

Let's also say that you and 19 other groups are studying an effect that isn't real: the hypothesis that meditating on pink unicorns will get rid of skin cancer.

By (perfectly reasonable) chance, 19 of your studies reject the Pink Unicorn Hypothesis with p-value = 0.05, and one accepts it -- i.e., one group gets a result that should have happened 1/20 times or less if there is no Pink Unicorn effect.

Since the first 19 groups are silent, and only one group publishes, the only thing we see is the exciting announcement of a possible new skin cancer cure, with no hope for a meta-study that notices that this actually the expected result given the null hypothesis.

So yeah. That's bad.

<comment><USER6> In this case, those other 19 groups ought to respond publicly fairly quickly--"we tried that too, and it didn't work for us."

<comment><USER7> No they usually don't. Because the "didn't work for us" is usually not conclusive proof of the contrary.

It does (rarely) happen in Physics where everything is expected to be repeatable, and results from one experiment carry over to similar experiments. It almost never happens in medicine, where the bar of acceptance of a hypothesis is already ridiculously low.

</comment></comment></comment></comment></comment><comment><USER8> Much of the solution to this is straight forward. Methodologies should be clearly expressed in detail at the start of the paper; all studies should be publicly logged before they start (so it's not possible to hide studies which say the "wrong" thing); resources should be made available so factors such as randomisation can be properly understood and executed with little or no additional effort. The more information is available the more likely

I'd go on but Ben Goldacre has said it all far better than I could, and in far greater detail in his book Bad Science which I think has just been released in the US ([http://www.amazon.com/Bad-Science-Quacks-Pharma- Flacks/dp/08...](http://www.amazon.com/Bad-Science-Quacks-Pharma- Flacks/dp/0865479186/ref=sr_1_1?ie=UTF8&qid=1287139967&sr=8-1)).

What is important though is not to assume that because the evidence for conventional medicine is sometimes weak, that that in some way makes the case for less mainstream alternatives.

Flaws in one do not in any way strengthen the other, and for alternative medicine the evidence and studies are almost always either even weaker or non- existent.

<comment><USER9> _...all studies should be publicly logged before they start (so it's not possible to hide studies which say the "wrong" thing);..._

Not just logged, but _accepted by journals_. I.e., you submit a paper, explain the experiment design, and put in dummy tables. The conclusion section is unwritten.

The journal accepts or rejects based solely on methodology - they can't reject you after the fact for going against conventional wisdom or getting a null result.

</comment></comment><comment><USER10> The human body:

metabolism -> cell damage -> pathology -> death.

Medical Science intervenes in between pathology and death. It's kind of unreasonable to have high expectations for medical science given it's so late in the chain. A better solution is to reduce the rate at which metabolism causes cellular damage. There are only 7 different errors of metabolism leading to damage:

cellular loss/atrophy, death resistant cells, nuclear mutations and epimutations, mtDNA mutations, protein crosslinks, junk accumulating inside cells, and junk accumulating outside cells.

Instead of wasting money on bad correlation studies, address those 7 things and we'd be lightyears ahead in terms of helping people. Instead of dumping all research money into attacking manifestation-of-cellular-damage pathology foo, we should invest in basic scientific research giving us a more rigorous definition of cell biology.

<comment><USER11> Medical research is mostly paid by the pharma industry; this industry as a whole is NOT interested in preventing people from getting ill, for obvious reasons. Another nice example of market failure :)

<comment><USER9> The pharma industry would not want to find a preventative pill that they can sell to 300 million healthy people instead of 500,000 sick people?

That doesn't make a lot of sense.

(Incidentally, the #1 and #3 drugs are preventative, not curative. [http://www.vaughns-1-pagers.com/medicine/prescription- drug-s...](http://www.vaughns-1-pagers.com/medicine/prescription-drug-sales). )

<comment><USER12> Fixed link: [http://www.vaughns-1-pagers.com/medicine/prescription- drug-s...](http://www.vaughns-1-pagers.com/medicine/prescription-drug- sales.htm)

Are Lipitor and Plavix truly preventative? Aren't they prescribed when there are already issues with cholesterol and the heart?

<comment><USER9> Thanks for the fix.

You take Lipitor/Plavix when you are at risk of certain blood flow related diseases (heart attack, stroke). The goal is to prevent these diseases or delay their onset in people with an elevated risk. Isn't that what we mean by preventative?

Vaccines probably also fall into this category. They are more widely used, although not exactly moneymakers [1].

[1] They used to be a small, positive revenue stream. Drug companies are trying to get out of the business now, due to fear of lawsuits by Jenny McCarthy and her ilk.

<comment><USER12> Hummm, I think "preventative" for me means focusing on _causes_. Such drugs may act on _symptoms_ (I don't know how effective they are, wouldn't surprise me in light of this article if they are not, esp. considering side-effects), but would not IMO be in the same class of preventative measures as exercising regularly, sleeping well, eating well, socializing regularly, de-stressing, etc. - all of which act "upstream" on our overall health levels.

In other words, if you eat fast food, watch TV for hours each day, don't exercise, work too much and sleep too little, then develop bad numbers on your blood tests, taking a drug to improve those numbers a bit shouldn't be considered preventative.

<comment><USER9> If you define "preventative" to mean "lifestyle factors", then you are correct that drug companies won't spend much effort researching them. Similarly, if you define "search" to mean "searching for oil", then Google doesn't do much research on search.

<comment><USER12> You may disagree with the colloquial usage/meaning of the word "preventative," but in the context of health care, I'd argue it's a worrisome sign when the scope of that word expands from lifestyle changes (which even doctor friends would often argue for) to also include drug interventions. Though certainly the pharma industry would love that being true.

Disagree with your other analogy: I don't think anyone outside the oil industry would confuse the word "search" to mean surveying for oil. Oil-men have their own vocabulary for that anyway.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> While reading this, two things kept popping up in my head:

1\. Science and medicine are as much about marketing as anything else out there. If you're not making headlines, you're going nowhere.

This is not new by any means. The story of evolution and how Darwin "beat" Wallace to fame is a good example. History is littered with similar stories.

2\. This is the peer review process working in full swing. Dammit it's very slow, but it works - eventually. Journal papers are supposed to be peer reviewed to catch the obviously wrong papers, and the downside is explained well in the article. However, the key is whatever bad research slips through is caught by repetition and meta analysis. And if these repetitions and analyses are themselves flawed, others will point them out.

It's exactly like open source. No one guarantees that open source produces bug-free code but we trust that the bugs will get weeded out faster.

<comment><USER14> To your second point, I have two things to say:

1) I think a big point of this article is that the peer review process is misunderstood by the general public (and perhaps many doctors).

      Though scientists and science journalists are constantly talking up the value of the peer-review process, researchers admit among themselves that biased, erroneous, and even blatantly fraudulent studies easily slip through it. Nature, the grande dame of science journals, stated in a 2006 editorial, "Scientists understand that peer review per se provides only a minimal assurance of quality, and that the public conception of peer review as a stamp of authentication is far from the truth."

More work needs to go into educating the public as to the meaning of scientific studies.

2) The scope of money involved in the endeavor is too large to be happy with things just slowly weeding themselves out as is permitted in the OS community.

Higher standards can and should be enforced in all medical studies, an area in which progress is being made but there is a ways to go. Let me push back and say, if the medical research community was exactly like the open source community, we're not asking much of those who are doing the research.

<comment><USER13> I know what peer review is. And to your point about the demand we make of researchers and the stakes involved, have a read of the Cochrane Collaboration website. Most of their conclusions are "no real evidence, need more studies". It's sobering how much is out there that doesn't stand to really demanding analysis.

</comment></comment></comment><comment><USER15> The idea that the process of science is largely about producing a lot of wrong answers in the process of sifting for the right ones is not novel. But it is somehow the nature of this age for people to trumpet every study that makes it into the public eye as True and Wondrous.

So patient advocates get stuck with the additional duty of having to explain that a good half of what you read is wrong, and evaluating science for the layman is not simple. Possible, and not hard, but requires some work:

[http://www.fightaging.org/archives/2009/05/how-to-read- the-o...](http://www.fightaging.org/archives/2009/05/how-to-read-the-output- of-the-scientific-method.php)

"The scientific method is the greatest of inventions: when used to organize and analyze the flawed output of we flawed humans, it leads to truth and discovery. It is how we sift the gems of progress from the rubble of short- sighted human nature, magical thinking, willful ignorance, and other self- sabotaging but entirely natural behaviors.

"The scientific community doesn't produce an output of nice, neat tablets of truth, pronouncements come down from the mountain, however. It produces theories that are then backed by varying weights of evidence: a theory with a lot of support stands until deposed by new results. But it's not that neat in practice either. The array of theories presently in the making is a vastly complex and shifting edifice of debate, contradictory research results, and opinion. You might compare the output of the scientific community in this sense with the output of a financial market: a staggeringly varied torrent of data that is confusing and overwhelming to the layperson, but which - <USER2> considered in aggregate - more clearly shows the way to someone who has learned to read the ticker tape."</comment>


Ask HN: How do you feel about job hunting? - <AUTHOR> I am currently employed and a few weeks ago was considering searching for other jobs for financial and other personal reasons.
How do you guys feel about still going through the process now? From the "Who is hiring" post, clearly companies are hiring.
Now is obviously a riskier time to switch jobs, would you guys do it? <comment><USER2> It's frustratingly difficult for workers to find jobs. Recruiters lead you on for weeks only to ghost you at the last second. Technical tests are now frequently hours-long and give no guarantee of employment, even with stellar results. Discrimination of any type can take place too easily with recruiters as a legal barrier between you and the employer.

<comment><AUTHOR> Your comment mirrors my experience with external recruiters during normal times so I don't really see myself using recruiters now.

</comment></comment><comment><USER3> You should stick with your current employer if you can but definitely keep tabs on what is happening in your industry/career path.

Most companies listing open positions will not hire people to fill them. They are mostly there as a cheap form of PR/advertising and to make their current employees feel replaceable.

I don't think things will return to normal, not in six months, not in two years. Companies will shrink, people with skills critical to their employer's business will die or just quit and they may not be replaced.

On the bright side, open offices and the 'sharing economy' are likely ancient history.

</comment><comment><USER4> I switched back in 2008 as the economy was headed down. I did not notice, just felt I needed to get out. New company laid me off after 11 months, as the market hit bottom. Company struggled with cash flow issues. To be fair, the new VP hated the director and manager who hired me. Director was let go after I was there 6 months. My manager and all her employees were let go when I was let go.

Had I stayed with the prior company, not sure what would have happened.

</comment><comment><USER5> Side question: How is relocation going to work (for the larger companies) when shelter-in-place is in effect?</comment>


Ask HN: Map-based Application vs. classic layout - <AUTHOR>

I am building a web application that allows local tourist businesses to promote their tours to tourists.
When I started to develop it, I went for a map-based view, see:
http://www.spotmapping.com/
Because of the map it takes a while to load the site and the content window is limited.
That is why I am currently thinking about changing everything to classic web layout, with just a few pictures of the tours and a detail page, which includes just a small map.
What do you think? I'm currently user-testing it with a few friends, but I wanted to get more feedback from you guys as well. <comment><USER2> I like the idea of having a big map for a better overview. But as I am used to working with a 24" screen the content windows is much too small for me...

<comment><AUTHOR> Yep, big screens are an issue right now. While it is nice to have such a large map, it takes forever to load and the content window is, as you said, way too small.</comment></comment>