Guest speaker @ Delphi Develpers Days in Rome

Next week I’ll be the guest speaker at the Delphi Developers Days held in Rome by (and with) Marco Cantù and Cary Jensen. Marco and Cary are very good speakers and very expert developers, so will be nice to be there with them and I want to thank them for inviting me.

My talk will be on May 17 and these are the details:

Title

Improving Code Testability Through Dependency Injection

Abstract

Create a highly decoupled system is not simple. Inversion of control principle help to understand what you have to do to accomplish this target. In this speech I’ll introduce the reasons behind the adoption of a IoC is a good thing for your software and your business. In the final part, will be introduced the dependency injection container contained in the Delphi Spring Framework (spring4d). There will be lot of examples to help to correctly understand this “new & better” way to do old things.

This is the page for register to the event

http://www.delphideveloperdays.com/#rome

See you there!

ITDevCon2012 – Call4Papers

ITDevCon2012

Dear potential ITDevCon speaker,

I’m building the agenda for next ITDevCon 2012 that will be held October 25th,26th in Verona (Italy), the same location of the past year.

The call for papers are officially open right now, so if you want to propose some speeches, I’ll be glad to see it.

As usual, for the Call4Paper I need:

  • Title (for every talk)
  • Abstract (for every talk)
  • Difficulty level (for every talk. Difficulty level is a scale from 1 to 3 with the following mean: introduction, intermediate, advanced)
  • Speaker’s photo
  • Speaker’s profile

I’m looking forward to your proposal. The call4papers ends at July 31st, 2012.

Send your proposal to call4paper(at)itdevcon.it.

Proposals will be evaluated and the speakers will be contacted ASAP.

This year topics will be the following:

TOPICS

  • What’s new in Delphi
  • FireMonkey
  • iOS development (iPhone, iPad, iPod Touch)
  • MacOSX development
  • Android clients for Delphi servers
  • Windows 8
  • Delphi best practices
  • Design Patterns
  • DataSnap
  • “Unusual” Delphi markets
  • TDD and Unit Tests
  • Agile methodologies
  • Dependency Injection
  • ORM
  • Software engineering
  • “Hands on” sessions for the most used Delphi frameworks (e.g. Delphi Spring Framework, OTL etc)
  • Mobile
  • HTML5/SVG/WebGL and Delphi
  • OOD/OOP
  • Web development with Delphi
  • Real OOP Delphi applications developments
  • Delphi fundamentals/advanced
  • Metaprogramming
  • Games
  • SOA/ROA
  • Architectures

Target audience

  • Software architects
  • Software developers
  • Project managers
  • IT managers
  • Trainers

The conference web site is http://www.itdevcon.it (2012 version is still under construction).

Do you want to see a particular topic or have a suggestion for ITDevCon2012? Let me know

Thanks and see you at ITDevCon 2012.

P.S. This year, ITDevCon will be even more amazing! Stay tuned!

ITDevCon 2011, recap

Last Friday ended the third edition of ITDevCon, the European Conference on Delphi and its related technologies.
ITDevCon this year was even bigger and funny.
There have been more present, more sponsors, more speakers, more topics and a lot of people with the desire to learn new things and improve their every day work.

A special thanks goes to all the speakers who participated and the sponsors who have contributed their support to make this conference a major event for the European community Delphi.

I hope that the content and the organization is liked to you at least half of how much it is liked to me.
We are organizing slides, videos and examples for each speech to put it all on-line available to participants at the conference as soon as possible. You will receive an email informing you of how to download all the material available.
In the coming days, on the conference website (www.itdevcon.it) we will post all the pictures we have done in these three days.

If you have any photos that you want to see published, send them to me, we’ll publish it on the official website.

Some friends (and speakers) already blogged about the conference:

DavidI
http://blogs.embarcadero.com/davidi/2011/10/24/41413

Paweł Głowacki
http://blogs.embarcadero.com/pawelglowacki/2011/10/30/39392

Primoz Gabrijelcic
http://www.thedelphigeek.com/2011/10/itdevcon-2011recap.html

Marco Cantù
http://blog.marcocantu.com/blog/itdevcon2011_summary.html

And now, Daniele Teti :-)

ASAP I’ll publish the slides of every speeches.

If you want to see the tweet about the conference, you can go here.

Here’s some photos from the conference.

During the “Country Evening” some of us have been singing with the good “Tex Roses” friend (an italian country band). Probably there are at least 15 video documenting my “performance”!

Here’s the video recorded by Primož (the Delphi Geek)

I thank again all those who have spoken and all those who have attended to ITDevCon.
See you next year.

– Daniele

ITDevCon 2011 Time Table

Yes, it is a bit late, but this year has been really difficult to choose between all the speeches proposals arrived from all over the world.
The new Delphi XE2 version (and the RAD Studio XE2 Suite too) are really full of new cool features and many of the best delphi developers want to show what can be done in Delphi XE2. Great situation!

However, also this year, there will be many talks and many speakers. For the first time there will be 2 plenary sessions with more than one speaker in the main TObject hall. During these sessions all the attendants will be in the same hall and I’m sure that there will be very interesting Q&A time at the end of the sessions.
As usual there will be english and italian speeches. In every time frame you will find a suitable talk for your language.

This year we are glad to have DavidI as a conference speaker. Thanks to be with us David!

As you can see from the time table, there will be many topics, but if you are particulary interested in Firemonkey, LiveBindings, DataSnap and Mobile, you will find a specific sets of speeches about these topics.

In particular:

  • DavidI and Pavel Glowacky will show all the cool stuff available in Delphi XE2
  • Marco Cantù will held an interesting session about Firemonkey development
  • Bruno Fierens will held a 2 parts session about Firemonkey cross-platform component development.
  • I’ll hold 2 sessions about LiveBindings and how to use them with the most popular Data Access Design Patterns
  • Debora Mizzoni (web) and Luca Giacalone (android) will talk about mobile development with RadPHP
  • Salvatore Sparacino will show how to use the datasnap mobile connectors to develop a real-world app
  • and many others on many others topics

This year we’ll have also a “Conference App” very similar to the Google I/O one. With this app you will be able to:

  • Read the time table
  • Set you preferred speeches
  • Read infos about the speakers
  • Comment on speeches
  • Share you comments about itdevcon on facebook and twitter
  • Read infos about our sponsors

This app has been developed using Delphi and the datasnap mobile connectors (for the backend) and an Android device for the frontend. ASAP the app will be published on the Android Market. Here’s some screen shots from the “ITDevCon2011” android app.

The home screen
The time table with all the speeches infos. The starred ones are your preferred speeches.
Speaker's details

The principal developer of this app (Salvatore Sparacino) will explain all parts (datasnap, the connectors, and the android development) in a specific talk. Are you interested in mobile development using Delphi as backend? If yes, you cannot miss his talk!

The time table is available here.
The complete speakers list is available here.

You can register for the event here.

There are interesting discounts for groups, students and for whom will buy RAD Studio XE2 in these days. If you are interested, contact directly our sales office at dir_comm at bittime.it.

See you in Verona!

DataSnap Mobile Connectors in RAD Studio XE2

WARNING! I’ve been authorized by EMBARCADERO to write about RAD Studio XE2.

RAD Studio XE2 is full of nice and exciting features. One of the most interesting IMHO is the DataSnap extension called “Mobile Connectors”.

In the past, I’ve talked about connecting and using your datasnap REST service with Android, creating ad-hoc json messages and manually parsing the returned json messages. With RAD Studio XE2 this is no longer needed. If you have a DataSnap REST service, you can automatically generate the proxy connector for the major mobile platforms. Yes, just like you have been doing with Delphi or C++ since Delphi 2010.

