Register | Login   
Search Blog
           
Posts
Author: Chris Bennett Created: 9/12/2008 9:20 PM
All Things Tech

By Chris Bennett on 3/18/2009 8:11 PM

Over the past couple of months, I've made several different packages with Open Web Studio. And after creating a simple content version package, article manager and a link exchange system I think it is a great tool for creating simple packages.

Unfortunately, the script language it inherited from listX is not exactly easy to master. Not only is the script language a bit difficult, but there is very little documentation available. I was able to learn it by starting with the listX documentation and downloading as many examples as I could find. Nonetheless this is time consuming.

I do believe they have started to address the short comings. Lately, the OpenWebStudio site has drastically improved the content available on the wiki. The lack of information is mainly why I published the packages I've created for this site. There is also a page on the wiki describing changes to the script language to make it more usable.

Even though OpenWebStudio is still fairly new, I would have to conclude that is a very good tool for creating fairly simple packages to augment DotNetNuke. However, if you intend to create complex modules, I would recommend creating native .Net code.

By Chris Bennett on 3/9/2009 10:35 PM

Extrenal drives are so cheap these days that anymore you can pick up a 500GB at Frys for <$70. Like many out there, I have several of them. Rather than have all of these drives connected to one PC. I would rather have a small home server. However, I'm not about to pay what HP wants for a Windows Home Server. Essentially the Home Server is a light weight version of Windows Server. So, I've looked for a long time for a small and inexpensive server that provides more functionality than just your basic NAS (Network Attached Storage).
Last week I came across an article on Slashdot regarding a new $100 embedded device designed to run Linux. The device is called a SheevaPlug. The specs for the device are quite impressive as listed below:

  • 1.2Ghz ARM5 processor
  • 512Mb Ram
  • 512Mb Flash
  • 10/100/1000 Ethernet
  • USB 2.0
  • SDIO Slot
  • USB Development Port


Amazingly all this fits into the size of a "wall-wart" as shown in the images below:

 

Here is a block diagram of the internals

 


Out of the box you will need to go through a fairly technical process to install the boot loader and the file system image over the development board.  Once Linux is installed and running you can run the normal software you would expect in a small server Samba, Apache, PHP, MySQL, NFS, etc. Quite a few Linux distributions support ARM processors including Ubuntu and thus can be used on the device. The development kit is available in small quantities through the Marvell site.  I'm pretty sure I'm going to purchase one for myself to use has a light home server and as a remote backup for my virtual server.

By Chris Bennett on 3/4/2009 9:48 PM

Over the last couple of days I started using the iGoogle page. Well, it didn't take me too long to create my first Google Gadget. You can add my FightClub Quotes gadget to your iGoogle page below.


Creating the gadget was much easier than expected. Google has a very nice gadget editor that plugs into the iGoogle page. Basically a gadget is an XML doc with a configuration section and an HTML content section. The gadget also has a fairly simple set of javascript commands that provides access to remote content. One confusing thing I found when I started building the gadget is that there are 2 different APIs. The new and the legacy. My first reaction was to use the new format and go from there; however, currently the new format is not supported. For some reason this is not explained very well. I have a couple ideas for gadgets that I'm going to build. I'll publish them here as I complete them. To start creating your own gadgets click here.

By Chris Bennett on 2/9/2009 11:28 PM

Since my last post, I've been quite busy with family and work. I'm now traveling 4 nights/week until the end of April. On top of that, I've been publishing at least one article per month on developer.com. I also spent quite a bit of time working on another ecommerce site. None the less, I've have a laundry list of things to talk about, so I'll try to go through them.

I'm always looking for something that can improve the performance of Windows. I've always been irritated by the fact that over time windows just slows down through installing apps, registry errors disk defragmentation. Recently, I came by a couple of apps that seems to help the performance quite a bit.

First download/install the following 3 utilities:

 

  • CCleaner - Directory cleaner and registry repeair
  • JKDefrag - Lightweight disk defragmentation
  • PageDefrag - Page File and Registry File Defragmentation


Next perform the following steps:

 

  1. Execute the command "chkdsk /f". When prompted press Y to run chkdsk at reboot. This will run a check on the file system and ensure it does not have any errors.
  2. Upon reboot start CCleaner and click the Clean Button.
  3. Click on the Registry button, and click Scan for Issues and Fix Selected Issues.
  4. Launch JkDefrag.exe.
  5. Upon completion, start Page Defrag. Select the Defrag at next boot and click Ok. Reboot the computer to defragment the Page File, Event Logs and Registry.
  6. After rebooting, launch JkDefrag.exe again to clean up any fragments caused by Page Defrag.


After running these steps, you should notice an improvement in the performance. If you have other tips and tricks for improving performance, please send them over.

By Chris Bennett on 12/12/2008 9:49 PM

