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   #
 Sunday, October 28, 2007

After a year and a half of posting (most of the time) not included weak periods of time, Google ranked me as 4 in their PageRank.

I just want to mention it, KUDOS ;-)

Life | Other
Posted by: Eran Nachum (c)
Post Date: 10/28/2007 10:42:36 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Thursday, October 25, 2007

I had a little debate (friendly one of course) with one of my work colleagues, caller Lior Alon about the usage and the necesasry of this technique. At the start of our conversation we disagreed on several things like: "It must stay for the good work flow", "This is by Microsoft design - do not touch" and more and more...
But at least we agredd that in some cases this ViewState is unnecessary and it has some disadvengtages that come over the adventages in some cases.

From the initial point of view, I would change the ViewState behavior. By defaut the ViewState of each ASP.NET web page is always on, so when you develop a new page you need to consider that the ViewState is on - so expect to amount of encrypted lltterals on the top of your page (according  the web server controls that you rendered on your page).

This issue has some disadvanteges as I said earlier:

  1. Big size of data that comes from the sevrer to the client (response time concerns).
  2. SEO (Search Engines Optimization) - Most of the seerch engines doesn't indexes the whole page (and I think non of then but I am not sure of it). The exsitance of the ViewState in the top of the prevent these search engines from index the relevant data from the specific page and here the ViewState takes its place. Here comes the question why the ViewState must be on the top of the page instread of its bottom?
  3. By default the ViewState in on; In some cases, static pages contains web server controls that doesn't need to be updated from the server by the user demand. In this case each control has its own ViewState and it being populated to the bunch of the ViewState's encrypted data. (In that case you can develop this page using HTML controls that doesn't drag to the page 'added value'...

So, to the conclution...

ViewState is not bad thing, but like everything in life has some good and bad 'habbits'. After time of thinking, I think that the default behavoir of the ViewState should be off and the developer that creates her ASP.NET web page should be smart enough to use it wisely.

What do you think?

Posted by: Eran Nachum (c)
Post Date: 10/25/2007 9:41:27 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #