June 2006 - Posts
It is an important date for me, because tonight the first platform built in the ecenter was switched off. For sure the end of something, but a great start for something new (1, 2, 3).
And here is the picture of the team:

Standing up:
Constantin, Laurent (it's me), Roy, Nick, Rolf, Cédric, Thomas, Peter
Kneeling:
Didier, Philippe, Lorenz, Oli, Bojan
That's it!!! I decided to open the code of the second release of my authoring/publishing tool used on Tech Head Brothers portal.
You might read more about the new version here:
And about the first release here:
The project is hosted on CodePlex, an online software development environment for open and shared source developers to create, host and manage projects throughout the project lifecycle. It has been written from the ground up in C# using .NET 2.0 technology with Team Foundation Server on the back end. CodePlex is open to the public free of charge.
It is a work in progress and I will need some time to cleanup the solution before making the first checkin of the source code, but it will come.
The project is called Tech Head Brothers Authoring and it is hosted on this page.
I would like to congratulate all the French "has-been too old" football players :-)
Then I would like to quote Didier
"
And my dear Spanish colleagues, friends and non-friends, journalists, trainer and players, sometimes, as in the business field, it is *definitely* better to keep a low profile and to respect your opponents, and more especially before playing a match, even if you have won your last 26 games. Some examples...."
What about the shameful behaviour of the Spanish fans during the anthem?
Striker Thierry Henry described the rival supporters' behaviour as shameful. "I've never seen that before in the World Cup. It's shameful that their supporters reacted like that during the Marseillaise.
What about the reaction of the trainer after the match?
"I don't think the final scoreline was an accurate reflection of what happened," insisted coach Luis Aragones after Spain's first defeat in 26 games.
What about the racist remarks of the Spanish trainer (for a while) and supporters?
Aragones and Henry are not the best of friends after Aragones’ used a racist remark in referring to the France striker while trying to motivate Jose Antonio Reyes, an Arsenal teammate of Henry.
Domenech also suggested that some Spain supporters had made monkey noises when the bus carrying the France players arrived at the stadium."
"
I think that the best answer was given by the French team during the game. THANKS GUYS !!!
Allez les Bleus!
This time the targeted scenario was to implement a login the way I saw it on on10.net.
Using the Atlas Control Toolkit, I started to implement the scenario with a ModalPopup atlas control surrounding an ASP.NET Login.
After some drag and drop on the designer I hit the F5, and I was in front of my Modal login. Nice, but no postback, so no login. Tehn I came with the idea to add the property UseSubmitBehavoir to false for OK/Cancel button like so:
<asp:Button ID="OkButton" runat="server" Text="OK" OnClick="OkButton_Click" UseSubmitBehavior=false></asp:Button>
I had then my postback, but all controls in my login template were empty. After spending some time on that without success I gave up.
But yesterday evening I came back to this and downloaded the latest bits of the Atlas Control Toolkit from CodePlex. By the way Korby, I can't wait getting my projects there ;-) And restarted the implementation using the demo web application they deliver with it. And there it worked fine.
<
asp:Panel ID="LoginPanel" runat="server" CssClass="modalPopup" Style="display: none">
<asp:Login ID="Login1" runat="server" LoginButtonText="S'identifier" PasswordLabelText="Mot de passe:" PasswordRequiredErrorMessage="Le mot de passe est requis." RememberMeText="Se souvenir de moi." TitleText="Identifiez vous " UserNameLabelText="Nom d'utilisateur:" UserNameRequiredErrorMessage="Le nom d'utilisateur est requis.">
</asp:Login>
<asp:Button ID="CancelButton" runat="server" Text="Cancel"></asp:Button></asp:Panel>
<span class="login">
<asp:LinkButton ID="LinkButton1" runat="server" Text="S'identifier"></asp:LinkButton> |
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Register.aspx">S'enregistrer</asp:HyperLink>
</span>
<atlasToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server">
<atlasToolkit:ModalPopupProperties TargetControlID="LinkButton1" PopupControlID="LoginPanel" BackgroundCssClass="modalBackground" CancelControlID="CancelButton" />
</atlasToolkit:ModalPopupExtender>
And now with some slight modification to my implementation it is also working fine as you can see:

After a smooth integration of Atlas in the new version of Tech Head Brothers website, I
decided to go a step further with a project a bit more complex then the scenario
developed here.
The new version of the site is totally rewritten in C# and ASP.NET 2 and uses
the Webparts.
So the new scenario I wanted to implement was a system of connected Webparts,
one showing an article, a how-to or news and the other the
comments associated with that. The connection of the webparts was done in
about 10 minutes, really cool techno.
Then I learned that an Atlas UpdatePanel can't be part of a Webpart because
then you have the UpdatePanel in a Template of the WebpartZone and that doesn't
work, so you have to move the UpdatePanel to have it around the Webpartzone. As
I am working with nested Master Pages I decided to have the UpdatePanel in
an asp Content control around the WebPartZone like this:
<%@ Page Language="C#" MasterPageFile="~/OneColumn.master" AutoEventWireup="true"
CodeFile="Articles.aspx.cs" Inherits="Articles" Title="Tech
Head Brothers - Articles" %>
<%@ MasterType VirtualPath="~/OneColumn.master" %>
<%@ Register Assembly="Nsquared2.Web" Namespace="Nsquared2.Web.UI.WebControls.WebParts"
TagPrefix="nsquared2" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder" runat="Server">
<atlas:UpdatePanel
ID="panelarticles" Mode="Conditional" runat="server">
<ContentTemplate>
<nsquared2:TemplatedWebPartZone ID="ContentZone" runat="server" ChromeTemplateFile="~/Templates/Chrome/THBOriginalTemplate.chrome"
CssClass="webpartzone" Padding="0">
<ZoneTemplate>
</ZoneTemplate>
</nsquared2:TemplatedWebPartZone>
</ContentTemplate>
</atlas:UpdatePanel>
</asp:Content>
Then in my comments WebPart I implemented a button doing a
response redirect to another page that will handle the writing of a new comment,
and this in the UpdatePanel postback not the whole Page postback. To be able to
access some information from the calling page I had added some information in
the Session on the first page that I wanted to read on the second one. Boom!!
Session is empty on the second page. I then removed the UpdatePanel and session
was back again. hum!!! But that was not the scenario I wanted for my comments,
so I added again my UpdatePanel and made several tests withtout any success.
Then searching on the forum I found why, here : "The
specific reason it happens is that when ScriptManager detects a Redirect during
an async postback, it clears the response, which means all cookies are lost. One
of those cookies is the session ID cookie. This doesn't necessarily affect all
scenarios, but it does affect some." A bug in the CTP april of Atlas.
Then it was clear if the Response is cleared, no chance to get my
Session values.
As it was not critical data I decided to use QueryString to pass
on data and that's for sure worked. I will revert to Session when it will be
fixed.
Now I have a system with connected WebPart, one displaying
comments using Atlas UpdatePanel to reload only the comments that the suer wnats
to see. Great stuff!!
There is one thing I don't liked in the WebPart connection is
that if you have a link button in your page and the OnCommand is set, then when
the Command is called the WebParts connection is not already done so you have to
remmeber parameters given to your method and reuse them in OnPreRender.
[ Currently Playing : With My Two Hands - Ben Harper - Diamonds
On The Inside (04:35) ]
Tonight the French soccer team played against China in a training match for the World Cup 2006 in Germany.
After 11 minutes, Djibril Cissé, was hurt and it seems that his right leg is broken.
I just want to say that I really like this player, and that I am pissed off by this stuff.
So Djibril good luck for your recover.
[ Currently Playing : Run Baby Run - Garbage - Bleed Like Me (03:58) ]
Tuesday 6th, June 2006 we launched our new platform to the 12 000 users. This
was a big day for us after lots of efforts we finally made it.
After 15 minutes of pure stress because of an issue on a front end server, we
finally had a platform running without any major issue. The platform is
running since two days now and we received wonderful feedback about the
response time.
The last days and first minutes really showed us the importance of having two
production streets in fail over mode. And this part was fully tested ;-)
Now we enter a stabilization phase, and for the moment only two adaptations
on the front end. Not bad with such a complex project.
As next step we planned horizontal scalability of the architecture and
it will really allow us to grow without any issue with this new architecture.
But that's another story.
[ Currently Playing : Song to Say Goodbye - Placebo - Meds
(03:38) ]
My migration weekend started on Friday at 5:00PM, you might read more about here : "First step of a long migration weekend reached".
The second step was System Acceptance Tests from business application's owners. And I am really happy to say that it went well, even better than what I thought, and all applications are tested and are working well and really fast according to the different testers. So we received the GO from the business to activate the new platform to all the users.
Tomorrow will be step three with the access of 12 000 users to the platform. I hope it will go like step one and two.
Yesterday, Friday 2 June, 2006 at 5:00 PM, we started our platform migration process at ecenter solutions.
This is the result of one year of hard work splitted in two phases:
- first 6 months we made several proof of concepts
- last 6 months we redesigned the whole architecture, made a new security concept, defined new processes and finally implemented it
So what did we currently have changed. We still have a three stages strategy with Integration, Pre-Production and Production, but we went :
- from 4 HP L2000 (RISC Processor, 32 bits, 440MHz) to 11 HP DL385/DL585 (AMD Opteron processor, 64 bits, 2.6GHz)
- from one DataCenter to two DataCenters with Business Recovery
- from HP-UX 11.x to SLES 9 (64 bits)
- from Virtual Vault to appArmor
- from Apache 1.x to Apache 2.x
- from Tomcat 3.x to Tomcat 5.x
- from Java 1.3 to Java 1.5 (64 bits)
- from Oracle 9i to Oracle 10g (64 bits)
- from a hoster in Francfort, Germany to one in Basle, Switzerland
We also improved our deployment process, you will like it Thomas ;-), our maintenance setup, our production street switch...
The tough time of this weekend is the migration of the whole data set sized to more than 650 Gb. It worked :-) Great job Philippe.
After some slight last modifications our internal tests are all on green. We now are waiting the system acceptance test of the business for tomorrow. And the final Production activation on Tuesday. So as Didier write it "eCENTER: Please cross your fingers for us :-)".
After that we will need for sure some rest and "normal working hours".
More Posts