Yahoo Widget For Stickam & ASP.NET Community Blogging

Today I discovered that my Yahoo Widget for Stickam has been approved and is now available for download from the Yahoo Widget Gallery. I did not receive any notice that it was approved. Now I just need to get my Vista Sidebar gadget for Stickam approved.

I have been invited to blog on the Microsoft web site for the ASP.NET community. I have been reading programmer blogs at work in order to pick up some tricks and keep up with changing technology. Microsoft provides this web site to encourage developer community. It is an interesting example of social networking for business. If Microsoft can create a vibrant community out of the developers that work with its frameset and platform then they will gain programmer allegiance. Programmers have always been very important to Microsoft. Web developers could just as easily use PHP and MySQL on Linux or Java and its massive framework.

However based on my experience with YouTube, I think Microsoft is going about it all wrong. I am not impressed by a collection of text blogs. Vlogging is far more effective at creating a sense of community than text blogging because you can see and hear the people you are communicating with. The sense of community is so strong at YouTube and Stickam that people actually talk about it! They have become very conscious of the fact that vlogging creates real community which they never found elsewhere on the Internet.

It is interesting that Microsoft did have an opportunity to steal the vlogging community from YouTube but they blew it. When Microsoft started their own video sharing site, Soapbox, many vloggers checked it out but ultimately rejected the site because it did not promote community. If Microsoft had designed Soapbox with better social networking features and with less emphasis on video sharing, it is possible that YouTube vloggers would have mobbed the site. However, what they could now do is integrate Soapbox into their developer communities to strengthen their market share in the IT industry.

Posted in ASP.NET, General, Video Production | Leave a comment

North Coast Gathering – YouTube Meet Up

Over the weekend I attended the North Coast Gathering for vloggers in Sandusky Ohio where I met the popular vloggers Zen Archer and Tara916. Fortunately I did not get lost during the 6 hour drive and I did not get pulled over for any traffic violations. I found it surprisingly easy to reach Cleveland OH because you only need to follow Interstate 80 West the entire way.

Unfortunately there were no other vloggers there except for an undergraduate student who was there to conduct interviews for his college paper. He interviewed Zen and Tara and then left. Since Zen and Tara organized the event and were already close friends, that really just left me as the only person from YouTube or Stickam to show up. This actually worked to my advantage because it made me the center of attention. Being a very quiet person, I pretty much need to be the only person there to be the center of attention.

The gathering took place at Camp Sandusky which is a campground with a lot of Amish cabins. Unfortunately it was cold that night and my blanket was too small to cover me so I was very uncomfortable. On Sunday the campground was completely deserted and all of the planned events were canceled because Tara was not feeling well. We were supposed to go to Cedar Point, a big amusement park and see a show or something. Zen wanted to carry on and fulfill his obligations but I don’t blame Tara for wanting to go home right away because it was just becoming a big waste of time. She was feeling faint and did not want to drive. I could have gone to Cedar Point by myself but I preferred to start home before it became dark. I think this was a good idea because I could have got lost driving in the dark.
The North Coast Gathering was not a huge success like the SouthTube gathering but I was thrilled to meet Zen and Tara because I frequently catch the Zen Live show on Stickam. I appreciate the intelligent conversations they encourage on their show. It is better than the mindless flirting that goes on in every other Stickam chat room. Zen Archer is not a Zen Master but he is wise and compassionate and there certainly aren’t many people who possess those qualities in our culture.

Posted in Vlogging | Leave a comment

Semantically Rich Markup

While reading my book on CSS today I came across the best explanation I’ve seen on how to structure your HTML code for the search engines. Unfortunately there is a lot of confusion about how to optimize HTML code for the search engines. Some people don’t realize that what you see in the browser is not what the search engines see. The search engines can only parse the HTML code in plain text as if they were blind. They do not render the page in the browser and apply human judgement to what they see. This is why an ugly web site may rank better than a beautifully designed web site. Other people seem to think there is only so much text the search engines will parse so you should place all your content at the top of the page. They want you to get rid of JavaScript, CSS, and meta tags in favor of as much text content as possible. Then there are those people who absolutely forbid Flash because they’ve heard that Flash is bad for SEO. Actually, Flash is only bad when the entire web site is designed in Flash and there is no text to be found. This does not mean that you should avoid any use of Flash.

But as the CSS book explains, it is semantically rich markup that is important. Intelligent markup of the content helps search engines better understand how they should weight and index web pages. In other words, it is not the text or code that is important. What is important for the search engine’s interpretation is how the code structures the text. For example, blocks of text that are not contained within the tag will not be seen as paragraphs. You may have a lot of text on your web page but without tags the search engines will not see a lot of paragraphs. Therefore you may only get credit for having a single paragraph even though you have line breaks to separate the text into paragraphs. It is quite possible that your entire text content will be overlooked by a parser if none of it is contained within tags!

Another example is how headers are defined. A header should be indicated using the <h1> tag. You can use font tags or CSS to scale text so it is header size but it will not be seen as a header by the search engines. Therefore you will not get any credit for having headers in your content. Unordered lists will not be seen if you use a bullet point character to indicate list items instead of the <li> tag.

Content is frequently poorly marked up because people copy and paste text from Word documents and other sources without looking at the HTML code. Word uses a lot of inline style bloat to format text exactly as it appears in a word processing document. Copying and pasting from other sources frequently carries over a lot of <div> and <span> tags which provide a meaningless structure to the document.

Therefore it is essential to understand HTML code. You must stop relying on a visual inspection of your web page and remember to view the source. You have to know how to replace content that is formatted by inline styles, <font> tags,
<div> and <span> tags with <h1> tags that are formatted by the style sheet. You also need to understand CSS so that you can reapply formatting to the proper tags for your content.

But don’t become a tag Nazi and forbid the use of <div> tags. These are often necessary to apply the CSS. A <div> tag should not be used to create visual paragraphs. In other words, this is a matter of making proper use of the tags according to how they were originally intended to mark up the content.

Posted in CSS, Web | Leave a comment

North Coast Gathering – YouTube Meet Up

The bus trip to Washington DC for Saturday, September 29th has been canceled. There was not enough interest. So instead I plan on going to the North Coast Gathering for YouTube, Stickam, and LiveVideo vloggers which will be held on Sept. 29th and 30th in Sandusky Ohio. This event is being put on by Zen Archer, a popular vlogger on YouTube. He does not vlog much now and spends more time doing his Zen Live radio show on Stickam which I frequently participate in via text chat. If I do go to this gathering I won’t get any work done on Saturday and Sunday.

I did buy a design template to redo my web site with a multimedia emphasis. The design template I choose is for a film studio so I need to customize it extensively. I don’t have any problems customizing a web design but I’m not very good at creating one from scratch. I’m too busy to do the redesign now and if I am away over the weekend I won’t be able to get it done this week.

Posted in General, Vlogging | Leave a comment

Web Parts, YAML, Washington DC

This blog post is going to wrap up a week of activity that didn’t give me time to blog. This week I worked on an important web part that creates a parent / child relationship between two database tables. I based it on the Northwinds sample database and used some code from my book on web parts but without its particular database access methods because that was not a standard approach. This gave me a lot of trouble because there is little sample code to be found on the Internet for this type of web part connection. I found this rather surprising because you can’t use web parts for any serious web application work without using them to interact with a database. I created one web part to show a list of departments and another web part to show the department’s employees based on the selected department.

Today I discovered YAML Yet Another Markup Language which I found in a PHP web application’s scripts (i.e. SPYC – Simple PHP YAML Class). I added some info on this to my notes even though I may never use it.

Next week I will be going to the National Book Festival in Washington DC. This means I won’t get any work done next Saturday.

Posted in ASP.NET, Business, General, Programming | Leave a comment

How To Reference A CSS Class With JavaScript

Some of the CSS topics in my help file were not displaying properly due to a problem with background image urls in CSS. This problem only appears in the Help 2.0 version of help collections for the Microsoft Document Explorer. I was unable to find any mention of this problem online because few people are doing anything fancy with Help 2.0.

I had to find a way to reference the div classes using JavaScript so I could set the background images via code. This proved to be tricky so I will share my code below. It has solved most of my problems in my help topics that illustrate CSS techniques:

