-+  Associazione
-+  Documenti
-+  Eventi
-+  Community
-+  Blog
-+  Link

Ottobre 2013

Dom Lun Mar Mer Gio Ven Sab
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Cerca






 


« Marzo 2005 | Home | Maggio 2005 »

Perl su Symbian Series 60

Series 60 è la piattaforma Symbian credo più diffusa, con milioni di installazioni sui telefoni cellulari di tutto il mondo, principalmente Nokia e Sony Ericsson.

Tempo fa Nokia pubblicò un interprete Python per Series 60, permettendo agli sviluppatori di scrivere e lanciare programmi in python sui propri telefonini. Fantastico, ma... Python per quanto bello sia, non è Perl.

Colpo di scena!

La settimana scorsa su p5p un personaggio che non ha bisogno di presentazioni, tal Jarkko Hietaniemi se n'è uscito con una piccola (~ 100 kb bzippati) patch che, insieme ad alcuni accorgimenti e affinamenti successivi, permette il cross-compiling di perl su Symbian Series 60.

Aggiungo soltanto che questa patch è stata postata su p5p con l'indirizzo email jarkko.hietaniemi at nokia dot com.

1 + 1 = ?

Inviato da Cosimo alle 00:59 | Commenti (1)

Software Libero nel mercato tecnologico

Il 26 aprile 2005 il SaLUG (Salento GNU/Linux users group) organizza una conferenza dal titolo: "Sviluppare Software Libero nel mercato tecnologico" a cura dell' Ing. Alessandro Rubini. L'evento si terrà nell'edificio Sperimentale Tabacchi dell' Università degli Studi di Lecce sito in via F.Calasso. per maggiori informazioni si può consultare il link: http://salug.it/wiki/index.php/Eventi

Inviato da jontk alle 14:14 | Commenti (2)

Un orologio atomico in Perl

La gerarchia Net::* all'interno di CPAN è molto popolata. Uno dei suoi abitanti più semplici, ma non per questo meno utili, è Net::NTP

Il nome deriva da Network Time Protocol, la cui specifica è la RFC2030. Questo protocollo permette a client e server di scambiarsi informazioni temporali.

Esistono diversi time server o ntp server in giro per il mondo che possono essere interrogati per sapere l'ora esatta, con vari gradi di precisione (orologi atomici, orologi al quarzo cinese a batterie, ...).
Il server italiano di riferimento è gestito dall' Istituto Elettrotecnico Nazionale (IEN) Galileo Ferraris di Torino.

Se non avete ancora installato Net::NTP, provvedete ora con un bel perl -MCPAN -e 'install Net::NTP', con il vostro utente privilegiato di fiducia.

Ecco un esempio di codice che stampa la data e ora esatte:

  #!/usr/bin/perl
  use strict;
  use warnings;
  use Net::NTP;
  # `time.ien.it' e' l'hostname del time server dello IEN
  my %ntp_data = get_ntp_response('time.ien.it');
  if(%ntp_data && exists $ntp_data{'Reference Timestamp'}) {
      print localtime($ntp_data{'Reference Timestamp'})."\n";
  }

A questo punto, pero', ci viene la curiosità di sapere in questo hash %ntp_data quali altre chiavi sono presenti?

Eccoci accontentati:

  #!/usr/bin/perl
  use strict;
  use warnings;
  use Net::NTP;
  use Data::Dumper;
  my %ntp_data = get_ntp_response('time.ien.it');
  print Dumper(\%ntp_data);

Il risultato è qualcosa di simile a:

  $VAR1 = {
      'Version Number' => 3,
      'Root Delay' => '0',
      'Precision' => -19,
      'Leap Indicator' => 0,
      'Stratum' => 1,
      'Receive Timestamp' => '1114016142.49566',
      'Transmit Timestamp' => '1114016142.49567',
      'Originate Timestamp' => '1114016142.00781',
      'Reference Timestamp' => '1114016132.92965',
      'Poll Interval' => '0.0000',
      'Reference Clock Identifier' => 'IEN',
      'Root Dispersion' => '0.0000',
      'Mode' => 4
};

Ovviamente, non ho la benché minima idea di cosa vogliano dire tutte queste informazioni, tranne Stratum, che se uguale a 1 (uno), significa che il time server che abbiamo interrogato è collegato ad un orologio atomico (!).