DataSnap XE2 version supports 4 mobile platforms:

  • Android (Using Java)
  • BlackBerry (Using Java)
  • Windows Phone (Using C#)
  • iOS 4.2 (Using ObjectiveC)

If you want to enable your DataSnap server for the Mobile Connectors you have to explicitely check the feature in the “New DataSnap Server” wizard.

The generated proxies support all the standard Delphi types and maps them to the native target language. Some of the most used Delphi types (e.g. TStream, TDBXReader and so on) have been rewritten in the target language to allows a greater compatibility and a simpler programming interface. The functionalities of the various Delphi classes are not-one-to-one with the Delphi version, but  similar.

From a remote (or local) machine you can download the generated proxy and all the required files using a tool called “Win32ProxyDownloader.exe” which is in the bin folder of your RAD Studio installation. In my FieldTest version, this tool called without parameters, shows its help.

As usual you should have the RAD Studio bin folder in your PATH environment variable, so you can change your current directory to where you want the proxy and write this command in a commandprompt window:

Win32ProxyDownloader -language java_android -host localhost:8080

The proxy and all the needed files are ready in the current directory.

Mat DeLong wrote a very nice Eclipse plugin to use the proxy downloader directly from Android or BlackBerry development environment. You can find this plugin here.

You know that Android is my preferred mobile platform, don’t you?

So, let’s go with an Android example.

To use the generated java proxy, in an Android client application I can write something like this:

//Create the connection
connection = new DSRESTConnection();
connection.setHost("10.0.0.2");
connection.setPort(8080);
connection.setProtocol("http");
//Create the proxy
proxy = new DSProxy.TServerMethods1(connection);
//Use a simple remote method
int sum = proxy.Sum(1,4));
//Use a complex remote method
TStream inStream = null;
TStream outStream = null;
String s = "abc";
inStream = new TStream(s.getBytes());
outStream = proxy.DoSomethigWithATStream(inStream, sum, "Hello DataSnap Mobile Connectors");
//here I can use the java TStream type

All the custom Delphi types (e.g. TPerson) are mapped on the target platform as TJSONObject. All the TJSONValue hierarchy has been ported, with a very similar interface, to the target platform as a wrapper of the native JSON classes.

So, you can write code as the following (Java on Android):

TJSONObject jobj = new TJSONObject();
jobj.addPairs("firstname", "Daniele");
jobj.addPairs("lastname", "Teti");
jobj.addPairs("age", 31);
jobj.addPairs(new TJSONPair("nickname", new TJSONString("Spiderman")));
if (jobj.has("firstname"))
  doSomethingWithFirstName(jobj.getString("firstname"));
doSomethingWithAge(jobj.getDouble("age").intValue());

All the proxies work in a similar way except for the Windows Phone one. Indeed, the WP proxy is asynchronous because Microsoft does not allow a sinchronous http request in the main thread. All the proxies are thread safe.

The proxies are generated on the fly by a set of specialized writers. The TDSProxyGenerator component is in charge of generate the actual proxy code in the target language/platform using one of the specialized generators.

In the next figure you can see all the available proxy generators. Some of them are there since Delphi XE but all the mobile platforms have been added in XE2.

That’s all for now.

RAD Studio XE2 will be officially presented all over the world during the “RADStudio XE2 World Tour”.

You can find the list of all launch events in the RADStudio XE2 World Tour page.

I’ll be a presenter at 3 launch events in Italy and United Arab Emitates.

These are the events where I’ll be (click to register):

RAD Studio XE2 had a lot of new features. This is really the BEST ever Delphi version since version 1.

I’ll blog about other XE2 features mostly Delphi related (as usual) so stay tuned.

AndroidConference in Italy – Call4Papers

The Android Conference

Yes! This is a great news! Before the two-days conference dedicated to Delphi, this year there will be the AndroidConference.

The Android Conference

The Android Conference will be a conference focused on Google Android development. Android is one of the most popular OS in the world. Now you can use it for your mobile applications.

And now, the “official” Call4Papers Announce

