Skip navigation
All Places > PI Developers Club > Blog > 2012 > September
2012

Maybe you've already taken a look at the agenda, and noticed the Day #0 events at vCampus Live! 2012

 

6661.vcampusLiveDay0.png

 

Programming hackathon: stay focused and keep hacking

 

3716.Man_5F00_Asleep_5F00_On_5F00_Laptop_5F00_With_5F00_Cup_5F005F00_5671.jpgMaybe you have noticed the difference in schedule for the Security Hackathon and the Programming Hackathon. There is a bit of a difference. The Security Hackathon runs from 13:00 to 21:00, followed by the welcome reception. The Programming hackathon runs from 13:00 to 09:00 the next morning! That's 20 hours of pure PI Development delight. You are off course invited to join the welcome reception in between coding, to get some refreshments and meet everyone. 

 

The purpose of the programming hackathon is very simple: you get 20 hours to work together with your team and create a killer application. OSIsoft developers will be there to coach and get you started, but it will be up to you to get creative and be innovative.

 

The theme this year will be 'car data'. Imagine getting real-time data from a car in the PI System. Imagine what you could do with that data, what kind of applications you could make. Now imagine having that data for a fleet of cars. What can applications can you think of using the PI System, to create something really valuable for consumers or fleet operators. For this hackathon you will be presented with data, and your task is to come up with that single killer app that will surprise us all!

 

Off course there will be some rules, but the main focus is to be very creative and innovative, and create something that works. Try to think outside the box: what online services or online resources could you use in your application? The deadline will be at 09:00 on Day 1, and then a panel of judges will look at each application and determine the winners. We will have some nice prizes for the winners. 

 

These 20 hours will give you a great opportunity to work together with your peers and OSIsoft developers. Use your experience as a PI System developer, while learning from others. This event will be quite unique in that it gives you the opportunity to really be creative and innovative. Same for the security hackathon -- seating is limited. Make sure you register for vCampus Live! 2012, and pick 'programming hackathon' as your Day #0 event!

 

 

 

 

 

 

 

 

 

 

Maybe you've already taken a look at the agenda, and noticed the Day #0 events at vCampus Live! 2012

 

6661.vcampusLiveDay0.png

 

Programming hackathon: stay focused and keep hacking

 

3716.Man_5F00_Asleep_5F00_On_5F00_Laptop_5F00_With_5F00_Cup_5F005F00_5671.jpgMaybe you have noticed the difference in schedule for the Security Hackathon and the Programming Hackathon. There is a bit of a difference. The Security Hackathon runs from 13:00 to 21:00, followed by the welcome reception. The Programming hackathon runs from 13:00 to 09:00 the next morning! That's 20 hours of pure PI Development delight. You are off course invited to join the welcome reception in between coding, to get some refreshments and meet everyone. 

 

The purpose of the programming hackathon is very simple: you get 20 hours to work together with your team and create a killer application. OSIsoft developers will be there to coach and get you started, but it will be up to you to get creative and be innovative.

 

The theme this year will be 'car data'. Imagine getting real-time data from a car in the PI System. Imagine what you could do with that data, what kind of applications you could make. Now imagine having that data for a fleet of cars. What can applications can you think of using the PI System, to create something really valuable for consumers or fleet operators. For this hackathon you will be presented with data, and your task is to come up with that single killer app that will surprise us all!

 

Off course there will be some rules, but the main focus is to be very creative and innovative, and create something that works. Try to think outside the box: what online services or online resources could you use in your application? The deadline will be at 09:00 on Day 1, and then a panel of judges will look at each application and determine the winners. We will have some nice prizes for the winners. 

 

These 20 hours will give you a great opportunity to work together with your peers and OSIsoft developers. Use your experience as a PI System developer, while learning from others. This event will be quite unique in that it gives you the opportunity to really be creative and innovative. Same for the security hackathon -- seating is limited. Make sure you register for vCampus Live! 2012, and pick 'programming hackathon' as your Day #0 event!

 

 

 

 

 

 

 

 

 

 

