Entries Tagged as ''

Mulher no volante…

…perigo constante!

http://images.uncyc.org/pt/3/39/Ela_so_queria_estacionar.jpg

hauehuaehuaehueaheuhaeueahuaeheauheau!

Technorati Tags: , , , , , , , , , , , , , , , , , , ,

Se você gostou deste post, pode me pagar um café que servirá como um excelente combustível para que eu escreva mais posts ;)

Meme: Softwares indispensáveis

A imagem “http://www.mafcenter.com.br/principal_ferramentas-a.gif” contém erros e não pode ser exibida.Esses dias o Fred do chmod007.com me convidou para participar de um meme criado pelo Leonardo Pessoa sobre os 3 softwares que mais utilizo.Todos que já participaram do meme já eliminaram navegador, mensageiro instantâneo e leitor de feeds já que isso obviamente é o que todos mais usam ;)
Apesar de não usar leitor de feeds e não usar mensageiro instantâneo quase nunca, eliminarei os 3 que mais uso porque também são óbvios: O terminal que uso que é o aterm ou o xterm, meu navegador Firefox e o meu leitor de e-mails Sylpheed (sei que to fora de moda mas não aprendi ainda a gostar de webmail, viva os clientes de e-mail).

Okz, vamos agorar começar de forma séria o meme! Como muitos sabem, sou universitário e faço o curso de Informática com Ênfase em Gestão de Negócios na Fatec. Alguns meses atrás, poderia dizer que o programa que mais usei foi o jogo Tibia, o que acabou me levando a pegar algumas DPs (isso aliado com alguns professores picaretas). Esse semestre resolvi mudar minhas notas e me tornar um bom aluno (ou pelo menos tentar ehehehehheeh). Para isso, como muitos sabem, passei a juntar meus estudos com este blog, o que me levou a preparar aulas e postar aqui e com isso aumentar consideravelmente algumas das minhas notas hehehehe. Claro que para isso não basta ficar apenas olhando para o computador. Alguns softwares são essenciais para ter um bom aproveitamento nos estudos. Os que uso são os seguintes:

  • vim: Poderosíssimo editor de textos altamente customizável. Uso tanto para copiar as aulas que são passadas ou o que os professores falam como também uso como minha IDE para estudar OpenGL e Java. Saiba mais sobre o vim aqui e aqui. Me sinto muito bem nas aulas da faculdade quando vejo meus colegas esperando o demorado NetBeans fazer o que tem que fazer enquanto o meu vim faz tudo voando ;)
  • Audacious: O player que uso para ouvir minhas músicas. Não gosto de players pesados como Amarok, Rythmbox ou outros. Apesar do Rythmbox ser legal e dar para organizar bem as músicas, as vezes fica chato ficar usando. Gosto do audacious por ser pequeno, leve, ocupar pouco espaço na tela e ser bem rapidinho. Lembra muito o XMMS. Ah sim, quase sempre que estudo estou com o Audacious ligado. Ajuda a me concentrar e torna meus estudos bem mais produtivos (e divertidos ;D)
  • ScribeFire: Extensão do Firefox que uso para postar no meu blog. Além de facilitar a edição ainda permite que eu salve os textos antes de postar caso eu queira continuar escrevendo outra hora. Também permite que eu já escolha as tags para marcar os posts, permite que eu crie novas páginas para meu blog, coloque as “technorati tags” que sempre ponho embaixo dos meus posts, e ainda envia pings para o Ping-O-Matic. Por esta extensão preparo as aulas quando estou estudando e outros posts como este quando tenho tempo.

Gostaria de agradecer ao Fred por ter me enviado o convite e aproveitar para convidar minha namorada, o Héljer do Blojer, o Latoya Black Tzelli, e o Wendell Silva do Caminho Livre.

Technorati Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Se você gostou deste post, pode me pagar um café que servirá como um excelente combustível para que eu escreva mais posts ;)

Computação Gráfica: Terceira Aula (mesas e cadeiras)

O que é uma projeção? Se temos uma fonte de luz, um projetor, por exemplo, e colocamos qualquer objeto, como uma caneta, na frente, temos um desenho, ou uma projeção, deste objeto na parede. A mesma coisa acontece com Computação Gráfica. Temos fontes de luz e uma câmera virtual em um local aonde o objeto é projetado. Este local pode ter duas configurações básicas: ortogonal ou perspectiva. Na perspectiva, temos a possibilidade de trabalhar com animações que tem maior fidelidade dependendo da distância. Na ortogonal não temos este tipo de efeito, apesar de termos precisão para construir objetos.Vamos imaginar que temos uma área útil para desenhar, algo em torno de 20 centímetros. Como posso representar 2 metros dentro destes 20 centímetros? Simples, trabalhando com escala. Para trabalharmos com escala, temos que saber qual a menor dimensão que conseguimos representar. Um ponto nesta área é chamado de pixel. Podemos usar esse pixel para representar 1 centímetro.

Como estamos trabalhando com uma área de 20 centímetros, o maior objeto que posso representar neste caso será um com no máximo 20 centímetros. Se nos basearmos no tamanho do pixel, podemos saber quanto precisamos usar para representar os objetos que queremos modelar.

