<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Alexander Schunk&apos;s Blog</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/" />
<modified>2008-01-23T19:56:51Z</modified>
<tagline></tagline>
<id>tag:weblogs.java.net,2008:/blog/alexanderschunk/319</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2008, alexanderschunk</copyright>
<entry>
<title>Java Closures: Functions or Objects?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2008/01/java_closures_f.html" />
<modified>2008-01-23T19:56:51Z</modified>
<issued>2008-01-23T19:56:46Z</issued>
<id>tag:weblogs.java.net,2008:/blog/alexanderschunk/319.9042</id>
<created>2008-01-23T19:56:46Z</created>
<summary type="text/plain">While studying closures for Java and in other languages i arrived at the point where i have problems to see the real identity of closures in Java - that is wheather they are functions or objects.</summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h2>Java Closures? What are they?</h2>
<p>The question wheather closures are functions or objects came to my mind when reading several proposals concerning on closures. It looks like most authors regard them as both - functions and objects but giving not a real and concrete distinction in what case a closure is a function - or functional object - and an object.</p>
<p>For example in Neil Gafters vision for closures, closures seem to be both functions or an anonymous function or method and objects - or even classes beecause its possible to extend a class or template from a closure.</p>
<p>I think, if we follow the traditional closure syntax and usage - like in lisp or Perl where closures are regarded as procedures or sub routines. I have difficulties to imagíne a case where it makes sense or its practical to have the ability to extend a template or class from a closure as follows:</p>
<pre>
class MyClass
extends 
{ int x, int y => int }
</pre>
<p>or any such nomenclature. If a closure is nothing more than an anonymous function why do we need extend them to real object types? Is it just enough to have a short hand for anonymous methods in which the BGGA Syntax would just be enough?</p>
<p>I even have diffiuclty to see what a class or object like:</p>
<pre>
{int x, int y => int }
</pre>
<p>in the above example would describe or what power closures provide to describe real world entitities. To me closures are to abstract to describe real world entities i would only allow them as a short hand for anonymous functions or methods as used in Lisp or Perl.</p>
<p>Also it would make sense to allow closures as parameters for normal methods i.g:</p>
<pre>
int myClosureMethod(int x, {int y, int z = > int }){
 //something
}
</pre>
<p>but dont apply them on classes or templates because templates are already a very powerful feature to describe real world entities.</p>
]]>

</content>
</entry>
<entry>
<title>LinAlg API: Full List of Features</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2008/01/linalg_api_full.html" />
<modified>2008-01-21T09:25:26Z</modified>
<issued>2008-01-21T09:24:19Z</issued>
<id>tag:weblogs.java.net,2008:/blog/alexanderschunk/319.9029</id>
<created>2008-01-21T09:24:19Z</created>
<summary type="text/plain">I have updated the LinAlg API project homepage with a full list of features. Check it out linalg.dev.jav.net. </summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h2>New Feautures: Eigenvalues and triple scalar product</h2>
<p>The next release of LinAlg API will provide methods to compute Eigenvalues and the triple scalar product.</p>
<p>Eigenvalues and the triple scalar product are common and helpful mathematical features that are useful for solving a lot of common math problems.</p>
<p>The Eigenvalues are computed by solving the linear equation det(A-lambda*In) where A is a Matrix, lambda a free parameter and In the identity matrix. We can simplify this by simply determening the det(a) of the Matrix with a parameter and omitting the multplication with the identity matrix since a value multplied by 1 results in the same value.</p> 
<p>And the multiplication by the identity matrix just means: multiply all diagonal components of the matrix by 1 that is <strong>m11, m22, m33 and m44</strong> if you have a 4x4 matrix.</p>
The triple scalar product is simply computed by computing the volume of three 3D Vectors by multiplying all components of the three 3D Vectors and perform some + and - operations on them.</p> ]]>

