- Apr 2024
-
semver.org semver.org
-
Mayor.Menor.
-
Version mayor: se debe tener cuidado a la hora de implemntar cambios o versiones mayores ya que esto como se menciona anteriormente puede afectar la compatibilidad de versiones anteriores y se deba realizar una modificacion de codigo o con la nueva versión.
-
Versión Menor: en estas versiones se puede ver pequeños cambios y actualizaciones realidas que no afectan la compatibilidad.
-
-
Adiciones o sustracciones compatibles con versiones anteriores incrementan la versión menor, y cambios en el API incompatibles con versiones anteriores incrementan la versión mayor
Por ultimo en este parrafo, se puede entender que se pueden agregar o eliminar cambios, pero que no afecten a el software y la compatibilidad de sus versiones y actualizaciones, ya que de esta manera se podra ejecutar y actualizar versiones sin novedad alguna y sin la preocupacion de que el software deje de funcionar.
- Cuando se presenta un cambio en la API, puede que se presente incompatibilidad de versiones y el software anterior ya no tenga conexion o responda a este cambio realizado, ya sea por modificacion local, cambio de nombres o ubicacion renombrada
-
versión parche
Esto Indica a una Versión de Correciones.
Se conoce como Patch y son correcciones que solucionan problemas sin cambiar la funcionalidad de un software, esta funcionalidad es pensada en que no se afecte para que los usuarios no tengan problemas mayores en la interaccipon con la API.
-
software de código cerrado como de código abierto
algunas diferencias de un software de codigo abierto y código cerrado es:
Código abierto: el codigo fuente esta en linea, puede ser modificado y compartido en conjunto.
-
se ve la participación y un desarrollo a una compresión de codigo
-
en la clase de Unidades Semanticas podemos ver que hace referencia a la gestion de versiónes y actualizaciones por Git.
Código Cerrado: Es un código que no se encuentra libremente y que este posiblemente tiene un propietario
- En el caso de esta guia y en el mantemiento o actaulizacion de los software pueden estar es sujetas a unas politicas de privacidad
-
-
Como solución a este problema, propuse un conjunto simple de reglas y requerimientos que dicten cómo asignar e incrementar los números de la versión. Estas reglas están basadas en prácticas preexistentes de uso generalizado tanto en software de código cerrado como de código abierto, pero no necesariamente limitadas a éstas.
Como posibles soluciones a estas versiones y actualizaciones se propone una guia clara para que se pueda asignar de una manera sencilla a software o dependencias
esto puede ser una ayuda enorme para que se evite en gran mayor los problemas o errores
-
versiones promiscuas
cuando se habla de versiones promiscuas, quiere decir que o hace referencia a una versión que se creo o se actualizo para futuras razones, esta versión puede que sea compatible con una dependencia pero no garantiza que se acomode a los futuras versiónes-
-
Si las dependencias son especificadas de forma muy relajada, inevitablemente serás mordido por versiones promiscuas (asumir la compatibilidad con próximas versiones más allá de lo razonable). El Infierno de Dependencias es donde estás cuando una versión bloqueada y/o promiscua previenen que muevas tu proyecto adelante de forma fácil y segura.
En ese parrafo se puede entender la importancia de tner un sofware claro y preciso, esto para que no se tenga un riesgo a la hora de crear versiónes o actualizacion en una dependencia
-
En el mundo de la administración de software existe un temido lugar llamado “Infierno de Dependencias”. Mientras más crece tu sistema y más paquetes integras dentro de tu software, más probable se hace que un día te encuentres en este pozo de desesperación.
Este parrafo puede entenderse como un problema que se presenta en un desarrollo de un Sofware, en este caso hace mencion a la versión mayor.
- A medida que un sistema de software crece y se agregan más paquetes se pueden crear problemas entre esas actualizaciones de paquete, con actualizacion de nuevas versiónes y la identificación de los presente errores
-
-
chiselapp.com chiselapp.com
-
folder := FileLocator temp / 'Semanticas'. memories do: [:doc | | fileName | fileName := (doc url asString splitOn: $:) last , '.md'. doc file: folder / fileName. doc exportAsFile. ]
Receptor u objeto ** memories:**
Mensaje do: se envía al objeto memories, que en este caso son las memorias de clase.
-
| fileName | fileName := (doc url asString splitOn: $:) last , '.md'. doc file: folder / fileName. doc exportAsFile. ]
| fileName | fileName := (doc url asString splitOn: $:) last , '.md'. doc file: folder / fileName. doc exportAsFile. ] : Es el argumento
-
'Anita lava la tina' reversed
'Anita lava la tina' reversed: Es Un Mensaje Unario
Objeto: reversed Mensaje: 'Anita lava la tina'
-
sessions collect
Sessions: es el Receptor u objeto
Collect: es un Mensaje unario, porque actua sobre el objeto que es sessions
[:session | doc := HedgeDoc new url: commonAddress, session asString; retrieveContents. ] : es el argumento
-
doWithIndex: [:item :index |
doWithIndex: [:item :index | : Es un mensaje unario
- este es un mensaje unario por que solo se aplica a un objeto o receptor que seria ( la colección memories)
-
[:item :index | item metadata at: 'title' put: 'Unidades semanticas, sesión ', index asString ].
[:item :index | item metadata at: 'title' put: 'Unidades semanticas, sesión ', index asString ]. Es el argumento
-
memories
memories: es el Objeto
-
memories doWithIndex: [:item :index | item metadata at: 'title' put: 'Unidades semanticas, sesión ', index asString ].
-
Recuperando las memorias de la clase commonAddress := 'https://docutopia.sustrato.red/semanticas:24A' sessions := 1 to: 13
Keyword
sessions: Receptor u objeto
to: Mensaje
1 y 13: Argumentos
-
[:session | doc := HedgeDoc new url: commonAddress, session asString; retrieveContents. ]
Bloque
nos indica que se ejecutara para cada elemento de (sessiones)
Sessions: es un elemnto que esta dento de (Session).
en este mismo bloque se crea un (HedgeDoc) nuevo,lo cual establece las url
-
commonAddress := 'https://docutopia.sustrato.red/semanticas:24A'
Mensaje unario
se puede considerar unario ya que solo involucra un operador (el string) 'https://docutopia.sustrato.red/semanticas:24A'
¿que es el string? * se representa entre comillas simples (') o dobles (") mejor entendido como una cadena de.
-
24 * 16
**Mensaje Binario **
24: es el Objeto
(*) : es el Operador
16: es el Argumento
-
-
chiselapp.com chiselapp.com
-
miColeccion := #(11 38 3 -2 10)
crea un array con los números (11 38 3 -2 10)
-
[:each | each abs]
El bloque proporcionado es [:each | each abs], que toma cada elemento (each)
-
collect
mensaje collect: para aplicar un bloque a cada elemento del array.
-
Asignación de bloques
básicamente en esta sección podemos ver que en pharo, los bloques son piezas de código encapsuladas que pueden ser asignadas a variables y ejecutadas en un momento
-
Bloques
-
Métodos anónimos: Los bloques no tienen nombres asociados y pueden ser creados y utilizados sobre la marcha sin necesidad de definir un nombre específico para ellos.
-
Almacenamiento en variables: Los bloques pueden ser asignados a variables y pasados como argumentos a otros métodos o bloques.
-
Delimitados por paréntesis cuadrados: Los bloques en Pharo están delimitados por paréntesis cuadrados [ ].
-
Captura de contexto: Los bloques pueden capturar variables definidas en el contexto en el que se crean, lo que les permite acceder y manipular esos valores
-
-
messageBoard clear
Aunque no se vea el cambio podemos verificar que si se ejucuto el comando messageBoard clear
-
messageBoard show: 'hola'. messageBoard cr. messageBoard show: 'Pharo'
messageBoard, puedes encadenar los mensajes en cascada para lograr el mismo resultado de una manera más concisa y legible.
show: se utiliza para mostrar un mensaje en el objeto messageBoard Hola y Pharo
cr : se utiliza para agregar un salto de línea
-
Mensajes en cascada
los "mensajes en cascada" permiten enviar múltiples mensajes a un mismo objeto de forma encadenada. Esto proporciona una forma concisa de realizar una secuencia de acciones en un objeto sin tener que repetir el nombre del objeto en cada línea de código
-
2 * 10 + 2.
- la expresión 2 * 10 + 2, la multiplicación (*) tiene una precedencia más alta que la adición (+). Por lo tanto, la multiplicación se evaluará antes que la adición
- Primero, se realizará la multiplicación 2 * 10, que da como resultado 20.
- Luego, se realizará la adición 20 + 2, que da como resultado 22
-
(2 + 3) squared
"Squared" Elevado al cuadrado
la expresión dentro de los paréntesis: 2 + 3, que da como resultado 5 se aplica el mensaje squared al resultado de la suma, es decir, al número 5 (2 + 3) squared es a 25
-
2 raisedTo: (3 + 2)
- expresión dentro de paréntesis: (3 + 2). Esto da como resultado 5.
- Luego, elevamos 2 a la potencia (raisedTo) de 5. Esto significa que multiplicaremos 2 por sí mismo 5 veces.
Entonces, 2 potencia de 5 =(2×2×2×2×2)= 32
-
Prioridad
En esta sección tenemos:
-
Paréntesis: Las expresiones dentro de paréntesis se evalúan primero.
-
Mensajes unarios: Los mensajes unarios, que consisten en un solo identificador, se evalúan después de las expresiones entre paréntesis.
-
Mensajes binarios: Los mensajes binarios, que consisten en operadores como +, -, *, etc., se evalúan después de los mensajes unarios.
-
Mensajes de palabra clave: Los mensajes de palabra clave, que consisten en uno o más identificadores seguidos de dos puntos y un argumento, se evalúan después de los mensajes binarios
-
-
Color r:1 g:0 b:0.
el mensaje r:g:b: es un ejemplo de un mensaje de palabra clave implementado en la clase Color. Este mensaje se utiliza para crear un color especificando los valores de los componentes rojo (r), verde (g) y azul (b)
- la expresión Color r: 1 g: 0 b: 0, estamos creando un nuevo color donde el componente rojo (r) tiene un valor de 1 (máximo), mientras que los componentes verde (g) y azul (b) tienen un valor de 0 (mínimo), lo que resulta en un color rojo puro.
-
Date today + 3 years
Date today + 3 years está utilizando un mensaje binario. Aquí, Date today devuelve la fecha actual, y luego el mensaje binario + se envía a esa fecha junto con el objeto 3 years.
Este mensaje binario + se utiliza para agregar un período de tiempo a una fecha. En este caso, se está agregando un período de 3 años a la fecha actual.
-
Binario
En esta sección los "mensajes binarios" son aquellos que se envían a un objeto junto con otro objeto, sin palabras clave o métodos especiales entre ellos. La forma típica de un mensaje binario es la siguiente
anObjecto aMessage anotherObject
-
Date today
Date today se utiliza para obtener la fecha actual del sistema. Esto devuelve un objeto de tipo Date que representa la fecha actual
-
false not
El mensaje unario not se envía a un objeto que es true, el not invertirá el valor de false para que se convierta en true
-
true not
false not evaluará a true. Esto se debe a que false es un valor bque representa "falso". Al aplicar el operador not, se invierte su valor lógico, convirtiéndolo en "verdadero". Entonces, true not resultará en false
-
arreglo dinámico
arreglo dinámico
(2+3) es una expresión que suma 2 y 3, dando como resultado 5. (6+6) es una expresión que suma 6 y 6, dando como resultado 12.
'hello' , 'Stef' es una concatenación de dos strings cadena , se unifican y queda un resultado de un único string 'helloStef' y luego se evalua con size
Por lo tanto, { (2+3) . (6+6) . 'hello' , 'Stef' } size evalúa a 3
-
arreglo estático
arreglo estático
(2+3) es una expresión que suma 2 y 3, dando como resultado 5. (6+6) es una expresión que suma 6 y 6, dando como resultado 12.
'hello' , 'Stef' es una concatenación de dos strings cadena, estas se unifican ando un resultando en un único string 'helloStef y se pone size
Entonces, #( (2+3) (6+6) 'hello' , 'Stef') size evalúa a 3
-
Arreglos Dinámicos
En esta seccion podemos ver que podemos usar el arreglo por llaves { } y sus elementos se separan por "." punto.
en el ejemplo vemos { (2+3).(6*6) }.
la interpretación es Sume la primera matriz y Multiplique la segunda
-
#(1 2 4) isEmpty
La expresión #(1 2 4) representa una matriz que contiene los elementos 1, 2 y 4 el mensaje isEmpty pregunta si la matriz está vacía o no, lo cual al ejecutarla sale FALSE, porque si contienen elementos
-
#( 1 2 3 #(4 5 6)) size
- En la matriz principal, tenemos 3 elementos individuales: 1, 2, y 3.
- Luego, tenemos una matriz con 3 elementos: 4, 5, y 6.
entonces La matriz principal contiene 3 elementos individuales, y una matriz con 3 elementos adicionales entonces el tamaño total de la matriz es 3 (elementos individuales) + 1 (matriz anidada) = 4 elementos en total.
-
Arreglos
En esta sección aprenderemos como coleccionar información en diferentes formas, los arreglos se representan con un (#) y dentro de los paréntesis se colocan los elementos separados por espacio (barra espacio)
(1 7 13)
-
a == a ← Comparación fuerte.
a == a ← Comparación fuerte. Se trata del mismo símbolo?
-
#PharoTutorial.
Comparación
-
Símbolos
En esta seccion podemos ver que tenemos dos elementos (Symbol) y (String) el cual nos dice que un unico simbolo es #PharoTutorial y que los objetos cambian String cual sea el contenido.
-
La concatenación de cadenas (strings) es el proceso de unir dos o más cadenas para formar una sola cadena más larga y se realiza utilizando el operador coma
La concatenación de cadenas (strings) es el proceso de unir dos o más cadenas para formar una sola cadena más larga y se realiza utilizando el operador coma
Ejemplo: 'Pharo tutorial ', ' is cool', ' when i active the code '
-
Cadenas Un String o cadena es una colección de caracteres. Usa comillas simples para crear un objeto String
En esta sección podemos ver que podemos crear un objeto y darle sentido veamos un ejemplo.
Ejecutamos 'Adan no calla con nada' reverse.
-
Character allByteCharacters
problema de visualización con símbolos no romanos/latinos, generalmente causado por las fuentes que tienes instaladas en tu Sistema Operativo
-
Character space
Al ejecutar estos caracteres podemos darnos cuenta de que no tendrán una visión en el recuadro de ejercicio, pero si se esta ejecutando
-
$A
Un caracter representa una letra del alfabeto y puede ser usado con el operador ($) y cualquier letra del alfabeto. en este caso A.
-
Caracteres
En esta sección tenemos la explicación de que al usar un carácter ($) combinado con un ASCII que es un numero representado por un caracter en este caso el @ me indica el número 64. acompañado de un comando que ejecuta charCode
-
Números
-
En esta sección podemos explorar lo que son los números en Pharo y como ejecutarlos en Glamorous Toolkit, para poder desarrollar y ejecutar estos ejercicios matemáticos
-
Cuando le damos inspeccionar a estos mensajes matemáticos sucede que nos muestra la operación resulta. ejemplo (1/3) Inspect
Resultado.
-
Tags
- Pharo
- Arreglos
- Mensaje
- Ejemplo
- MensajeCascada
- MensajeUnario
- Comparación
- OperadorComa
- Tipos Básicos
- Bloques
- ComparaciónFuerte
- Caracteres
- CambioPrioridad
- Fecha
- ArreglosDinamicos
- Prioridad
- Colecciones
- PrioridadMsjMatematico
- String
- Cadena
- Datos numericos
- Problema
- False
- True
- ArregloEstatico
- Espacio
- Caracter
- ASCII
- Potencia
- Matriz
- ElevadoAlCuadrado
- MensajeBinario
- Keyword
- Extensión
- AsignacionBloque
- Abreviada
- Simbolo
Annotators
URL
-
- Mar 2024
-
mutabit.com mutabit.com
-
miColeccion := #(11 38 3 -2 10) collect: [:each | each abs].
-
miColeccion := #(11 38 3 -2 10)
crea un array con los números (11 38 3 -2 10)
-
[:each | each abs]
El bloque proporcionado es [:each | each abs], que toma cada elemento (each)
-
collect:
mensaje collect: para aplicar un bloque a cada elemento del array.
-
ifFalse: [GtTranscript new show: 'Es falso']
-
ifTrue: [GtTranscript new show: 'Es cierto']
-
[:x | x+2] value: 20. b := [:x | x+2]. b value: 20.
[:x | x+2] value: 20. * Este código crea un bloque directamente en el lugar donde se necesita y lo ejecuta inmediatamente con el argumento 20. El bloque toma x como argumento, suma 2 a x y devuelve el resultado. En este caso, se pasa 20 el resultado será 20 + 2 = 22
b := [:x | x+2]. b value: 20. * primero se crea un bloque y se asigna a la variable b. Luego, el bloque almacenado en b se ejecuta con el argumento 20. Este enfoque permite reutilizar el mismo bloque en múltiples lugares o en momentos diferentes dentro del código
-
Asignación de bloques Los bloques pueden ser asignados a variables y ejecutados después. Nota que |b| es la declaración de una variable llamada 'b' y que ':=' asigna un valor a una variable.
básicamente en esta sección podemos ver que en pharo, los bloques son piezas de código encapsuladas que pueden ser asignadas a variables y ejecutadas en un momento
-
[:x | x+2]
-
Bloques For this part a Basic understanding of Basic Types is recommended. If you have not done that part yet, please go to that subtree and run the code there Ahora hablemos de los bloques. Piensa en los bloques como una manera de 'congelar' código que luego podremos ejecutar por demanda, cuando queramos y/o las condiciones para su ejecución se cumplan. Los bloques son métodos anónimos, lo cual quiere decir que no es necesario ponerles nombres para invocarlos (como ocurre con las operaciones sobre objetos que hemos visto hasta el momento) y pueden pueden ser almacenados en variables. Los bloques están delimitados por paréntesis cuadrados: []
-
Métodos anónimos: Los bloques no tienen nombres asociados y pueden ser creados y utilizados sobre la marcha sin necesidad de definir un nombre específico para ellos.
-
Almacenamiento en variables: Los bloques pueden ser asignados a variables y pasados como argumentos a otros métodos o bloques.
-
Delimitados por paréntesis cuadrados: Los bloques en Pharo están delimitados por paréntesis cuadrados [ ].
-
Captura de contexto: Los bloques pueden capturar variables definidas en el contexto en el que se crean, lo que les permite acceder y manipular esos valores
-
-
messageBoard show: 'hello'; cr; show: 'Pharo'.
-
messageBoard clear
Aunque no se vea el cambio podemos verificar que si se ejucuto el comando messageBoard clear
-
messageBoard show: 'hola'. messageBoard cr. messageBoard show: 'Pharo'
messageBoard, puedes encadenar los mensajes en cascada para lograr el mismo resultado de una manera más concisa y legible.
show: se utiliza para mostrar un mensaje en el objeto messageBoard Hola y Pharo
cr : se utiliza para agregar un salto de línea
-
Mensajes en cascada Supongamos que tenemos un objeto donde queremos mostrar un conjunto de resultados
- los "mensajes en cascada" permiten enviar múltiples mensajes a un mismo objeto de forma encadenada. Esto proporciona una forma concisa de realizar una secuencia de acciones en un objeto sin tener que repetir el nombre del objeto en cada línea de código
-
Prioridad de los mensajes matemáticos Las reglas tradicionales de las matematicas NO aplican dentro de Pharo. 2 * 10 + 2. Aqui el mensaje multiplicación (*) es enviado al 2, y su resultado correspondiente es 20. Entonces 20 reciben el mensaje +, con argumento 2, para un total de 22. Recuerda que todos los mensajes simpre siguen una regla precente de izquierda a derecha, sin excepciones.
- la expresión 2 * 10 + 2, la multiplicación (*) tiene una precedencia más alta que la adición (+). Por lo tanto, la multiplicación se evaluará antes que la adición
- Primero, se realizará la multiplicación 2 * 10, que da como resultado 20.
- Luego, se realizará la adición 20 + 2, que da como resultado 22
-
(2 + 3) squared
"Squared" Elevado al cuadrado
- la expresión dentro de los paréntesis: 2 + 3, que da como resultado 5
- se aplica el mensaje squared al resultado de la suma, es decir, al número 5
- (2 + 3) squared es a 25
-
2 raisedTo: (3 + 2)
- expresión dentro de paréntesis: (3 + 2). Esto da como resultado 5.
- Luego, elevamos 2 a la potencia (raisedTo) de 5. Esto significa que multiplicaremos 2 por sí mismo 5 veces.
Entonces, 2 potencia de 5 =(2×2×2×2×2)= 32
-
Prioridad Los mensajes unarios son ejectuados primero, los mensajes binarios son ejecutados despues y finalmente las cadenas de mensajes: paréntesis > Unary > Binary > Keywords
En esta sección tenemos:
- Paréntesis: Las expresiones dentro de paréntesis se evalúan primero.
- Mensajes unarios: Los mensajes unarios, que consisten en un solo identificador, se evalúan después de las expresiones entre paréntesis.
- Mensajes binarios: Los mensajes binarios, que consisten en operadores como +, -, *, etc., se evalúan después de los mensajes unarios.
- Mensajes de palabra clave: Los mensajes de palabra clave, que consisten en uno o más identificadores seguidos de dos puntos y un argumento, se evalúan después de los mensajes binarios
-
Color r:1 g:0 b:0. El mensaje es r:g:b: implementado en la clase Color. Note que también puede escribir
el mensaje r:g:b: es un ejemplo de un mensaje de palabra clave implementado en la clase Color. Este mensaje se utiliza para crear un color especificando los valores de los componentes rojo (r), verde (g) y azul (b)
- la expresión Color r: 1 g: 0 b: 0, estamos creando un nuevo color donde el componente rojo (r) tiene un valor de 1 (máximo), mientras que los componentes verde (g) y azul (b) tienen un valor de 0 (mínimo), lo que resulta en un color rojo puro.
-
Date today + 3 years.
Date today + 3 years está utilizando un mensaje binario. Aquí, Date today devuelve la fecha actual, y luego el mensaje binario + se envía a esa fecha junto con el objeto 3 years.
Este mensaje binario + se utiliza para agregar un período de tiempo a una fecha. En este caso, se está agregando un período de 3 años a la fecha actual.
-
Binario
En esta sección los "mensajes binarios" son aquellos que se envían a un objeto junto con otro objeto, sin palabras clave o métodos especiales entre ellos. La forma típica de un mensaje binario es la siguiente
anObjecto aMessage anotherObject
-
false not
El mensaje unario not se envía a un objeto que es true, el not invertirá el valor de false para que se convierta en true
-
true not
false not evaluará a true. Esto se debe a que false es un valor bque representa "falso". Al aplicar el operador not, se invierte su valor lógico, convirtiéndolo en "verdadero". Entonces, true not resultará en false
-
Date today
Date today se utiliza para obtener la fecha actual del sistema. Esto devuelve un objeto de tipo Date que representa la fecha actual
-
arreglo estático #( (2+3) (6+6) 'hello' , 'Stef') size
arreglo estático
(2+3) es una expresión que suma 2 y 3, dando como resultado 5. (6+6) es una expresión que suma 6 y 6, dando como resultado 12.
'hello' , 'Stef' es una concatenación de dos strings cadena, estas se unifican ando un resultando en un único string 'helloStef y se pone size
Entonces, #( (2+3) (6+6) 'hello' , 'Stef') size evalúa a 3
-
con este arreglo dinámico: { (2+3) . (6+6) . 'hello' , 'Stef' } size.
arreglo dinámico
(2+3) es una expresión que suma 2 y 3, dando como resultado 5. (6+6) es una expresión que suma 6 y 6, dando como resultado 12.
'hello' , 'Stef' es una concatenación de dos strings cadena , se unifican y queda un resultado de un único string 'helloStef' y luego se evalua con size
Por lo tanto, { (2+3) . (6+6) . 'hello' , 'Stef' } size evalúa a 3
-
Arreglos Dinámicos
En esta seccion podemos ver que podemos usar el arreglo por llaves { } y sus elementos se separan por "." punto.
en el ejemplo vemos { (2+3).(6*6) }.
la interpretación es Sume la primera matriz y Multiplique la segunda
-
#(1 2 4) isEmpty
La expresión #(1 2 4) representa una matriz que contiene los elementos 1, 2 y 4 el mensaje isEmpty pregunta si la matriz está vacía o no, lo cual al ejecutarla sale FALSE, porque si contienen elementos
-
Inspecciona las siguientes expresiones: #( 1 2 3 #(4 5 6)) size.
- En la matriz principal, tenemos 3 elementos individuales: 1, 2, y 3.
- Luego, tenemos una matriz con 3 elementos: 4, 5, y 6.
entonces La matriz principal contiene 3 elementos individuales, y una matriz con 3 elementos adicionales entonces el tamaño total de la matriz es 3 (elementos individuales) + 1 (matriz anidada) = 4 elementos en total.
-
Arreglos
En esta sección aprenderemos como coleccionar información en diferentes formas, los arreglos se representan con un (#) y dentro de los paréntesis se colocan los elementos separados por espacio (barra espacio)
(1 7 13)
-
'PharoTutorial' = 'PharoTutorial'.
Comparación
-
#PharoTutorial == 'PharoTutorial'
a == a ← Comparación fuerte. Se trata del mismo símbolo?
-
Símbolos
En esta seccion podemos ver que tenemos dos elementos (Symbol) y (String) el cual nos dice que un unico simbolo es #PharoTutorial y que los objetos cambian String cual sea el contenido.
-
La concatenación de String usa el operador coma: ['PharoTutorial', ' is cool']. "versión cambiada" 'Pharo tutorial ', ' is cool', ' when i active the code '
La concatenación de cadenas (strings) es el proceso de unir dos o más cadenas para formar una sola cadena más larga y se realiza utilizando el operador coma
Ejemplo: 'Pharo tutorial ', ' is cool', ' when i active the code '
-
Cadenas
En esta sección podemos ver que podemos crear un objeto y darle sentido veamos un ejemplo.
Ejecutamos 'Adan no calla con nada' reverse.
-
$A.
Un caracter representa una letra del alfabeto y puede ser usado con el operador ($) y cualquier letra del alfabeto. en este caso A.
-
Caracteres
En esta sección tenemos la explicación de que al usar un carácter ($) combinado con un ASCII que es un numero representado por un caracter en este caso el @ me indica el número 64. acompañado de un comando que ejecuta charCode
-
There are some character that are not printable
**Caracteres no visibles. **
Al ejecutar estos caracteres podemos darnos cuenta de que no tendrán una visión en el recuadro de ejercicio, pero si se esta ejecutando
-
Números
-
En esta sección podemos explorar lo que son los números en Pharo y como ejecutarlos en Glamorous Toolkit, para poder desarrollar y ejecutar estos ejercicios matemáticos
-
Cuando le damos inspeccionar a estos mensajes matemáticos sucede que nos muestra la operación resulta. ejemplo (1/3) Inspect
Resultado.
-
Tags
- Binario
- Pharo
- Arreglos
- Simbolo
- Ejemplo
- MensajeCascada
- False
- True
- Comparación
- AsignacionBloques
- ArregloEstatico
- OperadorComa
- Espacio
- Bloques
- ComparaciónFuerte
- ASCII
- Potencia
- Matriz
- ElevadoAlCuadrado
- Keyword
- Condicionales
- Mensajes
- ArreglosDinamicos
- Prioridad
- Extensiones
- caracteres
- Array
- Colecciones
- CambioPrioridadMsj
- Abreviada
- DatosNúmericos
- TiposBasico
- String
- Unario
- Cadena
- PrioridadMsjMatemáticos
Annotators
URL
-
- May 2023
-
chiselapp.com chiselapp.com
-
hedgeDoc exportAsFile.
Mensaje unario:
Receptor:
hedgeDoc
Mensaje:
exportAsFile.
-
hedgeDoc file: wikiSubfolder / ('Accesibilidad-K','.md').
Mensajes Binarios:
Receptor:
wikiSubfolder
Argumentos:
('Accesibilidad-K', '.md').
-
wikiSubfolder ensureCreateDirectory
Mensaje unario:
receptor:
wikiSubfolder
mensaje:
ensureCreateDirectory
-
hedgeDoc metadata at: 'title' put: ('Sesión del 17 de marzo').
Mensaje unario:
receptor:
hedgeDoc
mensaje:
metadada
Mensaje Keword:
receptor:
hedgeDoc metadata
mensaje:
at:
put:
argumentos:
'title' 'Sesión del 17 de marzo'
-
hedgeDoc := HedgeDoc new url: 'https://docutopia.sustrato.red/accesibilidad:23K?both# '; retrieveContents.
Mensaje unario
receptor:
hegeDoc
mensaje:
retrieveContents
*Mensaje Keyword:*
receptor:
hegeDoc
mensaje:
url:
argumento:
https://docutopia.sustrato.red/accesibilidad:23K?both#
-
-
chiselapp.com chiselapp.com
-
repositoryFolder := FileLocator documents / 'Acceso\kathy29-wikilexias\'. wikiFolder := repositoryFolder / 'wiki'. wikiSubfolder := wikiFolder / 'es' / 'RecuperacionClasesAccesibilidad'. wikiSubfolder ensureCreateDirectory
Mensajes keyword:
- receptor repositoryFolder :=
- mensaje: FileLocator documents
- argumento: 'Acceso\kathy29-wikilexias\'.
Mensajes Binarios:
wikiFolder := repositoryFolder / 'wiki',
- receptor: repositoryFolder
- argumento: 'wiki'.
Mensajes keyword:
wikiSubfolder := wikiFolder / 'es' / 'RecuperacionClasesAccesibilidad',
- receptor: wikiFolder
- argumentos: 'es' y 'RecuperacionClasesAccesibilidad'
-
hedgeDoc file: wikiSubfolder / ('Accesibilidad-K','.md'). hedgeDoc exportAsFile. hedgeDoc asMarkdeep exportAsFile. wikiSubfolder
Mensajes Binarios:
- receptor: wikiSubfolder
- argumentos: ('Accesibilidad-K', '.md').
Mensaje Keyword:
- receptor: hedgeDoc
- mensaje: asMarkdeep
- argumento adicional: exportAsFile.
Tags
Annotators
URL
-
-
Local file Local file
-
ensureCreateDirectory
Mensajes unarios
- mensaje unario que crea el directorio wikiSubfolder en caso de que no exista.
-
wikiFolder := repositoryFolder / 'wiki'.
- mensaje en casada que asigna el resultado de concatenar la ruta del directorio 'wiki' a la ruta de repositoryFolder a la variable wikiFolder.
-
repositoryFolder := FileLocator documents / 'Acceso\kathy29-wikilexias\'.
- mensaje binario que concatena la ruta del directorio 'Acceso\kathy29-wikilexias\' a la ruta del directorio de documentos del usuario, representada por el objeto devuelto en el paso anterior.
-
FileLocator documents
- mensaje unario que devuelve un objeto que representa el directorio de documentos del usuario.
-
wikiSubfolder
- mensaje en casada que devuelve la ruta de la carpeta donde se ha guardado el archivo.
-
hedgeDoc asMarkdeep exportAsFile.
- mensaje keyword que exporta el contenido del documento HedgeDoc al archivo especificado en el primer paso en formato MarkDown.
-
hedgeDoc exportAsFile.
- mensaje unario que exporta el contenido del documento HedgeDoc al archivo especificado en el paso anterior en formato HedgeDoc.
-
hedgeDoc file: wikiSubfolder / ('Accesibilidad-K','.md').
- mensaje keyword que establece la ubicación y el nombre del archivo en el que se guardará el documento HedgeDoc.
-
hedgeDoc
Receptor * simplemente hace referencia a la instancia de HedgeDoc creada y manipulada a lo largo del código.
-
retrieveContents.
- mensaje unario que recupera el contenido del documento HedgeDoc desde la URL especificada en el paso anterior y lo carga en la instancia de HedgeDoc.
-
at: 'title' put: ('Sesión del 17 de marzo'). hedgeDoc
- mensaje en casada que actualiza el valor de la clave 'title' en los metadatos del documento HedgeDoc.
-
hedgeDoc metadata
- mensaje en casada que devuelve un objeto que contiene los metadatos del documento HedgeDoc.
-
url: 'https://docutopia.sustrato.red/accesibilidad:23K?both# ';
- mensaje keyword que establece la URL del documento HedgeDoc que se va a cargar en la instancia creada en el paso anterior.
-