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

Adobe After Effects™ 6.0 ACE Exam 9A0-039

I bought a practice exam for the Adobe After Effects™ 6.0 ACE Exam 9A0-039. It was expensive but I could not find any braindumps for this exam and there are no study guides or books available. Most of the questions seem to be on things that are not covered in the Creating Motion Graphics With After Effects book. The practice exam does not contain any explanatory notes and you cannot copy and paste the text. I managed to work around that problem by taking screen shots of each question. I’ll have to do some research on the program features that the questions are based on.

I downloaded a PDF of the After Effects Scripting Guide and found the demo scripts which illustrate how very involved animations can be generated by a script.

Posted in Video Production | Leave a comment

Wireless Network Set Up Accomplished

I have completed the set up of my wireless network using a Buffalo Broadband Router & Access Point with High Gain Antenna. It took less than half an hour to set up my wireless network. Now I can get my Dell and Vista computers in the other room on the Internet without moving my cable modem around. The wireless router has a few LAN ports so I was able to use my two wireless network cards for the spare computers without putting one in my primary PC.

In other news, I will be making a major effort to finish reading my book on After Effects over the weekend. I just have one more chapter to read and take notes on. It is a long chapter on lighting in 3D layers. Although I will have finished reading the book, I still need to try the example projects in 7 chapters and add my notes to my help file. That will take me 7 weeks if I can manage a chapter a week.

Posted in General | Leave a comment

Going Wireless

I’m finally setting up a wireless network in my house. I’ve bought some wireless networking cards and I should get my wireless access point soon. I decided to go wireless because I have a new computer to run Windows Vista but it is in the other room. My cable modem is in the far corner of one room and my Vista PC is in the far corner of the next room. It is too far to run a network cable and I’m tired of moving the cable modem.

I bought the Buffalo WHR-HP-G54 Wireless-G MIMO Performance Router and Access Point which has not been delivered yet and two Buffalo Technology WLI2PCIG54S 125 High Speed Mode Wireless Desktop Pci Adaptet With AOSS cards. The Buffalo wireless card should work with Windows Vista after I install some new drivers. I made sure it would work with Vista when I was researching wireless technology. I probably won’t disrupt my online access until the weekend when I’ll have more time to set everything up and get it working.

Posted in General | Leave a comment

WordPress Code Markup Test

I have been frustrated with WordPress’s inability to accept my code in my blog postings. I either have to give up on including code in my blog or waste my time struggling with the formatting. Today I have installed the Code Markup plugin to see if I can solve this problem.

I’ve added three new topics to my notes this evening; Crystal Reports which I explored at work, C# Method Attributes, and ASP.NET 2.0 Expression Builders. None of the books I’ve read on ASP.NET 2.0 mentioned expression builders so I had to do a little research on this new feature. The syntax will serve as a test of the Code Markup plug-in:

C# method attributes is yet another aspect of the language that I’ve come across while reading about something else. They are used extensively in web parts classes and I’ve seen them before but it finally occurred to me to do some research on that too.

Posted in General | Leave a comment

Weekend Roundup – 3D Invigorator, YouTube For Dummies, Stickam Widget

Today I finally got around to learning how to use the 3D Invigorator software I bought from Zaxwerks. I created some 3D titles and figured out how to rotate them in 3D space. I was extremely pleased with the result. It can be pretty difficult to position something in 3D space because you have to deal with the X, Y, and Z axis and the mouse is not very useful for moving something in three dimensions.

There will be a YouTube For Dummies book published soon. I have placed a pre-order for this book on Amazon because YouTube is a big part of my social life and provides most of my entertainment.

YouTube For Dummies

The Yahoo! Widget Gallery still has not reviewed my Stickam Online Presence widget so I have uploaded it to my web site to make it available to the public. You can download it here as a zip file: http://www.williamsportwebdeveloper.com/stickam.zip I was unable to make it available without compressing it to a zip file because the web server refused to serve files with the .widget file extension.

Yesterday I tried DynamicPDF for the .NET Framework. I was really impressed by how easy it was to use. It has a custom designer which resembles Visual Studio. It generates XML which is easy to understand and adjust. In fact, the design view and code view makes it quite similar to working with HTML. It only takes three lines of actual code to then generate a PDF file that includes data from a database. I will probably be using DynamicPDF in two projects which require PDFs to be created from data in the database.

Posted in Video Production | Leave a comment

Web Parts Export, Import and User Controls

I am still studying web parts. I’ve learned how to export and import web parts but I’m not sure how useful this is because you can’t share web parts with other sites. You can only export a web part that is available in the site or import a web part that is available in the site. I don’t see how this serves any purpose then unless you want to save some web part settings.

I also learned that user controls used as web parts can implement the IWebPart interface and set all of the web part properties just like a class that inherits from the web part class can. This is good to know because I thought you could not use web part icons with user controls. It is much easier to create user controls than it is to define the entire HTML output through code in a class file.

Web parts require you to know more about implementing interfaces so studying web parts serves an additional purpose in familiarizing me with some of the intricacies of the NET Framework object oriented programming.

Posted in ASP.NET | Leave a comment

Video Production And Programming

