Envio das entregas do pedido para a operação CD

Aqui começa uma parte muito interessante da operação, diria eu que essencial, entretanto pouco conhecida.

Nesse momento o pedido é enviado para a operação no CD, isso significa, que o pedido com todas os detalhes e características relacionados à logística são enviados para o ERP e para o WMS (que, por sua vez integram com a SEFAZ e com o TMS, veremos isso em outro post logo menos).

Agora a grande questão é “o que são detalhes e características relacionados à logística”? Basicamente os dados abaixo:

  1. Tipo de entrega: agendada, expressa, econômica, normal etc;
  2. Data limite de entrega (combinada): tempo de manuseio do item dentro do CD + tempo da transportadora para entregar o produto, geralmente após o pagamento;
  3. Armazém de origem das mercadorias
  4. Flag para especialização do pedido: priorizado, black friday, reenvio etc;
  5. Transportadora: Há plataformas de loja e de backoffice/OMS que tem essa funcionalidade fazendo com que nem precise de um TMS para tal operação

Bom, agora você sabe o que significa enviar o pedido para operação CD. E tem mais, quando o pedido chega tanto no WMS ou no ERP (em alguns casos é o mesmo sistema), caso não exista a quantidade de estoque logo haverá uma crítica no sistema que nos permitirá avisar ao cliente que o pedido não pode ser concluído, e por consequência isso nos levará a falar do assunto denominado unhappy flow, mas esse ficará para outra série de artigos :).

Abs e até a próxima.

Anúncios

Instalando o Eclipse no Ubuntu

Por esses dias estou experimentando um pouco mais o mundo opensource, e claro, estou começando pela IDE, além de utilizar a distribuição Ubuntu LTS 14.04 do Linux, também resolvi instalar o Eclipse, e vou colocar aqui com fiz para conseguir fazer isso.

A primeira coisa deve ser feita é a instalação do OpenJDK Java 7, que você instalar no modo macho com o comando abaixo:

$ sudo apt-get install openjdk-7-jre

Ou então pode ir na central de programas, pesquisar e instalar por lá.

Agora é necessário baixar o Eclipse, feito isso dê um Ctrl + Alt + T (para abrir o terminal), agora extrair o Eclipse para /opt/

$ cd /opt/ && sudo tar -zxvf ~/Downloads/eclipse-*.tar.gz</code>

Se não funcionar, coloque o nome completo do arquivo que você baixo, agora vamos utilizar o gksudo para mudar de forma gráfica o nosso atalho (o gksudo serve para isso).

$ gksudo gedit /usr/share/applications/eclipse.desktop

Para ficar mais fácil, coloque tudo isso abaixo dentro do arquivo que for aberto:

[Desktop Entry]
Name=Eclipse
Type=Application
Exec=/opt/eclipse/eclipse
Terminal=false
Icon=/opt/eclipse/icon.xpm
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE;
Name[en]=Eclipse

Agora, basta pesquisar em seus programas e ver que o eclipse está lá e você pode utilizá-lo, espero que seja de utilidade.

Abs e até a próxima.

MongoDB – CRUD com C#

Muito se ouve falar em NOSQL e também em sua aplicabilidade para trabalhar com grande velocidade numa massa de dados gigante. Quero mostrar como inserir, ler, atualizar e remover dados de uma base de dados MongoDB, que é super fácil, e, após você fazer isso uma vez com certeza terá mais uma opção para trabalhar em suas aplicações.

Fiz um estudo sobre essas operações básicas para um sistema que estou evoluindo, vejam só o que aprendi.

Instalando o banco de dados

A primeira coisa a ser feita aqui é baixar MongoDB e coloca-lo para rodar, basta seguir esse tutorial que existe no próprio site do MongoDB http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/.
Após instalar o MongoDB coloque-o para rodar, dê um “start” no banco de dados, dentro do mesma URL informada agora a pouco há também a explicação de como fazer isso. Olha só que legal, na sua máquina está rodando um banco de dados NOSQL :O !!!

Crie seu projeto

Agora crie um novo projeto do tipo Console Application, nesse caso, com a linguagem C#.

Namespaces

Antes de qualquer coisa, leia essa URL http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/, e, obtenha o driver do MongoDB para C#.
Inclua os seguintes namespaces em sua classe:

  • MongoDB.Bson –> MongoDB usa o formato BSON para armazenamento e transferência de dados. Utilizaremos esse namespace para fazer a utilização de seus objetos.
  • MongoDB.Driver –> Através desse namespace que acessaremos o MongoDB;
  • MongoDB.Driver.Builders –> Aqui estarão as classes e métodos “helpers” para construir vários objetos.