</content>
</entry>
<entry>
<title>My View on Closures: Part 2</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2008/01/my_view_on_clos.html" />
<modified>2008-01-20T13:09:26Z</modified>
<issued>2008-01-20T13:09:18Z</issued>
<id>tag:weblogs.java.net,2008:/blog/alexanderschunk/319.9026</id>
<created>2008-01-20T13:09:18Z</created>
<summary type="text/plain">In my last entry i was musing some suggestions on how to improve the current closure implementation for Java as proposed by Neil Gafter and its team. I gained some comments and pros and cons and after studying closures in other languages and reading the tutorial posted by Zdenek Tronicek i have some more improvements for closures in Java.</summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>
<dc:subject>Community: JDK</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h2>No more symbols please></h2>
<p>In my last Blog i did make some suggestions to get rid of the redundand => syntax of closures. I suggested to use <strong>:=</strong > and to invent a keyword i.g. <strong>block</strong> or <strong>function</strong> to highlight the fact that closures are functional objects - basicall Neil Gafter regards them as equivalent to anonymous methods however i think there is no strict distinction in Gafters proposal wheather a closure is a pure function or an object</p>
<p>According to Neil Gafter, a closure object needs to be invoked by calling the <i>invoke()</i> method for a particular closure. The <i>invoke</i> method can have parameters i.g.:</p>
<pre>
{ int x => x + 1 } //closure definition
{ int x = > x + 1 }invoke(10); //call closure with 10 as parameter
</pre>
<p>So if a closure is a function in this case - besides the fact that its also an object - a closure object - then i think it would make sense to declare this whole block of statemens as a function:</p>
<pre>
function { int x => x+ 1}(int);
</pre>
<p>In my last Blog i said that the => symbol is redundant and suggested to use <strong>:=</strong> as a variation of <strong>=</strong>. With this variation the closure would be written as:</p>
<pre>
function{
 int x := x+ 1;
}(int);
//call closure with 10 as argument
function{ int x:=x+1 }(10);
</pre>
<p>This syntax could also be used to simply define getters that return values:</p>
<pre>
function {int x:=10;}(); //always returns 10

int s = function sum{int x, int y := x+y }(3, 5); //call sum with 3 and 5 as parameters
</pre>
<h2>Local variables</h2>
Also its possible to declare local variables in closures:</p>
<pre>
function{
int j = 0;
int i=3;
 switch(i){
   //some switch statements
  case 1: j++;
  case 2: j--;
  }
}();
</pre>
<p>Thus using a function keyword makes clear that a closure is both a function and an object that can be invoked. The invocation is executed by adding the <strong>()</strong> parantheses to the statement.</p>
]]>

</content>
</entry>
<entry>
<title>Yet Another Closures Proposal</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2008/01/yet_another_clo.html" />
<modified>2008-01-17T17:53:58Z</modified>
<issued>2008-01-17T17:47:31Z</issued>
<id>tag:weblogs.java.net,2008:/blog/alexanderschunk/319.9008</id>
<created>2008-01-17T17:47:31Z</created>
<summary type="text/plain">I have read over the last Blogs and articles on the Closures in Java issue. Besides my resistance to learn a new language feature i am a bit doubtful about the closures syntax and have another more language oriented view on closures. </summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>
<dc:subject>Community: JDK</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h2>First: Getting rid of =></h2>
<p>Basically, when i read all the proposals, comments and pros and cons on closures in Java the first thing i would get rid of is the obviously redundant <strong>=></strong> declaration.</p>
<p>So in case of block statements the following would be allowed:</p>
<pre>
{
 int x = 0;
 int y = 3;
 int sum:= x+ y;
}
</pre>
<p>As i understood it right, <strong>=></strong> has at least two meanings. It means <strong>return</strong> for functions and </strong>:=</strong> or <strong>=</strong> in the other case.</p>
<h2>Replace => by := for assignments</h2>
<p>I would use <strong>:=</strong> for assignments rather than <strong>=></strong> simply because <strong>:=</strong> is more naturial to mathematicians and logicians and is usually used to describe an assignment in math and logics. This could be used as outlined above:</p>
<pre>
{
 int x = 4;
 int y = 3;
 int z = 3;
 int sum:=x+y+z; //assignment
}
</pre>
<h2>Use a function keyword instead of {int, int => int} syntax</h2>
<p>For the function declaration, i would suggest to use a keyword rather than a symbol. Why not invent a <strong>function</strong> keyword that has a similar meaning like <strong>=></strong> i.g.:</p>
<pre>
public int function add(int x, int y){
return x + y;
}
</pre>
<p>In the other case, i would use <strong>:=</strong> instad of <strong>=></strong> because the arrow direction implies to read it left to right rather than right to left and there is no <strong><=</strong> to represant the invert direction.</p>
<h2>Use a block keyword to declare block statements</h2>
<p>Rather than just simply type closures i would invent a block keyword that defines a block of  anonymous statements:</p>
<pre>
//only valid for anonymous block statements, not be used in loops 
//itereations

