Welcome

This is the generic homepage (aka Aggregate Blog) for a Subtext community website. It aggregates posts from every blog installed in this server. To modify this page, edit the default.aspx page in your Subtext installation.

To learn more about the application, check out the Subtext Project Website.

Powered By:

Blog Stats

  • Blogs - 712
  • Posts - 30047
  • Articles - 312
  • Comments - 90250
  • Trackbacks - 619846

Bloggers (posts, last update)

Latest Posts

Knockout containerless binding

In ambito XAML per mostrare una lista di elementi occorre impostare il datacontext di un ItemsControl ad una IEnumerable. L’ItemsControl poi rendererizza la lista in base al DataTemplate specificato nella proprietà ItemTemplate. Per aggiungere oggetti nuovi ho sempre usato ItemTemplateSelector e/o CompositeCollection, ma la presenza di un container l’ho sempre considerata obbligatoria (correggetemi se sbaglio).

Ho considerato l’assioma valido anche in Knockout, ma non è così. Con knockout è possibile scrivere un “contenitore fittizio” tramite commenti:

<!-- ko ... -->
<!-- /ko -->

Tramite questa feature è possibile (come nel mio caso particolare) creare una tabella con un numero di colonne variabili:

<table id="classificationTable">
<thead>
<tr>
<td>Rank</td>
<td>Country</td>
<td>Full Name</td>
<!-- ko foreach: batteries -->
<td>R<span data-bind="text: $data"></span></td>
<!-- /ko -->
<td>TOT</td>
</tr>
</thead>
<tbody data-bind="foreach: positions">
<tr>
<td data-bind="text: rank"></td>
<td data-bind="text: country"></td>
<td data-bind="text: fullname"></td>
<!-- ko foreach: regularShots -->
<td data-bind="text: $data"></td>
<!-- /ko -->
<td data-bind="text: totalRegularPoints"></td>
</tr>
</tbody>
</table>

Comodo, utile, veloce.

Ps: gli elementi <td> chiudeteli sempre con un tag </td>, non scriveteli con un tags self-closing <td data-bind="" /> altrimenti KnockoutJs potrebbe dare qualche problemino (e non solo lui)

posted @ 06/02/2012 23.09 by Roberto Sarati

[SEMI-OT] How to Shoot Yourself in the Foot in Any Programming Language

The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you’re currently using. This guide is offered as a public service to help programmers who find themselves in such dilemmas.

C
You shoot yourself in the foot.
C++
You accidentally create a dozen clones of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can’t tell which are bitwise copies and which are just pointing at others and saying, “That’s me, over there.”
JAVA
After importing java.awt.right.foot.* and java.awt.gun.right.hand.*, and writing the classes and methods of those classes needed, you’ve forgotten what the hell you’re doing.
Ruby
Your foot is ready to be shot in roughly five minutes, but you just can’t find anywhere to shoot it.
PHP
You shoot yourself in the foot with a gun made with pieces from 300 other guns.
ASP.NET
Find a gun, it falls apart. Put it back together, it falls apart again. You try using the .GUN Framework, it falls apart. You stab yourself in the foot instead.
SQL
SELECT @ammo:=bullet FROM gun WHERE trigger = ‘PULLED’;
INSERT INTO leg (foot) VALUES (@ammo);
Perl
You shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you.
Javascript
You’ve perfected a robust, rich user experience for shooting yourself in the foot. You then find that bullets are disabled on your gun.
CSS
You shoot your right foot with one hand, then switch hands to shoot your left foot but you realize that the gun has turned into a banana.
FORTRAN
You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue anyway because you have no exception-handling ability.
Modula2
After realizing that you can’t actually accomplish anything in this language, you shoot yourself in the head.
COBOL
Using a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER. on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be retied.
LISP
You shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds ….
BASIC
Shoot yourself in the foot with a water pistol. On big systems, continue until entire lower body is waterlogged.
FORTH
Foot in yourself shoot.
APL
You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters.
Pascal
The compiler won’t let you shoot yourself in the foot.
SNOBOL
If you succeed, shoot yourself in the left foot.
If you fail, shoot yourself in the right foot.
Concurrent Euclid
You shoot yourself in somebody else’s foot.
HyperTalk
Put the first bullet of the gun into the foot of the left leg of you.
Answer the result.
Motif
You spend days writing a UIL description of your foot, the trajectory, the bullet, and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams.

