SputNIC #14: Formação Social da Mente – Cap. 03

Data: October 25th, 2010 | Autor:

Começamos com Vygotsky e terminamos discutindo o capitalismo e a necessidade de um novo homem =)


Categoria: SputNIC | Tags: , , , , | Comentários: 2 Comentários »

Interfaces #5

Data: October 22nd, 2010 | Autor:
Por conta da participarção na mesa redonda Marketing: Tecnologias, Estratégias e Experiências de Consumo da Semana Acadêmica dos cursos de Administração e Ciências Contábeis UNESC, o Interfaces #5, que aconteceria na próxima quarta-feira, dia 27/10, não ocorrerá.

Mas no mês que vem, dia 24/11, contaremos com a presença do Professor João Paulo de Almeida, coordenador do Núcleo de Estudos em Modelagem Conceitual e Ontologias (NEMO), falando sobre o Núcleo.


Categoria: Projeto Interfaces | Comentários: Sem comentários »

Semana Acadêmica dos cursos de Administração e Ciências Contábeis UNESC

Data: October 21st, 2010 | Autor:

Estaremos lá, participando da mesa redonda Marketing: Tecnologias, Estratégias e Experiências de Consumo.


Categoria: Palestras | Tags: , , | Comentários: Sem comentários »

Nicvix na 7ª Semana Estadual de Ciência e Tecnologia

Data: October 20th, 2010 | Autor:

Hoje visitamos a Semana Estadual de Ciência e Tecnologia, que tá acontecendo no ginásio do Sesi de Jardim da Penha, em Vitória.

Lá, além do trabalho de empresas querendo mostrar seu potencial, conhecemos projetos interessantes para a sociedade de modo geral, como novas alternativas para materiais que são normalmente descartados:

Outra ótima oportunidade foi conhecer o trabalho do museu de anatomia e conhecer o Carlos, bolsista do museu, e a professora Verônica Devens Costa, coordenadora do Centro para o Desenvolvimento do Potencial e Talento (CEDET/Vitória).

Enfim. Vale a pena visitar. Ou você já foi? ;)

http://www.semanaestadualct.es.gov.br/

Categoria: Pesquisas, Sustentabilidade, Tecnologia | Comentários: Sem comentários »

Learning to Change. Changing to Learn

Data: October 19th, 2010 | Autor:

A qualidade não é das melhores, mas tem legenda :)

O original está aqui. (Fonte: Pearson Foundation)


Categoria: Educação | Tags: | Comentários: 1 Comentário »

O projeto EyeWriter

Data: October 19th, 2010 | Autor:

The Eyewriter from Evan Roth on Vimeo.

O projeto EyeWriter é um esforço colaborativo de pesquisa, que está em andamento, para capacitar as pessoas que sofrem de Esclerose Lateral Amiotrófica (ELA) para utilização de tecnologias criativas.

Este software personalizado permite que os grafiteiros e artistas com paralisia consigam desenhar apenas com os olhos.


Categoria: Inclusão, Não categorizado, Tecnologia | Tags: | Comentários: Sem comentários »

TEDx Change: Melinda Gates

Data: October 12th, 2010 | Autor:

Partindo da lógica de operação da Coca-Cola, a Sra. Gates propõe o uso da inteligência típica de uma empresa capitalista na implantação de políticas de inclusão no mundo em desenvolvimento.

“Real-time data turn on the lights.”


Categoria: Apresentações | Tags: , , , | Comentários: Sem comentários »

Conceitos fundamentais de Smalltalk #1

Data: October 10th, 2010 | Autor:

Estamos começando a estudar Smalltalk no NIC. A linguagem foi planejada originalmente por Alan Kay e Adele Goldberg no Xerox Parc, ainda nos anos 70. Se as interfaces gráficas significaram a facilidade de uso dos computadores, o Smalltalk era a facilidade de programação deles.

O Scratch, linguagem que estamos utilizando na disciplina de Design Computacional, é um descendente direto do Smalltalk, escrito numa implementação mais recente chamada Squeak. Alan Kay esteve diretamente envolvido no desenvolvimento do Squeak desde o início do projeto.

Experimentei várias implementações e a que parece ter o maior número de webcasts e atualizações é a Cincom Smalltalk. É uma versão gratuita, acompanha vários componentes para produtividade, e o mais bacana é a quantidade de vídeos com walkthroughs e tutoriais disponíveis no blog do fabricante.

Certamente os conceitos experimentados com o Cincom servirão para as demais implementações – Squeak, Pharo, GNU Smalltalk etc. Vamos aos conceitos iniciais, traduzidos da introdução do programa:

Tudo em Smalltalk é um objeto: um número, uma cadeia de caracteres (string), um retângulo etc.

A comunicação com objetos é sempre feita por meio do envio de mensagens: 2+2 significa que o objeto ’2′, número inteiro, recebe a mensagem ‘+’ com o argumento ’2′, que também é um objeto do tipo número inteiro.

Mensagens podem ser unárias, binárias ou palavras-chave. A diferença está na estrutura da mensagem (seu seletor):

  • mensagens unárias: compostas por uma única “palavra” (o identificador), não possuem argumentos. Ex: 2 squared (literalmente, 2 ao quadrado);
  • mensagens binárias: um ou mais caracteres especiais para o seletor (+ – / \ @ &…), seguido de um argumento. Ex: 2+2;
  • mensagens com palavras-chave podem ter qualquer número de argumentos e cada um deles é precedido por uma palavra-chave. O seletor consiste em uma ou mais palavras-chave (um identificador seguido de dois pontos ‘:’), e cada palavra-chave é seguida de um argumento. Ex: 3 between: 5 and: 10