block{
 int x = 3;
 int y = 4;

}
</pre>
<p>So with these language features you could write a simple to read Java code that is clear and understandable by everyone:</p>
<pre>
class MyClass{
 //declare a function type
 public int function add(int x, int y){
    return x + y;
 }
 public int function sub(int x, int y){
  return x - y;
 }
 public void function(List<int> intList){
    for(int i = 0; i < 10; i++){
        intList.add(i);
     }
  }
 public static void main(String[] args){
   
  //declare a closures block
   block{
     int x = 4;
     int y = 3;
    System.out.println("x + y" + (x+y));
    }
  }
 }

}
</pre>]]>

</content>
</entry>
<entry>
<title>LinAlg API CVS trunk is open</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2008/01/linalg_api_cvs.html" />
<modified>2008-01-12T10:57:45Z</modified>
<issued>2008-01-12T10:57:36Z</issued>
<id>tag:weblogs.java.net,2008:/blog/alexanderschunk/319.8978</id>
<created>2008-01-12T10:57:36Z</created>
<summary type="text/plain">Finally we made it to upload LinAlg API source and .jar files into CVS trunk. </summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>
<dc:subject>Community: JDK</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h1>LinAlg API CVS trunk is open</h1>
<p>There is a first source files upload avaiable for LinAlg API in CVS trunk. To check out the sources simply use your favorite CVS access programm and type the following commands:</p>
<pre>
cvs -d :pserver:username@cvs.dev.java.net:/cvs login
:pserver:username@cvs.dev.java.net:/cvs checkout linalg
</pre>
<p>If you are using NetBeans you just need to configure the CVSRoot path and the set the checkout options. There seems to be a problem with NetBeans CVS under Windows but if you have a Linux CVS client that should work well.</p>
<p>We will provide further CVS sources for different OS and Java platforms in the future. So far you need to become a member of LinAlg API project and download the sources and .jar files from the document/files section. </p>]]>

</content>
</entry>
<entry>
<title>LinAlg API: 20 fellows make up a Community</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2008/01/linalg_api_20_f.html" />
<modified>2008-01-09T15:12:20Z</modified>
<issued>2008-01-09T15:12:07Z</issued>
<id>tag:weblogs.java.net,2008:/blog/alexanderschunk/319.8956</id>
<created>2008-01-09T15:12:07Z</created>
<summary type="text/plain">The twentieth fellow developer has joined the LinAlg API project. </summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>
<dc:subject>Community: JDK</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h1>20 Fellows make up a Community</h1>
<p>The twentieth member has joined the LinAlg API community. Members background ranges from computer sciences and software engineers with up to 5 years of experience in Java programming and with industry background.</p>
<p>In particular in the last two month many people joined LinAlg API and asked for help in developing or porting LinAlg API to other platforms.</p>
<p>Thats a great news and i hope and will look forward to get more fellows that want to contribute and help improving LinAlg API. We are on a good way.</p>]]>

