www.netsi.dk

"The internet is just a layer on the real world" (don't forget that!)

Kommentarer til Dynamicweb 7.1 technical realease notes

Jeg var så uheldig at blive forhindret i at deltage i præsentationen af 7.1, men heldigvis har jeg jo # som en search kolonne i min Adobe Air baserede Twitter klient: “TweetDeck” – der kan jeg jo følge med og har da læst mange spændende kommentarer.

Jeg har så valgt at kigge på den dokumentation som man kan finde på “Dynamicweb engage”. Der er flere dokumenter som hver i sær fortæller om ændringer. Jeg vil her gennemgå dem jeg har kigget på.

Bug fixes included in Dynamicweb 7.1

Jeg fandt 49 (dokumenterede) bug fixes, og de fordeler sig jævnt over både Dynamicweb CMS og Dynamicweb . Hvis man har prøvet at indrapportere en case som så er blevet anerkendt som en bug, så vil man faktisk modtage en e-mail i forbindelse med at disse bugs er blevet rettet – så det er lidt ligesom at få skatteopgørelsen fra skat hver år! Har du fået en e-mail er du heldig – din bug er blevet fixet… Har du ikke, nå, du må vente lidt på en hot-fix eller næste release… :-)

Jeg så ikke så mange improvements i denne liste – men det har sin naturlige forklaring – forbedringere har fået sine helt egne dokumenter! Dynamicweb 7.1 er jo en stor forbedring af Dynamicweb CMS og eCommerce.

Technical release notes, Dynamicweb 7.1

Jeg går lige i kødet på det jeg har kunne læse mig frem til i denne PDF fil.

2.1.2 Global tags section in navigation XML

Dette er jo bestemt en relevant og god ting når man skal lave navigation på et , at man har adgang til de globale information der ligger i global tags. At det skulle være noget nyt for Dynamicweb 7.1 – hmm… det er jeg nu ikke så sikker på :-) I de løsninger som kører på 7.0xx er der allerede dette tilgængeligt. Se her – et screenshoot af en del af den XML som er tilgængeligt på Bleau’s hjemmeside:

et screenshoot af en del af den XML som er tilgængeligt på Bleau’s hjemmeside

Men – fedt er det at man har det tilgængeligt i XML’en! Ingen tvivl om det :-) Faktisk tror jeg at en de nævnte forbedringer allerede er blevet frigivet inden 7.1.

2.1.3 Support for relative xsl:import

Min kære kollega Morten Bengtson (Twitter: http://twitter.com/mbengtson) blev takket i forbindelse med denne forbedring. Jeg synes også at det er på sin plads i den forbindelse lige at takke den anden vej: Tak DW for at I lytter når I får velbeskrevne forbedrings ønsker ind!

Inden man kunne anvende relative stier i XSL:import var det praktisk talt urealistisk at lave seriøs anvendelse af biblioteker og delt data på tværs af XSLT . Det er nu realtistisk at have XSLT og XML data liggende i biblioteker som man så flere steder kan tilgå i sine . Endnu et argument for at anvende XSLT .

2.1.4 Limiting loops in XSLT

Jeg har tidligere stødt på denne “forbedring”. Lige pludselig var der nogle data i loops der lå “langt nede” i eCommerces relative dybe loop-struktur som var ikke eksisterende. Det er så når man fra Dynamicwebs side har ment at det kunne være smart at man kunne begrænse hvilke loops der blev gennemløbet gennem denne “forbedring”. Men den ryger i kategorien:

Man begår kun fejlen – ikke at forholde sig til hvilke loops der skal med – een gang! :-)

I toppen af din XSLT skal du bare huske at fortælle DW hvilke loops du vil have med ud:

<xsl:variable name="availableloops" select="'Groups,Products'" />

Men det skal lige nævnes at DW siger at hvis man har fulgt deres anbefalinger om at matche således loop[@name='aLoopName'] så er den hellige grav velforvaret. Åh, og så kan du iøvrigt også være doven og skrive “*” i den variabel “avilableloops” – så får du bare ikke performance forbedring.

