Just added one more city to my list of "places I've been to for work". It's 101 degrees outside, at 9:36 PM (that's 38 degrees celsius).
Pretty long week ahead, being involved in a rather large Proof of Concept for an amazing reference if we get the deal.
Time will tell, I hope to announce this company as a customer soon. Now I think I'm going to pass out in bed.
Amazing how you can fly for 5 hours and 1) never leave the same country and 2) land in a place that feels just like the place you left from - except for the temperature, that is.
Também conhecido como .nuno, Nuno Linhares, Nuno Pereira, Matthaus... enfim, escolha um! This weblog may contain content in both Portuguese and English. Try freetranslation.com if you can't read both...
Monday, July 26, 2010
Thursday, July 22, 2010
This is cool... Tridion 2011 from my iPhone
After all the talk about Tridion on the iPad I thought that if it runs on the iPad, it should run on the iPhone, right?
Right indeed.
Not that I think it's a very useful client, but it does work...
N
Right indeed.
Not that I think it's a very useful client, but it does work...
N
Wednesday, July 21, 2010
Preparing for 2011 MVPs
Last year we launched the SDL Tridion MVP program, and being the first time it took a rather "Career Achievement" look to it, and (perhaps unfortunately) many of the nominations (over 60%) were for SDL employees.
No matter what people think of it, we decided to create an independent Selection Panel that would select who deserved the MVP title, and awarded it to those that did make an exceptional job of assisting people in the community.
In preparation for the 2010 MVPs I can confirm that we will keep the independent selection panel (with a couple of adjustments as to the members of the panel to adapt to people's changes in careers), but this year we will not allow for SDL employees to be nominated.
This means that great Tridion resources like Jeremy, Julian, Jeff and Peter will not be 2011 MVPs (and, of course, yours truly).
Now that this is out of the way, here's the 2nd part of my message for today...
Why would you want to be an MVP?
Granted, being the first time we were doing it, there was a lot of guess work as to what people would want. First - and perhaps foremost - you get to have your name in a rather exclusive list of Tridion professionals. I know of at least 2 people that got contacted for work directly from being on that list, and there's probably more.
Second, you get a shiny award to show off to your friends (who already considered you a geek beforehand, and will now have confirmation of your uber-geek status worldwide).
Third, you get access to a MVP-only Linked-In group of very dubious benefit at the moment.
Fourth, you get to spend a "work" weekend with all your fellow MVPs on a nice sunny location, 1-star Michelin restaurant, and breakfast by the beach (aha!).
Fifth, and professionally the most important, you get access to anything related to Tridion. You want to participate in "internal-only" bootcamps? No problem. You want some version of some software? No problem. Want to play around with Tridion 2011 Beta? No problem. Want to escalate an issue with Customer Support? No problem (well, depending on the issue). Need access to a license, information on some upcoming product, you-name-it? No problem.
So, question for the day: What are you doing now that makes you a great candidate for the MVP award next January?
N
No matter what people think of it, we decided to create an independent Selection Panel that would select who deserved the MVP title, and awarded it to those that did make an exceptional job of assisting people in the community.
In preparation for the 2010 MVPs I can confirm that we will keep the independent selection panel (with a couple of adjustments as to the members of the panel to adapt to people's changes in careers), but this year we will not allow for SDL employees to be nominated.
This means that great Tridion resources like Jeremy, Julian, Jeff and Peter will not be 2011 MVPs (and, of course, yours truly).
Now that this is out of the way, here's the 2nd part of my message for today...
Why would you want to be an MVP?
Granted, being the first time we were doing it, there was a lot of guess work as to what people would want. First - and perhaps foremost - you get to have your name in a rather exclusive list of Tridion professionals. I know of at least 2 people that got contacted for work directly from being on that list, and there's probably more.
Second, you get a shiny award to show off to your friends (who already considered you a geek beforehand, and will now have confirmation of your uber-geek status worldwide).
Third, you get access to a MVP-only Linked-In group of very dubious benefit at the moment.
Fourth, you get to spend a "work" weekend with all your fellow MVPs on a nice sunny location, 1-star Michelin restaurant, and breakfast by the beach (aha!).
Fifth, and professionally the most important, you get access to anything related to Tridion. You want to participate in "internal-only" bootcamps? No problem. You want some version of some software? No problem. Want to play around with Tridion 2011 Beta? No problem. Want to escalate an issue with Customer Support? No problem (well, depending on the issue). Need access to a license, information on some upcoming product, you-name-it? No problem.
So, question for the day: What are you doing now that makes you a great candidate for the MVP award next January?
N
Thursday, May 13, 2010
Saturday, April 10, 2010
Outputting a keyword hierarchy in XML
With Tridion 2009 we saw the introduction of hierarchical keywords - aka Taxonomy, aka Intelligent Navigation - and with it a whole new world of possibilities for content classification.
However, in some cases, you really don't want all the intelligence around it and would much rather have just an "old style" xml hierarchy. If you tried this yourself, you probably figured out by now that the keyword hierarchy doesn't look so... hierarchical when viewed through the API. Not at all.
It looks rather flat.
I had to write a template recently with some information about every keyword in the hierarchy (including its metadata) for a site navigation, and keeping the keyword "parent/child'' relationships.
Here's how can you do it.
And the recursive "WriteChildrenXml" method would look more or less like this:
However, in some cases, you really don't want all the intelligence around it and would much rather have just an "old style" xml hierarchy. If you tried this yourself, you probably figured out by now that the keyword hierarchy doesn't look so... hierarchical when viewed through the API. Not at all.
It looks rather flat.
I had to write a template recently with some information about every keyword in the hierarchy (including its metadata) for a site navigation, and keeping the keyword "parent/child'' relationships.
Here's how can you do it.
Category Navigation = engine.GetObject(NAVIGATION_CATEGORY) as Category;
using (MemoryStream ms = new MemoryStream())
{
XmlTextWriter w = new XmlTextWriter(ms, new System.Text.UTF8Encoding(false));
w.Indentation = 4;
w.Formatting = Formatting.Indented;
w.WriteStartDocument();
w.WriteStartElement("Navigation");
log.Debug("/Navigation created");
Filter filter = new Filter();
filter.Conditions.Add("Recursive", false);
foreach (XmlNode RootChildren in Navigation.GetListKeywords(filter).SelectNodes("//*[@IsRoot='true']"))
{
Keyword RootKeyword = engine.GetObject(RootChildren.Attributes["ID"].Value) as Keyword;
log.Debug("Generating XML for keyword " + RootKeyword.Title);
w.WriteStartElement("Item");
w.WriteAttributeString("ID", RootKeyword.Id);
w.WriteAttributeString("Title", RootKeyword.Title);
if (RootKeyword.Metadata != null)
{
WriteKeywordMeta(RootKeyword, w);
}
WriteChildrenXml(RootKeyword.Id.ToString(), w);
w.WriteEndElement();
}
w.WriteEndElement();
w.WriteEndDocument();
w.Flush();
w.Close();
package.PushItem(Package.OutputName, package.CreateStringItem(ContentType.Xml, Encoding.UTF8.GetString(ms.ToArray())));
}
And the recursive "WriteChildrenXml" method would look more or less like this:
private void WriteChildrenXml(String RootKeywordId, XmlWriter writer)
{
Keyword ParentKeyword = _engine.GetObject(RootKeywordId) as Keyword;
Filter filter = new Filter();
filter.Conditions.Add("Recursive", false);
foreach (Keyword ChildKeyword in ParentKeyword.GetChildKeywords(filter))
{
writer.WriteStartElement("Item");
writer.WriteAttributeString("ID", ChildKeyword.Id);
writer.WriteAttributeString("Title", ChildKeyword.Title);
if (ChildKeyword.Metadata != null)
{
WriteKeywordMeta(ChildKeyword, writer);
}
WriteChildrenXml(ChildKeyword.Id.ToString(), writer);
writer.WriteEndElement();
}
}
Nuno
Wednesday, February 24, 2010
SDL Tridion MVP Awards - online now
It's official, it's out there, and here's the location statistics:
Excluding SDL:
Netherlands: 2
UK: 2
US: 1
Including SDL:
Netherlands: 4
UK: 3
US: 3
Check it out, you may know someone from that list: http://www.sdltridionworld.com/community/mvp_award/mvp-award-2010.aspx
PS - Before people start shouting that giving the award to SDL employees is wrong, I think it's worth re-reading the MVP Program rules at http://www.sdltridionworld.com/community/mvp_award/index.aspx, specifically the part about the MVP Selection Panel. This panel is NOT controlled by SDL and most of the nominations received were for internal SDL people (and many didn't get the award).
PPS - If you use the forum, you will certainly know that the SDL MVPs really do deserve it.
Excluding SDL:
Netherlands: 2
UK: 2
US: 1
Including SDL:
Netherlands: 4
UK: 3
US: 3
Check it out, you may know someone from that list: http://www.sdltridionworld.com/community/mvp_award/mvp-award-2010.aspx
PS - Before people start shouting that giving the award to SDL employees is wrong, I think it's worth re-reading the MVP Program rules at http://www.sdltridionworld.com/community/mvp_award/index.aspx, specifically the part about the MVP Selection Panel. This panel is NOT controlled by SDL and most of the nominations received were for internal SDL people (and many didn't get the award).
PPS - If you use the forum, you will certainly know that the SDL MVPs really do deserve it.
Tuesday, January 26, 2010
Tridion User Group?
I've been toying with the idea of organizing a Tridion user group in NYC/North East Corridor for a while, but just didn't find those 60 minutes needed to get into it. There are quite enough professionals working with Tridion in this area of the world to make it sustainable, however I don't have the faintest clue into what would be needed from an organization stand point.
And to put it bluntly, I really don't have the time to bother with it.
But I still want to do it.
So, let's itemize what we need to make it happen, shall we?
#1 User community - it does exist, and I can get everyone's contact via SDL Customer Support
#2 A reason to meet - Meeting for a couple of drinks with no other excuse used to be a valid reason in the past, but I think that in today's my-company-is-nimbler-than-that-and-all-I-do-contributes-to-the-bottom-line economic environment we will need more than this. So, first hurdle to go through: get speakers/presenters.
#3 A venue - This being NYC, it's rather easy to get us a bar/lounge where we can meet. If we want to do more corporate, it's going to cost a pretty penny. It becomes hurdle nr 2, thus.
#4 Corporate Sponsorship? #3 is really a candidate for Corporate Sponsorship... but then #2 becomes even more important, since with sponsorship you really must provide value
So, ideas thrown in the air. I would like to see it happen, but I can't manage it, I don't have the time for it.
Anyone willing to pick it up? I'll help where I can, and can certainly get some buy-in from SDL (Marketing, PS, Support, etc)
And to put it bluntly, I really don't have the time to bother with it.
But I still want to do it.
So, let's itemize what we need to make it happen, shall we?
#1 User community - it does exist, and I can get everyone's contact via SDL Customer Support
#2 A reason to meet - Meeting for a couple of drinks with no other excuse used to be a valid reason in the past, but I think that in today's my-company-is-nimbler-than-that-and-all-I-do-contributes-to-the-bottom-line economic environment we will need more than this. So, first hurdle to go through: get speakers/presenters.
#3 A venue - This being NYC, it's rather easy to get us a bar/lounge where we can meet. If we want to do more corporate, it's going to cost a pretty penny. It becomes hurdle nr 2, thus.
#4 Corporate Sponsorship? #3 is really a candidate for Corporate Sponsorship... but then #2 becomes even more important, since with sponsorship you really must provide value
So, ideas thrown in the air. I would like to see it happen, but I can't manage it, I don't have the time for it.
Anyone willing to pick it up? I'll help where I can, and can certainly get some buy-in from SDL (Marketing, PS, Support, etc)
Friday, January 08, 2010
SDL Tridion MVP Awards
A few months ago our CEO asked me to launch a MVP initiative, intending to raise awareness about our community, and giving this people a way to differentiate themselves from the rest of the "general population" of Tridion consultants.
Thinking this was a great idea, I put my hands into it and about a month later we had a budget, a process and a web page. We wanted to be different from other MVP programs out there, so we decided that rather than having someone within Tridion selecting the MVPs, we would instead have a "Community Selection Panel" to do this. Idea is simple: 5 people, nominations by email, come January 1st just yay or nay per candidate.
And that's when you realize that not everything is black or white.
Anyway, all this to say that the Community Selection Panel has reached an agreement today about who is getting Tridion MVP status for 2010, and there's only 10 of them. Hopefully others will realize that this could be valuable for them too and start contributing more actively to the SDL Tridion community.
Many people think that this is an award for knowledge, where the most knowledgeable people get the award. It's not the case at all. This is an award for those that - for no financial reason - share their knowledge freely and openly to the whole community.
More to follow.
Thinking this was a great idea, I put my hands into it and about a month later we had a budget, a process and a web page. We wanted to be different from other MVP programs out there, so we decided that rather than having someone within Tridion selecting the MVPs, we would instead have a "Community Selection Panel" to do this. Idea is simple: 5 people, nominations by email, come January 1st just yay or nay per candidate.
And that's when you realize that not everything is black or white.
Anyway, all this to say that the Community Selection Panel has reached an agreement today about who is getting Tridion MVP status for 2010, and there's only 10 of them. Hopefully others will realize that this could be valuable for them too and start contributing more actively to the SDL Tridion community.
Many people think that this is an award for knowledge, where the most knowledgeable people get the award. It's not the case at all. This is an award for those that - for no financial reason - share their knowledge freely and openly to the whole community.
More to follow.
Thursday, May 08, 2008
A tale of Oracle proportions...
So, it's a done deal. The number 2 J2EE application server vendor got assimilated by the number 3, leaving us basically with the choice between Websphere and Jboss.
When I first started dwelling through the J2EE world, all that I asked for was something I could install and run. It was hard enough to learn Java and the whole EE thing, if on top of it the software version you got from the vendors wouldn't run without applying 200 fixpaks or hotfixes and changing 4 config files from their defaults (sometimes a documented bug) it would only make it harder.
Back in the days, after spending about 2 days trying to get WebSphere 3.5 (I think) to run on a Windows box, I decided that it had to be different. This couldn't be the same software that was generating all the hype?! How could everyone be so hyped up about J2EE when nobody could install the freakin' software? So, I ran away from WebSphere and went to BEA and downloaded a trial version (about 1/3 of the size of WebSphere, which is already about 1/3 the size of Oracle's App Server).
Took me less than 45 minutes to have it working. It was installed, and running, nothing special to be done, no obscure config files from which to uncomment lines, it just worked.
Much later, in early 2006 I had to go back to install-j2ee-application-server-from-hell-land to try some software we wrote for a customer. I had to repeat the installation about 3 different times (including Portal server), and ended up documenting the whole process in a 33 page document. This is my experience installing Oracle Application Server + Oracle Portal Server 10.1.0.4:
1st, I had to find a way to get my VMWare image to run on 1536 MB of memory. Don't ask me how they got to that number, but with less than that the installer will not run.
Then I had to install an Oracle metadata repository followed by an LDAP repository. The metadata part I can understand, but why in the name of Larry would I want to use Oracle Identity Directory (OID, their LDAP server)? Why can't it use my own LDAP, which I already have running in a secure box somewhere else? The truth is that you probably can, but not without Profe$$ional $ervice$ and years of experience dealing with Oracle software.
And if the install process wasn't painful enough, the type of stuff you find by trial-and-error is crazy...
For instance, you need to install the Oracle AS Certificate Authority, so that you can use OID with SSL. You think you don't need SSL for your LDAP until you try to run an upgrade and realize it only supported OID with SSL. Without SSL, no upgrade. (This might have changed, as I mentioned this was about 2 years ago).
Throughout the install process (over 2 hours) you get asked all sorts of questions that really only someone with extensive Oracle skills will know the answer to. Who the hell is ias_admin? Who's SYS? Who's SYSTEM? Why are there 2 of them? Who's SYSMAN? Why are there 15 different admin accounts? and the list goes on.
Finished installing Portal, needed to upgrade to 10.1.0.4. First challenge of the day: where is the upgrade? After finding it (and storing it in a sacred location in our network), I took a snapshot of my VM Image, and continued. Here's some of the lines on my documentation, from which you can clearly sense my frustration with the whole process.
Since the fun couldn't be finished yet, what we needed to test were some JSR-168 compliant portlets. Of course, JSR-168 compatibility doesn't come out of the box for Oracle Portal, so we needed to install WSRP (Web Services for Remote Portlets) before being able to try anything.
Again, some of my installation notes show the level of frustration for not finding any of the info I really needed. For those of you thinking "RTFM", well, I RTFM at least 15 times. I'm one of those that very often writes TFM, so I know perfectly well what hidden gems you'll find in those babies. TFM is meant to be read, and I did. And it still didn't help me much...
Anyway, I had to repeat this process last year, and the notes I had taken a year earlier pretty much saved my @ss, and we were able to get a fully working Oracle Portal Server running in just under 2 days.
I feel so sorry for BEA customers...
When I first started dwelling through the J2EE world, all that I asked for was something I could install and run. It was hard enough to learn Java and the whole EE thing, if on top of it the software version you got from the vendors wouldn't run without applying 200 fixpaks or hotfixes and changing 4 config files from their defaults (sometimes a documented bug) it would only make it harder.
Back in the days, after spending about 2 days trying to get WebSphere 3.5 (I think) to run on a Windows box, I decided that it had to be different. This couldn't be the same software that was generating all the hype?! How could everyone be so hyped up about J2EE when nobody could install the freakin' software? So, I ran away from WebSphere and went to BEA and downloaded a trial version (about 1/3 of the size of WebSphere, which is already about 1/3 the size of Oracle's App Server).
Took me less than 45 minutes to have it working. It was installed, and running, nothing special to be done, no obscure config files from which to uncomment lines, it just worked.
Much later, in early 2006 I had to go back to install-j2ee-application-server-from-hell-land to try some software we wrote for a customer. I had to repeat the installation about 3 different times (including Portal server), and ended up documenting the whole process in a 33 page document. This is my experience installing Oracle Application Server + Oracle Portal Server 10.1.0.4:
1st, I had to find a way to get my VMWare image to run on 1536 MB of memory. Don't ask me how they got to that number, but with less than that the installer will not run.
Then I had to install an Oracle metadata repository followed by an LDAP repository. The metadata part I can understand, but why in the name of Larry would I want to use Oracle Identity Directory (OID, their LDAP server)? Why can't it use my own LDAP, which I already have running in a secure box somewhere else? The truth is that you probably can, but not without Profe$$ional $ervice$ and years of experience dealing with Oracle software.
And if the install process wasn't painful enough, the type of stuff you find by trial-and-error is crazy...
For instance, you need to install the Oracle AS Certificate Authority, so that you can use OID with SSL. You think you don't need SSL for your LDAP until you try to run an upgrade and realize it only supported OID with SSL. Without SSL, no upgrade. (This might have changed, as I mentioned this was about 2 years ago).
Throughout the install process (over 2 hours) you get asked all sorts of questions that really only someone with extensive Oracle skills will know the answer to. Who the hell is ias_admin? Who's SYS? Who's SYSTEM? Why are there 2 of them? Who's SYSMAN? Why are there 15 different admin accounts? and the list goes on.
Finished installing Portal, needed to upgrade to 10.1.0.4. First challenge of the day: where is the upgrade? After finding it (and storing it in a sacred location in our network), I took a snapshot of my VM Image, and continued. Here's some of the lines on my documentation, from which you can clearly sense my frustration with the whole process.
It looks like you can't run the upgrade immediately after you finished installation. Don't ask me why, it's just the way it is. Leave the server running and go home, try tomorrow.
You will be prompted for the SYS and ORCLADMIN passwords. Hope you remember them.
Since the fun couldn't be finished yet, what we needed to test were some JSR-168 compliant portlets. Of course, JSR-168 compatibility doesn't come out of the box for Oracle Portal, so we needed to install WSRP (Web Services for Remote Portlets) before being able to try anything.
Again, some of my installation notes show the level of frustration for not finding any of the info I really needed. For those of you thinking "RTFM", well, I RTFM at least 15 times. I'm one of those that very often writes TFM, so I know perfectly well what hidden gems you'll find in those babies. TFM is meant to be read, and I did. And it still didn't help me much...
Anyway, I had to repeat this process last year, and the notes I had taken a year earlier pretty much saved my @ss, and we were able to get a fully working Oracle Portal Server running in just under 2 days.
I feel so sorry for BEA customers...
Thursday, May 01, 2008
Training...
Just finished training a group of editors on what will soon be their Content Management System. We're taking a very slowly paced approach, where the goal is to get them exposed to the CMS very often and in small doses, to avoid information overload.
So, today's exercises were:
And the results were... odd. Some people managed to do all this and then click the big red cross on the top right side of the window, then click OK to the warning message stating that they would lose all their changes by clicking OK.
Others couldn't understand the error message that states "The item you're trying to link to is not an image. Only gif, jpeg or png files are allowed."
And so on. Well, just another day at work. As a consultant I always bring change to companies, and being as unstable as I am, this is something I love. Change is the only constant in my life, and I really struggle to understand people that don't embrace change. So, when I see people's eyes wonder off because now they will have to update the author profiles centrally instead of in every page (!) of their site, I know they reached their limits...
Anyways, tomorrow we have training for the HTML designers, that's going to be a lot of fun.
So, today's exercises were:
- Create an author profile component
- Create an Image and link it to the author profile
- Create an author BIO component
And the results were... odd. Some people managed to do all this and then click the big red cross on the top right side of the window, then click OK to the warning message stating that they would lose all their changes by clicking OK.
Others couldn't understand the error message that states "The item you're trying to link to is not an image. Only gif, jpeg or png files are allowed."
And so on. Well, just another day at work. As a consultant I always bring change to companies, and being as unstable as I am, this is something I love. Change is the only constant in my life, and I really struggle to understand people that don't embrace change. So, when I see people's eyes wonder off because now they will have to update the author profiles centrally instead of in every page (!) of their site, I know they reached their limits...
Anyways, tomorrow we have training for the HTML designers, that's going to be a lot of fun.
Wednesday, April 30, 2008
SDL Tridion jobs
When moving to this side of the Atlantic - nearly 16 months ago - one of the clear issues I knew I would face was the lack of "brand value" for SDL Tridion. In Europe I had heard of Tridion years before I even thought of joining the company, and - especially in holland - you could even find the odd friend that though not working directly in IT would have heard of the name.
But in the "land of the free" not such luck. Tri-who? It also gave rise to some interesting misspellings of the name, like Trideon, Tridian (this one has to do with my accent, I'm sure) and the ever present Trillian.
I thought at that time that an interesting way to find out how well we're doing in the market is to just start randomly searching for Tridion Jobs at job sites and Google. Last time I had done this I think I had only found one job offer for a non-European based company (and it was for AIG).
Today I tried again, and here's what I found...
Keep in mind that these are the ones for which I could find the company behind the ad, there's a lot out there for recruiting agencies - and of course, our own job ads. But it sure shows that times, they are a-changin'.
But in the "land of the free" not such luck. Tri-who? It also gave rise to some interesting misspellings of the name, like Trideon, Tridian (this one has to do with my accent, I'm sure) and the ever present Trillian.
I thought at that time that an interesting way to find out how well we're doing in the market is to just start randomly searching for Tridion Jobs at job sites and Google. Last time I had done this I think I had only found one job offer for a non-European based company (and it was for AIG).
Today I tried again, and here's what I found...
- Senior Internet Business Analyst - Metlife, New York NY
- Associate Web Editor - Hanley Wood, Washington D.C.
- Technical Writer, Content Manager, Information Architect - Modis
- Architecture Engineer - Kaiser Permanente, Oakland CA
- Senior Pre-Sales Consultant/Sales Engineer - Percussion Software, Boston MA
- Human Resources eCommunications Specialist - Sodexo, MD
- Associate Director, Web Management - AIG, Houston TX
- Web Editor - Elsevier, Morristown
Keep in mind that these are the ones for which I could find the company behind the ad, there's a lot out there for recruiting agencies - and of course, our own job ads. But it sure shows that times, they are a-changin'.
Monday, January 07, 2008
West Palm Beach...
Got here late last night... and I'm quite enjoying it. Escaping from New York's winter is definitely something I was looking forward to, and managed to do it elegantly.
I'm starting a new SDL Tridion implementation for a rather big customer here, and things are looking promising... we'll be using the newest release of the Content Manager (5.3) which is about one month old by now, and it's going to be a pretty good learning experience for me.
The team seems to be quite motivated as well, and with loads of .NET experience, so hopefully I'll learn some stuff as well :p
I'm hoping to get some time off to browse around WPB, and at some weekend get the time for a trip to Miami & the Keys.
Anyway, winter's looking sunny right now ;-)
I'm starting a new SDL Tridion implementation for a rather big customer here, and things are looking promising... we'll be using the newest release of the Content Manager (5.3) which is about one month old by now, and it's going to be a pretty good learning experience for me.
The team seems to be quite motivated as well, and with loads of .NET experience, so hopefully I'll learn some stuff as well :p
I'm hoping to get some time off to browse around WPB, and at some weekend get the time for a trip to Miami & the Keys.
Anyway, winter's looking sunny right now ;-)
Subscribe to:
Posts (Atom)