</content>
</entry>
<entry>
<title>LinAlg API: Christmas Present</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2007/12/linalg_api_chri_1.html" />
<modified>2007-12-22T10:22:23Z</modified>
<issued>2007-12-22T10:20:12Z</issued>
<id>tag:weblogs.java.net,2007:/blog/alexanderschunk/319.8889</id>
<created>2007-12-22T10:20:12Z</created>
<summary type="text/plain">LinAlg API is now finished and also offers mobile and 64 bit ports from the linalg.dev.java.net site. </summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>
<dc:subject>Community: JDK</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h2>Christmas Releases</h2>
<p>In my last Blog i said that LinAlg API is finished. This is still true yet i did add some more features to it and revealed two new ports for mobile and 64 bit platforms as a special christmas release :).</p>
<h2>Features</h2>
<p>With this release LinAlg API now offers core features for the following mathematical types and a bit more:</p>
<ul>
<li>
2D and 3D Vectors
</li>
<li>
Matrices
</li>
<li>
complex numbers
</li>
<li>
Quaternions
</li>
<li>
Algorithms
</li>
<li>
Geomtools
</li>
</ul>
<p>To download release 2.0 of LinAlg API go to the LinAlg API project page at linalg.dev.java.net.</p>
<h2>Thanks to the contributors</h2>
<p>This 2.0 release of LinAlg API would not have been possible without the help of the many contributors that joined LinAlg API and helped testing it or porting it to other systems. Special thanks goes to Morton Gulbrandtsen - working on a Solaris and Debian port -, David Clavel and Steven Martin who first joind LinAlg API and gave a good feedback.</p>
<h2>Merry Christmas and a Happy new Year...</h2>
<p>... to the Java community and the rest of the world from the LinAlg API team.</p>]]>

</content>
</entry>
<entry>
<title>LinAlg API: Finished</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2007/12/linalg_api_fini.html" />
<modified>2007-12-17T19:15:04Z</modified>
<issued>2007-12-17T19:14:56Z</issued>
<id>tag:weblogs.java.net,2007:/blog/alexanderschunk/319.8846</id>
<created>2007-12-17T19:14:56Z</created>
<summary type="text/plain">LinAlg API is now finished and there is a new stable release avaiable.</summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>
<dc:subject>Community: JDK</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h2>LinAlg API: its finished</h2>
<p>Yes. Finally, i got it done. LinAlg API now offers all the things i wanted to see it have. Sure, there are some things to do here and there but basically all features from my todo list are now implemented and exist at an almost complete level. The Quaternion class needs to be finished yet this is something i will do in the next couple of weeks however the Quaternion class already provides some basic operations for Quaternions you can work with with.</p>
<h2>LinAlg API: Scope and Features</h2>
<p>From the very beginning i wanted to write an almost complete linear algebra API that offers basic features to do linear algebra with Java. Now, lets have a short look at what features LinAlg API provides with this stable release:</p>
<ul>
<li>
2D and 3D Vector arithmetics
</li>
<li>
Matrix operations - both array based and non array-based
</li>
<li>
Complex Number operations
</li>
<li>
Quaternions - still something on the todo list
</li>
<li>
Algorithms - yes, there is a general Gaussian algorithm now
</li>
<li>
Demos, Docs, Tutorials
</li>
</ul>
<p>Sure, there are some things you wont find in LinAlg API that some people may find useful yet the Todo list has not been closed :). Another important thing - that has nothing todo with its implementation - is the growing number of interesting people and developers that join the project. Some of them give feedback others not but its a good feeling to see that there are people that like the project and want to help make it better.</p>
<p>Sure, i am still looking for volunteers, testers and developers to test and help improve LinAlg API so if you are interested feel free to joint the project.</p>
<h2>Demos, Docs, Tutorials</h2>
<p>There are a few demos available that demonstrate the core features of LinAlg API, a tutorial for beginners and a whitepaper for those interested in background information. I will start writing a JCP for those interested in using LinAlg API for their own implementations. Basically using LinAlg API is rather simple - no matter if you use it for developing apps or to develop your own linear algebra API. I will provide more tutorials and information on implementation issues in the near future. </p>
  ]]>