Recently, my job has had me traveling quite a bit. So I haven't had much time to actually sit down and write down my thoughts in blog entries. Regardless, for some time I've been searching for good DotNetNuke data modules. Specifically I generally focus on modules which provide the ability to work with data. A couple of weeks ago I stumbled upon the open source module Open Web Studio. Open Web Studio (OWS) is an upgraded version of the ListX module from R2Integrated.


While OWS is open source they do have several different subscription levels. The subscriptions are a bit pricey from my persective; however, I'll let you choose. Mainly the purpose for the subscriptions levels is to provide commercial support. I've been using OWS without a subscription and so far, the user interface is quite good; however, it is quite a powerful and unfortunately has a steep learning curve. Recently a couple of basic videos have been posted to a Wiki on the OWS site. The Wiki so far is an ok reference for the package but not great. I also did some googling which gave me a couple of samples to start looking at. Another good source of information I found was to download a copy of the latest documentation for the ListX package off the dnn.bi4ce.com site.


Unlike other data module for DNN, OWS is extremely flexible in how the data is stored and how the user is able to interact with it. Essentially, OWS is a basic scripting engine. It works off of basic actions such as Query, Template, Email, If, Else, If-Else, Redirect, Variable and Assign, etc. By string together these actions is is possible to make choice based upon query parameters to allow adding/editing/deleting of records as well as data tables. OWS itself does not have a native format for storing data in the DB, instead it uses tables that you create. This provides for much better control and performance over tools such as XMOD.


In playing with OWS, I've create a couple different modules. One of these modules is currently active on this site on the About page labeled articles. While most of the articles module is completely hidden it has a complete admin interface which allows for adding/editing and deleting of articles. I have a couple of other modules that I've started, but are yet to be completed. I almost forgot ... in case you plan to distribute modules you create, there are instructions availabile on the OWS Wiki to create a Private Assembly (PA) for distribution.

In the near future I plan to post these modules to a software page and make them freely available. I have a couple of other things I'll release on the software page including a TCP client. 

By Chris Bennett on 11/6/2008 8:33 PM

Recently it became apparent that I spent my Saturday morning, while I'm coding or surfing, I listen to the exact same podcasts every week. So I thought it would be appropriate for me to list a couple of the my favorite podcasts in a blog entry. In no particular order, here they are:

 

  • This Week in Tech (TWiT) - TWiT is a general technology show where they have multiple people on a panel discussing topics between themselves and with guests. TWiT is absolutely first rate. The show is hosted by Leo Laporte who is excellent technology guy. TWiT is actually a network with a long series of shows including Windows Weekly, The Tech Guy, Daily Giz Wiz, etc. Certainly one of the best I listen to. And to prove advertising works, I recently joined Audible.com using a like from a show a couple of weekends ago and received two free audio books. Check out the TWiT page for the link.
  • Diggnation - Diggnation is a weekly video show on some of the top stories from Digg.com. The show is hosted by Kevin Rose and Alex Albrecht, both of which are very good. During a usual show they talk about the top stories and rarely forget to bring the beer. It is a very good show. Oh and BTW ... Kevin Rose started Digg.com. And again advertizing works, this site is hosted on a virtual server at GoDaddy.com
  • I, Cringely - Bob Cringely certainly has an interesting view on many things. Bob is excellent at thinking out side of the box. I am amazed each week at what he comes up with to solve the latest problem or a new use for some technology. Certainly one to make you think very hard.
  • Cranky Geeks - Cranky Geeks is a video program hosted by John C. Dvorak. Generally they talk about current tech news in a unique fashion. John is a good host who isn't afraid to share some negative opinions.


One of the reasons I signed up for Audible.com is my sister. She is always recommending books to me that I'm very interested in; however, I rarely have time to sit down and read a book. However, I listen to audio books while coding quite often. The book series she turned me on to was "City of Ember". Its a book about a post disaster, 200 year old, underground city that is dying as they are running out of power and supplies. A very interesting book. I also completed the second audio book in the series called "People of Sparks".


Speaking of publications, I just completed an article on Creating your Own Thread Pool for .Net. I'll post a link after the article is live on Developer.com.

By Chris Bennett on 10/8/2008 11:39 PM

Last weekend at the Indy Tech Fest I was talking with Bill Steele regarding the Microsoft Robotics Studio. We started talking a product he came up with called a VirtualHUD he came up with.

Basically the VirtualHUD is a handheld heads up display unit for single engine aircraft. Why single engine? This is the part that I didn't understand at first. The reason for the single engine is that the VirtualHUD projects a heads up display on the back of the propeller. Without a doubt this has to be one of the more interesting ideas I've seen in a while. Bill had a video handy from test run on his plane at night. Quite Impressive, it very clearly projected a horizon line and the other vitals. The item in the video I did not notice at first was the video projected behind the horizon. Yes behind. He has an infrared camera on the plane and it was projecting the live video with the horizon and other information overlay. I'm sure once he is in full production this one will be a big hit in the general aviation industry. Be sure to check out Bill's website to find out more details.

To be able to perform all of the processing necessary Bill's product certainly needs a hefty processor or quite a few small ones. The solution he employed was to use a new processor ironically called The Propeller. The Propeller processor is made by Parallax. Parallax for years has been known for their role in education through their Basic Stamp processor and kits. The Basic Stamp is really an off the shelf processor from another manufacturer that is loaded with a Basic language interpreter. This processor is mounted on a carrier board with the support components (crystal, memory, voltage regulator, etc). The entire package is sold as the Basic Stamp.


The Basic Stamp is a bit expensive for the processing power it offers and its lack of C compiler does not make it an attractive for use in commercial applications. The Propeller processor is a complete new design as it represents Parallax's first custom silicon solution. The Propeller still has some of the hobbyist qualities in that it does have a built in interpreter. This time for a different language Spin. But it also has the ability to execute assembler code something the Basic Stamp lacks. This then opens the door for a 3rd party to create a C compiler. ImageCraft has created a C compiler and it is currently available for roughly $250. The Propeller's architecture is quite unique. Number one it is fast at 80Mhz (20Mips). It is a full 32-bit processor. Oh yeah, and I almost forgot it has 8 cores. Yes, the ability to simultaneously execute 8 threads in a part that is in the $11 range. Below is an image of the architecture of the part.

 


Each of the cores in the processor act independently and each contains 2k of RAM, timers and a Video Generator. Yet another unique feature a Video Generator. Many of the demo boards include connectors for VGA and for an NTSC signal. The cores also share resources including 32k of RAM and IO. The 32k of RAM is used for both data storage and for code space. A central component called the Hub takes care of sharing the resources.

Since the RAM is shared by both data and code it must first be loaded with the application. This is done by pulling the code from an ext ... Read More »

By Chris Bennett on 10/5/2008 10:00 PM

Yesterday, the Indy Tech Fest group put on yet another excellent event. These events certainly do not disappoint. My hat is off to everyone involved in arranging these events. Similar to last year we had a keynote by Buck Foley and Brad Jones. For those of you who have never seen Buck Foley, it truly is a great impression of Chris Farley with a tech spin. For the moment, I'm not able to remember Buck Foley's real name; nonetheless, he is a developer. And after a change of clothes he attends the event with the rest of the crowd. He is an excellent motivational speaker and top notch for developer jokes. Last year I remember his discussion of using LINQ to find a date. If you have the change to see him live, be sure to take advantage of it.

 

This year we had a range of topics from everyday Tip's n Tricks to, Database Optimization, Cloud and Green Computing, Robotics Studio, XNA Studio, SQL 2008, etc.  Certainly a lot to pack into a single day.  My only disappointment is that I was unable to attend a couple of sessions as I either had a conflict with my own presentation or another session I wanted to attend.


About 2 weeks ago I received an email asking if I would present at Indy Tech Fest on VB.NET Tip's and Tricks. In my usual manor I procrastinated and waited until the last minute. And like many of the presentations, I completed mine the morning of the event. I'll send my slide deck to the Indy Tech Fest guys so it can be posted to their site as well, but I wanted to post them here so it could be available sooner. I've posted the slide deck in both PowerPoint 2007 and 2003 versions

VB.NET Tips-n-Tricks PowerPoint 2007 Presentation
VB.NET Tips-n-Tricks PowerPoint 2003 Presentation

Thanks to those of you who attended my presentation.

By Chris Bennett on 9/21/2008 6:21 PM

One of the areas of programming I'm drawn to is in parallel processing. And for the past several years, I've looked for different techniques used for parallel processing. The primary method of parallel processing in .Net are simple threads. Although there is a Thread Pool available for each process it is not all that flexible, nor is it useful for small tasks such as loops. These problem are compounded when you start to look at the computers we use these days. We've begun the transition from a large single core process to smaller dual and quad core processors. This is only the beginning when you consider Intel has prototyped processors with 80 cores.

In order to accommodate this change in processing power as programmers we will need to adapt our programs. A interesting technology that is on the horizon from Microsoft .Net is the Parallel FX Library. It is currently available as a Customer Technology Preview (CTP). It implements a couple of variations on some techniques we use today, including For Each, Do and While loops.

So with the ability to perform parallel loops it allows the most basic of programs to take advantage of these additional processing cores. Of course we as programmers will still need to perform locking on the variables to prevent corruption. I'm definitely looking forward to see this library available for programming our every day apps. Below is a diagram of the Parallel FX Library on top of the .NET Framework 3.5.