Posts RSS Comments RSS 137 Posts and 271 Comments till now

Archive for the 'Programming' Category

An Even Better Quote of The Day for Your Website

To celebrate April’s Fools Day, I decided to create yet another Quote of the Day :-). The additional feature is a link to the Wikipedia article of the person quoted will be included. You also make it reload different quote every specified time. And it no longer forces you to link back to my Website. But I will be really grateful if you could link back to my blog :-)

Features
Link to biography/article of the author at Wikipedia.

Auto refresh. You can change how many minutes passed before the quotes is repaced with a new one.

Do you have feature-request?
Known Bugs
The CSS is broken when displayed on IE. has something to do with the DOM.

Have you found another bug?

<p style="color:#FF34FF; background-color:#EEEEEE">
  <script langugage="javascript" type="text/javascript"></p>

/*
  Quote of The Day user Guide:
     qotd_style, a string value for CSS of the QOTD.
               Default: no CSS
               example: qotd_style ="color:#FF34FF";

    reloadTime, an integer value to regulate how many minutes before the QOTD is refreshed.
               Default: not refreshed.
               example: reloadTime = 5; //QOTD will be refreshed every 5 minutes.

    isUsingWikipedia, a boolean value to indicate whether a link to Wikipedia.org's related article will be included.
               Default: true.
               example: isUsingWikipedia = false; //no link to wikipedia.org

    isItalic, a boolean value to indicate whether the quotation is diplayed in italics.
               Default: false
 */
  var reloadTime = 1;
  var isItalic = true;
  var qotd_style = "color:#FF34FF; background-color:#EEEEEE";

</script>

<script language="javascript" type="text/javascript" src="http://sodeve.net/qotd2/qotd.js" ></script><h5><a href="http://sodeve.net/quotes/">Sodeve's QOTD</a></h5> 
</p>

If you have any problem installing the script in your website, feel free to drop a comment.

How to Check Whether Javascript is Enabled From Server

Sometimes we use javascript to do the data verification check on the client side. Sometimes we change the behavior of an input such as textbox to only accept numbers. To check wheter your clients using Javascript in their environment, add/adapt the following snippets into your form:

 

 


….

….

 

On the server you will need to check is the ‘javascriptCheck’ variable’s value is ‘1′. If it is, it means Javascript is enabled.

How to slowly-scroll the snippets

This was an improvement from my previous post. We will slowly scroll the snippets using “Window.setTimeout()” functionality.

The modified code (modification is shown in bold) is as follows:

header.php

 
<script language=”javascript” type=”text/javascript”> // <![CDATA[var myObject; var myrules = { ‘.codeclicker’ : { onclick : function() { //alert(this.parentNode.tagName); var o = this.parentNode; if (o.style.overflow == ‘hidden’) { myObject = this.parentNode; o.style.overflow = ’scroll’; var i = 0; var increment = 10; var loopNum = 48; for (i=1; i<=loopNum; i++) { window.setTimeout(’myObject.style.height=”+increment*i+’px’;',increment*i); } window.setTimeout(’myObject.style.height=’100%’;',i*increment); } else { myObject = this.parentNode; o.style.height = ‘21px’; //window.setInterval(’Collapse()’,50); o.style.overflow = ‘hidden’; } } } }; Behavior.register(myrules); </script>

Smaller value of increment and bigger value of loopNum will increase the smoothness. If you have better/cooler idea please share with us :-)

Integrate Chatting to your existing Web Application

Today I will share you my experience of Integrating Chat module to an existing Web Application. The client requires us to add a chat module to the .NET Web Application we developed for them earlier. We tried the AJAX-based chat system, phpFreeChat. During the test with 100+ users online, the server’s load was always 100%, but the clients was unable to communicate due to very high delay time.

So we decided to use IRC as text chatting is the only required means of communication. If in the future they demands voice/video chatting, that will become another problem to research.

This solution is applicable when the following situation met:

  1. You have permission to install programs and modify filesystem
  2. You have permission to open port in the firewall of server’s network
  3. You already have the user database

Our Solution will consist of two steps:

  1. Setting up the IRC Server
  2. Setting the Applet IRC Client

1. Setting up the Internet Relay Chat (IRC) Server

On the server side, we will add IRC Server. The reason why we use IRC for the chat is that it is simple and it has all the functionalities that we expect from a text chatting.

There are a lot of solutions offered for IRC Server. On the Windows platform, most of them are commercial and only a few are free. As on the linux platform, all are open-source, as always.

So on this solution the IRC Server that we will use depends on your server operating system. If you are using Windows, we recommend to use:

  1. IRCd. This IRC server is originally from UNIX and compiled for Windows x86 environment. binary: Ircd binary Source: ircd source. These files was taken from here: source, binary. I just found out that the ircd.exe of this file is reported as backdoor Trojan by Symantec Antivirus. Do not use this!!
  2. Beware IRCd. Get it from original location or here.