</content>
</entry>
<entry>
<title>Mercurial at home</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2007/12/mercurial_at_ho.html" />
<modified>2007-12-13T18:56:29Z</modified>
<issued>2007-12-13T18:55:20Z</issued>
<id>tag:weblogs.java.net,2007:/blog/alexanderschunk/319.8826</id>
<created>2007-12-13T18:55:20Z</created>
<summary type="text/plain">Today i have tested the Mercurial CVS System on my local Windows XP system. Having tried some basic commands i think it would be nice to have a sort of batch scripts performing some jobs or even better a GUI that will display the repositories and their files.</summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>
<dc:subject>Community: JDK</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h2>Mercurial at home</h2>
<p>Since the beginning of OpenJDK i followed the discussion about the mercurial move. Since the main job of porting over the sources from subversion CVS to Mercurial - that is the Mercurial transition - is done i wanted to test Mercurial myself at home.</p>
<p>As a Windows user i was looking for a Windows download and found one at the Mercurial download page. Having installed Mercurial on my machine i did run the <strong>hg</strong> test command and got a list of help commands for the other mercurial commands.</p>
<p>After experimenting with other commands i found that for each command it is required to add the <strong>hg</strong> command which i find a bit of "repeat yourself." and thought i got myself writing a few batch files to do the job.</p>
<p>Having a few batch files to create and update repositories i found that having a GUI application for Mercurial that displays the repositories and their files would be even better. I am not aware about how good Java would do the job here but i think it should be possible to have an application that goes over all files in the directories of the repositories and shows the files connected to them.</p>]]>

</content>
</entry>
<entry>
<title>LinAlg API: 4D Math with Quaternions</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2007/12/linalg_api_4d_m.html" />
<modified>2007-12-13T13:12:42Z</modified>
<issued>2007-12-13T13:12:34Z</issued>
<id>tag:weblogs.java.net,2007:/blog/alexanderschunk/319.8817</id>
<created>2007-12-13T13:12:34Z</created>
<summary type="text/plain">I have added 4D Math operations using Quaternions to LinAlg API.</summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h2>4D Math with Quaternions</h2>
<p>LinALg API now provides 4D Math operations using Quaternions. For those that are not familiar with Quaternions i will provide a short introduction.</p>
<h2>What are Quaternions?</h2>
<p>A Quaternion is a 4 dimensional number consisting of a real part and three imaginary parts thus a Quaternion can be written as:</p>
<pre>
xo + x1 * i + x2 * j + x3 * k;
</pre>
<p>In this case, the constants i, j and k and their factors represent the imaginary part of a Quaternion. If you are familiar with complex numbers you now that the <strong>square root of i^2 = -1</strong>. This equation is also valid for the three other imaginary parts of quaternion that is <strong>i^2 = j^2 = k^2 = -1</strong>. There are some other rules that apply to the imaginary parts of Quaternions i.g. <strong>i * j = k</strong> and <strong>j * i = -k</strong> yet these are not important for this Blog but for the understanding of Quaternion theory.</p> 
<h2>Basic operations</h2>
<p>As with complex numbers there are basic operations for <strong>+,-*,/</strong>, <strong>complex conjugate</strong> and scalar multiplication for Quaternions. Again, as with complex numbers or Vectors, the sum, difference and product of Quaternions are per component operations that is you add or subtract over each component of a Quaternion.</p>
<h2>When are Quaternions useful?</h2>
<p>Quaternions are used in 3D Math to describe a rotation of an object in 3D space using a simple scalar and a 3D Vector so a Quaternion can be written as follows: <strong>[s, v]</strong> where s is a normal scalar and v is a Vector with components <strong>x,y,z</strong>.</p>
<p>You can do the same using matrices to describe a rotation or translation but with Quaternions you need less memory for the operations so Quaternions are used to safe memory and gain speed.</p>
<h2>A Java Implementation for Quaternions</h2>
<p>A Java Implementation for Quaternions should represent the fact that a Quaternion is a 4D space number with four elements - that is the scalar and the three imaginary parts - and provide basic operations on Quaternions. So a basic Java Quaternion type might look like this:</p>
<pre>
public class Quaternion{

 private double s, x, y, z; //scalar, x, y and z coordinates

 public Quaternion(double s, double x, double y, double z){
    //basic construction
   }
 //creates an identity quaternion with s = 1
 public Quaternion identity(){
    this.s = 1;
    this.x = 0;
    this.y = 0;
    this.z = 0;
 }
 public Quaternion add(Quaternion q){};
 public Quaternion sub(Quaternion q){};
 public Quaternion mul(Quaternion q){};
 public Quaternion conjugate(){};
}
</pre>  
<p>The Quaternion used in LinAlg API already provides basic methods for +, conjugation, -, negation and construction. Whats missing is * and the possibility to create Quaternions from Euler angles and to create a rotation matrix for Quaternions.</p>]]>