var divTags = document.getElementsByTagName('div');
for(i = 0; i < divTags.length; i++) { if (divTags[i].className == "sidebox") { divTags[i].style.background = "url(sbbody-r.gif) no-repeat bottom right"; } if (divTags[i].className == "boxhead") { divTags[i].style.background = "url(sbhead-r.gif) no-repeat top right"; } if (divTags[i].className == "boxbody") { divTags[i].style.background = "url(sbbody-l.gif) no-repeat bottom left"; } } document.getElementsByTagName('h2')[0].style.background = "url(sbhead-l.gif) no-repeat top left";

Posted in CSS, Web | Leave a comment

Eval For VB.NET

Today I was converting some ASP code to ASP.NET when I ran into a problem with the eval statement which is not supported in the NET Framework. Fortunately, I found a clever solution on the Internet at http://odetocode.com/Articles/80.aspx. You can compile that C# code into a DLL and put it into the bin directory of your ASP.NET web site. Then your VB.NET code will have access to functions that perform the same purpose as eval:

OdeToCode.Utility.Evaluator.EvalToDouble(variable)

Posted in ASP.NET | Leave a comment

NPlot Bar Charts

There is a free charting component for ASP.NET by the name of NPlot but it is poorly documented and I could not figure out how to create a simple bar chart. I contacted one of the developers and he sent me some code that pointed me in the right direction.

I have created some sample code in VB.NET and C# which I shall offer to the developers because their Wiki asks for someone to submit some examples of bar charts. I used the Northwind SQL Server sample database as the data source for my bar charts. The Northwind database is frequently used to demonstrate database concepts and anyone may download a copy. The only innovative aspect to my sample code is the rather complicated SQL query I use to get the data. First I get the distinct values for one of the columns and then I get a record count of another column based on the distinct value. This is a fairly difficult query to create but it is useful for getting data for charts of record counts by date.

I also created a NPlot bar chart that used a XML file as the data source. This was pretty difficult because I loaded the XML into a dataset and the columns wound up having a string data type when they needed to have the double data type. I had to create new columns with the correct data type and then use dataset expressions to calculate their values based on the existing columns. Dataset expressions were another NET Framework feature that I’d never heard of.

Posted in ASP.NET, General | 3 Comments

1994 Pontiac Grand Prix SE

Yesterday I bought a new used car, a 1994 Pontiac Grand Prix SE. It is the same color, red, and mileage 157,000 as my last car so in that respect it is not much of an improvement. However it has air conditioning and power windows. The body is free from dents and it runs well. The paint was coming off the roof of my old car and it had trouble accelerating.

Today I got a lot of work done on two projects but I didn’t do anything new. I’m reading a book on CSS during my lunch breaks, Professional CSS: Cascading Style Sheets for Web Design by Christopher Schmitt, etc. There are a few aspects of CSS I’d like to understand better like floats. And the book did direct me to a way to do drop down menus using nothing but CSS and a little JavaScript. That reminds me that I would like to redesign my web site. The current web site design is hard to update and I need to get rid of outdated content. I also want to change the focus from web development to video production as a way to encourage a different set of clients. I’ll keep my domain name but remove the Williamsport connection.

Posted in General | Leave a comment

The Value Of Creativity

This blog post is going to be different from my usual blog posts because I will address the value of creativity. Programmers have to be creative and logical but they are usually given more credit for being logical than creative. Although web developers are often asked to make design decisions or tasked with creating a web site design, this is often better left to a professional web designer who is trained in commercial art or graphics design.

Unlike most programmers, I have some experience with Photoshop and other graphics programs. Currently I am doing a lot of creative things with After Effects which is like Photoshop for video. I’m also trying to learn Propellerhead’s Reason so I can create original synthesizer music for my videos and avoid copyright infringement. Video production requires a considerable range of creative skills to the point where it needs to be a collaborative effort.

