Planeta P@P

Revista Programar no DVD da Exame Informática


Foi conseguido mais um marco na história da Revista PROGRAMAR!
A PCGuia incluiu a revista no seu último DVD, edição de Dezembro de 2008.

por noreply@blogger.com (vITOR) a 19 Nov 08 05:09 (vitortomaz)

João

Talk about evolution!       

por João a 19 Nov 08 03:36 (JoaoRodrigues)

Pequena actualização: Easy Settings v1.1.523

Desde o lançamento do primeira Developer Preview do FireNotes v0.7 que toda a gente me tem reportado uma pequena falha (entre muitas outras) que existe, impedindo o uso normal da aplicação. A falha a que me refiro, provoca um crash na aplicação pois não consegue ter acesso de escrita ao ficheiro “settings.xml”. Este crash está [...]

por Nazgulled a 17 Nov 08 08:10 (Nazgulled)

Query Builder

The query builder class helps you build SQL queries

Although  it might be simpler to write the queries yourself with this class you ensure consistent code style throughout the project in a simple to understand format

Download phQueryBuilder

Select query example

$qb = &new QueryBuilder();
$qb->select('table')
   ->where('remove' , qbValues::integer(0), '>')
   ->andWhere('age' , qbValues::integer(30) )
   ->returns('Name')
   ->returns('AVG(Salary) as AVGSalary')
->build();

output:

       SELECT
		Name, AVG(Salary) AS AVGSalary
	FROM
		TABLE T1
	WHERE
			remove > 0
		AND
			age = 30

 

Complex Select query example:

$qb = &new QueryBuilder();
    $qb->select('table1')
        ->join('table2')
        ->on('id','joinvalue', 'table1', 'table2')
 
        ->returns('id', 'table1')
        ->returns('Name', 'table2')
 
        ->getRecords(30)
        ->getFrom(300)
 
        ->where('email', qbValues::string('asd@asd.com'), '=', 'table2')
 
        ->orderBy('Name DESC', 'table1')
 
        ->groupBy('asd', 'table2')
    ->build();

output:

        SELECT
    		T1.id, T2.Name
        FROM
    		table1 T1
    	JOIN
    		table2 T2
        ON
    		T1.id = T2.joinvalue
        WHERE
    		T2.email = "asd@asd.com"
        ORDER BY
    		T1.Name DESC
        GROUP BY
    		T2.asd
        LIMIT
    		300,30

 

Insert query example:

$qb = &new QueryBuilder();
$qb->insert('table')
    ->addColumn('Name')
    ->addColumn('Email')
    ->addColumn('Age')
    ->addValue(qbValues::string('Name'))
    ->addValue(qbValues::string('spam@francodacosta.com') )
    ->addValue(qbValues::integer(31))
->build();

output:

       INSERT INTO
		TABLE ( Name, Email, Age )
	VALUES
		( "Name", "spam@francodacosta.com", 31 )

Download phQueryBuilder

Share and Enjoy: StumbleUpon Digg Technorati del.icio.us Google Slashdot LinkedIn

por Sven a 17 Nov 08 03:33 (Sven)

TV-B-Gone

Um grande (de pequenas dimensões) aparelho, totalmente opensource, onde o seu proprietário pode tanto alterar o codigo do microprocessador, como alterar o seu hardware. TV-B-Gone, criado por Mitch Altman, da Cornfield Electronics. Encontra-se à venda por 10$, com apenas 1 LED Infravermelho, mas podes comprar um kit por apenas 19$, com 4 IR.

Já andava atrás dum a alguns dias, por isso aproveitei a oportunidade de a vinda do Mitch ao Codebits, para aprender a fazer um!

Ai tens algumas fotos do meu TV-B-Gone:

null

Close
null

null
Close
null

null
Close
null

Podem comprar em: http://www.tvbgone.com

por Vaurdan a 16 Nov 08 11:21 (vaurdan)

Codebits - A ideia