Criando as variáveis para utilização no nosso programa

Aqui estão as variáveis para fazermos conexão com o nosso banco de dados.

 var connectionString = "mongodb://localhost";
 var client = new MongoClient(connectionString);
 var server = client.GetServer();
 var database = server.GetDatabase("teste"); // "test2" é o nome da sua base de dados, caso vc não tenha criado nenhuma base de dados, o próprio driver se encarregará disso

Além dessas variáveis também iremos criar a classe Entidade, conforme abaixo:

public class Entidade
 {
 public ObjectId Id { get; set; }
 public string Nome { get; set; }
 }

Criando uma coleção e inserindo um novo objeto

Uma coisa muito legal no MongoDB é que não é necessário criar as coleções (podemos chamar de tabelas também), abaixo nós estamos:

  1. Criando a coleção “entidades” e tipando-a com nossa classe “Entidade”
  2. Criamos um novo objeto do tipo “Entidade”
  3. Inserimos o objeto na coleção
  4. Setamos o Id com o Id gerado pelo Mongo DB
</pre>
var collection = database.GetCollection<Entidade>("entidades"); // podemos pensar nessa como uma tabela
 var entity = new Entidade() { Nome = "Fulano de tal" };
 collection.Insert(entity);
 var id = entity.Id; // Insere e seta o ID, sempre devemos colocar um ObjectId em nossos objetos que serão inseridos no
<pre>

MongoDB, podemos setar o ID também, mas o mesmo é gerado automaticamente

Encontrando os objetos gravados no banco

Aqui é possível encontrar um objeto através de sua chave (gerada pelo MongoDB)

  1. Setamos a coleção
  2. Criamos um objeto de busca e seu critério
  3. Setamos o retorno em um objeto ou coleção
var collection = database.GetCollection<Entidade>("entidades");
var query = Query<Entidade>.EQ(e => e.Id, id);
var entity = collection.FindOne(query);

Atualizando objetos

Para atualizar um objeto no banco é tão fácil quanto no SQL

  1. Setamos a coleção
  2. Criamos um objeto de busca, nesse caso pelo id
  3. Criamos um objeto de update bem como a atualização dos dados
  4. Fazemos a atualização da coleção
var collection = database.GetCollection<Entidade>("entidades");
 var query = Query<Entidade>.EQ(e => e.Id, id);
 var update = Update<Entidade>.Set(e => e.Nome, "Fulano atualizado"); // update modifiers
 collection.Update(query, update);

Excluindo objetos

A dinâmica é a mesma

  1. Setamos a coleção
  2. Montamos a busca com o critério do ID
  3. E removemos o objeto da coleção
 var collection = database.GetCollection<Entidade>("entidades");
 query = Query<Entidade>.EQ(e => e.Id, id);
 collection.Remove(query);

Conclusão

A ideia aqui foi mostrar CRUD no MongoDB com C# de uma forma prática e simples. Espero que tenha ficado claro e que todos consigam fazer. Qualquer dúvida é só falar.

Espero que isso ajude no crescimento da comunidade. Um forte abraço e até a próxima!

Referências

http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/
http://docs.mongodb.org/ecosystem/tutorial/use-csharp-driver/

Motivação! Atitudes de Resultado

Foi o primeiro video motivacional que vi e que realmente me motivou, ainda hoje é um dos melhores videos que já vi. Fale apena dar uma olhadinha e ganhar esses 7 minutos!

Foi nesse video que conheci o texto abaixo, que está no artigo Não adianta ser só técnico.

E muitas vezes as coisas tomam direcionamentos, e nós temos que pegar uma borracha
E pegar aquele rascunho chamado sonho, apagar algumas linhas
E logo em seguida fazer um rascunho chamado SONHO
E apesar de ser um rascunho, é esse rascunho chamado sonho, que nos leva adiante, que nos dá motivo pra levantar, pra lutar, é o que nos motiva, ou seja, é que nos dá motivo para agir

Palestra Motivacional Atitudes de Resultado com Prof. Heinz.

Técnica Pomodoro

Hoje em dia o que nós mais precisamos é ter mais assertividades nos prazos que damos e aproveitar o nosso tempo da melhora maneira possível, com a técnica Pomodoro isso é possível.

Objetivo

