• schmitter (unregistered)

By law, every installer should include a game.

• Heh (unregistered)

Normally, this would be a frist comment, but I hate those, so it isn't.

• eVil (unregistered) in reply to schmitter
schmitter:
By law, every installer should include a game.

Most of them do. Its called "Guess how long it takes for the bar to go from empty to full".

This game becomes similar to the halting problem when installing anything enterprisey.

• (cs)

Isn't that a similar problem to http://projecteuler.net/index.php?section=problems&id=331 ?

• Wodoo (unregistered)

"(it includes an .exe, too)"

It should say: "(it does NOT include an .exe)" =P

• NyuSan (unregistered)

Solving it is rather trivial once you reduce to linear algebra. With a little more work, you can get a minimal solution (least possible number of cases flipped). The solution I have in mind even generalises to games where the topology isn't a grid (ex. with hexagonal cases).

Hint: Actions over the board (flipping a case) are associative and commutative.

• Slicerwizard (unregistered)

You might want to fix those bogus != operators.

• Jupiter (unregistered)

Alex you cheat!

• Careful (unregistered)

By Law you must pay the patent holder of the game in an installer patent, that's why you don't see it. In the mid 90's they were everywhere and then one company started suing for licensing fees and one.

• Patrick (unregistered)

A cleaner way to toggle a bool, especially an array with arithmetic in its indexer, is

`LIGHT_ARY[index + GRID_SIZE] ^= true`

• (cs) in reply to Careful
Careful:
By Law you must pay the patent holder of the game in an installer patent, that's why you don't see it. In the mid 90's they were everywhere and then one company started suing for licensing fees and one.
Well, don't just leave me hanging... And one what?!
• Customer Support (unregistered)

Thanks for this... really, thanks... I can just picture my first support call next week...

Customer: I'm trying to install some new software Me: Okay, yes... Customer: And the installer is running, and it's got all these buttons on it Me: I see, what's the problem Customer: Well, whenever I click one of the buttons to turn it off, a bunch of others turn on Me: Huh, that's odd... what do the buttons say Customer: Nothing, they're blank Me: So... why are you pressing them? Customer: Umm... can't you just come and have a look? Me: Alright, give me a few minutes ... ... ... Two hours later Me (for the 1000th time): No, that's the point... it's a logical puzzle, you have to pick the right button to press to turn them off. No, it's not a bug. No, I can't write to the developer to get them to fix it. No, your computer's not broken... What do you mean, you've never heard of puzzles?

Captcha: Genitus - A disease my customers defiantly don't have

• Ken B. (unregistered)

Is it me, or does the ToggleLight() function not toggle the button you clicked?

• Ken B. (unregistered) in reply to C-Octothorpe
C-Octothorpe:
Careful:
By Law you must pay the patent holder of the game in an installer patent, that's why you don't see it. In the mid 90's they were everywhere and then one company started suing for licensing fees and one.
Well, don't just leave me hanging... And one what?!
It's just "one". They had an excess of zeros, and felt that, in addition to the license fees, you needed to give them a one as well.
• (cs)

A nice example of the "Integration of Concerns" anti-pattern.

Multitasking work environments have been common on computers for 25 years or more, and reliable ones for at least 10. If the person doing the install is interested in playing a game, they will launch a separate game program!

This is how cruft happens.

• (cs) in reply to eVil
eVil:
schmitter:
By law, every installer should include a game.

Most of them do. Its called "Guess how long it takes for the bar to go from empty to full".

This game becomes similar to the halting problem when installing anything enterprisey.

Super fun plus best humour!

• trtrwtf (unregistered) in reply to schmitter
schmitter:
By law, every installer should include a game.

And the installer should not complete until you win the game, or solve the puzzle.

That way you reduce the set of users to those capable of solving a moderately complex mathematical problem, which might make your life easier later on.

• (cs) in reply to schmitter
schmitter:
By law, every installer should include a game.
My favourite installer game is "Did I crash or am I still installing". I find that SQL Server 2008 and VS2005 installers are the best at this game.
• Henning Makholm (unregistered)