However, I want to get a bit personal now and explain why I feel my creativity goes beyond this and is wasted in my profession. The artist I identify with the most is William Blake because he had a visionary imagination. When I read a biography of William Blake I could easily appreciate his perspective even though the biographer was merely respectful of Blake’s spirituality. Unfortunately, few people suspect just how powerful the imagination can be. The imagination can be genuinely visionary. By visionary I mean otherworldly and exalted which are the qualities I suspect Blake was thinking of when he spoke of “divine imagination” An artist’s vision can be incredibly subtle and profoundly sublime. It should be understood that an accurate representation of such vision is often beyond the artist’s skill and that the quality of an artist’s work is no measure of the quality of his vision. Vision can exceed everything you have ever known.

You might think that the visionary imagination would be greatly appreciated and much sought after. However, this is not the case. Blake was misunderstood in his lifetime and I don’t think he is given enough credit today. It is often noted that it was a shame Blake had to work as an engraver and waste his time making a living when he could have been creating great works of art. I agree that you should not want a visionary artist to scrape by as a commercial artist. However, it can not be said that Blake was truly impoverished because he did not possess an impoverished imagination. This is an important point to remember. While the visionary artist may suffer neglect, it is the public and posterity that is deprived of what he may have created. Blake clearly expressed the exalted nature of his imagination and how he felt it enriched his life. That he was not given an opportunity to share this fully is our tragedy and not his.

The only people who seem to appreciate Blake are people who experiment with psychedelics. Apparently these drugs may give you the necessary visionary experience and provide some insight. However, I’m not impressed by psychedelic artwork because it does not strive to express anything profound. It is not the kind of artwork I would expect an exalted imagination to attempt. Also psychedelic drug users tend to attribute too much to their drugs and show little interest in people with any kind of natural gift.

Although I’ve expressed a lot of praise for Blake, it should be understood that I don’t really care for his artwork which is far too antiquated for my taste. My vision is shaped by modern life which is curiously transformed and exalted in my imagination. In other words, I can recognize something in Blake beyond what is apparent in his work and I’m not fixated on his work.

It is difficult to identify genuinely visionary artists because you cannot base your assessment on their work which can only be a failed attempt to express the ineffable. Instead, you have to evaluate their interests and inclinations. A visionary artist is likely to be interested in Rimbaud, Blake, Jung, surrealism, and possibly shamanism. He may strike people as being a dreamer and very distant, a distracted soul is my favorite way of expressing this quality. The punk rocker Patty Smith seems to fit the profile and the photography of John Santerineross is clearly visionary.

An interesting question would be, is this ever reflected in my professional work? Certainly I have not created any applications that would be considered visionary. I think I occasionally have a brilliant idea and I sometimes get very enthused for technology because it can become inflated in my imagination but for the most part I cannot express my vision in my work. You would underestimate me if you disagree. I am ruled by disquieting muses.

Posted in General | Leave a comment

ISBN Look Up Application Development

I recently found an interesting social networking web site where you can list all the books you’ve read so you can connect with other people based on your reading habits. This is very appealing to me because I have read over 2000 books. I’ve also kept a list of all the books I’ve read. I maintain the list in a simple Access database with just three columns; book number (sequential number), book title, and book author(s). Unfortunately I do not record the ISBN number and the web site www.librarything.com only offers bulk import of ISBN numbers.

I found a web service isbndb.com/data-intro.html that allows you to look up the ISBN of a book based on its title. The web service provides an opportunity to automate the process of populating a new database column for the ISBN number.

I created a project in Visual Studio 2005 with C# as the programming language. The first thing I had to do was import the NET Framework classes that the project would need. These include the classes for XML, Diagnostics, IO, Threading, Network, and SQL Server client because I imported my Access database into SQL Server for this project. It is easier to deal with a SQL Server database when working with the NET Framework, at least most of my sample code is written for that.

Next I added a trace listener to the project’s application configuration file. Trace listeners were added in NET Framework 2.0 to make it easier to log debugging information. Using a trace listener, my application can log the response from the web service and the SQL statements used to update a record. This provides a written record of the program execution so I can see where a failure occurred and what data caused the problem. The web service places a limit on how many ISBN look ups you can perform in a day and my log file shows me where I was in the database updating when I reached my limit for the day.

The first thing my application does is establish a database connection to the SQL Server and run a query to get all the records for a data reader. Then it loops through the records and calls the web service with the book title in the web address. The web service is called using a web request object and gets an asynchronous callback. The response callback method reads the web service response string and creates an XML document because the response is string data in the form of XML. An XML node reader is then required to find the BookList node to see if the total_results is greater than 0. In other words, I must check to see if any books were found and do nothing if we come up empty. The ISBN number is actually an attribute of the BookData element so this project required some sophisticated knowledge of how to find data in a complex XML document. You should know the difference between elements (aka nodes) and attributes in XML and how to extract data from each.

Finally, my application updates the database record by adding the ISBN value to the new ISBN column. The SQL statement to do the update is logged in case some unexpected value causes an error. Logging your SQL statements is always a good idea and often the key to troubleshooting a problem. I also look at the entire XML response in case something in that causes the application to error. If there is an error and my application needs to pick up where it left off, I just change the query for all the records to get just the records where the book number is greater than the last successful update.

Unfortunately, the web service only allows approximately 500 queries a day and I’ve read almost 2500 books so this application must run for 5 days to complete the job. Also, looking up ISBN numbers by book title is not very accurate so I won’t be getting the exact copy of the book I read or own. I’m just using the first book result so it may not even be the right title in some cases.

Later on I may turn this into a web part so I can perform ISBN look ups as part of a web portal.

Posted in General | Leave a comment

Labor Day Weekend

I plan to get a lot of work done over the Labor Day weekend. Last night I finished working through a lengthy chapter on Lighting in 3D with After Effects. That was the last chapter I needed to complete my study of the essential features of the program. However there is still a chapter on standard special effects I need to go through and then I’ll move on to other books.

Today I am backing up my data because I have a lot of work to preserve. It would be horrible to lose all that work and a real set back. I also plan to copy my projects, development web sites, and Visual Studio projects to my spare PC. A spare PC with plenty of disk space makes an excellent back up device. My wireless network makes it easy to share files between my computers located in different rooms.

My favorite vlogger has closed all her social networking site accounts without a good by or any explanation to her many friends and fans. That has deeply saddened me.

Next week I plan to buy a new car to replace my current vehicle which cannot be trusted for long trips. I won’t be buying a brand new car because I cannot afford it. I will be buying a used car because even the low-end used cars are better than my junk heap. My car does not even have air conditioning and that really sucks on long trips in the summer. Buying the car may lose me a day of work on my numerous projects.

Last week I completed a set of ASP.NET pages for typical database table management or CRUD (Create, Read, Update, and Delete). I designed the pages using various tips I’ve picked up on how to make these operations convenient for the user. This includes popping up a confirmation window before allowing a record to be deleted, icons to visually indicate the operation to be performed, tooltips to identify the record title and provide a hint, data entry validation and confirmation messages. I still need to document my ASP.NET 1.1 version and then begin an ASP.NET 2.0 version.

Posted in General | Leave a comment

YouCruise – YouTube Carnival Cruise

I have booked a cabin on the YouCruise, a Carnival cruise for YouTube vloggers. The YouCruise was the idea of YouTube rant comic, Pipistrello. You can download a Word file with all the details at: YouCruise.doc. I frequently watch the WingsSpanRadio show put on by Pipistrello and RavensLaugh on Stickam. Pipistrello pimps the cruise during the show.

Apparently there have not been very many confirmed bookings. This event will probably not be as well attended as other YouTube gatherings, but it should be a lot more fun. Many vloggers cannot afford a cruise. I know several vloggers have been doing a lot of travelling to attend previous gatherings and it has drained their finances. I recently suggested that we have a gathering in Second Life which would not require any travel. I would prefer to meet with more vloggers but the small number of people may work to my advantage because I’ll be less likely to get lost in the crowd. All of these vloggers are major attention whores so they are likely to monopolize a get together.

Going on the YouCruise will mean that I will appear in many videos. Everyone will have their video cameras to make videos for YouTube. I hate being on camera and actually avoid it but this won’t be possible on the cruise.

I have applied for a United States Passport which is required for the shore excursion to Nassau, Bahamas.

Posted in General | Leave a comment

Becoming A Better Programmer

I feel that I have become a much better programmer this year. I have learned a lot more about Visual Studio and now use all of its features. This includes using bookmarks to find my way back to lines of code, using macros to automate some tasks, using the debugging features, using templates to create new items, using snippets for code I frequently reuse, etc.

I have also learned better methods for debugging ASP.NET web applications. I can now use log4net to write debugging information in a text file. This makes it a lot easier to troubleshoot logic errors in the code behind files.

My documentation methods have also improved because I now have additional tools to do syntax highlighting and I have integrated my notes into the Microsoft Document Explorer. This is a fairly sophisticated method of creating documentation that few other developers use.

I have become a better database developer because I have learned the value of cascading deletes, column encryption, and transactions. I am also using more sophisticated types of joins.

I’ve recently begun to learn a lot more about web application security and have a better understanding of cookies, sessions, proxy servers, web bots, captchas, and HTTP methods. However, I still need to learn more about buffer overflows, cross site scripting, and SQL injection.

My next goal is to improve my use of CRUD in ASP.NET web applications. CRUD is an acronym for Create, Read, Update, and Delete which is the functionality you need to manage a database table. I’ve been working on too many projects that I did not build from scratch so I have not developed my own methods of implementing CRUD. This is now a high priority for me.

My other goal is to migrate a few web applications to ASP.NET 2.0 and get some practice using its new features. I want to abandon Visual Studio 2003 and ASP.NET 1.1 which now appear to have many shortcomings.

Posted in ASP.NET | Leave a comment

C# Data Structures

I added a topic to my notes on C# data structures. I think I had a class in college on data structures. We used Pascal for that class. I still have my Pascal book and Pascal compilers but there is not much point in using it because nobody uses Pascal for anything except teaching.

The .NET Framework provides built-in data structures within its System.Collections class. It includes the ArrayList, SortedList, HashTable, Stack, Queue, etc. I created some sample code for all of them in my notes. The only data structure I could not write code for is the binary tree. I found some C# classes for binary trees but it would not compile.

Posted in ASP.NET, General, Programming | Leave a comment

Social Isolation And Online Communities

I’m reading David Silver‘s book Smart Start-Ups which is about building online communities because I am very active in the YouTube community. There are actually many videos and discussions about online community. Some people insist there is no community and that everyone is just out to promote themselves. However, the increasingly popular gatherings and meet-ups prove that people are forming real friendships that they are eager to continue offline.

An online community can be the cure for social isolation but I never found it very compelling until video made it possible to see and hear the people you are communicating with. I think video is an essential part of any online community that aims to create genuine friendship. Even people that originally had some other purpose for using YouTube, like marketing their business or developing their multimedia production skills, wind up getting sucked into the life of the community.

The book Smart Start-Ups mentioned some aspects of social networking sites which I have observed. For example, mobbing is what happens when a large group of people are drawn to an online community. I witnessed mobbing occur when Boh3m3 discovered Stickam and invited his subscribers to online video chat. Now the entire YouTube community spends the majority of its time on Stickam although they still remain loyal to YouTube. Mobbing also occurred when LiveVideo offered a better vlogging experience than YouTube but it was not substantially different so it kind of died off.

Another aspect of social networking which I have observed, but didn’t realize was common, is the wolf in sheep’s clothing, a marketer who pretends to join the community but is really just there to advertise or to promote himself. The YouTube community is definitely vigilant against these individuals and a lot of hostility is directed towards vloggers who appear to have commercial interests. It is tolerated if the person actively participates in the community but if they don’t then it is rejected as old media, i.e. noninteractive one way communication.

The YouTube community has become more important to me than my actual, real life community. The Williamsport community lacks any public forum except the letter section of the right wing rag, the Williamsport Sun-Gazette and I’ve cancelled my subscription to that fountain of official disinformation. The Williamsport community does not offer very many public events, cultural activities, or business networking opportunities. I don’t know my neighbors and don’t have any friends. There are not many local bloggers and no vloggers so you can’t get to know anyone online. When I was working out of my home, I didn’t even socialize with any coworkers or local clients. Williamsport is not my community. It is just a place where I live. The real community is online.

Posted in Business, General | Leave a comment

IIS 7.0, PHP, Perl, Silverlight

