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.
 
  • Locked thread
echinopsis
Apr 13, 2004

by Fluffdaddy

Tiny Bug Child posted:

raymond chen makes me appreciate apple that much more because they don't humor all that dumb backwards compatibility stuff

apple macs can't even use apps from 1982. fuckin bullshit

*has osx*

*runs recent software*

Adbot
ADBOT LOVES YOU

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!
here we see the fight for dangerous settings and the phrasing of warnings: http://blogs.msdn.com/b/oldnewthing/archive/2013/04/16/10411267.aspx

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!
also, here is my favorite article to send people when they insisit on using window 95 style themes because they think aero is killing their processor: http://blogs.msdn.com/b/oldnewthing/archive/2013/03/27/10405554.aspx

power botton
Nov 2, 2011

echinopsis posted:

apple macs can't even use apps from 1982. fuckin bullshit

*has osx*

*runs recent software*

actually they can thanks to the power of bsd

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

A Wheezy Steampunk posted:

also, here is my favorite article to send people when they insisit on using window 95 style themes because they think aero is killing their processor: http://blogs.msdn.com/b/oldnewthing/archive/2013/03/27/10405554.aspx

lol @ the comments doing exactly what the article is making fun of

Cold on a Cob
Feb 6, 2006

i've seen so much, i'm going blind
and i'm brain dead virtually

College Slice

A Wheezy Steampunk posted:

also, here is my favorite article to send people when they insisit on using window 95 style themes because they think aero is killing their processor: http://blogs.msdn.com/b/oldnewthing/archive/2013/03/27/10405554.aspx

i had a really old thinkpad with really crappy integrated video and turning off a lot of visual effects in windows 7 and visual studio 2010 really did speed a lot of things up noticeably

but yeah if you have even a half decent discrete video or even a modern integrated one then i guess he's right

~Coxy
Dec 9, 2003

R.I.P. Inter-OS Sass - b.2000AD d.2003AD

A Wheezy Steampunk posted:

also, here is my favorite article to send people when they insisit on using window 95 style themes because they think aero is killing their processor: http://blogs.msdn.com/b/oldnewthing/archive/2013/03/27/10405554.aspx

it's cause win7 glass theme is loving atrocious not because it makes it any faster

maniacdevnull
Apr 18, 2007

FOUR CUBIC FRAMES
DISPROVES SOFT G GOD
YOU ARE EDUCATED STUPID

~Coxy posted:

it's cause win7 glass theme is loving atrocious not because it makes it any faster

Actually it's great. Sorry about your failintosh fail aids.

Valeyard
Mar 30, 2012


Grimey Drawer

maniacdevnull posted:

Actually it's great. Sorry about your failintosh fail aids.

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!
here's a technical article that i don't understand:

If you look at the disassembly of functions inside Windows DLLs, you'll find that they begin with the seemingly pointless instruction MOV EDI, EDI. This instruction copies a register to itself and updates no flags; it is completely meaningless. So why is it there?

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
Nifty

Sweevo
Nov 8, 2007

i sometimes throw cables away

i mean straight into the bin without spending 10+ years in the box of might-come-in-handy-someday first

im a fucking monster


it's to allow on-the-fly patching of DLL functions.

It uses MOV EDI,EDI because that instruction does nothing, but can later be replaced with a jump instruction pointing to the patched version of the code. It has to be MOV EDI,EDI (or any other two byte do-nothing instruction) because a jump instruction needs two bytes. if you'd used two single byte NOPs then there's a change that a task could execute the first NOP, then the patch is installed, then the task tries to execute the second NOP, but it's now been replaced with the second byte of a jump instruction, so the task would fetch a byte from the middle of an instruction and try to execute it as as a valid instruction leading to unexpected results.

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!

Sweevo posted:

it's to allow on-the-fly patching of DLL functions.