Column-major order? Come on, that's just sick.

• (cs) in reply to Patrick
Patrick:
A cleaner way to toggle a bool, especially an array with arithmetic in its indexer, is
`LIGHT_ARY[index + GRID_SIZE] ^= true`

Is ^ defined for bools?

Here's a another clean way:

```void toggle(bool &b) { b = !b; }
...
toggle(LIGHT_ARY[index + GRID_SIZE]);
```
• (cs)

In case it is too easy, here is the overly generalized version that fits all possible variants of the puzzle.

There is a set of N items. Each item can be in one state. There is a set of operations that you can perform that changes the state of some items, possibly depending on the state of some items (may include the first set of "some items"). Find the shortest sequence of operations to reach a target state.

• (cs) in reply to trtrwtf
trtrwtf:
schmitter:
By law, every installer should include a game.

And the installer should not complete until you win the game, or solve the puzzle.

That way you reduce the set of users to those capable of solving a moderately complex mathematical problem, which might make your life easier later on.

+1 ^^^ this ^^^

• (cs)

well, i guess i wont be getting any actual work done for the next few hours

• mcv (unregistered) in reply to schmitter
schmitter:
By law, every installer should include a game.
More importantly, so many games nowadays take ages to start up. I wouldn't mind all the loading screens and diversionary movies to be replaced with cool little logical games like these.

Xzibit would probably have a fit, though.

• (cs) in reply to eVil
eVil:
schmitter:
By law, every installer should include a game.

Most of them do. Its called "Guess how long it takes for the bar to go from empty to full".

This game becomes similar to the halting problem when installing anything enterprisey.

Argh! I'm so sick of people invoking the Halting Problem when talking about progress bars. The Halting Problem only applies to Turing-complete systems that are capable of getting into an infinite loop. An installer, or anything else that you would (reasonably) want to use a progress bar for, is by definition a linear task that always halts, either by completing, being canceled, or aborting on an error. Invoking the Halting Problem here is just technobabble, usually used to try to hand-wave the fact that whoever wrote the progress code is incompetent.

• trtrwtf (unregistered) in reply to Mason Wheeler
Mason Wheeler:
eVil:
schmitter:
By law, every installer should include a game.

Most of them do. Its called "Guess how long it takes for the bar to go from empty to full".

This game becomes similar to the halting problem when installing anything enterprisey.

Argh! I'm so sick of people invoking the Halting Problem when talking about progress bars. The Halting Problem only applies to Turing-complete systems that are capable of getting into an infinite loop. An installer, or anything else that you would (reasonably) want to use a progress bar for, is by definition a linear task that always halts, either by completing, being canceled, or aborting on an error. Invoking the Halting Problem here is just technobabble, usually used to try to hand-wave the fact that whoever wrote the progress code is incompetent.

An installer can't get into a loop? What kind of incompetent morons have you been working with? Any competent moron can turn a simple installer into a loop without thinking about it - which is how your competent moron does anything.

• Jay (unregistered) in reply to Mason Wheeler
Mason Wheeler:
eVil:
schmitter:
By law, every installer should include a game.

Most of them do. Its called "Guess how long it takes for the bar to go from empty to full".

This game becomes similar to the halting problem when installing anything enterprisey.

Argh! I'm so sick of people invoking the Halting Problem when talking about progress bars. The Halting Problem only applies to Turing-complete systems that are capable of getting into an infinite loop. An installer, or anything else that you would (reasonably) want to use a progress bar for, is by definition a linear task that always halts, either by completing, being canceled, or aborting on an error. Invoking the Halting Problem here is just technobabble, usually used to try to hand-wave the fact that whoever wrote the progress code is incompetent.

Please take a valium and call me after you've Googled the word "joke".

• Ed (unregistered) in reply to eVil

Combine with "Guess how many times the bar will go from empty to full" for twice the fun.

• Hating Mason right now (unregistered) in reply to Mason Wheeler
Mason Wheeler:
eVil:
schmitter:
By law, every installer should include a game.

