Instalando o ProfStef em português

pharo

Tutorial do Pharo.

A versão em português do ProfStef se encontra abaixo (File Out).

Nota:

O texto do file out pode ser obtido como explicado abaixo ou no remote published http://ws.stfx.eu/9E3JVDXIW326. Use o link Raw.

Expanda, selecione o texto e copie num arquivo com o nome PharoSyntaxTutorialBR.st.

'From Pharo6.0 of 13 May 2016 [Latest update: #60499] on 20 June 2017 at 11:57:14.690467 am'!
AbstractTutorial subclass: #PharoSyntaxTutorialBR
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'ProfStef-Core'!
!PharoSyntaxTutorialBR commentStamp: 'FranciscoAryMartins 6/5/2017 19:58' prior: 0!
Tutorial em português para aprender a sintaxe do Pharo .!

!PharoSyntaxTutorialBR methodsFor: 'tutorial' stamp: 'FranciscoAryMartins 6/5/2017 19:21'!
tutorial
^ #(
welcome
doingVSPrinting
printing
inspecting

basicTypesNumbers
basicTypesCharacters
basicTypesString
basicTypesSymbol
basicTypesArray
basicTypesDynamicArray

messageSyntaxUnary
messageSyntaxBinary
messageSyntaxKeyword
messageSyntaxExecutionOrder
messageSyntaxExecutionOrderParentheses
mathematicalPrecedence
messageSyntaxCascade
messageSyntaxCascadeShouldNotBeHere

blocks
blocksAssignation
conditionals
loops
iterators

instantiation

reflection
reflectionContinued

pharoEnvironment
debugger

theEnd
)! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 17:55'!
blocksAssignation
	^ Lesson
title: 'Atribuição de blocos'
lesson:
'"Blocos podem ser atribuidos a uma variável e então executados mais tarde.

Note que |b| é uma declaração de uma variável de nome ''b'' e que '':='' atribui um valor à variável.

Selecione (highlight) as três linhas e então Print It:"

|b|
b := [:x | x+2].
b value: 12.

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:52'!
basicTypesString
	^ Lesson
title: 'Tipos básicos: Strings'
lesson:
'"Uma String é uma coleção de caracteres. Use plica (single quotes) para criar um objeto String. Imprima estas expressões:"

''ProfStef''.

''ProfStef'' size.

''abc'' asUppercase.

''Hello World'' reverse. 

"Você pode ter acesso a cada caractere usando a mensagem at:"

''ProfStef'' at: 1.

"Concatenação de String usa o operador vírgula (the comma operator):"

''ProfStef'', '' is cool''.

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/9/2017 06:12'!
messageSyntaxUnary
	^ Lesson
title: 'Sintaxe da mensagem: mensagens unárias (Unary messages)'
lesson:
'"Mensagens são enviadas ao objetos. Há três tipos de mensagen: Unária, Binária e com Palavras Chaves (Unary, Binary e Keyword).

Mensagens do tipo Unary têm a seguinte forma:
    anObject aMessage 

Você já enviou mensagens do tipo unária (unary). Por exemplo:"

1 class.

false not.

Time now.

Date today.

Float pi.

"E, é claro: "

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:57'!
messageSyntaxKeyword
	^ Lesson
title: 'Sintaxe da mensagem: mensagens com palavras chaves (Keyword messages)'
lesson:
'"Mensagens com palavras chave (Keyword Messages) são mensagens com argumentos. Elas têm a seguinte forma:
    anObject akey: anotherObject akey2: anotherObject2"

4 between: 0 and: 10.

"A mensagem é between:and: enviada ao Number 4"

1 max: 3.

Color r:1 g:0 b:0.

"A mensagem é r:g:b: implementada na classe Color. Note que você também pode escrever"

Color
	r:1
	g:1
	b:0.

ProfStef perform: #next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 19:24'!
reflectionContinued
	^ Lesson
title: 'Continuando reflexão'
lesson:
'"Então, legal, não é? Antes de ir mais longe, vamos remover esse método:"

ProfStef respondsTo: #goToNextLesson.

ProfStef class removeSelector: #goToNextLesson.

ProfStef respondsTo: #goToNextLesson.

"Então, avance:"

ProfStef default executeMethod: (ProfStef lookupSelector:#next).'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/20/2017 07:11'!
inspecting
	^ Lesson
title: 'Inspecionando'
lesson:
'"Agora você é um mestre do Do It e Print It !! Vamos falar sobre inspecionar. É um Do It que abre um Inspector para o resultado da avaliação de uma expressão que você selecionou.
O Inspector é uma ferramenta que permite que você olhe dentro de um objeto.

Por exemplo, selecione o texto abaixo, abra o menu e clique em ''inspect it (i)'':"

1 / 2.

"Você viu a letra ''i'' entre parênteses logo após ''inspect it'' ? Ela indica o atalho ALT- (ou CMD- ou CTRL-) para executar este comando.

Tente ALT-i (ou CMD-i ou CTRL-i) nas seguintes expressões:"

DateAndTime today.

Float pi.

SystemVersion current.

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 18:45'!
iterators
	^ Lesson
title: 'Iteradores'
lesson:
'"A mensagem do: é enviada a uma coleção de objetos (Array, Set, OrderedCollection), avaliando o bloco para cada elemento.

Aqui nós queremos imprimir Here we want to print all the numbers on the Transcript (a console)"

#(11 38 3 -2 10) do: [:each |
     Transcript show: each printString; cr].

"Alguns outros iteradores muito bons"

#(11 38 3 -2 10) collect: [:each | each abs].

#(11 38 3 -2 10) collect: [:each | each odd].

#(11 38 3 -2 10) select: [:each | each odd].

#(11 38 3 -2 10) select: [:each | each > 10].

#(11 38 3 -2 10) reject: [:each | each > 10].

#(11 38 3 -2 10)
     do: [:each | Transcript show: each printString]
     separatedBy: [Transcript show: ''.''].

ProfStef allInstances do: [:aPharoTutorial | aPharoTutorial next].'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:15'!
theEnd
	^ Lesson
title: 'Tutorial feito!!'
lesson:
'"Este tutorial está terminado. Desfrute da programação com o Pharo.

Não se esqueça de ler ''Pharo By Example'' encontrado aqui:

	http://pharobyexample.org/

Você pode executar este tutorial novamente avaliando: "

ProfStef goOn: PharoSyntaxTutorialBR. 

"Você quer criar seu próprio tutorial interativo com ProfStef? Isso é muito fácil!! Como? Existe um tutorial interativo ProfStef para isso 😀
Apenas avalie o seguinte código: "

ProfStef goOn: HowToMakeYourOwnTutorial.

"Vejo você em breve !!"
'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:56'!
messageSyntaxCascade
	^ Lesson
title: 'Sintaxe da mensagem: Cascata'
lesson:
'"; é o operador de cascata (cascade operator). Isto é útil para enviar mensagem ao MESMO receptor

Abra um Transcript (console):"

Transcript open.

"Então"

Transcript show: ''hello''.
Transcript show: ''Pharo''.
Transcript cr.

"é equivalente a:"

Transcript
	   show: ''hello'';
	   show: ''Pharo'' ;
	   cr.

"Tente ir para a próxima lição com uma cascata de duas mensagens ''next'':"

ProfStef'.! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:57'!
messageSyntaxExecutionOrder
	^ Lesson
title: 'Sintaxe da mensagem: ordem de execução'
lesson:
'"Mensagens unárias (Unary messages) são executadas primeiro, então mensagens binárias (binary messages) e finalmente mensagens com palavras chave (keyword messages):
    Unary > Binary > Keywords"

2 + 3 squared.

2 raisedTo: 3 + 2.

(0@0) class.

0@0 corner: 100@200.

(0@0 corner: 100@200) class.

"Entre mensagens com precedência similar, as expressões são executadas da esquerda para a direita"

-3 abs negated reciprocal.

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 17:59'!
conditionals
	^ Lesson
title: 'Condicionais'
lesson:
'"Condicionais nada mais são que mensagens enviadas a objetos Boolean"