It uses MOV EDI,EDI because that instruction does nothing, but can later be replaced with a jump instruction pointing to the patched version of the code. It has to be MOV EDI,EDI (or any other two byte do-nothing instruction) because a jump instruction needs two bytes. if you'd used two single byte NOPs then there's a change that a task could execute the first NOP, then the patch is installed, then the task tries to execute the second NOP, but it's now been replaced with the second byte of a jump instruction, so the task would fetch a byte from the middle of an instruction and try to execute it as as a valid instruction leading to unexpected results.

i mean i read the rest of the article too but i don't know what edi or nop means or why the second byte of a jump instruction would lead to unexpected results

Sweevo
Nov 8, 2007

i sometimes throw cables away

i mean straight into the bin without spending 10+ years in the box of might-come-in-handy-someday first

im a fucking monster

its assembly voodoo

Valeyard
Mar 30, 2012


Grimey Drawer

A Wheezy Steampunk posted:

i mean i read the rest of the article too but i don't know what edi or nop means or why the second byte of a jump instruction would lead to unexpected results

jump instructions need an additional byte to create the address you are jumping to, which is why they use dummy instructions with similar instruction structure to "reserve space" for a jump instruction to be added later

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

A Wheezy Steampunk posted:

i mean i read the rest of the article too but i don't know what edi or nop means or why the second byte of a jump instruction would lead to unexpected results

edi is a general purpose register

nop is a no-op or an operation that does nothing, which is actually really useful

an instruction is one or more bytes, and if it's more than one byte, the second byte of an instruction could also possibly be interpreted as its own instruction because they're just unstructured bytes

an ancient anti-disassembly trick is a two-byte instruction that jumps to halfway into itself, throwing off some disassemblers: you can read more about it in this definitely-legally-reproduced page from a no starch press book i found on a chinese university's website: http://staff.ustc.edu.cn/~bjhua/courses/security/2014/readings/anti-disas.pdf

to make a long story short: there's a useless instruction at the beginning of functions because it's better than having two useless instructions

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!

Cocoa Crispies posted:

edi is a general purpose register

nop is a no-op or an operation that does nothing, which is actually really useful

an instruction is one or more bytes, and if it's more than one byte, the second byte of an instruction could also possibly be interpreted as its own instruction because they're just unstructured bytes

an ancient anti-disassembly trick is a two-byte instruction that jumps to halfway into itself, throwing off some disassemblers: you can read more about it in this definitely-legally-reproduced page from a no starch press book i found on a chinese university's website: http://staff.ustc.edu.cn/~bjhua/courses/security/2014/readings/anti-disas.pdf

to make a long story short: there's a useless instruction at the beginning of functions because it's better than having two useless instructions

cool :tipshat:

Jabor
Jul 16, 2010

#1 Loser at SpaceChem

A Wheezy Steampunk posted:

i mean i read the rest of the article too but i don't know what edi or nop means or why the second byte of a jump instruction would lead to unexpected results