Unix
% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: No such file or directory
% ls
%
Paradox
Not only can you shoot yourself in the foot, your users can too.
Revelation
You’ll be able to shoot yourself in the foot just as soon as you figure out what all these bullets are for.
Visual Basic
You’ll shoot yourself in the foot, but you’ll have so much fun doing it that you won’t care.
Prolog
You tell your program you want to be shot in the foot. The program figures out how to do it, but the syntax doesn’t allow it to explain.
Ada
After correctly packaging your foot, you attempt to concurrently load the gun, pull the trigger, scream and shoot yourself in the foot. When you try, however, you discover that your foot is of the wrong type.
Assembly
You try to shoot yourself in the foot only to discover you must first reinvent the gun, the bullet, and your foot. After that’s done, you pull the trigger, the gun beeps several times, then crashes.
370 JCL
You send your foot down to MIS with a 4000-page document explaining how you want it to be shot. Three years later, your foot comes back deep-fried.
Python
You try to shoot yourself in the foot but you just keep hitting the whitespace between your toes.

Tag di Technorati: ,

posted @ 06/02/2012 19.33 by Nazareno

Superare il limite sulla lunghezza dei file con le funzioni native di Windows

Utilizzando i metodi per la copia e lo spostamento dei file messi a disposizione dalla classe System.IO.File, se si lavora con percorsi troppo lunghi, si ottiene una PathTooLongException, secondo cui i path devono essere minori di 248 caratteri e i nomi dei file non possono avere più di 260 caratteri.

Per aggirare il problema, si possono utilizzare le funzioni delle API di Windows, avendo l'accortezza di specificare il prefisso \\?\ davanti al nome del file. Nel post Getting around PathTooLongException on file move with Windows Native API di Gal Ratner è descritta una semplice classe che mostra l'utilizzo di questo sistema.

Tag di Technorati: ,,

posted @ 05/02/2012 20.40 by Marco Minerva

WP7 Bing Map

E anche la Mappa delle segnalazioni di Decoro Urbano è completata.

PushpinsMappa

Prima di tutto devo dire che l’emulatore di Windows Phone è una grande comodità, perché consente di simulare lo spostamento del telefono in giro per il mondo senza muoversi di un metro, risparmiandoci la “fatica” di dover mockare il servizio di posizionamento.

Ma veniamo alla gestione della mappa delle segnalazioni di Decoro Urbano, per la quale è necessario:

1. Aggiornare l’area visualizzata al variare della posizione dell’utente;

2. Recuperare dal servizio web di Decoro Urbano le segnalazioni relative all’area geografica visualizzata nella mappa e mostrare i relativi “pushpin”.

Il primo punto è facilmente realizzabile usufruendo del metodo SetView(GeoCoordinate center, double zoomLevel) del “Bing Map Control” (Microsoft.Phone.Controls.Maps.Map), dove lo ZoomLevel è il livello di dettaglio richiesto e center è la posizione ottenuta del servizio di localizzazione di cui ho già parlato in un mio precedente post.

Per il secondo punto occorre fare una breve premessa.

Colacolare l’area geografica a partire dalle dimensioni del controllo (in termini di pixel, intendo) non è una cosa facile, tutt’altro. Poiché la terra non è piatta e il Sole non gira intorno alla Terra, rappresentare la geometria sferica su di un piano comporta l’uso di una proiezione. Nella cartografia vi sono svariati metodi, ciascuno adatto ad un particolare scopo. A noi serve ottenere la latitudine e la longitudine minima e massima visibili nella mappa, e per tale scopo il Bing Map control offre un paio di metodi.

Inizialmente ho usato una proprietà che mi sembrava calzasse a pennello: LocationRect BoundingRectangle dove Microsoft.Phone.Controls.Maps.LocationRect è una classe che ha le seguenti proprietà:

GeoCoordinate Center { get; }
double East { get; set; }
double Height { get; }
double North { get; set; }
GeoCoordinate Northeast { get; set; }
GeoCoordinate Northwest { get; set; }
double South { get; set; }
GeoCoordinate Southeast { get; set; }
GeoCoordinate Southwest { get; set; }
double West { get; set; }
double Width { get; }

Ma dato che la mappa è asincrona nel recuperare le immagini dal sito per spostarsi con fluidità, dall’istante in cui impostiamo il centro e lo zoom level della mappa al momento in cui la proprietà BoundingRectangle restituisce i dati che ci interessano passa ovviamente del tempo, ovvero quello necessario per spostarsi nella nuova posizione.

Per fortuna esiste un’altra proprietà, la TargetBoundingRectangle che restituisce immediatamente i dati a noi necessari. In questo modo è stato facile usare le proprietà North e South per ricavare la minima e massima latitudine, West ed East per la minima e massima longitudine, infine passare la richiesta al web service di Decoro Urbano e ottenere le segnalazioni comprese nell’area visualizzata in mappa.

Nel prossimo post vedremo come bindare l’elenco delle segnalazioni ai pushpins della mappa e personalizzarne l’aspetto.

posted @ 05/02/2012 12.58 by Nicolò Carandini

LightSwitch & SQLite