Bem, e o grande Codebits deste ano acabou. Já nas ultimas horas estavamos sem ideias, e estavamos mesmo para não apresentar nada. Estavamos numa mesa, com 2 gajos a codar (LuRsT e tsenart) até que o skin, que não conhecia o Rick Roll, tendo sido apresentado a este horas antes (:P) viciou-se e só via filmes em altos berros do Rick Roll (com outras pessoas a tentar dormir), lembrei-me de fazer o Rick Roll a passar em PC Speaker (Aqueles Beeps da Motherboard). Tendo o Skin a ideia do Rick roll, eu a ideia do PC Speak, foi a altura do Tharis ter a ideia de como implementa-la. Por isso fizemos um script em python onde havia uma função com 3 argumentos:

  1. A Frequência Fundamental - Tinha um dicionário, que defenia as notas
  2. A duração do beep
  3. O tom do volume - Não tenho a certeza desta terceira visto não me lembrar muito bem do código.

Basicamente o codigo chamava o comando beep -f $frequencia -l $duracao e mais um que não me lembro. E através do codigo sound(do, 0.5, 16) conseguiamos fazer um dó de 0.25 segundos (salvo erro, o tempo estava 1/2 de segundo).

Então fomos procurar a pauta do “Rick Astley - Never Gonna Give You Up”, e finalmente encontramos, o Tharis, que entende de música, passou para as notas, e voilá, em 3 horas tivemos o projecto pronto.

Supostamente também iriamos passar um video, mas o MPlayer deixou de conseguir reproduzir .flv por isso tivemos de passar um do youtube.

Wow, foi facil esplicar aqui no blog, mas ao vivo, com 500 pessoas, e cameras em directo a apontar foi mais complicado.

por Vaurdan a 16 Nov 08 09:37 (vaurdan)

Book Meme

- Instale las pilas siguiendo los diagramas de polaridad (+ y -).

In: TI 84 Plus - Silver Edition (Manual de instruções, 2 Idiomas PT/ES (Total +- 400 paginas)

1. Pega no livro mais próximo.
2. Abre na página 56.
3. Procura a quinta frase.
4. Coloca um post no teu blog com o texto e seguido destas instruções.
5. Não escolhas o teu livro favorito, o mais cool ou o mais intelectual

por Vaurdan a 16 Nov 08 07:58 (vaurdan)

The Dark Knight vs Super Homem

Nunca fui grande fã do Batman em comparação com outros super heróis de banda desenhada, mas toda a gente sabe o quanto eu gostei dos últimos filme que saíram, principalmente o The Dark Knight. Apesar de que o Batman e o Super Homem são heróis de banda desenhada onde a história de cada um se passa [...]

por Nazgulled a 16 Nov 08 02:32 (Nazgulled)

Sapo Codebits 2008

De volta a casa depois de mais uma edição do Sapo Codebits. Este ano com mais pessoas e um espaço maior e mais actividades como o Quizz Show e Rock Band Battle of the Bands.

Em termos de workshops e palestras (palestras não é em brasileiro? Como se escreve em português?) só vi uma do início ao fim e a prestar atenção ao mesmo tempo, que foi a do Mário Valente, Serverside Javascript: Hope and Opportunity. Apesar de não ser um defensor do Javascript achei a ideia muito interessante e talvez estaremos mesmo diante de uma mudança histórica nas tecnologias server-side (…ou não).

Quanto ao meu projecto, lembrei-me de uma ideia que tive no fim de semana passado, para a qual tinha feito mais ou menos o webservice, só precisei de criar a interface e adicionar mais umas coisinhas ao webservice. O meu projecto foi o myGuito, um mini-gestor de dinheiro à la twitter, em que a pessoa escreve uma pequena descrição (40 char) e um valor dizendo se perdeu ou ganhou o valor e ele adiciona ao stack, sendo possível ver numa coluna os gastos e ganhos de uma forma simples (para a geração dos hi5s).

A apresentação não correu como eu esperava, fui amaldiçoado pela #Anita, porque ao colocar como descrição “Kit da #Anita” o programa falhou, e como algumas pessoas notaram, o problema estava no cardinal + ajax. Mas não me lembrei disso no palco então optei por explicar o que fazia o programa.

Em suma, achei que a apresentação correu melhor do que o ano passado, e para quem estiver interessado (anyone…) eu estou a pensar seriamente em melhorar o projecto e disponibilizar publicamente.

Em relação a coisas más do codebits só tenho uma queixa: As casas de banho, a melhor forma de dizer isto é com esta analogia: Pergunto-vos se enquanto jogam à batalha naval gostam que enquanto afundam os navios do adversário vos vejam o jogo? Eu não.

Aguardo impacientemente pelo próximo codebits! Obrigado Sapo!

EDIT: Adorei conhecer muitos dos meus contactos do Twitter!

Reportagem Sic (Domingo à noite)

Reportagem RTP

por LuRsT a 16 Nov 08 11:20 (LuRsT)

Lentamente… FireNotes v0.7 (Developer Preview 2)

Tem existido uma certa actividade em torno dos tópicos sobre o lançamento da Developer Preview 1 do FireNotes v0.7 nos mais diversos fóruns em que anunciei a mesma, pelo que decidi começar muito lentamente o desenvolvimento da Developer Preview 2. Isto significa que os planos foram ligeiramente alterados… Têm-me feito várias sugestões para novas funcionalidades e/ou melhorias. [...]

por Nazgulled a 16 Nov 08 05:17 (Nazgulled)

Portuguese translation

Here it is the Portuguese (pt_PT) translation of Ext JS

13-11-2008 : It’s now included in ext SVN

download ext-lang-pt_PT.js

/**
 * Ext 2.2.0 - Portuguese/Portugal (pt_PT) Translation 
 * by Nuno Franco da Costa - francodacosta.com
 * translated from ext-lang-en.js
 * 11 Nov 2008
 */
 
Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">A carregar...</div>';
 
if(Ext.View){
  Ext.View.prototype.emptyText = "";
}
 
if(Ext.grid.GridPanel){
  Ext.grid.GridPanel.prototype.ddText = "{0} linha(s) seleccionada(s)";
}
 
if(Ext.TabPanelItem){
  Ext.TabPanelItem.prototype.closeText = "Fechar aba";
}
 
if(Ext.LoadMask){
  Ext.LoadMask.prototype.msg = "A carregar...";
}
 
Date.monthNames = [
  "Janeiro",
  "Fevereiro",
  "Mar&ccedil;o",
  "Abril",
  "Maio",
  "Junho",
  "Julho",
  "Agosto",
  "Setembro",
  "Outubro",
  "Novembro",
  "Dezembro"
];
 
Date.getShortMonthName = function(month) {
  return Date.monthNames[month].substring(0, 3);
};
 
Date.monthNumbers = {
  Jan : 0,
  Feb : 1,
  Mar : 2,
  Apr : 3,
  May : 4,
  Jun : 5,
  Jul : 6,
  Aug : 7,
  Sep : 8,
  Oct : 9,
  Nov : 10,
  Dec : 11
};
 
Date.getMonthNumber = function(name) {
  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
};
 
Date.dayNames = [
  "Domingo",
  "Segunda",
  "Ter&ccedil;a",
  "Quarta",
  "Quinta",
  "Sexta",
  "Sabado"
];
 
Date.getShortDayName = function(day) {
  return Date.dayNames[day].substring(0, 3);
};
 
if(Ext.MessageBox){
  Ext.MessageBox.buttonText = {
    ok     : "OK",
    cancel : "Cancelar",
    yes    : "Sim",
    no     : "N&atilde;o"
  };
}
 
if(Ext.util.Format){
  Ext.util.Format.date = function(v, format){
    if(!v) return "";
    if(!(v instanceof Date)) v = new Date(Date.parse(v));
    return v.dateFormat(format || "Y/m/d");
  };
}
 
if(Ext.DatePicker){
  Ext.apply(Ext.DatePicker.prototype, {
    todayText         : "Hoje",
    minText           : "A data &eacute; anterior ao m&iacute;nimo definido",
    maxText           : "A data &eacute; posterior ao máximo definido",
    disabledDaysText  : "",
    disabledDatesText : "",
    monthNames        : Date.monthNames,
    dayNames          : Date.dayNames,
    nextText          : 'M&ecirc;s Seguinte (Control+Right)',
    prevText          : 'M&ecirc;s Anterior (Control+Left)',
    monthYearText     : 'Escolha um m&ecirc;s (Control+Up/Down ava&ccedil;ar/recuar anos)',
    todayTip          : "{0} (barra de espaço)",
    format            : "y/m/d",
    okText            : "*OK*",
    cancelText        : "Cancelar",
    startDay          : 0
  });
}
 
if(Ext.PagingToolbar){
  Ext.apply(Ext.PagingToolbar.prototype, {
    beforePageText : "P&aacute;gina",
    afterPageText  : "de {0}",
    firstText      : "Primeira P&aacute;gina",
    prevText       : "P&aacute;gina Anterior",
    nextText       : "Pr%oacute;xima P&aacute;gina",
    lastText       : "&Uacute;ltima P&aacute;gina",
    refreshText    : "Recaregar",
    displayMsg     : "A mostrar {0} - {1} de {2}",
    emptyMsg       : 'Sem dados para mostrar'
  });
}
 
if(Ext.form.Field){
  Ext.form.Field.prototype.invalidText = "O valor deste campo &eacute; inv&aacute;lido";
}
 
if(Ext.form.TextField){
  Ext.apply(Ext.form.TextField.prototype, {
    minLengthText : "O comprimento m&iacute;nimo deste campo &eaute; {0}",
    maxLengthText : "O comprimento m&aacute;ximo deste campo &eaute; {0}",
    blankText     : "Este campo &eacute; de preenchimento obrigat&oacute;rio",
    regexText     : "",
    emptyText     : null
  });
}
 
if(Ext.form.NumberField){
  Ext.apply(Ext.form.NumberField.prototype, {
    minText : "O valor m&iacute;nimo deste campo &eaute; {0}",
    maxText : "O valor m&aacute;ximo deste campo &eaute; {0}",
    nanText : "{0} n&atilde;o &eacute; um numero"
  });
}
 
if(Ext.form.DateField){
  Ext.apply(Ext.form.DateField.prototype, {
    disabledDaysText  : "Desabilitado",
    disabledDatesText : "Desabilitado",
 
 
 
    minText           : "A data deste campo deve ser posterior a {0}",
    maxText           : "A data deste campo deve ser anterior a {0}",
    invalidText       : "{0} n&atilde;o &eacute; uma data v&aacute;lida - deve estar no seguinte formato{1}",
    format            : "y/m/d",
    altFormats        : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
  });
}
 
if(Ext.form.ComboBox){
  Ext.apply(Ext.form.ComboBox.prototype, {
    loadingText       : "A Carregar...",
    valueNotFoundText : undefined
  });
}
 
if(Ext.form.VTypes){
  Ext.apply(Ext.form.VTypes, {
    emailText    : 'Este campo deve ser um endere&ccedil;o de email no formato "utilizaor@dominio.com"',
    urlText      : 'Este campo deve ser um URL no formato "http:/'+'/www.dominio.com"',
    alphaText    : 'Este campo deve conter apenas letras e _',
    alphanumText : 'Este campo deve conter apenas letras, numeros e _'
  });
}
 
if(Ext.form.HtmlEditor){
  Ext.apply(Ext.form.HtmlEditor.prototype, {
    createLinkText : 'Indique o endere&ccedil;o do link:',
    buttonTips : {
      bold : {
        title: 'Negrito (Ctrl+B)',
        text: 'Transforma o texto em Negrito.',
        cls: 'x-html-editor-tip'
      },
      italic : {
        title: 'Italico (Ctrl+I)',
        text: 'Transforma o texto em italico.',
        cls: 'x-html-editor-tip'
      },
      underline : {
        title: 'SUblinhar (Ctrl+U)',
        text: 'Sublinha o texto.',
        cls: 'x-html-editor-tip'
      },
      increasefontsize : {
        title: 'Aumentar texto',
        text: 'Aumenta o tamanho da fonte.',
        cls: 'x-html-editor-tip'
      },
      decreasefontsize : {
        title: 'Encolher texto',
        text: 'Diminui o tamanho da fonte.',
        cls: 'x-html-editor-tip'
      },
      backcolor : {
        title: 'C&ocirc;r de fundo do texto',
        text: 'Altera a c&ocirc;r de fundo do texto.',
        cls: 'x-html-editor-tip'
      },
      forecolor : {
        title: 'C&ocirc;r do texo',
        text: 'Altera a a&ocirc;r do texo.',
        cls: 'x-html-editor-tip'
      },
      justifyleft : {
        title: 'ALinhar &agrave; esquerda',
        text: 'ALinha o texto &agrave; esquerda.',
        cls: 'x-html-editor-tip'
      },
      justifycenter : {
        title: 'Centrar',
        text: 'Centra o texto.',
        cls: 'x-html-editor-tip'
      },
      justifyright : {
        title: 'ALinhar &agrave; direita',
        text: 'ALinha o texto &agravce; direita.',
        cls: 'x-html-editor-tip'
      },
      insertunorderedlist : {
        title: 'Lista',
        text: 'Inicia uma lista.',
        cls: 'x-html-editor-tip'
      },
      insertorderedlist : {
        title: 'Lista Numerada',
        text: 'Inicia uma lista numerada.',
        cls: 'x-html-editor-tip'
      },
      createlink : {
        title: 'Hyperlink',
        text: 'Transforma o texto num hyperlink.',
        cls: 'x-html-editor-tip'
      },
      sourceedit : {
        title: 'Editar c&oacute;digo',
        text: 'Alterar para o modo de edi&ccedil;&atilde;o de c&oacute;digo.',
        cls: 'x-html-editor-tip'
      }
    }
  });
}
 
if(Ext.form.BasicForm){
  Ext.form.BasicForm.prototype.waitTitle = "Por favor espere...";
}
 
if(Ext.grid.GridView){
  Ext.apply(Ext.grid.GridView.prototype, {
    sortAscText  : "Ordena&ccedil;&atilde;o Crescente",
    sortDescText : "Ordena&ccedil;&atilde;o Decrescente",
    lockText     : "Fixar Coluna",
    unlockText   : "Libertar Coluna",
    columnsText  : "Colunas"
  });
}
 
if(Ext.grid.GroupingView){
  Ext.apply(Ext.grid.GroupingView.prototype, {
    emptyGroupText : '(Nenhum)',
    groupByText    : 'Agrupar por este campo',
    showGroupsText : 'Mostrar nos Grupos'
  });
}
 
if(Ext.grid.PropertyColumnModel){
  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
    nameText   : "Nome",
    valueText  : "Valor",
    dateFormat : "Y/j/m"
  });
}
 
if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
    splitTip            : "Arastar para redimensionar.",
    collapsibleSplitTip : "Arastar para redimensionar. DUplo clique para esconder"
  });
}
Share and Enjoy: StumbleUpon Digg Technorati del.icio.us Google Slashdot LinkedIn

por Sven a 13 Nov 08 04:57 (Sven)

Book Meme

É esta também a essência da utilização das tropas.

in: A Arte da Guerra, por Sun Tzu (é a 4º frase porque não tinha 5º

1. Pega no livro mais próximo.
2. Abre na página 56.
3. Procura a quinta frase.
4. Coloca um post no teu blog com o texto e seguido destas instruções.
5. Não escolhas o teu livro favorito, o mais cool ou o mais intelectual

por LuRsT a 12 Nov 08 11:17 (LuRsT)

oito


Pelas mais diversas razões preciso de ter a minha ligação à rede wireless activa e não ter que andar sempre a dar um sinal de actividade ao PDA para não me entrar em standby, pois caso entre, a ligação à rede vai à vida e é novamente estabelecida quando o volto a ligar.

Para manter a ligação activa mesmo em standby é necessário alterar uns valores no registo do windows mobile que são as seguintes:

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Contro l\Power\State\Suspend\{98C5250D-C29A-4985-AE5F-AFE5367E5006} - alterar o valor DWORD (default) para 1
  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Contro l\Power\State\Resuming\{98C5250D-C29A-4985-AE5F-AFE5367E5006} - alterar o valor DWORD (default) para 1
  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Contro l\Power\State\Unattended\{98C5250D-C29A-4985-AE5F-AFE5367E5006} - alterar o valor DWORD (default) para 1

(Deverão fazer um backup do registo antes de qualquer alteração)

Para aceder ao registo utilizo a aplicação gratuita Task Manager.

   Tagged: pocketpc, software, windows mobile   

por oito a 12 Nov 08 02:02 (Tiago Salgado)

Hiatus…

Para os que, por alguma razão, mantêm um registo dos meus projectos, serve este texto para dar ideia do que tenho andado a fazer, talvez sirva mais para me tentar convencer que, afinal, até tenho feito qualquer coisa com o tempo livre :)

