summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--erlang.html.markdown2
-rw-r--r--fr-fr/python-fr.html.markdown2
-rw-r--r--git.html.markdown96
-rw-r--r--groovy.html.markdown13
-rw-r--r--java.html.markdown27
-rw-r--r--pt-br/brainfuck-pt.html.markdown5
-rw-r--r--pt-br/swift-pt.html.markdown2
-rw-r--r--ruby-ecosystem.html.markdown2
-rw-r--r--rust.html.markdown2
-rw-r--r--tcl.html.markdown2
10 files changed, 103 insertions, 50 deletions
diff --git a/erlang.html.markdown b/erlang.html.markdown
index 48cee6ec..4e2f1d84 100644
--- a/erlang.html.markdown
+++ b/erlang.html.markdown
@@ -35,7 +35,7 @@ Num = 43. % ** exception error: no match of right hand side value 43
% In most languages, `=` denotes an assignment statement. In Erlang, however,
% `=` denotes a pattern-matching operation. When an empty variable is used on the
% left hand side of the `=` operator to is bound (assigned), but when a bound
-% varaible is used on the left hand side the following behaviour is observed.
+% variable is used on the left hand side the following behaviour is observed.
% `Lhs = Rhs` really means this: evaluate the right side (`Rhs`), and then
% match the result against the pattern on the left side (`Lhs`).
Num = 7 * 6.
diff --git a/fr-fr/python-fr.html.markdown b/fr-fr/python-fr.html.markdown
index 5a03ecfc..3f6dcabb 100644
--- a/fr-fr/python-fr.html.markdown
+++ b/fr-fr/python-fr.html.markdown
@@ -19,7 +19,7 @@ Vous pourrez bientôt trouver un article pour Python 3 en Français. Pour le mom
```python
# Une ligne simple de commentaire commence par un dièse
-""" Les lignes de commenatires multipes peuvent être écrites
+""" Les lignes de commentaires multipes peuvent être écrites
en utilisant 3 guillemets ("), et sont souvent utilisées
pour les commentaires
"""
diff --git a/git.html.markdown b/git.html.markdown
index bf8fce0c..b1347309 100644
--- a/git.html.markdown
+++ b/git.html.markdown
@@ -8,17 +8,17 @@ contributors:
filename: LearnGit.txt
---
-Git is a distributed version control and source code management system.
+Git is a distributed version control and source code management system.
-It does this through a series of snapshots of your project, and it works
-with those snapshots to provide you with functionality to version and
+It does this through a series of snapshots of your project, and it works
+with those snapshots to provide you with functionality to version and
manage your source code.
## Versioning Concepts
### What is version control?
-Version control is a system that records changes to a file, or set of files, over time.
+Version control is a system that records changes to a file(s), over time.
### Centralized Versioning VS Distributed Versioning
@@ -42,8 +42,9 @@ Version control is a system that records changes to a file, or set of files, ove
### Repository
-A set of files, directories, historical records, commits, and heads. Imagine it as a source code data structure,
-with the attribute that each source code "element" gives you access to its revision history, among other things.
+A set of files, directories, historical records, commits, and heads. Imagine it
+as a source code data structure, with the attribute that each source code
+"element" gives you access to its revision history, among other things.
A git repository is comprised of the .git directory & working tree.
@@ -54,32 +55,33 @@ The .git directory contains all the configurations, logs, branches, HEAD, and mo
### Working Tree (component of repository)
-This is basically the directories and files in your repository. It is often referred to
-as your working directory.
+This is basically the directories and files in your repository. It is often
+referred to as your working directory.
### Index (component of .git dir)
The Index is the staging area in git. It's basically a layer that separates your working tree
-from the Git repository. This gives developers more power over what gets sent to the Git
-repository.
+from the Git repository. This gives developers more power over what gets sent
+to the Git repository.
### Commit
-A git commit is a snapshot of a set of changes, or manipulations to your Working Tree.
-For example, if you added 5 files, and removed 2 others, these changes will be contained
-in a commit (or snapshot). This commit can then be pushed to other repositories, or not!
+A git commit is a snapshot of a set of changes, or manipulations to your Working
+Tree. For example, if you added 5 files, and removed 2 others, these changes
+will be contained in a commit (or snapshot). This commit can then be pushed to
+other repositories, or not!
### Branch
-A branch is essentially a pointer that points to the last commit you made. As you commit,
-this pointer will automatically update and point to the latest commit.
+A branch is essentially a pointer to the last commit you made. As you go on
+committing, this pointer will automatically update to point the latest commit.
### HEAD and head (component of .git dir)
HEAD is a pointer that points to the current branch. A repository only has 1 *active* HEAD.
head is a pointer that points to any commit. A repository can have any number of heads.
-###Stages of Git
+### Stages of Git
* Modified - Changes have been made to a file but file has not been committed to Git Database yet
* Staged - Marks a modified file to go into your next commit snapshot
* Committed - Files have been committed to the Git Database
@@ -95,7 +97,7 @@ head is a pointer that points to any commit. A repository can have any number of
### init
-Create an empty Git repository. The Git repository's settings, stored information,
+Create an empty Git repository. The Git repository's settings, stored information,
and more is stored in a directory (a folder) named ".git".
```bash
@@ -104,15 +106,12 @@ $ git init
### config
-To configure settings. Whether it be for the repository, the system itself, or global
-configurations.
+To configure settings. Whether it be for the repository, the system itself,
+or global configurations ( global config file is `~/.gitconfig` ).
```bash
# Print & Set Some Basic Config Variables (Global)
-$ git config --global user.email
-$ git config --global user.name
-
$ git config --global user.email "MyEmail@Zoho.com"
$ git config --global user.name "My Name"
```
@@ -142,10 +141,20 @@ $ git commit --help
$ git init --help
```
+### ignore files
+
+To intentionally untrack file(s) & folder(s) from git. Typically meant for
+private & temp files which would otherwise be shared in the repository.
+```bash
+$ echo "temp/" >> .gitignore
+$ echo "private_key" >> .gitignore
+```
+
+
### status
-To show differences between the index file (basically your working copy/repo) and the current
-HEAD commit.
+To show differences between the index file (basically your working copy/repo)
+and the current HEAD commit.
```bash
@@ -172,7 +181,8 @@ $ git add /path/to/file/HelloWorld.c
$ git add ./*.java
```
-This only adds a file to the staging area/index, it doesn't commit it to the working directory/repo.
+This only adds a file to the staging area/index, it doesn't commit it to the
+working directory/repo.
### branch
@@ -205,7 +215,8 @@ Updates all files in the working tree to match the version in the index, or spec
$ git checkout
# Checkout a specified branch
$ git checkout branchName
-# Create a new branch & switch to it, like: "git branch <name>; git checkout <name>"
+# Create a new branch & switch to it
+# equivalent to "git branch <name>; git checkout <name>"
$ git checkout -b newBranch
```
@@ -218,6 +229,10 @@ to a remote branch.
```bash
# Clone learnxinyminutes-docs
$ git clone https://github.com/adambard/learnxinyminutes-docs.git
+# shallow clone - faster cloning that pulls only latest snapshot
+$ git clone --depth 1 https://github.com/adambard/learnxinyminutes-docs.git
+# clone only a specific branch
+$ git clone -b master-cn https://github.com/adambard/learnxinyminutes-docs.git --single-branch
```
### commit
@@ -231,6 +246,9 @@ $ git commit -m "Added multiplyNumbers() function to HelloWorld.c"
# automatically stage modified or deleted files, except new files, and then commit
$ git commit -a -m "Modified foo.php and removed bar.php"
+
+# change last commit (this deletes previous commit with a fresh commit)
+$ git commit --amend -m "Correct message"
```
### diff
@@ -268,7 +286,7 @@ $ git config --global alias.g "grep --break --heading --line-number"
$ git grep 'variableName' -- '*.java'
# Search for a line that contains "arrayListName" and, "add" or "remove"
-$ git grep -e 'arrayListName' --and \( -e add -e remove \)
+$ git grep -e 'arrayListName' --and \( -e add -e remove \)
```
Google is your friend; for more examples
@@ -282,8 +300,8 @@ Display commits to the repository.
# Show all commits
$ git log
-# Show X number of commits
-$ git log -n 10
+# Show only commit message & ref
+$ git log --oneline
# Show merge commits only
$ git log --merges
@@ -303,7 +321,7 @@ $ git merge --no-ff branchName
### mv
-Rename or move a file
+Rename or move a file
```bash
# Renaming a file
@@ -338,7 +356,7 @@ $ git pull origin master --rebase
Push and merge changes from a branch to a remote & branch.
```bash
-# Push and merge changes from a local repo to a
+# Push and merge changes from a local repo to a
# remote named "origin" and "master" branch.
# git push <remote> <branch>
# git push => implicitly defaults to => git push origin master
@@ -347,23 +365,25 @@ $ git push origin master
# To link up current local branch with a remote branch, add -u flag:
$ git push -u origin master
# Now, anytime you want to push from that same local branch, use shortcut:
-$ git push
+$ git push
```
### stash
-Stashing takes the dirty state of your working directory and saves it on a stack of unfinished changes that you can reapply at any time.
+Stashing takes the dirty state of your working directory and saves it on a stack
+of unfinished changes that you can reapply at any time.
-Let's say you've been doing some work in your git repo, but you want to pull from the remote.
-Since you have dirty (uncommited) changes to some files, you are not able to run `git pull`.
-Instead, you can run `git stash` to save your changes onto a stack!
+Let's say you've been doing some work in your git repo, but you want to pull
+from the remote. Since you have dirty (uncommited) changes to some files, you
+are not able to run `git pull`. Instead, you can run `git stash` to save your
+changes onto a stack!
```bash
$ git stash
Saved working directory and index state \
"WIP on master: 049d078 added the index file"
HEAD is now at 049d078 added the index file
- (To restore them type "git stash apply")
+ (To restore them type "git stash apply")
```
Now you can pull!
@@ -410,7 +430,7 @@ Now you're ready to get back to work on your stuff!
[Additional Reading.](http://git-scm.com/book/en/v1/Git-Tools-Stashing)
-### rebase (caution)
+### rebase (caution)
Take all changes that were committed on one branch, and replay them onto another branch.
*Do not rebase commits that you have pushed to a public repo*.
diff --git a/groovy.html.markdown b/groovy.html.markdown
index 519f36ce..492c1ba2 100644
--- a/groovy.html.markdown
+++ b/groovy.html.markdown
@@ -99,7 +99,7 @@ technologies.sort()
// To sort without mutating original, you can do:
sortedTechnologies = technologies.sort( false )
-/*** Manipulating Lists ***/
+/*** Manipulating Lists ***/e
//Replace all elements in the list
Collections.replaceAll(technologies, 'Gradle', 'gradle')
@@ -200,6 +200,14 @@ def y = 10
def x = (y > 1) ? "worked" : "failed"
assert x == "worked"
+//Groovy supports 'The Elvis Operator' too!
+//Instead of using the ternary operator:
+
+displayName = user.name ? user.name : 'Anonymous'
+
+//We can write it:
+displayName = user.name ?: 'Anonymous'
+
//For loop
//Iterate over a range
def x = 0
@@ -422,6 +430,3 @@ Join a [Groovy user group](http://www.groovy-lang.org/usergroups.html)
[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
-
-
-
diff --git a/java.html.markdown b/java.html.markdown
index e4234a39..478ec683 100644
--- a/java.html.markdown
+++ b/java.html.markdown
@@ -325,6 +325,33 @@ public class LearnJava {
// toString returns this Object's string representation.
System.out.println("trek info: " + trek.toString());
+
+ // Double Brace Initialization
+ // The Java Language has no syntax for how to create static Collections
+ // in an easy way. Usually you end up in the following way:
+
+ private static final Set<String> COUNTRIES = new HashSet<String>();
+ static {
+ validCodes.add("DENMARK");
+ validCodes.add("SWEDEN");
+ validCodes.add("FINLAND");
+ }
+
+ // But there's a nifty way to achive the same thing in an
+ // easier way, by using something that is called Double Brace
+ // Initialization.
+
+ private static final Set<String> COUNTRIES = HashSet<String>() {{
+ add("DENMARK");
+ add("SWEDEN");
+ add("FINLAND");
+ }}
+
+ // The first brace is creating an new AnonymousInnerClass and the
+ // second one declares and instance initializer block. This block
+ // is called with the anonymous inner class is created.
+ // This does not only work for Collections, it works for all
+ // non-final classes.
} // End main method
} // End LearnJava class
diff --git a/pt-br/brainfuck-pt.html.markdown b/pt-br/brainfuck-pt.html.markdown
index c7ce55ee..9e4b458d 100644
--- a/pt-br/brainfuck-pt.html.markdown
+++ b/pt-br/brainfuck-pt.html.markdown
@@ -5,10 +5,11 @@ contributors:
- ["Mathias Bynens", "http://mathiasbynens.be/"]
translators:
- ["Suzane Sant Ana", "http://github.com/suuuzi"]
+ - ["Rodrigo Muniz", "http://github.com/muniz95"]
lang: pt-br
---
-Brainfuck (em letras minúsculas, eceto no início de frases) é uma linguagem de
+Brainfuck (em letras minúsculas, exceto no início de frases) é uma linguagem de
programação Turing-completa extremamente simples com apenas 8 comandos.
```
@@ -18,7 +19,7 @@ Brainfuck é representado por um vetor com 30 000 células inicializadas em zero
e um ponteiro de dados que aponta para a célula atual.
Existem 8 comandos:
-+ : Incrementa o vaor da célula atual em 1.
++ : Incrementa o valor da célula atual em 1.
- : Decrementa o valor da célula atual em 1.
> : Move o ponteiro de dados para a célula seguinte (célula à direita).
< : Move o ponteiro de dados para a célula anterior (célula à esquerda).
diff --git a/pt-br/swift-pt.html.markdown b/pt-br/swift-pt.html.markdown
index 72a57e4a..e840b8cf 100644
--- a/pt-br/swift-pt.html.markdown
+++ b/pt-br/swift-pt.html.markdown
@@ -221,7 +221,7 @@ println("Gas price: \(price)")
// Número variável de argumentos
func setup(numbers: Int...) {
- // its an array
+ // é um array
let number = numbers[0]
let argCount = numbers.count
}
diff --git a/ruby-ecosystem.html.markdown b/ruby-ecosystem.html.markdown
index d8a02d36..1fbcc752 100644
--- a/ruby-ecosystem.html.markdown
+++ b/ruby-ecosystem.html.markdown
@@ -42,7 +42,7 @@ The three major version of Ruby in use are:
* 2.0.0 - Released in February 2013. Most major libraries and frameworks support
2.0.0.
* 1.9.3 - Released in October 2011. This is the version most rubyists use
- currently.
+ currently. Also [retired](https://www.ruby-lang.org/en/news/2015/02/23/support-for-ruby-1-9-3-has-ended/)
* 1.8.7 - Ruby 1.8.7 has been
[retired](http://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/).
diff --git a/rust.html.markdown b/rust.html.markdown
index 4fbd6144..3157fcf4 100644
--- a/rust.html.markdown
+++ b/rust.html.markdown
@@ -14,7 +14,7 @@ it possible to use Rust libraries as a "drop-in replacement" for C.
Rust’s first release, 0.1, occurred in January 2012, and for 3 years development
moved so quickly that until recently the use of stable releases was discouraged
-and instead the general advise was to use nightly builds.
+and instead the general advice was to use nightly builds.
On May 15th 2015, Rust 1.0 was released with a complete guarantee of backward
compatibility. Improvements to compile times and other aspects of the compiler are
diff --git a/tcl.html.markdown b/tcl.html.markdown
index af2911c9..3982807f 100644
--- a/tcl.html.markdown
+++ b/tcl.html.markdown
@@ -356,7 +356,7 @@ eval $command ;# There is an error here, because there are too many arguments \
set replacement {Archibald Sorbisol}
set command {set name $replacement}
set command [subst $command]
-eval $command ;# The same error as before: to many arguments to "set" in \
+eval $command ;# The same error as before: too many arguments to "set" in \
{set name Archibald Sorbisol}