Thu 30 July 2015

[Nuxeo Blogs] Nuxeo Helps You Avoid Technology so Complex, You Just Have to Laugh

Everything must be made as simple as possible, but not one bit simpler.
– Albert Einstein

Recently SAP BusinessObjects veteran executive and analytics expert Timo Elliot ran a cartoon caption contest that enabled his SAP Community Network readers to vent (humorously) on the topic of excessive technology complexity.

Here’s the cartoon. How would you caption this?

Source: Timo Elliot (timoelliot.com)

Source: Timo Elliot (timoelliot.com)

The caption contest entries (you can read them in the comments section of Timo Elliot’s contest challenge) I found the most humorous revolved around a couple of related basic truths:

Developers might (frustratingly) get blamed for complicated enterprise applications…

And then I said to the engineers, “If you don’t like the new coffee machine, feel free to build your own.”

…but in reality, needless technology complexity is most often caused by the less-than-adequate tools the developers are expected to use.

Trust me: Rube Goldberg machines are the cutting edge of big data and enterprise business intelligence.

An end-to-end integrated, next generation, built from the ground up thingamajig.

What do you mean, there’s no single sign-on?!

And quite often, technology complexity is often built on top of the pre-existing complexity of a legacy enterprise application that might be retrofitted to be marketed as a “platform”.

Don’t worry, we have APIs!  [Sure you do, pal. Sure you do. – M.U.]

As requested, the new platform is integrated with all of your legacy systems.

Your first job is to find the last maintenance guy. He’s in there somewhere.

The best way to avoid needless technology complexity is to work with a true enterprise platform built properly from the ground up in the first place. That’s exactly what we have strived to do from the very beginning with the Nuxeo Platform – an end-to-end enterprise content application development program designed to be as flexible and extensible as possible.

To achieve this, we offer some unique core platform capabilities that sets Nuxeo apart from other systems:

  • Every feature created as a separate component. The Nuxeo Platform is made up of a system of loosely coupled components, each one packaged as an OSGi bundle. Each bundle includes a “contract” that specifies how it can interact with other bundles. Developers can also specify and deploy only those components are required for their application.
  • Easily customize and configure all Nuxeo services. Each bundle also exposes extension points which enable developers to easily configure the behavior of a component (using an XML-based configuration, which can be done quickly and visually using Nuxeo Studio), or extend the behavior of a component (using your own custom code or scripting). The same extension point system is used at every layer of the Nuxeo Platform. Nuxeo’s extension point system ensures there’s no risk of “losing” your customizations after an “upgrade”, (and no risk of “losing” a maintenance person, either!)
  • An API that can access everything the application can do. Unlike an enterprise application that has exposed some partial functionality exposed through an API, the Nuxeo Platform provides a completely dynamic API that exposes all platform capabilities. Developers can define their own custom-built services, plug-ins, data structures and data processing routines; selectively expose only those Nuxeo services required by their application; and much more.
  • An efficient and extensive testing framework is included. Testing is at the core of the Nuxeo Platform, just as it is at the core of all quality software engineering. Developers are enabled to load only the bundles required for their tests and fully automate testing of your application – in the very same manner that we test the Nuxeo Platform itself.

Perhaps these two clever captions sum this all up the best:

Sorry, I didn’t have time to make it more simple!

Simplification ain’t so simple!

How true! We at Nuxeo have already sweated all of the critical details of our infrastructure essential to make our enterprise content application development platform so simple – from design all the way through to deployment in the cloud – that developers actually enjoy using it.

And that’s no joke.

The post Nuxeo Helps You Avoid Technology so Complex, You Just Have to Laugh appeared first on Nuxeo.

[Adacore] Generated Initializes contracts

The tools now internally generate Initializes contracts for packages that do not have user-provided Initializes contracts. This reduces the false alarm rate about uninitialized uses of variables.

Wed 29 July 2015

[OVH] Libération d’1 million de noms de domaine / Step 8

Cette semaine ce sont les extensions autour de la thématique "Immobilier" qui sont mises à la disposition des utilisateurs.

Tue 28 July 2015

[Nuxeo Blogs] Publish Videos Stored in Nuxeo to YouTube or Wistia in Just Minutes!

