Cloud9Ide Hello Soep Soep

Hello Soep Soep in Cloud9ide.com

image

Advertisements

Node.js hello world on Windows

1] Download node.exe
Location: https://github.com/tjanczuk/node/downloads
Default installation: C:\Program Files\nodejs

2] Write helloworld.js javascript file:

var http = require(‘http’);  
http.createServer(function (req, res) {  
  res.writeHead(200, {‘Content-Type’: ‘text/plain’});  
  res.end(‘Hello World\n’);  
}).listen(8124, "127.0.0.1");  
console.log(‘Server running at http://127.0.0.1:8124/’);

3] Run
(In dos): Run node.exe helloworld.js

Console should be saying: ‘Server running at http://127.0.0.1:8124/’

4] Call from browser
http://127.0.0.1:8124/

image
Voila an other hello world!

More info: http://www.nodebeginner.org/

Except

Coding tip of the day: when you have two lists of strings and want to know the items that are in the first list, but not in the second, use IList.Except:

var firstlist = new List<string>() { "soep", "aap" };

var secondlist = new List<string>() { "soep", "koffie" };

var result = firstlist.Except(secondlist).ToList();

This code returns a list of strings with one item: “aap”

WCF Web API

There is a new API for doing REST with WCF: WCF Web API http://wcf.codeplex.com

Here is a quick getting started blog:

1] Create a new empty ASP.NET application

image

2] Add WebApi.All from NuGet

image

3] Add new class

using System.ServiceModel;

using System.ServiceModel.Web;

 

namespace WcfWebApi

{

    public class Contact

    {

        public int Id { get; set; }

        public string Name { get; set; }

    }

 

    [ServiceContract]

    public class ContactService

    {

        [WebGet(UriTemplate="")]

        public Contact Get()

        {

            return new Contact() { Name = "Bert", Id = 999 };

        }

    }

}

4] Add global.asax file and add a route ‘contact’

using System;

using System.Web.Routing;

using Microsoft.ApplicationServer.Http.Activation;

 

namespace WcfWebApi

{

    public class Global : System.Web.HttpApplication

    {

        protected void Application_Start(object sender, EventArgs e)

        {

            RouteTable.Routes.MapServiceRoute<ContactService>("contact");

        }

    }

}

To get this code running I needed to add a reference to Microsoft.ApplicationServer.HttpEnhancements.dll and namespace ‘Microsoft.ApplicationServer.Http.Activation’

5] Run in browser ‘/contact’ to get XML back

image

6] Run in Fiddler with ‘accept:application/json’ in the header to get JSON back

image 

Conclusion: with just a bit of code we can quickly create REST services that return XML/JSON format. No hassle with cryptic XML config files anymore Smile

Raven DB

Raven DB is an opensource ‘document database’, it can be used to store documents.

Url: http://ravendb.net/

1] Installing

On the download page there is a zip file available, but the cool new way is to search in NuGet. So create a Visual Studio project –> Add library package reference and search for RavenDb:

image

Hit Install and accept license:

image

2] Start database

In the package folder ‘RavenDB.1.0.0.322\Server’ there is an executable ‘Raven.Server.exe’, run it.

If you enter http://localhost:8080 a Silverlight management console turns up.

3] Coding Hello World

Create two orders, a product list and store it.

class Program

{

    static void Main(string[] args)

    {

        string url="http://localhost:8080";

        var store = new DocumentStore { Url = url }; 

        store.Initialize();

 

        using (var session = store.OpenSession())

        {

            var product1 = new Product{Cost = 3.99m,Name = "Koffie"};

            var product2 = new Product{Cost = 3m,Name = "Soep"};

            var order = new Order(); 

            order.Products.Add(product1);

            order.Products.Add(product2);

            session.Store(order);

            session.SaveChanges();

        }

    }

 

    public class Product

    {

        public string Id { get; set; }

        public string Name { get; set; }

        public decimal Cost { get; set; }

    }

 

    public class Order

    {

        public string Id { get; set; }

        public string Customer { get; set; }

        public IList<Product> Products { get; set; }

 

        public Order()

        {

            Products = new List<Product>();

        }

    }

}

When you run the application, a file ‘Data’ is generated.

4]  View the database on http://localhost:8080 and search for the just inserted order:

image

Or type http://localhost:8080/docs/orders/1025 in a browser and get the json back.

5] Query data

With a simple query the data can be retrieved:

var orders=session.Query<Order>().ToList();

In a future post the Raven DB spatial options will be explored.

ArcGIS Developer Summit: Dag 2

