Hans VB's WebLog - For FREE!!!

About me (Hans Verbeeck). About my work (Partner Evangelist for Microsoft Belgium). Think big, start smal
Der deutsche Education Blog

January, 2009

  • Hans VB's WebLog - For FREE!!!

    Organizing my pictures

    • 1 Comments

    Finally, finally, finally I have started to organize my pictures. I planned on doing this months ago but I guess something came in between.

    So here’s how I do it. I copy the script from our Belgian System Center MVP, Kim Oppalfens from his blog: http://blogcastrepository.com/blogs/kim_oppalfenss_systems_management_ideas/archive/2007/12/02/organize-your-digital-photos-into-folders-using-powershell-and-exif-data.aspx

    I save the file locally in a file with extension ‘.ps1’.

    In my browser, I get some funky characters:

    image

    If you just copy paste, you will need to fix the script to:

    $arMonth = [Char]$date[5],[Char]$date[6]
    $arDay = [Char]$date[8],[Char]$date[9]

    Then you are ready to go.

    Thank you for sharing Kim!!!

    Then there are some steps I need to take to execute the script:

    Step 1: Installing PowerShell

    I install it on my Vista-which-will-be-switched-to-Windows-7-tomorrow machine from this location:

    http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx

    (On my Windows 7 Beta 1 machine, PowerShell V2 is installed by default)

    Step 2: Understanding how to run PowerShell scripts

    I find out about how to run PowerShell scripts from this article: http://www.microsoft.com/technet/scriptcenter/topics/winpsh/manual/run.mspx

     

    Step 3: Running the script

    I run Powershell in Administrator mode and change its execution policy to remotesigned.

    I change the path in PowerShell by typing: cd ‘C:\Data\Afbeeldingen’ where I keep all my pictures.

    I make sure I have the script saved in a file with extension ‘.ps1’. I save in location ‘c:\Temp’ for now.

    I change the target directory in the script from ‘c:\organizedfotos\’ to ‘d:\data\afbeeldingen\’.

    I run the script by typing in Powershell the following command: c:\temp\organizeimages.ps1

    As Kim says, this script then gives you a folder structure like this: folder per year and then folder per date.

    - 2005
       - 27-11-2005
            - sinterklaas.jpg
    - 2006
       -…and so on

    For me this is great.

    It allows me to copy all my pictures to DVD’s per year and also this maps quite nicely to the way I browse images in Windows Live Photo Gallery which you can get here: http://get.live.com

    image

    (of course I could easily fix the script to also add the months to the folder structure).

    Cheers,

     

    Hans

  • Hans VB's WebLog - For FREE!!!

    Organizing my pictures, evolving the script to my taste

    • 0 Comments

    I ran the PowerShell script I discussed in my previous blogpost and decided I would change it a bit.

    First, I want to be able to sort by month within the year so I have two options:
    - change the folder name to following pattern MM-DD-YY
    - Add a level to the folder structure so it becomes:
         - Year
            - Month
               - Day

    Second, from my 24 GB of pictures on that machine, only 17GB got copied over. The rest didn’t because of exceptions or because I had the same picture in multiple folders. In order not to loose any pictures I changed the script so:
    - it writes the error message to a text file
    - it copies the .jpg on which the exception was generated to an exceptions folder

    So now it gets interesting. Kim has got me developing Powershell code. I never thought I would ever do that since it seems more something an IT Professional would do but there are some advantages to writing this sort of job as a script:

    1. It is quick and a bit dirty.
    2. Powershell has non-terminating errors. This reminds me of ‘On Error Resume Next’ and how I kept my VB6 code clean at the time :-)
    3. I could easily schedule this as a recurring job.

    Here’s how I deal with this:

    Step 1. I switch to PowerShell 2 because that’s on my Windows 7 machine but more importantly because you then have the Windows PowerShell Integrated Scripting Environment. That’s a tool for running and debugging scripts so exactly what I need.
    If you are on Vista you can get it here: http://www.microsoft.com/downloads/details.aspx?FamilyID=c913aeab-d7b4-4bb1-a958-ee6d7fe307bc&displaylang=en

    Step 2. I learn about error handling and debugging in PowerShell. This seems like a good place. It’s an old blog series but I’m sure still very relevant: http://blogs.msdn.com/monad/archive/2005/11.aspx
    Also install the SDK from the download link in Step 1.

    Step 3. Changing the script.

    Changing the folder structure is easy. you change it:
    from: $DateTaken = $strDay + "-" + $strMonth + "-" + $strYear
    $TargetPath = "c:\temp\organized pictures\" + $strYear + "\" + $DateTaken

    to: $TargetPath = "c:\temp\organized pictures\" + $strYear + "\" + $strMonth + "\" + $strDay

    Fixing the exceptions and adding the exception list is something else. But with the new Try..Catch…Finally structure in PowerShell 2, it is not that difficult at all. I highlighted the interesting sections:

    #==============================================================================================
    #
    # AUTHOR:  Kim Oppalfens
    # DATE  : 12/2/2007, updated by Hans Verbeeck on 10 Jan 2009
    #
    # COMMENT: Helps you organize your digital photos into a directory structure, based on the Exif data
    # found inside the picture. Based on the date picture taken property the pictures will be organized into
    # c:\organizedfotos\YYYY\MM\
    # ==============================================================================================

    [reflection.assembly]::loadfile( "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll")

    $targetFolder = "c:\temp\organized pictures\"
    $exceptionFolder = "c:\temp\organized pictures\Exceptions"

    #make sure you create this folder yourself as the script won't do that automatically

    $Files = Get-ChildItem -recurse -filter *.jpg
    foreach ($file in $Files)
    {

    try
    {
      $foo=New-Object -TypeName system.drawing.bitmap -ArgumentList $file.fullname
      write-host $file.fullname -foregroundcolor Blue

    #each character represents an ascii code number 0-10 is date
    #10th character is space separator between date and time
    #48 = 0 49 = 1 50 = 2 51 = 3 52 = 4 53 = 5 54 = 6 55 = 7 56 = 8 57 = 9 58 = :
    #date is in YYYY/MM/DD format
      $date = $foo.GetPropertyItem(36867).value[0..9]
      $arYear = [Char]$date[0],[Char]$date[1],[Char]$date[2],[Char]$date[3]
      $arMonth = [Char]$date[5],[Char]$date[6]
      $arDay = [Char]$date[8],[Char]$date[9]
      $strYear = [String]::Join("",$arYear)
      $strMonth = [String]::Join("",$arMonth)
      $strDay = [String]::Join("",$arDay)
      $DateTaken = $strDay + "-" + $strMonth + "-" + $strYear
      $TargetPath = $targetFolder + $strYear + "\" + $strMonth + "\" + $strDay

    If (Test-Path $TargetPath)
          {
            xcopy /Y/Q $file.FullName $TargetPath
          }
          Else
           {
            New-Item $TargetPath -Type Directory
            xcopy /Y/Q $file.FullName $TargetPath
           }
    }
    catch
       {
        $logtext =   "`n" +  $file.fullname + " FAILED"    
        Add-Content c:\temp\imagecopyexceptions.txt $logtext
        $logtext = $Error[$error.count-1]
        Add-Content c:\temp\imagecopyexceptions.txt $logtext


        xcopy /Y/Q $file.FullName $exceptionFolder

        } 
    }
  • Hans VB's WebLog - For FREE!!!

    System Center Updates Publisher 4.5 Released

    • 1 Comments

    Nice tool for ISV’s to make their software more manageable.

    http://www.microsoft.com/downloads/details.aspx?FamilyID=0446cce9-94a4-4fb0-b335-e7516044063d&displaylang=en

    System Center Updates Publisher is a stand-alone tool that enables independent software vendors and line-of-business application developers to import software update catalogs, create and modify software update definitions, export update definitions to catalogs, and publish software updates information to configured update servers.

    New and notable in this release:

    1. The ability to publish updates as "metadata only," meaning publishing the SDP definition without the binary update.

    2. A new sync command-line tool (SCUPSync.exe) that allows for unattended import and publish (sync) of catalogs into your WSUS environment.

    3. The ability for the SCUP console to authenticate to a proxy server (big customer issue).

    4. The removal of the "Export for Test" feature (testscan.exe).

    5. Some other minor bug fixes.

  • Hans VB's WebLog - For FREE!!!

    VSTS Trial VPC’s

    • 0 Comments

    VSTS was a pretty good product out of the gate. I loved speaking about it years ago already. Today, it is a great product and here is a fantastic way to check whether I’m talking rubbish or whether I’m telling you the truth.

    You can download the VPC’s here: http://www.microsoft.com/downloads/details.aspx?FamilyID=c7a809d8-8c9f-439f-8147-948bc6957812&displaylang=en

    Some interesting facts. The images:

    • Expire December 31st 2009
    • They contain 38 hands on labs and samples
    • contain no anti virus software so be careful before you put them on your  company’s network

    If you don’t need the VPC images, here are all the relevant links.

    Investing in VSTS today will put you on the right path longer term. Check out these sessions about Rosario, the next version of VSTS. They were delivered at the PDC2008:

    - Microsoft Visual Studio Team System: A Lap Around VSTS 2010

    - Team Foundation Server 2010: Cool New Features

    There’s a lot of great stuff at the other end of these links. I hope you find the time to check it out.

    Cheers,

     

    Hans

  • Hans VB's WebLog - For FREE!!!

    Parallel Extensions to the .Net Framework

    • 1 Comments

    Only yesterday I was visiting an ISV who is looking into Windows HPC Server 2008. Parallel extensions are going to be very interesting to their applications which is really processing intensive.

    I just noticed there’s a new 10-4 episode on Channel 9 exactly on that topic.

    Episode 6: Parallel Extensions to the .NET Framework

    In this sixth episode of 10-4, we start taking a look at Parallel Extensions to the .NET Framework. We'll look at some of the surface-area of the Parallel Extensions API and provide you with enough information to start working with it yourself in the Visual Studio 2010 CTP VPC.

  • Hans VB's WebLog - For FREE!!!

    Last Minute: Microsoft Office Groove 2007 - Building OBA Applications

    • 1 Comments

    Interested in integrating Groove in your solutions.

    Brussels , January 15th (13:00 – 17:00)

    This course will outline Groove vertical solutions in market, how to integrate SharePoint with Groove, and how to deploy and develop Groove web services applications.  The training includes presentations, labs, and Q&A discussions.  The Hands on Labs will focus on the Groove client development as well as installing and configuring the Groove Web Service Helpers.  You will leave the class with a solid understanding of the Groove platform and its underlying services, including the unique aspects of a decentralized architecture, allowing you to build off-line solutions for popular ERP and RDBMS systems.

    clip_image002

  • Hans VB's WebLog - For FREE!!!

    Visual Studio Extensions for Sharepoint v1.3 CTP released

    • 0 Comments

     

    From the blog: http://blogs.msdn.com/sharepoint/ 

    The Visual Studio extensions for SharePoint (VSeWSS) provide project templates for developers using Visual Studio 2008 to create, debug, package and deploy SharePoint projects including Web Parts, Data Lists, Content Types, Event Receivers, Templates, Modules and other SharePoint artifacts. The v1.3 release is an incremental release of the VSeWSS including top feature requests. It is an interim release for SharePoint Developers on the roadmap until Visual Studio 2010 is released with significantly improved SharePoint development tools as outlined here.

    The Community Technology Preview (CTP) release is available here on Microsoft Connect where customers can also report any feedback they have. It is anticipated that all existing VSeWSS 1.2 projects will work with the CTP. The CTP is not supported by Microsoft Customer Support Services. You are encouraged to provide feedback through the Microsoft Connect site and to discuss the extensions on the SharePoint Development MSDN Forum.

    (read more…)

  • Hans VB's WebLog - For FREE!!!

    Juval in Belgium speaking on WCF and Azure

    • 1 Comments

    Here’s a great opportunity to find out more about .Net Services.

    Visual Studio User Group (VISUG) hosts a free event on 15 January with Juval Löwy on WCF with regards to Cloud Computing and Azure (http://www.visug.be):

    clip_image001The .NET services bus is part of the new Microsoft Cloud Computing Windows Azure initiative, and arguably, it is the most accessible, ready to use, powerful, and needed piece.

    The service bus allows clients to connects to services across any machine, network, firewall, NAT, routers, load balancers, virtualization, IP and DNS as if they were part of the same local network, and doing all that without compromising on the programming model or security. The service bus also supports callbacks, event publishing, authentication and authorization and doing all that in a WCF-friendly manner.

    This session will present the service bus programming model, how to configure and administer service bus solutions, working with the dedicated relay bindings including the available communication modes, relying on authentication in the cloud for local services and the various authentication options, and how to provide for end-to-end security through the relay service.

    You will also see some advanced WCF programming techniques, original helper classes, productivity-enhancing utilities and tools, as well as discussion of design best practices and pitfalls.

  • Hans VB's WebLog - For FREE!!!

    Save the Date: Dynamics CRM Business Action World Tour comes to Belgium

    • 0 Comments

    On March the 2nd, there will be a half day event in Brussels where you can learn about the power of Dynamics CRM as a development platform for business applications.

    I’ve heard this being called XRM. You can save a huge amount of development work by building on top of the framework on which Dynamics CRM was built. The time you save there you can put into your domain specific code.

    A Line-of-Business Application Platform

    Microsoft Dynamics CRM provides the platform for getting your line-of-business applications to market fast.  Clearly applicable in CRM-type scenarios, Microsoft Dynamics CRM also supports a wide range of business applications with the essentials required for building, delivering and maintaining them in multi-tenant Software+Services environments. 

    Compelling Experiences

    Increase user productivity and accuracy by providing an attractive, easy to use application user interfaces on either the desktop or the web using one set of tools and knowledge.  With Windows Presentation Foundation (WPF) you’ll build the next-generation of Windows user experiences with deep support of data visualization, complex text content, rich media, dynamic interactive experiences, and branded or custom look and feel.  With Silverlight you increase repeat visits and brand loyalty while dramatically reducing customer support costs through compelling, intuitive, high performance self-service web sites.

    Familiar Skills

    Increase the productivity of the users of your applications by providing a seamless and integrated end to end experience that empowers them to collaborate and get work done in familiar ways.  Pull line-of-business processing directly into the Microsoft Office applications your users use day-in day-out.  Unified communications across the Dynamics CRM and Office line of products, such as instant messaging, document sharing, and user presence, further promote and simplify ad hoc processes and keep people in the center of the workflow – where they belong.

    Power of Choice

    Whether you are deploying behind the firewall or internet-facing applications, build and deploy those applications quickly and easily by capitalizing on the same personnel, development tools investments, and knowledge that already power your organization.   When you build on the Dynamics CRM platform you’ll be prepared to deploy your line-of-business applications on-premises, in partner-hosted facilities or in Microsoft own Dynamics CRM Online data centers.  When you build the internet-facing self-service applications that integrate with your line-of-business solution, the Azure Services Platform helps reduce IT-related costs, freeing up time and capital to focus on your core business.

    Closing

     
  • Hans VB's WebLog - For FREE!!!

    ISV resources on Windows 7 Beta

    • 0 Comments

    There’s a lot of buzz around Windows 7. A lot of it around many of the enhancements end users will benefit from.

    There’s a lot in Windows 7 that ISV’s can leverage too to create the next generation of user experiences and I hope you are all digging in to prepare for this very promosing release of Windows.

    These are some of the main resources online:

    Resources for ISV’s site (with links to Windows 7 White Papers, Developer Guide and online readiness kit): https://partner.microsoft.com/global/program/competencies/40092934

    Must read Windows 7 Application Quality Cookbook: A Developer’s Guide to Application Compatibility ,Reliability, and Performance
    http://code.msdn.microsoft.com/Windows7AppQuality

    Enjoy!

     

    Hans

     

  • Hans VB's WebLog - For FREE!!!

    Great news for our partners in the French speaking part

    • 1 Comments

    This is really great news for the Walloon software ecosystem!

    http://lucfields.spaces.live.com/blog/cns!D9C9B0AF1F893063!847.entry

    The MIC in Mons will be part of a worldwide extensive network of Innovation centers that aim at developing and stimulating the local IT economy and employment,  and impact relationship with local governments, SMBs and start-ups. The 2 focus axes of the Belgian MIC will be innovative technology on one side and e-health from a business perspective.

  • Hans VB's WebLog - For FREE!!!

    The best place for developers to download Windows 7

    • 0 Comments

    http://msdn.microsoft.com/evalcenter

    You get the bits and some great content. It’s as simple as that.

    Hans

  • Hans VB's WebLog - For FREE!!!

    News for Belgian Architects at ISV’s and SI’s

    • 0 Comments

    Architecture matters. A lot. It’s what will make your solutions adaptable to new customer needs, market conditions and technologies.

    My colleague, Philippe Destoop, is doing some great work in this space and announced some new initiatives to the architect community last week. Please check out the following blogpost and read all about the new Architect Newsletter, the Belux Infrastructure Architect Forum, the next Architect Events and how to become an Architect MVP or get the Architect Certification.

    2008 was the year of the Rat, 2009 the year of the Architect?

Page 1 of 1 (13 items)