Uma saída é a projeção. Quando colocamos a glOrtho, é como se estivessemos dizendo ao programa o universo, a área e quantos pontos quero para trabalhar simplesmente informando os valores nos parâmetros do comando. Por exemplo, chamando a função glOrtho da seguinte forma:

glOrtho(-50,50,-50,50,-50,50);

É criado um volume com -50 à esquerda, 50 à direita, -50 para baixo, 50 para cima, -50 para o fundo e 50 para a frente.

Nesta aula vamos trabalhar na modelagem de uma mesa de 2 metros (ou 200 centímetros). Se queremos desenhar uma mesa com 200cm, precisamos trabalhar com escala. Podemos assumir que cada ponto representa 1 cm. Isso dependerá do projeto que queremos desenvolver. Qual o menor objeto que precisarei apresentar? Talvez um interruptor (1cm x 2cm)… Na hora da modelagem podemos dizer que um interruptor será representado por 1 ponto da coluna. Se o maior objeto a ser representado for uma sala ou uma cidade, quantos pontos precisaremos para fazê-lo?

Se modelarmos uma mesa de 2 metros em um volume que somando negativo com positivo terá um valor igual a 100 (igual o glOrtho do exemplo acima que foi chamado com os valores -50,50,-50,50,-50,50), a mesa obviamente não aparecerá inteira e sim recortada. A solução será chamar a função glOrtho com outros parâmetros que permitam que a mesa apareça inteiramente:

glOrtho(-500,500,-500,500,-500,500);

Extrusão

Extrusão é a técnica de modelar um objeto deformando outro já existente.

Usaremos esta técnica para modelarmos nossa mesa usando o cubo que criamos na aula anterior. Vamos criar 5 cubos para fazer a mesa: Um para a tampa da mesa e os quatro restantes para as pernas.

Biblioteca para o cubo

Para facilitar nosso trabalho, vamos pegar o código que foi usado para o cubo, dar uma modificada e criar uma biblioteca chamada cubo.h:

void cubo(float r, float g, float b, float x, float y, float z, float tam, float transp)
{
	r = r/255; g=g/255; b=b/255; // Como glColor4f só vai de 0 a 1 e não de 0 a 255, fizemos essa conversão para podermos usar os dados de 0 a 255

 	glBegin(GL_QUADS);

 		glColor4f(r,g,b,transp);
 		glTranslatef(x,y,z);

		glVertex3f(tam,tam,0);
	 	glVertex3f(-1*tam,tam,0);
 		glVertex3f(-1*tam,-1*tam,0);
  		glVertex3f(tam,-1*tam,0);

		glVertex3f(tam,tam,-10);
 		glVertex3f(-1*tam,tam,-10);
  		glVertex3f(-1*tam,-1*tam,-10);
  		glVertex3f(tam,-1*tam,-10);

		glVertex3f(-1*tam,tam,-10);
  		glVertex3f(-1*tam,tam,0);
  		glVertex3f(-1*tam,-1*tam,0);
  		glVertex3f(-1*tam,-1*tam,-10);

		glVertex3f(tam,-1*tam,-10);
  		glVertex3f(tam,-1*tam,0);
  		glVertex3f(tam,tam,0);
  		glVertex3f(tam,tam,-10);

		glVertex3f(tam,-1*tam,0);
  		glVertex3f(-1*tam,-1*tam,0);
  		glVertex3f(-1*tam,-1*tam,-10);
  		glVertex3f(5,-1*tam,-10);

		glVertex3f(-1*tam,tam,0);
  		glVertex3f(tam,tam,0);
  		glVertex3f(tam,tam,-10);
  		glVertex3f(-1*tam,tam,-10);

	glEnd();
}

Agora basta chamarmos a biblioteca cubo.h no início do código do arquivo estrutura.c informando corretamente o caminho da biblioteca. Por exemplo, se o arquivo cubo.h está em /home/saibot/estrutura, basta colocarmos o seguinte no código:

#include </home/saibot/estrutura/cubo.h>

Agora podemos chamar o cubo com os valores que quisermos, por exemplo:

cubo(50,50,50,0,0,0,200,0.25);

Os 3 primeiros valores definem a cor do cubo (RGB), os outros 3 movimentam o cubo (a menos que queira, não é necessário mudá-los, já que podemos movimentar cada parte do cubo usando glTranslatef na hora de criarmos cada parte de nossa mesa), o penúltimo valor define o tamanho do cubo e o último valor define a transparência.

Antes de começarmos a modelar nossa mesa, vamos ainda dar uma olhada em alguns comandos.

glTranslatef e glScalef

glTranslatef é a função que realiza a translação, ou seja, movimenta um objeto. A origem do sistema é transladada para a posição fornecida dentro dos parâmetros da função (mais uma vez lembrando que x indica o lado, y a altura e z a profundidade): glTranslatef(x,y,z)

glScalef altera a escala dos objetos. O resultado obtido é o alongamento ou encolhimento dos objetos no sentido dos eixos. A função é usada da seguinte forma: glScalef(x,y,z). Se o valor de algum dos parâmetros for 0, esta cordenada simplesmente será eliminada.

