Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Notorious b.s.d.
Jan 25, 2003

by Reene

i don't really believe anything i say in yospos. i also don't not believe it. it is neither truthful nor gimmick-ridden.

sincerity is a quantum state that collapses only when observed by a callout thread

Adbot
ADBOT LOVES YOU

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
why are you bothering to respond to suspicious dish

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av

Notorious b.s.d. posted:

windows 95 was a breathtaking accomplishment. i'm not sure if it was a good intake of breath, but it will certainly make your audience gasp. a pre-emptive multitasking 32 bit extension to windows... that will also run real-mode apps through voodoo that required talking to intel engineers

why talk to intel, they believed it was impossible, just like unreal mode. you were supposed to take the high road, and use v86 and/or software emulation, or better yet forget about real mode code at all (unlikely on the PC). but intel also wanted you to use callgates, shows how much they knew (even the politest, cleanest OSes used the much faster "int" trap instruction. the only use of callgates as a syscall mechanism I can remember is the SVR6 ABI, where _exit was specified as "push exit code to stack, put 1 in EAX, make a far call to 7:0". you can see this code in the _start stub of Solaris x86 executables, for example)

the PC platform did provide an escape hatch in the form of the keyboard controller: apparently, one of its many many many keyboard-unrelated functions was calling into real mode. but it was slow, orders of magnitude slower than crashing the CPU with a triple fault, milliseconds vs microseconds

far from an esoteric incantation, causing a triple-fault requires all of two instructions: one to set the interrupt table's physical address to 0FFFFFFFFh (MASM hexadecimal notation beyotch) and a trap. the CPU looks up the trap handler, and faults because the interrupt table is inaccessible (double fault). it tries to look up the handler for double faults, and faults again (triple fault, CPU reboots)

help I can't stop writing

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison
keep posting, this is like reading the autopsy report for an alien

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

you're the computer version of one of the judica-cordiglia brothers, i'm convinced

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av
I miss having spare time and a singular obsessive laser-like focus

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av

Otto Skorzeny posted:

you're the computer version of one of the judica-cordiglia brothers, i'm convinced

did you know they correctly guessed one of the NASA radio wavelengths from a photo of a space capsule that showed the antenna, using the people in the photo as size reference?

(just kill me now)

Scaevolus
Apr 16, 2007

Mr Dog posted:

regardless, it's not hard for linux to outpace nt given that linux has the fantastically enviable ability to completely rearchitect core system frameworks beyond recognition (albeit incrementally with mandatory stable interim forms), tell oems to get hosed if they have a problem with that, and actually get away with it. e.g. getting rid of the big kernel lock and using rcu everywhere instead. something like that inside nt would have resulted in windows being stillborn or bearing a 10 ton cross for the last decade (compare to python's gil)
network effects and commercial interests force legacy support and keep complexity from ever decreasing -- pain for all involved

the microsoft office binary file formats were written in a time when performance was everything and security was irrelevant. lots of savage optimizations, bitfields, pointers to other parts of the file, ad-hoc compression schemes, reading into constant sized buffers... parsed in a thousand different parts of the codebase -- a security nightmare. customers won't put up with "we're not opening .doc anymore", so a separate DLL "Office File Validation" was written to do a complete parse and sanity check of files before passing them to the morass of legacy code

and it mostly works! or at least, malware authors far prefer exploiting PDF compared to Office formats :toot:

Notorious b.s.d.
Jan 25, 2003

by Reene

Scaevolus posted:

network effects and commercial interests force legacy support and keep complexity from ever decreasing -- pain for all involved

the microsoft office binary file formats were written in a time when performance was everything and security was irrelevant. lots of savage optimizations, bitfields, pointers to other parts of the file, ad-hoc compression schemes, reading into constant sized buffers... parsed in a thousand different parts of the codebase -- a security nightmare. customers won't put up with "we're not opening .doc anymore", so a separate DLL "Office File Validation" was written to do a complete parse and sanity check of files before passing them to the morass of legacy code

and it mostly works! or at least, malware authors far prefer exploiting PDF compared to Office formats :toot:


The original office formats were written in an era when every format was specific to a single release and redone from scratch at will