2.3.2 Search page

Okay, man har nu tilføjet endnu en templatetag som kan anvendes så man ikke skal hardcode ID’er ind til den side hvor man nu har sit søgeresultat….

<!--@DwAreaSearchPageID-->

Jeg må sige at jo – det kan da være en god ting og er endnu et patch/quick help-fix som gør det nemmere for…? Frontendere? Kunder? Øh… jeg er i tvivl.

Taggets værdi baseres på noget som jeg mener er relativt gaffatape-agtigt:

..It is now possible to retrieve the first created search page in the current area by using this

new template tag.

  1. Så må jeg jo passe på at jeg ikke indsætter searchresult moduler ind for så bliver de jo lige pludselig target for mit søgeresultat!
  2. Hvis jeg har flere søgninger på et site (en der søger generelt i sider, en der søger i HR, en der søger i eCommerce), så kan jeg ikke bruge denne tag til noget…

4.2 Getimage.aspx

Der er nogle forbedringer, jeg havde en dialog med Nicolai Petersen (twitter: http://twitter.com/nicped) hvor jeg forsøgte at argumentere for at man kunne få Getimage.aspx til at indpasse et billede til både højde og bredde. Jeg har ikke kunne læse mig til det – men afventer svar fra http://twitter.com/nicped.

Hvis man f.eks. satte både højde og bredde til 100 ville man med henholdsvis et bredformat og højformat billede automatisk få en indpasning af hele billedet i både bredde og højde som vist her:

GetImage.aspx som den kan tage sig ud - her er valgt både højde og bredde på 100px

Resultatet:

 

image

4.3 404 on area

Det er rigtig godt – nu kan man have en “404 not found” side pr. sproglag! Cool når man anvender Dynamicweb med sproglag som ikke nødvendigvis er samme firma! :-)

4.5 Google JS API includes

Det er spændende – det er en måde at få ensartet anvendelse af frontend implemtering metoder. Jeg har så stor forventning i forhold til om der også er lavet en generisk måde at inkludere og CSS på i forhold til enkelte moduler på afsnit. Et rygte (og et screenshoot jeg har set) viser at man for alle moduler ovenover settings har settings: en til valg af javascript fil og en til valg af stylesheet. Dette gør at man kan nøjes med at hente f.eks. jQuery plugins ind når de skal bruges. Om det så er kommet med i 7.1 kan jeg ikke læse mig til ud af dokumentationen – jeg må vente jeg får fingerne i en live version – eller en eller anden der har prøvet det eller bare ved det kommenterer på denne blog post :-)

Konklussion

Jeg har været kritisk her i denne post – indrømmet. Jeg er ikke i tvivl om at jeg senere vil skrive et andet indlæg hvor jeg kan fortælle om alle de rare forbedringer som er med i DW 7.1! Men jeg mener også at det er vores sure pligt som brugere af systemet at markere når der er noget man ikke synes er helt forståeligt eller optimalt. Generelt synes jeg at det jeg har hørt og læst om DW 7.1 er positivt og det tyder på at man forsøger at streamline produktet, at gøre det nemmere at anvende det og forbedre faciliteterne. Udfra Dynamicweb 7.1 technical release notes har jeg kunne skrive ovenstående – det er derfor vigtigt at have det i baghovedet: Jeg har skrevet om det dokument – ikke en anmeldelse af DW 7.1! Den kommer senere! :-)

Share

Emulating an Android phone directly from windows (or other supported operating systems)

I have read about emulating an Android from windows here: http://developer.android.com/guide/developing/tools/.html and here are the basic knowledge written as a guide.

Download the Android SDK

You can download the Android SDK from here: http://developer.android.com/sdk/index.html Do that and unpack it to your disc.

Open CMD window with current directory set to “tools”

We need a CMD prompt with current directory set to the “tools” directory inside the Android SDK

  • Finding the emulator.exe.
    Click the start button of windows
  • In the search field enter "emulator.exe"
  • When the "emulator.exe" appears right click on it and click "Open the location"
  • Now you click the full address of the explorer which opened. It is probertly something like this:
    C:\Users\Sten\Documents\Download\android-sdk_r05-windows\android-sdk-windows\tools
  • Copy that full address to the clipboard
  • Open a CMD prompt
    Press the [Windows-key]+[R] or enter "cmd" in the windows search textarea of the windows startmenu
  • In the CMD window enter: "cd " + right click and paste the path from above

Setup an "AVD" – Android Virtual Device

Before we can run the emulator we need to have defined an Android Virtual Device. There are a tool in the SDK which will help us do that.

The command you should use looks like this:

android create avd -n <name> -t <targetID> [-<option> <value>] …

Then <name> is well a name which you use in future when runne the AVD.

The <targetID> is used to select which hardware and OS version should be used for your virtual device. You can get at list of the currently available targets on your SDK by typing this command:

android list targets

For now lets try a simple AVD – in the references below you can find a link to the complete documentation of the AVD.

To create an Android 2.1 based AVD called “Android2.1” type this command:

android create avd -n Android2.1 -t android-7

Running the emulator

After having created an AVD we can run it from the command window. To run the AVD we created called “Android2.1” simply enter this command:

emulator –avd Android2.1

To start of with the emulator will “boot” – that may take a while, but you should see something like this:

The emulator booting

Here are some more screenshoots:

The home screenThe settings panelVisiting the m.cnn.com website

Adding a SD card

One thing which I did not thing about but was quickly aware of was the need for a SD Card in the emulator. No problem! You simply change the command to:

android create avd -n Android_2G_SDCard -c 2000M -t android-7

It may take a while to create – but when done you have a new AVD profile called “Android_2G_SDCard” which is based on Android 2.1 and has a SD card with 2GB memory.

Installing

You can install apps on the AVD. I tried simply by locating “APK” files on a containing Android Apps. Using the browser I visited http://www.androidfreeware.org/ and located an APK file – downloaded it and installed the app as seen below.

An application has been downloaded and is ready to install The game which I downloaded and installed worked fine. Even with sound :-)

Conclusion

I find the emulator included in the SDK very usefull! It is relatively straightforward and I guess that you can get a taste of the Android OS for free using this emulator. People who have not yet bought a smartphone have all the chances here to try out the interface – and even download some of the apps availiable for free. For an app developer it is probertly also a very usefull tool! Well done Google!!!

References

Share

Tilpasset rapportering i Google Analytics

På mit arbejde i Bleau A/S arbejder jeg også med Google Analytics. I dag kiggede jeg på nogle af de muligheder som har for . Jeg synes at det er enormt spændende hvad man kan få ud af de data som opsamles i Google Analytics, men på samme tid er det jo lidt uoverskueligt præcist hvordan man skal tolke de rapporter som findes. Tilpasset rapportering er heller ingen undtagelse – det giver mange muligheder men pas på – det er jo statistik som kan tolkes (læs forståes og misforståes).

Sig mig: Hvor lang tid bruger folk på de forskellige sider på mit site?

Google selv er rigtig gode til at lave værktøjer i Google Analytics som gør det hurtigt og nemt at lave nye rapporter som er tilpasset dit behov for analyser.
Mit eget site har gennem længere tid haft omkring 1000 besøgende pr månede. Der er mange rapporter som alle siger meget – men stadigvæk så har jeg nogle spørgsmål som ikke bliver besvaret gennem standard rapporterne. Men jeg er jo nysgerrig af natur – hvem har vandret rundt på mit site? Hvor er det at de bruger tid? Og hvor lang tid bruger de på de forskellige sider?

Du skal klikke på tilpasset rapportering for at kunne lave dine egne tilpassede rapporter i Google AnalyticsLad os sætte en tilpasset rapport op der fortæller det!

