quarta-feira, 25 de novembro de 2009

GO - Nova linguagem de programação da Google

Mascote da GO - Gordon the gopher


É pessoal, é isso mesmo que vocês estão ouvindo (digo lendo). Mais uma linguagem pro povo. Não sei onde isso vai parar. Até hoje já trabalhei com mais de 10 linguagens diferentes, que no final é tudo a mesma coisa. É claro que cada linguagem é melhor em alguma coisa ou em alguma área, mas se tivessemos apenas uma ou duas resolveriamos as coisas da mesma forma.

Acho que o que a Google quer é mostrar que é muito grande mesmo, a maior de todas. Não acho que essa linguagem dure muito, a não ser que eles passem todas as APIs de sua vasta gama de aplicações (gmail, orkut, docs, earth, maps, wave, youtube, etc) para a nova linguagem, o que não acho provável.

No site da GO eles dizem que a linguagem é uma mistura de C++ com Python na velocidade do C. Pra quem conhece a maioria das linguagens, quando vemos o código abaixo, é realmente uma mistureba. Parece Python com C.

Eles dizem que a linguagem é experimental e que está quase tão rápida quanto o C.

“Em nossos experimentos, a versões típicas parecem instantâneas. Mesmo os binários maiores compilam em apenas alguns segundos. E o código compilado roda quase na mesma velocidade do C. A GO foi feita para você se mover rápido”, afirmaram os desenvolvedores no blog do Google.

Exemplo do famoso HelloWorld na nova linguagem:

package main

import "fmt"

func main() {
fmt.Printf("Hello, 世界\n")
}


terça-feira, 24 de novembro de 2009

Principais funções do MySql

Comparação

GREATEST (X, Y ,...)| Retorna o maior (máximo de valor) argumento. Os argumentos são comparados usando as mesmas regras, pelo menos.

IF (expr1, expr2, expr3) | Se expr1 é VERDADEIRA (expr1 <> 0 e expr1 <> NULL) então IF () retorna expr2, senão ela retorna expr3

IFNULL (Expr1, expr2) | Se expr1 não é NULL, IFNULL () retorna expr1, senão retorna expr2.

INTERVAL (N, N1, N2, N3 ,...)| Retorna 0 se N ISNULL (expr) | Se expr é NULL, ISNULL () retorna 1, senão retorna 0.

LEAST (X, Y ,...)| Com dois ou mais argumentos, retorna o menor (valor-mínimo) argumento.

NULLIF (expr1, expr2) | Se expr1 = expr2 for verdadeiro, retornar NULL else return expr1.

STRCMP (expr1, expr2) | retorna 0 se as strings forem iguais, -1 se o primeiro argumento é menor que o segundo acordo com a ordem de classificação atual, e 1 contrário.

Matemática

ABS (X) | Retorna o valor absoluto de X.

ACOS (X) | Retorna o arco cosseno de X, isto é, o valor cujo cosseno é X. Retorna NULL se X não está na faixa de -1 a 1.

ASIN (X) | Retorna o arco seno de X, isto é, o valor cujo seno é X. Retorna NULL se X não está na faixa de -1 a 1.

ATAN (X) | Retorna o arco tangente de X, isto é, o valor cuja tangente é X.

ATAN2 (X, Y) | Devolve o arco tangente de duas variáveis X e Y. É semelhante ao cálculo do arco tangente de Y / X, exceto que os sinais de ambos os argumentos são usados para determinar o quadrante do resultado.

CEILING (X) | Retorna o menor valor inteiro não menor que X.

COS (X) | Devolve o seno de X, onde X é dado em radianos.

COT (X) | Retorna a tangente de X.

DEGREES (X) | Retorna o argumento X, convertido de radianos para graus.

EXP (X) | Retorna o valor de e (base dos logaritmos naturais) elevado à potência de X.

Floor (x) | Retorna o maior valor inteiro não maior do que X.

LOG (X) | Retorna o logaritmo natural de X.

LOG10 (X) | Retorna o logaritmo de base 10 de X.

MOD (N, M) | Modulo (como o operador% em C). Retorna o resto de N dividido por M.

PI () | Retorna ao valor de PI.

POW (X, Y) | Retorna o valor de X elevado à potência de Y.

POWER (X, Y) | Retorna o valor de X elevado à potência de Y.

RADIANS (X) | Retorna o argumento X, convertido de graus para radianos.

RAND (N) | Retorna um valor em ponto flutuante aleatório no intervalo de 0 a 1,0. Se um argumento inteiro N é especificado, ele é usado como o valor da semente.

ROUND (X, D) | Retorna o argumento X, arredondado para um número com decimais D. Se D é 0, o resultado não terá nenhum ponto decimal.

SIGN (X) | Retorna o sinal do argumento como -1, 0 ou 1, dependendo se X é negativo, zero ou positivo.

SIN (X) | Devolve o seno de X, onde X é dado em radianos.

SQRT (X) | Retorna a não-raiz quadrada negativa de X.

TAN (X) | Retorna a tangente de X, onde X é dado em radianos.

TRUNCATE (X, D) | Retorna o número X, truncado para D casas decimais. Se D é 0, o resultado não terá nenhum ponto decimal ou parte fracionária.

String

ASCII (str) | Retorna o valor do código ASCII do caractere mais à esquerda da string str. Retorna 0 se str é uma string vazia. Retorna NULL se str é NULL.

BIN (N) | Retorna uma representação string do valor binário de N, onde N é um número muito grande (BIGINT).

CHAR (N ,...)| interpreta os argumentos como inteiros e retorna uma string com caracteres dados pelo valor do código ASCII dos números inteiros.

CHARACTER_LENGTH (str) | Retorna o comprimento da string str.

CHAR_LENGTH (str) | Retorna o comprimento da string str.

COALESCE (lista) | Retorna o primeiro não-NULL elemento na lista.

CONCAT (str1, str2 ,...)| Retorna a string resultante da concatenação dos argumentos.

CONCAT_WS (separador, str1, str2 ,...)| significa CONCAT com separador e é uma forma especial de CONCAT (). O primeiro argumento é o separador para o resto dos argumentos

CONV (N, da_base, para_base) | Converte números entre diferentes bases. Retorna uma representação string do número N, convertido a partir da_base base para para_base base.

ELT (N, str1, str2, str3 ,...)| Retorna str1 se N = 1, str2 se N = 2, e assim por diante. Retorna NULL se N é menor que 1 ou maior que o número de argumentos. ELT () é o complemento de FIELD ().

EXPORT_SET (bits, on, off, [separador, [numero_de_bits]]) | Retorna uma string onde para cada bit conjunto de "bits", você começa um "na" corda e para cada bit reset você começa um "off" de cadeia. Cada string é separada com "separador" ( "default") e apenas "numero_de_bits" (padrão 64) de "bits" é usado.

FIELD (str, str1, str2, str3 ,...)| Retorna o índice de str na lista str1, str2, str3, ... lista. Retorna 0 se str não foi encontrado. FIELD () é o complemento de ELT ().

FIND_IN_SET (str, strlist) | Retorna um valor de 1 para N se a string str está na strlista lista contendo N substrings. A lista de string é composta de substrings separadas por "," caracteres.

FORMAT (X, D) | Formata o número X de um como "#,###,###.##", formato arredondado para D casas decimais. Se D é 0, o resultado não terá nenhum ponto decimal ou parte fracionária.

HEX (N) | Retorna uma representação string do valor hexadecimal de N, onde N é um número muito grande (BIGINT).

INSERT (str, pos, len, newstr) | Retorna a string str, com o início substring na posição pos e personagens long len substituído pelo newstr cadeia.

INSTR (str, substr) | Retorna a posição da primeira ocorrência da substring substr na string str