One day an exec decided that the combination of backwards and forwards compatibility would be the big differentiator for word/excel/office. He was right and it was. Unfortunately he had this stroke of genius just after they finalized a format made up of memory dumps and OLE boiler plate.

Microsoft had a opportunity to fix this with the new ooxml formats and discovered that it was impossible to abandon the cruft but retain the ability to losslessly convert the old dump formats AND make a clean new format. Guess which they chose.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
that OLE boilerplate is an API, and lots of apps use it.

thankfully ms published the spec a few years ago

pseudorandom name
May 6, 2007

I thought triple fault back into real mode was a 286/Windows 2.0 era thing, and by the time Windows 95 rolled around they were running the BIOS and DOS device drivers in VM86 mode

I seem to recall a description of the Windows 95 IO stack starting out in 32-bit protected mode, switching to VM86 16-bit real mode (only if necessary), running through the hooked DOS interrupt handlers for drivers and TSRs in sequence and then hitting the last hook in the list which was registered by Windows itself so it could switch back into protected mode to complete the request

Shaggar
Apr 26, 2006

Notorious b.s.d. posted:

The original office formats were written in an era when every format was specific to a single release and redone from scratch at will

One day an exec decided that the combination of backwards and forwards compatibility would be the big differentiator for word/excel/office. He was right and it was. Unfortunately he had this stroke of genius just after they finalized a format made up of memory dumps and OLE boiler plate.

Microsoft had a opportunity to fix this with the new ooxml formats and discovered that it was impossible to abandon the cruft but retain the ability to losslessly convert the old dump formats AND make a clean new format. Guess which they chose.

after working with word openxml and the official .net openxml sdk for the last 2 weeks I have to say its really a fantastic format and incredibly easy to deal with. It would be super easy for them to make a .net only version of word that's completely free of the com poo poo, but they don't do it cause the first time someone tried to open a 97-2003 doc and it didn't work people would poo poo all over Microsoft for not maintaining 15+ years of backwards compatibility.

Notorious b.s.d.
Jan 25, 2003

by Reene

Shaggar posted:

after working with word openxml and the official .net openxml sdk for the last 2 weeks I have to say its really a fantastic format and incredibly easy to deal with. It would be super easy for them to make a .net only version of word that's completely free of the com poo poo, but they don't do it cause the first time someone tried to open a 97-2003 doc and it didn't work people would poo poo all over Microsoft for not maintaining 15+ years of backwards compatibility.

I don't doubt that the SDK is great. The format is really hosed up though. Boolean flags for "parse this footnote exactly like office 97."

In other words: easier than ever to parse , no improvement in rendering

Shaggar
Apr 26, 2006
so easier than ever for the hardest part, still works fine when people view it.

Shaggar
Apr 26, 2006
altho even that is for backwards compatibility. new docs wont have it and that's gonna be the majority of them moving forward.

MeruFM
Jul 27, 2010
boringest 5 pages yet

MeruFM
Jul 27, 2010
minus the crackposting

Notorious b.s.d.
Jan 25, 2003

by Reene

Shaggar posted:

so easier than ever for the hardest part, still works fine when people view it.

serialization was never the hard part in office compat

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av

Suspicious Dish posted:

that OLE boilerplate is an API, and lots of apps use it.

compound documents may look like innocent "OLE boilerplate", but they have some ominous roots. they were supposed to eventually become a built-in NT kernel thing as part of the Cairo "object-oriented OS" vaporware. there were syscall stubs for compound document I/O in Windows NT 4 (non-functional), and one of the first applications of "reparse points" (a generalization/overcomplication of symbolic links) in Windows 2000 was an implementation of compound documents where each stream was stored in a separate NTFS data stream, solving issues like stream fragmentation by lowering the abstraction layer a notch, but AFAIK it never survived the beta stage. the whole thing was mercifully forgotten in Windows XP and never seriously considered again

the only legacy of the "object filesystem" concept is the ability to set a globally unique id for a file (yeah, a GUID), and "globally" is not an overstatement: it can be used to track file moves across network drives. it's part of the mechanism the Win32 shell uses to update shortcut files when the target is moved. it's always enabled for local drives, and you enable it for network drives by enabling the "distributed link tracking" service. of course FAT doesn't implement it, duh. only NTFS disks and CIFS shares

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

