diff options
-rw-r--r-- | es-es/matlab-es.html.markdown | 568 | ||||
-rw-r--r-- | html.html.markdown | 111 | ||||
-rw-r--r-- | solidity.html.markdown | 21 | ||||
-rw-r--r-- | tmux.html.markdown | 1 |
4 files changed, 663 insertions, 38 deletions
diff --git a/es-es/matlab-es.html.markdown b/es-es/matlab-es.html.markdown new file mode 100644 index 00000000..9f1656bb --- /dev/null +++ b/es-es/matlab-es.html.markdown @@ -0,0 +1,568 @@ +--- +language: Matlab +filename: learnmatlab-es.mat +contributors: + - ["mendozao", "http://github.com/mendozao"] + - ["jamesscottbrown", "http://jamesscottbrown.com"] + - ["Colton Kohnke", "http://github.com/voltnor"] + - ["Claudson Martins", "http://github.com/claudsonm"] +translators: + - ["Ivan Alburquerque", "https://github.com/AlburIvan"] +lang: es-es +--- + +MATLAB significa 'MATrix LABoratory'. Es un poderoso lenguaje de computación numérica comúnmente usado en ingeniería y matemáticas. + +Si tiene algún comentario, no dude en ponerse en contacto el autor en +[@the_ozzinator](https://twitter.com/the_ozzinator), o +[osvaldo.t.mendoza@gmail.com](mailto:osvaldo.t.mendoza@gmail.com). + +```matlab +%% Una sección de código comienza con dos símbolos de porcentaje. Los títulos de la sección van en la misma líneas. +% Los comentarios comienzan con un símbolo de porcentaje. + +%{ +Los Comentarios de multiples líneas se +ven +como +esto +%} + +% Dos símbolos de porcentaje denotan el comienzo de una nueva sección de código. +% Secciones de código individuales pueden ser ejecutadas moviendo el cursor hacia la sección, +% seguida por un clic en el botón de “Ejecutar Sección” +% o usando Ctrl+Shift+Enter (Windows) o Cmd+Shift+Return (OS X) + +%% Este es el comienzo de una sección de código +% Una forma de usar las secciones es separar un código de inicio costoso que no cambia, como cargar datos +load learnmatlab.mat y + +%% Esta es otra sección de código +% Esta sección puede ser editada y ejecutada de manera repetida por sí misma, +% y es útil para la programación exploratoria y demostraciones. +A = A * 2; +plot(A); + +%% Las secciones de código también son conocidas como celdas de código o modo celda (no ha de ser confundido con arreglo de celdas) + + +% Los comandos pueden abarcar varias líneas, usando '...' + a = 1 + 2 + ... + + 4 + +% Los comandos se pueden pasar al sistema operativo +!ping google.com + +who % Muestra todas las variables en la memoria +whos % Muestra todas las variables en la memoria con sus tipos +clear % Borra todas tus variables de la memoria +clear('A') % Borra una variable en particular +openvar('A') % Variable abierta en editor de variables + +clc % Borra la escritura en la ventana de Comando +diary % Alterna la escritura del texto de la ventana de comandos al archivo +ctrl-c % Aborta el cálculo actual + +edit('myfunction.m') % Abrir función/script en el editor +type('myfunction.m') % Imprime la fuente de la función/script en la ventana de comandos + +profile on % Enciende el generador de perfilador de código +profile off % Apaga el generador de perfilador de código +profile viewer % Abre el perfilador de código + +help command % Muestra la documentación del comando en la ventana de comandos +doc command % Muestra la documentación del comando en la ventana de Ayuda +lookfor command % Busca el comando en la primera línea comentada de todas las funciones +lookfor command -all % busca el comando en todas las funciones + + +% Formato de salida +format short % 4 decimales en un número flotante +format long % 15 decimales +format bank % solo dos dígitos después del punto decimal - para cálculos financieros +fprintf('texto') % imprime "texto" en la pantalla +disp('texto') % imprime "texto" en la pantalla + +% Variables y expresiones +myVariable = 4 % Espacio de trabajo de aviso muestra la variable recién creada +myVariable = 4; % Punto y coma suprime la salida a la Ventana de Comando +4 + 6 % ans = 10 +8 * myVariable % ans = 32 +2 ^ 3 % ans = 8 +a = 2; b = 3; +c = exp(a)*sin(pi/2) % c = 7.3891 + +% Llamar funciones se pueden realizar de dos maneras: +% Sintaxis de función estándar: +load('myFile.mat', 'y') % argumentos entre paréntesis, separados por comas +% Sintaxis del comando: +load myFile.mat y % sin paréntesis, y espacios en lugar de comas +% Tenga en cuenta la falta de comillas en el formulario de comandos: +% las entradas siempre se pasan como texto literal; no pueden pasar valores de variables. +% Además, no puede recibir salida: +[V,D] = eig(A); % esto no tiene equivalente en forma de comando +[~,D] = eig(A); % si solo se quiere D y no V + + + +% Operadores lógicos +1 > 5 % ans = 0 +10 >= 10 % ans = 1 +3 ~= 4 % No es igual a -> ans = 1 +3 == 3 % Es igual a -> ans = 1 +3 > 1 && 4 > 1 % AND -> ans = 1 +3 > 1 || 4 > 1 % OR -> ans = 1 +~1 % NOT -> ans = 0 + +% Los operadores lógicos se pueden aplicar a matrices: +A > 5 +% para cada elemento, si la condición es verdadera, ese elemento es 1 en la matriz devuelta +A( A > 5 ) +% devuelve un vector que contiene los elementos en A para los que la condición es verdadera + +% Cadenas +a = 'MiCadena' +length(a) % ans = 8 +a(2) % ans = y +[a,a] % ans = MiCadenaMiCadena + + +% Celdas +a = {'uno', 'dos', 'tres'} +a(1) % ans = 'uno' - retorna una celda +char(a(1)) % ans = uno - retorna una cadena + +% Estructuras +A.b = {'uno','dos'}; +A.c = [1 2]; +A.d.e = false; + +% Vectores +x = [4 32 53 7 1] +x(2) % ans = 32, los índices en Matlab comienzan 1, no 0 +x(2:3) % ans = 32 53 +x(2:end) % ans = 32 53 7 1 + +x = [4; 32; 53; 7; 1] % Vector de columna + +x = [1:10] % x = 1 2 3 4 5 6 7 8 9 10 +x = [1:2:10] % Incrementa por 2, i.e. x = 1 3 5 7 9 + +% Matrices +A = [1 2 3; 4 5 6; 7 8 9] +% Las filas están separadas por un punto y coma; los elementos se separan con espacio o coma +% A = + +% 1 2 3 +% 4 5 6 +% 7 8 9 + +A(2,3) % ans = 6, A(fila, columna) +A(6) % ans = 8 +% (concatena implícitamente columnas en el vector, luego indexa en base a esto) + + +A(2,3) = 42 % Actualiza la fila 2 col 3 con 42 +% A = + +% 1 2 3 +% 4 5 42 +% 7 8 9 + +A(2:3,2:3) % Crea una nueva matriz a partir de la anterior +%ans = + +% 5 42 +% 8 9 + +A(:,1) % Todas las filas en la columna 1 +%ans = + +% 1 +% 4 +% 7 + +A(1,:) % Todas las columnas en la fila 1 +%ans = + +% 1 2 3 + +[A ; A] % Concatenación de matrices (verticalmente) +%ans = + +% 1 2 3 +% 4 5 42 +% 7 8 9 +% 1 2 3 +% 4 5 42 +% 7 8 9 + +% esto es lo mismo que +vertcat(A,A); + + +[A , A] % Concatenación de matrices (horizontalmente) + +%ans = + +% 1 2 3 1 2 3 +% 4 5 42 4 5 42 +% 7 8 9 7 8 9 + +% esto es lo mismo que +horzcat(A,A); + + +A(:, [3 1 2]) % Reorganiza las columnas de la matriz original +%ans = + +% 3 1 2 +% 42 4 5 +% 9 7 8 + +size(A) % ans = 3 3 + +A(1, :) =[] % Elimina la primera fila de la matriz +A(:, 1) =[] % Elimina la primera columna de la matriz + +transpose(A) % Transponer la matriz, que es lo mismo que: +A one +ctranspose(A) % Hermitian transpone la matriz +% (la transposición, seguida de la toma del conjugado complejo de cada elemento) +A' % Versión concisa de transposición compleja +A.' % Versión concisa de transposición (sin tomar complejo conjugado) + + + + +% Elemento por elemento Aritmética vs. Matriz Aritmética +% Por sí solos, los operadores aritméticos actúan sobre matrices completas. Cuando preceden +% por un punto, actúan en cada elemento en su lugar. Por ejemplo: +A * B % Multiplicación de matrices +A .* B % Multiplica cada elemento en A por su elemento correspondiente en B + +% Hay varios pares de funciones, donde una actúa sobre cada elemento y +% la otra (cuyo nombre termina en m) actúa sobre la matriz completa. +exp(A) % exponencializar cada elemento +expm(A) % calcular la matriz exponencial +sqrt(A) % tomar la raíz cuadrada de cada elemento +sqrtm(A) % encuentra la matriz cuyo cuadrado es A + + +% Trazando +x = 0:.10:2*pi; % Crea un vector que comienza en 0 y termina en 2 * pi con incrementos de .1 +y = sin(x); +plot(x,y) +xlabel('x axis') +ylabel('y axis') +title('Plot of y = sin(x)') +axis([0 2*pi -1 1]) % x rango de 0 a 2 * pi, y rango de -1 a 1 + +plot(x,y1,'-',x,y2,'--',x,y3,':') % Para múltiples funciones en una parcela. +legend('Line 1 label', 'Line 2 label') % Etiquetar curvas con una leyenda. + +% Método alternativo para trazar múltiples funciones en una parcela. +% mientras 'hold' está activado, los comandos se agregan al gráfico existente en lugar de reemplazarlo. +plot(x, y) +hold on +plot(x, z) +hold off + +loglog(x, y) % Un diagrama de log-log. +semilogx(x, y) % Un diagrama con el eje x logarítmico. +semilogy(x, y) % Un diagrama con el eje y logarítmico. + +fplot (@(x) x^2, [2,5]) % Un diagrama con el eje y logarítmico... + +grid on % Muestra la cuadrícula; apague con 'grid off'. +axis square % Hace que la región actual de los ejes sea cuadrada. +axis equal % Establece la relación de aspecto para que las unidades de datos sean las mismas en todas las direcciones. + +scatter(x, y); % Gráfico de dispersión +hist(x); % Histograma +stem(x); % Traza los valores como tallos, útiles para mostrar datos discretos. +bar(x); % Diagrama de barras + +z = sin(x); +plot3(x,y,z); % Trazado de línea 3D. + +pcolor(A) % Trazado de línea 3D... +contour(A) % Diagrama de contorno de la matriz. +mesh(A) % Traza una superficie de malla. + +h = figure % Crea nuevo objeto figura, con el mango h. +figure(h) % Hace que la figura correspondiente al mango h la figura actual. +close(h) % Cierra la figura con mango h. +close all % Cierra todas las ventanas con figura abierta. +close % Cierra ventana de figura actual. + +shg % Trae una ventana gráfica existente hacia adelante, o crea una nueva si es necesario. +clf clear % Borra la ventana de la figura actual y restablece la mayoría de las propiedades de la figura. + +% Las propiedades se pueden establecer y cambiar a través de un identificador de figura. +% Puede guardar un identificador de una figura cuando la crea. +% La función get devuelve un handle a la figura actual +h = plot(x, y); % Puedes guardar un control de una figura cuando la creas +set(h, 'Color', 'r') +% 'y' yellow; 'm' magenta, 'c' cyan, 'r' red, 'g' green, 'b' blue, 'w' white, 'k' black +set(h, 'LineStyle', '--') +% '--' es línea continua, '---' discontinua, ':' punteada, '-.' dash-dot, 'none' es sin línea +get (h, 'LineStyle') + + +% La función gca devuelve un mango a los ejes para la figura actual +set(gca, 'XDir', 'reverse'); % invierte la dirección del eje x + +% Para crear una figura que contenga varios ejes en posiciones de mosaico, use 'subplot' +subplot(2,3,1); % seleccione la primera posición en una grilla de subtramas de 2 por 3 +plot(x1); title('First Plot') % traza algo en esta posición +subplot(2,3,2); % selecciona la segunda posición en la grilla +plot(x2); title('Second Plot') % trazar algo allí + + +% Para usar funciones o scripts, deben estar en su ruta o directorio actual +path % muestra la ruta actual +addpath /path/to/dir % agrega a la ruta +rmpath /path/to/dir % elimina de la ruta +cd /path/to/move/into % cambia de directorio + + +% Las variables se pueden guardar en archivos .mat +save('myFileName.mat') % Guarda las variables en su espacio de trabajo +load('myFileName.mat') % Carga las variables guardadas en espacio de trabajo + +% M-file Scripts +% Un archivo de script es un archivo externo que contiene una secuencia de instrucciones. +% Permiten evitar escribir repetidamente el mismo código en la ventana de comandos +% Tienen extensiones .m + +% M-file Functions +% Al igual que los scripts, y tienen la misma extensión .m +% Pero pueden aceptar argumentos de entrada y devolver una salida +% Además, tienen su propio espacio de trabajo (es decir, diferente alcance variable). +% El nombre de la función debe coincidir con el nombre del archivo (por lo tanto, guarde este ejemplo como double_input.m). +% 'help double_input.m' devuelve los comentarios en la línea que comienza la función +function output = double_input(x) + % double_input(x) devuelve el doble del valor de x + output = 2*x; +end +double_input(6) % ans = 12 + + +% También puede tener subfunciones y funciones anidadas. +% Las subfunciones están en el mismo archivo que la función primaria, y solo pueden ser +% llamadas por funciones en el archivo. Las funciones anidadas se definen dentro de otra +% otras funciones y tienen acceso tanto a su área de trabajo como a su propio espacio de trabajo. + +% Si desea crear una función sin crear un nuevo archivo, puede usar una +% función anónima. Útil cuando se define rápidamente una función para pasar a +% otra función (por ejemplo, trazar con fplot, evaluar una integral indefinida +% con quad, encuentra roots con fzero, o encuentra mínimo con fminsearch). +% Ejemplo que devuelve el cuadrado de su entrada, asignado al identificador sqr: +sqr = @(x) x.^2; +sqr(10) % ans = 100 +doc function_handle % averiguar más + +% User input +a = input('Ingrese el valor:') + +% Detiene la ejecución del archivo y le da control al teclado: el usuario puede examinar +% o cambiar las variables. Escriba 'return' para continuar la ejecución, o 'dbquit' para salir del teclado + +% Lectura de datos (también xlsread / importdata / imread para archivos de excel / CSV / image) +fopen(filename) + +% Salida +disp(a) % Imprime el valor de la variable a +disp('Hola Mundo') % Imprime una cadena +fprintf % Imprime en la ventana de comandos con más control + +% Declaraciones condicionales (los paréntesis son opcionales, pero buen estilo) +if (a > 15) + disp('Mayor que 15') +elseif (a == 23) + disp('a es 23') +else + disp('Ninguna condicion se ha cumplido') +end + +% Bucles +% NB. haciendo un bucle sobre los elementos de un vector / matriz es lento! +% Siempre que sea posible, use funciones que actúen en todo el vector / matriz a la vez +for k = 1:5 + disp(k) +end + +k = 0; +while (k < 5) + k = k + 1; +end + +% Ejecución del código de tiempo: 'toc' imprime el tiempo desde que se llamó 'tic' +tic +A = rand(1000); +A*A*A*A*A*A*A; +toc + +% Conectarse a una base de datos MySQL +dbname = 'database_name'; +username = 'root'; +password = 'root'; +driver = 'com.mysql.jdbc.Driver'; +dburl = ['jdbc:mysql://localhost:8889/' dbname]; +javaclasspath('mysql-connector-java-5.1.xx-bin.jar'); %xx depende de la versión, descarga disponible en http://dev.mysql.com/downloads/connector/j/ +conn = database(dbname, username, password, driver, dburl); +sql = ['SELECT * from table_name where id = 22'] % Ejemplo de instrucción sql +a = fetch(conn, sql) %a contendrá sus datos + + +% Funciones matemáticas comunes +sin(x) +cos(x) +tan(x) +asin(x) +acos(x) +atan(x) +exp(x) +sqrt(x) +log(x) +log10(x) +abs(x) % Si x es complejo, devuelve la magnitud +min(x) +max(x) +ceil(x) +floor(x) +round(x) +rem(x) +rand % Números pseudoaleatorios distribuidos uniformemente +randi % Enteros pseudoaleatorios distribuidos uniformemente +randn % Números pseudoaleatorios distribuidos normalmente + +% Operaciones matemáticas complejas +abs(x) % Magnitud de la variable compleja x +phase(x) % Fase (o ángulo) de la variable compleja x +real(x) % Retorna la parte real de x (es decir, devuelve a si x = a + jb) +imag(x) % Retorna la parte imaginaria de x (es decir, devuelve b si x = a + jb) +conj(x) % Retorna el complejo conjugado + + +% Constantes comunes +pi +NaN +inf + +% Resolviendo ecuaciones matriciales (si no hay solución, devuelve una solución de mínimos cuadrados) +%Los operadores \ y / son equivalentes a las funciones mldivide y mrdivide +x=A\b % Resuelve Ax = b. Más rápido y más numéricamente preciso que usar inv (A) * b. +x=b/A % Resuelve xA = b + +inv(A) % calcular la matriz inversa +pinv(A) % calcular el pseudo-inverso + +% Funciones de matriz comunes +zeros(m,n) % m x n matriz de 0 +ones(m,n) % m x n matriz de 1 +diag(A) % Extrae los elementos diagonales de una matriz A +diag(x) % Construya una matriz con elementos diagonales enumerados en x, y ceros en otra parte +eye(m,n) % Matriz de identidad +linspace(x1, x2, n) % Devuelve n puntos equiespaciados, con min x1 y max x2 +inv(A) % Inverso de la matriz A +det(A) % Determinante de A +eig(A) % Valores propios y vectores propios de A +trace(A) % Traza de la matriz: equivalente a sum(diag(A)) +isempty(A) % Determina si la matriz está vacía +all(A) % Determina si todos los elementos son distintos de cero o verdaderos +any(A) % Determina si alguno de los elementos es distinto de cero o verdadero +isequal(A, B) % Determina la igualdad de dos matrices +numel(A) % Cantidad de elementos en matriz +triu(x) % Devuelve la parte triangular superior de x +tril(x) % Devuelve la parte triangular inferior de x +cross(A,B) % Devuelve el producto cruzado de los vectores A y B +dot(A,B) % Devuelve un producto escalar de dos vectores (debe tener la misma longitud) +transpose(A) % Devuelve la transposición de A +fliplr(A) % Voltea la matriz de izquierda a derecha +flipud(A) % Voltea la matriz de arriba hacia abajo + +% Factorizaciones de matrices +[L, U, P] = lu(A) % Descomposición LU: PA = LU, L es triangular inferior, U es triangular superior, P es matriz de permutación +[P, D] = eig(A) % eigen-decomposition: AP = PD, las columnas de P son autovectores y las diagonales de D'son valores propios +[U,S,V] = svd(X) % SVD: XV = US, U y V son matrices unitarias, S tiene elementos diagonales no negativos en orden decreciente + +% Funciones comunes de vectores +max % componente más grande +min % componente más pequeño +length % longitud de un vector +sort % ordenar en orden ascendente +sum % suma de elementos +prod % producto de elementos +mode % valor modal +median % valor mediano +mean % valor medio +std % desviación estándar +perms(x) % enumera todas las permutaciones de elementos de x +find(x) % Encuentra todos los elementos distintos de cero de x y devuelve sus índices, puede usar operadores de comparación, + % i.e. find( x == 3 ) devuelve índices de elementos que son iguales a 3 + % i.e. find( x >= 3 ) devuelve índices de elementos mayores o iguales a 3 + + +% Clases +% Matlab puede soportar programación orientada a objetos. +% Las clases deben colocarse en un archivo del nombre de la clase con la extensión .m. +% Para comenzar, creamos una clase simple para almacenar puntos de referencia de GPS. +% Comience WaypointClass.m +classdef WaypointClass % El nombre de la clase. + properties % Las propiedades de la clase se comportan como Estructuras + latitude + longitude + end + methods + % Este método que tiene el mismo nombre de la clase es el constructor. + function obj = WaypointClass(lat, lon) + obj.latitude = lat; + obj.longitude = lon; + end + + % Otras funciones que usan el objeto Waypoint + function r = multiplyLatBy(obj, n) + r = n*[obj.latitude]; + end + + % Si queremos agregar dos objetos Waypoint juntos sin llamar + % a una función especial, podemos sobrecargar la aritmética de Matlab así: + function r = plus(o1,o2) + r = WaypointClass([o1.latitude] +[o2.latitude], ... + [o1.longitude]+[o2.longitude]); + end + end +end +% Fin WaypointClass.m + +% Podemos crear un objeto de la clase usando el constructor +a = WaypointClass(45.0, 45.0) + +% Las propiedades de clase se comportan exactamente como estructuras de Matlab. +a.latitude = 70.0 +a.longitude = 25.0 + +% Los métodos se pueden llamar de la misma manera que las funciones +ans = multiplyLatBy(a,3) + +% El método también se puede llamar usando notación de puntos. En este caso, el objeto +% no necesita ser pasado al método. +ans = a.multiplyLatBy(a,1/3) + +% Las funciones de Matlab pueden sobrecargarse para manejar objetos. +% En el método anterior, hemos sobrecargado cómo maneja Matlab +% la adición de dos objetos Waypoint. +b = WaypointClass(15.0, 32.0) +c = a + b + +``` + +## Más sobre Matlab + +* [The official website (EN)](http://www.mathworks.com/products/matlab/) +* [The official MATLAB Answers forum (EN)](http://www.mathworks.com/matlabcentral/answers/) +* [Loren on the Art of MATLAB (EN)](http://blogs.mathworks.com/loren/) +* [Cleve's Corner (EN)](http://blogs.mathworks.com/cleve/) + diff --git a/html.html.markdown b/html.html.markdown index 04b9f501..4d225aca 100644 --- a/html.html.markdown +++ b/html.html.markdown @@ -7,25 +7,41 @@ translators: - ["Robert Steed", "https://github.com/robochat"] --- -HTML stands for HyperText Markup Language. +HTML stands for HyperText Markup Language. + It is a language which allows us to write pages for the world wide web. -It is a markup language, it enables us to write webpages using code to indicate how text and data should be displayed. -In fact, html files are simple text files. -What is this markup? It is a method of organising the page's data by surrounding it with opening tags and closing tags. -This markup serves to give significance to the text that it encloses. -Like other computer languages, HTML has many versions. Here we will talk about HTML5. +It is a markup language, it enables us to write webpages using code to indicate +how text and data should be displayed. In fact, html files are simple text +files. + +What is this markup? It is a method of organising the page's data by +surrounding it with opening tags and closing tags. This markup serves to give +significance to the text that it encloses. Like other computer languages, HTML +has many versions. Here we will talk about HTML5. -**NOTE :** You can test the different tags and elements as you progress through the tutorial on a site like [codepen](http://codepen.io/pen/) in order to see their effects, understand how they work and familiarise yourself with the language. -This article is concerned principally with HTML syntax and some useful tips. +**NOTE :** You can test the different tags and elements as you progress through +the tutorial on a site like [codepen](http://codepen.io/pen/) in order to see +their effects, understand how they work and familiarise yourself with the +language. This article is concerned principally with HTML syntax and some +useful tips. ```html <!-- Comments are enclosed like this line! --> +<!-- + Comments + can + span + multiple + lines! +--> + <!-- #################### The Tags #################### --> - + <!-- Here is an example HTML file that we are going to analyse. --> + <!doctype html> <html> <head> @@ -33,7 +49,9 @@ This article is concerned principally with HTML syntax and some useful tips. </head> <body> <h1>Hello, world!</h1> - <a href = "http://codepen.io/anon/pen/xwjLbZ">Come look at what this shows</a> + <a href="http://codepen.io/anon/pen/xwjLbZ"> + Come look at what this shows + </a> <p>This is a paragraph.</p> <p>This is another paragraph.</p> <ul> @@ -44,7 +62,9 @@ This article is concerned principally with HTML syntax and some useful tips. </body> </html> -<!-- An HTML file always starts by indicating to the browser that the page is HTML. --> +<!-- + An HTML file always starts by indicating to the browser that the page is HTML. +--> <!doctype html> <!-- After this, it starts by opening an <html> tag. --> @@ -58,10 +78,17 @@ This article is concerned principally with HTML syntax and some useful tips. <!-- Inside (between the opening and closing tags <html></html>), we find: --> <!-- A header defined by <head> (it must be closed with </head>). --> -<!-- The header contains some description and additional information which are not displayed; this is metadata. --> +<!-- + The header contains some description and additional information which are not + displayed; this is metadata. +--> <head> - <title>My Site</title><!-- The tag <title> indicates to the browser the title to show in browser window's title bar and tab name. --> + <!-- + The tag <title> indicates to the browser the title to show in browser + window's title bar and tab name. + --> + <title>My Site</title> </head> <!-- After the <head> section, we find the tag - <body> --> @@ -69,13 +96,28 @@ This article is concerned principally with HTML syntax and some useful tips. <!-- We must fill the body with the content to be displayed. --> <body> - <h1>Hello, world!</h1> <!-- The h1 tag creates a title. --> - <!-- There are also subtitles to <h1> from the most important (h2) to the most precise (h6). --> - <a href = "http://codepen.io/anon/pen/xwjLbZ">Come look at what this shows</a> <!-- a hyperlink to the url given by the attribute href="" --> - <p>This is a paragraph.</p> <!-- The tag <p> lets us include text in the html page. --> + <!-- The h1 tag creates a title. --> + <h1>Hello, world!</h1> + <!-- + There are also subtitles to <h1> from the most important (h2) to the most + precise (h6). + --> + + <!-- a hyperlink to the url given by the attribute href="" --> + <a href="http://codepen.io/anon/pen/xwjLbZ"> + Come look at what this shows + </a> + + <!-- The tag <p> lets us include text in the html page. --> + <p>This is a paragraph.</p> <p>This is another paragraph.</p> - <ul> <!-- The tag <ul> creates a bullet list. --> - <!-- To have a numbered list instead we would use <ol> giving 1. for the first element, 2. for the second, etc. --> + + <!-- The tag <ul> creates a bullet list. --> + <!-- + To have a numbered list instead we would use <ol> giving 1. for the first + element, 2. for the second, etc. + --> + <ul> <li>This is an item in a non-enumerated list (bullet list)</li> <li>This is another item</li> <li>And this is the last item on the list</li> @@ -86,21 +128,33 @@ This article is concerned principally with HTML syntax and some useful tips. <!-- But it is possible to add many additional types of HTML tags. --> -<!-- To insert an image. --> -<img src="http://i.imgur.com/XWG0O.gif"/> <!-- The source of the image is indicated using the attribute src="" --> -<!-- The source can be an URL or even path to a file on your computer. --> +<!-- The <img /> tag is used to insert an image. --> +<!-- + The source of the image is indicated using the attribute src="" + The source can be an URL or even path to a file on your computer. +--> +<img src="http://i.imgur.com/XWG0O.gif"/> <!-- It is also possible to create a table. --> -<table> <!-- We open a <table> element. --> - <tr> <!-- <tr> allows us to create a row. --> - <th>First Header</th> <!-- <th> allows us to give a title to a table column. --> +<!-- We open a <table> element. --> +<table> + + <!-- <tr> allows us to create a row. --> + <tr> + + <!-- <th> allows us to give a title to a table column. --> + <th>First Header</th> <th>Second Header</th> </tr> + <tr> - <td>first row, first column</td> <!-- <td> allows us to create a table cell. --> + + <!-- <td> allows us to create a table cell. --> + <td>first row, first column</td> <td>first row, second column</td> </tr> + <tr> <td>second row, first column</td> <td>second row, second column</td> @@ -111,9 +165,10 @@ This article is concerned principally with HTML syntax and some useful tips. ## Usage -HTML is written in files ending with `.html` or `.htm`. The mime type is `text/html`. +HTML is written in files ending with `.html` or `.htm`. The mime type is +`text/html`. -## To Learn More +## To Learn More * [wikipedia](https://en.wikipedia.org/wiki/HTML) * [HTML tutorial](https://developer.mozilla.org/en-US/docs/Web/HTML) diff --git a/solidity.html.markdown b/solidity.html.markdown index c0074b33..acf750f7 100644 --- a/solidity.html.markdown +++ b/solidity.html.markdown @@ -4,6 +4,7 @@ filename: learnSolidity.sol contributors: - ["Nemil Dalal", "https://www.nemil.com"] - ["Joseph Chow", ""] + - ["Bhoomtawath Plinsut", "https://github.com/varshard"] --- Solidity lets you program on [Ethereum](https://www.ethereum.org/), a @@ -109,10 +110,9 @@ contract SimpleBank { // CapWords /// @notice Get balance /// @return The balance of the user - // 'constant' prevents function from editing state variables; + // 'view' (ex: constant) prevents function from editing state variables; // allows function to run locally/off blockchain - // NOTE: 'constant' on functions is an alias to 'view', but this is deprecated and is planned to be dropped in version 0.5.0. - function balance() constant public returns (uint) { + function balance() view public returns (uint) { return balances[msg.sender]; } } @@ -342,25 +342,26 @@ function increment(uint x, uint y) returns (uint x, uint y) { // Call previous functon uint (a,b) = increment(1,1); -// 'constant' (alias for 'view') +// 'view' (alias for 'constant') // indicates that function does not/cannot change persistent vars -// Constant function execute locally, not on blockchain +// View function execute locally, not on blockchain +// Noted: constant keyword will soon be deprecated. uint y = 1; -function increment(uint x) constant returns (uint x) { +function increment(uint x) view returns (uint x) { x += 1; y += 1; // this line would fail - // y is a state variable, and can't be changed in a constant function + // y is a state variable, and can't be changed in a view function } -// 'pure' is more strict than 'constant', and does not +// 'pure' is more strict than 'view' or 'constant', and does not // even allow reading of state vars // The exact rules are more complicated, so see more about -// constant/pure: +// view/pure: // http://solidity.readthedocs.io/en/develop/contracts.html#view-functions // 'Function Visibility specifiers' -// These can be placed where 'constant' is, including: +// These can be placed where 'view' is, including: // public - visible externally and internally (default for function) // external - only visible externally (including a call made with this.) // private - only visible in the current contract diff --git a/tmux.html.markdown b/tmux.html.markdown index 1214a5ba..b28a4f59 100644 --- a/tmux.html.markdown +++ b/tmux.html.markdown @@ -78,6 +78,7 @@ combinations called 'Prefix' keys. p # Change to the previous window { # Swap the current pane with the previous pane } # Swap the current pane with the next pane + ] # Enter Copy Mode to copy text or view history. s # Select a new session for the attached client interactively |