@Charles:Oh yea the bubbles, any matrix-like power surges along the geometry is all cool so long as its mainly stationary; that wobble on there right now is just funky and distracting. I guess a super slow change of angle 1/5th - 1/10th that speed wouldn't be too bad, but atm that wobble is a little too fast.
Remove the wobbly sea-sickness background and it'll be the 2nd best show on C9 right behind "Going Deep" that's how much potential this should have. But the intro background animation is amazingly horrible even though I don't get sea-sickness but If it's on other shows... I already pity the viewers.
Herb, for the record I really dislike that (direct3d) is the keyword to enable the restriction., But yes your finally implementing my(old) idea of passing not only the architectures as as a command line flag as a target but also the device to know the memory properties for the execution; CPU/GPU. No matter what, there must be at least 2 dimensions as you showed in the presentation. I believe BOTH must be passed to the compiler, the architecture/execution style/depth of the computation and then a 2nd parameter must be passed which describes which side of the scale the memory model consists of, large address spaces, or small ones. Or let the guts of the compiler track the types of optimization it does like auto-vectorization and a loop unrolling depth, and if it does a certain combination of optimization then it can tag the function to automatically be restricted/enabled for candidate use in DirectCompute and AMP'd.
Can't wait for the day to come when the compiler will actually be able to infer the dial for both the architecture and the dial for memory model back and fourth on a per-function basis in the end and all linked together for a real masterpiece of a binary based on code keywords or code decorations or declarations or pragmas or even the compilers auto-detection of valid optimization during compilation. This may actually bear fruit where the past research didn't succeed from lack of knowledge or resources unlike now when the timing is right.
Maybe "restrict (vector_unit)" would be a more general and less product advertising keyword to use instead of "direct3d". even if it 95% relies on the DX11 DirectCompute stuff since generality = love just as much as an open standard = love.
Awesome, these sort of tools are the kind of things which warm my heart. Instead of MS always trying to cause PR for its own benefit and its own language (C#), its back to being true and being "for the users" similar to how Bill used to describe how he wanted to empower us to customize the computer even if we had to program it.
I loved the general dependency graphs for C++ at last, twas very nice.
Adding that unit test was horribly wonky though..... have it automated more with a direct right-click on a .cpp source file with allowance of using check-boxes to determine how the VS template stamps out the initialization of each functions test case which we can fill the meat assertions later.
Just to let you know, there IS a solution to destroy IE6 off the face off this planet as long as it has an internet connection and has an update mechanism working. IE9 MUST be backported to windows XP and forced into using software rendering.... screw the new DirectX API's :/ If IE9 can render in software the IE team need to take the stick out of their asses, stop rushing to IE10 so damn fast, and actually do something even I'd send them a cake for doing.
The amount of IE6 uses = lower than average IQ Windows XP users. And IE6 will NOT go away until Windows XP has a backdoor out of IE6. Wether by service pack or by a amazing ultra security update patch which makes the Actual interet be used by IE9 whilst the XP OS simply uses the IE6 for the normal integration it always had.
A fairly big job, but this is one way Microsoft can actually do the internet a favour instead of accidentally causing it harm.
NOTE: I DO NOT use XP anymore but I do know many people who do..... and the answer is simple, MS must offer an upgrade path on XP from IE6 to IE9+software rendering only. Weigh the pros+cons of the compromise of having IE9+software rendering VS the hell and pain IE6 is causing while it stays alive. Microsoft made IE6 and WinXP, you should at least take responsibility for your creation so it doesn't hold the rest of the "modern" web back.
Feel free to criticize but I swear this is the simple obvious solution I would even donate extra pocket change to Microsoft to do...
Typed ASM should stay a research exercise.... Charles you usually over-hype this typed ASM for maybe for how cool it sounds. I don't think TAL is really a useful or productive mechanism in most ways/shapes/forms for the sum of these parts don't make a greater whole. And I usually love cutting-edge research projects which try something new, but verification should stay up in a higher level.
It would make more sense of have Intel and AMD make type-system's with API's and CPU flags which can allow the CPU itself to "type-check" the machine code jammed down it's pipeline. But for ASM source code to have that sort of overhead in the general case is complete overkill... I think It's easier to have comments left in the ASM source and just as good to have signed and checksummed binaries which are verified by vendors and enthusiasts like me. Malicious coders will fake type safety just as easily if required since security can always be broken, I'd argue that it's even more fragile down there since there's less layers and encapsulation to prevent incorrect code from trying to run when it does happen.
The ONLY way that a typed ASM may be used I can think of is to reverse engineer binaries into whatever source code language you want as long as it is strongly typed. Instead of just reverse engineering the binary into the original source code language for it to have actual meaning.
Verve would undoubtedly benefit from this sort of work and for projects similar to Verve, but its application is way too small for this type of research to benefit anything but a statically verifiable kernel and theorem provers.
Continue the good work but I hope Hawblitzel moves on to even more interesting and beneficial research areas instead of focusing on this particular domain too long unless this exact domain is his passion, in this case hell, take my words as a grain of salt, I'll never suggest a true researcher to research anything but what he/she loves.
Personally I consider that the classical algorithm evolved into a higher order algorithm called a design pattern, which utilizes multiple algorithms together which itself doesn't have a bounded time but makes use of algorithms which do execute in bounded time.
It was sort of funny how Bart & Wes were trying to specialize the general semantics to fit modern practice and machine architecture so they could connect it with classical computer science. But this is basically just explaining how computer science evolved and the algorithm can be formally defined, even though we just have basic common knowledge of this if we program, but as this lecture shows, the math and science and formal explanation shows how computing can indeed be complex and its great that we can abstract away the need for knowing all this to create a massive learning curve.
@ivan_ I've understood the meaning of "crash" to be interchangeable with "fail". So things fail and don't work which implies a crash to happen and being invalid. But that is just my understanding and not his formal explanation on the subject.
Async integrated into PLINQ sounds like it would be pretty fun to implement and overly powerful in use
Lucien also does pretty well at being able to speak to "us" through you+camera with you as a catalyst with questions.
Anders/Mads arent so fun to talk to recently since they are only about high level features, or a sneek peak into what is in the works which is ok but not my cup of tea, unless they gave funny corner-case code samples on the whiteboard. So personally I love the nitty-gritty details of this sort from who implemented and designed the compiler code rewriting/restructuring techniques just before code generation.
@Herbous lol you are one demanding mofo arent you? Some things in this world hold enough entropy their chaos and preset path overwhelms their logical order and its our job as humans with brains to decipher ambiguity.
@Charles & @RobertL that "Don't talk about Microsoft, talk about the work we do, because we do great work." was really well said, and is almost valuable to mention before all recordings to the people on camera just to "inspire" and keep the talk technically focused if its mentioned or used as a friendly reminder before interviews just to see how it is reacted upon.
I as well started with BASIC but I hated it so badly I quit programming for ~4 years untiul I learnt C++ as my 1st loved language.
Lately I've been having a sudden urge to use natural language processing used in auto-correction to fix errors as you type and apply it to source code so that its can auto-fix bugs and errors using behavioral constraints. Oh yes, self-correcting code But I agree that having it "correct" it for you as you type would be horrible, so to clarify I mean a "natural language processing contextual post-processor engine/plugin" which can go over the pre-processed code and have it see what you meant to code based on what you're doing inclusive of scope. Never mind code contracts, or limiting the rules of execution, this is using our processing power to save programmer time and save bug bucks preventing major code errors only this sort of analysis could detect.
Consider this version#1 as a post-processor that logs all the illogical errors and lets you know what it thinks is a bug instead of auto-correcting it in the early life of this tool. That is until it becomes so smart it COULD auto-correct a few versions down the road This is indeed theory and just an idea, but if implemented I think it would be a major evolution in our field of software engineering.
STL: To zoom into those dialogs you can press the Windows Key + "+" to zoom in on the screen using software zooming, it's a Win7 feature not many people use but could be useful if u remember it and even a few of the Windows key + # shortcuts in the future like opening that console after breakpoints as long as its <10 icons in the taskbar.
OMG... /d1reportSingleClassLayout* is just awesome I feel like a newb again looking at some of my whacky class datastructure diagrams from older code That is officially awesome++. I also think that undname is pretty usefull too, sometimes mangled names arent so easy to decipher on 1st glance to me, especially looking at video convertters and filesystem structs where their... enormous. You should probly update it though for not needing the "> >" template space like at the end like what it used to require.
Liked this video more than the others because "undocumented feature examples" are valuable when their this usefull, since I tend to always optimize beyond Debug level help and have always needed to just picture it in my brain which isnt so hard but using this just makes it easy enough a 4th grader could grok