Most of them do. Its called "Guess how long it takes for the bar to go from empty to full".

This game becomes similar to the halting problem when installing anything enterprisey.

Argh! I'm so sick of people invoking the Halting Problem when talking about progress bars. The Halting Problem only applies to Turing-complete systems that are capable of getting into an infinite loop. An installer, or anything else that you would (reasonably) want to use a progress bar for, is by definition a linear task that always halts, either by completing, being canceled, or aborting on an error. Invoking the Halting Problem here is just technobabble, usually used to try to hand-wave the fact that whoever wrote the progress code is incompetent.

Argh! I'm so sick of the aspies that remember (and not so kindly point out) every detail of deep and technical subjects and yet can't handle simple social behavior like humor, irony, or just get the joke and shut the f up.

• Chock Full O' Angry Hating (unregistered) in reply to Hating Mason right now
Hating Mason right now:
Argh! I'm *so* sick of the aspies that remember (and not so kindly point out) every detail of deep and technical subjects and yet can't handle simple social behavior like humor, irony, or just get the joke and shut the f up.

And I'm SO sick of people who feel the need to curse, but not really.

"Shut the f up"? Would that be, maybe "fuck", that you meant to say? Why don't you just say "shut the fuck up"? Do you think anyone reads that and says "gosh, I would have been offended if he'd said "fuck", but since he just made me reconstruct the word in my mind, I guess it's okay"? God damn you to hell and zuneisis, you fucking moron, and your whole family too.

• (cs) in reply to C-Octothorpe
C-Octothorpe:
schmitter:
By law, every installer should include a game.
My favourite installer game is "Did I crash or am I still installing". I find that SQL Server 2008 and VS2005 installers are the best at this game.

another such one is the bootable usb installer for ubuntu. it stalls multiple times for up to an hour, and you can't quit out of it.

• zuneisis (unregistered) in reply to Chock Full O' Angry Hating
Chock Full O' Angry Hating:
Hating Mason right now:
Argh! I'm *so* sick of the aspies that remember (and not so kindly point out) every detail of deep and technical subjects and yet can't handle simple social behavior like humor, irony, or just get the joke and shut the f up.

And I'm SO sick of people who feel the need to curse, but not really.

"Shut the f up"? Would that be, maybe "fuck", that you meant to say? Why don't you just say "shut the fuck up"? Do you think anyone reads that and says "gosh, I would have been offended if he'd said "fuck", but since he just made me reconstruct the word in my mind, I guess it's okay"? God damn you to hell and zuneisis, you fucking moron, and your whole family too.

God damn him to me, you say?

Spending a night in my dungeon will feel like heaven and hell at the same time.

P.S. You have such a dirty mouth, I love it.

• Spelling Nazi (unregistered) in reply to Careful

I think one company started suing for licensing fees and two.

• zuneisis (unregistered) in reply to Chock Full O' Angry Hating
Chock Full O' Angry Hating:
God damn you to hell and zuneisis, you fucking moron, and your whole family too.

zuneisis - fun for the hole family

• Spelling Nazi 3 (unregistered) in reply to Careful
Careful:
By Law you must pay the patent holder of the game in an installer patent, that's why you don't see it. In the mid 90's they were everywhere and then one company started suing for licensing fees and one.

And then one company started suing for licensing fees and three.

• Clayton (unregistered) in reply to eVil

I believe someone has a patent on this.