O objetivo da Técnica Pomodoro é proporcionar uma ferramenta simples para melhorar o processo de produtividade (sua e de sua equipe), que é capaz de fazer o seguinte:

  • Aliviar a ansiedade;
  • Aumentar o foco e a concentração ao reduzir interrupções;
  • Aumentar a consciência de suas decisões;
  • Aumentar a motivação e mantê-la constante;
  • Reforçar a determinação para alcançar seus objetivos;
  • Refinar o processo de estimação, tanto em termos qualitativos e quantitativos;
  • Melhorar o seu processo de trabalho ou estudo;
  • Reforçar a sua determinação em continuar a aplicar-se diante de situações complexas.

O que preciso para implementar

Para Implentar a Técnica Pomodoro é necessário ter:

  • Um relógio Pomodoro
  • Uma lista de atividades para fazer, preenchido no início de cada dia com o seguinte:
    • Um título com local, data e autor;
    • Uma lista das coisas a fazer durante o dia, em ordem de prioridade;
    • Uma seção de atividades não planeadas e urgente, onde todas as tarefas inesperadas que têm de ser tratados devem ser listados como eles vêm para cima. Essas atividades podem potencialmente modificar o plano do dia.
  • Uma folha de backolog de atividades, que consiste em:
    • Uma posição com o nome do autor
    • Um número de linhas onde várias atividades são anotadas como em ordem de prioridade. No final do dia, os que foram completadas são removidas.
  • Uma folha de registros: Este é o conjunto de dados-primas necessárias para produzir relatórios pertinentes e gráficos. Dependendo dos objectivos em questão, este contém diferentes conjuntos de caixas. Normalmente, esta folha deve incluir a data, a descrição eo número de Pomodoros valor do esforço necessário para realizar uma tarefa. Esta folha é atualizado pelo menos uma vez por dia, geralmente no final do dia.

Pomodoro?

Um Pomodoro tem duarção de 30 minutos, 25 minutos atuando na atividade e 5 minutos de pausa. Quando os 25 minutos encerram a atividade terminou temporariamente, a pausa de 5 minutos lhe dá o tempo necessário para desconectar do trabalho, o que lhe dá tempo para assimilar o que aprendeu nos últimos 25 minutos e também lhe dá a chace de fazer algo de bom para sua saúde, como dar uma pequena caminhada, fazer algum alongamento, comer uma fruta ou lanche, tomar água, ir ao banheiro, fazer uma respiração profunda, conversar rapidamente com quem está ao seu lado. Não é recomendável fazer qualquer atividade que exija engajamento mental significativo durante a pausa, como, escrever e-mails importantes, conversar com colegas sobre coisas relacionadas ao trabalho, ligações importantes, esse tipo de atividade interfere na integração construtiva mental da qual é necessária para estar alerta e pronto para o início do próximo Pomodoro. Esse tipo de atividade deve estar inserido em Pomodoros durante esse dia. Você deve pensar no que foi feito nos últimos Pomodoros durante a pausa. Após terminar o Pomodoro marque com um X logo a frente dele determinando que ele foi concluído.

Você também pode utilizar Pomodoros no seu smartphone, como o Pomodroid ou outros que podem ser instalados no computador.

Como fazer então?

Vamos começar de forma simples, selecione atividades para o dia e coloque-as em uma lista, e tente estimar o tempo ou quantidade de Pomodoros para cada atividade. Feito isso, inicie o seu trabalho. Quando o tempo de 25 minutos passar, pare o que está fazendo, faça a pausa de 3 a 5 minutos, tome um café, vá ao banheiro, troque uma ou duas piadas e volte ao trabalho. Ao fim de cada Pomodoro marque um X a frente da lista de atividades sinalizando que você concluiu um Pomodoro.
Não inicie nenhuma atividade que exige um esforço mental significativo, pois dessa forma você não dá ao seu cérebro a possibilidade de efetuar a integração mental construtiva a qual fará a assimilação de todo o conteúdo no qual você se envolveu no último Pomodoro e você não estará em alerta para o próximo.

A cada 4 Pomodoros

Após 4 Pomodoros uma pausa de 15 a 30 minutos deve ser feita.
Essa pausa é o momento certo para arrumar a mesa, ouvir as mensagens da caixa postal, ler os e-mails, olhar nas redes sociais, fazer exercícios, uma caminhada rápida, de preferência nada que seja complexo senão a mente não consegue se reorganizar para integrar o que aprendeu. Nesse momento não é bom pensar no que foi feito nos últimos Pomodoros.

Interrupções Internas

A cada vez que você sentir necessidade de para para fazer alguma coisa, marque um apóstrofo em frente à atividade que você desenvolvendo e anote essa outra atividade numa lista de atividades não planejadas. Procure ver e-mails e antender ou retornar telefones em um horário específico do dia, crei Pomodoros apenas para isso. Se for necessáio atender uma ligação, diga que você retornará em 25 minutos.

