Technical notes (site implementation) blog
Tech notes
(Tue, 27 Sep 2011 12:00:00 GMT)

Contents (Sat, 18 Apr 2009 12:00:01 GMT)
Topics in this blog include:
SEO notes ... Local news ... Hosting service and statistics ... Tools and languages ... Anti-spam ... Flash updates
Blogs ... Reader comments
Christian symbols ... Bibles and translations
Webcam ... 897th (WWII)
Bugs - MSIE6 and replacing innerHtml with images
Bugs - National Weather Service web service
Bugs - Firefox and synchronous AJAX
Bugs - ASP.NET checkbox controls

SEO notes (Sat, 18 Jun 2011 12:00:00 GMT)
My home page bounces all over the place with respect to search engine rankings, especially from Google. First, I found a good post about optimization.
My own tips, in no particular order, are: (0) Content, content, content. (1) Remove HTML errors, include a good title and meta tags, target some keywords and use them appropriately, but all serious sites do this. (2) Optimize for Google. If Google ranks your site well, so will the other engines, and most users use Google. (3) Get links to your site listed on other reputable sites, to generate hits and improve automated reputation calculations. Don’t bother with disreputable link farms. (4) Drop your URL everywhere, such as in web forums. You’ll get spam; deal with it. (5) Individuals who meet Wikipedia notability standards will get an unbiased biography. Don’t create a bio for yourself because it hurt your reputation. Carefully edit Wikipedia articles. (6) The DMOZ.org policies baffle me. Many categories are populated but never updated and they’re picky about editors. Still, DMOZ is well respected. (7) I am an editor on syndic8.com. I reject most of the waiting feeds that I review, but there is some good stuff there. (8) Make sure your target page loads quickly (within a few seconds). (9) Reduce your link-to-content ratio and ad-to-content ratio. Links and ads are fine, but the search robots can pick out link farms and ad farms. (10) Renew your domain registration for multiple years so that you don’t look like a temporary ad farm.
Add a comment...

Local news on the web (Sat, 18 Apr 2009 12:00:00 GMT)
Print editions of newspapers across the country are shutting down these days. I still subscribe to the print editions of two newspapers in the Rochester, NY area, but I’m looking for news sources to carry me when the inevitable finally happens. The print editions support an investigative activity that bloggers and web editions just can’t match (oh well...). In particular, I’m looking for a deep sources of local news. Lots of web sites regurgitate the top stories from the print editions, but that won’t help when there are no print editions. I'm looking for a sites that can tell me about businesses that are opening, school sports results, youth group and charity activities, etc., as well as the bigger stories and weather. Commment here on how you find your local news on the web.
Add a comment...
Comment from ra.Miller6 on Wed, 10 Mar 2010 06:05:57 GMT:
Cool site.

Hosting service and statistics (Sat, 01 Dec 2007 12:00:00 GMT)
This site is hosted on a shared server by HosTek of Oklahoma, USA. Great service at a reasonable price. See their special rates for non-profits. Site statistics are provided by Hostek’s statistics package.
Add a comment...

Tools and languages 2 (Sat, 05 Jan 2013 12:00:00 GMT)
I bought a new Samsung notebook PC. Overall, it works well. It came with Windows 8 64-bit, not Windows 8 Pro, but it was one of those Christmas day deals and I have the Windows media anyway. I found out that computers arrive these days without OS media, and with a restoration partition so that Windows can be re-installed if necessary. However, with separate installation media, I had the option of reformatting the whole drive and wiping out the space taken by the restoration data, which includes a bunch of manufacturer applications which I'll probably never use. Note that before I did this, I downloaded the manufacturer drivers from their support site.
The installation of Windows 8 is slightly different than previous versions, so my process was to boot from the DVD, which required a BIOS change to allow this, so check your manufacturer documentation. I did indeed choose the advanced options to delete and recreate a single installtion partition. No license key was requested because on a PC that originally has Windows pre-installed, a key is built into the BIOS. After installing the manufacturer drivers, Control Panel can be used to Add Features to Windows, where the Pro key is requested. Including a few environment tweaks, this all took a few hours, but I encountered no errors and the hardware works as expected.
Add a comment...

