There's this professor in an introductory class of computer science at our university. Now, these classes are filled with fresh young people, eager to learn about computers, and as I started studying in 98, at a time when job prospects were promising. Thus, lots of people had chosen computer science.
Now, you might think that this ended up with classes full of people with no clue what so ever to computing. Well, you are right. The problem with this professor though, was not that he went through the stuff too fast or too slow, but that he didn't went through his stuff.
The professor, well known for his mac addiction, spent most of lectures showing of his macintosh and talking about how stupid and non-useful those old mainframes used to be.
There are some highlights in all his stories, as when he talked about programming classes in the old days at high school. The students started on Monday, writing their programming lessons on paper. On Tuesday, the code was reviewed and typed into punchcards. On Wednesday, the cards were sent to the university, layed on batch for compiling. On Thursday, the compiled programs were runned, and on Friday the results returned to the high school. They now had the whole afternoon to debug so that they could rewrite whatever neccessary on Monday to make it work.
Now, focus, stain, focus. Back to the story. I forgot to say something about Extreme programming and nowadays and checkin-each-minute-cycles.
The thing was, on one lecture, the professor started up with his slides, gradually shifting to some example he had found in 1987 that he just needed to show everyone. This example, of course for the Macintosh, required the lowest possible resolution and color depth, and the professor fickled and tried to locate the Screen resolution dialog (hurray for usability, Apple!). Nobody cared. Students small-chatted about were to go drinking in the upcoming weekend. (Samfundet!)
Suddenly a student started snoring, but nobody could figured out who. Everyone laughed, even the professor. He's a good hearted guy, but he made a point of the abuse of time to come to lectures just to sleep (08:15 lectures aren't called 'night shift' without reason). The lecturer continued, "I suggest for the sleeping person to leave now, get some sleep at home, and rather spend the afternoon playing with the lecture examples. " Then, fifteen students raised and leaved the room. More laughter.
(ok ok, I did combine some stories to make this one, but it is true! It's true!!! heheheh )
Btw, I had to use Plain old text for this posting to allow HTML, not Extrans (html tags to text). That's usability!
I agree, this is exactly what I've done at my work.
I've developed (on my spare time) a python library for generating HTML text. I have released the library as LGPL on Sourceforge (the library is called forgetHTML, btw).
Now, as I started using the library at work, I found some bugs and small additions (more tags). Clearly submittable.
I used it inside the company product. Clearly company's property.
I then generated a special table class with support for sorting by column. As this is a general purpose class, with no interest at all for my employer (the project is for managing and monitoring network resources) this is submittable.
I then use this table class in a view to present services and sort them according to response times. No change of the LGPL-code, just usage. Clearly company property.
Now what I tend to wonder is the technical terms used in licenses like GPL and LGPL. They are clearly directed for code compiled from C and it's like, and linked together.
Now, the problem turns up with those libraries that are not just some compiled binary module to link with. What about python modules? Classes can be subclassed with proprietary code. Will that be legal? Will manipulating parts of classes from code outside (like changing the socket-module so a socket-call will go through your spesialized timeout-socket) be ok?
If subclassing is not OK, what about code that is meant to be subclassed? If it is OK, what about code that is not meant to be subclassed? Should authors of such software append to the license their view of subclassing?
I've also created a database abstracter library (named forgetSQL - as my html library is named forgetHTML:=)) ), and it basically requires you to subclass my main class, one subclass for each table. Here, subclassing for normal usage is surely OK. But what about subclassing and replacing some of my methods? Would this form a derivative work or just be allowed use?
The issue here is if the author of the newly formed method is 'inspired' by looking at the original source or just looks at the API and 'guesses' what the method must do in addition to his addition.
IMHO users of my libraries should be able to use the normally, just as users of programs should be able to use them freely as the program. (Except for FrontPage, which explicitly tells in the license that pages created should not talk negative about Microsoft:=) ). A class could be subclassed to add new and specialized functionallity, like spesializing a database connect method to the weird set-up at work or just adding a closely related method which usage fits best within a subclass. To override a existing method to FIX IT or IMPROVE IT in some way, should be a violation of the license, as such changes should be commited back to the open source community.
My view tends to go with something that is disputable in court, what is really an improvement and what is just localization? Different people would feel different on these cases. Although, if you read the top of my post, honest programmers should be able to make a pretty good guess by them self.
What are your views on this? How do my license intension fit with my choice of LGPL?bAnd - which license other than LGPL could be best for my code according to my view (all patches are mine or my friends, it's easy to relicense any later versions)
How do Java-people feel about this? I'm technically capable of subclassing java.util.ArrayList and create a new version with the original behavour, but with say a improved indexing method. I might or I might not have looked at the source code (downloadable from Sun). I'm not looking in answers regarding Suns source license (I can read it my self), I'm looking for the general view from the Java developers, as Java products tends to come with classes and APIs freely available and usable, both with open souce and closed source versions.
There's this professor in an introductory class of computer science at our university. Now, these classes are filled with fresh young people, eager to learn about computers, and as I started studying in 98, at a time when job prospects were promising. Thus, lots of people had chosen computer science.
Now, you might think that this ended up with classes full of people with no clue what so ever to computing. Well, you are right. The problem with this professor though, was not that he went through the stuff too fast or too slow, but that he didn't went through his stuff.
The professor, well known for his mac addiction, spent most of lectures showing of his macintosh and talking about how stupid and non-useful those old mainframes used to be.
There are some highlights in all his stories, as when he talked about programming classes in the old days at high school. The students started on Monday, writing their programming lessons on paper. On Tuesday, the code was reviewed and typed into punchcards. On Wednesday, the cards were sent to the university, layed on batch for compiling. On Thursday, the compiled programs were runned, and on Friday the results returned to the high school. They now had the whole afternoon to debug so that they could rewrite whatever neccessary on Monday to make it work.
Now, focus, stain, focus. Back to the story. I forgot to say something about Extreme programming and nowadays and checkin-each-minute-cycles.
The thing was, on one lecture, the professor started up with his slides, gradually shifting to some example he had found in 1987 that he just needed to show everyone. This example, of course for the Macintosh, required the lowest possible resolution and color depth, and the professor fickled and tried to locate the Screen resolution dialog (hurray for usability, Apple!). Nobody cared. Students small-chatted about were to go drinking in the upcoming weekend. (Samfundet!)
Suddenly a student started snoring, but nobody could figured out who. Everyone laughed, even the professor. He's a good hearted guy, but he made a point of the abuse of time to come to lectures just to sleep (08:15 lectures aren't called 'night shift' without reason). The lecturer continued, "I suggest for the sleeping person to leave now, get some sleep at home, and rather spend the afternoon playing with the lecture examples. " Then, fifteen students raised and leaved the room. More laughter.
I agree, this is exactly what I've done at my work.
:=)) ), and it basically requires you to subclass my main class, one subclass for each table. Here, subclassing for normal usage is surely OK. But what about subclassing and replacing some of my methods? Would this form a derivative work or just be allowed use?
:=) ). A class could be subclassed to add new and specialized functionallity, like spesializing a database connect method to the weird set-up at work or just adding a closely related method which usage fits best within a subclass. To override a existing method to FIX IT or IMPROVE IT in some way, should be a violation of the license, as such changes should be commited back to the open source community.
I've developed (on my spare time) a python library for generating HTML text. I have released the library as LGPL on Sourceforge (the library is called forgetHTML, btw).
Now, as I started using the library at work, I found some bugs and small additions (more tags). Clearly submittable.
I used it inside the company product. Clearly company's property.
I then generated a special table class with support for sorting by column. As this is a general purpose class, with no interest at all for my employer (the project is for managing and monitoring network resources) this is submittable.
I then use this table class in a view to present services and sort them according to response times. No change of the LGPL-code, just usage. Clearly company property.
Now what I tend to wonder is the technical terms used in licenses like GPL and LGPL. They are clearly directed for code compiled from C and it's like, and linked together.
Now, the problem turns up with those libraries that are not just some compiled binary module to link with. What about python modules? Classes can be subclassed with proprietary code. Will that be legal? Will manipulating parts of classes from code outside (like changing the socket-module so a socket-call will go through your spesialized timeout-socket) be ok?
If subclassing is not OK, what about code that is meant to be subclassed? If it is OK, what about code that is not meant to be subclassed? Should authors of such software append to the license their view of subclassing?
I've also created a database abstracter library (named forgetSQL - as my html library is named forgetHTML
The issue here is if the author of the newly formed method is 'inspired' by looking at the original source or just looks at the API and 'guesses' what the method must do in addition to his addition.
IMHO users of my libraries should be able to use the normally, just as users of programs should be able to use them freely as the program. (Except for FrontPage, which explicitly tells in the license that pages created should not talk negative about Microsoft
My view tends to go with something that is disputable in court, what is really an improvement and what is just localization? Different people would feel different on these cases. Although, if you read the top of my post, honest programmers should be able to make a pretty good guess by them self.
What are your views on this? How do my license intension fit with my choice of LGPL?bAnd - which license other than LGPL could be best for my code according to my view (all patches are mine or my friends, it's easy to relicense any later versions)
How do Java-people feel about this? I'm technically capable of subclassing java.util.ArrayList and create a new version with the original behavour, but with say a improved indexing method. I might or I might not have looked at the source code (downloadable from Sun). I'm not looking in answers regarding Suns source license (I can read it my self), I'm looking for the general view from the Java developers, as Java products tends to come with classes and APIs freely available and usable, both with open souce and closed source versions.
Oh, but the roman numerals are a bit easier now, you know... 2000 = MM.. and 2001 = MMI and so on.. :=) Will look pretty unusual :=)
BTW:.. the unstandard MCMCMMMMMVIII would be something like.. 1000-100+1000-100-+5000 + 5 + 3 = 6808 ?
Too bad you also loose the style sheets feature in Netscape. Excellent programming... doh..