sexta-feira, 3 de janeiro de 2020

Java Error (Data too long) - JPA mapping




 WARN  o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 1406, SQLState: 22001
 ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Data truncation: Data too long for column 'document' at row 1


In general when we need to map a data be it a JPG, PDF etc. we use "byte [] document". Although it is quite common to find a problem where the data is very large. Soon JPA mapping problems emerge.

TINYBLOB: maximum length of 255 bytes
BLOB: maximum length of 65,535 bytes
MEDIUMBLOB: maximum length of 16,777,215 bytes
LONGBLOB: maximum length of 4,294,967,295 bytes


One solution is to use the @lob annotation from hibernate.


@Lob
@Column(name="document",columnDefinition="BLOB")
private byte[] document;

quarta-feira, 4 de setembro de 2019

Spring Boot + Docker + Postgree + RabbitMQ



Some time ago I was looking for a solution for a Java integration. Where the requirements were: Java - Microservices + Docker + PostgreSQL + RabbitMQ. I found few articles on the internet that could help me due to various settings so I decided to create mine.

RabbitMQ configuration should configure the topic and queue name, where messages will be sent and received.


For the persistence configuration in PostgreSQL you must use a simple class with the necessaryproperties for each project. change it as necessary.


Receiver setup is very simple.

Initializing an employee.


In Runner class was instantiated the receiver and to RabbitTemplate, so that it could check the employee inserted in Postgre and send it to the topic.

 The settings for PostgreSQL and RabbitMQ in the application.properties file.

Be sure to follow these lines in the database.

Settings in Docker are important as they respect the start sequence of containers to ports. A network called webnet was also created, if you have other containers and have connection problems refused.


Dockerfile in this case uses JDK 11, but can be replaced with your preferred distribution.

Commands:

mvn clean package
docker-compose build
docker-compose up

The whole code can be found on github.




terça-feira, 24 de janeiro de 2017

Resposta ao curso de Design Patterns (Caelum)



Eu acho que existe um elo entre o tempo e o bom código. Geralmente eles são inversamente proporcionais. Geralmente os projetos começam atrasados e com problemas, como descreve o artigo "How Large Are Software Cost Overruns?
A Review of the 1994 CHAOS Report" de Magne Jørgensen e Kjetil Moløkken onde é dito: 52,7% dos projetos superarão suas estimativas de custos iniciais em 189% . De certa forma pesquisadores tem notado o crescimento da complexidade dos problemas, assim aumentado o custo dos projetos.
Em projetos bem estimados, onde é possível ter as métricas de desenvolvimento da equipe sim é possível utilizar os conceitos OO. Pois é possível mesclar entre os níveis dos desenvolvedores assim aumentando o entendimento da equipe. Mas de outra forma resultaria em um problema ainda maior aplicar estas técnicas. Pois para o cliente é pouco notável os erros de desenvolvimento pois hoje temos servidores de aplicações com quantidades inesgotáveis de memória.
De uma forma geral gosto muito de pensar em um código limpo, bonito "cheiroso - Code smell"   (Martin Folwer). Acho que aumenta legibilidade do código e facilita a manutenção.

Abcs
Rafael Murata

http://www.umsl.edu/~sauterv/7892/Standish/standish-IST.pdf
https://en.wikipedia.org/wiki/Code_smell

terça-feira, 30 de julho de 2013

Aprender MongoDB para Java Developers



Começa esta semana um curso online grátis para quem deseja aprender MongoDB para programadores JAVA.

Este curso irá passar por cima de uma instalação básica, JSON, projeto de esquema, consulta, inserção de dados, indexação e trabalhar com drivers de linguagem. No curso, você vai construir uma plataforma de blogging, apoiado pelo MongoDB.

https://education.10gen.com/courses/10gen/M101J/2013_July/about

segunda-feira, 14 de janeiro de 2013

Como estudar c no mac


C é uma linguagem muito utilizada por sua facilidade de compreensão. Foi criada por Dennis Ritchie no AT&T Bell Labs, para o sistema operacional UNIX.
Para estudar C no Mac a opção mais simples é utilizar X-Code. Pois eu já perdi muito tempo baixando programas para estudar C e percebi que não valiam a pena. Então use X-Code.


 Escolha a primeira opção.


 Escolha Command Line.





 Selecione o arquivo main.c.





 Então no All output aparece o resultado correto.



 Uma opção legal é selecione Products e abra com o Finder o arquivo.



 Então o resultado é mostrado no terminal.


 Esta é a forma mais facil de se estudar C no Mac !!!



terça-feira, 8 de janeiro de 2013

Como estudar JQuery


Como estudar JQuery

