High Performance Object Pascal Code on Servers (at EKON 22)Arnaud Bouchez
This EKON 22 conference is about high performance on servers, written in the object pascal (Delphi / FPC) language. Profiling should be the first step to avoid premature optimization, which is the root of all evil (Knuth). But when some bottlenecks are identified, we introduce some simple architecture patterns (like caching or microservices), data structures and algorithms to make process actually faster, with minimal refactoring. It was a fun session about how to write faster code, ending up by looking at the Delphi CPU view – even if you don’t know assembly.
Trabalho apresentado como pré-requisito para obtenção de nota parcial na disciplina de Distribuição e Logística..
Professor: Prof. MSc Edward Ribeiro Gerth.
Universidade Presbiteriana Mackenzie
20/03/2014
High Performance Object Pascal Code on Servers (at EKON 22)Arnaud Bouchez
This EKON 22 conference is about high performance on servers, written in the object pascal (Delphi / FPC) language. Profiling should be the first step to avoid premature optimization, which is the root of all evil (Knuth). But when some bottlenecks are identified, we introduce some simple architecture patterns (like caching or microservices), data structures and algorithms to make process actually faster, with minimal refactoring. It was a fun session about how to write faster code, ending up by looking at the Delphi CPU view – even if you don’t know assembly.
Trabalho apresentado como pré-requisito para obtenção de nota parcial na disciplina de Distribuição e Logística..
Professor: Prof. MSc Edward Ribeiro Gerth.
Universidade Presbiteriana Mackenzie
20/03/2014
Architecture principles, How to, Patterns,
Comparison with other SOA styles
Pragmatic options to scale Monoliths
Illustrated with the Netflix stack and Gilt, SoundCloud testimonials
To go futher, check 200 - Building Microservices
http://fr.slideshare.net/SteveSfartz/building-microservices-55458071
This EKON 22 conference was not about the code formatting - where we put the “begin” keyword is mostly a matter of taste and convention. But it shows how the object pascal strong typing system, and its language expressiveness may help writing clean(er) code. Abstract SOLID principles could help define the class and services hierarchy. After years of server-side coding, we propose some practical guidelines for cleaner object pascal programming, to reduce technical debt, and allow cross-platform/cross-compiler support.
Sistema Integrado de Gestão Empresarial - ERPmlima72
Planejamento de recursos empresariais (ERP) é um sistema interfuncional que atua como uma estrutura para integrar e automatizar muitos dos processos de negócios que devem ser realizados pelas funções de produção, logística, distribuição, contabilidade, finanças e de recursos humanos de uma empresa. As características dos softwares de ERP incluem:
O software de ERP é parte de uma família de módulos de software que apóia as atividades empresariais envolvidas em processos de back-office vitais.
O ERP é concebido como um ingrediente, essencial à eficiência, agilidade, e responsabilidade para com clientes e fornecedores, que uma empresa de
e-business precisa ter para conseguir êxito no mundo dinâmico do e-commerce.
Drivers de dispositivo são a interface necessária entre o sistema operacional e o hardware do seu computador. Drivers são responsáveis por controlar de forma correta os dispositivos e esconder do próprio sistema operacional os detalhes de baixo nível.
Architecture principles, How to, Patterns,
Comparison with other SOA styles
Pragmatic options to scale Monoliths
Illustrated with the Netflix stack and Gilt, SoundCloud testimonials
To go futher, check 200 - Building Microservices
http://fr.slideshare.net/SteveSfartz/building-microservices-55458071
This EKON 22 conference was not about the code formatting - where we put the “begin” keyword is mostly a matter of taste and convention. But it shows how the object pascal strong typing system, and its language expressiveness may help writing clean(er) code. Abstract SOLID principles could help define the class and services hierarchy. After years of server-side coding, we propose some practical guidelines for cleaner object pascal programming, to reduce technical debt, and allow cross-platform/cross-compiler support.
Sistema Integrado de Gestão Empresarial - ERPmlima72
Planejamento de recursos empresariais (ERP) é um sistema interfuncional que atua como uma estrutura para integrar e automatizar muitos dos processos de negócios que devem ser realizados pelas funções de produção, logística, distribuição, contabilidade, finanças e de recursos humanos de uma empresa. As características dos softwares de ERP incluem:
O software de ERP é parte de uma família de módulos de software que apóia as atividades empresariais envolvidas em processos de back-office vitais.
O ERP é concebido como um ingrediente, essencial à eficiência, agilidade, e responsabilidade para com clientes e fornecedores, que uma empresa de
e-business precisa ter para conseguir êxito no mundo dinâmico do e-commerce.
Drivers de dispositivo são a interface necessária entre o sistema operacional e o hardware do seu computador. Drivers são responsáveis por controlar de forma correta os dispositivos e esconder do próprio sistema operacional os detalhes de baixo nível.
Sendo o sistema operacional com maior presenc¸a entre os smartphones em todo o mundo, desenvolver aplicac¸oes para o Android tem se tor- ˜ nado cada vez mais interessante. Entretanto, para tirar o melhor proveito desta plataforma e importante conhecer como ela funciona internamente. Este ar- ´ tigo aborda os principais componentes que fazem parte do software stack do Android, comec¸ando pelo kernel Linux e a Dalvik VM ate os componentes prin- ´ cipais de uma aplicac¸ao. E mostra as estrat ˜ egias adotadas pela plataforma ´ para lidar com caracter´ısticas inerentes aos dispositivos moveis, como o tempo ´ de bateria e a baixa capacidade de memoria.
Slides da palestra "Projetos Mono e Moonlight: trazendo os desenvolvedores Windows para o mundo Linux" apresentada durante o III ENSOL - Encontro de Software Livre da Paraíba.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
O Desenvolvimento de Aplicações WEB nem sempre é uma tarefa trivial. Esta apresentação demonstra diversos conceitos, tecnologias e metodologias que são utilizadas em diversos projetos.
1. Programação Orientada a Eventos com o ambiente wxWidgets RENZO AUGUSTO L. PETRI renzo_petri@hotmail.com ANTONIO M. G. TOMMASELLI tomaseli@fct.unesp.br MINICURSO XVII SAGEC
17. Diferente de programas tradicionais que seguem um fluxo de controle padronizado, o controle de fluxo de programas orientados a evento são guiados por indicações externas, chamadas eventos;
26. Programas orientados a evento geralmente consistem em vários pequenos tratadores (handler), programas que processam os eventos para produzir respostas, e um disparador (dispatcher), que invoca os pequenos tratadores. Uma alternativa consiste em disparar os tratadores por eles próprios, criando um efeito de evento em cascata.
32. Possui vínculos com linguagens populares como C/C++, Python , Perl , Ruby e muitas outras;
33. Ao contrário de outros kits de ferramentas multi-plataforma, wxWidgets dá poder as suas aplicações, pois é NATIVO;
34. Ele usa a API nativa da plataforma ao invés de emular a GUI;
35.
36. A licença do wxWidgets é LGPL(GNU Lesser General PublicLicense );
37. Suporte à interfaces gráficas com o usuário, conexão a bancos de dados(ODBC) e Redes(conectividade por sockets);
38. Resumindo, WxWidgets é um toolkit, ou framework, para o desenvolvimento de aplicações multiplataforma. Permite a criação de aplicações com interfaces gráficas, em diversos sistemas operacionais (GTK+/Xlib/Motif, MSW, MAC OS X/Carbon/Cocoa, OS/2/PM, Palm OS/Protein) ;
52. Em maio de 1998 a API do Windows + as portas do GTK foram fundidas e colocadas em um repositório CVS disponibilizado a todos os contribuintes para wxWidgets.
53.
54.
55. O número de programadores que contribuem para o projeto está agora nas dezenas e o toolkit tem uma forte base de usuários, que inclui todos os desenvolvedores de código aberto para empresas como a AOL;
56. Como a indústria repensa sua dependência da Microsoft e de código-fonte fechado produtos caros, o uso de desktop do Linux continua a crescer, e com ela a necessidade de wxWidgets;
85. A licença é essencialmente o L-GPL (General PublicLicenceLibrary), com uma exceção dizendo que trabalhos derivados em forma binária pode ser distribuído em termos do próprio usuário;
86. Esta é uma solução que satisfaz aqueles que desejam produzir software GPL usando wxWidgets, e também aqueles que produzem software proprietário;
87. No entanto, não existem restrições significativas em aplicações proprietárias;
88.
89. É impossível saber quantos desenvolvedores de wxWidgets, existem muitos, mas há uma comunidade muito ativa com mais de 1.800 assinantes do boletim;
90. wxWidgets foi utilizada para ajudar empresas criar chips de ponta, para ajudar a prospecção de petróleo, o controle de aeronaves sem piloto, e para testar os componentes de telescópios espaciais;
91. Algumas das mais conhecidas organizações que têm utilizado wxWidgetsincluiem:
92.
93.
94. wxWidgets é fácil de usar, dá-lhe um único procedimento de API para escrever aplicações GUI em múltiplas plataformas, que ainda utilizam a plataforma nativa, controles e utilitários;
95.
96. Enquanto um número de bibliotecas de classe comercial já existia para o desenvolvimento de plataforma cruzada, nenhum atendeu a todos os seguintes critérios:
140. Claro que cada caso tem particularidades, e o que segue abaixo, é apenas uma sugestão para um caso geral;
141. Note que, existem dois métodos de criar a aplicação: o modo manual e o por IDE’s:
142. O modo manual é bastante complexo, necessita-se conhecer como funciona a criação de janelas e ligação de eventos para compreender bem como construir a aplicação: INVIÁVEL ATUALMENTE;
203. FreeImage é fácil de usar, rápido, seguro multithreading, compatível com todas as versões de 32 bits do Windows, e multi-plataforma (funciona tanto com Linux e Mac OS X);
204. Graças à sua interface ANSI C, FreeImage é utilizável em várias línguas, incluindo C, C ++, VB, C#, Delphi, Java e também em comum linguagens de script como Perl, Python, PHP, Ruby ou TCL;
217. Fornece base rotinas de manipulação de imagem , tais como rotação, redimensionamento, lançando ou ajustes de cor, bem como JPEG transformações sem perdas;