Maybe you've already taken a look at the agenda, and noticed the Day #0 events at vCampus Live! 2012

 

6661.vcampusLiveDay0.png

 

Programming hackathon: stay focused and keep hacking

 

3716.Man_5F00_Asleep_5F00_On_5F00_Laptop_5F00_With_5F00_Cup_5F005F00_5671.jpgMaybe you have noticed the difference in schedule for the Security Hackathon and the Programming Hackathon. There is a bit of a difference. The Security Hackathon runs from 13:00 to 21:00, followed by the welcome reception. The Programming hackathon runs from 13:00 to 09:00 the next morning! That's 20 hours of pure PI Development delight. You are off course invited to join the welcome reception in between coding, to get some refreshments and meet everyone. 

 

The purpose of the programming hackathon is very simple: you get 20 hours to work together with your team and create a killer application. OSIsoft developers will be there to coach and get you started, but it will be up to you to get creative and be innovative.

 

The theme this year will be 'car data'. Imagine getting real-time data from a car in the PI System. Imagine what you could do with that data, what kind of applications you could make. Now imagine having that data for a fleet of cars. What can applications can you think of using the PI System, to create something really valuable for consumers or fleet operators. For this hackathon you will be presented with data, and your task is to come up with that single killer app that will surprise us all!

 

Off course there will be some rules, but the main focus is to be very creative and innovative, and create something that works. Try to think outside the box: what online services or online resources could you use in your application? The deadline will be at 09:00 on Day 1, and then a panel of judges will look at each application and determine the winners. We will have some nice prizes for the winners. 

 

These 20 hours will give you a great opportunity to work together with your peers and OSIsoft developers. Use your experience as a PI System developer, while learning from others. This event will be quite unique in that it gives you the opportunity to really be creative and innovative. Same for the security hackathon -- seating is limited. Make sure you register for vCampus Live! 2012, and pick 'programming hackathon' as your Day #0 event!

 

 

 

 

 

 

 

 

 

 

1.       Introduction

 

PI Advanced Computing Engine (PI ACE) is designed for users with basic programming knowledge. Most calculations can be done within the ACECalculations() routine. Even code that has been debugged and found to be generally working may fail or not always deliver the expected results. Troubleshooting timing issues or dependencies from previous events using debugging can be painful and may not help at all understanding runtime failures. Hence one requires convenient methods to allow capturing and logging information during runtime. This is where the LogPIACEMessage() method from OSIsoft.PI.ACE.PIACEBIFunctions class comes into play.

 


 

2.       A word of caution and recommendation on logging

 

On large systems there may be a lot of log messages. Please only turn on logging when required i.e. for testing and debugging purposes and turn it off at other times. Logging slows down performance. This is because there are additional tasks to perform but without logging we are lost in understanding what's going on. This becomes more and more important an increasing number and increasing complexity of calculations.

 


 

3.       Log levels

 

LogPIACEMessage() supports 7 different log levels. 6 of them can be switched on and off per PI ACE Manager for a specific Context during runtime. There is no need for recompilation or for re-starting the related PI ACE Module. Not all of the existing log levels are considered relevant for the usage within your PI ACE code, meaning that levels considered not relevant are used by PI ACE to provide additional information when enabled.

Description

Message type string

Can be switched on and off through PI ACE Manager

Relevant

Errors

mlErrors

No (always on)

Yes

Warnings

mlWarnings

Yes

Yes

Updates

mlUpdates

Yes

Yes

User Messages

mlUserMessage

Yes

Yes

Counter Information

mlCounterInfo

Yes

No

Notification

mlInterProcessCommunication

Yes

No

Calculation Events

mlCalculationExecuted

Yes

No

 

 

4.       Importing  MessageLevel namespace and PIACEBIFunctions class

 

Since I expect that most users will be using Visual Studio .NET, I am concentrating on this development environment but note that PI ACE logging functionality is also available when using Microsoft Visual Basic 6.

 