Tools and languages (Wed, 09 Apr 2008 12:00:00 GMT)
The primary development tool for this web site is Microsoft Visual Studio 2008 (.NET 3.5). Pages are written in HTML, JavaScript, C#, XML, and a smattering of other scripting languages as needed. No databases are currently in use (just XML files). The limited AJAX features on the webcam page were hand-coded.
I had a heck of a time with the Visual Studio 2003 debugger showing, "Error while trying to run project: Unable to start debugging on the web server. The project is not configured to be debugged." Each project in the solution must have a web.config file with the debug setting set to true, and depending on how the debugger is started, the app should be rebuilt using the Debug configuration. Remember also that Visual Studio is interacting with IIS, so IIS must be configured for the same version of .NET Framework supported by the version of Visual Studio. Each version of Visual Studio supports one and only one version of .NET Framework, and that cannot be changed. The original Visual Studio .NET supports v1.0.3705. VS .NET 2003 supports v1.1.4322. VS .NET 2005 supports v2.0.50727. VS .NET 2008 suppports v3.0+. In a DOS prompt, within the proper folder under window\microsoft.net\framework, run "aspnet_regiis -i". Then start the IIS management console. For each project virtual directory, there should be an active application under the Directory tab. In some cases, the name can be blank, but next to the application name, if you see a Create button, click it. Then for each project virtual directiory, go to the ASP.NET tab and pull down the proper ASP.NET version. The error messages you see when starting the debugger are very generic and useless. When deploying your app, remember to set the web.config files so that debug is false, and deploy the Release configuration, for the best performance.
The XmlTypeAttribute class is used to specify the namespace for a custom class when instances are serialized by the XmlSerializer. For example, before your class, enter:
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://kbarticles.com/")]
For example, you create a custom class that is returned by a web service. When using Visual Studio to add a web reference to a client application, a web proxy class (Reference.cs) is automatically created. Within this class, you can see the namespace. If you do not specify the namespace as shown above, Visual Studio will make one up, depending on the parent of the reference to the custom class. However, if your web service refers to the custom class from multiple places, the proxy class can get multiple references to the custom class in different namespaces. When this happens, VS renames conflicts, so that the first reference will be named, say, Custom, and the second reference will be named Custom1. Of course, this causes a compilation error, usually something like "cannot implicitly convert type", because your client does not know about Custom1. The solution is to be explicit about the namespace so that only one proxy reference is generated. You could also edit the Reference.cs class to fix the problem, but every time you change the web service and update the web reference, you would lose your fix.
Add a comment...
Comment from info on Tue, 02 Apr 2013 10:48:33 GMT:
ante re na fas kana profiterol!pou 8a mou peis tora ti einai to piosdfaoro!paliokouraditsa!na se do sto 5X5 psofhmi!!!XAXXAXA!!!!Ps. eixa grapsei ena katevato,douleia mishs oras kai to koloblogspot den to emfanise!8a ta poume apo konta.Akoma den mporo na pistepso oti einai alh8eia ola ayta!!!

Blogs (Mon, 01 Oct 2007 12:00:00 GMT)
After experimenting for a couple years with a true forum (open-source from ASPBB), I found that it required ongoing attention and maintenance even though the traffic was very low. For a mid-level site like gocek.org, users don’t want to be bothered with yet another registration. This site provides a mish-mosh of content, so the forum consisted of several unrelated categories. The blog and its registration database have been deleted. The current presentation uses many blog-like pages that allow comments from unregistered users. I regularly look at a static web page and wonder if it should be converted to a blog, as I did with this techie blog. The blogs are all in standard RSS 2.0 format, so feel free to subscribe with your favorite feed reader. However, the site pages that display the blogs provide for reader comments and other features. This is accomplished with custom feed reading software.
Add a comment...

