Top things to look at before developing a Web Site – Part 2

  1. Web Hosting: Once the domain name is selected the hosting account has to be selected. There are different hosting types available. Most commonly used hosting is Shared web hosting. Even though the Free web hosting is used most of the users prefer the Shared hosting and VPS hosting. Beginners can start with a free web hosting account and go for the Shared and the VPS hosting types based on the budgets.
  2. Development tools: After all the above elicitationsare done the development process can be started. The below tools can be used to make the development faster.
    1. Search domain name here and check if it is already registered. If it’s already registered the site might display set of alternative domain names available.
    2. Set up a local environment and test your website. Use XAMPP, IIS, Tomcat to setup Local environments with PHP, .Net, Java languages respectively.
    3. Use Komposer, Amaya to develop the PHP type websites. Obviously only the Visual Studio is used to develop .Net type websites. I prefer using the Eclipse and its plugins to develop the PHP and Java type sites. They provide a very good interface to design, develop and test, integrating with the Local servers.
    4. Use FTP clients like Filezilla, Net2Ftp to upload the tested local files to the web servers.
    5. Many Open source tools that are alternative to the proprietary software are available Here and Here.
  3. CMS tools: Instead of developing a whole website from scratch, there are a lot of Content Management Systems available in the market to make the development time easier and faster. Some commonly used CMS tools are WordPress, Joomla, Drupal etc. The WordPress is most widely used CMS for blogging. Similarly select a tool to that suits the site type.
  4. Testing for Browser support: Once the development of the site is completed the testing phase comes in place. Even though the testing is one of the Development Life Cycle step, the Browser support check is a most important thing to deliver your website to your clients as you wish them to be. This is one of the important advantages when using the CMS tools. Because the development community takes care of all these things so that you don’t need to put your time in. The IE Tester is used to check test the website display in the Internet Explorer versions from IE6 to IE10 While writing this article. Alternatively there are a lot of online tools to do the same. The Browsershot.com takes the screen shots of the website in all the versions of the browsers including different operating system.
  5. Get noticed: After all the above said steps, it is very important to get your site to viewers to whom it is intended to be. This set is commonly known as Search Engine Optimization (SEO). The SEO plays a very important role in making your website popular. I Intent to write a separate article on SEO. But I am placing a simple step to start the SEO.
    1. Submit your site to popular Search engines like Google, Bing.
    2. Once the site is placed the search engine will index the site from there on. As your site’s content becomes unique and popular they will be shown in the search results and visitors will start pouring in.

Top things to look at before developing a Web Site – Part 1

  1. Content Type (Static or Dynamic): The First and foremost thing a Web developer must look at is the “Content type”. Take a justified side between static and dynamic content when you go for the web site. If the site contains only a 5 to 10 pages with just few contents that may not have new change then the web site will be a Static that does not need much of server side support. But if you go for a site with Dynamic contents what may change in time and needs customization then you are onto a Dynamic site which needs immense Server support. Most of the sites now days are dynamic contents which need the servers support.
  2. Development Language: The Language in which you are going to develop the site is very important after selecting the content type. The widely used Language or the scripting for the web developing is PHP. Other famous technologies .Net, Java, Python, Perl etc. Every language has its own pros and cons. The developing languages have to be selected as per the need and knowledge. Usually scripting languages are easier to learnt and develop faster for beginners.
  3.  Web Servers: The web servers are the next thing we should care about. All the Web servers support the static content sites with just the HTML contents in it. When we look for the Server side scripting the Web Servers play a major role in providing the support for them. Web servers can be selected based on the Language by which you wanted to develop the websites. Even though the web servers can support any of the language with a set of customization, it’s better to go for a Web server which can natively support your development Language.  Because usually the customization never comes with less cost. Here are the widely used Web servers in market.
    1. Apache – For PHP natively and with Java support
    2. IIS – For .Net natively and PHP and Java support
    3. Tomcat – For Java natively and PHP support
  4. Domain name: The domain name is the one which is going to show up your stuffs to the World. They play a very important role and they are the entry point that visitors use to view your website on the web. The domain name can be of any length, but my personal opinion is to keep it as simple as possible and less than 8 characters. Choose a domain name that is very relevant to your site content, short, simple, crisp and easy to remember. If you could not specify your theme in just a work keep an abbreviation of the theme as domain name.
  5. Selecting a TLD: A top-level domain (TLD) is one of the domains at the highest level in the hierarchical Domain Name System of the Internet. In other words, the domain names ends with the extensions like .com, .edu, .org, .web, .net etc which are knows as TLDs. Select a TLD which is related to your Site theme, locations and other factors.
    1. Examples: If your site is related to education, select TLD as .edu, If yours is a big Organization select .org, if the service you provide is country specific then select a country level TLD like .us, .ca, .in, .ph, co.in, .co.ca, co.in etc.
    2. Make sure you select a reasonable TLD and also consider the cost factors. Some TLDs are very costlier.
    3. If you could not find a specific TLD for your site theme just select the .com, which is most widely used.

