Wednesday, December 19, 2007

I got a recommendation from my friend about great Israeli Jazz band. This band is called: thirdworldlove and i think that is one of the finest original materials bands that I've heard in the last year.

So if you're Jazz lovers/fans or even not, I recommend you about them.

Almost forget one more great thing, you can listen to their materials here just FREE.

Enjoy...

Life | Other
Posted by: Eran Nachum (c)
Post Date: 12/19/2007 11:33:53 PM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #

I Read very nice post that has written by Matt Berseth regarding debugging asp.net AJAX applications. In his post he examples  a tool that has been written by the YUI project team has developed and compares it to the Trace Console AjaxControlToolkit Control that belongs to Microsoft.

If you are a asp.net developer that uses AJAX extensions or even not, this post can help you debugging AJAX events and actions.

You can read it here.

Posted by: Eran Nachum (c)
Post Date: 12/19/2007 5:59:42 PM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Thursday, December 13, 2007

The reason I published this post is because I didn't find any result when googling the error description and solved it myself at last.

If you're asp.net developers you probably know the ObjectDataSource object, which represents a business object that provides data to data-bound controls in multi-tier Web application architectures.

I like this object, most of the time this object can solve you all the annoying steps logic of calling the BL/DAL object in order to retrieve the data and populate the wanted presentation control.

On one of my working on website's pages (which is quite complex one that knows to list data from several sources and procedures), I am using such of object as a data source in the main GridView that renders a list of records. In order to interact with each different select method I had to set every time the SelectMethod property and it's specific parameters in the code-behind. Until now everything is just fine...

It seems that working this way affects the other postback events on the page, (because after event postback, the OnInit and OnLoad events are being called first and just after it the event handler itself is being called), here my page was crashed and gave this error message: "The Select operation is not supported by ObjectDataSource '<objectdatasource_id>' unless the SelectMethod is specified."

This error caused because the page expected the SelectMethod property to be initialized between the OnInit and OnLoad methods and just after it the rest of the events.

The resolution is quite easy in this case;

First, you need to remove the ObjectDataSourceID property definition from the control properties' definitions layout in the control source and set the DataSource for the control to the desired one in the OnInit method. After it, in the OnPreRender method call the control's DataBind method in order to bind the data source. This last action will allow to any event to happen and just after it to set up the Control (the GridView in my case) with data.

protected override void OnInit(EventArgs e)
{
   base.OnInit(e);
   MyGridView.DataSource = MyObjectDataSource;
}

protected override void OnPreRender(EventArgs e)
{
   base.OnPreRender(e);
   MyGridView.DataBind();
}

I hope it'll help anyone...

.NET 2005 | ASP.NET | Bugs | C#
Posted by: Eran Nachum (c)
Post Date: 12/13/2007 1:02:19 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Tuesday, December 04, 2007

This post comes as a continues to the previous one. I thought about some insights regarding this issue and in the bottom line, there are some significant disadvantages that I could think about:

  1. Get from the starter point that web application is stateless, this is the most important disadvantage - you cannot rely on that admit it or not.
  2. What about performance - like the former post, this kind of alive (web) service will grab a thread permanently from the application pool and we'll use it - this thing damage in a matter of time the performance.
  3. What about IIS reset action. If being done, the process will be 'dead' and this thing is worth to nothing because we can't rely on anyone to check if it alive.

The main conclusion:

Don't count on web application in order to run scheduled tasks - you can't rely on it in 100% (however you have tools that meant to monitor it).

I takes Ken Egozi's comment of creating a scheduled task (instead of windows service) that will do the scheduled job (I going to keep my local machine alive forever I think ;))

Posted by: Eran Nachum (c)
Post Date: 12/4/2007 7:00:48 PM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #

By the formal definition, Microformats designated in the first place for humans and just after to machines. Actually, this is a set of simple informational formats that based over generic and well unified standards. This set of formats comes to simplify common problems into a behavior and common templates (like XHTML, XML etc...).

The main goal of this formats is not to invent a new language or force these kind of changes over the 'world', however it comes to adapt a different way of thinking regarding storing information and publishing it to the world.

I going to apply this set of formats in my new web 2.0 working application. By doing it I can publish to a third level party data from my site easily in unified structure.

So what is the main different from what we have today?

Today we are using XML structure in order to keep data and to publish it or even publishing a specific  API that will explain the consumer the way she can retrieve the data. These kinds of solutions spends the developer's time that wants to get the data (she has to learn the API in order to use it); the Microformats comes to save up this time because it's a well know formats.

You can use RSS or some other feeds you'll ask not? In fact yes! BUT, these Microformats has a variety of patterns that help you publish extended unified structure data which supplies you more functionality.

Common standards are: hCalendar which supplies a calendar format in order to publish events, hCard which is a format for personal details card.

One more good advantage is search engines. Step by step, search engines crawlers starts to learn this kind format and knows to index this data in efficient way; this is also improves your site's SEO.

More details regarding it you can read here - http://microformats.org/

Posted by: Eran Nachum (c)
Post Date: 12/4/2007 11:26:01 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Monday, December 03, 2007

I have a problem (or used to have a problem...). In my working on web 2.0 startup, I bumped in a problem which in first thought looked to me as a simple one but after something like 5 seconds I figured out that it's actually a problem (or something to think about - I like this phrase much better ;)).

So after this introduction, lets introduce the 'something to think about' issue: I had to run each period of time a set of tasks in order to update some database statuses. If my web application was hosted on a dedicated server, this one had be solved very quickly; windows service - I guess you thought about it yourselves...

