Trilha Delphi Jorge Manuel Lage Fernandes Scio Fundador

  • Slides: 27
Download presentation
 Trilha – Delphi Jorge Manuel Lage Fernandes Sócio Fundador Young. Arts Sistemas Globalcode

Trilha – Delphi Jorge Manuel Lage Fernandes Sócio Fundador Young. Arts Sistemas Globalcode – Open 4 education

 Utilizando Múltiplas Tecnologias em Aplicação VCL de Missão Crítica: Video. Live - O

Utilizando Múltiplas Tecnologias em Aplicação VCL de Missão Crítica: Video. Live - O Case Transmissão de Lives para o SBT PR Globalcode – Open 4 education

 Agenda Motivação O Video. Live O Desafio A Estratégia do Paralelismo e o

Agenda Motivação O Video. Live O Desafio A Estratégia do Paralelismo e o Video. Live Aplicações Paralelas Só o Paralelismo Resolve? Acionamento e Integração A maior dificuldade. . . Usando REST / Facebook Monitoramento Resultados Globalcode – Open 4 education

 Motivação “Isso é em Delphi? ” Globalcode – Open 4 education

Motivação “Isso é em Delphi? ” Globalcode – Open 4 education

 O Video. Live Globalcode – Open 4 education

O Video. Live Globalcode – Open 4 education

 O Desafio Globalcode – Open 4 education

O Desafio Globalcode – Open 4 education

 O Desafio Globalcode – Open 4 education

O Desafio Globalcode – Open 4 education

 O Desafio “Sim Delphi e muito mais!” Globalcode – Open 4 education

O Desafio “Sim Delphi e muito mais!” Globalcode – Open 4 education

 A Estratégia do Paralelismo dd Globalcode – Open 4 education

A Estratégia do Paralelismo dd Globalcode – Open 4 education

 Paralelismo no Delphi e VL › Threads: constructor TMinha. Thread. Create(); begin inherited

Paralelismo no Delphi e VL › Threads: constructor TMinha. Thread. Create(); begin inherited Create(True); Free. On. Terminate : = True; // Libera memoria após terminar. { Configura sua prioridade na lista de processos do SO } Priority : = tp. High; Resume; // Inicia o Thread. end; procedure TMinha. Thread. Execute; begin inherited; // Faça o trabalho Do. Processamento; Sleep(10); end; Tasks procedure TFrm. Video. Live. Main. Do. Telemetria. Streaming. Task; var a. Task: ITask; begin a. Task : = TTask. Create (procedure () begin sleep(5000); // espera aí por 5 s Envia. Telemetria(Get. Streaming. Status); end); a. Task. Start; end; Globalcode – Open 4 education

 Paralelismo no Delphi e VL › Tasks – Cuidado!: procedure TVideo. Live. Main.

