I came to W2COG website because it was referenced in an article in the Communications of the ACM on using agile software methods for government projects. They did an experiment where two projects were to produce similar software. One project used the "standard" procedures, spent $1.5 million, and only produced a document. The other project used agile methods, spent $100k, and produced working software.
They've published some information on using agile in government projects. Go to their website and click the publications link. I would provide a link, but it's one of the worst uses of flash for a website that I've seen (see previous post).
Update: Changed some of the sentences around and did away with worst website moniker. I've seen much worse sites. I was frustrated so I was harsh.
Tuesday, January 20, 2009
Flash Gone Wrong
If you want to a site where flash has gone wrong check out the website for the World Wide Consortium for the Grid. I don't understand why someone would want to create the entire site in flash.
Monday, January 19, 2009
Don't Use Boost Test
I've been using Boost Test in some production code that I work on. This code has to run and compile on RHEL 5. This should include the test, otherwise the tests aren't very useful. My work environment had been Fedora 7.
I recently updated my work laptop to Fedora 10. I started running my unit tests and noticed that they were failing. In version 1.34.1, the way to create and run tests was changed to what appears to be an incompatible way of setting up and running tests now. Because of the above requirements for RHEL 5 compatibility, this means that I can't rely on Boost Test.
I've been somewhat skeptical of using Boost, this kind of reinforces it for me. From what I can tell, there's been no guarantee of backwards compatibility or I've never read one. Perhaps the other modules/libraries in Boost do provide some kind of statement. The libraries that are scheduled for inclusion in the new C++ standard are probably the most stable.
If anyone can provide any hints how to fix this without adding too many ifdefs, feel free to chime in. I've not been able to use the suggested fixes in the link below.
Here's the error message that I get on link using the old style of Boost Test.
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../crt1.o: In function `_start': (.text+0x18): undefined reference to `main'
Discussion about changes:
http://archives.free.net.ph/message/20071218.095023.e2639d79.en.html
Here's an example using the new way that actually works.
Update:I'm still using Boost Test even though it's not backwards compatibility. There's no requirements for testing in the code base that I'm using so I just use the post 1.34 capability. Also, there's no way that I could use another tool associated with the software product that I'm using. The requirement is that the software be available on RHEL 5.
I recently updated my work laptop to Fedora 10. I started running my unit tests and noticed that they were failing. In version 1.34.1, the way to create and run tests was changed to what appears to be an incompatible way of setting up and running tests now. Because of the above requirements for RHEL 5 compatibility, this means that I can't rely on Boost Test.
I've been somewhat skeptical of using Boost, this kind of reinforces it for me. From what I can tell, there's been no guarantee of backwards compatibility or I've never read one. Perhaps the other modules/libraries in Boost do provide some kind of statement. The libraries that are scheduled for inclusion in the new C++ standard are probably the most stable.
If anyone can provide any hints how to fix this without adding too many ifdefs, feel free to chime in. I've not been able to use the suggested fixes in the link below.
Here's the error message that I get on link using the old style of Boost Test.
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../crt1.o: In function `_start': (.text+0x18): undefined reference to `main'
Discussion about changes:
http://archives.free.net.ph/message/20071218.095023.e2639d79.en.html
Here's an example using the new way that actually works.
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE MyTest
#include < boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE( my_test )
{
BOOST_CHECK_EQUAL(2, 2 );
}
Update:I'm still using Boost Test even though it's not backwards compatibility. There's no requirements for testing in the code base that I'm using so I just use the post 1.34 capability. Also, there's no way that I could use another tool associated with the software product that I'm using. The requirement is that the software be available on RHEL 5.
Saturday, January 10, 2009
Windows 7 Beta Fail
So, I was going to download the Windows 7 Beta and install it on a qemu+kvm virtual machine. This would be the first time that I've ever downloaded a MS Beta product. Unfortunately, I need a MS Passport account so I can sign in and get it.
Considering all of the flack that MS has gotten for Vista, you would think that they would make obtaining the beta really easy. They're handing out keys for the OS like candy. Why would they limit a user to a Windows Passport account?
I may have had one in the past, but I don't remember what it was/is. I'm certainly not going to sign up for one now. My wife has a HotMail account. I may have her download it tomorrow.
Considering all of the flack that MS has gotten for Vista, you would think that they would make obtaining the beta really easy. They're handing out keys for the OS like candy. Why would they limit a user to a Windows Passport account?
I may have had one in the past, but I don't remember what it was/is. I'm certainly not going to sign up for one now. My wife has a HotMail account. I may have her download it tomorrow.
Thursday, January 01, 2009
Books read in 2008
Books that I've read during 2008.
Non-Fiction
Fiction
Non-Fiction
Fiction
- Ender in Exile
- Infoquake
- Lots of Raymond Fiest books
- Others not listed
Monday, December 22, 2008
TSO in Knoxville Tn
Lee Ann and I went to Knoxville to see the Trans Siberian Orchestra for our anniversary. It was a good show. Too bad Thompson-Boling Area messed things up by not putting up signs for the Will Call. We walked up to the entrance (3 Flights?) in 24 degF temps only to be told that we had to go back down for the Will Call. I noticed lots of others walking back down. I should have caught a clue.
Monday, December 01, 2008
Windows, USB drives, Military
If you hadn't heard, there is a ban on removable re-writable media in effect for the US Military. From what I'm hearing, this could be indefinite. I'm not in any position to know this for a fact, but I've heard that they're looking for a solution to this problem. If it was as easy to fix as not enabling autorun, I'm sure that it would have blown over and personnel would be getting their usb drives back.
The above really illustrates the problem of security in a Windows environment. Targeted exploits are being written that are not caught by virus scanners because they're not common enough in the wild. The virus scanners are doing pattern matching and no one has entered the new pattern. Consumer Reports pointed out just how bad the situation was in 2006.
The interesting thing about this is that this worm/virus probably propagated without the user having admin access. Most people take for granted that when running as a limited user it's harder to infect the system. It looks like this didn't stop this virus, since most of those users won't be running as an admin.
Perhaps it's time that the U.S. Military stopped depending on Windows and decided to use other operating systems. The NSA has provided a very valuable Linux kernel security addon called SELinux. It should be possible to create policies that would prevent this from happening on a linux system.
To begin, the USB drive should not be mounted with execute permission. This will prevent casual program execution. Using SELinux, it should be possible to limit the user to running only applications specified by the admin in the most restricted environment. I don't know how it's done, but it should be possible to prevent all shells and interpreted programs from running code from the USB drive.
I know what you're going to say next. There's a lot of windows applications that are needed. Run them in a virtual machine, but prevent that virtual machine from having access to USB drives. If the user needs data from a drive, the user will have to copy it to an appropriate location. This option will work well in the field. Laptops with virtualization enabled processors will be able to run VMWare or some other vm product reasonably well enough for most applications. Harden the laptop with all of the security that it needs.
In an office environment skip Citrix and provide the users with a virtual machine running on a software like Qumranet's (purchased by RedHat recently) virtual machine products. Watch the video of 1080p HD video being streamed from the virtual machine to a thin client. I hear that Wyse, makers of thin clients, is having a record year with the economy in a slump.
The above really illustrates the problem of security in a Windows environment. Targeted exploits are being written that are not caught by virus scanners because they're not common enough in the wild. The virus scanners are doing pattern matching and no one has entered the new pattern. Consumer Reports pointed out just how bad the situation was in 2006.
The interesting thing about this is that this worm/virus probably propagated without the user having admin access. Most people take for granted that when running as a limited user it's harder to infect the system. It looks like this didn't stop this virus, since most of those users won't be running as an admin.
Perhaps it's time that the U.S. Military stopped depending on Windows and decided to use other operating systems. The NSA has provided a very valuable Linux kernel security addon called SELinux. It should be possible to create policies that would prevent this from happening on a linux system.
To begin, the USB drive should not be mounted with execute permission. This will prevent casual program execution. Using SELinux, it should be possible to limit the user to running only applications specified by the admin in the most restricted environment. I don't know how it's done, but it should be possible to prevent all shells and interpreted programs from running code from the USB drive.
I know what you're going to say next. There's a lot of windows applications that are needed. Run them in a virtual machine, but prevent that virtual machine from having access to USB drives. If the user needs data from a drive, the user will have to copy it to an appropriate location. This option will work well in the field. Laptops with virtualization enabled processors will be able to run VMWare or some other vm product reasonably well enough for most applications. Harden the laptop with all of the security that it needs.
In an office environment skip Citrix and provide the users with a virtual machine running on a software like Qumranet's (purchased by RedHat recently) virtual machine products. Watch the video of 1080p HD video being streamed from the virtual machine to a thin client. I hear that Wyse, makers of thin clients, is having a record year with the economy in a slump.
Subscribe to:
Posts (Atom)