Publish videosThe latest release of the Nuxeo Platform, Fast Track 7.3, provides a new add-on called Nuxeo Media Publishing for publishing videos to external services. This add-on enables users to publish videos stored in the Nuxeo repository to external video hosting websites without leaving the Nuxeo Platform UI. I will walk you through the installation process and show how you can get started with Nuxeo Media Publishing!

Nuxeo Media Publishing for Marketing: A sample use case

Many organizations, particularly popular consumer brands, utilize videos as a vital component of their marketing mix. Marketing departments must effectively:

  • Manage its digital assets (videos) in a central repository
  • Control distribution of these videos on social networks

Both these requirements can be easily met using the Nuxeo Platform and the Media Publishing add-on. While the add-on already includes implementations for YouTube and Wistia, the add-on is pluggable, and designed to support a wide array of providers. Writing a new plugin for another publishing platform, such as Slideshare, Facebook, etc. is quite easy!

Videos Stored in the Nuxeo Platform

Videos Stored in the Nuxeo Platform

Video published on Wistia

Video published on Wistia

Video published on YouTube

Video published on YouTube

How to install the Nuxeo Media Publishing add-on

This add-on can be installed like any other package from the Nuxeo Marketplace or from the Admin tab. However, it does require the installation of the Digital Asset Management (DAM) add-on which provides multimedia files (pictures, audios and videos).

After the Media Publishing package is installed, two new OAuth2 service providers are added to the Nuxeo Platform (see Admin > Cloud Services > Service providers). These providers must be properly configured before users can use them to publish videos.

You will find detailed technical documentation here on how to configure Nuxeo Media Publishing for YouTube and Wistia.

List of available service providers

List of available service providers

How to add a new publishing platform

If you would like to define additional media publishing providers, you can contribute a new publishing service to the Nuxeo Media Publishing add-on.

You can find detailed steps in our Nuxeo Platform documentation.

How to get started publishing videos

Installing this add-on enriches the Publish tab of a video document with a set of external providers where videos can be published. This add-on also adds a new section in the Summary page which lists all the providers available and the respective status of the video (either “Published” or “Not published”).

Once a video is published, additional information is displayed, such as:

  • The URL of the video in the external video host (External Link)
  • An embeddable HTML snippet that can be put on an external website (Embed Code)
  • Statistics for the video (such as number of views, likes, comments) as provided by YouTube and Wistia
Statistics on your video

Statistics on your video

Here’s a video demonstration showing how to publish a video on YouTube. Check it out and get started with Nuxeo Media Publishing!



The post Publish Videos Stored in Nuxeo to YouTube or Wistia in Just Minutes! appeared first on Nuxeo.

Fri 24 July 2015

[Smile] Smile participe aux Rencontres Régionales du Logiciel Libre 2015

Pour la troisième année consécutive, Smile participe aux RRLL (Rencontres Régionales du Logiciel Libre) le 24 septembre 2015 à l'Euro Meeting Center de Nantes.

[Smile] Smile, sponsor Gold du BlendWebMix

Le BlendWebMix est l'une des plus importantes conférences web francophones, qui aura lieu les 28 & 29 octobre 2015, à la Cité Internationale de Lyon. 

[Adacore] Better support for quantification with Iterable

The SPARK proof tool now handles quantification using the Iterable aspect better, especially when cursors are record or private subtypes.

Thu 23 July 2015

[Nuxeo Blogs] Nuxeo & RoboVM: Dive into Cross-Platform Mobile Technology for iOS and Android using Java

Big Dive-Jump into waterAs we constantly strive to make the Nuxeo Platform better and more efficient than ever, we turned our attention to the Mobile Nuxeo Automation Client. The Nuxeo Automation Client provides a high-level client implementation for Java programmers and simplifies your task by handling all protocol level details.

Since Nuxeo Android SDK and Nuxeo iOS SDK, our team wanted to discover a cross-platform framework that can integrate the Nuxeo Automation Client as a single Java library for both iOS and Android system to make it faster and more efficient for developers to build applications on top of the client.

The technology that caught our attention was RoboVM.  Let’s dive deeper into why we used it and the RoboVM-Nuxeo integration details!

RoboVM

