Tag Archives: conceito

Zend Framework, CakePHP, Symfony, CodeIgniter! PHP Hypertext pre o que mesmo?

Qual a sua preocupação na fluência em uma linguagem?
Qual a sua preocupação em aprender mais um framework?

Quando entramos no mercado de trabalho, a principal pergunta que você terá que responder é:
Trabalha com qual framework?

Em tempos atuais é muito mais importante o conhecimento em um framework que a própria fluência e conhecimento da linguagem que o framework é desenvolvido. Tem profissional que só dá atenção para a alguma funcionalidade nova na linguagem, quando quebra um projeto, ou quando o próprio framework exige. Será que as coisas não estão invertidas?

É subtendido que a linguagem é dominada ou conhecida, mas as coisas não são bem assim. A linguagem se tornou coadjuvante nessa história toda, mas com certeza, independente do framework que o profissional quiser aprender, a fluência na linguagem é essencial, seus conceitos, características, origens, evolução, etc. Digo mais, dependendo do framework, só a fluência na linguagem não é suficiente! Mas essa é outra história.

Tem dado a devida importância para a sua linguagem de programação?
Tem acompanhado o seus releases? em em em?

Pense nisso, e clique no link abaixo que mais lhe interessar!

Até a próxima!

 

Java Update Release Notes
http://www.oracle.com/technetwork/java/javase/releasenotes-136954.html

PHP Releases
http://php.net/releases/index.php

Ruby News
http://www.ruby-lang.org/en/news/

O que é uma Startup?

Existem vários conceitos para definir uma Startup, mas o mais aceito é:

Startup é uma instituição de pessoas, que procuram um modelo de negócio repetível e escalável, trabalhando sob condições de extrema incerteza. by EricRies

Vamos as palavras chaves da frase pra conseguir entender 100% o conceito.

modelo de negócio: é a descrição de como a empresa cria, entrega e gera valor. Em outras palavras, como a empresa conseguirá ganhar dinheiro.

repetível: possibilidade de entregar o mesmo produto de forma ilimitada, sem maiores esforços para isso.

escalável: é a característica da empresa conseguir crescer cada vez mais, sem que seus custos cresçam na mesma proporção, aumentando seus lucros e tornando o negócio cada vez mais rentável.

extrema incerteza: por que incerteza? Incerteza por não se poder afirmar se a idéia vai ou não dar certo, “92% dos empresários de sucesso que foram um dia Startup, afirmam que mudaram o target, mudaram o produto, mudaram absolutamente tudo mais de uma vez”.  by Sílvia Valadares

Nem toda nova empresa é uma Startup, na verdade é um tipo específico de nova empresa.

Startup é um embrião de uma empresa, que conseguiu identificar um problema, necessidade ou teve uma ideia inovadora, e tenta através do seu trabalho ter rentabilidade, em uma escala teóricamente ilimitada.

Startup são somente de tecnologia? Não, empresas que trabalham com tecnologia, mais específicamente Internet, são mais baratas, e conseguem “testar” os seus produtos de uma forma mais dinâmica, agilizando o processo de descoberta do modelo de negócio, o que facilita o processo, mas existem empresas não relacionadas com Internet que são Startup.

Mas quem paga o processo de descoberta do modelo de negócio, se nessa etapa a empresa tem seus custos e não existe uma renda? É aí que entra o capital de risco, são eles que bancam os custos, claro que levando alguma coisa em troca.

Como estou imerso nesse mundo e digerindo todo o tipo de conteúdo relacionado a Startup e Empreendedorismo, achei importante reativar o meu blog com um post conceito. Estou amadurecendo umas idéias, que com certeza serão catalisadoras de novos posts.

Como todo caminho tem que ter o seu início, creio que esse post marca o início de uma nova jornada.

Abraço e até a próxima.

Referências

TEDxFIAP – Yuri Gitahy – “Passe adiante”
http://www.youtube.com/watch?v=rJpNJT32VD8

TEDxFIAP – Sílvia Valadares – Vida longa e próspera para sua startup
http://www.youtube.com/watch?v=QgcRSdqIrZc

Lean Startup
http://www.slideshare.net/rafavitoriano/lean-startup-10690646

O que é uma startup?
http://exame.abril.com.br/pme/dicas-de-especialista/noticias/o-que-e-uma-startup

What’s A Startup? First Principles.
http://steveblank.com/2010/01/25/whats-a-startup-first-principles/

Iniciando em Ruby on Rails

Em uma das minhas visitas à livraria, comprei um livro de Ruby on Rails e estou achando fascinante as possibilidades que a combinação do Ruby e do Rails possibilitam para nós que desenvolvemos web sites. O Ruby é uma linguagem de programação que tem origem no Japão, é totalmente Orientada a Objetos e inicialmente era utilizada para desenvolvimento de aplicativos e sistemas não client-server, sua sintaxe é simples e direta.

O propósito do Rails é tornar mais fácil desenvolver, instalar e mantes aplicativos Web, utilizam a arquitetura MVC, alé disso, quando se cria um projeto Rails, ele automaticamente cria todo o “esqueleto”, relacionei essa estrutura, quando utilizamos um framework tipo Code Igniter pro PHP, após “deszipar” o arquivo do Code Igniter, surge toda uma estrutura, a única diferença é que no Rails essa estrutura é criada em tempo real. O Rails cria automaticamente programas temporários de testes “stubs”para as novas funcionalidades que vão sendo adicionadas.

Rails utiliza também alguns outros conceitos: DRY – Don’t Repeat Yourself – Não se Repita – que emprega que todo conhecimento de um sistema deve ser escrito em um único determinado local, ORM – Object-Relational Mapping, que utiliza as tabelas do banco de dados para definir os models, não há a necessidade de escrever um model, eles automaticamente são mapeados para as classes, suas linhas para objetos e suas colunas para atributos, portanto quando modificamos um banco automaticamente isso é refletido para a aplicação, Convention over configuration – essa convenção diz basicamente que deve-se assumir valores padrão onde existe uma convenção.

Uma coisa que achei bem interessante são os migrations, todas as modificações no banco de dados são documentadas pelo Rails, na verdade as modificações são escritas no Rails e ele mesmo as executa no banco de dados, há um controle sobre as modificações no banco, podendo ser aplicadas em outro banco com por exemplo a deploy da aplicação ou até mesmo desfazer uma modificação.
Suporte integrado ao AJAX e RESTful.

Tudo isso e muito mais é resultado da combinação de 5 componentes:

  • Active Record – mapeamento objeto-relacional (Model do MVC);
  • Action Pack – compreende o Action-view e o Action-Controller (Visão e Controller do MVC);
  • Action Mailer – suporte a envio de recebimento de e-mails;
  • Active Support – coleção de classes e extensões;
  • Action Webservices – implementa WSDL e SOAP;

O discurso dos evangelistas do Rails me lembra muito os designers da Apple, a história do “Estado da Arte”, que é a busca constante pela simplicidade, praticidade, design, perfeição, facilidade. Até onde estão os meus estudos o Rails está suprindo muito bem essas espectativas, é claro que como qualquer outra linguagem de programação é possível escrever um código sujo, mas garanto que ela facilita muito as boas práticas, ela dá suporte a diversos gems que automatizam determinados processos e diversos plugins que expandem as funcionalidades da sua aplicação sem muito esforço.

Caso esteja interessado em iniciar seus estudo também segue algumas dicas:

Livro: Desenvolvimento Web Ágil com Rails – Link Saraiva – foi o livro que comprei.

Podcast: Podcast Ruby on Rails Brasil com Fábio Akita e Carlos Eduardo Brando – só não espere escutar somente coisas sobre Rails, os caras são sinistros, os assuntos vão de Cloud Computing a Compiladores, de Jruby a Rails! Muuuito bom mesmo (Open Your Mind). Estou fazendo uma sessão Rails Podcast Brasil, escutando todos desde o início.

Blogs em pt-BR: http://akitaonrails.com do Fábio Akita e http://www.nomedojogo.com Carlos Brando – estão sendo as minhas referências de Ruby on Rails.

