I know, this won't apply to gamers, designers, etc.
But as a programmer, I find that the best mouse is (going towards) no mouse at all - especially when most of my work is done on a laptop. For text editing, I switched to the Vim input model. And in all programs I use, I work more and more towards using keyboard shortcuts instead of the mouse.
Stroustrup insisted that C++ had no major problems - it just needed some cleanup. Lame FUD. Can you provide a reference that supports this fallacious statement?
My recollection is that Stroustrup was:
encouraging library extensions rather than language extensions, acknowledging that the language was already complex enough as it is
encouraging language changes/extensions only where they make C++ easier to learn and understand
Specifically, you may want to check http://www.artima.com/cppsource/cpp0x.html
Short of dropping backwards-compatibility with the current code base, what kind of language changes would you like to see?
C++ is unique in that it has hiding without safety. Noting in the C++ standard requires the language to be "unsafe".
If you look at standard C++ library implementations, for example, some are currently providing ubiquitous range-checking (within the library). Compliers have started to provide built-in checks for buffer overruns. You can integrate a garbage collectors as add-on (personally I much prefer RAII). And C++ could be compiled to a virtual machine.
But the standard does not mandate any of the above, because it does not want to preclude the use of C++ for system programming.
And it also just seems that the community of C++ users still remain more interested in the latest optimizing compilers and auto-vectorization capabilities, than in the safety-enhancing features.
Just to keep things in perspective: the intervention they did is the removal of a "lipoma", which is like a dense hazelnut-sized ball of fatty tissue. It is barely more complicated that cutting out a tiny patch of skin to remove a mole.
I know a surgeon who has a buch of lipomas (like moles, some people just tend to get those benign tumors), and who routinely removes them on himself (only needs assistance if the lipoma is on his arm and he needs a second hand).
That is to say, I am not that impressed, this is not that revolutionary.
""There are frequent disconnections; and hence loss of work while code check-ins.""
Is this the key reason why you need a VPN?
[BTW, I hope that you are not using MS SourceSafe...] Have you considered alternate revision control systems?
On the (not too expensive) commercial side, I am a fan of Code Co-op, from http://www.relisoft.com/. I've used it with a development team in China a few years ago, and they were definitely worse-off than you. Free trial available for download.
If you were not selected at random, you could ask why, and maybe even have the right to know. Saying the selection was random just cuts the discussion short.
Smart. Do you see a way to use this excuse in your personal life?
- small kids: I'm just not interested in my kids running around with a wireless mouse and loosing it in an obscure place
- older kids: I prefer them not to have internet access in their own room, but have them 'wired' to a shared space / living room.
- security: encryption or not, wired, physical connections are safer. Don't get me started, I still don't get why they make RFID-enabled passports and keys which end up being readable without your control.
- are you confident with the safety of cell phones? Admittedly, Wifi signals should be weaker. Yet when I get to the office and plug power & ethernet cable to my laptop, it just feels natural to cut-off wireless.
One graduated in 95, started working for a document search company (think study of algorithms and performance optimization). He went to Inktomi and is now happily working for Yahoo.
The other graduated last year and is now working with me in a medical device company, being of great help with planning and analyzing results of our product validation studies, while getting involved with software development as well.
If you're looking at applying your knowledge in mathematics, all engineering fields are open to you.
As developers, we always have a tendency to think in terms of best case scenario. And once you voice that best case once, it gets very difficult to get out of a crazy commitment.
So *before* providing any numbers, make sure to list the assumptions that you are making, and the interferences and risks that may (and most likely will) occur:
- other projects and assignments that will steal time and resources
- spec changes and debugging time, customer interaction Explain that you have an estimate in Effort-Days or Effort-Hours dedicated to the project, but that this is not the same as a Calendar-Day. With week-ends, holidays, admin tasks, etc, count 200-240 effort-days per year.
Explain that uncertainty remains on a number of tasks. You want to give your best-case estimate, but there are things that you don't know, but in practice best case NEVER happens. Provide a more likely estimate taking the risks into account.
Highlight the key risks and challenges being faced. Discuss ways in which those risks could be mitigated: does it make sense to create a first prototype (to check technical feasibility and/or get end-user feedback) ? Or can hiring a consultant (that you would select) to help you with a specific technology (e.g. set-up that database back-end) help speed things up/reduce risk? (sometimes few hours here and there for a couple of days total is enough). Keep in mind that "throwing more resources" at the task often only worsen's a project's delay (training and communication overhead, etc).
Does not having a quiet and uninterrupted work environment interfere with your productivity? Point this out, make concrete suggestions for improvements.
MBA or not, your manager hopes to just get a number from you, and then bind you to it. Don't let this happen, but don't be confrontational either: you need to establish a teamwork. It is not about you escaping any pressure from a commitment. But many interferences are out of your control, and Manager might be able to help keep those away.
It is in your mutual interest to have estimates that work. And this is also why you need to keep track of your progress, and notice deviations early on. Be dedicated, and act responsibly. Warn Manager of any delays and problems that occur, so you can rectify the estimated schedule (or the environment) together.
All in all - OOo's file formats are a nice and simple solution for exchanging reasonably sized documents (if you don't mind usual XML-namespace-hell structure) but for editing/working on larger documents/spreadsheets you may find yourself using MSOffice document formats (from within OOo). Pity they don't provide their own "scratch-pad/database-in-a-file" formats.
This is correct if you compare ODF to the "good old" binary formats of MS Office. But the article compares ODF to Microsoft's own XML-based format, which is based pretty much on the same philosophy (XML document in a.zip-file, including images etc as separate files).
Using XML and a zipped file has drawbacks, but those are equally shared by the ISO standard and Microsoft's proposal -- and I read that this XML-based format will become the default for Office 2007. So your argument is moot.
Re:Remember that Censorship does exist at home too
on
Google's China Problem
·
· Score: 1
Some clarifications:
- I am totally European
- I am not saying we should muzzle ourselves so as to not offend any community, I'm only saying it is a hypocrisy to claim that we tolerate no censorship, when "our" (occidental) media censor themselves all the time. Feel free to say that your country shall be free to impose its own standards - but don't use "freedom of speech" as a justification, as it would be a hypocrisy. A couple of weeks after that story, for example, French radio stations refused to broadcast a new Rap song entitled "Chirac en Prison".
- I remember protests and some of our theaters being put to fire when Scorsese's "The Last Temptation of Christ" came out.
- Next to self-censoring, there is "revisionism": even reputable institutions like Time magazine have been known to give into it [see at the end of http://mediastudy.com/articles/av12-11-03.html, I was able to verify the existence of that article].
- Congrats for the cursing, but it's easy on Slashdot. Make up a good story around it, and you might get airtime on a Jerry Springer-style show. But if you have strongly dissenting opinions about politics or society, it is more difficult to be heard. I am somewhat disappointed that political debate on TV has become more and more chastised over the years -- while you get more and more of the lowly and clueless "shocking" debates and reality shows. How can true democracy work if people are not adequately educated?
- Was it in the UK that more than half of respondents to a poll agreed that "Creationist theories should be thought as part of *science* classes alongside Darwin's theories", and almost as many did not believe in "Darwin's theories" ?
Again, all I want to say is that we should not forget to check ourselves in a mirror. These rumblings were simply triggered by this quote included in the original story: >>
Seen from Europe, US news have been so incredibly single-sided when it comes to War on Terror or Irak. And how often have you seen body bags coming back from Irak on national television?
And Europe is no better: the press was proudly displaying the Caricatures of the prophet Muhammad, boasting about how they support freedom of expression. Yet how many of those newspapers would accept to publish a carricature combining the Christ, the Holocaust, and phallic symbols.
Can we conceive that for muslim communities, displaying a representation of their prophet is just as unacceptable as using 4-letter words in the US? I wish they would not cause riots because of this, on the other hand they don't have the means to muzzle our mass media as other communities can.
Of course, you are less likely to be shot if you speak out a diverging opinion in the occident than in other parts of the world. But you might well be committing social or economic suicide by speaking up. This ensures that the media, who have tremendous control over what we see or hear, just won't let it happen.
I don't want to defend Chinese policies, or put the blame on anyone. I just wish that all of our societies were enriched by more open debates, feeding a more intelligent understanding of opposed points of views.
Nice scenario, but to what portion of the "office suite" user base does it really apply?
Not to home users. Probably not to most small businesses that don't have much of document-handling procedures, or even the desire to maintain a back-office server for that kind of stuff.
Then you'll have large corporations, but many of those already have a dedicated infrastructure for document management (software that is often customized to support the companie's processes, and that tracks the review & approval status of project documents among other things).
The parent post makes it sound like MS Office is becoming a 'niche' product...
I find that the good old newsgroups (with the addition of google groups) have always been very helpful in finding a required bit of information when needed. I don't need more.
Of course it also helps to have a few friends gifted in specific aspects of development (quality systems, graphical, etc...).
Agreed -- stability is more about fault tolerance by design.
Key things to watch for IMHO are:
- Keep things simple: don't multiply processes and communication layers for the sake of 'isolation'. Include a point of recovery (e.g. relaunch a process), but don't try to be too smart.
- Use higher-level abstractions: proper use of smart pointers will keep most memory leaks away. I've had 1 identified leak in my last 7 years of coding in C++ (and I do look for them). Use containers. Use a debug-enabled implementation of the Standard C++ library if you can.
- Use encapsulation: create your own abstractions, use module tests.
- Make an upfront analysis of all possible failure modes: network failures, memory outages, data corruption, etc... Think how you will deal with an unrecoverable errors requiring external intervention. How will an administrator be notified? Can you alert preventively about a problem that is going to happen soon?
- Study safe coding practices...
[ running out of time now ]
BTW: Java/.Net/Managed applications will crash too. The only thing they hopefully protect you from is memory corruption. This doesn't mean you'll always land into a recoverable state. Many very stable systems have been written in C/C++. All the managed infrastructures are coded in those languages as well.
This is a 2-month old Dell Latitude, and it hasn't ever been in contact with a _commercial_ game before (I guess that installing a free Sudoku generator does apply as a game...). Visual Studio & Office are the only commercial apps installed (next to a buch of free tools: Firefox, Thunderbird, GCC, etc...).
Anyway, it appears to me that the free game "TrackMania Nations ESWC" installs the malware. A quick series of searches through the EULA (I had not read it initially, too small window for viewing, requires copy-pasting elsewhere) did not reveal any info about the installation of StarForce.
"CD copy-protection" for a free game downloadable off the internet? Can't blame Starforce for how its tech is (mis-)used? I say this is pure malware in any case.
There are many C++ GUI libraries, but I'm afraid that they all share a common weakness: the lack of reliance on the standard C++ library. Except maybe gtkmm, but how well is this library supported?
All the frameworks I know tend to use their own string class, their own containers, etc -- and obviously as well their own threading library.
Programmers agonize over whether to allocate on the stack or on the heap.
I have never felt the last bit of anxiety when choosing to "allocate" an object on the stack. I do not even call this an allocation, I just use a local variable that happens to be an object. I only allocate an object on the heap when I know this object needs to be exported from the function -- which is something I'd better be aware of by design. Stack-allocation is an easy, default, way of life in C++. It is even a key idiom for managing non-memory resources (RAII).
When programming in C or Java, what makes me agonize is to manually ensure that (non-memory) resources are released properly and in a timely fashin (files, locks, communication ports, etc). try...finally blocks, anyone ?
Well, if I'm reading this right, "C++0x"* will give us: I don't think you've read this right, if at all.
C++ is bringing us much more than the tiny details you are focussing on. For a picture of what's going one, check the many proposals that are currently being reviewed: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/
Templates in C++ are much more than a macro system, which already existed in C. What exactly are you looking for that is not supported in C++ templates? Maybe introspection, or the definition of constraints on the template parameters? Well, there are proposals for adding both of these features to C++0x.
Boost has been a powerful tool for studying the design and implementation of new features as library extensions. Many have matured, and now that the community has gained experience with them, they are being integrated to the standard language. Just because of this higher level of maturity, I expect to see them properly implemented much faster than the original STL. Many features offered in Boost work nicely as is, and are being integrated in the standard library (e.g. function objects/delegates, ref-counting smart pointers, tuples, regular expressions, threading). Others were proven to require language changes, which are being proposed for integration in the core language: typeof, closures, etc.
Finally, "C++0x" is not the name of a new language. It is a reference to the next standard, expected sometime before 2010 (therefore 200x), which will become The C++. There is just no marketing guy giving this a fancy name to sell it as the next big thing.
About how these problems are being addressed, or why they may remain as is:
1. [Member function pointers & lack of delegates] Derived from boost::function http://www.boost.org/doc/html/function.html, function objects are being added to the standard library. They will support callbacks in a way that is comparable to what is found in C# (and in compiler-specific extensions such as Borland's). It was always intended to have this as a standard library.
2. "virtual =0" syntax - what's wrong with nice words C and C++ have always made trade-offs to avoid introducing additional keywords that could break backwards-compatibility. Personally, I'm not bothered much by this syntactic detail. "#define abstract =0" if you wish. But it would be nice to have explicit overrides vs new function, as supported in other languages and vendor-specific extensions (e.g. Microsoft's C++/CLI).
3. new & delete, delete doesn't take a parameter If you want both new and delete to take a parameter, what you are looking for is a container that stores your elements. Low-level usage of new & delete overload is an advanced technique, that only experts should have to use. If it appears clunky to you, don't use it. I understand its logic.
4. typeof operator This is an extension that is expected to be part of the next C++ standard, and that an increasing number of compilers are supporting. [plus there are today some (ugly) library hacks to provide that functionality in standard C++98]
Totally agree with parent. Ultimately, the code is the design. To me, a properly documented header/source file speaks just as clearly as a UML diagram -- and it remains in sync with what the code is today. So I like to use doc-from-source generation tools such as doxygenhttp://www.doxygen.org/ or javadoc.
The design document should not include any information that is readily available in the code. Instead, it should provide:
- the big picture, illustrations, an introduction to a module's architecture, and how the module fits in the system.
- an explanation and justification of all the key design choices that where made.
- cross-referencing information (i.e. traceability of requirements, etc).
It has all the click to zoom & drag features, but shows you real aerial/satellite images as you go. Also Javascript+DHTML.
The same site also has business search and reverse phone lookup, with links to the map system. Route planning is missing though at this point.
It has separate boxes to enter an address, but typing its components on the URL works well (it has some flexibility) - it's great for inclusion in my Firefox shorcuts.
I know, this won't apply to gamers, designers, etc.
d el/
But as a programmer, I find that the best mouse is (going towards) no mouse at all - especially when most of my work is done on a laptop. For text editing, I switched to the Vim input model. And in all programs I use, I work more and more towards using keyboard shortcuts instead of the mouse.
For a story that relates to mine, see: http://blog.ngedit.com/2005/06/03/the-vi-input-mo
My recollection is that Stroustrup was:
- encouraging library extensions rather than language extensions, acknowledging that the language was already complex enough as it is
- encouraging language changes/extensions only where they make C++ easier to learn and understand
Specifically, you may want to check http://www.artima.com/cppsource/cpp0x.htmlShort of dropping backwards-compatibility with the current code base, what kind of language changes would you like to see? C++ is unique in that it has hiding without safety. Noting in the C++ standard requires the language to be "unsafe".
If you look at standard C++ library implementations, for example, some are currently providing ubiquitous range-checking (within the library). Compliers have started to provide built-in checks for buffer overruns. You can integrate a garbage collectors as add-on (personally I much prefer RAII). And C++ could be compiled to a virtual machine.
But the standard does not mandate any of the above, because it does not want to preclude the use of C++ for system programming.
And it also just seems that the community of C++ users still remain more interested in the latest optimizing compilers and auto-vectorization capabilities, than in the safety-enhancing features.
> What about internet use, with sites such as youtube,
> will that cause autism as well?
Yes, when used by toddlers below the age of 3, just as well.
Just to keep things in perspective: the intervention they did is the removal of a "lipoma", which is like a dense hazelnut-sized ball of fatty tissue. It is barely more complicated that cutting out a tiny patch of skin to remove a mole.
I know a surgeon who has a buch of lipomas (like moles, some people just tend to get those benign tumors), and who routinely removes them on himself (only needs assistance if the lipoma is on his arm and he needs a second hand).
That is to say, I am not that impressed, this is not that revolutionary.
""There are frequent disconnections; and hence loss of work while code check-ins.""
Is this the key reason why you need a VPN?
[BTW, I hope that you are not using MS SourceSafe...]
Have you considered alternate revision control systems?
On the (not too expensive) commercial side, I am a fan of Code Co-op, from http://www.relisoft.com/. I've used it with a development team in China a few years ago, and they were definitely worse-off than you. Free trial available for download.
If you were not selected at random, you could ask why, and maybe even have the right to know.
Saying the selection was random just cuts the discussion short.
Smart. Do you see a way to use this excuse in your personal life?
Reasons why, beyond reliability:
- small kids: I'm just not interested in my kids running around with a wireless mouse and loosing it in an obscure place
- older kids: I prefer them not to have internet access in their own room, but have them 'wired' to a shared space / living room.
- security: encryption or not, wired, physical connections are safer. Don't get me started, I still don't get why they make RFID-enabled passports and keys which end up being readable without your control.
- are you confident with the safety of cell phones? Admittedly, Wifi signals should be weaker. Yet when I get to the office and plug power & ethernet cable to my laptop, it just feels natural to cut-off wireless.
One graduated in 95, started working for a document search company (think study of algorithms and performance optimization). He went to Inktomi and is now happily working for Yahoo.
The other graduated last year and is now working with me in a medical device company, being of great help with planning and analyzing results of our product validation studies, while getting involved with software development as well.
If you're looking at applying your knowledge in mathematics, all engineering fields are open to you.
As developers, we always have a tendency to think in terms of best case scenario. And once you voice that best case once, it gets very difficult to get out of a crazy commitment.
So *before* providing any numbers, make sure to list the assumptions that you are making, and the interferences and risks that may (and most likely will) occur:
- other projects and assignments that will steal time and resources
- spec changes and debugging time, customer interaction
Explain that you have an estimate in Effort-Days or Effort-Hours dedicated to the project, but that this is not the same as a Calendar-Day. With week-ends, holidays, admin tasks, etc, count 200-240 effort-days per year.
Explain that uncertainty remains on a number of tasks. You want to give your best-case estimate, but there are things that you don't know, but in practice best case NEVER happens. Provide a more likely estimate taking the risks into account.
Highlight the key risks and challenges being faced. Discuss ways in which those risks could be mitigated: does it make sense to create a first prototype (to check technical feasibility and/or get end-user feedback) ?
Or can hiring a consultant (that you would select) to help you with a specific technology (e.g. set-up that database back-end) help speed things up/reduce risk? (sometimes few hours here and there for a couple of days total is enough). Keep in mind that "throwing more resources" at the task often only worsen's a project's delay (training and communication overhead, etc).
Does not having a quiet and uninterrupted work environment interfere with your productivity? Point this out, make concrete suggestions for improvements.
MBA or not, your manager hopes to just get a number from you, and then bind you to it. Don't let this happen, but don't be confrontational either: you need to establish a teamwork.
It is not about you escaping any pressure from a commitment. But many interferences are out of your control, and Manager might be able to help keep those away.
It is in your mutual interest to have estimates that work. And this is also why you need to keep track of your progress, and notice deviations early on. Be dedicated, and act responsibly. Warn Manager of any delays and problems that occur, so you can rectify the estimated schedule (or the environment) together.
Hope this helps -Ivan
Joel Spolsky had described a simple approach on his website:2 45.html
http://www.joelonsoftware.com/articles/fog0000000
Absolutely worth a read (like most of Joel's writings).
This is correct if you compare ODF to the "good old" binary formats of MS Office. But the article compares ODF to Microsoft's own XML-based format, which is based pretty much on the same philosophy (XML document in a
Using XML and a zipped file has drawbacks, but those are equally shared by the ISO standard and Microsoft's proposal -- and I read that this XML-based format will become the default for Office 2007. So your argument is moot.
Some clarifications:
- I am totally European
- I am not saying we should muzzle ourselves so as to not offend any community, I'm only saying it is a hypocrisy to claim that we tolerate no censorship, when "our" (occidental) media censor themselves all the time. Feel free to say that your country shall be free to impose its own standards - but don't use "freedom of speech" as a justification, as it would be a hypocrisy. A couple of weeks after that story, for example, French radio stations refused to broadcast a new Rap song entitled "Chirac en Prison".
- I remember protests and some of our theaters being put to fire when Scorsese's "The Last Temptation of Christ" came out.
- Next to self-censoring, there is "revisionism": even reputable institutions like Time magazine have been known to give into it [see at the end of http://mediastudy.com/articles/av12-11-03.html, I was able to verify the existence of that article].
- Congrats for the cursing, but it's easy on Slashdot. Make up a good story around it, and you might get airtime on a Jerry Springer-style show. But if you have strongly dissenting opinions about politics or society, it is more difficult to be heard. I am somewhat disappointed that political debate on TV has become more and more chastised over the years -- while you get more and more of the lowly and clueless "shocking" debates and reality shows. How can true democracy work if people are not adequately educated?
- Was it in the UK that more than half of respondents to a poll agreed that "Creationist theories should be thought as part of *science* classes alongside Darwin's theories", and almost as many did not believe in "Darwin's theories" ?
Again, all I want to say is that we should not forget to check ourselves in a mirror.
These rumblings were simply triggered by this quote included in the original story:
>>
No censorship in America ???
Well, Google does censor its cached pages in China, doesn't it?
Seen from Europe, US news have been so incredibly single-sided when it comes to War on Terror or Irak.
And how often have you seen body bags coming back from Irak on national television?
And Europe is no better: the press was proudly displaying the Caricatures of the prophet Muhammad, boasting about how they support freedom of expression. Yet how many of those newspapers would accept to publish a carricature combining the Christ, the Holocaust, and phallic symbols.
Can we conceive that for muslim communities, displaying a representation of their prophet is just as unacceptable as using 4-letter words in the US?
I wish they would not cause riots because of this, on the other hand they don't have the means to muzzle our mass media as other communities can.
Of course, you are less likely to be shot if you speak out a diverging opinion in the occident than in other parts of the world. But you might well be committing social or economic suicide by speaking up.
This ensures that the media, who have tremendous control over what we see or hear, just won't let it happen.
I don't want to defend Chinese policies, or put the blame on anyone. I just wish that all of our societies were enriched by more open debates, feeding a more intelligent understanding of opposed points of views.
Nice scenario, but to what portion of the "office suite" user base does it really apply?
Not to home users.
Probably not to most small businesses that don't have much of document-handling procedures, or even the desire to maintain a back-office server for that kind of stuff.
Then you'll have large corporations, but many of those already have a dedicated infrastructure for document management (software that is often customized to support the companie's processes, and that tracks the review & approval status of project documents among other things).
The parent post makes it sound like MS Office is becoming a 'niche' product...
I find that the good old newsgroups (with the addition of google groups) have always been very helpful in finding a required bit of information when needed.
I don't need more.
Of course it also helps to have a few friends gifted in specific aspects of development (quality systems, graphical, etc...).
Agreed -- stability is more about fault tolerance by design.
Key things to watch for IMHO are:
- Keep things simple: don't multiply processes and communication layers for the sake of 'isolation'. Include a point of recovery (e.g. relaunch a process), but don't try to be too smart.
- Use higher-level abstractions: proper use of smart pointers will keep most memory leaks away. I've had 1 identified leak in my last 7 years of coding in C++ (and I do look for them). Use containers. Use a debug-enabled implementation of the Standard C++ library if you can.
- Use encapsulation: create your own abstractions, use module tests.
- Make an upfront analysis of all possible failure modes: network failures, memory outages, data corruption, etc... Think how you will deal with an unrecoverable errors requiring external intervention. How will an administrator be notified? Can you alert preventively about a problem that is going to happen soon?
- Study safe coding practices...
[ running out of time now ]
BTW: Java/.Net/Managed applications will crash too. The only thing they hopefully protect you from is memory corruption. This doesn't mean you'll always land into a recoverable state.
Many very stable systems have been written in C/C++. All the managed infrastructures are coded in those languages as well.
I've found I have StarForce on my laptop that I only use for work... except:2 590%255...php?article_id=62590 and http://downloads.gamezone.com/demos/d14755.htm for dlnd) for my kids. I have downloaded it and installed/tested it once, before uninstalling and copying in on a USB key for transfer to the kid's machine.
Two days ago, a friend of mine has recommended the free "TrackMania Nations ESWC" (see http://www.eurogamer.net/article.php?article_id=6
This is a 2-month old Dell Latitude, and it hasn't ever been in contact with a _commercial_ game before (I guess that installing a free Sudoku generator does apply as a game...). Visual Studio & Office are the only commercial apps installed (next to a buch of free tools: Firefox, Thunderbird, GCC, etc...).
Anyway, it appears to me that the free game "TrackMania Nations ESWC" installs the malware. A quick series of searches through the EULA (I had not read it initially, too small window for viewing, requires copy-pasting elsewhere) did not reveal any info about the installation of StarForce.
"CD copy-protection" for a free game downloadable off the internet?
Can't blame Starforce for how its tech is (mis-)used?
I say this is pure malware in any case.
There are many C++ GUI libraries, but I'm afraid that they all share a common weakness: the lack of reliance on the standard C++ library. Except maybe gtkmm, but how well is this library supported?
All the frameworks I know tend to use their own string class, their own containers, etc -- and obviously as well their own threading library.
I have never felt the last bit of anxiety when choosing to "allocate" an object on the stack. I do not even call this an allocation, I just use a local variable that happens to be an object.
I only allocate an object on the heap when I know this object needs to be exported from the function -- which is something I'd better be aware of by design.
Stack-allocation is an easy, default, way of life in C++. It is even a key idiom for managing non-memory resources (RAII).
When programming in C or Java, what makes me agonize is to manually ensure that (non-memory) resources are released properly and in a timely fashin (files, locks, communication ports, etc). try...finally blocks, anyone ?
Well, if I'm reading this right, "C++0x"* will give us:
s /
I don't think you've read this right, if at all.
C++ is bringing us much more than the tiny details you are focussing on. For a picture of what's going one, check the many proposals that are currently being reviewed:
http://www.open-std.org/jtc1/sc22/wg21/docs/paper
Templates in C++ are much more than a macro system, which already existed in C. What exactly are you looking for that is not supported in C++ templates? Maybe introspection, or the definition of constraints on the template parameters? Well, there are proposals for adding both of these features to C++0x.
Boost has been a powerful tool for studying the design and implementation of new features as library extensions. Many have matured, and now that the community has gained experience with them, they are being integrated to the standard language. Just because of this higher level of maturity, I expect to see them properly implemented much faster than the original STL.
Many features offered in Boost work nicely as is, and are being integrated in the standard library (e.g. function objects/delegates, ref-counting smart pointers, tuples, regular expressions, threading).
Others were proven to require language changes, which are being proposed for integration in the core language: typeof, closures, etc.
Finally, "C++0x" is not the name of a new language. It is a reference to the next standard, expected sometime before 2010 (therefore 200x), which will become The C++. There is just no marketing guy giving this a fancy name to sell it as the next big thing.
About how these problems are being addressed, or why they may remain as is:
1. [Member function pointers & lack of delegates]
Derived from boost::function http://www.boost.org/doc/html/function.html, function objects are being added to the standard library. They will support callbacks in a way that is comparable to what is found in C# (and in compiler-specific extensions such as Borland's).
It was always intended to have this as a standard library.
2. "virtual =0" syntax - what's wrong with nice words
C and C++ have always made trade-offs to avoid introducing additional keywords that could break backwards-compatibility.
Personally, I'm not bothered much by this syntactic detail. "#define abstract =0" if you wish. But it would be nice to have explicit overrides vs new function, as supported in other languages and vendor-specific extensions (e.g. Microsoft's C++/CLI).
3. new & delete, delete doesn't take a parameter
If you want both new and delete to take a parameter, what you are looking for is a container that stores your elements.
Low-level usage of new & delete overload is an advanced technique, that only experts should have to use. If it appears clunky to you, don't use it. I understand its logic.
4. typeof operator
This is an extension that is expected to be part of the next C++ standard, and that an increasing number of compilers are supporting. [plus there are today some (ugly) library hacks to provide that functionality in standard C++98]
Totally agree with parent.
Ultimately, the code is the design.
To me, a properly documented header/source file speaks just as clearly as a UML diagram -- and it remains in sync with what the code is today.
So I like to use doc-from-source generation tools such as doxygenhttp://www.doxygen.org/ or javadoc.
The design document should not include any information that is readily available in the code.
Instead, it should provide:
- the big picture, illustrations, an introduction to a module's architecture, and how the module fits in the system.
- an explanation and justification of all the key design choices that where made.
- cross-referencing information (i.e. traceability of requirements, etc).
Yes, but the original quote about premature optimzations should properly be attributed to Tony Hoare, who originally stated it.
o n
See http://en.wikipedia.org/wiki/Premature_optimizati
Check this service:
;)
;)
http://map.search.ch/
It has all the click to zoom & drag features, but shows you real aerial/satellite images as you go. Also Javascript+DHTML.
The same site also has business search and reverse phone lookup, with links to the map system. Route planning is missing though at this point.
It has separate boxes to enter an address, but typing its components on the URL works well (it has some flexibility) - it's great for inclusion in my Firefox shorcuts.
By the way, here's my work's address:
http://map.search.ch/morges/lausanne-45/
Watch, maybe you'll see me drive out of the building
I'd say its a draw between google and search.ch - go Switzerland