When creating a new PI ACE Module, the PI ACE Wizard creates a new VB .NET library project, adds a reference to OSIsoft.PIACENet library, and imports the OSI.PIACE namespace.

 

The first thing that I recommend to do within a new PI ACE project is importing the MessageLevel namespace and the PIACEBIFunctions class.

 

 

 
Imports OSIsoft.PI.ACE.PIACEBIFunctions
Imports OSIsoft.PI.ACE.MessageLevel

 

 

This is not a mandatory step but helps keeping code lines short and having a clear view to your project. The following code snippet is without the import:

 

 

 

 

 
PIACEBIFunctions.LogPIACEMessage(OSIsoft.PI.ACE.MessageLevel.mlErrors, ex.Message, Me.Name)

 

 

With the recommended imports it looks like this:

 

 

 

 

 
LogPIACEMessage(mlErrors, ex.Message, Me.Name)

 

 

5.       Exception handling

 

Exception handling is very easy with Visual Studio .NET. I strongly recommend using it. After all I like to know why my code is failing and control output behavior on error:

 

 

 

 

 
    Public Overrides Sub ACECalculations()
        Try
            '****************************
            '* Place your ACE code here *
            '****************************
        Catch ex As Exception
            LogPIACEMessage(mlErrors, ex.Message, Me.Name)
        End Try
    End Sub

 

 

Without using the above code snippet exceptions will be handled but the PI Message Log will only contain "Error" messages about the failing module and may not tell me enough information to troubleshoot the failure.

 

Another good practice is disabling ACE outputs when we don't want "Calc failed" written to the output tags. If ACE outputs are not disabled, "Calc failed" will be written to outputs by ACE when no values are written to them by the ACE calculation logic, possibly due to the code failing. So let's enhance above example accordingly.

 

 

 

 

 
    Public Overrides Sub ACECalculations()
        Try
            '****************************
            '* Place your ACE code here *
            '****************************
        Catch ex As Exception
            SendDataToPI = False
            LogPIACEMessage(mlErrors, ex.Message, Me.Name)
        End Try
    End Sub

 

 

6.       Creating custom messages -  some examples

 

Besides mlErrors to capture exceptions, one may use mlWarnings and mlUserMessage.

 


 

6.1   Example Warning: Input out of range

 

Let's assume an input is supposed to be between 0 and 200. By switching on Warnings, I like to see when the limits exceed.

 

 

 
If Input.Value < 0 Or Input.Value > 200 Then
       LogPIACEMessage(mlWarnings, "Input out of range (0..200): " & Input.Value.ToString(), Me.Name)
End If

 

 

6.2   Example Warning: Input hasn't received any update in the past 10 minutes

 

If the Input of my ACE calculation hasn't updated for a while, I like to see a corresponding Warning in the PI Message Log (with Warnings switched on for the Context). This example requires either a clock scheduled calculation or another input being the trigger in case natural scheduling is configured. Because we are dealing with PI Times I have added a reference to OSIsoft.PITimeServer library and the corresponding import: 

 

 

 
Imports PITimeServer


Dim prevTime As PITime
Dim timeDiff As Double
prevTime = Input.PrevEvent
timeDiff = ExeTime - prevTime.UTCSeconds
If (timeDiff > 600) Then
       Dim sLog As String
       sLog = "Input has not updated for more than 10 minutes" & vbCrLf
       sLog = sLog & "Last update at: " & prevTime.LocalDate.ToString()
       LogPIACEMessage(mlWarnings, sLog, Me.Name)
End If

 

 

6.3   Example User Message: Logging of values and Timestamps

 

 