Lista de projectos pendentes/em trabalho:

  • ContraptionsForge - Criação de sistema Web.
  • JFindMyFiles - Desde que entreguei o projecto para a cadeira de Projecto Informático, que entrei em férias com o desenvolvimento desta aplicação. Pretendo retomar brevemente o seu desenvolvimento mas para já estou a recarregar baterias de um projecto que me causou algum cansaço.
  • KCookB - Retomei este projecto para ver se consigo completar uma versão 1.0 antes do final do ano. Neste momento está bem avançado, com o modelo completo e com a interface gráfica a avançar depressa.
  • K Movie Cataloger - Bem, este projecto funciona como o pisca-pisca: está ligado, está desligado, está ligado…. Será um dos que pretendo ver terminados, com uma boa e sólida versão 1.0 mas que está no quase fundo da lista de prioridades.
  • A Collection of Small Things -  Este será o primeiro projecto publicado sob a ombreira do ContraptionsForge mas está a ficar para trás devido a outros projectos e outras questões.
  • Projecto para o programa code sniper da Funambol, este o KCookB são os projectos que me têm ocupados os últimos dias e deverão ser os que me ocuparão tempo até ao final do ano. Se bem que espero ter este pronto antes disso.

Bem, afinal até tenho muito entre mãos, se a isto acrescentar mais algumas coisas que não posso publicar. Vamos ver se consigo cumprir os objectivos e ter as aplicações completas, principalmente a da Funambol porque quero ver se recebo alguma coisa por isso :D