LCASE (str) | Retorna a string str com todos caracteres alterados para minúsculas de acordo com o mapeamento atual conjunto de caracteres (o padrão é ISO-8859-1 Latin1).

LEFT (str, len) | Retorna os tam caracteres mais a esquerda da string str.

LENGTH (str) | Retorna o comprimento da string str.

LOCATE (substr, str, pos) | Retorna a posição da primeira ocorrência da substring substr na string str, iniciando na posição pos.

LOWER (str) | Returns a string str com todos caracteres alterados para minúsculas de acordo com o mapeamento atual conjunto de caracteres (o padrão é ISO-8859-1 Latin1).

LPAD (str, len, padstr) | Retorna a string str, deixou-preenchido com o padstr string str é até len caracteres de comprimento.

LTRIM (str) | Retorna a string str com caracteres de espaço à esquerda removidos.

MAKE_SET (bits, str1, str2 ,...)| Retorna um conjunto (uma string contendo substrings separadas por "," caracteres) contendo as strings que tem o bit correspondente em bits definido. str1 corresponde ao bit 0, str2 ao bit 1, cordas etc NULL em str1, str2, ... não são adicionadas ao resultado.

MID (str, pos, len) | Retorna uma substring de caracteres da string str, iniciando na posição pos.

OCT (N) | Retorna uma representação string do valor octal de N, onde N é um número do tipo long.

OCTET_LENGTH (str) | Retorna o comprimento da string str.

ORD (str) | Se o caracter mais a esquerda da string str é um caracter multi-byte, retorna o código de carácter multi-byte, devolvendo o valor do código ASCII do caractere

POSITION (substr IN str) | Retorna a posição da primeira ocorrência da substring substr na string str.

REPEAT (str, count) | Retorna um string consistindo da string str repetida cont vezes. Se a contagem de <= 0, retorna uma string vazia. REPLACE (str, da_str, para_str) | Retorna a string str com todas as ocorrências da string from_str substituído pelo to_str de cadeia.

REVERSE (str) | Retorna a string str com a ordem dos personagens invertidos.

RIGHT (str, len) | Retorna os tam caracteres mais à direita da string str.

RPAD (str, len, padstr) | Retorna a string str, preenchida a direita com a string até padstr str é tam caracteres de comprimento.

RTRIM (str) | Retorna a string str com caracteres de espaço removido.

SOUNDEX (str) | Retorna uma string soundex de str.

SPACE (N) | Retorna uma string consistindo de N caracteres de espaço.

SUBSTRING (str, pos, len) | Retorna uma substring longa tam caracteres da string str, iniciando na posição pos.

SUBSTRING_INDEX (str, delim, count) | Retorna a substring da string str antes de cont ocorrencias do delimitador delim.

TRIM ([[BOTH LEADING | | TRAILING] [remstr] FROM] str) | Retorna a string str com todos prefixos remstr e / ou sufixos removido. Se nenhum dos especificadores BOTH, LEADING ou TRAILING são dados, é considerado BOTH.

UCASE (str) | Retorna string str com todos caracteres alterados para letra maiúsculas de acordo com o mapeamento atual conjunto de caracteres (o padrão é ISO-8859-1 Latin1).

UPPER (str) | Retorna a string str com todos caracteres alterados para letra maiúsculas de acordo com o mapeamento atual conjunto de caracteres (o padrão é ISO-8859-1 Latin1).

Data e Hora

ADDDATE (data, INTERVAL tipo expr) | Realiza aritmética data.

CURDATE () | Retorna a data de hoje como um valor em "AAAA-MM-DD" ou no formato AAAAMMDD, dependendo se a função é usada em um contexto string ou numérico.

CURTIME () | Retorna a hora atual como um valor em "HH: MM: SS" ou HHMMSS, dependendo se a função é usada em um contexto string ou numérico.

DATE_ADD (data, INTERVAL tipo expr) | Realiza aritmética data.

DATE_FORMAT (data, formato) | Formata o valor de data de acordo com a seqüência de formato.

DATE_SUB (data, INTERVAL tipo expr) | Realiza aritmética data.

DAYNAME (data) | Retorna o nome do dia da semana para a data.

DAYOFMONTH (data) | Devolve o dia do mês para a data, no intervalo de 1 a 31.

DAYOFWEEK (data) | Retorna o índice da semana para a data (1 = domingo, 2 = segunda-feira, ... 7 = sábado). Estes valores do índice correspondem ao padrão ODBC.

DAYOFYEAR (data) | Retorna o dia do ano para a data, no intervalo de 1 a 366.


FROM_DAYS (N) | Dado um dayNumber N, retorna um valor DATE.

FROM_UNIXTIME (unix_timestamp , format) | Retorna uma representação do argumento unix_timestamp como um valor em "AAAA-MM-DD HH: MM: SS" ou no formato YYYYMMDDHHMMSS, dependendo se a função é usada em um contexto string ou numérico.

HOUR (hora) | Retorna a hora para hora, na faixa de 0 a 23.

MINUTE (hora) | Retorna o minuto de tempo, no intervalo de 0 a 59.

MONTH (data) | Retorna o mês para a data, no intervalo de 1 a 12.

MONTHNAME (data) | Retorna o nome do mês para a data.

NOW () | Retorna a data e hora atual como um valor em "AAAA-MM-DD HH: MM: SS" ou no formato YYYYMMDDHHMMSS, dependendo se a função é usada em um contexto string ou numérico.

PERIOD_ADD (P, N) | Adiciona N meses de período P (no formato YYMM ou AAAAMM). Retorna um valor no formato AAAAMM.

PERIOD_DIFF (P1, P2) | Retorna o número de meses entre os períodos P1 e P2. P1 e P2 deve estar no formato AAAAMM ou YYMM.

QUARTER (data) | Retorna o trimestre do ano para a data, no intervalo de 1 a 4.

SECOND (hora) | Retorna o minuto de tempo, no intervalo de 0 a 59.

SEC_TO_TIME (segundos) | Retorna o argumento segundo, convertido em horas, minutos e segundos, como um valor em "HH: MM: SS" ou HHMMSS, dependendo se a função é usada em um contexto string ou numérico.

SUBDATE(data, INTERVAL tipo expr) | Realiza aritmética data.

SYSDATE () | Retorna a data e hora atual como um valor em "AAAA-MM-DD HH: MM: SS" ou no formato YYYYMMDDHHMMSS, dependendo se a função é usada em um contexto string ou numérico.

TIME_FORMAT (hora, formato) | Esta é usado como o DATE_FORMAT () acima, mas a seqüência de formato pode conter apenas os especificadores de formato que lidar com horas, minutos e segundos.

TIME_TO_SEC(time) | Retorna o argumento de tempo, convertido em segundos.

TO_DAYS (data) | Com base em uma data data, retorna uma dayNumber (o número de dias desde o ano 0).

UNIX_TIMESTAMP (data) | Se chamado sem argumento, retorna um timestamp de Unix (segundos desde "1970-01-01 00:00:00 GMT"). Se UNIX_TIMESTAMP () é chamado com um argumento de data, ele retorna o valor do argumento como segundo, já que "1970-01-01 00:00:00" GMT.

WEEK (data) | Com um único argumento, retorna a semana para a data, no intervalo de 0-53

WEEKDAY (data) | Retorna o índice da semana para a data (0 = segunda-feira, 1 = Segunda-feira, ... 6 = domingo).

YEAR (data) | Retorna o ano para a data, no de 1000 a 9999.

YEARWEEK (data, first) | Retorna ano e uma semana para a data. O segundo argumento funciona exatamente como o segundo argumento para WEEK ().

Resumindo

AVG (expr) | Retorna o valor médio de expr.

BIT_AND (expr) | Retorna ao bitwise AND de todos os bits em expr. O cálculo é realizado com 64-bits (precisão BIGINT).

BIT_OR (expr) | Retorna o bitwise OR de todos os bits em expr. O cálculo é realizado com 64-bits (precisão BIGINT).

COUNT (expr) | Retorna uma contagem do número de valores não-NULL nos registros recuperados por uma instrução SELECT.

MAX(expr) | Retorna o valor máximo de expr. Pode tomar um argumento de cadeia, em tais casos, retorna o valor máximo da seqüência.

MIN (expr) | Retorna o valor mínimo de expr. Pode tomar um argumento de cadeia, em tais casos, ele retorna o valor da seqüência mínima.

STD (expr) | Retorna o desvio padrão de expr. Esta é uma extensão do SQL ANSI. O formato STDDEV () desta função é fornecida para compatibilidade com Oracle.

STDDEV(expr) | Retorna o desvio padrão de expr. Esta é uma extensão do SQL ANSI. O formato STDDEV () desta função é fornecida para compatibilidade com Oracle.

SUM (expr) | Retorna a soma de expr. Note que se o conjunto de retorno não tem linhas, ele retorna NULL!

Diversos

BENCHMARK (count, expr) | executa a expressão expr repetidamente cont vezes. Ele pode ser usado para medir a velocidade que o MySQL processa a expressão.

BIT_COUNT (N) | Retorna o número de bits que são definidos no argumento N.

CONNECTION_ID () | Retorna o ID da conexão (thread_id) para a conexão. Cada conexão tem seu próprio ID único.

DATABASE () | Retorna o nome do banco de dados atual.

DECODE (cript_str , senha_str) | Descrypts cript_str a string encriptada utilizando senha_str como a senha. cript_str deve ser uma seqüência de caracteres retornado ENCODE ().

ENCODE (str, senha_str) | Criptografa str usando senha_str como a senha. Para descriptografar o resultado, utilize DECODE (). O resultado é uma seqüência binária do mesmo comprimento de cadeia. Se você quiser salvá-lo em uma coluna, use uma coluna do tipo BLOB.

ENCRYPT (str [, salt]) | Criptografa str usando o Unix crypt () do sistema. O argumento salt deve ser uma string com dois caracteres. (A partir do MySQL 3.22.16, o sal pode ser maior que dois caracteres.)

GET_LOCK (str, timeout) | Tries obter um bloqueio com um nome dado pela string str, com um tempo limite de timeout segundos. Retorna 1 se o bloqueio foi obtido com sucesso, 0 se o tempo esgotou, ou NULL se ocorreu um erro (como ficar sem memória ou o fio foi morto com mysqladmin kill).

INET_NTOA (expr) | Retorna o endereço de rede (4 bytes ou 8) para a expressão numérica.

INET_ATON (expr) | Retorna um inteiro que representa o valor numérico para um endereço de endereços de rede podem ser de 4 ou 8 endereços de bytes.

LAST_INSERT_ID ([expr]) | Retorna o último valor gerado automaticamente que foi inserido em um coluna AUTO_INCREMENT.

LOAD_FILE (file_name) | Lê o arquivo e retorna o conteúdo do arquivo como uma string. O arquivo deve estar no servidor, você deve especificar o caminho completo para o arquivo, e você deve ter o privilégio de arquivo.

MD5 (string) | Calcula um checksum MD5 para a cadeia. O valor é retornado como um número longo hex 32 que podem, por exemplo, ser usado como uma chave hash.

PASSWORD (str) | Calcula uma seqüência de senha do str senha plaintext. Esta é a função que é usada para criptografar a senha do MySQL para armazenamento na coluna Password da tabela de subsídio do usuário.

RELEASE_LOCK (str) | Libera a trava nomeada pela string str que foi obtido com GET_LOCK (). Retorna 1 se o bloqueio foi lançado, 0 se o bloqueio não foi bloqueado por este segmento (caso em que o bloqueio não é liberado) e NULL se o nome da trava não existe.

