Re:The real 90s versus outdated 00s software
on
Java Is So 90s
·
· Score: 1
Programmers need to make their homeworks in order to improve their skills. I've met lots of bad programmers on the area, no matter the language they work with. Most of the deficiencies they have are almost all the same: data structures, poor logic constructions...
Optmizers are now complex enough to generate an output in a way that there will be no difference if you use pointers or arrays. For this matter I prefer using the good sense: arrays are easier to understand and probably you are not going to be the one that will maintain the code in the future. Probably a programmer with much less experience will be the maintainer of the code. Therefore, it is a good idea to keep everything easy to understand. If it is really necessary to optimize it, if your compiler has a bad optimizer for instance, so do it. But only if it is really necessary.
I think that you should trust your optimizer as long as any profiling tools says that your code is running fast, after the optimization.
Here in Brazil several government units plan to migrate everything to linux and free software solutions. The Sao Paulo subway company has already adopted linux and open office solution for their desktop computing...
Sensitive information via e-mail? Oh, yeah, that is true. I could see people exchanging e-mail plenty of sensitive information, and sending this kind of message through the internet without ANY encryption. I feel that is the main concern of the companies nowadays.
For basic languages like C, I feel that the visual way to do things cannot be complete, unless you create some sort of code generator and trust the tool to create all the code for you. There are some tools for windows that do it so. All you have to worry about is to define the relationship of the data, design reports and so on. You don't have to touch code at all. However, I leave here a question: what if the tool has a bug? As a programmer from the last decade, I really don't trust such tools at all. I don't even trust my own code!
The announcement is on the Conectiva's web site (http://www.conectiva.com.br - both portuguese and english). Fusion of enterprises mean only one thing: revolution.
The free software moviment is shaking the industry and big players are investing big money on the initiative. The future is clouded. The veil of the dark side has fallen. The Linux wars begun!
Souce control is not a reality for every IT development. Unfortunally, some people like to use "directories" to control sources, what is great step to doom the entire project.
At least in the companies where I did work here in Brazil, everybody was using some sort of VCS. However, the common problem is the discipline to use a VCS. Sources that are updated outside the VCS and then deployed to the customers is the main problem I could see so far.
I feel that you must not only use a VCS but have discipline to use it.
Can you trust the piece of software that you write? I don't trust anything that I write...:) This is a matter of faith. Security is actually the best lie someone told us. You believe that you are safe, but you aren't. Even with signed controlled stuff you can sign a piece of malicious software and use some of the "social engineering" to get that software installed on your "victims" computer.
Security flaws on firefox? Oh, yeah, they are there for sure... Remember that we are talking about a version 1.0 of the software and every software has bugs. What is the current version of internet explorer? Ah... And it still with that lot of bugs? Amazing!
I think that printfs in development environment are not a good idea. It helps when you have an environment where there is no debugger at all.
For example, your program has a bug that you cannot reproduce in your test environment but the user has a test environment where the bug can be reproduced. Using it in the development environment sometimes can give you more headaches than if you use the debugger itself. For example, if you have a problem in the code and need to add an extra variable to build some data using a sprintf function and then the printf. You have added data to the stack of the local scope and probably have masked some memory invasion, since you have changed the stack. Also, printf may not be fast enough: it writes data into the buffered output. So, if your program dies for some reason, all the pending data in the buffers will be lost. Another problem is when you forget to delete the printfs from your code: you may annoy your users by putting messages on their consoles with some strange stuff like "PASSED HERE 1", "PASSED HERE 2" and so on.
There is another stuff that is interesting: printfs can coredump! For example:
printf ("Something: %s");
Try it! It coredumps nicely!
Debugging codes is always a pain. A good idea is to automate the debugging session. I've been using the.dbxinit files for unix debugging with great results, since I never lost what I'm doing, since all the breakpoints and print data is in a script that is stored in the disk. Automating the debugging sessions make it easy to analyze the most inconvenient loops inside your code. Also, it is good to share to other developers your script file since it may help them to see what you have looked into the code to solve some problems.
I really don't think C is dead. I've been working with C language since 1994 in Unix environment and it is a natural language to write applications to that environment. I feel that byte code languages are really cool but I believe that there is still a lot of work to be done in the interpreters.
That is the worst distribution I ever met in my professional life and I do not know anyone that uses that... I think that they are desperate and are just waiting for the worms to come, because they're already dead.
Is there already any distro with the kernel 2.6 series? I'm still waiting for the response of the market before going for kernel 2.6 yet. My 2.4.24 is really stable and running fine, but I'm anxious to see the threads improvements in 2.6...
Well, 10 to 15% is a very low rate taking into account the costs for each compiler. GCC may be slower, but, what is the benefits regarding its price? In this matter, I rely my opinion in the cost/benefit ratio.
An additional stuff to talk about: no matter which one creates the fastest code. I think, as a programmer, that the code must be optmized first by design, then by the compiler. I've seen a lot of programs that relies its performance to the compiler with absolutely bad design.
My comments in this matter are not very compliant with the discussion, but sometimes I see some bad software designs that are optmized only by a native compiler in a given platform. I see that all the time in the company where I work: endless loops full of database accesses and crazy decisions that leads the CPU to a very crazy load. Bad design for sure!
Microsoft office is something that you pay a lot of bucks to use solely 5% of it. Usually, the most used software is Microsoft Word. Only few people really use the full power of the software.
I really hate Microsoft Office. The software I use from this awful package is Word that uses to crash all the time when you are using the graphical tools that comes with it. I don't see how this can be a productive software because more than once I have lost ALL of my work because some crazy crash of it and I had to start again from scratch. Even that backup option do not work well when it crashes. More than once the files became corrupted...
Programmers need to make their homeworks in order to improve their skills. I've met lots of bad programmers on the area, no matter the language they work with. Most of the deficiencies they have are almost all the same: data structures, poor logic constructions...
Optmizers are now complex enough to generate an output in a way that there will be no difference if you use pointers or arrays. For this matter I prefer using the good sense: arrays are easier to understand and probably you are not going to be the one that will maintain the code in the future. Probably a programmer with much less experience will be the maintainer of the code. Therefore, it is a good idea to keep everything easy to understand. If it is really necessary to optimize it, if your compiler has a bad optimizer for instance, so do it. But only if it is really necessary.
I think that you should trust your optimizer as long as any profiling tools says that your code is running fast, after the optimization.
Here in Brazil several government units plan to migrate everything to linux and free software solutions. The Sao Paulo subway company has already adopted linux and open office solution for their desktop computing...
Sensitive information via e-mail? Oh, yeah, that is true. I could see people exchanging e-mail plenty of sensitive information, and sending this kind of message through the internet without ANY encryption. I feel that is the main concern of the companies nowadays.
For basic languages like C, I feel that the visual way to do things cannot be complete, unless you create some sort of code generator and trust the tool to create all the code for you. There are some tools for windows that do it so. All you have to worry about is to define the relationship of the data, design reports and so on. You don't have to touch code at all. However, I leave here a question: what if the tool has a bug? As a programmer from the last decade, I really don't trust such tools at all. I don't even trust my own code!
I keep everything on my IMAP server. When the mailbox is full, I delete everything.
The announcement is on the Conectiva's web site (http://www.conectiva.com.br - both portuguese and english). Fusion of enterprises mean only one thing: revolution.
The free software moviment is shaking the industry and big players are investing big money on the initiative. The future is clouded. The veil of the dark side has fallen. The Linux wars begun!
Souce control is not a reality for every IT development. Unfortunally, some people like to use "directories" to control sources, what is great step to doom the entire project.
At least in the companies where I did work here in Brazil, everybody was using some sort of VCS. However, the common problem is the discipline to use a VCS. Sources that are updated outside the VCS and then deployed to the customers is the main problem I could see so far.
I feel that you must not only use a VCS but have discipline to use it.
Can you trust the piece of software that you write? I don't trust anything that I write... :) This is a matter of faith. Security is actually the best lie someone told us. You believe that you are safe, but you aren't. Even with signed controlled stuff you can sign a piece of malicious software and use some of the "social engineering" to get that software installed on your "victims" computer.
Security flaws on firefox? Oh, yeah, they are there for sure... Remember that we are talking about a version 1.0 of the software and every software has bugs. What is the current version of internet explorer? Ah... And it still with that lot of bugs? Amazing!
I think that printfs in development environment are not a good idea. It helps when you have an environment where there is no debugger at all.
.dbxinit files for unix debugging with great results, since I never lost what I'm doing, since all the breakpoints and print data is in a script that is stored in the disk. Automating the debugging sessions make it easy to analyze the most inconvenient loops inside your code. Also, it is good to share to other developers your script file since it may help them to see what you have looked into the code to solve some problems.
For example, your program has a bug that you cannot reproduce in your test environment but the user has a test environment where the bug can be reproduced. Using it in the development environment sometimes can give you more headaches than if you use the debugger itself. For example, if you have a problem in the code and need to add an extra variable to build some data using a sprintf function and then the printf. You have added data to the stack of the local scope and probably have masked some memory invasion, since you have changed the stack. Also, printf may not be fast enough: it writes data into the buffered output. So, if your program dies for some reason, all the pending data in the buffers will be lost. Another problem is when you forget to delete the printfs from your code: you may annoy your users by putting messages on their consoles with some strange stuff like "PASSED HERE 1", "PASSED HERE 2" and so on. There is another stuff that is interesting: printfs can coredump! For example:
printf ("Something: %s");
Try it! It coredumps nicely! Debugging codes is always a pain. A good idea is to automate the debugging session. I've been using the
I really don't think C is dead. I've been working with C language since 1994 in Unix environment and it is a natural language to write applications to that environment. I feel that byte code languages are really cool but I believe that there is still a lot of work to be done in the interpreters.
Who uses SCO unix anyways?
That is the worst distribution I ever met in my professional life and I do not know anyone that uses that... I think that they are desperate and are just waiting for the worms to come, because they're already dead.
Is there already any distro with the kernel 2.6 series? I'm still waiting for the response of the market before going for kernel 2.6 yet. My 2.4.24 is really stable and running fine, but I'm anxious to see the threads improvements in 2.6...
Well, 10 to 15% is a very low rate taking into account the costs for each compiler. GCC may be slower, but, what is the benefits regarding its price? In this matter, I rely my opinion in the cost/benefit ratio. An additional stuff to talk about: no matter which one creates the fastest code. I think, as a programmer, that the code must be optmized first by design, then by the compiler. I've seen a lot of programs that relies its performance to the compiler with absolutely bad design. My comments in this matter are not very compliant with the discussion, but sometimes I see some bad software designs that are optmized only by a native compiler in a given platform. I see that all the time in the company where I work: endless loops full of database accesses and crazy decisions that leads the CPU to a very crazy load. Bad design for sure!
Microsoft office is something that you pay a lot of bucks to use solely 5% of it. Usually, the most used software is Microsoft Word. Only few people really use the full power of the software.
I really hate Microsoft Office. The software I use from this awful package is Word that uses to crash all the time when you are using the graphical tools that comes with it. I don't see how this can be a productive software because more than once I have lost ALL of my work because some crazy crash of it and I had to start again from scratch. Even that backup option do not work well when it crashes. More than once the files became corrupted...