• Steve (unregistered) in reply to Neeneko
    Neeneko:
    Steve:
    I never use enums when an explicit size needs to be used, instead I cast the value to int or whatever first and use that. So yes I agree that enum sizes are different but when passing data between systems I would not use enums directly.

    Normally neither would I (I prefer the various u16 s32 etc style typedefs or macros) but it is a difference that can cause things to fail in subtle ways. I have encountered enums used in raw network packets that broke because of this.

    For function names that need to be exposed I use extern "C" {...}

    Yep, that is the general solution. Not saying the issues can't be worked around.. one can always extern the prototypes or entire blocks of code (externing then wrapping dlsym stuff is common). But my point was that C code as written, while still correct enough to compile, will fail at runtime if compiled as c++.

    I definitely agree that you can get C code that will compile as C++ but will not run. But I still maintain that generally, decent C code can be compiled as C++ with little to no modifications because often, the bits that break in C++ can be done better in C anyway.

  • Rex Kerr (unregistered) in reply to dubbreak
    C++ is a proper superset of C.

    No it's not.

    No implicit void* conversions C99 allows dynamic arrays on the stack, C++ does not Valid variables names in C code are reserved words in C++

    etc...

  • (cs)

    "United Stated"?

    Also, C/C++ nerds STFU and go get a room already.

  • Squire (unregistered) in reply to Eric
    Eric:
    I wonder how much more efficient my programs could be in a language like C++; on the other hand, there's the question of whether they actually need to be more efficient at all, which brings into play Moore's Law.

    Computer hardware is cheap, programmers' time is valuable. If something can be produced in a fraction of the time in a managed language, with fewer bugs, it is a net win. See Rico Mariani's Performance Tidbits. It took 5 versions of unmanaged optimizations (and one bug fix) to equal the speed performance of the first managed version. Only after the 6th (and final) unmanaged optimization did the unmanaged version get faster. And one might question whether a drop from 0.093 seconds (optimized managed version) to 0.062 seconds (optimized unmanaged version) for this particular task provides any value.

    The real cost of the managed version is revealed here:

    So, the summary is that the unmanaged code solved this problem in about 2.6M total wheras the managed code used a total of about 8.1M. That's the real cost of managed code -- it's measured in space. The total marginal cost is about 5.5M

    The entire series is available here.

    Obviously you can not conclude too much from the result of just this one benchmark, since it would be trivial to provide examples where managed languages are slower, but it does demonstrate, in a thoughtful and detailed way, that even a poorly coded managed application can compete with an optimized unmanaged application in terms of speed, even taking into account the startup overhead of the managed environment.

  • Steve (unregistered) in reply to Metalehad
    Metalehad:
    To be fair - why would a C developer write code that compiled in both languages? C is still in heavy use in embeded applications right now, and there is no need to go to C++ in the future anyway. Why would a person spend a bunch of time making it cross-language?

    Generally (although I admit not always) if a C programmer is writing good C it will just work in C++. For the malloc example above the C Programming Language (2nd ed, I can't find my first edition to see if it has changed), says that you should explicitly cast malloc. If you do that then the code becomes valid C++ code also.

  • Steve (unregistered) in reply to Rex Kerr
    Rex Kerr:
    C++ is a proper superset of C.

    No it's not.

    No implicit void* conversions C99 allows dynamic arrays on the stack, C++ does not Valid variables names in C code are reserved words in C++

    etc...

    I wouldn't bring C99 into it. You do realise that breaks half of the "things that work in C but not C++" bits.

  • Befuddled (unregistered)

    When I recruit, if I'm getting 10+ CVs a day I'm binning anything that isn't very well presented to cut down the time I spend reading them. It's the easiest field narrower, if you can't get one simple short document about content you know intimately correct and readable and figure out how to use a spelling and grammar check then I don't need you. That does happen after HR or whichever geek pimp we're paying too much have filtered out those without the right skills though so I don't end up interviewing Word jockeys.

  • Neeneko (unregistered) in reply to Squire
    Squire:
    Obviously you can not conclude too much from the result of just this one benchmark, since it would be trivial to provide examples where managed languages are slower, but it does demonstrate, in a thoughtful and detailed way, that even a poorly coded managed application can compete with an optimized unmanaged application in terms of speed, even taking into account the startup overhead of the managed environment.

    In other words, use the right tool for the right job ^_~

    The first false assumption is 'hardware is cheap, programmers are expensive'. This is often (possibly usually) the case, but not always. Number crunching (scientific software, economic analysis, MRIs, etc) time is money and every millisecond you can squeeze out translates to big gains.

    I can recall spending 9 months taking a single task from 20ms to 1ms per iteration. That was my task for those 9 months and getting that time down saved WAY more money then my salary. In fact, every millisecond shaved off equaled more then my salary for the year.. so even going from 20ms to 19ms would have been worth 12 months of my time to the beancounters.

  • Steve (unregistered) in reply to Neeneko
    Neeneko:
    Squire:
    Obviously you can not conclude too much from the result of just this one benchmark, since it would be trivial to provide examples where managed languages are slower, but it does demonstrate, in a thoughtful and detailed way, that even a poorly coded managed application can compete with an optimized unmanaged application in terms of speed, even taking into account the startup overhead of the managed environment.

    In other words, use the right tool for the right job ^_~

    The first false assumption is 'hardware is cheap, programmers are expensive'. This is often (possibly usually) the case, but not always. Number crunching (scientific software, economic analysis, MRIs, etc) time is money and every millisecond you can squeeze out translates to big gains.

    I can recall spending 9 months taking a single task from 20ms to 1ms per iteration. That was my task for those 9 months and getting that time down saved WAY more money then my salary. In fact, every millisecond shaved off equaled more then my salary for the year.. so even going from 20ms to 19ms would have been worth 12 months of my time to the beancounters.

    That's pretty cool :-)

    I've just had to go and rewrite some code that was working on the hardware is cheap mentality. Unfortunately hardware doesn't scale up as fast as the "algorithms" used in the code.

  • (cs)
    Two guys who won't shut up:
    c++ blah blah blah superset blah blah blah

    {sigh}

    Stroustrup: The Motherfucker Who Wrote The Fucking Language:
    Is C a subset of C++? In the strict mathematical sense, C isn't a subset of C++. There are programs that are valid C but not valid C++ and even a few ways of writing code that has a different meaning in C and C++.
    - http://public.research.att.com/~bs/bs_faq.html#C-is-subset

    Now shut up, the both of yous.

  • (cs) in reply to halcyon1234
    halcyon1234:

    Now shut up, the both of yous.

    +1

    Thanks.

  • Classy (unregistered)

    Obviously the way to make your CV stand out is to put your name in WordArt on every page.

  • neophrene (unregistered) in reply to Steve
    Steve:
    I wouldn't bring C99 into it. You do realise that breaks half of the "things that work in C but not C++" bits.

    hu? you can't be serious. 1% maybe. Let's say 10% to have some margin. Not the half.

    I've read sooner that your reference is "The C programming language" 2nd edition. Despite all the respect I have for its authors, C has evolved. You should consider reading seriously the ISO C99 standard (and not an informal book, which is just OK to begin but always has serious pitfalls for careful and serious programming). You would learn that C++ is not at all a superset of C anymore, even when not considering obvious superficial differences like void *, enums, and variable-length arrays.

  • Franz Kafka (unregistered) in reply to fred
    fred:
    Neeneko:
    Though that is another difference... arithmetic on void pointers doesn't work in C++. So C programs that do raw memory stuff tend to have to be rewritten by casting all the void* to unsigned long pointers (and then pray that u32s are the right size).
    This is why Jesus invented uintptr_t.

    Nah, Knuth gave us char*, which is almost always size 1.

  • Steve (unregistered) in reply to neophrene
    neophrene:
    Steve:
    I wouldn't bring C99 into it. You do realise that breaks half of the "things that work in C but not C++" bits.

    hu? you can't be serious. 1% maybe. Let's say 10% to have some margin. Not the half.

    I've read sooner that your reference is "The C programming language" 2nd edition. Despite all the respect I have for its authors, C has evolved. You should consider reading seriously the ISO C99 standard (and not an informal book, which is just OK to begin but always has serious pitfalls for careful and serious programming). You would learn that C++ is not at all a superset of C anymore, even when not considering obvious superficial differences like void *, enums, and variable-length arrays.

    I have read the C99 standard. Which is why in my previous posts I asked whether posters where talking about K&R C, ANSI C or C99... because they are all different. ANSI C is most likely to compile as C++ and C++ written in a C style is most likely to compile in C99.

    And yes I exaggerated about C99 breaking half the things but most people's claim the C has all these differences to C++ is incorrect. If you write that sort of C code it will probably break if you use a C99 compiler.

  • Steve (unregistered) in reply to Franz Kafka
    Franz Kafka:
    fred:
    Neeneko:
    Though that is another difference... arithmetic on void pointers doesn't work in C++. So C programs that do raw memory stuff tend to have to be rewritten by casting all the void* to unsigned long pointers (and then pray that u32s are the right size).
    This is why Jesus invented uintptr_t.

    Nah, Knuth gave us char*, which is almost always size 1.

    Almost never :-), sizeof(char) perhaps?

  • Neeneko (unregistered) in reply to halcyon1234
    halcyon1234:
    Stroustrup: The Motherfucker Who Wrote The Fucking Language:
    Is C a subset of C++? In the strict mathematical sense, C isn't a subset of C++. There are programs that are valid C but not valid C++ and even a few ways of writing code that has a different meaning in C and C++.
    - http://public.research.att.com/~bs/bs_faq.html#C-is-subset

    Ugh. That old faq. yeah, real great perspective there. It makes me wonder how much C this person really programmed in vs 'I could do this better!'. Claiming he needed to develop a whole new language to get generic programming, OOP, and data abstraction really makes me wonder how he was using C since it has all of those things. C++ makes these things easier (most of the time) and safer (pretty much all of the time) but it does not add any actual new expressive power.

    And of course all the "C is never better then C++ under any circumstances" are just dripping with lack of perspective. To this day C++ does not have the flexibility (without lots of extra code) of C in things like polymorphism. Runtime modification of classes in C++ has always been a pain unless you add wrapper syntax at which point you are back to the C method but with more code (and symbol table clutter).

  • Thogu (unregistered) in reply to Sutherlands
    Sutherlands:
    James:
    I'm going to defend the guy/girl in the 2 one. Like they said they had a folder full of applications already. Let’s face it they aren't going to read them all and a 1st "screening" of how good the CV looks is as good a “random” filtering process as any.
    Are you... trying to say that the first screen should be... random??? It's really not hard to glance at a resume for about 3 seconds and decide if it's going to make some first cut based on ACTUAL criteria, not how the resume looks.

    That's two seconds more than the first screen has....

    End of the day, I don't really think pretty little flowers in the borders makes much difference - but if it doesn't make a difference, why not do it just in case it does?

  • ?%^$ (unregistered) in reply to DWalker
    DWalker:
    ObiWayneKenobi:
    1st One: Funny.

    2nd One: Gotta love the government. Incompetence at it's best. Look at the pretty resume, he must know his stuff!

    3rd One: Yep, now we know what the Patent Office grants patents on nonsense. Real WTF is not mentioning that Computer Science IS an engineering (and math!) degree and is usually awarded by the College of Engineering.

    P.S. first!111shiftelevenitsover9000

    Sorry to correct your "incompetence" sentence, but "it's" should be "its". I won't say that you're incompetent, though...

    Shouldn't that be " its' "?

  • Chris (unregistered) in reply to testx
    testx:
    Sutherlands:
    James:
    I'm going to defend the guy/girl in the 2 one. Like they said they had a folder full of applications already. Let’s face it they aren't going to read them all and a 1st "screening" of how good the CV looks is as good a “random” filtering process as any.
    Are you... trying to say that the first screen should be... random??? It's really not hard to glance at a resume for about 3 seconds and decide if it's going to make some first cut based on ACTUAL criteria, not how the resume looks.

    What kind of actual criteria can you get in 3 seconds? That's not enough time to actually read the resume. Do you mean stuff like reading the name, guessing the person's ethnicity, and letting your prejudices make the decision?

    If you really have an overload of applications (and there are many positions that fall in this category even in a good economy), filtering based on how the resume looks doesn't sound so bad. At the very least, it shows the person spent the time to make their resume look good.

    edit prior to posting: pretty sure the code for this website is one big wtf... so slow

    Makes good sense for HR because it reduces their workload....

    Wouldn't it make more sense to read thoroughly through resumes as they arrive. You don't need to get through all of them, only until you find one (or a few) that you like.

    Does this get the best candidate? Not necessarily. Does this have a better chance of getting a good candidate than judging whose puppies are the cutest? Probably.

    Of course thios advantages people who get their resumes in reasonably early (although you could randomly read ones until you find one - if you could mix them up sufficiently well to be random).

    Someone once told me the key to getting a DoD job was to apply every month - even if they weren't advertising. Every resume would go into a big bucket, and when they decided they needed someone, they would start looking at resumes until they found one. The trick was to make sure you had one sufficiently near the top.

    I must say, part of me agrees that it's difficult for people to sort through 1000s of resumes for several positions, but the other part wonders why is there a HR industry? Companies have developed HR departments, and gradually HR Specific Companies have developed. I have always thought HR departments were largely unnecessary - and this type of attitude of randomly (or at least pseudo-randomly) picking the best candidate seems to confirm that HR departments are unnecessary. Every time a company does lay-offs, who are the first to go? HR, Admin and middle management. Why? Because they are the least useful parts of a company (well Senior Management might be largely useless too, but they're hardly gonna cut their own throats!!). (IT) Companies need Technical people, and low-level managers to manage them (their cheaper than more senior managers - and probably more technical). HR, middle-management etc. on the other hand is an expensive luxury not a necessity (particularly when people are recruited at random)......

    But...I go now....

  • CoderHero (unregistered) in reply to Steve
    Steve:
    Franz Kafka:
    fred:
    Neeneko:
    Though that is another difference... arithmetic on void pointers doesn't work in C++. So C programs that do raw memory stuff tend to have to be rewritten by casting all the void* to unsigned long pointers (and then pray that u32s are the right size).
    This is why Jesus invented uintptr_t.

    Nah, Knuth gave us char*, which is almost always size 1.

    Almost never :-), sizeof(char) perhaps?

    by definition, sizeof(char) == 1, always! Even if your char happens to use 32 bits!

  • Bongo (unregistered) in reply to SomeCoder
    SomeCoder:
    Anonymous:
    In regard to #2, no doubt it's a WTF to risk passing up a great candidate because you couldn't be bothered to read their drab CV. However, I wouldn't really count this as a true WTF because like it or not, this is just how life is. HR types are of limited intelligence; they need bright, bold colours to drag their attention away from their nail varnish. We all know this deep down.

    I always have a very pretty CV, it is currently fashioned in red and black type with an art-deco theme and a soft abstract background that I rendered myself specifically for it. That may sound like too much for a software developer but I would add that I have never been turned down for any position in my entire career.

    I like to think it's my experience and skill that gets me the work but there is no way I would ever rely on a plain old black and white CV.

    This is completely a WTF. Passing over a resume because it has dots instead of arrows for bullet points is one of the biggest WTF I've ever seen and as someone who lives in America, I now fear for my safety if this is the criteria that the mighty CIA is using to select candidates.

    I suspect this is the point our Anonymous friend (and indeed many others, by the look) was making. HR departments are useless. HR departments do all the recruiting for most companiesm, irrespective of role (janitor, secretary, Manager, someone who actually works etc). HR departments are (often) lazy, and (often) do not understand the skillsets required for many roles.
    Sure, it's frightening that this is how people recruit, but sadly, I suspect a colour printer pretty pictures of things like hot air balloons probably raises your chance of getting a job at many companies.

  • Ie (unregistered) in reply to Daniel
    Daniel:
    Oh, and I do know C and C++, which is why they're on my resume. I don't LIKE them, which is why I applied for a web programming job. I was attempting to downplay my C skills so that she wouldn't shove me into an embedded programming applicant pile, and was completely taken aback when she declared that C was the next Spice Girls.

    If ya wanna be my coder Gotta get with my friends ANSI C is easy Friendship never ends

  • CoderHero (unregistered) in reply to Steve
    Steve:
    Metalehad:
    To be fair - why would a C developer write code that compiled in both languages? C is still in heavy use in embeded applications right now, and there is no need to go to C++ in the future anyway. Why would a person spend a bunch of time making it cross-language?

    Generally (although I admit not always) if a C programmer is writing good C it will just work in C++. For the malloc example above the C Programming Language (2nd ed, I can't find my first edition to see if it has changed), says that you should explicitly cast malloc. If you do that then the code becomes valid C++ code also.

    NO! In ANSI/ISO C, you don't need cast the return from malloc. There are reasons why this practice is bad.
    Try putting "casting from malloc" into a search engine to find out more.

  • Cowardly (unregistered) in reply to Wizard Stan
    Wizard Stan:
    Consider you get 100 resumes. After reading through all 100, 2 candidates stand out. One has a beautiful resume, the other is just ok. Either candidate will work out perfectly, but you spent a fair bit of time to find those 2 candidates. Now suppose you get 1000 resumes. Do you read all 1000 just to find the statistical 20 candidates that are a good fit for the job? I'm glad you have that much time and money to spend. First run, look for the nice resumes, cutting the task in half. You're down to only 500 to read through now. Still a lot, but much better than 1000. Boo hoo, you've thrown away 10 perfectly good candidates for the job. Big deal, you've still got 10 others that would be equally good. Or even better, take only the top 1/4 resumes. 250 applications to read now. You pass over 15 perfect candidates, but you've still got 5 left in that pile somewhere. Complain all you want about being passing up "the perfect candidate" because your resume might not look the prettiest, but remember, you're rarely ever the only perfect candidate for the job. And if it is the kind of job where I'm the only proper fit for the position that applied, maybe it's not the kind of place I want to work for anyway. That being said, arguing that arrows are better than bullets is asinine.

    But this assumes that Good Candidates, Adequate Candidates and Crap Candidates are equally as likely to add bells and whistles to their resume. I suspect that generally (other than those who know how recruiters work) the better candidates will asume their work and study histories speak for themselves, and there is no need to decorate the page. It is important to make sure the resume looks tidy (don't change font every paragraph, make sure things don't hang over pages funny, etc). Adding all sorts of pictures and patterns to me implies that there is nothing in your resume' of interest, so you added interesting patterns.

    Of course, I understand that those responsible for recruitment think otherwise.

  • The Games (unregistered) in reply to Cowardly
    Cowardly:
    Wizard Stan:
    Consider you get 100 resumes. After reading through all 100, 2 candidates stand out. One has a beautiful resume, the other is just ok. Either candidate will work out perfectly, but you spent a fair bit of time to find those 2 candidates. Now suppose you get 1000 resumes. Do you read all 1000 just to find the statistical 20 candidates that are a good fit for the job? I'm glad you have that much time and money to spend. First run, look for the nice resumes, cutting the task in half. You're down to only 500 to read through now. Still a lot, but much better than 1000. Boo hoo, you've thrown away 10 perfectly good candidates for the job. Big deal, you've still got 10 others that would be equally good. Or even better, take only the top 1/4 resumes. 250 applications to read now. You pass over 15 perfect candidates, but you've still got 5 left in that pile somewhere. Complain all you want about being passing up "the perfect candidate" because your resume might not look the prettiest, but remember, you're rarely ever the only perfect candidate for the job. And if it is the kind of job where I'm the only proper fit for the position that applied, maybe it's not the kind of place I want to work for anyway. That being said, arguing that arrows are better than bullets is asinine.

    But this assumes that Good Candidates, Adequate Candidates and Crap Candidates are equally as likely to add bells and whistles to their resume. I suspect that generally (other than those who know how recruiters work) the better candidates will asume their work and study histories speak for themselves, and there is no need to decorate the page. It is important to make sure the resume looks tidy (don't change font every paragraph, make sure things don't hang over pages funny, etc). Adding all sorts of pictures and patterns to me implies that there is nothing in your resume' of interest, so you added interesting patterns.

    Of course, I understand that those responsible for recruitment think otherwise.

    Thankfully I am immune to charm....

  • Steve (unregistered) in reply to CoderHero
    CoderHero:
    Steve:
    Metalehad:
    To be fair - why would a C developer write code that compiled in both languages? C is still in heavy use in embeded applications right now, and there is no need to go to C++ in the future anyway. Why would a person spend a bunch of time making it cross-language?

    Generally (although I admit not always) if a C programmer is writing good C it will just work in C++. For the malloc example above the C Programming Language (2nd ed, I can't find my first edition to see if it has changed), says that you should explicitly cast malloc. If you do that then the code becomes valid C++ code also.

    NO! In ANSI/ISO C, you don't need cast the return from malloc. There are reasons why this practice is bad.
    Try putting "casting from malloc" into a search engine to find out more.

    There are also reasons why this practice is good:

    double * x; x = malloc(sizeof(float)10); / Geez whoops */

  • Hells Bells (unregistered) in reply to Code Dependent
    Code Dependent:
    testx:
    What kind of actual criteria can you get in 3 seconds?
    Given that a resume should be one page in length, in three seconds I can get:

    Skill set Education What was last job How many jobs, and how long at each one

    That's enough to know in which pile this resume goes.

    Okay, maybe it would take five seconds.

    Good God Man!!! How can a one page resume even begin to outline what a good candidate has done in their career. I agree resume shouldn't be too long, but one page is a bit short, isn't it? If it were well formatted it would ONLY fit the points you specify (if you've only studied one degree, and have only worked in 2 or 3 different jobs). That's a bit of a problem, seeing as one of those points wasn't Contact Details.

    I find it strange that someone who (presumably) works in IT would shrug off a 66% time increase in reading (ie taking five secs instead of 3). Over 100 Resumes, this makes more than 3 minute difference. Over 1000 Resumes this makes more than 33 minutes difference.

  • Mary had a little lamb (unregistered) in reply to soup
    soup:
    What's ironic is that the CIA is probably one of the first organizations in the world to use OCR technology. I would have thought that most HR departments these days use it to scan resumes, especially for technical positions.

    I better update my triangle skills (and add that skill to my resume, of course.)

    That's why they like the triangles behind the text - they're trying to test how good their OCR technology is with Captcha style documents

  • (cs) in reply to Steve
    Steve:
    For all intensive porpoises C++ is a superset of C.

    How about the more relaxed dolphins? Is C++ not a superset of C for them?

  • Jim (unregistered) in reply to Befuddled
    Befuddled:
    When I recruit, if I'm getting 10+ CVs a day I'm binning anything that isn't very well presented to cut down the time I spend reading them. It's the easiest field narrower, if you can't get one simple short document about content you know intimately correct and readable and figure out how to use a spelling and grammar check then I don't need you. That does happen after HR or whichever geek pimp we're paying too much have filtered out those without the right skills though so I don't end up interviewing Word jockeys.

    So...you assume HR will know what skills you want, and then you filter on presentation? Sounds a little backward to me.

    Spelling, Grammar and Presentation are reasonable criteria to pick resumes over, but I think the point in the WTF is OTT decorations, not proffessional presentation.

  • Steve (unregistered) in reply to merpius
    merpius:
    Steve:
    For all intensive porpoises C++ is a superset of C.

    How about the more relaxed dolphins? Is C++ not a superset of C for them?

    Correct.

  • (cs) in reply to Anonymous Cowherd
    Anonymous Cowherd:
    The following is a legal C program that will not compile with a C++ compiler:
    #include <stdlib.h>
    
    struct S
    {
        int x;
    };
    
    int main(int argc, char * argv[])
    {
        struct S * f = malloc(sizeof(struct S));
        free(f);
    }
    

    Are you seriously telling me C programmers never use malloc?

    I believe your original point was "non-trivial."

    This, however, is a trivial C program, and as such I have submitted it to a trivial C++ compiler -- MinGW's g++. Yes, there's an error:

    "trivial.cpp: In function int main(int, char**)': trivial.cpp:19: error: invalid conversion fromvoid*' to `S*'"

    Refining to (struct S*)malloc(...) removes the error. The behaviour will be the same in C/C++.

    Are you seriously telling us that you don't understand what a straw-man argument is?

    Bah. I'm much more concerned by the fact that somebody as obviously smart as Dan M can scribble all over his resume with things like:

    "Languages and technical writing: PHP, MySQL, AJAX, JavaScript, PRADO Framework, MSSQL Server, C#, .Net Framework, Perl, C/C++, Visual Basic, ASP, HTML, DHTML, XML, SOAP, CSS, Java, UML"

    ... and not immediately think:

    (1) Laundry list (2) Laundry list full of smelly socks

    Under the circumstances, it's perfectly reasonable to expect the candidate to be amenable to a Web programming position involving C/C++. It's not as if there aren't a number of C/C++ web sites around -- I've worked on a few. I don't recommend it as a design/architecture decision these days, unless you're looking for a ridiculous amount of performance on a nightmare maintenance system -- but it works. Just look at FCGI for starters. Then, consider: what's the difference between a huge organisation builiding its own, appalling and idiotic, C/C++ Web framework, and any number of other organisations depending upon all the other appalling and idiotic Web frameworks?

  • Suomynona (unregistered)
    1st One: Funny.

    2nd One: Gotta love the government. Incompetence at it's best. Look at the pretty resume, he must know his stuff!

    3rd One: Yep, now we know what the Patent Office grants patents on nonsense. Real WTF is not mentioning that Computer Science IS an engineering (and math!) degree and is usually awarded by the College of Engineering.

    P.S. first!111shiftelevenitsover9000

    Computer Science used to be in math departments before it became large enough for it’s own. From my experiences while there is still some overlap, a typical undergraduate degree in computer science would not be sufficient for the type of work a mathematician would do. Unless if it’s discrete math.

  • (cs) in reply to Steve
    Steve:
    CoderHero:

    NO! In ANSI/ISO C, you don't need cast the return from malloc. There are reasons why this practice is bad.
    Try putting "casting from malloc" into a search engine to find out more.

    There are also reasons why this practice is good:

    double * x; x = malloc(sizeof(float)10); / Geez whoops */

    And how exactly would that be helped by casting the return value of malloc?

    The safest way, is:

    double * x; x = malloc(10 * sizeof *x);

    That way if the type of x gets changed, the malloc size is adjusted automatically.

  • Jules (unregistered) in reply to Neeneko
    Neeneko:
    I can recall spending 9 months taking a single task from 20ms to 1ms per iteration. That was my task for those 9 months and getting that time down saved WAY more money then my salary. In fact, every millisecond shaved off equaled more then my salary for the year.. so even going from 20ms to 19ms would have been worth 12 months of my time to the beancounters.

    I'm curious. In what kind of situation is this the case? I assume it's for code that is repeated many, MANY times over - but where would such a large cost saving come in? A 3D rendering engine? Telco?

  • Tore Sinding Bekkedal (unregistered)

    I should note that the Philips web site is horrendous, and when I tried to use it, it crashed multiple times, and kept logging me off. I don't recall how I got it to work, but I finally managed to register my device so that it would work online.

  • Neeneko (unregistered) in reply to Jules
    Jules:
    I'm curious. In what kind of situation is this the case? I assume it's for code that is repeated many, MANY times over - but where would such a large cost saving come in? A 3D rendering engine? Telco?

    Real time data processing off a particle accelerator ^_^

    I believe an event came in every 5ns.

  • Neeneko (unregistered) in reply to Steve
    Steve:
    There are also reasons why this practice is good:

    double * x; x = malloc(sizeof(float)10); / Geez whoops */

    I actually had to stop and think about this one for a bit. The two main arguments.. catching an incorrect malloc prototype and keeping sizes in sync are kinda one-off effects.

    The big deal is that the author of C++ didn't understand C very well and completely missed WHY you don't cast from malloc, and thus changed the functionally in his own version of the language.

    C is a strongly typed language, it's actually one of it's selling point. In order to miss-assign types you have to go through the additional hoop of casting, telling the language 'yes, I know what I'm doing and I really DO want to do this'. By using an explicit cast after a malloc one is signaling 'something is wrong here and I am forcing it to do something it doesn't want to'. It's a big red flag that something is going on and is probably going wrong.

  • Mr.'; Drop Database -- (unregistered) in reply to ?%^$
    ?%^$:
    DWalker:
    Sorry to correct your "incompetence" sentence, but "it's" should be "its". I won't say that you're incompetent, though...
    Shouldn't that be " its' "?
    Of course not. "Its" is already possessive—it's its job.
  • 0100100001100101011011000111000000100000011011010110010100100001 (unregistered) in reply to Tom Woolf
    Tom Woolf:
    About #2...

    While searching through resumes for technical writers, I ran across one that had a bunch of bells and whistles. WordArt was apparently the applicant's favorite tool.

    The resume had about 15 different fonts, a mixture of bold, italics, underlines, etc. The thing that stood out the most on the resume was the phrase "I'm a lean, mean, tech-writing machine!" vertically in the margins.

    It reminded me of the class I was TA for in college many years ago, where the professor required we grade on the number of font changes on a document rather than how the document actually looked (it was a beginning computer class, and the assignment was a first use of a word processing program).

    Pretty does not mean quality (or qualified)...

    Actually, pretty often does mean quality. Proper attention to design and aesthetics is pretty. Nothing you described above is pretty.

  • Bizzle (unregistered)

    I think the real question here is, how do I make my Resume/CV look real nice and pretty?

  • Eugene (unregistered)

    I'd suspect that adding puppies to a resume would actually decrease your chances of being considered, wouldn't it? Definitely the resume should be nicely formatted and easy to read, and maybe triangles and lines in background are OK, but anything more than that would be bad.

  • Josh (unregistered)

    I tend to include a picture of a handgun. Position filled!

  • Not Jeff Atwood (unregistered)

    Was the "C" guy Jeff Atwood?

  • gray goat (unregistered) in reply to testx

    Look at the most recent job worked and how long they worked there.

    Sounds like you are letting YOUR prejudices through...

  • (cs) in reply to Anonymous Cowherd
    Anonymous Cowherd:
    The following is a legal C program that will not compile with a C++ compiler:

    #include <stdlib.h>

    struct S

    {

    int x;
    

    };

    int main(int argc, char * argv[])

    {

    struct S * f = malloc(sizeof(struct S));
    
    free(f);
    

    }

    Are you seriously telling me C programmers never use malloc?

    Why wouldn't that compile in C++? malloc is valid. sizeof ( XXXX) is valid. structs are valid.

    It may not be very OO, but it should be valid compilation wise (unless it should read "sizeof(S)" as opposed to "sizeof ( struct S )"

  • Lumberjack (unregistered)
    Languages and technical writing: PHP, MySQL, AJAX, JavaScript, PRADO Framework, MSSQL Server, C#, .Net Framework, Perl, C/C++, Visual Basic, ASP, HTML, DHTML, XML, SOAP, CSS, Java, UML

    When I see such a list on a resume, it really tells me you know about 3% of what there is to know in all these subjects.

    Guess what? I got absolutely no use for somebody like that.

  • Wha? (unregistered) in reply to Lumberjack
    Lumberjack:
    Languages and technical writing: PHP, MySQL, AJAX, JavaScript, PRADO Framework, MSSQL Server, C#, .Net Framework, Perl, C/C++, Visual Basic, ASP, HTML, DHTML, XML, SOAP, CSS, Java, UML

    When I see such a list on a resume, it really tells me you know about 3% of what there is to know in all these subjects.

    Guess what? I got absolutely no use for somebody like that.

    I got plenty of use for someone like that. My office needs a coffe-boy (or girl)

  • ITEric (unregistered)

    Unfortunately, it's all too common for resumes to be judged based on appearance rather than content. It would be a bigger surprise if the more qualified applicant got the job despite a less appealing design.

Leave a comment on “It's All About C, The CIA Interview, & Not People Like You”

Log In or post as a guest

Replying to comment #:

« Return to Article