Rimangono due argomenti:
- come sincronizzare l'ora del mio sistema?
- come farlo in una riga sola?

Ecco uno script che sincronizza l'ora del server in base alla lettura NTP
(assumiamo che si tratti di un sistema unix/linux).

  #!/usr/bin/perl
  use strict;
  use warnings;
  use Net::NTP;
  my %ntp_data = get_ntp_response('time.ien.it');
  my @time = localtime $ntp_data{'Reference Timestamp'};
  my $mydate = sprintf('%04d/%02d/%02d %02d:%02d:%02d'
                                  , 1900+$time[5]
                                  , ++$time[4]
                                  , @time[3, 2, 1, 0]
                                  );
  # $mydate ora sara' uguale a "2005/04/20 21:59:59"
  print $mydate, "\n";
  system("date --set='$mydate'");

Punto due: come farlo in una riga sola?

  perl -MNet::NTP -le
  'my @d=localtime({get_ntp_response("time.ien.it")}->
  {"Reference Timestamp"});system(sprintf(qq(
  date --set="%04d/%02d/%02d %d:%d:%d"), 
  1900+$d[5], ++$d[4], @d[3,2,1,0]));'

Ed ora, il tocco finale: salvate la data e ora di sistema nel BIOS:

/sbin/clock -w

Buon divertimento!

--
Cosimo

Inviato da Cosimo alle 19:41 | Commenti (1)

TuxJournal, primo numero. Con Perl!

Dal mio LUG mi è arrivata la comunicazione della recente uscita del TuxJournal, webzine indipendente dedicata a Linux.

Nel suo primo numero viene pubblicato anche un articolo di Introduzione a Perl.

Personalmente, l'articolo non mi piace molto, e per giunta non viene neanche citato www.perl.it :-). Il lato positivo però è che ci sia la buona volontà di promuovere il linguaggio. Ed è una volontà che merita di essere incoraggiata, magari con qualche contributo estratto proprio da questo sito.

Ciao!
--bronto

Inviato da bronto alle 11:57 | Commenti (4)

Cercasi programmatori Perl

Riceviamo e volentieri pubblichiamo:

"Sto cercando dei programmatori Perl
disponibili a collaborare ad un progetto di sviluppo software. Si tratta
di un'applicazione con la seguente struttura:

client | applicazione locale | applicazione centrale | database

Il committente ha già definito nel dettaglio tutte le specifiche del
protocollo proprietario da adottare per la comunicazione (via TCP/IP),
così come le tabelle del database (MySQL 4.1). Il client sarà realizzato
da terzi, e bisogna realizzare le due applicazioni destinate a girare su
SuSE che potranno anche richiamare delle librerie scritte in C qualora
sia più facile reperire disponibilità o si riscontrino migliori
performance in certi algoritmi critici.
Riassumendo, queste sarebbero le aree di competenza interessate (in
tutto o in parte):

- sockets
- pack/unpack
- scalabilità
- performance (ad esempio elaborazione parallela?)
- DBI, MySQL

Il periodo interessato è maggio-agosto, ma il lavoro è facilmente
partizionabile quindi eventualmente si accettano anche disponibilità
limitate. La presenza a Roma o la disponibilità a qualche incontro di
persona facilita le cose."

Per informazioni mandate un'email a: alex at primafila punto net

Inviato da dree alle 22:43 | Commenti (0)

Alcune novità

Hanno da poco fatto capolino un paio di ghiotte novità in ambito Perl. Recentissima è la riapertura di un rinnovato perldoc con la documentazione aggiornata al Perl 5.8.6 ed una struttura molto dettagliata ed ordinata.

Una seconda novità riguarda un nuovo modulo che rivede il concetto di debugger d'elezione per il linguaggio Perl. Non più l'arcano -d o i moduli ptkdb o tcltkdb bensì un nuovo strumento che raccoglie tutto quanto detto e che ne fornisce un utilizzo omogeneo. Il nuovo modulo in questione è Devel::ebug che naturalmente potete trovare su CPAN

Un esempio di debug via web è visibile seguendo questo link: mov su ebug

Inviato da dree alle 22:10 | Commenti (0)

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google