Dear potential AndroidConference speaker,
I’m building the agenda for the first Android Conference in Italy that will be held in late October in Verona. Dates will be announced ASAP.
The call for papers is officially open right now, so if you want to propose some speeches, I’ll be glad to evaluate them.

For the Call4Paper I need:
• Title (for every talk)
• Abstract (for every talk)
• Difficulty level (for every talk. Difficulty level is a scale from 1 to 3 with the following mean: introduction, intermediate, advanced)
• Speaker’s photo
• Speaker’s profile
I’m looking forward to your proposal. The call4papers ends June 30th, 2011.
Please, send your proposal to this email address.
Proposals will be evaluated and the speakers will be contacted ASAP.
This year topics will be the following:

Topics
– Android Fundamentals
– Android Advanced
– Working with Android Sensors
– Android@Home
– Games
– OpenGL
– Android ADK
– Android Market best practices
– Design UI Pattern
– Optimizing you app for the mobile world
– Developers Tools
– 3rd part libraries
– Android NDK
– The WebView World
– Using WebServices
– SOA and ROA
– HW integration

Target audience
– Software architects
– Software developers
– Project managers
– IT managers
– Trainers
The conference web site is http://www.itdevcon.it (still under construction).
Thanks and hope to see you at AndroidConference 2011.

ITDevCon 2011 – Call4Papers

Dear potential ITDevCon speaker,

I’m building the agenda for next ITDevCon 2011 that will be held in late october in Verona, the same location of the past year. Dates will be announced ASAP.

The call for papers are officially open right now, so if you want to propose some speeches, I’ll be glad to see it.

As usual, for the Call4Paper I need:

  • Title (for every talk)
  • Abstract (for every talk)
  • Difficulty level (for every talk. Difficulty level is a scale from 1 to 3 with the following mean: introduction, intermediate, advanced)
  • Speaker’s photo
  • Speaker’s profile

I’m looking forward to your proposal. The call4papers ends at June 30th, 2011.

Send your proposal to this email address.

Proposals will be evaluated and the speakers will be contacted ASAP.

This year topics will be the following:

TOPICS
– Delphi Fundamentals
– Delphi Advanced
– Design Pattern (GoF, Enterprise, Integration)
– Refactory
– Domain-Driven Design
– Agile
– Optimization
– Metaprogramming
– ORM
– Rad PHP
– Open Source Delphi Libraries
– Continuous Integration
– OOD/OOP
– Developers Tools
– Middleware
– Components
– IDE extensions
– Native Delphi
– Beyond Delphi on Windows
– Web development with Native Delphi
– WebServices
– SOA and ROA
– HW integration
– Games

Target audience
– Software architects
– Software developers
– Project managers
– IT managers
– Trainers

The conference web site is http://www.itdevcon.it (still under construction).

Thanks and see you at ITDevCon 2011.

P.S. Have you a suggestion for this ITDevCon edition? Let me know your improvement proposal.

ITDevCon 2010

Last Friday ended the second edition of ITDevCon, the European Conference on Delphi and its related technologies.
ITDevCon This year was even bigger.
There have been more present, more sponsors, more speakers, more topics and a lot of people with the desire to learn new things and improve their every day work.
In addition to a large group of Italian and European speakers, we had speakers from all over the world. From the coast of the U.S. Ovest to Russia. The participants who came from all over Europe. The most intrepid of them even came from Australia to follow the Mobile Boost on Android and the 2-day conference. Congratulations!
A special thanks goes to all the speakers who participated and the sponsors who have contributed their support to make this conference a major event for the European community Delphi.
I hope that the content and the organization is liked to you at least half of how much it is liked to me.
We are organizing slides, videos and examples for each speech to put it all on-line available to participants at the conference as soon as possible. You will receive an email informing you of how to download all the material available.
In the coming days, on the conference website (www.itdevcon.it) we will post all the pictures we have done in these three days. If you have any photos that you want to see published, send them to me, we’ll publish it on the official website.

Many speakers already blogged about the conference:

Paweł Głowacki
http://blogs.embarcadero.com/pawelglowacki/2010/11/22/39140

Marco Cantù
http://blog.marcocantu.com/blog/itdevcon2010_report.html

José León Serna
http://www.joseleon.es/2010/11/22/itdevcon-2010-conclusions/

Bruno Fierens
http://www.tmssoftware.com/site/blog.asp?post=185

Primoz Gabrijelcic
http://www.thedelphigeek.com/2010/11/itdevcon-2010.html

And now, Daniele Teti 🙂

If you want to see the tweet about the conference, you can go here.

I thank again all those who have spoken and all those who have attended to ITDevCon.
See you next year.

— Daniele

Delphi & Android in the next few conferences

Tomorrow I’m leaving from Rome to go to São Paulo (Brasil) for the annual Delphi Conference.
This is the Brasilian Delphi Conference web site: http://latam.embarcadero.com/br/delphiconference/.
I’ve a talk about Delphi and Android. I’m really excited for all the cool things that can be done with this technologies.
For the conference talk, I’ve developed a DEMO Android application to manage customers and orders that use some mobile technologies available in the Android OS in my Samsung Galaxy S.

This application uses JSON over HTTP to talk with a DataSnap server developed with DelphiXE. The database that it is used by the Delphi server, is Interbase.

The DataSnap REST interface is completely RESTful, it is not a JSON-RPC.

In this Android application, a salesman, can also acquire the customer’s GPS coordinates (for example, his shop office’s location) and use this information in the included GoogleMaps view. This informations, along with all orders details, are sent, as soon as possibile, to the central office and integrated with the customer’s data already there.

In november, I’m having a mini-course in Milan (ITALY) about “Delphi in the mobile Era”. I’ll talk about all the new possibilities that mobile devices and new DataSnap, have opened to the Delphi programmers. (http://www.bittime.it/page/corsi/19146)

In the middle of november (17-18-19) bit Time, has organized a very nice conference called “ITDevCon: European Delphi Conference”. The first day (november 17th) is about mobile development, there will be 2 tracks, one on Android development, and the other on iPhone development. I’ll hold Android course.
These are the course contents: http://www.itdevcon.it/corsi/it (will be only in italian language).

See you soon in person in one of this events.

RADSTUDIO XE LAUNCH in Rome and Milan

This year, the launch of the new RADSTUDIO XE has been really nice. We have met some friends and customers exciting to see the new Delphi features and capabilities.
In the event of Rome there was DavidI too.

The agenda has been the following:

Embarcadero Update + XE and All-Access (DavidI)
+ New Products, Ideas, Projects
+ Delphi64 bit compiler preview
+ MACOSX FishFacts DEMO

What’s New in the IDE (Marco Cantù)
+ SubVersion
+ BeyondCompare
+ AQTime

New features in the RTL, RTTI (Daniele Teti)
+ Threading
+ JSON
+ Virtual Methods Interceptor
+ RegEx
+ CodeSite Express

Agile Development (Daniele Teti)
+ UML modeling
+ audits, metrics
+ repository
+ unit testing
+ Final Builder

Web, Cloud e Database Support (Marco Cantù)
+ Microsoft Azure Components
+ Deploy in the Amazon EC2 Cloud

What’s new in Datasnap (Daniele Teti and MArco Cantù)
+ Developing DataSnap server (Daniele)
+ DS Authentication/Authorization (Daniele)
+ DS Filters (Daniele)
+ DS RequestFilters (Marco)
+ Using DS from Delphi Client (Daniele)
+ Using DS from PHP Client (Daniele)
+ Using DS from Javascript Client (Marco)
+ Using DS from Android Client (Daniele)

Summary and Q&A

The last DEMO has been an Android APP wich use a REST DataSnap Server built with Delphi. Audience has been very excited about it.

Many attendedees have been very interested in the upcoming ITDevCon (www.itdevcon.it) and for the new courses in the bit Time offers.

Some of the photos are uploaded on Google Picasa. You can see them here.