The Gnu Song

22 04 2010

A year ago last thursday, I was strolling in the zoo
When I met a man who thought he knew the lot
He was laying down the law about the habbits of baboons
And the number of quills a porcupine has got
So I asked him “What’s that creature’s name?” and he answered “That’s a helk!”
And I’d have gone on thinking that was true
If the animal in question hadn’t put that chap to shame,
And remarked—”I ain’t a helk—I’m a gnu!

I’m a gnu—I’m a gnu
The g-nicest work of g-nature in the zoo
I’m a gnu—how do you do?
You really oughtta g-know w-who’s w-who
I’m a gnu—spelt G – N – U
I’m not a camel or a kangaroo
So let me introduce, I’m neither man nor moose
Oh, g-no, g-no, g-no, I’m a gnu!”

I had taken furnished lodgings down at Rustington-on-sea
Whence I travelled on to Aston-under-lyne
On the second night I stayed there I was wakened from a dream
Which I’ll tell you all about some other time
Among the hunting trophies on the wall above my bed
Stuffed and mounted was a face I thought I knew
A bison? An okapi? Could it be a hearty beast?
Then I seem to hear a voice—”I’m a gnu!

I’m a gnu—a-g-nother gnu
I wish I could g-nash my teeth at you
I’m a gnu—how do you do?
You really oughtta g-know w-who’s w-who
I’m a gnu—spelt G – N – U
Call me bison or okapi and I’ll sue
Nor am I in the least like that dreadful hearty beast
Oh, g-no, g-no, g-no, I’m a gnu!
G-no, g-no, g-no, I’m a gnu!
G-no, g-no, g-no, I’m a gnu!”

http://www.poppyfields.net/poppy/songs/gnu.html

UltraG





Manifest for Agile Software Development

16 04 2010

“Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através desse trabalho, passamos a valorizar:

  • Indivíduos e interação entre eles é mais que processos e ferramentas;
  • Software em funcionamento é mais que documentação abrangente;
  • Colaboração com o cliente é mais que negociação de contratos;
  • Responder a mudanças é mais que seguir um plano.

Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.”

http://www.agilemanifesto.org/

UltraG





OEE – Overall Equipment Effectiveness

20 01 2010

Bom, neste post vou falar um pouco sobre o OEE que é um indíce muito utilizado nos dias de hoje principalmente nas industrias.

OEE traduz-se para “Eficácia Global do Equipamento” que é, como o nome já diz, qual a eficácia do equipamento. 

  

Por quê o OEE é importante?

Muitas empresas nos dias de hoje usam máquinas para adicionar valor aos seus produtos. Essas empresas tentam sempre que possível reduzir os disperdícios e aumentar a produtividade e a qualidade.

Nesta abordagem o OEE é importante porque é uma forma de medir e avaliar de forma precisa a eficácia dessas máquinas. 

Eficiência: Na industria seria o quanto uma máquina estaria produzindo. Se esta deveria produzir 100 peças em 10 horas mas está produzindo 80 peças  nas 10 horas, então sua eficiência é de 80%.

Eficácia: Seria a medida resultante da eficiência com a qualidade da produçao. Em outras palavras, para uma máquina ser eficáz, antes deve ser eficiente e produzir com a qualidade esperada.

 

Introdução

O OEE começou a ser muito usado por volta de 1997, sendo hoje fundamental na construção do processo de melhoria contínua principalmente nas industrias.

Para se medir a eficácia de uma máquina usando o OEE é preciso medir além do que ela produz em determinado tempo. O fator “Desempenho” é fundamental nesta hora.

 

Desenvolvimento

Desempenho: É a comparação da produção da máquina com o que a ela deveria estar produzindo. Desempenho equivale a eficiência.

Exemplo: No cronograma de 1 hora a máquina deveria produzir 100 peças, porém só produziu 80 peças, portanto seu desempenho é de 80%.

Mas também é necessário outros dois fatores que são:

Dispolibilidade: É a comparação do tempo potencial de produção da máquina com o tempo em que ela realmente está produzindo.

