Good point, but I still think it makes more sense to count the first index as 0 vs 1, 0 means you can access index -1, or 1 as the next hop which to me makes more logical sense when I think of arrays.
Why a truck? 99% of the pickup trucks on the road are just for show, almost no one who owns one actually carries anything in them. I think we should actually ban trucks in larger cities like Toronto with out a special permit. We have societies obsessed with bigger and more power trucks when in the end all they really need is a smart car. Lets stop building pickup trucks and focus more on size and power efficient cars. I know this isn't in line with this post but I think someone has to mention this issue.
So lets take a horrible desktop IDE and make it available online! Visual Studio is a laughing stock of IDE's, it's overly complex, over bloated, expensive, complicated to use and just an amature attempt at an IDE. All you really need to be a good programmer is a text editor and a toolchain, if you can't make magic happen with that then an IDE is not the answer. I have yet to find an IDE that I like or even can use more proficiently then Vim and the GNU toolchain, Vim has all the features you need including auto-completion, it's fast, lightweight, cross platform and a beast. Why does Microsoft waste time doing things like this, Visual Studio is a joke and will never be a serious IDE for serious programmers. It has yet to bring features to the table that make me want to use it.
You're totally correct that I errored in saying good coders don't make unsecure code, but generally the low level programmers just turn out more secure, stable and rock solid code. If I compare all the programmers I know who program in C / ASM and those who program in C++, C#, Java and etc... there is no comparison, the low level guys always produce better code. Infact when I interview new hires it's the one question I ask, if they tell me C is dead or ASM is dead then they have end up having a hard time getting a job.
VHDL does require skill and yes anyone can do VHDL but it's such a pain in the ass to do that generally VHDL designers are just on another level, to program VHDL well you have to be an expert and pretty much touch nothing else.
Assuming the embedded developers are skilled and can craft excellent low level software in ASM and C then very little. If we assume they threw some co-op's on the job with some cocky young programmers and they used Object Oriented languages then a hell of a lot. However I feel pretty confident that the code is pretty low level because having done radio programming, you generally need to work at the architecture level and not abstracted by 10 levels. Of course the other option is that it's all VHDL / Verilog in which case I trust it almost completely because anyone skilled enough to do hardware design in VHDL / Verilog is going to be pretty hardcore.
You can say whatever you want about anything or anyone you want as long as it's true. The legal department can threaten you all they want and truthfully it's a joke. The University can't fight you on anything that you say as long as you don't lie! As for using images and banners from the University well chances are they are publically or facility usable, I would check with the University non legal department before anything else.
Blackberry is the laughing stock of companies in ontario, it's a serious face palm to think they're yet again going to try and save one of the biggest failures in Canadian history. This company has been run into the ground by three different CEO's and now a fourth will try and show us how it's done. Blackberry is not a viable phone company, they have crappy, buggy software, out of date and poorly styled hardware and just a lack of innovation at every level. Lets see one more time how bad Blackberry can fail, I'm waiting to hear about the next round of layoff's, of course anyone working for the tech joke who didn't see this coming years ago deserves it, as a coop student I could see it coming like a steam roller, hence why I didn't sign a full time deal with them.
UML is probably the worlds most ridiculous method for laying out code, not only is it completely inefficient, it's usually unclear, cluttered and in the end doesn't produce any code!
Code reviews involve a bunch of people sitting around arguing about why you did something one way vs another. One time working on large PHP system I used a regex to verify an email address, during the code review it got brought up that I should of used email_verify ( or something like that ). The person leading the review didn't understand that we can't control how email_verify was implemented and that I wouldn't accept my system being broke because some developer between releases decided to change the implementation of it, ultimately we changed it after arguing for about 10 minutes, if it ever breaks I'll just smile.
On that exact same project I was working on a chat / feeder system, my co-worker spent days and days drawing up pseudo code and charts and no writing a single line of code. At the end of the week I had a working chat and feeder system which was running and very usable, he had a bunch of non functional code and a lot of UML that didn't show how it was going to work.
On another system, I was once told to take all my comments out of the code because they cluttered it up and made it harder to read. This was an embedded system that was fairly complex so I commented almost every line, sure enough at code review a few developers had serious issues with my comments so I got told to take them out. I explained that in 10 years you'll have no bloody idea how that code works and you'll have no way to upgrade it should you need to. Once again after arguing for a good twenty minutes I just removed them to make the leader shut up.
I can keep going for a long long while, the one thing all of these people had in common was that they were software engineering and rarely if ever wrote code, the code they did write was completely un-maintainable for any aspect you want to pick. I have probably another 50 examples where I was asked to make large code changes because I didn't have pseudo code or I didn't draw up UML or they thought I could of picked C# of C and etc...
The best project I ever worked on was for a medical device. I sat down with the team I was working with and the first thing out of the leads mouth was "We don't use UML, we don't Pseudo code, we don't waste time if we can be coding", The project was spec'd for 6 months and we had a working beta system ready in 2, all because we didn't waste the time to follow "software engineering practices", the code is serviceable, although has never been edited, the code is upgradable, although we've never been asked to that and over all it's the best embedded system I've ever worked on because we wrote code and didn't sit down and argue about shit which doesn't matter.
The best way to find bugs or fixes or potential issues is to run your code and simply see where it fails. I've heard and read tons about how to write bug free code and solid testable code and maintain code and it's all total BS, if you can't run your code and if you can't test your code then you shouldn't be working on it. Even if that included writing a simulator to run it on, which I've also done.
China has pretty much a no child left behind principal, either do the work and learn or you don't get to eat, play, have friends, family respect and etc.... Basically learn or die except that you can't die.
The math and science standards in north america are horrible. My girl friend moved from China to Ontario at age 9 and she says that until Grade 9 she didn't learn a single new science or math concept. If we want to really make the system work for the kids we need to drastically revamp how we teach math and science and really follow the Asian standard.
All of the developers I've worked for and with who brag about the maintainability of there code have one thing in common, they write REALLY bad code. Maintainability is one of those catch words that doesn't mean anything, just like software engineer. Software isn't engineered, it's written, tested and released. Claiming that software engineering is a legitimate field is the same as saying baking engineer or house wife engineer, basically you want to bloat your own ego for nothing and sound like an idiot well doing it.
What you want to look for in a good programmer is someone who can sit down and write code that is well formatted and functional, period! If you ever find a programmer who wants to have code reviews, meetings, large pseudo code sessions, UML graphs and etc... just fire them because they aren't going to do the one thing coding is about and that is witting code. If you can't maintain someone else's code as a programmer then 99/100 times you just suck at actually programming. I really think we need to get off this concept of software being engineered and we need to stop using catch words that make programming sound like it's a medical practice full of critical elements and tight restrictions ( I'm not including medical based software here ).
You can't blame a language for flaws when you decide to use the features you consider dangerous. Pointers are one of the most powerful features of C and if you know how to use them correctly and safety they will be very very powerful. Just because a pointer can completely grable memory and completely corrupt your stack and heap doesn't mean they will. C and ASM assume the programmer is smart enough to take memory management into there own hands and personally I completely agree. I hate all forms of automatic management and garbage collection, they both don't work nearly as well as a skilled programmer with a good knowledge of pointers.
You're right, there should never be undefined behavior or clueless development. If things are getting compiled out of the code then you clearly don't know enough about the compiler and language. I love when developers blame things like pointers and memory faults instead of the misuse of these by bad programming.
The only way to guarantee quality, and longevity is to write your own frameworks. Well excellent third party frameworks exist you just can't trust they will be around for ever, if you're serious and you want the best product possible, you have to write it.
Yes, I will stand there and refuse them access. If they try to make something up then I will demand the manager / director come over and deal with it. If I miss my flight because all of this happens then I'll get a refund and extra reimbursement for my troubles. You can't just bend over and take it because you refuse to either give yourself enough time to deal with it or because you're to weak to stand up and make a point of letting your electronic privacy survive.
I've had more then one TSA agent demand I enter my key for the boot to take place, I told them "No, you have seen it turn on and that's all I'm going to show you.", There was a push back and I ended it by just demanding to talk to the Director, who oddly enough wasn't there and didn't have a replacement working. I said he can call me when he gets back but until then I have tickets to get on the flight and they let me through.
Funny thing is you never have to actually power on the electronics you carry, Just lock them with a password of encrypt them and by law the TSA can't ask you to give them entry.
I can't believe people are still using IE, Has it ever really worked properly going back to IE5? If it wasn't rejecting CSS / HTML code or if it wasn't hanging causing non response errors it was failing to load pages. Now lets forward through releases and they are at IE11 which is causing Google rendering to fail! This means not only is IE bad enough to barely work in the best cases, it's causing issues with other software, I think it's time for Microsoft to admit they know jack shit about browser development.
Well first of all I said desktop programming and not web programming, Java Script would be classified as a web language and not a desktop language. Secondly Java is a horrible concept, it's entire basis is to create a virtual machine you run on instead of sitting right on the OS, well I can agree it's a wide spread and commonly used language I still hate it, Lastly you can have what every belief you want but I don't agree, if someone if going to take my C code and move it to a Blackfin arch then so be it but just don't come ask me for help when it doesn't work, you keep talking about DOS but that almost proves my point that hardware has taken a back seat and it shouldn't, if you don't understand hardware then how are you going to write a driver or a serial data logging interface? How are you going to be able to port between x86 and a Coldfire DSP? If it works by the sheer luck of the FSM then so be it but in general it won't, you need to know hardware to be a good programmer and a good developer should be just at home writing a RTOS as writing as a C# desktop app.
If you're going to port your code to multiple architectures then you need to understand the architectures and all the in's / out's that make them run. if you're going to program in C++, C#, C, ASM, Matlab, COBOL and etc... you need to understand how they use memory and the size of different aspect of the language. You should never just fall back and let the OS run your code without thinking how it's going to run your code and how your code will interact with your hardware. You can always tell when a programmer has no concept of hardware because the code will reflect bad design and bad resource allocation, on the same regard you can always tell a truly great programmer because the code will reflect the hardware on which it runs. If desktop programmers thought more like embedded developers we would see much better code and much better end products.
On side a note you should always have access to your DMA controller, and if you need to hack open the kernel to get access then stop using that operating system. If you can get in and control a DMA controller manually for your program you can optimize the hell out memory and I/O access and take your program from a fast program to a truly blazing program.
I guess technically you are lol, but in either case you're still not 1.
Good point, but I still think it makes more sense to count the first index as 0 vs 1, 0 means you can access index -1, or 1 as the next hop which to me makes more logical sense when I think of arrays.
0 is the first number, so everything should start at 0. When you're born you aren't 1 you're 0, 0 is the logical first place to start for counting.
Yes I agree, if you own a pickup you should be towing or moving loads, other wise keep it parked.
Why a truck? 99% of the pickup trucks on the road are just for show, almost no one who owns one actually carries anything in them. I think we should actually ban trucks in larger cities like Toronto with out a special permit. We have societies obsessed with bigger and more power trucks when in the end all they really need is a smart car. Lets stop building pickup trucks and focus more on size and power efficient cars. I know this isn't in line with this post but I think someone has to mention this issue.
So lets take a horrible desktop IDE and make it available online! Visual Studio is a laughing stock of IDE's, it's overly complex, over bloated, expensive, complicated to use and just an amature attempt at an IDE. All you really need to be a good programmer is a text editor and a toolchain, if you can't make magic happen with that then an IDE is not the answer. I have yet to find an IDE that I like or even can use more proficiently then Vim and the GNU toolchain, Vim has all the features you need including auto-completion, it's fast, lightweight, cross platform and a beast. Why does Microsoft waste time doing things like this, Visual Studio is a joke and will never be a serious IDE for serious programmers. It has yet to bring features to the table that make me want to use it.
You're totally correct that I errored in saying good coders don't make unsecure code, but generally the low level programmers just turn out more secure, stable and rock solid code. If I compare all the programmers I know who program in C / ASM and those who program in C++, C#, Java and etc... there is no comparison, the low level guys always produce better code. Infact when I interview new hires it's the one question I ask, if they tell me C is dead or ASM is dead then they have end up having a hard time getting a job.
VHDL does require skill and yes anyone can do VHDL but it's such a pain in the ass to do that generally VHDL designers are just on another level, to program VHDL well you have to be an expert and pretty much touch nothing else.
Assuming the embedded developers are skilled and can craft excellent low level software in ASM and C then very little. If we assume they threw some co-op's on the job with some cocky young programmers and they used Object Oriented languages then a hell of a lot. However I feel pretty confident that the code is pretty low level because having done radio programming, you generally need to work at the architecture level and not abstracted by 10 levels. Of course the other option is that it's all VHDL / Verilog in which case I trust it almost completely because anyone skilled enough to do hardware design in VHDL / Verilog is going to be pretty hardcore.
You can say whatever you want about anything or anyone you want as long as it's true. The legal department can threaten you all they want and truthfully it's a joke. The University can't fight you on anything that you say as long as you don't lie! As for using images and banners from the University well chances are they are publically or facility usable, I would check with the University non legal department before anything else.
Just go to lunch once or twice a week and have a nice social time with your co-workers and mangers.
Blackberry is the laughing stock of companies in ontario, it's a serious face palm to think they're yet again going to try and save one of the biggest failures in Canadian history. This company has been run into the ground by three different CEO's and now a fourth will try and show us how it's done. Blackberry is not a viable phone company, they have crappy, buggy software, out of date and poorly styled hardware and just a lack of innovation at every level. Lets see one more time how bad Blackberry can fail, I'm waiting to hear about the next round of layoff's, of course anyone working for the tech joke who didn't see this coming years ago deserves it, as a coop student I could see it coming like a steam roller, hence why I didn't sign a full time deal with them.
UML is probably the worlds most ridiculous method for laying out code, not only is it completely inefficient, it's usually unclear, cluttered and in the end doesn't produce any code!
Code reviews involve a bunch of people sitting around arguing about why you did something one way vs another. One time working on large PHP system I used a regex to verify an email address, during the code review it got brought up that I should of used email_verify ( or something like that ). The person leading the review didn't understand that we can't control how email_verify was implemented and that I wouldn't accept my system being broke because some developer between releases decided to change the implementation of it, ultimately we changed it after arguing for about 10 minutes, if it ever breaks I'll just smile.
On that exact same project I was working on a chat / feeder system, my co-worker spent days and days drawing up pseudo code and charts and no writing a single line of code. At the end of the week I had a working chat and feeder system which was running and very usable, he had a bunch of non functional code and a lot of UML that didn't show how it was going to work.
On another system, I was once told to take all my comments out of the code because they cluttered it up and made it harder to read. This was an embedded system that was fairly complex so I commented almost every line, sure enough at code review a few developers had serious issues with my comments so I got told to take them out. I explained that in 10 years you'll have no bloody idea how that code works and you'll have no way to upgrade it should you need to. Once again after arguing for a good twenty minutes I just removed them to make the leader shut up.
I can keep going for a long long while, the one thing all of these people had in common was that they were software engineering and rarely if ever wrote code, the code they did write was completely un-maintainable for any aspect you want to pick. I have probably another 50 examples where I was asked to make large code changes because I didn't have pseudo code or I didn't draw up UML or they thought I could of picked C# of C and etc...
The best project I ever worked on was for a medical device. I sat down with the team I was working with and the first thing out of the leads mouth was "We don't use UML, we don't Pseudo code, we don't waste time if we can be coding", The project was spec'd for 6 months and we had a working beta system ready in 2, all because we didn't waste the time to follow "software engineering practices", the code is serviceable, although has never been edited, the code is upgradable, although we've never been asked to that and over all it's the best embedded system I've ever worked on because we wrote code and didn't sit down and argue about shit which doesn't matter.
The best way to find bugs or fixes or potential issues is to run your code and simply see where it fails. I've heard and read tons about how to write bug free code and solid testable code and maintain code and it's all total BS, if you can't run your code and if you can't test your code then you shouldn't be working on it. Even if that included writing a simulator to run it on, which I've also done.
China has pretty much a no child left behind principal, either do the work and learn or you don't get to eat, play, have friends, family respect and etc.... Basically learn or die except that you can't die.
The math and science standards in north america are horrible. My girl friend moved from China to Ontario at age 9 and she says that until Grade 9 she didn't learn a single new science or math concept. If we want to really make the system work for the kids we need to drastically revamp how we teach math and science and really follow the Asian standard.
All of the developers I've worked for and with who brag about the maintainability of there code have one thing in common, they write REALLY bad code. Maintainability is one of those catch words that doesn't mean anything, just like software engineer. Software isn't engineered, it's written, tested and released. Claiming that software engineering is a legitimate field is the same as saying baking engineer or house wife engineer, basically you want to bloat your own ego for nothing and sound like an idiot well doing it.
What you want to look for in a good programmer is someone who can sit down and write code that is well formatted and functional, period! If you ever find a programmer who wants to have code reviews, meetings, large pseudo code sessions, UML graphs and etc... just fire them because they aren't going to do the one thing coding is about and that is witting code. If you can't maintain someone else's code as a programmer then 99/100 times you just suck at actually programming. I really think we need to get off this concept of software being engineered and we need to stop using catch words that make programming sound like it's a medical practice full of critical elements and tight restrictions ( I'm not including medical based software here ).
You can't blame a language for flaws when you decide to use the features you consider dangerous. Pointers are one of the most powerful features of C and if you know how to use them correctly and safety they will be very very powerful. Just because a pointer can completely grable memory and completely corrupt your stack and heap doesn't mean they will. C and ASM assume the programmer is smart enough to take memory management into there own hands and personally I completely agree. I hate all forms of automatic management and garbage collection, they both don't work nearly as well as a skilled programmer with a good knowledge of pointers.
You're right, there should never be undefined behavior or clueless development. If things are getting compiled out of the code then you clearly don't know enough about the compiler and language. I love when developers blame things like pointers and memory faults instead of the misuse of these by bad programming.
What I mean by that is they called Open Source software the issue! Another proprietary bug in plan sight, maybe Oracle should recant what they said.
The only way to guarantee quality, and longevity is to write your own frameworks. Well excellent third party frameworks exist you just can't trust they will be around for ever, if you're serious and you want the best product possible, you have to write it.
Yes, I will stand there and refuse them access. If they try to make something up then I will demand the manager / director come over and deal with it. If I miss my flight because all of this happens then I'll get a refund and extra reimbursement for my troubles. You can't just bend over and take it because you refuse to either give yourself enough time to deal with it or because you're to weak to stand up and make a point of letting your electronic privacy survive.
I've had more then one TSA agent demand I enter my key for the boot to take place, I told them "No, you have seen it turn on and that's all I'm going to show you.", There was a push back and I ended it by just demanding to talk to the Director, who oddly enough wasn't there and didn't have a replacement working. I said he can call me when he gets back but until then I have tickets to get on the flight and they let me through.
Funny thing is you never have to actually power on the electronics you carry, Just lock them with a password of encrypt them and by law the TSA can't ask you to give them entry.
I can't believe people are still using IE, Has it ever really worked properly going back to IE5? If it wasn't rejecting CSS / HTML code or if it wasn't hanging causing non response errors it was failing to load pages. Now lets forward through releases and they are at IE11 which is causing Google rendering to fail! This means not only is IE bad enough to barely work in the best cases, it's causing issues with other software, I think it's time for Microsoft to admit they know jack shit about browser development.
Well first of all I said desktop programming and not web programming, Java Script would be classified as a web language and not a desktop language. Secondly Java is a horrible concept, it's entire basis is to create a virtual machine you run on instead of sitting right on the OS, well I can agree it's a wide spread and commonly used language I still hate it, Lastly you can have what every belief you want but I don't agree, if someone if going to take my C code and move it to a Blackfin arch then so be it but just don't come ask me for help when it doesn't work, you keep talking about DOS but that almost proves my point that hardware has taken a back seat and it shouldn't, if you don't understand hardware then how are you going to write a driver or a serial data logging interface? How are you going to be able to port between x86 and a Coldfire DSP? If it works by the sheer luck of the FSM then so be it but in general it won't, you need to know hardware to be a good programmer and a good developer should be just at home writing a RTOS as writing as a C# desktop app.
I'm so glad that oracle pointed out the flaws of open source! I would hate to think of bad code stemming from proprietary ideologies.
If you're going to port your code to multiple architectures then you need to understand the architectures and all the in's / out's that make them run. if you're going to program in C++, C#, C, ASM, Matlab, COBOL and etc... you need to understand how they use memory and the size of different aspect of the language. You should never just fall back and let the OS run your code without thinking how it's going to run your code and how your code will interact with your hardware. You can always tell when a programmer has no concept of hardware because the code will reflect bad design and bad resource allocation, on the same regard you can always tell a truly great programmer because the code will reflect the hardware on which it runs. If desktop programmers thought more like embedded developers we would see much better code and much better end products.
On side a note you should always have access to your DMA controller, and if you need to hack open the kernel to get access then stop using that operating system. If you can get in and control a DMA controller manually for your program you can optimize the hell out memory and I/O access and take your program from a fast program to a truly blazing program.