I’ve been meaning to cut back on the amount of new technology I’m studying because you can’t learn everything. You will have no time for your regular life if you try to keep up with changing technology. However, I have been doing some brief investigation of various things. I installed IIS 7.0 on my Vista computer because that is the only operating system that it runs on and I wanted to check out some new features. Internet Information Services 7 will be able to use modules written using any .NET Framework language which may be a concept stolen from Apache.

I haven’t done much with PHP but recently I did a lot of experiments with its CURL library, Client URL Library Functions, in order to better understand how form bots work. Form bots cause me a lot of grief because they submit spam to every form they can find on the Internet. I discovered that my countermeasures would not be effective because a form bot sends a POST request directly to the form handler, i.e. the script the form submits to, and bypasses the form itself so you should not waste time trying to validate the form on the client side.

Then I spent some time messing with Perl which is always a matter of installing countless packages that are missing. I did find the Perl Package Manager provided a nice GUI but I still needed to search CPAN for packages that were not listed. I had to manually download and install 9 packages which was not fun.

I’ve been hearing a lot about Silverlight which is Microsoft’s Flash killer. I’ve done some preliminary work with that but nothing more than creating a few sample XAML files which I test using XAML Pad.

Posted in General | Leave a comment

Visual Studio As An HTML Editor

At work I am forced to use Visual Studio 2005 as an HTML editor instead of my precious FrontPage 2003. Visual Studio 2005 is better than Visual Studio 2003 for editing a web page but I still have the following complaints:

  1. No spell checker for web page content
  2. Does not convert web addresses and email addresses to links automatically
  3. Dragging an image to the page does not insert an image on the page
  4. Need to drag items from HTML Toolbox to the web page. This is how to insert an image

I recently installed the beta version of Visual Studio 2008 which features many improvements as a web page editor. You can now drag an image onto the page in order to insert an image. There is still no spell checker. When you type in a web address it now automatically converts to a link. You now have a split screen display mode so you can view the code and the design at the same time. Some of the new features are similar to changes that appeared in Microsoft Expression Web which replaced FrontPage. There is the same blue outline that appears around a page element.

Posted in General | Leave a comment

JavaScript Object Notation

JavaScript Object Notation is an alternative data format to XML for AJAX. To use JSON you need the json.js script at www.json.org. It contains the JavaScript functions to convert arrays to JSON strings. The JSON strings are parsed by JavaScript as object literal notation which can be evaluated to recreate the object.

JSON is used instead of XML for many AJAX enhanced web applications. It is supported by the ASP.NET AJAX Extensions which are built-in to ASP.NET 3.5 and PHP as can be seen in the json section displayed by phpinfo().

JSON may be useful in a few web applications I manage which are currently trying to store too much data in JavaScript arrays. Unfortunately, many web browsers cannot handle that much data embedded in the web page as JavaScript and it causes many performance problems. JSON could be used to deliver that data to the JavaScript so it won’t be needed within the web page source code which becomes seriously bloated.

Another interesting aspect of JSON is that it can be exploited to run unauthorized JavaScript in the browser. The JSON string data is evaluated as JavaScript code to recreate an object so it can be hacked to include any JavaScript code. You should be aware that any AJAX enhanced web applications which you use that utilize JSON could be hacked to run malicious JavaScript in your browser. I believe this is the method used in many exploits that plague users of social networking sites and other Web 2.0 sites.

Posted in General | Leave a comment

TableAdapters And Transactions

I’ve been doing some more work with TableAdapters and transactions. I’ve learned how to extend the TableAdapter class to include support for handling transactions. Being able to extend a class to override a method or provide new methods is an advanced programming technique that is frequently suggested but rarely demonstrated. Numerous times I will read that a class can be extended to do this or that but there are never any instructions on how to do it. I had to figure it out for myself in this particular case.

I was able to create a transaction scope for multiple TableAdapter’s Insert commands so I can roll back several related changes to database tables. This required a reference to System.Transactions which is new to NET Framework 2.0 so I cannot use this technique in ASP.NET 1.1. However, you don’t have strongly typed datasets in the previous version of the NET Framework so there is no need to extend TableAdapter classes.

Posted in ASP.NET, General, Programming | Leave a comment