Dana Coffey created a list of 25 tools you might also helpful. Nice list, though.

"With traveling and use of many different computers, many geeks (and geek girls) often find a need to have a uniform set of tools handy wherever we may be. I've put together a list of 25 invaluable portable apps that can be installed on an Ipod or Thumb Drive. These are really cool!"

Posted at Tuesday, August 26, 2008 5:57:53 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

Since Photosynth was announced the very first time, I was keen to try out this technology. Finally, Photosynth became public and you can create your own synths.

After installing the Browser plug-in you select "Create your Synth" on the Photosynth Web site.

Microsoft Live Labs - Photosynth

To sign in you'll need a Windows Live account - probably you have a messenger account. You'll start a synth by selecting a set of photos.

Photosynth - Start new synth dialog

The dialog is quite self-evident. Don't forget to select the license you want to use for the synth. That's quite important as each and every synth is public available.

Photosynth - Create synth dialog

Select "Synth" and then just wait... 

Photosynth - Generating synth dialog

You'll probably get a good "synthy" rate.

Photosynth - Synth completed dialog

And that's what you finally get:

Source: http://www.photosynth.net/

Posted at Monday, August 25, 2008 12:52:41 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

If you are not sure if a DGS instance provides a certain extension, just have a look at the metadata of the service, e.g. http://www.restful.ws/datagridservice/meta. You will find the all the available extensions with the predicate http://www.webcomposition.net/2008"02/dgs/meta/extension (we say "has extension"). In the example below we find the SA-REST extension I have introduced yesterday.

  1: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  2:          xmlns:ns="http://purl.org/dc/elements/1.1/" 
  3:          xmlns:crud="http://www.webcomposition.net/2008/02/dgs/crud#" 
  4:          xmlns:meta="http://www.webcomposition.net/2008/02/dgs/meta/" 
  5:          xmlns:sarest="http://lsdis.cs.uga.edu/SAREST#">
  6:   <rdf:Description rdf:about="http://www.restful.ws/DataGridService">
  7:     <!-- ... -->
  8:       <meta:extension>WebComposition.Dgs.Extensions.SaRest.SaRestHandler</meta:extension>
  9:     <!-- ... -->
 10:   </rdf:Description>
 11: <rdf:RDF>
Posted at Wednesday, August 20, 2008 10:05:31 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

[vsr]The last few evenings I spend writing an extension concept for the WebComposition/DGS approach. Initially, I was looking for a semantic description for the RESTful interface of the DGS. There are plenty approaches and a lot of research is going on for extending the WSDL interfaces with semantics. OWL-S and WSMO might be the most important examples within this field. However, it appears to be a bit more tricky for REST-driven approaches. For the DGS, I decided to try the SA-REST approach of the Kno.e.sis Services Science Lab of the Wright State University, Ohio.

However, I did not want to make this as a internal component of the DGS as is a research project, and no recommendation or standard is out there yet. So I came along with the extension concept of the DGS that allows dynamically loading of additional extensions in addition to the core components of the DGS.

The IExtension interface provides hotspots were own code can be executed right before and after one of the CRUD (Create, Read, Update, Delete) events.

  1: namespace WebComposition.Dgs.Extension
  2: {
  3:     public interface IExtension
  4:     {
  5:         bool CreateStartUp(ref ExecutionContext context);
  6:         bool CreateTearDown(ref ExecutionContext context);
  7:         bool ReadStartUp(ref ExecutionContext context);
  8:         //...
  9:     }
 10: }

The ExecutionContext contains the request URI, the corresponding data adapter and (if already available)  the current content to be returned with the response.

The extension can modify or create the content to be returned. In this case the return value must be set to false. Returning this dirty flag the DGS knows that the extension provided a new content to be returned. Any further internal functionality by the DGS is thus skipped and the newly provided content from the extension is returned.

To keep the WebComposition/DGS approach as flexible as possible, extensions can be deployed at runtime. The DGS is instructed to use extension by specifying them within the web.config file.

  1: <webComposition>
  2:     <dataGridService>
  3:     <extensions>          
  4:         <extension type="WebComposition.Dgs.Extensions.SaRest.SaRestHandler, 
  5:                    WebComposition.Dgs.Extensions.SaRest, 
  6:                    Version=1.0.0.0, 
  7:                    Culture=neutral, 
  8:                    PublicKeyToken=null" />            
  9:       </extensions> 
 10:       ...
 11:     </dataGridService>
 12: </webComposition>

Based in this extension mechanism I created my very first extension to provide SA-REST support. If you have a closer look to SA-REST you might realize a drawback of the approach (one that is directly related to the REST principles). When using RDFa or any other microformat in HTML/XHTML the description of the service is rather static. The DGS on the other hand provides a highly flexible solution. Here, the full power of the DGS turn up. Analyzing the SA-REST annotation you will realize that you have RDF triples, e.g. metadata. This metadata can be stored within the DGS of course.

If we have a closer look on this metadata we can add this metadata by performing an updated on your service's meta URI. In my case it is http://localhost/datagridservice/DataGridService/meta.  Below we use some RDF based on the originally SA-REST example.

  1: <rdf:Description rdf:about="http://localhost/datagridservice/DataGridService">
  2:     <SAREST:input rdf:resource="http://lsdis.cs.uga.edu/ont.owl#Location_Query" />
  3:     <SAREST:output rdf:resource="http://lsdis.cs.uga.edu/ont.owl#Location" />
  4:     <SAREST:action>HTTP GET</SAREST:action>
  5:     <SAREST:lifting rdf:resource="http://www.restful.ws/lifting.xsl" />
  6:     <SAREST:lowering rdf:resource="http://www.restful.ws/lowering.xsl" />
  7:     <SAREST:operation rdf:resource="http://lsdis.cs.uga.edu/ont.owl#Location_Search" />
  8: </rdf:Description>

The SA-REST extension now extends the URI scope of the DGS - which is actually a very cool feature. Once deployed, the /meta scope is extended with /meta/sarest. If you now perform a GET request to http://localhost/datagridservice/DataGridService/meta/sarest. The extension will return the corresponding SA-REST metadata we used above.

To round up this exercise I've also created a set of XSL transformations that create XHTML to be used within any Web page. E.g. the SA-REST annotation mixed with the content, again based on the original SA-REST example, would look like below. Keep in mind, the XHTML snippet you see here was dynamically created by the DGS itself using a transformation.

  1: <p about="http://localhost/datagridservice/DataGridService" xmlns="http://www.w3.org/1999/xhtml" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sarest="http://lsdis.cs.uga.edu/SAREST#">
  2:     The logical input of this service is an
  3:     <span property="sarest:input">http://lsdis.cs.uga.edu/ont.owl#Location_Query</span>
  4:     object. The logical output of this service is a list of
  5:     <span property="sarest:output">http://lsdis.cs.uga.edu/ont.owl#Location</span>
  6:     objects. This service should be invoked using an
  7:     <span property="sarest:action">HTTP GET</span>
  8:     request.
  9:     <meta property="sarest:lifting" content="http://www.restful.ws/lifting.xsl" />
 10:     <meta property="sarest:lowering" content="http://www.restful.ws/lowering.xsl" />
 11:     <meta property="sarest:operation" content="http://lsdis.cs.uga.edu/ont.owl#Location_Search" />
 12: </p>

The extension concept allows to add new custom components and to customize the DGS even more while the SA-REST extension provides a very first capability to describe the DGS' RESTful interface in a semantic way.

I am going to do a second proof of concept using another approach describing RESTful services soon to show the flexibility of the extension concept.

Posted at Tuesday, August 19, 2008 9:51:05 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

Amer Gerzic created a great plug-in to format source code while writing a post in Windows  Live Writer.

Insert Source Code...

You simply paste the code into the plug-in Window, specify the appearance of the code snippet.

Source Code Formatter 

He supports a wide range of languages within this plug-in which makes it so interesting. Currently supported languages are ASPX, C, C#, C++, COBOL, Cold Fusion, CSS, Eiffel, Fortran, Haskell, Java, JavaScript, JScript, Mercury, MSIL, Pascal, Perl, PHP, Python, Ruby, SQL, Visual Basic, Visual Basic Script, XML.

Posted at Sunday, August 17, 2008 1:25:12 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

Jon DeVaan and Steven Sinofsky, both senior managers for the upcoming Windows 7, are hosting a blog called Engineering Windows 7, inviting everybody to comment about the future development of the new Windows platform. Actually, they only request to follow a few guidelines that however should be self-evident following a certain netiquette.

"We’re excited about this blog. As active bloggers on Microsoft’s intranet we are both looking forward to turning our attention and blogging energies towards the community outside Microsoft. We know the ins and outs of blogging and expect to have fun, provide great information, and also make a few mistakes. We know we’ll misspeak or what we say will be heard differently than we intended. We’re not worried. All we ask is that we have a dialog based on mutual respect and the shared goal of making a great release of Windows 7."

Source: http://blogs.msdn.com/e7/