Bom sobre Rails hoje é só, vou postar mais coisas com o desenrolar dos estudos.

Com relação ao Streaming, estamos finalizando outra etapa do projeto, estou preparando um Screencast junto com o pessoal que está participando do projeto comigo.

O que é um Banco de Dados?

Estou sem tempo ultimamente, pra não ficar muito tempo sem postar, vou reunir meus posts do outro blog. (www.blogdaweb.com.br).

Abraços e fico devendo um post sobre o evento da empresa, que aconteceu em setembro, falando de Streaming.

O que é um banco de dados?
Como saber identificar um banco de dados?
Não tem a mínima idéia? Então esse post é pra você.

Entendemos como banco de dados, um conjunto de dados organizados, é planejado e construído para um propósito específico possuindo assim um conjunto de usuários e aplicativos pré-definidos, tem como base de seu projeto o mundo real, onde é chamado de mini-mundo, qualquer modificação nas características do mini-mundo refletem diretamente no banco de dados.
O banco de dados é mantido por aplicativos desenvolvidos especialmente para esse fim, são chamados de SGBD – Sistema Gerenciador de Banco de Dados ou em inglês DBMS – Database Management System, sua função é possibilitar aos usuários criar, consultar, editar e excluir dados do banco de dados, para as mais diversas aplicações. Alguns dos SGBD`s mais conhecidos são:

Comerciais
Oracle: http://www.oracle.com
DB2: http://www-306.ibm.com/software/data/db2/
Sybase: http://www.sybase.com.br/
MS SQL Server: http://www.microsoft.com/sql/default.mspx

Open Source
MySQL: http://www.mysql.com
Postgre SQL: http://www.postgresql.org
Firebird: http://www.firebirdsql.org/


Banco de dados vs. Gerenciador de arquivos (SGBD`s vs. GA`s)
Algumas características são necessárias para que um sistema de manipulação de dados seja considerado um SGBD. Caso alguma das características abaixo não for um atributo do sistema de manipulação de dados avaliado, o mesmo não pode ser classificado como um SGBD, resumindo, para ser um SGBD o software deve necessáriamente ter as características abaixo, caso não tenha ele pode ser classificado como um gerenciador de arquivos.

• Auto-contenção: um SGBD armazena mais que os dados em sí (dados do mini-mundo) como também toda a descrição dos dados, seus relacionamentos, e formas de acesso. Esta regra é conhecida como Dicionário de Dados.
• Independência dos dados: nenhuma definição dos dados poderá estar contida na aplicação que utiliza o SGBD para armazenar os dados. Portanto modificações na forma de acesso aos dados, novos indices não podem afetar a aplicação.
• Abstração dos dados: um SGBD fornece ao usuário apenas uma representação conceitual dos dados, normalmente é utilizado um Modelo de Dados para fornecer essa abstração, sendo assim um SGBD não fornece informações sobre a criação dos indices, ou como serão mantidos, ou qual relação entre as tabelas que deverá ser mantida íntegra.
• Visões: um SGBD deve permitir que cada usuário visualize os dados de uma forma diferente daquela existente fisicamente no banco de dados.
• Transações: um SGBD deve gerenciar completamente a integridade referencial dos dados definida em seu esquema, sem precisar em nenhum momento da ajuda do aplicativo para executar essa tarefa. Sendo assim um SGBD deve possuir pelo menos uma instrução que permita a execução de instruções simultâneas (execuções de vários comandos, um em seguida do outro) e um único comando que desfaça todas essas execuções, em outras palavas, ou executa todos os comandos ou não executa nenhum.
• Acesso automático: um SGBD deve gerenciar o acesso aos dados com o intúito de evitar DEADLOCKS sem a necessidade de auxílio da aplicação. Um exemplo de DEADLOCK é, um usuário A está esperando a liberação de um registro que está sendo acessado por um usuário B e usiário B espera a liberação de um registro que está sendo acessado pelo usário A, esse bloqueio mútuo é chamado de “abraço mortal” pois o usuário A e o B não vão conseguir acessar os registros.

Abraços….. até a próxima…

Fábio Tomio