Dica -Twitter Bootstrap

O que é?

O Twitter Bootstrap é uma toolkit voltada para desenvolvimento rápido e prático de aplicações e websites. Ele já vem com tipografia definida, botões, formulários, tabelas, grids, navegação e muito mais.

Suporte

 

 

  • Última versão do Safari
  • Última versão do Chrome
  • Firefox 4++
  • Internet Explorer 7+
  • Opera 11+

Work with Less

O Bootstrap foi construído para ser usado também com o Preboot que funciona em conjunto com o Less, um CSS preprocessor. Veja mais detalhes no site do bootrap.

Javascript Plugins

Além do CSS toolkit o Bootstrap também fornece diversos plugins feitos usando jQuery com recursos bem legais. Dê uma olhada nos plugins no site do bootstrap.

Recomendo à todos que dêem uma olhada e conheçam o site do projeto que na minha opinião é muito bom.

Logo menos posto casos de uso aqui.

Integrando Doctrine 2.1 com CodeIgniter 2.1.0

Requisitos:

  • PHP 5.3+
  • Apache rewrite_module habilitado
  • Short_open_tag habilitado no PHP.

Downloads:

Extraindo o CodeIgniter:

Após o download do Doctrine/CodeIgniter e ter verificado as configurações de seu PHP e Apache, extraia o CodeIgniter em sua pasta /www/ como em uma instalação qualquer.

Em seguida faça o download do Doctrine e siga os passos à seguir.

Extraindo o Doctrine:

Assim que terminar o download do package do Doctrine, o arquivo virá com a basicamente essa estrutura de diretórios:

estrutura doctrine

Estrutura Doctrine

Você deve copiar o diretório “Doctrine” inteiro para a pasta /application/libraries/ do seu CodeIgniter. Resultando em algo parecido com isto:

estrutura codeigniter

Estrutura CI

Criando o plugin Doctrine:

Após ter feito a extração dos packages, será necessário criar um novo plugin para que possa ser carregado dentro do CodeIgniter.

Crie um novo arquivo PHP chamado Doctrine.php e salve ele dentro da pasta /application/libraries/Doctrine.php com o seguinte conteúdo.

<?php

use Doctrine\Common\ClassLoader,
Doctrine\ORM\Configuration,
Doctrine\ORM\EntityManager,
Doctrine\Common\Cache\ArrayCache,
Doctrine\DBAL\Logging\EchoSqlLogger;

class Doctrine {

public $em = null;

public function __construct()
{
// carrega as configurações do db do ci
require_once APPPATH.'config/database.php';
require_once APPPATH.'libraries/Doctrine/Common/ClassLoader.php';

$doctrineClassLoader = new ClassLoader('Doctrine',  APPPATH.'libraries');
$doctrineClassLoader->register();
$entitiesClassLoader = new ClassLoader('models', rtrim(APPPATH, '/'));
$entitiesClassLoader->register();
$proxiesClassLoader = new ClassLoader('Proxies', APPPATH.'models/proxies');
$proxiesClassLoader->register();

// configurando os memcaches
$config = new Configuration;
$cache = new ArrayCache;
$config->setMetadataCacheImpl($cache);
$config->setQueryCacheImpl($cache);

// carregando os drivers
$Doctrine_AnnotationReader = new \Doctrine\Common\Annotations\AnnotationReader($cache);
$Doctrine_AnnotationReader->setDefaultAnnotationNamespace('Doctrine\ORM\Mapping\\');
$driver = new \Doctrine\ORM\Mapping\Driver\AnnotationDriver($Doctrine_AnnotationReader, APPPATH.'models');
$config->setMetadataDriverImpl($driver);

// configuração de proxy
$config->setProxyDir(APPPATH.'/models/proxies');
$config->setProxyNamespace('Proxies');

$config->setAutoGenerateProxyClasses( TRUE );

// Database connection information
$connectionOptions = array(
'driver' => 'pdo_mysql',
'user' =>     $db['default']['username'],
'password' => $db['default']['password'],
'host' =>     $db['default']['hostname'],
'dbname' =>   $db['default']['database']
);

// cria EntityManager
$this->em = EntityManager::create($connectionOptions, $config);
}
}

OH YEAHHH!

Pronto. Seu Doctrine está integrado ao CodeIgniter.

Para usar os recursos como o EntityManager e outros, basta carregar a library dentro do seu controller:

$this->load->library("doctrine");

E em seguinda chamar o EntityManager:

$em = $this->doctrine->em;

Observações:

Existem também outras maneiras de se fazer essa integração, escolhi essa forma pois foi achei ela mais prática e simples. É possível também carregar o Doctrine no autoload do CI, como fazemos com qualquer outro plugin.

Algo interessante a se fazer também é criar sua própria extensão da classe Controller e já deixar o EntityManager pré carregado, pois ter que ficar usando toda vez “$em = $this->doctrine->em;” acaba sendo meio incômodo.

Sem mais, agora é só alegria.

GridFS no MongoDB

Segunda-feira escrevi um post no NoSQL.com.br falando sobre o MongoDB e sobre a classe GridFS.

http://www.nosqlbr.com.br/gridfs-no-mongodb.html

Espero que gostem ;)

O NoSQL MongoDB

Ao desenvolver o escopo de um novo projeto recentemente, dei de topo com um problema que ultimamente tem causado náuseas ha vários desenvolvedores: Como tornar minha aplicação com um enorme volume de dados e acessos, escalável e confiável?

E foi em busca desse “sonho” que acabei me interessando por bancos de dados NoSQL. Entre as diversas opções e tipos de banco NoSQL acabei me interessando cada vez mais pelo MongoDB, que é document-oriented database. Achei fantástico principalmente sua facilidade de uso e velocidade. Parti então para os testes e fiquei ainda mais surpreso. 750 mil transações em 0.9 segundos? É possível isso?

Sim, é perfeitamente possível. Sua estrutura permite gerir com grande eficáncia volumes de dados monstruosos e com uma velocidade impressionante.

Como ainda tive muito pouco tempo para criar uma aplicação completa usando o MongoDB e ir afundo em seus recursos, limito meu post até aqui, mas com base em alguns anos de experiência e muitos socos no estômago afirmo “esses tais NoSQL vieram mesmo pra botar pra quebrar”.

Agradecimentos especiais à toda comunidade NoSQL BR, @osuissa e todos que contribuíram e contribuem atualmente para popularizar os bancos NoSQL. E em breve vou criar mais conteúdo sobre os NoSQL.

Offline

Pessoal, peço desculpa à todos os visitantes do blog pelos links quebrados (praticamente todos). Mas é que infelizmente ando sem tempo de consertá-los e também de postar coisas novas no blog.

Mas eu ainda tenho esperanças de arranjar um tempo! ;)

Manipulando classes com jQuery

Neste breve post vou ensinar como utilizar a jQuery para manipular várias classes ao mesmo tempo.

Mexendo em todas ao mesmo tempo, por exemplo colocando uma cor de fundo em cada elemento com a classe “minha_classe”.

$(".minha_classe").css({ backgroundColor: "#000" });

Agora, suponha que temos um menu qualquer do site com os links home e contato.
E queremos que a cada vez que o usuário clicar em dos links, troque-se a cor do mesmo, e ao mesmo tempo, quando o usuário clicar no outro, este volte ao normal e a cor do fundo do outro seja modificada.

$(".classeDoLink").click(
   function(){
      // aqui, voltamos as cores de fundos de TODOS links para
      // para a cor padrão, que é amarelo
      $(".classeDoLink").css({ backgroundColor:"yellow" })
      
      // agora vamos pegar somente o link que realizou o evento
      // para que somente ele fique com a cor vermelha
      $(this).css({ backgroundColor: "red" })
   }
)

Market Share, Agosto de 2008

Browsers: (top 5)
1- I.E. 7 (46,79%) {-}
2- I.E. 6 (25,17%) {-}
3- Firefox 2.0 (11,51%) {-}
4- Firefox 3.0 (7,74%) {++}
5- Safari 3.1 (4,80%) {+}

Global Search Engines: (top 5)
1- Google (79,03%) {+}
2- Yahoo (11,58%) {-}
3- MSN (3,46%) {+}
4- AOL (2,27%) {-}
5- MS. Live Search (1,54%) {-}

Global Operating Systems: (top 5)
1- Windows (90,66%) {-}
2- Mac (7,86%) {+}
3- Linux (0,93%) {+}
4- iPhone (0,30%) {+}
5- Playstation (0,04%) {=}

Legenda:
{+} => Subiu até 1%*
{++} => Subiu em 2% ou mais*
{-} => Caiu em até 1%*
{–} => Caiu em 2% ou mais*
{=} => Permaneceu no mesmo patamar*
*em relação à pesquisa do mês anterior

Market Share, Julho de 2008

Pesquisa Market Share realizada no mês de julho, com acessos mundiais.

Browsers: (top 5)
1- Internet Explorer 7.0 (47,10%)
2- Internet Explorer 6.0 (25,74%)
3- Firefox 2 (13,02%)
4- Firefox 3 (5,67%)
5- Safari 3.1 (4,39%)
Representando no total 95,92% dos acessos.

Search Engines Global: (top 5)
1- Google (78,16%)
2- Yahoo (12,03%)
3- MSN (2,86%)
4- AOL (2,45%)
5- Microsoft Live Search (2,34%)
Representando no total 97,84% das buscas realizadas na internet.

Operation Systems: (top 5)
1- Windows (91,02%)
2- Mac (7,76%)
3- Linux (0,82%)
4- iPhone (0,19%)
5- Playstation (0,04%)
Representando no total 99,83% dos acessos à internet

Um item interessante a se observar, é que nesta última pesquisa o engine search da AOL acabou superando o Live Search, da Microsoft e assumindo a quarta posição no ranking mundial. Pois é Microsoft, nem pagando (saiba o porquê aqui, quando a Microsoft conseguir voltar o site ao ar ;)

À procura de um nerd?

Belo texto retirado do Nerd fêmea.

Excelente texto Viviane, vale a pena a leitura. Segue o link.

Obrigado pela contribuição à nossa cultura. =)

Postado ao som de: Avenged Sevenfold – Afterlife

Pensamento #2

Bom, estive meio afastado do blog ultimamente por diversos motivos. Um deles (e o pior) é a falta de tempo, ou talvez a má administração dele, isso eu ainda não sei.

Enfim, fica um pensamento.

Pouco conhecimento faz com que as pessoas se sintam orgulhosas. Muito conhecimento, que se sintam humildes.

Leonardo da Vinci

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.