This time I like to calculate the average of the 10 most recent events for the Input and write the result to the Output. This allows me seeing values and timestamps in the log, comparing them against archived values and validating results. Whenever I believe logging is necessary, I can enable User Messages for the corresponding Context in PI ACE Manager.

 

 

 
Dim sLog As String = vbCrLf
Dim inpTime As New PITime
Dim inpValue As Double
Dim outValue As Double = 0
Dim iLoop As Integer
inpTime.SetToCurrent()
For iLoop = 1 To 10
       inpValue = Input.PrevVal(inpTime)
       outValue += inpValue
       inpTime = Input.PrevEvent(inpTime)
       sLog = sLog & iLoop.ToString() & " - value: " & inpValue.ToString()
       sLog = sLog & " at " & inpTime.LocalDate.ToString() & vbCrLf
Next
Output.Value = outValue / 10
sLog = sLog & vbCrLf & "Result: " & Output.Value.ToString() & vbCrLf
LogPIACEMessage(mlUserMessage, sLog, Me.Name)

 

 

7.       Maintaining PI ACE logging in PI ACE Manager

  • Launch PI ACE Manager

  • Browse to the ACE Context level (expand Server -> Scheduler -> Library -> Module -> Context)

  • Right click the context and select "Message Log Level ..."

 4617.ACE_5F00_EnableLogging.jpg

  • Setting Message Log Level

 3146.LogLevels.jpg

  • Confirm by clicking [OK]

A change in log level will be reported in the PI Message Log as follows:

 

I 31-Aug-12 11:32:47 PIACEClassLibraryHost                                                                          (0)
 >> ACEDebug: Set message log level for ACE Context NEMESIS\ACEDebug\ACEClassDebug\\\NEMESIS\ACE\Debugging to 65

 

 

 

 

 

8.       Looking into the PI Message Log

 

We recommend using pigetmsg.exe on the PI ACE Server to monitor the PI Message Log continuously (pigetmsg -f) when working with PI ACE (developing Modules, maintaining ACE using PI ACE Manager).

 

Especially on larger systems with multiple ACE modules running the amount of messages may be confusing because there are many messages being logged at the same time causing the command prompt scrolling fast what makes it difficult seeing messages that are related to what one is currently working at.

 

I will write some guidance on effectively analyzing the PI Message Logs in a later blog post - stay tuned.

 

There are multiple options to filter messages with the pigetmsg.exe command line utility. One of the most useful ones is filtering by the Process ID:

 

 2630.ACEManagerProcessID.jpg

 

Please note that each time an ACE Module is started a new process ID is assigned to the PIACEClassLibraryHost.exe process. Be sure using the current process ID

 

8321.CMD_5F00_ACE_5F00_LOG1.jpg.

 

 

 

9.       Logging to a PI Tag

 

You may like the idea logging debug information to a PI tag. When doing so, please use a tag of type Digital and a correspondent Digital State Set whenever possible. It is possible using tags of string data types as well but please keep in mind that string tags consume a lot of space in archives because each single character will require one byte. If you decide to use string tags for debugging purpose, please consider setting the archiving tag attribute to 0 (off). Whenever necessary you can set it back to 1 (on) temporarily. Setting archiving to off means that no historical data events will be recorded in the PI Data Archive and only the latest value will be available

 

The following example is meant to be complementary to the one provided with 6.1 "Example Warning: Input out of range" and 6.2 "Example Warning: Input hasn't received any update in the past 10 minutes". The output tag referred to with Alias "Debug" is of type Digital and has the "SYSTEM" Digital State Set assigned. In case the input drops below zero, "Under Range" will be reported. In case the output goes above 200, we will recognize "Over Range". When the current snapshot is neither under range nor over range we check if it might be older than 10 minutes (600 seconds) and if it is status "Unit Down" will be reported by the debug tag. "Debug" will report "Good" status in case of good "Input".

 

 

 

 

 
    Public Overrides Sub ACECalculations()
        Try
            If Input.Value < 0 Then
                Debug.Value = Debug.StateNo("Under Range")
            ElseIf Input.Value > 200 Then
                Debug.Value = Debug.StateNo("Over Range")
            Else
                Dim prevTime As PITime
                Dim timeDiff As Double
                prevTime = Input.PrevEvent
                timeDiff = ExeTime - prevTime.UTCSeconds
                If (timeDiff > 600) Then
                    Debug.Value = Debug.StateNo("Unit Down")
                Else
                    Debug.Value = Debug.StateNo("Good")
                    output.Value = Math.Sqrt(2) * Input.Value
                End If
            End If
        Catch ex As Exception
            SendDataToPI = False
            LogPIACEMessage(mlErrors, ex.Message, Me.Name)
        End Try
    End Sub

 

 

