Code can be magic?

Bella E-commerce
Bella E-commerce – Code can be magic

Hello everyone!

Yesterday i’ve started an ambitious personal project, create an full SOA E-commerce platform called Bella.

Why it is a big thing? Well, i’ve worked with software development at last 15 year, and i tried a lot of platforms, cmss, erps, e-commerces, and i really learned a lot of things about software engineering, specially on Lamp world.

And at last 5 years i’m very focused on e-commerce area, and i could see up close how the popular open source platforms are poor from the point of view of software engineering, usability, and mainly focus on the user business.

Because this, i think this can be better, this can be simpler, this can be magic!

And i started to create an simple, elegant, faster, and business focused e-commerce platform  called Bella.

I know it will not be easy, will not be fast, but i have patience and it will be done.

At this time you can checkout the project on github, analyse the Magic Model Data who automatic create columns and filter data on Bella API, and can follow the development of the project.

See you later!

O que é Lean Software Development?

Lean Software Development – Saiba mais sobre a metodologia LEAN que foi importada dos processos industriais para  o mercado de software.

Olá leitores, fazia muito tempo que não publicava um artigo por aqui, porém como precisei escrever uma resenha para o curso de MBA que estou fazendo, aproveitei e adaptei o texto aqui para o blog, sobre um assunto que entendo ser bem relevante e que pretendo discutir com mais detalhes durante os próximos meses, o tópico de hoje é a metodologia Lean Software Development, que se encontra na área de métodos ágeis de gestão de projetos.

O desenvolvimento de software no modelo Lean, ou (LSD), nada mais é do que uma adaptação da metodologia industrial de mesmo nome (Lean Manufacturing), adequada aos paradigmas do desenvolvimento de software e da realidade de TI, ou seja, este modelo de desenvolvimento se dá com base nas mesmas premissas e características do modelo Lean tradicional.

Mas afinal o que é Lean?

Lean, pode ser traduzido como enxuto, ou seja manufatura enxuta, é uma metodologia de produção com foco principal na redução de desperdício em sete áreas específicas:

  • super-produção,
  • tempo de espera,
  • transporte,
  • excesso de processamento,
  • inventário,
  • movimento
  • defeitos

Além do foco na redução do desperdício nestas áreas o Lean Manufacturing tem como pontos chave: qualidade total e imediata, melhoria contínua, processos pull e flexibilidade.

Lean Software Development

De onde surgiu o conceito?

Tendo como objetivo o aumento de produtividade, redução de desperdício e aumento da qualidade dos produtos essa metodologia foi desenvolvida inicialmente Toyota nos anos 90 partindo dos pilares da metodologia JIT (Just in Time) e da automação inteligente.

Esse conceito se confunde a tal ponto com a história da Toyota que a metodologia por vezes é chamada de Toyota Dna ou Sistema Toyota de Produção.

Mas como esse conceito foi aplicado ao desenvolvimento de software?

O termo Lean Software Development foi utilizado por Mary Poppendieck e Tom Poppendieck em livro de mesmo nome que apresenta os conceitos de Lean aplicados ao desenvolvimento de software, neste livro são discutidas 22 ferramentas e são comparadas as metodologias ágeis.

Os autores defendem os seguintes paradigmas para o desenvolvimento de software:

  • Eliminar perdas
  • Ampliar o conhecimento e estudo
  • Decidir o mais cedo possível
  • Entregar o mais rápido possível
  • Aumentar o poder do time
  • Aumentar a integridade do software
  • Ver o software como um todo

Cada um destes conceitos apesar de possuir correlação os paradigmas originais da metodologia Lean, são minuciosamente detalhados pelos autores através de ferramentas, processos e ações que permitem a equipe atingir os resultados propostos pela metodologia.

Porém Lean necessita de uma mudança de cultura e hábitos da companhia e seus membros para que esta possa desfrutar dos ganhos que os processos enxutos podem trazer.

Concluindo…

Apesar de ter surgido de um conceito industrial, as idéias centrais da metodologia Lean pode ser aplicada aos processos de desenvolvimento de software conseguindo desta maneira ampliar os resultados alcançados reduzindo os desperdícios e aumentando a qualidade de forma consistente.

How to activate vQmod on Opencart?

Know how can you install vQmod on your Opencart Store, the first step to use the best modules developed to the e-commerce system.

Hello everyone, at last few years a big part of my time was spend developing and holding e-commerce projects with Opencart platform, and still of their problems, has been quite reliable for medium-sized projects.

On this tutorial, i will explain step by step what you have to do to activate vQmod system on your Opencart Store and use hundred of plugins who were built ahead this system

If you alread have doubts about how this works with Opencart, ready the article: “How VQmod works on Opencart?

Its time to install!

Step 1:
Download the most recent vQmod package in this link: https://code.google.com/p/vqmod/downloads/list

Step 2:

Unzip  the package content on the root folder of your application, creating an vqmod folder on the application root, like the image below:

Step 3:

You need to make write permissions on the following files:
yourstore/index.php
yourstore/admin/index.php
yourstore/vqmod/mods.cache
yourstore/vqmod/vqcache
yourstore/vqmod/logs

Step 4:

Access on web browser the address yourstore.com.br/vqmod/install

If everything was OK, you will receive an success message, and otherwise a warning to give permission for any file that has been lacking.

After the install will can start to use modules and extension who need this system, for that you nesse to put the xml file on yourstore/vqmod/xml

Thats it! Easy an simple! Until the next!

 

How Vqmod works with Opencart?

Know about how Vqmod works in Opencart platform and how they will make better the platform customisation process

VQmod no Opencart
VQmod no Opencart

Hello people, today is day of hands os in this blog, and i will continue the posts serie about Opencart Platform and and as I promised, today i will explain how VQmod works and how they make your life better!

What is VQmod?

Conceptually it is an simple idea: you make small patches for platform php core system files, tracing what and when this will be changed, and defining if is an REPLACE or one INSERT of code.

After that, VQMOD will change the original PHP file on execution time, applying your patch and creating a new version of this file on the CACHE folder and indicate to APACHE to read this folder instead the original folder.

Why use VQmod on Opencart?

Unfortunately Opencart does not have an good update and customisation
system, because that every time we need to update system the only way to do that is copying the new files overwriting the old files and doing that many improvements and customisations are lost.

It is precisely to improve this scenario that the VQmod works to encapsulate and separate your own customisations and improvements, allowing quietest updates on the system.

How to install VQmod on Opencart?

The process is quite simple, first download the package here, unzip on main system folder, after that access the install folder from any browser.

You will need to do some permission on the Cache folder and the Mods.cache file.

After that everything will be fine, and you can start to create your own XML files

I hope I have helped, until the next!

Linguagens, Frameworks e Plataformas quem é quem?

Saiba um pouco mais sobre essas definições e conheça quem é quem nesse universo.

Bom dia pessoal, vez por outra me pego conversando com alguém sobre esse assunto e tentando explicar a diferença entre linguagens, frameworks e plataforma, seu apara amigos, clientes ou usuários do blog. Por esse motivo, nesse post vou tentar esclarecer um pouco mais esse assunto que confunde tanta gente.

Hierarquia

O primeiro ponto que precisamos entender é a hierarquia, linguagens, frameworks e plataformas estão, nessa sequência, em níveis hierárquicos diferentes, aqui a regra de ouro é entender que: Linguagens constroem frameworks e frameworks constroem plataformas, simples assim como na figura abaixo.

A hierarquia de frameworks, linguagens e plataformas

Linguagens

As linguagens de programação são a base dos frameworks, e nesse ponto, creio que existam poucas dúvidas sobre o que é uma linguagem de programação, mas vamos a definição.

Linguagem de programação é um conjunto de regras e sintaxes capazes de em conjunto criar uma solução de software.

Como exemplo temos, PHP, ASP, C#, JAVA, Python, Ruby, e aqui é importante frisar que não citei o HTML, justamente por que ele não é uma linguagem de programação e sim uma linguagem de marcação.

Frameworks

Antes, de falar dos frameworks, é interessante entender a sua origem. Durante o processo de desenvolvimento de software diversas vezes caímos em situações repetitivas e que ja foram resolvidas anteriormente, por você ou por outros programadores, e é nesse prisma que surgem os frameworks, com o objetivo de agregar funcionalidades que já foram desenvolvidas anteriormente e disponibilizar ao desenvolvedor.

De forma simples, você pode entender um framework como uma caixa de ferramentas que o desenvolvedor tem a disposição para criar uma solução, nessa linha temos por exemplo: Zend, Rails, .Net, Struts.

Veja na tabela abaixo os mais comuns:

Plataforma

Por fim chegamos as plataformas, que são em última instância, software, funcional, instalado e passível de utilização por usuários finais, não desenvolvedores. Nessa categoria temos diversas sub-categorias de plataforma, como, CMS, Erp, E-commerce, etc…

É nesse momento que surgem, Drupal, WordPress, Joomla, Plone, Magento, Opencart dentre outros.

Um bom resumo disso é: o Php, constrói o Zend Framework, que por sua vez, constrói o Magento e-commerce, simples assim!

Até a próxima!

Como ativar o Vqmod no Opencart?

Saiba como ativar o VQmod em sua loja Opencart, pré-requisito indispensável para os melhores módulos e plugins criados para a plataforma.

Olá pessoal, nos últimos anos tenho passado boa parte do meu tempo implantando e mantendo projetos de comércio eletrônico sob a plataforma Opencart, que apesar de seus defeitos tem se mostrado bem confiável para projetos de médio porte. 

Neste turorial vou explicar o passo a passo que você deve seguir para ativar o Vqmod (sistema de alteração virtual de scripts)  em sua loja Opencart e assim poder utilizar centenas de módulos e plugins que foram criados para a plataforma em cima desse sistema.

Se você ainda tem dúvidas sobre o que é e como funciona o Vqmod, leia esse outro artigo: “Como funciona o VQmod no Opencart?

Vamos a instalação?

Passo 1:
Faça o download do pacote mais atualizado no link: https://code.google.com/p/vqmod/downloads/list

Passo 2:

Descompacte o conteúdo no pacote na raíz de sua aplicação, criando assim uma pasta chamada vqmod na raiz do seu sistema, assim como esta na imagem abaixo:

Passo 3:

Você precisa dar permissão de escrita nos seguintes arquivos:
sualoja/index.php
sualoja/admin/index.php
sualoja/vqmod/mods.cache
sualoja/vqmod/vqcache
sualoja/vqmod/logs

Passo 4:

Acesse via browser o endereço sualoja.com.br/vqmod/install

Caso tenha ocorrido tudo certo, você receberá uma mensagem de sucesso, e caso contrário um alerta para dar permissão em algum arquivo que tenha faltado.

Após a instalação basta começar a utilizar os módulos e extensões que necessitam do Vqmod instalado, para isso, basta adicionar o xml do módulo na pasta: sualoja/vqmod/xml

É isso, simples e prático! Até a próxima

 

O que é desenvolvimento de software iterativo?

Saiba o que significa desenvolvimento iterativo e como ele pode lhe ajudar a entregar software com qualidade e dentro dos prazos

Bom dia pessoal, hoje é terça-feira, e vou iniciar uma nova série de posts aqui no blog que tem como tema engenharia de software, assunto que pretendo estudar bastante nos próximos meses e pretendo compartilhar o que aprender aqui nestes espaço.

Basicamente, segundo a definição de Margaret Rouse, desenvolvimento iterativo é uma forma de “quebrar” o desenvolvimento de uma grande aplicação em pequenos pedaços de software.

No desenvolvimento iterativo, cada ciclo de desenvolvimento deve contemplar:

  • Levantamento de requisitos
  • Análise a arquitetura da solução
  • Implementação
  • Testes
  • Distribuição
Abaixo você pode ver uma abordagem visual do conceito proposto pelo RUP:
RUP - Desenvolvimento Iterativo

O produto de cada iteração apesar de incompleto do ponto de vista visual e de integração deve permitir seu uso total e testes pelo usuário final mantendo qualidade de produto final.

Cada nova iteração de incluir novas funcionalidades as iterações anteriores, ampliando desta forma o escopo da solução. Normalmente o desenvolvimento iterativo é usado em conjunto com uma metodologia Agil de desenvolvimento que irá controlar o escopo da implementação daquela iteração.

De forma geral cada iteração ou ciclo tem um período e escopo curtos que giram em torno de duas semanas e ao seu final deve gerar código funcional que dever ser demonstrado e validado pelo cliente.

