Actually this system looks something like the WorkPlaceShell of OS/2. I actually liked the system when I was using OS/2 a while back, it was quite interesting but programming for it using C (or even C++) was fairly complicated with all the resource files and other language "extensions".
Since this is written in Java it may be easier to develop than it was in OS/2.
Hopefully there won't be any copyright violations.
Personally, I am quite impressed with the concept of Genetic Algorithms.
I could imagine your shell sort could be applied to database technologies by creating a separate low priority thread that would generate the "gene pool" to improve the indexing of the tables in the background.
On a side note I am learning about genetic algorithms with hopes that I may work on it when I take my Masters in Computer Science.
Unfortunately most (thankfully not all) people in management and project management only think about dates.
Most would rather release a product with a lot of defects rather than missing a date. Granted that missing a date is a pretty bad occurrence too. I would rather release a product with a lot of defects than miss a "marketted" date, but I will miss it for an "internal" date.
A marketted date is a date that the marketting reps (and other forces that be who usually have no clue in programming) blurt out to the client and/or the public and it is a date that must be kept for fears of reprisals and contract disputes.
An internal date is basically an internal milestone. e.g. Development stops on this date A so testing can start on date A.
I am willing to forgo the internal date A to reach internal date A+n where n is usually a smallish number that would most likely not affect the marketting date if it will allow us to create a product with less defects.
Defects reported by test teams usually take longer to fix than spending some extra time in development to prevent it in the first place.
Unfortunately most of these people that have the authority would rather announce that they released their component on-time at the expense of other groups that depend on their component. But then that's corporate politics and the larger the company/project the more politics you would have to deal with.
That's how most of them were brought up and unless the next generation learns from their mistakes the cycle will go on.
Cool, only problem is that it only encodes VCDs. And VCD quality I find is below the quality of SVHS tapes. I would prefer something of higher quality which is why I was suggesting DivX.
No difference, its just that technology didn't have that capability before. Also its very inconvenient to transport VHS tapes across countries, they are fairly bulky compared to DVDs.
On a side note, I hope someone would create a DivX recorder. Something like a real-time DVD ripper to tape TV shows to CDs. At least it saves space on the rack.
Actually, I find most of the voice actors in anime to be not too attractive, but their voice sounds good and their character designs are also quite good (most of the time).
Another thing is that unlike real people it is cheaper to exagerate emotions on their non-real counterparts which tends to add to the quality of the film.
Most OSS (and OSS based) products do have commercial support that you can take advantage of. You just need to do some research first.
e.g. * RedHat Linux you can get support from RedHat. * Postgresql, I am pretty sure I saw one in their web site. * Perl, ActiveState * IHS -- IBM's Apache, supported by IBM
Basically go to the web site and see what they have in terms of commercial support. Then set up a support contract with them. This should keep managers happy. At the same time, you can add another source of support aside from news groups and the web even if you do use it more than the paid one.
IBM has a product called SameTime. Its an instant messaging client/server system that provides secure transport, integration with Lotus Notes and other business stuff.
I do wish Trillian supported it, so I can have one client for work & personal.
One thing I like about SMS over voice is that it is easier to log and file important messages. Kinda like e-mail. Its also easier to communicate because there is less miscommunication especially when the line conditions are bad.
Replies are just as instantaeneous anyway. And we can quickly revert back to voice if we need to convey other things that cannot be transfered via text.
I am assuming you have heard the standardization tips throughout this conversation. However, if you are unable to standardize the environment (maybe because its a client's environment and you have no control over it), you can try to adapt one of the concepts of Extreme Programming.
Pair programming is a great way of doing knowledge transfer.
Basically always work as a pair when doing problems. Also, rotate the pairs around so not everyone is stuck with the same job. Also make sure you rotate the "primes" around so that the "sys admins" can take over the prime role for a short while. (Just make sure the "prime" can be contacted if there is something really major).
My Clie supports a resolution of 320x320 right now, I wonder why they didn't just make it 560x320. Or even 400+ like the new Clie's. Perhaps wider too.
Then again we have those compatability issues. Having a high resolution screen is nice, but when your fonts are just as large as they were with the old Palm apps it kind of defeats the purpose sometimes.
Maybe all of these font issues will get fixed at 5.0, but then again who knows what the future holds.
If you are a small outfit, you may want to just have periodic imaging of the drive's data until everything is settled down.
Which means that everything on the workstation's drives are backed up regularly.
Once you have that in place, standardizing the workstation would be the next step I would do.
Initially standardize it so that there is a regular set of tools for everyone. (This depends on how expensive the licenses are), but it saves time later on when you happen to get audited because everything is standardized, any illegal software that fails the audit could prove to be grounds for dismissal if you wish to implement those rules.
Once you have a standard to build on, work on getting that standard platform secured so that the system will enforce the policies for you.
Then deploy it. Make sure you have someone verify it for you first. Its going to be problematic if you deploy without User Acceptance.
I'd rather the code point out the obvious for me rather than reading the comments and reading the code. I would recommend reading "Refactoring" by Martin Fowler(?) though not really end to end who has time for that.
I generally would use comments to mark off candidates for large refactorings, e.g.
// TODO: convert switch to polymorphism
// TODO: FUGLY CODE, fix ASAP!
To be honest, I don't really write code that is that readable to other people or myself sometimes. I am still human and I make mistakes. However, when I revisit my code or touch someone else's code, I try to reorganize the code and refactor things.
Some people may disagree and say that these would slow down the application. However, if the code is more understandable, other optimizations can come about which are cleaner. Plus a good compiler can do a lot of optimizations for us already.
However, the opinion above is only for application code. Meaning no really complicated algorithms that require a lot of math to understand. Though I rarely do algos anymore anyway so does not really matter.
If I had to deal with algos, I think rather see someone do it in tangle/weave but the code has to be to the point, just the jist of the algorithm. The tangle'd code will just be added to the library since it can be reused elsewhere.
Actually this system looks something like the WorkPlaceShell of OS/2. I actually liked the system when I was using OS/2 a while back, it was quite interesting but programming for it using C (or even C++) was fairly complicated with all the resource files and other language "extensions".
Since this is written in Java it may be easier to develop than it was in OS/2.
Hopefully there won't be any copyright violations.
Personally, I am quite impressed with the concept of Genetic Algorithms.
I could imagine your shell sort could be applied to database technologies by creating a separate low priority thread that would generate the "gene pool" to improve the indexing of the tables in the background.
On a side note I am learning about genetic algorithms with hopes that I may work on it when I take my Masters in Computer Science.
Unfortunately most (thankfully not all) people in management and project management only think about dates.
Most would rather release a product with a lot of defects rather than missing a date. Granted that missing a date is a pretty bad occurrence too. I would rather release a product with a lot of defects than miss a "marketted" date, but I will miss it for an "internal" date.
A marketted date is a date that the marketting reps (and other forces that be who usually have no clue in programming) blurt out to the client and/or the public and it is a date that must be kept for fears of reprisals and contract disputes.
An internal date is basically an internal milestone. e.g. Development stops on this date A so testing can start on date A.
I am willing to forgo the internal date A to reach internal date A+n where n is usually a smallish number that would most likely not affect the marketting date if it will allow us to create a product with less defects.
Defects reported by test teams usually take longer to fix than spending some extra time in development to prevent it in the first place.
Unfortunately most of these people that have the authority would rather announce that they released their component on-time at the expense of other groups that depend on their component. But then that's corporate politics and the larger the company/project the more politics you would have to deal with.
That's how most of them were brought up and unless the next generation learns from their mistakes the cycle will go on.
Cool, only problem is that it only encodes VCDs. And VCD quality I find is below the quality of SVHS tapes. I would prefer something of higher quality which is why I was suggesting DivX.
No difference, its just that technology didn't have that capability before. Also its very inconvenient to transport VHS tapes across countries, they are fairly bulky compared to DVDs.
On a side note, I hope someone would create a DivX recorder. Something like a real-time DVD ripper to tape TV shows to CDs. At least it saves space on the rack.
Its usually because of the licensing and copyright restrictions by the artists and manufacturing companies.
When someone wants to put a soundtrack or put an actor on a movie, they have to specify who they are distributing it to in the contract.
So usually they sometimes go this anime sound track can only be distributed in Japan. No where else.
Or this European actor can only be shown in theaters playing in Russia.
http://news.com.com/2100-1001-949368.html
Actually, I find most of the voice actors in anime to be not too attractive, but their voice sounds good and their character designs are also quite good (most of the time).
Another thing is that unlike real people it is cheaper to exagerate emotions on their non-real counterparts which tends to add to the quality of the film.
Perhaps someone can use this as a poll question on slashdot. :-)
I think this product really hits its mark for the price. Might be a useful thing to have on a corporate server farm if I ever run one.
Most OSS (and OSS based) products do have commercial support that you can take advantage of. You just need to do some research first.
e.g.
* RedHat Linux you can get support from RedHat.
* Postgresql, I am pretty sure I saw one in their web site.
* Perl, ActiveState
* IHS -- IBM's Apache, supported by IBM
Basically go to the web site and see what they have in terms of commercial support. Then set up a support contract with them. This should keep managers happy. At the same time, you can add another source of support aside from news groups and the web even if you do use it more than the paid one.
IBM has a product called SameTime. Its an instant messaging client/server system that provides secure transport, integration with Lotus Notes and other business stuff.
I do wish Trillian supported it, so I can have one client for work & personal.
I wonder if there are any JBoss tutorials that would show us how to do it as easily as this.
One thing I like about SMS over voice is that it is easier to log and file important messages. Kinda like e-mail. Its also easier to communicate because there is less miscommunication especially when the line conditions are bad.
Replies are just as instantaeneous anyway. And we can quickly revert back to voice if we need to convey other things that cannot be transfered via text.
You may want to try out AxKit. Its probably better geared for your environment. Its relatively small, it is also perl based.
I am assuming you have heard the standardization tips throughout this conversation. However, if you are unable to standardize the environment (maybe because its a client's environment and you have no control over it), you can try to adapt one of the concepts of Extreme Programming.
Pair programming is a great way of doing knowledge transfer.
Basically always work as a pair when doing problems. Also, rotate the pairs around so not everyone is stuck with the same job. Also make sure you rotate the "primes" around so that the "sys admins" can take over the prime role for a short while. (Just make sure the "prime" can be contacted if there is something really major).
My Clie supports a resolution of 320x320 right now, I wonder why they didn't just make it 560x320. Or even 400+ like the new Clie's. Perhaps wider too.
Then again we have those compatability issues. Having a high resolution screen is nice, but when your fonts are just as large as they were with the old Palm apps it kind of defeats the purpose sometimes.
Maybe all of these font issues will get fixed at 5.0, but then again who knows what the future holds.
I liked DDR when it first came out. I was one of the few people who probably bought the entire system on the import PlayStation.
Though up until now I still majorly suck at it.
Anyway, for those of you who live in apartments and do not want to disturb your neighbours downstairs, a couple of games I liked were:
Para Para Paradise and Samba De Amigo. I prefer Para Para, just because I am soo out of shape and carrying those maraccas are too much work.
Samba De Amigo is available in Dreamcast.
Para Para Paradise is available on the PS2, but only in Japan AFAIK. Would be nice to get that game imported.
If you are a small outfit, you may want to just have periodic imaging of the drive's data until everything is settled down.
Which means that everything on the workstation's drives are backed up regularly.
Once you have that in place, standardizing the workstation would be the next step I would do.
Initially standardize it so that there is a regular set of tools for everyone. (This depends on how expensive the licenses are), but it saves time later on when you happen to get audited because everything is standardized, any illegal software that fails the audit could prove to be grounds for dismissal if you wish to implement those rules.
Once you have a standard to build on, work on getting that standard platform secured so that the system will enforce the policies for you.
Then deploy it. Make sure you have someone verify it for you first. Its going to be problematic if you deploy without User Acceptance.
Good luck!
--
Archie - CIO for hire
I always thought WebSphere Application Developer Studio was the first one based on the Eclipse platform that is commercial.
I'd rather the code point out the obvious for me rather than reading the comments and reading the code. I would recommend reading "Refactoring" by Martin Fowler(?) though not really end to end who has time for that.
// TODO: convert switch to polymorphism
// TODO: FUGLY CODE, fix ASAP!
I generally would use comments to mark off candidates for large refactorings, e.g.
To be honest, I don't really write code that is that readable to other people or myself sometimes. I am still human and I make mistakes. However, when I revisit my code or touch someone else's code, I try to reorganize the code and refactor things.
Some people may disagree and say that these would slow down the application. However, if the code is more understandable, other optimizations can come about which are cleaner. Plus a good compiler can do a lot of optimizations for us already.
However, the opinion above is only for application code. Meaning no really complicated algorithms that require a lot of math to understand. Though I rarely do algos anymore anyway so does not really matter.
If I had to deal with algos, I think rather see someone do it in tangle/weave but the code has to be to the point, just the jist of the algorithm. The tangle'd code will just be added to the library since it can be reused elsewhere.
I'd welcome your opinions. Thanks.