OBS: Para um exemplo completo de um programa em Smalltalk verifique o Exemplo 1 abaixo.

Identificadores começam com letras minúsculas e contêm apenas letras e dígitos. Podem ter qualquer comprimento e são case sensitive, ou seja, asUppercase e asUpperCase são identificadores diferentes.

Toda mensagem retorna um objeto e portanto podem ser combinadas. Ex: ‘testando’ asUppercase reverse.

As mensagens retornadas como objetos podem ser utilizadas como argumentos de outras mensagens de estrutura binária ou palavra-chave. Ex:

3 raisedTo: 5 squared
ComposedTextView open: ‘abc’ asText allBold asValue

O uso de parênteses para separar partes das expressões também é válido. Os exemplos a seguir são equivalentes:

5 factorial between: 3 squarred and: 3*5*9
(5 factorial) between: (3 squared) and: (3*5*9)

No entanto, vale lembrar da Lei de Demeter, que faz algumas recomendações sobre concatenações sucessivas.

Mensagens são executadas da esquerda para a direita, com expressões entre parênteses primeiro, mensagens unárias em seguida, palavras-chave por último. Ex:

5 + 3 * 4

equivale a

(5+3) * 4

Mesmo desejando escrever 5 * 3 + 4, que terá o mesmo resultado de (5*3) + 4, o ideal é usar a segunda forma. Não há perda de performance e a leiturabilidade é preservada.

Uma sequência de expressões em Smalltalk é chamada fragmento de código (os ‘scripts’) e seus componentes são chamados declarações. Declarações são separadas por ponto final. Ex:

3 squared.
5 factorial

Declarações consecutivas podem ser escrita na forma em cascata, com o mesmo resultado (ver Exemplo 2 abaixo).

Após avaliar a mensagem, o Smalltalk descarta automaticamente o objeto retornado a menos que você o atribua a uma variável. Esse conceito chama-se coletor automático de lixo. A declaração das variáveis em Smalltalk deve ser feita antes do seu uso e não é necessário atribuir tipos.

| price tax total |        ”variáveis separadas por espaços”
price := (Dialog request: ‘Please enter price’ initialAnswer: ’100′) asNumber.
tax := (Dialog request: ‘Please enter price %’  initialAnswer: ’10′) asNumber.
total := price + (price * tax / 100).
Transcript clear;

show: ‘price: ‘, price printString; cr;
show: ‘tax: ‘, tax printString; cr;
show: ‘total: ‘, total printString

Em Smalltalk, as variáveis apenas apontam para os objetos. O sinal ‘:=’ é o operador de atribução e pode ser escrito com o atalho CTRL+g (Windows). Originalmente, uma seta representava o operador de atribuição no Smalltalk e em algumas implementações esse símbolo ainda é aceito. Utiliza-se o underscore (sublinhado) para exibir a seta de atribuição.

Este é o fim da primeira parte dos posts sobre Smalltalk. No próximo discutiremos objetos e classes, conceitos fundamentais da programação orientada a objetos. A seguir são listados os exemplos de código mais longos para demonstrar o potencial e facilidade de uso da linguagem.

Exemplo 1:

Dialog

choose: ‘Which line do you want?’
fromList: #(‘first’ ‘second’ ‘third’ ‘fourth’)
values: #(1 2 3 4)
lines: 4
cancel: [#noChoice]
for: Dialog defaultParentWindow

Exemplo 2:

Transcript clear.
Transcript show: ‘Alô mundo”.
Transcript cr.
Transcript show: ‘Primeiro programa em Smalltalk’

O código acima poderia ser escrito no formato cascata:

Transcript clear;
show: ‘Alô mundo’;
cr;
show: ‘Primeiro programa em Smalltalk’

Para executar os códigos, basta selecionar as linhas e selecionar Print it ou Do it com o botão direito ou CTRL+P (Windows).

Atualização em 10/10
Existe um tutorial interativo que apresenta os mesmos conceitos apresentados neste post na nova versão do Pharo, chamado Profstef. Como a intenção dessa série é apresentar a linguagem de maneira geral, abordaremos vários ambientes de desenvolvimento além do Cincom.

Para utilizar o ProfStef, baixe o Pharo, abra um novo Workspace (botão esquerdo do mouse -> Workspace) e digite:

ProfStef go


Categoria: Smalltalk | Tags: , , , | Comentários: 6 Comentários »

Pesquisa E-leitor @ #webbr2010

Data: October 6th, 2010 | Autor:

Slides da apresentação realizada na Conferência Web W3C Brasil, no dia 05 de Outubro em Belo Horizonte – MG.

Disponibilizamos um vídeo gravado via celular no Qik e o artigo submetido à Artigo Conferência W3C Brasil 2010 (PDF).


Categoria: Apresentações, Eleições 2.0 | Tags: , , | Comentários: Sem comentários »

Conferência W3C Brasil ao vivo

Data: October 6th, 2010 | Autor:

Eu (@marquito) e Hugo (@hugocristo) estamos na conferência da W3C em belo horizonte.

Link para a transmissão no site conferenciaweb.w3c.br e na hashtag #webbr2010.

Até


Categoria: Palestras | Tags: , | Comentários: Sem comentários »