1 < 2   ifTrue: [100]   ifFalse: [42]. "Aqui a mensagem é ifTrue:ifFalse Tente isto:" Transcript open. 3 > 10
	ifTrue: [Transcript show: ''maybe there''''s a bug ....'']
	ifFalse: [Transcript show: ''No : 3 is less than 10''].

3 = 3 ifTrue: [ProfStef next].'.! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 17:21'!
blocks
	^ Lesson
title: 'Blocos'
lesson:
'"Cascata é maneira !! Vamos falar sobre blocos.

Blocos são métodos anônimos que podem ser armazenados em variáveis e executados sob demanda (on demand).

Blocos são delimitados por colchetes (square brackets): []"

[Workspace open].

"não abre um Browser porque o bloco não é executado.

Aqui está um bloco que adiciona 2 ao seu argumento (o seu argumento é nomeado como x):"

[:x | x+2].

"Nós podemos executar um bloco enviando a ele mensagens value (value messages)."

[:x | x+2] value: 5.

[Workspace open] value.

[:x | x+2] value: 10.

[:x :y| x + y] value:3 value:5.

[ProfStef next] value.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:53'!
basicTypesSymbol
	^ Lesson
title: 'Tipos básicos: Symbols'
lesson:
'"Um Symbol é uma String que é globalmente única. 

Há um e somente um Symbol #ProfStef. Pode haver vários objetos String ''ProfStef''.

(A mensagem  == retorna true se dois objetos são o MESMO)"

''ProfStef'' asSymbol.

#ProfStef asString.

(2 asString) == (2 asString).

(2 asString) asSymbol == (2 asString) asSymbol.

(Smalltalk globals at: #ProfStef) next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 19:04'!
instantiation
	^ Lesson
title: 'Instanciação'
lesson:
'"Objetos são instâncias de suas classe. Geralmente, enviamos a mensagem #new para uma classe para criar uma instância desta classe.

The message #allInstances sent to a class answers an Array with all instances of this class.
A mensagem #allInstances enviada para uma classe responde com um Array com todas as instâncias desta classe.

Por exemplo, vamos ver quantas instâncias de SimpleButtonMorph existem: "

SimpleButtonMorph allInstances size.

"Now create a new instance of it:"
"Agora crie uma nova instância dele:"

SimpleButtonMorph new
	label: ''A nice button'';
	openCenteredInWorld.

"Vê o botão no centro da janela? A lista de todas as instâncias deve conter mais uma instância:"

SimpleButtonMorph allInstances size.

"Vamos nos divertir com ele:"

SimpleButtonMorph allInstances last
	label: ''ProfStef is cooooool !!'';
	color: Color cyan.

"Vamos excluí-lo e pedir ao sistema para limpar a memória:"

SimpleButtonMorph allInstances last delete.
Smalltalk garbageCollect.
SimpleButtonMorph allInstances size.

"Clique no botão para ir para a próxima lição (Selecione e Do it):"

SimpleButtonMorph new
	label: ''Go to next lesson'';
	target: [ProfStef next.
			SimpleButtonMorph allInstances last delete];
	actionSelector: #value;
	openCenteredInWorld.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:55'!
messageSyntaxBinary
	^ Lesson
title: 'Sintaxe da mensagem: mensagens binárias'
lesson:
'"Mensagens binárias (binary messages) têm a seguinte forma:
    anObject + anotherObject"

3 * 2.

Date today + 3 weeks.

false | false.

true & true.

true & false.

10 @ 100.

10 <= 12.

''ab'', ''cd''.

Date today < Date yesterday. ProfStef next.'! ! !PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/20/2017 07:12'! messageSyntaxExecutionOrderParentheses 	^ Lesson title: 'Sintaxe da mensagem: Parênteses' lesson:  '"Use parênteses para mudar a ordem de avaliação" (2 + 3) squared. (2 raisedTo: 3) + 2. (0@0 extent: 100@200) bottomRight. ProfStef next.'! ! !PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 19:16'! reflection 	^ Lesson title: 'Reflexão'  lesson:  '"Você pode inspecionar e alterar o sistema em tempo de execução. Dê uma olhada no método #ifFalse: ifTrue: código fonte da classe True (Print it):" (True>>#ifFalse:ifTrue:) definition.

"Ou apenas o comentário:"

(True>>#ifFalse:ifTrue:) comment.

"Aqui estão todos os métodos que implemento:"

ProfStef selectors.

"Vamos criar um novo método para ir para a próxima lição:"

ProfStef class compile:''goToNextLesson
  self next''.

"Uau!! Não posso esperar para usar meu novo método!!"

ProfStef goToNextLesson.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:54'!
mathematicalPrecedence
	^ Lesson
title: 'Precedência matemática'
lesson:
'"As regras de precedência tradicionais da matemática não se aplicam em Pharo."

2 * 10 + 2.

"Aqui a mensagem * é enviada ao 2, cuja resposta é 20, então 20 recebe a mensagem +

Lembre-se que todas as mensagens sempre seguem uma regra de precedência simples da esquerda para a diretita, sem exceções."

2 + 2 * 10.

2 + (2 * 10).

8 - 5 / 2.

(8 - 5) / 2.

8 - (5 / 2).

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 16:55'!
welcome
	^ Lesson
title: 'Bem-vindo'
lesson:
'"Olá!! Eu sou o Professor Stef.

Você deve querer que eu o ajude a aprender Pharo.

Então vamos à primeira lição.  Selecione o texto abaixo, clique com o botão direito e selecione  ''do it (d)''"

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:50'!
basicTypesArray
	^ Lesson
title: 'Tipos básicos: Array'
lesson:
'"Arrays literais são criados em tempo de compilação (parse time):"

#(1 2 3).

#( 1 2 3 #(4 5 6)) size.

#(1 2 4) isEmpty.

#(1 2 3) first.

#(''hello'' ''World'') at: 2 put: ''Pharo''; yourself.

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 19:37'!
pharoEnvironment
	^ Lesson
title: 'Ambiente do Pharo'
lesson:
'"Pharo está repleto de objetos. Existem janelas, texto, números, datas, cores, pontos e muito mais. Você pode interagir com objetos de uma maneira muito mais direta
do que é possível com outras linguagens de programação.

Todo objeto entende a mensagem ''explore''. Como resultado, você obtém uma janela do Explorer que mostra detalhes sobre o objeto."

Date today explore.

"Isso mostra que o objeto da data (date object) consiste em um ponto no tempo (start) e uma duration (um dia de duração)".

ProfStef explore.

"Como você pode ver, a classe ProfStef tem muitos objetos. Vamos dar uma olhada no meu código:"

ProfStef browse.

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 16:47'!
messageSyntaxCascadeShouldNotBeHere
	^ Lesson
title: 'Perdido ?'
lesson:
'"Ei, yvocê não deveria estar aqui !!!! 

Volte é use uma cascata !!"

ProfStef previous.'.! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:51'!
basicTypesCharacters
	^ Lesson
title: 'Tipos básicos: Characters'
lesson:
'"Um Character pode ser instanciado usando o operador $:"

$A.

$A class.

$B charCode.

Character cr.

Character space.

"Você pode imprimir todos os 256 caracteres do conjunto estendido do ASCII:"

Character allByteCharacters.

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:52'!
basicTypesNumbers
	^ Lesson
title: 'Tipos básicos: Numbers'
lesson:
'"Você agora conhece como executar códigos no Pharo. 

Agora vamos falar sobre objetos básicos.

1, 2, 100, 2/3 ... são Numbers, e respondem a muitas mensagens avaliando expressões matemáticas.
Avalie as seguintes:"

2.

20 factorial.

1000 factorial / 999 factorial.

(1/3).

(1/3) + (4/5).

(1/3) asFloat.

1 class.

1 class maxVal class.

(1 class maxVal + 1) class.

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/20/2017 11:23'!
debugger
	^ Lesson
title: 'Depurador (Debugger)'
lesson: '"O Debugger pode ser a ferramenta mais famosa dos ambientes Smalltalk. Ele será aberto assim que ocorrer uma Exception não gerenciada.

O código a seguir irá abrir o debugger na pilha de mensagens, selecione PharoSyntaxTutorialBR>>divideTwoByZero ".

PharoSyntaxTutorialBR new divideTwoByZero. 

ProfStef next'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:53'!
doingVSPrinting
	^ Lesson
title: 'Do it'
lesson:
'"Maneiro !! (Eu gosto de dizer maneeeeiro 🙂 ). Você acaba de executar uma expressão no Pharo. Mais precisamente, você enviou a mensagem ''next'' à classe ProfStef ( sou eu !!).

Note que você pode executar este tutorial outra vez avaliando: ''ProfStef goOn: PharoSyntaxTutorialBR''.
''ProfStef previous'' volta para a lição anterior.

Você pode também acionar Do It usando o atalho de teclado ''ALT d''
(isto varia de acordo com o seu sistema operacional/computador: pode ser ''CMD d'' ou ''CTRL d''). 

Tente avaliar as seguintes expressões:"

Workspace open.

SmalltalkImage current aboutThisSystem.

"Então vá para a próxima lição:"

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 20:51'!
basicTypesDynamicArray
	^ Lesson
title: 'Tipos básicos: Dynamic Array'
lesson:
'"Arrays dinâmicos são criados em tempo de execução (execution time):"

{ (2+3) . (6*6) }.

{ (2+3) . (6*6) . ''hello'', '' Stef''} size.

{ ProfStef } first next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/20/2017 07:13'!
printing
	^ Lesson
title: 'Print it'
lesson:
'"Agora você é o mestre do Do It !! Vamos falar sobre imprimir. É um Do It que imprime o resultado logo depois da expressão que você selecionou.
Por exemplo, selecione o texto abaixo, abra o menu e clique em ''print it (p)'':"

1 + 2.

"Você verá a letra ''p'' entre parênteses logo após ''print it'' ? Isto indica o atalho ALT- (ou CMD- ou CTRL-) para executar este comando.

Tente ALT-p (ou CMD-p ou CTRL-p) nas seguinte expressões:"

Date today.

Time now.

"O resultado aparece selecionado, então você pode apagá-lo usando a tecla backspace. Tente !!"

SmalltalkImage current datedVersion.

ProfStef next.'! !

!PharoSyntaxTutorialBR methodsFor: 'lessons' stamp: 'FranciscoAryMartins 6/8/2017 18:08'!
loops
	^ Lesson
title: 'Laços (Loops)'
lesson:
'"Laços (Loops) são iteradores de coleção de alto nível, implementados como métodos regulares."

"Basic loops:
  to:do:
  to:by:do"

1 to: 100 do:
  [:i | Transcript show: i asString; cr ].

1 to: 100 by: 3 do: [:i | Transcript show: i asString; cr].

100 to: 0 by: -2 do:
    [:i | Transcript show: i asString; cr].

1 to: 1 do: [:i | ProfStef next].'! !

!PharoSyntaxTutorialBR methodsFor: 'interactive' stamp: 'FranciscoAryMartins 6/20/2017 11:28'!
divideTwoByZero
			2/0.

			"Oups!! 2/0 levanta uma exceção ZeroDivide. Portanto, o depurador abre para permitir que você 			conserte o código.

			- Remova a linha de código acima.
			- Clique com o botão direito do mouse e selecione ‘Accept’ para compilar a nova versão do 			método
			- clique no botão ‘Proceed’ para continuar a execução.
			".

ProfStef next.! !

"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!

PharoSyntaxTutorialBR class
	instanceVariableNames: ''!

!PharoSyntaxTutorialBR class methodsFor: 'as yet unclassified' stamp: 'FranciscoAryMartins 6/18/2017 08:43'!
openPharoTutorialBR
	ProfStef goOn: PharoSyntaxTutorialBR! !

!PharoSyntaxTutorialBR class methodsFor: 'world menu' stamp: 'FranciscoAryMartins 6/18/2017 08:46'!
menuCommandOn: aBuilder
	<worldMenu>
	(aBuilder item: #'Tutorial de sintaxe do Pharo')
		parent: #Help;
		order: 5.0;
		action: [ self openPharoTutorialBR ];
		icon: ((self iconNamed: #pharoIcon) scaledToSize: 16@16) ! !

Copie o arquivo PharoSyntaxTutorialBR.st para a pasta /Applications/Pharo6.0.app/Contents/Resources,

Nota:

No Mac OSX para copiar um arquivo para dentro do package Pharo6.0.app é necessário selecionar Show Package Content no menu suspenso obtido com o botão direito do mouse sobre o arquivo Pharo6.0 na pasta Applications.

pharotut-Show Package Contents selected

Depois navegue até a pasta Contents/Resources e cole o arquivo lá.

pharotut-copy-st-file-on-content-resources

Abra o File Browser selecionando o submenu World | Tools | File Browser.

pharo6-world-tools-file-browser-menu.png

A janela do File Browser aparecerá.

pharo6-file-browser-window.png

Selecione o arquivo PharoSyntaxTutorialBR.st (talvez precise rolar um pouco) e clique no botão FileIn.

pharo6-file-browser-prof-stef-br-file-selected.png

Vamos confirmar a instalação do tutorial.

Abra o Playground.

pharo6-world-playground-menu-selectede

Escreva ProfStef browse.

pharo6-playground-with-prof-stef-browse-writed

Selecione e

pharo6-playground-with-prof-stef-browse-selected-and-do-it-selected

Do it para abrir o Smalltalk browser na classe ProfStef.

pharo6-smalltalk-browser-opened-in-prof-stef-class.png

Selecione a classe PharoSyntaxTutorialBR.st e, então, o método #welcome.

pharo6-prof-stef-br-welcome-selected.png

Isto confirma que o tutorial em português está instalado.

Podemos confirmar também através do menu World | Help | Pharo Tutorials.

pharo6-pharo-tutorials-submenu

Nota:

Outra indicação é o aparecimentos do submenu Tutorial de sintaxe do Pharo logo abaixo de Glamour Example Browser.

pharo6-prof-stef-br-browse-tutorial.png

Voltar à página do tutorial.

Anúncios

Uma resposta para “Instalando o ProfStef em português

  1. Pingback: Sintaxe do Pharo | Crab Log

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s