glPushMatrix e glPopMatrix

Essas funções permitem guardar temporariamente a matriz de transformação atual. Após a instrução glPopMatrix() todas as operações que alteram a matriz atual, como por exemplo, glTranslatef, efetuadas após o último glPushMatrix(), são ignoradas.

Por exemplo, se depois de criar e movimentar um cubo não usarmos o glPopMatrix, os outros objetos serão criados à partir do que foi definido depois do primeiro desenho. Se usarmos o glPushMatrix antes do cubo e o glPopMatrix depois, a origem do sistema mais uma vez será a que estava sendo trabalhada antes de criarmos o objeto.

Criando a mesa

Vamos fazer agora a modelagem de nossa mesa. Como já fizemos uma biblioteca para chamar o cubo, podemos chamá-la para criar a tampa e as pernas da mesa, colocando cada parte dentro de glPushMatrix() e glPopMatrix(). Vamos usar o comando glScalef para mudar os tamanhos dos cubos transformando-os na tampa e nas pernas da mesa e o comando glTranslatef para definirmos a posição de cada parte da mesa.

//
//Tampa da mesa
//

glPushMatrix();
	glScalef(1,0.05,50);
	cubo(160,180,160,0,0,0,200,0.25);
glPopMatrix();

//
//Pernas da mesa
//

glPushMatrix();
	glTranslatef(-180,-200,-0);
	glScalef(0.1,1,2);
	cubo(250,50,50,0,0,0,200,0.25);
glPopMatrix();

glPushMatrix();
	glTranslatef(180,-200,0);
	glScalef(0.1,1,2);
	cubo(250,50,50,0,0,0,200,0.25);
glPopMatrix();

glPushMatrix();
	glTranslatef(-180,-200,-480);
	glScalef(0.1,1,2);
	cubo(250,50,50,0,0,0,200,0.25);
glPopMatrix();

glPushMatrix();
	glTranslatef(180,-200,-480);
	glScalef(0.1,1,2);
	cubo(250,50,50,0,0,0,200,0.25);
glPopMatrix();

glRotatef

glRotatef é a função usada para podermos aplicar a rotação nos objetos. Os parâmetros usados nesta função são: ângulo, componente x, componente y e componente z. Depois de escolhermos o ângulo, damos os valores para x, y e z, que podem ser 0 ou 1.

Por exemplo, se quero rotacionar um objeto em 45 graus no eixo x, chamo a função da seguinte forma:

glRotatef(45,1,0,0);

Se quero rotacionar em 70 graus nos eixos y e z, chamo da seguinte forma:

glRotatef(70,0,1,1);

Exercícios

Agora que já modelamos nossa mesa, vamos criar umas cadeiras, rotacionar alguma(s) delas para deixar mais apresentável nosso desenho ;)
Uma dica é criar uma biblioteca cadeira.h para ficar mais fácil colocar mais cadeiras no desenho. Lembre-se de usar os comandos glPushMatrix e glPopMatrix para cada uma das cadeiras e colocar dentro desses comandos as funções glTranslatef e glRotatef nas cadeiras que quiser rotacionar. Se quiser também pode usar glScalef para mudar o tamanho de algumas cadeira.

Se preferir pode também criar uma biblioteca mesa.h para facilitar a criação de mais mesas se desejar.

A imagem abaixo mostra o desenho que fiz de uma mesa com um bulê de chá e suas cadeiras. Fiz uma delas caída para dar aquela impressão de que algum cara meio chapado acabou derrubando a cadeira (talvez o chá dentro do bulê fosse de cogumelo… Quem sabe? Talvez os caras que beberam ;D)

Technorati Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Powered by ScribeFire.

Se você gostou deste post, pode me pagar um café que servirá como um excelente combustível para que eu escreva mais posts ;)

Administração Mercadológica: Quarta Aula

O plano de marketing exige a escolha uma empresa real como objeto de estudo para podermos avaliar internamente esta empresa. Se ela está projetada, então já temos uma boa parte para estudar (faturamento, vendas, histórico etc). Outros pontos que devemos estudar são concorrências, história, participações, parcerias etc.

É importante a ênfase no estudo do histórico do faturamento de uma empresa. Um erro comum que muitos fazem é apenas olhar, por exemplo, o faturamento de um mês, o que pode muitas vezes ser um erro. Veja o gráfico abaixo:

Se olharmos apenas o último faturamento das empresas podemos pensar que a empresa A está melhor do que a empresa B, mas, se analisarmos o histórico das duas empresas podemos perceber facilmente que a empresa A apresenta quedas no faturamento, enquanto o faturamento da empresa B sobe. A tendência é que a empresa A continue caindo e a B subindo.

DICA: Forma de abordar uma empresa

Pode ser que algumas empresas se recusem a entregar seus dados para que possamos fazer nosso plano baseado nela. Uma forma de abordagem é mostrar para esta empresa que podemos fazer um trabalho sério e com isto entregar um material interessante para a mesma. Nem sempre é fácil para uma empresa montar seu plano de marketing, mesmo que seu pessoal tenha condições para isso, é possível que a empresa não tenha tempo ou oportunidade. Ai está uma forma de “vendermos nosso peixe” ;)