hackbunny posted:

the whole thing was mercifully forgotten in Windows XP and never seriously considered again

until "winfs", ofc.

I don't understand this, though. The compound storage thing simply seemed to be a filesystem-in-a-file type thing...

what was this "object filesystem" and what did it store? What was the advantage over storing files in a filesystem?

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Notorious b.s.d. posted:

ne day an exec decided that the combination of backwards and forwards compatibility would be the big differentiator for word/excel/office. He was right and it was. Unfortunately he had this stroke of genius just after they finalized a format made up of memory dumps and OLE boiler plate.
no way man i've processed the word 97 format, it's all right and v. structured

note: my expectations for commercial file formats were set by doom WADs

Gazpacho fucked around with this message at 06:43 on Nov 27, 2013

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
fun fact: the office 97 formats are xzibit-compliant because each one is a modified FAT filesystem within the file

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
Nice!

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
fun fact

JewKiller 3000
Nov 28, 2006

by Lowtax

hackbunny posted:

did you know they correctly guessed one of the NASA radio wavelengths from a photo of a space capsule that showed the antenna, using the people in the photo as size reference?

(just kill me now)

we all want to hear more of your knowledge, because you're in a peculiar intersection of sets: you know system programming, and you know windows os apis, and you're totally spergin about them. everyone else here spent their sperg energy on linux, so a person who really KNOWS windows is like an alien life form

lol if you
Jun 29, 2004

I am going to remove your penis, in thin slices, like salami, just for starters.

Gazpacho posted:

it's an ok system but here's some facts that might make you tingle in other places

- the build system is practically tied to perforce, although a few projects do use svn. if direct use of dvcs with in the system is widespread now I would be very surprised because of the entrenches processes that would have to change to make that possible. also because of the general lack of interest in what's happening technologically outside amazon's walls

- there is this nice idea of distinguishing compatible and incompatible releases. however i never saw it used from where i sat, somewhere along the way the release number was locked in and the division just built every check-in as a compatible patch build. the build numbers were in the thousands.

- in practice i saw no release management that involved any kind of business decision making. anything devs checked in was assumed to be feature complete and ready for production, notwithstanding that there were no QA tools, processes, infrastructure, or time budget to check this. A release build was made every two weeks, there was a one-week waiting period for someone to realize they'd missed the window and back out their changes, and then it was deployed to the world

I am now using maven & bamboo and they do everything that was great about Amazon's system, are more flexible, and maven has the snapshot feature which was sorely lacking at Amazon. (If it had been available at Amazon it would have been either ignored or abused due to the absence of any conscious release management.)

perforce is cool

Impromptu Flip
Aug 30, 2008
paging shaggar. people have started paying me to write c# instead of java and so far it seems pretty nice. in the last couple of days i've been exploring wpf+xaml and the mvvm pattern. i've also been getting along with visual studio which does a good job of getting out of my way where eclipse always felt clunky. am i doing it right? is there anything i should read/use? work bought me a copy of wpf unleashed and it explains things fairly well so far; i've been filling in anything unclear with msdn

emoji
Jun 4, 2004

Impromptu Flip posted:

paging shaggar. people have started paying me to write c# instead of java and so far it seems pretty nice. in the last couple of days i've been exploring wpf+xaml and the mvvm pattern. i've also been getting along with visual studio which does a good job of getting out of my way where eclipse always felt clunky. am i doing it right? is there anything i should read/use? work bought me a copy of wpf unleashed and it explains things fairly well so far; i've been filling in anything unclear with msdn

just copy jon skeet's posts on SO

Shaggar
Apr 26, 2006

Impromptu Flip posted:

paging shaggar. people have started paying me to write c# instead of java and so far it seems pretty nice. in the last couple of days i've been exploring wpf+xaml and the mvvm pattern. i've also been getting along with visual studio which does a good job of getting out of my way where eclipse always felt clunky. am i doing it right? is there anything i should read/use? work bought me a copy of wpf unleashed and it explains things fairly well so far; i've been filling in anything unclear with msdn