10.   A complete example

 

Finally please find the complete code of example 9. "Logging to a PI Tag" for your reference:

 

 

 

 

 
Imports OSIsoft.PI.ACE
Imports OSIsoft.PI.ACE.PIACEBIFunctions
Imports OSIsoft.PI.ACE.MessageLevel
Imports PITimeServer

Public Class ACEClassDebug
    Inherits PIACENetClassModule
    Private output As PIACEPoint
    Private Input As PIACEPoint
    Private Debug As PIACEPoint
    '
    '      Tag Name/VB Variable Name Correspondence Table
    ' Tag Name                                VB Variable Name
    ' ------------------------------------------------------------
       ' Debug                                   Debug
       ' Input                                   Input
       ' output                                  output
    '

    Public Overrides Sub ACECalculations()
        Try
            If Input.Value < 0 Then
                Debug.Value = Debug.StateNo("Under Range")
            ElseIf Input.Value > 200 Then
                Debug.Value = Debug.StateNo("Over Range")
            Else
                Dim prevTime As PITime
                Dim timeDiff As Double
                prevTime = Input.PrevEvent
                timeDiff = ExeTime - prevTime.UTCSeconds
                If (timeDiff > 600) Then
                    Debug.Value = Debug.StateNo("Unit Down")
                Else
                    Debug.Value = Debug.StateNo("Good")
                    output.Value = Math.Sqrt(2) * Input.Value
                End If
            End If
        Catch ex As Exception
            SendDataToPI = False
            LogPIACEMessage(mlErrors, ex.Message, Me.Name)
        End Try
    End Sub
 
    Protected Overrides Sub InitializePIACEPoints()
              Debug = GetPIACEPoint("Debug")
              Input = GetPIACEPoint("Input")
              output = GetPIACEPoint("output")
    End Sub
 
    '
    ' User-written module dependent initialization code
    '
    Protected Overrides Sub ModuleDependentInitialization()
    End Sub
 
    '
    ' User-written module dependent termination code
    '
    Protected Overrides Sub ModuleDependentTermination()
    End Sub
End Class

vCampus Live! 2012 is right around the corner, and registration is now open! This will be the 4th annual gathering of us PI geeks in San Francisco. With your help, this event will be bigger and better than before!

 

Mark your calendars for Nov. 28 – Nov. 30 and make sure you register early at the vCampus Live! 2012 website.

 

Some highlights for this year’s event:

 

New location

 

We are moving to the Grand Hyatt near Union Square, San Francisco (CA). This very modern and stylish hotel has some great conference rooms and very cool guest rooms. It’s inside the heart of San Francisco, and walking distance from the BART station.

 

Bigger, better…

 

We are continuing with the successful hands-on sessions and fixing some of the imperfections we observed last year. This will be your chance to learn about new OSIsoft products and technologies first hand, guided by OSIsoft experts. This year we will have 4 hands-on session tracks, and a presentation track.  We are repeating the popular sessions, so you will have a chance to attend your favorite sessions. As of writing this blog post A a grand total of 28 hands-on and 15 presentation sessions will be available to you. We have improved greatly on the IT infrastructure, to make sure everything runs smoothly.

 

This will also be your first opportunity to get hands-on with Configured Analytics (Abacus), PI Data Exchange Service, PI Coresight for iPad and OData for the PI System.

 

Longer

 

