Categories: games Tags:
It’s Official Now: Software cannot be patented in NZ
Last week I was reading an article posted in Dzone about an innocent developer being threatened for patent infringements. If this becomes common then we all software developers would be unknowingly violating thousands of patents just because some one has patented a very common idea.I just wanted to check if someone has patented applications of hashing. So, I just searched on google patents just to find thousands of patents related to hashing . No one can prevent the same idea from coming to another person’s mind. In case some one thought of the same thing that another person has already thought of and patented is that person doing a crime. Moreover, it has also become habit for large corporations to use their money power to patent trivial ideas which puts many small companies at risk as they will be unknowingly violating several patents and have to constantly live with the fear if a patent infringement law suite on their head.
I hope that there are many people like me who feel that software patents should not be allowed or should be very strict to prevent trivial ideas from being patented.
According to this news posted on reddit, recently, The commerce Minister Simon Power has instructed the Intellectual Property Office of New Zealand (IPONZ) to develop guidelines to allow inventions that contain embedded software to be patented. These guidelines have now included a clause to disallow computer programs from being patented.
However, no patents for software does not mean that anyone can steal another person’s idea. I think copyright provides significant protection from such cases.
Categories: General Tags:
Understanding Java Memory Structure
One strength of the java platform is that it shields the developer from the complexity of memory allocation and garbage collection. We all know that java stores objects in a Heap memory. Internally Java partitions the heap memory space logically into three areas called generations.
- The Young Generation
- The Tenured Generation
- The Permanent Generation
Out if these three partitions, only the young and tenured generation spaces are used for allocating memory to objects. The permanent generation space is used for holding the data needed by the virtual machine to describe objects that do not have equivalence at the Java language level.
This partitioning is done in order to improve the performance of garbage collection as performing garbage collection on the entire heap will be very expensive. Instead the architects of java decided to partition the heap space into three parts.
The Young Generation
The young generation is where space is allocated for newly created objects. In most applications, most of the objects created are used and referenced only for a very short span of time (high infant mortality rate), for example an iterator instance is discarded as soon as the loop is complete.
The purpose of having a separate space of young generation is to maximize promptness (the time between when an object becomes dead and when the memory becomes available) and to reduce the overhead of scanning the entire heap during every garbage collection process.
Garbage collection in the young generation happens when the space in this generation fills up and is called the minor collection. Minor collections can be optimized assuming a high infant mortality rate. It is well-tuned in the sense that the young generation is large enough (and thus the period between minor collections long enough) that the minor collection can take advantage of the high infant mortality rate. The time required for garbage collection is directly proportional to the number of live objects. A young generation full of dead objects is collected very quickly. Some surviving objects are moved to a tenured generation.
The Tenured Generation
Objects which survive the young generation are eventually moved into the tenured generation. Garbage collection in the tenured generation happens when the space in the tenured generation fills up and is called the major collection. Since the tenured generation usually have a large number of alive objects, the time required for garbage collecting the tenured generation is much higher than that for the young generation. Hence, garbage collection of the tenured generation is done at a much lesser rate than the young generation.
The Permanent Generation
The permanent generation is not used for allocating objects. Instead it is used for holding the data needed by the virtual machine to describe objects that do not have equivalence at the Java language level. For example objects describing classes and methods are stored in the permanent generation.
Categories: Memory Management Tags:



