It seems that the website was "down"

by brunofig 19. November 2008 19:01

Wow.... how could I missed this. Since last Friday the site was down. After talking with support, it seems that I had some kind of attack, firing up the CPU usage above 20%, that triggered the shutdown of the http service for the website.

Sorry dudes and dudetes for this.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

What could be improved in the OutSystems platform?

by brunofig 12. November 2008 17:46

Let me just start by saying that regarding my last post, I was contacted by the OutSystems and a support ticket was open to correct those situations in a future release.

Now, after been working with OutSystems for sometime, I believe that some improvement could be added, like:

Custom Controls

One thing that I think is critical and a major flaw in the OS platform is the lack of support for custom controls. Now a days this is simply mandatory. In the previous client, we had a huge library of custom, business-oriented, controls.

imageExtended Assign Editor

Another thing that could be introduced is a Extended Assign (Expression) Editor. When using the Assign Action, we can have, for instance, 30 assigns. Editing them in a property grid like editor may not always be the best(practical) solution. It would be nice to have a Extended Expression Editor for action that had multiple arguments. This Extended Expression Editor would have on the left side a treeview with all the arguments of that action.

Unit tests outside assemblies

This was a big "What the Heck" for me. While using Reflector to browser the OutSystems assemblies, I found out that many assemblies also contains the unit tests. Keeping it in one project requires extra bandwidth to distribute , extra build time and increases the installation footprint.

Master Pages

On the community forums there is a post about this topic with over a year. This is a much needed functionality. Please release it on the next version. Pleeeeaaaassseeee. :)

imageDocking panelsimage

The OS Service Studio relies on panel for both application(eSpace) navigation and Tool box. This is just fine, but these panel are "fixed". Or you see them or you...see them. It would be nice to have docking panel, like visual Studio. 

Editor Tabs

Another feature that could be added to improve user experience are the tabs. The latest release of the Service Studio introduced the navigation back/forward arrow, but is my believe that tabs would be much appreciated by the community.

Split Screen

Now this is just pushing, but split screen for the designer, action of a webscreen would be just soooo sweeeeeeet :) .

Shelves

This is a topic not related with the user experience, but more a programmer experience. Many times while creating a a webscreen, editing a action, or whatever task we can perform on the Service Studio, we have the need to save that change for later. A common scenario is when we are introducing a new, 5 days long feature, and on day 4 your manager says "We need to make a little change on that action." . We can always save the eSpace, get the latest publish one, make the changes and go back to our saved eSpace.

For me it would be nice to have a "Shelve..." on the context menu. This action would save the changes to the OS Server for later usage.

This is a concept that we have, for instance, with Visual Studio and Team Foundation Server.

 

Conclusion

So, these are some of the features I would love to be added to the OS.

What do you think? Any suggestions?

If you haven't already tried out the OS Platform, download the developer edition, learn how to use, and show it to your manager :) . It's great for rapid application development.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

The Controls collection cannot be modified because the control contains code blocks (i.e. <%...%>). Problem and why OutSystems still "lives" in the past

by brunofig 7. November 2008 20:51

Lately I've been working with the OutSystems platform. For all of you that need to develop small to medium applications on a record time, this is the tool.

Although developed in .Net, the OS platform just recently updated their tools to the 2.0 version of the .NET framework.

"So, what does this introduction has to do with the title?"

What happens is that I developed a HttpModule to add some meta tags to all applications under IIS.

All worked well until we started using one of the OS management applications. The error was: "The Controls collection cannot be modified because the control contains code blocks (i.e. <%...%><% ... %>). "

"What the heck?!"

After browsing thru the OS management application page files, I found this piece of code on almost all pages of the application:

<head runat="server">
<title><%= HttpUtility.HtmlEncode (Title) %></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="web.css" type="text/css" rel="stylesheet" /><%= GetJavaScriptIncludes() %>
<script src="<%= OutSystems.HubEdition.RuntimePlatform.Web.JavaScriptManager.GetRelativeJavaScriptPrefix() %>_osvalidators.js" type="text/javascript" charset="UTF-8"></script>
</head>

 