Posted at Sunday, August 17, 2008 11:18:11 AM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

[rdf]Today, I spent some minutes to perform an experiment on linked data. The D2R server at L3S - University of Hannover publishes a weekly update version of the DBLP bibliography. The URIs from the Hannover server can thus be used to to set RDF links to DBLP data.

The FOAF profile is quite meaningless when used in a stand-alone to the machine-readable Web, similar to HTML pages without any links. With additional links to other machine-readable Web - and there are quite a lot resources available right now on the Web but you still have to find them. I was told a very visual metaphor where you could understand the Semantic Web as it is today as a country with hundreds or thousands of train stations but no tracks between those stations. As long as there are no tracks build, the train stations do not provide any added value. Similar it is to the Semantic Web. Unfortunately, establishing the links between the resources is still a very manual and time intensive job that must be accomplished by the human user.

Once linked, it becomes interesting when using the appropriate tools to browse these information. The best (even when experimental) tools therefore are the following Semantic Browsers:

To link myself to the DBLP database URI, I simply have to add an owl:sameAs tag to my FOAF profile. This allows to follow Semantic Web Browsers the links to the DBLP database. The different kinds of links you can add to your profile can are explained in a tutorial at FU Berlin.

As adding these links is still a manual process, I now think of creating a small component that will update publications in my FOAF file in the future based on a XML input file. That will allow me to semi-automate the process of updating the FOAF file. Some good reasons are

  • It's easier to write down pure XML rather than RDF.
  • I can reuse the XML on other places, such as the publication list on my Web site
  • The links to the corresponding DBLP entries will be searched automatically.

Comments are warmly welcomed.

Posted at Sunday, August 17, 2008 10:10:10 AM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

Simple but powerful: http://live.sysinternals.com

What they say:

"This is a file share allowing access to all Sysinternals utilities. We have developed this to test an alternate distribution mechanism for our utilities. This will allow you to run these tools from any computer connected to the Internet without having to navigate to a webpage, download and extract the zip file."

What you get:

live.sysinternals.com

Posted at Tuesday, August 05, 2008 11:05:46 AM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 
delicious.com
Posted in Tools | Web 2.0

Have you realized? del.icio.us got a new URI: http://delicious.com  - somewhat easier to type, isn't it. Johannes pointed out the new toolbar for Internet Explorer which is quite an improvement to the previously offered buttons.

aheil @ delicious.com

Since I use multiple machines for development at work and university but also at home, delicious became one of my favorite tools for managing bookmarks. The best feature coming with the new toolbar is definitely the complete integration into the browser. By selecting one of the bookmarks you can directly change it's properties without browsing to the delicious site.

image

Source: http://delicious.com/help/tools

Posted at Monday, August 04, 2008 1:34:52 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