O desenvolvimento iterativo contrasta com o modelo tradicional de desenvolvimento de software baseado em cascata e que envolve o usuário final apenas nas etapas inicial, durante o levantamento de requisitos e final após a entrega do produto, e tem demonstrado uma melhor capacidade de entrega de projetos de software com sucesso.

Veja abaixo o modelo Waterfall:

O propósito do desenvolvimento iterativo esta em permitir um processo mais flexível a mudanças de escopo durante o processo de desenvolvimento do produto reduzindo desta forma os riscos de falha no projeto de desenvolvimento de software.

Para vinalizar veja o vídeo abaixo uma pequena explicação sobre este conceito:

É isso pessoal, essa é apenas uma pequena introdução ao assunto que pretendo abordar aqui no blog todas as terças-feiras, até a próxima.

Melhorando o desempenho de seu banco de dados do Opencart!

Saiba como você pode de forma simples aumentar o desempenho de sua loja Opencart com alguns pequenos ajustes no banco de dados.

Oi pessoal tudo bom? Hoje é terça-feira, dia de colocar a mão na massa, ou melhor, no código aqui no blog e como ultimamente tenho falado bastante do Opencart, hoje vou continuar no assunto, mas antes leia alguns dos posts que já fiz sobre a plataforma.

O problema com o banco de dados do Opencart

Nesse período de mais de dois anos que venho trabalhando diariamente com o Opencart, consegui conhecer algumas de suas vantagens e desvantagens e posso dizer com tranquilidade que um dos maiores problemas da plataforma esta em seu banco de dados, porém esse problema pode ser minimizado aplicando algumas pequenas alterações no banco.

Vamos a elas?

Índices, sim eles existem

Por incrível que pareça o pessoal que desenvolveu o Opencart não teve muita preocupação com a criação de índices a grande maioria das tabelas possui apenas um único em indice que contempla apenas a chave primária.

Quem já lidou com grandes bancos de dados sabe da importância desta prática e o quanto ela reduz o tempo das consultas.

Você pode criar índices em todas as tabelas do banco de dados, mas vou listar aqui as que julgo mais importante e o comando para você criar os índices:

Tabela de Produtos (product)

#Indice para fabricantes
 CREATE INDEX manufacturer ON `oc_product` (`manufacturer_id`)
#Indice para status de estoque
 CREATE INDEX stock_status ON `oc_product` (`stock_status_id`)
#Indice para o status
 CREATE INDEX status ON `oc_product` (`status`)

Tabela de Pedidos (order)

#Indice para loja
 CREATE INDEX store ON `oc_order` (`store_id`)
#indice para cliente
 CREATE INDEX customer ON `oc_order` (`customer_id`)

Chaves estrangeiras, elas podem ajudar

Outra boa prática é a criação de chaves estrangeira e que tenham remoção de dados em cascata, desta forma se você remover um produto diretamente no banco todas os dados vinculados ao produto em outras tabelas serão também removidos.

Esse é um processo longo e um pouco mais complexo pois envolve mexer em diversas tabelas, no caso de produto são 16 tabelas vinculadas, mas pode ter certeza que o esforço vai valer a pena, pois sua base de dados vai ficar sempre homogênea.

Veja abaixo o exemplo da criação da chave na tabela product_to_category que é responsável por vincular os produtos as categorias do sistema.

O primeiro passo é alteras as tabelas envolvidas pra o tipo Innodb:
 ALTER TABLE `product` ENGINE=InnoDB
 ALTER TABLE `product_to_category` ENGINE=InnoDB
#cria a chave estrangeira com a tabela produto
 ALTER TABLE `oc_product_to_category` ADD CONSTRAINT `product_id` FOREIGN KEY ( `product_id` ) REFERENCES `oc_product` ( `product_id` ) ON DELETE CASCADE ON UPDATE CASCADE ;

Não altere o banco!

Por fim a última dica que eu tenho sobre melhorar o desempenho do banco de dados é: não altere o banco de dados e sobre alterar estou falando em criar campos, renomear colunas etc…

Fazendo isso você pode quebrar referências e prejudicar e muito sua loja Opencart além de dificultar e muito o processo de atualização.

Se precisar crie novas tabelas, mas não altere as tabelas do sistema.

É isso pessoal essas foram algumas dicas que podem melhorar o desempenho da base de dados do Opencart e consequentemente aumentar a velocidade e os resultados de sua loja Opencart.

Até amanhã!!!

Conheça o Hello e nunca mais perca nenhum contato!

Saiba como esse aplicativo vai aumentar sua produtividade na organização de contatos e manutenção do histórico de reuniões

Bom dia pessoal, como foi o fim de semana? Espero que muito bem, como vocês sabem segunda-feira é dia de trazer dicas de produtividade aqui no blog. Se você não acompanhou os últimos posts não perca:

  • Aumente sua produtividade com Alfred no Mac
  • Descubra onde você gasta seu tempo com RescueTime

Mas vamos a dica do dia:

O problema…

Todas as semanas fazemos diversas reuniões, conhecemos pessoas e discutimos diversos assuntos, porém, não raro é comum encontrarmos depois de algum tempo um “bolo” de cartões de visita na mesa ou na gaveta, sem conseguir ligar mais o nome a pessoa.

Até pior do que isso é quando em uma segunda reunião você não se lembra o nome de alguém ou o assunto discutido ou até quando você conheceu a pessoa.

A solução…

Para resolver esse problema o pessoal que criou o Evernote, um dos mais famosos softwares de produtividade desenvolveu um aplicativo chamado Hello que permite a você apenas tirar uma foto do cartão de visita e o App identifica todos os dados e te permite criar um contato diretamente na sua agenda além de permitir que você descreva quando, onde e como conheceu aquele contato.

Outro ponto muito interessante do aplicativo é já integrar com o Linkedin e Facebook permitindo que você já se conecte ao perfil do novo conhecido, tudo em poucos toques e da forma mais simples possível.

Ah, todos os seus dados vão para nuvem em sua conta Evernote que fica acessível em todas as plataformas.

Ficou curioso? Assista o vídeo sobre o aplicativo abaixo:

O Hello pode ser baixado gratuitamente na AppStore e no Android MarketPlace.

Bom por hoje é isso pessoal, espero que a dica ajude vocês a não perder mais nenhum contato, até amanhã!

Tags x Meta-tags no Opencart em 3 minutos!

Saiba como utilizar as Tags e as Meta-tags de forma correta para melhorar o desempenho de sua loja.

Bom dia pessoal, hoje é sexta feira, dia de falar sobre dicas de usabilidade, seo e interface aqui no blog, e dessa vez quero falar em 3 minutos de um tema simples e que diversas vezes se torna um ponto de confusão para administradores de lojas que utilizam a plataforma Opencart, trata-se do uso de Tags e de Meta-tags.

 Tags x Meta-tags

As meta-tags

Apesar de gerar alguma dúvida essa é uma questão muito simples, as meta-tags são palavras que definem o conteúdo da página e que serão utilizadas pelos buscadores (Google, Bing) para indexar o seu site, ou seja quanto mais descritivas melhor.

Veja a definição do W3c para as meta-tags:

The <meta> tag provides metadata about the HTML document. Metadata will not be displayed on the page, but will be machine parsable.

Ou seja é um conteúdo destinado a leitura por máquinas e não aparecerá no conteúdo da página, desta forma preocupações com formatação e etc são desnecessárias, sendo o foco principal a contextualização do conteúdo.

As tags do Opencart

Talvez o ponto principal de dúvida seja o nome adotado pelo Opencart, pois as tags do sistema nada mais são do que uma taxonomia que agrupa produtos que tenha alguma relação, por exemplo: Você possui uma loja de roupas, em quer exibir produtos relacionados ao inverno, ao invés de criar uma categoria Inverno você simplesmente utiliza uma TAG com o nome inverno em todos os produtos que tem relação com esta tag.

Desta forma todos os produtos serão agrupados em uma url própria, e o link para as tags que o produto participa será exibido no rodapé da página de produto, de forma similar ao que ocorre no sistema WordPress.

É isso simples e fácil, meta-tags buscador, tags agrupamento, e você aproveita melhor sua loja Opencart, até sexta que vem com mais dicas de usabilidade e SEO.