RE: The "Tyranny of Structurelessness" - <AUTHOR> http://theanarchistlibrary.org/library/jason-mcquinn-a-review-of-the-tyranny-of-structurelessness-an-organizationalist-repudiation-of

<comment><AUTHOR> Some quick background:

1) At first I thought this was a joke

2) It's actually not completely insane

3) Reference title as summarized here:

"Why organisations need some structure to ensure they are democratic."

4) Or more fully: [http://flag.blackened.net/revolt/hist_texts/structurelessnes...](http://flag.blackened.net/revolt/hist_texts/structurelessness.html)

5) YMMV on all of the above.

_________________

The counter argument to (3) is summarised as:

"In actuality, the potential problems...[of] informal groups, are much more prevalent, virulent and destructive in large, formal organizations."

<comment><USER2> No, it's not a joke. It does contain ad hominems, starting with "As the bizarre title ... incomprehensibly unreal and illogical stab at sociology by a paranoid schizophrenic." and including "primarily appeals to bookish, socially-incompetent — or anti-social — people", and "Kafkaesque critique". Those made me dislike reading the critique.

Nor do I like the critiqued points. Consider #1: "Freeman's claim that the reason why some people allow themselves to be dominated by others is that only those doing the dominating know the informal group structures is ridiculous on its face. Informal group structure isn't occult. It's a function of intersubjective negotiation and mutual expectations. People who allow themselves to be dominated in informal groups will also allow themselves to be dominated in formal groups — and probably more easily and often in the latter simply because a structure for domination is going to be much more often present from the outset!"

While Freemen actually points out: "All of these procedures take time. So if one works full time or has a similar major commitment, it is usually impossible to join simply because there are not enough hours left to go to all the meetings and cultivate the personal relationship necessary to have a voice in the decision-making. That is why formal structures of decision making are a boon to the overworked person. Having an established process for decision- making ensures that everyone can participate in it to some extent."

That is, Freemen doesn't claim that informal group structure is occult (in fact, Freeman says informal structure always happens), only that it take time, and as such limits some people from being involved in the decision making process. Freemen also claims that when the informal group structure is aligned on friendship lines, it may be less politically effective.

(FWIW, I can't figure out which definition of "occult" was meant in the critique: "hidden" or "esoteric"? An informal structure is hidden if there are any communications which are hidden from all of the members. Since nearly all organizations have some hidden communications, I don't think this is the intended meaning. But "esoteric" isn't correct either, since Freemen says that informal group structure always happens.)

As for #2: "An individual, as an individual, can never be an elitist". I have a hard time understanding that part of the Freemen essay. I think it requires knowing more about how "elite" was used in 1960s feminism, since the term in the Freemen essay is itself a critique of the wider usage. I don't have that knowledge. But I can read "individual, as an individual" as meaning "an individual who is not part of a group" or "an individual who doesn't have any special influence over the group." This might be, for example, a famous author who is not associated with a specific group but whose ideas are still influential. It appears that Freemen does not want to consider that person part of the "elite."

So instead, Freemen gives a definition of elite ("a small group of people who have power over a larger group of which they are part, usually without direct responsibility to that larger group, and often without their knowledge or consent") but goes from that broad definition directly to how it applies in a political group ("Elites are nothing more, and nothing less, than groups of friends who also happen to participate in the same political activities.")

The author of the critique is correct in saying that the second definition doesn't apply to "capitalist elites, political elites or international elites." But I think a charitable qualification of Freemen would rewrite the second sentence as "Elites _in a given political organization are_ ..")

The author of the critique isn't so charitable as to try to understand the "quite dated" 1960s context of the term, nor allow that the term might be used in a much more limited context.

This holds too for the start of #3 "her strange quotes around 'Star'". The Freemen text explains the "ire that is often felt toward the women who are labeled "stars." This occurs "when the press presumes that [certain people] speak for the movement" even though the "movement [did] not select its own spokeswomen." The quotes around "star" emphasize that this is an external decision of who the stars are, and not something that people in the movement wanted. While the critique doesn't try to understand what the "strange" quotes might mean. This is a mark of a poor critique.

The critique goes on to say "For Freeman, only stars created in the context of informal groups are really bad.", but Freemen doesn't say that. Freemen doesn't say that stars in the context of formal groups are not also bad. Only that there are negatives when it occurs in the context of an informal group: 1) there is no mechanism to replace a 'star' who is not really aligned with the group's goals, and 2) because the 'star' stands out, "women put in this position often find themselves viciously attacked by their sisters." I'll bet these women were even called "elite", even when the stars weren't part of the power structure.

Finally, #4, "Freeman thinks that informal groups are politically impotent." Except Freeman doesn't say that. The relevant quote is "Some groups have formed themselves into local action projects _if they do not involve many people and work on a small scale_. But this form restricts movement activity to the local level; it cannot be done on the regional or national." (Italics mine.)

The better line for the critique would have been "Freeman thinks that informal groups are politically impotent _on the regional and national scale_." The critique goes on to say "libertarian organizations can and have accomplished everything necessary for individuals and communities to live in free, egalitarian, convivial societies". You'll note though that this doesn't contradict Freemen, as Freemen says that informal groups _can_ work on an individual and community level.

Thus, I do not believe the critique is well argued.

<comment><AUTHOR> Side 1: Informal groups can be manipulated

Side 2: Formal groups can be manipulated

The side #2 arguably is worse because it is at larger scale[ __ __]

[ __ __] And its better hidded: bad actors hide like needle in a haystack.

<comment><USER2> I don't understand your response. I pointed out that the critique of Freemen's 1970 essay is poorly reasoned. It sounds like you want to make a different point, but you use very different terms and have a different viewpoint while not making the connection between the two.

For example, Freemen doesn't attribute anything to "bad actors" (saying instead "Very seldom does a small group of people get together and deliberately try to take over a larger group for its own ends." and "This is not done so much out of a malicious desire to manipulate others (though sometimes it is) as out of a lack of anything better to do with their talents."), so I don't see how your last sentence all that relevant.

I will hazard a guess: it sounds like you like anarchy, it sounds like the "Tyranny of Anarchy" is often brought up as why there should be some formal rules, it sounds like you found a critique against that essay, and therefore you want to point to that critique as a justification for why that essay should not be trusted. If so, this is an argument by proxy, using cherry- picked documents to justify previously decided beliefs.

Even if my guess is completely wrong, I notice that you made a logical fallacy in your comment just now. There are rarely ever only two sides. There isn't "informal" and "formal" groups, but a spectrum of rules _and_ a spectrum of adherence to those rules.

Freemen's lists 7 principles which should guide the development of the rules. These include "Distribution of authority among as many people as is reasonably possible.", "Rotation of tasks among individuals", "Equal access to resources needed by the group", and "Diffusion of information to everyone as frequently as possible".

These make it harder for your 'bad actor' to hide. You seem to think they make it easier. Please explain.

<comment><AUTHOR> Yes, I wasn't really taking any positions on either piece. My comments on this page were more to quickly summarize (in a reasonable way) some of the theme's involved in the posted article. As I do think they are legitimate (and interesting) questions.

Some of the limitations (I think in line with your own notes, above) involve the language and linquistics of how these ideas are presneted. One purpose of such elementary paraphrasing is to simply cut through that, to the core elements (at least ones I found interesting).

Stepping back a bit, I appraoch these questions from a form of functionial structuralism. That is, from the ideas that problems knowable in advance can be (at least in part) solved through technology. In politics, this is much like a SW problem: you have "political technology"\--which is a fancy way of principles and ideas--which helps people organize complexity and prioritize decisionmaking and routines. At its most abstract basis, this has nothing to do with "formal organization" or "corporations" or "governemnts", but can be things so simple as tit-for-tat, memetics, and similar versions of abstract reciprocity. For example, if we know that trustworthiness is a problem (and intitively, we have detectors psychopaththy -- and manipulative, unprincipled opportinism -- its cousing), game theory tells us that tit-for-tat can make progress on even some difficult game-theorectic problems (prisioners dilemma).

And I think here in these two essays we see people struggling to conceptualize and evaluate what re real problems. And real/observed anthropological responses to them.

<comment><USER2> Elementary phrasing does not cut through language and linguistics - it makes it worse. As the Freemen essay emphasizes, terms like "elite" are used like "pinko", in my understanding, to delegitimize certain people even when the terms themselves are so ill-defined as to be meaningless.

That's why Freemen proposed a specific definition of "elite", before continuing with the essay.

I don't know what you're talking about when you say "problems knowable in advance ... can be solved through technology." There are many classes of problem which are impossible - travel to Andromeda within my lifetime, for one.

Otherwise, since humans have used technology since our species first started, it seems pretty self-evidence that all solutions will at least in part use technology.

All essays concerning the real world struggle to conceptualize and evaluate real problems. No essay can ever be a perfect reflection. So I believe you expressed a tautology.

I think it's fair to say that "Tyranny of Structureless" is a much better attempt at trying to describe reality than critique. You can approach your analysis using any method you like, but if you can't judge the reasonableness or correctness of the underlying data then your model will suffer from "Garbage In, Garbage Out." The critique you pointed out is, in my opinion, mostly garbage.