Targeting mobile means developing for both Android and iOS. RoboVM provides the way to develop for both platforms:

  • By creating truly native mobile apps for iOS and Android
  • By using libraries, tools, and languages from the vast Java ecosystem
  • By sharing code between platforms

RoboVM IDE and plugins are based on IDEA EAP 15. This version of Intellij is currently an early access program but can be downloaded from the official IDEA website.

A RoboVM project has the following structure:

RoboVM project structure

  • Android: contains all activities/controllers for Android application
  • iOS: contains all views/controllers for iOS application
  • Core: the Core is shared by both Android and iOS layers and can contain http protocol handlers or storage layers

RoboVM projects, such as common Android projects, use Gradle for dependency management.

First Goal: Nuxeo Integration

Our first goal was to make the Nuxeo Automation Client work inside a RoboVM application sample. It was pretty quick and easy to integrate in the Core project and make it work for both Android and iOS. Here’s what we did:

For Android:

For the Google platform, we needed to exclude some Automation Client libraries that already existed within Android as Apache libraries, such as httpcore or httpclient libraries. Then we had to execute the application on Android to make its runtime execution work by removing some Apache features which are not provided by apache Android libraries.

screenshot_2015-07-22_14.44.16

For iOS:

After our work on Android, we didn’t detect any defects around iOS deployment and execution.

Result:

For both Android and iOS platforms, we successfully created a RoboVM project integrating Nuxeo Automation Client to develop IPA or APK applications easily.

You can check out the project here: https://github.com/nuxeo-sandbox/nuxeo-robovm

Using Nuxeo Library for iOS Development

After our initial work on RoboVM, we needed to think about iOS native developers who should be able to use this RoboVM Core library within their Objective-C or Swift projects.

We successfully externalised an iOS Core library. However, it needed a JNI wrapper and introspection to be used within an iOS project (this brought some complexity on the developer’s side to make the application work).

Integrating Nuxeo Automation Client using RoboVM was quite easy and successful. We were able to create iOS and Android applications with the same sharing Core code to make calls and interact with the Nuxeo Platform server. But the work on externalisation of an iOS library was not the easiest.

What’s Next?

As RoboVM is compiling JVM byte code to machine code for iOS, it couldn’t set our goal to let iOS developers develop using XCode. So, we set out to find an alternative that will make their work with the Nuxeo Automation Client much easier.

One technology caught our attention! It’s  J2ObjC, which does transpositions between Java code and Objective-C code directly. That’s what we will be looking into shortly. So stay tuned for more updates!

The post Nuxeo & RoboVM: Dive into Cross-Platform Mobile Technology for iOS and Android using Java appeared first on Nuxeo.

[Zenika] Vos scripts sous stéroïdes avec Groovy

Au cours du cycle de vie d'une application, il y a beaucoup de besoins nécessitant la réalisation de scripts :

  • réaliser des opérations d'administration en ligne de commande
  • exécuter des actions de maintenance
  • effectuer des mises à jour sur des modèles de bases de données
  • etc, ....

Il existe au moins tout autant de façon de réaliser ces scripts :

  • en bash
  • en powershell (pour Windows)
  • en python
  • en PHP
  • en groovy

Le choix de Groovy Comme le titre de l'article l'indique, c'est mon expérience sur le scripting en Groovy que je souhaite vous faire partager. Groovy est un langage dynamique pour la JVM, supportant le typage dynamique et la compilation statique. Groovy apporte également pas mal d'améliorations appréciables par rapport à la syntaxe verbeuse de... Read Vos scripts sous stéroïdes avec Groovy

[Adacore] Support for all kinds of type predicates

The SPARK proof tool now handles all kinds of type predicates, in particular static predicates on floating-point types and dynamic predicates on any type. A dynamic predicate check is generated at every program point where the predicate associated to a value might be violated.

[Adacore] Summary table for proved and unproved checks

The gnatprove output file "gnatprove.out" now contains a summary table which summarizes the verification results. It shows the number of proved checks, to which category they belong (like initialization checking, runtime errors, or functional contracts) and how various provers contributed to it. Unproved checks are also counted.

Wed 22 July 2015

[OVH] Libération d’1 million de noms de domaine / Step 7

Cette semaine ce sont les extensions autour de la thématique "E-commerce" qui sont mises à la disposition des utilisateurs.