Embarcadero Report from the TDC 2017 in São Paulo

In the week of 18 to 22 of July we had the biggest developers conference from the Latin America, popularly known as The Developer’s Conference.

Embarcadero, as a key player in this market, was present there, not only as a Diamond Sponsor, but also with an entire track about Delphi and C++ Builder!

Nenhum texto alternativo automático disponível.

During these days we had the opportunity to show off the power of our multi-device strategy, as well our new backend support for Linux and the Windows 10 integration. All the presentations were organized and presented by our MVPs and community of users:

Inline image 1

Considering the entire week, more than 3k developers passed by the event, as well by our booth, where we did tons of demos and discovered developers surprised with the power that Delphi has nowadays!

You can find some thousand of pictures in the event fan page on Facebook, I’m pretty sure you can find us there!

Advertisements

Feliz Aniversário Delphi! #ILoveDelphi

ilovedelphi

Chegamos a mais um aniversário do Delphi, e podemos atestar que o aniversariante encontra-se em ótima forma ao completar seus 22 anos, um jovem na verdade!

Neste tempo todo, poucas tecnologias tiveram tamanha capacidade de se manter tão atualizadas, inovadoras e seguir ditando tendências. A começar pelo conceito do RAD, criado pela então Borland, e presente nas principais ferramentas da atualidade, até os dias atuais, com um dos melhores suportes para desenvolvimento cross-platform disponível no mercado!

Para marcar o dia, algumas fotos de pequenos tesouros e lembranças que mantenho da minha participação nesta história, afinal lá se vão 15 anos nesta industria vital!

ps: aos mais mais novos, é recomendado assistir este vídeo para entender a frase acima 😉

Foram centenas de treinamentos ministrados, consultorias e sistemas desenvolvidos. Apresentações em todas as capitais do país, e muitas cidades do interior também, e a incrível experiência de trabalhar ao menos por uma semana em cada país da América Latina e América Central, visitando clientes e fazendo eventos. É impressionante o que um compilador é capaz de fazer!

Mas além de um compilador, temos as pessoas. Sim, em tempos de pragmatismos e racionalização de tudo, talvez seja este o fator que nos permitiu chegar tão longe, todas verdadeiramente apaixonadas pelo que fazem.

Seria uma tremenda injustiça citar qualquer nome, cada qual contribuiu com o seu melhor, empurrando a ferramenta para frente, empurrando minha vida para frente… cada qual sabe o quanto sou grato por tudo!

Obrigado Delphi!

Windows 10 Store, Android, iOS, OS X, Linux: recursos para migrar sua aplicação Delphi/C++ Builder e suportar TODAS as plataformas!

Introdução

O suporte para múltiplas plataformas tem motivado muitas companhias a migrarem seus projetos para as versões mais recentes do RAD Studio, estejam eles utilizando Delphi ou C++ Builder. Em breve estaremos suportando mais uma plataforma de maneira 100% nativa, Linux 64 bit, e este movimento deve se intensificar.

Pensando nisso, estou iniciando uma série de artigos a respeito de migração, sendo este o primeiro deles. Vou tentar reunir aqui recursos que estão disponíveis e que podem auxiliar no processo de migração, e também compartilhar a experiência de alguns processos de atualização junto a alguns de nossos clientes.

Existem alguns temas recorrentes (e muito sensíveis) em um processo de migração. Abaixo estou listando os principais, sendo que a ordem não necessariamente atribui aos mesmos um grau de importância:

  • Suportar Unicode em todo o projeto
  • Migrar o framework de acesso a dados
  • Passar a compilar para 64 bit no Windows
  • Migrar ou remover componentes de terceiros
  • Migrar o middleware (quando em uso)

Temos também outros tópicos que não estão exatamente relacionadas a migração, mas sim a expansão da aplicação para outras plataformas, já que no Delphi/C++ temos o benefício de utilizar exatamente o mesmo código-fonte para múltiplas arquiteturas:

  • Migrar de uma plataforma de banco de dados para outra
  • Suportar múltiplas plataformas de banco de dados simultaneamente
  • Passar de uma aplicação originalmente Windows para múltiplas plataformas

Cada um destes macro tópicos será tratado em um ou mais artigos individualmente, e novos poderão ser adicionados de acordo com seu feedback!

Para dar o pontapé inicial, vamos falar de Unicode, um tema abstrato para a maioria da comunidade, o qual pode significar ao mesmo tempo uma enorme dor de cabeça em seu projeto, ou literalmente nada. Tudo vai depender do contexto de sua aplicação. Hoje vamos entender o que é Unicode e sua importância.

Sobre Unicode

The Unicode Blog

Unicode foi criado e segue sendo mantido pelo Unicode Consortium, uma entidade criada por desenvolvedores: http://www.unicode.org/

Em sua definição podemos encontrar a seguinte declaração (em tradução livre):

Unicode fornece um número exclusivo para cada carácter,
Não importa qual plataforma,
Não importa qual aplicação,
Não importa qual linguagem.

