Wednesday, May 13, 2009
Thursday, April 23, 2009
How Software is like Life
Leaving aside such questions (and answers) I asked myself a more important question that rises every time that a new idea/law comes into discussion - there are a lot of countries in Europe and on other continents that have good and even great law systems, why are we still wasting time on comming up with new ideas instead of just using the ideas that have proven to be good?
And here is where software comes in. As programmers we could re-invent the wheel every day - fortunately we don’t have to, because there are Portals out there and web parts and Code Plex and a whole bunch of components that can make our lives easier.
It is obvious that we cannot ALWAYS use such components, but most of the times (80 - 90 %) we sure can. The remaining 10 - 20 % becomes our daily assurance and insurance of being a developer and not a button pusher.
It is also obvious that there are many of us out there that do not use existent components even when they fulfill 99% of their current requests (the 1% being the logo image on the front) and they insist in wasting/spending days to rewrite the code that someone else before them has already written and tested and updated.
Now, looking back at the unified wage system law, you could say the obvious conclusion to be drawn is that coding for the sake of it is just like… living in Romania. It takes up all your time.
Tuesday, April 14, 2009
Ronua Codecamp May 2009
Friday, April 10, 2009
10 reasons to work from home
The 10 reasons listed in this article ( and my comments on each) are:
1. Work anywhere. ( true… below I am just the photographer, but I prove my point - out the windows you can see the Gasteig Cultural Center in Munchen, Germany.)
2. Complete control of the design of your workspace. ( exactly, girly flowers everywhere.)
3. Less distractions. ( that is very true from my point of view. While other people say that staying at home distracts them from work, for me it is the other way around. I like the silence and I am more productive when I can make my own schedule. I guess this is a side effect of being an only child…)
4. Flexible time. ( I also agree here, although I am more productive in the morning rather than late at night, so my home schedule is 9 to 6 just as the office schedule is.)
5. More focus on results, not presence. ( presence as not being late in the morning, presence as office dress code, presence as socializing - although this part can actually be fun if you are lucky enough - , presence as long meetings with the management. )
6. More time with family. ( reading the blogs of other many freelance consultants, I have seen that a common good side effect of freelancing is the ability to actually be a parent not only by name or circumstance)
7. Work in your underwear. ( no comment )
8. Yoga at your desk. ( you can replace the commute time with jogging in the park time. Or just jogging around the neighborhood.)
9. Less commute. Less pollution. ( not on my side )
10. Work fewer hours. ( work hours are not 9 to 6 - work hours are 7 to 7, because between the time that you get up in the morning and the time you enter your home at night you do it all for your job - get up, get dressed, commute, work, eat lunch, work again and commute back home.)
Friday, April 3, 2009
SharePoint Designer 2007 Free!
Is it because so many people are now using it, or maybe because a new an improved version is on its way?
Monday, March 16, 2009
Designing SharePoint MasterPages - Taking advantage of SharePoint capabilities
This article talks about SharePoint best practices - what to use, what not to forget and what to think about first when you implement something. In my opinion, the most important point of the article is that we always must take advantage of the Sharepoint capabilities and even try hard to do it.
SharePoint is a very large application/system/portal and it takes a very long time to learn all its features, strong and weak points and even just to learn how to work with it. We may very easily get lost in it and even though we read books and articles about it, we will soon forget all the interesting things we’ve learned if we don’t actually use them in the real world.
Taking all this into consideration, it may sometimes be easier for us to think about custom-made functionality when we have to implement something, rather than to think about how we can achieve what we want with what SharePoint has to offer.
The article also says that, when a new functionality in a portal is discussed, it pays off to think about how you can achieve it with a custom-made solution, but also how SharePoint existing features would achieve it and to compare the 2 solutions, having in mind the fact that SharePoint existing functionality brings many advantages, as security, speed and unity.
These ideas also apply to Master Pages, as they are also a customization of a SharePoint existing feature.
Have you ever received the request to eliminate some functionality from a masterpage - such as the dropdown list of the Search control, or the My Site link ? You definitely have, especially if the design you had to implement was not created by you, but by a designer with no knowledge of SharePoint. And have you ever did that in order to implement the design as provided, to later see the Search functionality replaced with a custom control? I am sure you have done that or at least witnessed it at a point.
As SharePoint Master Page designers and developers, we are the first ones that can draw the attention on this issue - we are the ones that can prevent the occurrence of the above mentioned mistakes and watch over the implementation of best practices. We must draw attention to the fact that SharePoint functionality is there for a reason and not only to that. SharePoint users must not be confused by the design customization - being used to the default SharePoint interface, they must not find the new design hard to use and tricky. All the SharePoint controls must remain in the custom design. If they are moved around on the page, their layout must be consistent between all the pages and sites and also, easy to spot.
The design is the first thing a user sees on a page and its 2 goals (equal in importance) are to skin the page and make the usage easy and painless.
In conclusion, best practices start on day 1 of the project and every single element of customization must oblige to them, even at the cost of not following the Master Page design by the letter.
We all know all of this. Face to face with the project, we must not freak out and start writing code
Friday, March 13, 2009
Test your designs on all IE versions
IE Tester is a tool that simulates IE versions from 5 to 8 (Beta 1 currently) and allows you to see how your site/web page/design behaves in all these cases.
I have used it for a while now and it does its job very well.
Monday, March 9, 2009
Enabling Silverlight 2 in SharePoint / The easiest sample
SharePoint is a very powerful tool, but it comes a time in the life of such a powerful tool when it needs a little dosage of eye-candy design. Right now, that can be very easily achieved with Silverlight.
As the two are siblings of the same technology (plain old ASP .NET
But first of all, some SharePoint configuration element are needed. Configure SharePoint to run Silverlight
The needed configuration elements are:
1. Silverlight 2 plug-in.
2. .NET 3.5 framework installed on the server.
3. Service Pack 1 installed for WSS 3.0/MOSS 2007.
4. System.Web.Silverlight.dll added in the Global Assembly Cache (GAC).
5. New Web.config elements in the web.config of the Web application you are planning to run Silverlight on.
6. The .xap extension registered as a MIME type (application/x-silverlight-app) in IIS.
7. [Development requirements: Silverlight Tools for Visual Studio 2008 SP1, Install Microsoft Expression Blend 2 and Microsoft Expression Blend 2 Service Pack 1] Easiest test - Silverlight on SharePoint
To test if Silverlight actually works, open a site in the web application that you configured to run Silverlight controls (point 5 above).
Silverlight can easily be added in a Content Editor Web Part. For that, you will need, first of all, a Silverlight control to add. You can find a simple Silverlight control on the Internet, or here.
1. Create a document library in the site you just opened. I named mine XAPS.
2. Navigate to this library and upload the Silverlight control.
3. On the site Home page (for example) add a new Content Editor Web Part.
4. Open the Edit panel and select Source Editor.
5. In the content text box enter the following:
<object width=”100%” height=”200″
data=”data:application/x-silverlight-2″
type=”application/x-silverlight-2″ >
<param name=”source” value=”/xaps/SilverlightControl1.xap”/>
</object>
6. Click Save and then OK and the Web Part should load the following:
A very good place to start with Silverlight and SharePoint is CodePlex’s Silverlight Blueprint for SharePoint.
Monday, January 19, 2009
AlternateCssUrl - what is it useful for?
If you work with a masterpage, you will probably set in code values for DefaultMasterPageURL and CustomMasterPageURL.
There is one more property of a SharePoint site called AlternateCssUrl. You would use this property if you don’t want to create a MasterPage or a Theme, but just apply a skin on the SharePoint default look - by specifying a value for this property, you make SharePoint include your style sheet in its pages.
Although it would look like the AlernateCssUrl property has a very limited use, you could not be more mistaken. There are pages in SharePoint that do not implement any masterpage - not the default.master, not the application.master. One example is the Picture Slideshow page.
This is the case where the AlternateCssUrl property comes in handy - by initializing this property value with your custom css style sheet, you can rest assured that all the SharePoint pages in a site will be skinned.
Wednesday, January 7, 2009
SharePoint System MasterPage - hide the Search control or delete it?
It is a known fact that SharePoint can skin its system pages.
When designing a system masterpage for SharePoint, there are 2 ways that you can follow: take the generic application.master and customize it, or start from the existing masterpage of the site, supposing you are working on a skinned site.
I usually start from the main masterpage of the site and take into account the fact that the system masterpage needs a few tweaks.
The 3 main differences between the regular site pages and system pages in SharePoint are:
1. The Search control is missing on the system pages.
2. The Breadcrumb is different on the system pages.
3. The left navigation placeholder is empty.
Letting the Breadcrumb tweak for you to discover :), I will make you now aware of the fact that the Search control is not needed on the system pages master.
When you don’t want use certain controls (ContentPlaceHolders) on a SharePoint masterpage, you generally choose to hide them, not delete them, by placing them in a hidden panel. SharePoint will still find them and so not retrieve an error, but they will not show up in the page design, giving the site the look of your choice.
Following this pattern, I first hid the Search control on the system page in a panel. Everything worked fine until I tried to Check In/ Check Out a file and i got this error:
“Unable to validate data. at System.Web.Configuration.MachineKeySection.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) “
This error did not appear when the site was skinned with the SharePoint Default theme. So the problem laid in the customized application.master file. The only difference between the application.master and my system.master pages was that in my master I had the Search control place holder hidden (but present).
After deleting it, everything worked fine. Except… WIki Sites - History of a page retrieved an error: “Search PlaceHolder not found”.
So the answer to the question in the title is - Delete the Search control, leave the PlaceHolder:
< asp:ContentPlaceHolder id=”PlaceHolderSearchArea” runat=”server” >
< / asp:ContentPlaceHolder >