Jquery é uma biblioteca JavaScript, criada para ampliar as facilidades do desenvolvedor web. Devido a sua sintaxe ser simples, ela utiliza os mesmos métodos da API do JavaScript. Entre as bibliotecas do JavaScript as mais populares são o Prototype, MooTools, Dojo, YUI. Elas podem oferecer ao desenvolvedor manipular efeitos como Ajax, eventos, animações e widgets.

O mais importante ao aprender Jquery e a manipulação do DOM (Modelo de objetos de documentos). Assim cada modelo de objetos de documentos é o próprio codigo HTML estruturado em forma de Arvore.





A minha sugestão pra começar a estudar é o aplicativo MAMP (MAC) ou o Wampserver (Windows). Pois em todos os casos vai precisar de um container (Apache tomcat ou Jboss) para rodar os scripts.


Agora Baixe e instale o MAMP.






Agora que o servidor já está rodando, entre na pasta do mamp e crie um arquivo chamado index.html nele coloque o seguinte conteúdo.







<!doctype html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>

var numShow=10;
var numTickets=100;

$(document).ready(function() {

for (i=0;i<numTickets;i++) {
var numTotal=i+1;
$('.container').append("<p> tem"+ numTotal+"tickets</p>");
}
});
</script>
<body>
<div class="container"></div>

</body>
</html>

o resultado será será algo como este:



Sobre o DOM é importante entender que ele é responsável pela construção da árvore dos componentes HTML. Pois ele é desenvolvido sob os padrões de especificação HTML:



<!doctype html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(document).ready(function() {

$('.product-img img').hover(

function(){
var toolTip = $(this).attr("tittle");
$('.info').after('<p class="toolTip"> '+toolTip+' </p>');
},
function(){
$('p.toolTip').hide();
}
);
});
</script>
<body>
<h1>Hello Jquery</h1>
<div class="cart">
<h2>shooping Cart</h2>
</div>

<div class="product">
<h3>Apple Iphone4</h3>
<div class="product-img"> <img src="imagens/cd1.jpg" title="Steve Jobs com o iphone" alt="Steve Jobs"></div>
<p class="info"> vendido por eu nao sei quem</p>
<p class="price">299.99</p>
</div>
<div class="add-to-cart">Clique aqui e compre </div>

</body>
</html>




I ae continua a diversão !!!

Pesquise mais na comunidade http://meetup.jquery.com/ lá você encontra os entusiastas Jquery.

Conceito de I.A – Inteligência artificial



Conceito de I.A – Inteligência artificial 

Uma definição de I.A “Inteligência articial é o estudo de sistemas programados que são capazes de simular, até certo ponto, atividades humanas, tais como percepção, pensamento, aprendizado e atuação” . Podemos dizer que se iniciou a 2.400 anos quando o grego Aristoteles inventou o raciocínio lógico. Mas quem desenvolveu a principal ideia da maquina pensante foi Alan Turing, que propôs o teste com o seu nome. Mas o termo “Inteligência artificial” foi desenvolvido por Jonh McCarthly em 1956.
É o estudo de sistemas programados, que podem ate certo ponto simular, atividades humanas como percepção, aprendizado e atuação. Uma das vantagens da IA é criar sistemas especialistas para desempenhar tarefas normalmente humanas. Outro objetivo da IA é criar uma maquina que se comporte como um humano, para este envolve o processamento de imagens lidando com a percepção de objetos.A segunda parte deste objetivo é o processamento da linguagem analisando e interpretando uma linguagem natural. 
Uma das soluções para os problemas de busca são as duas categorias. A de força bruta e a heurística.

As principais linguagens da IA

Lisp – Inventada por Jonh McCarthy em 1958 ao qual a linguagem manipula listas onde é capaz de modificar a si mesmo e aprender  com seu ambiente e aperfeiçoar o seu comportamento.
Prolog – É capaz de criar uma base de dados de fatos e uma base de conhecimento de regras. Capaz de responder com base no seu conhecimento lógico. No entanto não é uma linguagem muito eficiente.

Base de conhecimento

É a base de um sistema baseado em regras, um banco de dados onde contem regras pré estabelecidas onde podem ser utilizados para chegar a uma conclusão. Data mining (minerador de dados ) é um exemplo. Utilizando regras é possível se estabelecer perfis sejam de vendas ou de clientes dependendo do objetivo.

Base de dados de fato

É um banco de dados de fatos contem um conjunto de condições que são utilizados pelas base de conhecimento.

Interpretador

É um processador ou um controlador que é capaz de interpretar regras e fatos sendo de dois tipos, encadeamento progressivo e encadeamento regressivo.