Existe também um blog oficial (http://blog.unicode.org/) onde você pode encontrar artigos interessantes sobre padrões e versões da especificação do Unicode, atualmente em sua versão 9.0 (http://www.unicode.org/versions/Unicode9.0.0/).

Definições e Objetivos

Unicode é um padrão para a definição e identificação de caracteres e símbolos em todas as línguas escritas, atribuindo um valor único a cada caractere ou símbolo. O Consórcio Unicode define qual número (ponto de código) representa qual caractere ou símbolo.

Em 1991, obtivemos o Unicode versão 1.0.0, que foi estendido para 1.0.1 e 1.1 de acordo com o padrão ISO-10646. Originalmente, o Unicode 1.1 estava limitado a 64K caracteres e símbolos, o que significava que 2 bytes eram suficientes para codificar todos os caracteres. Infelizmente, o 64K também era insuficiente para suportar todas as línguas escritas no mundo.

Como resultado, o Unicode 2.0, a partir de junho de 1996, estendeu o número de pontos de código para $ 10FFFD caracteres e símbolos (1.114.109 para ser exato). No momento da escrita, o Unicode 9.0 é atual, para o qual o Consórcio Unicode já definiu 128.172 caracteres no padrão.

Formatos de Transformação Unicode

Os dados Unicode (os valores de ponto de código) podem ser apresentados em diferentes formatos, como UTF-8, UTF-16 ou UTF-32. Também podemos opcionalmente comprimir dados Unicode. UTF significa Unicode Transformation Format, e cada UTF define o mapeamento entre um ponto de código para uma série única de bytes que representam esse ponto de código. Assim, onde o próprio Unicode define o caractere ou símbolo que pertence a um ponto de código, o UTF define a representação física (no arquivo no disco ou na memória, por exemplo).

UTF-8
Usando UTF-8, temos entre 1 e 4 bytes para cada caractere Unicode.

UTF-16
Usando UTF-16, obtemos 2 ou 4 bytes para cada caractere Unicode. Esta codificação é mais fácil e mais rápida de processar do que UTF-8.

UTF-32
Usando UTF-32 sempre obtemos exatamente 4 bytes para cada caractere Unicode. Esta é a codificação mais fácil de todas, mas também a que resulta no maior espaço de armazenamento.

API do Windows
Desde Windows NT e 2000, a API do Windows oferece suporte a dois conjuntos de APIs: um para ANSI (A) e um para caracteres Unicode (W), portanto, outra importante razão para você migrar sua aplicação para um compilador mais recente.

Unicode no Delphi/C++ Builder

Feitas as apresentações e formalidades, no próximo artigo iniciaremos por explorar os recursos e técnicas para migração de sua aplicação “Pré-Unicode”, seja tornando-a 100% aderente ao padrão Unicode, ou simplesmente garantindo que ela irá se comportar bem com os novos compiladores e sistemas operacionais, caso você não necessite realmente de suporte a múltiplos idiomas e caracteres estendidos.

Até breve!

Embarcadero Conference 2016 – Brazil

banner_conference

The Embarcadero Conference 2016 Brazil is now very close, so I thought about sharing some facts about the event.

1) That event is the largest Delphi and C++ Builder developers conference in the world, we have around 500 attendees every year, and we are expecting more for the next October 26th.

2) We are growing in content and space if compared with all the previous years: 7 tracks, 48+ speeches, 50+ hours of valuable content, everything in one day!

3) There are attendees from the entire country, of every state of the federation. In case you don’t know too much about Brazil, we are a continental country, so the distance here really matters: https://en.wikipedia.org/wiki/Brazil.

4) We used to have also visitors from neighbor countries, let’s see who will shows up this year…  😉

5) We have nowadays more than 15 Brazilian MVPs in the Embarcadero MVP program, and all of them will talk in the event.

6) Talking about MVPs, Jim McKeeth, the MVP Program Manager will also be here, doing the Opening Keynote!

If you want to know more, you can explore the Conference Portal (in Portuguese), but I’m also providing here an unofficial translation in english, as well some pictures from the 2015 edition!

 

Results from the Embarcadero Academic Program in Brazil

v-deo-satc-cria-aplicativo-para-movimentar-protese-de-mao

Fábio Feltrin da Silveira and João Mota Neto

Embarcadero has a Academic Program. Basically, any formal school can have Embarcadero tools available in their labs, and for all their students, paying a symbolic price per unit. If you want to know more, please contact Embarcadero or a distributor/reseller in your region.

Here in Brazil we are adding more and more universities to the program, and the first results are showing up. I’m here to share one of these cases.

SATC is one of our affiliated. They are teaching Delphi inside their regular programming course, and also using the tool in some researches, like this one reported here:
http://www.engeplus.com.br/noticia/tecnologia/2016/v-deo-satc-cria-aplicativo-para-movimentar-protese-de-mao/

The text above is in brazilian portuguese, but in short, it says:

After six months of study, research with a prosthetic hand developed in Satc creates application able to make an artificial hand to move by an smartphone. The tool enables the registration of several movements that make fingers and forearm to move by means of voice command.

