thegoodfellas/blogset-br huggingface dataset:
begin k := 0; bmp.Canvas.FillRect(rect(0,0, charW, charH)); bmp.Canvas.TextOut(0,0, WideChar(i)); for y := 0 to bmp.Height-1 do begin p := PRGBQuad(bmp.ScanLine[y]); for x := 0 to bmp.Width-1 do begin if ((p^.rgbRed + p^.rgbGreen + p^.rgbBlue) div 3) = 255 then k := k + 1; Inc(p); end; end; fIntensityByAnsiChar[i] := trunc(( k / pixelCount ) * 255); fAnsiCharByIntensity[fIntensityByAnsiChar[i]] := AnsiChar(i); end; for i:=1 to High(fAnsiCharByIntensity) do if (fAnsiCharByIntensity[i] = AnsiChar(' ')) and (i <> 32) then fAnsiCharByIntensity[i] := fAnsiCharByIntensity[i-1]; FreeAndNil(bmp);end;Nossos shades estao prontos!Temos agora um array que contem a intensidade de cor para todos os nossos caracteres (fIntensityByAnsiChar) e um outro que contem o caractere equivalente a uma determinada intensidade (fAnsiCharByIntensity).So nos falta agora gerar a nossa imagem e conferir o resultado.Gerando nosso ASCII Com nossa tabela de shades devidamente calculada, gerar o ASCII a partir de uma imagem e simplesmente uma questao de varrer os pixels da imagem de origem e pesquisar o caractere equivalente:procedure TForm1.CreateASCIIImage;var x, y : integer; pColor : PRGBQuad;begin memOut.Font.Name := cbxFont.Text; memOut.Font.Size := 8; SetLength(fASCIIImage, fGrayAlphaImage.Width, fGrayAlphaImage.Height); for x:=0 to fGrayAlphaImage.Width-1 do for y := 0 to fGrayAlphaImage.Height-1 do fASCIIImage[x,y]:= AnsiChar(32); for y := 0 to fGrayAlphaImage.Height - 1 do begin pColor := fGrayAlphaImage.ScanLine[y]; for x := 0 to fGrayAlphaImage.Width - 1 do begin if pColor^.rgbReserved <> 0 then if ckbInvert.Checked then fASCIIImage[x,y]:= fAnsiCharByIntensity[255-pColor^.rgbReserved] else fASCIIImage[x,y]:= fAnsiCharByIntensity[pColor^.rgbReserved]; Inc(pColor); end; end;end;Bingo! Convertemos a imagem.Para visualiza-la, vamos utilizar um TMemo:procedure TForm1.ShowASCIIImage;var s : AnsiString; x, y : integer;begin memOut.Lines.BeginUpdate; memOut.Clear; for y := 0 to fGrayAlphaImage.Height - 1 do begin s := ''; for x :=0 to fGrayAlphaImage.Width-1 do s := s + AnsiChar(fASCIIImage[x,y]); memOut.Lines.Add(s); end; memOut.Lines.EndUpdate;end;ConsideracoesO algoritmo que implementamos neste artigo e muito simples e muito rapido, mas tem suas limitacoes.A mais importante delas e o fato de que ele nao leva em consideracao o aspecto (relacao entre altura e largura) do pixel nem da fonte utilizada e como consequencia a imagem final pode apresentar distorcoes em suas dimensoes.Downloads Codigo FonteExecutavel
Game rodando em debug no LazarusBem vindo a quarta parte do nosso mini-curso Criando um Game Completo, onde criamos uma versao do classico Space Invaders compativel com Windows e Linux, utilizando aceleracao de hardware para graficos 2D, suporte a joystics e uma tabela de scores online!No ultimo artigo, o projeto comecou a tomar uma cara de game. Criamos o codigo que distribui os inimigos na tela, incluimos o tratamento de colisoes entre os tiros do jogador e os alienigenas e demos os primeiros passos na construcao da interface do usuario.Vamos seguir nossa jornada adicionando algumas animacoes extras, fazendo os inimigos se movimentar e atirar, ampliar a logica de colisoes para detectar os danos sofridos pelo jogador e adicionar varios efeitos sonoros.No final, como bonus, vamos adicionar a capacidade de alternar entre os modos de tela cheia e exibicao em janela. Acompanhe o codigo no GitHub ou faca o download nos links no final do texto e, mais uma vez, maos a obra!Movimentacao dos InimigosCiclo de movimentacao dos inimigosVamos comecar implementando a movimentacao dos inimigos pela tela. Assim como no Space Invaders original, os alienigenas irao se mover, ordenadamente, em um padrao pre-definido.Do ponto de partida, cada um ira se deslocar 3 colunas para a direita e em seguida descera o equivalente a meia linha. Deste ponto o movimento e espelhado ou seja, o inimigo segue mais 3 colunas para a esquerda e, em seguida, mais meia linha para baixo, fechando um clico completo de movimentacao. Ao final de um ciclo, cada inimigo estara exatamente 1 linha abaixo da posicao em que estava originalmente. A figura ao lado mostra o caminho percorrido por um inimigo durante um ciclo de movimentacao.Este tipo de ciclo pode ser modelado com facilidade como uma maquina de estados finita.Uma maquina de estados e um modelo usado para representar programas de computador como uma maquina abstrata que possui um numero de estados finitos e bem definidos e so pode estar em um destes estados por vez. No caso da movimentacao dos inimigos, podemos dizer que ha quatro estados possiveis, veja: Estado Descricao A parado B movendo-se para a direita C movendo-se para baixo D movendo-se para a esquerdaComo definimos que o movimento horizontal, seja ele para esquerda ou direita e de exatamente 3 colunas e que o movimento descendente e de meia linha, tomando nosso grid de debug como base, chegamos as seguintes definicoes: Identificador Valor Descricao OFFSET_X 3 * DEBUG_CELL_SIZE deslocamento horizontal em pixels OFFSET_Y DEBUG_CELL_SIZE div 2 deslocamento vertical em pixelsPara ir de um estado a outro, um fato ou um evento deve ocorrer. No nosso caso, cada vez que o deslocamento total em um sentido atingir o limite imposto, a maquina responde mudando de estado. As trocas de estados nesta pequena maquina que estamos criando obedecem as seguintes regras:.grayed{color: #ccc;font-weight:light;font-size: smaller;} # Estado atual Evento Novo estado 1 A jogo iniciado. B 2 B (deltaX >= OFFSET_X) C 3 C (deltaY >= OFFSET_Y) and (old_state = B) D 4 C (deltaY >= OFFSET_Y) and (old_state = D) B 5 D (deltaY >= OFFSET_Y) C legenda: detltaX
onde os limites de movimentacao, os retangulos de colisao e a grade na qual a posicao de todos os objetos do jogo sao baseados.Abracos, bons estudos e ate a proxima.LinksCodigo fonte - GitHubCodigo fonte - download diretoExecutavel - win32
constante LOGO_FADEOUTQuando a ultima imagem desaparece, a cena termina.ConsideracoesEste post foi um pouco diferente dos anteriores. Expusemos menos codigo aqui e nos concentramos mais nos aspectos de alto nivel do motor. Houve uma boa refatoracao no codigo entre as versoes da parte 4 e da parte 5 e a maior parte da logica de baixo nivel com que vinhamos lidando foi escondida nas classes criadas a partir do diagrama exibido no inicio do texto.Esta mudanca foi proposital pois, se voce acompanhou os outros textos e chegou ate aqui, provavelmente as explicacoes linha a linha comecam a ficar massantes e repetitivas.Os efeitos de fadeIn e fadeOut podem parecer um pouco confusos se voce nao estiver familiarizado com o conceito de interpolacao linear. Revisao o artigo anterior, na parte da animacao de morte dos inimigos pode ajudar. Aqui ha uma video aula explicando a matematica da interpolacao que utilizamos.No proximo artigo, vamos aprimorar um pouco nosso motor e adicionar suporte a um sistema de particulas que nos permitira adicionar efeitos visuais bem interessantes.Espero que estejam gostando.Abraco, bons estudos e ate a proxima.LinksCodigo fonte - GitHubCodigo fonte - Download diretoExecutavel - Win32
abaixo para mantermos os arquivos de nosso projeto organizados. Diretorio Descricao PROJDIR Diretorio raiz do projeto.Pode ser qualquer diretorio que voce achar conveniente.O arquivo space_invaders.lpi deve ser posto aqui. PROJDIR\bin Contera todos os binarios necessarios para que o projeto execute.A biblioteca SDL2.dll devera ser copiada para ca PROJDIR\headers Ira conter os headers (ou bindings) das bibliotecas que utilizaremos PROJDIR\headers\sdl2 Todos os arquivos dos headers do SDL2 deverao ser copiados para ca PROJDIR\lib Aquivos .o e .ppu gerados pelo compilador PROJDIR\units Todas as units escritas por nos, serao salvas aqui. Opcoes do CompiladorUma vez criados os diretorios, precisamos instruir o compilador a utiliza-los.De volta ao Lazarus, abra o dialogo de opcoes do projeto (Projeto > Opcoes de Projeto) selecione o no Opcoes do Compilador na arvore lateral e configure-a de acordo com a imagem ao lado.Informamos no primeiro campo (Other unit files) que ele devera incluir os arquivos de headers do SDL 2 que copiamos para PROJDIR\headers\sdl2 no passo anterior. Informamos tambem que queremos que o nosso executavel seja gerado na pasta bin (Nome do arquivo alvo).Para finalizar as configuracoes, vamos nos certificar de que iremos gerar (inicialmente, pelo menos) um programa de 32 bits no modo grafico para windows.A imagem ao lado mostra como deverao estar suas opcoes no no Configuracao e Alvo.Pronto! Nosso ambiente esta configurado.Compile o programa vazio e veja se tudo saiu como esperado. Se for preciso, volte nos passos anteriores e confira e esqueceu de algo.Testando o AmbeintePara conferir se esta tudo ok, compile o programa abaixo.program space_invaders;uses SDL2;begin if SDL_Init(SDL_INIT_VIDEO) = 0 then begin SDL_Delay(2000); SDL_Quit; end;end.Iniciamos o subsistema de video do SDL atraves da funcao SDL_Init e, caso nao haja erros, esperamos por 2 segundos, finalizamos o SDL e fechamos o programa.Pronto! Temos tudo preparado para comecar nossa jornada.Ate a proxima.LinksCodigo fonteBinario
que prejudicaram a carreira: 27% dos casos foram protagonizados pelo chefe imediato. Outros 27% informaram que as acoes foram perpetradas por alguem com cargo mais alto na hierarquia. Para 34%, a transgressao foi promovida por individuo do mesmo nivel hierarquico. E apenas 11% relataram ter sofrido algum tipo de acao prejudicial por profissionais com cargo inferior.Esses dados mostram que os gestores estao, em algumas ocasioes, sabotando o trabalho de integrantes de sua propria equipe ou de subordinados para levarem algum tipo de vantagem em sua carreira ou na companhia onde trabalham, analisa Rafael Urbano, especialista em Inteligencia de Negocios na VAGAS.com. E um indicador surpreendente e ao mesmo tempo muito preocupante, pois demonstra que a maior parte dos lideres nao esta administrando sua equipe como deveria.Foram considerados no levantamento nove tipos de acoes configuradas como puxada de tapete no ambiente de trabalho. Ter confiado muito em uma pessoa que depois viria a prejudicar sua imagem foi a campea, com 32% das respostas, seguida por roubo de credito para ideia ou iniciativa, com 23%. Os respondentes puderam apontar mais de uma situacao de que foram vitimas. Veja abaixo as demais situacoes e resultados:- excluiram voce de algum projeto para nao te dar visibilidade - 17%- foi acusado por algo que nunca participou - 13%- outra situacao favorecendo colegas sem o devido merito, independente da capacidade profissional - 13%- passaram por cima da sua autoridade. Tomaram uma atitude que deveria ter sido feita por voce - 12%.- levaram voce a erro para se aproveitar de alguma situacao - 11%- deu muita atencao a radio peao e acabou tomando uma atitude precipitada que prejudicou sua carreira - 6%.- nao sofreu nenhuma destas acoes ou situacoes - 38%Vitimas sao demitidas ou perdem promocoes - O levantamento procurou entender dos entrevistados o que aconteceu com eles apos passarem por algumas das acoes listadas anteriormente. Entre as multiplas escolhas, somaram 19% os que foram demitidos. Para 26%, nada mudou, enquanto que outros 26% informaram nao ter recebido o reconhecimento ou promocao que mereciam. Em 14% dos casos, foram chamados a atencao e 13% sofreram algum tipo de represalia. Do total, 12% pediram demissao; 6% acionaram um canal institucional, mas nao obtiveram resposta; e apenas 3% procuraram esse mesmo canal e conseguiram um posicionamento da empresa.A pesquisa foi realizada de 17 a 22 de julho por meio eletronico com candidatos cadastrados no portal. A amostra foi constituida igualmente (50%) por individuos dos sexos masculino e feminino.
motivacao dos colaboradores, excesso de burocracia, abusos de poder, metas distorcidas, ausencia de governanca, insatisfacao dos clientes.Porem em algumas empresas existem homens e mulheres que dirigem seus negocios, conduzindo a organizacao para o crescimento e a lucratividade, exemplos: Steve Jobs, Bill Gates, Herminio de Moraes, Olavo Setubal, entre tantos outros.Ao determinar as caracteristicas encontradas nesses lideres (Kouzes e Posner, 2001), fizeram uma pergunta a pessoas com formacoes distintas "Que valores, tracos de personalidade ou caracteristicas voce procura ou admira em um lider?". As respostas cruzadas chegavam a quatro principais atributos: honestidade, vanguarda, inspiracao e competencia.Por Patrick Euso Alves Borba
que levaram certas coisas, que eram tao importantes e solidas em sua vida, serem subitamente transformadas em po. Mas tal atitude sera um desgaste imenso para todos: seus pais, seu marido ou sua esposa, seus amigos, seus filhos, sua irma, todos estarao encerrando capitulos, virando a folha, seguindo adiante, e todos sofrerao ao ver que voce esta parado. Ninguem pode estar ao mesmo tempo no presente e no passado, nem mesmo quando tentamos entender as coisas que acontecem conosco. O que passou nao voltara: nao podemos ser eternamente meninos, adolescentes tardios, filhos que se sentem culpados ou rancorosos com os pais, amantes que revivem noite e dia uma ligacao com quem ja foi embora e nao tem a menor intencao de voltar.As coisas passam, e o melhor que fazemos e deixar que elas realmente possam ir embora. Por isso e tao importante (por mais doloroso que seja!) destruir recordacoes, mudar de casa, dar muitas coisas para orfanatos, vender ou doar os livros que tem. Tudo neste mundo visivel e uma manifestacao do mundo invisivel, do que esta acontecendo em nosso coracao - e o desfazer-se de certas lembrancas significa tambem abrir espaco para que outras tomem o seu lugar. Deixar ir embora. Soltar. Desprender-se.Ninguem esta jogando nesta vida com cartas marcadas, portanto as vezes ganhamos, e as vezes perdemos. Nao espere que devolvam algo, nao espere que reconhecam seu esforco, que descubram seu genio, que entendam seu amor. Pare de ligar sua televisao emocional e assistir sempre ao mesmo programa, que mostra como voce sofreu com determinada perda: isso o estara apenas envenenando, e nada mais.Nao ha nada mais perigoso que rompimentos amorosos que nao sao aceitos, promessas de emprego que nao tem data marcada para comecar, decisoes que sempre sao adiadas em nome do momento ideal. Antes de comecar um capitulo novo, e preciso terminar o antigo: diga a si mesmo que o que passou, jamais voltara. Lembre-se de que houve uma epoca em que podia viver sem aquilo, sem aquela pessoa - nada e insubstituivel, um habito nao e uma necessidade. Pode parecer obvio, pode mesmo ser dificil, mas e muito importante. Encerrando ciclos. Nao por causa do orgulho, por incapacidade, ou por soberba, mas porque simplesmente aquilo ja nao se encaixa mais na sua vida. Feche a porta, mude o disco, limpe a casa, sacuda a poeira. Deixe de ser quem era, e se transforme em quem e.
Jobs, ex-CEO do Apple. era um mestre na arte da comunicacao.De alguns anos para ca, especialmente apos a sua morte, a internet se viu repleta de frases de efeito de sua autoria, sempre com carater motivacional. Vejamos algumas:* Nao ha motivo para nao se seguir o coracao... Nunca deixe de ter fome. Nunca deixe de ser insensato.*Seu tempo e limitado, entao nao o desperdice vivendo a vida de outra pessoa. Nao se deixe aprisionar pelo dogma que e viver segundo os resultados dos pensamentos de outras pessoas. Nao deixe o barulho da opiniao dos outros sufocar sua propria voz interior.* A morte e provavelmente a melhor invencao da vida. E o agente de mudanca da vida. Tira o velho do caminho para dar lugar para o novo.* Voce nao pode ligar os pontos olhando para a frente; voce so pode fazer isso olhando para tras. Entao voce tem que confiar que os pontos irao se conectar de alguma forma no futuro. Voce tem que confiar em algo seu instinto, destino, vida, karma, seja o que for. Esse modo de encarar as coisas nunca me deixou na mao e fez toda a diferenca na minha vida.* Lembrar que voce vai morrer e a melhor maneira que eu conheco de evitar a armadilha de achar que voce tem algo a perder.* Estamos sempre pensando em novos mercados para entrar, mas e so dizendo nao que voce pode concentrar nas coisas que sao realmente importantes.* Na maioria dos vocabularios das pessoas, design significa superficie. E decoracao de interiores. E o tecido da cortina e do sofa. Mas, para mim, nada pode estar mais distante do signficado de design. Design e a alma fundamental de uma criacao humana que acaba se expressando em sucessivas camadas externas do produto ou do servico.* Nada me deixa mais feliz do que receber um email de uma pessoa qualquer no universo que acabou de comprar um iPad no Reino Unido e que me conta como e o produto mais bacana que ela ja trouxe pra casa em toda sua vida. Isso e o que me motiva.* Simples pode ser mais dificil que complexo. Voce tem que trabalhar muito para chegar a um pensamento claro e fazer o simples.* Picasso dizia que bons artistas copiam e grande artistas roubam. E eu nunca tive vergonha de roubar grandes ideias... Acho que parte do que fez a Macintosh grande foi que as pessoas trabalhando aqui eram musicos e poetas e artistas e zoologos e historiadores que por acaso eram tambem os melhores cientistas da computacao do mundo.Fonte: http://www.revistapazes.com/dez-frases-de-stive-jobs/ Quando me amei de verdade, compreendi que em qualquer circunstancia, eu estava no lugar certo, na hora certa, no momento exato.E entao, pude relaxar.Hoje sei que isso tem nome... Auto-estima. Quando me amei de verdade, pude perceber que minha angustia, meu sofrimento emocional, nao passa de um sinal de que estou indo contra minhas verdades.Hoje sei que isso e... Autenticidade. Quando me amei de verdade, parei de desejar que a minha vida fosse diferente e comecei a ver que tudo o que acontece contribui para
o meu crescimento.Hoje chamo isso de... Amadurecimento.Quando me amei de verdade, comecei a perceber como e ofensivo tentar forcar alguma situacao ou alguem apenas para realizar aquilo que desejo, mesmo sabendo que nao e o momento ou a pessoa nao esta preparada, inclusive eu mesmo.Hoje sei que o nome disso e... Respeito.Quando me amei de verdade comecei a me livrar de tudo que nao fosse saudavel... Pessoas, tarefas, tudo e qualquer coisa que me pusesse para baixo. De inicio minha razao chamou essa atitude de egoismo.Hoje sei que se chama... Amor-proprio.Quando me amei de verdade, deixei de temer o meu tempo livre e desisti de fazer grandes planos, abandonei os projetos megalomanos de futuro.Hoje faco o que acho certo, o que gosto, quando quero e no meu proprio ritmo.Hoje sei que isso e... Simplicidade.Quando me amei de verdade, desisti de querer sempre ter razao e, com isso, errei muitas menos vezes.Hoje descobri a... Humildade.Quando me amei de verdade, desisti de ficar revivendo o passado e de preocupar com o futuro. Agora, me mantenho no presente, que e onde a vida acontece.Hoje vivo um dia de cada vez. Isso e... Plenitude.Quando me amei de verdade, percebi que minha mente pode me atormentar e me decepcionar. Mas quando a coloco a servico do meu coracao, ela se torna uma grande e valiosa aliada.Tudo isso e... Saber viver!!!
A busca incessante por liderancas que facam a diferenca para o negocio, so tende a aumentar. Mesmo as empresas que ja contam com lideres capacitados, que levem suas equipes a terem um otimo desempenho, continuarao na constante captacao de novos talentos e investirao na formacao dos lideres do futuro. Apesar dessa visivel preocupacao focada nas liderancas, ha ainda quem detenha o "titulo" de lider, mas que na verdade, no dia a dia, nao consegue nem dar um norte as proprias atividades quanto mais a uma equipe formada por pessoas com experiencias e competencias comportamentais completamente diferenciadas. Infelizmente, ainda, ha pessoas que conseguem "driblar" a real visao de que pertencem ao grupo dos que apenas delegam ordens, mas que nunca conseguirao segurar o "leme" dos profissionais que estao sob suas responsabilidades. Abaixo, seguem algumas caracteristicas dos falsos lideres.1 - "Eu sei de tudo. Dou conta do meu departamento e nao preciso de modismos". Um verdadeiro lider sabe que seu desenvolvimento precisa ser constante. E mais: o aprendizado nao ocorre somente de maneira formal, atraves de treinamentos. O gestor precisa ser autodidata e reconhecer que sempre e possivel aprender com aqueles que formam seu time.2 - Se a empresa institui um Programa de Desenvolvimento de Liderancas, o "pseudogestor" entra em panico e e o primeiro a levantar a "bandeira da resistencia". Tenta convencer os demais gestores de que essa acao, desenvolvida pelo "tal RH", e apenas para mostrar servico e finca os "pes" na zona de conforto.3 - Caso a area de Recursos Humanos procure o "falso lider" para dar respaldo as suas atividades ou, entao, firmar parcerias que visem o bem-estar da equipe, torna-se visivel a repulsa. Para ele, o RH nada tem a fazer em seu departamento e deve preocupar-se apenas com assuntos burocraticos. A "moda" de RH Estrategico e passageira e sua equipe nao necessita de intrusos para atrapalhar.4 - Quando uma atividade mais complexa precisa ser desenvolvida, o falso lider convocar um ou dois membros da sua equipe para realizar o trabalho. Determina prazos, mas nao acompanha o processo. Ao final, cobra o conteudo produzido, dirige-se a diretoria para cumprir das determinacoes e, em momento algum, cita que contou com a "ajuda" de terceiros. Os "louros" recaem sobre sua cabeca, o que garante a sua permanencia no cargo de "lideranca".5 - Outra caracteristica de quem se autointitula de lider, mas que na pratica passam bem longe, e acreditar que todos que estao ao seu redor cobicam sua colocacao na empresa. Quando identifica alguem que pode destacar-se e chamar a atencao dos dirigentes, imediatamente providencia o desligamento do profissional porque se sente ameacado.6 - Para o falso lider, a comunicacao interna e pura perda de tempo. E indaga: "Por que parar para conversar com a equipe, se as pessoas terao que parar suas atividades por uma hora ou ate menos? Todos tem que continuar a todo o vapor em suas atribuicoes, afinal sao pagos para trabalhar e nao para conversar, mesmo que os assuntos estejam relacionados a superacao de metas.7 - E por falar em metas, quando o "falso lider" percebe
que seu setor ficara abaixo das expectativas da empresa, utiliza um estimulo motivacional, no minimo, bizarro. Apela para gritos, ameacas de demissao e chega a cometer acoes consideradas como assedio moral.8 - A politica de Portas Abertas para o "falso lider" so deve ser colocada em pratica se a outra pessoa detem o titulo de lideranca, e seu superior ou alguem que comparece a empresa para tratar de assuntos do seu proprio interesse.9 - Se uma equipe e o reflexo do seu gestor, aqueles que estao sob o julgo da "falsa lideranca" apresentam sinais preocupantes para qualquer empresa como, por exemplo, desmotivacao, situacoes de conflitos constantes entre os pares, presenteismo, absenteismo e baixo desempenho.10 - Um pessimo habito de um "falso lider" tambem se apresenta quando o processo de avaliacao de desempenho chega as suas maos, para que ele cumpra o papel de analisar a performance dos liderados. Ao inves de considerar os pontos fortes e aqueles que precisam ser trabalhados em cada pessoa que compoe o time, faz elogios apenas com quem esporadicamente simpatiza e deteriora a imagem dos demais colaboradores, mesmo que tenham uma atuacao digna de elogios.Por Patricia Bispo