Did you now where to find the shortcuts for Word 2007? Pressing F1 does not provide too much help. With some luck you end up at this Knowledge Base article  providing you this list:

 
   All Caps                      CTRL+SHIFT+A
   Annotation                    ALT+CTRL+M
   App Maximize                  ALT+F10
   App Restore                   ALT+F5
   Apply Heading1                ALT+CTRL+1
   Apply Heading2                ALT+CTRL+2
   Apply Heading3                ALT+CTRL+3
   Apply List Bullet             CTRL+SHIFT+L
   Auto Format                   ALT+CTRL+K
   Auto Text                     F3 or ALT+CTRL+V
   Bold                          CTRL+B or CTRL+SHIFT+B
   Bookmark                      CTRL+SHIFT+F5
   Browse Next                   CTRL+PAGE DOWN
   Browse Previous               CTRL+PAGE UP
   Browse Sel                    ALT+CTRL+HOME
   Cancel                        ESC
   Center Para                   CTRL+E
   Change Case                   SHIFT+F3
   Char Left                     LEFT
   Char Left Extend              SHIFT+LEFT
   Char Right                    RIGHT
   Char Right Extend             SHIFT+RIGHT
   Clear                         DELETE
   Close or Exit                 ALT+F4
   Close Pane                    ALT+SHIFT+C
   Column Break                  CTRL+SHIFT+ENTER
   Column Select                 CTRL+SHIFT+F8
   Copy                          CTRL+C or CTRL+INSERT
   Copy Format                   CTRL+SHIFT+C
   Copy Text                     SHIFT+F2
   Create Auto Text              ALT+F3
   Customize Add Menu            ALT+CTRL+=
   Customize Keyboard            ALT+CTRL+NUM +
   Customize Remove Menu         ALT+CTRL+-
   Cut                           CTRL+X or SHIFT+DELETE
   Date Field                    ALT+SHIFT+D
   Delete Back Word              CTRL+BACKSPACE
   Delete Word                   CTRL+DELETE
   Dictionary                    ALT+SHIFT+F7
   Do Field Click                ALT+SHIFT+F9
   Doc Close                     CTRL+W or CTRL+F4
   Doc Maximize                  CTRL+F10
   Doc Move                      CTRL+F7
   Doc Restore                   CTRL+F5
   Doc Size                      CTRL+F8
   Doc Split                     ALT+CTRL+S
   Double Underline              CTRL+SHIFT+D
   End of Column                 ALT+PAGE DOWN
   End of Column                 ALT+SHIFT+PAGE DOWN
   End of Doc Extend             CTRL+SHIFT+END
   End of Document               CTRL+END
   End of Line                   END
   End of Line Extend            SHIFT+END
   End of Row                    ALT+END
   End of Row                    ALT+SHIFT+END
   End of Window                 ALT+CTRL+PAGE DOWN
   End of Window Extend          ALT+CTRL+SHIFT+PAGE DOWN
   Endnote Now                   ALT+CTRL+D
   Extend Selection              F8
   Field Chars                   CTRL+F9
   Field Codes                   ALT+F9
   Find                          CTRL+F
   Font                          CTRL+D or CTRL+SHIFT+F
   Font Size Select              CTRL+SHIFT+P
   Footnote Now                  ALT+CTRL+F
   Go Back                       SHIFT+F5 or ALT+CTRL+Z
   Go To                         CTRL+G or F5
   Grow Font                     CTRL+SHIFT+.
   Grow Font One Point           CTRL+]
   Hanging Indent                CTRL+T
   Header Footer Link            ALT+SHIFT+R
   Help                          F1
   Hidden                        CTRL+SHIFT+H
   Hyperlink                     CTRL+K
   Indent                        CTRL+M
   Italic                        CTRL+I or CTRL+SHIFT+I
   Justify Para                  CTRL+J
   Left Para                     CTRL+L
   Line Down                     DOWN
   Line Down Extend              SHIFT+DOWN
   Line Up                       UP
   Line Up Extend                SHIFT+UP
   List Num Field                ALT+CTRL+L
   Lock Fields                   CTRL+3 or CTRL+F11
   Macro                         ALT+F8
   Mail Merge Check              ALT+SHIFT+K
   Mail Merge Edit Data Source   ALT+SHIFT+E 
   Mail Merge to Doc             ALT+SHIFT+N
   Mail Merge to Printer         ALT+SHIFT+M
   Mark Citation                 ALT+SHIFT+I
   Mark Index Entry              ALT+SHIFT+X
   Mark Table of Contents Entry  ALT+SHIFT+O
   Menu Mode                     F10
   Merge Field                   ALT+SHIFT+F
   Microsoft Script Editor       ALT+SHIFT+F11
   Microsoft System Info         ALT+CTRL+F1
   Move Text                     F2
   New                           CTRL+N
   Next Cell                     TAB
   Next Field                    F11 or ALT+F1
   Next Misspelling              ALT+F7
   Next Object                   ALT+DOWN
   Next Window                   CTRL+F6 or ALT+F6
   Normal                        ALT+CTRL+N
   Normal Style                  CTRL+SHIFT+N or ALT+SHIFT+CLEAR (NUM 5)
   Open                          CTRL+O or CTRL+F12 or ALT+CTRL+F2
   Open or Close Up Para         CTRL+0
   Other Pane                    F6 or SHIFT+F6
   Outline                       ALT+CTRL+O
   Outline Collapse              ALT+SHIFT+- or ALT+SHIFT+NUM -
   Outline Demote                ALT+SHIFT+RIGHT
   Outline Expand                ALT+SHIFT+=
   Outline Expand                ALT+SHIFT+NUM +
   Outline Move Down             ALT+SHIFT+DOWN
   Outline Move Up               ALT+SHIFT+UP
   Outline Promote               ALT+SHIFT+LEFT
   Outline Show First Line       ALT+SHIFT+L
   Overtype                      INSERT
   Page                          ALT+CTRL+P
   Page Break                    CTRL+ENTER
   Page Down                     PAGE DOWN
   Page Down Extend              SHIFT+PAGE DOWN
   Page Field                    ALT+SHIFT+P
   Page Up                       PAGE UP
   Page Up Extend                SHIFT+PAGE UP
   Para Down                     CTRL+DOWN
   Para Down Extend              CTRL+SHIFT+DOWN
   Para Up                       CTRL+UP
   Para Up Extend                CTRL+SHIFT+UP
   Paste                         CTRL+V or SHIFT+INSERT
   Paste Format                  CTRL+SHIFT+V
   Prev Cell                     SHIFT+TAB
   Prev Field                    SHIFT+F11 or ALT+SHIFT+F1
   Prev Object                   ALT+UP
   Prev Window                   CTRL+SHIFT+F6 or ALT+SHIFT+F6
   Print                         CTRL+P or CTRL+SHIFT+F12
   Print Preview                 CTRL+F2 or ALT+CTRL+I
   Proofing                      F7
   Redo                          ALT+SHIFT+BACKSPACE
   Redo or Repeat                CTRL+Y or F4 or ALT+ENTER
   Repeat Find                   SHIFT+F4 or ALT+CTRL+Y
   Replace                       CTRL+H
   Reset Char                    CTRL+SPACE or CTRL+SHIFT+Z
   Reset Para                    CTRL+Q
   Revision Marks Toggle         CTRL+SHIFT+E
   Right Para                    CTRL+R
   Save                          CTRL+S or SHIFT+F12 or ALT+SHIFT+F2
   Save As                       F12
   Select All                    CTRL+A or CTRL+CLEAR (NUM 5) or CTRL+NUM 5
   Select Table                  ALT+CLEAR (NUM 5)
   Show All                      CTRL+SHIFT+8
   Show All Headings             ALT+SHIFT+A
   Show Heading1                 ALT+SHIFT+1
   Show Heading2                 ALT+SHIFT+2
   Show Heading3                 ALT+SHIFT+3
   Show Heading4                 ALT+SHIFT+4
   Show Heading5                 ALT+SHIFT+5
   Show Heading6                 ALT+SHIFT+6
   Show Heading7                 ALT+SHIFT+7
   Show Heading8                 ALT+SHIFT+8
   Show Heading9                 ALT+SHIFT+9
   Shrink Font                   CTRL+SHIFT+,
   Shrink Font One Point         CTRL+[
   Small Caps                    CTRL+SHIFT+K
   Space Para1                   CTRL+1
   Space Para15                  CTRL+5
   Space Para2                   CTRL+2
   Spike                         CTRL+SHIFT+F3 or CTRL+F3
   Start of Column               ALT+PAGE UP
   Start of Column               ALT+SHIFT+PAGE UP
   Start of Doc Extend           CTRL+SHIFT+HOME
   Start of Document             CTRL+HOME
   Start of Line                 HOME
   Start of Line Extend          SHIFT+HOME
   Start of Row                  ALT+HOME
   Start of Row                  ALT+SHIFT+HOME
   Start of Window               ALT+CTRL+PAGE UP
   Start of Window Extend        ALT+CTRL+SHIFT+PAGE UP
   Style                         CTRL+SHIFT+S
   Subscript                     CTRL+=
   Superscript                   CTRL+SHIFT+=
   Symbol Font                   CTRL+SHIFT+Q
   Thesaurus                     SHIFT+F7
   Time Field                    ALT+SHIFT+T
   Toggle Field Display          SHIFT+F9
   Toggle Master Subdocs         CTRL+\ 
   Tool                          SHIFT+F1
   Un Hang                       CTRL+SHIFT+T
   Un Indent                     CTRL+SHIFT+M
   Underline                     CTRL+U or CTRL+SHIFT+U
   Undo                          CTRL+Z or ALT+BACKSPACE
   Unlink Fields                 CTRL+6 or CTRL+SHIFT+F9
   Unlock Fields                 CTRL+4 or CTRL+SHIFT+F11
   Update Auto Format            ALT+CTRL+U
   Update Fields                 F9 or ALT+SHIFT+U
   Update Source                 CTRL+SHIFT+F7
   VBCode                        ALT+F11
   Web Go Back                   ALT+LEFT
   Web Go Forward                ALT+RIGHT
   Word Left                     CTRL+LEFT
   Word Left Extend              CTRL+SHIFT+LEFT
   Word Right                    CTRL+RIGHT
   Word Right Extend             CTRL+SHIFT+RIGHT
   Word Underline                CTRL+SHIFT+W
Posted at Thursday, July 31, 2008 7:07:15 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 
Copyright © 1995-2009 by Andreas Heil. aheil is a registered trademark of Andreas Heil. All rights reserved.
The opinions expressed herein are my own personal opinions and do not represent my employers' views in any way. Content and thoughts expressed on these pages and the weblog are subject to be changed. Out of date posts should not be considererd as my current thoughts and opinions.