Premetto che non avrei mai scritto un post sull'argomento, però dato che mi piace fare delle considerazioni, ne sfrutto l'occasione.

Partiamo subito dalle considerazioni. LightSwitch è un prodotto Microsoft che permette di realizzare applicazioni 3-Tier in modo molto semplice e veloce.
Dall'uscita del prodotto, subito sono sorte domande la cui risposta (imho) è negativa ovvero:

  • Lightswitch è/tenta di sostituire Access? No. Access è Access, ha un altro target. Può sembrare simile, ma solo in lontananza.
  • E' possibile creare applicazioni 1-Tier? No. O meglio, LightSwitch non è pensato per questo.
  • E' possibile utilizzare strumenti/tecniche che l'ide non permette velocemente di utilizzare? Ni. Si può fare ma a vostro rischio e pericolo. Questo significa che si può fare con difficoltà, con difficoltà si manterrà nelle prossime versioni, con difficoltà si potrà deployare ecc ecc

Detto questo veniamo al punto. Imho, LS + SQLite = No. No perchè SQLite non è pensato per avere multiutenza (i lock vengono messi sul file intero==è come avere un lock su tutto il db), si può usare sqlserver express senza problemi, è 'complicato' da deployare.

Avendo premesso tutto questo (la parte secondo me importante), ecco come usare SQLite:

  1. Utilizzare il provider ADO.NET scaricabile all'indirizzo http://system.data.sqlite.org.
    Attualmente non è incluso l'addin per visual studio. Se servisse, installare il pacchetto (non più mantenuto) da http://sqlite.phxsoftware.com
  2. Sviluppare aggiungendo un nuovo datasource e selezionando il provider SQLite.
  3. Deployare l'applicazione normalmente.
  4. Una volta effettuato il deploy, LS funziona correttamente ma è necessario configurare SQLite:
  5.  - aggiungere nella cartella di bin su IIS gli assembly dei provider: System.Data.Sqlite.dll e System.Data.Sqlite.Linq.dll. (attenzione alla versione x86 o x64)
     - modificare il web.config per aggiungere il provider:
     <system.data>
       <DbProviderFactories>
         <remove invariant="System.Data.SQLite"/>
         <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for  SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
       </DbProviderFactories>
     </system.data>
     - copiare il database di SQLite in una cartella nuova (che chiamerò dbfolder).
     - occorre dare i permessi di modifica/scrittura alla cartella dbfolder all'application pool (quindi IIS AppPool/DefaultAppPool o altro)
     - modificare la connection string nel web.config con il percorso del database SQLit

Come si può notare, non è tanto un problema di LightSwitch, quanto di SQLite, dei provider ADO ecc.
E' vero che LS non è perfetto e migliorabile (cosa non lo è) però a volte la strada più semplice è la migliore.

posted @ 04/02/2012 14.03 by Roberto Sarati

Playing transitions with WinJS and Expression Blend for HTML

Here’s a simple tutorial about using Expression Blend for HTML5 and some little Javascript to create a simple transition effect.

Fire up Expression Blend 5 and by double clicking the elements on Assets library add a button and a div, let’s rename it by double clicking them in LiveDOM pane.

Here’s live DOM contents and it’s HTML counterpart (I’ve manually added button Go! content)

image
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>WinJSTransitions</title>
<!-- WinJS references -->
<link rel="stylesheet" href="/winjs/css/ui-dark.css" />
<script src="/winjs/js/base.js"></script>
<script src="/winjs/js/wwaapp.js"></script>
<!-- WinJSTransitions references -->
<link rel="stylesheet" href="/css/default.css" />
<script src="/js/default.js"></script>
</head>
<body>
<button id="btn">Go!</button>
<div id="box"></div>
</body>
</html>



It’s time to make the box div look like a rectangle by applying a style: Select box element inside Live DOM and click on the little down arrow inside CSS Properties tab and by using CSS Properties tab let’s add some style properties.
On right you see the Css that Blend generated while playing with properties (approach is very similar to Blend for XAML BTW…)

image
#box {
border-radius: 20px;
width: 200px;
height: 200px;
background-color: #4292B0;
margin-top: 20px;
}

image

Actual preview output

Since I want to use transition for margin-left and opacity properties let’s use Blend capability for this:

image
#box {
border-radius: 20px;
width: 200px;
height: 200px;
background-color: #4292B0;
margin-top: 20px;
-ms-transition-property: margin-left, opacity;
-ms-transition-duration: 0.7s, 1.26s;
-ms-transition-timing-function: linear, linear;
}

As you see I’ve added the two properties inside Transition pane, set it’s duration by dragging the slider on right and set both to use linear easing, on right you can see how the css looks like now.