por Sérgio Lopes a 11 Nov 08 11:49 (Knitter)

A infâmia de ser Português

Esta é uma sensação que tem vindo a crescer cada vez mais, será que os programadores portugueses têm algum orgulho em serem portugueses? Em falarem e defenderem a língua portuguesa? Ou a maioria de nós esconde-se no facto de que é mais simples utilizar os termos, supostamente técnicos, em inglês?

Recentemente li mais uma resposta de um utilizador do P@P que me fez voltar para o mesmo pensamento. Dizia esse utilizador que ou se sabia Inglês ou não seria possível evoluir os conhecimentos na área de programação, que sem Inglês estaremos condenados à estagnação e a não evoluirmos enquanto programadores.

A minha primeira reacção foi concordar com esta ideia, afinal desde que me iniciei na utilização de computadores que o Inglês tem sido uma ajuda fundamental, o DOS não estava traduzido, o primeiro Linux que usei veio em Inglês os jogos só recentemente nos oferecem conteúdo traduzido, e mesmo esses são diminutos, e no meio da programação não há dúvida que a quantidade de livros e tutoriais em Inglês é tal que elimina qualquer tipo de concorrência que os livros da FCA podiam fazer. Se bem que sendo livros da FCA estariam condenados à mediocridade desde o início, mas esse é assunto para outra altura…

No entanto existe sempre um “mas”, afinal não estavamos nós numa comunidade PORTUGUESA de programadores? Não falamos todos nós PORTUGUÊS? Não fazemos textos, esclarecemos dúvidas, apresentamos tutorias, estudamos livros e apontamentos em Português? Eu pelo menos sei que sim.

