Yes, sorry if I let my ranting get the better of me; I meant to say that the nice thing about the Win32 API is that it *is* stable; I can more-or-less take code written in pure C-based with Win32 calls and it should compile and work from NT 3.1 up to Win7. What I was getting at was that the Win32 is the only constant, while Microsoft keeps inventing new ways to make Windows programming easier, presumably, than the Win32 API, but when they move on to the next thing, suddenly you've got a *more* difficult job in the interoperability between the old and new ways to make things "easier".
As I said in another post: I am trying to marry a COM-based service with a managed DLL written in C# and it has been, well, let's just say it's been a whole lot of no fun. Both.net and COM, when used independently, are okay (well,.net anyway...), but the hoops I'm jumping through are purely to keep the frameworks happy and have *nothing* to do with the actual business function of the program.
Ah, but I was referring to the interface of malloc() itself; I fully anticipate that different operating systems will allocate memory in different ways, based on cpu architectures, OS philosophies, whatever.
While going for a walk in the woods for its own sake is great, it's hard to convince the family and friends, sometimes, that what they really want to do is put down the remote and go for a long nature hike. This is where geocaching is so great; the kids think of it as "searching for treasure", and my friends have taken up the various challenges with excitement ("how are we going to cross the river?" "How are we going to get down from this ciff", etc. Whereas I could never convince them to go before, once there's a challenge, something to find, out there, they're all for it.
My personal satisfaction came from the fact that two of my friends were so angry about being left behind, or just struggling to keep up in general, that they both quit smoking.
Since we're feeling old, what I really miss about "those days" was the "communal" nature of a number of people all using the same machine at once. You were guaranteed that other folks would be logged in, and in pre-IM days a quick "talk" session with someone who knew C better than me solved many a tricky problem.
Funny enough, I was "talk"-ing with someone I had not ever met face-to-face about how to solve some algorithm or something, and he said it would probably just be easier to write it down on paper. I agreed to meet him, and asked him which lab he was in; turned out he was sitting in the carel right in front of me!
I rescued a Vax, complete with a VT320 from the garbage at work and while it all worked, I simply couldn't justify the electrical bill and the noise for a machine that had far less computing power than a Mac mini. So it finally met its end at the loading dock of an electronics recycling center.
Thinking about the VT320 makes me feel old; I'm sitting in the computer room at the university, with its linoleum floor, coding away on a VT320 logged into an Ultrix machine, with my custom termcap that mapped the function keys to screen sessions, I felt like I was CODING. REAL. SOFTWARE. This was the BIG TIME. Nevermind that even vi slowed to a crawl when someone invoked the compiler. I wouldn't be surprised if the Meego was a slightly better machine than the Ultrix, performance-wise.
Consider using strcpy_s instead. To disable deprecation, use CRT_SECURE_NO_WARNINGS. See online help for details.
When you refer to it being per-project, do you imply that it was inconvenient to add the define to all the numerous projects you've had in the solution?
I understand about strcpy being unsafe, but strncpy() has the size parameter, so it will only copy bytes. I suppose if is a variable and you can somehow fudge with it (in conjunction with using malloc'ed() or new'ed buffers...I always just use fixed arrays and switch to std::string when I want to do more).
We have a large codebase of shared C and C++ code between Windows, Unix and VMS. The interfaces are different, but the core engine is meant to be pure ANSI. If I #pragma disable() the warning, I have to #ifdef _WIN32 which will cause the core guys to freak; they mandate *no* platform specific code in the headers or cpp files.
So I could add it to the project settings (which is what I do), but I'd rather just not have to deal with it at all. It's also a problem when we get an intern who does a compile for the first time and freaks that she's done something wrong when it spews off all these scary warnings, and she comes asking WTF. Happened just a month ago.
If you want to write a C++ app in Visual Studio, the location of the additional directories for #includes is at the top of the C++ options. In the linker, the same option is somewhere towards the bottom. Why? Sounds small, but I'm already under the gun to get the code written and working, not futzing around with build settings.
Or how about, starting in either VS2005 or 2008 (can't remember which one), I opened up a project written in VC++6 and freaked when I suddenly started seeing hundred and hundreds of warnings, telling me that functions like strncat() (strncat!) were "unsafe" and I should use something like _strnscat or something like that, which supposedly was "more" safe at the cost of being totally Microsoft-specific. The problem was that you couldn't turn off these warnings in the general options, only per-project, which meant that I had to make stupid changes to stdafx.h just to turn off the warnings so that other developers wouldn't freak as well.
How about the auto-hide windows that seem to randomly decide to suddenly be pinned or to suddenly appear during unrelated actions?
When working with C#, the compiler and editor will give you a red squiggle under code it can't compile, but gives you know way to know where or how many places in the file they are (contrast: Eclipse puts a red box on the side for every line that is in error, which makes it very easy to find them).
Look, I'm a fan of Intellisense and all (when running on a powerful enough machine), but while VS2010 is "faster" than previous versions (almost as fast as VC++6), it purports to be a "rich" IDE that gets surprisingly sparse in places, and downright weird in others.
Visual Studio reminds me of guys who put racing stripes and thin tires and big mufflers on their Honda Civics and somehow convince themselves they've got a "race car".
As someone who is currently trying to marry.net and C++/COM, I can tell you that I have never felt more hatred for Microsof and their crap. I can't believe I yearn for the simpler days of the Win32 API with all their associated baggage left over from trying to keep compatible with the Win-freaking-16 API, which I remember swearing at then too (MFC only hid the "big" APIs, but anything non-GUI related meant you were likely to pull out the MSDN library discs).
Having worked with Linux/Unix in C/C++ the joy is knowing that the API is *stable*; malloc() hasn't changed in what, 30+ years?? I can pull out programming books bought at second-hand stores from the 80s and still make use of the code and concepts.
I would not recommend, at this point, willingly starting any new project on Windows unless there was an absolute need to somehow tie in with Office directly (and if all you need to do is create office docs, I'd go with Java's Poi library instead).
Small tangent, but reading Ebert's musings on video games reminds me of how my family sees computers; a "computer" is a series of refrigerator-sized cabinets with spinning tape drives, output on green-bar paper, etc. No amount of evidence will convince them that anything smaller is anything other than a "toy", as if there was no progression from the 70s homebrew era. Ironically they have no problems keeping a contradictory thought that the machines they *do* use (Macs, PCs, other devices, etc.) are extremely useful, have made their lives much better, etc., but they are still toys in their eyes.
Maybe it really is a generational thing; if you know just enough about the history of computers, but without the proper context, you can draw the wrong conclusion that there has essentially been no progress in computers or games, regardless of what you see in front of you. I coined the phrase to describe my family as having "Escher's Syndrome", where you can see the endless winding staircase, but because it doesn't make sense to you, the brain just stops dealing with it.
I can't think of any other product that Microsoft made that fell out of its graces so quickly. I think even Microsoft Bob got a year in the stores before it was "retired".
Yes, it can be difficult, though with the brightness turned all the way up, it's...okay; if I'm under a tree it's perfectly fine, only in the direct sunlight does it become a problem.
The iPad version of MotionX's GPS application is good in that the lat/long screen shows the coordinates in big numbers, so it's pretty easy to read.
I'm an avid geocacher and I've found the GPS accuracy in the iPad to be better than the iPhone, and comparable to my Garmin 60csx (which is more-or-less the gold standard). I use the iPad for a lot of other reasons (the kids like to watch movies or play games on it while we're driving out to a forest preserve) but I was really pleasantly surprised to see that I could pretty much rely on it to get me to the spot.
I'm waiting for Otterbox to come out with their Defender case so I can keep it out all the time through the woods, instead of putting it back in the backpack on the chance I trip over a log or something. The iPad might not be as compact as the iPhone or Garmin, but it beats a day of DNFs.
The mother of all demos is typically cited as where Douglas Engelbart demonstrated the mouse as a pointing device for the very first time, but what is forgotten is that he also had, for his left hand, a small set of levers for performing "common actions" (read: shortcuts) that essentially served a similar purpose as all those buttons on this mouse.
I remember reading in a book that, among all the SRI researchers, only Engelbart himself ever got the hang of how to use it; the others apparently simply preferred to use the mouse and keyboard. I wouldn't be surprised if this mouse gets a fanatical following of about three people, while the rest of the world moves on.
I just came back from taking a break outside and my co-worker said he felt it. We're in downtown Chicago. When it happened I was probably on a bridge and would have figured it was just a bus.:)
Say what you will about the position Apple is currently in, but they have been screwed over many times by other companies (Microsoft with Office, Adobe with Premiere, IBM with PowerPC @ 3ghz), and they figured that it was critical to their success that they take control of their own destiny.
What they've done is made a streamlined version of an ARM processor that is useful for their current needs; they do not need to "keep up" with anyone in that they get their processor to do what they want it to do for this particular need. If anything, by not having to cater to anyone but themselves, they have the ability to have custom hardware, but still based on the widely-used ARM architecture, so they don't have to completely re-tool when they come up with an A5 or A6 or whatever. Jobs himself said that they are not in the business of licensing their technology. You won't see an A4 being offered in lots of 100 to anyone for other purposes, it's a chip for Apple and their products only.
I was wondering too about the wisdom of this move, but it shows that they are not going to hitch their wagon to anyone's horse but their own, and that they have the ability to modify the horse to pull whatever load is necessary at that moment, a new iPad, new iPhone, AppleTV, whatever.
I'm glad I waited; I was going to buy the previous version in the server configuration. Say what you will about HDMI ports, no blu-ray, etc., but the mini makes for a great server. I run Jira, Subversion, Postgres, and Tomcat for a dev team on one mini and it hasn't given me a minute of problems. If anything, I forget where it lives because it's so small. That said, I'd like to replace our existing one with a new one for the increased disk space (currently the db is on an external disk) and to possibly use the built-in Jabber server than the one we've got now.
Jet Grind/Set Radio is probably my #1 of man-I-wish-I-could-play-that-again titles from the DC era. I was able to buy a copy of the soundtrack from an online reseller (who's name everybody would recognize, but I've completely forgotten...they were shut down by Sony/Nintendo...Lik Sang?) and I was listening to it just two days ago.
This bites me occasionally in Oracle where you've got a big query that has lots of tables joined together, and then at some point one of the columns is removed from the select part, and the query performance suddenly goes to hell. Then you have to go through and verify that each table is actually being used (even worse if the column that was removed from the select came from deep joins).
As I recall, there was a group of people who contributed to buying him an iPod as a way of trying to show that not everyone who saw the video was laughing at him. Any idea whether he got it? TFA doesn't mention it.
I've been thinking the same thing, and I think that (though I don't know for sure as I'm not a video game developer), that Sony, Nintendo, and Microsoft won't even let you write the game without putting through a proposal. I doubt it's much more than a general form that describes the overall gameplay, maybe a pic of some concept art or somesuch, and assuming the game isn't based on the characters from goatse.cx, they presumably give you the tentative go-ahead. Of course, when I say "won't let you develop" the game, I mean that they wouldn't consider approving it unless you submit the proposal ahead of time.
I suppose that would double the work on Apple; they'd need a staff to review the finished apps, as well as a group of people to sift through the proposals. Also, I could see the process being abused; even if the proposal site was limited to official developers, that's only $99 that would give some the idea that they could write an automated script to flood the system with boilerplate proposals.
Still, even if that were the case, I'd still want to do that. Like you said, it's hard to think you've spent time on something only to be rejected for some arbitrary reason. My ideas for apps are, I think, totally in the mainstream, but I can imagine being rejected simply because some faceless reviewer didn't like my choice of background wallpaper in the app.
I used Plato as a cartridge on the TI-994/A...it was a math instruction course if I recall. I know the original Plato was an online system, and our TI-994/A was definitely *not* online, so it always confused me to hear about Plato as this enormous ecosystem, when all I thought of it was a boring program that kept me from playing "King Tut".
The only thing I do definitely remember about the program was that it was white text on a blue background, and the copyright included the University of Illinois, which being from Chicago, gave me some sort of excitement that if I went there, *I* could write programs for the TI-994/A! Maybe even the Apple ][!
I'm really sorry, but there was some code that was already written that was just too good to pass up for the project I was on:
#include
int main(int argc, char* argv[])
{
printf("Hello World!\n");
return 0;
}
Now that I'm using Java, it won't happen again.
Yes, sorry if I let my ranting get the better of me; I meant to say that the nice thing about the Win32 API is that it *is* stable; I can more-or-less take code written in pure C-based with Win32 calls and it should compile and work from NT 3.1 up to Win7. What I was getting at was that the Win32 is the only constant, while Microsoft keeps inventing new ways to make Windows programming easier, presumably, than the Win32 API, but when they move on to the next thing, suddenly you've got a *more* difficult job in the interoperability between the old and new ways to make things "easier".
As I said in another post: I am trying to marry a COM-based service with a managed DLL written in C# and it has been, well, let's just say it's been a whole lot of no fun. Both .net and COM, when used independently, are okay (well, .net anyway...), but the hoops I'm jumping through are purely to keep the frameworks happy and have *nothing* to do with the actual business function of the program.
Ah, but I was referring to the interface of malloc() itself; I fully anticipate that different operating systems will allocate memory in different ways, based on cpu architectures, OS philosophies, whatever.
While going for a walk in the woods for its own sake is great, it's hard to convince the family and friends, sometimes, that what they really want to do is put down the remote and go for a long nature hike. This is where geocaching is so great; the kids think of it as "searching for treasure", and my friends have taken up the various challenges with excitement ("how are we going to cross the river?" "How are we going to get down from this ciff", etc. Whereas I could never convince them to go before, once there's a challenge, something to find, out there, they're all for it.
My personal satisfaction came from the fact that two of my friends were so angry about being left behind, or just struggling to keep up in general, that they both quit smoking.
Since we're feeling old, what I really miss about "those days" was the "communal" nature of a number of people all using the same machine at once. You were guaranteed that other folks would be logged in, and in pre-IM days a quick "talk" session with someone who knew C better than me solved many a tricky problem.
Funny enough, I was "talk"-ing with someone I had not ever met face-to-face about how to solve some algorithm or something, and he said it would probably just be easier to write it down on paper. I agreed to meet him, and asked him which lab he was in; turned out he was sitting in the carel right in front of me!
Good times. Good times.
I rescued a Vax, complete with a VT320 from the garbage at work and while it all worked, I simply couldn't justify the electrical bill and the noise for a machine that had far less computing power than a Mac mini. So it finally met its end at the loading dock of an electronics recycling center.
Thinking about the VT320 makes me feel old; I'm sitting in the computer room at the university, with its linoleum floor, coding away on a VT320 logged into an Ultrix machine, with my custom termcap that mapped the function keys to screen sessions, I felt like I was CODING. REAL. SOFTWARE. This was the BIG TIME. Nevermind that even vi slowed to a crawl when someone invoked the compiler. I wouldn't be surprised if the Meego was a slightly better machine than the Ultrix, performance-wise.
Now get off my...aw, forget it.
Consider using strcpy_s instead. To disable deprecation, use CRT_SECURE_NO_WARNINGS. See online help for details.
When you refer to it being per-project, do you imply that it was inconvenient to add the define to all the numerous projects you've had in the solution?
I understand about strcpy being unsafe, but strncpy() has the size parameter, so it will only copy bytes. I suppose if is a variable and you can somehow fudge with it (in conjunction with using malloc'ed() or new'ed buffers...I always just use fixed arrays and switch to std::string when I want to do more).
We have a large codebase of shared C and C++ code between Windows, Unix and VMS. The interfaces are different, but the core engine is meant to be pure ANSI. If I #pragma disable() the warning, I have to #ifdef _WIN32 which will cause the core guys to freak; they mandate *no* platform specific code in the headers or cpp files.
So I could add it to the project settings (which is what I do), but I'd rather just not have to deal with it at all. It's also a problem when we get an intern who does a compile for the first time and freaks that she's done something wrong when it spews off all these scary warnings, and she comes asking WTF. Happened just a month ago.
If you want to write a C++ app in Visual Studio, the location of the additional directories for #includes is at the top of the C++ options. In the linker, the same option is somewhere towards the bottom. Why? Sounds small, but I'm already under the gun to get the code written and working, not futzing around with build settings.
Or how about, starting in either VS2005 or 2008 (can't remember which one), I opened up a project written in VC++6 and freaked when I suddenly started seeing hundred and hundreds of warnings, telling me that functions like strncat() (strncat!) were "unsafe" and I should use something like _strnscat or something like that, which supposedly was "more" safe at the cost of being totally Microsoft-specific. The problem was that you couldn't turn off these warnings in the general options, only per-project, which meant that I had to make stupid changes to stdafx.h just to turn off the warnings so that other developers wouldn't freak as well.
How about the auto-hide windows that seem to randomly decide to suddenly be pinned or to suddenly appear during unrelated actions?
When working with C#, the compiler and editor will give you a red squiggle under code it can't compile, but gives you know way to know where or how many places in the file they are (contrast: Eclipse puts a red box on the side for every line that is in error, which makes it very easy to find them).
Look, I'm a fan of Intellisense and all (when running on a powerful enough machine), but while VS2010 is "faster" than previous versions (almost as fast as VC++6), it purports to be a "rich" IDE that gets surprisingly sparse in places, and downright weird in others.
Visual Studio reminds me of guys who put racing stripes and thin tires and big mufflers on their Honda Civics and somehow convince themselves they've got a "race car".
As someone who is currently trying to marry .net and C++/COM, I can tell you that I have never felt more hatred for Microsof and their crap. I can't believe I yearn for the simpler days of the Win32 API with all their associated baggage left over from trying to keep compatible with the Win-freaking-16 API, which I remember swearing at then too (MFC only hid the "big" APIs, but anything non-GUI related meant you were likely to pull out the MSDN library discs).
Having worked with Linux/Unix in C/C++ the joy is knowing that the API is *stable*; malloc() hasn't changed in what, 30+ years?? I can pull out programming books bought at second-hand stores from the 80s and still make use of the code and concepts.
I would not recommend, at this point, willingly starting any new project on Windows unless there was an absolute need to somehow tie in with Office directly (and if all you need to do is create office docs, I'd go with Java's Poi library instead).
Small tangent, but reading Ebert's musings on video games reminds me of how my family sees computers; a "computer" is a series of refrigerator-sized cabinets with spinning tape drives, output on green-bar paper, etc. No amount of evidence will convince them that anything smaller is anything other than a "toy", as if there was no progression from the 70s homebrew era. Ironically they have no problems keeping a contradictory thought that the machines they *do* use (Macs, PCs, other devices, etc.) are extremely useful, have made their lives much better, etc., but they are still toys in their eyes.
Maybe it really is a generational thing; if you know just enough about the history of computers, but without the proper context, you can draw the wrong conclusion that there has essentially been no progress in computers or games, regardless of what you see in front of you. I coined the phrase to describe my family as having "Escher's Syndrome", where you can see the endless winding staircase, but because it doesn't make sense to you, the brain just stops dealing with it.
I can't think of any other product that Microsoft made that fell out of its graces so quickly. I think even Microsoft Bob got a year in the stores before it was "retired".
Yes, it can be difficult, though with the brightness turned all the way up, it's...okay; if I'm under a tree it's perfectly fine, only in the direct sunlight does it become a problem.
The iPad version of MotionX's GPS application is good in that the lat/long screen shows the coordinates in big numbers, so it's pretty easy to read.
I'm an avid geocacher and I've found the GPS accuracy in the iPad to be better than the iPhone, and comparable to my Garmin 60csx (which is more-or-less the gold standard). I use the iPad for a lot of other reasons (the kids like to watch movies or play games on it while we're driving out to a forest preserve) but I was really pleasantly surprised to see that I could pretty much rely on it to get me to the spot.
I'm waiting for Otterbox to come out with their Defender case so I can keep it out all the time through the woods, instead of putting it back in the backpack on the chance I trip over a log or something. The iPad might not be as compact as the iPhone or Garmin, but it beats a day of DNFs.
The mother of all demos is typically cited as where Douglas Engelbart demonstrated the mouse as a pointing device for the very first time, but what is forgotten is that he also had, for his left hand, a small set of levers for performing "common actions" (read: shortcuts) that essentially served a similar purpose as all those buttons on this mouse.
I remember reading in a book that, among all the SRI researchers, only Engelbart himself ever got the hang of how to use it; the others apparently simply preferred to use the mouse and keyboard. I wouldn't be surprised if this mouse gets a fanatical following of about three people, while the rest of the world moves on.
Excellent! I knew MicroChannel would win eventually! I am so sitting pretty with my model 80 and 95. Go Big Blue! Go Big Blue!
I just came back from taking a break outside and my co-worker said he felt it. We're in downtown Chicago. When it happened I was probably on a bridge and would have figured it was just a bus. :)
Say what you will about the position Apple is currently in, but they have been screwed over many times by other companies (Microsoft with Office, Adobe with Premiere, IBM with PowerPC @ 3ghz), and they figured that it was critical to their success that they take control of their own destiny.
What they've done is made a streamlined version of an ARM processor that is useful for their current needs; they do not need to "keep up" with anyone in that they get their processor to do what they want it to do for this particular need. If anything, by not having to cater to anyone but themselves, they have the ability to have custom hardware, but still based on the widely-used ARM architecture, so they don't have to completely re-tool when they come up with an A5 or A6 or whatever. Jobs himself said that they are not in the business of licensing their technology. You won't see an A4 being offered in lots of 100 to anyone for other purposes, it's a chip for Apple and their products only.
I was wondering too about the wisdom of this move, but it shows that they are not going to hitch their wagon to anyone's horse but their own, and that they have the ability to modify the horse to pull whatever load is necessary at that moment, a new iPad, new iPhone, AppleTV, whatever.
I'm glad I waited; I was going to buy the previous version in the server configuration. Say what you will about HDMI ports, no blu-ray, etc., but the mini makes for a great server. I run Jira, Subversion, Postgres, and Tomcat for a dev team on one mini and it hasn't given me a minute of problems. If anything, I forget where it lives because it's so small. That said, I'd like to replace our existing one with a new one for the increased disk space (currently the db is on an external disk) and to possibly use the built-in Jabber server than the one we've got now.
Jet Grind/Set Radio is probably my #1 of man-I-wish-I-could-play-that-again titles from the DC era. I was able to buy a copy of the soundtrack from an online reseller (who's name everybody would recognize, but I've completely forgotten...they were shut down by Sony/Nintendo...Lik Sang?) and I was listening to it just two days ago.
Good times. Great game. Awesome tunes.
This bites me occasionally in Oracle where you've got a big query that has lots of tables joined together, and then at some point one of the columns is removed from the select part, and the query performance suddenly goes to hell. Then you have to go through and verify that each table is actually being used (even worse if the column that was removed from the select came from deep joins).
Go Postgres!
As I recall, there was a group of people who contributed to buying him an iPod as a way of trying to show that not everyone who saw the video was laughing at him. Any idea whether he got it? TFA doesn't mention it.
I've been thinking the same thing, and I think that (though I don't know for sure as I'm not a video game developer), that Sony, Nintendo, and Microsoft won't even let you write the game without putting through a proposal. I doubt it's much more than a general form that describes the overall gameplay, maybe a pic of some concept art or somesuch, and assuming the game isn't based on the characters from goatse.cx, they presumably give you the tentative go-ahead. Of course, when I say "won't let you develop" the game, I mean that they wouldn't consider approving it unless you submit the proposal ahead of time.
I suppose that would double the work on Apple; they'd need a staff to review the finished apps, as well as a group of people to sift through the proposals. Also, I could see the process being abused; even if the proposal site was limited to official developers, that's only $99 that would give some the idea that they could write an automated script to flood the system with boilerplate proposals.
Still, even if that were the case, I'd still want to do that. Like you said, it's hard to think you've spent time on something only to be rejected for some arbitrary reason. My ideas for apps are, I think, totally in the mainstream, but I can imagine being rejected simply because some faceless reviewer didn't like my choice of background wallpaper in the app.
"...It gives you an erection, it wins the election..."
"We're not happy until you are not happy"
I used Plato as a cartridge on the TI-994/A...it was a math instruction course if I recall. I know the original Plato was an online system, and our TI-994/A was definitely *not* online, so it always confused me to hear about Plato as this enormous ecosystem, when all I thought of it was a boring program that kept me from playing "King Tut".
The only thing I do definitely remember about the program was that it was white text on a blue background, and the copyright included the University of Illinois, which being from Chicago, gave me some sort of excitement that if I went there, *I* could write programs for the TI-994/A! Maybe even the Apple ][!
Anyone else use this version?