I will only explain the IRC Server installation on Windows platform since I believe the Linux/Unix users are likely did not require any explanation. To install “beware IRCd”, follow these steps:

  1. download the binary file
  2. extract it to a folder (e.q. C:\BIRCD)
  3. edit the ircd.conf
  4. edit birc.ini (if BIRCD will be installed as Windows Service)
  5. to start BIRCD by double-click the bircd.exe. You will see that nothing is happen, but the program is actually already running. Check you Task Manager to confirm.
  6. to install bird as Windows Service, start command prompt, change directory to BIRCD installation folder (e.q. C:\BIRCD) and enter “bircd install” without quote.
  7. to start the service enter “net start bewareircd” on the command prompt. To stop the service type “net stop bewareircd”
  8. to uninstall the service enter “bircd uninstall”

The configuration files are quite self-explained. Please read through example.conf to understand the settings that can be used in ircd.conf. As the bircd.ini, there are comments above each value of the configuration.

2. Setting up the Internet Relay Chat (IRC) Client

Client that will be used here must be able to be integrated into the existing Web Application. Java Applet should suit this requirement best. Many IRC Client Applet available freely and commercially on the internet. Just Google for IRC Applet to get the list of available applet.

Of all Applet that is available on the Internet, we fall for PJIRC. PJIRC is an open source, free, simple and highly configurable. The following steps will help you to install the PJIRC:

  1. Download the binary of PJIRC from the original or here
  2. on the server, put all the files into a folder (e.q. /IRC)
  3. Modify the page that will host the Applet.

On our server, we created an ASPX (or HTML or JSP or CFM, depends on your Web Application) and called it irc.aspx. We add these lines

 

<% ‘Initiate any variables %>
<!– #include virtual=”/link_to_your_header_files_or_session_handlers” –>
<body >
<hr>
<applet code=IRCApplet.class archive=”irc.jar,pixx.jar”
width=1000 height=700>

<param name=”CABINETS” value=”irc.cab,securedirc.cab,pixx.cab”>
<param name=”pixx:nicklistwidth” value=”250″>

<param name=”nick” value=”<%=session(”_user_unique_id”)%>”>
<!– obtain the nick from Session –>

<param name=”alternatenick” value=”<%=session(”_user_unique_id”)%>???”>
<!– in case somebody login using your nick –>

<param name=”fullname” value=”<%=session(”_user_full_name”)%>”>
<!– obtain the full name from Session –>

<param name=”host” value=”_address_of_your_irc_server”>
<param name=”port” value=”6667″>
<param name=”gui” value=”pixx”>
<param name=”pixx:lngextension” value=”txt”>
<param name=”config:N” value=”true”>
<param name=”lngextension” value=”txt”>
<param name=”quitmessage” value=”PJIRC forever!”>

<param name=”command1″ value=”/join #Channel1″>
<!– Command that automatically executed once the client connected –>

<param name=”asl” value=”true”>
<param name=”useinfo” value=”true”>

<param name=”pixx:nickfield” value=”false”>
<!– hide the text box to change the nick –>

<param name=”pixx:showstatus” value=”false”>
<!– hide the status window –>

<param name=”style:bitmapsmileys” value=”true”>
<param name=”style:smiley1″ value=”:) img/sourire.gif”>
<param name=”style:smiley2″ value=”:-) img/sourire.gif”>
<param name=”style:smiley3″ value=”:-D img/content.gif”>
<param name=”style:smiley4″ value=”:d img/content.gif”>
<param name=”style:smiley5″ value=”:-O img/OH-2.gif”>
<param name=”style:smiley6″ value=”:o img/OH-1.gif”>
<param name=”style:smiley7″ value=”:-P img/langue.gif”>
<param name=”style:smiley8″ value=”:p img/langue.gif”>
<param name=”style:smiley9″ value=”;-) img/clin-oeuil.gif”>
<param name=”style:smiley10″ value=”;) img/clin-oeuil.gif”>
<param name=”style:smiley11″ value=”:-( img/triste.gif”>
<param name=”style:smiley12″ value=”:( img/triste.gif”>
<param name=”style:smiley13″ value=”:-| img/OH-3.gif”>
<param name=”style:smiley14″ value=”:| img/OH-3.gif”>
<param name=”style:smiley15″ value=”:’( img/pleure.gif”>
<param name=”style:smiley16″ value=”:$ img/rouge.gif”>
<param name=”style:smiley17″ value=”:-$ img/rouge.gif”>
<param name=”style:smiley18″ value=”(H) img/cool.gif”>
<param name=”style:smiley19″ value=”(h) img/cool.gif”>
<param name=”style:smiley20″ value=”:-@ img/enerve1.gif”>
<param name=”style:smiley21″ value=”:@ img/enerve2.gif”>
<param name=”style:smiley22″ value=”:-S img/roll-eyes.gif”>
<param name=”style:smiley23″ value=”:s img/roll-eyes.gif”>
<param name=”style:backgroundimage” value=”true”>
<param name=”style:backgroundimage1″ value=”all all 0 background.gif”>
<param name=”style:sourcefontrule1″ value=”all all Serif 12″>
<param name=”style:floatingasl” value=”true”>
<param name=”pixx:timestamp” value=”true”>
<param name=”pixx:highlight” value=”true”>
<param name=”pixx:highlightnick” value=”true”>
<param name=”pixx:styleselector” value=”true”>
<param name=”pixx:setfontonstyle” value=”true”>
<param name=”authorizedcommandlist” value=”none+join”>
</applet><hr></body></html>

 

Good luck with your implementation!

Pages (8): « First ... « 5 6 7 [8]

Close
E-mail It
Socialized through Gregarious 42