L'acquisto e' stato necessario perche' l'altra macchina da rack disponibile era un vecchio IServer (sempre IBM) piu' o meno anno 2003-2004 con processori Xeon ma purtroppo a 32 bit e quindi non utili a far girare Proxmox
martedì 19 agosto 2014
IBM X3550/7978 per Proxmox
Per un costo tutto sommato accettabile (130 euro) mi sono comprato un server IBM X3550/7978 in formato 1U con un quadcore xeon ed 8 giga di ram per giocare con Proxmox
L'acquisto e' stato necessario perche' l'altra macchina da rack disponibile era un vecchio IServer (sempre IBM) piu' o meno anno 2003-2004 con processori Xeon ma purtroppo a 32 bit e quindi non utili a far girare Proxmox
L'acquisto e' stato necessario perche' l'altra macchina da rack disponibile era un vecchio IServer (sempre IBM) piu' o meno anno 2003-2004 con processori Xeon ma purtroppo a 32 bit e quindi non utili a far girare Proxmox
IptabLes IptabLex Trojan e Apache 2
Qualche giorno fa sono stato contattato da un amico perche' il suo server aveva genericamente dei problemi intermittenti sulla rete. Premettendo che non faccio piu' il sistemista Linux da una decina d'anni ho provato in ogni caso ad dare un'cchiata
La macchina era stata dichiarata per essere una Debian ma in realta' aveva installato una Ubuntu Server 11.04 base e la macchina sostanzialmente non era mai stata gestita. I primi problemi sono nell'ordine
La macchina era stata dichiarata per essere una Debian ma in realta' aveva installato una Ubuntu Server 11.04 base e la macchina sostanzialmente non era mai stata gestita. I primi problemi sono nell'ordine
- apt-get non funzionante quindi impossibile fare gli aggiornamenti di sistema. Peraltro apt-get update (nel caso avesse funzionato) mostrava la necessita' di aggiornare le libc
- non era installato il sistema build-essential quindi era impossibile anche installare programmi da sorgenti
- la macchina aveva solo l'utente root e l'utente di lavoro entrambi con la medesima banale password
- erano esposti senza filtri i servizi sulla porta 22 (SSH permetteva anche il login da root), porta 80 (Apache) 3306 (Mysql) e 21 (FTP)
Eseguendo un iftop la banda era quasi tutta saturata da un traffico in uscita di diverse Megabit su porta 80 verso akamai (un noto servizio olandese a cui si appoggiano su cui si appoggiano praticamente tutti i grandi nomi da Microsoft, Apple, Adobe....), ed un paio di siti cinesi
il primo sito cinese ad una scansione con nmap non dava particolari informazioni mentre il secondo (14.17.x.x) mostrava aperte tutte le seguenti porte (7,9,13,21,22,23,25,26,37,53,79,80,81,88,106,110,111,113,119,135,139,143,144,179 e cosi' via). In pratica il secondo indirizzo sembra essere un honeypot...strano...
usando rootkit hunter non e' stato mostrato niente di strano (tutti i controlli passati)
Memore di un paio di attacchi di 10 anni prima ho provato a cercare delle directory triplo punto (...) in cui erano nascosti file sospetti ma niente. Anche l'occupazione dello spazio disco non mostrava niente di anomalo (ero abituato ad attacchi che installano degli ftp pirata per cercavo l'eventuale directory di upload/download)
Frugando meglio con netstat (netstat -tulpn) mi sono saltate subito all'occhio le chiamate di iptables (vedi immagine sottostante)
ancora di piu' mi e' saltata subito all'occhio la grafia. Non si trattava del normale comando iptables ma di IptabLes (notare le maiuscole!!). in pratica era stato installato un programma da un nome simile ad un legittimo comando nella speranza di nascondersi
Da qui e' partita una breve ricerca che mi ha portato a questo link dove e' spiegato come questo sia un trojan che si installa usando una vulnerabilita' zero day legata ad Apache 2 (il messaggio e' datato maggio 2013)
Leggendo le istruzioni ho trovato i file ospite esattamente dove erano indicati dalla guida
In sostanza il server era usato per effettuare attacchi DDOS verso siti cinesi e verso Akamai
Una analisi completa del programma e' riportata da questo link dove si suppone l'origine cinese
Giusto per vedere se potevo guadagnare un po' di tempo in attesa di mettere su un nuovo server ho provato a killare il programma a mano ed a rimuovere i programmi IptabLes e IptabLex ma il mattino successivo il trojan era di nuovo al suo posto (non avendo potuto aggiornare Apache la macchina era rimasta vulnerabile e probabilmente gli attacchi sono automatizzati)
Sostituzione di batteria di MacBook A1286 Mid 2009
Mi sono trovato a dover cambiare una batteria da un MacBook A1286 Mid 2009 ed ho dovuto ad imparare a mie spese come funzionano i nomi dei computer per Apple
Dopo aver acquistato su Amazon una batteria per A1286 mi sono apprestato a sostituirla quando ho visto che i connettori (non le dimensioni) non erano coincidenti tra l'originale ed il pezzo di ricambio
Di fatto con il codice a1286 non e' indicato un computer ma una intera famiglia di MacBook prodotti nell'arco di diversi anni. In particolare nel 2009 la batteria impiegata e' identificata dal codice A1321 mentre i successivi modelli sono passati alla batteria A1382 (ovviamente non compatibile con la precedente)
Una volta arrivato il ricambio giusto l'apertura del portatile e' semplice perche' basta svitare tutte le viti sul retro (attenzione, tre viti sono diverse da tutte le altre e sono poste sul posteriore in corrispondenza delle aperture di raffreddamento). La batteria sembra essere stata bloccata da ulteriori due viti (ci sono le asole) ma sul modello a me arrivato queste viti non sono presenti forse per precedenti manutenzioni
La sostituzione e' banale e richiede meno di un quarto d'ora
Dopo aver acquistato su Amazon una batteria per A1286 mi sono apprestato a sostituirla quando ho visto che i connettori (non le dimensioni) non erano coincidenti tra l'originale ed il pezzo di ricambio
Di fatto con il codice a1286 non e' indicato un computer ma una intera famiglia di MacBook prodotti nell'arco di diversi anni. In particolare nel 2009 la batteria impiegata e' identificata dal codice A1321 mentre i successivi modelli sono passati alla batteria A1382 (ovviamente non compatibile con la precedente)
La sostituzione e' banale e richiede meno di un quarto d'ora
Collezione di processori (2)
Sono stati aggiunti altri 7 processori alla mia collezione
Particolarmente interessanti (perche' piuttosto rari) i Pentium Pro
mercoledì 6 agosto 2014
Selinux e Apache su CentOs
Cercando di far funzionare l''uploader di JQuery mi sono trovato in un comportamento strano che non era giustificato dai permessi sui file e sulle directory. Nonostate tutti i permessi del file system fossero corretti non veniva scritto niente sul disco del server. Il sospetto e' ricaduto immediatamente su Selinux
questo lo stato (ovvero attivo)
sestatus
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
una occhiata con il seguente comando mostra i permessi di scrittura negati al demone http
aureport --avc | tail
19. 06/08/2014 14:01:08 httpd system_u:system_r:httpd_t:s0 2 dir write unconfined_u:object_r:httpd_sys_content_t:s0 denied 540
20. 06/08/2014 14:01:52 httpd system_u:system_r:httpd_t:s0 2 dir write unconfined_u:object_r:httpd_sys_content_t:s0 denied 542
21. 06/08/2014 14:02:15 httpd system_u:system_r:httpd_t:s0 2 dir write unconfined_u:object_r:httpd_sys_content_t:s0 denied 544
22. 06/08/2014 14:02:15 httpd system_u:system_r:httpd_t:s0 2 dir add_name unconfined_u:object_r:httpd_sys_content_t:s0 denied 544
23. 06/08/2014 14:02:15 httpd system_u:system_r:httpd_t:s0 2 file create system_u:object_r:httpd_sys_content_t:s0 denied 544
24. 06/08/2014 14:02:15 httpd system_u:system_r:httpd_t:s0 2 file write system_u:object_r:httpd_sys_content_t:s0 denied 544
----------------------------------------------------------------------
per avere qualche suggerimento ho usato
grep httpd_sys_content /var/log/audit/audit.log | audit2allow
questo lo stato (ovvero attivo)
sestatus
----------------------------------------------------------------------
SELinux status: enabledSELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
----------------------------------------------------------------------
se disattivo temporaneamente tutto Selinux i file vengono salvati nella cartella di upload
setenforce 0
non ho voglia pero' di disabilitare tutto Selinux e lo riattivo
setenforce 1
aureport --avc | tail
----------------------------------------------------------------------
18. 06/08/2014 14:01:01 ? system_u:system_r:init_t:s0 0 (null) (null) (null) unset 53519. 06/08/2014 14:01:08 httpd system_u:system_r:httpd_t:s0 2 dir write unconfined_u:object_r:httpd_sys_content_t:s0 denied 540
20. 06/08/2014 14:01:52 httpd system_u:system_r:httpd_t:s0 2 dir write unconfined_u:object_r:httpd_sys_content_t:s0 denied 542
21. 06/08/2014 14:02:15 httpd system_u:system_r:httpd_t:s0 2 dir write unconfined_u:object_r:httpd_sys_content_t:s0 denied 544
22. 06/08/2014 14:02:15 httpd system_u:system_r:httpd_t:s0 2 dir add_name unconfined_u:object_r:httpd_sys_content_t:s0 denied 544
23. 06/08/2014 14:02:15 httpd system_u:system_r:httpd_t:s0 2 file create system_u:object_r:httpd_sys_content_t:s0 denied 544
24. 06/08/2014 14:02:15 httpd system_u:system_r:httpd_t:s0 2 file write system_u:object_r:httpd_sys_content_t:s0 denied 544
----------------------------------------------------------------------
per avere qualche suggerimento ho usato
grep httpd_sys_content /var/log/audit/audit.log | audit2allow
----------------------------------------------------------------------
#============= httpd_t ==============
allow httpd_t httpd_sys_content_t:dir { write add_name };
allow httpd_t httpd_sys_content_t:file { write create setattr };
----------------------------------------------------------------------
allow httpd_t httpd_sys_content_t:dir { write add_name };
allow httpd_t httpd_sys_content_t:file { write create setattr };
----------------------------------------------------------------------
che indica di abilitare in scrittura httpd
girando un po' per Google e' consigliato di abilitare i seguenti comandi selinux nel caso che sviluppino webapp
setsebool -P httpd_enable_cgi on
setsebool -P httpd_unified on
setsebool -P httpd_builtin_scripting on
a questo punto l'uploader funziona con Selinux attivato
altrimenti il metodo proposto sul wiki di Selinux e' il seguente
grep httpd _sys_content /var/log/audit/audit.log | audit2allow -M apache_selinux
semodule -i apache_selinux.pp altrimenti il metodo proposto sul wiki di Selinux e' il seguente
grep httpd _sys_content /var/log/audit/audit.log | audit2allow -M apache_selinux
SD Card su CentOS 7
Al momento di inserire un SD Card nel lettore del mio IBM T61 mi sono accorto che la CentOs 7 non mi mostrava il dispositivo ed ovviamente non lo montava
dal comando lspci il lettore risulta essere un Ricoh
15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ba)
15:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 04)
15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)
15:00.4 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 11)
15:00.5 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 11)
La soluzione e' quanto mai semplice
Basta digitare
modprobe sdhci
per fa comparire sul desktop l'icona della SD Card
dal comando lspci il lettore risulta essere un Ricoh
15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ba)
15:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 04)
15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)
15:00.4 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 11)
15:00.5 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 11)
La soluzione e' quanto mai semplice
Basta digitare
modprobe sdhci
per fa comparire sul desktop l'icona della SD Card
martedì 5 agosto 2014
Filezilla e Chrome OS su CentOs 7
Per installare Filezilla su CentOs 7 si devono aggiungere i repository mediante il comando
rpm -Uvh http://epel.mirror.net.in/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
fatto cio' si puo' installare il programma semplicemente con
yum install filezilla
Per Chrome la procedura e' leggermente piu' complicata (il supporto di Chrome a CentOs e' limitato alla versione 7)
da linea di comando si crea e popola il file google-chrome.repo
cat << EOF > /etc/yum.repos.d/google-chrome.repo [google-chrome] name=google-chrome - \$basearch baseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub EOF
per installare il browser si digita quindi il comando
yum install google-chrome-stable
rpm -Uvh http://epel.mirror.net.in/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
yum install filezilla
Per Chrome la procedura e' leggermente piu' complicata (il supporto di Chrome a CentOs e' limitato alla versione 7)
da linea di comando si crea e popola il file google-chrome.repo
cat << EOF > /etc/yum.repos.d/google-chrome.repo [google-chrome] name=google-chrome - \$basearch baseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub EOF
per installare il browser si digita quindi il comando
yum install google-chrome-stable
lunedì 4 agosto 2014
LAMP su Centos 7
Mi sono trovato a dover sostituire un server basato su una obsoleta Ubuntu server che era stato bucato e dato l'uso professionale ho cercato di installare un sistema di impostazione piu' seria con un supporto di sicurezza prolungato nel tempo.
Nonostante non lavori su RedHat dal lontano 2004 ho voluto provare CentOS 7 nella speranza di aver un sistema solido (sicuramente la politica di partire da una installazione minimale con tutti i servizi da abilitare e le porte del firewall da aprire a mano ti rende consapevole di cio' che stai facendo). Questa scelta la ho pagata perche' alcuni aspetti di CentOS sono piuttosto peculiari (per esempio lanciare il comando ifoconfig ed avere a che fare con il nuovo firewall basato su firewall-cmd al posto di iptabls)..in ogni caso nel giro di un paio di ore il sistema era in linea
Dopo l'installazione minimale ho controllato la configurazione della rete con
/usr/sbin/ifconfig (non ifconfig, si deve richiamare tutto il path)
per installare i servizi base si usa
yum -y install httpd (per apache)
si installa php e qualche modulo
a questo punto per fare in modo che il servizio http si riavvi al prossimo reboot si deve specificare enable
systemctl enable httpd.service
La porta 80 e' chiusa di default e deve essere abilitata esplcitamente. Per rendere la modifica alle regole del firewalle permanente si deve usare lo switch permanent
firewall-cmd --permanent --add-service=http
Poi si abilita Mysql (solo il pacchetto si chiama MariaDb, i comandi sono i classici mysql)
Nonostante non lavori su RedHat dal lontano 2004 ho voluto provare CentOS 7 nella speranza di aver un sistema solido (sicuramente la politica di partire da una installazione minimale con tutti i servizi da abilitare e le porte del firewall da aprire a mano ti rende consapevole di cio' che stai facendo). Questa scelta la ho pagata perche' alcuni aspetti di CentOS sono piuttosto peculiari (per esempio lanciare il comando ifoconfig ed avere a che fare con il nuovo firewall basato su firewall-cmd al posto di iptabls)..in ogni caso nel giro di un paio di ore il sistema era in linea
Dopo l'installazione minimale ho controllato la configurazione della rete con
/usr/sbin/ifconfig (non ifconfig, si deve richiamare tutto il path)
per installare i servizi base si usa
yum -y install httpd (per apache)
yum -y install mariadb-server mariadb (per mysql)
yum install php php-mysql php-gd php-pear -y
a questo punto per fare in modo che il servizio http si riavvi al prossimo reboot si deve specificare enable
systemctl enable httpd.service
La porta 80 e' chiusa di default e deve essere abilitata esplcitamente. Per rendere la modifica alle regole del firewalle permanente si deve usare lo switch permanent
firewall-cmd --permanent --add-service=http
Poi si abilita Mysql (solo il pacchetto si chiama MariaDb, i comandi sono i classici mysql)
systemctl enable mariadb.service
e si configura la password di root del server Sql
e si configura la password di root del server Sql
mysql_secure_installation
per installa PhpMyAdmin si devono aggiungere i repository di rpmforge con il seguente comando
rpm -Uvh http://fedora.mirrors.romtelecom.ro/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
e poi installare phpMyAdmin
yum install phpmyadmin
per installa PhpMyAdmin si devono aggiungere i repository di rpmforge con il seguente comando
rpm -Uvh http://fedora.mirrors.romtelecom.ro/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
e poi installare phpMyAdmin
yum install phpmyadmin
sempre con il concetto di chiusura la pagina di phpmyadmin e' di default visibile al solo localhost. Si deve quindi editare il file
nano /etc/httpd/conf.d/phpMyAdmin.conf
per permettere l'accesso ad altre macchine
yum install net-tools (netstat)
yum install ntfs-3g (per il supporto ad ntfs)
yum install mc (midnight commander)
yum install ntfs-3g (per il supporto ad ntfs)
yum install mc (midnight commander)
mercoledì 30 luglio 2014
Powerbook 150
Ho aspettato 7 anni prima di poter aggiungere questo calcolatore alla mia collezione ma ne e' valsa la pena.
La macchina e' completamente funzionante (per quanto lo possa essere una macchina vecchia 20 anni) e monta un glorioso System 7.1.1 con ben 4 Mb di ram
La macchina e' completamente funzionante (per quanto lo possa essere una macchina vecchia 20 anni) e monta un glorioso System 7.1.1 con ben 4 Mb di ram
Insieme al computer mi e' stata donata anche la scheda di conversione Ethernet
martedì 29 luglio 2014
Eclipse ADT su Mac Os X 10.9
Mi sono trovato a dover spostare parte dello sviluppo su una macchina Mac ed ho provato ad installare Eclipse ADT per la parte Android
Al momento di aprire i progetti (gia' funzionanti su altra macchina) mi sono trovato un segno esclamativo su ogni progetto con l'errore
JRE System Library, I can't find the 1.7 (there is only option for it : JavaSE-1.7 (unbound)
Dopo un po' di ricerche ho visto che oltre ad installare la JRE si deve andare in Preferenze (Mela+virgola), Preferenze (Properties), Java, Installed JRE ed inserire il path
/Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home
Al momento di aprire i progetti (gia' funzionanti su altra macchina) mi sono trovato un segno esclamativo su ogni progetto con l'errore
JRE System Library, I can't find the 1.7 (there is only option for it : JavaSE-1.7 (unbound)
Dopo un po' di ricerche ho visto che oltre ad installare la JRE si deve andare in Preferenze (Mela+virgola), Preferenze (Properties), Java, Installed JRE ed inserire il path
/Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home
giovedì 24 luglio 2014
Actionbar su Android
Agli albori di Android era presente un tasto fisico di menu assieme agli attuali tre pulsante in fondo allo schermo. Dalla versione 3 questo e' stato superato dalla ActionBar, una sorta di menu che si trova nella parte alta dello schermo in prossimita' del nome dell'applicazione (indicata dai tre quadratini sovrapposti)
per popolare questo componente si edita il file xml che ha lo stesso nome della Activity e che si trova nelle risorse del progetto (normalmente e' /res/menu/main.xml)
per generare l'esempio mostrato nella figura soprastante
--------------------------------------------------------------------------------
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.luca.innocenti.ibea2.MainActivity" >
<item android:id="@+id/it" android:title="@string/it" android:checked="true" android:checkable="true"></item>
<item android:id="@+id/uk" android:title="@string/uk" android:checked="false" android:checkable="true"></item>
</menu>
--------------------------------------------------------------------------------
per popolare questo componente si edita il file xml che ha lo stesso nome della Activity e che si trova nelle risorse del progetto (normalmente e' /res/menu/main.xml)
per generare l'esempio mostrato nella figura soprastante
--------------------------------------------------------------------------------
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.luca.innocenti.ibea2.MainActivity" >
<item android:id="@+id/it" android:title="@string/it" android:checked="true" android:checkable="true"></item>
<item android:id="@+id/uk" android:title="@string/uk" android:checked="false" android:checkable="true"></item>
</menu>
--------------------------------------------------------------------------------
Per rendere interattivo il menu si agisce sulla funzione onOptionItemSelected
In questo caso si eliminano prima tutti i segni di spunta, poi viene settata la variabile della lingua, aggiunge il segno di spunta al menu premuto e si mostra un toast
--------------------------------------------------------------------------------
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
menu.getItem(0).setChecked(false);
menu.getItem(1).setChecked(false);
switch(id){
case R.id.it:
lingua = 1;
Toast.makeText(getApplicationContext(), "Adesso impostato in italiano", Toast.LENGTH_SHORT).show();
if(item.isCheckable()) {
item.setChecked(!item.isChecked());
}
break;
case R.id.uk:
lingua = 2;
Toast.makeText(getApplicationContext(), "Now Set in english", Toast.LENGTH_SHORT).show();
if(item.isCheckable()) {
item.setChecked(!item.isChecked());
}
break;
}
return super.onOptionsItemSelected(item);
}
--------------------------------------------------------------------------------
Di seguito un breve filmato per vedere come funziona il menu appena impostato
mercoledì 23 luglio 2014
A volte ritornano (Clone S4)
A volte ritornano e non sono proprio sani....
Avevo gia' avuto per le mani questo clone di Samsung S4 ed adesso mi e' stato regalato. Il motivo e' chiaramente spiegato dalla foto sottostante
a dispetto delle condizioni del vetro il telefono funziona diciamo al 95% delle proprie possibilita'
L'unica cosa che e' veramente impossibile da fare e' trascinare in quanto si incontra quasi sempre qualche cricca del vetro e il digitizer interpreta come se si sia staccato il dito
Avevo gia' avuto per le mani questo clone di Samsung S4 ed adesso mi e' stato regalato. Il motivo e' chiaramente spiegato dalla foto sottostante
a dispetto delle condizioni del vetro il telefono funziona diciamo al 95% delle proprie possibilita'
L'unica cosa che e' veramente impossibile da fare e' trascinare in quanto si incontra quasi sempre qualche cricca del vetro e il digitizer interpreta come se si sia staccato il dito
Debian su Promox all'interno di Virtualbox
Prima di passare ad una macchina vera (un bare metal da 16 Giga di ram e 4 processori) ho voluto provare Proxmox su VirtualBox (su un MacBook con 8 Giga di Ram installati)
Le specifiche per Virtualbox sono
1) mettere la scheda virtuale in bridge
2) massimizzare la ram alla macchina virtuale Proxmox
3) massimizzare i processori alla macchina virtuale
4) fregarsene del video ovvero impostazioni minime
A questo punto si lancia l'installazione che inizia con l'EULA
installazione del sistema
Le specifiche per Virtualbox sono
1) mettere la scheda virtuale in bridge
2) massimizzare la ram alla macchina virtuale Proxmox
3) massimizzare i processori alla macchina virtuale
4) fregarsene del video ovvero impostazioni minime
A questo punto si lancia l'installazione che inizia con l'EULA
installazione del sistema
Alla fine dell'installazione la macchina e' raggingibile in https sulla porta 8006
ma ovviamente si ha anche un accesso di shell
A questo punto punto si puo' iniziare a montare una nuova macchina virutale con il pulsante Create VM
Internet WayBack Machine
Ho lavorato per circa quattro mesi al sito www.geo.unifi.it nel 2003 e pansavo di aver perso tutto il lavoro quando il nuovo sistemista e' passato ad una nuova piattaforma ed ha rimosso tutte le precedenti pagine
con un po' di sorpresa tramite il sito archive.org/web e' possibile riavere delle fotografie di vari
Anche questo blog e' stato registrato un paio di volte.
Ancora una volta la rete nasconde ma non cancella
martedì 22 luglio 2014
R cannot be resolved in Eclipse
Passando all'ultima versione di ADT mi sono aumentati i mal di testa. E' un paio di giorni che passo il tempo a cercare di risolvere gli errori di Eclipse piuttosto che a programmare
Creando una nuovo progetto su una installazione pulita di ADT Bundle su Windows e' saltato fuori questo messaggio
R Cannot Be Resolved
Frugando sui blog la soluzione e' stata quella di togliere di mettere la spunta su Android 4.4.2 in Java Build Path
Dopo aver fatto un Clean Project l'errore e' scomparso
La cosa divertente e' che ritogliendo la spunta non viene piu' generato l'errore
Rinuncio a capire
Creando una nuovo progetto su una installazione pulita di ADT Bundle su Windows e' saltato fuori questo messaggio
R Cannot Be Resolved
Frugando sui blog la soluzione e' stata quella di togliere di mettere la spunta su Android 4.4.2 in Java Build Path
Dopo aver fatto un Clean Project l'errore e' scomparso
La cosa divertente e' che ritogliendo la spunta non viene piu' generato l'errore
Rinuncio a capire
Android KitKat 4.4.4 su Moto G
.Un paio di giorni fa e' arrivato l'aggiornamento per KitKat 4.4.4 su Moto G (poco dopo quello per Nexus 7 che invece di passare da 4.4.2 ha avuto un aggiornamento intermedio a 4.4.3)
Non ci sono particolari modifiche (a parte la schermata di selezione delle telefonate)
Facendo un po' di prove sembra sparito il bug che metteva in conflitto il Bluetooth con il WiFI ma il benchmark AnTuTu (stranamente) e' sceso da 17533 punti a 17100 punti
Non ci sono particolari modifiche (a parte la schermata di selezione delle telefonate)
Facendo un po' di prove sembra sparito il bug che metteva in conflitto il Bluetooth con il WiFI ma il benchmark AnTuTu (stranamente) e' sceso da 17533 punti a 17100 punti
AndroidIBeaconLibrary e' morta??
Un po' di tempo fa avevo indicato come sviluppare applicazione IBeacon su Android mediante l'utilizzo della libreria AndroidIBeaconLibrary di Radius
In questi giorni avevo bisogno di rimettere mano alla libreria e con mia grande sorpresa il progetto e' scomparso dal sito di Radius Network e la pagina GitHub mostra un laconico messaggio
Per avere un po' di idee sul motivo di una cosi' repentina rimozione si puo' leggere questo post
Ma e' veramente morta questa libreria??
La cosa divertente e' che su GitHub sono presenti ancora tutti i commit per cui e' sufficiente effettuare un fork del progetto (legale in base alla licenza Apache) mediante l'apposito pulsante
per copiare tutta la storia di commit nella propria pagina GitHub.
A questo punto si puo' cliccare il pulsante Clone On Desktop per copiare tutta la storia dei commit anche sul proprio client
In questi giorni avevo bisogno di rimettere mano alla libreria e con mia grande sorpresa il progetto e' scomparso dal sito di Radius Network e la pagina GitHub mostra un laconico messaggio
Per avere un po' di idee sul motivo di una cosi' repentina rimozione si puo' leggere questo post
Ma e' veramente morta questa libreria??
La cosa divertente e' che su GitHub sono presenti ancora tutti i commit per cui e' sufficiente effettuare un fork del progetto (legale in base alla licenza Apache) mediante l'apposito pulsante
per copiare tutta la storia di commit nella propria pagina GitHub.
A questo punto si puo' cliccare il pulsante Clone On Desktop per copiare tutta la storia dei commit anche sul proprio client
con il comando Revert si puo' quindi generare una qualsiasi release della libreria
Ancora piu' semplice, visto che la rete nasconde ma difficilmente cancella, sui server di Amazon sono disponibili ancora i file tar.gz della versione per Eclipse
Per rendere le cose ancora piu' semplici ho copiato le ultime tre versioni sul mio Google Drive (tutte per uso con Eclipse)
Eclipse : Failed to create the Java Virtual Machine
A seguito del post precedente, ho reinstallato tutto l'ADT Bundle su Windows ed e' comparso il seguente errore
La soluzione per risolvere l'errore e' modificare il file eclipse.ini diminuendo la memoria a disposizione di Eclipse (nel mio caso portandola a 128 Mb)
Eclipse.ini
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120913-144807
-product
com.android.ide.eclipse.adt.package.adtproduct
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=128m
-Xms512m
-Xmx1024m
lunedì 21 luglio 2014
Aggiornamento ADT 23 ed errore DDMS
Dopo il recente aggiornamento di ADT Bundle Eclipse richiede degli aggiornamenti (23.0.0) ma non scarica niente dato che la dipendenza e' gia' soddisfatta
Tentando di compilare viene generato l'errore
DDMS files not found
La soluzione rapida e' quella di reinstallare ADT Bundle :<<<<
Tentando di compilare viene generato l'errore
DDMS files not found
La soluzione rapida e' quella di reinstallare ADT Bundle :<<<<
Registrare lo schermo di Android
Alcune volte puo' essere utile realizzare una registrazione dello schermo per esempio per spiegare come funziona una applicazione ad un utente
Con Android 4.4 esiste un modo integrato per fare cio' mediante l'utilizzo del comando adb
Una volta collegato il telefono al PC si puo' digitare il seguente comando
adb shell screenrecord --time-limit 30 /sdcard/kitkat.mp4
per registrare un video di 30 secondi e salvarlo sul file kitkat.mp4
Di seguito un breve esempio in cui si evidenzia la fluidita' del video prodotto
Con Android 4.4 esiste un modo integrato per fare cio' mediante l'utilizzo del comando adb
Una volta collegato il telefono al PC si puo' digitare il seguente comando
adb shell screenrecord --time-limit 30 /sdcard/kitkat.mp4
per registrare un video di 30 secondi e salvarlo sul file kitkat.mp4
Di seguito un breve esempio in cui si evidenzia la fluidita' del video prodotto
lunedì 14 luglio 2014
Collezione processori
Un po' di tempo fa, quando i desktop erano i computer principali e si cambiavano al ritmo di uno ogni paio di anni, era facile trovare abbandonati al cassonetto dei case completi di processori. Questo ha alimentato la mia collezione di processori (principalmente X86 e principalmente Intel, i processori Apple sono rimasti montati nei calcolatori completi) almeno fino a quando ho fatto come lavoro anche il tecnico informatico
Attualmente la collezione ha oltre 200 processori unici (i doppioni non sono conteggiati) con alcune chicche come un processore di una Alpha
I processori sono rimasti a lungo (almeno fino a quando non mi sono sposato) appesi a due poster che riporto di seguito ad alta definizione per riconoscere il tipo di processore
Da Sim a MicroSim
Ho regalato a mia moglie un telefono dual sim "moderno" che e' passata da un NGM ad un MotoE
Avevo sottovalutato il fatto che nel primo telefono erano presenti delle SIM mentre nel MotoE sono necessarie le microSim
Ho letto un po' a giro se era fattibile farlo in casa ma in generale era sconsigliato e si trovano in giro degli apparecchi che fanno il taglio (tipo questo)
Ho trovato per casa una sagoma di microsim ed ho provato a farlo da solo
Avevo sottovalutato il fatto che nel primo telefono erano presenti delle SIM mentre nel MotoE sono necessarie le microSim
Ho letto un po' a giro se era fattibile farlo in casa ma in generale era sconsigliato e si trovano in giro degli apparecchi che fanno il taglio (tipo questo)
Ho trovato per casa una sagoma di microsim ed ho provato a farlo da solo
sovrapposte la sim e la sagoma ho disegnato il profilo con un pennarello indelebile. Si vede che parte del taglio ricade sulla parte del chip e cio' mi ha messo un po' in allarme ma alla fine ho tagliato con delle normali forbici seguendo il bordo esterno del profilo nero
Tutto ha funzionato alla prima per entrambe le sim. Sono state blocccate perfettamente dal meccanismo di aggancio e sono state riconosciute dal software. Tanto rumore per nulla
mercoledì 9 luglio 2014
Associare IPhone ad XCode
Per poter provare le applicazione IOS direttamente dentro ad un telefono reale (e non il simulatore) oltre a pagare Apple per registrarsi come developer si deve anche registrare il dispositivo all'interno del proprio profilo (c'e' un limite di 100 dispositivi per sviluppatore)
Per prima cosa si deve aprire XCode (con l'IPhone collegato ed aprire Window/Devices)
L'identificativo del dispositivo e' una stringa di 40 caratteri
a questo punto si va sul proprio profilo sviluppatore sul sito Apple e si inserisce il codice copiato in precedenza
Per prima cosa si deve aprire XCode (con l'IPhone collegato ed aprire Window/Devices)
L'identificativo del dispositivo e' una stringa di 40 caratteri
a questo punto si va sul proprio profilo sviluppatore sul sito Apple e si inserisce il codice copiato in precedenza
Fatto cio' e' possibile testare le applicazioni sul proprio IPhone
martedì 8 luglio 2014
IBeacon ed aggiornamento IOS 7.1.2 su Iphone 4S
Sviluppando per beacon su IOS mi sono trovato di fronte ad una cosa piuttosto strana
Il medesimo codice che girava correttamente su un Iphone 5S si rifiutava di funzionare su Iphone 4S a parita' di IOS installato
Con l'uscita dell'aggiornamento ad IOS 7.1.2 tutto si e' risolto senza modificare nessuna parte del codice dell'applicazione
Libri obsoleti
Ho salvato dal macero un po' di archeologia informatica in formato cartaceo.
Come si vede andava di moda Fortran ma la lettura dei manuali Digital apre veramente un mondo su cosa erano i calcolatori negli anni 70
da osservare anche il livello di dettaglio tecnico presente nella documentazione
Come si vede andava di moda Fortran ma la lettura dei manuali Digital apre veramente un mondo su cosa erano i calcolatori negli anni 70
da osservare anche il livello di dettaglio tecnico presente nella documentazione
lunedì 7 luglio 2014
Beacon su IOS
A seguito delle prove effettuate in questo post ed in questo post (usando in entrambi i casi un telefono Moto G con Android e librerie Radius) mi sono convertito ad IOS ed ho ripetuto l'esperienza usando un IPhone 4S con le medesime antenne usate in precedenza e le API di IOS
non ho ancora capito bene il motivo ma sembra che il segnale risulta nettamente piu' stabile su IOS che su Android (hardware o software???)
da notare che al contrario di Android su IOS vengono segnalati come valori negativi le fallite acquisizioni
il codice impiegato per misurare il segnale e' riportato in seguito (ripreso da questo link dall'esempio Art Gallery)
#import "ViewController.h"
#define ESTIMOTE_PROXIMITY_UUID [[NSUUID alloc] initWithUUIDString:@"4506F9C7-00F9-C206-C12C-C2F9C702D3C3"]
int oldminor;
@interface ViewController ()
@property (nonatomic, strong) NSMutableArray *beacons;
@property (nonatomic, strong) NSArray *paintings;
@property (nonatomic, strong) CLLocationManager *locationManager;
@property (nonatomic, strong) CLBeaconRegion *beaconRegion;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
_beacons = [[NSMutableArray alloc] init];
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
_beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:ESTIMOTE_PROXIMITY_UUID
identifier:@"lucainnoc.Ibeareader"];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)viewDidAppear:(BOOL)animated
{
[_locationManager startRangingBeaconsInRegion:_beaconRegion];
}
- (void)viewDidDisappear:(BOOL)animated
{
[_locationManager stopRangingBeaconsInRegion:_beaconRegion];
}
- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
if (beacons.count) {
CLBeacon *closestBeacon;
for (CLBeacon *beacon in beacons) {
NSLog([NSString stringWithFormat:@"%f", beacon.accuracy]);
}
}
}
@end
Webview su IOS
Per poter implementare una WebView su IOS, dopo aver trascinato il componente WebView, si dichiara il nuovo componente come
@interface ViewController : UIViewController
{
IBOutlet UIWebView *Vista;
}
In questo caso la web view si chiamera' Vista
Per modificare la URL a cui punta la webview si agisce con il seguente comando
[Vista loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]]];
Attenzione: di default la webview occupa tutto lo schermo per cui non sono visibile gli altri eventuali controlli (tipo pulsanti o label)
martedì 17 giugno 2014
SD Card su Macbook Pro A1286
Recentemente mi e' stato prestato un MacBook Pro A1286 un po' datato (meta' 2009) ma sempre una bella macchina.
Non lo sapevo ma questo modello dispone di un lettore integrato di SD Card e dato che avevo da scaricare delle foto ho inserito la memoria nell'apposito slot
Con un certo disappunto non compariva il dispositivo nel Finder. Sulla prima ho pensato che il componente fosse rotto (data l'eta' del calcolatore) ma da una ricerca su Internet ho verificato che si tratta di un problema conosciuto. In pratica non si deve inserire la memoria fino in fondo ma, a tentativi, si deve trovare il punto in cui il lettore riesce a percepirla
Considerando che il computer era venduto da nuovo ad oltre 2200 dollari e che un lettore di SD Card e' un componente da meno di 5 euro e' una caduta di stile da non poco (fra parentesi i portatili IBM hanno un meccanismo a scatto e funzionano benissimo)
Non lo sapevo ma questo modello dispone di un lettore integrato di SD Card e dato che avevo da scaricare delle foto ho inserito la memoria nell'apposito slot
Con un certo disappunto non compariva il dispositivo nel Finder. Sulla prima ho pensato che il componente fosse rotto (data l'eta' del calcolatore) ma da una ricerca su Internet ho verificato che si tratta di un problema conosciuto. In pratica non si deve inserire la memoria fino in fondo ma, a tentativi, si deve trovare il punto in cui il lettore riesce a percepirla
Considerando che il computer era venduto da nuovo ad oltre 2200 dollari e che un lettore di SD Card e' un componente da meno di 5 euro e' una caduta di stile da non poco (fra parentesi i portatili IBM hanno un meccanismo a scatto e funzionano benissimo)
giovedì 5 giugno 2014
Kinect per paleontologia
Continuando la serie delle prove di Kinect come scanner 3D, e' stata provata una applicazione per paleontologia. L'oggetto scansionato e' un corno di cervo (piuttosto malridotto) parzialmente ancora inglobato in matrice argillosa
La scansione e' molto ravvicinata (circa 80 cm) e la scena e' stata tagliata per estrarre il solo dettaglio di interesse
Il colore blu indica le zone piu' vicine al sensore mentre il rosso/arancione sono le zone piu' lontane (ovvero il piano di appoggio)
Il file originale puo' essere scaricato a questo indirizzo
La scansione e' molto ravvicinata (circa 80 cm) e la scena e' stata tagliata per estrarre il solo dettaglio di interesse
Il colore blu indica le zone piu' vicine al sensore mentre il rosso/arancione sono le zone piu' lontane (ovvero il piano di appoggio)
Il file originale puo' essere scaricato a questo indirizzo
Iscriviti a:
Post (Atom)
LLama3 Anita
A seguito di questo post ho provato a vedere ho provato a vedere cosa accadeva ad utilizzare un modello specifico per la lingua italiana in...
-
Aggiornamento questo e' la risposta degli sviluppatori First of all, almost all operating systems on both mobile and laptop/desktop n...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...











































