Ad

Sunday, June 17, 2018

Git and Github basics

Git is a VCS version control system. Git repository is distributed and "backed-up" "copied" by every repo user's git system. 
If the repo is centralized, we still risk the entire repo in the centralized server if that server fails. In distributed version controls, each repo retains the entire copy and the entire history, can be pushed back up into the cloud and restore the entire repo.  

$git config --global color.ui true
$git remote -v
$heroku run rake assets:precompile

git add <list o files>
git add --all
git add *.txt
git add directory/*.txt
git add directory/
git add "*.txt" (add all txt files of the entire project)

#compare diff between local and remote
git diff
# compare what's in the staged repo (after $add .) versus unstaged
git diff --staged
#unset changes in stage
git reset <filename>

## git head is the last commit on the current branch

#restoring file to the previous state
git checkout -- filename
git checkout -- fileone filetwo

# add and commit at the same time
# caveat does not add new files, still need to add it separately
git commit -a -m "comments here"

# undoing a commit
# move to the commit one before the current head (previous head)
# changes to go back to staging area
git reset --soft HEAD^
# or
git commit --amend -m "adding to the previous commit and also modify the message"
# or
#completely remove the previous commit
$git reset --hard HEAD^
# or completely remove the previous two commits
$git reset --hard HEAD^^


#sharing git
#dealing with remote repository
# git does not handle access control, it is usually is handled by GitHub or BitBucket

## check remote
$git remote -v
herokugit@heroku.com:whispering-springs-5104.git (fetch)
 herokugit@heroku.com:whispering-springs-5104.git (push)
 originhttps://github.com/theoptips/taskcloud.git (fetch)
 originhttps://github.com/theoptips/taskcloud.git (push)

 ##managing remotes
 $git remote add <name> <address>
 $git remote rm <name>

 ## heroku create will automatically add a remote called "heroku"
 git push <remote name> <branch name>
 git push heroku master

 ## branching
 $git checkout master
 $git merge <branchname>
 # git fast forward



## branching
$git checkout master
$git merge <branchname>
# git fast forward
# delete a git branch
$git branch -d <branchname>
# create a branch and checkout
$git checkout -b <branchname>

## always git pull from remote to ensure that there are no new changes
## if branch and master are at different timelines, i.e. not all new changes are committed
## in the branch that is about to be merged, then git will open an VI to view the changes
## git merge recursively and also create a node in the log about the merge

## merge commit
## if remote is ahead
## then have to pull
## which merge origin/master, the remote, with the local master
## then need to git push to add the new changes


## scenario: same file, conflicts
## git pull, syncs repo, pulls down all the changes, and try to merge
## discover a conflict
## need to edit the file, diff, edit manually to fix it,
## git commit -a
## vi editor will give a detailed message


#list all remote branches
$git branch -r
# help check branch histories versions
$git remote show <remotename>
#delete a remote branch ONLY
$git push <remotename> :<remote branch name>
$git branch -d <localbranchname>
# to delete LOCAL branch forcefully
$git branch -D <localbranchname>

Command Line basics


$less
space commands take us to the end of an document

$cat can take two files separated by a space
nano full screen program. Mainly used to edit a file

Move is very powerful for moving files around and renaming them. Move is also very powerful for moving directories.

$mv within the same directory

mv filename1.txt filename2.txt is just like rename

if instead say

mv filename.txt documents/ it is just to move doc to new directory

dot is a short cut for the current directory

cp can leave the original file in place, just like copy.

cp hello.txt hi.txt

Can't just copy a directory, but need to copy recursively,

$cp -r sourcedirectoryname destination directoryname

$rm command is very dangerous via command console

make directory $mkdir

cannot recurse, creating nested directory lil document/notes/console

mkdir -p documents/notes/console/part_1
this chaining works for nested directories


Create User Managing Users
console command:
print out the name of the user
$whoami

add a new user

$sudo adducer user_name

switch user

$su user_name

switch back to the previous user

$su previous_name

or can use exit which stops the previous su command


$exit

User permission
rwx read write execute
ugo user group other
drwxrwxrwx  d for directory, 9 permissions in ufo order
chmod change mode also changes permission
e.g.
$ chmod o+w hello.txt
$ chmod o-w hello.txt
$ chmod +x hello.txt (add execution for everyone)

Octal Notation:
01234567
10 11 12 13
one eight
one eight one one
one eight two one

r = 4 w = 2 x =1
first digit  = u
2nd digit = g
3rd digit = o

rwx = 7 --- = 0
r-x = 5, -w- = 2

e.g. chmod 751 hello.txt

File Owner Ship
$sudo chown username filename.txt
will be prompted for password
$cat filename.txt
$nano filename.txt
but with nano not able to write, only view after changing owner
CHANGING GROUP NAME
$sudo chown username:groupname filename.txt
$su username
CAN NOW MODIFY because username is the same as the owner. Before when looking at ano with a the old owner which no longer have write permission
$nano filename.txt

$sudo
a super user command, run as root super user without having to know the password etc, sudo grants permission to other users, will requires own password not the root user password,

$!! runs the previous command
$sudo !!

Process
When running nano which is a program, creates a process, which is a running instance of the program. There can be multiple instances.
task manager for processes, resources consumed like memory or CPU, process has an ID, owner,
$top
question mark key brings up help function
e.g. sort the processes
capital F allows sorting
q to quit the program

Another program , will list out all the processes, represent running processes
$ps
(can see bash, and ps) ps is itself a program that creates a process, only in the current session
$ps aux
all process for user x, mean all processes for all users. it is not an interactive program. good for knowing what's running and what is the process ID. PID

Getting specific with piping, grep takes some input search for pattern only return lines with the pattern on it. This will also show up in its own ps search.
$ps aux | grep "top"

Thursday, April 26, 2018

Python Beyond the Basics

Python tricks for Data Science
  • Alphanumeric fancy word for char.lower() in "0123456789abcdefghijklmnopqrstuvwxyz". Fun fact, "6".lower() is still "6"
  • You can get the size of your heap queue aka priority queue by taking the len() of the heapq variable. Example: heap = [] hq.heappush(heap, 3) len(heap) is now 1.
  • import random random.random() returns a number between 0 and 1, want it bigger? multiply by an integer: random.random()*5 or 5*random.random()
  • Python science, data, linear algebra library landscape: numpy for vectors matrices high level math functions. SciPy math classes and functions useful for scientists. PyLab combines other libraries to provide MATLAB like interface.

Monday, April 9, 2018

Turn on Android debugging mode - Android Development Basics

The following image shows the location of the android development debugging mode toggle button.


Remember to use the debug mode and step through function, you first must click a line to indicate where to pause, also called the break line. Then you will use the console debug menu to step through the functions step by step.

Sunday, April 1, 2018

Beginners' Glossary for Blockchain, Smart Contract and Bitcoin

Blockchain: defined by a distributed, decentralized public ledger, made of blocks, chained together using advanced mathematical computation (the crypto part) that is difficult to decode. Each transaction is validated by consensus and voting by existing records - maintained and worked by miners and distributed to all stakeholders within the decentralized network. Basically the transaction never disappears. Each contract is considered a smart contract, which can happen without the help of a centralized agency such as a bank or a central bank etc. Blockchain is not equal to Bitcoin. Bitcoin does utilize blockchain technology and cryptography to validate and maintain its blockchain, a public ledger, hence the name cryptocurrency.
While Bitcoin is the most popular cryptocurrency, there are other tokens exist in different ecosystems. Some startups have made Initial Coin Offering (ICO) offering consumers and investors to buy their tokens, which is usually seen as highly risky!

The Winklevoss twins, in the movie Social Network and previously co-founders / investors of Facebook, hold a sizable share of bitcoin. Bitcoin price recently oscillated violently after congress started to have hearing and IRS decided to pursue capital gain tax on Bitcoin sales. 50 Cents found out, years after filing bankruptcy, he once collected bitcoins from fans for his music album sales and now those coins are worth millions.

Some key players in the industry are: Etherum (platform for blockchain technology and smart contracts), its foundation, Ripple (a payment protocol), Coinbase (bitcoin wallet and bitcoin trading). Surprisingly Iceland, China and NVDIA because bitcoin miners in China have been mining bitcoins in mass and some of these powerhouses are located in Iceland, where a sizable of electricity is consumed by bitcoin mining. NVDIA because it manufactures the GPU and chips needed for these high power machines - especially those in transaction and hosted, bitcoin mining machines can be homemade.

However, remember bitcoin is a cryptocurrency and a very different concept from blockchain, a mathematical protocol and distributed data store. Bitcoin can be highly speculative. Blockchain technology can be applied in non-financial transactions. You can read more about innovative blockchain smart contract startups here
https://medium.com/@uniqtech/innovative-blockchain-startups-businesses-8bb8f96b188

React UI, UI UX, Reactstrap React Bootstrap

React UI MATERIAL  Install yarn add @material-ui/icons Reactstrap FORMS. Controlled Forms. Uncontrolled Forms.  Columns, grid