Installare Virtualbox su Ubuntu 16.04

Virtualbox è una splendida applicazione di virtualizzazione dell’architettura hardware x86, che ci consente di avere più sistemi operativi avviabili in finestre separate dal nostro computer.

La versione attualmente disponibile per Linux, Windows e Mac è la 5.0.22 e oggi vedremo come installarla su Ubuntu 16.04 LTS, utilizzando il modo più semplice e veloce: un paio di click e via!

Schermata del 2016-06-19 19.18.23Cominciamo quindi scaricando il pacchetto deb dal sito ufficiale di Virtualbox, scegliendo la variante che corrisponde alla nostra architettura tra i386 (32bit) e AMD64 (64bit). Potete verificare l’architettura della vostra macchina digitando il comando uname -m che risponde con x86_64 nel caso di kernel a 64bit o i686 (o varianti iN86, dove N è 3, 4 o 5) nel caso di kernel a 32bit.

Una volta stabilità l’architettura, possiamo scaricare il pacchetto, salvarlo o aprirlo direttamente da Ubuntu Software. Se lo abbiamo salvato, una volta terminato il download, dovremmo aprire la cartella in cui è stato salvato e farci doppio clic, per aprirlo in Ubuntu Software, e un click su Installa per avviare l’installazione.

Schermata del 2016-06-19 19.29.47Schermata del 2016-06-19 19.32.50

 

 

Schermata del 2016-06-19 19.39.12Vi verrà richiesta la password di amministrazione per eseguire il comando di installazione, e in pochi secondi sarà completata e dalla dash potrete avviare l’interfaccia di amministrazione (GUI) delle vostre macchine virtuali.

Se non doveste trovare subito l’icona di Virtualbox nella dash, terminate la sessione corrente e rifate il login, la troverete dove dovrebbe essere.

 

Schermata del 2016-06-19 19.43.14

Using your API across domains

Learning is a very tight journey that never ends. Recently I faced an error never met before, on accessing a resource on a different domain via HTTP.

The error was about a browser block because of a missing header in the response, so digging about this thing I came up with its explanation, that you can find here .

This involves CORS (Cross-Origin Resource Sharing) and it restricts access to resource on the server, if they are made from scripts in different domains, for security reasons.

So if you are building an API and you want to consume it from a different domain, you must place an additional header in the response to allow the browser to get the data.

Fairly simple you should put header('Access-Control-Allow-Origin', '*') in your response headers, and replace * with the domain(s) you want to allow, if you want to enable only a few domains (* means anyone can access it).

Replace in a serialized array string

When you need to replace some values in a serialized array string, you can use the following Gist:


<?php
/**
* This function will replace a given text with a new value
* in a serialized string
*
* @param string $input serialized value to seek
* @param string $search text to be replaced
* @param string $replace replacement text
* @return string new serialized string
*/
function serialize_replace($input, $search, $replace) {
$ua = unserialize($input);
$replace_callback = function (&$value, $key, $data) {
if(!is_int($value))
$value = str_replace($data['search'], $data['replace'], $value);
};
array_walk_recursive($ua, $replace_callback , ['search' => $search, 'replace' => $replace]);
$b = serialize($ua);
return $b;
}

WWDC, E3 e Euro 2016

Ieri è stata una giornatona: 3 eventi in un solo giorno, poi ci si lamenta che non succede mai niente.

La Wordwide Developer Conference di Apple è stata teatro di importanti novità, riportate in tempo zero (o live) da praticamente tutte le testate online che si occupano di tecnologia. Una cosa che mi ha fatto molto piacere è stato il minuto di silenzio all’inizio del keynote, dedicato alle vittime della tragedia di Orlando, che dimostra la straordinaria sensibilità di Mr. Tim Cook.

Se vi siete persi il keynote, ecco una sintesi di Verge, o se avete tempo la versione integrale è qui

Per quanto riguarda le novità della conferenza internazionale sull’intrattenimento E3, le notizie che più mi hanno stupito per ora sono la nuova piccola Xbox e il ritorno di Quake, uno dei giochi a cui sono più legato dai tempi della mia adolescenza. Ecco il trailer di Quake Champions

Giusto per curiosità, anche se con il calcio non è che vado molto d’accordo, ho poi deciso di guardare la partita dell’Italia e devo ammettere che soprattutto il secondo gol mi ha sorpreso. E pensare che volevo scommettere sulla sconfitta dell’Italia, meno male che non l’ho fatto 🙂

Oh My Zsh alias list

Recently I switched the default shell from bash to zsh, thanks to this beautiful project. For the setup and config, you should wait for a next post or just follow the documentation, but in the mean time just have a look at this alias list and enjoy.