Objetivo final do plano

O objetivo final do plano de marketing é ter uma série de ações propostas para que a empresa possa ter ações adequadas. Quanto mais informações tivermos da empresa, mais teremos condições de propor ações adequadas para a empresa agir.

Elementos a serem analisados em nosso plano

  1. Produto e preço (visto nas aulas passadas)
  2. Distribuição do produto

Distribuição do produto

Canais de distribuições: Meios pelos quais a empresa fornece o produto para seus clientes

Como pode ver na imagem acima, quanto mais canais de distribuição, maior o nível. No nível 0 não existem canais intermediários, a venda é feita diretamente ao cliente. Como o número de intermediários é 0, o nível é 0, quando temos 1 intermediário, o nível é 1, quando temos 2, o nível é dois e por ai vai ;)

Obviamente, quanto maior o nível, maior o preço, já que tem mais gente para ser paga. Um exemplo: Tenho um distribuidor que compra da minha fábrica e vende para outros distribuidores pequenos. Esses distribuidores menores obviamente deverão cobrar mais, pois já estão comprando de outro distribuidor.

Um distribuidor pode até vender direto para o cliente, mas ele na verdade abastece estoques. O distribuidor enche um caminhão e vende enquanto um atacadista é passivo, pois apenas monta um estoque e espera alguém comprar ;D

Alguns atacos costumam cobrar preços diferentes na vende. As vezes cobram menos de quem compra com CNPJ do que de quem compra como pessoa física. Isso é feito para evitar que o canal seja queimado, evitando dessa forma prejudicar as empresas que compram deles.

Quanto menor o nível de fornecimento, menores os gastos, mas ao mesmo tempo é preciso ter uma estrutura maior, já que dessa forma é necessário decidir rotas, checar clientes, montar cargas etc.

Algumas empresas também podem vender para franquias…

Muitas vezes a diferença nos lucros de uma empresa pode estar na distribuição de seus produtos!

Pontos de Venda

O ponto de venda também é importantíssimo e deve ser muito bem avaliado. Não podemos por exemplo montar uma joalheria na periferia da cidade. ¬¬

Alguns pontos que devem ser avaliados:

  • Localização
  • Características
  • Estrutura
  • Apelo para o público
  • Estacionamento

Uma boa idéia é a reprodução de ambientes. Por exemplo, uma empresa de móveis para escritório pode vender muito mais se, ao invés de simplesmente deixar seus móveis espalhados pela loja, passar aos clientes a sensação de estar em um escritório ao decorar a empresa e dispor seus móveis como em um verdadeiro escritório. A idéia é montar um ambiente de acordo com aquilo que quer vender, convidar o cliente a se sentar… O negócio não é apenas vender os produtos, mas dar experiências ao cliente para que não seja necessário que ele imagine como ficaria o produto em um lugar próprio.

Um exemplo de lugar agradável é o Franz Café. Em Campinas este lugar é conhecido como “Escritório Móvel”. Tem pontos wireless, é bem decorado… Por esses motivos seus clientes costumam ir lá também para fazer reuniões ou até mesmo algum trabalho. Ar condicionado, cheirinho de café, cascata de água em uma parte do caixa etc.

Comunicação

Paga:

  • Propaganda
  • Informes publicitários
  • Assessoria de imprensa
  • Promoção

Não paga:

  • Redes sociais (ex: Orkut)
  • Boca a boca

Objetivos de comunicação:

  1. Comunicar que a marca/empresa/produto existe
  2. Comunicar o que a marca/empresa/produto fazem
  3. Comunicar a superioridade
  4. Atrair o comprador ao ponto de venda
  5. Convencer o comprador a adquirir o produto

SIM: Sistema de Informação de Marketing

Cliente:

  • Comportamento
  • Renda
  • Acesso à informação
  • Idade
  • Tendências culturais, sociais etc

Concorrentes:

  • 4P
  • Tecnologia
  • Capacidade Financeira

Fornecedores:

  • Capacidade de fornecimento
  • Qualidade
  • Poder de barganha

Comercial:

  • Volume de vendas
  • Produtos mais vendidos
  • Market share
  • Ciclo de vida

Technorati Tags: , , , , , , , , , , , , , , , , "http://technorati.com/tag/volume" rel="tag">volume, , , , , , , , , , , , , , , , , , , , , , ,

Powered by ScribeFire.

Se você gostou deste post, pode me pagar um café que servirá como um excelente combustível para que eu escreva mais posts ;)

Meme: Google Bomb para Renan Calheiros

UPDATE: Okz, talvez eu tenha pego um pouco pesado. Um monte de gente está ignorando a campanha… Uns por medo de processo, outros talvez porque seu time do coração ganhou algum jogo (mais um dia sem sal, aqui no país do futebol…. - Eterna) ou então porque já esqueceu disso quando ligou a TV no Big Brother, quem sabe?? Estou pensando em mudar o foco do Google Bomb. Que tal então usarmos outro nome? Algumas alternativas (comente qual a sua preferida):

  • Corruptus in Extremis (essa é do desenho “Os Simpsons” :D)
  • Pau no cú
  • Palhaço (acho errado essa já que é mais provável que ele que tenha feito o povo de palhaço
  • Escroto
  • Incompetente
  • Acéfalo
  • Cú de burro (Beavis & Butt-Head rox!)

Segue abaixo o post original. Ignorem-o por enquanto. Segunda-feira mudo ele para o que for decidido ;D

 

 

Que tal se ao pesquisarmos por filho da puta no Google o primeiro site que aparecerá for o do Renan Calheiros? Já imaginaram! Nós blogueiros temos o poder para isso se nos unirmos! Este é um meme aberto para todos. Vamos repetir o sucesso do Google Bomb que fizeram no Senado. Desta vez o alvo é o próprio Renan Calheiros! Já coloquei no meu blogroll o site dele e o nome filho da puta.

Se esses políticos escrotos não nos levam a sério vamos fazê-los perceber que somos mais fortes do que eles imaginam. Vamos fazer seus pesadelos se tornarem realidade atacando-os com nossa mais poderosa arma, a Internet! Vamos lá, todo mundo colocando o link para site dele da seguinte forma: filho da puta

O endereço de seu site é http://www.senado.gov.br/renan/

Basta colocar o link para o site e o nome filho da puta. Hehehehe! Vamos fazer desta campanha um sucesso. Conto com todos vocês, não só como blogueiros e webmaster, mas principalmente como brasileiros que já se cansaram de tanta pizza, de toda essa impunidade, de toda essa palhaçada. Desses políticos escrotos defecando pela boca. De idiotas defendo eles com a máxima “todo mundo rouba”. Vamos acabar com essa crença estúpida de que não existe mal em roubar se outros roubam. O que é certo é certo e o que é errado é errado, não importa se está ou não na moda e nem quantas pessoas ou quais pessoas estão fazendo!

Vamos chutar o balde e com essa atitude dar um tapa na cara desse senador escroto e de toda aquela corja de políticos corruptos e sem caráter.

Enviem esse texto para seus amigos, repliquem o post em seus blogs, escrevam novos posts divulgando a campanha, sigam o meme, passem a corrente. Vamos mostrar nossa indignação e fazer essa campanha ir para a frente!

Technorati Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Se você gostou deste post, pode me pagar um café que servirá como um excelente combustível para que eu escreva mais posts ;)

Telefônica terá que indenizar usuários

Já faz um tempo que li e estou postando apenas hoje por falta de tempo. Antes tarde do que nunca ;)

http://www.morroida.com.br/images/telef1.gif

Estava lendo o blog All Bits quando me deparei com uma ótima notícia.

“O juiz federal Marcelo Freiberger Zandavali, da 3ª Vara Federal de Bauru, condenou a Telefônica a indenizar clientes atuais e antigos do serviço de banda larga “Speedy” pela contratação de provedor de internet. A decisão da Justiça também proibe que a empresa de telefonia exija a contratação de provedor para o acesso ao serviço de internet de alta velocidade. A sentença atendeu a uma ação do Ministério Público Federal de 2003.”

Outra ótima notícia é que a Telefônica está proibida de exigir provedor para o Speedy. Finalmente a Justiça foi feita e esses picaretas da Telefônica não poderão mais fazer venda casada ;)

Mas o melhor mesmo é saber que a Telefônica terá que pagar indenização a todos os usuários e ex-usuários do Speedy. Vamos aproveitar e cobrar o que a Telefônica nos deve. A Justiça fez sua parte, agora cabe a nós fazermos a nossa pois com certeza a Telefônica não vai ligar para seus clientes e ex-clientes dizendo que deve a eles indenização e que vai pagar. Tenho certeza que eles ficarão quietinhos para que ninguém saiba e quando formos cobrar eles vão dar um jeito de evitar pagar. Vamos fazer nossa parte pois com certeza a Telefônica deve pagar cada centavo que deve pela exploração, venda casada, roubo, péssimo serviço, incompetência, mal atendimento e todos os tapas que já deram na cara de nós clientes. Vamos fazer esses filhos da puta pagarem cada centavo!!!!

Ah, vamos correr porque parece que os filhos da puta da Telefônica já estão recorrendo para tentar manter o provedor para o Speedy.

Enquanto escrevo isso estou com meu Speedy mais uma vez sem conectar já faz mais de uma hora. Servicinho vagabundo -.- Não vou xingar tanto aqui porque estou sem forças para isso. Se quiserem ler minha opinião sobre a Telefônica e o Speedy bastam ler o post “Speedy está uma merda” que escrevi em outro dos muitos dias em que não consegui conectar essa bosta!

Termino esse artigo dizendo: “Telefônica… Vai tomá no cú!”

Referência: All Bits

Technorati Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Se você gostou deste post, pode me pagar um café que servirá como um excelente combustível para que eu escreva mais posts ;)

Cesar Brod, the brazilian Miguel de Icaza

Miguel de Icaza, best known for projects like Gnome, Mono, Moonlight etc, have a clone here in Brazil. Cesar Brod. Cesar Brod is already well known by the brazilian Free Software comunity for his works and all other things he’d already have done for the Free Software. He didnt only write a lot of articles about GNU/Linux and Free Software, but also participated in a debate against Microsoft.