Reader comments (Sat, 01 Sep 2007 12:00:00 GMT)
The blog comment page has been a challeging project involving user interaction, persistent storage, anti-hacking techniques and more. The goal was to replace the forum with something that readers would actually use. In fact, that seems to be happening, especially in the ticket-scam blog. I found a cool site called Gravatar that provides a centralized database for avatars associated with email addresses. But I didn’t want users impersonating others, so I have been looking into support for OpenID, Any site can provide an OpenID server, and once registered with that server, a user has a single account for all OpenID-enabled sites. The implementation of an OpenID "consumer" that accepts credentials from OpenID servers has proven to be nothing short of onerous. The consumer must safely handle user keyboard input, transfer to other sites and wait for the user’s return, parse HTTP headers and HTML markup from remote sites for links to other sites, load XML documents and determine how OpenID is supported by any OpenID server, and parse voluminous data from the servers. After all that, no central authority guarantees the trustworthiness of any OpenID server, so a rogue OpenID server could validate any user with any identity with no warning to the consumer. And, the active OpenID community, while passionate, cannot agree that this lack of trustworthiness is an issue, even thought the whole point of asking a user to "log in" implies a lack of trust. Yeesh.
Add a comment...

Christian symbols (Wed, 01 Aug 2007 12:00:00 GMT)
The symbol database consists of typical ASP.NET resource files. There was a time when I was pretty proud of this page and underlying implementation, but it’s actually pretty typical. The symbols page gets, by far, the most traffic of any gocek.org page. On that note, I would be happy to hear about your experiences in using the site. Search terms are compared against keywords in the database, not against the full symbol description.
Add a comment...

Bibles and translations (Sun, 01 Jul 2007 12:00:00 GMT)
Rudimentary translations from the original English are provided for French and Spanish, and full translations are provided for the random Bible verses. To see French or Spanish, change your browser’s language preferences. Only some of the labels on the symbols page are translated. In most cases, translations come from babelfish.altavista.com or basic web searches. Numbers and dates are not localized. If you’d like to volunteer to provide more translations, let me know.
The random Bible verses are retrieved in the preferred language by custom software using text from BibleDatabase.org. That site offers many translations. For now, the English version is King James, but I will use a more modern version if one becomes available for free. Each translations stored on my site uses about 5 megabytes.
Add a comment...

Webcam (Fri, 01 Jun 2007 12:00:00 GMT)
The webcam project has been great fun and is described in more detail on the webcam page. Contrast this with my ongoing efforts to support OpenID, which has been a ton of work and not nearly as flashy as my front yard. The successful display of a near-real-time image on the home and webcam pages requires the coordination of a number of hardware and software components, including some custom hardware and software. It’s not rocket science, but it’s not a novice project given my choice of equipment (there are camera packages that are made to connect easily to an internet connection). Bad images can occur for a number of reasons, including the fact that the microwave oven interferes with the wireless camera signal. Including weather data with an outdoor camera image was not my idea, but it’s a nice touch. Current and forecast data are acquired from the US Government’s National Weather Service.
Add a comment...
Comment from quepetours on Fri, 15 Mar 2013 02:33:17 GMT:
هههه هم بيقولو انهم قاعدين بيطورو فيييه!هم لو مو متاكدين انو راح ينجح ما اعلنو عنه .وبعدين هاذا من ال artificial iecellignnteSO, DONT TAKE IT AS A JOKE! 0 0

897th (WWII) (Tue, 01 May 2007 12:00:00 GMT)
If you have any information about the 897th or 3562nd, please contact me. The diary entry on the 897th main page is coded into an XML file and parsed according to the current date. There is a four year cycle beginning in late 1942, with the 1944-45 period repeated (because there simply aren’t four full years of diary entries). The cycle’s beginning is timed to match a current leap year with 1944, so that February 29 doesn’t have to be fudged. Not all days have unique diary entries. The cycle started fresh in 2006. The diary entries are available as a web service, because I wanted to write a web service. This is essentially a code library that is invoked over the internet. If you’d like to use the service on your own pages (the only thing the service does is return an 897th log entry), I’ll be happy to provide more information.
Add a comment...