Paralelismo no Delphi e VL › Tasks – Cuidado!: procedure TVideo. Live. Main. Task. Executa. Agendamentos; var a. Task : ITask; begin a. Task : = TTask. Create (procedure () begin TThread. Synchronize(nil, procedure var o. Agendamento : TAgendamento; begin try repeat if m_o. Agendamentos. Queue. Count=0 then Break; o. Agendamento: =m_o. Agendamentos. Queue. Dequeue; Executa. Agendamento(o. Agendamento. s. Tipo, o. Agendamento. s. Params, o. Agendamento. d. Duracao. Maxima); until(m_o. Agendamentos. Queue. Count>0); except On E: Exception do Adiciona. Log(E); end); a. Task. Start; end; Globalcode – Open 4 education

 Aplicações Paralelas Separar interface e encoder! Datamodule Mensagens Datamodule Globalcode – Open 4

Aplicações Paralelas Separar interface e encoder! Datamodule Mensagens Datamodule Globalcode – Open 4 education

 Aplicações Paralelas procedure Tfrm. VKernel. Send. VWMessage(s. Message : Ansi. String); var i.

Aplicações Paralelas procedure Tfrm. VKernel. Send. VWMessage(s. Message : Ansi. String); var i. Resp, i. Wait : Integer; copy. Data. Struct : TCopy. Data. Struct; begin try copy. Data. Struct. dw. Data : = 0; copy. Data. Struct. cb. Data : = 1 + Length(s. Message) ; copy. Data. Struct. lp. Data : = PAnsi. Char(s. Message) ; i. Resp : = Send. Message. Timeout( m_i. VLHandle, WM_COPYDATA, Integer(Handle), Integer(@copy. Data. Struct), SMTO_NORMAL or SMTO_ABORTIFHUNG, 100, nil); if i. Resp<>0 then m_d. Last. Synchronize: =Now; // Se tem sucesso atualiza a última execução de sincronização if (not(Is. Window(m_i. VLHandle))) then Load. Video. Works. Handle; except end; Datamodule Mensagens Datamodule Globalcode – Open 4 education

 Só Paralelismo Resolve? ? Globalcode – Open 4 education

Só Paralelismo Resolve? ? Globalcode – Open 4 education

 Acionamento / Integração Globalcode – Open 4 education

Acionamento / Integração Globalcode – Open 4 education

 Acionamento / Integração › OCR? Globalcode – Open 4 education

Acionamento / Integração › OCR? Globalcode – Open 4 education

 Acionamento / Integração › TCom. Port / Arduino Globalcode – Open 4 education

Acionamento / Integração › TCom. Port / Arduino Globalcode – Open 4 education

 Acionamento / Integração › Projeto em andamento - Open. CV Globalcode – Open

Acionamento / Integração › Projeto em andamento - Open. CV Globalcode – Open 4 education

 A Maior Dificuldade. . . Globalcode – Open 4 education

A Maior Dificuldade. . . Globalcode – Open 4 education

 A Maior Dificuldade. . . Fluxo Facebook Live Videolive Globalcode – Open 4

A Maior Dificuldade. . . Fluxo Facebook Live Videolive Globalcode – Open 4 education

 Usando REST / Facebook procedure Tdm. APIFace. Book. RESTRequest. After. Execute(Sender: TCustom. RESTRequest);

Usando REST / Facebook procedure Tdm. APIFace. Book. RESTRequest. After. Execute(Sender: TCustom. RESTRequest); var x: ISuper. Object; Obj: ISuper. Object; Json. Array: TSuper. Array; i. Index: integer; begin if Assigned(RESTResponse. JSONValue) then begin try x : = TSuper. Object. Create(TJson. Format(RESTResponse. JSONValue)); // Monta a lista de paginas e seus tokens if m_s. Comando ='TOKEN' then begin m_o. Lista. Paginas. Clear; as. Token. Acesso[0] : = m_s. Face. Book. Access. Token; x : = x. O['accounts']; for i. Index : = 0 to x. A['data']. Length - 1 do begin m_o. Lista. Paginas. Items. Add(x['data[' + i. Index. To. String +']. name']. As. String); as. Token. Acesso[i. Index + 1] : = x['data[' + i. Index. To. String +']. access_token']. As. String; end; except On E : Exception do Adicionar. Log. Error(E); end; Globalcode – Open 4 education

 A Maior Dificuldade. . . Globalcode – Open 4 education

A Maior Dificuldade. . . Globalcode – Open 4 education

 Monitoramento › › Telemetria (REST) / PHP Scanline CPU Autenticação Globalcode – Open

Monitoramento › › Telemetria (REST) / PHP Scanline CPU Autenticação Globalcode – Open 4 education

 Resultados Outros serviços e usos Expertise Otimização de 30% CPU Mais de 1500

Resultados Outros serviços e usos Expertise Otimização de 30% CPU Mais de 1500 Lives realizadas Sucesso de mais de 98% Novos clientes da solução Globalcode – Open 4 education

 Resultados Globalcode – Open 4 education

Resultados Globalcode – Open 4 education

 Muito Obrigado! Jorge Manuel Lage Fernandes Contatos www. linkedin. com/in/jorge-fernandes-6134522/ @jmf_Jorge youngarts. com.

Muito Obrigado! Jorge Manuel Lage Fernandes Contatos www. linkedin. com/in/jorge-fernandes-6134522/ @jmf_Jorge youngarts. com. br jorge@youngrts. com. br Globalcode – Open 4 education