To trigger the transitions I’m going to dynamically add a class to box div, so let’s define them using Blend by first selecting the default.css file inside Styles tab then clicking on “+” button to create two class definition named “in” and “out” (see below)

image

Now, with “in” class selected let change the value of opacity and margin-left to 1 and 0px respectively then select “out” class and change same properties to 0 and 300px, the related css entries should now look:

.in {
opacity: 1;
margin-left: 0px;
}

.out {
margin-left: 300px;
opacity: 0;
}

Let’s add the “in” class to our div by selecting it and typing “in” inside Attributes pane (manually editing the HTML is probably easier in this case…)

image

It’s now time to write to code (or should I say script? Smile) right click the project inside Blend and select “Edit in Visual Studio” to open the project in Visual Studio 2011

image

Code should look very straightforward: we’re going to subscribe to click event to add and remove “in” and “out” classes to the div element.
Before typing any code is necessary to add a reference to ui.js file from our HTML page because is there that addClass and removeClass methods live.

(function () {
'use strict';
// Uncomment the following line to enable first chance exceptions.
// Debug.enableFirstChanceException(true);
var isVisible=true;
WinJS.Application.onmainwindowactivated = function (e) {
if (e.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
document.getElementById("btn").addEventListener("click", function (e)
{
var box = document.getElementById("box");
var toAdd = isVisible ? "out" : "in";
var toRemove = isVisible ? "in" : "out";
WinJS.Utilities.removeClass(box, toRemove);
WinJS.Utilities.addClass(box, toAdd);
isVisible = !isVisible;
}, false);
}
}

WinJS.Application.start();
})();

Press F5 and you’ll see the rectangle moving and fading to the right and viceversa each time you click the button.

No rocket science here, but it works… Winking smile

Technorati Tags: ,

posted @ 03/02/2012 19.30 by Corrado Cavalli

Sapevatelo: tfpt connections

Tra le varie utility dei TFS Power Tools vi segnalo la tfpt connections, lanciabile da riga di comando, ma che apre una comoda User Interface che permette di visualizzare tutte le varie connessioni ai server TFS effettuate dalla macchina attuale. Tra le varie informazioni che trovate vi è la possibilità di decidere se volete effettuare una riconnessione automatica al server

SNAGHTML20d58f3

Questa funzionalità è utile se ad esempio lavorate spesso disconnessi e quindi volete evitare che ad ogni avvio di VS venga effettuata una riconnessione automatica all’ultimo TFS Server utilizzato. Nella figura sopra ho infatti disabilitato la connessinoe automatica al TFS PREVIEW.

Tra le altre opzioni trovate la possibilità di abilitare o disabilitare la compressione, di bypassare il proxy e di limitare il numero di connessioni concorrenti.

Un grazie a Matteo che mi ha rinfrescato la memoria, dato che non mi ricordavo più dove stava questa finestra :), le feature di TFS sono cosi tante che è veramente difficile ricordarle tutte :P

Gian Maria

posted @ 03/02/2012 19.21 by Gian Maria Ricci

The dimensions of Agile




After hands-on experience with Agile practices, working in Agile environments and attending conferences with Agile experts, I have annotated what I think could be the dimensions of Agile that detail and expand the original motto Embrace Change:


  • dealing with uncertainty

  • managing the unexpected

  • recognizing the unknowns

  • exploring through discovery & invention

  • balancing anticipation & adaptation

  • combining instinct & thought & experience (as learning from action)

  • making sense in complex contexts

  • amplify the emergence of beneficial behaviors and outcomes

  • continuing the quest for craftsmanship

Dimensions are intended here in the sense that the values and principles in the Agile Manifesto, the values and principles and practices of XP, the 3 legs the 3 artifacts the 3 roles and the 3 meetings of Scrum as well as the foundations the roles and the activities and artifacts of OpenAgile and the values and the principles of Lean can all be directly related and derilved from one or more dimensions.


Can you suggest other dimensions?


Tags :   |  |  |  |
Traduci al ITALIANO >>>

posted @ 03/02/2012 9.03 by Luca Minudel

Quasi XML e Regular Expressions Negative Lookup

Premessa:

Oggi mi sono trovato a dover risolvere una questione relativa alla “pulizia” di dati “quasi XML”, che all’interno dei tag XML possono eventualmente contenere il carattere “proibito” & (ampersand).

Com’è noto, tale carattere è un metacarattere che serve a rappresentare i caratteri non consentiti all’interno dei tags XML, secondo la nota tabella:

Tabella Metachars XML

La cosa è complicata per il fatto che i dati suddetti possono contenere sia ampersand errate (un ampersand solo soletto) e sia corretti (&amp;), com’è possibile vedere nell’esempio dove il valore contenuto nel <tag> è Mario scrive: "You & Me, forever!"

<tag>Mario scrive: &quot;You & Me, forever!&quot;</tag>