I missed out on the big YouTube gathering on 07/07/2007 which appears to have been a lot of fun. I was made really sad by this because I could have meet a lot of my online friends that I’ve grown to known. These are very entertaining people that together form the sort of vibrant, fun, creative community that I’ve always wanted to be a part of. My real life community is so lame that they don’t even have an online forum or bulletin board system for the exchange of ideas. There is far less of a sense of community in my town than there is in the online community. However, I may be going to the National Book Festival in Washington DC on September 29th and I’m trying to get my online friends interested in meeting me there.

On 07/07/2007 I spent 14 hours straight studying just one chapter in my After Effects book, a long chapter on Masking. Im kind of bummed that I had to spend that much time just to cover one chapter but there were many examples to try out and I took extensive notes. Today I learned how to use JavaScript to script After Effects parameters, a feature known as After Effects Expressions. This allows you to use scripting instead of keyframes to animate objects. I also learned that you can script After Effects to automate the application using JavaScript. I was not aware of this capability because my book does not mention it. However it makes it possible to do some pretty neat things like programmatically create a large number of animated objects for some visual effects that would be extremely tedious to design.

I’m very interested in putting my programming skills to use in video production. So far I have only used the Stickam, LiveVideo, and YouTube APIs to create some minor things like web parts and portal widgets. But I would like to do some programming to automate the actual process of video production. After Effects appears to have greater potential for this then I realized.

I hope to take a certification exam on After Effects. That would really help me professionally because few programmers have an Adobe Certification. Of course, I would be better off passing an exam on Photoshop but After Effects is kind of like Photoshop for video and it has some of the same features. Being Adobe certified in video production could also lead to a more interesting line of work in the film industry.

Posted in Video Production | Leave a comment

Web Parts Properties, Verbs, And Connections

Today I expanded my knowledge of Web Parts, which is my favorite addition to ASP.NET in ASP.NET 2.0. I learned how to create custom properties for my web parts and I added a property to my Newsvine web part so that the user can change the RSS feed. It seems you never learn all there is to know about ASP.NET because I also learned there are two ways to register a user control. I was familiar with the method of supplying the source file path but I was not familiar with using a namespace with the tagprefix.

There are two ways to register user controls:

Register Namespace=”namespace” TagPrefix=”tagprefix” Assembly=”assembly”
Register TagPrefix=”tagprefix” Tagname=”tagname” xsrc=”pathname”

tagprefix – An alias to associate with a namespace.
tagname – An alias to associate with a class.
Namespace – The namespace to associate with tagprefix.
Src – The location (relative or absolute) of the declarative user control file to associate with the tagprefix:tagname pair.
Assembly – The assembly in which the namespace that you are associating with tagprefix resides.

A Web Part verb is a custom action that a user can perform. You can add verbs to the Web Part menu. The example code I studied adds a verb to send an email but it did not implement the actual functionality. My ASP.NET code for sending an email has been deprecated so I had to learn the new way of sending email to actually implement the new Web Part verb functionality.

Web Parts can exchange data through provider and consumer connections. I didn’t create my own version of the example code but I did get screenshots of how the Connections Zone looks in the browser and practiced making connections between web parts and then disconnecting them. I’ll probably expand my notes on Web Part Connections when I try to create my own and encounter technical difficulties.

I bought a book that is specifically on Web Parts, ASP.NET 2.0 Web Parts in Action: Building Dynamic Web Portals (In Action) by Darren Neimke. I am reading this book on my lunch breaks. Unfortunately, there probably won’t be anything else to learn after I’ve finished reading that book. Most of the articles and tutorials on web parts just cover the same basic features. I don’t think I’ll be able to find any advanced techniques or really useful examples because the developer community does not appear to be too excited about web parts.

Posted in ASP.NET | Leave a comment

SQL Server 2005 Annoyances

One of the many annoying things about SQL Server 2005 is how it replaces SELECT ALL written as “SELECT * FROM”with a complete list of the column names. After testing a SQL statement in the SQL Pane to determine that it works, I don’t want my asterisk expanded into a three or four line list of column names. I usually want to copy and paste a working SQL statement into my documentation or notes.

Today I discovered how to disable this behavior. Just select Tools and then Options from the menu and select All Languages under Text Editor. Uncheck “Auto list members”. This will stop the “statement completion”of the asterisk in a SELECT.

SQL Server 2005 Annoyances

Posted in Databases | Leave a comment

BABY/400 ODBC

I have figured out how to use the BABY/400 ODBC (Open Database Connectivity) driver to query the physical files. I’m hoping to use this to populate my physical files with data because it is very tedious to do data entry using BABY/400 and its WRKDTA tool.

BABY/400 ODBC

Posted in RPG | 3 Comments

Yahoo! Widget For Stickam Online Presence

Over the weekend I developed a custom Yahoo! Widget to show the online presence of a single Stickam friend. Yahoo! Widgets are little desktop applications based on the Konfabulator application platform that Yahoo acquired. Developing a Yahoo! Widget requires a knowledge of XML and JavaScript. You also have to be pretty good at creating PNG graphics with transparency, drop shadows, and gradients.

