|
|
||
Alexander Schunk's BlogNovember 2007 ArchivesLinAlg API: TutorialPosted by alexanderschunk on November 16, 2007 at 11:07 AM | Permalink | Comments (2)LinAlg API tutorialA 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. This is a simple tutorial that convers the basics and does not show all capabilities of LinAlg API. LinAlg API: on international developmentPosted by alexanderschunk on November 15, 2007 at 08:17 AM | Permalink | Comments (3)An Experiment at the beginningWhen 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. The way to java.netAs 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. Moving onNow, 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. OpenSource Software: You get what you not pay for?Posted by alexanderschunk on November 12, 2007 at 08:51 AM | Permalink | Comments (5)OpenSource: A definitionTo 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. According to this definition most projects at this page and most of the Apache projects are opensource software. 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. Thesis: OpenSource software is low-qualityA 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. 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. 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. Anti-thesis: High price software is goodNow 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. 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. The beautiful World of Java SwingPosted by alexanderschunk on November 10, 2007 at 12:32 PM | Permalink | Comments (3)Somewhere deep down in the API forrest...In the beginning there was Swing as a subset of AWT with a huge array of features for GUI programming. Ok. Now we have JavaFX, Swing-X, Fuse and the Swing Application Framework. Now, from the developers point of view its nice to have this kind of choice of many APIs available for GUI programming yet whats missing is a kind of overview what API to choose for what kind of project. For example the Swing-X API offers some features one would like to see in the Java Swing API. JavaFX has even more features not available in Swing and other such APIs. If JavaFX is the next generation GUI API for Web and Mobile apps whats going on with Java Swing on the desktop?. JavaFX: Hey thats coolPosted by alexanderschunk on November 10, 2007 at 06:58 AM | Permalink | Comments (0)My First JavaFX CupThis weekend i was experimenting with JavaFX in order to see how i could use it for my ADI project. And after some working demos and self experiments i came to the conclusion: wow, thas really a cool thing. The thing i love most of JavaFX is that it really speeds up productivity and it can be used for web and mobile apps. A tiny Bug in the TutorialsThere is a tiny bug in the tutorials provided at the JavaFX project page. There is a height attribute missing for the frame to display. You wont see a window without the height attribute. Meanwhile i have provided some German tutorials for JavaFX on my homepage. Another thing or feature i would like to add to JavaFX or i would like to see is 3D effects. There are already these nice effects build with Java2D yet i think having a 3D view in the browser would be cool. The JavaFXPad demo implements a "3D" view by using transpareny however i think a "real" 3D view using something like a Z-Order for the Browser window could be implemented. If SUN keeps up working on JavaFX i think it will be one of the next booms in the internet and on mobile devices. LinAlg Mobility Toolkit availablePosted by alexanderschunk on November 08, 2007 at 03:21 PM | Permalink | Comments (0)LinAlg Mobility ToolkitUsually i blog in the JDK Blogosphere so LinAlg API may not be known to the mobility world. LinAlg API is a J2SE API for linear algebra and is currently under strong development for different platforms in particular for the desktop. However, i was experimenting with the idea of porting linalg to the mobile platform and it worked. So there is now a linear algebra API available under the GPL 2 for mobile platforms. I will also try to port linalg to CLDLC devices if possible. Current development and information can be obtained from linalg.dev.java.net. OpenJDK: Partial Classes in Java?Posted by alexanderschunk on November 08, 2007 at 05:40 AM | Permalink | Comments (18)OpenJDK: Partial classes in JavaWhile i was working on a Visual C# project build with Visual C# Express 2005 i was flying over the C# syntax features. One interesting thing is the possibility to define so called partial classes that is a class definition that is distributed over several sources files. Yes you are reading right, source files. Microsoft did introduce this to make distributed team developed more easier by allowing distributed teams to work on the same class yet with their own defintions. The complete class will be generated when the appliction is compiled. To understand what this means lets look at this code:
public partial class EmployeeA{
//defintions
}
public partial class EmployeeB{
//definitions
}
Now image that the class EmployeeA is developed by team A and class EmployeeB is developed by team B. They can use this is as their basis for work and then merge these two distinct classes into one class called Employee when compiling the app. I dont know how hard it is to implement something in Java but i think its a nice feature also if have GUI apps for example. The Visual C# designer makes huge use of this so you will always find partial classes when working with Visual C#. Decimal data typeAnother interesting thing is that C# has a decimal data type to define decimal values i.g. for currencies. In Java you have to use the Locale class for this. LinAlg API: Demos updatePosted by alexanderschunk on November 08, 2007 at 12:34 AM | Permalink | Comments (0)LinAlg API Demos updateI have provided new demos for LinAlg API with sources for donwload in the document/files section under linalg.dev.java.net. Now there are 4 demo apps available written with NetBeans GUI Designer:
Pascal is a demo app for Vector operations, Complex Calculator for complex numbers, Square for Matrix operations and Angle Converter for converting angles. 64 Bit demo versions will be available soon. Spinning around: What do you expect from the next 10 yearsPosted by alexanderschunk on November 07, 2007 at 10:02 AM | Permalink | Comments (0)Connected all over the worldOne thing thats most important is that the number of broadband internet access computers is growing and the world is getting more and more connected. Another important thing is that it doesnt matter wheather you are using a Desktop PC, a laptop or a Mobile phone: almost all services are available on these distinct plattfroms and can almost easily be shared and exchagend. One thing thats still ticking in my head is that although the internet has various tools for displaying and manipulating XML based content its not possible to write really desktop equivalent applications that can communicate with the Desktop resoucres and other internt resources alike. So i think this is one big task on the Thinktanks Todo list. I have blogged about this this week when i was outlining an Application Driven Internet yet this kind of internet requires new technologies that are not available today but may be in the next 5 years. I am currently elaborating some ways to get something like this done with the curent tools available though its a bit hard job to do. I have an idea of using JavaFX driven clients that can communicate with Java based browsers on the Internet side and Java based applications on the Desktop side that too can communicate with the Java Browser. This is what David Herron has been thinking of when speaking about the Internet jail and the incapabilities of current Browsers. Whats needed are Browsers that are only tools for accessing the internet not to display content however a Browser still needs some concept of how to display certain informations. Now lets wait and see what the next 5 years will bring us and how we can help achieve this. LinAlg API: 64 Bit Version availablePosted by alexanderschunk on November 06, 2007 at 09:04 AM | Permalink | Comments (1)64 Bit rocksA first 64 Bit version of LinAlg API for Windows Vista 64 Bit is available. If you want to compile it yourself you need a 64 Bit JRE and Compiler with Java 6 installed. I will also provide some demos for this 64 Bit Version. LinAlg API: Weekly BuildsPosted by alexanderschunk on November 06, 2007 at 04:53 AM | Permalink | Comments (0)Weekly BuildsWeekly Builds of LinAlg API will be available soon. These weekly builds are developer builds that you can use for development. Stable versions are build in a month turn or if there are enough features that require a new milestone. If other ports are available these will also be available for download on the project homepage. I will also provide some 64 Bit demos for this version of LinAlg API. LinAlg API: Its rolling...Posted by alexanderschunk on November 06, 2007 at 02:33 AM | Permalink | Comments (0)LinAlg API OverviewMy recent Blog did gain some attention and i have updated the LinAlg API project homepage with some more information on project goals and people who are working on features. Project GoalsLinAlg API is an opensource API for linear algebra with a set of certain common linear algebra operations for Vectors, Matrices and Complex Numbers and implementatons of common algorithms. LinAlg API cannot easily be compared to other Math APIs like Math commons or JScience. Its just yet another API that offers its own features and which is releaased under two common licenses: GPL 2 and CDDL for people that dont like the GPL 2. One thing thats different to other APIs is that i am planning to add 64 Bit versions for Windows and Linux and a Mac OS X port. If you are working with Mac OS X you can easily compile LinAlg because its build with Java source level 1.4 since it does not make use of any special Java 5 or Java 5 Syntax enhancements. LicenseLinAlg API is released under GPL 2 and CDDL license. If you dont like the GPL 2 you can use the CDDL license. CVS AccessSoucre code of LinAlg API can be accessed via CVS using a normal CVS client or NetBeans build in CVS access. Alternatively you can donwload the zip archives if you want to build from scratch or just use the .jar binary build to work with it. Features, WhishlistThe Todo list for Features or Whishlist is growing yet i have some personal favorite for features in LinAlg you may can add if you like to:
For an uptodate list of Todos and tasks currently worked on checkout the LinAlg API project homepage. Contributors needed...And, of course, i am still looking for contributors and volonteers that would like to help testing and improving LinAlg API. LinAlg API is an opensoucre project so anyone can join and help making it better. LinAlg API: Contributors neededPosted by alexanderschunk on November 05, 2007 at 08:45 AM | Permalink | Comments (6)Contributors neededThere is already a stable realease of LinAlg API available on the project homepage at linalg.dev.java.net along with some GUI demos i have written. Anyone who is interested in contributing to LinAlg API is welcome since LinAlg API is an opensource project. If you want to contribute send me an email via the project homepage and indicate in the subject line what you want to contribute. Basically you are free to pick the feature you like but there are some Todo issues open i would like to see in LinAlg API. You can also write some GUI apps if you want to - just have a look at the existing LinAlg API demos. Thanks very much. ADI: Application Driven InternetPosted by alexanderschunk on November 05, 2007 at 03:47 AM | Permalink | Comments (3)Application Driven InternetThis Blog is the sequel of my last Blog where i was thinking further on Davids entry. In fact my last Blog results in what i call ADI which is short for Application Driven Internet - a new view on the Interne as a means of using the Internet for sharing Web and Desktop applications as were they one application. Your Browser: the Gateway to the InternetThis view on the Internet turns the Browser into the Gateway to the Internet leaving settings and configurations to the applications - i.g. thinks like security, RSS, etc. - and spanning the bridge between your desktop and the world wide web. In this Internet the Browser only is a means for displaying a minimum sort of XML based content with an engine to run applications - if we want full Desktop equivalent applications in the internet we also need some mechanism to run these applications in the browser which means we need some form of internet application engine that is not bound to the desktop application or may be a part of it. So in this view on the internet there is no big difference between desktop applications and web applications. For example consider the following scenario: you have an application for managing email, contacts, etc. with one backend on the desktop and one backend on the internet with the same GUI interface. Now, if you want to write your friend an email just go to the internet menu and select "connect to" and send over the message while the application opens an connection to the internet and displaying the GUI of the Web interface. Also consider the other case where you have a webapplication with a webinterface that also has a Desktop backend with the same GUI interface but limited features. You can select a menu in your web appliction that opens a connection to this Desktop backend and allows you to work with this Desktop backend almost the same as with the internet appliction. So within the Application Driven Internet there woul be no frontier between the Web and the Desktop and it would be the users freedom what application to use and allowing him to configure security and personal settings in both worlds. Desktop/Web convergence: Ist it becoming real?Posted by alexanderschunk on November 05, 2007 at 02:53 AM | Permalink | Comments (0)Wesktop: Desktop and Web applicationsIn his latest Blog David Herron is thinking aloud on the convergence of Web and Desktop applications and citing some existing example of these and resuming the main disadvantages of the current state-of-the-art Web access. Hiding the Browser from ApplicationsIn fact David is suggesting to reduce the Browser as a means of accessing content to a means of accessing only the web itself. This would result in that the web applications would be independent from the Browser and its capabilities. This would mean in turn that we need programming languages that are indepenendent from Browser features and only used for writing Web applications. Giving Power to the apps, not to the BrowserThis shift from the Browser as a tool for access and not viewing content would also mean a shift from giving power back from the Browser to applications and reduce Browser featurs to a limit. Since the Browser must have some knowledge or concept how to present Web date this might make it necessary to invent some cross-language format that describes Webcontent no matter if its HTML, CSS or a scripting language. This could be done with XML the same way you use XML to define a Webservice. The power of ConvergenceConverging Web applications with Desktop applications or features will make it possible to write applications that can both access far networks over the internet and access local resources on your local machine given some restrictions on critical data. Yet even this problem might be solved by allowing some personal configurations. For examle one could allow an application to acces his private data on his local machine if he secures it with a password. I think this is the sort of next Generation Web applications we are seeing in the 5 or 10 years. However this will also require some more security and awareness of dangers coming from the interent. Java on Mac: RevisedPosted by alexanderschunk on November 01, 2007 at 12:44 PM | Permalink | Comments (0)Compile once dont run anywhere?Ok. My Last Blog did stirr up attention but did not bring the very answers i was looking for. Having read some other Blogs i am still confused about what this controversy still is about but i think i am getting right by assuming that Apple is currently not supporting Java 6 on the current Mac OS yet they are planning to support some time later. However this brings me to some other questions that arise. If Microsoft Windows is only supported because of its market share and Linux because of its popularity - what happens if one these operating systems will not have that market share or popularity? Is there a minimum of operating systems Java is going to run anytime or is the OS portfolio a volatile thing that is shifting and changing depending on acceptance and availability? What is with those developers that use Java because it supports that variety of operating systems and want to support a variety of plattforms? Is Java not going to get hurt if one big OS vendor says: "well we are supporting Java but not the very latest version of it"? So software developers will have to downgrade to that vendors Java version - if possible - and or have to wait until that vendor is upgrading to the latest Java version. So the question about Java on Mac or not has a much more deeper truth behind and is not so easy to answer. | ||
|
|