che dobbiamo trasformare in

<tag>Mario scrive: &quot;You &amp; Me, forever!&quot;</tag>

E’ evidente che non possiamo semplicemente sostituire ogni ampersand con &amp; perchè altrimenti otterremmo:

<tag>Mario scrive: &amp;quot;You &amp; Me, forever!&amp;quot;</tag>

Veniamo quindi all’oggetto di questo post:

Nelle espressioni regolari è possibile utilizzare il “Negative Lookup” per NON riconoscere un costrutto SE DOPO ce n’è un’altro.

Nel nostro caso in esempio, l’espressione regolare è

&(?!quot;)

che troverà tutti gli & non seguiti da quot;

e più in generale:

&(?!lt;|gt;|amp;|apos;|quot;)

That’s all folks!

posted @ 02/02/2012 18.43 by Nicolò Carandini

Rappresentare la “Definition of Done”

Uno dei punti cardine di un buon processo di sviluppo è stabilire chiaramente cosa significhi che un qualcosa sia completato.

La cosiddetta Definition of Done [DoD] nasce in Scrum, ma è evidente che può, anzi deve, essere adattata a qualunque processo per raggiungere dei risultati accettabili

Sostanzialmente si tratta di una lista di attività, che vanno dallo scrivere codice, al testing, arrivando fino alle release note che aggiungono valore al prodotto. In Scrum è estremamente enfatizzata, cosiccome dalla Continuous Delivery, che quindi pretende che done corrisponda a shippable.

Naturalmente non esiste una DoD universale: va adattata in base allo scenario, al processo utilizzato e soprattutto al livello in cui la stiamo applicando: una DoD di un check-in non corrisponde alla DoD di uno sprint o di un backlog.

E’ essenziale che sia trasparente a tutti i membri del team, e tutti i criteri della DoD devono essere soddisfatti per ogni Product Backlog Item.

Modellare la DoD sul processo significa sostanzialmente utilizzare gli strumenti a disposizione per far si che il workflow di lavoro vada a configurarsi per seguire i passaggi della DoD del team.

Team Foundation Server ci aiuta in vari modi: innanzitutto con le Check-In Policy. Rispettare una serie di Check-In Policy significa dover rispettare alcune regole, quindi aderire alla DoD. Queste regole raggiungono il loro apice con un Gated Check-In, che funge da barriera netta: dentro o fuori. Ovviamente è possibile scrivere altre policy oltre a quelle presenti di default in TFS oppure utilizzare il Check-In Policy Pack for TFS, disponibile su CodePlex.

Nel caso in cui il check-in sia rigettato, è possibile eseguire uno shelve (che purtroppo vedo ancora poco utilizzato in molti casi). Con lo shelve, oltre a poter accantonare quel determinato task e quindi essere pronti per eseguirne un altro in attesa di nuovi sviluppi, si hanno molti piacevoli side effects.

Il primo è sempre in ombra ma in realtà estremamente importante: il backup. Infatti tutti gli shelveset sono coperti dal backup di Team Foundation Server.
Inoltre uno shelveset può essere oggetto di Code Review (in vari modi, a breve dedicherò un post alla nuova funzionalità in Visual Studio 11) da parte di altri membri del team, a tutto vantaggio della qualità.
Senza contare poi che gli shelveset rimangono proprietà intellettuale del proprietario, non essendo solamente un pezzo di codice che rimane lato client ma comunque qualcosa che rimane lato server e quindi all’interno dell’organizzazione.

posted @ 02/02/2012 12.15 by Matteo Emili

[.NET Gadgeteer] La mia applicazione sul sito ufficiale

L’applicazione per .NET Gadgeteer che ho realizzato insieme a Micheal Dodaro, .NET Gadgeteer Servo Camera & Windows Phone Client, è stata inserita nel sito ufficiale di .NET Gadgeteer. In questo momento compare direttamente nella Home Page come Featured Project.

Anche queste sono soddisfazioni, e un chiaro stimolo a continuare sulla strada che ho intrapreso.

posted @ 31/01/2012 23.16 by Marco Minerva

Using JQuery with WinJS

I can hardly imagine any serious web development without JQuery so I did  a quick test to check if it can be used inside a WinJS project and answer is: yes! even if not in its total completeness.
You can’t use any CDN to get JQuery library, it must be included in your project (quite obvious since application must load even without any network connection) so I’ve grabbed latest version and added it to my WinJS project

image

I then later created a very naïve HTML page:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>WinJsJQuery</title>
<!-- WinJS references -->
<link rel="stylesheet" href="/winjs/css/ui-dark.css" />
<script src="/winjs/js/base.js"></script>
   1:  
   2:    <script src="/winjs/js/wwaapp.js">
   1: </script>
   2:    <!-- WinJsJQuery references -->
   3:    <link rel="stylesheet" href="/css/default.css" />
   4:    <script src="/js/default.js">
   1: </script>
   2:    <script src="lib/jquery-1.7.1.min.js" type="text/javascript">