Exemplo: O fabricante diz que a máquina tem um tempo potencial de produção de 20 horas/dia, porém ela só está produzindo 17 horas/dia, sendo sua disponibilidade de 85%.

Qualidade: É a comparação entre o número de produtos feitos pela máquina com o número de produtos que saíram atendendo as exigências do cliente.

Exemplo: A máquina produziu 100 peças, porém destas 100 apenas 87 saíram atendendo as exigências do cliente, sendo sua taxa de qualidade de 87%.

  

Cálculos

Para se chegar aos resultados do OEE, faz-se as contas abaixo, levando em consideração os elementos do equipamento relacionados com as perdas, de acordo com a imagem abaixo:

Elementos do Equipamento Relacionados com as Perdas

Fazendo finalmente o cálculo do OEE usando os números do desempenho, disponibilidade e qualidade citados acima, chegamos a estes valores:

OEE = (17/20) x (80/100) x (87/100)

OEE = (0.85) x (0.8) x (0.87)

OEE = (0.5916) x (100%)

OEE = 59,16%

 

Conclusão

Um OEE de 59,16% não é bom. Olhando os números de desempenho, disponibilidade e qualidade separados, temos a leve impressão de estar em um cenário ótimo, porém quando fazemos o cálculo esse cenário muda e drasticamente.

Um OEE de 59,16% deixa muito espaço para melhorias em várias áreas dentro de sua empresa, faz você rever processos e ir em busca da tão sonhada  melhoria contínua.

UltraG





Interlab 3d no modo Expert

30 05 2009
interlab 3d

interlab 3d

Este é a cara do Interlab 3d que é uma ferramenta didatica para computação gráfica. O software Interlab3D foi criado com uma arquitetura flexível e extensível através de um sistema de plug-ins. Esses plug-ins permitem adicionar funcionalidades para o programa sem alterar as classes principais. Outras características do Interlab3D são:

  • Visualização do gráfico de cena;
  • Interface que expõe com precisão a métodos das classes do 3D Java;
  • Capacidade para salvar e carregar exercícios desenvolvidos;
  • Ajuda online e manual de usuário;

Para fazer o download do Interlab 3d, clique aqui.

Para fazer o download do exemplo no modo expert, clique aqui.

A principal função do Interlab 3d é gerar o código java do gráfico de cena construido visualmente. Para montar um gráfico de cena de um simples jogo já é bastante complicado devido ao grande número de classes que deverão ser usadas, logo ficar decorando de cabeça ou construir um gráfico de cena em papel poderia gerar uma perda de tempo maior.

 

UltraG





Separando diversão, estudo e trabalho

5 02 2009

Este é um excelente post publicado por Marcos Toledo em seu Lifebox sobre como separar diversão de estudo de trabalho.

Leiam aqui.

UltraG





Insert, Update e Delete

3 02 2009

estrutura de dados (cubos)

Esses são os três comandos básicos para se trabalhar com banco de dados. O primeiro representa uma inserção de dados em uma determinada tabela no banco de dados. O segundo representa a atualização de alguma linha de determinada tabela do banco de dados. O terceiro representa a exclusão de dados da tabela no banco de dados.

Bom seguindo o contexto deste post vamos inserir nossos dados.

 

1º  Passo

Abra o MySQL Query Brower e digite o seguinte código para inserir seus dados:

Sintaxe do comando INSERT:

INSERT INTO nome_tabela VALUES (VALOR 1, VALOR 2, VALOR 3, …);

INSERT INTO USER VALUES (1, “ultragfelix@hotmail.com“, “123”);

INSERT INTO ACCOUNT VALUES(1, “273”, “2000”, 1); 

INSERT INTO CATEGORY VALUES(1, “COMPRAS”, “DEBIT”, 1); 

INSERT INTO TRANSACTION VALUES(1, -100, ‘2008-12-13 00:00:00’, “FUTURAMA”, 1, “DEBIT”, 1, 1);

Cada valor passado como parametro representa um atributo do MER e da Tabela (Olhar create’s table’s). 

2º Passo

Para simular o debito na conta, precisamos atualizar o current_balance para o saldo atual.

Sintaxe do comando UPDATE:

UPDATE nome_tabela SET COLUNA1=VALOR1, COLUNA2=VALOR2, …;

UPDATE ACCOUNT SET CURRENT_BALANCE=(2000 + (SELECT AMOUNT FROM TRANSACTION WHERE(TRANSACTION_ID = 1))); 

UPDATE ACCOUNT SET NAME=’277′

3º Passo

Caso o usuário deseje excluir uma transação, o código SQL ficaria assim:

Sintaxe do comando DELETE:

DELETE FROM nome_tabela WHERE(condição_where);

DELETE FROM TRANSACTION WHERE(TRANSACTION_ID=1);

 

Ai está o báciso do básico sobre Insert, Update e Delete.

UltraG





Create Database e Create Table

23 01 2009

estrutura de dados (cubos)

Com base no MER deste post aqui vamos criar nosso banco de dados e nossas tabelas usando o modelo de linguagem ANSI-92 SQL que funciona em qualquer banco de dados relacional.

 

 

 

1º Passo

Escolher seu banco de dados, lembrando que os melhores são (em ordem e na minha opinião):

  1. Oracle;
  2. SQL SERVER;
  3. My SQL

Faça o download da versão express de algum banco de dados acima, clicando em seu respectivo nome para prosseguir.

2º Passo

Criar o banco de dados e suas tabelas usando a linguagem ANSI-92 SQL, que ficaria assim:

1.   Criar o banco de dados:

Sintaxe do comando CREATE DATABASE:

Criando o banco de dados:

CREATE DATABASE NOME_DO_BANCO 

CREATE DATABASE CONTROLE_FINANCEIRO;

 

2.   Criar as tabelas:

Sintaxe do comando CREATE TABLE:

CREATE TABLE NOME_DA_TABELA
(
NOME_DA_VARIAVEL TIPO,
NOME_DA_VARIAVEL TIPO,
 
CHAVE_PRIMARIA(NOME_DO_CAMPO),
CHAVE_ESTRANGEIRA(NOME_DO_CAMPO) REFERENCIA NOME_TABELA_DE_REFERENCIA NOME_DA_VARIAVEL)
);

Criando as tabelas:

*OBS: Para o banco de dados MySQL é necessário retirar as aspas de todos os nomes de tabelas, o código SQL abaixo está apropriado para o banco de dados SQL Server.

CREATE TABLE “USER”
(
USER_ID INT NOT NULL,
EMAIL VARCHAR(45),
PASSWORD VARCHAR(45),

PRIMARY KEY(USER_ID)
);

CREATE TABLE “ACCOUNT”
(
ACCOUNT_ID INT NOT NULL,
NAME VARCHAR(45) NOT NULL,
CURRENT_BALANCE BIGINT,
USER_ID INT NOT NULL,

PRIMARY KEY(ACCOUNT_ID),
FOREIGN KEY(USER_ID) REFERENCES “USER”(USER_ID)
);

CREATE TABLE “CATEGORY”
(
CATEGORY_ID INT NOT NULL,
NAME VARCHAR(250) NOT NULL,
TYPE VARCHAR(10) NOT NULL,
USER_ID INT NOT NULL,

PRIMARY KEY(CATEGORY_ID),
FOREIGN KEY(USER_ID) REFERENCES “USER”(USER_ID)
);

CREATE TABLE “TRANSACTION”
(
TRANSACTION_ID INT NOT NULL,
AMOUNT BIGINT NOT NULL,
DATE DATETIME NOT NULL,
DESCRIPTION VARCHAR(4000),
ACCOUNT_ID INT NOT NULL,
TYPE VARCHAR(10) NOT NULL,
CATEGORY_ID INT,
USER_ID INT NOT NULL,
 
PRIMARY KEY(TRANSACTION_ID),
FOREIGN KEY(ACCOUNT_ID) REFERENCES “ACCOUNT”(ACCOUNT_ID),
FOREIGN KEY(CATEGORY_ID) REFERENCES “CATEGORY”(CATEGORY_ID)
); 

Por hora é só, em outro post explicarei como se insere registros nas tabelas e como fazemos para consulta-los.

 

UltraG