Então porque continuamos a achar que é necessário dominar o Inglês para se poder aprender a programar? Aliás, peguando numa conversa que tive com um programador do projecto FreeCol, todo este uso de “Inglês Técnico”, que tem pouco de técnico e por vezes até de Inglês, tem feito com que as minhas faculdades na língua tenham vindo a diminuir.

Pessoalmente, acho que todos nós, portugueses, sofremos de um síndroma de desdém das capacidades que temos, pessoalmente acho que temos conhecimentos e capacidades para ser mais e melhor, pessoalmente acho que todos os que não são portugueses reconhecem a qualidade do que fazemos, nós é que continuamos a fazer e a considerar que não é suficiente que “lá fora” se faz melhor.

Como programador português acho que apenas com a nossa língua é possível aprender, crescer e evoluir na área da programação! Se assim não fosse, que sentido faria a minha participação no Portugal-a-programar?!

por Sérgio Lopes a 11 Nov 08 11:48 (Knitter)

Uma gota a mais num copo já cheio.

Sempre me considerei uma pessoa ponderada, às vezes demasiado complacente é verdade, mas sempre achei que não há motivo algum para perdermos as estribeiras ou para nos deixarmos afectar com o que os outros fazem, dizem ou pela opinião que têm de nós. Mas recentemente, com ou sem razão, perdi completamente a cabeça com um utilizador neste vasto meio que é a Internet.

Acho que sempre respeitei as pessoas com quem me cruzo na net, acho que faço o possível para ser cordeal, responsável e justo para com os utilizadores que se cruzam comigo. Mas esta pessoa em particular tem sido alguém difícil de lidar, alguém conflituoso, que cria alguns desconfortos nos que o rodeiam e que tem respondido, senão a todos, a grande parte dos contactos que tivemos, com um tom que sempre me pareceu agressivo, prepotente e sem ponta de respeito por quem com ele comunica.

Agora que penso no assunto com mais calma, sinto que foi precipitação perder a cabeça, afinal, olhando para várias das mensagens e textos desse utilizador, vejo que sempre fui conseguindo tolerar a forma como ele se exprimia mas talvez tenha sido esse o problema: tanto tive de aguentar que algum dia tinha de ceder, mesmo que tivesse sido, como agora vejo, por tão pouco.

Enfim, fiquei chateado mas que há a fazer? Não deixa de ser curioso ter sido a primeira vez que, em 11 anos de utilização de Internet, me deparo com uma situação destas.

por Sérgio Lopes a 11 Nov 08 11:48 (Knitter)

Codebits 08

Pois é, o Codebits já está quase! Dois dias, e a contar!! Ainda continuo, como hei de dizer, indeciso, porque a dois dias do Codebits, ainda não está nada organizado. Mas em principio irei. Vai ser divertido, pois segundo andei a ler no blogue do Codebits tem tecnologias muito intressantes de serem exploradas, engraçadas, e também vai haver apresentações muito boas!

Tenho pena de não puder assistir à Conferencia sobre o Joomla, pois deve ser intressante, mas depois vejo o video quando for disponiblizado ao Publico. Infelizmente Quinta-Feira não puderei ir, visto ter um maltido teste de Matemática.

Mais uma vez penso que serei o mais novo do evento… Vamos ver…

por Vaurdan a 11 Nov 08 09:32 (vaurdan)

Parte 1 de renovação - Concluído

Já está. A parte mais complicada da renovação NeoPT já está praticamente concluida.

Foi adicionado um novo tema, Revolution Two Blog Theme, e renovei as Categorias todas.
É engraçado porque antes utilizava um pouco as categorias como TAG’s todas desorganizadas, já tinha umas noventa e tal categorias. Pronto. Todos os artigos posteriores à data de hoje estarão incluídos na categoria Arquivos, visto que faz parte do passado do NeoPT.

E um brinde, ao futuro do NeoPT.

por Vaurdan a 11 Nov 08 08:57 (vaurdan)

oito


Seminários sobre desenvolvimento de software

Descrição