Anti-spam (Sun, 01 Apr 2007 12:00:00 GMT)
Links to big files are obfuscated to hide from search indexes because I’m worried about a rush on my bandwidth if everyone in the world can suddenly find the Tiki Room song. The CAPTCHA implementation on the blog comment page, i.e., the simple arithmetic problem, is intended to be easier to use that the usual wavy-letter implementations, although my algorithm is easier to break.
Add a comment...

Flash updates (Mon, 17 Nov 2008 12:00:00 GMT)
I wondered how Flash knew to install updates after a login. After all, it is a browser plugin. The plugin checks for updates if allowed, and that is a user settable option. When visiting a Flash-enabled site, and when the update check finds that Flash is out of date, the plugin installs a RunOnce registry key. This is done silently, and most of us do not check for such a key every few minutes. The next time the user logs in, possibly days later, and even though the browser plugin is not yet running, the registry key starts the update process. The user might then wonder what started the update, but by that time, the RunOnce key has alredy deleted itself. Sneaky, but safe.
Add a comment...

Bugs I have seen - MSIE6 and replacing innerHtml with images (Thu, 01 Feb 2007 12:00:00 GMT)
A table cell with an ID can have its innerHtml replaced by Javascript, without a page refresh. But if the content is img HTML markup, IE6 does not automatically download the image. If the image is already cached, it works sometimes. The general solution was to switch to an AJAX technique, which really does download the image.
Add a comment...

Bugs I have seen - National Weather Service web service (Tue, 27 Sep 2011 12:00:00 GMT)
The National Weather Service web service returns XML data that does not conform to the latest security standards (first reported in 2005), so clients using .NET Framework 1.1 and later report an error ("The server committed an HTTP protocol violation..."). The solution is to edit the proxy class generated by Visual Studio to process the returned data according to an older version of the protocol. See this page. The web service intermittently throws, "Unable to read data from the transport connection." This appears to be a timeout error which I work around by requesting less data at a time, multiple times.
I noticed errors on 2011-09-26; the web service URL changed from http://www.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl to http://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdl, and there were breaking changes to NDFDgen(). I struggled with Visual Studio, so I deleted the old web reference, closed and reopened VS, added the new web reference, modified NDFDgen(), and then it worked (without editing the proxy class to adjust the protocol version, at least there’s that).
Add a comment...