SESSION_USER () | Retorna o nome de usuário do MySQL em curso.

SYSTEM_USER () | Retorna o nome de usuário do MySQL em curso.

USER () | Retorna o nome de usuário do MySQL em curso.

VERSION () | Retorna uma string indicando a versão do servidor MySQL.


Ler e escrever arquivos texto no Delphi

//Rotina para escrever em um arquivo texto:

Var

F:TextFile;

Begin

AssignFile(f,'c:\arquivo_qualquer.txt');

Rewrite(f); //abre o arquivo para escrita

Writeln(f,'Dúvidas de Programação'); escreve no arquivo e desce uma linha

Write(f,'duvidasdeprogramacao.blogspot.com'); //escreve no arquivo sem descer a linha

Closefile(f); //fecha o handle de arquivo

End;

//Rotina para ler de um arquivo texto:

var

f:TextFile;

linha:String;

begin

AssignFile(f,'c:\arquivo_qualquer.txt');

Reset(f); //abre o arquivo para leitura;

While not eof(f) do

begin

Readln(f,linha); //lê do arquivo e desce uma linha. O conteúdo lido é transferido para a variável linha

Memo1.lines.add(linha); //adiciona a um campo Memo

End;

Closefile(f);

end;

Dicas e truques com o Delphi

Pessoal, olhando algumas coisas antigas achei algumas dicas interessantes para se brincar com o Delphi. Acredito que nem tudo funciona no Windows XP/Vista, mas vale a pena conferir.

Lendo o volume do HD

Function ExtractDiskSerial(Drive:String):String;

Var

Serial:DWord;

DirLen,Flags: DWord;

DLabel : Array[0..11] of Char;

begin