</content>
</entry>
<entry>
<title>Extended Math API for Mobile and Embedded devices</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2007/12/extended_math_a.html" />
<modified>2007-12-11T11:14:05Z</modified>
<issued>2007-12-11T11:13:56Z</issued>
<id>tag:weblogs.java.net,2007:/blog/alexanderschunk/319.8800</id>
<created>2007-12-11T11:13:56Z</created>
<summary type="text/plain">The LinAlg API provides ports for mobile and embedded devices. </summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h2>High-Level Math APIs for Mobile and Embedded devices</h2>
<p>In one of my last Blogs i have already announced that there is a mobile port of the LinAlg API available. I also plan to port my statistics API to 64 Bit and mobile platforms.</p>
<p>This includes also porting demo apps and samples to these platforms. I dont know how many such APIs are available in the mobile world though i think there are not that much out there and also i believe that having such APIs or applications for the mobile world would be great.</p> ]]>

</content>
</entry>
<entry>
<title>LinAlg API: Graphics Tools</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2007/12/linalg_api_grap.html" />
<modified>2007-12-10T19:10:47Z</modified>
<issued>2007-12-10T19:10:30Z</issued>
<id>tag:weblogs.java.net,2007:/blog/alexanderschunk/319.8795</id>
<created>2007-12-10T19:10:30Z</created>
<summary type="text/plain">I have started adding some graphics tools to LinAlg API using Java2D. As a result i have a simple 2D coordinate system that is scalable and can be customized to your personal needs.</summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>
<dc:subject>Community: JDK</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h1>Graphics Tools for LinAlg API</h1>
<p>I have started adding some graphics tools to LinAlg API using Java2D. As a result i have a simple 2D coordinate system that is scalable and can be customized to your personal needs.</p>
<p>I would love to show a picture of it if i knew how to load images to this Blog - may be someone can help me here. The graphics tools basically consists of a few methods that enable you display coordinate systems and Vectors in 2D graphics and to scale these coordinate systems by any unit you like. This feature is not yet implemented but its easy to do it. Just need to provide further methods with corresponding parameters.</p>
<h2>A new statisitcs API</h2>
<p>Another thing i am currently planning to work on is a new statistics API with some demo apps providing common statistic algorithms like <strong>mean</strong>, <strong>standard deviation</strong>,<strong>binomial</strong> and <strong>faculty</strong> algorithms, statistic distributions etc. To distinguish myself from other libraries i will also provide graphics tools for this API to display statistic data or to animate certain distributions like the poisson distribution.</p>   ]]>

</content>
</entry>
<entry>
<title>LinAlg API: Tutorial</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2007/11/linalg_api_tuto.html" />
<modified>2007-11-16T19:07:56Z</modified>
<issued>2007-11-16T19:07:50Z</issued>
<id>tag:weblogs.java.net,2007:/blog/alexanderschunk/319.8670</id>
<created>2007-11-16T19:07:50Z</created>
<summary type="text/plain">A simple tutorial on how to use LinAlg API.</summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h1>LinAlg API tutorial</h1>
<p>A simple tutorial on how to use LinAlg API and its various classes can be found in the documents/file section at linalg.dev.java.net.</p>
<p>This is a simple tutorial that convers the basics and does not show all capabilities of LinAlg API.</p>]]>

