This week we're spotlighting the java.net KS-2009 project, which is developing software to solve two-, three-, and four-variable Karnaugh maps (k-maps) on the J2ME platform. Karnaugh maps were invented in 1952 by mathematician Edward W. Veitch, and further developed in 1953 by physicist Marice Karnaugh, both of whom worked for Bell Labs. K-maps are usefule for solving Boolean algebra functions.
While I studied quite a lot of mathematics on my way to getting a Bachelor's degree in Physics in the 1970s, I certainly never encountered Karnaugh maps. From a quick search of the web, it looks like a primary application of k-maps is the design of circuits. For example, see "Logic simplification with Karnaugh maps" on the AllAboutCircuits.com site. From this, I would guess that some of the people I worked with in the 1980s, when I was developing instrument control and data acquisition software (interfacing HP-9000 and PC computers with the instruments using RS-232 and GPIB cables), probably were familiar with Karnaugh maps, since often I was interfacing the computers and software with their custom built circuit boards.
But back to the present: the KS-2009 project describes itself as "the world's first Karnaugh Map Solver for handheld devices" and describes k-maps as follows:
Karnaugh Maps are used to normalize complex digital circuits to reduce the requirements and complexity of hardware while implementing Digital Logic circuits. Mobile devices being so easy to access, this software will be a boon for all those digital circuit designers who are very often confronted with the problem to normalize complex digital circuits, and find normalization procedure using Karnaugh maps manually, very time consuming and difficult.
Talking about the current Version 1.0 release of KS-2009:
KS - 2009 Version 1.0 can be made in use to solve 2-variable Karnaugh maps, 3-variable Karnaugh Maps and 4-variable Karnaugh maps. The solutions will be given out in SOP (Sum of Products) form to ease understandability. This software is made on J2ME (Java 2 Micro Edition) platform using CLDC-1.0 and MIDP-1.1 profiles. KS - 2009 supports S-60 and higher mobile devices which support for Java Environment.
If you're interested in what is meant by "sum of products" there are lots of introductory pages available, for example, Canonical form (Boolean algebra) and K-maps (Karnaugh Maps). I myself have too little background in boolean algebra to get much from these pages quickly. It sounds so simple, doesn't it? Boolean algebra! Surely someone who once felt comfortable working with differential equations should be able to pick it up in a flash, right?
The other thing the KS-2009 project makes me think about is: here's a tool that engineers can use to solve fairly complex problems using a hand-held device they can carry with them from a laboratory to a conference room, to an auditorium presentation, then back to the laboratory. Undoubtedly, the hand-held device they are carrying is more powerful and has greater analytic capability and processing speed than the clunky desktop workstations I was working on during my instrumentation days 25 years ago. The progress has been enormous since the start of my professional career. The KS-2009 project is one more demonstration of that fact.
Email from Barry Cranford states that the London Java Community (founded in 2007) has now reached over 750 members. They run their meetings using meetup.com and they maintain a blog
"...Having been founded in November 2007, after twelve months we hit 250 members, I had hoped we could grow to 750 by the end of the year so it’s superb that we have done it 2 months early! Thanks to all our sponsors, presenters & members for your continued support of our community, I hope we can keep giving you the presentations, events, support and advice you are looking for. You can find us at: http://www.meetup.com/Londonjavacommunity -- Barry Cranford
I'm heading up to Malmö, Sweden, next week for the ØREDEV conference. Those of you who've been following my blog this year know how much I enjoyed ØREDEV in 2008 - and so I am delighted to speak there again...
As an application developer, you can easily understand the difference between the capabilities of a mobile device as opposed to those of a desktop or server. If you're a Java developer creating mobile applications, you may have experienced some of the limitations of either the handset itself, the mobile operator's network, or the Java ME framework on the device. The Mobile Information Device Profile (MIDP) 2.0 implementation is the most widely deployed Java ME framework, with over 2 billion mobile phones worldwide that are Java technology-enabled...
Let me introduce a new language named pseudo (Why this name ? Why another language ? Why God ? all these questions will be answered in a later blog). One great feature of this language is that it allows gradual typing, i.e. you can assign a type to a parameter, a local variable, etc. or not. If a variable as no type, the compiler consider it as any. You can assign any value of any type to a variable typed any you can assign a variable typed any to any variable typed with any typed (but this may cause an exception at runtime)....
Earlier on this week, we held the first ever Wellington Coding Dojo session, co-organized with the Wellington Java Users Group. It was a great session. We practiced TDD adding features a small existing application (that I'd written the morning before the session). One interesting thing was that we covered TDD across the whole web application stack, from the web interface down to the domain layer, with only a few short-cuts for simplicity. We investigated how to apply TDD/BDD and ATDD to web layers (using jwebunit and mockito for the controller layer), as well as service and domain layers, on a multi-module Maven application. We even experimented with Dependency Injection with Guice...
Today I've made some improvements with my Mercurial + Maven + Hudson setup - and reached a new level of karma, being able to do automated releases. Let's go in order. First let me recap what happens with the Maven release plugin (mvn release:prepare release:perform) and Mercurial:
A check is performed that there are no uncommitted changes
and a build is performed as a validity proof.
All the version labels in the current project are updated
(e.g. 1.3.7-SNAPSHOT to 1.3.7) and changes are committed
A tag in the SCM repository is made for the new release
(e.g. release-4.5)
All the version labels are updated again (e.g. 1.3.7 to
1.3.8-SNAPSHOT) and changes are committed again
Another copy of Maven is spawned on a temporary directory
where sources are checked out from the SCM, with the previously created
tag; another build is performed and artifacts deployed.
In the Forums, arbalet is looking for a running, public Rendezvous Peer: "i All. Does anyone know of a public rendezvous, a development one or other, to which I can try and connect to see if a problem I am having is with my rendezvous or my client configuration ? the problem: I am trying to..."
dsosnoski is having problems with Metro 1.5 Faults and WS-Security signing/encryption: Metro 1.5 is not signing or encrypting Fault responses, even though the policy requires signing and encryption ...
And richard25 is trying to understand JXTA vs JGroups vs GridGain: "Hi. Sorry, but i don't understand, very well the differences between these framworks : JXTA / JGroups / GridGain Can we do, some cloud apps with JXTA ? GridGain , it seems do. What's the better..."
Our current Spotlight is the java.net ks2009 open source project: "KS - 2009®" is the world's 1st Karnaugh Map Solver for handheld devices. Karnaugh Maps are used to normalize complex digital circuits to reduce the requirements and complexity of hardware while implementing Digital Logic circuits. Mobile devices being so easy to access, this software will be a boon for all those digital circuit designers who are very often confronted with the problem to normalize complex digital circuits, and find normalization procedure using Karnaugh maps manually, very time consuming and difficult.
Our current "(Not So) Stupid Questions" topic for discussion is Does Java Speak for Itself? It was suggested at Oracle OpenWorld that Java indeed does speak for itself. But, what does that statement mean? Does it have any truth? Register your view by posting a comment.
Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.
Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.