</script>
</head>
<body>
<button id="loadButton">Load content</button>
<div id="host">
</div>
</body>
</html>

then fired some JQuery code:

WinJS.Application.onmainwindowactivated = function (e)
{
if (e.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch)
{
$("#loadButton").click(function (e)
{
$("<h3>Hello from JQuery</h3>").appendTo($("#host"));
});
}
}

WinJS.Application.start();

and everything works expected.

Tried then adding some dynamic content using JQuery’s load method:

$("#host").load("fragment.html");

but got a security exception (well, it make sense…)

image

Ok, what if content comes from an external site? something like:

$("#host").load("http://www.mysite.it/public/fragment.html", function (content, status, xhr){});
..

$.get("http://www.mysite.it/public/fragment.html", function (response){});

Well, none of the seems to work, load method returns a status=”error” while $.get simply doesn’t invokes callback function.

I finally ended up using WinJs.xhr method and it works:

WinJS.xhr({ url: "http://www.mysite.it/fragment.html" }).then(function (request)
{
$(request.responseText).appendTo($("#host"));
}, function (){});

Just some tests, nothing more (let’s not forget that it’s just a developer preview) but glad to see that JQuery’s power is available even in WinJS client application.

Technorati Tags: ,

posted @ 31/01/2012 19.20 by Corrado Cavalli

Festa patronale

Un pensiero a tutti quei datori di lavoro che inventano mille scuse per non far festeggiare il patrono. Ricordo che è un sacrosanto diritto del lavoratore e che la festa, come i ponti e le ferie, aiuta altri rami del commercio che hanno diritto alla sopravvivenza proprio come il vostro.

Ultimamente poi c'è la brutta usanza di concedere la festività perchè non c'è lavoro.

Contrario anche a chi vuole eliminare le feste patronali e spostare le feste non sacre al lunedi. Evitare i ponti? Che assurdità... invece di prendere il venerdi o il lunedi di ferie, potrei sempre prendere il martedi no?!

Spero davvero in maggiore serietà da parte di tutti...

E se la neve lo permette, farò a breve un giro in fiera


Technorati tags:

posted @ 31/01/2012 13.02 by Emanuele Prato

[db] Confronto database (sql server)

all'indirizzo http://dbcomparer.com
potete trovare un tool free che vi consente di analizzare le differenze tra 2 database sql server
utile

posted @ 30/01/2012 11.05 by Alessandro Gervasoni

WP7 e la geolocalizzazione

Nello sviluppo del client per Decoro Urbano, un aspetto essenziale è quello della localizzazione.

WP7 mette a disposizione un servizio che utilizza in modo efficiente tre fonti di dati, secondo la disponibilità: GPS, Wi-Fi e rete cellulare. vi sono due livelli di precisione (standard e alta) e la possibilità di definire un valore di distanza minima entro la quale non deve essere segnalata alcuna variazione di posizione. In tal modo il consumo della batteria viene ridotto al minimo. E’ comunque buona prassi, nello sviluppo della propria applicazione, attenersi alle buone pratiche d’uso descritte qui.

Io, per maggiore comodità, ho wrappato il servizio in una classe “GeoPosition” che gestisce il servizio (più o meno secondo qaunto descritto qui) esponendo le proprietà utili quali lo stato del servizio, la posizione, ecc. attraverso l’ INotifyPropertyChanged. In questo modo, inserendo nel ViewModel una proprietà di tipo GeoPosition posso aggiornare la view utilizzando il classico meccanismo di binding. Poiché al cambio di posizione corrisponde una chiamata al web service di Decoro Urbano che ritorna il nome del Comune ed alcune informazioni associate (ad esempio se tale Comune partecipa al progetto), è stato divertente provare sull’emulatore e scoprire che mi trovavo a Redmon, che al momento non partecipa a Decoro Urbano (ma mai dire mai!) :-D

PosizioneRedmond

Il motivo è semplice. Nell’emulatore il servizio fornisce la posizione di default. Cambiando manualmente la posizione nella mappa dall’apposita finestra dell’emulatore (ad esempio su viale Mazzini, a Roma), otteniamo in asincrono la modifica del testo nella view:

PosizioneRoma

Riassumendo: il Location Service aggiorna la proprietà posizione della classe“GeoPosition” che notifica il suo cambiamento mediante INotifyPropertyChanged, il mio ViewModel lancia una richiesta HTTP asincrona al servizio web di Decoro Urbano. Quando viene ricevuta la risposta viene modificata la proprietà “UserStatAndPositionDescription” che restituisce il testo da mostrare nella view. Anche quest’ultima modifica è segnalata tramite INotifyPropertyChanged e quindi la view viene automaticamente aggiornata.