(Okay, something similar: minigames on loading screens - http://arstechnica.com/gaming/news/2008/03/patents-on-video-game-mechanics-may-strangle-innovation.ars)

• trtrwtf (unregistered) in reply to Steeldragon
Steeldragon:
C-Octothorpe:
schmitter:
By law, every installer should include a game.
My favourite installer game is "Did I crash or am I still installing". I find that SQL Server 2008 and VS2005 installers are the best at this game.

another such one is the bootable usb installer for ubuntu. it stalls multiple times for up to an hour, and you can't quit out of it.

My Windows machine (work machine, they make me use it...) is sort of like this, except with starting up, not with installing anything. The worst is that after it starts up, it still decides to hang periodically when doing something complex, like, say, loading a web page or something.

• meh (unregistered) in reply to NyuSan
NyuSan:
Hint: Actions over the board (flipping a case) are associative and commutative.

And involutary. But I wonder if you considered this: not all initial board configurations are solvable. As a trivial example, consider a 1x2 board that starts with one cell on and one cell off.

• (cs) in reply to trtrwtf
trtrwtf:
Steeldragon:
C-Octothorpe:
schmitter:
By law, every installer should include a game.
My favourite installer game is "Did I crash or am I still installing". I find that SQL Server 2008 and VS2005 installers are the best at this game.

another such one is the bootable usb installer for ubuntu. it stalls multiple times for up to an hour, and you can't quit out of it.

My Windows machine (work machine, they make me use it...) is sort of like this, except with starting up, not with installing anything. The worst is that after it starts up, it still decides to hang periodically when doing something complex, like, say, loading a web page or something.

One thing I noticed with Ubuntu was that when it finally loaded, it was done; that's it, you can use it... Windows fucking lies to you. It gives you control (well, the cursor works, right) to do whatever, but it's still loading crap in the background for another minute (or 10 depending on machine, setup, etc.). Just let me know when you're really done. Don't give me a really slow and unresponsive UI and pretend to be done when you're not...

/rant

• trtrwtf (unregistered) in reply to C-Octothorpe
C-Octothorpe:
One thing I noticed with Ubuntu was that when it finally loaded, it was done; that's it, you can use it... Windows fucking lies to you. It gives you control (well, the cursor works, right) to do whatever, but it's still loading crap in the background for another minute (or 10 depending on machine, setup, etc.). Just let me know when you're *really* done. Don't give me a really slow and unresponsive UI and pretend to be done when you're not...

/rant

Yeah, then pile on the security crap that runs in the background all the time on a locked-down machine, and the habit of getting updates at 10 AM on a Thursday - trying to work? Never mind that! - and you're in a new and wonderous sort of hell. Trying to insert a graphic in a file? Oh, okay, that's a good idea. Why don't you go have a cigarette while I open a file browser. Better have two, it'll take a while.

Hate hate hate hate.

• joe (unregistered)

System.IndexOutOfRangeException: Array index is out of range. at System.Windows.Forms.LinkLabel.OnLostFocus (System.EventArgs e) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control.WmKillFocus (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Label.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.LinkLabel.WndProc (System.Windows.Forms.Message& msg) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0 System.ObjectDisposedException: The object was used after being disposed. at System.Windows.Forms.Control.CreateHandle () [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control.get_Handle () [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:get_Handle () at System.Windows.Forms.Control.set_Capture (Boolean value) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control.set_InternalCapture (Boolean value) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control.WmLButtonDown (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.ButtonBase.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0

• Joe (unregistered) in reply to trtrwtf
trtrwtf:
Mason Wheeler:
eVil:
schmitter:
By law, every installer should include a game.

Most of them do. Its called "Guess how long it takes for the bar to go from empty to full".

This game becomes similar to the halting problem when installing anything enterprisey.

Argh! I'm so sick of people invoking the Halting Problem when talking about progress bars. The Halting Problem only applies to Turing-complete systems that are capable of getting into an infinite loop. An installer, or anything else that you would (reasonably) want to use a progress bar for, is by definition a linear task that always halts, either by completing, being canceled, or aborting on an error. Invoking the Halting Problem here is just technobabble, usually used to try to hand-wave the fact that whoever wrote the progress code is incompetent.

An installer can't get into a loop? What kind of incompetent morons have you been working with? Any competent moron can turn a simple installer into a loop without thinking about it - which is how your competent moron does anything.

It can only get into a loop if you need to update the update installer to install the install updater.

--Joe

• (cs) in reply to Joe
Joe:
It can only get into a loop if you need to update the update installer to install the install updater.

--Joe

Yo dog, etc.

• Krenn (unregistered) in reply to trtrwtf

My favorite is the genius of scheduling the defrag and the full virus scan to run at the same time.

Yeah, mistar cleverpants, you scheduled it to run at 3 AM. Guess what - 7x24 teams are working at 3 AM, and usually with skeleton crews.

• mistar cleverpants (unregistered) in reply to Krenn
Krenn:
My favorite is the genius of scheduling the defrag and the full virus scan to run at the same time.

Yeah, mistar cleverpants, you scheduled it to run at 3 AM. Guess what - 7x24 teams are working at 3 AM, and usually with skeleton crews.

What do I care? It's not affecting me...

• (cs) in reply to C-Octothorpe
C-Octothorpe:
trtrwtf:
Steeldragon:
C-Octothorpe:
schmitter:
By law, every installer should include a game.
My favourite installer game is "Did I crash or am I still installing". I find that SQL Server 2008 and VS2005 installers are the best at this game.

another such one is the bootable usb installer for ubuntu. it stalls multiple times for up to an hour, and you can't quit out of it.

My Windows machine (work machine, they make me use it...) is sort of like this, except with starting up, not with installing anything. The worst is that after it starts up, it still decides to hang periodically when doing something complex, like, say, loading a web page or something.

One thing I noticed with Ubuntu was that when it finally loaded, it was done; that's it, you can use it... Windows fucking lies to you. It gives you control (well, the cursor works, right) to do whatever, but it's still loading crap in the background for another minute (or 10 depending on machine, setup, etc.). Just let me know when you're really done. Don't give me a really slow and unresponsive UI and pretend to be done when you're not...

/rant

Yet at the same time, if the situation was reversed you would be banging on about how great Ubuntu is how it let you get control of each item as it became available, whereas Windows treated you like a baby and only let you do things once it was ALL setup, even though some things were ready much earlier.

• (cs) in reply to The Enterpriser
The Enterpriser:
Yet at the same time, if the situation was reversed you would be banging on about how great Ubuntu is how it let you get control of each item as it became available, whereas Windows treated you like a baby and only let you do things once it was ALL setup, even though some things were ready much earlier.
Don't get me wrong, I'm a Windows fan (I occasionally use Ubuntu), but that has always pissed me off. Even if some things are "ready" as you put it, doesn't mean you can actually use them because 142% of the CPU is still be munged because it's loading other stuff. It's not a boo windows, yay linux comment, more of a UI WTF... Wouldn't you, as a user, be pissed off if the "Loading" screen on your favourite app closed (went to 100%) but you still weren't able to use anything for at least another minute? This could occur on any OS.
• (cs) in reply to C-Octothorpe
C-Octothorpe:
The Enterpriser:
Yet at the same time, if the situation was reversed you would be banging on about how great Ubuntu is how it let you get control of each item as it became available, whereas Windows treated you like a baby and only let you do things once it was ALL setup, even though some things were ready much earlier.
Don't get me wrong, I'm a Windows fan (I occasionally use Ubuntu), but that has always pissed me off. Even if some things are "ready" as you put it, doesn't mean you can actually use them because 142% of the CPU is still be munged because it's loading other stuff. It's not a boo windows, yay linux comment, more of a UI WTF... Wouldn't you, as a user, be pissed off if the "Loading" screen on your favourite app closed (went to 100%) but you still weren't able to use anything for at least another minute? This could occur on any OS.

I guess I misread your sentiment as I had thought it was a mindless Linux > * comment which now appears to be wrong.

If you want to wait until it's all ready, can't you just... wait? It sounds like the problem is lack of feedback indicating when it is all finished rather than the option to do things before this point.

• (cs) in reply to The Enterpriser
The Enterpriser:
Yet at the same time, if the situation was reversed you would be banging on about how great Ubuntu is how it let you get control of each item as it became available, whereas Windows treated you like a baby and only let you do things once it was ALL setup, even though some things were ready much earlier.
Yes, surely it isn't presumptuous to presume how a person would behave in a separate, hypothetical situation.
• (cs) in reply to The Enterpriser
The Enterpriser:
If you want to wait until it's all ready, can't you just... wait?
What, with my level of ADD? Are you kidding?! ;P