Alias Command
‘cd -‘
../..
…. ../../..
….. ../../../..
…… ../../../../..
1 ‘cd -‘
2 ‘cd -2’
3 ‘cd -3’
4 ‘cd -4’
5 ‘cd -5’
6 ‘cd -6’
7 ‘cd -7’
8 ‘cd -8’
9 ‘cd -9’
_ sudo
afind ‘ack -il’
cppcompile ‘c++ -std=c++11 -stdlib=libc++’
d ‘dirs -v | head -10’
envconfig ‘subl ~/Projects/config/env.sh’
g git
ga ‘git add’
gaa ‘git add –all’
gapa ‘git add –patch’
gb ‘git branch’
gba ‘git branch -a’
gbda ‘git branch –merged | command grep -vE “^(*|\smaster\s$)” | command xargs -n 1 git branch -d’
gbl ‘git blame -b -w’
gbnm ‘git branch –no-merged’
gbr ‘git branch –remote’
gbs ‘git bisect’
gbsb ‘git bisect bad’
gbsg ‘git bisect good’
gbsr ‘git bisect reset’
gbss ‘git bisect start’
gc ‘git commit -v’
‘gc!’ ‘git commit -v –amend’
gca ‘git commit -v -a’
‘gca!’ ‘git commit -v -a –amend’
gcam ‘git commit -a -m’
‘gcan!’ ‘git commit -v -a –no-edit –amend’
‘gcans!’ ‘git commit -v -a -s –no-edit –amend’
gcb ‘git checkout -b’
gcf ‘git config –list
gcl ‘git clone –recursive’
gclean ‘git clean -fd’
gcm ‘git checkout master’
gcmsg ‘git commit -m’
‘gcn!’ ‘git commit -v –no-edit –amend’
gco ‘git checkout’
gcount ‘git shortlog -sn’
gcp ‘git cherry-pick’
gcs ‘git commit -S’
gd ‘git diff’
gdca ‘git diff –cached’
gdct ‘git describe –tags git rev-list --tags --max-count=1
gdt ‘git diff-tree –no-commit-id –name-only -r’
gdw ‘git diff –word-diff’
gf ‘git fetch’
gfa ‘git fetch –all –prune’
gfo ‘git fetch origin’
gg ‘git gui citool’
gga ‘git gui citool –amend’
ggpull ‘git pull origin $(git_current_branch)’
ggpur ggu
ggpush ‘git push origin $(git_current_branch)’
ggsup ‘git branch –set-upstream-to=origin/$(git_current_branch)’
gignore ‘git update-index –assume-unchanged’
gignored ‘git ls-files -v | grep “^[[:lower:]]”‘
git-svn-dcommit-push ‘git svn dcommit && git push github master:svntrunk’
gk ‘\gitk –all –branches’
gke ‘\gitk –all $(git log -g –pretty=format:%h)’
gl ‘git pull’
glg ‘git log –stat’
glgg ‘git log –graph’
glgga ‘git log –graph –decorate –all’
glgm ‘git log –graph –max-count=10’
glgp ‘git log –stat -p’
glo ‘git log –oneline –decorate’
globurl ‘noglob urlglobber ‘
glog ‘git log –oneline –decorate –graph’
gloga ‘git log –oneline –decorate –graph –all’
glol ‘git log –graph –pretty=format:’\”%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’\” –abbrev-commit’
glola ‘git log –graph –pretty=format:’\”%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’\” –abbrev-commit –all’
glp _git_log_prettily
glum ‘git pull upstream master’
gm ‘git merge’
gmom ‘git merge origin/master’
gmt ‘git mergetool –no-prompt’
gmtvim ‘git mergetool –no-prompt –tool=vimdiff’
gmum ‘git merge upstream/master’
gp ‘git push’
gpd ‘git push –dry-run’
gpoat ‘git push origin –all && git push origin –tags’
gpristine ‘git reset –hard && git clean -dfx’
gpu ‘git push upstream’
gpv ‘git push -v’
gr ‘git remote’
gra ‘git remote add’
grb ‘git rebase’
grba ‘git rebase –abort’
grbc ‘git rebase –continue’
grbi ‘git rebase -i’
grbm ‘git rebase master’
grbs ‘git rebase –skip’
grep ‘grep –color=auto –exclude-dir={.bzr,CVS,.git,.hg,.svn}’
grh ‘git reset HEAD’
grhh ‘git reset HEAD –hard’
grmv ‘git remote rename’
grrm ‘git remote remove’
grset ‘git remote set-url’
grt ‘cd $(git rev-parse –show-toplevel || echo “.”)’
gru ‘git reset –‘
grup ‘git remote update’
grv ‘git remote -v’
gsb ‘git status -sb’
gsd ‘git svn dcommit’
gsi ‘git submodule init’
gsps ‘git show –pretty=short –show-signature’
gsr ‘git svn rebase’
gss ‘git status -s’
gst ‘git status’
gsta ‘git stash save’
gstaa ‘git stash apply’
gstd ‘git stash drop’
gstl ‘git stash list’
gstp ‘git stash pop’
gsts ‘git stash show –text’
gsu ‘git submodule update’
gts ‘git tag -s’
gtv ‘git tag | sort -V’
gunignore ‘git update-index –no-assume-unchanged’
gunwip ‘git log -n 1 | grep -q -c “--wip--” && git reset HEAD~1’
gup ‘git pull –rebase’
gupv ‘git pull –rebase -v’
gwch ‘git whatchanged -p –abbrev-commit –pretty=medium’
gwip ‘git add -A; git rm $(git ls-files –deleted) 2> /dev/null; git commit -m “–wip–“‘
history ‘fc -l 1’
l ‘ls -lah’
la ‘ls -lAh’
ll ‘ls -lh’
ls ‘ls -G’
lsa ‘ls -lah’
md ‘mkdir -p’
please sudo
po popd
pu pushd
rd rmdir
run-help man
which-command whence
zshconfig ‘subl ~/.zshrc’