“Velocidade, qualidade, preço”. Estas palavras comandam o mundo do desenvolvimento de software nos tempos actuais. Cada vez mais os clientes exigem software a baixo custo, que esteja disponível amanhã, e que funcione à primeira. Uma empresa que responda a estes pedidos dizendo “estará pronto no próximo semestre”, está morta. O mundo mudou! Este seminário destina-se a engenheiros de software, líderes de equipa e gestores de projecto que queiram aprender mais sobre desenvolvimento rápido de software, em particular usando a metodologia SCRUM.

Tópicos Abordados

• Organização e gestão de equipas ágeis
• Gestão de requisitos de forma eficaz
• Planeamento e acompanhamento
• Estimação

A quem se destina

• Engenheiros de Software
• Lideres de equipa e gestores de projecto
• Empresas interessadas em colaborar com o programa CMU|Portugal

Instrutores

• Prof. Paulo Marques, Universidade de Coimbra
• Prof. Mário Zenha Rela, Universidade de Coimbra

  Paulo Marques
Paulo Marques é Professor Auxiliar no Dep. de Eng. Informática da Universidade de Coimbra e Professor Associado Adjunto da Universidade de Carnegie Mellon, nos Estados Unidos. Recentemente foi responsável pelos projectos RAIL e RAIL2, financiados pela Microsoft Research, assim como uma série de outros projectos para a Agência Espacial Europeia. Desses destaca-se os projectos LeonVM e QERL que visaram o desenvolvimento de simuladores avançados para os processadores a serem usados em futuras missões. É também autor de dois livros sobre desenvolvimento de software em C# e .NET.
  Mário Zenha Rela
Mário Zenha Rela é Professor Auxiliar na Universidade de Coimbra, onde se doutorou, e Professor Associado Adjunto da Universidade de Carnegie Mellon, nos Estados Unidos. As suas principais áreas de investigação são Confiabilidade de Computadores e metodologias de e-Learning. Tem estado envolvido em diversos projectos nacionais e internacionais, nomeadamente com a Agência Espacial Europeia (European Space Agency, ESA) na área de certificação de software. É Director do IPNlis, laboratório de investigação aplicada criado pela Universidade de Coimbra para promover a transferência de tecnologia para a indústria e Presidente do Departamento de Engenharia Informática da Universidade de Coimbra.
Agenda

• [1.5h] Desenvolvimento ágil de software usando SCRUM
• [0.5h] CMU|UC Master of Software Engineering (http://mse.dei.uc.pt)

Datas e localização

• Porto: 22 de Novembro 2008, 10:00, Hotel Ipanema Porto , Rua Do Campo Alegre, 156/172
• Lisboa: 29 de Novembro 2008, 10:00, Hotel Tivoli Tejo, Av. D.João II

Os workshops terão lugar entre as 10:00 e as 13:00

Registo

Página do Workshop

   Tagged: scrum, workshop   

por oito a 11 Nov 08 02:05 (Tiago Salgado)

NeoPT - Blog - 1 ano!

Ó meus amigos,

Estive tão ocupado que deixei passar.

O meu Penultimo Post foi o Post do 1º ano no formato blog do NeoPT!

Bem, o NeoPT já existe há quase 2 anos, mas passou por grandes coisas, sempre diferentes até se fixar neste blog. Para comemorar, o blog terá uma nova imagem, e passará a ser, ou pelo menos tentar, um sitio com informações mais sérias, mas sempre informal. Este não é um blog de camisa e gravata. Se compararmos este blog com os famosos anúncios do “Hello. I’m a Mac. And I’m a PC”, eu sou o Mac.

Hmm, enfim… Passando aos planos do blog para o próximo ano:

  • Como já disse, transformar o blog com conteúdos mais sérios.
  • Dicas de webmastering (se é que essa palavra existe) e de coisas da internet
  • Sugestões de aplicações engraçadas
  • Humor, sempre a aflorar
  • Outras coisas que os meus fieis leitores querem

Enfim, então que seja um novo ano para o NeoPT!
E Viva a nova sociedade da informação!

PARABENS :D

por Vaurdan a 10 Nov 08 09:54 (vaurdan)