Vi åbner en Google Analytics konto: Google Analytics

Vælger en Analytics konto og klik på “Se rapport”

Vi er nu inde på kontoen og skal så i venstre side vælge “Tilpasset rapportering”.

Vi klikker på “Opret ny brugerdefineret rapport” og ser nedenstående værktøj. Jeg synes ikke at det umiddelbart var overskueligt men en kombination af “trial and error” og ja, læse lidt af Google’s egen hjælp og se videoer så var det faktisk ikke så skræmmende og uoverskueligt.

Her er det værktøj som Google Analytics tilbyder til at lave tilpassede rapporter

 

Det man gør herfra er simpelt at finde nogle måleparametre (de blå) og trække dem ind på “Måling”. Man bestemmer her – IMHO: så vidt jeg har forstået det – hvilke datakilder der skal være grundlaget for den tilpassede rapport. Dimensioner bestemmer så (IMHO) hvilke dele af grundlaget fra måleparametrene der skal trækkes ud.

Okay – jeg har brug for at vide noget om tiden folk bruger på en side. Der findes en måleparameter til netop det: “Gennemsnitlig tid på en side”. Den trækker jeg simplelthen ind og lægger den på en “Måling” box.

Dimensionen – ja, jeg vil jo gerne vide noget om tiden pr side – så jeg trækker dimensionenDestinationsside” ind på “Dimensionen”.Voila! Jeg er færdig og min opsætning ser således ud.

Måleparametre og Dimensioner er sat op, rapporten skal navngives og gemmes

Jeg omdøber den lige ved at klikke på “rediger” udfor titlen (Tilpasset titel 20. maj 2010) – jeg kalder den “Tid folk bruger på mine sider”. Når jeg så har gemt den komme jeg direkte over på rapporten. Den viser så de top 10 sider hvor der er brugt mest tid på af mine besøgende:

Her ses en tilpasset rapport som viser hvor lang tid folk bruger på at besøge de forskellige sider på mit website

Det fortæller mig jo en del konkrete ting om hvordan folk anvender mit ! F.eks.:

  • Den sidste månede har folk gennemsnitlig brugt 4 minutter og 19 sekunder på at læse/kigge på indhold på mit website.
  • Et indlæg jeg tidligere skrev (Et kig på Google Analytics avanceret segmentering…) har folk gennemsnitligt (!) brugt 12:21 minutter på at læse siden.
  • Ved at ændre i perioden (klik på datointernallet) og sætte den til at dække over det sidste år, viste det sig at folk gennemsnitligt (!) brugt 3:47 minutter på at besøge mine sider.

Men hvad er du det? Gennemsnitlig tid på side: 1t 10min 39sek…!!

Jeg har i et tidligere indlæg luftet min lidt skeptiske holdning til statistik. Kan det f.eks. passe at på en side () har folk brugt gennemsnitlig over 1 time…!? Er det mig der ikke har sat rapporten korrekt op? Er det den måde Google Analytics logger på eller? På et kundesite så jeg f.eks. også en afvisningsprocent på 0% Det betyder (IMHO) at nogle aldrig har forladt websitet? :-)

Nå, men under alle omstændigheder så er det interessant at “lege” med og man føler at man som normal person kan få tal til at vise interessante tendenser. Jeg nyder f.eks. at dig – kære læser – måske har brugt omkring 12 minutter af din dyrebare tid på at læse denne side. Nu mangler jeg bare at du skriver dine kommentarer også! :-)

/Sten

Hvis du ikke er faldet i søvn – eller har bouncet et andet sted hen nu – så skulle du måske læse denne artikel også?

Share

JSON viewer – comes handy

Today I came across a file, hmm… I love the opportunities that gives you as a developer, but it is very compressed and not especially human friendly. Unlike XML, which on the other hand calls for a lot of coding inside a program to convert it into anything other that just data. JSON can contain actual code, functions, objects and ofcause data.

