OAuth 2.0 and Ada Programming

So you need to flex the power of the OAuth 2.0 framework and you want to use Ada to get the job done, but you don’t know where to start.

Well today is your lucky day then, as the ever productive Stephane Carrez just churned out an article about OAuth 2.0 and Ada, working together in happy harmony:

Through this article you will learn how to use the OAuth 2.0 framework to let an application access service provider APIs such as Facebook API, Google+ API and others. Althought this article uses Ada as programming language and Facebook as service provider, most part also applies to other programming languages and other service providers.

The article goes into great detail, so it’s a pretty good read even if you just want to understand how OAuth 2.0 works. If you already know all about OAuth 2.0 and just want to get cracking on some code, how about taking a closer look at Stephane’s Ada Security package?

I’m baffled at how Stephane manages to be so productive. Hopefully he relies on some secret time distortion machine of his, or else I simply don’t understand how he can keep the pace he does. I’m only slightly jealous. 🙂

VTKAda version 5.10 free edition release 01/06/2012

Leonid Dulman just released version 5.10 of his VTKAda package:

VTKAda is powerful 2D , 3D rendering and imaging system and works inside Qt4 application.

Current state of VTKADA is 39549 procedures and function distributed in 634 packages. 134 examples.

You can get it here, and you can read the full release announcement here.

Simple components for Ada v3.17

If you’re in need of smart pointers, directed graphs, sets, maps, stacks, tables, string editing, unbounded arrays, expression analyzers, lock-free data structures, synchronization primitives (events, race condition free pulse events, arrays of events, reentrant mutexes, deadlock-free arrays of mutexes), pseudo-random non-repeating numbers, symmetric encoding and decoding or IEEE 754 representations support, then Dmitry Kazakov’s Simple components library might be just what you need. It’s up to version 3.17 now, and with the version comes the following changes:

  • This release provides generic sets and maps of discrete types based on ranges of elements and keys. Differently to the standard implementation these allows very large sets and maps.
  • Set complement operation was added to the generic set packages
  • Deep equality operation was added to the generic map packages.

You can read the full release announcement here.

Fuzzy Machine Learning Framework v1.2

Dmitry Kazakov is constantly developing on his Fuzzy Machine Learning Framework, which is now sitting at version 1.2. It’s a fairly short changelog for this latest release:

  • Fixes minor bugs in importing training sets from text files.
  • The ‘hicolor’ icon theme was included into binary distribution for Windows.

You can read the full release announcement here, but be careful, as the post turns into a rather lengthy license debate. Good luck!

Using AWA and Dynamo To Quickly Build An Ada Web Application

AWA, or Ada Web Application, is an Ada powered framework to build web applications. It is made by Stephane Carrez and sits on top of Ada Server Faces, Ada Database Objects and Ada Web Server. The latest version of AWA provides:

  • A new event framework with configurable action listeners.
  • Persistent event queues for the event framework.
  • A new blog module and wiki engine supporting Google Wiki, Creole, MediaWiki, phpPP and Dotclear syntax
  • New mail UI components allowing to generate and send email easily with the ASF presentation pages
  • A new Javascript plugin Markedit with jQuery Markedit (MIT License).

If you want to experience AWA at work, you can go to the online demo, or you can take a look at a video Stephane did called Creating a Web Application with AWA. In this video he mentions Dynamo, which is a tool created to help build Ada web applications. Dynamo version 0.5.0 was recently made available with lots of new features:

  • Support multi-line comments in XML mappings.
  • Generate List_Bean types for the XML mapped queries.
  • Add support for Ada enum generation.
  • Add test template generation.
  • Add AWA service template generation.
  • Add support for blob model mapping.
  • New command ‘add-ajax-form’, ‘add-query’, ‘dist’, ‘create-plugin’.

Be sure to go check out all these tools if you’re in the market for building a web application in Ada – AWA and its siblings might just be what the doctor ordered.

Ada Industrial Control Widget Library v1.3 Released

The Ada Industrial Control Widget library provide high-quality industrial control widgets for Ada applications. Version 1.3 is a bug-fix release with no new features:

  • A sample of asynchronous plotting added, based on the contribution by Yogeshwarsing Calleecharan, who generously provided his code solving a differential equation of a generator’s rotor movement. The sample illustrates ploting data on-line, as they are computed by a separate Ada task.
  • Memory leak while drawing graph paper annotations fixed.
  • Graph paper annotations formatting flag to enable or disable superscript numbers.

You can read the release announcement here and get to the code here. Fedora and Debian packages are available and source for the rest of us.

Ada Server Faces 0.4.0 Released

Ada Server Faces is moving ahead at a steady pace with the latest 0.4.0 release. It is, as you might remember from earlier Ada-DK posts about it, a framework for making web-applications using the same methodology as Java Server Faces:

Ada Server Faces allows to create web applications using the same pattern a the Java Server Faces (See JSR 252, JSR 314 or JSR 344).

ASF provides a security framework which allows to protect web pages according to some security policy. This framework allows users to authenticate by using OpenID Authentication 2.0.

You can get the latest version here or you can grab the dev version from the SVN repository:

svn checkout http://ada-asf.googlecode.com/svn/trunk/ ada-asf-read-only

New in version 0.4.0 is:

  • Support for shared or static build configuration.
  • Support for file upload.
  • New components , , , .
  • New EL function util:hasMessage.
  • ASF now Implements the JSF phase events and phase listeners.
  • Implements the JSF/Ruby on Rails flash context.
  • Adds the pre-defined JSF beans: initParam, flash.
  • Support for locales and honors the Accept-Language.
  • New demos are available in French and English

There’s a live online demo available. You can read the full release announcement here.

Ada Database Objects 0.3.0 Released

Ada Database Objects is a library that facilitates access to MySQL and SQLite databases and the mapping of database objects into Ada records, AKA an ORM.

New in this version is:

  • Support to update database records when a field is really modified.
  • Customization of the SQLite database connection by using SQLite PRAGMAs.
  • Escape of MySQL or SQLite reserved keywords.
  • Support for blob type.

You can get to the code here, or you can grab the latest dev version from SVN:

svn checkout http://ada-ado.googlecode.com/svn/trunk/ ada-ado-read-only

The full release announcement can be read here.

Spawning Processes From Ada Using The Ada Spawn Manager

The codelabs.ch project is steadily growing their collection of nice Ada projects, the latest being the Ada Spawn Manager:

The Ada spawn manager implements the concept described in the GNAT GPL package System.OS_Lib. It is used to solve the problem of spawning processes at arbitrary times from multitasking Ada programs:

If the parent is using tasking, and needs to spawn subprocesses at arbitrary times, one technique is for the parent to spawn (very early) a particular spawn-manager subprocess whose job is to spawn other processes. The spawn-manager avoids tasking. The parent sends messages to the spawn-manager requesting it to spawn processes, using whatever inter-process communication mechanism you like, such as sockets.

SYSTEM.OS_LIB specification
— GNAT COMPILER COMPONENTS

The Ada spawn manager uses UNIX domain sockets provided by the Anet library to implement fast and simple IPC.

Fun!

Currently there’s no official release version, but you can git clone the development version:

git clone http://git.codelabs.ch/git/spawn-manager.git

I wonder how this compares to spawning processes using the Florist POSIX package found at libre.adacore.com?