</content>
</entry>
<entry>
<title>LinAlg API: on international development</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2007/11/linalg_api_on_i.html" />
<modified>2007-11-15T16:17:44Z</modified>
<issued>2007-11-15T16:17:37Z</issued>
<id>tag:weblogs.java.net,2007:/blog/alexanderschunk/319.8661</id>
<created>2007-11-15T16:17:37Z</created>
<summary type="text/plain">This Blog is on the development advancement of LinAlg API and the problems to keep track of java.net project membership.</summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>
<dc:subject>Community: JDK</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h1>An Experiment at the beginning</h1>
<p>When i started developing LinAlg API it was just personal interest and a sort of experiment. Is it possible to write a simple-to-use API for Vector and Matrix operations? Well, the answer seems to be: Yes. Then, i decided to add Complex number functionality and to keep scope of LinAlg API features to a minimum. There are of course other such APIs for vector and matrix calculus yet i had my very own idea how to implement such an API. I wanted to make it easy-to-use and comfortable. Thats why it is implemented as it is.</p>
<h2>The way to java.net</h2>
<p>As development moved on i decided to host it on java.net in order to find fellow developers to join this project. It took a bit of Blogging to gain some interest and now i have fellow developers all over the world from the USA over China to India. One thing thats a bit hard is to get information about project members once they joined the project and to keep track of development of these developrs. Until you have  setup some sort of mailing list or a developer forum it seems to be impossible to keep uptodate with the development of other people. So here is a proposal for java.net to add a feature for this to share information on users contact information and background - because sometimes its interesting to have an idea of the people you are working with.</p>
<h2>Moving on</h2>
<p>Now, since Linalg has made its way over the world its time to move on. I have added a few ports to 64 Bit systems and other Java platforms like the wireless API. I am still looking for interested developers that could porting LinAlg API to other 64 Bit systems and to the mobile platform. The End.</p>]]>

</content>
</entry>
<entry>
<title>OpenSource Software: You get what you not pay for?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/alexanderschunk/archive/2007/11/opensource_soft.html" />
<modified>2007-11-12T16:51:55Z</modified>
<issued>2007-11-12T16:51:49Z</issued>
<id>tag:weblogs.java.net,2007:/blog/alexanderschunk/319.8631</id>
<created>2007-11-12T16:51:49Z</created>
<summary type="text/plain">Is quality of software really depending on the price you pay for it? Arent there any good quality opensource projects out there that can compete with high-quality solutions? Do OpenSource developers really dont care about software quality? </summary>
<author>
<name>alexanderschunk</name>

<email>alexanderschunk@t-online.de</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/alexanderschunk/">
<![CDATA[<h1>OpenSource: A definition</h2>
<p>To begin with my thesis i would like to provide a definition of opensoucre software since some people might have a different concept of it. Under OpenSource software i understand any software that is either released under the GPL and / or GPL equivalent license.</p>
<p>According to this definition most projects at this page and most of the Apache projects are opensource software.</p>
<p>I am not aware about how many Java opensoucre projects exist - i do develop one of my own at linalg.dev.java.net - but i think its not a small number compared to non opensoucre projects.</p>
<h2>Thesis: OpenSource software is low-quality</h2>
<p>A common opinion of many people is or seems to be that opensource software - as understood above - is bad or not you get what you pay for. I dont know how many of these people develop web applications but in the Java web domain there are many good or even great opensource libraries available that are easy to use and provide good productivity.</p>
<p>Also - if you visit some of the websites of apache projects - you will discover that opensource developers do care about information on releases, milestones, updates, bugs etc. Sometims it seems that people stating the opposite did never use a good opensource software. Sure there ís opensource software that does not provide these information but you can say the same for many high price software products.</p>
<p>I think most people stating this thesis have used some sort of GNU software - i dont say GNU software is bad - but using GNU software can really be a silly adventure. Yet i do believe that most opensource developers do have an idea of professional software development and since there is a growing competition among opensource software open source software developers too have to distinguish themselves from other products. So you wont "sell" your opensource software until you care about your customers needs and provide a little bit of basic information etc. that make possible users convince your product will help them in their daily work.</p> 
<h2>Anti-thesis: High price software is good</h2> 
<p>Now lets get back to the antithesis which runs: "High-Price software is good". Ok. How many people use Microsoft software and how many people would sign the thesis that all Microsoft software is worth the price paying for it? On the other hand. Compare the price of a Mac and what you get for it - oh ok, dont get me on the current Mac / Java story - but basically consider all the features and software you get for the price of a Mac - compared to MS Windows and their tools. Excellent.</p>
<p>And how many people would say that Microsoft user support is great! So, personally, i think that today it does not matter if a product is opensource software or not. The quality of a software does not necesseraliy depend on its license but it does mor and more depend on the people who develop it and on how they treat their users / customers needs.</p> ]]>

</content>
</entry>

</feed>