His company, Brod Tecnologia, pays services nowadays to Microsoft. Normally I wouldnt have anything against partnerships and deals, not even those that are done with companies like Microsoft. The only problem is that these deals sometimes seems to change radically the opinions of the people involved with M$. Very ($$$$$)weird($$$$$)….

Like many already know, some weeks ago happened the final meeting of ABNT to talk Brazil’s vote about document standarts ODF and OOXML. I wont say much, because there are a lot of information and opinions about it in lots of blogs and sites. In Avi Alkalay’s (from IBM Brazil) blog, you can find informations and impressions about the meeting that happened in ABNT.

Lots of companies where in the meeting. The YES came from Micro$oft, Unesp (thats a shame! A public college! Shame on you Unesp!), SUCESU-SP, Microsoft Partners Association, some regional companies and some smaller companies (all companies that share a bed with Steve Ballmer). The NO came from companies and Government Institutions like MCT, ITI, MP, Banco do Brasil, Caixa Econômica, Correios, Serpro, Celepar etc and companies like BrOffice.org, Rede Livre, ODF Alliance and companies like Sun, Red Hat, 4Linux, IBM, Metrô de São Paulo, Google and some others.

One thing that lots of people thought weird was Cesar Brod’s YES with comments. Lot of people tried to understand his vote reading two articles that he published on the site Dicas-l. In the first article, published last month, he talks about standarts doing comparation with VHS and Betamax.
In the second article, published the same day that I posted the original version (in portuguese) of this article, he tries to explain why he voted for OOXML.

If you allow me, I’ll comment some lines of his two articles:

“I’m concerned about the future… I know I wont resist and I’ll end up buying a VHS or a Betamax, praying that most people comes up with the same decision that I had. But, what if some crazy guy creates something that can record and play audio and video at the same time? Will this crazy guy care about my tape collection, my LPs, and create something that not only play the “new one”, but also the “old ones”? I doubt! A proof of this are recorders and tape players. Do anyone of them plays the old roll tapes that we used some years ago?”

Ok, ok, my dear! So microwaves shouldn’t be made… Just figure it out! What will poor housewifes do with all the pans they have in their kitchen? Metal in the microwave = shit! OMG!!!!! Pans are doomed!!!! Ops… We’re in 2007 and we have microwaves at such a long time. Weird, there is also a stove and a lot of pans in my kitchen. Some days ago I even made my delicious GNU/Macarrão for my girlfriend ;)

“I still bet that, if in the future, someone care about creating standarts that respects compatibility with all that have already been made before, this guy will be called crazy or something else! But, what if all “this that was created before” are only informations, documents that are part of an entire enterprise information? Millions and millions of texts and spreadsheets!”

Microsoft never gave a damn about respecting compatibility with other softwares like OpenOffice. Do you prefer to be stuck in old documents than accepting a change to a more open and clear new standart? Companies wont lose their informations just because of a change in the standarts. A new format can be adopted, but this doesn’t means that older formats and their softwares will be extinguished from Earth. I’ll make an analogy like the one you used in your examples: I have DVD’s but I also watch some VHS. I also listen to LPs, even though I have CDs. I only have more options now ;)

“What a waste of time thinking about it. Its so easy to throw things away! I dont know, I think that when I have more then 40 years I’ll still want to listen to my old LPs…”

Just like I said before, I didnt have to throw my tapes away. I also keep my LPs. I still have all of them: Queen, Alice Cooper, Extreme, Judas Priest, Faith No More, Alan Parson’s Project and a lot more that I listen when I want ;)

“There are over 40 billion documents saved in Microsoft’s binary format. These documents, opened with new Office versions and saved in OpenXML, becomes more accessible by lots of applications that now uses texts and sheets and can be the base for search systems for collective knowledge, business intelligence, among a lot more, that can even be developed like Free Software and Open Source.”

This is sad, dont you think? It seems that whenever another software’s compatibility becomes closer to these formats, Micro$oft releases a new version with some modifications in these documents. The worst of it all is the usually, the final user, ends up thinking that this is OpenOffice’s blame or that there is a problem in Linux and it all finishes with the end user saying: “Let’s call the computer guy and he will install Windows, World and Excel for less than 25 dollars!”. M$ like’s it. Microsoft never had any interest in opening their documents. Just when ODF was created that Microsoft came with this OOXML, a bad standart (if we can call it a standart ¬¬) with a lot of binary parts.

I don’t think I need to do more comments about it. A lot of people in the comunity already know about it and a lot of articles around the web talks about this subject. I think that my deception with Cesar Brod’s vote is not a surprise, just like I also know that a lot of other people also didn’t like his vote. This is sad… Weren’t Novell, Xandros, Linspire and Miguel de Icaza enough? Maybe these people only use Free Software and the community to make money, something that I really despise! But who am I to criticize people’s financial, ideological, political and technological preferencies…? What can I say if some guys think that Bill and Ballmer’s dollars are greener?

It was sad to me to write this article. All I can say is that next time I hear or read the name César Brod I will remember the title of this post: “César Brod, the brazilian Miguel de Icaza!”

(Sorry about my bad english! I tried to do a free translation of my own article and some parts of Cesar Brod’s article that are here! If there’s something you can’t understand, just ask me and I’ll try to translate it better ;) my original article (in portuguese) is here!)

Technorati Tags: , , , , , , , , , f="http://technorati.com/tag/ABNT" rel="tag">ABNT, , , , , , , , , , , , , , , , , , , , , , , , , , ,

Se você gostou deste post, pode me pagar um café que servirá como um excelente combustível para que eu escreva mais posts ;)

Java: Segunda Aula (Orientação a Objetos)

Para explicar orientação a objetos, podem ser feitas comparações com o mundo real, onde vemos objetos como pessoas, animais, plantas, carros, aviões, casas, prédios, computadores, televisões, rádios etc. Os programas de computador também podem ser compostos de objetos que, as vezes, podem ser dividos em duas categorias: animados e inanimados.Os objetos animados são, em certo sentido, “vivos” (se movem e fazem coisas). Os inanimados, por outro lado, não são capazes de fazer coisas por conta própria. Entretanto, ambos os tipos de objetos tem coisas em comum, como atributos (forma, tamanho, cor…) e comportamentos (por exemplo, um carro que acelera).

Diferentes objetos podem ter atributos semelhantes e exibir comportamentos semelhantes. É possível fazer comparações, por exemplo, entre humanos e chimpanzés, entre homens e mulheres, entre carros e motos etc.

Brincando um pouco

Vamos pegar um pincel como exemplo e dar uma olhada em suas características:

  • Cor
  • Formato
  • Espessura
  • Tamanho
  • Material

Se temos dois pincéis, um vermelho e um azul, as características são as mesmas. A única diferença entre os dois é a cor do pincel e de sua tinta. Eles pertencem ao mesmo objeto, pois tem as mesmas características. A única coisa que é mudada é a informação de cada atributo.

Se cada um dos atributos tem um determinado valor, devemos indicar qual o tipo de informação que está em cada um deles. A cor é de que tipo? String. Formato também é string, espessura é float etc.

String cor;
String formato;
float espessura;
float tamanho;
String material;

Como podem ver, definimos o tipo do objeto e as informações que serão armazenadas em cada um deles. Para transformarmos isso em algo que Java entenda, basta colocarmos o ; no final de cada um e botar dentro da classe:

public class pincel
{
    String cor;
    String formato;
    float espessura;
    float tamanho;
    String material;
}

Brincando mais um pouco

Vamos aqui definir uma classe carro:

public class carro
{
    float rodas;
    String cor;
    int portas;
    float motor;
    String portamala;
}

Extendendo…

Vamos agora criar a classe veiculo:

public class veiculo
{
    int freios;
    String cor, modelo;
}

Agora usamos o extends para suas respectivas subclasses (carro e moto):

public class carro extends veiculo
{
    String estepe, limpador;
}
public class moto extends veiculo
{
    String manete;
}

O comando extends herda as características de outro método. Aqui no exemplo, usamos para que as subclasses moto e carro herdem as características da classe veiculo.

Como as subclasses de veiculo herdarão os atributos de veiculo, a classe veiculo obviamente deverá ter atributos que serão comuns a suas subclasses.

Mão na massa

Vamos criar um programinha simples para fazer cadastro de animais. Vamos primeiro criar a classe animais (salve o código em um arquivo chamado animais.java).

public class animais {
    String comida, sexo;
}

Agora vamos criar suas subclasses (mamiferos, aves e peixes). Lembrando mais uma vez que cada um deve ser salvo em um arquivo com seu respectivo nome (mamiferos.java, peixes.java e aves.java).

public class mamiferos extends animais {
    String tipo_pelo;
    String especie;
}
public class peixes extends animais {
    String cor_escamas;
    float tamanho;
}
public class aves extends animais {
    int idade;
    String cor_pena;
}

Agora que já criamos a classe animais e suas respectivas subclasses, vamos criar o programa principal para entrada dos dados de cada tipo de animal (salve o código em um arquivo chamado cadastro.java)

import java.util.*;

