We are finding it difficult to find good C programmers. The schools are teaching Java most of the way through and C is introduced late in the curriculum. This does not provide enough time for new grads to really come to terms with the low level intricacies when interfacing directly with the HW. Pointers, they seem to be a mystery to a majority of our applicants, that and bit wise operations. If you are poking registers in a device driver, you should be capable of toggling a bit in a control register...
I was blogging about this frustration just a couple weeks ago. Here's the bulk of that item, aka: Shameless Job Posting
We are looking for 10 solid C / C++ programmers. These positions are excellent opportunities to break into the Avionics and Aerospace industries. We'll teach you our DO178B development practices and you get to work on the next generation of aircraft systems, designing industry leading hardware and software solutions.
Who should apply? Looking at the HR job descriptions it appears that you should have some graphics experience; but I'll tell you straight away that this is not important to us. We can teach you OpenGL, just as we can teach you DO178B. What we can't teach is how to develop using C. We can't teach you that refactoring is a good way to solve many design problems. We can't teach you that effort spent on design saves time when you write the code or the test plan. We can't teach you pointer math, or methods for optimizing your code. These are things that you either understand or you don't.
If you can reverse a singly linked list in place, or have ever implemented "Scatter Gather" DMA transfers, or if you can describe the benefits and drawbacks of function pointers, then you are ready for the interview. And knowing why these things are discouraged in safety critical avionics applications will win you a job very quickly. (We'll teach you why these are bad ideas too, if you don't already know it.)
In your cover letter, mention that you are applying to ALT Software after reading Mike Agar's (Vice President of Software Engineering) Blog. It will get a closer look.
This is the second story today ripped right off of Make Magazine. I understand the competition to bring stuff that matters to the forefront, but I am just a bit disappointed that/. has become so un-original.
I'm hiring! I'm not looking for enterprise SQL Server people, but low level C programmers. OpenGL is an asset, but I'm also looking for good people with experience: Java, Stereoscopic, MPEG, DTV, ATSC, Quality Assurance Testers, WinCE, VxWorks, Embedded Linux, Greenhills Integrity, etc. I've got 20 positions to fill TODAY! (some in the Waterloo area, some in Markham, and the rest in our Toronto HQ)
If your buddies (or you) are interested swing by my blog: www.jmagar.com
There's more info there, and link to the corporate website...
External influences may be skewing the results here. A 35 year old programmer (someone still actively writing code instead of project managing a team) is likely to be a member of the "best programmers" group. Average programmers (like myself, age 31) discover that they don't stack up against the rock stars, and move off of the critical path into management...
I'll keep this short, for I have little more to offer than what has already been said. But if this sort of thing (mathematics, proofs, and the beauty within) interests you, then you should really check out this book:
I am only half way through it, and it handles this topic far more gracefully than the original article. Very entertaining if you happen to be a math, music, or art geek. Strange mix, but Douglas Hofstadter really nailed it.
I don't know who said it, or if I have the quote right but I'll attribute it to a 1950's era Ford Engineer:
"The most effective safety device for a car would be a 6 inch metal spike, attached to the steering wheel, pointed at the driver's chest."
Surely that would be cheaper than today's airbags, and I agree that I'd be inclined to drive a little more cautiously... Safety doesn't have to cost money, but it will cost something. In this case It would take me much longer to cross the city in my car, traveling at about 40km/h...
I don't know where you came up with the idea that laws are for the populace. It is plain to see that laws are there to protect those organizations who sponsor them. The government must protect the church of the un-holy dollar; where righteousness is measured by profit. If there's is NO PROFIT in letting you copy a work, and there's IS PROFIT in restricting your "right" to copy, which do you think is "Righteous" in the law?
First thing I thought too. I just finished a great book about Thomas Harvey and how he managed to hold on to the wonderous organ for so long. Check it out:
If you run PHP / MySQL website, and want a free and powerful RSS content syndication engine that easily integrates with any architecture check out MyHeadlines. Already having been ported to PHPNuke, PostNuke, Xoops, MyPHPNuke, PHPWebsite, and a Stand Alone version is also available. The easy CMS abstraction layer lets you integrate with just about any PHP based web site. It comes with a catagorized database of over 3000 feeds, and features a scraper subsystem for constructing new RSS feeds for sites that don't produce their own.
Good code comments itself. I have seen highly commented code that is impossible to maintain for two reasons: 1) the code was so overly complex that the programmer had to comment to explain what it did 2) changes over time by maintainers failed to include updating the comments. Thus you end up with code that is commented one way, but actually did something else.
I personally like to see interface comments only. A function takes these inputs and returns this value. Anything else is just wasted time.
Actually the BTS 10200 is a telco grade Call Manager. I don't know their PBX line of cisco IP phones. The BTS is designed for SIP and for enabling any MGCP or SIP MTA, it is essantially a CLASS 5 switch for VoIP, some crazy number like 20,000 call setups per second. I know that this is being used for TWC to offer VoIP on the Road Runner cable modem network.
VoIP is Point to Point already for on net calls. If you leave to the POTS them you are working with a media gateway in the middle.
CALEA works on the call manager. Heres a quick and dirty run down: 1)You pick up the phone 2)the MTA (you IP phone) sends an off hook to the call manager 3) the call manager send back dial tone. 4) you dial 5) the call manager hunts for a route either on net of to the SS7 network 6a) if on net the call manager send ring to other MTA 6b) if off net call manager send ring over SS7 (POTS) 7) other end picks up 8) call manager receives other end off hook 9) call manager connects the call by sending directly to the other MTA (on net) of the media gateway (POTS)
CALEA is implemented on the call manager by controling the MTA that is being "bugged" by forcing the call through a media gateway with recording capabilities, or by forking the stream and connecting an additional endpoint to the call.
How do you beat it? First off you need to be able to tell the difference of end point so snooping the SIP (session initiation protocol) and watching for a change in MTA endpoint. If you know the other parties IP and you are going somewhere else then you are probably being bugged.
The other way, is to build your own Call Manager. The SIP protocol is not too complex, and if you don't want to do funky telco stuff like call waiting... then a bare bones connection manager shouldn't be too tough. Your call manager would only work for on net calls, but I think you've already decided that P2P is what you wanted in the first place.
I have been pondering the implications of this type of thing for a while now. I am currently building in a backdoor AND telling the user about it. You can read more of the discussion here:
There must be some sort of disconnect here. It amazes me that this is expected of the public school system in the US. Why should the school feed the students? Just how poor do you have to be that you can't give your kid breakfast in morning before the bus comes?
My sister lives in Texas, and her step kids get breakfast at school, the mentality is that it's free and it is encouraged for everyone to take advantage so that those who really need the welfare don't suffer a social stigma. What other bloat is in the system, that could be re-tooled to address the quality of the education?
'82, I was nine and hip deep in a C64. 3 brothers, and sisters, stay at home mom, No problem affording a C64. It was the "Family's" computer had Frogger, Jumpman, etc. Got it for XMAS one year, but I was the only one that understood the thing. (Mom actually was the first family hacker, she ported Miner from the PET to the C64)
It was maybe 3 hours before I had "my sister is stupid" repeating all over the screen.
Woohoo! RSS would have saved me the time of scraping your site. The scraper grabs the headlines, and links directly back to your site's content. If anything you should see more traffic as the headlines reach more eyeballs now.
The question has interesting aspects where it relates to software management on the desktop. But it falls terribly short on reason. Why would you replace the user's prefered browser with your idea of what is right? Some may already have Moz on the desk, but I bet most will hate you for replacing IE. Have you nothing better to do than push out a browser (and IMHO a bad one) to the desktop? Surely there are more pressing issues for your IT shop to address.
It's hard to tell if having a blog and my recent resignation are related. Certainly not a cause and effect thing, more of a symptom that my job did not fully utilize my capacity to do work. Bored at work I filled my downtime with PHP code, learning new integration techniques (XML-RPC, SOAP, etc.) and mastering SQL and various stored procedure languages. Nobody at my day job minded much since I was the go to guy when the really tough techincal questions came up, but that only happened 2-3 times a year... So having and maintaining a blog was a side effect of being stuck in a slow day job.
The counter argument is that by maintaining a BLOG my new employer was able to keep tabs on me and we've come to an agreement that I should return to a more technically demanding environment... So my BLOG helped me get out of a dull job and into a better one.
I offer this simple rule while blogging: NEVER writing anything about work that violates NDA's, slags the company or client, and remember that your boss may be reading what you write...
Thanks for the authoritative response Graff. I seem to remember a few things from my materials course: Work Hardening, Plastic Deformation, and Elastic Deformation.
Now I will assume that the device is operating within the elastic range of the material, but where does work hardening come in?
We work harden the cables in suspension bridges by tensioning the metal cables. How does this work? Do we bring the cables to the boundary of the elastic and plastic deformation range for the material? Maybe even into the plastic range?
PHP's "Dumbest Idea" in computer security: register_globals off
Cheap hack is to add another variable to the url:
t =rss&dummy=dot.xml
http://news.google.ca/nwshp?hl=en&tab=wn&q=&outpu
Enjoy!
The Infrared camera hack was first reported on Make too.
If your buddies (or you) are interested swing by my blog: www.jmagar.com
There's more info there, and link to the corporate website...
External influences may be skewing the results here. A 35 year old programmer (someone still actively writing code instead of project managing a team) is likely to be a member of the "best programmers" group. Average programmers (like myself, age 31) discover that they don't stack up against the rock stars, and move off of the critical path into management...
My 2 cents.
Godel, Escher, Bach: an Eternal Golden Braid
I am only half way through it, and it handles this topic far more gracefully than the original article. Very entertaining if you happen to be a math, music, or art geek. Strange mix, but Douglas Hofstadter really nailed it.
I don't know who said it, or if I have the quote right but I'll attribute it to a 1950's era Ford Engineer:
"The most effective safety device for a car would be a 6 inch metal spike, attached to the steering wheel, pointed at the driver's chest."
Surely that would be cheaper than today's airbags, and I agree that I'd be inclined to drive a little more cautiously... Safety doesn't have to cost money, but it will cost something. In this case It would take me much longer to cross the city in my car, traveling at about 40km/h...
I don't know where you came up with the idea that laws are for the populace. It is plain to see that laws are there to protect those organizations who sponsor them. The government must protect the church of the un-holy dollar; where righteousness is measured by profit. If there's is NO PROFIT in letting you copy a work, and there's IS PROFIT in restricting your "right" to copy, which do you think is "Righteous" in the law?
Possessing Genius.
Cheers,
Mike
Good code comments itself. I have seen highly commented code that is impossible to maintain for two reasons:
1) the code was so overly complex that the programmer had to comment to explain what it did
2) changes over time by maintainers failed to include updating the comments. Thus you end up with code that is commented one way, but actually did something else.
I personally like to see interface comments only. A function takes these inputs and returns this value. Anything else is just wasted time.
Actually the BTS 10200 is a telco grade Call Manager. I don't know their PBX line of cisco IP phones. The BTS is designed for SIP and for enabling any MGCP or SIP MTA, it is essantially a CLASS 5 switch for VoIP, some crazy number like 20,000 call setups per second. I know that this is being used for TWC to offer VoIP on the Road Runner cable modem network.
VoIP is Point to Point already for on net calls. If you leave to the POTS them you are working with a media gateway in the middle.
CALEA works on the call manager. Heres a quick and dirty run down:
1)You pick up the phone
2)the MTA (you IP phone) sends an off hook to the call manager
3) the call manager send back dial tone.
4) you dial
5) the call manager hunts for a route either on net of to the SS7 network
6a) if on net the call manager send ring to other MTA
6b) if off net call manager send ring over SS7 (POTS)
7) other end picks up
8) call manager receives other end off hook
9) call manager connects the call by sending directly to the other MTA (on net) of the media gateway (POTS)
CALEA is implemented on the call manager by controling the MTA that is being "bugged" by forcing the call through a media gateway with recording capabilities, or by forking the stream and connecting an additional endpoint to the call.
How do you beat it? First off you need to be able to tell the difference of end point so snooping the SIP (session initiation protocol) and watching for a change in MTA endpoint. If you know the other parties IP and you are going somewhere else then you are probably being bugged.
The other way, is to build your own Call Manager. The SIP protocol is not too complex, and if you don't want to do funky telco stuff like call waiting... then a bare bones connection manager shouldn't be too tough. Your call manager would only work for on net calls, but I think you've already decided that P2P is what you wanted in the first place.
I have been pondering the implications of this type of thing for a while now. I am currently building in a backdoor AND telling the user about it. You can read more of the discussion here:
Remote Code Hosting
> nutritious food programs!
There must be some sort of disconnect here. It amazes me that this is expected of the public school system in the US. Why should the school feed the students? Just how poor do you have to be that you can't give your kid breakfast in morning before the bus comes?
My sister lives in Texas, and her step kids get breakfast at school, the mentality is that it's free and it is encouraged for everyone to take advantage so that those who really need the welfare don't suffer a social stigma. What other bloat is in the system, that could be re-tooled to address the quality of the education?
'82, I was nine and hip deep in a C64. 3 brothers, and sisters, stay at home mom, No problem affording a C64. It was the "Family's" computer had Frogger, Jumpman, etc. Got it for XMAS one year, but I was the only one that understood the thing. (Mom actually was the first family hacker, she ported Miner from the PET to the C64)
It was maybe 3 hours before I had "my sister is stupid" repeating all over the screen.
I can't believe that nobody has mentioned Office Space. I am quite sure that if you think about it, Office Space is the answer.
Frist Prost!!! ...not likely since this story has been up for over 2 hours and yet no posts????
/. hiccup...
I'm sure we'll be seing a post mortem of this little
Anyway, I think the document referred to is this one:
Template Based Scripting
Looking forward to your RSS feeds, so that I can turn of my scrapper.
Cheers,
Mike
Woohoo! RSS would have saved me the time of scraping your site. The scraper grabs the headlines, and links directly back to your site's content. If anything you should see more traffic as the headlines reach more eyeballs now.
Here's the document in question:
Template Based Scraping
Cheers,
Mike
The question has interesting aspects where it relates to software management on the desktop. But it falls terribly short on reason. Why would you replace the user's prefered browser with your idea of what is right? Some may already have Moz on the desk, but I bet most will hate you for replacing IE. Have you nothing better to do than push out a browser (and IMHO a bad one) to the desktop? Surely there are more pressing issues for your IT shop to address.
It's hard to tell if having a blog and my recent resignation are related. Certainly not a cause and effect thing, more of a symptom that my job did not fully utilize my capacity to do work. Bored at work I filled my downtime with PHP code, learning new integration techniques (XML-RPC, SOAP, etc.) and mastering SQL and various stored procedure languages. Nobody at my day job minded much since I was the go to guy when the really tough techincal questions came up, but that only happened 2-3 times a year... So having and maintaining a blog was a side effect of being stuck in a slow day job.
The counter argument is that by maintaining a BLOG my new employer was able to keep tabs on me and we've come to an agreement that I should return to a more technically demanding environment... So my BLOG helped me get out of a dull job and into a better one.
I offer this simple rule while blogging: NEVER writing anything about work that violates NDA's, slags the company or client, and remember that your boss may be reading what you write...
Thanks for the authoritative response Graff. I seem to remember a few things from my materials course: Work Hardening, Plastic Deformation, and Elastic Deformation.
Now I will assume that the device is operating within the elastic range of the material, but where does work hardening come in?
We work harden the cables in suspension bridges by tensioning the metal cables. How does this work? Do we bring the cables to the boundary of the elastic and plastic deformation range for the material? Maybe even into the plastic range?
Just curious,
Mike Agar