Setup your own Social Networking Websites

There a lot of social networking site available in web which includes the Google Plus, Facebook, Twitter etc. Its public and the open to all. But if you wish to Setup your own Social Networking site that is private and for a closed group you can use one of the following Open source scripts.

1. Elgg: Elgg empowers individuals, groups and institutions to create their own fully-featured social environment. Elgg, started in 2004, is an open source social engine which powers all kinds of social environments – from education and business to martial arts and rugby. If you are looking for a professional social intranet or want to run a site for your organisation, Elgg is a great choice. Click here to download.

2. Dolphin: Dolphin is the world’s most advanced community software. Open-source, independent, downloadable, scalable, customizable, full-featured, free software for building social networks, dating sites and web-communities. Loaded with video chat, recorder, video player, forums, groups, events, video messenger, mailbox, desktop app, video sharing, photo sharing, iPhone app and much more. Build your own business or advance your hobby with Dolphin!. Click here to download Dolphin.

3. Jcow: Jcow makes it easy & interesting to create Social Networks and online communities, Build a member community for your existing website, Build a social networking site like facebook/myspace/twitter. Click here to download JCow.

4. Etano: Etano can be used to start up a dating site, a social networking site, a classifieds site or any other type of site involving groups of people, companies, products. Click here to download.

5. Oxwall: Oxwall is used for a wide range of projects starting from family sites and custom social networks to collaboration tools and enterprise community solutions. Oxwall is unbelievably flexible and easy to use PHP/MySQL community software platform. Click here to download.

6. PeoplePods: PeoplePods is a framework that makes it easier to create community or “social” applications. It provides a flexible infrastructure within which members of a site can create, comment upon, and consume content of arbitrary types. Popular social functionality such as friend lists, personalized content views, bookmarking, and voting are automatically available within any PeoplePods application. PeoplePods can be used to build stand-alone sites, or can be layered onto existing sites such as those run using WordPress or other PHP applications. Click here to download.

7. Beatz: Beatz is a free opensource online social networking community script that allows you to start your own favourite artist band website just like Pure Volume. The script is coded in Php, Mysql and licensed under Creative Commons GPL license. In other words, its an online community script for sharing, discussing and learning about new artists and your favorites. Click here to download.

Open Source Micro blogging applications

Twitter is the most famous Microblogging site used by users all over the world. There are some famous Open source microblogging site available. Following are few among the Open source PHP scripts.

1. StatusNet: Previously Laconica, is the engine which runs the popular microblogging site Identi.ca. You can download the same from here.

2. PageCookery: PageCookery is the first public offering of single-user version of the open source microblogging program, PHP + MySQL based architecture is a set of safety, efficiency and stability, to “share”, “discovery” for the concept of Web 2.0 solutions to micro-blog. Click here to download.

3. JaikuEngine: Jaiku was the microblogging site of Google. However, they decided no longer to develop the code but make it open source under the name JaikuEngine.

4. Sharetronix: Sharetronix is the world’s favorite opensource microblogging platform. Sharetronix enables people to exchange ideas and multimedia in real-time. Click here to download.

5. Storytlr: Storytlr offers a single touch point for your online life in your own style. Easily post anything you find interesting, import your web 2.0 stuff and share your life online. Storytlr is an open source lifestreaming and micro blogging platform. You can use it for a single user or it can act as a host for many people all from the same installation. Click here to download.

6. Jisko: Jisko is a light-weight open-source microblogging system that allows you to stay in contact with the people you want. Click here to Download.

7. WordPress: The WordPress is a popular blogging tool. But the Power of wordpress can be derived to work as a Microblogging application with the help of a simple theme. P2 WordPress Theme converts the Powerful WordPress into a Microblogging tool. Click here to download.

8. Yonkly: Yonkly Open Source twitter-clone and microblogging platform developed on the asp.net mvc framework. It is the famous Open Source app available in the Dot Net side other than the PHP scripts. Click here to Download.

WordPress Blog hacked, All admin username changed to “CIHAN” and Emails deleted

I felt embarrassed when I found my WordPress blog was hacked. Here is what happened. It was on August 26th, 2012 at around 10 PM IST, I tried to login to my wordpress blog and found that my WordPress Admin account was unable to login. After some investigations i found that the usernames, email address of the WordPress administrator accounts have been changed.

Usually I have two users as Administrators. I tried with both, but failed to login. I ran through some basic steps/tests with the assumption that I would have lost the password, which I ended up as password lose was not the reason.

Sequence of the steps I followed:

1. First I tried to reset my password with my email id: result: WordPress gave a message that my Email id is not valid. And for other admin email I did not receive any password reset mail.
2. Since my email Id was stated as invalid. I suspected a Hack and logged into Hosting cPanel.
3. Opened phpMyAdmin and shocked to see that my username and email were changed. I found both the usernames were changed to “cihan”, the email address was deleted for one user. but the other email remained same.
4. I updated the DB and reset my password using WordPress. Still I am unable to receive mail to my Yahoo account because of some problem with my hosting account.

My Observations:
1. I have logged into my account and updated a comment on 8th August 2012 for the last time.
2. I have a plugin which send a email on every 404 error page to the Administrator email address (the email which was deleted in the Hack). The last email which was send to the Admin mail id is on 10th August 2012 – The day after 10th should be the ideal hack time.
3. WordPress does not allow any user to edit/delete username from its control panel, so this is either updated directly in the Database or it should be done through a Script from the web page – But I do not find any scripts or files updated in these days.
4. I changed my hosting accounts password and other details just few days back to the Hack suspect date. I updated the password from my laptop, which is very personal. There was no body using my Lap and my password is brand new which nobody could easily guess, I did not login in any other public machines. so I don’t think this to be hack based on Password Theft of cPanel.
5. I do not find any other changes in the settings or passwords or data loss in my website/Account/cPanel.
6. I do not find any moto of data stealing.

Atlast I backup all my data from the webserver to my local and put the site into maintenance, Sent a detailed mail to my service provider. Few days back I received a mail stating that they do not find anything suspicious in logs but they insisted to changed My custom wordpress Theme as they suspected it. Later i updated removed all my custome stuffs from the site and updated the site completely. I lost few contents from my site at the time of migration and I’m working on it get them all back.

If some one out there faced the same kind attacj on your WordPress site please contact me.

Filezilla FTP client – 421 Sorry, cleartext sessions are not accepted on this server

Sometimes we get a error Message when using the FTP clients: 421 Sorry, cleartext sessions are not accepted on this server.

Problem: This error mean that the FTP provider has secured the access with Transport Layer Security (TLS) or its predecessor, Secure Sockets Layer (SSL).

Solution:

Change the protocol of the host to “ftpes://”

The configuration will be

Host: ftpes://hostname.com
port: 21

Dynamically adding HTML components using JavaScript

At times there will be requirements to dynamically add a scetion of HTML multiple times in UI. This can be achived by using JavaScript. One of the implementation for such a scenario is addressed in the following example.
Requirement:
In thie example, there was a need to add a row of three Text boxes, select box to be added dynamically to a page on a button click. Validation has to be done to the dynamically added rows.

Design & Usage:

The design of the sample goes like this.

There will be a container to hold the control items, like button to add the component, field to hold the counter. Following the control box an empty container to hold the dynamically added components. Another container just below this, to hold the contents that has to be created dynamically. The contents has to be formulated carefully with the layouts and identifications. To achive the easier identificaiton of the elements inside the components an auto generated ‘ID’ is added to all the elements on the go. To achive this a delimiter is added to all the elements. Here the delimiter used is “ADDIDHERE”. This will be replaced by the counter variable on the go.
Source:
View Sample page.
Download Sample.
Screenshot:

DynaComp

Simple methods to Create, Read and Delete Cookies using JavaScript

Usage:

1. createCookie(name,value,days) – Void function.

name – Name for the cookie to be created
value – Value of the cookie
days(INT – Non Madatory) – Number of days to keep the cookie in browser. If not specified the cookie will expire as soon as soon the browser is closed.

2. readCookie(name) – Returns the value of the cookie.

name – Name given at the time of creation

3. eraseCookie(name) – Void function.

Dependency – createCookie method should be in place.

function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0)
return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}

Printing Complex Layouts in Adobe Flex – FlexPrintJob

I have come across a basic need for printing a complex layout in the Adobe Flex. After a long search i thought the following will be helpful to all if shared.

Requirements:

1. My layout has the following. Header (Fixed, to be shown in all page.), First Page Header (Displayed only in single page), DataGrid with data rolling out to more than one page, Fixed footer following the DataGrid and a Footer that come only in last page of the Printed output.
2. I am given only the outer most component object and list of all ids of the following components.
3. No server side support is available.

Problems:

1. My DataGrid is not accessible directly.
2. Complex layout and needed Paginationrn3. Fixed, floating header and footers.

Solution:

With reference to the Adobe Live docs, the solutions is almost near except to the complex structure.
rnI have created a Template that holds all the data to be iterated in the report. I contains the sections like Fixed Header, Floating Header, DataGrid, Fixed Footer, Floating Footer as follows.

1. PrintTemplate.mxml

<s:VGroup id="allPageHeader" width="100%" />
< s:VGroup id="firstPageHeader" width="100%" />
< mx:PrintDataGrid id="printDataGrid" width="100%" />
< s:VGroup id="allPageFooter" width="100%" />
< s:VGroup id="lastPagefooter" width="100%" />

2. PrintSample.mxml

protected function doPrint(outerGroup:DisplayObjectContainer, fixedHeaderIDs:ArrayCollection, floatHeaderIDs:ArrayCollection, dataGridId:String, floatFooterIDs:ArrayCollection , fixedFooterIDs:ArrayCollection):void{...}

Here we have to pass the list of IDs of the sections as we need to the doPrint method as follows.

doPrint(outerGroup, fixedHeaderIDs, floatHeaderIDs, dataGridId, fixedFooterIDs, floatFooterIDs);Completing the rendering the print object will be sent to printer and a popup will be shown.

Source Code: Printing in Adobe Flex

Update:

In the above example, if the Printout is taken with the printAsBitmap set to false, then there will be thick line under the header of the DataGrid ie, the PrintDataGrid. To solve this problem you have to use a Header Renderer and set a background color or Image for the header as follows.

<?xml version="1.0" encoding="utf-8"?>
< s:SparkSkin xmlns:fx="http:/s.adobe.com/mxml/2009" xmlns:s="library:/s.adobe.com/flex/spark" xmlns:mx="library:/s.adobe.com/flex/mx" > < s:Rect left="0" right="0" top="0"> < s:fill> < s:BitmapFill source="@Embed(''header.png'')"/> 
< /s:fill> < s:stroke> < s:SolidColorStroke color="grey" /> 
< /s:stroke> < /s:Rect>< /s:SparkSkin>

Save the file as SampleSkin and add this skin to the headerBackroundSkin property of PrintDataGrid in the PrintTemplate as follows.

<mx:PrintDataGrid id="printDataGrid" width="100%" headerBackgroundSkin="SampleSkin" />

This will resolve the issue and set a neat header to the DataGrid in the print.

Open Source Softwares – Top alternatives for proprietary softwares – Part 2

 

Part 1  –  Part 2  

 

 
  Famous Proprietary Programs   Open Source Alternatives   Download URL

Mail Servers & Mail Clients
16. Microsoft Exchange Server, IBM Lotus Domino   Zimbra, SoGo, Open-Exchange, OpenGroupware   Zimbra, SoGo, Open-Exchange, OpenGroupware
17. Microsoft Outlook   Evolution, SeaMonkey, Thunderbird, Eudora   Evolution, SeaMonkey, Thunderbird, Eduora

Multimedia, Video & Audio
18. Apple iTunes, Windows Media Player, Winamp   Amaroke, aTunes, SongBird   Amaroke, aTunes, SongBird
19. CyberLink PowerDVD and InterVideo WinDVD   VLC media player, Media Player Classic, MPlayer   VLC media player, Media Player Classic, MPlayer
20. Adobe Soundbooth, Sony Sound Forge   Audacity, Ardour, DarkWave Studio, EcaSound   Audacity, Ardour, DarkWave Studio, EcaSound

Browsers
21. Internet Explorer, Safari, Opera   Amaya, Mozilla Firefox, Chromium, K-Meleon, Konqueror, Mozilla, Mozilla Firefox, SeaMonkey   Mozilla, Mozilla Firefox, SeaMonkey, K-Melelon, Amaya, Chromium, Konqueror, Google Chrome

Networking Tools
22. Check Point VPN-1, Citrix Presentation Server   TightVNC, UltraVNC, OpenVPN   TightVNC, UltraVNC, OpenVPN
23. CommView   Wireshark, Snort   Wireshark, Snort
24. CuteFTP, FTP Commander   FileZilla, net2ftp, WinSCP   FileZilla, net2ftp, WinSCP

System Tools
25. Nero Multimedia Suit   DVD Flick   DVD Flick
26. Nero Burning ROM   K3B, InfraRecorder   K3B, InfraRecorder
27. Symantec Veritas NetBackup, Nero Back it up and burn   Amanda, Bacula, StorageIM   Amanda, Bacula, StorageIM
28. PKZip, WinRAR, WinZip   7-Zip, The Unachiver, WinUHA, PeaZip   7-Zip, The Unachiver, WinUHA, PeaZip
29. Syamntec Partion Magic, Symantec Ghost   Partimage, Clonezilla   Partimage, Clonezilla
30. VMware Server ESX   VirtualBOx, Cooperative Linux, OpenVZ   VirtualBOx, Cooperative Linux, OpenVZ
Part 1  –  Part 2