java

Top Ten Errors Java Programmers Make

 

In the article, Top Ten Errors Java Programmers Make, David Reilly gives a list of his top 10 mistakes people do while programming in Java.

An excerpt:

Whether you program regularly in Java, and know it like the back of your hand, or whether you’re new to the language or a casual programmer, you’ll make mistakes. It’s natural, it’s human, and guess what? You’ll more than likely make the same mistakes that others do, over and over again. Here’s my top ten list of errors that we all seem to make at one time or another, how to spot them, and how to fix them.

Read more

Standard
technology

Concept-Oriented Programming

 

In Informal Introduction into the Concept-Oriented Programming, Alexandr Savinov describes a new approach to programming based on using concepts instead of conventional classes and inclusion relation instead of inheritance. It generalizes OOP and allows the programmer to modularize cross-cutting concerns. In CoP, a great deal of functions is executed implicitly during object access via custom references with custom behaviour. There are several important points about this new approach briefly outlined below.

Concepts instead of classesUse concepts instead of classes in OOP where a concept is defined as a pair of two classes: one reference class and one object class. If a concept does not define its reference class then it is equivalent to a conventional class. Both objects and references possess some structure and behavioral methods. One simple consequence of having concepts is that objects are represented and accessed indirectly using custom references with arbitrary domain-specific structure and functions.

Inclusion instead of inheritanceInclusion relation is used in CoP where inheritance is used in OOP. Inclusion generalizes inheritance and, if a concept does not define its reference class (and hence is equivalent to a class), then inclusion is equivalent to inheritance. In the general case inclusion relation is interpreted as IS-IN relation while inheritance is interpreted as IS-A. As a consequence, a parent object may have many children. Another consequence is that object references have a hierarchical structure, i.e., they consist of several segments similar to postal addresses. Thus objects exist in a hierarchical address space which is modeled by the programmer.

Dual methodsEach concept has two definitions for each method provided in its reference class and object class. However, when methods are used they are applied to variables without any indication what definition to call, i.e., methods are used precisely as it is done in OOP. In order to resolve this ambiguity CoP introduces the mechanism of dual methods which specifies the necessary sequence of access. One property of this mechanism is that it is still possible to override parent methods by children but in addition it is also possible to override child methods from the existing parent. In the latter case the parent object will be able to actively intervene into the sequence of access by intercepting incoming method calls.

Cross-cutting concerns<The ability of parents to intercept all access requests independent of the type of the target child object makes it possible to modularize cross-cutting concerns existing in the program. This means that parent concepts play a role of aspects in AOP but do it completely differently. They are able to transparently inject the necessary intermediate functions when target object are about to be accessed. In this sense CoP can be viewed as an alternative to AOP.

Data modellingCoP is part of a new approach to data modelling, which is called concept-oriented data model (CoM). This data model consists of two parts: identity modeling and entity modeling (just because concept is defined as consisting of two parts). CoP is deals with identity modeling (while entity modeling is based on other principles). Therefore it looks quite promising from the point of view of integrating programming and data modeling (so called impedance mismatch in its different forms).

Standard
apis, downloads

Silverlight

 

Microsoft® Silverlight™ is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on the Mac OS or Windows.

Silverlight

To get more information about Silverlight go to the Silverlight forum

Standard
books, reading

Fast Track to Sun Certified Java Programmer (SCJP) 5.0 Upgrade Exam

If you’d like to learn the new features in Java SE 5.0 and pass the Sun Certified Java Programmer Upgrade Exam (CX-310-056), then this book is for you. It covers all the Java SE 5.0 new features required in the exam. You don’t need to read about the existing features that you already know. 117 review questions and mock exam questions are included.

 

Get the book

 

Standard
general

Salt water as Fuel?!

 

Could salt water fuel cars?

In the future, you might see a lot of confused seagulls hovering around your local gas station. That’s because rather than gasoline, gas stations could smell a lot like the beach. It depends on whether the kinks can be worked out in an invention created by a 63-year-old named John Kanzius that could create an alternative fuel out of salt water. Through sheer serendipity, Kanzius, a former broadcast engineer, found out something incredible — under the right conditions, salt water can burn at incredible temperatures. With a little bit of tinkering, it might evenserve as an alternative fuel for our cars in the future.

You’re seeing water burn.

Continue reading

Standard
apis, downloads

ZXing (“Zebra Crossing”)

ZXing (pronounced “zebra crossing”) is an open-source, multi-format 1D/2D barcode reader library implemented in Java. Our goal is to support decoding of QR Codes, Data Matrix, and the UPC family of 1D barcodes. It will provide clients for J2ME, J2SE, and Android.

Why? There are several great readers out there, and there are bits of open-source code already for decoding, but not both at the same time. We want everyone to have access to some great source code to play with, so we decided we’d try an experiment, and open up our in-progress effort. Maybe some of it will be useful to you — maybe you can help improve it.

Will this be the best reader ever? Well we hope it gets quite good. Things are far from perfect, and it’s hard to top some of the great (native-code) readers out there. No, we primarily hope to provide a solid base of code from which people can derive other implementations, and to which people can submit new, better code. If this helps raise the quality of readers everywhere we’ve all done our job.

Featured Downloads

Wiki

Standard
apis

SALT

Imagine that you call your computer to read back your e-mails, instructing it to call you back when an expected mail arrives. Further more imagine your car telling you how many kilometers the fuel left in your tank will cover, then displaying a map of local service stations within that range. It would be wonderful if your personal weighing machine can instruct in voice about your extra pounds and advise you about the ways to shed them out. The foundation for these kinds of applications is being laid today with the emergence of new specifications such as SALT that have fostered the kind of broad industry support necessary to take speech technology and its related benefits to a much broader audience, to a wider range of devices, with a wider range of service capabilities.

“SALT is a speech interface markup language. It consists of a small set of XML elements, with associated attributes and DOM object properties, events and methods, which apply a speech interface to web pages. SALT can be used with HTML, XHTML and other standards to write speech interfaces for both voice-only (e.g. telephony) and multimodal applications.”

Microsoft announced SALT-based Microsoft Speech Platform, which includes an enterprise-grade speech-recognition engine developed by Microsoft. Launched in May 2004, MSS 2004 R2 is built on .NET technologies and is the first product in its class to allow companies to deploy telephony-only DTMF (dual-tone multi-frequency, or touch-tone keypad) applications, speech-enabled telephony applications, and multimodal (mixed speech and visual) applications. As a Speech Application Language Tags (SALT)-based solution, Speech Server follows the Web application deployment model, using an ASP.NET-based Web server as the application server. The two main components of the MSS platform are the Telephony Application Services (TAS) and Speech Engine Services (SES), which include Automatic Speech Recognition (ASR), Text-to-Speech (TTS) and prompt manager. In August 2005, Microsoft announced that as part of its continued efforts to help make speech mainstream, it is expanding its speech technology efforts beyond the call center and interactive voice response markets into the broader enterprise unified messaging market by integrating speech technologies into a future release of Microsoft Exchange Server.

More information about speech here

The SALT Forum

Standard