public class cadastro
{
    public static void main(String args[])
    {
        System.out.println("nnCADASTRO DE ANIMAIS:nn1. Peixesn2. Avesn3. Mamiferosnn4. Sairn");
        System.out.printf("Escolha a opção: ");
        Scanner resp = new Scanner(System.in);
        int respo = resp.nextInt();

        animais objAnimais = new animais();

        Scanner sc_line = new Scanner(System.in);
        Scanner sc_int = new Scanner(System.in);
        Scanner sc_float = new Scanner(System.in);

        System.out.printf("fDigite a comida de seu animal: ");
        objAnimais.comida = sc_line.nextLine();
        System.out.printf("nDigite o sexo de seu animal: ");
        objAnimais.sexo = sc_line.nextLine();

        if (respo==1)
        {
            peixes objPeixes = new peixes();

            System.out.printf("nDigite o tamanho do peixe: ");
            objPeixes.tamanho = sc_float.nextFloat();

            System.out.printf("nDigite a cor das escamas do peixe: ");
            objPeixes.cor_escamas = sc_line.nextLine();

            System.out.println("nnFoi cadastrada um peixe que mede " + objPeixes.tamanho + "cm(s)!" + (objPeixes.tamanho >= 10 ? " É um peixe grande" : " É um peixe pequeno") + "!");
            System.out.println("O peixe tem escamas de cor " + objPeixes.cor_escamas + "!n");
        }

        if (respo==2)
        {
            aves objAves = new aves();

            System.out.printf("nDigite a idade da ave: ");
            objAves.idade = sc_int.nextInt();

            System.out.printf("nDigite a cor das penas da ave: ");
            objAves.cor_pena = sc_line.nextLine();

            System.out.println("nnFoi cadastrada uma ave de " + objAves.idade + " ano(s)!");
            System.out.println("A ave tem penas cor " + objAves.cor_pena + "!n");
        }

        if (respo==3)
        {
            mamiferos objMamiferos = new mamiferos();

            System.out.printf("nDigite o tipo de pelo: ");
            objMamiferos.tipo_pelo = sc_line.nextLine();

            System.out.printf("nDigite a espécie: ");
            objMamiferos.especie = sc_line.nextLine();

            System.out.println("nnFoi cadastrado um mamifero de pelo " + objMamiferos.tipo_pelo + "!");
            System.out.println("O mamífero é " + objMamiferos.especie + "!n");
        }

        System.out.println("O animal come " + objAnimais.comida + " e seu sexo é " + objAnimais.sexo + "nn");
    }
}

No cadastro.java começamos importando a biblioteca java.util.* que é necessária para o uso do Scanner. Foram feitos 3 Scanners (sc_int, sc_float e sc_line), pois é necessário um Scanner para cada tipo de variável. Como foram usados 3 tipos (int, float e String), criamos um Scanner para cada um de seus respectivos tipos. Alguns comandos foram usados para criar um objeto. Por exemplo, animais objAnimais = new animais(); cria um objeto animais e o atribui a objAnimais. Com isso podemos usar, por exemplo, o atributo objAnimais para chamar objetos da classe animais (comida e sexo, que foram chamados da seguinte forma: objAnimais.comida e objAnimais.sexo)

Um dos System.out.println foi feito da seguinte forma:

System.out.println(”\n\nFoi cadastrada um peixe que mede ” + objPeixes.tamanho + “cm(s)!” + (objPeixes.tamanho >= 10 ? ” É um peixe grande” : ” É um peixe pequeno”) + “!”);

Isso porque foi usado o operador ternário. Com ele fizemos um teste para ver direto dentro do System.out.println o valor que foi inserido na variável tamanho (dentro do objeto peixes, por isso, objPeixes.tamanho). Antes do interrogação (?) foi feita a verificação se o valor era maior ou igual a 10. Se essa condição for verdadeira, o System.out.println mostra a frase ” É um peixe grande”. Se a condição for falsa, ele mostra a frase ” É um peixe pequeno”.

Agora que já foi tudo explicado certinho vamos compilar o programa e rodar:

javac cadastro.java (se quiser, pode também usar javac *)
java cadastro

Prontinho, nosso primeiro programinha “orientado a objetos” ;D

Technorati Tags: , , , , , , , , , , , , , , , , , , , , , , , ,

Powered by ScribeFire.

Se você gostou deste post, pode me pagar um café que servirá como um excelente combustível para que eu escreva mais posts ;)

Administração Mercadológica: Terceira Aula

Esta aula tem apenas como finalidade mostrar a estrutura de um Plano de Marketing. Vamos começar agora a traçar alguns objetivos estratégicos. De modo geral a estrutura de um plano de marketing é bastante simples, podendo ser divida em:
  1. Análise Interna
  2. Análise Externa
  3. Estratégias de Marketing
  4. Orçamento
  5. Acompanhamento

Análise Interna da Organização

  • Histórico da empresa
  • Pontos Fracos
  • Pontos Fortes

Podemos ter, por exemplo, o objetivo de reposicionar um produto. Lembram-se do caso das havaianas que foi mostrado na primeira aula? As havaianas foram objetos de reposicionamento. A empresa não fez isso por acaso. Foi feito um planejamento. Pode ser que a empresa tenha percebido uma queda nas vendas do produto após um estudo de seu ciclo de vendas, o que levou-a a fazer reposicionamento. Foram criadas mais formas de uso, mais modelos, diferentes estilos, alguns conforme a moda, diferentes lançamentos etc.

Para reposicionar uma marca é necessário investimento. Devemos, portanto, ter retornos.

Análise Externa da Organização

  • Macroambiente (variáveis que afetam os setores de forma geral. Por exemplo: inflação que afeta todas as empresas de todos os ramos, tecnologia, aspectos culturais, variação do Dóllar etc.)
  • Microambiente (forças próximas à empresa que afetam a ela própria. Por exemplo: a própria empresa, os fornecedores, os mercados-consumidores, os concorrentes etc.)

Estratégias de Marketing

  • Planos de Ação
    • Plano de Mídia
    • Programação
    • Atribuições
  • Posicionamento
  • Produto
  • Preço
  • Distribuição
  • Comunicação/Promoção

Orçamento

Custo total da implementação do plano. É necessário aqui confirmar que o retorno justifique o investimento.

Acompanhamento

Powered by ScribeFire.

<