Interrupções Externas

Geralmente são atividades urgentes, mas podem esperar 25 minutos (um Pomorodo), algumas vezes até 4 Pomodoros (2 horas), são poucas as vezes em que realmente temos que parar tudo para atuar em uma atividade imediatamente de tão urgente que ela seja, nesse caso marque uma letra com F (de falha) ou I (de interrompido) na frente do Pomodoro, esse pomodoro falhou e deverá ser retomado depois, nesse momento você passa a atuar na atividade urgente e em um novo Pomodoro, e essa atividade deve ser marcada na lista de atividades não programadas e urgentes.

No final das contas você simplesmente organizou seu dia forma melhor e se não media, agora passou a medir o que está fazendo. Além disso você passa a utilizar os ritmos biológicos (aqueles que estudamos em cronobiologia ao seu favor), mas isso é um outro assunto.

Para mais informações sobre Técnica Pomodoro acesse o site http://br.pomodorotechnique.com. Estou começando com o Pomodoro agora também, e estou curtindo muito, pelo o que Francesco Cirillo fala é possível utilizar Pomodoro em dulpas e até em times inteiros, vamos ver como nos saímos com isso.

Até a próxima.

Oito princípios fundamentais do chefes extraordinários

Por esses dias eu pude ler sobre muitos assuntos, desde Java até medicina chinesa, e claro que li também sobre chefes, e gostei muito desse artigo 8 Core Beliefs of Extraordinary Bosses (8 princípios fundamentais do chefes extraordinários).

Cada um dos tópicos mostra como é um chefe ruim e um bom:

1. O negócio é um ecossistema, e não um campo de batalha.

2. A empresa é uma comunidade, não uma máquina.

3. Gestão é o serviço, não de controle.

4. Meus funcionários são meus pares, e não meus filhos.

5. A motivação vem da visão, não de medo.

6. Mudança é igual a crescimento, não dor.

7. A tecnologia oferece capacitação, não automação.

8. O trabalho deve ser divertido, não mera trabalho duro.

Vale a pena dar uma lida no conteúdo original.

Até a próxima!

Manifesto 501

Passei a conhecer recentemente o Manifesto 501 através desse artigo Manifesto 501: pelo direito à vida pessoal no desenvolvimento postado no site InfoQ, sinceramente eu não achava que havia mais pessoas que pensavam assim, esse manifesto foi criado com moldes semelhantes ao Manifesto Ágil.
Para quem não leu o artigo no InfoQ, esse 501 vem de 5:01, nos Estados Unidos o horário padrão de saída do trabalho, então isso é para aquelas pessoas que no primeiro minuto após o final do expediente já estão preocupadas com seus projetos.
Logo abaixo está a principal parte do Manifesto 501:

Nossas famílias em vez de objetivos comerciais de empresários

Tempo livre, em vez de lanches grátis

Viver nossas vidas em vez de manter nossa marca pessoal

Ritmo sustentável em vez de heroísmo

Projetos pessoais em vez de produtos comerciais de que o mundo não precisa

Ter dinheiro para roupas de qualidade em vez de ganhar camisetas grátis da Microsoft

Jogar pebolim em um bar com amigos em vez de jogar na empresa com o seu líder de projeto

Procurar não ser um idiota, em vez de ser um desenvolvedor rockstar

Eu simpatizei imediatamente com esse manifesto, afinal de contas, nós da área de tecnologia (em sua grande parte) estamos vivendo exatamente isso, não estamos tendo tempo para os nossos familiares, ficamos até mais tarde no trabalho ou viramos a noite e acabamos comendo lanche, não damos atenção para nossa saúde deixando de dormir e de comer corretamente, muitas vezes não fazemos o horário comercial de trabalho, trabalhamos como se não houvesse chance de postergar a atividade por um tempo, nossa maior preocupação é sempre gerar valor ao negócio, poucas vezes pensamos em gerar valor para sociedade e melhorar a vida do próximo, trabalhar para ficar bem de vida é uma coisa, outra é viver em função do trabalho a tal ponto de não ter tempo de fazer um happy hour com nossos amigos… enfim, isso resume a vida de muitos na área de tecnologia.

Já está na hora de nos concentramos um pouco mais em nós mesmos (sem sermos egoístas) e cumprir com o famoso “combinado”, assim como nossos colegas de outras áreas e setores já fazem há muitos anos.

O que você prefere, ter uma vida razoavelmente boa, mas ter saúde para ficar com sua família daqui a 20 anos ou ter uma carreira extremamente bem sucedida e não ter família para compartilhar isso?