Vandaag het volgende nieuws van de conferentie:
– ArcGIS Mobile
Er zijn een aantal objecten toegevoegd aan ArcGIS Mobile, zoals bijvoorbeeld mapactions
(move vertice) en we hebben nu meerdere graphic en maplabel layers bij een kaart. Nieuw
is ook een basemap layertype voor alle referentielagen (in een SDC formaat geloof ik).
Er kunnen helaas geen queries worden uitgevoerd op een basemap layer. De mapcache heet nu
MobileService ipv euh mapcache. Alle projecties worden nu ondersteund, dus hopelijk
gaat Rijksdriekhoekstelsel nu ook goed. Er is geen ondersteuning voor een
relationeel datamodel (dus bv een featureclass met een gerelateerde tabel) en dit gaat er voorlopig ook niet komen. ETL dan maar weer. ArcGIS Mobile code gaat in de toekomst steeds meer gebruik maken van unmanaged code ipv .NET,dit vanwege performance en om op een gegeven moment ook op bv Symbian te kunnen draaien.
De mapcache en sdc kunnen nu ook aangemaakt worden dmv tools vanuit ArcToolbox.

ArcGIS Mobile in actie

– ArcGIS Server
Ik ben bij een leuke presentatie van de ArcGIS Server Flex API geweest. Flex is een soort
flash/Silverlight van Adobe, zag er mooi uit. Ontwikkelen gaat in Eclipse (of notepad/vi voor de liefhebbers) en Actionscript, er wordt een SWC file gemaakt (uit te spreken als SWIK) en die wordt
op een webserver gezet. Demo’s gezien van Flex kaartnavigatie, queries, identify en aanroepen van ArcGIS Server Geoprocessing services. Er is slechts 3 weken gebouwd aan deze Flex API
dus pas na 9.3 komt een eerste versie uit. Het is de verwachting dat er op een gegeven moment
ook gewerkt gaat worden aan een Silverlight API voor ArcGIS Server.
Verder nog een sessie bijgewoond over de Web ADF, wat nieuwe functies in 9.3 met ASP.NET partial
postback maar het blijft een ingewikkelde toestand zo te zien. ArcGIS Server ondersteunt nu ook opengis formaten als WFS-T en WCS. 

– ArcSDE
Direct connect wordt steeds belangrijker, het is de verwachting dat de
oude methode (met een ArcSDE Service als doorgeefluik) z’n beste tijd heeft
gehad. Bij ArcGIS 9.3 SP 5 is het eindelijk mogelijk om met direct connect
een connectie te maken met een lagere serverversie. Nieuw is ook dat PostgreSQL ondersteund wordt, met opslagformaten st_geometry en geometry (het standaard PostgreSQL formaat).

ArcGIS Developer Summit: Dag 1

Highlights
1] ArcGIS Explorer
Er zijn veel ontwikkelingen gaande bij ArcGIS Explorer. Er werd een preview gegeven
van een toekomstige versie, met switch naar 2D (zoals ArcMap), met direct connect naar ArcSDE
en een mooie ribbon user interface. Er is ook een SDK bij ArcGIS Explorer voor het ontwikkelen
van extra functies

 

Jack op het podium (maar niet zo lang gelukkig)

2] ArcEngine
ArcEngine wordt nu gepresenteerd naast ArcGIS Mobile als mobiele oplossing. Gebruik ArcGIS Mobile
voor eenvoudige mobiele applicaties, gebruik ArcEngine voor meer ingewikkelde veldapplicaties. Bij ArcEngine gaat SQL Express als database meegeleverd worden.

3] ArcGIS Server
a. Javascript .NET REST API
Er zijn mooie demo’s van de ArcGIS Server Javascript REST API. Via eenvoudige url’s
kunnen kaartjes en geometry opgevraagd worden in een aantal formaten (json, html, kml/kmz). Dit maakt het maken van mashups
makkelijk. Demo’s met Ruby, Flickr, Yahoo Pipes, Virtual Earth en Google Maps. Voorbeeldapplicatie:
Services Explorer
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Speciality/SuperTuesdaySample/MapServer
Verder gebruikte technieken: DOJO (een javascript library) en Google Charts (voor de grafieken).
b. Security
Er is een nieuwe security tab pagina binnen ArcGIS Server Manager om de services te beveiligen
op basis van bv Windows of ORacle users
c. In 9.3 kan gebruik gemaakt worden van ASP.NET Ajax, oudere methodes worden ook nog ondersteund wordt gezegd.

ArcGIS Mobile

4] ArcSDE
Postgress SQL gaat nu ook ondersteund worden, standaard opslagformaat in ArcGIS 9.3 wordt
st_geometry. Wel opvallend: in Oracle 11G mogen er geen public synonyms aangemaakt worden
die beginnen met ‘ST_’, pesterijtje van Oracle wellicht?

5] ArcGIS Mobile
a. Nieuwe in 9.3 is de mogelijkheid om applicaties aan te bieden via ArcGIS Server. Dit maakt deployment
op PDA’s makkelijk (geen cab files meer copieeren naar de pda). Verder wat nieuwe controls gezien
(catalogservice and mobileservice) en nieuwe mapactions (zoals move vertice).
b. Er is een voorbeeld applicatie met ArcGIS Mobile, zag er mooi uit. Heeft ook de mogelijkheid om
‘tasks’ op te nemen.

6] ArcGIS Desktop
Er is na tien jaar crashes nu een ‘crash detection’ systeem gemaakt, fouten kunnen nu in een rapport opgestuurd worden.

Verder niet genoemd vandaag:
– Portal Toolkit
– ArcPad

– ArcIMS
– Java: Nauwelijks