<comment><AUTHOR> To rephrase:

(1) My post was only to invite people to read the topic !

(2) People are invited to post their own thoughts

(3) I'm happy for people to have their own ideas

(4) There's no debate with me--I take no position here

(5) My only position is--some may find this of interest

(6) A summary: indicative of content, not an evaluation

Everyone has their own style of summary -- mine was merely to eliminate what might be loaded terms ('elite', 'pinko' etc) and focus more on subject-verb elements of the plot. And while there are many non-solvable problems in genral, the class of solvable problems normaly re-quires some form of either pre-conceptualization or accidental empirical discovery. The latter even then becomes the former once it is tested. But again, this is just my own experience.

Perhaps this is a good reason not to annotate HN posts! Something I try to avoid. But every now and then its good to signal some information lest people think a submission is trolling based on the title alone or unfamiliarity.

So it's good other people take interst in the subject.

[ps] I probably shouldn't have posted in direct response to your comment, as it was more a crystalized thought of my own that reading your notes had suggested. It was not posted to be a critique of your comment, although I could see how you might perceive it that way. (It would be unfair at that--as I didn't really respond to you on your terms).</comment></comment></comment></comment></comment></comment></comment>


Environment containers in GNU Guix - <AUTHOR> https://lists.gnu.org/archive/html/guix-devel/2015-10/msg00916.html <comment><USER2> NixOS (the inspiration for Guix) has supported something like this for a while: [http://nixos.org/nixos/manual/index.html#ch- containers](http://nixos.org/nixos/manual/index.html#ch-containers)

There's even support coming in Nix for building standard layered Docker containers in a fully deterministic way: [https://github.com/NixOS/nixpkgs/pull/11156](https://github.com/NixOS/nixpkgs/pull/11156)

The deterministic properties of Guix and NixOS allow some amazing things. I personally prefer Nix as it has a more complete and mature ecosystem, but everyone should check out both projects though.

<comment><USER3> The main advantage of Guix over Nix seems to be that the former uses Scheme, while the latter uses a language of its own.

As a lover of Scheme, that's a big win for me. I really don't want to have to learn a special-purpose language just for package management.

<comment><USER2> I'm definitely a lisp fan, but the Nix language isn't as bad as I used to think.

The laziness allows for some really cool and clean patterns that work intuitively and simply while still enabling powerful features. Also the syntax is tuned for clean hierarchical config files. And in some cases being pure helps you not shoot yourself in the foot with determinism.

I still would probably prefer Guile, but Nix is nice enough.

Mainly I just like the much larger ecosystem Nix/NixOS has. I can forsee myself being productive with NixOS as a desktop OS, not so much for GuixSD.

I think of it this way: one new somewhat-fancy config language to learn is much better than the 100 simple config languages you learn to tweak Arch Linux.

</comment></comment></comment><comment><USER3> _" The container tools I'm working on are completely declarative. No imperative Dockerfiles! This means that you don't have to worry about order of operations, something that you have to think about constantly when using Docker, especially when trying to maximize the use of the image cache."_

Sometimes you actually need or want something to be done before something else, though. I'm wondering how Guix deals with that, or if it's capable of dealing with that.

I've been bitten many times by Puppet's default lack of order in its declarative manifests. What was vaunted to be an advantage turned out to be a curse when you actually do want/need them to be in order.

I hope Guix does a better job at this than Puppet.

<comment><USER2> Basically it solves the problem a different way than you think. Instead of allowing you to control order, it removes the possibility of order mattering at the system level.

Nix and Guix use special file structures to make sure everything is isolated so no build can affect another, unless there is a depedency, in which case one will be built before the other.

It is this powerful isolated file structure that allows NixOS and GuixSD to deliver on the promise of deterministic system set up in a way Puppet and Chef will never be able to. It works incredibly well.

</comment></comment><comment><USER4> "The container tools I'm working on are completely declarative."

Tears of joy stream down my face.</comment>


Drawing Lines is Hard (2015) - <AUTHOR> https://mattdesl.svbtle.com/drawing-lines-is-hard <comment><USER2> Drawing lines in OpenGL & 3d hardware in general has always had some of these issues. The best support for GL/OpenGL line drawing I knew of was in the more expensive SGI machines. (Capitalized on purpose to indicate before they rebranded lowercase -- but this is fuzzy memory and I'm no sgi history expert.) The cheaper ones' lines definitely weren't as good, but SGIs did have pretty nice line support back in the day, better than what you get in WebGL today.

One thing I didn't see mentioned here is the line drawing API calls are typically not as well optimized as the triangle mesh calls, or so I've heard. Part of the reason good line drawing support was more expensive was (allegedly) only a few customers truly need antialiased lines with performance as good as the mesh API, and it's extra silicon, lines have specific needs not shared with meshes.

FWIW, I've tried all these approaches in production and ended up just doing the meshing myself, and avoiding shader tricks. It's not that bad, it gives the most control, and once you have an abstraction for it, you don't need to think about it again.

<comment><USER3> For us screen space worked a bit better but I'm sure it varies by use case. Getting the right fall-off on non-aligned pixels is always tricky(including 0.5f offset in Direct3D).

</comment></comment><comment><USER4> It's pretty much impossible to draw pixel-perfect lines in OpenGL. Even the library code of SDL2 fails to do it in certain instances, when its 2D drawing functions use OpenGL - and SDL2 is super clean and solid like a rock. Sometimes, you're even better off using images (!!) to draw lines. The sad thing is that Bresenham's line algorithm is so very simple. Somewhere between my program and the GPU, the communication of where exactly the line starts and ends is lost.

</comment><comment><USER5> I thought this would be about Bresenham's line algorithm and its drawbacks.

<comment><USER6> Bresenham is easily beaten in speed and simplicity by a fixed-point loop:

[https://hbfs.wordpress.com/2009/07/28/faster-than- bresenhams...](https://hbfs.wordpress.com/2009/07/28/faster-than-bresenhams- algorithm/)

Furthermore, fixed-point also allows antialiasing since it always gives how close the line is to the pixel being drawn.

<comment><USER7> > _The naïve algorithm in float averages 4.81 µs, Bresenham's algorithm > averages at 1.84 µs, my fixed point variation at 1.74 µs. The Fixed point > implementation runs about 5% faster. Which isn't all that much, but still > better than Bresenham's; and much better than the naïve version using mixed > floats and integers._

> _The situation is similar on the 64 bits machine, but the advantage of fixed > point vanishes. Both methods takes very similar times: fixed point averages > at 0.85 µs and Bresenham 0.84 µs, a difference of about 1%. However, the > naïve implementation is still very far behind, at 2.96 µs._

When you said "easily beaten" I kind of expected more than just a 1-5% performance improvement.

There is also another (potential) problem with fixed point: it works by adding up _rounded numbers_ :

> _The only thing we need, is to compute the slope_ m _as a fixed point number > rather than a floating point number._

As a result, the fixed point _might_ create rendering artefacts from adding up a rounded number repeatedly. This makes the whole thing an apples-to-oranges comparison:

\- floating point method that does multiply/divide every iteration

\- fixed point that adds a rounded fraction

\- Bresenham that does _unrounded fraction adding_ by splitting the fraction into an accumulator and divisor (Bresenham is actually really simple primary school math with some geometry on top)

To make a truly fair comparison, we should add a version that precomputes the floating point fraction, and adds that each iteration; I suspect the main slowdown of the naive floating point algorithm is the repeated multiply/divides more than the cast to integer, not the casts.

<comment><USER8> > I suspect the main slowdown of the naive floating point algorithm is the > repeated multiply/divides more than the cast to integer, not the casts.

You'd be surprised. Last time I tried it, casting a floating point number to an integer was many times slower than floating point multiply.

<comment><USER7> Now that you mention it, I know the basic "add/sub is faster than multiply is _much_ faster than divide" order, but I have no idea how it compares to casts.. why isn't that ever mentioned anywhere?

<comment><USER8> I'm guessing for the same reason casts are slow; they're not bottlenecks for the most common number crunching workloads, so it doesn't occur to anyone they might be bottlenecks for somewhat less common ones.

</comment></comment></comment></comment></comment></comment><comment><USER9> You can force MSAA in WebGL by using a larger canvas, and then downsizing it via CSS.

Not sure the performance implications, but I use this frequently if MSAA is not natively supported.

</comment><comment><USER10> A while back I made this prompted by a question in Stack Overflow: [http://codepen.io/garciahurtado/pen/AGEsf](http://codepen.io/garciahurtado/pen/AGEsf)

It is a less refined version of the techniques in the article, the approach is different in that it uses post-processing to provide the line thickness.

</comment><comment><USER11> I'm really glad to see this. I attempted to draw lines when first learning OpenGL and wasn't able to get results like I wanted.

</comment><comment><USER12> Xorg seems to agree.

<comment><USER13> Seeing as how the line drawing function in X doesn't do any anti-aliasing, the result would likely be very consistent across different environments even for fat lines. The problems to some extent are differences of opinion about how to make lines look pretty.

<comment><USER12> Sorry, i meant that it is buggy. Specifically the line\\* drawing functions. I filled a 22x22 window with segmented lines and it blanked the window. A line across the leftmost pixels on the window (x=0) behaves differently then anywhere else. And such.

At least i think, as there is no hard spec on X11.</comment></comment></comment>


Is Programming as an Art Dead? - <AUTHOR> When I first got into programming as a high school student about 20 years ago, I was fascinated by the intricacy and cleverness of it. I was reading stories of big inventions and clever hacks, such as making games fit into tiny amounts of RAM, or cutting the runtime of an algorithm in half by using a clever optimization. When software was shipped, it had to be finished, as it was damn near impossible (and very costly) to fix bugs later on. Programming was the domain of a small group of ultra smart artists who deeply cared about their craft.
Fast forward to 2016, and we now live in an age of radical abundance. CPU cycles, RAM and disk space are all cheaper than ice in Antarctica, and no one cares about efficiency or elegance. Software is never finished, because thanks to SaaS it never even has to leave the premises in order to be sold. We all work in two week sprints, so no one really cares about the long term impact of any code that's written, because if it turns out to be a mistake, we can always re-write next sprint.
Development cycles are not driven by curiosity or need, but rather by arbitrary deadlines. Thinking deeply about a problem is out of fashion, we rather just try a bunch of random things and see which one sticks. No idea is too stupid not to try. Angel investors simply start 10 companies to get one exit. It's the age of fast money and fast growth, none of which is sustainable.
Does anybody else feel that way? Did I miss my train somewhere? Or is the Art of Programming dead and buried? <comment><USER2> With the proliferation of computing as a solution to more and more problems, the need for the 9-5 programmers becomes greater and greater. Most businesses don't need programmers that come up with new and clever solutions. They really just need someone that can apply established solutions to their own problem domain. There exists a class of software consumer that has a hard time making good use of a boxed solution, so they hire programmers to stitch together a more ideal solution for their own needs. It's expensive as hell, but it can be the difference between software being an enabler or software being a hinderance.

It's only natural that as the number of programmers grows, the gulf of difference between the "thinking" programmers and the "shipping" programmers grows larger. The former will always be necessary to create new solutions, but the latter will decide of those new solutions actually see widespread use.

<comment><AUTHOR> > the [..] difference between the "thinking" programmers and the "shipping" > programmers grows larger

That certainly seems true, but does that mean it _should_ be that way? FWIW I see "thinking" programmer as a senior engineer, and "shipping" programmers as juniors. The latter will eventually become the former, but they require training and nurturing to do so.

In my experience, that's very hard to find. I've worked for many companies and in my experience, the ones with a "sane" programmer culture are very, very rare. Most are dominated by the business and sales structures, and see the techs as a necessary evil that they'd rather ship overseas where the wages are lower.

Where are the companies that are committed to technical excellence?

<comment><USER2> I don't think that it matters how it should be. The question of how things _should_ be is... pointless. We can speculate about that all day and it won't make a difference.

"Senior" software engineers are shippers. They're the ones that have the ability to deliver on time without stepping on their own garbage. Any training that the company can offer will be in gravitating toward being a better "shipping" programmer.

Don't look to companies to provide the kind of environment that the thinking programmer needs. Thinking programmers fit better in non-corporate scenarios. Hobbyists, academics, etc. Without the business imperative breathing down their neck, the programmer can stop and think about what they're doing. When a company _does_ foster the slow-burn software work that the thinking programmer does, then it's because that company has more money than they know what to do with, and the bean counters are busy on other parts of the ledger.

</comment></comment></comment><comment><USER3> Its a thing I have been seeing over the years in pretty much all professions. People here in europe want to work less and less and get payed more. I dont get it either. They dont care about what they do, they just do it for the money not because they can be proud of what they created/done. Sad, but true the few who still have a good work ethic can just try to fight against it.

</comment><comment><USER4> I think it is a mindset shift to be honest.

</comment><comment><USER5> Well said.

</comment><comment><USER6> with data science, statistics and machine learning, the debugging cycles are much longer and interpreting data and picking estimator functions, etc. is an artform that requires attention to detail and "deep thought". Running a solution/query could take thousands of dollars in cloud compute cycles, so you'd better be right.</comment>


The iPhone 5 Display: Thoroughly Analyzed - <AUTHOR> http://www.anandtech.com/show/6334/iphone-5-screen-performance

<comment><USER2> This article reminds me just how much Apple has driven technology forward.

For clarification for Android lovers... This doesn't mean that Apple invented all of this.. It's a recognition that without someone driving expectations of the smartphone industry, it stagnates - Apple is the driver.

For clarification for Apple lovers... This doesn't mean that Apple invented all of this.. It's a recognition that without someone driving expectations of the smartphone industry, it stagnates - Apple is the driver.

<comment><USER3> The upcoming nokia 920 is expected to have a display even better than this. Atleast that is what they claim. It will be interesting to see it validated by Anand.

</comment></comment><comment><USER4> I'm not sure I crave for sRGB gamut and perfect color accuracy in a smartphone. Isn't more important that it has eye-popping contrast? When was the last time you needed sRGB and compare that to how often you look at the phone with a lot of ambient light or possibly reflections. It seems that Nokia here is much more focused on the relevant innovation here:

[http://i.nokia.com/blob/view/-/1824216/data/2/-/PuremotionHD...](http://i.nokia.com/blob/view/-/1824216/data/2/-/PuremotionHD.pdf)

<comment><USER5> I believe you are right that contrast is more important than both gamut and color accuracy, but a higher gamut will make images feel more alive and give them more "pop", especially in the reds and yellows (as the article discusses).

A high contrast ratio helps prevent banding artifacts in dark shades of gray.

A high gamut does the same for color.

With a high contrast display with a low gamut (a display that can't output a very wide range of colors) you might see banding in reds or yellows even. The brain will compensate for lower gamuts but the image will look more washed out. As an example, a color photo in on newspaper is clearly less vibrant than the same image in a glossy magazine or online.

Also, color accuracy and gamut are not necessarily the same thing. The typical human eye can see far wider range of colors - a wider gamut - than is possible in any display or print technology. Displays are a compromise. sRGB is far less than the human eye can see, which is why image editors use the wider ProPhoto RGB or Adobe RGB gamut (color spaces) and then after editing cleverly compress down to sRGB (or for particular applications, the exact color space of a particular printer / paper combination or of a particular display).

Low-gamut means some colors are missing and compressed to colors that can be shown - so the richest red becomes an orangish-red. While inaccurate, this isn't quite the same the same thing color-shifting all colors in an image, such as the yellow-cast you might see with indoor lighting, or blue-cast with outdoor shadows. All displays introduce color-shifting inaccuracies as well. High-gamut displays have a wider color pallet and are generally tuned better at the factory.

I expect high-gamut displays will just "feel" better in the same way retina / high-res displays do.

[edited for clarity]

</comment></comment><comment><USER6> I like how detailed AnandTech analysis are. Good to see that they persist.

</comment><comment><USER7> Does anyone know if there is a way in iOS to apply a color profile to the display? Even if the displays are well-calibrated for accuracy out of the box, there are other reasons to mess with the color rendering (colorblind users, etc.).

<comment><USER8> i'm only aware of methods that require jailbreaking your ios device (eg, the f.lux app can be installed via cydia).

Would love a non jailbroken approach myself though!

</comment></comment><comment><USER9> What I'd like to see is this exact analysis done to the S III, even just to have some no bullshit data when the 'my phone is better than your phone' comes up again.

<comment><USER10> Talking purely from a consumer perspective, you want to argue that one phone reproduces accurately the full RGB spectrum and another blows it out of proportion and that makes one phone better? Isn't that a matter of subjective taste? How does that make one phone better than another? For eg. I may like to turn the color all the way up on my TV. That doesn't mean my TV's picture is objectively bad or the other way around.

<comment><USER11> From my perspective, the issue with selling a phone that is over-saturated versus one that is accurate is that in one case a company is just shipping something that meets the standard, and in another case they are making that subjective choice about what looks better for you.

With monitors and displays this isn't as big of a deal, as you can adjust it yourself to what you want, but with smartphones and tablets there are few or no adjustments available so if you receive a display that is purposely over- saturated, you are stuck with that. Perhaps it catches eyeballs in the store and gets you more sales, but it also means you are stuck with it. If a company isn't going to provide a way to adjust the display (such as including presets that are calibrated, vivid, and so on) then I'd prefer they just ship something that tries to conform to the standards that exist (sRGB or AdobeRGB in these cases).

</comment></comment></comment><comment><USER12> Also see [http://prometheus.med.utah.edu/~bwjones/2012/09/iphone-5-dis...](http://prometheus.med.utah.edu/~bwjones/2012/09/iphone-5-display- vs-iphone-4-display/) that shows the boost in saturation even more clearly.

Though, I'm not sure if it's such a good thing (might be a little _too_ saturated for all I know, but probably isn't).

(via daringfireball.net/linked/2012/09/25/iphone-5-vs-4s-display)

<comment><USER11> You can look at the results at different saturation levels for the iPhone 5 and see that all the intermediate saturations are almost spot on. It's not too saturated (which the Galaxy 3 appears to be), but accurately saturated where what you see on the screen accurately reflects what is in the source content.

</comment></comment><comment><USER13> The money I'd pay to have that as a 24" desktop monitor.

</comment><comment><USER14> What is the real-life difference between saturation cranked up via software compared to a screen with inherent high saturation?

<comment><USER15> Cranking up saturation in software is likely to introduce artifacts due to the precision of the data being sent to the panel. For example, most framebuffers are still at most represented with 24 (color) bits per pixel, and the signals being sent from the GPU to the display may not have much more precision than that either (how much precision they have can depend on a variety of factors). The immediate consequences of this:

User-mode software is unlikely to be able to increase saturation without hardware assistance, because it ultimately has to send 24bpp pixel data to the GPU. The dynamic range possible in 24bpp is pretty limited when you factor in what happens to it after it goes through the rest of the pipeline.

Kernel-mode code, drivers, and firmware on a GPU can potentially adjust saturation more accurately by sending higher-precision color values out to the display, if it supports it. Not many displays today support higher than 24bpp precision, but such displays do exist. Unfortunately, the inputs from user- mode software were 24bpp, so some accuracy has already been lost and any lost accuracy will be compounded by saturation changes produced at this level.

Finally, the display itself may actually be reducing the quality of input signals - many panels have less than 8 bits per channel (24bpp = 3 channels) of precision and represent higher accuracy signals with dithering and other techniques. This can make the result of adjusting saturation in software even worse.

So, in practice, adjusting saturation in software will produce visible artifacts for images that need high dynamic range or high precision.

</comment></comment><comment><USER16> Jl

</comment><comment><USER17> I don't see the point of submitting this to HN. It isn't a review of all high- end device displays, or something else generic like that.

<comment><USER18> I enjoyed it. Not out of any interest in the iPhone 5. But as a (somewhat) technical article about how displays are measured.

One of the more interesting articles of the day imo.</comment></comment>


Justin.tv Broadcasts Live From Your Android Phone - <AUTHOR> http://techcrunch.com/2010/09/01/justin-tv-android/

<comment><AUTHOR> You can download it by going to justin.tv from your android or here: <http://www.justin.tv/p/android> . Looking forward to seeing what people do with this live. Ammon flew his phone from a kite the other day <http://www.justin.tv/ammonb/b/269125517> (it was better live ;)

Edit: or from the app store now. sweet.

</comment><comment><USER2> I just downloaded this and tried it out. Amazingly cool. Only about a 15s delay to broadcast live from your phone. There is a lot of potential to really change online videos and news/live events as well. Very exciting.

</comment><comment><USER3> Are they ever going to fix their iPhone app? You cannot favorite a video, and keeps crashing.

<comment><USER4> Yes. I've been working on version 2 of the iPhone app for the past few months. It is awesome and will be in your hands in a few weeks at most.

<comment><USER5> I saw a demo a couple weeks ago and can confirm that it is kickass. Can't wait. Nice work, Bill.

</comment></comment></comment><comment><USER6> Ustream has had an iPhone streaming app for ages now. It's pretty damn nice too. Qik has one too but it's a complete waste of time.</comment>


What is a photon? (2017) - <AUTHOR> http://blog.sigfpe.com/2017/08/what-is-photon.html <comment><USER2> The blog post was interesting, but I wouldn't say it explained "what is a photon", it explained more, why do photons have energies and propagation properties that they do. The first 2/3 of it I was wondering, why go through all this intro about springs...

Although, there is one thing that I have always searched for an explanation of -- why the speed of light is invariant with reference frame.

The idea that space is filled with springs might help me with that. If light/photons are the passage of a wave from spring to spring, then the speed of that propagation is always at the "spring speed" however you measure it, or however fast you are going. You can only ever receive the microscopic spring transmission speed of the photon at the place you receive it. (Although it brings up the complicated followup of, how are you traveling through the "springs", etc, I guess).

But I'm sure I'm wrong about that too -- if anything QM has taught me is that my attempts at physical intuitions are usually wrong about QM.

</comment><comment><USER3> WiFi could also interfere with other frequencies if a non-linear device is nearby. See: [https://en.wikipedia.org/wiki/Intermodulation#Passive_interm...](https://en.wikipedia.org/wiki/Intermodulation#Passive_intermodulation_\(PIM\)) The article does not consider this, but it works with light as well as RF.

</comment><comment><USER4> I'm surprised that nobody pointed out yet, that harmonic oscillators have discrete energy states as well.

I think that's why the explanation is somewhat makes things more confusing. The fundamentally different thing about quantum mechanics is that even waves in free-space have discrete energy states.

I think the video by 3blue1brown posted by someone else is a much better explanation.

</comment><comment><USER5> another great explanation here [https://www.youtube.com/watch?v=MzRCDLre1b4](https://www.youtube.com/watch?v=MzRCDLre1b4) also from 2017

</comment><comment><USER6> sigfpe is too simplistic and conflates a few different aspects of atomic spectra, photons and EM fields.

The sci.physics reference for this is Baez & Weiss:

[http://math.ucr.edu/home/baez/photon/schmoton.htm](http://math.ucr.edu/home/baez/photon/schmoton.htm)

If you have read that, you know the number of photons is just another quantum number, with aspects of uncertainty, superposition and entanglement, so this will not be a surprise:

[https://phys.org/news/2019-08-photon-number-quantum- superpos...](https://phys.org/news/2019-08-photon-number-quantum- superposition.html)

</comment><comment><USER7> For others who like to learn from video, here is lenghtier explanation of quantum fields, discrete energies, plane waves, etc. from Sean Carroll: [https://www.youtube.com/watch?v=Dy1LNk_B6IE](https://www.youtube.com/watch?v=Dy1LNk_B6IE)

</comment><comment><USER8> What I really want to know is: Can someone describe what "heat" is to me?

</comment><comment><USER9> How does this explain the duel split experiment?

<comment><USER10> It doesn't directly address it.

But they key is right there in the beginning; photons are NOT small billiard balls moving along ballistic trajectories.

"Wave-particle duality" doesn't mean that you can think of flicking a light switch as alternatively an electromagnetic field propagating from the light bulb, or that the light bulb shoots out a stream of tiny billiard balls.

No, there's only the electromagnetic field. However, if you squint closely enough you see that the energy levels of the field are quantized (aka photons).

Now, back to the double slit experiment. So a wave propagates from the source, through the slits, interferes constructively or destructively, and then hits the detector screen. However, due to the quantum nature of, well, everything, the "hits the detector" interaction is quantized. The field "deposits" quantas of energy (photons) to the screen in a localized interaction (say, a photon causes an electron in the screen to jump to a higher energy level). If the detection apparatus is sensitive enough you'll see that single interaction as a dot on the screen, rather than a faint interference pattern (which you'll eventually start to see if you repeat the experiment long enough).

So: Lets forget about the "wave-particle duality" already. There's only fields. Fields which interact in a quantized fashion.

</comment></comment><comment><USER11> The author left off at precisely the point I was hoping they would get across: How the wave that extends everywhere in space, obviously doesn't. I mean, I know you can make a localised 'packet' or whatever with an infinite sum of sine waves, but then wouldn't you have to talk about infinite photons moving every time 'one photon' hits a detector?

<comment><USER12> It is a neat trick actually. If you superimpose a few of these waves with frequencies that are fairly close, then you will see how they cancel out in the distance, while they reinforce each other in the center. This is called a "wave packet". 3blue1brown was somewhat useful, somewhat tangential video on the topic [https://www.youtube.com/watch?v=MBnnXbOM5S4](https://www.youtube.com/watch?v=MBnnXbOM5S4)

The more rigorous way to say "superimpose a few of these waves", is to say that there is some uncertainty in the frequency. This uncertainty in the frequency lets you have more certainty about the position (the wave packet is centered somewhere, instead of being completely distributed the way an infinite plane wave is)

</comment></comment><comment><USER13> This is a nice article, but it feels like it leaves a half of the puzzle to the table. We know by everyday experience that photons _do_ have some time- and place-varying properties: my WiFi has a perfect strength here, but absolutely zero at my friend's house 5 kms away. The photons emitted by my LED lamp are not a static field: I can switch it off by pressing a button so it's time-varying.

The article acknowledges place only in this short sentence in the end:

> This means that adding a quantum to a system has an effect that extends > across the entire system. That makes it problematic to talk about the > location of a photon.

But then leaves the experience gap between the model and our everyday experience totally without discussion.

<comment><USER13> Btw. I have an impression that time- and place-local behaviour can be modelled as a collection of photons that destructively interfere "elsewhere" than where we tend to actually see light. Fourier transform seems to play a big role here.

<comment><USER12> Your statement is not very rigorous, but the intuition it provides is spot on. It is pretty much exactly this intuition I convey the first time I teach such topics.

</comment></comment></comment><comment><USER14> One question I have:

One thing I remember is that as something approaches the speed of light, its mass increases. This is why we can never achieve the speed of light because as we approach the speed of light, our mass increases which requires more energy to accelerate.

If that's the case, the how can photons have a mass? Wouldn't something traveling at the speed of light need to have infinite mass, regardless of how light it started off with?

<comment><USER12> There is rest mass, which is the mass of an entity when it does not move. And there is relativistic mass, which is the rest mass plus the mass due to all of the kinetic energy of the entity. Photons have zero rest mass, but depending on the energy they carry, they have different relativistic masses.

By the way, only entities with zero rest mass can move at the speed of light. Actually, in relativity it is mathematically inconsistent for something with zero rest mass to exist unless it is moving at the speed of light.

<comment><USER14> Very excellent answer, thank you for this! I will do more reading in this direction!

</comment></comment></comment><comment><USER15> The article leaves out a crucial item. When it says:

"The normal modes are plane waves traveling at the speed of light in a particular directions with a given frequency."

This is not quite correct. A correct statement would be that plane waves are _one possible choice_ of "normal modes" for the quantum electromagnetic field. But not the only possible choice. (In more technical language, they are one possible choice of basis for the Hilbert space of states of the quantum electromagnetic field, but not the only possible choice.)

In fact, the plane wave states (whose technical name is "Fock states") are often not very useful, because they are very hard to produce experimentally and pretty much never occur naturally. The states that are closest to naturally occurring states and which are easy to produce experimentally (for example in a laser) are coherent states. But coherent states are nothing like plane waves.

<comment><USER12> I am pretty sure you are confounding the basis of functions (harmonics) that one can use to describe an EM field, with the basis of a Hilbert space used to quantize them. You can have a mode (e.g. a plane wave) and the field of that particular mode can be quantized and you get to pick whether to use Fock states or coherent states or any other basis. In other words, "plane wave" refers to a particular mode of the field and Fock/coherent states refer to the quantum state of that particular mode. Two different plane waves are two completely different modes, e.g. two completely different Hilbert spaces, __not __basis vectors of a given Hilbert space.

<comment><USER16> Nah, GP is right, if he's talking about how you can decompose states into superpositions of coherent states of the whole _field_. These are different from coherent states of individual modes.

Specifically, a coherent state of a field is a state which is an eigenvector of the positive-frequency part of the field operator, when that operator is evaluated at any position.

<comment><USER12> See the sibling comment and my answer. A plane wave can very well be a plane wave "containing" one photon or containing multiple photons or containing a coherent state. There is a big difference between saying "I can use different sets of creation operators to form a basis for the field operator" (what I think you are saying) and the confounded statement mixing up basis of a Hilbert space with basis of integrable functions of the OP.

</comment></comment></comment></comment><comment><USER17> What is the amplitude of a single photon's wave?

Yes, it's well taught that wavelength is related to frequency. Higher frequency is higher energy energy and lower frequency is lower energy, but it's the frequency of what? Unlike ocean waves, photons do not have a spacial amplitude. A photon does however have a spacial wavelength. This distinction between photonic wavelength and amplitude I've never heard explicitly addressed.

My understanding is that a photon's amplitude is the likelihood of interaction at a specific point in space. High amplitude is likely interaction, low amplitude is low likelihood of interaction. This means at a photon's peaks/crests it has high interaction and at its troughs the photon has low interaction likelihood. These likelihoods are repeated every wavelength, a length measurable in physical space.

This is some of the reason why an antenna for a given frequency range needs to be a specific size. Too small and there's a good chance of missing a signal. A proper sized antenna, related to wavelength, guarantees high interaction somewhere along the length of the antenna.

When speaking of many photons, amplitude (like AM radio) is simply flux, how many photons at a particular frequency exist during a given unit of time. That's not related to the amplitude of a single photon and not what I'm talking about here.

<comment><USER15> _> My understanding is that a photon's amplitude is the likelihood of interaction at a specific point in space._

Not really, because there isn't really a well-defined wave function for a photon in the position representation (which is the one that has the interpretation "the likelihood of detection at a specific point in space").

 _> When speaking of many photons, amplitude (like AM radio) is simply flux, how many photons at a particular frequency exist during a given unit of time._

There isn't a well-defined answer to this question, because a state like this (which is a coherent state) is not an eigenstate of the photon number operator. (Also, energy flux is really amplitude squared.)

A good, if somewhat lengthy, discussion of the "photon" concept can be found here:

[http://math.ucr.edu/home/baez/photon/schmoton.htm](http://math.ucr.edu/home/baez/photon/schmoton.htm)

</comment></comment><comment><USER18> "I'd like to have an argument please."

[1] [https://genius.com/Monty-python-argument- lyrics](https://genius.com/Monty-python-argument-lyrics)

</comment><comment><USER19> Unfortunately, like all such descriptions, this one misses the mark also.

I've _never_ heard a good explanation for what a photon "is", or any particle for that matter. That's because physicists don't know either.

No, seriously. Ask a randomly selected set of physicists about any core concept in Quantum Mechanics and you'll discover that their answers diverge wildly. Ref: [https://arxiv.org/abs/1301.1069](https://arxiv.org/abs/1301.1069)

Basic things like: "Are the _photons_ quantised or is it just the _photon interaction with atomic orbitals_ that's quantised?" I've personally asked this question and had working physicists confidently state that either the former or latter is true, and the other is false.

(PS: Compare this to biologists, chemists, or engineers. They all 100% agree on all core concepts. So do astronomers, and physicists studying classical mechanics and relativity. It's only quantum mechanics that's so fragmented.)

Ask any working QM researcher to clearly show how "a single photon" interacts with an electron in an orbital and they will without a doubt draw you a cartoon diagram. Never in the history of theoretical physics has anyone, ever, anywhere made a numerical visualisation of this. This is because both the QM mental model and the mathematical theory applies only to ensembles in potential wells.

This is a _very narrow_ scope of applicability that was explicitly called out in the QM papers back in the early 1900s, but is now glossed over. People assume that what applies to a special case is the hard rule that applies to all things. It doesn't. There are no photons in free space. There are no little hard particles of light. You can't have a point with a wavelength. You can't have a single pure frequency with a finite duration. This is all gibberish, it's just a simplification to make the maths tractable when done with pencil and paper for special cases! The output of this simplified model is a 0-dimensional scalar. It can't do output much else, such a simulation of a full 3D interaction of any type.

Trying to work backwards from such an oversimplified model in order to explain the deep nature of reality is futile. This is like pointing at the bandwidth measurement in Windows Task Manager and saying "we can understand how the Internet works by watching this number go up and down".

<comment> Ono-Sendai _> Ask any working QM researcher to clearly show how "a single photon" interacts with an electron in an orbital and they will without a doubt draw you a cartoon diagram. Never in the history of theoretical physics has anyone, ever, anywhere made a numerical visualisation of this._

I personally have made a simulation of this. It would be called a semi- classical approximation, in that it's a simulation of a Schrodinger equation- described electron in a hydrogen (Coulomb) potential interacting with a classical EM wave. However I suspect that's how nature works anyway.

<comment><USER20> > However I suspect that's how nature works anyway.

Uh, could you clarify what you mean here? Are you saying you don't beleive that the electromagnetic field is quantized?

<comment> Ono-Sendai Yeah pretty much. (I say this not from a position of profound knowledge or anything like that, just that I'm not familiar with a good argument for why it is, not that I have looked into it in great detail. My knowledge of QFT is very basic)

<comment><USER20> Ah, fair enough. I was worried you might be professing some sort of expertise while claiming that.

I can assure you that whatever may be true of the electromagnetic field, it is _not_ classical. We know that to about the same degree of certainty that we know that atoms aren't classical.

It's just that when considering atoms in an electromagnetic field, there are often situations where you can ignore the quantum mechanics of the field.

<comment> Ono-Sendai So what would you say is the best evidence that the EM field is quantised?

<comment><USER20> Examples abound, but I'd say my favourite is the electron g-factor which is an example of one of the most precise agreements between theory and experiment ever achieved by humans and it's calculation relies heavily on the quantum mechanics of the electromagnetic field.

But there's lot of other, more pedestrian examples. For example, you can (and people have) generated entangled pairs of photons and then performed measurements on this entangled pairs that violate the Bell inequalities, meaning that their correlation is not classical.

<comment><USER20> Looking back on this, I feel I should also mention that there's not any single piece of evidence that should be bullet-proof convincing evidence for the EM field's quantum nature, rather it's the totality of many many many different, independent results exploring various quantum mechanical properties of electromagnetism (and its high energy unification with the weak nuclear force), all of which converge on the basically undeniable fact that electromagnetism is a quantum mechanical phenomenon.

Of course, this isn't the full story. There is physics beyond the standard model. But whatever that physics is, it's description needs to reproduce quantum electrodynamics in the appropriate limit.

I should also mention that it's not even mathematically consistent to have a classical field like electromagnetism coupled to quantum matter. It's fine in certain approximation schemes, but the breakdown and limitations of such an approach is well documented.</comment></comment></comment></comment></comment></comment></comment></comment>


Gig Workers Have Nowhere to Pee - <AUTHOR> https://www.vice.com/en_us/article/884xyp/gig-workers-have-nowhere-to-pee <comment><USER2> How can you deny the bathroom to a customer? Drivers are not employees and they pickup goods that are paid for. They are the representative of the company that placed the order.

</comment><comment><USER3> More and more shedding of responsibility for workers.</comment>


How to Spot a Zombie VC - <AUTHOR> http://foundercode.com/how-to-spot-a-zombie-vc/

<comment><USER2> Because we need a summary of a story that's on the front page!</comment>


Pat Helland - Idempotence Is Not a Medical Condition - <AUTHOR> http://queue.acm.org/detail.cfm?id=2187821&t

<comment><USER2> Naughty innuendo aside, this was very informative</comment>


Vaping links to Covid risk are becoming clear - <AUTHOR> https://www.nytimes.com/2020/09/04/health/covid-vaping-smoking.html <comment><AUTHOR> >Association Between Youth Smoking, Electronic Cigarette Use, and Coronavirus Disease 2019

[https://www.sciencedirect.com/science/article/pii/S1054139X2...](https://www.sciencedirect.com/science/article/pii/S1054139X20303992)</comment>


Node.js Tools for Visual Studio - <AUTHOR> https://nodejstools.codeplex.com/ <comment><USER2> (group lead here) Thanks GravityWell for posting.

We just got done giving a talk on NTVS & PTVS at Build in SF. The reception was great (given this is a primarily .net conference). I did an informal poll of the audience (180 or so), asking whether they were planning on deploying node/python in their _enterprise_. The response was around 75-85% Yes to both, which was somewhat higher that I had expected.

The cool new feature is this Beta are TypeScript integration, Remote debugging (inc. linux), Edit&Continue (no server restart), free edition (NTVS + VS Express), etc. and numerous bug fixes.

To address a few comments regarding strategy - most are correct, though some are over thinking it a bit :). The project was proposed & started by the PTVS (python) folks, and mgmt was rather lukewarm about it. It was definitely not part of some uber P1 strategy. I wish it was. However, since then it's gained some momentum thanks to the community and it's become important enough that Scott Guthrie mentioned it in his keynote, and Soma (SVP for developer division) just blogged about it.

a few new videos (pls excuse the production, we do our own videos...)

new npm UI (community contributed) [https://www.youtube.com/watch?v=AwSzxFY5CMI](https://www.youtube.com/watch?v=AwSzxFY5CMI)

twitter sentiment app -- [https://youtu.be/9tf6HmG9VAA](https://youtu.be/9tf6HmG9VAA)

remote debugging [https://www.youtube.com/watch?v=ZAroJmb6XY4](https://www.youtube.com/watch?v=ZAroJmb6XY4)

<comment><USER3> It is great that the installation works with Express. Much preferable to the approach taken by the Python Tools for VS requiring a separate installation of the bare VS shell. They say they can't enable installation of PTVS on Express because Express doesn't support extensions. I guess you aren't doing NTVS as an extension. Any hope for getting PTVS to install on Express using whatever method you are using?

<comment><USER2> Thx. Happy to report that the restriction is gone. In fact you'll be able to install PTVS in web and desktop express both! Release coming soon.

</comment></comment></comment><comment><USER4> Perhaps I'm paranoid but I'm seeing a lot of tentacles extending around a few ecosystems from Microsoft. I see lots of praise but some rational analysis and caution might be worth considering.

For ref, I deal with Microsoft a lot and wrote a ton of c# over the least decade (more than anything else probably) so I'm not biased against necessarily but all-encompassing announcements like the ones over the last couple of weeks make me suspicious.

Edit: to extend my thoughts on this some more:

I don't think we're seeing embrace and extend. I think we're seeing "go on - use our tooling". Once you're in a tool ecosystem it's hard to get out of. I mean really hard. Same goes with cloud ecosystems which neatly integrate with their tooling. Their offering is to host all of your stuff (Azure) and mediate between you and what you're working on (Office/VS/Xamarin potentially).

A fully heterogenous system with a sole vendor mediating your access becomes an interesting situation when for political, financial or legal reasons you want or need to leave.

<comment><AUTHOR> I'm hardly an MS fanboy, and I'm not sure what announcements you're referring to, but it's hard for me to see a downside to this.

</comment></comment><comment><USER5> It's better late than never. It's just easier to say 'I quit' because it's likely none of Node.js developers will switch to using Visual Studio rather than give it a try. Though I probably will never use Visual Studio for writing my Node.js project, kudos for MS not being the old MS.

So what's next for MS? I think they are getting the direction right for opening up for external MS product users, and now it's time to recruit top talent again. There are just too many great hackers think MS is old (just look at some of replies in this story), which to large degree is true, and it will take time to fix that, but it can be possible done with: 1) create openness [culture, keep taking more open-source project like open-day-light, keep opening tech inside MS to others, etc.]; 2) buy early-stage companies through acqui-hire. It will be an uphill-battle and I am not an expert on this, and I am very interested in what other people here on HN thinks.

<comment><USER6> I think msft building this kind of tooling around exciting tech like node gives node more credibility in a big enterprise type of shop...will only be a good thing for node,

<comment><USER7> Exactly. This is a play for the next tier of developers, which will mostly be enterprise, mostly use Windows, and be much larger.

</comment></comment></comment><comment><AUTHOR> Note for those visiting the thread, I found one of the big things with this release is the support for Edit & Continue:

[http://nodejstools.codeplex.com/releases/view/104141](http://nodejstools.codeplex.com/releases/view/104141)

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

It was in the original title, but has been edited out.

<comment><AUTHOR> I just fired up a NodejsConsoleApp project in VS 2013, created a few simple functions, set a breakpoint, and started stepping through. To be fair, I assumed Edit and Continue would work like it works for other .Net or Native projects, or like the old VB or even VBA.

1) "Set Next Statement" doesn't work, which is a pretty big part of E&C

2) I could change code and literals without stopping and restarting the debugging session. Each change causes the current statement to jump to the top of the current function, or to the first line if modifying code outside of any function. Local variables are reset, but globals retain their state.

3) Interestingly, I could change code in a function that does not have the focus, and nothing is reset, then step into that function.

I remember seeing something similar when V8 was being demoed and showed a "live edit" capability, so I guess NTVS has similar functionality.

It short, it sort of works, but it's not the same as E&C for .Net (C# or VB), C/C++ native code, or Office VBA.

</comment></comment><comment><AUTHOR> I had to see it to believe it, but here it is. [https://www.youtube.com/watch?v=ZAroJmb6XY4](https://www.youtube.com/watch?v=ZAroJmb6XY4)

</comment><comment><USER8> Until they can address the problem with building certain NPM modules on windows (ie `node-gyp` related ones), this is a bit of a non-starter.

Sadly the only reason I keep my windows based desktop around these days is PC gaming is still very much windows based.

<comment><USER7> I keep hearing this meme but I use node on Windows and don't have any issues with this. You have to have Visual Studio and Python installed, but most of us have that anyway.

Which node modules are problem children?

<comment><USER8> We had a lot of issues with sqlite.

What version of VS did you need? Some of the information on getting gyp working was like VS2008 SP1, plus the Win7.1 SDK.

If this is no longer true, I'll give it a whirl.

<comment><USER7> I use VS2013 with it and it works great.

<comment><USER8> EE?

<comment><USER7> I'm using Ultimate (was that the question?)

<comment><USER8> yeah, express edition is the easiest for most non MSDN folks to get.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Does anyone else get the impression that MS shifted a lot of its attention to web developers?

There is an incredible amount of web technologies and dev tools coming from ms that are being presented at Build 2014. In fact so many that I'm having a hard time keeping up...

<comment><USER10> Their new OS in a sense is Azure, they want developers of all platforms to run on their cloud. All of these tools have an easy tie to Azure which isn't bad, but the lock-in is happening farther up at the service level now. Web developers are huge in that area.

<comment><USER11> They did offer an olive branch as far as Azure lock-in by releasing some of the Azure components (Mobile Services and the Azure Pack) to download and run in your own environment. That said some of those pieces require a pretty high overhead.

As with most Microsoft stuff, you get a great fully integrated story if you use their whole stack, but if you want to swap one one piece it falls apart a little. My clients have compliance issues that make cloud providers hard to use so it's disappointing that I can't really use all this coon new stuff.

</comment></comment></comment><comment><USER12> I've been following this project since the earlier times and the progress is really impressive. Thank you for the amazing work.

</comment><comment><USER13> I'd sell a good friend of mine if I could debug my node extension native code and javascript server code from the same IDE.

<comment><USER2> angersock - if you could file a feature request on [http://nodejstools.codeplex.com](http://nodejstools.codeplex.com) that'd be great. We did implement support for this for Python ([https://pytools.codeplex.com/wikipage?title=Mixed- mode%20deb...](https://pytools.codeplex.com/wikipage?title=Mixed- mode%20debugging)), so it's not out of the question.. thx.

</comment></comment><comment> nevi-me I tried the alpha a few months back, and found it to understandably be lacking, My biggest frustration with it was trying to profile the performance of a complex piece of code with a number of callbacks and such. NTVS would only look at the first iteration, and not tell me anything useful (at the time I was tracing a memory leak). There were a few other inconveniences which I noticed that issues were raised for, hopefully most were fixed.

<comment><USER2> Thanks for trying it nevi-me. Please give the Beta bits a try - lots of bug fixes, including in the profiler.

</comment></comment><comment><USER14> Without going too far off-topic, does anyone know anything about a SQL Server driver for Node.js? There was this, but it hasn't been updated in a while. [https://github.com/Azure/node-sqlserver](https://github.com/Azure/node- sqlserver)

<comment><USER15> I find the tedious npm module works a bit better, and cross platform for connecting to MS-SQL, it has some rough edges, but was at least more consistent for me. The MS client didn't work as well for me early on. It's worth noting my usage has been pretty limited.

</comment></comment><comment><USER16> This is awesome. Intellisense support will certainly beat using vim for my node projects :-)

It also appears to work with the free version of VS (Visual Studio Express).

</comment><comment><USER17> I like the direction MS is going. At this rate they can possibly shed themselves out of the shadows of Google and Apple and truly emerge as an open, innovative company. Why not, they got the cash to do so.

Now on this Node.JS IDE, it actually makes me want to use Node.js because it's on Visual Studio, however, I'm also open to alternative IDE.

My favorite is Jetbrain's IDE products, I use webstorm and phpstorm, and pycharms. I love them all, would be nice if they had one for Node.js, as I'm not sure if webstorm has extensive support for it.

</comment><comment><USER18> It's an attempt to bring back developer to windows platform. I personally don't know a single serious web developer using windows unless they are coding in .NET.

<comment><USER7> What? This is an attempt to sell Visual Studio by making it relevant to what developers are using!

<comment><USER9> Now they just need to port it to *nix platforms. Well, perhaps Visual Studio Online is their way of doing that...</comment></comment></comment>


Fitness tracking app's map reveals movement patterns on remote military bases - <AUTHOR> https://www.cnn.com/2018/01/28/politics/strava-military-bases-location/index.html <comment><USER2> Extensive discussion: [https://news.ycombinator.com/item?id=16249955](https://news.ycombinator.com/item?id=16249955)

</comment><comment><AUTHOR> This might be the original research?

[https://twitter.com/Nrg8000/status/957318498102865920](https://twitter.com/Nrg8000/status/957318498102865920)</comment>


UK HN'ers LeedsHack is back - <AUTHOR>

LeedsHack is an overnight hackday in Leeds, its free and is the first weekend in August, http://www.leedshack.com, any questions post them here :) <comment><AUTHOR> A Bit of event blurb --

LeedsHack: The largest UK hackday outside of London

LeedsHack is the only overnight hackday for the city of Leeds, the basic idea is we stick 150 people in a room, give them food, water and wifi and see what magical thing they create over the weekend.

Hackdays are a great way of unleashing creativity of teams and learning new skills, the time limited nature of the event means that you tend to focus and dive right in!

Companies are seeing the advantages of hackdays internally by scheduling them regularly and letting development + design teams work on new ideas that wouldn't be possible within the usual development schedule.

</comment><comment><USER2> <http://www.leedshack.com> (for the lazy) :-)

</comment><comment><USER3> Went to this last year, and was great fun.

PROTIP: Bring a nerf gun :P

</comment><comment><USER4> Hells to the yeah!</comment>


Things SQL needs: MERGE JOIN that would seek - <AUTHOR> http://explainextended.com/2010/05/07/things-sql-needs-merge-join-that-would-seek/

<comment><USER2> I think it would be better still to, when seeking forward, have it examine a couple of records, then start jumping forward in powers of 2 until it has located an interval with the next value in it, which it then does a binary search on to find the right location.

This is at most a factor of 2 less efficient than a binary search, it is fast when the sequential reads are fast, and it doesn't rely on statistics telling the whole story. (For instance the size discrepancy could be explained by a small number of large gaps. This strategy would quickly jump the gaps while still getting fast sequential read behavior elsewhere.)

<comment><USER3> Unfortunately, with a B+Tree index, you cannot jump in powers of 2 (well, you can but only within one page). To find a record with a given offset you'd need to traverse the whole linked list of the leaf-level pages, and that's what MERGE JOIN does by default.

However, this solution would be nice if you had a sorted recordset which allows efficient positional seek (for instance, a materialized result of the previous operation which required sorting).

</comment></comment><comment><USER4> He's cheating a bit. He created two tables each with 1 million rows, offset by 999,000. (i.e. 1 - 1,000,000 and 999,000 - 1,999,000)

Which of course is the best case scenario for this query.

But this is very unlikely in the real world. In the real world you use sequential IDs, and almost all the IDs exist. So seek is not useful.

If you use random IDs (like using a GUID for a primary key), it's still not useful. If your random number generator is at all good your index numbers are pretty well distributed, without the large gaps this query likes.

<comment><USER3> > He's cheating a bit. He created two tables each with 1 million rows, offset > by 999,000. (i.e. 1 - 1,000,000 and 999,000 - 1,999,000)

Of course this is cheating, but only to demonstrate the point :)

> But this is very unlikely in the real world. In the real world you use > sequential IDs, and almost all the IDs exist. So seek is not useful.

Yes, and that's why the HASH JOIN is almost always used instead by the real optimizers :)

However, there are situations when the gaps are expected. Say, the right recordset is small compared to the left one. Usually, a NESTED LOOPS is used in this case with the right recordset leading, but each loop uses a full- fledged seek from the top of the B+Tree which can be inefficient when the right recordset is not so small.

Using a statistics-assisted MERGE JOIN in this case would help to mix the seeks and the scans.

Say, if the statistics say "current right is 500, current left is 300, there are 40000 records from 0 to 1000 in the left recordset", we know that most probably we'll need to skip 8000 records to reach the right pointer and we better seek.

But if on next step it will say "current right is 501, current left is 500, there are 40000 records from 0 to 1000 in the left recordset", we know that there are only 40 records left which are most probably in one page and we can scan instead.

It can be thought of as an improved NESTED LOOPS which caches the current position.</comment></comment>


Go Daddy's Database Creation Form: Horrible Password UX - <AUTHOR> http://adamstech.wordpress.com/2012/12/14/go-daddys-database-creation-form-horrible-password-ux/

<comment><USER2> 1\. do not use Go Daddy, they are evil

2\. do not host a dB on a registrar's webhosting infrastructure</comment>


Armed police: Trigger happy - <AUTHOR> http://www.economist.com/blogs/democracyinamerica/2014/08/armed-police

<comment><USER2> And in the UK, republicanism is declared to be treason by law. In 2014. Criminal use of firearms has a long history in the US, which used firearms to violently overthrow the lawfully established government of the UK (and establish a republic). Freedom isn't free. It never has been, it never will be. This article explores one such cost.</comment>


Am I being completely unreal? - <AUTHOR>

Hi all,
I am a 22 year old web developer. In the last three years I have been developing for the mobile and web platform. I've been hired with no degree, based on my skills solely. I am now faced with a very difficult decision of 2 very compelling options.
Now, I am now in a cross path in my life. Should I go and study for my first degree in computer science, in a well known university, or should I join a team of 3 very good friends who are also extremely talented (a doctor in electrical engineering and another two excellent developers) and start a start-up?
I am currently convinced that I have a wonderful idea. I want to give it a try, but don't want to postpone my studies anymore. I decided I'll give this idea a chance.
To my understanding building a start-up and pursuing this dream can take forever, that's why unless I give it a final deadline I believe that I won't study at all. That why I decided that if by one year I raise an investment of a million dollars, and in two years I can can make 10 million dollars, I will forget about studying. How unreal am I? Am I daydreaming?
What would you do?
thank you! <comment><USER3>
      if by one year I raise an investment of a million dollars, and in
      two years I can can make 10 million dollars

It sounds like you are already counting your winfall before even writing a single line of code. I think you have maybe been reading too much Techcrunch. In my experience startups are less like The Social Network and a lot more like Fight Club (same director btw).

I would do the startup only if you never intend on going back to school.

</comment><comment><USER4> * Everybody else on your team is an engineer or developer. Obviously, this doesn't mean you _can't_ be successful (I know, I know - look at Google), but you should consider the possibility that you're probably missing vital skills needed to compliment your startup's technical prowess. From UX to business development, you have to get a lot right to turn a great product into a great _business_ , and that can be difficult when you have three other chefs in the kitchen who all cook the same cuisine.

* Starting a business with three close friends seems nice on paper, but don't assume that good friends necessarily make for good business partners.

* Talk about arbitrary dollar amounts calls into question not just your sense of reality, but your motivations. Can your startup raise $1 million? Perhaps. Will you have $10 million in cold hard cash in two years? Perhaps. But you could buy a lottery ticket and win the same amount within the next two years too. If you wouldn't plan your life around a potential financial windfall from a lottery ticket, why would you plan your life around a potential financial windfall from a startup? The number of self-made 24 year-olds with $10 million-plus net worths is quite small, but you probably already know that.

</comment><comment><USER5> Do both. Talk to these guys, make a time commitment, and you can pull both of these handily. Just don't count on too much sleep.

Some things to consider - there is a certain glamour to the startup life, and certainly you can make it big. Statistically however, you will lose money - <USER2> if you are chasing gold, chances are it's a pipe dream. Certainly there's a chance, but you are gambling if you are just going after money. If you are going to do a startup, do it for the experience, and for the act of creation, but not to get rich.

Not having a degree, you are going to get yourself into a tough situation though. If you ever decide to get a job at an established company, you'll face a couple of things: first, HR will probably throw out your resume, and even when you get interviews, chances are your knowledge won't align with what they are testing for (algorithms, mostly). Plus you might run into the issue of investors not taking you seriously.

Certainly school will always be there - you won't ruin your life by not going back right away. Yet I think these are all important things to consider.

</comment><comment><USER6> I feel your pain. You are in a unique position as a developer. Most of what you learn in your degree program, whatever it is, will not have direct relevance on how to run a business, create a product, build a company, or how to work with other people in a business environment. I have several friends who all either did some college and dropped out it bored them and their interests led them to successful careers in software (two of them are senior independent consultants, one is a CTO and founder of several startups). Lack of degree was only a barrier for a brief time when their experience wasn't strong enough to carry them forward. It's no such barrier now.

In your particular case, I think you should seize the opportunity to build something for yourself. Whether you succeed or fail will be immaterial compared to what you learn from the experience. Like someone said, school will always be there.

I say go for it. You're only young once.

</comment><comment><USER7> The only thing I've ever regretted in my life is not going and doing a startup right out of high-school. In hind sight I already know it failed, but I still regret it. School will always be there IMHO.

<comment><USER8> I joined a start up right out of high school. It went belly up in 2001 or so, but that lead to some other jobs and what not. Though, now I'm 30 and looking for work and kind of wishing I'd done college right after high school.

Maybe it's a 'the grass is greener' kind of thing. Though I did have the same mindset that "school will always be there." I just never quite made it back to "there."

(My response might be a but jumbled, but I am agreeing with you, while at the same time looking back on my own thoughts and feelings of past decisions. Sorry for any confusion.)

<comment><AUTHOR> This is my fear exactly. To my understanding life has got its own tendency to unfold. The older you are, the more distractions you have. Chances are slimier to finish a degree in a well known \ respected university. This is my fear.

</comment></comment></comment><comment><USER9> You are being unreal, but I'd go with the startup anyway.

School will always be there, and your experience won't be _that_ different based on age. I had friends up to about age 26 when I was in college, and I've known people that did it all throughout their 20s. The chance to found a startup with people you really respect doesn't arise all that often, though. Take advantage of it and see where it leads you, and if it doesn't work out, then you can go back to school.

</comment><comment><USER10> It depends on what you would want out of college. College could be a very social experience where you talk things out, think a lot and make great friends. If you have a great relationship with your 3 friends you are half way there already. The other thing you get in college is inspiration from a few great professors, if you are lucky enough to find them.

<comment><AUTHOR> what about the studies themselves? From what I read here, most don't seem to have too much appreciation towards them.

</comment></comment><comment><USER11> Look at your results so far. It seems from your writing that your intrinsically motivated to learn and execute.

Really good teams coming together is a rare phenomenon. Go follow your passion.

Just keep aside enough money so that if all goes to hell you can start your degree afterwards.

</comment><comment><USER12> What do you hope to get out of a degree that you don't have already?

<comment><AUTHOR> knowledge I guess, I think it's an important period in ones life. safety.

<comment><USER13> It's not worth it for knowledge alone. I'm finishing my degree now, almost 25 been working full time since 19, having completely ignored other students. I lived out the just doing it for the piece of paper and knowledge and it's not fulfilling. If you go to school, I'd suggest immersing yourself in it, networking with others, taking the extra steps to actually ge a deep understanding of the material. If that's not how you do it, startup would be best.</comment></comment></comment>


Mac 1994 Inspriational Sales Video with Steve Jobs as FDR - <AUTHOR> http://www.networkworld.com/community/blog/watch-steve-jobs-play-fdr-apples-long-lost-takeoff-1984-mac-ad?page=0%2C0

<comment><USER2> That's 1984, and inspirational...

<comment><AUTHOR> I made a mistake it was 1944 not 1994. It is a take off of going to war, but going to war against IBM. In the video they secretly replace IBM PC's with Mac's. The IBM Pc workers are sort of "POW's" until freed by the Macs. Can't fix the title though.</comment></comment>


Is Facebook a Passing Fad? Nearly Half of Americans Think So - <AUTHOR> http://mashable.com/2012/05/15/facebook-fad/

<comment><USER2> Eventually there may be something that the youth of America switch to because Facebook is no longer "cool", but it's so ingrained in everyone else's life that I don't see it going away that easily.</comment>


Adventures in debugging: etcd, HTTP pipelining, and file descriptor leaks - <AUTHOR> http://www.projectclearwater.org/adventures-in-debugging-etcd-http-pipelining-and-file-descriptor-leaks/ <comment><USER2> This is some interesting behavior from the blog post:

        Eventually, Python exits, and closes TCP connection A,
        by sending a FIN packet – but etcd doesn't send a FIN
        of its own, or send a zero-byte chunk to finish the 200
        OK, as it does in the success case. This causes the
        socket to leak on etcd's side – we think this is a bug
        in Go's HTTP stack.

This really should work so we need to investigate that one more deeply. I am not opposed to adding the timeout option as the author would like to do and we would happily consider a patch for this.

 _Update_ : here is a proof-of-concept patch to address this feature request: [https://github.com/coreos/etcd/pull/3816](https://github.com/coreos/etcd/pull/3816)

Longer term etcd will use gRPC/http 2.0 in the new etcd v3 API[1] to address use cases like this. In particular gRPC will allow us to have multiple streams while keeping open a single TLS connection. A major expense of the current watch API is having to tear down connections as explained in this post. We will still support http/rest likely through the use of grpc-gateway[2].

The file descriptor rlimit issue that was the side-effect of this issues is why databases like etcd have to protect themselves. For example a few months ago etcd learned to reserve file descriptors for itself in case we get clients hogging up resources[2]. Longer term we would like to be able to let proxies handle watches directly to further protect the core quorum of etcd.

[1] [https://github.com/coreos/etcd/blob/master/Documentation/rfc...](https://github.com/coreos/etcd/blob/master/Documentation/rfc/v3api.md) [2] [https://github.com/gengo/grpc-gateway](https://github.com/gengo/grpc- gateway) [3] [https://github.com/coreos/etcd/pull/3219](https://github.com/coreos/etcd/pull/3219)

<comment><USER3> We have a very nasty issue in kubernetes with it's userspace-proxy leaking handles, when misbehaving workload doesn't close connections properly (e.g. Java InputStreams). Could this be related?

<comment><USER2> Maybe. The kubernetes 1.0 proxy is a pure TCP proxy so would need more details. Could you file an issue?

Kubernetes 1.1 will have an iptables based proxy too: [https://github.com/kubernetes/kubernetes/issues/3760#issueco...](https://github.com/kubernetes/kubernetes/issues/3760#issuecomment-143048131)

<comment><USER3> There is an open issue in which we came to more or less the same conclusion as mentioned the article (not a bug, but a feature of the TCP/IP protocol).

i am a bit puzzled why other people are not constantly bitten by this, though.

</comment></comment></comment></comment><comment><USER4> Good spot Rob!

In the past we (urllib3) have been pretty optimistic about assuming connections are still useful when we hit exceptions, but increasingly that optimism seems to be hurting us.

For that reason, I've taken your fix, added tests for it, then proposed it to the main urllib3 repository[0]. Right now the commits are in my name, but I'd be totally happy for you to make them yourself and open a pull request containing my commits. Either way, I've also added you to our contributors list.

Thanks for the write up!

[0]: [https://github.com/shazow/urllib3/pull/734](https://github.com/shazow/urllib3/pull/734)

</comment><comment><USER5> afaik the cannot identify protocol is normally caused by, as is the case here, half open TCP connection. Seems bug is caused by a mix of using pooled connection manager on python side, not familiar enough with go or etcd to look into it. Seems what author could really use is eventloop on python side, to deal with having blocking forever to read long polling and also respond to signals (or however kill handled). Probably some way to wrap requets(stream=True) w/ it's yield into whatever people use for asyncio in Python now, and another listener in event loop listening for kill singal?

Curious about what on go side doesn't actually close the tcp connection, I'd assume channel (assumming it's using channels per watcher) would catch some exception when socket is closed on python side, maybe just socket is never closed after exception? Time to try learn some go to see in etcd code base...

<comment><USER6> _I 'd assume channel (assumming it's using channels per watcher) would catch some exception when socket is closed on python side, maybe just socket is never closed after exception?_

Either end of a connection doesn't know if the other end closed it until they try to do something with the socket, per the BSD socket API. The etcd watch API, from reading the article, doesn't reply until an event occurs, so if an event never occurs in time (before a whole bunch more requests come in), it won't do anything with the socket, and thus won't find out the other end closed it.

<comment><USER5> Huh always something new to learn for noob like me :) Could tweaking any of the tcp timeout settings on the os level help with this at all?</comment></comment></comment>