I then googled for JSON viewer and found a very cool tool! “JSON viewer” at codeplex.com. It comes in three variants:

  1. A standalone viewer – JsonView.exe (view example screenshoot)
    No doubt – I found this very easy to use. Click to start, paste JSON and view it…
  2. A plugin for Fiddler 2 (http://www.fiddler2.com/) – FiddlerJsonViewer.dll
    Well, I do not have it installed.
  3. A visualizer for Visual Studio 2005 – JsonVisualizer.dll
    I followed the instructions (though in VS2008), but never really got to a point where I saw the visualizer appear. Perhaps I just dont get the concept of visualizer.

I will not go any further into how to install it, I believe that the readme.txt inside the ZIP file should explain that part. And how to use it – well, try downloading this JSON: http://www.netsi.dk/wordpress/wp-content/uploads/2010/05/exampleJSON.js and play around with it!

Share

Netsi Cycle Template for Google Picasa

image The other day I wrote a post about how you can add templates to Google Picasa – I now have created my first template for ! I name it “Netsi Cycle”, as it offers jQuery based auto cycling through exported .

You can download Netsi Cycle Template as a zip file here. Also visit the an online demo.

Inside the unzipped folde you will see a structure containing the files which together make the resulting webgalleri. You may want to take a look inside the structure and try changing things like:

  • Effects used
  • Speed of transitions
  • CSS styles

The transitions are handled using a jQuery plugin “jQuery Cycle Plugin” developed by M. Alsup. It is higly customizable which you can see the jQuery Cycle Plugin homepage.

Please feel free to download and put any comments, links til sites where you have used Netsi Cycle here on my blog!

Share

Use Google Picasa to generate cool webgalleries using templates…

Google Picasa offers so much more than just viewing on your PC and exporting them to a Google Webalbum. One of the cool ones is of template based webgallery generation. Exporting images using free can give your a twist making them very cool to watch.

How does it work?

Well you need ofcause Google Picasa. Then you need to add some “templates” inside the Picasa program. When you have done that you can get another template to choose from when you use the “Export to HTML…” option. What is generated are a folder containing files needed to show a gallery of the images you have selected.

1 Getting

This is simpel: Download and install it from Google: http://picasa.google.com

2 Adding the template

This post uses templates on: http://www.paulvanroekel.nl/picasa/. You will probertly find many others elsewhere on the net! We will try to use Piecemaker.

  1. Download the ZIP file containing the templates for Picasa
  2. Extract them to a temp folder
  3. Copy the folder named “Piecemaker” to a folder inside your Picasa installation – something like: “C:\Program Files\Google\Picasa3\web\templates”
  4. Start Picasa

3 Exporting some images using a template

You simply choose some images in Picasa. Then you find the “Export to HTML..” under the “Folder” menu (my version is in Danish, so it might be called something in that direction). Here you can see how it looks in my Danish Picasa when I choose the “Export to HTML…”:

image

When you choose the menu item you get a box with some choices. Here you can see which templates are installed inside your Google Picasa’ target=_blank>Google Picasa’ target=_blank>Google Picasa’ target=_blank>Picasa – probertly some basic ones plus Piecemaker which you just “installed” above. Choose Piecemaker and change other settings if you like…

image

When you have choses the “export” (here: “Eksporter” – in Danish) Google Picasa’ target=_blank>Google Picasa’ target=_blank>Google Picasa’ target=_blank>Picasa will generate the static files inside the folder you can see above as “Mappe”. You do not need to worrie so much about it now, because when exporting is done Picasa will launce the file showing the final result!

Usefull links and information

You can read the instructions on how to add templates to Google Picasa’ target=_blank>Google Picasa’ target=_blank>Google Picasa’ target=_blank>Google Picasa from the FAQ on the website of Paul Van Roekel. Another page on that site has some videoes showing how to… The example above is IFRAMED into this post, which is okay, but not perfect. Also I have changed the index.html file inside the template to include a link to my blog – ofcause you can make other changes… Perhaps one day you can even create your own template!

Share