Ensinar Turing : August 28, 2005

Teaching Turing, de David A. Mells e Aram Armstrong é um divertido e fácil de perceber ambiente para aprender a programar máquinas de Turing. O objectivo é mostrar às pessoas como é que as máquinas de Turing funcionam ao terem que programá-las elas mesmas.
Demo >>
PDF que descreve o projecto.
Por Kwame /Permalink
Easing equations : June 25, 2005
Para completar o trabalho para o Osiris, vejo-me na obrigação de infrigir algumas regras.
Viva Robert Penner.
Por Kwame /Permalink
SUN XIFRA desafia hackers através de concurso : May 9, 2005
A SOL-S e SOLSUNI, promovem a 3ª edição do "Concurso de Segurança Informática - Internet Segura". A empresa XIFRA, fabricante do equipamento de segurança SUN-XiFra-3000, pretende com esta iniciativa demonstrar que a segurança da sua gama de firewall de perímetro é à prova de hackers e que o acesso à Internet está ao alcance de todos de uma forma segura. Aquele que conseguir aceder e modificar o conteúdo do ficheiro escondido num PC ligado à Internet ganha 12 mil euros. Quem aceitar o desafio, deve dirigir um email à organização para determinar se o ficheiro corresponde ao que lhe foi entregue no início do concurso. A informação sobre o servidor e o nome do ficheiro secreto do concurso encontra-se no site http://fesinternet2005.xifra.net.
Pertencente a um conjunto de equipamentos que permitem assegurar grandes instalações, o 'SUN-XIFRA-3000', foi desenvolvido sobre o sistema FreeBSD e linguagem Java. O dispositivo permite controlar o acesso à rede interna de pessoal não autorizado, um número ilimitado de ligações seguras (VPN's) e a possibilidade de ligar escritórios com total segurança.
O concurso, promovido a nível internacional, teve início no dia 4 de Março, no evento FesInternet em Espanha e terminará a 17 de Novembro, no evento SIMO TCI 2005. O resultado do concurso será divulgado no último dia.
« Ok!
Por Osiris /Permalink
Sistema Ferroviário de Turing : January 26, 2005
Alan Turing, pioneiro da computação, e já abordado na PG po,r entre outras coisas, ter inventado a Turing Machine, máquina onde qualquer coisa pode em teoria ser calculada, serviu de base para uma interessante tradução efectuado por dois artistas Austríacos, David Moises e Severin Hofmann, num modelo de sistema ferroviário. A locomotiva do Turing Train Terminal, percorre uma rotina programada num fita que faz com que a primeira altere as suas cabeças de leitura/escrita [read&write heads]. Diferentes tipos de interruptores despoletam passos computacionais distintos.

Scale trains have existed for almost as long as their archetypes, which were developed for the purposes of traffic, transportation and trade. Economy and commerce have also been the underlying motivations for the invention of computers, calculators and artificial brains.
Allowing ourselves to fleetingly believe in an earlier historical miscalculation that "... Computers in the future may have only 1,000 vacuum tubes and perhaps weigh 1 1/2 tons." (Popular Mechanics, March 1949), we decided to put some hundred tons of scaled steel together in order to build these calculating protozoa. The operating system of this reckoning worm is the ultimate universal calculator, the Turingmachine, and is able to calculate whatever is capable ofbeing calculated. One just would have to continue building to see where this may lead...
Por Kwame /Permalink
Vírus Expo : September 24, 2004

Uma exposição, sobre vírus, I love you [rev.eng], analisa os elementos destructivos de um vírus de computador, mas também as suas facetas políticas, culturais, técnicas e históricas.
"In the zoo", deixa os visitantes activar dados infectados com vírus como o "Sasser" ou "Suicide", forçando os computadores a desligar; um jogo 3D permite aos visitantes experimentar em tempo real a contaminação de um vírus; os visitantes podem ainda construir os seus próprios vírus utilizando um kit de construção de vírus; podem ainda ver "biennale.py", um vírus de 0100101110101101.ORG e epidemiC, declarado uma obra de arte social; ou "The lovers", de Sneha Solankis, dois computadores em rede, um infectado com um vírus que lentamenta vai infectando o outro através de um interface de poesia romântica.
Presentemente a exposição entá na Brown University e irá seguir para o Post & Telemuseum de Copenhaga.
+ Digitalcraft.org kulturburo.

Por Kwame /Permalink
OpenFTS: Open Source Full Text Search Engine : September 16, 2004

OpenFTS é um motor de pesquisa avançado baseado em PostgreSQL, que porporciona indexação online e um ranking por relevância para pesquisas de base-de-dados. Permite ainda a integração de metadata para restringir os resultados.
Por Kwame /Permalink
Jux2 : September 2, 2004
Nova ferramenta para comparar motores de pesquisa. Jux2 em versão beta.
Por Kwame /Permalink
sepy actionscript editor : May 20, 2004
Alessandro crugnola escreveu sepy para quem não está nada contente com o editor de actionscript Macromedia, como eu.
Utilizo este editor há algum tempo e é bastante mais rápido, podendo executar um fla a ser editado dentro do flash a partir do Sepy se estivermos a editar um .as que pertença ao .fla.
Quando vamos ver o espaço da exposição?
Por interaction /Permalink
SITEPAL.com : May 18, 2004
Dêm uma vista de olhos neste site está muito interessante, especialmente para Programação...
http://www.oddcast.com/sitepal/
Design Speaking characters through an easy to use online interface.
Add your characters to any web page.
Customize 20 different Sitepal Models to create any character likeness. Customization features include:
Age
Gender
Hair Style
Skin, hair and eye color
Make-up
Clothing and accessories
Add your own voice or any voice. Update spoken audio as often as you wish. Lip-Synchronization is automatic.
Upload your own backgrounds.
Implemented in Flash. No plug-ins needed! Works with any web browser on Windows or Mac.
Dêm uma vista de olhos neste site está muito interessante, especialmente para Programação...
http://www.oddcast.com/sitepal/
Design Speaking characters through an easy to use online interface.
Add your characters to any web page.
Customize 20 different Sitepal Models to create any character likeness. Customization features include:
Age
Gender
Hair Style
Skin, hair and eye color
Make-up
Clothing and accessories
Add your own voice or any voice. Update spoken audio as often as you wish. Lip-Synchronization is automatic.
Upload your own backgrounds.
Implemented in Flash. No plug-ins needed! Works with any web browser on Windows or Mac.
« Ok!
Por ritamartelinho /Permalink
Jibble Netdraw : March 17, 2004
Netdraw para o Vasco.
+
Sketcher 2.; Sketcher 3.; Sketcher 4.; Sketcher 5.
Por Kwame /Permalink
Loops : February 4, 2004
Em baixo traduzi um tutorial sobre loops de Jesse Stratford.
x += 1
ou x++
ou até x = x+1
fazem todos o mesmo.
Mas é chato ter que escrever isto 100 vezes se queremos que x incremente até 100. Como também é chato colocar em 100 frames o incremento (não só é chato como demora 12 segundo); por isso existem os Loops.
for (y=0; y<100; y++) {
x++;
}
1.
O For Loop aceita três tipos de argumentos: o valor de inicialização, a condição, e a acção, respectivamente. Em seguida, todas as acções que quermos que se processem ficam entre as chavetas.
Literalmente este código diz o seguinte: "Começa com uma variável y igual a zero. Perfaz as acções dentro das chavetas (neste caso, adiciona 1 ao x) depois adiciona um ao y. Se, quando estas acções estiverem completas, y continuar a ser menor que 100, repete tudo (vira o disco e torna a girar). Reparem que utilizei duas variáveis, uma para o contador do próprio loop e a outra para a acção que queremos desencadear(incrementar uma variável), isto apenas evitar que o código se tornasse demasiado confuso.
while (x<100) {
x++;
}
2.
Este é o While loop. Funciona quase da mesma maneira mas tens que te adaptar à condição entre chavetas. Se disserem "Ladra como um cão enquanto eu tiver a mão erguida), vocês começam a ladrar e eu posso manter a minha mão erguida para sempre. Para evitar que fiquem com uma garganta maltratada eu tenho que baixar a mão algures no tempo. Isto é o mesmo com o while loop; algures no tempo a sua condição tem que ser encontrada (dentro de um número limitado de cálculos) ou então fará com que o Flash player vá à vida.
No nosso For loop, dizemos que quermos incrementar o contador cada vez que o loop dá a volta (a cada vez que o loop dá uma volta chama-se iteracção), assim não temos que fazer modificações às nossas condições dentro do próprio loop. No entanto, no While e Do While loops, temos que alterar a condição dentro do loop (ou a condição tem que estar a modificar-se dentro do processo do loop) para prevenir esgotamento da performance.
Se tivéssemos:
while (x<100) {
y++;
}
x++
Teríamos "crachado" o flash player porque x será sempre menos que 100, porque não o estamos a alterar dentro do loop. Sim, estamos a alterá-lo fora do loop, mas o Flash quer fazer todos os cáculos dentro do loop antes de continuar, por isso ficará confuso e parará.
do {
x++;
} while (x<100);
3.
Este é o Do While, é basicamente o mesmo que o exempo anterior, mas a sintaxe é distinta. Esxitem diferenças que serão abordadas numa fase mais avançada, por enquanto permanece como o anterior, mas com uma sintaxe diferente."
Ok. Então existem três tipos de loops... Mas de qualquer maneira, quem é que vai contar de 0 a 100. Não serão muitos, pois não. Mas imaginem que quero criar 100 cópias de um movie clip no palco. Eu não quero ter que escrever as instruções para duplicar o movie clip 100 vezes, com um nome diferente e uma profundidade diferente de cada vez, para isso utilizo um loop.
for (x=0; x<100; x++) {
duplicateMovieClip ("targetMC", "dupMC"+x, x);
}
"dupMC"+x pega no string "dupMC" e adiciona no seu final o número guardado na variável x, assim se x = 1, o resultado seria "DupMC1". Como o x está sempre a mudar, isto dá-nos um nome único de cada vez.
Depois de passarmos uma vista de olhos pelo duplicateMovieClip, saberíamos de antemão que todos estes novos duplicados teriam o mesmo _x e _y, por isso temos que movimentá-los um pouco. Mas isso também não é problema com os loops. Para isso basta inserir um tipo de algoritmo no próprio loop. Digamos que queremos fazer com que cada novo duplicado tenha o mesmo_y mas um _x 5 pixeis maior que o prévio (para um efeito gráfico horizontal). Basta fazer isto:
for (x=0; x<100; x++) {
duplicateMovieClip ("targetMC", "dupMC"+x, x);
_root["dupMC"+x]._y = x*5;
}
A linha 3 não é difícil para aqueles que já percebem de setProperty. Em vez de "setProperty(property, target, value)" estou a utilizar o método "infix" para escrever o código. Dou o caminho (path) para o target e adiciono "._y" que indica que quero mexer com a posição Y do target. Começo por definir a posição do target para o valor x vezes 5. Assim o primeiro duplicado terá uma _x de 0 (porque o x começa com 0 e 0*5 = 0), o próximo duplicado terá um _x de 5 e o último um _x de 495 (isto porque estamos a fazer o looping enquanto o x for menor que 100). Note-se que nessa linha eu estou a utilizar um "método array" para determinar qual o nome do clip no qual eu quero inserir a propriedade. Assim acabaos por duplicar um novo clip ao mesmo tempo que lhe damos um nome dinâmico e único, criado apartir da adição entre o valor de x à string "dupMC". Por isso é que eu tenho que dizer ao flash que quero definir a propriedade do MC com esse nome. Isso é feito como indicado em cima e não através da _root.dupMC+x._y = x * 5 como assume muita gente. Os parênteses rectos dizem ao Flash que este tem que calcular o valor que está dentro deles e colocá-lo na linha. Note-se ainda que não existe ponto entre a _root e o parênteses recto no método array.
Partindo de um exemplo parecido, imaginemos que possuímos um campo de texto onde pretendemos que o utilizador insira um valor numérico, e que depois de clicarmos num botão surgissem o número de duplicados que se pretendem. Como conseguimos isto? Com loops.
Assim temos um input text com a variável count. Em seguida temos um botão com o seguinte código.
on (release) {
for (x=0; x
duplicateMovieClip ("targetMC", "dupMC"+x, x);
_root["dupMC"+x]._y = x*5;
}
}
O que mudou? Observemos a linha 2. Já não estamos fazer um loop em função de x (x<100). Lembrem-se que só queremos fazer o número de duplicados pedidos pelo utilizador. Assim queremos que o x comece em 0 e vá (iterativamente) até ao número escolhido, (Number(count) ). A função do flash Number() pega num string que contenha um número e converte-o num número. Isto porque qualquer valor introduzido dentro de um text field é um string por defeito. Assim temos que converter o string num número antes de podermos verificar se é maior que x.
E por último, mas não menos importante, lembrem-se que loops em script não podem ser utilizados para modificar eventos visuais num dado período de tempo. O que é que isto quer dizer? Quer dizer que não vamos poder utilizar o loop para animar um objecto a mover-se ao longo do palco, ou para incrementar um contador no qual queremos que seja visível o incrementar. Porque não. Porque os loops são executados mais rapidamente do que um piscar de olhos (literalmente). Muitas vezes ouvimos pessoas a queixarem-se que criaram um loop no qual querem que _x de um MC aumente 100 vezes e "o raio do Flash não o faz!" Errado! O flash fá-lo, não o podemos ver porque está ser feito muito rapidamente.
« Ok!
Por Kwame /Permalink
Actionscript ++ : January 30, 2004
Aqui está a continuação do exercício que fizémos na terça.
Na próxima terça e quarta haverá aula de actionscript... 19 às 21 horas, dado não haverem aulas de licenciatura. Aqueles interessados em falar comigo sobre o seu projecto, a vida e o novo filme "Lost in Translation" de Sofia Coppola, poderão fazê-lo em ambos os serões.
Bom trabalho,
Kwame
Por Kwame /Permalink
Flash para Terça-feira : January 25, 2004
Na terça-feira haverá aula de Flash. Agradecia que chegassem às às 20.45 para darmos início exactamente às 21.00.
Por Kwame /Permalink
Flash AULAS : January 19, 2004
Terça-feira não há aula de flash, pois os meus alunos de licenciatura necessitam alguma atenção da minha parte.
Fica para Quarta-feira.
Por Kwame /Permalink
How to design a programming language. : December 11, 2003
É um prazer ler textos escritos por programadores. Especialmente Paul Graham. Este faz mais do que programar, ele concebe e projecta novas linguagens de programação e fala como se o fizesse a jogar ping-pong.
Um index.
"I think a lot of the most exciting new applications that get written in the next twenty years will be Web-based applications, meaning programs that sit on the server and talk to you through a Web browser. And to write these kinds of programs we may need some new things.
One thing we'll need is support for the new way that server-based apps get released. Instead of having one or two big releases a year, like desktop software, server-based apps get released as a series of small changes. You may have as many as five or ten releases a day. And as a rule everyone will always use the latest version."
in Graham, P. (May 2001) Five Questions About Language Design.
« Ok!
Por Kwame /Permalink
Mouse gestures [javascript] : November 23, 2003
Mouse gestures is an interesting way to implement parallel navigation on a website. It is enabled by javascript, and it's open source. I still haven't tried implementing it but it looks pretty simple.
Por Kwame /Permalink
investigação : November 13, 2003
Nos dias que decorrem, estamos cada vez mais a caminhar em direcção a 1 único objecto multimedia, em vez de usarmos a tv, o video, o telefone e a internet. Passamos a usar só a INTERNET. Para isto acontecer é necessário dar o passo que já uma vez se provou funcionar, tornando o interface do computador de caracteres ( DOS ) para imagens (Windows ou Macos). Abrindo assim o mercado a todas as pessoas.
De momento estamos a criar Sites, mas definitivamente isto não é o futuro. Vamos passar a criar APLICAÇÕES.
A Macromedia fala em “rich internet applications” que já se encontra na internet e estão bastante desenvolvidos. Estas aplicações serão definitivamente o futuro de toda a internet e fazem parte de um projecto anuciado por várias identidades lideres mundiais do mercado informático, que vai ser lançado em 2007 chamado “INTERNET 2”. Para tornar isto possível é necessário mudar tudo, designer, programador, velocidade de transmissão, plataformas, base de dados, etc.
O tema de investigação que proponho é:
“A Internet 2, desenvolvimento de aplicações”
Por Osiris /Permalink
Anacubis : November 2, 2003
Pois é... software para análise de padrões que permite sacar dados de D&B, Lexis-Nexis, bases de dados de patentes, entre outras fontes. Aponta-se, clica-se e analiza-se. Algo de interessante quando se possui muitas fontes de informação num só espaço. Desenvolvido pela "intelligence community", Anacubis é sem sombra de dúvidas a estrela da CIA e poucas dúvidas possuo em relação ao interesse que o domínio corporativo terá numa ferramenta desta natureza.
+
http://www.convera.com/
http://www.inxight.com/
« Ok!
Por Kwame /Permalink
sobre o nogome_
Ok. O Nogome começou por ser o Blog de uma Pós-graduação em Webdesign. Agora é um espaço que cria, agrega e traduz para Português notícias no contexto dos NOVOS MEDIA (que por acaso já não assim tão novos); Media Tangíveis; Realidade Aumentada; RFID; Mobilidade e as nova relações que catalizamos com e dentro da metrópole; a problemática das interfaces; [re]design; estética que advém da computação; redes sociais articuladas; activismo... e tudo o que se prende com a representação de informação. Se estás a desenvolver um
trabalho de investigação, se és docente ou discente e possuis notícias ou projectos que aches relevantes, envia um email para nogome arroba nogome ponto com.