GetVolumeInformation(PChar(Drive+':\'),dLabel,12,@Serial,DirLen,Flags,nil,0);

Result := IntToHex(Serial,8);

end;


Descobrindo o número serial do HD

procedure TForm1.Button1Click(Sender: TObject);

var

SerialNum : pdword;

a, b : dword;

Buffer : array [0..255] of char;

begin

if GetVolumeInformation('c:\', Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then

Label1.Caption := IntToStr(SerialNum^);

end;

Abrir e fechar a bandeja do CD-ROM

{Para Abrir:}

mciSendString('Set cdaudio door open wait', nil, 0, handle);

{Para Fechar:}

mciSendString('Set cdaudio door closed wait', nil, 0, handle);


Como saber se o CD está no drive

Function MidiaPresente(MediaPlayer: TMediaPlayer): Boolean;
var
Params: MCI_STATUS_PARMS;
S: array [0.255] of char;
r: Integer;
begin
//verifica se existe um cd inserido
Params.dwItem:= MCI_STATUS_MEDIA_PRESENT;
r:= MCISendCommand(MediaPlayer.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Integer(Addr(Params)));
if r <> 0 then
begin
MCIGetErrorString(r, S, SizeOf(S));
ShowMessage('Erro: ' + StrPas(S));
end
else
Result:= Params.dwReturn = 1;
end;


Verificar se tem disquete no drive

function TForm1.TemDiscoNoDrive(const drive : char): boolean;

var

DriveNumero : byte;

EMode : word;

begin

result := false;

DriveNumero := ord(Drive);

if DriveNumero >= ord('a') then

dec(DriveNumero,$20);

EMode := SetErrorMode(SEM_FAILCRITICALERRORS);

try

if DiskSize(DriveNumero-$40) = -1 then

Result := true

else

messagebeep(0);

finally

SetErrorMode(EMode);

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if TemDiscoNoDrive('a') then

ShowMessage('Tem disco No drive A:')

else

ShowMessage('Não tem Disco no Drive A:');

end;


Ligar/Desligar o monitor

Desligar

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

Ligar

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);

Modificar senha de root no Mysql

Geralmente quando instalamos o mysql podemos informar a senha de root. Muitas pessoas por não saberem direito não informam senha, deixando o banco aberto a qualquer usuário e se estiver usando a net, ai então é que está vulnerável mesmo. Por isso resolvi postar como alterar a senha do usuário root.

Você pode fazer isto como a seguir (perceba que a senha foi especificada utilizando a função PASSWORD() para a criptografia da mesma):

shell> mysql -u root mysql
mysql> SET PASSWORD FOR root@localhost=PASSWORD
('nova_senha');

Substitua 'nova_senha' pela senha que você deseja usar.

Se você souber o que esta fazendo, você também pode manipular diretamente a tabela privilégios:

shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('nova_senha')
-> WHERE user='root';
mysql> FLUSH PRIVILEGES;

Outra forma de configurar a senha é utilizando o comando mysqladmin:

shell> mysqladmin -u root password nova_senha

Somente usuários com acesso de escrita/atualização ao banco de dados mysql podem alterar a senha de outros usuários. Todos os usuários comuns (não os anônimos) podem alterar somente a própria senha com um dos comandos acima ou com SET PASSWORD=PASSWORD('nova_senha').

Perceba que se você atualizar a senha na tabela user diretamente utilizando UPDATE, você deve dizer ao servidor para reler as tabelas de permissões (com FLUSH PRIVILEGES), de outra forma a alteração não seria notificada.

Uma vez que a senha de root foi configurada, você deve informar a senha quando se conectar ao servidor MySQL como root.

Material retirado de: http://dev.mysql.com

segunda-feira, 23 de novembro de 2009

PythOnCampus


Pessoal,

Depois de muito tempo sem postar resolvi voltar com o blog aos poucos. Ultimamente tenho trabalhado muito, ministrando muitas aulas e ficando sem tempo para o blog.

Acontece que o IFF Fluminense, local onde atualmente sou professor fará um evento sobre Python nos dias 27 e 28 desse mês. Confiram a programação. Vale a pena conferir!

Algumas Palestras:

Dia 27/11

Horário: 15:30
Título: Coding Dojo - Tornando-se Faixa Preta em Programação

Horário: 16:15
Título: Desenvolvendo DSLs em Python

Horário: 17:00
Título: Servidor de Conversão de Documentos utilizando Open Office

Horário: 17:15
Título: Zope de Alta Performace com ERP5

Horário: 18:30
Título: The Zen Of Python

Horário: 19:15
Título: Python para brasileiros (Coral)

Horário: 19:30
Título: Software Livre e Launchpad.net: impulsionando sua carreira

Horário: 20:45
Título: Controlando Web Browsers

Horário: 21:00
Título: Modelagem multi-nível de Sistemas de Informação em Python

Horário: 21:45
Título: Utilizando Twitter com Python

-------------------------------------------------------------
Dia 28/11

Horário: 14:00
Título: A cobra que bebe café - Python + Java

Horário: 14:15
Título: Pyramid - BDD em Python

Horário: 15:15
Título: Programando a inteligência coletiva com Python

Horário: 15:30
Título: Welcome to the Jungle

Horário: 16:30
Título: Desenvolvendo Ágil para Web com web2py

Horário: 17:15
Título: Multimídia com GStreamer

Horário: 17:30
Título: Frameworks Web

Horário: 18:15
Título: Do Código ao Diagrama: Prisma

-------------------------------------------------
Nos dias 27 e 28 de Novembro, o NSI (Núcleo de Pesquisa em Sistemas de Informação) trará a PythOnCampus para o IFF.

O evento contará com palestras e mini-cursos sobre a linguagem de programação Python, que tem como objetivo trazer esta linguagem pra dentro das universidades.

A PythOnCampus será realizada no campus Campos-Centro do IF Fluminense, na rua Dr. Siqueira, 273 - Pq. Dom Bosco, Campos dos Goytacazes.


Quem quiser fazer inscrição para os minicursos, pode acessar o endereço http://www.pythoncampus.iff.edu.br

Links

Related Posts with Thumbnails