Windows Phone Rulez!

posted @ 29/01/2012 19.25 by Nicolò Carandini

Questo blog e’ stato spostato…

 

Questo e’ il mio nuovo blog:

Andrea Angella – Official Blog

 

Ciao a tutti ragazzi,
ormai e’ venuto il tempo anche per me di avere il mio spazio personale.

I motivi sono tanti e sono riassunti nel mio primo post che potete trovare qui:

http://andrea-angella.blogspot.com/2012/01/my-new-official-blog.html

Questo non e’ certamente un addio, continuero’ a seguire la community Italiana come ho sempre fatto, aiutare DotNetToscana a crescere. Spero che questa sia l’occasione di iniziare a bloggare piu’ frequentemente e che alcuni di voi avranno voglia di registrarsi al mio nuovo feed.

http://feeds.feedburner.com/AndreaAngella-OfficialBlog

 

Un grazie di cuore ad UgiDotNet per tutti questi anni di servizio

Un abbraccio

Andrea

posted @ 29/01/2012 15.50 by Andrea Angella

This blog has been moved…

 

This is my new blog:

Andrea Angella – Official Blog

 

Hello everybody,

It is time for me to have my personal space.

There are many reasons and you can find a description in the following post:

http://andrea-angella.blogspot.com/2012/01/my-new-official-blog.html

This is not certainty an goodbye because I will continue to follow all the Italian community as I always did and help DotNetToscana to grow.

I hope that this will be the opportunity to blog more and that some of you will subscribe to my new feed:

http://feeds.feedburner.com/AndreaAngella-OfficialBlog

Thanks a lot to UgiDotNet for all these yeas of service

Regards

Andrea

posted @ 29/01/2012 14.55 by Angella Andrea

Metro e l’armonia perfetta

File:Theo van Doesburg Composition VII (the three graces).jpg

Metro è un Design Language, (potremmo definirlo anche un “pattern di User Experience”) introdotto da Microsoft, prima con Encarta 95, poi Windows Media Center e  Zune (fonte). La sua introduzione è abbastanza datata, ma è da poco più di un anno che con Windows Phone 7 gli sviluppatori e i designer hanno iniziato a lavorarci.

Spesso ridotto alla leggenda che lo vuole “ispirato dalle stazioni delle metropolitane”, in realtà Metro ha una storia molto più interessante.

Metro è basato sui principi stilistici dell’International Typographic Style, sviluppatosi negli anni ‘50 in Svizzera; lo stile è infatti anche chiamato Swiss Style. Lo stile svizzero si basa su tre punti cardinali: chiarezza, leggibilità e obiettività. (Fonte) E’ uno stile freddo, impersonale e per questo poco utilizzato in pubblicità ma che ha trovato largo impego nell’architettura moderna e per la sua leggibilità nei cartelli informativi.

In realtà Metro si ispira più direttamente agli stessi principi a cui si riconosce lo stile svizzero degli anni ‘50, attingendo direttamente alle idee nate nel cosiddetto Movimento Moderno, un movimento multidisciplinare che intorno agli anni venti e trenta del XX secolo ha cercato di migliorare l’architettura, l’urbanistica, la pittura e il design concentrandosi sulla funzionalità e introducendo nuovi concetti estetici.

 

Al Movimento Moderno, appartiene in particolare una rivista fondata in Olanda nel 1917 chiamata De Stijl. Lo stile.

Il contributo dato alla rivista De Stijl  da Theo van Doesburg e  Piet Mondrian ha il suo apice con la definzione di un termine che in segna un punto fermo nell’arte astratta: in neo-plasticismo. Il critico d’arte Giulio Carlo Argan, intellettuale e sindaco di Roma, nel 1976 scrive :

“Nella poetica neo-plastica è estetico il puro atto costruttivo: combinare una verticale ed una orizzontale oppure due colori elementari è già costruzione.”

In pratica è una grafica “pura” che combina linee e colori esclusivamente con un obiettivo estetico . Il De Stijl  introduce uno stile interdiscipliare che si basa su alcuni principi che ritroviamo in Metro.

  • Astrazione
  • Essenzialità
  • Geometria

Negli elementi che compongono l’interfaccia utente, dobbiamo tenere conto di questi principi; per esempio, se dobbiamo disegnare un pulsante esso dovrà essere un rettangolo oppure un cerchio, non una forma complessa che ricorda un pulsante fisico, come il classico rettangolo con angoli arrotondati che troviamo tra i controlli di Windows. La nostra interfaccia utente dovrà essere essenziale, ma non minimale: dovrà contenere tutto ciò che serve e soltanto ciò che serve, senza però mettere in difficoltà l’utente con elementi troppo piccoli.

