Sandipan Gangopadhyay, Owner and Author of the Site (Code and Content), Version 1.0 of September 13, 2014
This website is rendered in pure static HTML.
The logic is that since the content doesn't change with every click, the HTML is generated only if and when the content changes.
At run time, there is no dynamic content processing involved.
The static HTML is generated (menus, bread crumbs, RSS, Site Map, MultiMedia, Social Networking Share, and all) by Python code written by Sandipan.
As of September 2014, the server has been migrated to the Lenovo Linux Server and the Development environment to the Sandipan-Master Maingear PC.
The banners are from photographs taken by Sandipan and family members.
They are processed, also by Python code, written by Sandipan.
On popular request, the banners also change randomly when clicked ... For those that don't care waiting the few seconds for a new one.
If you find a banner interesting and want to look at more, please visit our Multi Media | Banners page to look at the full list and find the albums they come from.
The Utility Tool Bar just under the banner provides the following features on each page:
Google Search: You can access it with the hot-key - Alt-S. Uses Google to search this website. The content engine populates meta tags on each page aligned with the page hierarchy and any other cross reference topics pointed out by the author.
RSS: Provides an RSS feed (auto generated) that highlights all pages that have been recently published. Subscribing to this feed will let you know when pages on this site change - they change frequently, by the way.
FaceBook and Twitter: You can post the page on through your account on FaceBook or Twitter. On FaceBook, the page automatically transmits its image and sub-title as well.
Print: Just what it says ... it opens up the Print dialog.
EMail: Uses EmalTheWeb service to email out these pages with embedded graphics and all using the visitor's GMail account.
SiteMap: Link to an auto-generated sitemap page.
vCard: Sandipan's vCard.
Font Size: To reduce or increase font size.
Auto Scroller: Start / Stop auto-scrolling. You can stop by clicking anywhere on the page as well. The (+/-) buttons allow the scrolling speed to be adjusted.
The Top Navigation - Horiz Menu:
Parent Menus: All levels of parents of the active page are shown. Direct parents are highlighted with a different background shade.
Sibling Menus: Pages at the same level as the active page are shown with the active page highlighted not only with a different background shade, but two additional differences - the underbar is red, and the name of the page is not an active link.
Child Menus: The next level of children of the active page are shown. Instead of underbars, the highlighter bars are over the page link - that reminds us that these are child pages and therefore represent sub-topics of the active page.
Title and Bread crumbs:
Title: Each page lists the Title, Sub-Title, Author, Version and Date.
Bread crumbs: Bread crumbs represent the hierarchy from the home page to the active page.
Pages: A Pages section lists out all child pages with descriptions.
Internal Links: All files (including all images on the page) are listed as hyperlinks - they will open up in a new Window.
External Links: All external references are also listed as hyperlinks.
Bottom Bar: Copyright information, standards compliance verification links, Google Translator, and the Blue Tag button (which lists out all meta tags associated with the page - some auto generated, and some pointed out by the author.)
Contact Us: Provides forms for emailing or paging us. Additionally, there are directions and addresses to our residences in password protected pages.
Banners: List of all the banners used on this site. This is auto generated.
Go to the folder corresponding to the parent page under which the new page needs to be written.
Create a folder with the following naming convention ... [nn-XxxYyyyZzz] where "nn" is a two digit integer representing the sequence of the new page under the parent page, and the title of the page is "Xxx Yyy Zzz".
Inside the folder, the following files will determine how the page will be generated:
MetaAuthor.txt should have the name of the author of the page in the first line.
MetaContent.txt should have the content of the page.
- New lines are converted into new lines in HTML using br tags.
- Anything in between < t2 >, < t3 >, < t4 > tags get converted into section headers < h2 >, < h3 >, ... and so on with stylized backgrounds, etc. Each header also has a link at the end to go back to the top of the page.
- These tags, when found in the beginning of a line, are used to break down the page into sections - links to these sections are listed at the bottom of the page automatically
- Putting a URI inside < insert > tags will result in the page referred to by the URI embedded as an inline frame.
- Putting a YouTube reference, say XXXXX twice inside tags like ... < ytembed1 >XXXXXX< /ytembed1 >< ytembed2 >XXXXXX< /ytembed2 > will result in the video being embedded in the page - Pls note that YouTube's Video player is NOT HTML compliant and will result in the page failing HTML validation. Sorry about that.
- Lines that end with the character ">" representing a tag, do NOT get a BR so that a bunch of HTML does not result in any empty space on the page through a bunch of BRs.
- MetaSpecialContext.txt is treated the same, except that BRs are not appended to the end of lines.
- MetaAutoContent.txt is embedded as auto generated HTML into the page. Sandipan's Album and Story publisher programs generate this page! If a page has MetaAutoContent.txt, the program understands that sub-folders are album stuff and recursion stops - child folders are not processed.
- A page can have MetaContent and MetaSpecialContent both OR MetaContent and MetaAutoContent both!
MetaFontStyle.txt should have preferred fonts listed in lines in the text file, one after the other, in the order of preference.
MetaBackground.txt should have either color in the [#XXYYZZ] format or link to a Background image file. Only the first line is used.
MetaMediaFileTypes.txt should have the file extensions of images that the page will embed ... Don't need to touch this one, really.
MetaReferenceLocalLinks.txt should have a list of files on this site with path, a pipe character "|", and the caption. If the file is an image, the actual image will be embedded into the page. All files are listed in the links section. To be used for attachments. The first image is also embedded into the Meta tags of the page for FaceBook integration automatically.
MetaReferenceWebLinks.txt should have a list of URIs, each one with the URI, pipe character, and the caption. Will be listed in the links section. To be used for Web references to the page.
MetaSerial.txt - No point touching - it is machine maintained and will be overwritten.
MetaSubTitle.txt should contain the description of the page.
MetaTags.txt should have the meta tags associated with the page. This will be embedded into the page's meta headers. Please note that the breadcrumbs (the hierarchical parentage of the page) are automatically added to the meta tags as they are considered part of the page's context. Google and other spiders read these tags for search indexing.
MetaTitle.txt is ignored right now through the program configuration as the folder name is used to generate the page name as described above. If the switch is set to read this file instead, then this file should contain the name of the page in the first line.
MetaVersion.txt should have the version number of the page to be specified manually for now, a pipe character, and then the date of the page (if not found, it knows to pick up the update date of the Content page) in the following format - [Version n.nn|YYYYMMDD] where n.nn is the version number of the page.
If folders are required to support a page, that is not intended to be a child page, they can be put under a folder called "PrivateFolder" ... PrivateFolders are not processed - the recursion ignores them. Further since Apache has Directory Indexing and FollowSymLinks shut off, there is no way for users or spiders to get to contents unless the author provides links to them either in the Content or Reference files.
It is recommended that large folders be stored outside of the Site tree (such as the albums, etc.) so that the Site Tree can be copied over into the server easily and quickly. For example, in this site, the Digital Photographs, the Photograph Scans, and the Old Site are not stored with the rest of the site in the Site folder / directory tree.
As all this software needs is Python, the site can be maintained and generated on any OS. This software is maintained in Windows 7 and Windows Vista and hosted on Fedora 14 Linux.
All libraries utilized are Open Source. Sandipan's code is NOT Open Source, but is openly available if someone wants to see it. Links below.
The banners are a separate set of instructions - will be published soon.
Started with a lot of white. Added more white. Clear and lucid fonts wherever possible.
No buttons ... all links are generated automatically and are not images.
Hierarchy of the site is based on the page folder structure ... we just pen the content and the code takes care of the rest!
For the high level requirements, check out the Features file below.
Just a touch of graphics have been used ... and not applied where things actually have to work.
Tested on IE, Droid X, iPhone, Google Chrome and BlackBerry Tour 9630.
Color schemes coordinated through Color Schemer.
The Sandhir Image and Video Album publisher is the most hardworking software on this site!!! Over the years, it has published over 100,000 photographs and videos.
You can find a copy at Sandhir Image Publisher.
Written over 11 years, the software, written in Python:
- Creates a catalog page listing all the albums
- Converts each image into thumbnails, small (640x480) versions
- Converts .MOV, .3GP movies into AVI and then extracts images from them at equal intervals in thumbnail size, and stitches them together as animated GIFs
- Posts all these images in a thumbnail page
- Uploads videos to Youtube and posts links to them
- Provides link and metadata to post each album page to Facebook
- Extracts ExIF information and makes it available as a pop up
- Extracts GPS location data and converts it into address and a link to a Google Map of the location
- Provides capability to email each image, but this doesn't work on account of a CGI-SCRIPT issue with a Linux safety modules which we have no intent to bypass
- Reads any description of each album and/or image optionally added manually, and includes them in the catalog and/or album thumbnail page
Well, the album publisher's slide show code is way old. And it doesn't work with most new browsers. We get a ton of complaints about it.
Features we are targeting include:
- Back (says it is loading, but signifies how many back as people keep clicking)
- Forward (same as above)
- Jump to (count)
- Thumbnail stream ... they can click on anyone
- Speed: seconds before reload / type in delay
- Link to go back to thumbs page
- Album level:
- Date and Caption (Additional description, if any)
- Post to Facebook
- Post to Twitter
- Post to Google+
- Photo Level:
- Date and Caption (if any)
- Location (if any) with small size google map clickable to enlarge
- EXIF info as a drop down section
- Email Small | Native
- Post to Facebook
- Post to Twitter
- Post to Google+
- Open in Native
Is all Open Source based, fairly well documented and available here: ; password available on request.
Usage Reports are available here: .
The old Sandipan.com site is archived here: .
The albums have been removed.
Not all links will work.
References and Other Links
Sections on This Page