One has been out for over a year, while the other two have had 2 months?
Well
i) That must be why MS choosed a strategic launch date in the christmas lead-up
ii) Why they spent so much on advertising
They don't care about specs, they care about what they think is good
Which is based on who's PR wins, primarily using the launch figures.
MS picked the fight, they can't go off crying if the bigger kid gave them a bloody nose.
I'm not saying that the figures are correct or an absolute judgement, but that those who live by the sword should be aware that they may well die by the sword.
The majority of "imported" beers are brewed locally.
Except in Europe where you can't call it "Imported" unless it really is, and the country of origin must be clearly labelled. So whilst "Guinness" is brewed in London, you can also get "Guinness Export" which is the real thing, and most of the bottled beers are the real thing too. But yes, a lot of "budweiser" over here is UK brewed, but the Budvar is still the Czech original !
even though it is made exactly the same way
The example I gave of Fosters is interesting as UK Fosters is not even like Oz Fosters - the only thing thats supposed to be the same is the name and logo - the UK Fosters is a british lager made for the UK market and conditions, not a "copy" of the original.
I get my Coopers in the UK from Oddbins, and it's sometimes cheaper than the stubby price I used to pay in Australia !!
Oh, and you can get VB too (if you're desperate) but the cans are re-printed "Victoria Beer" as they can't call it "Bitter" in the UK (it's a lager). Fosters in the UK is nothing like Aussie Fosters (well, almost nothing like - it's still piss, but different piss), but is brewed in London by Courage.
I'm off for a hoegaarden which I can get on tap and tastes surprisingly like Coopers - now if only it was 35 degrees outside rather than 3 degrees...
In James Coplien's famous book of 1992, chapter 9 is all about patching running code with new code at run-time:
Chapter 9 also presents idioms supporting incremental run-time update. Implementations of this idiom are necessarily dependent on many details of the target platform. The gist of this material is to familiarize the reader with the level of technology at which incremental loading issues must be worked.
Might be worth seeing if any of that is useful as prior art, or the bibliography or uses he describes can illustrate that the problems and techniques were alreayd well known at the time.
TCP/IP adds a 16-bit checksum to the packets. This will generally detect an error burst of 15 bits or less, if the data is uniformly distributed then this will accept a corrupt segment with probability 1 / (2^16-1). [Snader p70]. This was designed to catch bugs in routers etc. (which may write the wrong data when forwarding packets) rather than catch all data corruption on the wire.
Depending on how much noise goes undetected at your physical layers, you should expect a TCP session to pass thru incorrect data about 1 in 10^9 to 10^12 bytes passed (thats the metric I use) - and if this is unacceptable then your application layer should check and/or correct data itself, bearing in mind the end-to-end argument for system design.
dare I commit a computer junkie sin, and ask what is *truly* the point in running dual processors
If you're developing multi-threaded code (and yes, I know the debate, but for some tasks it is an easier way to make a single-cpu app more responsive) then you haven't really tested for deadlocks and synch problems until you've run it on a multi-cpu machine. Thats my excuse to the wife for buying a dual Athlon machine anyway...
OK, so the article is about coding for security, but it's worth considering Tom DeMarco's line in his excellent book Why Does Software Cost So Much ? where, he says, the correct answer is "Compared to what ??".
Kicking those who manage complexity is always going to be easy - but until you can do better then you're not really helping.
The book is well worth a read... if only to shut up all those metrics freaks...
There are a number of IRC client packages for emacs (of course) that I've tried... (erc and ZenIrc) and emacs does support various VIP and VIPER modes that give you vi key bindings - you may well be able to combine the 2, but you may equally well consider this a little OTT...
If you have a large GUI app written primarily for Windows that you need a relatively quick port to *nix (but be warned - it will take time) - then MainWin (and the old Wind/U) are reasonable stop-gaps, but if you have a new project where cross-platform is your aim, or you want to move the entire project away from Windows to *nix, then choose another route.
My comments on "other routes" will appear at the relevant spots in the other threads;^)
Just reading some RFCs and FAQs at my favourite site for this and I see that they've lost funding and are asking for donations.
It would be a pity if this site died, as it's a genuinely useful nerd reference info site - if you've ever used it I'd ask you to consider dropping a couple of bucks their way...
... honestly not meant to be a troll, but does anyone else find it strange that slashdot is reporting a ZDnet story about news re:the Linux kernel development ??
Have I missed something here ? I used to work in fraud investigation and there we have a dual scale of trusting information
- how trustworthy is this source ?
- how trustworthy is this source with regards to this type of information ?
(e.g. The Queen as a news source is considered trustworthy, but if The Queen told me the local 7-11 was going to be robbed at 11:30 tonight then I'd doubt the information).
Maybe that Jesse bloke really does know what he's talking about...
that said, i'm sure soho would be a bit more interesting...
It would - I'm guessing you mean the (ahem) "adult" industry in SoHo, but in fact the area is full of all the graphic design and special effects companies - linked by sohonet but they're all so trendy (and the offices so chaotic) that I bet there are plenty of wireless networks there... anyone want to drive-by and see if they can grab some LotR or SW-II ??
... make sure you get a good power indicator light on the front - I have a reasonably quiet machine at work (compared to all the a/c etc.) and a few times I've come back in on monday thinking I powered down for the w/end (to be eco-friendly) and turned my machine off rather than on...
Yeah, I should thump the caps lock etc. but it still hurts when I do it - and when I do reboot it deliberately then it's hard to tell if its booting up - all solved with a better "Power is On" light on the front...
Of course, maybe thats what the neon light in the side window does for Hemos...
T
Re:But the memory lingers on...
on
MS DOS: A Eulogy
·
· Score: 1
Well Win2K with SP3 here, and compiled as a console app with VC++ and it dies a brutish death - but at least I also quote NT BugTraq as a witness (which also quotes that it fails on other platforms)....
DOS itself may be dead, but XP still has a command line prompt (cmd.exe) or, more accurately, the idea of Console-Mode executable. Unfortunately the 32-bit prompt still acts brain-dead to emulate the COMMAND.COM behaviour, so scripting is painful, there are still hacks to "magic" file names (CON, PRN etc.) and, at some levels, the "ohmigod I can't believe that crashes the machine" mentality survives - the following code as a console app will crash an NT, Win2K or XP machine - no BSOD, just plain gone...
We should stop chatting like this... people will talk....
Shared libraries under *nix are genuine simple collections of routines (in the same way that non-shared libraries are effectively just a tar file of a load of object files : no linking has been done) - so they need a further link stage when you load them as they can have undefined symbols.
DLLs under Win32 cannot have any undefined symbols - they have alreayd been linked like an executable and have all symbols resolved (even if that means via an implib stub which then points at another DLL). This makes life easier in some ways as you know that all symbols are resolved before you load the library, but means that you can't do things like "this library, when loaded, expects the code loading it to have defined a function Fred() which it will call at certain times" - the DLL's resolution of Fred must be done when you link the DLL. It also makes loading quicker, as no link is required (and of course the linker is not an integral part of the OS as it is under *nix).
You can emulate some of this with dynamic loading of DLLs where you don't link with an import library but call LoadLibrary() and then use GetProcAddress() to find the functions you want and decide what to do if they're not there (i.e. manual linking within your code), but its a pain on anythign more than the most trivial of cases.
You have to understand just what a DLL is and how it's doing it - back in the old Win16 days you could share data between apps in a DLL as a DLL had its own data page no matter how many times it was loaded, but then you had to frig with the stack pointer on every exported function (SS != DS) !
As for your comments about ugly code I can only agree - I go back to C++ every now and then, and it almost makes me cry how my old favourite has been made as ugly as sin by people with no eye for aesthetics....
Ah yes, I see what you mean, if you're declaring APIENTRY (which ends up being #defined to __stdcall) then I can see that MS may well be forcing a requirement for the entry to be defined when you link with it....
Reminds me what I dislike about developing on Win32 (the side effects)...
The Uncopyable class that I listed, however, can be private within the DLL (with no external linkage) and included as a member variable of the objects you want to prevent copying - that way you don't declare the CC and AO in those classes, and if the compiler tries to make them for you then it'll generate a compile time syntax error...
Of course, if you do this you'd want to reduce Uncopyable to the bare minimum (get rid of the data, the BadFunc, null constructor, destructor) and it'll add very slightly to the size of your objects I guess (4 bytes maybe)... but I'm fairly sure that would get you what you need...
Regards
T
Re:HOWTO: compile on windows 2000 (without MinGW,)
on
GNU Emacs 21
·
· Score: 2, Informative
Just a quick note to clarify what I think the above is saying - you can use the free mingw if you don't have Visual C++, but if you do have VC++ then it works pretty much out of the box too...
1. [grab source (ftp.gnu.org is back up again)]
2. cd emacs-21.1\nt
3. configure
4. nmake
5. nmake install
and you'll find all the Win32 exes in the emacs-21.1\bin directory....
Kudos to the GNU team, MS-DOS to microsoft... I'm one happy Win32 bunny
I'm trying to convince management that a pool table, nerf guns and a collection of gadgets around your monitor does NOT make a team of coders into geniuses, and, whilst it might motivate some people, they'd do better to ask the staff what they want first....
Maybe we should take it offline (you can mail me at schmerg.com) but if by "shared library" you mean a DLL... well I can compile and link the code below into a DLL, but note that uncommenting either of the two lines stops from building the DLL (note that BadFunc is inlined by the compiler so generates no code unless its called). A DLL is basically a slightly different EXE in that it must have all its external references resolved... but I can't see why else you'd be prevented unless, as I pointed out, someone is actually trying to invoke the undefined routines... if I run nm over the OBJ then I can see the symbols that it defines and those that are unresolved....
void BadFunc() { Uncopyable other = *this; }
private:
// private CC and AO - undefined....
Uncopyable( const Uncopyable& );
Uncopyable& operator=(const Uncopyable&);
private:
int _data;
};
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
{
Uncopyable u, u2;
// Fails to compile with this line : u = u2;
// fails to link with this line : u.BadFunc();
return TRUE;
}
If you mean something else, then I apologise in advance for mis-understanding.... but I would like to know what the problem is (in case it affects me sometime - maybe it's something in the debug info that is causing the problem, are you compiling with something that instruments the code like Purify ??)
One has been out for over a year, while the other two have had 2 months?
Well
i) That must be why MS choosed a strategic launch date in the christmas lead-up
ii) Why they spent so much on advertising
They don't care about specs, they care about what they think is good
Which is based on who's PR wins, primarily using the launch figures.
MS picked the fight, they can't go off crying if the bigger kid gave them a bloody nose.
I'm not saying that the figures are correct or an absolute judgement, but that those who live by the sword should be aware that they may well die by the sword.
T
Microsoft spokesman David Hufford said, "Xbox has caught fire since launch."
Not exactly the best thought-out sound-bite to be offered to the press....
T
The majority of "imported" beers are brewed locally.
Except in Europe where you can't call it "Imported" unless it really is, and the country of origin must be clearly labelled. So whilst "Guinness" is brewed in London, you can also get "Guinness Export" which is the real thing, and most of the bottled beers are the real thing too. But yes, a lot of "budweiser" over here is UK brewed, but the Budvar is still the Czech original !
even though it is made exactly the same way
The example I gave of Fosters is interesting as UK Fosters is not even like Oz Fosters - the only thing thats supposed to be the same is the name and logo - the UK Fosters is a british lager made for the UK market and conditions, not a "copy" of the original.
T
We keep our best beer for ourselves.
I get my Coopers in the UK from Oddbins, and it's sometimes cheaper than the stubby price I used to pay in Australia !!
Oh, and you can get VB too (if you're desperate) but the cans are re-printed "Victoria Beer" as they can't call it "Bitter" in the UK (it's a lager). Fosters in the UK is nothing like Aussie Fosters (well, almost nothing like - it's still piss, but different piss), but is brewed in London by Courage.
I'm off for a hoegaarden which I can get on tap and tastes surprisingly like Coopers - now if only it was 35 degrees outside rather than 3 degrees...
T
Might be worth seeing if any of that is useful as prior art, or the bibliography or uses he describes can illustrate that the problems and techniques were alreayd well known at the time.
T
TCP/IP adds a 16-bit checksum to the packets. This will generally detect an error burst of 15 bits or less, if the data is uniformly distributed then this will accept a corrupt segment with probability 1 / (2^16-1). [Snader p70]. This was designed to catch bugs in routers etc. (which may write the wrong data when forwarding packets) rather than catch all data corruption on the wire.
Depending on how much noise goes undetected at your physical layers, you should expect a TCP session to pass thru incorrect data about 1 in 10^9 to 10^12 bytes passed (thats the metric I use) - and if this is unacceptable then your application layer should check and/or correct data itself, bearing in mind the end-to-end argument for system design.
T
dare I commit a computer junkie sin, and ask what is *truly* the point in running dual processors
If you're developing multi-threaded code (and yes, I know the debate, but for some tasks it is an easier way to make a single-cpu app more responsive) then you haven't really tested for deadlocks and synch problems until you've run it on a multi-cpu machine. Thats my excuse to the wife for buying a dual Athlon machine anyway...
T
OK, so the article is about coding for security, but it's worth considering Tom DeMarco's line in his excellent book Why Does Software Cost So Much ? where, he says, the correct answer is "Compared to what ??".
Kicking those who manage complexity is always going to be easy - but until you can do better then you're not really helping.
The book is well worth a read... if only to shut up all those metrics freaks...
T
There are a number of IRC client packages for emacs (of course) that I've tried... (erc and ZenIrc) and emacs does support various VIP and VIPER modes that give you vi key bindings - you may well be able to combine the 2, but you may equally well consider this a little OTT...
T
use.perl.org (running SlashCode) has a similar topic for CPAN modules up for adoption.
I'd agree, but take issue with your last line.
;^)
If you have a large GUI app written primarily for Windows that you need a relatively quick port to *nix (but be warned - it will take time) - then MainWin (and the old Wind/U) are reasonable stop-gaps, but if you have a new project where cross-platform is your aim, or you want to move the entire project away from Windows to *nix, then choose another route.
My comments on "other routes" will appear at the relevant spots in the other threads
T
Just reading some RFCs and FAQs at my favourite site for this and I see that they've lost funding and are asking for donations.
It would be a pity if this site died, as it's a genuinely useful nerd reference info site - if you've ever used it I'd ask you to consider dropping a couple of bucks their way...
... that one freaked me out for a while
T
Forgot to say, right-click on any toolbar to choose to view the "Radio" toolbar, and then look for a decent radio station near you....
BBC News is interviewing eye witnesses now...
T
if you have IE (yeah, I know) you can get the BBC News coverage - this stayed up all 11/9 for me, and I'm listening to it now....
T
... honestly not meant to be a troll, but does anyone else find it strange that slashdot is reporting a ZDnet story about news re:the Linux kernel development ??
Have I missed something here ? I used to work in fraud investigation and there we have a dual scale of trusting information
- how trustworthy is this source ?
- how trustworthy is this source with regards to this type of information ?
(e.g. The Queen as a news source is considered trustworthy, but if The Queen told me the local 7-11 was going to be robbed at 11:30 tonight then I'd doubt the information).
Maybe that Jesse bloke really does know what he's talking about...
T
that said, i'm sure soho would be a bit more interesting...
It would - I'm guessing you mean the (ahem) "adult" industry in SoHo, but in fact the area is full of all the graphic design and special effects companies - linked by sohonet but they're all so trendy (and the offices so chaotic) that I bet there are plenty of wireless networks there... anyone want to drive-by and see if they can grab some LotR or SW-II ??
See you all in the Alphabet Bar...
T
... make sure you get a good power indicator light on the front - I have a reasonably quiet machine at work (compared to all the a/c etc.) and a few times I've come back in on monday thinking I powered down for the w/end (to be eco-friendly) and turned my machine off rather than on...
Yeah, I should thump the caps lock etc. but it still hurts when I do it - and when I do reboot it deliberately then it's hard to tell if its booting up - all solved with a better "Power is On" light on the front...
Of course, maybe thats what the neon light in the side window does for Hemos...
T
Well Win2K with SP3 here, and compiled as a console app with VC++ and it dies a brutish death - but at least I also quote NT BugTraq as a witness (which also quotes that it fails on other platforms)....
T
DOS itself may be dead, but XP still has a command line prompt (cmd.exe) or, more accurately, the idea of Console-Mode executable. Unfortunately the 32-bit prompt still acts brain-dead to emulate the COMMAND.COM behaviour, so scripting is painful, there are still hacks to "magic" file names (CON, PRN etc.) and, at some levels, the "ohmigod I can't believe that crashes the machine" mentality survives - the following code as a console app will crash an NT, Win2K or XP machine - no BSOD, just plain gone...
#include
main(void)
{
printf("\t\b\b");
return 0;
}
T
We should stop chatting like this... people will talk ....
Shared libraries under *nix are genuine simple collections of routines (in the same way that non-shared libraries are effectively just a tar file of a load of object files : no linking has been done) - so they need a further link stage when you load them as they can have undefined symbols.
DLLs under Win32 cannot have any undefined symbols - they have alreayd been linked like an executable and have all symbols resolved (even if that means via an implib stub which then points at another DLL). This makes life easier in some ways as you know that all symbols are resolved before you load the library, but means that you can't do things like "this library, when loaded, expects the code loading it to have defined a function Fred() which it will call at certain times" - the DLL's resolution of Fred must be done when you link the DLL. It also makes loading quicker, as no link is required (and of course the linker is not an integral part of the OS as it is under *nix).
You can emulate some of this with dynamic loading of DLLs where you don't link with an import library but call LoadLibrary() and then use GetProcAddress() to find the functions you want and decide what to do if they're not there (i.e. manual linking within your code), but its a pain on anythign more than the most trivial of cases.
You have to understand just what a DLL is and how it's doing it - back in the old Win16 days you could share data between apps in a DLL as a DLL had its own data page no matter how many times it was loaded, but then you had to frig with the stack pointer on every exported function (SS != DS) !
As for your comments about ugly code I can only agree - I go back to C++ every now and then, and it almost makes me cry how my old favourite has been made as ugly as sin by people with no eye for aesthetics....
Cheers
T
Ah yes, I see what you mean, if you're declaring APIENTRY (which ends up being #defined to __stdcall) then I can see that MS may well be forcing a requirement for the entry to be defined when you link with it....
...
... but I'm fairly sure that would get you what you need...
Reminds me what I dislike about developing on Win32 (the side effects)
The Uncopyable class that I listed, however, can be private within the DLL (with no external linkage) and included as a member variable of the objects you want to prevent copying - that way you don't declare the CC and AO in those classes, and if the compiler tries to make them for you then it'll generate a compile time syntax error...
Of course, if you do this you'd want to reduce Uncopyable to the bare minimum (get rid of the data, the BadFunc, null constructor, destructor) and it'll add very slightly to the size of your objects I guess (4 bytes maybe)
Regards
T
Just a quick note to clarify what I think the above is saying - you can use the free mingw if you don't have Visual C++, but if you do have VC++ then it works pretty much out of the box too...
1. [grab source (ftp.gnu.org is back up again)]
2. cd emacs-21.1\nt
3. configure
4. nmake
5. nmake install
and you'll find all the Win32 exes in the emacs-21.1\bin directory....
Kudos to the GNU team, MS-DOS to microsoft... I'm one happy Win32 bunny
T
I'm trying to convince management that a pool table, nerf guns and a collection of gadgets around your monitor does NOT make a team of coders into geniuses, and, whilst it might motivate some people, they'd do better to ask the staff what they want first....
Maybe we should take it offline (you can mail me at schmerg.com) but if by "shared library" you mean a DLL... well I can compile and link the code below into a DLL, but note that uncommenting either of the two lines stops from building the DLL (note that BadFunc is inlined by the compiler so generates no code unless its called). A DLL is basically a slightly different EXE in that it must have all its external references resolved ... but I can't see why else you'd be prevented unless, as I pointed out, someone is actually trying to invoke the undefined routines... if I run nm over the OBJ then I can see the symbols that it defines and those that are unresolved....
// private CC and AO - undefined....
// Fails to compile with this line : u = u2;
// fails to link with this line : u.BadFunc();
#define WIN32_LEAN_AND_MEAN
#include
class Uncopyable
{
public:
Uncopyable() { _data = 0; }
~Uncopyable() { ; }
void BadFunc() { Uncopyable other = *this; }
private:
Uncopyable( const Uncopyable& );
Uncopyable& operator=(const Uncopyable&);
private:
int _data;
};
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
{
Uncopyable u, u2;
return TRUE;
}
If you mean something else, then I apologise in advance for mis-understanding.... but I would like to know what the problem is (in case it affects me sometime - maybe it's something in the debug info that is causing the problem, are you compiling with something that instruments the code like Purify ??)
Cheers
Tim