x86 instructions have the annoying property of not all of them being the same length. this also means that the same sequence of bytes can be totally different instructions depending on whether the stuff immediately before it is a full instruction, or just part of one. (it also means disassembling obfuscated x86 is obnoxiously Fun, since you need to work out exactly where jumps *in* to the bit of code you're looking at happen)

the reason they need to use a single two-byte no-op rather than two individual nops is that if you used two separate instructions, you might happen to overwrite the patch point right as the CPU was halfway between them. Then it would take the second half of the jump instruction (the part which overlaps with the second nop), try and treat it as the start of an instruction, and then basically all bets are off from that point.

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

hey did anyone explain the article yet

i'd like to show off that i know assembly

Heresiarch
Oct 6, 2005

Literature is not exhaustible, for the sufficient and simple reason that no single book is. A book is not an isolated being: it is a relationship, an axis of innumerable relationships.
knowing assembly is nothing to be proud of, it's a sign of poor life choices

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!
monday morning means time for some posts by raymond about windows pinball

What one Windows XP feature am I most proud of?

Why was Pinball removed from Windows Vista?

maniacdevnull
Apr 18, 2007

FOUR CUBIC FRAMES
DISPROVES SOFT G GOD
YOU ARE EDUCATED STUPID

One weird trick to reduce service ticket volume:
http://blogs.msdn.com/b/oldnewthing/archive/2015/06/16/10621828.aspx

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!
this isn't technically a raymond post but it's close enough in spirit: http://blogs.technet.com/b/exchange/archive/2004/04/08/109626.aspx

"So those 15,000,000 email messages collectively consumed 195,000,000,000 bytes of bandwidth. Yes, 195 gigabytes of bandwidth bouncing around between the email servers."

MrMoo
Sep 14, 2000

Some people have 40gb NICs, less than a minute of traffic.

Heresiarch
Oct 6, 2005

Literature is not exhaustible, for the sufficient and simple reason that no single book is. A book is not an isolated being: it is a relationship, an axis of innumerable relationships.

MrMoo posted:

Some people have 40gb NICs, less than a minute of traffic.

note the date on that article

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!

Heresiarch posted:

note the date on that article

and the story was old then, according to https://en.wikipedia.org/wiki/Email_storm it happened in 1997

Happy_Misanthrope
Aug 3, 2007

"I wanted to kill you, go to your funeral, and anyone who showed up to mourn you, I wanted to kill them too."

the chen posted:

Look at this way: Suppose you could somehow get this algorithm to run a quintillion times faster, so it finishes in under a year. Your output file is going to be 2¹²⁸ × 16 = 2¹³² bytes in size. That's around 10²⁷ terabytes. One terabyte of SSD storage weighs around 100 grams. The mass of the earth is 10²⁴ kilograms. Therefore, before you run this program, you will need to acquire 100 earth-sized planets and convert them all to SSDs.

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!
i think we can all related to people who ask for every possible piece of information so they can sort it out later: http://blogs.msdn.com/b/oldnewthing/archive/2012/02/02/10263027.aspx

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!
Why do operating system files still adhere to the old 8.3 naming convention?

George
Nov 27, 2004

No love for your made-up things.
oh nice like that tv show

Breakfast All Day
Oct 21, 2004

ohhhh so his name is actually ll cool ☺

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!

Breakfast All Day posted:

ohhhh so his name is actually ll cool ☺

lol

Twat le Piss
Aug 4, 2004

Grimey Drawer

Breakfast All Day posted:

ohhhh so his name is actually ll cool ☺

compuserved
Mar 20, 2006

Nap Ghost

Breakfast All Day posted:

ohhhh so his name is actually ll cool ☺

😈

PuTTY riot
Nov 16, 2002

Breakfast All Day posted:

ohhhh so his name is actually ll cool ☺

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!
Video drivers will do anything to outdo their competition. Everybody knows that they cheat benchmarks, for example. I remember one driver that ran the DirectX "3D Tunnel" demonstration program extremely fast, demonstrating how totally awesome their video card is. Except that if you renamed TUNNEL.EXE to FUNNEL.EXE, it ran slow again.

Just-In-Timeberlake
Aug 18, 2003

A time honored tradition that Samsung still adheres to in their phones

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!
My little project was an mp3 player for my laptop. Now, sure, we already have tons of mp3-playing apps out there, but mine was different: Mine was designed to be used on long driving trips.

The idea was that I could hook up a mouse to the laptop, put the laptop on the passenger seat, and leave the mouse on the center console. I would then use the mouse buttons and wheel to navigate my music collection. I forget exactly what I ended up doing, but it was something like

Left button click = select current item
Right button click = go up one level
Rotate wheel = scroll through current directory


lol

PuTTY riot
Nov 16, 2002

i loving love com objects

Adbot
ADBOT LOVES YOU

A Wheezy Steampunk
Jul 16, 2006

High School Grads Eligible!
So the DirectDraw folks changed the way they queried for driver capabilities. One of the developers went into his boss's office, took a network card, extracted the MAC address, and then smashed the card with a hammer.

  • Locked thread