<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Darkmagister</id>
	<title>WebOS Internals - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Darkmagister"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/wiki/Special:Contributions/Darkmagister"/>
	<updated>2026-04-16T01:49:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Kit_di_Sopravvivenza_webOS&amp;diff=21809</id>
		<title>Kit di Sopravvivenza webOS</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Kit_di_Sopravvivenza_webOS&amp;diff=21809"/>
		<updated>2012-07-31T14:59:59Z</updated>

		<summary type="html">&lt;p&gt;Darkmagister: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Application]]&lt;br /&gt;
[[Category:Italian]]&lt;br /&gt;
&lt;br /&gt;
Questa pagina è disponibile in quattro lingue:&lt;br /&gt;
:[[Image:Australia.png]] [[Image:USA.png]] [[WebOS_Survival_Kit|WebOS Survival Kit]]&lt;br /&gt;
:[[Image:France.png]] [[WebOS_Survival_Kit-FR| webOS Survival Kit (Kit de survie webOS)]]&lt;br /&gt;
:[[Image:Germany.png]] [[WebOS_Survival_Kit-DE| webOS Survival Kit (Überlebensset)]]&lt;br /&gt;
:[[image:Italy.png]] [[Kit_di_Sopravvivenza_webOS|Kit di Sopravvivenza webOS]]&lt;br /&gt;
&lt;br /&gt;
''L’anno è il 2013. È un mondo post-webOS.''&lt;br /&gt;
&lt;br /&gt;
Hp ha venduto la divisione webOS e l’azienda acquirente ha fatto suoi i brevetti, chiudendo infine tutte le infrastrutture necessarie per il supporto dei dispositivi webOS.''&lt;br /&gt;
&lt;br /&gt;
''L’app catalog di HP e i server Palm non sono più raggiungibili.''&lt;br /&gt;
&lt;br /&gt;
''Gli account twitter @palm e @weOSdev non rispondono più. Il forum per gli sviluppatori è ormai una terra desolata.''&lt;br /&gt;
&lt;br /&gt;
''Alcune persone optano per la via più breve, passando semplicemente ad un’altra piattaforma.''&lt;br /&gt;
&lt;br /&gt;
''Altri imparano come sopravvivere, usando'' ... '''''Il Kit di Sopravvivenza webOS'''''&lt;br /&gt;
&lt;br /&gt;
= Segui @webosinternals su Twitter =&lt;br /&gt;
&lt;br /&gt;
Iscriviti a Twitter e segui @webosinternals. Pensa a ciò come il tuo Sistema di Allerta Rapido e come una Radio ad Onde-Corte. Quando arriverà il disastro, guarda per le future istruzioni.&lt;br /&gt;
&lt;br /&gt;
Altri account di sviluppatori homebrew da seguire sono: @JayCanuck @TheRealSconix&lt;br /&gt;
&lt;br /&gt;
= Installa [http://bit.ly/phd-ac la Documentazione Preware Homebrew] =&lt;br /&gt;
&lt;br /&gt;
In un mondo post-webOS, avrai bisogno di avere Preware installato sul tuo dispositivo. L’HP App Catalog non sarà più attivo, quindi avrai bisogno di ottenere la documentazione di cui hai bisogno per installare Preware.&lt;br /&gt;
&lt;br /&gt;
La [http://bit.ly/phd-ac Documentazione Preware Homebrew] ti guiderà attraverso i dettagli di molti dei seguenti passaggi con istruzioni per l’installazione “step-by-step”.&lt;br /&gt;
&lt;br /&gt;
= Installa Preware =&lt;br /&gt;
&lt;br /&gt;
Usa le istruzioni della [http://bit.ly/phd-ac Documentazione Preware Homebrew] per fare ciò. Non perdere tempo, è necessario avere installato Preware ora, non dopo che HP e webOS saranno svaniti. &lt;br /&gt;
&lt;br /&gt;
In caso di problemi durante l'esecuzione di WebOS Quick Install (soprattutto se usate un computer Windows), installate l'applicazione Homebrew WOSQI Guida  e segui la guida per la risoluzione del problema.&lt;br /&gt;
&lt;br /&gt;
Non lasciar perdere sin quando non avrai Preware installato e funzionante. Sarà il tuo passaporto per la distribuzione e l’installazione delle applicazioni, in un mondo post-webOS.&lt;br /&gt;
&lt;br /&gt;
Seguendo queste istruzioni, potrai anche tralasciare WebOS Quick Install disponibile tramite il tuo computer. Molteplici sistemi per installare app/patch, etc… sono l’essenziale in un mondo post-webOS.&lt;br /&gt;
&lt;br /&gt;
= Sgombera il tuo Profilo =&lt;br /&gt;
&lt;br /&gt;
I dati contenuti nel tuo HP webOS Account (ex Palm Profile) non saranno più disponibili in un mondo post-webOS.&lt;br /&gt;
&lt;br /&gt;
Sposta tutto . Il tuo dispositivo webOS supporta un bel po’ di providers per il sistema Synergy – scegline uno con il quale ti trovi bene e spostaci sopra tutti i dati.&lt;br /&gt;
&lt;br /&gt;
= Installa Save/Restore =&lt;br /&gt;
&lt;br /&gt;
Vai su Preware. Cerca &amp;quot;Save/Restore&amp;quot; e installa l’applicazione. Salva i settaggi di tutte le tue applicazioni.&lt;br /&gt;
&lt;br /&gt;
Se ti servono dati di un’applicazione non supportata da Save/Restore, visita il[http://forums.precentral.net/webos-internals/237558-save-restore-community-development.html thread ufficiale di Save/Restore]su PreCentral e fai una richiesta “con premio” agli sviluppatori affinchè aggiungano il supporto per tale applicazione.&lt;br /&gt;
&lt;br /&gt;
Assicurati di copiare il contenuto della directory  di Save/Restore dal tuo dispositivo webOS al tuo computer (o su di un account di archiviazione online) regolarmente.&lt;br /&gt;
&lt;br /&gt;
= Salva i tuoi “Tokens” =&lt;br /&gt;
&lt;br /&gt;
Installa l’applicazione &amp;quot;Show Properties&amp;quot; da Preware, e invia a te stesso un’email selezionando l’opzione “Full” dalla lista dei “tokens” (usa l’opzione “Full”, non “Comms Board Swap” ).&lt;br /&gt;
&lt;br /&gt;
Non preoccuparti di ciò che significa tutto questo adesso…Ti basti sapere che con la lista di token e il webOS Doctor è possibile resuscitare il tuo dispositivo dopo qualsiasi calamità. &lt;br /&gt;
&lt;br /&gt;
= Scarica il webOS Doctor =&lt;br /&gt;
&lt;br /&gt;
Assicurati di avere il webOS Doctor adatto al tuo dispositivo scaricato dal server HP e assicurati sia sempre disponibile localmente sul tuo computer.&lt;br /&gt;
&lt;br /&gt;
Visita la nostra pagina [http://www.webos-internals.org/wiki/WebOS_Doctor_Versions Versioni webOS Doctor] e scarica il webOS Doctor adatto adesso.&lt;br /&gt;
&lt;br /&gt;
In un mondo post-webOS, I “doctors” non  saranno disponibili dai server HP, quindi assicurati di avere la tua copia ben archiviata ora.&lt;br /&gt;
&lt;br /&gt;
= Stai pronto con il Terminale =&lt;br /&gt;
&lt;br /&gt;
Per eseguire alcune operazioni chiave di sopravvivenza, è necessario avere un modo per accedere tramite linee di comando, ovvero tramite terminale Linux, al dispositivo.&lt;br /&gt;
&lt;br /&gt;
Gli ultimi driver Novacom possono essere trovati qui http://opensource.palm.com/packages.html. In un mondo post-webOS, quella pagina non sarà più accessibile. Scarica i driver per le piattaforme attuali e future prima che spariscano dalla circolazione.&lt;br /&gt;
&lt;br /&gt;
Installa i driver e prova che il computer riconosca il dispositivo webOS, quando lo si collega tramite usb.&lt;br /&gt;
&lt;br /&gt;
Impara ad utilizzare novaterm o l'interfaccia di comando di WOSQI  (che è un wrapper GUI attorno a una connessione Novacom) per accedere alla riga di comando di Linux sul dispositivo.&lt;br /&gt;
&lt;br /&gt;
La [http://bit.ly/wosqi-guide WOSQI Guida Homebrew per WOSQI] contiene immagini su come ottenere l’accesso al terminale di comando sul dispositivo, “passo-passo” da un computer.&lt;br /&gt;
&lt;br /&gt;
Installa Xecutah per accedere al terminale dal dispositivo stesso.&lt;br /&gt;
&lt;br /&gt;
Molti post riguardanti la sopravvivenza di webOS necessitano dell’utilizzo del terminale. Tienti pronto da subito. Impara alcune [[Basi di utilizzo Linux]] prima che sia troppo tardi.&lt;br /&gt;
&lt;br /&gt;
= E l’Attivazione? =&lt;br /&gt;
&lt;br /&gt;
Ci sono alcuni sistemi per tuti i dispositivi webOS per bypassare tutte le attivazioni (sia di provider, sia di HP/Palm. Possiamo prendere un nuovissimo dispositivo webOS, mai usato, e renderelo pienamente funzionante con l’accesso ai server HP/Palm&lt;br /&gt;
&lt;br /&gt;
= E le Applicazioni? =&lt;br /&gt;
&lt;br /&gt;
Quando l’HP App Catalog verrà chiuso, dovremo poter reinstallare le applicazioni che avremo acquistato sui dispositivi per i quali erano state comprate.&lt;br /&gt;
&lt;br /&gt;
[http://bit.ly/webos-survival-kit Il Kit di Sopravvivenza webOS] include tutto ciò di cui hai bisogno per essere super-pronto a quest’eventualità.&lt;br /&gt;
&lt;br /&gt;
Gli strumenti necessari per la reinstallazioni di applicazioni, tramite Preware, acquistate (e non) sono già stati compilati e testati.&lt;br /&gt;
&lt;br /&gt;
Ovviamente, Ovviamente, mentre l’App Catalog è ancora funzionante, non è opportuno dare queste istruzioni. &lt;br /&gt;
&lt;br /&gt;
= Proteggi tutti i tuoi dispositivi =&lt;br /&gt;
&lt;br /&gt;
Assicurati di eseguire queste operazioni per ogni dispositivo webOS che possiedi.&lt;br /&gt;
&lt;br /&gt;
= Compra alcune batterie di riserva =&lt;br /&gt;
&lt;br /&gt;
Le batterie non durano per sempre e in un mondo post-webOS è importante non rimanerne sprovvisti. Assicurati di prenderne un paio di riserva.&lt;br /&gt;
&lt;br /&gt;
Su tutti i gli altri dispositivi webOS, TouchPad a parte, è semplice sostituire le batterie (la garanzia cadrà inesorabilmente, ovviamente). &lt;br /&gt;
&lt;br /&gt;
Per il Touchpad, [http://www.ifixit.com/Guide/Installing-HP-TouchPad-Battery/6082/1 non è affatto facile dopo tutto]. Perciò questo suggerimento vale, in verità, solo per gli Smartphone webOS.&lt;br /&gt;
&lt;br /&gt;
= Contribuisci con i tuoi Suggerimenti =&lt;br /&gt;
&lt;br /&gt;
Iscriviti al  [http://forums.precentral.net/webos-internals/303114-webos-survival-kit.html thread corrispondente] in the [http://forums.precentral.net/webos-internals/ nel forum di webOS Internals] e posta tutti gli altri suggerimenti per l’inserimento in questa pagina del [http://bit.ly/webos-survival-kit Kit di Sopravvivenza webOS] o edita la pagina wiki direttamente.&lt;br /&gt;
&lt;br /&gt;
= Passaparola =&lt;br /&gt;
&lt;br /&gt;
Assicurati che tutti coloro che usano webOS abbiano il link a questa discussione http://bit.ly/webos-survival-kit (l’URL ufficiale a questa pagina) ben impresso nella loro mente.Scrivitelo in un post-it e attaccalo al tuo monitor! Non dimenticarti mai che eventualmente potresti averne bisogno.&lt;br /&gt;
&lt;br /&gt;
= Iscriviti ai Forum di supporto =&lt;br /&gt;
&lt;br /&gt;
C’è un numero considerevole di forum riguardo webOS con molti utenti che possono aiutarti, qualora avessi bisogno di supporto.&lt;br /&gt;
&lt;br /&gt;
[http://www.precentral.net PreCentral] e[http://www.webosroundup.com webOSRoundup] sono due delle principali fonti di informazione.&lt;br /&gt;
&lt;br /&gt;
Inoltre a questo indirizzo puoi trovare [http://www.webositalia.com webOS Italia], la community tutta italiana sul mondo webOS.&lt;br /&gt;
&lt;br /&gt;
= Dona =&lt;br /&gt;
&lt;br /&gt;
Gli sviluppatori homebrew che sviluppano questi strumenti si basano sulle donazioni per poter continuare a farlo.&lt;br /&gt;
&lt;br /&gt;
WebOS Internals: http://donate.webos-internals.org/&lt;br /&gt;
&lt;br /&gt;
Jason Robitaille: http://donate.canuckcoding.ca/&lt;br /&gt;
&lt;br /&gt;
= Niente Panico =&lt;br /&gt;
&lt;br /&gt;
WebOS Internals e gli altri sviluppatori homebrew ti coprono le spalle. Niente Panico.&lt;br /&gt;
&lt;br /&gt;
Sarai in grado di utilizzare il dispositivo webOS per tutto il tempo a tuo piacimento, anche se tutto il supporto e le infrastrutture da parte di HP dovessero scomparire dall'oggi al domani.&lt;br /&gt;
&lt;br /&gt;
[http://farm3.static.flickr.com/2593/3892664015_e410aac714.jpg We've got you covered.]&lt;/div&gt;</summary>
		<author><name>Darkmagister</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Tutorials_webOS_Using_Cookies&amp;diff=20503</id>
		<title>Tutorials webOS Using Cookies</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Tutorials_webOS_Using_Cookies&amp;diff=20503"/>
		<updated>2011-12-12T02:19:08Z</updated>

		<summary type="html">&lt;p&gt;Darkmagister: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Cookies To Move Variables To Different Scenes==&lt;br /&gt;
&lt;br /&gt;
This is my non-technical take on how to make cookies for the WebOS&lt;br /&gt;
&lt;br /&gt;
In life if you want to make a special cookie there's an order you need to follow.&lt;br /&gt;
&lt;br /&gt;
# Name your cookie&lt;br /&gt;
# Make your cookie and put it into a container&lt;br /&gt;
# Move your cookie container to the new room&lt;br /&gt;
# Get your cookies and share them&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In the following example I want to move a variable stored in “this.numBalance” over to my second  scene.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;The javascript file for the first scene (first-assistant.js) holds the variable (this.numBalance) I want to move and use in the next scene (second-assistant.js). The event that will push the variable to the next scene is a button click, so I would place the cookie code into my &amp;quot; FirstAssistant.prototype.handleClicked = function&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Here’s the variable to be pushed to the next scene&lt;br /&gt;
&lt;br /&gt;
 this.numBalance = this.nBalancemodel.value;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Next create a cookie named this.numBalanceCookie  in the cookies system and then associate the cookie with the property of the current scene. All this does is name your cookie. No values have been placed inside of it.&lt;br /&gt;
&lt;br /&gt;
 this.numBalanceCookie = new Mojo.Model.Cookie(&amp;quot;numBalance&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Next put the this.numBalance variable into the this.numBalanceCookie. In this example I'm using an if statement to first check if the variable is not empty then put its value into the numBalanceCookie.&lt;br /&gt;
&lt;br /&gt;
 if (this.numBalance != '') {&lt;br /&gt;
  this.numBalanceCookie.put(this.numBalance);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;In the second-assistant.js file's setup function (Second Assistant.prototype.setup = function) retrieve and use the cookie’s variable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;You need to still create a cookie named this.numBalanceCookie  in this scene’s cookies system and associate it to the current scene.&lt;br /&gt;
&lt;br /&gt;
 this.numBalanceCookie = new Mojo.Model.Cookie(&amp;quot;numBalance&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Now you can retrieve the cookie’s (this.numBalanceCookie) value with the get function and place the value into a new variable (this.numBalance).&lt;br /&gt;
&lt;br /&gt;
 this.numBalance = this.numBalanceCookie.get();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Now you can use the this.numBalance variable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;In this example we used two of the three methods available in the Mojo.Model.Cookie Class&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The methods available are:&lt;br /&gt;
&lt;br /&gt;
:;get()&lt;br /&gt;
::Returns the object stored in this cookie, or undefined if no such cookie exists&lt;br /&gt;
:;put()&lt;br /&gt;
::Creates or updates the value of this cookie.&lt;br /&gt;
:;remove()&lt;br /&gt;
::Deletes this cookie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;More information on Mojo Cookies can be found here:&amp;lt;br&amp;gt;&lt;br /&gt;
https://developer.palm.com/content/api/reference/mojo/classes/mojo-model-cookie.html&lt;br /&gt;
&amp;lt;br&amp;gt;http://www.webos-internals.org/wiki/Mojo_Storage_Cookie&lt;/div&gt;</summary>
		<author><name>Darkmagister</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Mojo_Storage_Cookie&amp;diff=20501</id>
		<title>Mojo Storage Cookie</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Mojo_Storage_Cookie&amp;diff=20501"/>
		<updated>2011-12-12T02:18:36Z</updated>

		<summary type="html">&lt;p&gt;Darkmagister: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cookies are generally used to hold small amounts of information.  A cookie can hold only ONE OBJECT.  That object can be any javascript object (we will see some options later).&lt;br /&gt;
&lt;br /&gt;
===Typical Uses For A Cookie===&lt;br /&gt;
Typical uses for a cookie include user configuration for a game or other application, login info, passing a variable from one file to the next, etc. &lt;br /&gt;
&lt;br /&gt;
===Cookie Creation, Retrieval &amp;amp; Disposal===&lt;br /&gt;
When you want to use a cookie, the processes starts out the same regardless of if you have already used the cookie or not. &lt;br /&gt;
&lt;br /&gt;
====Creating A New Cookie====&lt;br /&gt;
Set a variable to a new cookie object.   &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;''Example: Setting a variable to a cookie object''&lt;br /&gt;
 myCookie = new Mojo.Model.Cookie('reversi');&lt;br /&gt;
&lt;br /&gt;
Here the name inside the call to Mojo.Model.Cookie names a unique cookie that will be linked to YOUR APPLICATION. &lt;br /&gt;
&lt;br /&gt;
If the cookie was already created, &amp;quot;myCookie&amp;quot; will now be linked to it.  However, if it does not exist, a new cookie is created. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;myCookie&amp;quot; now has three methods available 1).get  2).put  3).remove that you can use to place data into the cookie. Retrieve data out of the cookie. And dispose of the cookie altogether.&lt;br /&gt;
&lt;br /&gt;
====What Can We Store In A Cookie?====&lt;br /&gt;
A cookie can store only one object. But that object can contain any type of variable. For instance, you can store a string &amp;quot;abc&amp;quot;.  You can store a number  123. And you can store the contents of a variable.  That variable can contain an array which might have many values, but the VARIABLE itself is only one object.  &lt;br /&gt;
&lt;br /&gt;
You can also store a javascript object.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;''Example: creation of a javascript object named &amp;quot;myObject&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
 var myObject = {&amp;quot;name&amp;quot;: &amp;quot;Fred&amp;quot;, &amp;quot;Address&amp;quot;: &amp;quot;123 w 4th St&amp;quot;, &amp;quot;City&amp;quot;: &amp;quot;Somewhere&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Putting Something Into The Cookie====&lt;br /&gt;
Above we created a variable named &amp;quot;myObject&amp;quot; that holds the data. Now, we can store the variable &amp;quot;myObject&amp;quot; in the &amp;quot;myCookie&amp;quot; object we created earlier using the '.put' method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;''Example: putting the contents of &amp;quot;myObject&amp;quot; into the cookie &amp;quot;myCookie&amp;quot;''&lt;br /&gt;
 myCookie.put(myObject)  &lt;br /&gt;
&lt;br /&gt;
====Retrieving A Cookies Contents====&lt;br /&gt;
When you're ready to do something with that cookie's contents you will retrieve the object with the '.get' method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;''Example: retrieving a cookies content and placing it in an object''&lt;br /&gt;
 someOtherObject = myCookie.get() &lt;br /&gt;
&lt;br /&gt;
Now, we can just refer to that object's properties... &lt;br /&gt;
&lt;br /&gt;
someOtherObject.name will now be &amp;quot;Fred&amp;quot;    someOtherObject.city will be Somewhere.  &lt;br /&gt;
&lt;br /&gt;
Side note:&lt;br /&gt;
::{| style=&amp;quot;color:blue; background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|When you call the .get method, provided the cookie exists, and has data in it. You get the object that was stored in that cookie returned to you.  However, if the cookie does NOT have data in it, the .get returns ''undefined''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;''Example: Retrieving a cookies content &amp;amp; testing if the cookies holds anything''&lt;br /&gt;
&lt;br /&gt;
 cookieObject = this.cookie.get()&lt;br /&gt;
 if (cookieObject === undefined)  {&lt;br /&gt;
     //do something that sets defaults&lt;br /&gt;
 } else {&lt;br /&gt;
    //  do something with the data in cookieObject.&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#So,  create an object.  &lt;br /&gt;
#Get it.  &lt;br /&gt;
#Check if it's undefined.  If it is,  define it. &lt;br /&gt;
#Otherwise,  grab the data and go on.  &lt;br /&gt;
#If the data changes, PUT IT BACK. &lt;br /&gt;
&lt;br /&gt;
====Throwing The Cookie Away====&lt;br /&gt;
To get rid of a cookie that you no longer want, call the remove method. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;''Example: removing &amp;quot;myCookie&amp;quot;''&lt;br /&gt;
 myCookie.remove. &lt;br /&gt;
&lt;br /&gt;
===Javascript Object Notes===&lt;br /&gt;
Simple.  Now, a couple of side notes.   As was said above, you can store ANY object in a cookie. So,  If all you want to do is store a single high score in a cookie, you can simply do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;''Example: ''&lt;br /&gt;
 myCookie = new Mojo.Model.Cookie('score');&lt;br /&gt;
 myCookie.put(highScore);&lt;br /&gt;
&lt;br /&gt;
Your app can create more than one cookie.  You could for example do: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;''Example: ''&lt;br /&gt;
 levelCookie = new Mojo.Model.Cookie('level');&lt;br /&gt;
 levelCookie.put(highScore);&lt;br /&gt;
 scoreCookie = new Mojo.Model.Cookie('score');&lt;br /&gt;
 scoreCookie.put(highScore);&lt;br /&gt;
&lt;br /&gt;
Instead of putting score and level into a single object as above.  There is no particular advantage or disadvantage to either technique, it is a style preference.  Note that in WEB programming, a site creating more than one cookie is considered impolite.  This is not an issue ''inside the phone''.   In any case, the cookies are tied directly to your app, and the data is not available to other apps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;More information on Mojo Cookies can be found here:&amp;lt;br&amp;gt;&lt;br /&gt;
https://developer.palm.com/content/api/reference/mojo/classes/mojo-model-cookie.html&lt;br /&gt;
&amp;lt;br&amp;gt;http://www.webos-internals.org/wiki/Tutorials_webOS_Using_Cookies&lt;/div&gt;</summary>
		<author><name>Darkmagister</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Linphone&amp;diff=17013</id>
		<title>Application:Linphone</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Linphone&amp;diff=17013"/>
		<updated>2011-06-22T14:20:13Z</updated>

		<summary type="html">&lt;p&gt;Darkmagister: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Linphone&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=0.1.8&lt;br /&gt;
|tag=Communications&lt;br /&gt;
|screenshot=Icon_WebOSInternals_Linphone.png&lt;br /&gt;
|description=}}&lt;br /&gt;
&lt;br /&gt;
This is the very first true VoIP application running on any webOS device.&lt;br /&gt;
&lt;br /&gt;
Linphone for webOS is a port of the original [http://www.linphone.org/ Linphone] command-line application.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Linphone is a general purpose SIP softphone. It allows you to place and receive VoIP calls on any SIP account you may have.&lt;br /&gt;
&lt;br /&gt;
Linphone isn't bound to any operator. Because it is compatible with SIP, it can work with any VoIP operator using SIP (most of them use SIP, the most notable exception being Skype).&lt;br /&gt;
&lt;br /&gt;
== Alpha Test ==&lt;br /&gt;
&lt;br /&gt;
Linphone / webOS is currently in '''''alpha''''' test.&lt;br /&gt;
&lt;br /&gt;
At the moment, to get Linphone you have to already have a good understanding of VoIP (the open standard SIP kind, not the closed proprietary Skype kind) and make yourself known in the [irc://chat.freenode.net/webos-internals #webos-internals IRC channel] (see [[WebOS-Internals_IRC_Channel_Policy|policy]], daily logs available in [http://logs.nslu2-linux.org/livelogs/webos-internals.txt current], [http://logs.nslu2-linux.org/livelogs/webos-internals-prev.txt previous] and [http://logs.nslu2-linux.org/livelogs/webos-internals/ all past days]).&lt;br /&gt;
&lt;br /&gt;
Alpha testers, please report at the bottom of this page success &amp;amp; failure with your SIP provider(s). Add or update your own rows in the table (please use your P|C or WOI identity so we can PM you if needed).&lt;br /&gt;
&lt;br /&gt;
Any other information/request you would like to share/ask, please report [http://forums.precentral.net/webos-internals/274615-linphone-alpha-testing.html in the dedicated thread at PreCentral].&lt;br /&gt;
&lt;br /&gt;
== SIP Account ==&lt;br /&gt;
&lt;br /&gt;
You will have received some registration information from your SIP provider by the end of the sign-up process:&lt;br /&gt;
:* '''username''' or '''phonenumber'''&lt;br /&gt;
:* '''password'''&lt;br /&gt;
:* '''domain'''&lt;br /&gt;
:* '''proxy''' (''optional'')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Your SIP identity is formed by grouping the '''Username''' or '''Phonenumber''' and the '''Domain''' together:&lt;br /&gt;
:* sip:'''''username'''''@'''''domain'''''&lt;br /&gt;
or&lt;br /&gt;
:* sip:'''''phonenumber'''''@'''''domain'''''&lt;br /&gt;
and will be used by other people willing to call you on your webOS device when running Linphone.&lt;br /&gt;
&lt;br /&gt;
== Dialpad ==&lt;br /&gt;
[[File:Linphone_Dialpad.png|200px|right]]&lt;br /&gt;
&lt;br /&gt;
This is (obviously!) where you dial a number you want to call...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Preferences ==&lt;br /&gt;
&lt;br /&gt;
The Linphone preferences screen can be accessed by tapping the menu button on the top left corner of your device. &lt;br /&gt;
[[File:Linphone_Preferences.png|200px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''SIP'''&amp;quot; group:&lt;br /&gt;
:* '''NAME''' - enter your '''''username''''' or '''''phonenumber'''''&lt;br /&gt;
:* '''PASSWORD''' - enter your '''''password'''''&lt;br /&gt;
:* '''DOMAIN''' - enter your SIP provider's '''''domain'''''&lt;br /&gt;
:* '''USE PROXY''': select&lt;br /&gt;
::- '''NO''' if your SIP provider does not require a specific proxy ('''PROXY''' field hidden)&lt;br /&gt;
::- '''YES''' if a '''''proxy''''' is required with an address different from '''''domain''''' ('''PROXY''' field shown)&lt;br /&gt;
:* '''PROXY''' - enter your SIP provider '''''proxy''''' (or '''''proxy:port'''''), if any&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''NETWORK'''&amp;quot; group:&lt;br /&gt;
:* '''FIREWALL''' - select&lt;br /&gt;
::- '''NONE''' if you have a direct connection to the internet or you are behind a router with an [http://en.wikipedia.org/wiki/Application_Layer_Gateway application-level gateway] for SIP ('''ADDRESS''' and '''SERVER''' fields hidden)&lt;br /&gt;
::- '''NAT''' to provide the public IP address of your router ('''ADDRESS''' field shown)&lt;br /&gt;
::- '''STUN''' to rely on a STUN server to discover the public IP address of your router ('''SERVER''' field shown)&lt;br /&gt;
:* '''ADDRESS''' - enter your router's public IP address&lt;br /&gt;
:* '''SERVER''' - enter the address of the STUN server&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
:* The sound comes from the back-speaker for now. Work is underway to bring the sound from the front speaker&lt;br /&gt;
:* Until echo-cancellation is activated, the person on the other end will suffer some echo because of the back-speaker...&lt;br /&gt;
:* The proximity sensor is not activated (yet!). To prevent unintentional screen touch from the ear when close to the head, it is better to turn-off the screen for now...&lt;br /&gt;
&lt;br /&gt;
== Test Report ==&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot; border=&amp;quot;5&amp;quot;|SIP Provider&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|VoIP Test&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Test Conditions&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Name&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Domain&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Proxy&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Firewall&lt;br /&gt;
&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Register&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Call-Out&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Call-In&lt;br /&gt;
&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Linphone&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Network (WiFi/EVDO/3G)&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Device&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|When&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Who&lt;br /&gt;
!{{Hl3}} align=&amp;quot;center&amp;quot;|Comments&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|[http://fr.wikipedia.org/wiki/Freephonie Freephonie]||freephonie.net||''(empty)''||NONE&lt;br /&gt;
||OK||OK ''(pstn)''||''(untested)''&lt;br /&gt;
||0.1.8||WiFi ''(DSL router, 18/1Mbps)''||Pre- 1.4.5||Mar 2011||Thibaud||Call-in not really a feature of Freephonie&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.iptel.org/service iptel.org]||iptel.org||sip.iptel.org ''(optional)''||''(n/a)''&lt;br /&gt;
||OK||''(untested)''||OK ''(sip)''&lt;br /&gt;
||0.1.6||WiFi ''(DSL router, 18/1Mbps)''||Pre- 1.4.5||Feb 2011||Thibaud||Call initiated from linphonec-3.1.2@Ubuntu-9.10&lt;br /&gt;
|-&lt;br /&gt;
|[http://wiki.sip2sip.info/ SIP2SIP]||sip2sip.info||proxy.sipthor.net||''(n/a)''&lt;br /&gt;
||OK||''(untested)''||OK ''(sip)''&lt;br /&gt;
||0.1.6||WiFi ''(DSL router, 18/1Mbps)''||Pre- 1.4.5||Feb 2011||Thibaud||Call initiated from linphonec-3.1.2@Ubuntu-9.10&lt;br /&gt;
|-&lt;br /&gt;
|[http://support.gizmoproject.com/index.php?_m=knowledgebase&amp;amp;_a=viewarticle&amp;amp;kbarticleid=409 Gizmo]||proxy01.sipphone.com||''(empty)''||''(n/a)''&lt;br /&gt;
||OK||''(untested)''||OK ''(sip)''&lt;br /&gt;
||0.1.6||WiFi ''(DSL router, 18/1Mbps)''||Pre- 1.4.5||Feb 2011||Thibaud||Call initiated from linphonec-3.1.2@Ubuntu-9.10&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.draytel.org/features Draytel]||draytel.org||''(empty)''||''(n/a)''&lt;br /&gt;
||OK||''(untested)''||OK ''(sip)''&lt;br /&gt;
||0.1.6||WiFi ''(DSL router, 18/1Mbps)''||Pre- 1.4.5||Feb 2011||Thibaud||Call initiated from linphonec-3.1.2@Ubuntu-9.10&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.sipgate.com sipgate]||sipgate.com||sipgate.com||NONE&lt;br /&gt;
||OK||OK||OK (most of the time- inconsistent),'' ''(sip)''&lt;br /&gt;
||0.1.8||WiFi ''(University of Kentucky WiFi)''||Pre- 2.1||Mar 2011 ''(updated)''||Ricyteach||Call initiated from Voogle (Google Voice)&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.sipgate.com sipgate]||sipgate.com||sipgate.com||STUN, stun.sipgate.net:10000&lt;br /&gt;
||OK||untested||hangs at INCOMING_INITIATED ''(sip)''&lt;br /&gt;
||0.1.8||WiFi ''(University of Kentucky WiFi)''||Pre- 2.1||Mar 2011||Ricyteach||Call initiated from Voogle (Google Voice)&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.pbxes.com pbxes]||pbxes.com||pbxes.com||&lt;br /&gt;
||REG PENDING||||&lt;br /&gt;
||0.1.8||||Pre2 2.1||Mar 2011||wprater||&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.vonage.com vonage]||sphone.vopr.vonage.net||(empty)||Tried With and Without||OK*||OK* (to vonage &amp;amp; sprint mobile)&lt;br /&gt;
||OK* (from vonage &amp;amp; sprint mobile)||0.1.8 ||Both Wifi+NAT and Sprint ||Pre 1.4.5 ||Mar 2011||jjeansonne||*with some struggle to get sucessful registration and calls placed.  Had to restart the app many times and go in/out of account setting page&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.pbxes.com pbxes]||pbxes.org||pbxes.org||NONE&lt;br /&gt;
||OK||hangs at CALL_OUT_RINGING||untested&lt;br /&gt;
||0.1.8||WiFi ''(University of Kentucky WiFi)''||Pre- 2.1||Mar 2011||Ricyteach||Entry for pbxes above has wrong domain entered&lt;br /&gt;
|-&lt;br /&gt;
|[http://1und1.de 1und1]||1und1.de||sip.1und1.de||STUN, stun.1und1.de&lt;br /&gt;
||REG OK||||&lt;br /&gt;
||0.1.8||WIFI (DSL router, 16/1Mbps)||Pre 1.4.5||Mar 2011||einalex||&lt;br /&gt;
|-&lt;br /&gt;
|[http://ekiga.net ekiga]||ekiga.net||(empty)||STUN, stun.1und1.de&lt;br /&gt;
||REG OK||||&lt;br /&gt;
||0.1.8||WIFI (DSL router, 16/1Mbps)||Pre 1.4.5||Mar 2011||einalex||&lt;br /&gt;
|-&lt;br /&gt;
|[http://wiki.sip2sip.info/ SIP2SIP]||sip2sip.info||(empty)||''(n/a)''&lt;br /&gt;
||OK||''(untested)''||OK ''(sip)''&lt;br /&gt;
||0.1.8||WiFi||Pixi+ 1.4.5||Feb 2011||puuj||Call initiated from Google Voice via IPKall number&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.pbxes.com pbxes]||pbxes.com||(empty)||''(n/a)''&lt;br /&gt;
||OK||''(untested)''||OK ''(sip)''&lt;br /&gt;
||0.1.8||WiFi||Pixi+ 1.4.5||Feb 2011||puuj||Call initiated from Google Voice via IPKall number&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.linphone.org linphone]||sip.linphone.org||(empty)||''(n/a)''&lt;br /&gt;
||OK||''(untested)''||''(untested)''&lt;br /&gt;
||0.1.8||WIFI (DSL router, 8/1Mbps)||Pre 2.1.0||Mar 2011||kostka||&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.callcentric.com callcentric]||callcentric.com||(empty)||''(n/a)''&lt;br /&gt;
||REG_PENDING||||&lt;br /&gt;
||0.1.8||WIFI (DSL router, 8/1Mbps)||Pre 2.1.0||Mar 2011||kostka||&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.pbxes.com pbxes]||pbxes.org||(empty)||''(n/a)''&lt;br /&gt;
||OK||''(untested)''||hangs at CALL_IN_INVITE&lt;br /&gt;
||0.1.8||WIFI (DSL router, 8/1Mbps)||Pre 2.1.0||Mar 2011||kostka||Call initiated from Google Voice via IPKall number&lt;br /&gt;
|-&lt;br /&gt;
|[http://wiki.sip2sip.info/ SIP2SIP]||sip2sip.info||(empty)||''(n/a)''&lt;br /&gt;
||OK||''(untested)''||hangs at CALL_IN_INVITE&lt;br /&gt;
||0.1.8||WIFI (DSL router, 8/1Mbps)||Pre 2.1.0||Mar 2011||kostka||Call initiated from Google Voice via IPKall number&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.sipgate.com sipgate]||sipgate.com||sipgate.com||NONE&lt;br /&gt;
||OK only for the first start up. After restart the APP, it shows Reg_Pending||untested||OK if registered&lt;br /&gt;
||0.1.8||WiFi||Pixi+ 1.4.5||April 2011||y_one2000||Call initiated from GV &lt;br /&gt;
|-&lt;br /&gt;
|[http://www.messagenet.it messagenet]||sip.messagenet.it||(empty)||NONE&lt;br /&gt;
||OK||untested||OK &lt;br /&gt;
||0.1.8||WiFi||Pre- 2.1.0||June 2011||Darkmagister||Call initiated from standard home phone line &lt;br /&gt;
|-&lt;br /&gt;
|''New entry...''|| || ||&lt;br /&gt;
|| || || &lt;br /&gt;
|| || || || || || ''Please copy this row so the template still exists... :-)''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Darkmagister</name></author>
	</entry>
</feed>