Try it on Linux. They probably show up as/dev/devttyACM# . Or I think that's what it showed for the last time I tried it with a USB phone. You could use it as an EVDO modem, and even send/receive SMS directly with it.
Of course, blackberrys aren't recognized automatically.
Since you seem to be knowledgeable about the subject:
Do you know of any VR Goggle with a wide field of view? Everything I see has at most 40 degrees field of view, which would be like looking through a tunnel. I can get a wider field of view by standing near my monitor (Which I do).
For things to be inmersive I would want the display to include my peripheral vision, even if only with very low resolution on the sides. I don't want to feel like I'm wearing swimming goggles.
My personal use for it (together with head/eye tracking) would be to write a window manager where I can hang windows all around me, and where I can switch windows by looking at them. Compiz already renders to the screen with OpenGL from intermediate buffers, extending it to a wider canvas shouldn't be that hard. It's basically being inside the spinning cube (or ring, really). But the low resolution, tunnel vision and now your comfort argument make it an unattractive proposition.
It's not that the act of programming itself is a religion. It's that people's choice of programming language sometimes becomes a religion for them.
Have you never met anyone who thought you were an idiot because you don't agree that $LANGUAGE is the best thing out there? You'll have people spend all day arguing that C lets you stay close to the machine and program more efficiently (as if that mattered), that java lets you run the program on any architecture (as if recompiling was impossible), that haskell lets you pass functions around and apply them (as if there were no function pointers), that the C++ STL and destructors save so much time and bugs (As if other languages didn't have container libraries nowadays), that CPAN saves you inmense amounts of work (as if no libraries existed for other languages).
Programming is just like religion in that you cannot prove that one is better than the other and in fact your choice is often a matter of which you learned first and which you like better.
If you're willing to spend hours arguing about your views on programming then it's a religion for you. Sorry
Disclaimer: I prefer C++ but can code in anything you throw at me. I'll look at each project before I decide on a language, and often depends on who will be maintaining it. I also hold a similar view on atheism, it can be a religion or not depending on how much time you're willing to argue about it. Since you view the comparison with a religion as an insult, this might apply to you. Sorry.
Stasis your oponents' fleet with your arbiter and start a 15 second countdown. On zero, your teammate nukes the stasis. Wait 30 seconds for the nuke to come down right on your open-mouthed oponents' fleet.
To add insult to injury, if you manage to stasis both their and your ships, you can recall them out right before the nuke hits.
How about, at the point where they reach a 10% failure rate.
Right now, any possible savings in fuel and vehicle costs will be taken up by the added insurance costs for the payload. And forget about manned launches.
Also, everyone used pencils and mechanical pencils at first, then grease pencils and slates. Fisher developed his space pens independently and then sold it both to NASA and Russia.
We've been doing job interviews for the last few weeks. Mostly recent graduates, but a couple of people with experience. We're looking for people with programming skills and a problem-solving attitude. As in, they are going to be inheriting code and also writing new code, and they need to be able to debug and think through problems. Also, they'll have to interact with users a little, and work with us on building new systems.
I do the technical side of the interview (I'm leader for one project, worked up from programmer, still do requirements, design, program, test and maintain). The test is mostly a little SQL and a programming question. The point is not so much the point, but rather whether they know how to program. The tests is usually 4 queries (select, join, count, where), debug a query (bad group by), and then write code in any language to reverse an array in place. People usually mess up on this last one, so we ask them to test it out on paper, and figure out how to fix it, where we look at their testing and debugging skill.
Here's what we found: - Everyone lists experience in C#/.Net and SQL server. What this usually means is that they've built web pages with Visual Studio doing simple queries on SQL. Some of them even do updates and everything. These people people have a college degree but can't finish the programming question to save their lives. It's one thing to let someone take their time learning C# (Which we would anyway). It's quite another to wait for people to figure out what a loop is. (Not to belittle their work, I've seen some of the sites and web-based systems they've built, and they are impressive but not what we're looking for). - On the flipside, we've had one person who could code but didn't do the join or group by. Fine, he'll learn, or we'll put him on a more programming-oriented position. - The debugging part of the above question is very useful to judge character, as I've seen people give up, not know how to fix their loop (Oh, if I loop from 0 to N-1, it's going to reverse twice, so I should change the ending condition, what should it be? I can't tell), just claim that it's correct, Not follow the code, but rather what they think their code says, etc. What are we going to do when the user needs a bugfix in two hours and they just give up? - We had one who did really well in the interview portion, very likeable, leader-type, all the buzzwords in his resume, had worked on complicated systems. But he handed in his programming portion in blank, not even figuring out that he needed a loop (I'm not talking syntax, we'll take pseudocode if they want). Then he explains he was the UI guy and client-facing requirements guy. If that's what he needed, he would've been hired, but no.
Basically, we don't look for knowledge of the libraries, or even theoretical knowledge (Normal forms, pass by reference, hash tables, ASP Net event order), but just base knowledge and attitude. If we're hiring (and paying at the level of) someone with 5 years of experience, we might actually ask about their knowledge of ASP.Net, WinForms, PHP, optimization, algorithms, workflows, SQL, or whatever technology he's supposed to be an expert at. Not because we think they are lying, but rather because a resume doesn't convey the nuances of someone's specialty. Are they good at building up a site quickly? figuring out the tricky bugs? designing scalable systems but not the actual implementation? building up new controls? figuring out what algorithm is best to find the optimal solution to a situation? Are they 5-years good, or just learned the first two years and then just warmed up a seat managing the site they built?
Sometimes people one of us have worked with get to skip the exam, as we trust our teammates not to suggest someone who they'll have to cover for when he just can't keep up. And yes, I'm sometimes embarrassed to give this test to someone with 4 years experience. But quite a few times it's saved us from hiring someone who really wouldn't keep up. We'll also hire people who don't g
A DBMS doesn't blindly execute the SQL code you give it. Fulfilling a join in a select might make use of a bunch of indices, sort earlier/later, etc. Basically, whatever code you send it has to be compiled (parsed, analyzed, optimized).
A stored procedure allows the server to keep a precompiled copy (Maybe just pre-parsed and saved in binary, maybe already optimized, with values as to what changes in which statistics of which tables should trigger a recompilation, etc).
So, these are useful as performance optimization.
There are also workflow reasons. In some places the DBA optimizes queries and indexes, which is easier if he doesn't have to mess with/figure out the app code. In some places, a programmer does the data layer and just hands you the data access code. Sometimes you have multiple pages or apps using the same database, so sharing stored procedures is a time saver (and copy/pasting is evil anyway).
But back to your point about how they knew what it was called, I have a related question. How do they know that Eastern Laurentia had crinkle cut coastlines like Canada? Weren't they formed by glacial activity? How does that happen at the equator?
Most likely, they don't know that, or even think that it did. Continental drift maps are usually drawn by moving around the outlines of the modern continents for the most part, probably because that best communicates which parts went where, rather than amorphous blobs labeled things like "p.s. this is actually Canada".
My understanding would be that the actual outline of the old continents looked nothing like that and we have no way to figure out what they actually did look like.
Actually, it seems to be quite a bit more complicated than just moving things around to see where they match. David Morgan-Mar had a nice rundown of one case as an annotation in irregular webcomic here (He must be really bored sometimes).
In this case, two separate places have geological and biological features that match despite being on opposite sides of the atlantic ocean, so you can well guess those features existed before separating.
One last thing, for all the haters who whine about ONLY having 16.8 million colors to work with, even without your help GIMP is integrating GEGL which will bring 16bit integer and 32bit floating point per component.
They've been "integrating GEGL" for at least a year and very little progress has been made. I've looked at the source, straight from SVN, and the documentation to see if I could help move things along and there is zero documentation on how GEGL is going to be integrated with the layering and rendering of the Gimp.
The only integration so far is to allow GEGL operations to be used as a plugin/filter for manipulating a layer, and to define some Gimp tools (Levels, etc) as GEGL ops. I've seen no progress on the actual integration. The last I saw was the development of some infrastructure to save tool presets more easily (that's a high priority feature???)
Since there is close to zero documentation on the Gimp's internals, any attempt to help with the project is likely to be abandoned. And no, Doxygen-generated docs from comment-free files don't count as documentation. The same info can be gathered from the header files much more efficiently.
If you can point to some document describing how the gimp composites layers (not just the tiling part), and what the plan is for changing that to use GEGL I might be able to help (Though my free time is now being used differently). Heck, I'd be happy with just some global documentation on the design. Am I allowed to use the widgets in/libwidget when developing tools or just the ones from/app/widgets? How is composition done? How are the horrible tool dialogs handled so I can change them to a more sane UI? How do I add a shortcut to bring up thedialog toolbox like ctrl-L brings up layers? Hint: IRC or mailing lists does not count as documentation.
Something I learned from looking at the Gimp. Rather than a large flagship open source project with hundreds of quick contributors, it's a project with about 5 developers and so badly documented it's unlikely anyone else will help. Good luck getting it to compete with more serious software.
I'm currently using a SVN-compiled Gimp since they finally merged in the change to allow for transparent transforms that was submitted to bugzilla a couple years ago. I guess they finally gave up on waiting for GEGL integration to handle that.
If you have developers (or if you have a good IT setup), a very important feature of your naming scheme would be to group your PRD/QA/DEV servers. It would be painful to have to remember that the mail servers are Cyclops, Iceman and Wolverine, let alone reboot the wrong one because you thought it was the Dev server.
Where I work they do division/type/app, so you might get FOOPRDHR1 and it's siblings, FOOQASHR1, and FOODEVHR1. It's ugly, but it works very well and it's easy to remember. And as people mentioned, users get mapped drives, bookmarks, desktop apps and links from the main page so they mostly don't notice. If anything it makes it look like it's complicated they should keep paying us to maintain it:)
Yeah, I read it before the update was posted so didn't see the extra article. I wrote base-5 because the first article made it out to be symmetric, so it was only one extra permutation.
TFA's TFA mentions information storage in DNA, which makes sense as this basically moves from base-4 to base-5 (The base pairs up with itself, so it's only one new base) thereby improving storage density. They also did some work to evolve a polymerase that replicates the DNA with the new base.
DNA (single strands) and RNA also fold into themselves, and there is some evidence that the folding affects some mechanisms in the cell. Modifying them with these self-binding pairs could probably be hacked up to change the folding patterns. Also, DNA has activation sites and a whole bunch of things other than just the protein coding.
Even without DNA computers, I could see modifying a ribosome to encode a new set of amino acids with the extra base. Also consider, retroviral genetic-therapy style techniques where one of these are inserted into genes to disable them, putting these into introns/extrons to allow for better experiments on DNA transcription, etc.
Interestingly, neither article mentions transcription of this base into RNA, so your concern about amino acids is a little premature.
Personally, I'd say it's somewhat insulting how the programming turns lightweight and airy once the menfolk have gone off to work, but that seems to be what the morning viewers are interested in, even accounting for their political/religious/philosophical bent.
Notice that it's not just when the "menfolk" go to work. It's when working people go to work. The only ones left at home are pre-preschoolers and career housewives.
There are plenty of women who would be insulted by this talking down, but a large percentage of them go off to work too. Some are left at home, women who choose to take care of their family instead of a career, but I bet the morning crowd is dominated by non-college educated, artsy, low-ambition types.
So it's not necessarily sexism going on but a reflection of the demographics of the society.
Operator overloading is one of those things you should avoid doing, and if you do, try to follow the standard meaning. I've seen many people get turned off by C++ because the first example they see is changing the shift operators to do I/O.
Anyway, The other good example of overloading and what you can do with it is the STL. Being able to overload ->, *, (), ++ and -- allows people to write container libraries that work very well and look familiar to any C programmer. But This is one of those things you shouldn't try for yourself.
True, sorry. I realized the difference after I hit submit. Most of the stuff in numeric_limits is a constant, except for a few of these floating point numbers.
I'm curious, what are you doing that requires a floating-point compile-time constant? Most of the things I can think of that you'd need one are things like defining an array size, which is obviously not something you'd need a NaN or any other floating point value for. There are compile-time constants for whether a NaN exist, so you can use that fact for the definition of an array in a template, for example.
Getting the actual value for a comparison or assignment works just as well with the inlined numeric_limits functions.
const in C++ does mean constant. Especially if you declare them globally.
Also, inlining in C++ templates will end up generating the exact same assembly as if you were to use some macro. Run this through g++ with -O3 and check the ASM.
That's one of the reasons why the STL is actually efficient.
Try it on Linux. They probably show up as /dev/devttyACM# . Or I think that's what it showed for the last time I tried it with a USB phone. You could use it as an EVDO modem, and even send/receive SMS directly with it.
Of course, blackberrys aren't recognized automatically.
Watch out. The Joker might want to have a word with you
Since you seem to be knowledgeable about the subject:
Do you know of any VR Goggle with a wide field of view? Everything I see has at most 40 degrees field of view, which would be like looking through a tunnel. I can get a wider field of view by standing near my monitor (Which I do).
For things to be inmersive I would want the display to include my peripheral vision, even if only with very low resolution on the sides. I don't want to feel like I'm wearing swimming goggles.
My personal use for it (together with head/eye tracking) would be to write a window manager where I can hang windows all around me, and where I can switch windows by looking at them. Compiz already renders to the screen with OpenGL from intermediate buffers, extending it to a wider canvas shouldn't be that hard. It's basically being inside the spinning cube (or ring, really). But the low resolution, tunnel vision and now your comfort argument make it an unattractive proposition.
It's not that the act of programming itself is a religion. It's that people's choice of programming language sometimes becomes a religion for them.
Have you never met anyone who thought you were an idiot because you don't agree that $LANGUAGE is the best thing out there? You'll have people spend all day arguing that C lets you stay close to the machine and program more efficiently (as if that mattered), that java lets you run the program on any architecture (as if recompiling was impossible), that haskell lets you pass functions around and apply them (as if there were no function pointers), that the C++ STL and destructors save so much time and bugs (As if other languages didn't have container libraries nowadays), that CPAN saves you inmense amounts of work (as if no libraries existed for other languages).
Programming is just like religion in that you cannot prove that one is better than the other and in fact your choice is often a matter of which you learned first and which you like better.
If you're willing to spend hours arguing about your views on programming then it's a religion for you. Sorry
Disclaimer: I prefer C++ but can code in anything you throw at me. I'll look at each project before I decide on a language, and often depends on who will be maintaining it. I also hold a similar view on atheism, it can be a religion or not depending on how much time you're willing to argue about it. Since you view the comparison with a religion as an insult, this might apply to you. Sorry.
On fastest:
Stasis your oponents' fleet with your arbiter and start a 15 second countdown. On zero, your teammate nukes the stasis. Wait 30 seconds for the nuke to come down right on your open-mouthed oponents' fleet.
To add insult to injury, if you manage to stasis both their and your ships, you can recall them out right before the nuke hits.
You can confuse your enemies with an uncloaked observer or dark templar:
Just have one of your high templars create an illusion and send them over to your opponent's base. The illusion is not cloaked.
Large user base does not equate to a large project. We all love Slashdot, but Slashdot doesn't qualify as a large mission critical system.
Depends on your mission. I bet slashcode is mission-critical to Slashdot and their corporate overlords.
As for large, maybe not. I bet most of the interesting work in slash is in the database side.
How about, at the point where they reach a 10% failure rate.
Right now, any possible savings in fuel and vehicle costs will be taken up by the added insurance costs for the payload. And forget about manned launches.
It's like the trash in your collage apartment; let it start stinking first and then someone will take it out.
Kind of hard when it's pasted to the wall.
Also, everyone used pencils and mechanical pencils at first, then grease pencils and slates. Fisher developed his space pens independently and then sold it both to NASA and Russia.
Source, the always correct wikipedia
I wish I had mod points.
Ever since that XKCD strip so many people feel justified about misspelling affect as effect it makes me angry to read it.
And I'm not even a native speaker.
We've been doing job interviews for the last few weeks. Mostly recent graduates, but a couple of people with experience. We're looking for people with programming skills and a problem-solving attitude. As in, they are going to be inheriting code and also writing new code, and they need to be able to debug and think through problems. Also, they'll have to interact with users a little, and work with us on building new systems.
I do the technical side of the interview (I'm leader for one project, worked up from programmer, still do requirements, design, program, test and maintain). The test is mostly a little SQL and a programming question. The point is not so much the point, but rather whether they know how to program. The tests is usually 4 queries (select, join, count, where), debug a query (bad group by), and then write code in any language to reverse an array in place. People usually mess up on this last one, so we ask them to test it out on paper, and figure out how to fix it, where we look at their testing and debugging skill.
Here's what we found:
- Everyone lists experience in C#/.Net and SQL server. What this usually means is that they've built web pages with Visual Studio doing simple queries on SQL. Some of them even do updates and everything. These people people have a college degree but can't finish the programming question to save their lives. It's one thing to let someone take their time learning C# (Which we would anyway). It's quite another to wait for people to figure out what a loop is. (Not to belittle their work, I've seen some of the sites and web-based systems they've built, and they are impressive but not what we're looking for).
- On the flipside, we've had one person who could code but didn't do the join or group by. Fine, he'll learn, or we'll put him on a more programming-oriented position.
- The debugging part of the above question is very useful to judge character, as I've seen people give up, not know how to fix their loop (Oh, if I loop from 0 to N-1, it's going to reverse twice, so I should change the ending condition, what should it be? I can't tell), just claim that it's correct, Not follow the code, but rather what they think their code says, etc. What are we going to do when the user needs a bugfix in two hours and they just give up?
- We had one who did really well in the interview portion, very likeable, leader-type, all the buzzwords in his resume, had worked on complicated systems. But he handed in his programming portion in blank, not even figuring out that he needed a loop (I'm not talking syntax, we'll take pseudocode if they want). Then he explains he was the UI guy and client-facing requirements guy. If that's what he needed, he would've been hired, but no.
Basically, we don't look for knowledge of the libraries, or even theoretical knowledge (Normal forms, pass by reference, hash tables, ASP Net event order), but just base knowledge and attitude. If we're hiring (and paying at the level of) someone with 5 years of experience, we might actually ask about their knowledge of ASP.Net, WinForms, PHP, optimization, algorithms, workflows, SQL, or whatever technology he's supposed to be an expert at. Not because we think they are lying, but rather because a resume doesn't convey the nuances of someone's specialty. Are they good at building up a site quickly? figuring out the tricky bugs? designing scalable systems but not the actual implementation? building up new controls? figuring out what algorithm is best to find the optimal solution to a situation? Are they 5-years good, or just learned the first two years and then just warmed up a seat managing the site they built?
Sometimes people one of us have worked with get to skip the exam, as we trust our teammates not to suggest someone who they'll have to cover for when he just can't keep up. And yes, I'm sometimes embarrassed to give this test to someone with 4 years experience. But quite a few times it's saved us from hiring someone who really wouldn't keep up. We'll also hire people who don't g
A DBMS doesn't blindly execute the SQL code you give it. Fulfilling a join in a select might make use of a bunch of indices, sort earlier/later, etc. Basically, whatever code you send it has to be compiled (parsed, analyzed, optimized).
A stored procedure allows the server to keep a precompiled copy (Maybe just pre-parsed and saved in binary, maybe already optimized, with values as to what changes in which statistics of which tables should trigger a recompilation, etc).
So, these are useful as performance optimization.
There are also workflow reasons. In some places the DBA optimizes queries and indexes, which is easier if he doesn't have to mess with/figure out the app code. In some places, a programmer does the data layer and just hands you the data access code. Sometimes you have multiple pages or apps using the same database, so sharing stored procedures is a time saver (and copy/pasting is evil anyway).
Yeah, just about (1 - .9999...) Ohms.
But back to your point about how they knew what it was called, I have a related question. How do they know that Eastern Laurentia had crinkle cut coastlines like Canada? Weren't they formed by glacial activity? How does that happen at the equator?
Most likely, they don't know that, or even think that it did. Continental drift maps are usually drawn by moving around the outlines of the modern continents for the most part, probably because that best communicates which parts went where, rather than amorphous blobs labeled things like "p.s. this is actually Canada".
My understanding would be that the actual outline of the old continents looked nothing like that and we have no way to figure out what they actually did look like.
Actually, it seems to be quite a bit more complicated than just moving things around to see where they match. David Morgan-Mar had a nice rundown of one case as an annotation in irregular webcomic here (He must be really bored sometimes).
In this case, two separate places have geological and biological features that match despite being on opposite sides of the atlantic ocean, so you can well guess those features existed before separating.
One last thing, for all the haters who whine about ONLY having 16.8 million colors to work with, even without your help GIMP is integrating GEGL which will bring 16bit integer and 32bit floating point per component.
They've been "integrating GEGL" for at least a year and very little progress has been made. I've looked at the source, straight from SVN, and the documentation to see if I could help move things along and there is zero documentation on how GEGL is going to be integrated with the layering and rendering of the Gimp.
The only integration so far is to allow GEGL operations to be used as a plugin/filter for manipulating a layer, and to define some Gimp tools (Levels, etc) as GEGL ops. I've seen no progress on the actual integration. The last I saw was the development of some infrastructure to save tool presets more easily (that's a high priority feature???)
Since there is close to zero documentation on the Gimp's internals, any attempt to help with the project is likely to be abandoned. And no, Doxygen-generated docs from comment-free files don't count as documentation. The same info can be gathered from the header files much more efficiently.
If you can point to some document describing how the gimp composites layers (not just the tiling part), and what the plan is for changing that to use GEGL I might be able to help (Though my free time is now being used differently). Heck, I'd be happy with just some global documentation on the design. Am I allowed to use the widgets in /libwidget when developing tools or just the ones from /app/widgets? How is composition done? How are the horrible tool dialogs handled so I can change them to a more sane UI? How do I add a shortcut to bring up thedialog toolbox like ctrl-L brings up layers? Hint: IRC or mailing lists does not count as documentation.
Something I learned from looking at the Gimp. Rather than a large flagship open source project with hundreds of quick contributors, it's a project with about 5 developers and so badly documented it's unlikely anyone else will help. Good luck getting it to compete with more serious software.
I'm currently using a SVN-compiled Gimp since they finally merged in the change to allow for transparent transforms that was submitted to bugzilla a couple years ago. I guess they finally gave up on waiting for GEGL integration to handle that.
If you have developers (or if you have a good IT setup), a very important feature of your naming scheme would be to group your PRD/QA/DEV servers. It would be painful to have to remember that the mail servers are Cyclops, Iceman and Wolverine, let alone reboot the wrong one because you thought it was the Dev server.
Where I work they do division/type/app, so you might get FOOPRDHR1 and it's siblings, FOOQASHR1, and FOODEVHR1. It's ugly, but it works very well and it's easy to remember. And as people mentioned, users get mapped drives, bookmarks, desktop apps and links from the main page so they mostly don't notice. If anything it makes it look like it's complicated they should keep paying us to maintain it :)
We go through this on every climate change story: The north pole is floating, so it is already displacing water.
When the south pole melts, that's when you worry.
Yeah, I read it before the update was posted so didn't see the extra article. I wrote base-5 because the first article made it out to be symmetric, so it was only one extra permutation.
TFA's TFA mentions information storage in DNA, which makes sense as this basically moves from base-4 to base-5 (The base pairs up with itself, so it's only one new base) thereby improving storage density. They also did some work to evolve a polymerase that replicates the DNA with the new base.
DNA (single strands) and RNA also fold into themselves, and there is some evidence that the folding affects some mechanisms in the cell. Modifying them with these self-binding pairs could probably be hacked up to change the folding patterns. Also, DNA has activation sites and a whole bunch of things other than just the protein coding.
Even without DNA computers, I could see modifying a ribosome to encode a new set of amino acids with the extra base. Also consider, retroviral genetic-therapy style techniques where one of these are inserted into genes to disable them, putting these into introns/extrons to allow for better experiments on DNA transcription, etc.
Interestingly, neither article mentions transcription of this base into RNA, so your concern about amino acids is a little premature.
Personally, I'd say it's somewhat insulting how the programming turns lightweight and airy once the menfolk have gone off to work, but that seems to be what the morning viewers are interested in, even accounting for their political/religious/philosophical bent.
Notice that it's not just when the "menfolk" go to work. It's when working people go to work. The only ones left at home are pre-preschoolers and career housewives.
There are plenty of women who would be insulted by this talking down, but a large percentage of them go off to work too. Some are left at home, women who choose to take care of their family instead of a career, but I bet the morning crowd is dominated by non-college educated, artsy, low-ambition types.
So it's not necessarily sexism going on but a reflection of the demographics of the society.
I have to say: ewwww
Operator overloading is one of those things you should avoid doing, and if you do, try to follow the standard meaning. I've seen many people get turned off by C++ because the first example they see is changing the shift operators to do I/O.
Anyway, The other good example of overloading and what you can do with it is the STL. Being able to overload ->, *, (), ++ and -- allows people to write container libraries that work very well and look familiar to any C programmer. But This is one of those things you shouldn't try for yourself.
True, sorry. I realized the difference after I hit submit. Most of the stuff in numeric_limits is a constant, except for a few of these floating point numbers.
I'm curious, what are you doing that requires a floating-point compile-time constant? Most of the things I can think of that you'd need one are things like defining an array size, which is obviously not something you'd need a NaN or any other floating point value for. There are compile-time constants for whether a NaN exist, so you can use that fact for the definition of an array in a template, for example.
Getting the actual value for a comparison or assignment works just as well with the inlined numeric_limits functions.
Yes they are. Try it.
const in C++ does mean constant. Especially if you declare them globally.
Also, inlining in C++ templates will end up generating the exact same assembly as if you were to use some macro. Run this through g++ with -O3 and check the ASM.
That's one of the reasons why the STL is actually efficient.