Seguendo questi semplici principi e le linee guida ufficiali, riuscirete a realizzare applicazioni funzionali e belle da usare.

Buon Metro!

posted @ 28/01/2012 19.21 by Alessandro Scardova

L’ultima UGIALT.net conference

logo_big

Sabato scorso si è tenuta a Milano, la settima e ultima UGIALT.net conference: ebbene si, ultima come in “non ce ne saranno più altre”.

La fine

Se avete partecipato alla conferenza avete anche sentito la spiegazione del motivo durante la keynote tenuta da Emanuele e Claudio. Se invece non avete partecipato potete leggere le slide della keynote, vedere il video della keynote, o leggere il post di Emanuele: Perchè UGIALT.net ha chiuso?

Quando siamo partiti, più di 4 anni fa (UGIALT.net è stata fondata a fine Ottobre 2007), il nostro obiettivo era quello di portare una visione “ALTernativa” della programmazione su .NET. A mio avviso ci siamo riusciti, visto che anche gli altri usergroup hanno iniziato ad introdurre nelle loro agende sessioni su argomenti più “agili” e meno “corporate”, e tra i partecipanti alle nostro conferenze hanno iniziato a venire anche sviluppatori più “mainstream”. E forse l’essere riusciti nel nostro scopo è stato anche uno dei motivi della chiusura della attività. Lo step successivo sarebbe stato organizzare eventi da 300-500 persone. Ma qui interviene un’altro fattore: dei 5 iniziali fondatori, 2 sono spariti dopo un’annetto, e in 3, ciasucuno con i propri problemi lavorativi e le sue attività extra-lavorative, già si fa fatica ad organizzare un evento da 150 persone, con la sala offerta (e ringraziamo Avanade per averci ospitato per 4 edizioni nelle loro sale), figuriamoci un evento da 400 persone con anche la necessità di cercare la location.

Abbiamo quindi reputato, con grande amarezza, di terminare questa avventura: ora tocca ad altri continuare sulla strada tracciata, e continuare ad organizzare eventi aperti, indipendenti, che guardino senza paura a quello che succede nelle altre community.

La conferenza

Tornando al resoconto della conferenza, bisogna dire che è stata l’edizione dei record: oltre 240 tra iscritti e waitlist (compresi speaker e staff), quasi 150 partecipanti (la capienza massima della location… e forse anche un po’ oltre) e, per la prima volta, abbiamo dovuto lasciare a casa 30 persone iscritte in waitlist sulle 60 registrate.

Anche record di premi: tra i buoni offerti da Umbraco a tutti i partecipanti e tutte le licenze omaggio estratte a sorte, il valore complessivo dei premi ha superato i 50.000€.

E ultimo record: siamo la prima conferenza per developers in Italia ad essere entrata nei trending topic su twitter in Italia.

Abbiamo già pubblicato quasi tutte le slide e le demo delle presentazioni su Joind.in: http://joind.in/event/uan12

Se avete partecipato vi chiedo di lasciare il vostro feedback, sia sulla conferenza che sulle singole sessioni.

Inoltre, grazie all’aiuto di DotNetMarche (nostro erede spirituale) e agli scatolotti prestatici da Lorenzo, sono disponibili anche i video di quasi tutte le presentazioni: http://vimeo.com/album/1814185

Ed in ultimo, per rivivere l'atmosfera, il foto twitter wall realizzato da PepperTweet per la UAN12

E ora?

E ora confidiamo che le altre community proseguano sulla nostra strada: sappiamo di sicuro che DotNetMarche ha in mente qualche cosa oppure, se volete seguire quello che c’è oltre a .NET, WEBdeBS è sicuramente lo usergroup da seguire (ed Emanuele è entrato a far parte del gruppo).

407693_3108061259636_1207452102_3374094_2060978480_n

Per quel che mi riguarda, collaborerò un poco pure io con WEBdeBS,  e poi mi dedicherò maggiormento a opensource e all’interazione con le community locali (ovvero Belghe).

del.icio.us Tags:

posted @ 26/01/2012 20.28 by Simone Chiaretta

Speaker ai Microsoft Days 2012 in Bulgaria – Sofia

I giorni 28 e 29 Marzo, Microsoft Bulgaria terrà il tradizionale evento "Microsoft Days".

È con molto piacere che annuncio di essere speaker per due argomenti di grande rilievo per la prossima ondata di tecnologie:

Gli abstract sono pubblicati qui:

http://www.msbgregistration.com/Presenter.aspx?PresenterId=257

MS-Days-Sofia-Bulgaria

A presto Sofia!!!

posted @ 26/01/2012 15.42 by Raffaele Rialdi