Skip to main content

Home/ Java World/ Group items tagged functional

Rss Feed Group items tagged

Hendy Irawan

Portlets iBatis Spring Struts2 jQuery Eclipse: AndroMDA vs Acceleo (MDA) - 0 views

  •  
    The aim of this paper is a brief introduction to MDA technology and a summary / comparison to the approachments to MDA of AndroMDA and Acceleo, intending to be a practical and understandable summary Introduction Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. It was launched by the Object Management Group (OMG) in 2001 The Model-Driven Architecture approach defines system functionality using a platform-independent model (PIM) using an appropriate domain-specific language (DSL). One of the main aims of the MDA is to separate design from architecture. As the concepts and technologies used to realize designs and the concepts and technologies used to realize architectures have changed at their own pace, decoupling them allows system developers to choose from the best and most fitting in both domains. The design addresses the functional (use case) requirements while architecture provides the infrastructure through which non-functional requirements like scalability, reliability and performance are realized. MDA envisages that the platform independent model (PIM), which represents a conceptual design realizing the functional requirements, will survive changes in realization technologies and software architectures.
Hendy Irawan

Groovy vs. Scala - We Need a Closure… « GridGain = Compute + Data + Cloud - 0 views

  •  
    There was a recent outburst in blogs on the topic of Groovy and how it compares to Java. Although I respect the youthfull entusiasim of Groovy and Co. working on this little exercise I'm just perplexed by the "WHY?" in this whole discussion. Let me just say again: W H Y ?!?! 1. Practically no one cares about Groovy (let alone Groovy++ strap-on) beyond Grails community. So this language just as "widely accepted" as Ruby (at least for enterprise software development) 2. If you know Java it's equally "challenging" to pick up either Groovy or Scala. Don't let anyone insult your intelligence by claiming that Scala syntax is somehow more complex than Groovy. In both languages you will need to adapt to functional thinking - and that's where you will have to spend a couple of weekends… 3. If you know Groovy - you already know 90% of Scala (different syntax and few extra features can be picked up in the evening) 4. Scala is designed by people who have proper academic background, experience and talent in the area of language design - Groovy has never been that way (and anyone who dares to look inside of Groovy runtime or history of changes in it will attest to that). NOTE: it did come out rather strong - but that's how I feel about it and after some thinking I'll leave as is. Nothing personal to anyone reading it… 5. Scala as a post-functional language is years ahead of Groovy (static typing with best-in-business type inference, highly tuned mix of imperative and functional styles, powerful and done-right generics, etc.) 6. Groovy will ALWAYS be slower than Scala or Java (latest benchmarks put even Groovy++ about 50 times slower than Java) just by its nature unless someone changes the language and rebuilds the runtime from the ground up. 7. Once we get decent integration with Eclipse, NetBeans and IDEA for Scala, the Groovy will lose its only serious advantage
Hendy Irawan

How-To: Setup an ERP with Openbravo - 0 views

  •  
    "Businesses involve a lot of functions and in any company, large or small, dedicated departments handle the functions assigned to them. This compartmentalization ensures that experts in the respective domain handle things efficiently. But as the company grows there arises a situation when too much time and resources are wasted when each of the departments carry out functions that are redundant. For example, it is too expensive when both the purchase team and the warehouse management team maintain the same list of products but each in their own format. That may be a tiny part of how Enterprise Resource Planning (ERP) can help you avoid redundancies to run an efficient business. Based on the size of the company and requirements, ERP packages are available from a few thousand to millions of dollars. Today we'll check out how to set up Openbravo, a modern and professionally backed open source ERP that is cost effective to acquire, operate and upgrade."
Hendy Irawan

Functional Modeling with EMF, Xtext, Groovy and Scala: eval-ing in Clojure: Executing D... - 0 views

  •  
    "Clojure functional programming language for JVM has powerful mind-bending features. The feature that interests me the first time is its ability to "execute data as code". As demonstrated here, were I define a function process that basically executes the symbol processor with whatever params : => (defn process [& params] (eval (cons processor params))) #'user/process "
Hendy Irawan

SwitchYard BPM Component | SwitchYard | JBoss Community - 0 views

  •  
    "Business Process Management functionality has been added to SwitchYard via the BPM Component work done in SWITCHYARD-174. The BPM Component leverages jBPM 5 (currently version 5.1.0.Final) under the hood to accomplish this. To illustrate this new functionality, a new Quickstart Demo has been created. The business process is a "Help Desk" workflow, and is available in the quickstarts git repository under demos/helpdesk/. Let's start by looking at a graphical representation of the process:"
Hendy Irawan

scalaz - Scalaz: Type Classes and Pure Functional Data Structures for Scala - Google Pr... - 0 views

shared by Hendy Irawan on 16 Jun 11 - Cached
  •  
    "Scalaz is a library written in the Scala Programming Language. The intention of Scalaz is to include general functions that are not currently available in the core Scala API. The scalaz-core module depends only on the core Scala API and the core Java 2 Standard Edition API. Scalaz is released under a BSD open source licence making it compatible with the licence of the Scala project. Scalaz 6.0.1 was released in June 2011, targeting Scala 2.8.1 and 2.9.0.1. "
Hendy Irawan

The Scala Programming Language - 2 views

  •  
    Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java
Hendy Irawan

Clojure - dynamic programming language that targets the Java Virtual Machine (and the CLR) - 1 views

  •  
    "Clojure is a dynamic programming language that targets the Java Virtual Machine (and the CLR ). It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs. I hope you find Clojure's combination of facilities elegant, powerful, practical and fun to use."
Hendy Irawan

Liquibase! (A brief primer on database schema migrations in Grails) | Cantina Consulting - 0 views

  •  
    There is no migration system in vanilla grails (although possibly in Grails 2.0 …. ?) but there do exist several plugins that provide  some migration functionality. As of this post I am aware of three: dbMigrate, Liquibase, and Autobase. Of these, I prefer Liquibase and cannot recommend it enough. While it uses XML to describe its changesets it is a mature open-source Java project that works flawlessly (and has some excellent documentation). I did not have much luck using DbMigrate and Autobase when including in an existing project… which is a shame as Autobase (which is built on Liquibase) uses a nice DSL syntax to build the migrations.
Hendy Irawan

Mike Nash's Two Cents Worth » Blog Archive » RAD with Scala and Vaadin - 0 views

  •  
    "I've had an opportunity recently to work on a product that needed an RIA web interface, and I chose my recent favorite tool for this, Vaadin. The services for this project needed to be highly scalable, and lent themselves well to functional techniques, so I selected Scala as my language of choice. I build my projects with Maven, for reasons I won't go into right now, and I do much of my JVM-language work in Intellij's excellent IDEA IDE. Given these tools, I found a way to facilitate very rapid development of web UI's, and I thought I'd pass it along. Another technique I use, which I'll expound on later, is creating "dummy" implementations of all of my backing services for my application. The "real" implementations are written as OSGi services, in separate modules from my UI. The UI is packaged as a war, but is also OSGi aware, with a bundle activator. This activator only gets called if the war is deployed into an OSGi container, and not otherwise. This allows the app to select which implementation of the services it uses - the "dummy" ones when it's deployed outside of OSGi, and the "real" ones when they're available. This means I can use the handy Maven jetty plugin to quickly spin up my application and test it on my local workstation, without needing all of the dependencies (like a data store and such) of my real services. That's good, in that I can get my "cycle time" down to a few seconds, where "cycle time" is the time between making a change and actually being able to test it in my browser. We can do better, though. I'm using Scala as my language of choice for building the UI as well, as it works just fine with Vaadin (and with everything else in the JVM ecosystem, for that matter, which is why I didn't choose a non-JVM language - but that's yet another rant). I compile my Scala with the Maven scala plugin - here's where the next handy bit comes into play. Turns out the Scala plugin has a goal cal
Hendy Irawan

Apache ServiceMix, the Agile Open Source ESB -- Home - 0 views

  •  
    Apache ServiceMix is an open source ESB (Enterprise Service Bus) that combines the functionality of a Service Oriented Architecture (SOA) and an Event Driven Architecture (EDA)  to create an agile, enterprise ESB. Apache ServiceMix is an open source distributed ESB built from the ground up on the  Java Business Integration (JBI) specification JSR 208 and released under the Apache license. The goal of JBI is to allow components and services to be integrated in a vendor independent way, allowing users and vendors to plug and play.
Hendy Irawan

Logback Home - 0 views

  •  
    "Logback is intended as a successor to the popular log4j project, picking up where log4j leaves off. Logback's basic architecture is sufficiently generic so as to apply under different circumstances. At present time, logback is divided into three modules, logback-core, logback-classic and logback-access. The logback-core module lays the groundwork for the other two modules. The logback-classic module can be assimilated to a significantly improved version of log4j. Moreover, logback-classic natively implements the SLF4J API so that you can readily switch back and forth between logback and other logging frameworks such as log4j or java.util.logging (JUL). The logback-access module integrates with Servlet containers, such as Tomcat and Jetty, to provide HTTP-access log functionality. Note that you could easily build your own module on top of logback-core. "
Hendy Irawan

Martin Taal's Blog - 0 views

  •  
    This post is to introduce the EMFT Texo project to you. The Texo project delivers code/artifact generation from ecore/xsd models for (web) server environments with additional runtime functionality. Texo aims to eventually also provide code generation solutions for the web client.
Hendy Irawan

Equinox Security - Project Info - 0 views

  •  
    Provide mechanisms for integrating Java security providers into Eclipse: Applications that need to implement security related functionality require cryptographic services upon which to build. Java provides the Java Cryptography Architecture (JCA) as a mechanism for installing implementations of several interfaces used for cryptography, including MessageDigest, Signature, KeyStore, Certstore, and more. In a typical Java application, these implementations reside in the extensions directory of the JRE. In a dynamic Eclipse application, the appropriate packaging mechanism is in Eclipse plug-ins. The goal is to allow JCA to be used in an Eclipse environment while maintaining the programming model of the JCA subsystem. A related goal is to expose the configuration of the JCA system via an Eclipse-based user interface, allowing authorized users to inspect and modify the Security object.
Hendy Irawan

emfpath - Project Hosting on Google Code - 0 views

  •  
    A set of functions and predicates (as defined by Google Collections / Guava libraries) along with a set of utility methods to help navigating and editing Eclipse EMF models. EMFPath depends on Google Guava. Guava is available as OSGi bundles from the guava-bundle project.
Hendy Irawan

Eclipse Nebula Project - Supplemental Custom Widgets for SWT (and more) - 0 views

  •  
    Supplemental Custom Widgets for SWT (and more) Nebula is a place where different Eclipse-Projects and Independent developers collaborate on building Custom SWT widgets and reuseable UI-Components useable in UI-Applications built using SWT and JFace. All Nebula components are available on the navigation tree on the left or from the table below. Each image links to a page that will further describe the component and its function
Hendy Irawan

Jackson JSON Processor - Home - 0 views

  •  
    Jackson is a: Streaming (reading, writing) FAST (measured to be faster than any other Java json parser and data binder) Powerful (full data binding for common JDK classes as well as any Java bean class, Collection, Map or Enum) Zero-dependency (does not rely on other packages beyond JDK) Open Source (LGPL or AL) Fully conformant Extremely configurable JSON processor (JSON parser + JSON generator) written in Java. Beyond basic JSON reading/writing (parsing, generating), it also offers full node-based Tree Model, as well as full OJM (Object/Json Mapper) data binding functionality.
Hendy Irawan

Developing a custom Kettle Plugin: A Simple Transformation Step | Adventures with Open ... - 0 views

  •  
    This article shows how to develop a simple plugin which provides a custom transformation step for Kettle 4.0. The transformation step should accept any row stream and append a string field at the end, filling it with a fixed value. The user should be able to define the name of the added field. For starters, that should be enough. Keeping the step functionality at a minimum allows me to explain how the plugin interfaces with Kettle with as little distraction as possible.
Hendy Irawan

Apache CouchDB: The Apache CouchDB Project - 0 views

  •  
    Apache CouchDB is a document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript. CouchDB also offers incremental replication with bi-directional conflict detection and resolution. CouchDB provides a RESTful JSON API than can be accessed from any environment that allows HTTP requests. There are myriad third-party client libraries that make this even easier from your programming language of choice. CouchDB's built in Web administration console speaks directly to the database using HTTP requests issued from your browser. CouchDB is written in Erlang, a robust functional programming language ideal for building concurrent distributed systems. Erlang allows for a flexible design that is easily scalable and readily extensible. See the introduction and the technical overview for more information.
Hendy Irawan

On the Job: The Eclipse 3.0 Jobs API - 0 views

  •  
    "This article looks at the new Jobs API available as part of Eclipse 3.0. It describes the main portions of the Jobs API and the use of scheduling rules. It also describes some changes to Eclipse resource management including how the Resources plug-in integrates with the new API. Finally, it describes some new UI functionality that has been added to provide feedback to users about jobs that are run in the background. "
1 - 20 of 24 Next ›
Showing 20 items per page