Has you can see, although the head tag as the attribute runat="server" they still use markup text (<%...%>). Has Rick explains, when using the markup text, the generated code for the page changes, and all markup text is translated to Response.write and the controls collection of the container is hardcoded living no room for adding new controls.

So for me, the big question is: Since the OS team updated their solution to the .NET 2.0 version, why didn't they also upgraded the management application to use all the cool (and helpful) features? Why not use MasterPages? Why not use the ClientScript.RegisterClientScriptBlock and this.ClientScript.RegisterClientScriptInclude? Why not use the Page.Title ?

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

[PT] Procuras um novo desafio profissional?

by brunofig 5. November 2008 17:22

A empresa para qual trabalho tem as seguintes oportunidades para poderes abraçar um novo desafio profissional. Se tiveres interessado(a), envia-me um email com o teu CV actualizado e a(s) oportunidade(s) que te interessa(m).

Porto

- Analista/Arquitecto Java

- Programador Java

Lisboa

- Analista de Negócio (experiência em modelação de dados)

- Analista Programador Java Sénior e Júnior

- SAP ABAP

- Sénior e Júniores .NET

- DBA Oracle

- Programador C++

- Telecomunicações (para várias áreas: acesso, transmissão, 2G/3G rádio, core fixed e móvel)

- OutSystems

 

O Grupo Reditus desenvolve um conjunto alargado de serviços integrados nas áreas das Tecnologias de Informação, Business Process Outsourcing, Contact Center, Consultoria, Desenvolvimento e Manutenção de Software e Soluções de Engenharia e Mobilidade destinados na sua maioria a médias e grandes empresas tendo, tradicionalmente, uma forte presença no sector financeiro, segurador e das telecomunicações.


A Reditus II – IT Consulting é uma empresa do Grupo Reditus, que actua numa área estratégica de IT Consulting em que a oferta de serviços inclui "Application Management in-site", "Outsourcing Especializado" e "Desenvolvimento Aplicacional", assim como a "Software Factory".

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

:) The dark side I sense in you....

by brunofig 28. October 2008 22:50

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Funny: Windows Live Translation and code snippets

by brunofig 27. October 2008 19:41

While browsing this blog, I clicked the translation to Portuguese. This is what Windows Live Translator thinks of code snippets :P

image

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Another new gadget for my birthday :)

by brunofig 6. October 2008 15:28

Not completely satisfied with the computer they gave, my friends teamed up with my wife and offered me a Wii. :)

So, Saturday afternoon was spent playing bowling in my living room. :)

 

THANK YOU GUYS!!! :)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

My new (and very first) computer that my friends gave me for my birthday

by brunofig 1. October 2008 16:38

Well, a recently bought a brand new top-of-the-line laptop. And yesterday was my birthday. My thirtieth birthday.

So, some of my friends decided to give me a surprise party at home. But the real surprise came wrapped as a gift. They offered me a computer. Not any computer that you find on a store. This was a special one. This was a Timex 2048 with lots of tapes. One of my first computers. One that I played when I was young...very young. Hours and hours of fun in front of a small TV, playing Target Renegade, Bomb Jack, Chuckie Egg, 1942 and others...so many others. My first programs where made on this piece of hardware with (an prepare to be amazed) 48k of memory.

And the games...oh the games...They had life, they had originality, they were FUN.

Target Renegade

The games where loaded from a tape deck that had to be tuned for the game to load right. So many times had I to fine tune....lol...those were the days :). Now its all so easy.

 

 

This has a special gift. One that, although made me felt so very old (specially when there here persons on the room that didn't even know what a timex was), made me remember my youth.

Thank you my friends. :)

Now...its time to hear that beautiful sound of that that Load "" does...... :P

 

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

"Go shorty its ya birthday!"

by brunofig 30. September 2008 14:26

