giovedì 13 aprile 2017

ISS 2017

Inizia la bella stagione e come tradizione si aspetta il passaggio della ISS


Tra le altre cose questa e' stato un transito discendente al limite del terminatore con una elevazione quasi zenitale

ISS e' il piccolo puntino luminoso nel cielo nero. Ingrandire per una migliore osservazione



mercoledì 12 aprile 2017

Android Wear 2.0

Finalmente e' arrivato l'aggiornamento di Android Wear 2 sul mio LG R...e' quindi tempo di provare le nuove applicazioni per Android Wear che non hanno piu' bisogno dell'app companion sul telefono


Ho quindi preso un vecchio progetto (Aptic Metronome) di Wear 1 per adattarlo ad Wear 2
E' sufficiente in Android Studio crea un progetto per solo Android Wear con un targetSDKVersion pari a 25 (anche la minSDKVersion deve corrispondere a 25 per il solo Android Wear)

Per istruire il Play Store che l'apk non ha un app companion in AndroidManifest.xml e' necessario indicare

<meta-data    android:name="com.google.android.wearable.standalone"
android:value="true" /> 

Fatto cio' il progetto e' compatibile per l'upload su PlayStore. La preparazione su PlayStore e' identica a quella di Wear 1 con la conseguente revisione da parte di Google

martedì 11 aprile 2017

mercoledì 5 aprile 2017

Richieste HTTP su Android

Questo riepilogo non è disponibile. Fai clic qui per visualizzare il post.

Esperimenti di micropalentologia

Aggiornamento:

utilizzando una foto da microscopio elettronico (dotata di scala di riferimento)

Catapsydrax dissimilis
sono riuscito ad avere una stima degli ingrandimenti che il microscopio USB fornisce con la lente aggiuntiva. Pur la difficolta' di conversione tra pixel e dpi della stampante sembra che il sistema fornisca un ingrandimento massimo stimato attorno ai 100x
------------------------------------------------------------

In previsione di una lezione ad una classe di seconda elementare sulla geologia, volevo fare vedere che il mondo dei fossili non inizia e finisce con i dinosauri ma che si sono anche animali molto piccoli ed interessanti come i foraminiferi




Per rendere la lezione interattiva avevo quindi la necessita' di trovare un microscopio con oculare USB per poi collegarlo ad un proiettore..non volevo spendere molto per un oggetto che mi sarebbe servito forse solo per 10 minuti e cosi' su Amazon ho trovato questo oggetto, microscopio USB dichiarato con ingrandimento da 50x a 800x





Era abbastanza chiaro che gli ingrandimenti dichiarati erano fasulli ma il costo di 13 euro (in offerta) mi ha convinto a provare. Inoltre c'e' da dire che la ghiera girevoli di fatto funziona come un fuoco e non come uno zoom..il massimo ingrandimento si ottiene quando la parte trasparente in plastica appoggia sul piano del campione. Le dimensioni delle immagini sono di 640x426 pixels quindi inferiori alla VGA.



Per le sezioni sottili i risultati non sono male...basta mettere il microscopio in verticale ed appoggiare il vetrino ed i risultati sono indicati nelle immagini sottostanti




selezionando invece i foraminiferi dai preparati (e quindi tridimensionali) i risultati sono peggiori ed e' difficile vedere la morfologia


ho provato a migliorare le cose. Ho preso una lente da filatelia ed la ho frapposta tra il campione ed il microscopio...quindi il campione appoggiato su un piano, la lente da filatelia sopra ed appooggiata sulla lente il microscopio. In questo modo si deve spengere i led del microscopio perche' rifletttono sulla lente e ho messo una sorgente di luce trasversale


A questo punto le cose sono decisamente migliorate




Non si tratta di uno strumento professionale ma considerando che e' costato meno di 15 euro non e' poi cosi' male

lunedì 27 marzo 2017

Lighttpd e Pydio su Intel Edison

Questo e' un tentativo di usare Intel Edison per creare un cloud file server.
Avevo iniziato con Apache, PHP e OwnCloud ma quest'ultimo e' particolarmente esigente in termini di estensioni di PHP e non avevo voglia di ricompilare tutto da zero. Per questo motivo sono passato a Pydio e Lighttpd per motivi di leggerezza


Installare i pacchetti per Pydio in Yocto e' piuttosto banale perche' basta digitare i seguenti comandi

opkg install lighttpd
opkg install lighttpd-module-rewrite
opkg install lighttpd-module-fastcgi
opkg install php

la home del web server si trovera' in  /www/pages/ mentre il file di configurazione e'  /etc/lighttpd.conf

A questo punto si nota che se si crea un file .php e lo si interroga via web, il server risponde sempre errore 403 (Forbidden). Questo perche' Lighttpd non e' stato istruito su come interpretare i file .PHP. Si vede quindi editare il file di configurazione (in giallo le modifiche)

-----------------------
# lighttpd configuration file
#
# use it as a base for lighttpd 1.0.0 and above
#
# $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $

############ Options you really have to take care of ####################

## modules to load
# at least mod_access and mod_accesslog should be loaded
# all other module should only be loaded if really neccesary
# - saves some time
# - saves memory
server.modules              = (
#                               "mod_rewrite",
#                               "mod_redirect",
#                               "mod_alias",
                                "mod_access",
#                               "mod_cml",
#                               "mod_trigger_b4_dl",
#                               "mod_auth",
#                               "mod_status",
#                               "mod_setenv",
                               "mod_fastcgi",
#                               "mod_proxy",
#                               "mod_simple_vhost",
#                               "mod_evhost",
#                               "mod_userdir",
#                               "mod_cgi",
#                               "mod_compress",
#                               "mod_ssi",
#                               "mod_usertrack",
#                               "mod_expire",
#                               "mod_secdownload",
#                               "mod_rrdtool",
# "mod_webdav",
                                "mod_accesslog" )

## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root        = "/www/pages/"

## where to send error-messages to
server.errorlog             = "/www/logs/lighttpd.error.log"

# files to check for if .../ is requested
index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm" )

## set the event-handler (read the performance section in the manual)
# server.event-handler = "freebsd-kqueue" # needed on OS X

# mimetype mapping
mimetype.assign             = (
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "application/ogg",
  ".wav"          =>      "audio/x-wav",
  ".gif"          =>      "image/gif",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".cpp"          =>      "text/plain",
  ".log"          =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar"
 )

# Use the "Content-Type" extended attribute to obtain mime type if possible
#mimetype.use-xattr        = "enable"


## send a different Server: header
## be nice and keep it at lighttpd
# server.tag                 = "lighttpd"

#### accesslog module
accesslog.filename          = "/www/logs/access.log"
debug.log-request-handling = "enable"




## deny access the file-extensions
#
# ~    is for backupfiles from vi, emacs, joe, ...
# .inc is often used for code includes which should in general not be part
#      of the document-root
url.access-deny             = ( "~", ".inc" )

$HTTP["url"] =~ "\.pdf$" {
  server.range-requests = "disable"
}

##
# which extensions should not be handle via static-file transfer
#
# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

######### Options that are good to be but not neccesary to be changed #######

## bind to port (default: 80)
#server.port                = 81

## bind to localhost (default: all interfaces)
#server.bind                = "grisu.home.kneschke.de"

## error-handler for status 404
#server.error-handler-404   = "/error-handler.html"
#server.error-handler-404   = "/error-handler.php"

## to help the rc.scripts
#server.pid-file            = "/var/run/lighttpd.pid"


###### virtual hosts
##
##  If you want name-based virtual hosting add the next three settings and load
##  mod_simple_vhost
##
## document-root =
##   virtual-server-root + virtual-server-default-host + virtual-server-docroot
## or
##   virtual-server-root + http-host + virtual-server-docroot
##
#simple-vhost.server-root   = "/home/weigon/wwwroot/servers/"
#simple-vhost.default-host  = "grisu.home.kneschke.de"
#simple-vhost.document-root = "/pages/"


##
## Format: <errorfile-prefix><status-code>.html
## -> ..../status-404.html for 'File not found'
#server.errorfile-prefix    = "/home/weigon/projects/lighttpd/doc/status-"

## virtual directory listings
#dir-listing.activate       = "enable"

## enable debugging
#debug.log-request-header   = "enable"
#debug.log-response-header  = "enable"
#debug.log-request-handling = "enable"
#debug.log-file-not-found   = "enable"

### only root can use these options
#
# chroot() to directory (default: no chroot() )
#server.chroot              = "/"

## change uid to <uid> (default: don't care)
#server.username            = "wwwrun"

## change uid to <uid> (default: don't care)
#server.groupname           = "wwwrun"

#### compress module
#compress.cache-dir         = "/tmp/lighttpd/cache/compress/"
#compress.filetype          = ("text/plain", "text/html")

#### proxy module
## read proxy.txt for more info
#proxy.server               = ( ".php" =>
#                               ( "localhost" =>
#                                 (
#                                   "host" => "192.168.0.101",
#                                   "port" => 80
#                                 )
#                               )
#                             )

#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/tmp/php-fastcgi.socket",
                                   "bin-path" => "/usr/bin/php-cgi"
                                 )
                               )
                            )

#### CGI module
#cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
#                               ".cgi" => "/usr/bin/perl" )
#

#### SSL engine
#ssl.engine                 = "enable"
#ssl.pemfile                = "server.pem"

#### status module
#status.status-url          = "/server-status"
#status.config-url          = "/server-config"

#### auth module
## read authentication.txt for more info
#auth.backend               = "plain"
#auth.backend.plain.userfile = "lighttpd.user"
#auth.backend.plain.groupfile = "lighttpd.group"

#auth.backend.ldap.hostname = "localhost"
#auth.backend.ldap.base-dn  = "dc=my-domain,dc=com"
#auth.backend.ldap.filter   = "(uid=$)"

#auth.require               = ( "/server-status" =>
#                               (
#                                 "method"  => "digest",
#                                 "realm"   => "download archiv",
#                                 "require" => "user=jan"
#                               ),
#                               "/server-config" =>
#                               (
#                                 "method"  => "digest",
#                                 "realm"   => "download archiv",
#                                 "require" => "valid-user"
#                               )
#                             )

#### url handling modules (rewrite, redirect, access)
#url.rewrite                = ( "^/$"             => "/server-status" )
#url.redirect               = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )

#### both rewrite/redirect support back reference to regex conditional using %n
#$HTTP["host"] =~ "^www\.(.*)" {
#  url.redirect            = ( "^/(.*)" => "http://%1/$1" )
#}

#
# define a pattern for the host url finding
# %% => % sign
# %0 => domain name + tld
# %1 => tld
# %2 => domain name without tld
# %3 => subdomain 1 name
# %4 => subdomain 2 name
#
#evhost.path-pattern        = "/home/storage/dev/www/%3/htdocs/"

#### expire module
#expire.url                 = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")

#### ssi
#ssi.extension              = ( ".shtml" )

#### rrdtool
#rrdtool.binary             = "/usr/bin/rrdtool"
#rrdtool.db-name            = "/var/www/lighttpd.rrd"

#### setenv
#setenv.add-request-header  = ( "TRAV_ENV" => "mysql://user@host/db" )
#setenv.add-response-header = ( "X-Secret-Message" => "42" )

## for mod_trigger_b4_dl
# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db"
# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
# trigger-before-download.trigger-url = "^/trigger/"
# trigger-before-download.download-url = "^/download/"
# trigger-before-download.deny-url = "http://127.0.0.1/index.html"
# trigger-before-download.trigger-timeout = 10

## for mod_cml
## don't forget to add index.cml to server.indexfiles
# cml.extension               = ".cml"
# cml.memcache-hosts          = ( "127.0.0.1:11211" )

#### variable usage:
## variable name without "." is auto prefixed by "var." and becomes "var.bar"
#bar = 1
#var.mystring = "foo"

## integer add
#bar += 1
## string concat, with integer cast as string, result: "www.foo1.com"
#server.name = "www." + mystring + var.bar + ".com"
## array merge
#index-file.names = (foo + ".php") + index-file.names
#index-file.names += (foo + ".php")

#### include
#include /etc/lighttpd/lighttpd-inc.conf
## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf"
#include "lighttpd-inc.conf"

#### include_shell
#include_shell "echo var.a=1"
## the above is same as:
#var.a=1

# include other config file fragments from lighttpd.d subdir
include_shell "find /etc/lighttpd.d -maxdepth 1 -name '*.conf' -exec cat {} \;" 

----------------

A questo punto e' tutto pronto per Pydio.
Alla fine la macchina funziona ma non e' molto veloce ed inoltre non sono ancora configurate le API di Pydio per cui non e' possibile utilizzare i client desktop per sincronizzare i file

Aruco Tag e filtri Kalman

Usando gli Aruco tag in ambiente esterno con illuminazione solare a diverse ore e in diversi periodi dell'anno ho trovato un errore nell...