The artificial hand was created in Satc by 3D printing method. The voice command smartphone was developed in Delphi, which allows the application to run on any platform.

Here you have two videos showing the prototype in action:
https://www.youtube.com/watch?v=z2Hb91mCJDc
https://www.youtube.com/watch?v=yOvD4JanJLU

I’d like to congratulate the university and all the team involved in this project (Fábio Feltrin da Silveira and his coordinator, João Mota Neto) by this incredible achievement, and please, keep us informed about the project status!

Finally, If you are a teacher or a student in any part of the world, and want to have Embarcadero tools in your school, please contact us (or any partner in your region) and let’s innovate together!

Delphi Academy Latinoamérica – Nuevos Temas

banner_spanish

Delphi Academy ha sido un gran éxito! Estamos en el episodio número 5, y debido a tal receptividad, ya tenemos más 5 episodios en la agenda, a saber:

* 01/07 – Visualización de Datos con FireMonkey 3D
* 15/07 – Comprender y utilizar layouts FireMonkey
* 29/07 – Uso de efectos, animaciones y transiciones en FireMonkey
* 12/08 – Acceso a datos con FireDAC
* 26/08 – La migración de BDE y DBX a FireDAC

Si quieres puedes encontrar lo que ha pasado, todos los episodios están disponibles en este enlace: http://embt.co/DelphiAcademyLatAmReplay. En esta playlist se encuentran los siguientes temas:

  • Control de una aplicación Windows desde una aplicación móvil con AppTethering
  • LiveBindings: desde lo básico hasta técnicas avanzadas
  • Integración de servicios en la nube con REST/JSON
  • Introducción a NoSQL con MongoDB y FireDAC
  • Uso del Windows Runtime (WinRT) y la Universal Windows Platform (UWP) en Windows 10

En la descripción de cada uno de los videos, hay un enlace para los ejemplos (y también la presentación en PDF). O usted puede todavía encontrar todos los ejemplos directamente aquí: http://cc.embarcadero.com/Author/4821.

Y no termina ahí! Usted está invitado a contribuir con sugerencias sobre los temas que le gustaría ver en Delphi Academy. Deje sus comentarios sobre este artículo y haremos todo lo posible para servirle!

Antes de terminar, una vez más, estás invitado a las próximas presentaciones. Simplemente haga clic aquí http://embt.co/DelphiAcademyLatAm y regístrate, recordando que debe registrarse para cada uno de los temas de interés.

Bluestacks como emulador Android para Delphi y C++

Un tema recurrente en el desarrollo móvil es el rendimiento (o falta de rendimiento) del emulador Android de Google (utilizado de forma predeterminada por Delphi y C++ Builder).

Aquí viene una solución muy interesante (con un rendimiento óptimo): el uso de máquinas virtuales con Android.

Uno de ellos es el BlueStacks (http://www.bluestacks.com). La instalación tiene ningún secreto, básicamente un NNF (Next-Next-Finish).

Si usted está utilizando un PC con Windows, solo tiene que reiniciar el “adb” (puente de depuración, que es parte del SDK de Android), y su Android VM ya está disponible para el IDE de Delphi o C++, debidamente enumerado como un emulador.

Reiniciando el “adb” desde la línea de comandos:

adb.exe kill-server
adb.exe devices

Pero, si está ejecutando su Delphi en una máquina virtual de Windows en un equipo MAC, lo ideal es instalar BlueStacks en el sistema host, es decir, en OS X. En este caso, para que el IDE (dentro de la máquina virtual de Windows) puede “ver” el emulador, se requiere un pequeño truco utilizando Putty (emulador de terminal), que se describe con todo detalle en este post de Jim McKeeth: http://delphi.org/2013/09/debugging-against-a-remote-android-emulator. Es exactamente la misma técnica que se aplicará a el BlueStacks.

Y por último, pero no menos importante:

El BlueStacks es un emulador se mantiene (no “ARM”), pero viene equipado con LibHoudini (capa de emulación ARM para los procesadores móviles de Intel). Este proyecto se mantiene por Intel directamente, para hacer frente a la disponibilidad de aplicaciones para esta plataforma. En otras palabras, este emulador es capaz de ejecutar normalmente aplicaciones ARM (generados por Delphi y C ++).

El único detalle que se debe poner atención, antes de intentar ejecutar la aplicación: Ir a las opciones de despliegue (Project/Deployment), y desactive el “assembly” de verificación automática de plataforma, que se añadió automáticamente en su aplicación durante la creación del proyecto:

<missing image>

Y aquí está el resultado, una aplicación Delphi con IBLite corriendo directamente en BlueStacks:

<missing image>

Recordando que alguna incompatibilidad aún puede surgir (no he probado todas las aplicaciones que tengo), y que no está soportado oficialmente por Embarcadero en este momento, recomiendo a todos los que se están desarrollando para móvil, dedique algo de tiempo para probar, a veces parece más rápido que un dispositivo físico!

¡Hasta la próxima!