Today I turn 30! :)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Lutz Roeder’s .NET Reflector acquired by Red Gate

by brunofig 26. September 2008 02:46

I've been off somehow to have miss that 5 days ago Red Gate announced the acquisition of the Lutz Roeder’s .NET Reflector. Has my good friend Paulo refers, some improvement can be made in the UI.

These are my suggestions:

  • One of the most annoying things when performing a search in code it that it doesn't highlight;
  • Docking panels, like the ones found on Visual Studio, would also improve usability.

It seems that these, together with Paulo's suggestions would improved greatly the .NET Reflector usability.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Software

TIP: Conditional code execution with the ConditionalAttribute and the #IF ... #ENDIF Preprocessor Directive

by brunofig 25. September 2008 17:51

While developing an application, you need to execute some code only when a defined condition is meet, for example, you have a product and you want to have specific code execution for both a release version and a trial version. You could change the code and compile different code for each version, or you could use one (or both) of the following solutions:

  • The ConditionalAttribute indicates that a method is callable if a specified preprocessing identifier is applied to the method.
  • The #IF ... #ENDIF Preprocessor Directive conditionally includes source code at compile-time if a specified preprocessing identifier is defined.

The ConditionalAttribute class

An practical example of the usage of this attribute is the framework itself. The System.Diagnostics.Debug class uses in its methods this attribute so that when you are debugging your assembly, the debugging information is output:

image

 

Let build a simple example:

using System;
using System.Collections.Generic;
using System.Diagnostics;

public class MyConditionalSample
{
    public static void Main()
    {
        Debug.WriteLine("Some debug info!");
        ExecuteIfRelease();
        ExecuteIfDebug();
    }
    
    [Conditional("RELEASE")]
    private static void ExecuteIfRelease()
    {
        Console.WriteLine("Hello world! I'm a release assembly!");
    }
    
    [Conditional("DEBUG")]
    private static void ExecuteIfDebug()
    {
        Console.WriteLine("Hello world! I'm a debug assembly!");
    }
        
}

This is a straight forward example. In the Main method we call the Debug.WriteLine method to output some debug info, and call both ExecuteIfRelease and ExecuteIfDebug methods.

Looking at these methods, notice that they have the Conditional attribute with the conditional compilation symbols RELEASE and DEBUG.

So, on our command line we will first simple compile and execute our code:

image

As you can see, no output was wrote, this because no conditional symbols were defined in our compilation. Let's change our compilation command to include the RELEASE symbol:

image

Now that we added the RELEASE symbol, the runtime now executes our ExecuteIfRelease method.

Changing the symbol to DEBUG will now make the runtime execute the ExecuteIfDebug method and also output our debug message, that we can trace in the DebugView:

image

image

If we look at our compile code in the .NET Reflector we will see that both methods are declared on the code but only the ExecuteIfDebug method is declared on the Main method:

image

#IF ... #ENDIF Preprocessor Directive

The #IF...#ENDIF preprocessor takes this to another level. When using this directive, you are telling the compiler to include/exclude code from the compiled assembly.

So, taking our example and changing it to use instead this directive:

using System;
using System.Collections.Generic;
using System.Diagnostics;

public class MyConditionalSample
{
    public static void Main()
    {
        Debug.WriteLine("Some debug info!");
        #if(RELEASE)
        ExecuteIfRelease();
        #elif(DEBUG)
        ExecuteIfDebug();
        #endif
    }
    
    #if(RELEASE)
    private static void ExecuteIfRelease()
    {
        Console.WriteLine("Hello world! I'm a release assembly!");
    }
    #elif(DEBUG)
    private static void ExecuteIfDebug()
    {
        Console.WriteLine("Hello world! I'm a debug assembly!");
    }
    #endif
        
}

Now let's compile and execute our code using the DEBUG symbol:

image

The code executed has expected, with no visible difference from the prior sample. So what's the catch?

The catch, has told, is in the compiled code itself:

image