Feel like diving really deep? Take the plunge, and join us at one of the hackathons on Day 0 (Nov. 28). There are two separate hackathon tracks – with something for everybody. 

 

Interested in PI System security? Have a look at the security hackathon. In a few hours you will be taught by OSIsoft’s finest in cyber security, and be prepared for what comes next. You will be challenged in simulated attack-defend scenario by cyber security experts. This will be a great opportunity to get hands-on experience in cyber security. 

 

Are you into PI Development? Join us at the programming hackathon. In 20 hours you will be challenged to be creative and innovative, and create a valuable PI application. The theme this year will be ‘car data’. Use your imagination and OSIsoft tools to surprise everyone with your killer app.

 

Best teams for both hackathons will receive some cool prizes! Stay tuned for more info on the hackathons. Don’t wait too long to register, seating for the hackathons is limited.

 

Social

 

The new and improved Developers Lounge will be a way for you to meet other vCampus members and OSIsoft developers. The Developers Lounge and the Vox pop sessions will be an opportunity for you to discuss and learn.

 

Party!

 

At the end of Day 1, we will have our ‘Geek Night Extravaganza’, where we will party like its 636.30π, on the 36th floor of the Hyatt with an awesome view over the bay and city.

 

 

 

We really hope to see you there on Nov 28th in San Francisco. Make sure to check out the registration page and the agenda.

 

 

 

 

I thought I would take you all on a (scary) journey down the rabbit hole to see what wonderful concepts with the PI System are trying to fight their way out of my brain.  These are the type of projects that I have talked about before on the vCampus discussion hall, or even contemplated developing until I find myself moving on to the next crazy idea.  About time I shared some of these so they get the airtime they deserve and hopefully to get the creative juices flowing for others.

 

Actually, some of the ideas do make it in to code when I suddenly decide that it is time for a solo hackathon – you know, you finally settle down for the evening after getting both kids to bed when you find that you just can’t get that idea out of your head so you just start coding (usually whilst watching a re-run of the film ‘The Matrix’ for the 25th time)…then all of a sudden it is 4am, you have to get up for work in a few hours so not point sleeping now, right?

 

 

 

These R&D projects are ones that I will write about in a series of blog posts over the coming weeks so stay tuned.  To give you an idea of some of them, of which some are clearly inspired by rumours of what OSIsoft is researching, the following list gives a headline of the projects:

  • Natural Interface for PI System Management (Microsoft Kinect Sensor based).  “Grab hold of an interface connection and manage it.”
  • Emotional PI – Changing application user experience based on the users mood (Microsoft Kinect Sensor based –facial tracking!)
  • Server Side Buffering with Point Priorities (Windows Azure).  This was quite an easy one – are you listening PI Server team?
  • Next generation Performance Equations (AF + Microsoft StreamInsight).
  • Social PI – My PI Server just tweeted me!  So I tweeted it back!! (Twitter REST based).
  • Mobile based AF asset walker with location services (employing graph theory).

Whilst I flick endlessly through my calendar to find time to blog about each of these crazy ideas, is there any preference to what you all would like to read about first

 

This year at vCampus Live! 2012 will kick of with a Day #0 event. This day is split into two tracks. One track will focus on security, where you will learn about PI System security in great depth, and you will be challenged afterwards. During the programming hackathon, you will be challenged to use all your PI System development knowledge to create an application that will surprise your peers! More info about the programming hackathon later.

 

2210.vcampusLiveDay0.png

 

Security hackathon - Red VS Blue

 

0523.redvsblue.png

 

This event will start in the afternoon, and will run until 9 PM. After that, we will have the welcome reception where you can meet your fellow vCampus members and OSIsoft people in person after a year of online communication.

 

First we will spend the first part of the day getting in-depth knowledge about PI System security. How to detect, recognize, defend and analyse security threats on your PI System infrastructure. You will be taught by OSIsoft's finest in PI System security. People who are veterans dealing with cyber security, and deal with cyber security threats on a daily basis. The knowledge you learn here will be invaluable during the second part of the day: the Red vs Blue contest.

 

Red vs. Blue exercises have their origin from the military. The idea is that a group of security professionals - a red team - attacks something, something from an opposing group - the blue team. The blue team has to defend against these attacks. Originally, these exercises were used in the military to test battle-readiness. Red vs. Blue exercises have been used on many occasions in many different fields. For instance, they are used to test the physical security of high profile sites, such as nuclear and chemical sites. They have been used as cyber 'warfare' training at several security conferences, and also eBay did a red-team exercise together with several vendor invitees (including CISCO). 

 

So, what does that mean for the vCampus Live! hackathon? Armed with the cyber security knowledge you gain from OSIsoft's security experts, you will be presented with a PI System infrastructure. Together with a team of your peers - and an OSIsoft employee - as the blue team you will have to defend against carefully crafted cyber attacks from OSIsoft's battle hardened security veterans. These attacks will increase your stress-level, agitate you, and will force you to act. You can gain points by detecting and defending against these threats. In the end, the teams with the highest point count will be able to call themselves 'Winners of the first vCampus Live! security hackathon!', and you will be able to brag to your friends and coworkers that you survived, or 'died' with your boots on.

 

This will be a unique opportunity to learn about PI System security, in a way that you can use to further secure your PI System infrastructure. This event will be very valuable to you as a PI System administrator or Architect. Become aware and prepared for malicious activity, and protect your valuable data. There is limited seating available, so make sure to register for vCampus Live! 2012, and select the 'security hackathon' as a Day #0 event.

Rick Davin

A Fun Diversion

Posted by Rick Davin Employee Sep 14, 2012

Rhys has a recent blog where he talks about his children's PI ages, where 1 pi-year is approximately equal to 3.14 earth years. Here's the link to his post: http://vcampus.osisoft.com/bloggers_place/b/rhys/archive/2012/09/12/nearly-1-quot-pi-quot-years-old.aspx .

 

I read the blog with some amusement but walked away with 2 pervasive thoughts: (1) Rhys is abnormally geeky, and I mean that in a good way; and (2) the PI community has been lacking in a useful tool to help others quickly calculate their own PI age as well as upcoming PI birthdays.  I can't sit idle and let the community struggle through another day without such a tool.  So I whipped up a quick VS 2010 project to fill the void.

 

3007.PI-Age-1970.png

 

I have attached a ZIP file of the entire VS 2010 project written in C# using .NET 4.0.  No OSIsoft objects were needed, which is good since some of us were born before 1970.

 

 

Nearly 1 "PI" years old

Posted by RJKSolutions Sep 12, 2012

Today is my son Ethan's 3rd birthday, how time flies. I remember in 2010 I took him on one of his first flights, a monster 12 hour flight to San Francisco for an OSIsoft User Conference, he was 7 months old.  Ahmad once called him the youngest PI geek, which is probably true but I don't think he talks about the same PI as I do. After getting my 1st vCampus All Star award I posted a picture of Ethan wearing my vCampus t-shirt, so Ethan is well and truly exposed to the PI System ecosystem. I'll be sure to hire him when he is old enough Recently I tweeted a picture of my newest son Oliver (3 months old) and I on the beach in my 2nd vCampus All-Star t-shirt...maybe Ethan's crown has been taken as the youngest geek?

 

Anyway, apart from a trip down memory lane the point of my blog is that today on his 3rd birthday I wondered when is Ethan PI years old? Answer: November 2nd. So he will be having a "PI cake" and extra celebration on that day, and I'll be sure to post some pictures on my blog.

 

Sadly I found out I am 10.12 PI years old, which means I just missed out on my PI cake

Yesterday marked my 10th year anniversary working at OSIsoft and I thought I'd take a minute to write a note to thank everybody who made this last decade a great deal of learning and fun! Thanks to so many people inside and outside OSIsoft, I wouldn't want to trade the last 10 years of my work life for anything in the world

Filter Blog

By date: By tag: