Remove bare links

This commit is contained in:
Boris Verkhovskiy 2024-06-03 13:31:20 -06:00
parent 29bf4c1b9f
commit 790a78e3cf
61 changed files with 418 additions and 546 deletions

View File

@ -432,8 +432,8 @@ func requestServer() {
## Més informació ## Més informació
L'arrel de tot en Go és la web oficial [official Go web site] L'arrel de tot en Go és la web oficial [official Go web site](https://go.dev/).
(https://go.dev/). Allà es pot seguir el tutorial, jugar interactivament Allà es pot seguir el tutorial, jugar interactivament
i llegir molt més del que hem vist aquí.En el "tour", i llegir molt més del que hem vist aquí.En el "tour",
[the docs](https://go.dev/doc/) conté informació sobre com escriure codi [the docs](https://go.dev/doc/) conté informació sobre com escriure codi
net i efectiu en Go, comandes per empaquetar i generar documentació, i net i efectiu en Go, comandes per empaquetar i generar documentació, i

View File

@ -10,7 +10,7 @@ translations:
- ["Xavier Sala Pujolar", "http://github.com/utrescu"] - ["Xavier Sala Pujolar", "http://github.com/utrescu"]
--- ---
Groovy - Un llenguatge dinàmic per la plataforma Java [Llegir-ne més.](http://www.groovy-lang.org/) Groovy - Un llenguatge dinàmic per la plataforma Java [Llegir-ne més](http://www.groovy-lang.org/).
```groovy ```groovy
/* /*
@ -285,7 +285,7 @@ def clos = { print it }
clos( "hi" ) clos( "hi" )
/* /*
Groovy pot recordar els resultats dels Closures [1][2][3] Groovy pot recordar els resultats dels Closures
*/ */
def cl = {a, b -> def cl = {a, b ->
sleep(3000) // simula un procés llarg sleep(3000) // simula un procés llarg
@ -420,17 +420,10 @@ assert sum(2,5) == 7
[Cònsola de Groovy](http://groovyconsole.appspot.com/) [Cònsola de Groovy](http://groovyconsole.appspot.com/)
Uneix-te a un [grup d'usuaris Groovy] Uneix-te a un [grup d'usuaris Groovy](http://www.groovy-lang.org/usergroups.html)
(http://www.groovy-lang.org/usergroups.html)
## Llibres ## Llibres
* [Groovy Goodness] (https://leanpub.com/groovy-goodness-notebook) * [Groovy Goodness](https://leanpub.com/groovy-goodness-notebook)
* [Groovy in Action](http://manning.com/koenig2/)
* [Groovy in Action] (http://manning.com/koenig2/) * [Programming Groovy 2: Dynamic Productivity for the Java Developer](http://shop.oreilly.com/product/9781937785307.do)
* [Programming Groovy 2: Dynamic Productivity for the Java Developer] (http://shop.oreilly.com/product/9781937785307.do)
[1] http://roshandawrani.wordpress.com/2010/10/18/groovy-new-feature-closures-can-now-memorize-their-results/
[2] http://www.solutionsiq.com/resources/agileiq-blog/bid/72880/Programming-with-Groovy-Trampoline-and-Memoize
[3] http://mrhaki.blogspot.mx/2011/05/groovy-goodness-cache-closure-results.html

View File

@ -74,9 +74,9 @@ False or True # => True
0 and 2 # => 0 0 and 2 # => 0
-5 or 0 # => -5 -5 or 0 # => -5
# Při porovnání s boolean hodnotou nepoužívejte operátor rovnosti "==". # Při porovnání s boolean hodnotou nepoužívejte operátor rovnosti "==".
# Stejně jako u hodnoty None. # Stejně jako u hodnoty None.
# Viz PEP8: https://www.python.org/dev/peps/pep-0008/ # Viz PEP8: https://www.python.org/dev/peps/pep-0008/
0 is False # => True 0 is False # => True
2 is True # => False 2 is True # => False
1 is True # => True 1 is True # => True
@ -156,7 +156,7 @@ print("Jsem 3. Python 3.")
nazev_promenne = 5 nazev_promenne = 5
nazev_promenne # => 5 nazev_promenne # => 5
# Názvy proměnných mohou obsahovat i unicode znaky, ale nedělejte to. # Názvy proměnných mohou obsahovat i unicode znaky, ale nedělejte to.
# Viz PEP 3131 -- Supporting Non-ASCII Identifiers: # Viz PEP 3131 -- Supporting Non-ASCII Identifiers:
# https://www.python.org/dev/peps/pep-3131/ # https://www.python.org/dev/peps/pep-3131/
název_proměnné = 5 název_proměnné = 5
@ -640,5 +640,6 @@ pozdrav("Pepo") # Vypíše 3x: "Měj se Pepo!"
## Co dál? ## Co dál?
Spoustu odkazů na české i anglické materiály najdete na [webu české Python komunity] Spoustu odkazů na české i anglické materiály najdete na
(http://python.cz/). Můžete také přijít na Pyvo, kde to společně probereme. [webu české Python komunity](http://python.cz/). Můžete
také přijít na Pyvo, kde to společně probereme.

View File

@ -35,7 +35,7 @@ Now we can unify and export to JSON:
Or YAML: Or YAML:
```bash ```bash
% cue export --out yaml name.cue disposition.cue % cue export --out yaml name.cue disposition.cue
name: Daniel name: Daniel
disposition: oblivious disposition: oblivious
``` ```
@ -60,7 +60,7 @@ foo: 100
``` ```
```bash ```bash
% cue export string_value.cue integer_value.cue % cue export string_value.cue integer_value.cue
foo: conflicting values "baz" and 100 (mismatched types string and int): foo: conflicting values "baz" and 100 (mismatched types string and int):
integer_value.cue:1:6 integer_value.cue:1:6
string_value.cue:1:6 string_value.cue:1:6
@ -222,7 +222,7 @@ vatican_city: #Country & {
} }
``` ```
CUE may save you quite a bit of time with all the sugar it provides on top of mere JSON. Here we're defining, "modifying", and validating a nested structure in three lines: (Notice the `[]` syntax used around `string` to signal to the engine that `string` is a constraint, not a string in this case.) CUE may save you quite a bit of time with all the sugar it provides on top of mere JSON. Here we're defining, "modifying", and validating a nested structure in three lines: (Notice the `[]` syntax used around `string` to signal to the engine that `string` is a constraint, not a string in this case.)
```yaml ```yaml
//paths.cue //paths.cue
@ -388,7 +388,7 @@ j: 8 < 10 // and supports boolean ops
price: number price: number
// Require a justification if price is too high // Require a justification if price is too high
if price > 100 { if price > 100 {
justification: string justification: string
} }
price: 200 price: 200
justification: "impulse buy" justification: "impulse buy"
@ -400,11 +400,11 @@ comp: [ for x in #items if x rem 2 == 0 {x*x}]
// and... well you can do this too // and... well you can do this too
#a: [ "Apple", "Google", "SpaceX"] #a: [ "Apple", "Google", "SpaceX"]
for k, v in #a { for k, v in #a {
"\( strings.ToLower(v) )": { "\( strings.ToLower(v) )": {
pos: k + 1 pos: k + 1
name: v name: v
nameLen: len(v) nameLen: len(v)
} }
} }
``` ```
@ -481,7 +481,7 @@ This creates a `cue.mod/` subdirectory within that `mymodule` directory, and `cu
- gen/ - gen/
- usr/ - usr/
For a different perspective on this and details about what's in there, see https://cuelang.org/docs/concepts/packages/. For my purposes here, I'll say you don't need to think about the contents of this directory *at all*, except that your module name will be the prefix for all imports within your module. For a different perspective on this and details about what's in there, see [cuelang.org/docs/concepts/packages/](https://cuelang.org/docs/concepts/packages/). For my purposes here, I'll say you don't need to think about the contents of this directory *at all*, except that your module name will be the prefix for all imports within your module.
Where will your module file hierarchy go? All files and directories for your module are rooted in `mymodule/`, the directory that also contains `cue.mod/`. If you want to import a package, you'll prefix it with `example.com/mymodule`, followed by a relative path rooted in `mymodule/`. Where will your module file hierarchy go? All files and directories for your module are rooted in `mymodule/`, the directory that also contains `cue.mod/`. If you want to import a package, you'll prefix it with `example.com/mymodule`, followed by a relative path rooted in `mymodule/`.
@ -548,6 +548,6 @@ configuredBar: conflicting values string and 200 (mismatched types string and in
That's it for now. I understand there are more package management features coming in the future and the design decisions around `cue.mod` are looking ahead to that. That's it for now. I understand there are more package management features coming in the future and the design decisions around `cue.mod` are looking ahead to that.
Finally, CUE has built-in modules with powerful functionality. We saw one of these earlier, when we imported "strings" and used `strings.ToLower`. Imports without fully-qualified module names are assumed to be built-ins. The full list and documentation for each is here: https://pkg.go.dev/cuelang.org/go/pkg Finally, CUE has built-in modules with powerful functionality. We saw one of these earlier, when we imported "strings" and used `strings.ToLower`. Imports without fully-qualified module names are assumed to be built-ins. The full list and documentation for each is here: [pkg.go.dev/cuelang.org/go/pkg](https://pkg.go.dev/cuelang.org/go/pkg)
This has been a condensation of the official docs and tutorials, so go give the source material some love: https://cuelang.org/docs/tutorials/ This has been a condensation of the official docs and tutorials, so go give the source material some love: [cuelang.org/docs/tutorials/](https://cuelang.org/docs/tutorials/)

View File

@ -157,7 +157,7 @@ logger("We have a logger subroutine!");
#### Verwenden von Perl Modulen #### Verwenden von Perl Modulen
Perl Module liefern eine Menge an Funktionen die dabei Helfen das Rad nicht neu erfinden zu müssen. Perl Module können von CPAN (http://www.cpan.org/) heruntergeladen werden. Einige populäre Module sind in der Perl Distribution selbst bereits enthalten. Perl Module liefern eine Menge an Funktionen die dabei Helfen das Rad nicht neu erfinden zu müssen. Perl Module können von [CPAN](http://www.cpan.org/) heruntergeladen werden. Einige populäre Module sind in der Perl Distribution selbst bereits enthalten.
Perlfaq enthält Fragen und Antworten zu häufig vorkommenden Aufgaben. Sehr oft sind auch Vorschläge enthalten welches CPAN module am besten geeignet ist. Perlfaq enthält Fragen und Antworten zu häufig vorkommenden Aufgaben. Sehr oft sind auch Vorschläge enthalten welches CPAN module am besten geeignet ist.

View File

@ -12,7 +12,7 @@ contributors:
Docker is a tool that helps you build, test, ship and run applications Docker is a tool that helps you build, test, ship and run applications
seamlessly across various machines. It replicates the environment our software seamlessly across various machines. It replicates the environment our software
needs on any machine. You can get Docker for your machine from needs on any machine. You can get Docker for your machine from
https://docs.docker.com/get-docker/ [docs.docker.com/get-docker/](https://docs.docker.com/get-docker/)
It has grown in popularity over the last decade due to being lightweight and It has grown in popularity over the last decade due to being lightweight and
fast as compared to virtual-machines that are bulky and slow. Unlike VMs, docker fast as compared to virtual-machines that are bulky and slow. Unlike VMs, docker
@ -65,7 +65,6 @@ in a limited capacity architecture.
│ Hardware Infrastructure │ │ Hardware Infrastructure │
└──────────────────────────────────────────────────┘ └──────────────────────────────────────────────────┘
(Docker based architecture) (Docker based architecture)
</pre> </pre>
Couple of terms we will encounter frequently are Docker Images and Docker Couple of terms we will encounter frequently are Docker Images and Docker
@ -148,7 +147,7 @@ $ docker ps -a
$ docker stop hello-world $ docker stop hello-world
# or # or
$ docker start hello-world $ docker start hello-world
# The stop command simply stops one or more containers, and the start command # The stop command simply stops one or more containers, and the start command
# starts the container(s) up again! `docker start -a ubuntu` will attach our # starts the container(s) up again! `docker start -a ubuntu` will attach our
# detached container back to the terminal i.e. runs in the foreground # detached container back to the terminal i.e. runs in the foreground
@ -174,7 +173,7 @@ $ docker images
# alpine latest 9c6f07244728 3 months ago 5.54MB # alpine latest 9c6f07244728 3 months ago 5.54MB
# hello-world latest feb5d9fea6a5 13 months ago 13.3kB # hello-world latest feb5d9fea6a5 13 months ago 13.3kB
$ docker rmi $ docker rmi
# Removes one or more images from your system which do not have their instances # Removes one or more images from your system which do not have their instances
# (or containers as we know them) running. If the image has an attached # (or containers as we know them) running. If the image has an attached
# container, either delete the container first or use the -f (or --force) flag # container, either delete the container first or use the -f (or --force) flag
@ -204,12 +203,13 @@ $ docker logs <container-id>
## The Dockerfile ## The Dockerfile
The Dockerfile is a blueprint of a Docker image. We can mention the artifacts The Dockerfile is a blueprint of a Docker image. We can mention the artifacts
from our application along with their configurations into this file in the from our application along with their configurations into this file in the
specific syntax to let anyone create a Docker image of our application. specific syntax to let anyone create a Docker image of our application.
### A few things to keep in mind: ### A few things to keep in mind:
* It is always strictly named `Dockerfile` without any extensions * It is always strictly named `Dockerfile` without any extensions
* We have to build our custom image on top of some already available Docker base * We have to build our custom image on top of some already available Docker base
image. (there is an empty image called `scratch` which literally lets you build image. (there is an empty image called `scratch` which literally lets you build
an image from scratch) an image from scratch)
* All capitalised commands are part of the syntax, they are not case-sensitive * All capitalised commands are part of the syntax, they are not case-sensitive
@ -236,7 +236,7 @@ ENTRYPOINT ["some-script.sh"]
# executes an entire script as an entrypoint # executes an entire script as an entrypoint
CMD [<args>,...] CMD [<args>,...]
# always part of dockerfile, introduces entry point linux command e.g. # always part of dockerfile, introduces entry point linux command e.g.
# `CMD node server.js` # `CMD node server.js`
# This executes after image creation only when the container from the image # This executes after image creation only when the container from the image
# is running. # is running.
@ -263,7 +263,7 @@ password on Docker Hub.
When pushing an image to Docker Hub, we must specify our Docker Hub username When pushing an image to Docker Hub, we must specify our Docker Hub username
as part of the source image name. We need to create the target image with the as part of the source image name. We need to create the target image with the
tag name of username/image-name much like GitHub repositories. tag name of username/image-name much like GitHub repositories.
```bash ```bash
$ docker login $ docker login

View File

@ -9,7 +9,7 @@ translators:
lang: es-es lang: es-es
--- ---
¡Ah!, C. Aun hoy en día sigue siendo el lenguaje por excelencia de la ¡Ah!, C. Aun hoy en día sigue siendo el lenguaje por excelencia de la
computación moderna de alto rendimiento. computación moderna de alto rendimiento.
C es el lenguaje de más bajo nivel que la mayoría de los programadores C es el lenguaje de más bajo nivel que la mayoría de los programadores
@ -64,7 +64,7 @@ char y_char = 'y'; // Los caracteres literales se entrecomillan con ''
// 'longs' son a menudo de 4 a 8 bytes; 'long longs' son fijo de por lo // 'longs' son a menudo de 4 a 8 bytes; 'long longs' son fijo de por lo
// menos 64 bits // menos 64 bits
long x_long = 0; long x_long = 0;
long long x_long_long = 0; long long x_long_long = 0;
// 'floats' son normalmente números de coma flotante de 32 bits // 'floats' son normalmente números de coma flotante de 32 bits
float x_float = 0.0; float x_float = 0.0;
@ -80,7 +80,7 @@ unsigned short ux_short;
unsigned int ux_int; unsigned int ux_int;
unsigned long long ux_long_long; unsigned long long ux_long_long;
// Todos menos 'char', que es siempre de 1 byte, varían el tamaño // Todos menos 'char', que es siempre de 1 byte, varían el tamaño
// dependiendo de tu máquina. sizeof(T) te dice el tamaño de una variable // dependiendo de tu máquina. sizeof(T) te dice el tamaño de una variable
// de tipo T en bytes por lo que podemos expresar el tamaño de estos tipos // de tipo T en bytes por lo que podemos expresar el tamaño de estos tipos
// portatilmente. // portatilmente.
@ -114,7 +114,7 @@ printf("%s\n", a_string); // %s se sutituye por una cadena.
/* /*
Te habrás dado cuenta de que a_string es solo de 18 caracteres. Te habrás dado cuenta de que a_string es solo de 18 caracteres.
El 'char' #19 es el byte nulo. El 'char' #19 es el byte nulo.
El 'char' #20 es de valor indefinido. El 'char' #20 es de valor indefinido.
*/ */
@ -139,7 +139,7 @@ f1 / f2; // => 0.5, más o menos épsilon
// Los operadores de comparación te resultaran familiares, pero no hay // Los operadores de comparación te resultaran familiares, pero no hay
// booleanos en C. Usamos enteros (ints) en su lugar. 0 es falso, // booleanos en C. Usamos enteros (ints) en su lugar. 0 es falso,
// cualquier otra cosa es verdadero. (Los operadores de comparación // cualquier otra cosa es verdadero. (Los operadores de comparación
// siempre devuelven 0 o 1) // siempre devuelven 0 o 1)
3 == 2; // => 0 (Falso) 3 == 2; // => 0 (Falso)
3 != 2; // => 1 (Verdadero) 3 != 2; // => 1 (Verdadero)
@ -226,8 +226,8 @@ printf("%d\n", (char)100.0);
// Punteros // Punteros
/////////////////////////////////////// ///////////////////////////////////////
// Un puntero es una variable declarada para almacenar una dirección de // Un puntero es una variable declarada para almacenar una dirección de
// memoria. Su declaración además nos dirá el tipo de dato al que apunta. // memoria. Su declaración además nos dirá el tipo de dato al que apunta.
// Puedes obtener la dirección de memoria de tus variables, y después // Puedes obtener la dirección de memoria de tus variables, y después
// enlazarlas con ellos. // enlazarlas con ellos.
@ -242,7 +242,7 @@ px = &x; // Almacena la dirección de x en px
printf("%p\n", px); // => Muestra alguna dirección de memoria printf("%p\n", px); // => Muestra alguna dirección de memoria
// Para obtener el valor de la dirección a la que apunta un puntero, pon // Para obtener el valor de la dirección a la que apunta un puntero, pon
// * delante para desreferenciarle. // * delante para desreferenciarle.
printf("%d\n", *px); // => Muestra 0, el valor de x y de la dirección a la printf("%d\n", *px); // => Muestra 0, el valor de x y de la dirección a la
// que apunta px // que apunta px
@ -285,7 +285,7 @@ for (xx=0; xx<20; xx++) {
// impredecibles // impredecibles
printf("%d\n", *(my_ptr + 21)); // => Prints who-knows-what? printf("%d\n", *(my_ptr + 21)); // => Prints who-knows-what?
// Cuando hayas acabado con el bloque de memoría malloc, necesitas // Cuando hayas acabado con el bloque de memoría malloc, necesitas
// liberarlo o sino nadie más podrá usarlo hasta que tu programa se cierre // liberarlo o sino nadie más podrá usarlo hasta que tu programa se cierre
free(my_ptr); free(my_ptr);
@ -310,8 +310,8 @@ int add_two_ints(int x1, int x2){
} }
/* /*
Las funciones son de paso por valor, pero puedes hacer tus propias Las funciones son de paso por valor, pero puedes hacer tus propias
referencias con punteros de manera que las funciones puedan cambiar sus referencias con punteros de manera que las funciones puedan cambiar sus
valores. valores.
Ejemplo: invertidor de cadenas in-situ Ejemplo: invertidor de cadenas in-situ
@ -320,7 +320,7 @@ Ejemplo: invertidor de cadenas in-situ
// Una función 'void' no retorna valor // Una función 'void' no retorna valor
void str_reverse(char* str_in){ void str_reverse(char* str_in){
char tmp; char tmp;
int ii=0, len = strlen(str_in); // Strlen es parte de la librería int ii=0, len = strlen(str_in); // Strlen es parte de la librería
for(ii=0; ii<len/2; ii++){ // estándard for(ii=0; ii<len/2; ii++){ // estándard
tmp = str_in[ii]; tmp = str_in[ii];
str_in[ii] = str_in[len - ii - 1]; // ii-th último 'char' str_in[ii] = str_in[len - ii - 1]; // ii-th último 'char'
@ -379,9 +379,9 @@ int area(rect r){
/////////////////////////////////////// ///////////////////////////////////////
/* /*
En tiempo de ejecución, las funciones se localizan en unas direcciones de En tiempo de ejecución, las funciones se localizan en unas direcciones de
memoria concretas. Los punteros a funciones son como cualquier otro memoria concretas. Los punteros a funciones son como cualquier otro
puntero (almacenan una dirección de memoria), pero pueden ser usados para puntero (almacenan una dirección de memoria), pero pueden ser usados para
utilizar funciones directamente, o para pasar 'handlers' (o funciones utilizar funciones directamente, o para pasar 'handlers' (o funciones
'callback') por todos lados. 'callback') por todos lados.
Sin embargo, la sintaxis de definición parecera confusa al principio. Sin embargo, la sintaxis de definición parecera confusa al principio.
@ -413,21 +413,19 @@ typedef void (*my_fnp_type)(char *);
// Es usado para declarar la variable puntero actual: // Es usado para declarar la variable puntero actual:
// ... // ...
// my_fnp_type f; // my_fnp_type f;
``` ```
## Otras lecturas ## Otras lecturas
Lo mejor que puedes encontrar es una copia de [K&R, aka "The C Programming Language"](https://en.wikipedia.org/wiki/The_C_Programming_Language). Es *el* Lo mejor que puedes encontrar es una copia de [K&R, aka "The C Programming Language"](https://en.wikipedia.org/wiki/The_C_Programming_Language). Es *el*
libro de C, escrito por Dennis Ritchie, creador de C y Brian Kernighan. Aún así, libro de C, escrito por Dennis Ritchie, creador de C y Brian Kernighan. Aún así,
se cuidadoso, es antiguo, contiene algunas inexactitudes, y algunas prácticas se cuidadoso, es antiguo, contiene algunas inexactitudes, y algunas prácticas
han cambiado. han cambiado.
Otro buen recurso es [Learn C the hard way](http://learncodethehardway.org/c/).
Si tienes una pregunta, lee [compl.lang.c Frequently Asked Questions](http://c-faq.com). Si tienes una pregunta, lee [compl.lang.c Frequently Asked Questions](http://c-faq.com).
Es muy importante utilizar el espaciado y la sangría apropiados y ser coherente Es muy importante utilizar el espaciado y la sangría apropiados y ser coherente
con su estilo de codificación en general. El código legible es mejor que el con su estilo de codificación en general. El código legible es mejor que el
código rápido. Para adoptar un buen estilo de codificación, vea el código rápido. Para adoptar un buen estilo de codificación, vea el
[Estilo de codificación del kernel Linux] (https://www.kernel.org/doc/Documentation/CodingStyle). [estilo de codificación del kernel Linux](https://www.kernel.org/doc/Documentation/CodingStyle).

View File

@ -10,7 +10,7 @@ lang: es-es
--- ---
ColdFusion es un lenguaje de scripting para desarrollo web. ColdFusion es un lenguaje de scripting para desarrollo web.
[Lea más aquí](Http://www.adobe.com/products/coldfusion-family.html) [Lea más aquí](http://www.adobe.com/products/coldfusion-family.html)
### CFML ### CFML
_**C**old**F**usion **M**arkup **L**anguage_ _**C**old**F**usion **M**arkup **L**anguage_

View File

@ -23,7 +23,7 @@ codigo CSS esta hecho de *reglas* estaticas. Cada regla toma uno o mas *selector
Esta guia ha sido escrita con CSS 2 en mente, la cual es extendida por una nueva caracterica de CSS 3. Esta guia ha sido escrita con CSS 2 en mente, la cual es extendida por una nueva caracterica de CSS 3.
**NOTA:** Debido a que CSS produce resultados visuales, para aprenderlo, necesitas **NOTA:** Debido a que CSS produce resultados visuales, para aprenderlo, necesitas
Probar todo en un patio de juegos CSS como [dabblet] (http://dabblet.com/). Probar todo en un patio de juegos CSS como [dabblet](http://dabblet.com/).
El objetivo principal de este artículo es la sintaxis y algunos consejos generales. El objetivo principal de este artículo es la sintaxis y algunos consejos generales.
## Sintaxis ## Sintaxis
@ -31,7 +31,7 @@ El objetivo principal de este artículo es la sintaxis y algunos consejos genera
```css ```css
/* Los comentarios aparecen dentro de un diagonal-asterisco, justo como esta linea /* Los comentarios aparecen dentro de un diagonal-asterisco, justo como esta linea
no hay "comentarios en una linea"; este es el unico estilo de comentario.*/ no hay "comentarios en una linea"; este es el unico estilo de comentario.*/
/* #################### /* ####################
## SELECTORS ## SELECTORS
@ -176,7 +176,7 @@ selector {
border-style:solid; border-style:solid;
border-color:red; /* similar to how background-color is set */ border-color:red; /* similar to how background-color is set */
border: 5px solid red; /* this is a short hand approach for the same */ border: 5px solid red; /* this is a short hand approach for the same */
border-radius:20px; /* this is a CSS3 property */ border-radius:20px; /* this is a CSS3 property */
/* Images as backgrounds of elements */ /* Images as backgrounds of elements */
background-image: url(/img-path/img.jpg); /* quotes inside url() optional */ background-image: url(/img-path/img.jpg); /* quotes inside url() optional */
@ -323,5 +323,3 @@ a new feature.
* [Z-Index - The stacking context](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/The_stacking_context) * [Z-Index - The stacking context](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/The_stacking_context)
* [SASS](http://sass-lang.com/) and [LESS](http://lesscss.org/) for CSS pre-processing * [SASS](http://sass-lang.com/) and [LESS](http://lesscss.org/) for CSS pre-processing
* [CSS-Tricks](https://css-tricks.com) * [CSS-Tricks](https://css-tricks.com)

View File

@ -8,7 +8,7 @@ lang: es-es
filename: groovy-es.html filename: groovy-es.html
--- ---
Groovy - Un lenguaje dinámico para la plataforma Java [Leer más aquí.](http://www.groovy-lang.org/) Groovy - Un lenguaje dinámico para la plataforma Java. [Leer más aquí](http://www.groovy-lang.org/).
```groovy ```groovy
/* /*
@ -283,7 +283,7 @@ def clos = { print it }
clos( "hi" ) clos( "hi" )
/* /*
Groovy puede memorizar los resultados de un Closure [1][2][3] Groovy puede memorizar los resultados de un Closure
*/ */
def cl = {a, b -> def cl = {a, b ->
sleep(3000) // simula algún proceso que consume tiempo sleep(3000) // simula algún proceso que consume tiempo
@ -422,12 +422,6 @@ assert sum(2,5) == 7
## Libros ## Libros
* [Groovy Goodness] (https://leanpub.com/groovy-goodness-notebook) * [Groovy Goodness](https://leanpub.com/groovy-goodness-notebook)
* [Groovy in Action](http://manning.com/koenig2/)
* [Groovy in Action] (http://manning.com/koenig2/) * [Programming Groovy 2: Dynamic Productivity for the Java Developer](http://shop.oreilly.com/product/9781937785307.do)
* [Programming Groovy 2: Dynamic Productivity for the Java Developer] (http://shop.oreilly.com/product/9781937785307.do)
[1] http://roshandawrani.wordpress.com/2010/10/18/groovy-new-feature-closures-can-now-memorize-their-results/
[2] http://www.solutionsiq.com/resources/agileiq-blog/bid/72880/Programming-with-Groovy-Trampoline-and-Memoize
[3] http://mrhaki.blogspot.mx/2011/05/groovy-goodness-cache-closure-results.html

View File

@ -143,7 +143,7 @@ logger("Tenemos una subrutina logger!");
#### Utilizando módulos Perl #### Utilizando módulos Perl
Los módulos en Perl proveen de una gama de funciones que le pueden ayudar a evitar reinventar la rueda. Éstas se pueden descargar desde CPAN ( http://www.cpan.org/ ). Algunos de los módulos más populares ya están incluidos con la misma distribución de Perl. Los módulos en Perl proveen de una gama de funciones que le pueden ayudar a evitar reinventar la rueda. Éstas se pueden descargar desde [CPAN](http://www.cpan.org/). Algunos de los módulos más populares ya están incluidos con la misma distribución de Perl.
perlfaq contiene preguntas y respuestas relacionadas con muchas tareas comunes, y algunas veces provee sugerencias sobre buenos módulos de CPAN que puede usar. perlfaq contiene preguntas y respuestas relacionadas con muchas tareas comunes, y algunas veces provee sugerencias sobre buenos módulos de CPAN que puede usar.

View File

@ -231,8 +231,9 @@ sns.lmplot("BirthY", "EstAge", data=hre);
Si quieres aprender más, obtén _Python for Data Analysis_ por Wes McKinney. Es un extraordinario recurso usado como referencia para escribir este tutorial. Si quieres aprender más, obtén _Python for Data Analysis_ por Wes McKinney. Es un extraordinario recurso usado como referencia para escribir este tutorial.
También puedes encontrar gran cantidad de tutoriales interactivos de IPython en temas específicos a tus intereses, como Pilon de Cam Davidson <a href="http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/" Title="Probabilistic Programming and Bayesian Methods for Hackers">Probabilistic Programming and Bayesian Methods for Hackers</a>. También puedes encontrar gran cantidad de tutoriales interactivos de IPython en temas específicos a tus intereses, como Pilon de Cam Davidson [Probabilistic Programming and Bayesian Methods for Hackers](http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/).
Ver más módulos para investigar: Ver más módulos para investigar:
- análisis de texto y procesamiento natural del lenguaje: nltk, http://www.nltk.org
- análisis de redes sociales: igraph, http://igraph.org/python/ - análisis de texto y procesamiento natural del lenguaje: [nltk](http://www.nltk.org)
- análisis de redes sociales: [igraph](http://igraph.org/python/)

View File

@ -20,7 +20,7 @@ Module Module1
' Dicho sistema se explicará a medida que avancemos en este ' Dicho sistema se explicará a medida que avancemos en este
' tutorial; gradualmente entenderás lo que significa todo. ' tutorial; gradualmente entenderás lo que significa todo.
Console.Title = ("Aprende X en Y minutos") Console.Title = ("Aprende X en Y minutos")
Console.WriteLine("NAVEGACIÓN") 'Mostrar Console.WriteLine("NAVEGACIÓN") 'Mostrar
Console.WriteLine("") Console.WriteLine("")
Console.ForegroundColor = ConsoleColor.Green Console.ForegroundColor = ConsoleColor.Green
Console.WriteLine("1. Salida «Hola, mundo»") Console.WriteLine("1. Salida «Hola, mundo»")
@ -42,7 +42,7 @@ Module Module1
Case "2" 'Entrada «hola, mundo» Case "2" 'Entrada «hola, mundo»
Console.Clear() Console.Clear()
EntradaHolaMundo() EntradaHolaMundo()
Case "3" 'Calcular números enteros Case "3" 'Calcular números enteros
Console.Clear() Console.Clear()
CalcularNumerosEnteros() CalcularNumerosEnteros()
Case "4" 'Calcular números decimales Case "4" 'Calcular números decimales
@ -77,7 +77,7 @@ Module Module1
'Uno - He usado números para guiarme por el sistema de navegación anterior 'Uno - He usado números para guiarme por el sistema de navegación anterior
'cuando regrese posteriormente a implementarlo. 'cuando regrese posteriormente a implementarlo.
'Usamos subrutinas privadas para separar distintas secciones del programa. 'Usamos subrutinas privadas para separar distintas secciones del programa.
Private Sub SalidaHolaMundo() Private Sub SalidaHolaMundo()
'Título de la aplicación de consola 'Título de la aplicación de consola
Console.Title = "Salida «Hola, mundo» | Aprende X en Y minutos" Console.Title = "Salida «Hola, mundo» | Aprende X en Y minutos"
@ -212,7 +212,7 @@ Module Module1
Console.Title = "Uso de bucles «For» | Aprende X en Y minutos" Console.Title = "Uso de bucles «For» | Aprende X en Y minutos"
'Declarar Variable y desde qué número debe contar en Step -1, 'Declarar Variable y desde qué número debe contar en Step -1,
'Step -2, Step -3, etc. 'Step -2, Step -3, etc.
For i As Integer = 10 To 0 Step -1 For i As Integer = 10 To 0 Step -1
Console.WriteLine(i.ToString) 'Muestra el valor del contador Console.WriteLine(i.ToString) 'Muestra el valor del contador
Next i 'Calcular el valor nuevo Next i 'Calcular el valor nuevo
Console.WriteLine("Iniciar") '¡¡Comencemos el programa, nene!! Console.WriteLine("Iniciar") '¡¡Comencemos el programa, nene!!
@ -278,6 +278,6 @@ End Module
Aprendí Visual Basic en la aplicación de consola. Esta me permitió entender los principios de la programación para, posteriormente, aprender otros lenguajes con facilidad. Aprendí Visual Basic en la aplicación de consola. Esta me permitió entender los principios de la programación para, posteriormente, aprender otros lenguajes con facilidad.
He creado un <a href="http://www.vbbootcamp.co.uk/" Title="Tutorial de Visual Basic">tutorial de Visual Basic</a> más exhaustivo para quienes quieran saber más. He creado un [tutorial de Visual Basic](http://www.vbbootcamp.co.uk/) más exhaustivo para quienes quieran saber más.
Toda la sintaxis es válida. Copia el código y pégalo en el compilador de Visual Basic y ejecuta (F5) el programa. Toda la sintaxis es válida. Copia el código y pégalo en el compilador de Visual Basic y ejecuta (F5) el programa.

View File

@ -29,6 +29,7 @@ filename: LearnVim-fa.txt
``` ```
vim <filename> # Open <filename> in vim vim <filename> # Open <filename> in vim
``` ```
<p dir="rtl"> <p dir="rtl">
باز کردن help docs های `<topic>` اگر وجود داشته باشد باز کردن help docs های `<topic>` اگر وجود داشته باشد
</p> </p>

View File

@ -255,14 +255,11 @@ endif
### En français ### En français
+ [Introduction à Makefile (developpez.com)] + [Introduction à Makefile (developpez.com)](http://gl.developpez.com/tutoriel/outil/makefile/),
(http://gl.developpez.com/tutoriel/outil/makefile/), + [Compilez sous GNU/Linux ! (openclassrooms)](https://openclassrooms.com/courses/compilez-sous-gnu-linux).
+ [Compilez sous GNU/Linux ! (openclassrooms)]
(https://openclassrooms.com/courses/compilez-sous-gnu-linux).
### En anglais ### En anglais
+ [Documentation de GNU make](https://www.gnu.org/software/make/manual/), + [Documentation de GNU make](https://www.gnu.org/software/make/manual/),
+ [Software carpentry tutorial](http://swcarpentry.github.io/make-novice/), + [Software carpentry tutorial](http://swcarpentry.github.io/make-novice/),
+ Learn C the hard way [ex2](http://c.learncodethehardway.org/book/ex2.html) + Learn C the hard way [ex2](http://c.learncodethehardway.org/book/ex2.html) [ex28](http://c.learncodethehardway.org/book/ex28.html).
[ex28](http://c.learncodethehardway.org/book/ex28.html).

View File

@ -48,8 +48,8 @@ my %fruit_couleur = ("pomme", "rouge", "banane", "jaune");
# Vous pouvez utiliser des espaces et l'opérateur "=>" pour les disposer plus joliment : # Vous pouvez utiliser des espaces et l'opérateur "=>" pour les disposer plus joliment :
my %fruit_couleur = ( my %fruit_couleur = (
pomme => "rouge", pomme => "rouge",
banane => "jaune" banane => "jaune"
); );
# Les scalaires, tableaux et hashes sont plus amplement documentés dans le perldata # Les scalaires, tableaux et hashes sont plus amplement documentés dans le perldata
@ -105,7 +105,7 @@ for my $element (@elements) {
# de la plupart des fonctions pour en simplifier l'écriture. # de la plupart des fonctions pour en simplifier l'écriture.
# Dans l'exemple suivant, $_ prends successivement la valeur de # Dans l'exemple suivant, $_ prends successivement la valeur de
# chaque élément de la liste. # chaque élément de la liste.
for (@elements) { for (@elements) {
print; # affiche le contenu de $_ print; # affiche le contenu de $_
@ -163,11 +163,12 @@ logger("On a une fonction de logging!!");
#### Utiliser des modules Perl #### Utiliser des modules Perl
Les modules Perl fournissent une palette de fonctionnalités vous évitant de réinventer la roue et peuvent être téléchargés depuis CPAN (http://www.cpan.org/). Un certain nombre de modules populaires sont inclus dans la distribution même de Perl. Les modules Perl fournissent une palette de fonctionnalités vous évitant de réinventer la roue et peuvent être téléchargés depuis [CPAN](http://www.cpan.org/). Un certain nombre de modules populaires sont inclus dans la distribution même de Perl.
Perlfaq contiens des questions et réponses liées aux tâches habituelles et propose souvent des suggestions quant aux bons modules à utiliser. Perlfaq contiens des questions et réponses liées aux tâches habituelles et propose souvent des suggestions quant aux bons modules à utiliser.
#### Pour en savoir plus #### Pour en savoir plus
- [perl-tutorial](http://perl-tutorial.org/) - [perl-tutorial](http://perl-tutorial.org/)
- [Learn at www.perl.com](http://www.perl.org/learn.html) - [Learn at www.perl.com](http://www.perl.org/learn.html)
- [perldoc](http://perldoc.perl.org/) - [perldoc](http://perldoc.perl.org/)

View File

@ -12,7 +12,7 @@ Le langage Wolfram est utilisé dans les programmes suivants :
* La ligne de commandes interactive noyau du Raspberry Pi, mais elle ne peut pas * La ligne de commandes interactive noyau du Raspberry Pi, mais elle ne peut pas
gérer des éléments graphiques. gérer des éléments graphiques.
* _Mathematica_, un éditeur de texte riche spécialisé pour les mathématiques : * _Mathematica_, un éditeur de texte riche spécialisé pour les mathématiques :
appuyer sur `Shift + Entrée` dans une cellule de code crée un nouvelle cellule appuyer sur `Shift + Entrée` dans une cellule de code crée un nouvelle cellule
contenant le résultat. contenant le résultat.
* _Wolfram Wokbench_, une variante d'Eclipse spécialisée pour le langage * _Wolfram Wokbench_, une variante d'Eclipse spécialisée pour le langage
Wolfram. Wolfram.
@ -138,7 +138,7 @@ FoldList[Plus, 0, liste] (* {0, 1, 3, 6, 10}, variante de la fonction
précédente qui donne aussi les résultats précédente qui donne aussi les résultats
intermédiaires *) intermédiaires *)
Append[liste, 5] (* {1, 2, 3, 4, 5}, liste n'est pas modifiée... *) Append[liste, 5] (* {1, 2, 3, 4, 5}, liste n'est pas modifiée... *)
Prepend[liste, 5] (* {5, 1, 2, 3, 4}, ... mais elle peut l'être en Prepend[liste, 5] (* {5, 1, 2, 3, 4}, ... mais elle peut l'être en
écrivant "liste = " *) écrivant "liste = " *)
Join[liste, {3, 4}] (* {1, 2, 3, 4, 3, 4} *) Join[liste, {3, 4}] (* {1, 2, 3, 4, 3, 4} *)
liste[[2]] = 5 (* {1, 5, 3, 4}, ceci modifie bien la liste *) liste[[2]] = 5 (* {1, 5, 3, 4}, ceci modifie bien la liste *)
@ -163,5 +163,4 @@ Manipulate[y^2, {y, 0, 20}] (* Crée une interface graphique interactive qui
## Envie d'aller plus loin ? ## Envie d'aller plus loin ?
* [Documentation du langage Wolfram (en anglais)] * [Documentation du langage Wolfram (en anglais)](http://reference.wolfram.com/language/)
(http://reference.wolfram.com/language/)

View File

@ -6,7 +6,7 @@ contributors:
filename: learngroovy.groovy filename: learngroovy.groovy
--- ---
Groovy - A dynamic language for the Java platform [Read more here.](http://www.groovy-lang.org/) [Groovy](http://www.groovy-lang.org/) is a dynamic language for the Java platform
```groovy ```groovy
/* /*
@ -299,7 +299,7 @@ def clos = { print it }
clos( "hi" ) clos( "hi" )
/* /*
Groovy can memoize closure results [1][2][3] Groovy can memoize closure results
*/ */
def cl = {a, b -> def cl = {a, b ->
sleep(3000) // simulate some time consuming processing sleep(3000) // simulate some time consuming processing
@ -438,12 +438,6 @@ Join a [Groovy user group](http://www.groovy-lang.org/usergroups.html)
## Books ## Books
* [Groovy Goodness] (https://leanpub.com/groovy-goodness-notebook) * [Groovy Goodness](https://leanpub.com/groovy-goodness-notebook)
* [Groovy in Action](http://manning.com/koenig2/)
* [Groovy in Action] (http://manning.com/koenig2/) * [Programming Groovy 2: Dynamic Productivity for the Java Developer](http://shop.oreilly.com/product/9781937785307.do)
* [Programming Groovy 2: Dynamic Productivity for the Java Developer] (http://shop.oreilly.com/product/9781937785307.do)
[1] http://roshandawrani.wordpress.com/2010/10/18/groovy-new-feature-closures-can-now-memorize-their-results/
[2] http://www.solutionsiq.com/resources/agileiq-blog/bid/72880/Programming-with-Groovy-Trampoline-and-Memoize
[3] http://mrhaki.blogspot.mx/2011/05/groovy-goodness-cache-closure-results.html

View File

@ -198,12 +198,12 @@ $ r.js -o app.build.js
* [उन्नत विन्यास](http://requirejs.org/docs/api.html#config) * [उन्नत विन्यास](http://requirejs.org/docs/api.html#config)
* [शिम विन्यास (गैर एएमडी मॉड्यूल लोडिंग)](http://requirejs.org/docs/api.html#config-shim) * [शिम विन्यास (गैर एएमडी मॉड्यूल लोडिंग)](http://requirejs.org/docs/api.html#config-shim)
* [सीएसएस लदान और require.js साथ अनुकूलन](http://requirejs.org/docs/optimization.html#onecss) * [सीएसएस लदान और require.js साथ अनुकूलन](http://requirejs.org/docs/optimization.html#onecss)
* [बनाता है के लिए almond.js का प्रयोग](Https://github.com/jrburke/almond) * [बनाता है के लिए almond.js का प्रयोग](https://github.com/jrburke/almond)
### अग्रिम पठन: ### अग्रिम पठन:
* [सरकारी कल्पना](https://github.com/amdjs/amdjs-api/wiki/AMD) * [सरकारी कल्पना](https://github.com/amdjs/amdjs-api/wiki/AMD)
* [क्यों एएमडी?](Http://requirejs.org/docs/whyamd.html) * [क्यों एएमडी?](http://requirejs.org/docs/whyamd.html)
* [यूनिवर्सल मॉड्यूल परिभाषा](https://github.com/umdjs/umd) * [यूनिवर्सल मॉड्यूल परिभाषा](https://github.com/umdjs/umd)
### कार्यान्वयन: ### कार्यान्वयन:

View File

@ -26,8 +26,8 @@ http --offline https://api.example.com/posts
### URL shortcuts for `localhost` ### URL shortcuts for `localhost`
HTTPie supports a curl-like shorthand for localhost. For instance, ":3000" HTTPie supports a curl-like shorthand for localhost. For instance, `:3000`
expands to "http://localhost:3000". If the port is omitted, it assumes port 80. expands to `http://localhost:3000`. If the port is omitted, it assumes port 80.
```bash ```bash
http :/users # http://localhost/users http :/users # http://localhost/users
@ -48,7 +48,6 @@ http https://api.example.com/tags title="Tutorial" slug="tutorial" # POST a new
## Querystring Parameters ## Querystring Parameters
If you're manually adding query string parameters in the terminal, try the If you're manually adding query string parameters in the terminal, try the
`param==value` syntax. It avoids shell escaping for & separators and `param==value` syntax. It avoids shell escaping for & separators and
automatically URL-escapes special characters in parameter names and values. automatically URL-escapes special characters in parameter names and values.
@ -116,5 +115,5 @@ http --follow GET https://example.com # Follow Redirects
## Further Reading ## Further Reading
- [Official Documentation](https://httpie.io/docs/cli). - [Official Documentation](https://httpie.io/docs/cli)
- [GitHub](https://github.com/httpie). - [GitHub](https://github.com/httpie)

View File

@ -10,7 +10,7 @@ lang: id-id
--- ---
CoffeeScript adalah bahasa sederhana yang diterjemahkan saat kompilasi ke dalam JavaScript, CoffeeScript adalah bahasa sederhana yang diterjemahkan saat kompilasi ke dalam JavaScript,
dan bukan diterjemahkan pada saat *runtime*. dan bukan diterjemahkan pada saat *runtime*.
CoffeeScript mencoba agar kode JavaScript yang dihasilkan tetap mudah dibaca CoffeeScript mencoba agar kode JavaScript yang dihasilkan tetap mudah dibaca
dan kompatibel dengan semua *runtime* JavaScript. dan kompatibel dengan semua *runtime* JavaScript.
@ -102,5 +102,5 @@ makan sayuran for sayuran in sayur_sayuran when sayuran isnt 'kemangi'
## Referensi Tambahan ## Referensi Tambahan
- [Smooth CoffeeScript (EN)] (http://autotelicum.github.io/Smooth-CoffeeScript/) - [Smooth CoffeeScript (EN)](http://autotelicum.github.io/Smooth-CoffeeScript/)
- [CoffeeScript Ristretto (EN)] (https://leanpub.com/coffeescript-ristretto/read) - [CoffeeScript Ristretto (EN)](https://leanpub.com/coffeescript-ristretto/read)

View File

@ -11,32 +11,32 @@ lang: it-it
**Qt** è un framework ampiamente conosciuto per lo sviluppo di software multipiattaforma che può essere eseguito su varie piattaforme software e hardware con modifiche minime o nulle nel codice, pur avendo la potenza e la velocità delle applicazioni native. Sebbene **Qt** sia stato originariamente scritto in *C++*. **Qt** è un framework ampiamente conosciuto per lo sviluppo di software multipiattaforma che può essere eseguito su varie piattaforme software e hardware con modifiche minime o nulle nel codice, pur avendo la potenza e la velocità delle applicazioni native. Sebbene **Qt** sia stato originariamente scritto in *C++*.
Questo è un adattamento sull'introduzione di C ++ a QT di
Questo è un adattamento sull'introduzione di C ++ a QT di [Aleksey Kholovchuk] (https://github.com/vortexxx192 [Aleksey Kholovchuk](https://github.com/vortexxx192), alcuni
), alcuni degli esempi di codice dovrebbero avere la stessa funzionalità degli esempi di codice dovrebbero avere la stessa
che avrebbero se fossero fatte usando pyqt! funzionalità che avrebbero se fossero fatte usando pyqt!
```python ```python
import sys import sys
from PyQt4 import QtGui from PyQt4 import QtGui
def window(): def window():
# Crea un oggetto applicazione # Crea un oggetto applicazione
app = QtGui.QApplication(sys.argv) app = QtGui.QApplication(sys.argv)
# Crea un widget in cui verrà inserita la nostra etichetta # Crea un widget in cui verrà inserita la nostra etichetta
w = QtGui.QWidget() w = QtGui.QWidget()
# Aggiungi un'etichetta al widget # Aggiungi un'etichetta al widget
b = QtGui.QLabel(w) b = QtGui.QLabel(w)
# Imposta del testo per l'etichetta # Imposta del testo per l'etichetta
b.setText("Ciao Mondo!") b.setText("Ciao Mondo!")
# Fornisce informazioni su dimensioni e posizionamento # Fornisce informazioni su dimensioni e posizionamento
w.setGeometry(100, 100, 200, 50) w.setGeometry(100, 100, 200, 50)
b.move(50, 20) b.move(50, 20)
# Dai alla nostra finestra un bel titolo # Dai alla nostra finestra un bel titolo
w.setWindowTitle("PyQt") w.setWindowTitle("PyQt")
# Visualizza tutto # Visualizza tutto
w.show() w.show()
# Esegui ciò che abbiamo chiesto, una volta che tutto è stato configurato # Esegui ciò che abbiamo chiesto, una volta che tutto è stato configurato
sys.exit(app.exec_()) sys.exit(app.exec_())
if __name__ == '__main__': if __name__ == '__main__':
@ -60,7 +60,7 @@ def window():
b.setText("Premimi") b.setText("Premimi")
b.move(50, 50) b.move(50, 50)
# Indica a b di chiamare questa funzione quando si fa clic # Indica a b di chiamare questa funzione quando si fa clic
    # notare la mancanza di "()" sulla chiamata di funzione # notare la mancanza di "()" sulla chiamata di funzione
b.clicked.connect(showdialog) b.clicked.connect(showdialog)
w.setWindowTitle("PyQt Dialog") w.setWindowTitle("PyQt Dialog")
w.show() w.show()

View File

@ -300,7 +300,7 @@ fn main() {
*ref_var2 += 2; // '*' serve a puntare al binding var2, preso in presto mutevolmente *ref_var2 += 2; // '*' serve a puntare al binding var2, preso in presto mutevolmente
println!("{}", *ref_var2); // 6 println!("{}", *ref_var2); // 6
// var2 non compilerebbe. ref_var2 è di tipo &mut i32, e quindi // var2 non compilerebbe. ref_var2 è di tipo &mut i32, e quindi
// immagazzina un riferimento a un i32, e non il valore stesso. // immagazzina un riferimento a un i32, e non il valore stesso.
// var2 = 2; // questo non compilerebbe, perché `var2` è stato preso in prestito // var2 = 2; // questo non compilerebbe, perché `var2` è stato preso in prestito
} }
@ -312,7 +312,7 @@ C'è molto di più in Rust — questi sono solo i fondamenti di Rust, che servon
le cose più importanti. le cose più importanti.
Purtroppo c'è pochissima documentazione in italiano, tra cui: Purtroppo c'è pochissima documentazione in italiano, tra cui:
(https://www.mozillaitalia.org/home/2015/05/30/primi-passi-con-rust/) [mozillaitalia.org/home/2015/05/30/primi-passi-con-rust/](https://www.mozillaitalia.org/home/2015/05/30/primi-passi-con-rust/)
Però ce n'è parecchia in inglese. Per saperne di più, leggi [The Rust Programming Però ce n'è parecchia in inglese. Per saperne di più, leggi [The Rust Programming
Language](http://doc.rust-lang.org/book/index.html) e tieni d'occhio l'area di interesse di Reddit (subreddit) Language](http://doc.rust-lang.org/book/index.html) e tieni d'occhio l'area di interesse di Reddit (subreddit)

View File

@ -1012,45 +1012,32 @@ public class Lambdas {
The links provided here below are just to get an understanding of the topic, feel free to Google and find specific examples. The links provided here below are just to get an understanding of the topic, feel free to Google and find specific examples.
**Official Oracle Guides**: ### Official Oracle Guides
* [Java Tutorial Trail from Sun / Oracle](https://docs.oracle.com/javase/tutorial/index.html) * [Java Tutorial Trail from Sun / Oracle](https://docs.oracle.com/javase/tutorial/index.html)
* [Java Access level modifiers](https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html) * [Java Access level modifiers](https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
* [Object-Oriented Programming Concepts](https://docs.oracle.com/javase/tutorial/java/concepts/index.html): * [Object-Oriented Programming Concepts](https://docs.oracle.com/javase/tutorial/java/concepts/index.html):
* [Inheritance](https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html) * [Inheritance](https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
* [Polymorphism](https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html) * [Polymorphism](https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
* [Abstraction](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html) * [Abstraction](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
* [Exceptions](https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html) * [Exceptions](https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
* [Interfaces](https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html) * [Interfaces](https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)
* [Generics](https://docs.oracle.com/javase/tutorial/java/generics/index.html) * [Generics](https://docs.oracle.com/javase/tutorial/java/generics/index.html)
* [Java Code Conventions](https://www.oracle.com/technetwork/java/codeconvtoc-136057.html) * [Java Code Conventions](https://www.oracle.com/technetwork/java/codeconvtoc-136057.html)
* New features in Java 8: * New features in Java 8:
* [Lambda expressions (functional programming)](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html) * [Lambda expressions (functional programming)](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html)
* [Date and time API (java.time package)](http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html) * [Date and time API (java.time package)](http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html)
**Online Practice and Tutorials** ### Online Practice and Tutorials
* [Learneroo.com - Learn Java](http://www.learneroo.com) * [Learneroo.com - Learn Java](http://www.learneroo.com)
* [Codingbat.com](http://codingbat.com/java) * [Codingbat.com](http://codingbat.com/java)
* [Codewars - Java Katas](https://www.codewars.com/?language=java) * [Codewars - Java Katas](https://www.codewars.com/?language=java)
* [University of Helsinki - Object-Oriented programming with Java](http://moocfi.github.io/courses/2013/programming-part-1/) * [University of Helsinki - Object-Oriented programming with Java](http://moocfi.github.io/courses/2013/programming-part-1/)
**Books**: ### Books
* [Head First Java](http://www.headfirstlabs.com/books/hfjava/) * [Head First Java](http://www.headfirstlabs.com/books/hfjava/)
* [Thinking in Java](https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486/) * [Thinking in Java](https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486/)
* [Objects First with Java](https://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660) * [Objects First with Java](https://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660)
* [Java The Complete Reference](https://www.amazon.com/gp/product/0071606300) * [Java The Complete Reference](https://www.amazon.com/gp/product/0071606300)

View File

@ -902,9 +902,9 @@ jq -n '
# - `def f($a; $b): ...;` is a shorthand for: `def f(a; b): a as $a | b as $b | ...` # - `def f($a; $b): ...;` is a shorthand for: `def f(a; b): a as $a | b as $b | ...`
``` ```
## Further Reading ## Further Reading
- https://stedolan.github.io/jq/manual/
- https://github.com/stedolan/jq/wiki/jq-Language-Description - [jq Manual](https://jqlang.github.io/jq/manual/)
- https://github.com/stedolan/jq/wiki/Cookbook - [Language Description](https://github.com/jqlang/jq/wiki/jq-Language-Description)
- https://github.com/stedolan/jq/blob/master/src/builtin.jq - [Cookbook](https://github.com/jqlang/jq/wiki/Cookbook)
- [builtin.jq](https://github.com/jqlang/jq/blob/master/src/builtin.jq)

View File

@ -18,9 +18,10 @@ Failo plėtinys JSON failams yra „.json“, o MIME tipas yra „application/js
Dauguma programavimo kalbų palaiko JSON duomenų serializaciją (kodavimą) ir deserializaciją (dekodavimą) į natyviasias duomenų struktūras. Javascript turi visišką JSON teksto kaip duomenų manipuliavimo palaikymą. Dauguma programavimo kalbų palaiko JSON duomenų serializaciją (kodavimą) ir deserializaciją (dekodavimą) į natyviasias duomenų struktūras. Javascript turi visišką JSON teksto kaip duomenų manipuliavimo palaikymą.
Daugiau informacijos galima rasti http://www.json.org/ Daugiau informacijos galima rasti [json.org](http://www.json.org/)
JSON yra pastatytas iš dviejų struktūrų: JSON yra pastatytas iš dviejų struktūrų:
* Vardų/reikšmių porų rinkinys. Daugomoje kalbų, tai yra realizuojama kaip objektas, įrašas, struktūra, žodynas, hash lentelė, sąrašas su raktais arba asociatyvusis masyvas. * Vardų/reikšmių porų rinkinys. Daugomoje kalbų, tai yra realizuojama kaip objektas, įrašas, struktūra, žodynas, hash lentelė, sąrašas su raktais arba asociatyvusis masyvas.
* Rūšiuotas reikšmių sąrašas. Daugumoje kalbų, toks sąrašas yra realizuojama kaip masyvas, vektorius, sąrašas arba seka. * Rūšiuotas reikšmių sąrašas. Daugumoje kalbų, toks sąrašas yra realizuojama kaip masyvas, vektorius, sąrašas arba seka.

View File

@ -1,8 +1,8 @@
--- ---
language: M (MUMPS) language: M (MUMPS)
contributors: contributors:
- ["Fred Turkington", "http://z3ugma.github.io"] - ["Fred Turkington", "http://z3ugma.github.io"]
filename: LEARNM.m filename: LEARNM.m
--- ---
M, or MUMPS (Massachusetts General Hospital Utility Multi-Programming System) is M, or MUMPS (Massachusetts General Hospital Utility Multi-Programming System) is
@ -22,7 +22,7 @@ to modern formats like JSON.
Originally designed in 1966 for the healthcare applications, M continues to be Originally designed in 1966 for the healthcare applications, M continues to be
used widely by healthcare systems and financial institutions for high-throughput used widely by healthcare systems and financial institutions for high-throughput
real-time applications. real-time applications.
### Example ### Example
@ -72,12 +72,12 @@ Commands are case insensitive, and have full form, and a shortened abbreviation,
#### Common Commands from all National and International Standards of M #### Common Commands from all National and International Standards of M
#### Write (abbreviated as W) #### Write (abbreviated as W)
Print data to the current device. Print data to the current device.
``` ```
WRITE !,"hello world" WRITE !,"hello world"
``` ```
Output Formatting characters: Output Formatting characters:
@ -89,7 +89,7 @@ Output Formatting characters:
Multiple statements can be provided as additional arguments before the space separators to the next command: Multiple statements can be provided as additional arguments before the space separators to the next command:
``` ```
w !,"foo bar"," ","baz" w !,"foo bar"," ","baz"
``` ```
#### Read (abbreviated as R) #### Read (abbreviated as R)
@ -124,7 +124,7 @@ w !,centi,!,micro
Remove a variable from memory or remove a database entry from disk. Remove a variable from memory or remove a database entry from disk.
A database node (global variable) is killed depending on the variable name being prefixed by the caret character (^). A database node (global variable) is killed depending on the variable name being prefixed by the caret character (^).
If it is not, then the local variable is removed from memory. If it is not, then the local variable is removed from memory.
If KILLed, automatic garbage collection occurs. If KILLed, automatic garbage collection occurs.
``` ```
@ -134,9 +134,9 @@ k micro
### Globals and Arrays ### Globals and Arrays
In addition to local variables, M has persistent, shared variables that are the built-in database of M. They are stored to disk and called _globals_. Global names must start with a __caret__ (__^__). In addition to local variables, M has persistent, shared variables that are the built-in database of M. They are stored to disk and called _globals_. Global names must start with a __caret__ (__^__).
Any variable (local or global) can be an array with the assignment of a _subscript_. Arrays are sparse and do not have a predefined size. Only if data is stored will a value use memory. Arrays should be visualized like trees, where subscripts are branches and assigned values are leaves. Not all nodes in an array need to have a value. Any variable (local or global) can be an array with the assignment of a _subscript_. Arrays are sparse and do not have a predefined size. Only if data is stored will a value use memory. Arrays should be visualized like trees, where subscripts are branches and assigned values are leaves. Not all nodes in an array need to have a value.
``` ```
s ^cars=20 s ^cars=20
@ -144,7 +144,7 @@ s ^cars("Tesla",1,"Name")="Model 3"
s ^cars("Tesla",2,"Name")="Model X" s ^cars("Tesla",2,"Name")="Model X"
s ^cars("Tesla",2,"Doors")=5 s ^cars("Tesla",2,"Doors")=5
w !,^cars w !,^cars
; 20 ; 20
w !,^cars("Tesla") w !,^cars("Tesla")
; null value - there's no value assigned to this node but it has children ; null value - there's no value assigned to this node but it has children
@ -164,23 +164,23 @@ s ^TEMPS("11/12","1700",43)=""
### Operators ### Operators
```jinja ```
; Assignment: = ; Assignment: =
; Unary: + Convert a string value into a numeric value. ; Unary: + Convert a string value into a numeric value.
; Arthmetic: ; Arthmetic:
; + addition ; + addition
­; - subtraction ; - subtraction
; * multiplication ; * multiplication
; / floating-point division ; / floating-point division
; \ integer division ; \ integer division
; # modulo ; # modulo
; ** exponentiation ; ** exponentiation
; Logical: ; Logical:
; & and ; & and
; ! or ; ! or
; ' not ; ' not
; Comparison: ; Comparison:
; = equal ; = equal
; '= not equal ; '= not equal
; > greater than ; > greater than
; < less than ; < less than
@ -188,7 +188,7 @@ s ^TEMPS("11/12","1700",43)=""
; '< not less / greater than or equal to ; '< not less / greater than or equal to
; String operators: ; String operators:
; _ concatenate ; _ concatenate
; [ contains ­ a contains b ; [ contains ­ a contains b
; ]] sorts after ­ a comes after b ; ]] sorts after ­ a comes after b
; '[ does not contain ; '[ does not contain
; ']] does not sort after ; ']] does not sort after
@ -204,7 +204,7 @@ To change this order, just use parentheses to group expressions to be evaluated
w 5+3*20 w 5+3*20
;160 ;160
;You probably wanted 65 ;You probably wanted 65
write 5+(3*20) write 5+(3*20)
``` ```
### Flow Control, Blocks, & Code Structure ### Flow Control, Blocks, & Code Structure
@ -215,17 +215,17 @@ A tag can accept parameters and return a value, this is a function. A function i
``` ```
; Execute the 'tag' function, which has two parameters, and write the result. ; Execute the 'tag' function, which has two parameters, and write the result.
w !,$$tag^routine(a,b) w !,$$tag^routine(a,b)
``` ```
M has an execution stack. When all levels of the stack have returned, the program ends. Levels are added to the stack with _do_ commands and removed with _quit_ commands. M has an execution stack. When all levels of the stack have returned, the program ends. Levels are added to the stack with _do_ commands and removed with _quit_ commands.
#### Do (abbreviated as D) #### Do (abbreviated as D)
With an argument: execute a block of code & add a level to the stack. With an argument: execute a block of code & add a level to the stack.
``` ```
d ^routine ;run a routine from the beginning. d ^routine ;run a routine from the beginning.
; ;routines are identified by a caret. ; ;routines are identified by a caret.
d tag ;run a tag in the current routine d tag ;run a tag in the current routine
d tag^routine ;run a tag in different routine d tag^routine ;run a tag in different routine
@ -235,11 +235,11 @@ Argumentless do: used to create blocks of code. The block is indented with a per
``` ```
set a=1 set a=1
if a=1 do if a=1 do
. write !,a . write !,a
. read b . read b
. if b > 10 d . if b > 10 d
. . w !, b . . w !, b
w "hello" w "hello"
``` ```
@ -258,7 +258,7 @@ Putting all this together, we can create a full example of an M routine:
; RECTANGLE - a routine to deal with rectangle math ; RECTANGLE - a routine to deal with rectangle math
q ; quit if a specific tag is not called q ; quit if a specific tag is not called
main main
n length,width ; New length and width so any previous value doesn't persist n length,width ; New length and width so any previous value doesn't persist
w !,"Welcome to RECTANGLE. Enter the dimensions of your rectangle." w !,"Welcome to RECTANGLE. Enter the dimensions of your rectangle."
r !,"Length? ",length,!,"Width? ",width r !,"Length? ",length,!,"Width? ",width
@ -267,7 +267,7 @@ main
w !,"Perimeter: ",per w !,"Perimeter: ",per
quit quit
area(length,width) ; This is a tag that accepts parameters. area(length,width) ; This is a tag that accepts parameters.
; It's not a function since it quits with no value. ; It's not a function since it quits with no value.
w !, "Area: ",length*width w !, "Area: ",length*width
q ; Quit: return to the previous level of the stack. q ; Quit: return to the previous level of the stack.
@ -287,11 +287,11 @@ F(or) loops can follow a few different patterns:
;f var=start:increment:stop ;f var=start:increment:stop
f i=0:5:25 w i," " f i=0:5:25 w i," "
;0 5 10 15 20 25 ;0 5 10 15 20 25
; Infinite loop with counter ; Infinite loop with counter
; The counter will keep incrementing forever. Use a conditional with Quit to get out of the loop. ; The counter will keep incrementing forever. Use a conditional with Quit to get out of the loop.
;f var=start:increment ;f var=start:increment
f j=1:1 w j," " i j>1E3 q f j=1:1 w j," " i j>1E3 q
; Print 1-1000 separated by a space ; Print 1-1000 separated by a space
@ -299,7 +299,7 @@ f j=1:1 w j," " i j>1E3 q
;Argumentless for - infinite loop. Use a conditional with Quit. ;Argumentless for - infinite loop. Use a conditional with Quit.
; Also read as "forever" - f or for followed by two spaces. ; Also read as "forever" - f or for followed by two spaces.
s var="" s var=""
f s var=var_"%" w !,var i var="%%%%%%%%%%" q f s var=var_"%" w !,var i var="%%%%%%%%%%" q
; % ; %
; %% ; %%
; %%% ; %%%
@ -371,7 +371,7 @@ f s date=$ORDER(^TEMPS(date)) q:date="" d
. f s time=$O(^TEMPS(date,time)) q:time="" d . f s time=$O(^TEMPS(date,time)) q:time="" d
. . w !,"Time: ",time . . w !,"Time: ",time
; Build an index that sorts first by temperature - ; Build an index that sorts first by temperature -
; what dates and times had a given temperature? ; what dates and times had a given temperature?
n date,time,temp n date,time,temp
f s date=$ORDER(^TEMPS(date)) q:date="" d f s date=$ORDER(^TEMPS(date)) q:date="" d
@ -387,20 +387,21 @@ f s date=$ORDER(^TEMPS(date)) q:date="" d
## Further Reading ## Further Reading
There's lots more to learn about M. A great short tutorial comes from the University of Northern Iowa and Professor Kevin O'Kane's [Introduction to the MUMPS Language][1] presentation. More about M using VistA is at There's lots more to learn about M. A great short tutorial comes from the University of Northern Iowa and Professor Kevin O'Kane's [Introduction to the MUMPS Language][1] presentation. More about M using VistA is at
Intersystems has some products which are a super-set of the M programming language. Intersystems has some products which are a super-set of the M programming language.
* [Iris Description Page][5] * [Iris Description Page][5]
* [Cache Description Page][6] * [Cache Description Page][6]
To install an M interpreter / database on your computer, try a [YottaDB Docker image][2]. To install an M interpreter / database on your computer, try a [YottaDB Docker image][2].
YottaDB and its precursor, GT.M, have thorough documentation on all the language features including database transactions, locking, and replication: YottaDB and its precursor, GT.M, have thorough documentation on all the language features including database transactions, locking, and replication:
* [YottaDB Programmer's Guide][3] * [YottaDB Programmer's Guide][3]
* [GT.M Programmer's Guide][4] * [GT.M Programmer's Guide][4]
[1]: https://www.cs.uni.edu/~okane/source/MUMPS-MDH/MumpsTutorial.pdf [1]: https://www.cs.uni.edu/~okane/source/MUMPS-MDH/MumpsTutorial.pdf
[2]: https://yottadb.com/product/get-started/ [2]: https://yottadb.com/product/get-started/
[3]: https://docs.yottadb.com/ProgrammersGuide/langfeat.html [3]: https://docs.yottadb.com/ProgrammersGuide/langfeat.html
[4]: http://tinco.pair.com/bhaskar/gtm/doc/books/pg/UNIX_manual/index.html [4]: http://tinco.pair.com/bhaskar/gtm/doc/books/pg/UNIX_manual/index.html

View File

@ -36,9 +36,10 @@ Banyak bahasa aturcara mempunyai fungsi untuk menyirikan (mengekod) dan
menyah-sirikan (men-dekod) data JSON kepada struktur data asal. Javascript menyah-sirikan (men-dekod) data JSON kepada struktur data asal. Javascript
mempunyai sokongon tersirat untuk memanipulasi teks JSON sebagai data. mempunyai sokongon tersirat untuk memanipulasi teks JSON sebagai data.
Maklumat lebih lanjut boleh dijumpai di http://www.json.org/ Maklumat lebih lanjut boleh dijumpai di [json.org](http://www.json.org/)
JSON dibina pada dua struktur: JSON dibina pada dua struktur:
* Sebuah koleksi pasangan nama/nilai. Di dalam pelbagai bahasa aturcara, ini * Sebuah koleksi pasangan nama/nilai. Di dalam pelbagai bahasa aturcara, ini
direalisasikan sebagai objek, rekod, "struct", "dictionary", "hash table", direalisasikan sebagai objek, rekod, "struct", "dictionary", "hash table",
senarai berkunci, atau "associative array". senarai berkunci, atau "associative array".

View File

@ -1,4 +1,4 @@
--- ---
language: json language: json
filename: learnjson-no.json filename: learnjson-no.json
lang: no-nb lang: no-nb
@ -18,7 +18,7 @@ C-stil (`//`, `/* */`) kommentarer.
```json ```json
{ {
"nøkkel": "verdi", "nøkkel": "verdi",
"nøkler": "må alltid være i doble anførselstegn", "nøkler": "må alltid være i doble anførselstegn",
"tall": 0, "tall": 0,
"strings": "Hellø, wørld. Alt unicode er godkjent, også \"escaping\".", "strings": "Hellø, wørld. Alt unicode er godkjent, også \"escaping\".",
@ -48,7 +48,7 @@ C-stil (`//`, `/* */`) kommentarer.
[0, 0, 0, 1] [0, 0, 0, 1]
] ]
], ],
"Alternativ": { "Alternativ": {
"Kommentar": "Sjekk ut ditta!" "Kommentar": "Sjekk ut ditta!"
, "plassering av komma": "Sålenge den er før verdien er det gyldig" , "plassering av komma": "Sålenge den er før verdien er det gyldig"

View File

@ -112,6 +112,7 @@ use <filename> // Import modules and functions, but do not execute any comma
``` ```
## Further Reading ## Further Reading
* Official docs https://openscad.org/documentation.html
* Cheat sheet https://openscad.org/cheatsheet/index.html * Official docs [openscad.org/documentation.html](https://openscad.org/documentation.html)
* Vim bindings https://github.com/sirtaj/vim-openscad * Cheat sheet [openscad.org/cheatsheet/index.html](https://openscad.org/cheatsheet/index.html)
* Vim bindings [github.com/sirtaj/vim-openscad](https://github.com/sirtaj/vim-openscad)

View File

@ -21,8 +21,7 @@ lang: pl-pl
Java jest współbieżnym, opartym na klasach, obiektowym językiem programowania Java jest współbieżnym, opartym na klasach, obiektowym językiem programowania
ogólnego zastosowania. ogólnego zastosowania.
[Tu znajdziesz więcej informacji po angielsku.] [Tu znajdziesz więcej informacji po angielsku](https://docs.oracle.com/javase/tutorial/java/).
(https://docs.oracle.com/javase/tutorial/java/)
```java ```java
// Pojedyncze komentarze oznaczamy // // Pojedyncze komentarze oznaczamy //
@ -893,7 +892,7 @@ import java.security.SecureRandom;
public class Lambdas { public class Lambdas {
public static void main(String[] args) { public static void main(String[] args) {
// Składnia deklaracji lambdy: // Składnia deklaracji lambdy:
// <zero lub więcej parametrów> -> <ciało wyrażenia lub blok instrukcji> // <zero lub więcej parametrów> -> <ciało wyrażenia lub blok instrukcji>
// Poniżej w przykładzie użyjemy tablicy z hashowaniem. // Poniżej w przykładzie użyjemy tablicy z hashowaniem.
Map<String, String> planety = new HashMap<>(); Map<String, String> planety = new HashMap<>();
@ -978,49 +977,36 @@ public class Lambdas {
Linki zamieszczone poniżej służą pomocą w zrozumieniu wybranego tematu, w razie braku rozwiązania wyszukanie w Google zwykle służy pomocą Linki zamieszczone poniżej służą pomocą w zrozumieniu wybranego tematu, w razie braku rozwiązania wyszukanie w Google zwykle służy pomocą
**Oficjalne poradniki Oracle po angielsku**: ### Oficjalne poradniki Oracle po angielsku
* [Tutorial w Javie od Sun / Oracle](https://docs.oracle.com/javase/tutorial/index.html) * [Tutorial w Javie od Sun / Oracle](https://docs.oracle.com/javase/tutorial/index.html)
* [Modyfikacje poziomu dostępu w Java](https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html) * [Modyfikacje poziomu dostępu w Java](https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
* [Koncepty programowania obiektowego](https://docs.oracle.com/javase/tutorial/java/concepts/index.html): * [Koncepty programowania obiektowego](https://docs.oracle.com/javase/tutorial/java/concepts/index.html):
* [Dziedziczenie](https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html) * [Dziedziczenie](https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
* [Polimorfizm](https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html) * [Polimorfizm](https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
* [Abstrakcja](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html) * [Abstrakcja](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
* [Wyjątki](https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html) * [Wyjątki](https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
* [Interfejsy](https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html) * [Interfejsy](https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)
* [Uogólnianie](https://docs.oracle.com/javase/tutorial/java/generics/index.html) * [Uogólnianie](https://docs.oracle.com/javase/tutorial/java/generics/index.html)
* [Konwencja kodu Java](https://www.oracle.com/technetwork/java/codeconvtoc-136057.html) * [Konwencja kodu Java](https://www.oracle.com/technetwork/java/codeconvtoc-136057.html)
* Nowości z Java 8: * Nowości z Java 8:
* [Funkcje Lambda (programowanie funkcyjne)](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html) * [Funkcje Lambda (programowanie funkcyjne)](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html)
* [Data y czas API (java.time package)](http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html) * [Data y czas API (java.time package)](http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html)
**Kursy po polsku** ### Kursy po polsku
* [PJWSTK - Podstawy programowania w języku Java](http://edu.pjwstk.edu.pl/wyklady/ppj/scb/) * [PJWSTK - Podstawy programowania w języku Java](http://edu.pjwstk.edu.pl/wyklady/ppj/scb/)
* [PJWSTK - Programowanie obiektowe w języku Java](http://edu.pjwstk.edu.pl/wyklady/poj/scb/) * [PJWSTK - Programowanie obiektowe w języku Java](http://edu.pjwstk.edu.pl/wyklady/poj/scb/)
**Tutoriale i ćwiczenia online po angielsku** ### Tutoriale i ćwiczenia online po angielsku
* [Learneroo.com - Learn Java](http://www.learneroo.com) * [Learneroo.com - Learn Java](http://www.learneroo.com)
* [Codingbat.com](http://codingbat.com/java) * [Codingbat.com](http://codingbat.com/java)
* [Codewars - Java Katas](https://www.codewars.com/?language=java) * [Codewars - Java Katas](https://www.codewars.com/?language=java)
**Książki po angielsku**: ### Książki po angielsku
* [Head First Java](http://www.headfirstlabs.com/books/hfjava/) * [Head First Java](http://www.headfirstlabs.com/books/hfjava/)
* [Thinking in Java](https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486/) * [Thinking in Java](https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486/)
* [Objects First with Java](https://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660) * [Objects First with Java](https://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660)
* [Java The Complete Reference](https://www.amazon.com/gp/product/0071606300) * [Java The Complete Reference](https://www.amazon.com/gp/product/0071606300)

View File

@ -639,12 +639,10 @@ typedef void (*minha_função_type)(char *);
Este é *o* livro sobre C, escrito pelos criadores da linguagem. Mas cuidado - ele é antigo e contém alguns erros (bem, Este é *o* livro sobre C, escrito pelos criadores da linguagem. Mas cuidado - ele é antigo e contém alguns erros (bem,
ideias que não são mais consideradas boas) ou práticas ultrapassadas. ideias que não são mais consideradas boas) ou práticas ultrapassadas.
Outra boa referência é [Learn C the hard way](http://learncodethehardway.org/c/).
Se você tem uma pergunta, leia [compl.lang.c Frequently Asked Questions](http://c-faq.com). Se você tem uma pergunta, leia [compl.lang.c Frequently Asked Questions](http://c-faq.com).
É importante usar espaços e indentação adequadamente e ser consistente com seu estilo de código em geral. É importante usar espaços e indentação adequadamente e ser consistente com seu estilo de código em geral.
Código legível é melhor que código 'esperto' e rápido. Para adotar um estilo de código bom e sensato, veja Código legível é melhor que código 'esperto' e rápido. Para adotar um estilo de código bom e sensato, veja
[Linux kernel coding style](https://www.kernel.org/doc/Documentation/CodingStyle). [Linux kernel coding style](https://www.kernel.org/doc/Documentation/CodingStyle).
[1] http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member [1] [stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member](https://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member)

View File

@ -9,13 +9,12 @@ translators:
lang: pt-br lang: pt-br
--- ---
Clojure é uma linguagem da família do Lisp desenvolvida para a JVM (máquina virtual Java). Possui uma ênfase muito mais forte em [programação funcional] (https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_funcional) pura do que Common Lisp, mas inclui diversos recursos [STM](https://en.wikipedia.org/wiki/Software_transactional_memory) para lidar com estado e mutabilidade, caso isso seja necessário. Clojure é uma linguagem da família do Lisp desenvolvida para a JVM (máquina virtual Java). Possui uma ênfase muito mais forte em [programação funcional](https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_funcional) pura do que Common Lisp, mas inclui diversos recursos [STM](https://en.wikipedia.org/wiki/Software_transactional_memory) para lidar com estado e mutabilidade, caso isso seja necessário.
Essa combinação permite gerenciar processamento concorrente de maneira muito simples - frequentemente, de modo automático. Essa combinação permite gerenciar processamento concorrente de maneira muito simples - frequentemente, de modo automático.
(Sua versão de clojure precisa ser pelo menos 1.2) (Sua versão de clojure precisa ser pelo menos 1.2)
```clojure ```clojure
; Comentários começam por ponto e vírgula ; Comentários começam por ponto e vírgula
@ -239,7 +238,7 @@ xis ; => :x
; É possível, inclusive, criar apelidos a nomes que já existem: ; É possível, inclusive, criar apelidos a nomes que já existem:
(def somar! soma) (def somar! soma)
(somar! 41 1) ; => 42 (somar! 41 1) ; => 42
; Uma forma rápida de criar funções é por meio de funções anônimas. Elas são ótimas ; Uma forma rápida de criar funções é por meio de funções anônimas. Elas são ótimas
; para manipulação de coleções e seqs, já que podem ser passadas para map, filter ; para manipulação de coleções e seqs, já que podem ser passadas para map, filter
@ -280,7 +279,7 @@ mapa-keywords ; => {:a 1, :c 3, :b 2}
(mapa-strings "a") ; => 1 (mapa-strings "a") ; => 1
(mapa-keywords :a) ; => 1 (mapa-keywords :a) ; => 1
; Se a chave buscada for uma keyword, ela também pode ser usada como função para recuperar ; Se a chave buscada for uma keyword, ela também pode ser usada como função para recuperar
; valores. Note que isso não funciona com strings. ; valores. Note que isso não funciona com strings.
(:b mapa-keywords) ; => 2 (:b mapa-keywords) ; => 2
("b" mapa-strings) ; => java.lang.String cannot be cast to clojure.lang.IFn ("b" mapa-strings) ; => java.lang.String cannot be cast to clojure.lang.IFn
@ -357,7 +356,7 @@ meu-conjunto ; => #{1 3 2}
(if false "a" "b") ; => "b" (if false "a" "b") ; => "b"
; Opcionalmente você pode não passar o último argumento, mas se a condição for falsa ; Opcionalmente você pode não passar o último argumento, mas se a condição for falsa
; o if vai retornar nil. ; o if vai retornar nil.
(if false "a") ; => nil (if false "a") ; => nil
; A forma if somente aceita um comando para ser executado em cada caso. Se você ; A forma if somente aceita um comando para ser executado em cada caso. Se você
@ -506,13 +505,13 @@ meu-conjunto ; => #{1 3 2}
; e ele criará um objeto que é seguro de atualizar: ; e ele criará um objeto que é seguro de atualizar:
(def atom-mapa (atom {})) (def atom-mapa (atom {}))
; Para acessar o valor de um atom, você pode usar a função deref ou o operador @: ; Para acessar o valor de um atom, você pode usar a função deref ou o operador @:
@atom-mapa ; => {} @atom-mapa ; => {}
(deref atom-mapa) ; => {} (deref atom-mapa) ; => {}
; Para mudar o valor de um atom, você deve usar a função swap! ; Para mudar o valor de um atom, você deve usar a função swap!
; O que ela faz é chamar a função passada usando o atom como seu primeiro argumento. Com ; O que ela faz é chamar a função passada usando o atom como seu primeiro argumento. Com
; isso, ela altera o valor do atom de maneira segura. ; isso, ela altera o valor do atom de maneira segura.
(swap! atom-mapa assoc :a 1) ; Atribui a atom-mapa o resultado de (assoc {} :a 1) (swap! atom-mapa assoc :a 1) ; Atribui a atom-mapa o resultado de (assoc {} :a 1)
(swap! atom-mapa assoc :b 2) ; Atribui a atom-mapa o resultado de (assoc {:a 1} :b 2) (swap! atom-mapa assoc :b 2) ; Atribui a atom-mapa o resultado de (assoc {:a 1} :b 2)
@ -553,16 +552,12 @@ Caso queira aprender mais:
* clojure.org tem vários artigos: * clojure.org tem vários artigos:
[http://clojure.org/](http://clojure.org/) [http://clojure.org/](http://clojure.org/)
* Brave Clojure possui um e-book que explora em profundidade diversos recursos de clojure, incluindo ótimos exemplos: * Brave Clojure possui um e-book que explora em profundidade diversos recursos de clojure, incluindo ótimos exemplos:
[https://www.braveclojure.com/](https://www.braveclojure.com/) [https://www.braveclojure.com/](https://www.braveclojure.com/)
* clojuredocs.org tem documentação com exemplos para quase todas as funções principais (pertecentes ao core): * clojuredocs.org tem documentação com exemplos para quase todas as funções principais (pertecentes ao core):
[http://clojuredocs.org/quickref/Clojure%20Core](http://clojuredocs.org/quickref/Clojure%20Core) [http://clojuredocs.org/quickref/Clojure%20Core](http://clojuredocs.org/quickref/Clojure%20Core)
* 4clojure possui alguns problemas e desafios interessantes para quem quiser treinar clojure ou programação funcional: * 4clojure possui alguns problemas e desafios interessantes para quem quiser treinar clojure ou programação funcional:
[https://4clojure.oxal.org/](https://4clojure.oxal.org/) [https://4clojure.oxal.org/](https://4clojure.oxal.org/)
* clojure-doc.org tem um bom número de artigos para iniciantes: * clojure-doc.org tem um bom número de artigos para iniciantes:
[http://clojure-doc.org/](http://clojure-doc.org/) [http://clojure-doc.org/](http://clojure-doc.org/)

View File

@ -9,7 +9,7 @@ translators:
lang: pt-br lang: pt-br
--- ---
O Emacs começou sua vida como (https://www.gnu.org/software/emacs/emacs-paper.html) e cresceu O Emacs começou sua vida como [gnu.org/software/emacs/emacs-paper.html](https://www.gnu.org/software/emacs/emacs-paper.html) e cresceu
ao longo dos anos em um ecossistema completo. Muitas tarefas, geralmente ao longo dos anos em um ecossistema completo. Muitas tarefas, geralmente
relegado a um conjunto diversificado de ferramentas pode ser realizado de dentro relegado a um conjunto diversificado de ferramentas pode ser realizado de dentro
Emacs em uma interface consistente e familiar. Exemplos incluem Emacs em uma interface consistente e familiar. Exemplos incluem
@ -32,25 +32,15 @@ Aqui, discuto alguns conceitos e terminologia básicos do Emacs que podem ser
confusos para os recém-chegados (especialmente para as pessoas acostumadas à terminologia do Vim): confusos para os recém-chegados (especialmente para as pessoas acostumadas à terminologia do Vim):
- O texto que o Emacs está editando é conhecido como **buffer** - O texto que o Emacs está editando é conhecido como **buffer**
- Um buffer não corresponde necessariamente a um arquivo real no disco. Pode ser apenas texto na memória. - Um buffer não corresponde necessariamente a um arquivo real no disco. Pode ser apenas texto na memória.
- Quando um buffer corresponde a um arquivo no disco, dizemos que o buffer está **visitando** esse arquivo. - Quando um buffer corresponde a um arquivo no disco, dizemos que o buffer está **visitando** esse arquivo.
- O Emacs normalmente possui muitos buffers abertos ao mesmo tempo. - O Emacs normalmente possui muitos buffers abertos ao mesmo tempo.
- A exibição do Emacs pode ser dividida em diferentes **windows**. - A exibição do Emacs pode ser dividida em diferentes **windows**.
- Uma janela do sistema operacional para o Emacs é chamada de **frame**. Assim, quando o manual do Emacs fala sobre a abertura de um novo frame, esse essencialmente significa abrir uma nova janela do SO contendo uma (outra) instância do Emacs. - Uma janela do sistema operacional para o Emacs é chamada de **frame**. Assim, quando o manual do Emacs fala sobre a abertura de um novo frame, esse essencialmente significa abrir uma nova janela do SO contendo uma (outra) instância do Emacs.
  
- Os conceitos convencionalmente conhecidos como recortar e colar são referido como **killing** e **yanking**, respectivamente no Emacs. - Os conceitos convencionalmente conhecidos como recortar e colar são referido como **killing** e **yanking**, respectivamente no Emacs.
  
- A posição atual do cursor é chamada de **point** no Emacs. Tecnicamente, **point** é definido como a posição imediatamente antes do caractere onde o cursor está atualmente. - A posição atual do cursor é chamada de **point** no Emacs. Tecnicamente, **point** é definido como a posição imediatamente antes do caractere onde o cursor está atualmente.
  
- Finalmente, cada buffer pode ter vários **modes** associados: o **major mode** e possivelmente vários **minor modes**. - Finalmente, cada buffer pode ter vários **modes** associados: o **major mode** e possivelmente vários **minor modes**.
  
- O **major mode** define o principal comportamento do Emacs no buffer atualmente selecionado. Isso pode ser pensado como o tipo de arquivo. Por exemplo, se você estiver editando um arquivo Python, os principais modes é (por padrão) `python-mode`, que faz com que o Emacs destaque a sintaxe Python e idente automaticamente seus blocos de código conforme exigido sintaticamente pelo seu código Python. - O **major mode** define o principal comportamento do Emacs no buffer atualmente selecionado. Isso pode ser pensado como o tipo de arquivo. Por exemplo, se você estiver editando um arquivo Python, os principais modes é (por padrão) `python-mode`, que faz com que o Emacs destaque a sintaxe Python e idente automaticamente seus blocos de código conforme exigido sintaticamente pelo seu código Python.
  
- **Minor modes** definem mudanças sutis no comportamento e várias alterações menores Os modos podem estar ativos ao mesmo tempo no mesmo buffer. Um exemplo menor modo é o modo flyspell, que destaca automaticamente os erros de ortografia no seu buffer. - **Minor modes** definem mudanças sutis no comportamento e várias alterações menores Os modos podem estar ativos ao mesmo tempo no mesmo buffer. Um exemplo menor modo é o modo flyspell, que destaca automaticamente os erros de ortografia no seu buffer.
# Recursos adicionais # Recursos adicionais

View File

@ -11,11 +11,11 @@ translators:
- ["Nuno Antunes", "https://github.com/ntns"] - ["Nuno Antunes", "https://github.com/ntns"]
--- ---
A linguagem Go foi criada a partir da necessidade de ver trabalho feito. Não A linguagem Go foi criada a partir da necessidade de ver trabalho feito. Não
é a última moda em ciências da computação, mas é a mais recente e mais rápida é a última moda em ciências da computação, mas é a mais recente e mais rápida
forma de resolver os problemas do mundo real. forma de resolver os problemas do mundo real.
Tem conceitos familiares de linguagens imperativas com tipagem estática. É Tem conceitos familiares de linguagens imperativas com tipagem estática. É
rápida para compilar e rápida para executar, acrescentando mecanismos de concorrência rápida para compilar e rápida para executar, acrescentando mecanismos de concorrência
fáceis de entender para tirar partido dos CPUs multi-core de hoje em dia, e tem fáceis de entender para tirar partido dos CPUs multi-core de hoje em dia, e tem
recursos para ajudar com a programação em larga escala. recursos para ajudar com a programação em larga escala.
@ -57,7 +57,7 @@ func beyondHello() {
// Declarações "curtas" usam := para inferir o tipo, declarar e atribuir. // Declarações "curtas" usam := para inferir o tipo, declarar e atribuir.
y := 4 y := 4
sum, prod := learnMultiple(x, y) // a função retorna dois valores sum, prod := learnMultiple(x, y) // a função retorna dois valores
fmt.Println("soma:", sum, "produto:", prod) fmt.Println("soma:", sum, "produto:", prod)
learnTypes() // continuar a aprender! learnTypes() // continuar a aprender!
} }
@ -69,9 +69,9 @@ func learnMultiple(x, y int) (sum, prod int) {
// Alguns tipos e literais básicos. // Alguns tipos e literais básicos.
func learnTypes() { func learnTypes() {
// Declarações "curtas" geralmente servem para o que pretendemos. // Declarações "curtas" geralmente servem para o que pretendemos.
s := "Aprender Go!" // tipo string s := "Aprender Go!" // tipo string
s2 := `Uma string em "bruto" s2 := `Uma string em "bruto"
pode incluir quebras de linha.` // mesmo tipo string pode incluir quebras de linha.` // mesmo tipo string
// literal não-ASCII. A linguagem Go utiliza de raiz a codificação UTF-8. // literal não-ASCII. A linguagem Go utiliza de raiz a codificação UTF-8.
@ -87,7 +87,7 @@ pode incluir quebras de linha.` // mesmo tipo string
// Sintaxe de conversão de tipo, com declaração "curta". // Sintaxe de conversão de tipo, com declaração "curta".
n := byte('\n') // byte é um alias para uint8 n := byte('\n') // byte é um alias para uint8
// Os arrays têm tamanho fixo e definido antes da compilação. // Os arrays têm tamanho fixo e definido antes da compilação.
var a4 [4]int // um array de 4 ints, inicializado com ZEROS var a4 [4]int // um array de 4 ints, inicializado com ZEROS
a3 := [...]int{3, 1, 5} // um array de 3 ints, inicializado como mostrado a3 := [...]int{3, 1, 5} // um array de 3 ints, inicializado como mostrado
@ -112,10 +112,10 @@ pode incluir quebras de linha.` // mesmo tipo string
// Enviar para o stdout conta como utilização de uma variável. // Enviar para o stdout conta como utilização de uma variável.
fmt.Println(s, c, a4, s3, d2, m) fmt.Println(s, c, a4, s3, d2, m)
learnFlowControl() learnFlowControl()
} }
// A linguagem Go é totalmente garbage collected. Tem apontadores mas não // A linguagem Go é totalmente garbage collected. Tem apontadores mas não
// permite que os apontadores sejam manipulados com aritmética. Pode-se cometer // permite que os apontadores sejam manipulados com aritmética. Pode-se cometer
// um erro com um apontador nulo, mas não por incrementar um apontador. // um erro com um apontador nulo, mas não por incrementar um apontador.
func learnMemory() (p, q *int) { func learnMemory() (p, q *int) {
@ -174,7 +174,7 @@ func learnFlowControl() {
return x > 100 // referencia x, declarado acima da instrução switch. return x > 100 // referencia x, declarado acima da instrução switch.
} }
fmt.Println("xBig:", xBig()) // true (1e6 é o último valor de x) fmt.Println("xBig:", xBig()) // true (1e6 é o último valor de x)
x /= 1e5 // agora temos x == 10 x /= 1e5 // agora temos x == 10
fmt.Println("xBig:", xBig()) // false fmt.Println("xBig:", xBig()) // false
// Quando for mesmo necessário, pode usar o velho goto. // Quando for mesmo necessário, pode usar o velho goto.
@ -194,7 +194,7 @@ type pair struct {
x, y int x, y int
} }
// Define um método para o tipo pair. O tipo pair implementa agora a // Define um método para o tipo pair. O tipo pair implementa agora a
// interface Stringer. // interface Stringer.
func (p pair) String() string { // p é chamado de "receptor" func (p pair) String() string { // p é chamado de "receptor"
// Sprintf é outra função pública no pacote fmt. // Sprintf é outra função pública no pacote fmt.
@ -262,7 +262,7 @@ func learnConcurrency() {
go func() { c <- 84 }() // inicia uma goroutine para enviar um valor go func() { c <- 84 }() // inicia uma goroutine para enviar um valor
go func() { cs <- "palavroso" }() // outra vez, para o channel cs desta vez go func() { cs <- "palavroso" }() // outra vez, para o channel cs desta vez
// A instrução select tem uma sintaxe semelhante à instrução switch mas // A instrução select tem uma sintaxe semelhante à instrução switch mas
// cada caso envolve uma operação com channels. Esta instrução seleciona, // cada caso envolve uma operação com channels. Esta instrução seleciona,
// de forma aleatória, um caso que esteja pronto para comunicar. // de forma aleatória, um caso que esteja pronto para comunicar.
select { select {
case i := <-c: // o valor recebido pode ser atribuído a uma variável case i := <-c: // o valor recebido pode ser atribuído a uma variável
@ -301,11 +301,11 @@ Lá é possível seguir o tutorial, experimentar de forma iterativa, e ler muito
A própria especificação da linguagem é altamente recomendada. É fácil de ler e A própria especificação da linguagem é altamente recomendada. É fácil de ler e
incrivelmente curta (em relação ao que é habitual hoje em dia). incrivelmente curta (em relação ao que é habitual hoje em dia).
Na lista de leitura para os aprendizes de Go deve constar o [código fonte da Na lista de leitura para os aprendizes de Go deve constar o [código fonte da
biblioteca padrão](https://go.dev/src/). Exaustivamente documentado, é biblioteca padrão](https://go.dev/src/). Exaustivamente documentado, é
a melhor demonstração de código fácil de ler e de perceber, do estilo Go, e da a melhor demonstração de código fácil de ler e de perceber, do estilo Go, e da
sua escrita idiomática. Ou então clique no nome de uma função na [documentação] sua escrita idiomática. Ou então clique no nome de uma função na
(https://go.dev/pkg/) e veja o código fonte aparecer! [documentação](https://go.dev/pkg/) e veja o código fonte aparecer!
Outra ótima fonte para aprender Go é o [Go by example](https://gobyexample.com/). Outra ótima fonte para aprender Go é o [Go by example](https://gobyexample.com/).
Apesar de ser em inglês, é possível recodificar os exemplos para aprender sobre Apesar de ser em inglês, é possível recodificar os exemplos para aprender sobre

View File

@ -10,7 +10,7 @@ translators:
lang: pt-br lang: pt-br
--- ---
Groovy - Uma linguagem dinâmica para a plataforma Java. [Leia mais aqui.](http://www.groovy-lang.org/) Groovy - Uma linguagem dinâmica para a plataforma Java. [Leia mais aqui](http://www.groovy-lang.org/).
```groovy ```groovy
/* /*
@ -289,7 +289,7 @@ def clos = { print it }
clos( "oi" ) clos( "oi" )
/* /*
Groovy pode memorizar resultados de closures [1][2][3] Groovy pode memorizar resultados de closures
*/ */
def cl = {a, b -> def cl = {a, b ->
sleep(3000) // simula processamento sleep(3000) // simula processamento
@ -317,7 +317,7 @@ chamaClosure(3, 4)
/* /*
Expando Expando
A classe Expando é um bean dinâmico que permite adicionar propriedades e A classe Expando é um bean dinâmico que permite adicionar propriedades e
closures como métodos a uma instância desta classe closures como métodos a uma instância desta classe
http://mrhaki.blogspot.mx/2009/10/groovy-goodness-expando-as-dynamic-bean.html http://mrhaki.blogspot.mx/2009/10/groovy-goodness-expando-as-dynamic-bean.html
@ -429,15 +429,6 @@ Junte-se a um [grupo de usuários Groovy](http://www.groovy-lang.org/usergroups.
## Livro ## Livro
* [Groovy Goodness] (https://leanpub.com/groovy-goodness-notebook) * [Groovy Goodness](https://leanpub.com/groovy-goodness-notebook)
* [Groovy in Action](http://manning.com/koenig2/)
* [Groovy in Action] (http://manning.com/koenig2/) * [Programming Groovy 2: Dynamic Productivity for the Java Developer](http://shop.oreilly.com/product/9781937785307.do)
* [Programming Groovy 2: Dynamic Productivity for the Java Developer] (http://shop.oreilly.com/product/9781937785307.do)
[1] http://roshandawrani.wordpress.com/2010/10/18/groovy-new-feature-closures-can-now-memorize-their-results/
[2] http://www.solutionsiq.com/resources/agileiq-blog/bid/72880/Programming-with-Groovy-Trampoline-and-Memoize
[3] http://mrhaki.blogspot.mx/2011/05/groovy-goodness-cache-closure-results.html

View File

@ -29,8 +29,8 @@ http --offline https://api.example.com/posts
### Encurtando URLs `localhost` ### Encurtando URLs `localhost`
HTTPie fornece suporte a atalhos para o localhost, similares aos do `curl`. Por exemplo, ":3000" HTTPie fornece suporte a atalhos para o localhost, similares aos do `curl`. Por exemplo, `:3000`
expande para "http://localhost:3000". Se a porta for omitida, o padrão será a porta 80. expande para `http://localhost:3000`. Se a porta for omitida, o padrão será a porta 80.
```bash ```bash
http :/users # http://localhost/users http :/users # http://localhost/users
@ -118,5 +118,5 @@ http --follow GET https://example.com # Segue redirecionamentos
## Leitura Adicional ## Leitura Adicional
- [Documentação Oficial](https://httpie.io/docs/cli). - [Documentação Oficial](https://httpie.io/docs/cli)
- [GitHub](https://github.com/httpie). - [GitHub](https://github.com/httpie)

View File

@ -630,28 +630,21 @@ Os links fornecidos aqui abaixo são apenas para ter uma compreensão do tema, u
Outros tópicos para pesquisar: Outros tópicos para pesquisar:
* [Tutorial Java para Sun Trail / Oracle](http://docs.oracle.com/javase/tutorial/index.html) * [Tutorial Java para Sun Trail / Oracle](http://docs.oracle.com/javase/tutorial/index.html)
* [Modificadores de acesso do Java](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html) * [Modificadores de acesso do Java](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
* [Coceitos de Programação Orientada à Objetos](http://docs.oracle.com/javase/tutorial/java/concepts/index.html): * [Coceitos de Programação Orientada à Objetos](http://docs.oracle.com/javase/tutorial/java/concepts/index.html):
* [Herança](http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html) * [Herança](http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
* [Polimorfismo](http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html) * [Polimorfismo](http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
* [Abstração](http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html) * [Abstração](http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
* [Exceções](http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html) * [Exceções](http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
* [Interfaces](http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html) * [Interfaces](http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)
* [Tipos Genéricos](http://docs.oracle.com/javase/tutorial/java/generics/index.html) * [Tipos Genéricos](http://docs.oracle.com/javase/tutorial/java/generics/index.html)
* [Conversões de código Java](http://www.oracle.com/technetwork/java/codeconv-138413.html) * [Conversões de código Java](http://www.oracle.com/technetwork/java/codeconv-138413.html)
Livros: Livros:
* [Use a cabeça, Java] (http://www.headfirstlabs.com/books/hfjava/) * [Use a cabeça, Java](http://www.headfirstlabs.com/books/hfjava/)
Apostila: Apostila:
* [Java e Orientação a Objetos] (http://www.caelum.com.br/apostila-java-orientacao-objetos/) * [Java e Orientação a Objetos](http://www.caelum.com.br/apostila-java-orientacao-objetos/)
* [Java para Desenvolvimento Web](https://www.caelum.com.br/apostila-java-web/)
* [Java para Desenvolvimento Web] (https://www.caelum.com.br/apostila-java-web/)

View File

@ -13,7 +13,7 @@ filename: learnjson-pt.json
Como JSON é um formato de intercâmbio de dados, este será, muito provavelmente, o Como JSON é um formato de intercâmbio de dados, este será, muito provavelmente, o
"Learn X in Y minutes" mais simples existente. "Learn X in Y minutes" mais simples existente.
JSON na sua forma mais pura não tem comentários, mas a maioria dos analisadores JSON na sua forma mais pura não tem comentários, mas a maioria dos analisadores
aceitarão comentários no estilo C (//, /\* \*/). No entanto estes devem ser evitados para otimizar a compatibilidade. aceitarão comentários no estilo C (//, /\* \*/). No entanto estes devem ser evitados para otimizar a compatibilidade.
Um valor JSON pode ser um número, uma string, um array, um objeto, um booleano (true, false) ou null. Um valor JSON pode ser um número, uma string, um array, um objeto, um booleano (true, false) ou null.
@ -22,12 +22,12 @@ Os browsers suportados são: Firefox 3.5+, Internet Explorer 8.0+, Chrome 1.0+,
A extensão dos ficheiros JSON é “.json” e o tipo de mídia de Internet (MIME) é “application/json”. A extensão dos ficheiros JSON é “.json” e o tipo de mídia de Internet (MIME) é “application/json”.
Mais informação em: http://www.json.org/ Mais informação em: [json.org](http://www.json.org/)
```json ```json
{ {
"chave": "valor", "chave": "valor",
"chaves": "deve ser sempre entre aspas (junto ou separado)", "chaves": "deve ser sempre entre aspas (junto ou separado)",
"números": 0, "números": 0,
"strings": "Olá, mundo. Todo o padrão UNICODE é permitido, junto com \"escapando\".", "strings": "Olá, mundo. Todo o padrão UNICODE é permitido, junto com \"escapando\".",

View File

@ -153,7 +153,7 @@ logger("Nós temos uma subrotina de log!");
#### Usando módulos Perl #### Usando módulos Perl
Módulos Perl provê uma lista de recursos para lhe ajudar a evitar redesenhar Módulos Perl provê uma lista de recursos para lhe ajudar a evitar redesenhar
a roda, e tudo isso pode ser baixado do CPAN (http://www.cpan.org/). Um número a roda, e tudo isso pode ser baixado do [CPAN](http://www.cpan.org/). Um número
de módulos populares podem ser incluídos com a própria distribuição do Perl. de módulos populares podem ser incluídos com a própria distribuição do Perl.
perlfaq contém questões e respostas relacionadas a muitas tarefas comuns, e frequentemente provê sugestões para um bom números de módulos CPAN. perlfaq contém questões e respostas relacionadas a muitas tarefas comuns, e frequentemente provê sugestões para um bom números de módulos CPAN.

View File

@ -24,8 +24,7 @@ php composer.phar about
curl -sS https://getcomposer.org/installer | php -- --install-dir=~/bin --filename=composer curl -sS https://getcomposer.org/installer | php -- --install-dir=~/bin --filename=composer
``` ```
Usuários Windows devem seguir as Instruções de instalação para Windows: Usuários Windows devem seguir as [Instruções de instalação para Windows](https://getcomposer.org/doc/00-intro.md#installation-windows) (EN)
https://getcomposer.org/doc/00-intro.md#installation-windows (EN)
## Confirmando a instalação ## Confirmando a instalação

View File

@ -16,10 +16,10 @@ Stata, SAS, SPSS ou MATLAB.
```python ```python
# 0. Preparando-se ==== # 0. Preparando-se ====
""" Para começar, instale o seguinte : jupyther, numpy, scipy, pandas, """ Para começar, instale o seguinte : jupyther, numpy, scipy, pandas,
matplotlib, seaborn, requests. matplotlib, seaborn, requests.
Certifique-se de executar este tutorial utilizando o Jupyther notebook para Certifique-se de executar este tutorial utilizando o Jupyther notebook para
que você utilize os gráficos embarcados e ter uma fácil consulta à que você utilize os gráficos embarcados e ter uma fácil consulta à
documentação. documentação.
O comando para abrir é simplesmente '`jupyter notebook`, quando abrir então O comando para abrir é simplesmente '`jupyter notebook`, quando abrir então
clique em 'New -> Python'. clique em 'New -> Python'.
@ -29,7 +29,7 @@ Stata, SAS, SPSS ou MATLAB.
""" A única razão das pessoas optarem por Python no lugar de R é que pretendem """ A única razão das pessoas optarem por Python no lugar de R é que pretendem
interagir com o ambiente web, copiando páginas diretamente ou solicitando interagir com o ambiente web, copiando páginas diretamente ou solicitando
dados utilizando uma API. Você pode fazer estas coisas em R, mas no dados utilizando uma API. Você pode fazer estas coisas em R, mas no
contexto de um projeto já usando Python, há uma vantagem em se ater uma contexto de um projeto já usando Python, há uma vantagem em se ater uma
linguágem única. linguágem única.
""" """
@ -75,7 +75,7 @@ pets
# 1 vesuvius 6 23 fish # 1 vesuvius 6 23 fish
# 2 rex 5 34 dog # 2 rex 5 34 dog
""" Usuários R: observe que o Python, como a maioria das linguagens de programação """ Usuários R: observe que o Python, como a maioria das linguagens de programação
influenciada pelo C, a indexação começa de 0. Em R, começa a indexar em 1 influenciada pelo C, a indexação começa de 0. Em R, começa a indexar em 1
devido à influência do Fortran. devido à influência do Fortran.
""" """
@ -99,7 +99,7 @@ pets.age[0:2]
sum(pets.age) * 2 # 28 sum(pets.age) * 2 # 28
max(pets.weight) - min(pets.weight) # 20 max(pets.weight) - min(pets.weight) # 20
""" Se você está fazendo alguma álgebra linear séria e processamento de """ Se você está fazendo alguma álgebra linear séria e processamento de
números você pode desejar apenas arrays, não DataFrames. DataFrames são números você pode desejar apenas arrays, não DataFrames. DataFrames são
ideais para combinar colunas de diferentes tipos de dados. ideais para combinar colunas de diferentes tipos de dados.
""" """
@ -238,8 +238,9 @@ sns.lmplot("BirthY", "EstAge", data=hre)
Se você quiser saber mais, obtenha o Python para análise de dados de Wes McKinney. É um excelente recurso e usei-o como referência ao escrever este tutorial. Se você quiser saber mais, obtenha o Python para análise de dados de Wes McKinney. É um excelente recurso e usei-o como referência ao escrever este tutorial.
Você também pode encontrar muitos tutoriais interativos de IPython sobre assuntos específicos de seus interesses, como Cam Davidson-Pilon's <a href="http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/" Title="Programação Probabilística e Métodos Bayesianos para Hackers">Programação Probabilística e Métodos Bayesianos para Hackers</a>. Você também pode encontrar muitos tutoriais interativos de IPython sobre assuntos específicos de seus interesses, como Cam Davidson-Pilon's [Programação Probabilística e Métodos Bayesianos para Hackers](http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/).
Mais alguns módulos para pesquisar: Mais alguns módulos para pesquisar:
- análise de texto e processamento de linguagem natural: nltk, http://www.nltk.org
- análise de rede social: igraph, http://igraph.org/python/ - análise de texto e processamento de linguagem natural: [nltk](http://www.nltk.org)
- análise de rede social: [igraph](http://igraph.org/python/)

View File

@ -12,7 +12,7 @@ combina controle de baixo nível sobre o desempenho com facilidades de alto
nível e garantias de segurança. nível e garantias de segurança.
Ele atinge esse objetivo sem necessitar de um coletor de lixo ou um processo Ele atinge esse objetivo sem necessitar de um coletor de lixo ou um processo
*runtime*, permitindo que se use bibliotecas Rust em substituição a bibliotecas *runtime*, permitindo que se use bibliotecas Rust em substituição a bibliotecas
em C. em C.
A primeira versão de Rust, 0.1, apareceu em janeiro de 2012, e por três anos o A primeira versão de Rust, 0.1, apareceu em janeiro de 2012, e por três anos o
@ -65,10 +65,10 @@ fn main() {
let f: f64 = 1.3f64; let f: f64 = 1.3f64;
// Inferência de tipos // Inferência de tipos
// Em geral, o compilador Rust consegue inferir qual o tipo de uma // Em geral, o compilador Rust consegue inferir qual o tipo de uma
// variável, então você não tem que escrever uma anotação explícita de tipo. // variável, então você não tem que escrever uma anotação explícita de tipo.
// Ao longo desse tutorial, os tipos serão explicitamente anotados em // Ao longo desse tutorial, os tipos serão explicitamente anotados em
// muitos lugares, mas apenas com propósito demonstrativo. A inferência de // muitos lugares, mas apenas com propósito demonstrativo. A inferência de
// tipos pode gerenciar isso na maioria das vezes. // tipos pode gerenciar isso na maioria das vezes.
let implicit_x = 1; let implicit_x = 1;
let implicit_f = 1.3; let implicit_f = 1.3;
@ -94,7 +94,7 @@ fn main() {
// Uma String slice - uma visão imutável em outra string. // Uma String slice - uma visão imutável em outra string.
// Basicamente, isso é um par imutável de ponteiros para uma string - ele // Basicamente, isso é um par imutável de ponteiros para uma string - ele
// não contém o conteúdo de uma strinf, apenas um ponteiro para o começo e // não contém o conteúdo de uma strinf, apenas um ponteiro para o começo e
// um ponteiro para o fim da área de memória para a string, estaticamente // um ponteiro para o fim da área de memória para a string, estaticamente
// alocada ou contida em outro objeto (nesse caso, `s`) // alocada ou contida em outro objeto (nesse caso, `s`)
let s_slice: &str = &s; let s_slice: &str = &s;
@ -279,7 +279,7 @@ fn main() {
// automaticamente desalocado com segurança. // automaticamente desalocado com segurança.
let mut mine: Box<i32> = Box::new(3); let mut mine: Box<i32> = Box::new(3);
*mine = 5; // dereference *mine = 5; // dereference
// Aqui, `now_its_mine` possui o controle exclusivo de `mine`. Em outras // Aqui, `now_its_mine` possui o controle exclusivo de `mine`. Em outras
// palavras, `mine` tem o controle transferido. // palavras, `mine` tem o controle transferido.
let mut now_its_mine = mine; let mut now_its_mine = mine;
*now_its_mine += 2; *now_its_mine += 2;
@ -317,15 +317,15 @@ fn main() {
## Outras leituras ## Outras leituras
Existe muita coisa sobre Rust - isto aqui é apenas o básico para que você possa Existe muita coisa sobre Rust - isto aqui é apenas o básico para que você possa
entender as coisas mais importantes. Para aprender mais sobre Rust, leia [The entender as coisas mais importantes. Para aprender mais sobre Rust, leia [The
Rust Programming Language](http://doc.rust-lang.org/book/index.html) e Rust Programming Language](http://doc.rust-lang.org/book/index.html) e
acompanhe [/r/rust](http://reddit.com/r/rust). A galera no canal #rust do acompanhe [/r/rust](http://reddit.com/r/rust). A galera no canal #rust do
irc.mozilla.org também estão sempre dispostos a ajudar os novatos. irc.mozilla.org também estão sempre dispostos a ajudar os novatos.
Você pode brincar com outras característica de Rust com um compilador online Você pode brincar com outras característica de Rust com um compilador online
no portal oficial do projeto [Rust Playground](https://play.rust-lang.org), or ler no portal oficial do projeto [Rust Playground](https://play.rust-lang.org), or ler
mais na página oficial [Rust website](http://rust-lang.org). mais na página oficial [Rust website](http://rust-lang.org).
No Brasil acompanhe os encontros do [Meetup Rust São Paulo] No Brasil acompanhe os encontros do
(http://www.meetup.com/pt-BR/Rust-Sao-Paulo-Meetup/). [Meetup Rust São Paulo](http://www.meetup.com/pt-BR/Rust-Sao-Paulo-Meetup/).

View File

@ -9,8 +9,8 @@ translators:
lang: pt-br lang: pt-br
--- ---
Solidity permite você programar para a [Ethereum] Solidity permite você programar para a [Ethereum](https://www.ethereum.org/),
(https://www.ethereum.org/), uma máquina virtual baseada na tecnologia blockhain uma máquina virtual baseada na tecnologia blockhain
para criação e execução de contratos inteligentes, sem necessidade de partes para criação e execução de contratos inteligentes, sem necessidade de partes
centralizadas ou de confiança. centralizadas ou de confiança.
@ -20,7 +20,6 @@ possue variáveis de estado, funções e tipos de dados comuns. Funcionalidades
particulares de contratados incluem cláusuras modificadoras (guarda), notifica particulares de contratados incluem cláusuras modificadoras (guarda), notifica
dores de eventos para listerners e variáveis globais customizadas. dores de eventos para listerners e variáveis globais customizadas.
Exemplos de contratos Ethereum incluem crowdfunding, votações e audições cegas. Exemplos de contratos Ethereum incluem crowdfunding, votações e audições cegas.
Erros em código Solidity causam grandes riscos e custos; portanto, você Erros em código Solidity causam grandes riscos e custos; portanto, você
@ -875,6 +874,7 @@ algumEnderecoDeContrato.callcode('nome_da_funcao');
``` ```
## Recursos adicionais ## Recursos adicionais
- [Documetanção Solidity](https://solidity.readthedocs.org/en/latest/) - [Documetanção Solidity](https://solidity.readthedocs.org/en/latest/)
- [Guia de Estilo do Solidity](https://ethereum.github.io/solidity//docs/style-guide/): - [Guia de Estilo do Solidity](https://ethereum.github.io/solidity//docs/style-guide/):
O guia de estilo Ethereum é derivado do guia de estilo do Python [pep8](https://www.python.org/dev/peps/pep-0008/). O guia de estilo Ethereum é derivado do guia de estilo do Python [pep8](https://www.python.org/dev/peps/pep-0008/).
@ -883,32 +883,24 @@ algumEnderecoDeContrato.callcode('nome_da_funcao');
- [Estratégias de projeto modular para contratos Ethereum](https://docs.erisindustries.com/tutorials/solidity/) - [Estratégias de projeto modular para contratos Ethereum](https://docs.erisindustries.com/tutorials/solidity/)
## Contratos de Exemplo ## Contratos de Exemplo
- [Dapp Bin](https://github.com/ethereum/dapp-bin) - [Dapp Bin](https://github.com/ethereum/dapp-bin)
- [Solidity Baby Step Contracts](https://github.com/fivedogit/solidity-baby-steps/tree/master/contracts) - [Solidity Baby Step Contracts](https://github.com/fivedogit/solidity-baby-steps/tree/master/contracts)
- [ConsenSys Contracts](https://github.com/ConsenSys/dapp-store-contracts) - [ConsenSys Contracts](https://github.com/ConsenSys/dapp-store-contracts)
- [State of Dapps](http://dapps.ethercasts.com/) - [State of Dapps](http://dapps.ethercasts.com/)
## Segurança ## Segurança
- [Thinking About Smart Contract Security](https://blog.ethereum.org/2016/06/19/thinking-smart-contract-security/) - [Thinking About Smart Contract Security](https://blog.ethereum.org/2016/06/19/thinking-smart-contract-security/)
- [Smart Contract Security](https://blog.ethereum.org/2016/06/10/smart-contract-security/) - [Smart Contract Security](https://blog.ethereum.org/2016/06/10/smart-contract-security/)
- [Hacking Distributed Blog](http://hackingdistributed.com/) - [Hacking Distributed Blog](http://hackingdistributed.com/)
## Informação excluída intencionalmente
- Libraries
## Estilo ## Estilo
- [PEP8](https://www.python.org/dev/peps/pep-0008/) é usado como guia de estilo, - [PEP8](https://www.python.org/dev/peps/pep-0008/) é usado como guia de estilo,
incluindo sua filosofia geral incluindo sua filosofia geral
## Editores ## Editores
- [Vim Solidity](https://github.com/tomlion/vim-solidity) - [Vim Solidity](https://github.com/tomlion/vim-solidity)
- Snippets de Editores ([Ultisnips format](https://gist.github.com/nemild/98343ce6b16b747788bc)) - Snippets de Editores ([Ultisnips format](https://gist.github.com/nemild/98343ce6b16b747788bc))
## Trabalhos Futuros
- Novas palavras-chave: protected, inheritable
- Lista de padrões de design comuns (throttling, RNG, atualização de versão)
- Padrões anti-segurança comuns
Sinta-se a vontade para enviar um pull request com quaisquer edições - ou email
para nemild - / at- / gmail

View File

@ -14,7 +14,6 @@ A sintaxe do Stylus é muito flexivel podendo utilizar a sintaxe padrão do CSS
Stylus não fornece novas opções de estilos, mas dá funcionalidades que permitem deixar seu CSS muito mais dinâmico. Stylus não fornece novas opções de estilos, mas dá funcionalidades que permitem deixar seu CSS muito mais dinâmico.
```sass ```sass
/* Estilo de código /* Estilo de código
==============================*/ ==============================*/
@ -80,9 +79,9 @@ a {
==============================*/ ==============================*/
/* /*
É possível armazenar um valor CSS (tais como a cor) de uma variável. É possível armazenar um valor CSS (tais como a cor) de uma variável.
Embora seja opcional, é recomendado adicionar $ antes de um nome de variável Embora seja opcional, é recomendado adicionar $ antes de um nome de variável
para que você possa distinguir uma variável de outro valor CSS. para que você possa distinguir uma variável de outro valor CSS.
*/ */
@ -94,20 +93,20 @@ $body-font = 'Roboto', sans-serif
Agora, se você quer mudar a cor, você só tem que fazer a mudança uma vez. */ Agora, se você quer mudar a cor, você só tem que fazer a mudança uma vez. */
body body
background-color $primary-color background-color $primary-color
color $secondary-color color $secondary-color
font-family $body-font font-family $body-font
/* Quando compilar ficaria assim: */ /* Quando compilar ficaria assim: */
body { body {
background-color: #A3A4FF; background-color: #A3A4FF;
color: #51527F; color: #51527F;
font-family: 'Roboto', sans-serif; font-family: 'Roboto', sans-serif;
} }
/ * / *
Este é muito mais fácil de manter do que ter de mudar a cor Este é muito mais fácil de manter do que ter de mudar a cor
cada vez que aparece em toda a sua folha de estilo. cada vez que aparece em toda a sua folha de estilo.
* / * /
@ -120,10 +119,10 @@ elemento, você pode querer armazenar esse código em um mixin.
center() center()
display block display block
margin-left auto margin-left auto
margin-right auto margin-right auto
left 0 left 0
right 0 right 0
/* Utilizando um mixin */ /* Utilizando um mixin */
body { body {
@ -133,12 +132,12 @@ body {
/* Após compilar ficaria assim: */ /* Após compilar ficaria assim: */
div { div {
display: block; display: block;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
left: 0; left: 0;
right: 0; right: 0;
background-color: #A3A4FF; background-color: #A3A4FF;
} }
/* Você pode usar mixins para criar uma propriedade estenográfica. */ /* Você pode usar mixins para criar uma propriedade estenográfica. */
@ -151,7 +150,7 @@ size($width, $height)
size(100px, 60px) size(100px, 60px)
.square .square
size(40px, 40px) size(40px, 40px)
/* Você pode usar um mixin como uma propriedade CSS. */ /* Você pode usar um mixin como uma propriedade CSS. */
circle($ratio) circle($ratio)
@ -223,4 +222,4 @@ for $item in (1..2) /* Repete o bloco 12 vezes */
width ($item / 12) * 100% /* Calcula a largura pelo número da coluna* width ($item / 12) * 100% /* Calcula a largura pelo número da coluna*
``` ```
Agora que você conhece um pouco sobre esse poderoso pré-processador de CSS, você está pronto para criar folhas de estilos mais dinâmicas. Para aprofundar seus conhecimentos visite a documentação oficial do stylus em http://stylus-lang.com. Agora que você conhece um pouco sobre esse poderoso pré-processador de CSS, você está pronto para criar folhas de estilos mais dinâmicas. Para aprofundar seus conhecimentos visite a documentação oficial do stylus em [stylus-lang.com](http://stylus-lang.com).

View File

@ -14,7 +14,7 @@ Swift é uma linguagem de programação para desenvolvimento de aplicações no
coexistir com Objective-C e para ser mais resiliente a código com erros, Swift foi apresentada em 2014 na Apple's coexistir com Objective-C e para ser mais resiliente a código com erros, Swift foi apresentada em 2014 na Apple's
developer conference WWDC. Foi construída com o compilador LLVM já incluído no Xcode 6 beta. developer conference WWDC. Foi construída com o compilador LLVM já incluído no Xcode 6 beta.
O livro oficial [Swift Programming Language] (https://itunes.apple.com/us/book/swift-programming-language/id881256329) da O livro oficial [Swift Programming Language](https://itunes.apple.com/us/book/swift-programming-language/id881256329) da
Apple já está disponível via IBooks (apenas em inglês). Apple já está disponível via IBooks (apenas em inglês).
Confira também o tutorial completo de Swift da Apple [getting started guide](https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/RoadMapiOS/index.html), também disponível apenas em inglês. Confira também o tutorial completo de Swift da Apple [getting started guide](https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/RoadMapiOS/index.html), também disponível apenas em inglês.

View File

@ -14,10 +14,10 @@ Module Module1
module Module1 module Module1
Sub Main () Sub Main ()
' Uma visão geral de console de aplicativos do Visual Basic antes de ' Uma visão geral de console de aplicativos do Visual Basic antes de
' mergulharmos mais profundamente na linguagem. ' mergulharmos mais profundamente na linguagem.
' Aspas simples começam comentários. ' Aspas simples começam comentários.
' Para navegar neste tutorial dentro do compilador do Visual Basic, ' Para navegar neste tutorial dentro do compilador do Visual Basic,
' eu criei um sistema de navegação. ' eu criei um sistema de navegação.
' Este sistema de navegação vai ser explicado conforme avançarmos no ' Este sistema de navegação vai ser explicado conforme avançarmos no
' tutorial, e você vai entender o que isso significa. ' tutorial, e você vai entender o que isso significa.
@ -275,10 +275,10 @@ module Module1
End Module End Module
``` ```
##Referências ## Referências
Aprendi Visual Basic no aplicativo de console. Isso me permitiu entender os princípios da programação de computador para continuar a aprender outras linguagens de programação facilmente. Aprendi Visual Basic no aplicativo de console. Isso me permitiu entender os princípios da programação de computador para continuar a aprender outras linguagens de programação facilmente.
Eu criei um tutorial mais aprofundado do <a href="http://www.vbbootcamp.co.uk/" Title="Visual Basic Tutorial">Visual Basic</a> para aqueles que gostariam de saber mais. Eu criei um tutorial mais aprofundado do [Visual Basic](http://www.vbbootcamp.co.uk/) para aqueles que gostariam de saber mais.
Toda a sintaxe deste tutorial é válida. Copie e cole o código no compilador do Visual Basic e execute (com o F5) o programa. Toda a sintaxe deste tutorial é válida. Copie e cole o código no compilador do Visual Basic e execute (com o F5) o programa.

View File

@ -13,7 +13,7 @@ This is a tutorial on how to do some typical statistical programming tasks using
""" To get started, pip install the following: jupyter, numpy, scipy, pandas, """ To get started, pip install the following: jupyter, numpy, scipy, pandas,
matplotlib, seaborn, requests. matplotlib, seaborn, requests.
Make sure to do this tutorial in a Jupyter notebook so that you get Make sure to do this tutorial in a Jupyter notebook so that you get
the inline plots and easy documentation lookup. The shell command to open the inline plots and easy documentation lookup. The shell command to open
one is simply `jupyter notebook`, then click New -> Python. one is simply `jupyter notebook`, then click New -> Python.
""" """
@ -227,8 +227,9 @@ sns.lmplot("BirthY", "EstAge", data=hre)
If you want to learn more, get _Python for Data Analysis_ by Wes McKinney. It's a superb resource and I used it as a reference when writing this tutorial. If you want to learn more, get _Python for Data Analysis_ by Wes McKinney. It's a superb resource and I used it as a reference when writing this tutorial.
You can also find plenty of interactive IPython tutorials on subjects specific to your interests, like Cam Davidson-Pilon's <a href="http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/" Title="Probabilistic Programming and Bayesian Methods for Hackers">Probabilistic Programming and Bayesian Methods for Hackers</a>. You can also find plenty of interactive IPython tutorials on subjects specific to your interests, like Cam Davidson-Pilon's [Probabilistic Programming and Bayesian Methods for Hackers](http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/).
Some more modules to research: Some more modules to research:
- text analysis and natural language processing: nltk, http://www.nltk.org
- social network analysis: igraph, http://igraph.org/python/ - text analysis and natural language processing: [nltk](http://www.nltk.org)
- social network analysis: [igraph](http://igraph.org/python/)

View File

@ -60,7 +60,7 @@ int main() {
// long как правило занимает от 4 до 8 байт // long как правило занимает от 4 до 8 байт
// long long занимает как минимум 64 бита // long long занимает как минимум 64 бита
long x_long = 0; long x_long = 0;
long long x_long_long = 0; long long x_long_long = 0;
// float это 32-битное число с плавающей точкой // float это 32-битное число с плавающей точкой
float x_float = 0.0; float x_float = 0.0;
@ -124,7 +124,7 @@ int main() {
// Если между одинарными кавычками есть символ – это символьный литерал, // Если между одинарными кавычками есть символ – это символьный литерал,
// но это тип int, а не char (по историческим причинам). // но это тип int, а не char (по историческим причинам).
int cha = 'a'; // хорошо int cha = 'a'; // хорошо
char chb = 'a'; // тоже хорошо (подразумевается преобразование int в char) char chb = 'a'; // тоже хорошо (подразумевается преобразование int в char)
@ -165,7 +165,7 @@ int main() {
// Правильно: // Правильно:
int between_0_and_2 = 0 < a && a < 2; int between_0_and_2 = 0 < a && a < 2;
// Логика // Логика
!3; // => 0 (логическое НЕ) !3; // => 0 (логическое НЕ)
!0; // => 1 !0; // => 1
1 && 1; // => 1 (логическое И) 1 && 1; // => 1 (логическое И)
@ -206,8 +206,8 @@ int main() {
} // => prints "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, " } // => prints "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "
printf("\n"); printf("\n");
//Цикл с постусловием // Цикл с постусловием
int kk = 0; int kk = 0;
do { do {
printf("%d, ", kk); printf("%d, ", kk);
@ -239,12 +239,12 @@ int main() {
exit(-1); exit(-1);
break; break;
} }
/////////////////////////////////////// ///////////////////////////////////////
// Форматирование вывода // Форматирование вывода
/////////////////////////////////////// ///////////////////////////////////////
// Каждое выражение в Си имеет тип, но вы можете привести один тип к другому, // Каждое выражение в Си имеет тип, но вы можете привести один тип к другому,
// если хотите (с некоторыми искажениями). // если хотите (с некоторыми искажениями).
int x_hex = 0x01; // Вы можете назначать переменные с помощью шестнадцатеричного кода. int x_hex = 0x01; // Вы можете назначать переменные с помощью шестнадцатеричного кода.
@ -259,7 +259,7 @@ int main() {
// Для определения максимального значения типов `char`, `signed char` и `unisigned char`, // Для определения максимального значения типов `char`, `signed char` и `unisigned char`,
// соответственно используйте CHAR_MAX, SCHAR_MAX и UCHAR_MAX макросы из <limits.h> // соответственно используйте CHAR_MAX, SCHAR_MAX и UCHAR_MAX макросы из <limits.h>
// Целые типы могут быть приведены к вещественным и наоборот. // Целые типы могут быть приведены к вещественным и наоборот.
printf("%f\n", (float)100); // %f formats a float printf("%f\n", (float)100); // %f formats a float
printf("%lf\n", (double)100); // %lf formats a double printf("%lf\n", (double)100); // %lf formats a double
@ -304,8 +304,8 @@ int main() {
// Объявление указателя на int с адресом массива. // Объявление указателя на int с адресом массива.
int* x_ptr = x_array; int* x_ptr = x_array;
// x_ptr сейчас указывает на первый элемент массива (со значением 20). // x_ptr сейчас указывает на первый элемент массива (со значением 20).
// Это работает, потому что при обращении к имени массива возвращается // Это работает, потому что при обращении к имени массива возвращается
// указатель на первый элемент. // указатель на первый элемент.
// Например, когда массив передаётся в функцию или присваивается указателю, он // Например, когда массив передаётся в функцию или присваивается указателю, он
// неявно преобразуется в указатель. // неявно преобразуется в указатель.
@ -326,7 +326,7 @@ int main() {
printf("%d\n", x_array[1]); // => Напечатает 19 printf("%d\n", x_array[1]); // => Напечатает 19
// Вы также можете динамически выделять несколько блоков памяти с помощью // Вы также можете динамически выделять несколько блоков памяти с помощью
// функции malloc из стандартной библиотеки, которая принимает один // функции malloc из стандартной библиотеки, которая принимает один
// аргумент типа size_t – количество байт необходимых для выделения. // аргумент типа size_t – количество байт необходимых для выделения.
int *my_ptr = malloc(sizeof(*my_ptr) * 20); int *my_ptr = malloc(sizeof(*my_ptr) * 20);
for (xx = 0; xx < 20; xx++) { for (xx = 0; xx < 20; xx++) {
@ -335,16 +335,16 @@ int main() {
// Работа с памятью с помощью указателей может давать неожиданные и // Работа с памятью с помощью указателей может давать неожиданные и
// непредсказуемые результаты. // непредсказуемые результаты.
printf("%d\n", *(my_ptr + 21)); // => Напечатает кто-нибудь знает, что? printf("%d\n", *(my_ptr + 21)); // => Напечатает кто-нибудь знает, что?
// Скорей всего программа вылетит. // Скорей всего программа вылетит.
// Когда вы закончили работать с памятью, которую ранее выделили, вам необходимо // Когда вы закончили работать с памятью, которую ранее выделили, вам необходимо
// освободить её, иначе это может вызвать утечку памяти или ошибки. // освободить её, иначе это может вызвать утечку памяти или ошибки.
free(my_ptr); free(my_ptr);
// Строки это массивы символов, но обычно они представляются как // Строки это массивы символов, но обычно они представляются как
// указатели на символ (как указатели на первый элемент массива). // указатели на символ (как указатели на первый элемент массива).
// Хорошей практикой считается использование `const char *' при объявлении // Хорошей практикой считается использование `const char *' при объявлении
// строчного литерала. При таком подходе литерал не может быть изменён. // строчного литерала. При таком подходе литерал не может быть изменён.
// (например "foo"[0] = 'a' вызовет ошибку!) // (например "foo"[0] = 'a' вызовет ошибку!)
@ -460,7 +460,7 @@ void str_reverse_through_pointer(char *str_in) {
void (*f)(char *); // Сигнатура должна полностью совпадать с целевой функцией. void (*f)(char *); // Сигнатура должна полностью совпадать с целевой функцией.
f = &str_reverse; // Присвоить фактический адрес (во время исполнения) f = &str_reverse; // Присвоить фактический адрес (во время исполнения)
// "f = str_reverse;" тоже будет работать. // "f = str_reverse;" тоже будет работать.
//Имя функции (как и массива) возвращает указатель на начало. // Имя функции (как и массива) возвращает указатель на начало.
(*f)(str_in); // Просто вызываем функцию через указатель. (*f)(str_in); // Просто вызываем функцию через указатель.
// "f(str_in);" или вот так // "f(str_in);" или вот так
} }
@ -468,10 +468,8 @@ void str_reverse_through_pointer(char *str_in) {
## На почитать ## На почитать
Лучше всего найдите копию [K&R, aka "The C Programming Language"](https://en.wikipedia.org/wiki/The_C_Programming_Language) Лучше всего найдите копию [K&R, она же "The C Programming Language"](https://en.wikipedia.org/wiki/The_C_Programming_Language),
Это **книга** написанная создателями Си. Но будьте осторожны, она содержит идеи которые больше не считаются хорошими. это книга написанная создателями Си. Но будьте осторожны, она содержит идеи которые больше не считаются хорошими.
Другой хороший ресурс: [Learn C the hard way](http://learncodethehardway.org/c/).
Если у вас появился вопрос, почитайте [compl.lang.c Frequently Asked Questions](http://c-faq.com). Если у вас появился вопрос, почитайте [compl.lang.c Frequently Asked Questions](http://c-faq.com).
@ -479,4 +477,4 @@ void str_reverse_through_pointer(char *str_in) {
Читаемый код лучше, чем красивый или быстрый код. Читаемый код лучше, чем красивый или быстрый код.
Чтобы научиться писать хороший код, почитайте [Linux kernel coding style](https://www.kernel.org/doc/Documentation/CodingStyle). Чтобы научиться писать хороший код, почитайте [Linux kernel coding style](https://www.kernel.org/doc/Documentation/CodingStyle).
[1] http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member [1] [http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member](http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member)

View File

@ -128,7 +128,7 @@ open(my $in, "<", "input.txt") or die "Can't open input.txt: $!";
open(my $out, ">", "output.txt") or die "Can't open output.txt: $!"; open(my $out, ">", "output.txt") or die "Can't open output.txt: $!";
open(my $log, ">>", "my.log") or die "Can't open my.log: $!"; open(my $log, ">>", "my.log") or die "Can't open my.log: $!";
# Читать из файлового дескриптора можно с помощью оператора "<>". # Читать из файлового дескриптора можно с помощью оператора "<>".
# В скалярном контексте он читает одну строку из файла, в списковом -- # В скалярном контексте он читает одну строку из файла, в списковом --
# читает сразу весь файл, сохраняя по одной строке в элементе массива: # читает сразу весь файл, сохраняя по одной строке в элементе массива:
@ -154,7 +154,7 @@ logger("We have a logger subroutine!");
Perl-овые модули предоставляют широкий набор функциональности, Perl-овые модули предоставляют широкий набор функциональности,
так что вы можете не изобретать заново велосипеды, а просто скачать так что вы можете не изобретать заново велосипеды, а просто скачать
нужный модуль с CPAN (http://www.cpan.org/). нужный модуль с [CPAN](http://www.cpan.org/).
Некоторое количество самых полезных модулей включено в стандартную Некоторое количество самых полезных модулей включено в стандартную
поставку Perl. поставку Perl.

View File

@ -5,7 +5,6 @@ contributors:
- ["Jigyasa Grover", "https://jigyasa-grover.github.io"] - ["Jigyasa Grover", "https://jigyasa-grover.github.io"]
- ["tim Rowledge", "tim@rowledge.org"] - ["tim Rowledge", "tim@rowledge.org"]
--- ---
<blockquote>Every effort has been made in the preparation of this material to ensure the accuracy and completeness of the information presented. However, no guarantee is given nor responsibility taken for errors or omissions. In case of any error, questions or suggestions on reach out to me at <a href="https://jigyasa-grover.github.io" target="_blank">jigyasa-grover.github.io</a> or drop me an e-mail at <a href="mailto:grover.jigyasa1@gmail.com" target="_blank">grover[dot]jigyasa1[at]gmail.com</a>.</blockquote>
- Smalltalk is a fully object-oriented, dynamically typed, reflective programming language with no 'non-object' types. - Smalltalk is a fully object-oriented, dynamically typed, reflective programming language with no 'non-object' types.
- Smalltalk was created as the language to underpin the "new world" of computing exemplified by "humancomputer symbiosis." - Smalltalk was created as the language to underpin the "new world" of computing exemplified by "humancomputer symbiosis."

View File

@ -93,15 +93,15 @@ $body-font = 'Roboto', sans-serif
Now, if you want to change the color, you only have to make the change once. */ Now, if you want to change the color, you only have to make the change once. */
body body
background-color $primary-color background-color $primary-color
color $secondary-color color $secondary-color
font-family $body-font font-family $body-font
/* After compilation: */ /* After compilation: */
body { body {
background-color: #A3A4FF; background-color: #A3A4FF;
color: #51527F; color: #51527F;
font-family: 'Roboto', sans-serif; font-family: 'Roboto', sans-serif;
} }
/ * / *
@ -118,10 +118,10 @@ element, you may want to store that code in a mixin.
center() center()
display block display block
margin-left auto margin-left auto
margin-right auto margin-right auto
left 0 left 0
right 0 right 0
/* Using the mixin */ /* Using the mixin */
body { body {
@ -131,12 +131,12 @@ body {
/* After compilation: */ /* After compilation: */
div { div {
display: block; display: block;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
left: 0; left: 0;
right: 0; right: 0;
background-color: #A3A4FF; background-color: #A3A4FF;
} }
/* You can use mixins to create a shorthand property. */ /* You can use mixins to create a shorthand property. */
@ -149,7 +149,7 @@ size($width, $height)
size(100px, 60px) size(100px, 60px)
.square .square
size(40px, 40px) size(40px, 40px)
/* You can use a mixin as a CSS property. */ /* You can use a mixin as a CSS property. */
circle($ratio) circle($ratio)
@ -224,4 +224,4 @@ for $item in (1..2) /* Repeat block 12 times */
width ($item / 12) * 100% /* Calculate row by column number */ width ($item / 12) * 100% /* Calculate row by column number */
``` ```
Now that you know a little about this powerful CSS preprocessor, you're ready to create more dynamic style sheets. To learn more, visit the official stylus documentation at http://stylus-lang.com. Now that you know a little about this powerful CSS preprocessor, you're ready to create more dynamic style sheets. To learn more, visit the official stylus documentation at [stylus-lang.com](https://stylus-lang.com).

View File

@ -13,19 +13,17 @@ lang: ta-in
XML ஆனது ஒரு கட்டமைப்பு மொழி ஆகும் இது தகவலை சேமிக்கவும் XML ஆனது ஒரு கட்டமைப்பு மொழி ஆகும் இது தகவலை சேமிக்கவும்
தகவலை பரிமாறவும் உருவாக்கபட்டுள்ளது தகவலை பரிமாறவும் உருவாக்கபட்டுள்ளது
HTML போல் அன்றி , XML ஆனது தகவலை மட்டும் கொண்டு செல்ல்கிறது
HTML போல் அன்றி , XML ஆனது தகவலை மட்டும் கொண்டு செல்ல்கிறது ## சில வரையறை மற்றும் முன்னுரை
## சில வரையறை மற்றும் முன்னுரை
பல கூறுகளால் அமைக்கப்பட்டது. ஒவொரு கூறுகளிலும் அட்ட்ரிபூட்க்கள் இருக்கும், அவை அந்தந்த கூறுகளை வரையறுக்க பயன்படும். மேலும் அந்த கூறுகளை தகவல் அல்லது கிளை கூறுகள் இருக்கலாம். அணைத்து கோப்புகளிலும் ரூட்/ஆரம்ப கூறு இருக்கும், அது தனக்குள் கிளை கூறுகளை கொண்டுருக்கும். பல கூறுகளால் அமைக்கப்பட்டது. ஒவொரு கூறுகளிலும் அட்ட்ரிபூட்க்கள் இருக்கும், அவை அந்தந்த கூறுகளை வரையறுக்க பயன்படும். மேலும் அந்த கூறுகளை தகவல் அல்லது கிளை கூறுகள் இருக்கலாம். அணைத்து கோப்புகளிலும் ரூட்/ஆரம்ப கூறு இருக்கும், அது தனக்குள் கிளை கூறுகளை கொண்டுருக்கும்.
XML பாகுபடுத்தி மிகவும் கண்டிப்பான வீதிகளைக்கொண்டது. [XML தொடரியல் விதிகளை அறிய] (http://www.w3schools.com/xml/xml_syntax.asp). XML பாகுபடுத்தி மிகவும் கண்டிப்பான வீதிகளைக்கொண்டது. [XML தொடரியல் விதிகளை அறிய](http://www.w3schools.com/xml/xml_syntax.asp).
```xml ```xml
<!-- இது ஒரு XML குறிப்ப --> <!-- இது ஒரு XML குறிப்ப -->
<!-- குறிப்புக்கள் <!-- குறிப்புக்கள்
பலவரி இருக்கலாம் --> பலவரி இருக்கலாம் -->
<!-- கூறுகள்/Elements --> <!-- கூறுகள்/Elements -->
@ -68,7 +66,6 @@ XML பாகுபடுத்தி மிகவும் கண்டிப
* XML வாக்கிய அமைப்பு * XML வாக்கிய அமைப்பு
```xml ```xml
<!-- இது ஒரு XML குறிப்பு --> <!-- இது ஒரு XML குறிப்பு -->
@ -96,20 +93,19 @@ XML பாகுபடுத்தி மிகவும் கண்டிப
<!-- <!--
மேல காட்டப்பட்டுள்ளது ஒரு xml file இன் உதாரணம் ஆகும்
மேல காட்டப்பட்டுள்ளது ஒரு xml file இன் உதாரணம் ஆகும் அது metadata உடன் ஆரம்பமாகிறது
அது metadata உடன் ஆரம்பமாகிறது XML ஆனது ஒரு மரத்தை போன்ற கட்டமைப்பை ஒத்தது.
XML ஆனது ஒரு மரத்தை போன்ற கட்டமைப்பை ஒத்தது. இங்கு root node (கொப்பு) `bookstore` இது மூன்று கிளைகள் (child nodes)
இங்கு root node (கொப்பு) `bookstore` இது மூன்று கிளைகள் (child nodes) கொண்டுள்ளது. இந்த கிளைகள் மேலும் சில கிளைகளை கொண்டு இருக்கலாம்
கொண்டுள்ளது. இந்த கிளைகள் மேலும் சில கிளைகளை கொண்டு இருக்கலாம் ஒவொரு node கட்டமைப்பும் ஒரு `<` ஆரம்பாமாகி `>` முடிவடையும்
ஒவொரு node கட்டமைப்பும் ஒரு `<` ஆரம்பாமாகி `>` முடிவடையும் கிளைகள் இந்த கட்டமைப்புக்கு இடையில் நிறுவப்படும்
கிளைகள் இந்த கட்டமைப்புக்கு இடையில் நிறுவப்படும்
--> -->
<!-- <!--
XML இரண்டு வகையான தகவல்களை கொண்டு செல்லக்கூடியது XML இரண்டு வகையான தகவல்களை கொண்டு செல்லக்கூடியது
1- Attributes -> ஒரு கணு(node) பற்றிய metadata 1- Attributes -> ஒரு கணு(node) பற்றிய metadata
பொதுவாக XML Parser இந்த தகவலை பயன்படுத்தியே தகவலை பொதுவாக XML Parser இந்த தகவலை பயன்படுத்தியே தகவலை
சரியான முறையில் சேமிக்க. சரியான முறையில் சேமிக்க.
இது xml கட்டமைப்பின் ஆரம்பத்தில் உள்ள name="value" இது xml கட்டமைப்பின் ஆரம்பத்தில் உள்ள name="value"
@ -127,21 +123,17 @@ Elements ஒரு `<` ஆரம்பாமாகி `>` முடிவடை
* சரியான முறையில் ஒழுகுபடுத்தபட்ட X document * சரியான முறையில் ஒழுகுபடுத்தபட்ட X document
ஒரு XML document ஆனது சரியான முறையில் எழுத பட்டிருப்பின் மட்டுமே அது
ஒரு XML document ஆனது சரியான முறையில் எழுத பட்டிருப்பின் மட்டுமே அது
சிறந்த வகையில் வடிவமைக்கபட்டுள்ளது,எனினும் மேலும் பல கட்டுபாடுகளை சிறந்த வகையில் வடிவமைக்கபட்டுள்ளது,எனினும் மேலும் பல கட்டுபாடுகளை
நாம் ஒரு xml document உக்கு இட முடியும் உ.ம்:-DTD மற்றும் XML Schema. நாம் ஒரு xml document உக்கு இட முடியும் உ.ம்:-DTD மற்றும் XML Schema.
ஒரு xml document ஆனது ஒரு வரையறுக்கபட்டிருப்பின் மட்டுமே
ஒரு xml document ஆனது ஒரு வரையறுக்கபட்டிருப்பின் மட்டுமே
அது சரி என கொள்ளப்படும் அது சரி என கொள்ளப்படும்
இந்த கருவியை உபயோகித்து xml தகவல்களை சோதிக்க முடியும்
With this tool, you can check the XML data outside the application logic.
இந்த கருவியை உபயோகித்து xml தகவல்களை சோதிக்க முடியும்
```xml ```xml
<!-- கீழே bookstore html document இன் எளிமையான வடிவம் <!-- கீழே bookstore html document இன் எளிமையான வடிவம்
DTD வரையறைகளுடன் DTD வரையறைகளுடன்
--> -->
@ -166,11 +158,11 @@ With this tool, you can check the XML data outside the application logic.
]> ]>
<!-- DTD ஆனது root node ஐ உருவாக்கிய பின் நிறுவ படுகிறது ,இது ஒன்று அல்லது <!-- DTD ஆனது root node ஐ உருவாக்கிய பின் நிறுவ படுகிறது ,இது ஒன்று அல்லது
ஒன்றிக்கு மேற்பட்ட child node களை எதிர்பார்க்கிறது. ஒன்றிக்கு மேற்பட்ட child node களை எதிர்பார்க்கிறது.
ஒவ்வொரு 'book' உம் கட்டாயமாக ஒரு 'title' , 'price','category', with "Literature" ஒவ்வொரு 'book' உம் கட்டாயமாக ஒரு 'title' , 'price','category', with "Literature"
ஆகிய பெறுமானங்களை கொண்டிருத்தல் அவசியம். ஆகிய பெறுமானங்களை கொண்டிருத்தல் அவசியம்.
--> -->
<!-- DTD ஆனது xml file ஒன்றினுள் உருவாக்கபடுகிறது--> <!-- DTD ஆனது xml file ஒன்றினுள் உருவாக்கபடுகிறது-->

View File

@ -8,9 +8,8 @@ contributors:
translators: translators:
- ["Haydar KULEKCI", "http://scanf.info/"] - ["Haydar KULEKCI", "http://scanf.info/"]
lang: tr-tr lang: tr-tr
--- ---
/*
C halen modern yüksek performans bilgisayarların dili. C halen modern yüksek performans bilgisayarların dili.
C bir çok programcının kullandığı en düşük seviye dillerdendir, ama C bir çok programcının kullandığı en düşük seviye dillerdendir, ama
@ -24,23 +23,23 @@ anlarsanız sizi isteğiniz yere götürecektir.
Çoklu satırlı yorumlar bu şekilde görünür. Çoklu satırlı yorumlar bu şekilde görünür.
*/ */
// C Standart kütüphanelerini uygulamanıza #include<ornek.h> ile // C Standart kütüphanelerini uygulamanıza #include<ornek.h> ile
// dahil edebilirsiniz. // dahil edebilirsiniz.
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
// Kendi başlık(header) dosyalarınız dahil etmek için "çift tırnak" // Kendi başlık(header) dosyalarınız dahil etmek için "çift tırnak"
// kullanmalısınız. // kullanmalısınız.
#include "my_header.h" #include "my_header.h"
// Fonksiyonlarınızı bir .h dosyasında ya da c dosyanızın üst tarafta // Fonksiyonlarınızı bir .h dosyasında ya da c dosyanızın üst tarafta
// tanımlayın. // tanımlayın.
void function_1(); void function_1();
void function_2(); void function_2();
// Programınızın giriş noktası main isimli bir fonksiyondur ve // Programınızın giriş noktası main isimli bir fonksiyondur ve
// integer değer döner // integer değer döner
int main() { int main() {
@ -62,31 +61,31 @@ int main() {
// short değişken tipi genellikle 2 byte boyutundadır. // short değişken tipi genellikle 2 byte boyutundadır.
short x_short = 0; short x_short = 0;
// char tipi 1 byte boyutunu garanti eder. // char tipi 1 byte boyutunu garanti eder.
char x_char = 0; char x_char = 0;
char y_char = 'y'; // Karakterler '' işaretleri arasına yazılır. char y_char = 'y'; // Karakterler '' işaretleri arasına yazılır.
// long tipi 4-8 byte olur; long long tipi en azından 64 bit garantiler. // long tipi 4-8 byte olur; long long tipi en azından 64 bit garantiler.
long x_long = 0; long x_long = 0;
long long x_long_long = 0; long long x_long_long = 0;
// float tipi 32-bit kayan noktalı sayı boyutundadır. // float tipi 32-bit kayan noktalı sayı boyutundadır.
float x_float = 0.0; float x_float = 0.0;
// double değişken tipi 64-bit kayan noktalı yazı tipindedir. // double değişken tipi 64-bit kayan noktalı yazı tipindedir.
double x_double = 0.0; double x_double = 0.0;
// Integral türleri işaretsiz olabilir. Bunun anlamı, onlar eksi değer // Integral türleri işaretsiz olabilir. Bunun anlamı, onlar eksi değer
// olamaz demektir, ama aynı boyuttaki işaretsiz bir sayının maksimum // olamaz demektir, ama aynı boyuttaki işaretsiz bir sayının maksimum
// değeri işaretli bir sayının maksimum değeriden büyük olur. // değeri işaretli bir sayının maksimum değeriden büyük olur.
unsigned char ux_char; unsigned char ux_char;
unsigned short ux_short; unsigned short ux_short;
unsigned int ux_int; unsigned int ux_int;
unsigned long long ux_long_long; unsigned long long ux_long_long;
// Diğer taraftan char, ki her zaman bir byte boyutundadır, bu tipler // Diğer taraftan char, ki her zaman bir byte boyutundadır, bu tipler
// makinenize göre boyut değiştirir. sizeof(T) size bir değişkenin byte // makinenize göre boyut değiştirir. sizeof(T) size bir değişkenin byte
// cinsinden boyutunu verir öyle ki bu tipin boyutunu taşınabilir bir // cinsinden boyutunu verir öyle ki bu tipin boyutunu taşınabilir bir
// şekilde ifade edilebilir // şekilde ifade edilebilir
// Örneğin, // Örneğin,
printf("%lu\n", sizeof(int)); // => 4 (bir çok makinede 4-byte words) printf("%lu\n", sizeof(int)); // => 4 (bir çok makinede 4-byte words)
@ -96,7 +95,7 @@ int main() {
// Bu durumda verimliligin degeri derleme-zamani sabitidir. // Bu durumda verimliligin degeri derleme-zamani sabitidir.
int a = 1; int a = 1;
// size_t bir objeyi temsil etmek için kullanılan 2 byte uzunluğundaki bir // size_t bir objeyi temsil etmek için kullanılan 2 byte uzunluğundaki bir
// işaretsiz tam sayı tipidir // işaretsiz tam sayı tipidir
size_t size = sizeof(a++); // a++ is not evaluated size_t size = sizeof(a++); // a++ is not evaluated
@ -111,7 +110,7 @@ int main() {
// Şu şekilde bir diziyi 0 ile oluşturabilirsiniz: // Şu şekilde bir diziyi 0 ile oluşturabilirsiniz:
char my_array[20] = {0}; char my_array[20] = {0};
// Dizinin elemanlarını indexlemek diğer diller gibidir, veya // Dizinin elemanlarını indexlemek diğer diller gibidir, veya
// diğer diller C gibi. // diğer diller C gibi.
my_array[0]; // => 0 my_array[0]; // => 0
@ -137,13 +136,13 @@ int main() {
// String'ler bir NUL (0x00) byte ile sonlandırılmış karakter dizileridir, // String'ler bir NUL (0x00) byte ile sonlandırılmış karakter dizileridir,
// bu string içerisinde özel bir karakter olan '\0' ile gösterilir. // bu string içerisinde özel bir karakter olan '\0' ile gösterilir.
// (Biz Nul byte'i string karakterleri arasında bulundurmamıza gerek // (Biz Nul byte'i string karakterleri arasında bulundurmamıza gerek
// yoktur; derleyici onu bizim için dizinin sonuna ekler.) // yoktur; derleyici onu bizim için dizinin sonuna ekler.)
char a_string[20] = "This is a string"; char a_string[20] = "This is a string";
printf("%s\n", a_string); // %s bir string formatıdır. printf("%s\n", a_string); // %s bir string formatıdır.
/* /*
a_string 16 karakter uzunluğundadır. a_string 16 karakter uzunluğundadır.
17. karakter NUL karakteridir. 17. karakter NUL karakteridir.
18., 19. ve 20. karakterler tanımsızdır.(undefined) 18., 19. ve 20. karakterler tanımsızdır.(undefined)
*/ */
@ -176,7 +175,7 @@ int main() {
// Karşılaştırma operatörleri muhtemelen tanıdıktır, ama // Karşılaştırma operatörleri muhtemelen tanıdıktır, ama
// C'de boolean tipi yoktur. Bunun yerine sayı(int) kullanırız. // C'de boolean tipi yoktur. Bunun yerine sayı(int) kullanırız.
// 0 false yerine ve diğer herşey true yerine geçmektedir. // 0 false yerine ve diğer herşey true yerine geçmektedir.
// (Karşılaştırma operatörleri her zaman 0 veya 1 dönmektedir.) // (Karşılaştırma operatörleri her zaman 0 veya 1 dönmektedir.)
3 == 2; // => 0 (false) 3 == 2; // => 0 (false)
3 != 2; // => 1 (true) 3 != 2; // => 1 (true)
@ -247,7 +246,7 @@ int main() {
// Tip Dönüşümleri // Tip Dönüşümleri
/////////////////////////////////////// ///////////////////////////////////////
// C'de her değer bir tipe sahiptir, ama siz bir değeri bir başka tipe // C'de her değer bir tipe sahiptir, ama siz bir değeri bir başka tipe
// dönüştürebilirsiniz. // dönüştürebilirsiniz.
int x_hex = 0x01; // Hex literatüründe değer atayabilirsiniz. int x_hex = 0x01; // Hex literatüründe değer atayabilirsiniz.
@ -260,11 +259,11 @@ int main() {
// Tip hiçbir hata vermeden taşacaktır(overflow). // Tip hiçbir hata vermeden taşacaktır(overflow).
printf("%d\n", (unsigned char) 257); // => 1 (Max char = 255 eğer karakter 8 bit uzunluğunda ise) printf("%d\n", (unsigned char) 257); // => 1 (Max char = 255 eğer karakter 8 bit uzunluğunda ise)
// `char`, `signed char` ve `unsigned char` karakter tiplerinin maksimum uzunluğunu // `char`, `signed char` ve `unsigned char` karakter tiplerinin maksimum uzunluğunu
// belirlemek için <limits.h> kütüphanesindeki CHAR_MAX, SCHAR_MAX ve UCHAR_MAX // belirlemek için <limits.h> kütüphanesindeki CHAR_MAX, SCHAR_MAX ve UCHAR_MAX
// macrolarını kullanınız. // macrolarını kullanınız.
// Integral tipi kayan noktalı yazı tipine dönüştürülecektir ve tam tersi. // Integral tipi kayan noktalı yazı tipine dönüştürülecektir ve tam tersi.
printf("%f\n", (float)100); // %f formats a float printf("%f\n", (float)100); // %f formats a float
printf("%lf\n", (double)100); // %lf formats a double printf("%lf\n", (double)100); // %lf formats a double
printf("%d\n", (char)100.0); printf("%d\n", (char)100.0);
@ -273,36 +272,36 @@ int main() {
// İşaretçiler (Pointers) // İşaretçiler (Pointers)
/////////////////////////////////////// ///////////////////////////////////////
// Bir işaretci bellek adresini barındıran bir değişkendir. Tanımlaması ile işaret // Bir işaretci bellek adresini barındıran bir değişkendir. Tanımlaması ile işaret
// edeceği verinin tipi de belirtilecektir. Değişkenlerininzi bellek adreslerini // edeceği verinin tipi de belirtilecektir. Değişkenlerininzi bellek adreslerini
// getirerek bellek ile ilgili karışıklığı ortadan kaldırabilirsiniz. // getirerek bellek ile ilgili karışıklığı ortadan kaldırabilirsiniz.
int x = 0; int x = 0;
printf("%p\n", &x); // & işareti bir değişkenin bellek adresini getirmek için kullanılır. printf("%p\n", &x); // & işareti bir değişkenin bellek adresini getirmek için kullanılır.
// (%p işaretçilerin formatıdır) // (%p işaretçilerin formatıdır)
// => Bazı bellek adresleri yazdırılacaktır. // => Bazı bellek adresleri yazdırılacaktır.
// İşaretçiler tanımlanırken * ile başlar // İşaretçiler tanımlanırken * ile başlar
int *px, not_a_pointer; // px sayı tipinde bir işaretçidir. int *px, not_a_pointer; // px sayı tipinde bir işaretçidir.
px = &x; // X değişkeninin bellek adresi px değişkeninde tutulmaktadır. px = &x; // X değişkeninin bellek adresi px değişkeninde tutulmaktadır.
printf("%p\n", px); // => x değişkeninin bellek adresi yazdırılacaktır. printf("%p\n", px); // => x değişkeninin bellek adresi yazdırılacaktır.
printf("%d, %d\n", (int)sizeof(px), (int)sizeof(not_a_pointer)); printf("%d, %d\n", (int)sizeof(px), (int)sizeof(not_a_pointer));
// => 64-bit sistemde "8, 4" yazdırılacaktır. // => 64-bit sistemde "8, 4" yazdırılacaktır.
// İşaretçinin adres olarak gösterdiği yerdeki değeri almak için // İşaretçinin adres olarak gösterdiği yerdeki değeri almak için
// değişkenin önüne * işareti ekleyiniz. // değişkenin önüne * işareti ekleyiniz.
printf("%d\n", *px); // => 0 bastıracaktır, x in değeridir, printf("%d\n", *px); // => 0 bastıracaktır, x in değeridir,
// çünkü px değişkeni x in adresini göstermektedir. // çünkü px değişkeni x in adresini göstermektedir.
// Ayrıca siz işaretçinin gösterdiği yerin değerini // Ayrıca siz işaretçinin gösterdiği yerin değerini
// değiştirebilirsiniz. Burada referansı parantez içerisinde göstereceğiz // değiştirebilirsiniz. Burada referansı parantez içerisinde göstereceğiz
// çünkü ++ işleminin önceliği * işleminden yüksektir. // çünkü ++ işleminin önceliği * işleminden yüksektir.
(*px)++; // px'in işaret ettiği değeri 1 artır. (*px)++; // px'in işaret ettiği değeri 1 artır.
printf("%d\n", *px); // => 1 yazdırılır. printf("%d\n", *px); // => 1 yazdırılır.
printf("%d\n", x); // => 1 yazdırılır. printf("%d\n", x); // => 1 yazdırılır.
int x_array[20]; // Diziler(arrays) bellekten yan yana bellek bloklarını int x_array[20]; // Diziler(arrays) bellekten yan yana bellek bloklarını
// tahsis etmek için iyi bir yöntemdir. // tahsis etmek için iyi bir yöntemdir.
int xx; int xx;
for (xx=0; xx<20; xx++) { for (xx=0; xx<20; xx++) {
@ -312,7 +311,7 @@ int main() {
// Bir sayı tipinde işaretçi tanımlanıyor ve x_array'i işaret ediyor. // Bir sayı tipinde işaretçi tanımlanıyor ve x_array'i işaret ediyor.
int* x_ptr = x_array; int* x_ptr = x_array;
// x_ptr artık dizinin ilk elemanını işaret etmektedir (the integer 20). // x_ptr artık dizinin ilk elemanını işaret etmektedir (the integer 20).
// Bu çalışacaktır çünkü diziler(arrays) aslında sadece onların ilk // Bu çalışacaktır çünkü diziler(arrays) aslında sadece onların ilk
// elemanlarını gösteren birer işaretçidir. // elemanlarını gösteren birer işaretçidir.
// For example, when an array is passed to a function or is assigned to a pointer, // For example, when an array is passed to a function or is assigned to a pointer,
// it decays into (implicitly converted to) a pointer. // it decays into (implicitly converted to) a pointer.
@ -331,25 +330,25 @@ int main() {
printf("%d\n", *(x_ptr)); // => 20 yazılacaktır. printf("%d\n", *(x_ptr)); // => 20 yazılacaktır.
printf("%d\n", x_array[0]); // => 20 yazılacaktır. printf("%d\n", x_array[0]); // => 20 yazılacaktır.
// İşaretçiler kendi tiplerinde artırılır ve azaltılır. // İşaretçiler kendi tiplerinde artırılır ve azaltılır.
printf("%d\n", *(x_ptr + 1)); // => 19 yazılacaktır. printf("%d\n", *(x_ptr + 1)); // => 19 yazılacaktır.
printf("%d\n", x_array[1]); // => 19 yazılacaktır. printf("%d\n", x_array[1]); // => 19 yazılacaktır.
// Ayrıca dinamik olarak bir bellek bloğunu standart kütüphanede bulunan // Ayrıca dinamik olarak bir bellek bloğunu standart kütüphanede bulunan
// malloc fonksiyonu ile uygulamanız için ayırabilirsiniz. Bu fonksiyon // malloc fonksiyonu ile uygulamanız için ayırabilirsiniz. Bu fonksiyon
// byte türünden ayırmak istediğiniz bloğun boyutunu parametre olarak alır. // byte türünden ayırmak istediğiniz bloğun boyutunu parametre olarak alır.
int* my_ptr = (int*) malloc(sizeof(int) * 20); int* my_ptr = (int*) malloc(sizeof(int) * 20);
for (xx=0; xx<20; xx++) { for (xx=0; xx<20; xx++) {
*(my_ptr + xx) = 20 - xx; // my_ptr[xx] = 20-xx 'de aynı zamanda çalışabilir *(my_ptr + xx) = 20 - xx; // my_ptr[xx] = 20-xx 'de aynı zamanda çalışabilir
} // Bellekte 20, 19, 18, 17... 2, 1 (as ints) şeklinde oluşturulmuş olacaktır. } // Bellekte 20, 19, 18, 17... 2, 1 (as ints) şeklinde oluşturulmuş olacaktır.
// Eğer ayrımadığınız bir bellek adresini çağırırsanız // Eğer ayrımadığınız bir bellek adresini çağırırsanız
// öngörülmeyen bir değer dönecektir. // öngörülmeyen bir değer dönecektir.
printf("%d\n", *(my_ptr + 21)); // => kim-bilir-ne-yazacak? printf("%d\n", *(my_ptr + 21)); // => kim-bilir-ne-yazacak?
// Malloc fonksiyonu ile ayrıdığınız bellek kısmı ile işiniz bittiğinde // Malloc fonksiyonu ile ayrıdığınız bellek kısmı ile işiniz bittiğinde
// onu free fonksiyonu ile boşaltmalısınız, aksi durumda uygulamanız // onu free fonksiyonu ile boşaltmalısınız, aksi durumda uygulamanız
// kapatılana kadar belleğin o kısmını kimse kullanamaz. // kapatılana kadar belleğin o kısmını kimse kullanamaz.
free(my_ptr); free(my_ptr);
// Metin Dizileri(String) birer karakter dizisidir(char array), ama // Metin Dizileri(String) birer karakter dizisidir(char array), ama
@ -373,8 +372,8 @@ int add_two_ints(int x1, int x2){
} }
/* /*
Fonksiyonlar pass-by-value'dür, ama isterseniz işaretçi referanslarını Fonksiyonlar pass-by-value'dür, ama isterseniz işaretçi referanslarını
kullanarak fonksiyona gönderilen parametrenin değerini değiştirebilirsiniz. kullanarak fonksiyona gönderilen parametrenin değerini değiştirebilirsiniz.
Example: Bir metni tersine çevirme Example: Bir metni tersine çevirme
*/ */
@ -404,7 +403,7 @@ printf("%s\n", c); // => ".tset a si sihT"
typedef int my_type; typedef int my_type;
my_type my_type_var = 0; my_type my_type_var = 0;
// Struct'lar bir veri koleksiyonudur. // Struct'lar bir veri koleksiyonudur.
struct rectangle { struct rectangle {
int width; int width;
int height; int height;
@ -426,14 +425,14 @@ void function_1(){
// Bir yapının adresini işaretçiye atayabilirsiniz. // Bir yapının adresini işaretçiye atayabilirsiniz.
struct rectangle* my_rec_ptr = &my_rec; struct rectangle* my_rec_ptr = &my_rec;
// İşaretçi üzerinden bir yapıya ulaşabilirsiniz. // İşaretçi üzerinden bir yapıya ulaşabilirsiniz.
(*my_rec_ptr).width = 30; (*my_rec_ptr).width = 30;
// ya da -> işareti ile yapının elemanlarına ulaşabilirsiniz. // ya da -> işareti ile yapının elemanlarına ulaşabilirsiniz.
my_rec_ptr->height = 10; // (*my_rec_ptr).height = 10; ile aynıdır. my_rec_ptr->height = 10; // (*my_rec_ptr).height = 10; ile aynıdır.
} }
// Kolaylık sağlamak için bir yapıya typedef tanımlayabilirsiniz. // Kolaylık sağlamak için bir yapıya typedef tanımlayabilirsiniz.
typedef struct rectangle rect; typedef struct rectangle rect;
int area(rect r){ int area(rect r){
@ -447,8 +446,8 @@ int area(rect r){
/* /*
Çalışma zamanında, fonksiyonların bilinen bir bellek adresleri vardır. Fonksiyon Çalışma zamanında, fonksiyonların bilinen bir bellek adresleri vardır. Fonksiyon
işaretçileri fonksiyonları direk olarak çağırmayı sağlayan veya geri bildirim(callback) işaretçileri fonksiyonları direk olarak çağırmayı sağlayan veya geri bildirim(callback)
için parametre gönderirken kullanılan başka birer işaretçidirler. Ama, syntax tanımı için parametre gönderirken kullanılan başka birer işaretçidirler. Ama, syntax tanımı
başlangıçta biraz karışık gelebilir. başlangıçta biraz karışık gelebilir.
Örnek: bir işaretçiden str_reverse kullanımı Örnek: bir işaretçiden str_reverse kullanımı
*/ */
@ -469,7 +468,7 @@ typedef void (*my_fnp_type)(char *);
// Gerçek bir işaretçi tanımlandığı zaman ki kullanımı: // Gerçek bir işaretçi tanımlandığı zaman ki kullanımı:
// ... // ...
// my_fnp_type f; // my_fnp_type f;
``` ```
## Daha Fazla Okuma Listesi ## Daha Fazla Okuma Listesi
@ -484,4 +483,4 @@ Readable code is better than clever code and fast code. For a good, sane coding
Diğer taraftan google sizin için bir arkadaş olabilir. Diğer taraftan google sizin için bir arkadaş olabilir.
[1] http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member [1] [stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member](https://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member)

View File

@ -313,7 +313,7 @@ angular.module('myApp', []).controller('namesCtrl', function($scope) {
<p>Total = {{ (quantity * price) | currency }}</p> <p>Total = {{ (quantity * price) | currency }}</p>
</div> </div>
//一个过滤器可以通过一个管道符 (|) 及一个过滤器表达式添加到一个指令上。 //一个过滤器可以通过一个管道符 (|) 及一个过滤器表达式添加到一个指令上。
//orderBy 过滤器根据一个表达式排序一个数组: //orderBy 过滤器根据一个表达式排序一个数组:
@ -327,7 +327,7 @@ angular.module('myApp', []).controller('namesCtrl', function($scope) {
<div> <div>
//一个输入框过滤器可以通过一个管道符 (|) //一个输入框过滤器可以通过一个管道符 (|)
//以及后跟一个冒号和模式名的 filter 添加到一个指令上。 //以及后跟一个冒号和模式名的 filter 添加到一个指令上。
//该过滤器从一个数组中选择一个子集: //该过滤器从一个数组中选择一个子集:
@ -354,7 +354,7 @@ angular.module('myApp', []).controller('namesCtrl', function($scope) {
// AngularJS $http 是一个从 web 服务器上读取数据的核心服务。 // AngularJS $http 是一个从 web 服务器上读取数据的核心服务。
// $http.get(url) 这个函数用来读取服务器数据。 // $http.get(url) 这个函数用来读取服务器数据。
<div ng-app="myApp" ng-controller="customersCtrl"> <div ng-app="myApp" ng-controller="customersCtrl">
<ul> <ul>
<li ng-repeat="x in names"> <li ng-repeat="x in names">
@ -395,7 +395,7 @@ header("Access-Control-Allow-Origin: *");
// AngularJS 表格 // AngularJS 表格
// 使用 angular 显示表格非常简单: // 使用 angular 显示表格非常简单:
<div ng-app="myApp" ng-controller="customersCtrl"> <div ng-app="myApp" ng-controller="customersCtrl">
<table> <table>
<tr ng-repeat="x in names"> <tr ng-repeat="x in names">
@ -626,7 +626,7 @@ app.controller("myCtrl", function($scope) {
</html> </html>
//myApp.js //myApp.js
var app = angular.module("myApp", []); var app = angular.module("myApp", []);
// 模块定义中的 [] 参数可用来定义依赖的模块。 // 模块定义中的 [] 参数可用来定义依赖的模块。
@ -697,14 +697,3 @@ app.controller('myCtrl', function($scope) {
$scope.lastName= "Doe"; $scope.lastName= "Doe";
}); });
``` ```
## 来源 & 参考
**例子**
- http://www.w3schools.com/angular/angular_examples.asp
**参考**
- http://www.w3schools.com/angular/angular_ref_directives.asp
- http://www.w3schools.com/angular/default.asp

View File

@ -568,6 +568,6 @@ void doSomethingWithAFile(const std::string& filename)
扩展阅读: 扩展阅读:
* [CPP Reference](http://cppreference.com/w/cpp) 提供了最新的语法参考。 - [CPP Reference](http://cppreference.com/w/cpp) 提供了最新的语法参考。
* 可以在 [CPlusPlus](http://cplusplus.com) 找到一些补充资料。 - 可以在 [CPlusPlus](http://cplusplus.com) 找到一些补充资料。
* 可以在 [TheChernoProject - C ++](https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb上找到涵盖语言基础和设置编码环境的教程。 - 可以在 [TheChernoProject - C++](https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb) 上找到涵盖语言基础和设置编码环境的教程。

View File

@ -73,7 +73,7 @@ char y_char = 'y'; // 字符变量的字面值需要用单引号包住
// long型长整型一般需要4个字节到8个字节; 而long long型则至少需要8个字节64位 // long型长整型一般需要4个字节到8个字节; 而long long型则至少需要8个字节64位
long x_long = 0; long x_long = 0;
long long x_long_long = 0; long long x_long_long = 0;
// float一般是用32位表示的浮点数字 // float一般是用32位表示的浮点数字
float x_float = 0.0; float x_float = 0.0;
@ -93,7 +93,7 @@ unsigned long long ux_long_long;
'A' // => 在ASCII字符集中是65 'A' // => 在ASCII字符集中是65
// char类型一定会占用1个字节但是其他的类型却会因具体机器的不同而各异 // char类型一定会占用1个字节但是其他的类型却会因具体机器的不同而各异
// sizeof(T) 可以返回T类型在运行的机器上占用多少个字节 // sizeof(T) 可以返回T类型在运行的机器上占用多少个字节
// 这样你的代码就可以在各处正确运行了 // 这样你的代码就可以在各处正确运行了
// sizeof(obj)返回表达式(变量、字面量等)的尺寸 // sizeof(obj)返回表达式(变量、字面量等)的尺寸
printf("%zu\n", sizeof(int)); // => 4 (大多数的机器字长为4) printf("%zu\n", sizeof(int)); // => 4 (大多数的机器字长为4)
@ -144,7 +144,7 @@ char a_string[20] = "This is a string";
printf("%s\n", a_string); // %s 可以对字符串进行格式化 printf("%s\n", a_string); // %s 可以对字符串进行格式化
/* /*
也许你会注意到 a_string 实际上只有16个字节长. 也许你会注意到 a_string 实际上只有16个字节长.
第17个字节是一个空字符(NUL) 第17个字节是一个空字符(NUL)
而第18, 19 和 20 个字符的值是未定义。 而第18, 19 和 20 个字符的值是未定义。
*/ */
@ -365,7 +365,7 @@ for (xx=0; xx<20; xx++) {
// 声明一个整型的指针并初始化为指向x_array // 声明一个整型的指针并初始化为指向x_array
int* x_ptr = x_array; int* x_ptr = x_array;
// x_ptr现在指向了数组的第一个元素(即整数20). // x_ptr现在指向了数组的第一个元素(即整数20).
// 这是因为数组通常衰减为指向它们的第一个元素的指针。 // 这是因为数组通常衰减为指向它们的第一个元素的指针。
// 例如,当一个数组被传递给一个函数或者绑定到一个指针时, // 例如,当一个数组被传递给一个函数或者绑定到一个指针时,
//它衰减为(隐式转化为)一个指针。 //它衰减为(隐式转化为)一个指针。
@ -533,7 +533,7 @@ int area(const rect *r)
例子通过指针调用str_reverse 例子通过指针调用str_reverse
*/ */
void str_reverse_through_pointer(char *str_in) { void str_reverse_through_pointer(char *str_in) {
// 定义一个函数指针 f. // 定义一个函数指针 f.
void (*f)(char *); // 签名一定要与目标函数相同 void (*f)(char *); // 签名一定要与目标函数相同
f = &str_reverse; // 将函数的地址在运行时赋给指针 f = &str_reverse; // 将函数的地址在运行时赋给指针
(*f)(str_in); // 通过指针调用函数 (*f)(str_in); // 通过指针调用函数
@ -549,7 +549,7 @@ typedef void (*my_fnp_type)(char *);
// 实际声明函数指针会这么用: // 实际声明函数指针会这么用:
// ... // ...
// my_fnp_type f; // my_fnp_type f;
// 特殊字符 // 特殊字符
'\a' // bell '\a' // bell
@ -610,13 +610,10 @@ typedef void (*my_fnp_type)(char *);
最好找一本 [K&R, aka "The C Programming Language", “C程序设计语言”](https://en.wikipedia.org/wiki/The_C_Programming_Language)。它是关于C最重要的一本书由C的创作者撰写。不过需要留意的是它比较古老了因此有些不准确的地方。 最好找一本 [K&R, aka "The C Programming Language", “C程序设计语言”](https://en.wikipedia.org/wiki/The_C_Programming_Language)。它是关于C最重要的一本书由C的创作者撰写。不过需要留意的是它比较古老了因此有些不准确的地方。
另一个比较好的资源是 [Learn C the hard way](http://learncodethehardway.org/c/)
如果你有问题,请阅读[compl.lang.c Frequently Asked Questions](http://c-faq.com/)。 如果你有问题,请阅读[compl.lang.c Frequently Asked Questions](http://c-faq.com/)。
使用合适的空格、缩进,保持一致的代码风格非常重要。可读性强的代码比聪明的代码、高速的代码更重要。可以参考下[Linux内核编码风格](https://www.kernel.org/doc/Documentation/process/coding-style.rst) 使用合适的空格、缩进,保持一致的代码风格非常重要。可读性强的代码比聪明的代码、高速的代码更重要。可以参考下[Linux内核编码风格](https://www.kernel.org/doc/Documentation/process/coding-style.rst)
除了这些多多Google吧 除了这些多多Google吧
[1] http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member [1] [stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member](http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member)

View File

@ -8,7 +8,7 @@ translators:
lang: zh-cn lang: zh-cn
--- ---
Groovy - Java平台的动态语言。[了解更多](http://www.groovy-lang.org/) Groovy - Java平台的动态语言。[了解更多](http://www.groovy-lang.org/)
```groovy ```groovy
/* /*
@ -268,7 +268,7 @@ def clos = { print it }
clos( "hi" ) clos( "hi" )
/* /*
Groovy可以记忆闭包结果 [1][2][3] Groovy可以记忆闭包结果
*/ */
def cl = {a, b -> def cl = {a, b ->
sleep(3000) // 模拟费时操作 sleep(3000) // 模拟费时操作
@ -405,15 +405,6 @@ assert sum(2,5) == 7
## 图书 ## 图书
* [Groovy Goodness] (https://leanpub.com/groovy-goodness-notebook) * [Groovy Goodness](https://leanpub.com/groovy-goodness-notebook)
* [Groovy in Action](http://manning.com/koenig2/)
* [Groovy in Action] (http://manning.com/koenig2/) * [Programming Groovy 2: Dynamic Productivity for the Java Developer](http://shop.oreilly.com/product/9781937785307.do)
* [Programming Groovy 2: Dynamic Productivity for the Java Developer] (http://shop.oreilly.com/product/9781937785307.do)
[1] http://roshandawrani.wordpress.com/2010/10/18/groovy-new-feature-closures-can-now-memorize-their-results/
[2] http://www.solutionsiq.com/resources/agileiq-blog/bid/72880/Programming-with-Groovy-Trampoline-and-Memoize
[3] http://mrhaki.blogspot.mx/2011/05/groovy-goodness-cache-closure-results.html

View File

@ -138,7 +138,7 @@ logger("We have a logger subroutine!");
#### 使用Perl模块 #### 使用Perl模块
Perl模块提供一系列特性来帮助你避免重新发明轮子CPAN是下载模块的好地方( http://www.cpan.org/ )。Perl发行版本身也包含很多流行的模块。 Perl模块提供一系列特性来帮助你避免重新发明轮子[CPAN](http://www.cpan.org/)是下载模块的好地方。Perl发行版本身也包含很多流行的模块。
perlfaq有很多常见问题和相应回答也经常有对优秀CPAN模块的推荐介绍。 perlfaq有很多常见问题和相应回答也经常有对优秀CPAN模块的推荐介绍。

View File

@ -74,14 +74,14 @@ Module Module1
' 一、对应程序目录1下同 ' 一、对应程序目录1下同
' 使用 private subs 声明函数。 ' 使用 private subs 声明函数。
Private Sub HelloWorldOutput() Private Sub HelloWorldOutput()
' 程序名 ' 程序名
Console.Title = "Hello World Output | Learn X in Y Minutes" Console.Title = "Hello World Output | Learn X in Y Minutes"
' 使用 Console.Write("") 或者 Console.WriteLine("") 来输出文本到屏幕上 ' 使用 Console.Write("") 或者 Console.WriteLine("") 来输出文本到屏幕上
' 对应的 Console.Read() 或 Console.Readline() 用来读取键盘输入 ' 对应的 Console.Read() 或 Console.Readline() 用来读取键盘输入
Console.WriteLine("Hello World") Console.WriteLine("Hello World")
Console.ReadLine() Console.ReadLine()
' Console.WriteLine()后加Console.ReadLine()是为了防止屏幕输出信息一闪而过 ' Console.WriteLine()后加Console.ReadLine()是为了防止屏幕输出信息一闪而过
' 类似平时常见的“单击任意键继续”的意思。 ' 类似平时常见的“单击任意键继续”的意思。
End Sub End Sub
@ -188,7 +188,7 @@ Module Module1
Console.Write(a.ToString() + " / " + b.ToString()) Console.Write(a.ToString() + " / " + b.ToString())
Console.WriteLine(" = " + e.ToString.PadLeft(3)) Console.WriteLine(" = " + e.ToString.PadLeft(3))
Console.ReadLine() Console.ReadLine()
' 询问用户是否继续,注意大小写。 ' 询问用户是否继续,注意大小写。
Console.Write("Would you like to continue? (yes / no)") Console.Write("Would you like to continue? (yes / no)")
' 程序读入用户输入 ' 程序读入用户输入
answer = Console.ReadLine() ' added a bracket here answer = Console.ReadLine() ' added a bracket here
@ -203,12 +203,12 @@ Module Module1
' 这个程序我们将实现从10倒数计数. ' 这个程序我们将实现从10倒数计数.
Console.Title = "Using For Loops | Learn X in Y Minutes" Console.Title = "Using For Loops | Learn X in Y Minutes"
' 声明变量和Step (步长,即递减的速度,如-1-2-3等 ' 声明变量和Step (步长,即递减的速度,如-1-2-3等
For i As Integer = 10 To 0 Step -1 For i As Integer = 10 To 0 Step -1
Console.WriteLine(i.ToString) ' 将计数结果输出的屏幕 Console.WriteLine(i.ToString) ' 将计数结果输出的屏幕
Next i ' 计算新的i值 Next i ' 计算新的i值
Console.WriteLine("Start") Console.WriteLine("Start")
Console.ReadLine() Console.ReadLine()
End Sub End Sub
' 八 ' 八
@ -266,8 +266,8 @@ End Module
## 参考 ## 参考
译注原作者在命令行下学习的VB。命令行编程使我能够更好的了解程序编译运行机制并使学习其它语言变得容易。 译注原作者在命令行下学习的VB。命令行编程使我能够更好的了解程序编译运行机制并使学习其它语言变得容易。
如果希望进一步学习VB这里还有更深层次的 <a href="http://www.vbbootcamp.co.uk/" Title="VB教学">VB教学英文</a> 如果希望进一步学习VB这里还有更深层次的 [VB教学英文](http://www.vbbootcamp.co.uk/)。
所有代码均通过测试。只需复制粘帖到Visual Basic中并按F5运行即可。 所有代码均通过测试。只需复制粘帖到Visual Basic中并按F5运行即可。

View File

@ -72,13 +72,8 @@ PCRE提供了一些通用的字元類型可被當作字元集合使用
| ^\S+ | 66.249.64.13 | `^` 為行首, `\S+` 抓取至少一個非空白字元 | | ^\S+ | 66.249.64.13 | `^` 為行首, `\S+` 抓取至少一個非空白字元 |
| \+[0-9]+ | +1000 | `\+` 抓取 `+` 字元。 `[0-9]` 字元集表示剛好一個數字字元。 可以用 `\+\d+` 達到相同效果。 | | \+[0-9]+ | +1000 | `\+` 抓取 `+` 字元。 `[0-9]` 字元集表示剛好一個數字字元。 可以用 `\+\d+` 達到相同效果。 |
以上範例皆可在 https://regex101.com/ 測試,步驟如下: 以上範例皆可在 [regex101.com](https://regex101.com/) 測試,步驟如下:
1. 複製範例字串到 `TEST STRING` 區域 1. 複製範例字串到 `TEST STRING` 區域
2. 複製正規表達式字串到 `Regular Expression` 區域 2. 複製正規表達式字串到 `Regular Expression` 區域
3. 網頁會顯示自動表達式抓取結果 3. 網頁會顯示自動表達式抓取結果
## 更多資料