That sounds right. Programming c# in visual studio has a really different feeling than eclipse. Lots of stuff works smoother, but you'll notice now and then that there are certain eclipse (or really java) features that vs doesn't have. The big one for me is maven. Nuget is like someone looked at maven and then decided to only duplicate the dependency management and poorly. VS intellisense is also pretty dumb and not anywhere near as smart as eclipse auto complete.

Othre than that its pretty great. Especially wpf/xaml. If you ever go back to doing ui in something else you will be constantly disappointed that you cant use xaml. Its literally the best ui framework there is and the culmination of all research and development done in programming for the last 50 years.

That kind of describes c# in general (aside from the glaring failure that is the lack of checked exceptions). Doing configuration via app.config or web.config is identical and easy. The official frameworks like wcf have fantastic extension points exactly where u want them. DateTime is sane.

Everything just mostly works.

also MSDN has been getting better and better. IDK if its to the point of the java standard lib docs yet, but it is very helpful.

prefect
Sep 11, 2001

No one, Woodhouse.
No one.




Dead Man’s Band

Shaggar posted:

That sounds right. Programming c# in visual studio has a really different feeling than eclipse. Lots of stuff works smoother, but you'll notice now and then that there are certain eclipse (or really java) features that vs doesn't have. The big one for me is maven. Nuget is like someone looked at maven and then decided to only duplicate the dependency management and poorly. VS intellisense is also pretty dumb and not anywhere near as smart as eclipse auto complete.

nuget will download missing packages for you, but it puts them right in the source tree instead of in a .m2-type directory, so if you "git clean -dxf" between builds, nuget's going to download that poo poo every time :smith:

Shaggar
Apr 26, 2006
don't use git. also why are you using command line tools instead of just telling vs to commit your changes and letting it properly omit binaries.

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Shaggar posted:

don't use git. also why are you using command line tools instead of just telling vs to commit your changes and letting it properly omit binaries.

tf source control is bad and git tf keeps me sane


working w/o local branches is being in the goddamn stone age

Malcolm XML
Aug 8, 2009

I always knew it would end like this.
TFS owns however, and u should have it since u can have it use git on the server too!!!!

prefect
Sep 11, 2001

No one, Woodhouse.
No one.




Dead Man’s Band

Shaggar posted:

don't use git. also why are you using command line tools instead of just telling vs to commit your changes and letting it properly omit binaries.

visual studio doesn't get installed on the build machines

Shaggar
Apr 26, 2006
use subversion if you don't have tfs. also local branches are dumb as poo poo cause they prevent source control and are only useful for 3rd worlders with no internet connections

Shaggar
Apr 26, 2006

prefect posted:

visual studio doesn't get installed on the build machines

oh i get what ur saying. u can create a local nuget repo for commonly used binaries that's sort of like .m2 and/or nexus. its still not optimal. man oh man maven is so good

Impromptu Flip
Aug 30, 2008

Shaggar posted:

VS intellisense is also pretty dumb and not anywhere near as smart as eclipse auto complete.

yeah i noticed having to scroll more to select options. also writing out something like a method call would let me jump to the end after filling out parameters in eclipse, but vs just sort of forgets about it. hopefully this gets better in the future

i like what i'm seeing so far. mvvm fits incredibly well into it & i was really impressed with how you can decouple the view entirely and just use data binding to a view model. also routed events are really well thought out. i was kind of surprised that msdn has been as useful as it has, i remember it being useless garbage tho that was a long time ago. it explains c# concepts quite well which is good because going into c# wpf and xaml at the same time is apparently a v. steep learning curve

thanks shaggar. what are your thoughts on underscore prefix for private fields

Shaggar
Apr 26, 2006
that's sort of the c# convention and i kind of like it cause they're impossible to confuse with properties which are UpperCamelCase. Generally speaking tho I almost never have private fields that aren't data provider objects

Impromptu Flip
Aug 30, 2008
yeah those fit together nicely, after seeing some code using it i was sold. also i almost forgot syntactic support for getters and setters even existed

Adbot
ADBOT LOVES YOU

Shaggar
Apr 26, 2006
properties are the c# feature i would like most in java.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply