
Pro Git é um livro muito bom se voce ja conhece um pouco de git e quer se aprofundar mais, ou se voce nao conhece e quer conhecer bem.
Nele voce vai aprender sobre controle de versao distribuido, workflows para melhor utilização dos recursos do git, melhores praticas com git. Alem disso voce aprenderá a instalar e configurar um servidor git, a como gerenciar e colaborar com projetos e inclusive a extender o git.
O livro pode ser lido capitulo por capitulo se voce nao sabe nada sobre Controle de versao distribuido. Ou voce pode ler somente os capitulos que lhe interessam, se voce ja tem um conhecimento basico do git.
Na amazon.
Ou voce pode ler no proprio site do livro. Ou voce pode baixar do github.
Recentemente comecei a aprender C. Sim eu não sei C, não tive na faculdade e sempre senti falta de saber melhor como as coisas funionavam por dentro do computador, já que minha maior experiencia em programação é com python, que é uma linguagem de altissimo nivel.
Com C voce trabalha mais perto da maquina, direto com bytes, alocação de memoria, tem que fazer as estruturas de dados.
E pra aprender eu escolhi estudar pelo livro Learn C The Hard Way do Zed Shaw. É um livro que te instiga a estudar os conceitos por voce mesmo, ensina em cima de exemplos bem praticos e eficientes, te adiciona ao ecossistema da linguagem, apresentando ferramentas e tecnicas que vao te ajudar a pensar em C.
Uma das coisas que ele me instigou a estudar foi todos os possiveis formatos e suas variações para o printf, a função que escreve na saida padrão (o print do python).
#include <stdio.h>
int main() {
printf("%s\n", "Hello World!");
return 0;
}
#output
Hello World!
O printf recebe 2 parametros: uma string com os formatos mapeados e um minimo de valores igual ao mapeado.
#include <stdio.h>
int main() {
printf("%d %s\n", 1, "Hello again!");
return 0;
}
#output
1 Hello again!
Esta função é capaz de imprimir diferentes tipos de dados (char, string, int, float, octal, hexa, outros aqui) de acordo com a formatação que voce usar.
#include <stdio.h>
int main() {
printf("Char: %c %c \n", 'b', 65); // char pode receber um int referente a Tabela ASCII (http://www.asciitable.com/).
printf("Decimais: %d %ld\n", 1988, 650000L);
printf("Precedido com espaços em branco: %10d\n", 1988);
printf("Precedido com zeros: %010d\n", 1988);
printf("Numeros com base diferente: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
printf("Floats: %4.2f %+.0e %E \n", 3.14554, 3.3214, 3.1234);
printf("Truque de tamanho: %*d\n", 5, 10);
printf("String simples %s\n", "Oi!");
return 0;
}
#output
Char: b A
Decimais: 1988 650000
Precedido com espaços em branco: 1988
Precedido com zeros: 0000001988
Numeros com base diferente: 100 64 144 0x64 0144
Floats: 3.15 +3e+00 3.123400E+00
Truque de tamanho: 10
String simples Oi!
Os formatos seguem o seguinte prototipo: %[
flags][tamanho][.precisao][quantidade]formatoFlags, largura, .precisão, tamanho são opcionais.
| Formato | Saida | Exemplo |
|---|---|---|
| c | char | a |
| d ou i | signed int | 1 |
| e | Notação Cientifica usando o caracter e | 3.9265e+2 |
| E | Notação Cientifica usando o caracter E | 3.9265E+2 |
| f | float | 3.4 |
| g | usa o menor numero possivel de f e e | 3.54 |
| G | usa o menor numero possivel de f e E | 3.54 |
| o | unsigned octal | 610 |
| s | string | Hello World |
| u | unsigned int | 2345 |
| x | unsigned hexa | 7fa |
| X | unsigned hexa com letras maiusculas | 7FA |
| p | ponteiro de endereço | B800:0000 |
| n | Nada impresso. O argumento deve ser um ponteiro para um int assinado, onde o número de caracteres escritos até então é armazenado. | |
| % | % seguido de outro % irá printar % na saida | % |
| Flag | Descrição |
|---|---|
| - | Alinhado a esquerda dentro do tamanho definido. Alinhamento a direita é o padrão (veja a tabela de formatação de tamanho). |
| + | Força a o resultado ser mostrado com um simbolo de + ou -. Por padrão, somente numeros negativos são mostrados com -. |
| # | Usado com o, x e X indica que o valor será precedido de 0, 0x ou 0X respectivamente, para valores diferentes de 0. Usado com e, E e f, força o output para mostrar um ponto decimal mesmo sem numeros depois dele. Por padrão, se nenhum numero estiver depois do ponto decimal ele nao é mostrado. Usado com g e G o resultado é mostrado com zeros a direita. |
| 0 | Numero 0 é printado ao invés de espaços em branco quando o tamanho é especificado. (veja a tabela de formatação de tamanho). |
| Tamanho | Descrição |
|---|---|
| (Numero) | Número minimo de caracteres a serem printados. Se o valor a ser printado for menor que o numero, será adicionado espaços em branco para atigir o numero limite. O valor nao é trucado caso seja maior que o limite. |
| * | O tamanho nao é especificado na formatação da string, mas é passado como argumento precedendo o argumento a ser formatado |
| .precisão | Descrição |
|---|---|
| .numero | Para formatos inteiros (i, d, u, o, x, X): precisão especifica o numero minimo de digitos a serem mostrados. Se a quantidade de digitos for menor que o limite, entao serão acrescentados zeros ao final. O valor nao é truncado se a quantidade de digitos for maior que o limite. Precisão 0 significa que o nenhum valor é printado se o numero for 0. Para formatos e, E, f: é o numero de digitos que serão mostrados depois do ponto decimal. Para formatos g e G: é o numero maximo de digitos significantes a serem mostrados. Para s: é o numero maximo de caracteres a serem mostrados. Por padrão, todos os caracteres serão mostrados até o caracter nulo que finaliza uma string (por exemplo \n) Para c: não tem efeito. Quando nenhuma precisão é especificada, o padrão é 1. Se o periodo é especificado sem um valor explicito para precisão, 0 é assumido. |
| .* | A precisão nao é especificada na formatação da string, mas é passado como argumento precedendo o argumento a ser formatado. |
| quantidade | Descrição |
|---|---|
| h | O argumento é interpretado como um short int ou unsigned short int (só se aplica aos formatadores de inteiro: i, d, o, u, x, X). |
| l | O argumento é interpretado como um long int ou unsigned long int (só se aplica aos formatadores de inteiro: i, d, o, u, x, X) e como um caractere de largura ou cadeia de caracteres de largura para formatadores c e s. |
| L | O argumento é interpretado como um long double (somente para formatadores de float: e, E, f, g e G). |
O printf é muito poderoso, e espero ter ajudado a conhece-lo melhor.
Obrigado, até a proxima!
se voce tem um blog sobre programação, provavelmente voce postará snippets de codigo e provavelmente voce vai querer que esse snippet tenha syntax highlight como no seu editor de codigo preferido.
é bem facil, basta voce usar um modulo JS e CSS chamado google code prettify.
para cofigura-lo na pagina. basta voce colocar esses 2 links no seu html.
<link href="prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="prettify.js"></script>
e depois chamar uma função no load da pagina.
$(function() {prettyPrint();});
obs: para chama-lo assim voce deve carregar o jquery na pagina.
obs 2: mais informaçoes de configuração, veja o readme. do projeto.
basta voce colocar seu codigo dentro de uma tag code ou pre com a classe prettyprint e pronto, seu codigo vai ficar bonito na pagina!
um exemplo:
<code class="prettyprint">print "Hello World!</code>
é isso, até mais!
compilação dos melhores links da semana
http://www.componentowl.com/blog/2012/02/zen-coder-vs-distraction-junkie/
http://www.codinghorror.com/blog/2012/02/farewell-stack-exchange.html
http://www.dirtymonkey.co.uk/blog/zen-of-python-poster
http://www.designforfun.com/facebookposters/
http://www.slideshare.net/lincolnloop/customizing-the-django-admin/
http://blog.sanctum.geek.nz/vim-anti-patterns/
http://techspot.zzzeek.org/2012/02/07/patterns-implemented-by-sqlalchemy/
http://css-tricks.com/the-css-box-model/
http://designpepper.com/podcasts-for-hackers

Eu recentemente acabei de ler este livro sensacional sobre usabilidade na web.
Ele trata sobre a arquitetura de informação de uma pagina web, mostrando elementos básicos que toda pagina deve ter, o que fazer e o que não fazer, como montar sua pagina principal e como executar testes de usabilidade. Te abre os olhos pra questões básicas muitas vezes esquecidas por nós em nossos projetos web.
Por isso mesmo! Você deve ser plural, conhecer um pouco de tudo. Design, infraestrutura, usabilidade, CSS, HTML, semantica, protocolo http e todo o ecosistema que engloba a web.
Neste otimo post o Henrique Bastos fala mais sobre pluralidade para programadores web. Vale a leitura!
Se você quiser ler somente um livro sobre usabilidade na sua vida, LEIA ESTE!
Voce pode escolher o melhor preço no buscapé, por esse link.
Ou se preferir, pode comprar a versao em ingles, na amazon.
Pode ter certeza, este livro é um otimo investimento para melhorar seus projetos web, e deixar seus usuarios mais felizes! Aproveite e boa leitura.
Até a proxima!