BUT, we are not going to host this web 2.0 application in a dedicated server (at least not now) and the scheduled task became a task itself, because (if you are web developers you'd better know) application is lives as long as there is at least one client that consumes it. When the last consumer is going home, also the application in going home to relax...

Now to the main question: how can we keep it alive?

After doing some thinking between me and myself, gathering up some good resolutions and not I thought about good one; in your web application create a web service that most of its job is to expose a KeepAlive web method that will return a dummy value and will keep the web application alive all the time and also will perform the tasks that you to establish for permanent period of time.

In your local PC, create a small desktop application in order to handle the tasks. This application will be a windows service that will run automatically under your machine every X interval and will ping the web service in order to keep the web application alive.

Note: the web service itself will know to execute the specific task itself every predefined period of time.

What about performance? This solution could affect your web application performance (I think that you know the reason why), in this case you can create another wen application that will be placed in the same server and all its job is to be kept alive and perform your tasks.

Any addition will be appreciated... I am going to write this web service now...

Posted by: Eran Nachum (c)
Post Date: 12/3/2007 6:01:39 PM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Sunday, December 02, 2007

Long time no written, I know.... I am quite busy these days at work and in my private time working on the web 2.0 startup with my colleagues.

I received an email from Kevin Gao, which is the leading developer of a nice source control software that called SourceAnywhere Hosted of Dynamsoft in order to check out their software tool. I decided to write about this tool, because this one is very suitable to me these days while working on my startup project. I actually needed a good source control in order to manage my code files properly.

So, some conclusions regarding this tool, after working with it close to a month. Let start from the important thing for small developers like me - this tool is FREE to use for up to 3 users, which can be suitable for small to medium projects with low number of developers.

The second thing that was fine by me is the interface of this software, which is very similar to the Microsoft source control (admit it or not - I am a fan of it... ;)), this gave me great a familiar navigation ability between the functionality possibilities and indeed there are some nice possibilities and abilities, like: users and groups roles management and managing your code files (the usual functionality such as rollback, commit, check in/out etc.)

The only disadvantage that I could think about here is a lack of files' state indicator. Dislike other source control tools that I worked with (like: Microsoft source safe control which indicates a file content changes or file state directly in the Visual Studio environment or the SubVersion control system, which indicates the file's state in in the actual file system folder), this tool doesn't indicates it and this is kind of annoying.

Generally I think this is a great tool to use it in order to manage your code version - again for small to  medium applications/projects.

You can read about it and download it free of charge (for up to 3 users of course) here. Have fun!

Posted by: Eran Nachum (c)
Post Date: 12/2/2007 7:45:40 PM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Monday, November 19, 2007

I introduces by Erez Eden (a friend and a colleague) to several tools that can track, watch and record your visitors behavior in order to give you some more details to improve your actions, publishing and more stuff in your website.

Although I am using the Google Analytics, which is great tool itself and supplies great statistics and analytics I decided to install one of them and to know my readers behavior and actions - maybe I could do something regarding it to improve the browsing experience in me weblog (sounds very sexy isn't it? ;)

RobotReplay
This one is very easy to install - all you need to do is to add simple script snippet into your master page header and let things go...
They are offering you:

  • Improve your site's usability
  • See where your readers get bored
  • Convert more visitors to buyers (if you sell something e.n.)

Sounds interesting...
You can enjoy this service at: www.robotreplay.com

ClickTale
I quote: "Record visitors' every action as they browse your website. Watch movies to understand visitor behavior, gain valuable insights and improve your website's usability."

This tool created by couple Israeli people that I think they did here great job (I didn't investigate it deeply but it surely looks good). They offering free version of this one that limits the pages' reviews to 100 per week (is that enough for you?) and supply you also great information about your website surfers.

You can check it out yourselves here: www.clicktale.com

Enjoy...

Posted by: Eran Nachum (c)
Post Date: 11/19/2007 10:20:37 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Monday, November 12, 2007

Hey all,

During the last couple weeks I started working on a new web 2.0 site (simultaneously to my daily work) with partnership with 2 old collegues, which are the head of the wonderful idea and the UI experts (in life and in this specific website) and an art director, (I am responsible of course on the technologic side of this site). Details regarding this site will be revealed in the future and alpha invetations will be sent to our best friends (leave me a comment if you want to be one of the alpha users)...

BTW - My collegues names are kept calssified by their request...

Now, to our post issue: Website Scalability.
Many stories had been published regarding great startup websites that suddenly experienced success on the Internet and then had to re-design their application to handle the growing traffic web requests.

In order to do it by the book, also in our web 2.0 site we want to prevent this scenario and to handle the anormous web accesses to our site (I wish) and after some searching the web, Erez send me a link regarding this issue; GigaSpaces published a tool that come to help us regarding this issue by saying that "GigaSpaces XAP allows developers to build applications that can quickly and easily scale-out limitlessly across low-cost servers with few or no code changes."

I going to check out this tool and to make a use with it (if it's satisfactory like they are saying of course).

You can check it our at the The GigaSpaces Start-Up Program here.

Posted by: Eran Nachum (c)
Post Date: 11/12/2007 11:04:44 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Monday, October 29, 2007

Have you also had some mysterious AJAX error/bugs/strange behavior? If does, this following link maybe will be helpfull for you... Dave Ward speards 2 common mistakes about it here.

BTW, Found it through ScottGu's blog.

Enjoy

Posted by: Eran Nachum (c)
Post Date: 10/29/2007 11:11:22 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #