Quando atualizei o Kernel para a versão 4.0, o Virtualbox parou de funcionar, exibindo, inclusive mensagens de erro durante o boot.
Segundo o ticket bug #13835, o problema já foi corrigido na versão 4.3.24 cabendo apenas atualizá-lo.
Até o momento dessa publicação o VirtualBox 4.3.24 ainda não estava nos repositórios padrão do Debian. Para verificar atualizar, basta seguir o passo a passo abaixo como root:
# echo "deb http://download.virtualbox.org/virtualbox/debian wheezy contrib non-free" >> /etc/apt/source.list
# wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
# apt-get update
# apt-get install virtualbox-4.3
Mutucas, Pneu, Borboleta e Vitamina D
Ontem sai para pedalar com meu pai. Achei bem estranho a gente ter conseguido sair da garagem. Sempre que tento fazer tal coisa chove, o PCC faz um toque de recolher e um grupo alienígena de dinossauros invadem a terra.Enfim, o plano era irmos até Paranapiacaba, estava indo tudo bem não fosse elas, da ordem dos diptera, as "Mutucas". Você pode dizer "O Carlos é fresco. Tem medo de tudo". Mas dessa vez foi demais, até meu pai estava reclamando, era possível as ver nos perseguindo na sombra.
Teve uma que me atacou de tal forma, que quando estava indo embora, perguntei onde estava o meu suco e meu pão com mortadela. Depois de doar tanto sangue o mínimo era ter um lanche.
Quando já tínhamos pedalado uns 6 km, o pneu da minha bicicleta furou.
Sem problemas! Somos prevenidos. Temos, bomba de ar, remendo e ferramentas. Só não esperávamos que a bomba de ar quebraria na primeira bombeada. Bora voltar pedalando 6 km com o pneu furado.
Enquanto quicava no banco da bicicleta, eis que surge uma borboleta. Voltemos a frase "Tem medo de tudo", só que dessa vez eu tive motivos para ter medo. A borboleta queria ter relações sexuais comigo. Ela entrou na minha bermuda e não queria sair. Sorte que eu não estava de samba canção.
Eu achei estranho, a um nível ridículo, meu pai sair pra pedalar de calça jeans. Segundo ele, ele só se sente bem pedalando assim. Mas depois da aparição da borboleta, eu até o entendo.
Pelo menos eu tenho Vitamina D acumulada para no mínimo uns 5 anos. O sinal dessa minha super-dosagem é a vermelidão que está presente em boa parte do meu corpo.
Moral a história:
Gostava mais quando o grupo alienígena se juntava ao PCC e não deixava eu sair pra andar de bicicleta com meu pai.
Criando quadrados responsivos
No projeto que estou trabalhando atualmente, tive a necessidade de criar quadrados responsivos.
Criar um quadrado é muito fácil, não? Basta setar a altura igual a largura e estamos felizes. Porém, por se tratar de um quadrados responsivo, estamos pensando em porcentagem.
Se eu definir um quadrado com 10% de largura e 10% de altura. Adivinha o que vai acontecer? Você acertou! Não será um quadrado
Depois de muito tempo estudando uma maneira de fazer um quadrado responsivo, cheguei a seguinte solução:
O padding é sempre relativo a largura, logo, se você definir a altura do elemento com 0 e o padding-bottom com a porcentagem da altura você terá o resultado esperado. Segue exemplo abaixo:
Criar um quadrado é muito fácil, não? Basta setar a altura igual a largura e estamos felizes. Porém, por se tratar de um quadrados responsivo, estamos pensando em porcentagem.
Se eu definir um quadrado com 10% de largura e 10% de altura. Adivinha o que vai acontecer? Você acertou! Não será um quadrado
Exemplo:
10% x 10%
Depois de muito tempo estudando uma maneira de fazer um quadrado responsivo, cheguei a seguinte solução:
O padding é sempre relativo a largura, logo, se você definir a altura do elemento com 0 e o padding-bottom com a porcentagem da altura você terá o resultado esperado. Segue exemplo abaixo:
Guia para Designers: Website Responsivo
O que são Frameworks?
Sempre me perguntam o que é esse tal de Framework que eu sempre falo. Framework nada mais é do que um conjunto de elementos pré-definidos que ajudam a nós desenvolvedores não ficarmos reinventando a roda.Nesse post trabalharei com o Bootstrap do Twitter. Há vários outros, porém a ideia desse post não é ensinar a usar frameworks front-end e sim exemplificar os conceitos de um website responsivo.
Grids
Acredito que esse seja o ponto mais importante quando estamos falando de website responsivo. Os grids são o que mandam na forma que o seu conteúdo irá aparecer.
A primeira coisa a se considerar é qual vai ser a largura do site. Por padrão o Bootstrap trabalha com 1170px de largura no modo responsivo, caso a tela seja menor que 1170px ele passa a assumir 940px, depois 724px, após isso o site fica fluido, ou seja, todos os elementos assumem 100% da página.
Temos 12 tamanhos de colunas diferentes que se encaixam perfeitamente e serão dentro dessas colunas que você colocará o conteúdo do seu site.
Veja um exemplos de colunas aqui: http://maniero.tk/bootstrap/grids.html
Temos 12 tamanhos de colunas diferentes que se encaixam perfeitamente e serão dentro dessas colunas que você colocará o conteúdo do seu site.
Veja um exemplos de colunas aqui: http://maniero.tk/bootstrap/grids.html
Mostrando e ocutando elementos
Uma prática necessária na criação de layouts responsivos é a de mostrar e ocultar elementos na página dependendo do dispositivo que está acessando o site. Um exemplo de utilização dessa prática na criação de Menus. Dificilmente um menu localizado no Header fica bom na navegação mobile, então deve ser criado uma versão para os dispositivos mobile.Bootstrap em PSD
O Bootstrap possui diversos outros elementos que podem ser aproveitados também no layout, assim como botões icones, navbars, etc. Você pode baixar os elementos do Bootstrap em PSD aqui: http://www.bentdesignstudio.com/v2/2012/03/twitter-bootstrap-2-photoshop-template-psd/Conclusão
Espero que esse artigo possam ajudar a vocês "amigos designers" (se é que existe amizade entre programadores e designers, hehe) a esclarecer dúvidas básicas de como funciona um website responsivo. Se surgirem dúvidas eu atualizarei essa postagem.BikeSampa: Experiência
Não, programador não vive só sentado na frente do computador tomando café e digitando na "telinha preta". Tenho hobbies é um deles é pedalar. Adoro a sensação de vento na cara.
Assim que vi as bikes do Itaú espalhadas pela cidade, fiquei encantado. Logo procurei fazer meu cadastro.
Nos primeiros dias comecei a ter problemas. A estação 82 (Shopping Santa Cruz) nunca está disponível. Meu trajeto começa no Shopping Santa Cruz e vai até a Dr. Barcelar (Vila Clementino). Porém devido a essa indisponibilidade tenho que andar até a estação Altino Arantes (estação 83).
Fora isso, em um único dia, peguei uma bicicleta com pneu furado. Devolvi e procurei outra, mas estava com o pedivela com problemas. Só em uma terceira tentativa, encontrei uma bike em estado razoável.
Porém, não tive tantos problemas no estado das bicicletas, as boas pelos 10 reais pagos para dois anos de utilização.
Mas hoje confesso que fiquei tremendamente decepcionado com o serviço, já tive problemas em desbloquear uma bicicleta e ela não sair, porém, bastava ligar novamente e desbloquear outra. Hoje foi diferente. Para começar só havia duas bicicletas na estação (isso não é um problema, sei que tem bastante gente usando) e além de mim, havia outra garota, aparentemente com problemas para desbloquear a bicicleta. Era uma bicicleta para cada. A bicicleta na posição 8 se recusou a sair, minha reação natural foi ligar e pedir para que fosse desbloqueada novamente.
A bicicleta não saiu e ainda ficou como "em uso", o que era para ser um meio alternativo de chegar ao trabalho para poupar tempo, acabou me custando meia hora de atraso.
De qualquer forma, amanhã tentarei usar novamente o serviço, entre pegar um ônibus, ir andandado ou ir de bicicleta, eu ainda prefiro ir de bicicleta, mesmo tendo mais dor de cabeça.
Espero mesmo que o Itaú melhore o serviço, afinal, acho um serviço incrível.
![]() |
| Aqui estou eu indo trabalhar de bicicleta. |
Nos primeiros dias comecei a ter problemas. A estação 82 (Shopping Santa Cruz) nunca está disponível. Meu trajeto começa no Shopping Santa Cruz e vai até a Dr. Barcelar (Vila Clementino). Porém devido a essa indisponibilidade tenho que andar até a estação Altino Arantes (estação 83).
Fora isso, em um único dia, peguei uma bicicleta com pneu furado. Devolvi e procurei outra, mas estava com o pedivela com problemas. Só em uma terceira tentativa, encontrei uma bike em estado razoável.
Porém, não tive tantos problemas no estado das bicicletas, as boas pelos 10 reais pagos para dois anos de utilização.
Mas hoje confesso que fiquei tremendamente decepcionado com o serviço, já tive problemas em desbloquear uma bicicleta e ela não sair, porém, bastava ligar novamente e desbloquear outra. Hoje foi diferente. Para começar só havia duas bicicletas na estação (isso não é um problema, sei que tem bastante gente usando) e além de mim, havia outra garota, aparentemente com problemas para desbloquear a bicicleta. Era uma bicicleta para cada. A bicicleta na posição 8 se recusou a sair, minha reação natural foi ligar e pedir para que fosse desbloqueada novamente.
A bicicleta não saiu e ainda ficou como "em uso", o que era para ser um meio alternativo de chegar ao trabalho para poupar tempo, acabou me custando meia hora de atraso.
De qualquer forma, amanhã tentarei usar novamente o serviço, entre pegar um ônibus, ir andandado ou ir de bicicleta, eu ainda prefiro ir de bicicleta, mesmo tendo mais dor de cabeça.
Espero mesmo que o Itaú melhore o serviço, afinal, acho um serviço incrível.
Portifólio
Depois de um longo tempo prometendo criar um portifólio, finalmente está pronto. Fiz no modo pastel com CodeIgniter. Agora só basta ter tempo para alimentá-lo.
Segue o link: http://www.maniero.tk/
Segue o link: http://www.maniero.tk/
Jquery com MTV(MVC) - Jquery MTVe
"Model-view-controller (MVC) é um modelo de desenvolvimento de Software, atualmente considerado uma "arquitetura padrão" utilizada na Engenharia de Software." - Fonte: http://pt.wikipedia.org/wiki/MVC
Nada é mais problemático nos dias de hoje quanto a falta de padronização nos projetos. Após uma procura na internet encontrei alguns frameworks MVC para javascript, mas, nenhum me agradou. Alguns me pareceram bem completos, mas, não me atendiam muito bem.
Achei de bom senso criar um próprio, coloquei algumas ideias no papel e cheguei a uma primeira versão. Ele deveria ser leve, de fácil utilização e o mais simples possível.
Tentei aproximar ao máximo a forma do Framework Django trabalhar, e cheguei a seguinte estrutura:
Primeiramente, entre na página no GitHub do projeto serão necessários os arquivos que estão dentro da pasta src.
O método "profile" retorna os dados do meu perfil e o find_profile retorna os dados de um usuário qualquer.
O método load:
Como você deve ter percebido ambos os métodos do modelo utilizam o método load. Ele é o método responsável em fazer as requisições via Ajax. E possui os seguintes parâmetros:
Para chamar um método ou acessar um atributo, usa-se o método get.
Exemplos:
model.get('me');
model.get('profile')();
O método template usa o jQuery.tmpl, ele ainda não está em faze final, mas, está bem estável. Então esse será o conteúdo do nosso template:
HTML: https://github.com/carlosmaniero/jQuery-MTVe/blob/master/demos/demo1.tmpl
Os arquivos de template podem ser salvos com a extensão tmpl ou escrito em forma de texto, no exemplo salvaremos em um arquivo .tmpl.
Javascript:
Renderizando um template:
Para renderizar um template, basta utilizar o método método get passando como parâmetros o nome do atributo e o objeto que será usado para substituir no template.
Exemplo:
template.get('profile',json);
Vamos ao javascript:
Javascript:
O exemplo completo você encontra na pasta demos do projeto.
Nada é mais problemático nos dias de hoje quanto a falta de padronização nos projetos. Após uma procura na internet encontrei alguns frameworks MVC para javascript, mas, nenhum me agradou. Alguns me pareceram bem completos, mas, não me atendiam muito bem.
Achei de bom senso criar um próprio, coloquei algumas ideias no papel e cheguei a uma primeira versão. Ele deveria ser leve, de fácil utilização e o mais simples possível.
Tentei aproximar ao máximo a forma do Framework Django trabalhar, e cheguei a seguinte estrutura:
- Model
- Template
- View
- events
Primeiramente, entre na página no GitHub do projeto serão necessários os arquivos que estão dentro da pasta src.
Model:
Nosso modelo irá fazer uma requisição na graph api do Facebook. Ela terá dois atributos. Um será chamado "me" ele armazenará o meu username e outro chamado "base" que será utilizado para requisitar dados de perfil de outros usuários.var model = $.Model({
me : 'carlos.maniero',
base : 'http://graph.facebook.com/',
profile : function() { return this.load('GET', this.base + this.me ); },
find_profile : function(username) { return this.load('GET', this.base + username ); },
});
O método "profile" retorna os dados do meu perfil e o find_profile retorna os dados de um usuário qualquer.
O método load:
Como você deve ter percebido ambos os métodos do modelo utilizam o método load. Ele é o método responsável em fazer as requisições via Ajax. E possui os seguintes parâmetros:
- type: GET ou POST
- url: Endereço da requisição
- data: Json com dados a serem enviados
- options: Opções do método jQuery.ajax
Para chamar um método ou acessar um atributo, usa-se o método get.
Exemplos:
model.get('me');
model.get('profile')();
Template:
O método template usa o jQuery.tmpl, ele ainda não está em faze final, mas, está bem estável. Então esse será o conteúdo do nosso template:
HTML: https://github.com/carlosmaniero/jQuery-MTVe/blob/master/demos/demo1.tmpl
Os arquivos de template podem ser salvos com a extensão tmpl ou escrito em forma de texto, no exemplo salvaremos em um arquivo .tmpl.
Javascript:
var template = $.Template({
profile : 'demo1.tmpl'
});
Renderizando um template:
Para renderizar um template, basta utilizar o método método get passando como parâmetros o nome do atributo e o objeto que será usado para substituir no template.
Exemplo:
template.get('profile',json);
View (Controlador):
"O controlador (controller) recebe a entrada de dados e inicia a resposta ao utilizador ao invocar objetos do modelo, e por fim uma visão baseada na entrada. Ele também é responsável pela validação e filtragem da entrada de dados." - Fonte: http://pt.wikipedia.org/wiki/MVCVamos ao javascript:
var view = $.View({
profile : function(){
var data = $.parseJSON(model.get('profile')());
$("table").append(template.get('profile',data));
},
find_profile : function(username){
var data = $.parseJSON(model.get('find_profile')(username));
$('table').append(template.get('profile',data));
}
});
Events:
Nos eventos ficarão todas as função que serão usadas em nossos elementos.Javascript:
var events = $.Events({
profile : function(evt){
evt.preventDefault();
view.get("profile")();
$(this).attr('disabled','true');
},
find_profile : function(evt){
evt.preventDefault();
var username = $("input[name=username]").val();
view.get("find_profile")(username);
}
});
$("#button_profile").click(events.get('profile'));
$("#button_find_profile").click(events.get('find_profile'));
Como eu disse anteriormente ele é bem simples, porém, bastante útil.O exemplo completo você encontra na pasta demos do projeto.
Assinar:
Postagens (Atom)
