Use one or the other consistently? But they don't mean the same thing.
They compile to the same thing if they are both used with the meaning "increment this thing by one". If they are used to mean "increment-then-evaluate" or "evaluate-then-increment", one may as well separate the increment from the evaluate because the combination only (maybe) makes it easier for the lexer/parser, not the next human assigned to maintain the code X years later.
I'm fine with "i += 1" or even "i = i + 1". If I want to increment, I increment; if I want to evaluate, I evaluate.
What do you think about intermediate variables that are not strictly necessary?
My general rules of thumb:
1) I don't care how many variables are declared, so long as each makes sense on its own. Like another poster's example, 'fullName' is perfectly acceptable (especially for i18n/l10n aware code that may have different rules for generating a name).
2) I ABSOLUTELY HATE clever arithmetic / pointer arithmetic / expressions all crunched into one line that can be split out. Example: in C-like languages that support pre- and post-increment, I expect the code to use only one or the other consistently, and never mix it with another expression. So this is fine:
i++; j = i + 4;...but this I can't stand:
j = ++i + 4;
#2 I picked up from a very experienced developer who pointed out that making the code harder to read is never worth it, the compiler produces the same code as the easy-to-read version. And that making code that looks 'too easy to be clever' is quite a bit harder than making code that looks 'too clever to always work'.
In continuing the treasonous policies of the prior administration, yes:
* Telecom immunity is a direct assault on the 4th Amendment.
* The "unitary executive" theory is a direct assault on the Constitution itself.
* Indefinite detention + torture is a direct assault on the American civilian population. (Yes, American citizens have been caught up in the War on Terra.)
This isn't "our predecessors did this bad stuff, and we're working to shut it down, just give us some more time."
This is "actually, we agree with the previous administration's policies and seek to expand them."
"But I've heard plenty of horror stories about Vista/7 from coworkers. (Primarily that even once the drivers are installed, the network is unreliable at best)."
Then the people you are working with are fucking idiots.
It sure sounds like you're asking for Linux, with these requests. Wouldn't it be easier to just use Linux? There are themes available that make the desktop look just like Windows.
I use Mac and Linux at home already. I'd like to use ReactOS or similar at work, where I need to be able to run vertical-market commercial apps that today only run on Windows. I can get there via virtualization, but that's still the same lipsticked pig that has its insecurities and built-in hostility to the end-user a.k.a. me.
"5) A registry that doesn't suck."
How would you do this? If you want a binary-database registry like Windows currently has, you're going to have the problems with it that Windows currently has. The alternative is text config files like Linux services, which have their own problems (mainly lack of standardization), and those wouldn't be a "registry". I suppose you could make a giant XML file for the registry instead of it being binary, but that seems like it'd have many of the same problems as the current registry.
The OSS world could try a lot of alternatives to the registry and see which one shakes out. Maybe something like a live/proc filesystem (/registry?) with an XML file store backend. We could try segregating it into pieces for the OS, subsystems, and individual applications. We could allow parts of it to be stored on the network and shared.
It would be really cool to have tripwire-like monitoring for registry changes with user-editable rules supported directly by the OS -- something you can only get now from intrusive anti-virus products. We could have application blacklists enforced by the OS that pull the lists from the net like ABP.
I think the general problem of "where do we put this config stuff" is tractable, but not by using an implementation like Microsoft's.
"3) Fixes to the Win32 API to allow things like updating the system without reboots, true virtual desktops, Unix filesystem support, and closing the bugs that let spyware hang around forever."
If you make a bunch of changes like this, and especially if you close these bugs, then wouldn't that ruin the backwards compatibility that's so important with Windows?
Some application surely would break; even on today's Windows fixing a Win32 bug often leads to "shims" for broken applications. But some of these bugs don't have to affect applications at all. Virtual desktops for instance only impacts explorer and the taskbar/systray; that could surely be supported without hurting other applications. The spyware bugs I'm talking about are the "two different ways to name a file" such that on some Windows systems it's impossible to delete those files; that too should be fixable.
"7) An update system that doesn't suck ("apt for Windows")."
I think this is pretty much impossible. The only reason apt works so well on Linux is because most of the software people use is FOSS, so distros keep compiled copies of it all in their repositories for their users.
I agree that re-packaging commercial applications isn't worth doing. But there's no reason we can't have OSS repositories and an apt-like installer, and it that could be right there on the Control Panel "Add/Remove Programs" / "Programs and Features" applet alongside the list of installed commercial applications and drivers. Plus a real package manager could keep track of which files in System32 belong to which packages and use something like Vista's SXS (but hopefully better) to ensure the commercial apps have the exact libraries they shipped with while the OSS apps have the latest and greatest shared libraries.
I think this project's going to flop (or languish in obscurity) for several reasons: 1) Not enough developers. MS has a giant army of developers working on Windows; how does he expect to come up with something fully compatible by himself, or with a few helpers. Sure, others might join in, but I seriously doubt it. If his project was so worthwhile, developers would have been working with him on ReactOS long ago, but they haven't.
Well, they have. ReactOS can boot on bare metal and run quite a few Windows programs. I think they've done a fantastic job so far. It's 80% there. Unfortunately that last 20% is really hard to get right.
2) It's a moving target. Windows is constantly changing, coming out with new releases that completely change things, etc. Other OSes, like Linux, don't have this problem: Linux only has to be compatible with itself (and backwards compatibility is not one of its strong points), but with Windows, backwards compatibility is paramount.
3) If you like Windows so much, why not just buy a copy of Windows (or download it from BitTorrent)? Why mess around with something that may or may not be compatible?
I would dearly love a Windows 2000/XP clone that had:
1) Better security and performance by NOT having extraneous MS-supplied crapware installed. I'm looking at: Messenger, IE, Outlook, and DRM.
2) More rapid response to security issues due to its OSS nature (see the other thread regarding IE).
3) Fixes to the Win32 API to allow things like updating the system without reboots, true virtual desktops, Unix filesystem support, and closing the bugs that let spyware hang around forever.
4) Better support for POSIX code; make it as easy to port to this OS as it is between Linux and Mac.
5) A registry that doesn't suck.
6) A command line that doesn't suck.
7) An update system that doesn't suck ("apt for Windows").
That kind of OS would let me run my expensive vertical-market stuff on a computer I could trust to be performant and safe.
I see you've never had a pre-386 class PC. PC XT's commonly ran DOS off a 5.25" floppy. If you weren't lucky enough to have a 10-30 MB hard drive (MFM or RLL: $300+), you'd switch floppies to launch games. POST would count memory up to 640K; most did not have realtime clocks so every file was dated Jan 1 1980. Dot-matrix printer, or maybe even daisy wheel. It got a little nicer with 286's. You might have a 40-80 MB IDE hard drive and RTC. Usually you had 1MB minimum memory, up to 16MB (which would cost more than the rest of the computer combined).
What you're talking about were the multimedia PC's that came out around 1990, typically 386 or 486 but sometimes 286.
What about shared libraries? Should those be duplicated everywhere?
What about differing versions of the same package? Should user X have the old version and user Y have the new version?
What if the user installs it and the admin installs it? Should the user's package have higher precedence (PATH, MANPATH, etc.) or the system-wide package?
A WinXP system is never just WinXP, it's also a boat load of crapware that the crapware authors have paid the manufacturer to bundle in. So ASUS is actually right in their math:
Option 1: Keep XP. No change in price.
Option 2: Refund XP: +$50. Also refund crapware: -$44. Net refund to user: $6.
As others pointed out, X% growth is mathematically exponential growth. But in answer to why it's impossible: available resources are finite. At some point we will run out of a critical something: land, minerals, surface area for solar power, fossil fuels, something.
The answer is "sustainable" economy, where the economic activity is focused only on replacements and improvements to existing things, and not massive production of new things. Analogy: our current exponential growth economy would choose to turn farmland into houses, while a sustainable economy would choose to rebuild abandoned houses into new houses. In the former case you sacrifice farmland, in the latter you don't; in both cases homeowners get new state-of-the-art houses.
Unfortunately a sustainable economy absolutely requires net zero global population growth. The only way to achieve that is mass use of contraception in its various forms, and the only to do that is to seriously undermine the power of organized religion on a global scale. I don't expect to see that in my lifetime.
I had an insight about this a year or two ago, one that I haven't seen addressed anywhere else - my friends who are liberals grew up, largely, in places where government works, while the conservatives grew up in places where it doesn't.
My version of that idea is that the American South functions like a Second World nation while the the American Coasts are First World nations. So you see Southerners voting to become like Mexico or Brazil with a teeny handful of the population owning everything and Westerners/Northerners voting to become more like "socialist" Europe with greater services and modest wealth redistribution.
What is this obsession with old or cheap crap hardware recently?
Some of that old hardware is very far from cheap. A 486, while slow, can be very reliable over the long haul. Most 486's didn't even need heat sinks, so no moving parts to fail.
As for the poster, I would suggest either a disk-based Debian woody install, puppy linux, DSL, or a Slackware install.
I expect that Opera 8+, IE 6+, Firefox 2+ and recent Safari/Konqueror/Epiphany are going to be able to visit www.anysite.örg and 'hide' the xn--etc- access details from you, the user.
They had better make that user configurable. I do not want to click on "https://paypal.com" and be silently redirected to "paypal.xn--w-h-a-t-ev-er" -- which would have a perfectly valid SSL cert -- instead.
however since this is no more secure than the original promise to repay
No, it's far more secure than the original promise. Student loans cannot be wiped out through bankruptcy, and wages will be garnished with government authority. The only avenues available for students not to pay are: 1) live on someone else's dime; 2) leave the country; 3) die of starvation.
in a country that's already socialist, with full corporate sponsorship.
You have the most amazing case of bipolar view I've ever seen. Make up your mind, please! Are you worried about socialism or capitalism? Most people agree these are nearly opposites.
Maybe he's a real leftist in the Gore Vidal sense who defines "corporate sponsorship" as what we have in the USA: government-backed socialism for the rich and dog-eat-dog capitalism for everyone else. Maybe he says we should move to a different plutocracy.
So, you wanna save the economy and get out of this depression? Kill the Pork.
Your pork is another citizen's investment for the future.
Use one or the other consistently? But they don't mean the same thing.
They compile to the same thing if they are both used with the meaning "increment this thing by one". If they are used to mean "increment-then-evaluate" or "evaluate-then-increment", one may as well separate the increment from the evaluate because the combination only (maybe) makes it easier for the lexer/parser, not the next human assigned to maintain the code X years later.
I'm fine with "i += 1" or even "i = i + 1". If I want to increment, I increment; if I want to evaluate, I evaluate.
What do you think about intermediate variables that are not strictly necessary?
My general rules of thumb:
1) I don't care how many variables are declared, so long as each makes sense on its own. Like another poster's example, 'fullName' is perfectly acceptable (especially for i18n/l10n aware code that may have different rules for generating a name).
2) I ABSOLUTELY HATE clever arithmetic / pointer arithmetic / expressions all crunched into one line that can be split out. Example: in C-like languages that support pre- and post-increment, I expect the code to use only one or the other consistently, and never mix it with another expression. So this is fine:
i++; ...but this I can't stand:
j = i + 4;
j = ++i + 4;
#2 I picked up from a very experienced developer who pointed out that making the code harder to read is never worth it, the compiler produces the same code as the easy-to-read version. And that making code that looks 'too easy to be clever' is quite a bit harder than making code that looks 'too clever to always work'.
Betrayal, yes... but treason?
In continuing the treasonous policies of the prior administration, yes:
* Telecom immunity is a direct assault on the 4th Amendment.
* The "unitary executive" theory is a direct assault on the Constitution itself.
* Indefinite detention + torture is a direct assault on the American civilian population. (Yes, American citizens have been caught up in the War on Terra.)
This isn't "our predecessors did this bad stuff, and we're working to shut it down, just give us some more time."
This is "actually, we agree with the previous administration's policies and seek to expand them."
So: treason.
At least this administration has yet to commit treason.
I voted for this administration, yet I think that it has indeed committed treason.
most of those "necessary" things weren't even invented until the last century or so, and society managed to work just fine without them.
Society might have worked fine, but I would have hated living in it. Especially if I was black, Asian, or below middle class (i.e. bottom 90%).
"But I've heard plenty of horror stories about Vista/7 from coworkers. (Primarily that even once the drivers are installed, the network is unreliable at best)."
Then the people you are working with are fucking idiots.
Yes, they should never have moved to Vista.
It sure sounds like you're asking for Linux, with these requests. Wouldn't it be easier to just use Linux? There are themes available that make the desktop look just like Windows.
I use Mac and Linux at home already. I'd like to use ReactOS or similar at work, where I need to be able to run vertical-market commercial apps that today only run on Windows. I can get there via virtualization, but that's still the same lipsticked pig that has its insecurities and built-in hostility to the end-user a.k.a. me.
"5) A registry that doesn't suck."
How would you do this? If you want a binary-database registry like Windows currently has, you're going to have the problems with it that Windows currently has. The alternative is text config files like Linux services, which have their own problems (mainly lack of standardization), and those wouldn't be a "registry". I suppose you could make a giant XML file for the registry instead of it being binary, but that seems like it'd have many of the same problems as the current registry.
The OSS world could try a lot of alternatives to the registry and see which one shakes out. Maybe something like a live /proc filesystem (/registry?) with an XML file store backend. We could try segregating it into pieces for the OS, subsystems, and individual applications. We could allow parts of it to be stored on the network and shared.
It would be really cool to have tripwire-like monitoring for registry changes with user-editable rules supported directly by the OS -- something you can only get now from intrusive anti-virus products. We could have application blacklists enforced by the OS that pull the lists from the net like ABP.
I think the general problem of "where do we put this config stuff" is tractable, but not by using an implementation like Microsoft's.
"3) Fixes to the Win32 API to allow things like updating the system without reboots, true virtual desktops, Unix filesystem support, and closing the bugs that let spyware hang around forever."
If you make a bunch of changes like this, and especially if you close these bugs, then wouldn't that ruin the backwards compatibility that's so important with Windows?
Some application surely would break; even on today's Windows fixing a Win32 bug often leads to "shims" for broken applications. But some of these bugs don't have to affect applications at all. Virtual desktops for instance only impacts explorer and the taskbar/systray; that could surely be supported without hurting other applications. The spyware bugs I'm talking about are the "two different ways to name a file" such that on some Windows systems it's impossible to delete those files; that too should be fixable.
"7) An update system that doesn't suck ("apt for Windows")."
I think this is pretty much impossible. The only reason apt works so well on Linux is because most of the software people use is FOSS, so distros keep compiled copies of it all in their repositories for their users.
I agree that re-packaging commercial applications isn't worth doing. But there's no reason we can't have OSS repositories and an apt-like installer, and it that could be right there on the Control Panel "Add/Remove Programs" / "Programs and Features" applet alongside the list of installed commercial applications and drivers. Plus a real package manager could keep track of which files in System32 belong to which packages and use something like Vista's SXS (but hopefully better) to ensure the commercial apps have the exact libraries they shipped with while the OSS apps have the latest and greatest shared libraries.
I think this project's going to flop (or languish in obscurity) for several reasons:
1) Not enough developers. MS has a giant army of developers working on Windows; how does he expect to come up with something fully compatible by himself, or with a few helpers. Sure, others might join in, but I seriously doubt it. If his project was so worthwhile, developers would have been working with him on ReactOS long ago, but they haven't.
Well, they have. ReactOS can boot on bare metal and run quite a few Windows programs. I think they've done a fantastic job so far. It's 80% there. Unfortunately that last 20% is really hard to get right.
2) It's a moving target. Windows is constantly changing, coming out with new releases that completely change things, etc. Other OSes, like Linux, don't have this problem: Linux only has to be compatible with itself (and backwards compatibility is not one of its strong points), but with Windows, backwards compatibility is paramount.
3) If you like Windows so much, why not just buy a copy of Windows (or download it from BitTorrent)? Why mess around with something that may or may not be compatible?
I would dearly love a Windows 2000/XP clone that had:
1) Better security and performance by NOT having extraneous MS-supplied crapware installed. I'm looking at: Messenger, IE, Outlook, and DRM.
2) More rapid response to security issues due to its OSS nature (see the other thread regarding IE).
3) Fixes to the Win32 API to allow things like updating the system without reboots, true virtual desktops, Unix filesystem support, and closing the bugs that let spyware hang around forever.
4) Better support for POSIX code; make it as easy to port to this OS as it is between Linux and Mac.
5) A registry that doesn't suck.
6) A command line that doesn't suck.
7) An update system that doesn't suck ("apt for Windows").
That kind of OS would let me run my expensive vertical-market stuff on a computer I could trust to be performant and safe.
I see you've never had a pre-386 class PC. PC XT's commonly ran DOS off a 5.25" floppy. If you weren't lucky enough to have a 10-30 MB hard drive (MFM or RLL: $300+), you'd switch floppies to launch games. POST would count memory up to 640K; most did not have realtime clocks so every file was dated Jan 1 1980. Dot-matrix printer, or maybe even daisy wheel. It got a little nicer with 286's. You might have a 40-80 MB IDE hard drive and RTC. Usually you had 1MB minimum memory, up to 16MB (which would cost more than the rest of the computer combined).
What you're talking about were the multimedia PC's that came out around 1990, typically 386 or 486 but sometimes 286.
The user installed package should use the system library if available, otherwise install a copy under ~.
If the admin installs the library system-wide after the user(s) installed their copy, should it remove the user(s) copy?
If a system-wide library conflicts with a user-installed library, how is that resolved?
Each user should use whatever version they want.
It's up to the user to set up the PATH the way they want it.
How will that not lead right back to a Windows-like "DLL hell" situation that the package managers were specifically designed to avoid?
These aren't particularly hard questions.
You haven't thought about them enough.
What about shared libraries? Should those be duplicated everywhere?
What about differing versions of the same package? Should user X have the old version and user Y have the new version?
What if the user installs it and the admin installs it? Should the user's package have higher precedence (PATH, MANPATH, etc.) or the system-wide package?
IRIX: /usr/people/$USER
I wish Slashdot had killfiles. How I miss the days of Usenet...
A WinXP system is never just WinXP, it's also a boat load of crapware that the crapware authors have paid the manufacturer to bundle in. So ASUS is actually right in their math:
Option 1: Keep XP. No change in price.
Option 2: Refund XP: +$50. Also refund crapware: -$44. Net refund to user: $6.
As others pointed out, X% growth is mathematically exponential growth. But in answer to why it's impossible: available resources are finite. At some point we will run out of a critical something: land, minerals, surface area for solar power, fossil fuels, something.
The answer is "sustainable" economy, where the economic activity is focused only on replacements and improvements to existing things, and not massive production of new things. Analogy: our current exponential growth economy would choose to turn farmland into houses, while a sustainable economy would choose to rebuild abandoned houses into new houses. In the former case you sacrifice farmland, in the latter you don't; in both cases homeowners get new state-of-the-art houses.
Unfortunately a sustainable economy absolutely requires net zero global population growth. The only way to achieve that is mass use of contraception in its various forms, and the only to do that is to seriously undermine the power of organized religion on a global scale. I don't expect to see that in my lifetime.
I had an insight about this a year or two ago, one that I haven't seen addressed anywhere else - my friends who are liberals grew up, largely, in places where government works, while the conservatives grew up in places where it doesn't.
My version of that idea is that the American South functions like a Second World nation while the the American Coasts are First World nations. So you see Southerners voting to become like Mexico or Brazil with a teeny handful of the population owning everything and Westerners/Northerners voting to become more like "socialist" Europe with greater services and modest wealth redistribution.
You personally lack any idea of what communism is so you perhaps aren't a good authority about the subject.
"Conservatism^WCommunism cannot fail, it can only be failed."
What is this obsession with old or cheap crap hardware recently?
Some of that old hardware is very far from cheap. A 486, while slow, can be very reliable over the long haul. Most 486's didn't even need heat sinks, so no moving parts to fail.
As for the poster, I would suggest either a disk-based Debian woody install, puppy linux, DSL, or a Slackware install.
I expect that Opera 8+, IE 6+, Firefox 2+ and recent Safari/Konqueror/Epiphany are going to be able to visit www.anysite.örg and 'hide' the xn--etc- access details from you, the user.
They had better make that user configurable. I do not want to click on "https://paypal.com" and be silently redirected to "paypal.xn--w-h-a-t-ev-er" -- which would have a perfectly valid SSL cert -- instead.
however since this is no more secure than the original promise to repay
No, it's far more secure than the original promise. Student loans cannot be wiped out through bankruptcy, and wages will be garnished with government authority. The only avenues available for students not to pay are: 1) live on someone else's dime; 2) leave the country; 3) die of starvation.
You want an unsecured loan to have the same interest rate as a secured asset?
A car loan is secured by a car that is essentially guaranteed to go down in resale value faster than the principle of the loan.
A student loan is secured by an *income stream* (up to 15%) that will likely increase at least as fast as inflation.
To me, the student loan sounds a lot more secure.
> No, but why is the NAT firewall letting the spam through to the outside world?
Because having egress filtering on by default would piss off most users, so consumer NATs don't do that.
Roseanne.
in a country that's already socialist, with full corporate sponsorship.
You have the most amazing case of bipolar view I've ever seen. Make up your mind, please! Are you worried about socialism or capitalism? Most people agree these are nearly opposites.
Maybe he's a real leftist in the Gore Vidal sense who defines "corporate sponsorship" as what we have in the USA: government-backed socialism for the rich and dog-eat-dog capitalism for everyone else. Maybe he says we should move to a different plutocracy.