I have submitted my Stickam widget to the Yahoo! Widget Gallery but I don’t know if it will be accepted because they may object to my use of the Stickam logo for the dock image. You can download the Yahoo! Widget engine at http://widgets.yahoo.com/ and then search the gallery for widgets you might find useful. You can always obtain my Stickam widget directly from me if it is not added to the gallery.

Yahoo! Widget Stickam

The screen capture above shows that Producing101, a popular web cam chat host, is currently offline and was last online on June 3rd, 2007 at 12:15 AM.

Posted in Video Production | Leave a comment

ASP.NET 2.0 – Control Adapters

I recently did some research on control adapters, another new feature of ASP.NET 2.0 that I read about in the book “Essential ASP.NET 2.0” by Fritz Onion and Keith Brown. Control adapters allow you to change the rendering of web controls so you can replace tables with divs. Microsoft provides some examples for rendering a few controls in a more CSS friendly format at their web site: http://www.asp.net/cssadapters/ – ASP.NET 2.0 CSS Friendly Control Adapters 1.0.

Control adapters use .browser files to determine the browser capabilities for rendering web controls according to the browser quirks. Unfortunately, these .browser files are not being kept up to date. For example, there is no .browser file for the Safari browser. I may create a safari.browser file because this represents another opportunity. I am finding a lot of opportunities for simple projects that would fulfill a need in the developer’s community. It seems there are a lot of minor things that other developer’s have not given any attention to due to the overwhelming breadth and scope of new technology today.

While researching control adapters I can across a programming language syntax highlighting component created by Wilco Bauwer which you can find at: http://www.wilcob.com/Wilco/Toolbox/SyntaxHighlighter.aspx. I’ve been using Microsoft’s QuickStart highlighter to convert my ASP.NET code into HTML for my help content but that requires a somewhat tedious process of cut and paste steps. I’ve used Wilco Bauwer’s Syntax Highlighter to create a windows application program that makes it easier for me to highlight my code and document it as HTML. Unfortunately, this syntax highlighting component isn’t perfect because it does not highlight the word WHERE in a SQL statement even though it is supposed to support that language.

Posted in ASP.NET | Leave a comment

Transaction Savepoints

Today I learned how to roll back multiple database queries using transaction savepoints. This is useful when you have several related record inserts, updates, or deletes that should all succeed or all fail in order to maintain your data integrity. You can associate a transaction with a database connection, create a transaction savepoint, and then rollback all your queries if there is an error or commit the queries. Since I am mostly programming in C# nowadays I will provide sample code in C#:

string strSQL;
SqlCommand objCmd = new SqlCommand();
SqlConnection objCn = new SqlConnection(strCn);
objCn.Open();
SqlTransaction transaction = objCn.BeginTransaction();
// create a savepoint to rollback all database changes if necessary
transaction.Save("BeforeInserts");
try {
strSQL = "INSERT INTO table_name VALUES(column_name, column_name)";
objCmd.Connection = objCn;
objCmd.CommandText = strSQL;
objCmd.Transaction = transaction;
objCmd.ExecuteNonQuery();
strSQL = "INSERT INTO table_name VALUES(column_name, column_name)";
objCmd.Connection = objCn;
objCmd.CommandText = strSQL;
objCmd.Transaction = transaction;
objCmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
lblMessage.Text = "Error: " + ex.Message + "rn" + ex.StackTrace + "rn";
// rollback all database changes
transaction.Rollback("BeforeInserts");
}
finally
{
transaction.Commit();
// additional database changes cannot use the transaction after it has been committed
strSQL = "UPDATE table_name SET column_name = '""' + value + "'";
objCmd.CommandText = strSQL;
objCmd.ExecuteNonQuery();
objCn.Close();
}
Posted in ASP.NET, Databases | 1 Comment

Zaxwerks 3D Invigorator

I bought the Zaxwerks 3D Invigorator plug-in for After Effects but I have not made a video using it yet. It allows you to convert 2D vector artwork into 3D titles or logos. It renders very slowly on my system. I’m hoping that 2 GB of memory will make After Effects run faster on my computer. I have bought a book “Illustrator CS For Dummies“ so I can learn how to make the vector artwork that 3D Invigorator requires. I did recently learn how to create alpha channels in Photoshop because After Effects uses alpha channels to control the transparency of a layer.

There is a certification exam for After Effects 6.0 Professional, ACE Exam 9A0-039. I may be interested in taking this exam because I am being very thorough in learning After Effects. It would be cool to be certified in some aspect of video production. It would help me professionally because having an Adobe certification demonstrates considerable graphics skills.

Posted in Video Production | Leave a comment

Cross-Page Posting

Today I added a help topic on Cross-Page Posting to my ASP.NET 2.0 notes. Cross-Page Posting allows a second ASPX page to get the form fields from a previous ASPX page when the form is submitted using the Post method. This is an old technique from ASP. However, you should create publicly exposed properties for the form fields in the source page and then reference those properties in the target page which makes this technique less intuitive than the old ASP way.

This evening I spent most of my time getting two RPG programs to work. I determined that I can use externally defined files with Input and Output Specifications so I can create physical files to use with RPG II programs.

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