HN user

ryanmolden

1,526 karma

I break stuff in Visual Studio and occasionally try to help people extend it.

Contact: ryan.molden@gmail.com

Github: http://github.com/ryanmolden (not a lot there at the moment. One day I will post a number of other things I am/have been working on...one day).

[ my public key: https://keybase.io/ryanmolden; my proof: https://keybase.io/ryanmolden/sigs/BoeDiGIsYjXrgN3zOnFHi_fWb_qC3OEeGQNCGmeeHuY ]

Posts24
Comments299
View on HN
en.wikipedia.org 13y ago

SCOTUS rules genes aren't patentable

ryanmolden
1pts0
www.newscientist.com 13y ago

Mapping the Internet

ryanmolden
2pts0
www-2.rotman.utoronto.ca 13y ago

How Higher Economic Value of Time Increases Feelings of Time Pressure [pdf]

ryanmolden
1pts0
hlt.media.mit.edu 13y ago

DIY cellphone

ryanmolden
183pts56
news.ycombinator.com 13y ago

Ask HN: Who's going to Strange Loop this year?

ryanmolden
5pts2
news.ycombinator.com 13y ago

Ask HN: The history of CS / software engineering, how to learn it?

ryanmolden
1pts0
blogs.msdn.com 14y ago

Visual Studio 2012 will build apps that can run on XP

ryanmolden
82pts20
arstechnica.com 14y ago

Express for Desktop allows for non-metro development in Visual Studio 2012

ryanmolden
67pts43
www.pnas.org 14y ago

Iterated prisoner's dilemma contains evolutionary opponent dominating strategies

ryanmolden
95pts26
www.telegraph.co.uk 14y ago

Starlite, the nuclear blast-defying plastic that could change the world

ryanmolden
6pts2
online.wsj.com 14y ago

Data Breach Sparks Worry

ryanmolden
1pts0
paulcadden.com 14y ago

Artist's drawings look more realistic than most photos

ryanmolden
13pts0
channel9.msdn.com 14y ago

Variadic Templates are Funadic

ryanmolden
1pts0
shelf1.library.cmu.edu 14y ago

Designing Organizations for an Information-Rich World [pdf]

ryanmolden
2pts0
www.freepatentsonline.com 14y ago

Apparatus for facilitating the construction of a snowman

ryanmolden
1pts0
www.washingtonmonthly.com 14y ago

The Myth of American Productivity

ryanmolden
4pts0
www.thepaintingfool.com 14y ago

The Painting Fool

ryanmolden
1pts1
consumerist.com 14y ago

Microsoft suggests customer donate extra X-Box they sent him.

ryanmolden
139pts27
blogs.discovery.com 14y ago

Orang-utans love iPads.

ryanmolden
2pts0
sites.google.com 14y ago

Reconstructing video images via fMRI

ryanmolden
2pts0
illusioncontest.neuralcorrelate.com 14y ago

2011 Best Illusion of the Year Contest Entries

ryanmolden
2pts0
lastsummerdown.tumblr.com 14y ago

Surface of Revolution with Constant Negative Curvature - Hiroshi Sugimoto

ryanmolden
1pts0
www.laskerfoundation.org 14y ago

The discovery of Artemisinin [pdf]

ryanmolden
1pts0
aktuell.ruhr-uni-bochum.de 14y ago

3DES protected smartcard cracked with side channel analysis.

ryanmolden
28pts11

Far and away the biggest problem with the background/foreground issues is COM and its apartment models. A large part of some of the core pieces of Visual Studio are (still) written in native code and are STA bound objects (mostly when they don't really need to be, but that's another discussion).

Converting off of STA in legacy code is extremely difficult due to the transitive nature of it as well as the fact you likely have very large and complex types which were never written to be thread-safe because the STA protected them from that (let's not talk about re-entrancy though :)).

It is getting better since managed code has MTA semantics by default, but even with async code all it takes is one person calling Wait on a Task on the UI thread...

A huge sync API surface that is publicly callable also doesn't help. Even if you want to make things async under the covers you generally can't since callers are expecting synchronous semantics and there is no (good) way to make work async, present a sync calling surface to callers, and not block the UI thread (if you say nested message pump, you lose :P)

There is, iirc, also a time limit between when an investigation begins and one an indictment is filed. The idea being to prevent the government from simply having someone under investigation in perpetuity. I suppose the ADAs COULD try and time the indictment against unrelated pop-culture events, but in my experience it seems so unlikely as to be mostly the stuff of movies. Delays more frequently where due to problems getting financial records or untangling complex webs of them, problems locating willing witnesses, problems with witness intimidation, etc..

As someone that served on a federal grand jury, no. Well, at least not vocally, I presume people internally weren't basing their votes on pop culture but saying something else out loud. Then again the strength of most cases that make it to the grand jury, from what I saw, are fairly strong, and the burden of proof is lower (since indictment != conviction). If the case is weak the ADA's wouldn't even bring it to us.

Yes, not to mention that it simply means people that don't fit their pedigree filter are available. I have met brilliant hackers from MIT/Berkeley/et al, I have also met average hackers from those schools, and brilliant hackers from other schools. My experience leads me to believe the correlation between brilliant hacker and school (if any) is positive, but not dominating. The again maybe that is just me hoping, not having come from their vaunted halls :)

have any links to the Connect issues in question? I am not doubting their existence, just trying to understand how they fell through the cracks. There are multiple levels of filters before they get to the product teams, mostly because of volume. I have seen people file Connect bugs against non-MS products, even complaining their own product crashes and it is Microsoft's fault (that one turned out to be a ref-counting issue in their code). I don't necessarily like the filters, but having seen it unfiltered I appreciate it, since otherwise we would have time for little else.

Would you wear a lapel camera that recorded your entire day and uploaded it in real time to the police? Why not? Something to hide? More seriously, my objection would be that assuming everyone is guilty or needs to be monitored is a weird state of governance. Crime exists, it always will regardless of level of monitoring. So the discussion is about what are the reasonable tradeoffs between privacy and crime prevention/solving. I think 24 hour surveillance is too far for the gain it may bring. As others have pointed out, the government also can have...interesting interpretations of who "the criminals" are (see infiltration of civil rights groups in the 60's by the FBI for example), and has shown, even recently, that their idea of oversight is really "theory only" and they don't appreciate actual oversight. Giving broad powers to such groups is a very bad idea.

I talked with someone internally that works on this, he said:

I can type { and } on a Swiss keyboard which is a AltGr + ä and AltGr + $.

What keyboard layout were you seeing issues with? Looking at Wikipedia it looks like it would be South Slavic Latin based on your mention of Alt Gr+N?

You can mail me privately if you wish (mail in profile).

I'm sympathetic to this as I may know people who work at various DOD subsidiaries, and they are good people. That said, to deny there are no sociopathic power seekers in these organizations is just naive. Giving an absolute power that can so easily be abused to any organization is a terrible idea. Even if today they are lead by a metaphorical holy, righteous person, tommorow they may not be, and when such a change occurs it won't be announced like some cartoon villain holding a press conference declaring their evil plans for all to see. I agree that congress, at least certain members of it, those privy to this information, have no legitimate claim to ignorance and outrage (okay, maybe the former), but I see the bigger problem being a program like what is alleged is even allowed to be set up. They claim there is strict oversight/auditing of data, and while I have no doubts this is technically true, I highly doubt it is the story "on the ground", just based on my knowledge of human nature and large scale organizations.

It says can be audited. I suspect the number of times that has been done is vanishingly small, perhaps only on Snowden, after his revelations :) It smells to me like plausible deniability. Claim you have set up a system where things can be audited, don't ever answer how frequently it is done or what the penalty is for abuse of the system. Top secret and all. This kind of system really should freak people out. I imagine it would be a great blackmail info system if people start speaking against the govt or "causing problems". I can imagine public figures don't want to be publicly shamed for their online activities, gambling, porn, affairs, etc...

Best of the best that apply to Google. Or in other words, their hiring process is "Hire the best people that apply here", or, you know, the hiring policy of every company in the world. You could argue they uniquely attract smart people with some kind of high IQ gravity centered at the Googleplex, but that seems unlikely. Makes for good marketing copy though.

There is also some trickiness around when things get executed. If you return an IEnumerable<T> that is really a LINQ query, and the caller doesn't immediately enumerate it, they run the risk of getting exceptions when they do enumerate if you mutate the collection the query runs over. You can of course force its evaluation, but that also loses some of the benefits of the laziness. Bring in multi-threading and even if you properly synchronize collection access (and that is hard to do without custom collection types, since LINQ is like the honey badger w.r.t. synchronized access) you can still see the collection modified exceptions talked about above.

Well, I wouldn't say it should be expected during builds. In the past the build architecture was somewhat questionable, i.e. they ran builds synchronously on the UI thread, which works fine if your build takes like 50 ms :) I don't work on the project build team but I believe most languages now build off the UI thread, and any that have long sequences of activities they are doing on the UI thread should still be pumping to prevent UI lockup. That said, running your own pump in an app as complex as VS is...not something to be undertaken lightly, so it is possible their pumps are not correct or their 'in between pump' tasks are taking far longer than they thought/expected. If you can repro it even without repro steps I can give you some instructions on getting a perf trace I could take a look at, they generally point to the culprit pretty clearly.

Do you have specific examples? This is an area of interest for me. VS architecturally has a lot of things tied to the UI thread due to COM STA requirements (well, that and the fact that historically people created their STA objects on the UI thread, thus tying them to the UI thread).

Another possible cause can be extensions. Not that VS doesn't have its own problems of 'doing too much work on the UI thread', but there are TONS of callback points that third parties can hook into, and lots of times people do very ill-advised things on the UI thread, leading to poor responsiveness.

We monitor it actively (via PerfWatson[0], you should install it if you want your perf problems brought to the attention of Microsoft, it should have low overhead at runtime, only kicking in when the UI thread is already unresponsive), but of course with a product as large and complex as VS, and with said product being extensible, inevitably customers run into stuff we never see internally, so we rely on getting repros/data from them to understand what is going wrong.

[0] http://visualstudiogallery.msdn.microsoft.com/fa85b17d-3df2-...

True, but when it comes in handy it can be immensely so. I was looking at a customer crash dump at work the other day and the callstack shown by two different debuggers didn't make any sense, it was showing calls sequences the code clearly didn't make. Looking at the raw stack in memory and using the disassembly to help see the layout of the frames made it (relatively) easy to see there were a couple of calls in the sequence that both debuggers simply weren't showing. Once I had the real sequence and the dissassembly to see how the frames evolved and recompute call targets for earlier in the frames life it became a lot easier to see what was going wrong. If I hadn't been able to do that (and my ASM skills are definitely not strong) this would have been a No Repro (and hence no fix) bug for sure.

Yeah, there are generally two things keeping society in order. Ethical beliefs about right and wrong and fear of punishment from the powers that be for breaking the law. My concern with the NSA is that there is a culture of "the current laws are unduly stifling on our jobs, so us ignoring them is 'required'", coupled with management's belief in same and thus non-interest in prosecuting people that cross the line. Not to mention such prosecution would inevitably be public and thus the program exposed and the public seeing it is being abused. Taken together you have a perfect recipe for safeguards that exist in theory and are utterly ignored in reality, "for the greater good".

No, but do you imagine they would have discovered his name or have been aware if a strange accident had befallen him had he not put himself in the spotlight? To not imagine most of the character assassination occurring is related directly to the NSA seems odd, that is the kit of clandestine services worldwide. I saw an article with Booze saying he only made 122k a year, so basically appearing to try and make him appear to be an exaggerator or liar in something relatively inconsequential to the whole affair. Nice move, hopefully he has hard proof contradicting that, since otherwise people start questioning what else he exaggerated/lied about, which is precisely what they are angling for with publishing such unrelated bits of trivia.

Yeah, I know nothing about this area (so this is just speculation, ignore it as such if you wish), but it seems getting a firehose feed of all traffic would be easier and less exposure prone, than getting every ISP to allow a MITM and having absolutely no one in the computer security industry notice. Don't get me wrong, I would prefer a MITM, at least then you know they haven't broken crypto that is widely believed secure, the alternative is a bit scarier :)

This is not my area, so excuse the ignorance, but this statement:

A: "The NSA has built an infrastructure that allows it to intercept almost everything. With this capability, the vast majority of human communications are automatically ingested without targeting. If I wanted to see your emails or your wife's phone, all I have to do is use intercepts. I can get your emails, passwords, phone records, credit cards."

Specifically the part about 'all I have to do is use intercepts. I can get your emails, passwords, phone records, credit cards'. Does that not imply they have found a weakness in TLS/SSL? Once the information is transmitted (say my Facebook password) to an https endpoint it is already encrypted, no? So them 'sniffing'/intercepting the packets would do no good, unless they could decrypt them.

Visual Studio 2013 13 years ago

Ahh, one variable I hadn't factored in. The mix-n-match option mish-mash of C++ is so fun :)

Visual Studio 2013 13 years ago

You mean it only produces 32 bit code? This disagrees (http://msdn.microsoft.com/en-US/library/x4d2c09s(v=vs.80).as...) going back to at least 2005.

The following list describes the various versions of cl.exe (the Visual C++ compiler):

...

x64 on x86 (x64 cross-compiler) Allows you to create output files for x64. This version of cl.exe runs as a 32-bit process, native on an x86 machine and under WOW64 on a 64-bit Widows operating system.

Visual Studio 2013 13 years ago

I am a bit confused. That thread seems to claim that Microsoft isn't producing a 64 bit linker, my install seems to disagree with them (vc\bin\amd64). Then you claim that the linker won't produce 32 bit code, but /machine:x86 seems to disagree with that. I tested this by building as 32 bit, then just repeating the link using the 64 bit linker and /machine:x86, worked fine.

So what are their problems exactly? That they are building with VS 2005 (from what I saw in that thread) and MS isn't backporting changes to the 2005 toolset?

Heck, I would say the same for when you are driving, multi-ton pieces of steel in motion are unforgiving. I have never trusted people to, say, not blow a red light/stop sign, to turn, even if they have their blinkers on, to not try to cram in front of me at the last second on a packed exit even if there is no room, etc.. Obviously it is more important for pedestrians as they are unprotected, but people generally being more aware/defensive while driving would be a good thing.

This. It amazes me the number of people that think "I work 8 hours a day (on average), so I should be world class in about 3.4 years". As you said it is concentrated, skill-adjusted practice, NOT just doing something over and over. The biggest problem is that you generally need an expert coach/mentor to put this work together for you, since you likely would not be a good judge of what would appropriately challenge you at your current skill level. Most people swing to the tails of the distribution in their self-made challenges, either too easy or too hard, you want the Goldilocks zone. I unfortunately have no wisdom for or solution to this problem, it is one of scale (i.e. there are more people that want said expert mentorship than there are expert mentors to give it) and time.

Freedom is power. Power need not be something wielded over others in some cartoony-villian way. In this case it is a kind of countervailing force to prevent others from coercing you into doing things you disagree with solely because they are the source of your income and you need said income to keep all the "balls in the air", so to speak. Not falling into the debt trap, or at least keeping debt reasonable, is simply a way to retain the inherent power you have as an autonomous being.