Bugs I have seen - Firefox and synchronous AJAX (Fri, 01 Dec 2006 12:00:00 GMT)
There is a problem with the way FireFox (in 2006) handles the Javascript XMLHttpRequest object. This object is used to implement AJAX techniques that allow access to remote information via HTTP without refreshing the whole web page. If the open method is called synchronously, the readyState property never gets set to 4 (completed). Some blogs suggest declaring the onreadystatechange function after the call to open, but this didn’t work for me (I had to use an asynchronous call). My page behaves better with the asynchronous call, but from what I’ve seen in the blogs, FireFox is either the only browser that does it right, or the only browser that does it wrong.
Also: I had a few issue when loading an XML document with Javascript. My XML document was being cached by the browser, and this caching apparently cannot be avoided with an HTML no-cache header. A simple but hack-ish solution is to do,
xmlDok.load("file.xml?rnd=" + Math.random(1000).toString());
so that the browser thinks a different URL is loaded each time.
Also, one would expect to be able to select nodes with XPath, via selectSingleNode and selectNodes. This works as expected in MSIE, but Firefox implements a different DOM which throws exceptions ("selectNodes is not a function" or "selectSingleNode is not a function"). Try these:
function XSelectNodes(xmldok, elementPath)
{
if (window.ActiveXObject)
{
return xmldok.selectNodes(elementPath);
}
else
{
var xpe = new XPathEvaluator();
var nsResolver = xpe.createNSResolver((xmldok.ownerDocument == null) ? xmldok.documentElement : xmldok.ownerDocument.documentElement);
var results = xpe.evaluate(elementPath, xmldok, nsResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
var i, nodes = [];
for (i=0; i < results.snapshotLength; i++)
{
nodes[i] = results.snapshotItem(i);
nodes[i].text = nodes[i].firstChild ? nodes[i].firstChild.nodeValue : "";
}
return nodes;
}
}
function XSelectSingleNode(xmldok, elementPath)
{
if (window.ActiveXObject)
{
return xmldok.selectSingleNode(elementPath);
}
else
{
var xpe = new XPathEvaluator();
var nsResolver = xpe.createNSResolver((xmldok.ownerDocument == null) ? xmldok.documentElement : xmldok.ownerDocument.documentElement);
var results = xpe.evaluate(elementPath, xmldok, nsResolver, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
return results.singleNodeValue;
}
}
Add a comment...
Comment from sclements on Mon, 24 Sep 2012 20:05:11 GMT:
Hey!! Hasin how you manage these all ? I rellay surprise when i read your blog. Everyday i got new things to learn. You are rellay interesting guy!!I am prashant from India and got you while searching something in google. I am also a php programmer and my level is rellay very lower then you. I have 2 years of experience but still i think i don't know much on php and all. Really a very limited knowledge, but i want to make my career in php. So i will take your suggestion every time, if you don't have any problem.Hasin I know only Php,MySql,Ajax,JS and thats it!! But after read your article on Php i rellay want to learn more now ..Please tell me how i can improve. I like to start from script.aculo.us, because i am not JS expert so i am not getting too many things. Please tell me few sites from where i can get good examples of script.aculo.us. Because there are lots of thing in script.aculo.us so i want to start from A-Z so kindly guide me as a teacher.Hope you will reply.
Comment from patt on Tue, 23 Jun 2009 14:45:31 GMT:
Gotta love that Firefox winning formula. See what Opera does...then do exactly that. For a moment I thought Firefox was innovating with its awesome bar and even read several books on this problem http://www.ebook-search-queen.com/ But upon inspection, I found that typing awesome bar in opera displays...this page.

Bugs I have seen - ASP.NET checkbox controls (Wed, 01 Nov 2006 12:00:00 GMT)
I have run into a couple of issues with ASP.NET CheckBox server controls. When a CheckBox is nested inside an ItemTemplate inside a Repeater control, the CheckedChanged event doesn’t fire for me. But let’s say the Text of each CheckBox is set like this:
   Text=’< % # DataBinder.Eval(Container, "DataItem.columnX")%>’ CssClass="hideme"
      sorry, I had to insert a couple blanks to get the RSS to display the markup
where the hideme CSS class looks like:
< style > .hideme LABEL { DISPLAY: none }< /style >
The result is that each checkbox can have a unique Text property, and the CSS class makes it invisible, so it’s essentially a custom control property. Then do:
foreach (RepeaterItem dataItem in RepeaterDataTable.Items)
{
   CheckBox itemCb = (CheckBox) dataItem.FindControl("CheckBox1");
      ...
The loop gets at each CheckBox and you can then see the Text property.
Also, an onclick property can be specified for a CheckBox, but the CheckBox server control has no such documented property. Microsoft documents that arbitrary attributes can be applied to the rendered HTML control. For example, a CheckBox is rendered as an HTML input control of type checkbox. A CheckBox can be created to call a JavaScript function, client-side, by adding the following line to a code-behind method:
   cb1.Attributes.Add("onclick", "jsFunc();");
The CheckBox will also invoke server-side methods as usual.
Add a comment...

 

Home page for this blog
RSS RSS 2.0 (18 posts, 5 comments)
Privacy policy
Visitor statistics
Contact me by email

Home Blog RSS Gocek.org
Home Blog RSS Christian Symbols
Home Blog RSS 897th (WWII)
Home Blog RSS Ticket Scam Resources
Home No blog No RSS Gocek, Turkey
Home Blog RSS Captain Kangaroo
Home Blog RSS Caroline Schlitt
Home Blog RSS Albany Dysfunction
Home Blog RSS Liverpool HS Music
Home Blog RSS Webcam
Home Blog RSS Tech Notes
Home No blog No RSS Original Software
Home Blog RSS Neddick
Home Blog RSS Libby
Home Blog RSS MOTD

©2013