Oasis Digital now offers AngularJS training in a boot-camp/workshop format. See the linked site for details.
Author: Oasis Digital
FlashFiler to RDBMS Data Converter
Our work at a Oasis Digital often includes migrating legacy code or data into a new system. We often find off-the-shelf tools, or create ad hoc single use tools to assist that process, but occasionally something reusable emerges.
We recently needed to convert a lot of data from a legacy FlashFiler database (an Turbo Pascal then Delphi specific database from the 1990s) to something more modern. We took the opportunity to make a tool for this purpose outside of any specific customer project, so we are able to release it for anyone to use. It looks like this:
We have released this data converter as open source software. You can download it, or learn more, on its page on GitHub.
Summer 2013 Intern Program Wrap-up
Our summer 2013 intern program was a great success. Here is a video we made explaining the program and showing some of the results of our interns achieved.
Many interns were involved, some of them have volunteered to appear here by name and link:
Oasis Digital sponsors Strange Loop 2013
Oasis Digital is a sponsor of Strange Loop 2013, again this year. Strange Loop is again at the spectacular Peabody Opera House.
3D Configurator Intern Project
One of our specialties at Oasis Digital is in rules-based configurator systems of various types. For example, we have worked on complex model number configuration systems, quotation systems with complex sales commission rules, graphical system of configuration widgets, and other similar tools.
For our 2013 intern program, one group (led by Zach Kimberg) worked on a 3-D rules-based configuration system. This project lasted about half of the summer, and got far enough along to produce a visually interesting demo, shown below. The screenshot doesn’t really do it justice – it is dynamic and continuously moving.
This works entirely as a web application, with no use of flash or any other plug-in. It relies on WebGL, built-in to most modern web browsers. It is coded entirely in JavaScript, with help from AngularJS for the user interaction and Three.js for the 3-D model management. The 3-D model is hacked up and simplified from a 3-D model example from a website we have forgotten.
We see this as a proof of concept showing that it is possible today to build complex rules-based configuration systems, with a rich visual display, that run easily in a browser. It is no longer necessary to build difficult-to-deploy desktop software for this type of need.
Update: We recently added this short video demo of the configurator. Unfortunately the video doesn’t show the rules in action – there are rules to block certain combinations of settings in the configuration. The video shows a slightly jerky rotation of the swing-set – in the live software, it is completely smooth. Enjoy:
Summer 2013 Intern Program Wrap-up
Our Summer 2013 program has wrapped up, and was a great success.
Manufacturing Case Study Video
We have published a new case study video about a long-term project for a St. Louis area remanufacturing firm.
Summer 2013 Intern Program Announcement
Information about our Summer 2013 program is now online.
Learn Clojure
At Oasis Digital we have been working with Clojure intermittantly since its release several years ago, and recently we used it for an intern project. In the process, we sifted through a large pile of Clojure learning materials. We have gathered up many of those and posted them on a convenient URL:
Summer 2012 Intern Program Mini-documentary
We’ve published a video mini-documentary about our Summer 2012 Intern Program:
It is also available on Kyle Cordes’s web site and on YouTube.
New Office Space Again
We have relocated again, this time to accommodate our growing team. Our new office space is in Des Peres, MO, at I-270 and Manchester.
The Clojure Programming Language
What is Clojure?
Clojure appeared in 2007, which makes it still a relatively new programming language. Clojure is a dialect of LISP, modernized to include built-in support for numerous data types beyond lists.
Power, Simplicity, Efficiency
We find Clojure appealing in numerous ways:
- Clojure is built on the JVM (Java virtual machine), enabling extensive straightforward integration with thousands of Java libraries and Java runtime environments.
- Clojure data structures are immutable. The lack of mutability first sounds like a limitation; but it is actually an enormous benefit. Clojure’s data structures are persistent, which means they implement “change” very efficiently.
- As a result of the above, Clojure code is often much easier to reason about than it might initially appear.
- Startlingly, Clojure code often requires fewer parentheses than a direct translation of the same code to Java.
- Yet Clojure also requires considerably less code to accomplish the same work compared to many other languages; Clojure is in a unusually high level language.
- Therefore, Clojure makes efficient use of the most expensive resource, developer time.
- Closure is also available in a variation which compiles JavaScript, making it possible to write a program entirely in Clojure, and share parts of it between server and client execution.
Caveats
Although Clojure is a general-purpose programming language, and can be used to write any program which could be written ] in (for example) Java, there are a few caveats:
- Clojure is currently dependent on the Java virtual machine, which means these deployments involve running a Java virtual machine. For some organizations this is extremely easy, for others it is a burden that would prefer to avoid.
- Some developers are very troubled by LISP-like syntax, even though Clojure code is not particularly parentheses-dense compared to other non-LISP languages.
- Compared to mainstream languages, Clojure has been much smaller community, fewer libraries, fewer companies and developers which can be hired to work on it, and so on.
Clojure Development at Oasis Digital
Our Experience:
- Oasis Digital developers have been using Clojure since approximately 2010.
- We have used Clojure in our summer intern program.
- We have delivered project prototypes in Clojure.
- We have written and deployed utility projects, such as an Github->JIRA issue converter, in Clojure.
- We use software in Clojure to process Oasis Digital time and billing data.
We recommend considering Clojure for certain types of projects:
- Systems with complex logic, for which Clojure’s power and expressiveness are very beneficial.
- Data services behind front-end web systems, suitable for local or cloud deployment.
- Applications where concurrency in important – it is greatly facilitated by Clojure’s immutable data structures.
Our Clojure developers and consultants can take on an entire project, or assist with one already underway. Please contact us to discuss your Clojure project.