Notice that our compiled code doesn't include the ExecuteIfRelease method.

Conclusion

So there you have it. To simple ways of call conditional code. One more thing: although we used the command line compiler to define de conditional symbols, the same can be made using Visual Studio. Simply go to the project's properties, and on the Build tab set your custom compilations symbols, or use the DEBUG and/or TRACE symbols:

image

I would like to say thanks to my good friend Paulo for pointing me into the right direction on this matter.

kick it on DotNetKicks.com

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

C# | Tips&Tricks

Wish list [Updated]

by brunofig 23. September 2008 20:12

Well, I'm getting old....next Tuesday I turn 30 ("Go, Go, Go Shorty. It's Yo Birthday. We Gonna Sip Bacardi Like It's Yo Birthday"). The big T3. So...for the next year this is my geek wish list:

 

 

[UPDATE]

Seems I forgot some gadgets:

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Contact form now working

by brunofig 4. September 2008 02:16
It seems that the email system for the blog wasn't working. I'm using the smtp from google and it seems that one of the available ports is throwing timeouts, so all of you that tried to reach me using the contact form did not succeed. Sorry.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

BlogEngine.NET

Introducing Ubiquity and my contribution to it.

by brunofig 3. September 2008 22:14

The guys at Mozilla Labs released another cool extension for Firefox named Ubiquity. In their own words:"Ubiquity is an experimental Firefox extension that gives you a powerful new way to interact with the Web. You're used to telling Firefox where you want to go by typing Web addresses into the URL bar:2421200474_1bf74ef498_o.png.
With Ubiquity installed, you'll be able to tell Firefox what you want it to do by typing commands into a new Ubiquity input box."

If your are using firefox to see this post, you will notice that on the top there's a notification that this site has Ubiquity commands. This is my test on how easy it is know to create a extension to Firefox. This command allows you to subscribe (using Google Reader) to the feed on the visiting page using the 'subscribeThis' command.

So go on and give it a try!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Client-Side | FF-Extensions

[PT] Procuras um novo desafio profissional?

by brunofig 1. September 2008 19:44

A empresa onde actualmente trabalho anda a procura de recursos para integrar em novos projectos. Procuramos pessoas com perfil Sénior, na vertente web, com  conhecimento profundo de .NET e/ou OutSystems.

Se conhecerem alguém que ande a procura de um novo desafio, agradeço que enviem o seu CV para brun...@reditus.pt.

Para qualquer esclarecimento adicional não hesitem em me contactar.
Obrigado.

O Grupo Reditus desenvolve um conjunto alargado de serviços integrados nas áreas das Tecnologias de Informação, Business Process Outsourcing, Contact Center, Consultoria, Desenvolvimento e Manutenção de Software e Soluções de Engenharia e Mobilidade destinados na sua maioria a médias e grandes empresas tendo, tradicionalmente, uma forte presença no sector financeiro, segurador e das telecomunicações.

A Reditus II – IT Consulting é uma empresa do Grupo Reditus, que actua numa área estratégica de IT Consulting em que a oferta de serviços inclui "Application Management in-site", "Outsourcing Especializado" e "Desenvolvimento Aplicacional", assim como a "Software Factory".

 

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Powered by BlogEngine.NET 1.4.5.7
Theme by Mads Kristensen

About the author

Hi!

My name is Bruno and I'am a senior consultant. When I'm not working, you can catch me playing with my daugther, taking photos and hanging out with my wife and friends. :)

You can also check my dark side or have fun with my vision of the world.

View Bruno Figueiredo's profile on LinkedIn

TwitterCounter for @brunoshine
 
Creative Commons License

 
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.
 

Ads

    Page List

      Most comments

      Busby SEO Test Busby SEO Test
      2 comments
      kh Cambodia
      laptop cases laptop cases
      2 comments
      Busby SEO Test Busby SEO Test
      1 comments

      RecentComments

      Comment RSS

      Popuri.us

      My Popularity (by popuri.us)