tag:blogger.com,1999:blog-95986822024-03-14T01:16:39.626-07:00Got Code?... What?Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-9598682.post-45661429963472517402007-03-16T13:27:00.001-07:002007-03-16T13:27:37.427-07:00Try 2<span xmlns=''><p>Apparently the bugs are not worked out for MS Word Blogging…</p></span>Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0tag:blogger.com,1999:blog-9598682.post-7585720812985592142007-03-14T21:42:00.001-07:002007-03-14T21:42:09.865-07:00Photography Learning – Day 2<span xmlns=''><p>I totally forgot to blog day 1…<br /></p><p><br /> </p><p>In any case, I bought a Nikon D80 and have snapping, snapping, snapping. At the very least, I am impressed that the Panasonic Lumix camera with which I have been taking pictures for the last couple of years does such an amazing job.<br /></p><p>Don't get me wrong – the D80 is <strong>amazing</strong>! I just realized how much the Lumix was assisting me. In short, the Lumix made me think I was a good photographer. <br /></p><p>Allow me to digress to Day 1. It was awesome – I got some killer shots of the daisies on the desk, and of a pigeon in flight: <br /></p><p></p></span>Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0tag:blogger.com,1999:blog-9598682.post-10764213673590390012007-03-12T14:26:00.001-07:002007-03-12T14:26:18.617-07:00Microsoft Support<span xmlns=''><p>It all started Friday – I called Microsoft and opened a paid support case regarding Windows Media Streaming Services 9. It's Monday and I still haven't spoken to anyone regarding my issue. I've been juggled through five different queues, calls have been dropped. I found out that Microsoft can only attempt one phone transfer per call, and if that fails, you have to call back and explain your entire case to them again. Apparently, they can't or don't record notes while they are on the call.<br /></p><p>Did I mention that I am seriously considering learning to speak Indian?<br /></p><p><br /> </p></span>Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0tag:blogger.com,1999:blog-9598682.post-28940413738329437462006-12-03T21:45:00.000-07:002006-12-03T21:49:02.505-07:00ASP.NET 2.0 Password Textbox inside a wizard controlJust wanted to drop myself a note and publish this for everyone else.<br /><br />If you have a text box control, set to password mode and place it within a Wizard control -- you may not end up with a value. It seems that the value will only survive one post back.<br /><br />For security, I think, the folks at Microsoft decided that the password box should only live once....Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0tag:blogger.com,1999:blog-9598682.post-1153691961120088422006-07-23T14:56:00.000-07:002006-11-04T21:14:48.133-07:00pickpocketedI never thought that it would happen to me. I was so vigilant. I dropped my guard for 1 minute and bam! Wallet gone. You wouldn't believe what a pain losing a wallet in a foreign country is... Anyway, for their efforts, they got about 20 bucks and a gucci gift wallet.Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0tag:blogger.com,1999:blog-9598682.post-1125084819604452362005-08-26T12:33:00.000-07:002006-11-04T21:14:48.077-07:00Im back<strong><u>I’m back</u></strong><br/>So after a long break due to getting married, and business I am back on the blog.<br/>Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com1tag:blogger.com,1999:blog-9598682.post-1114328520724623572005-04-24T00:23:00.000-07:002006-11-04T21:14:48.014-07:00ASP.NET 2.0 ~ A Winner<strong><u>Week 1<br /></u></strong>Well, week one developing with ASP.NET 2.0 Beta 2 is in the books. So far, I am extremely impressed. It is finally possible to separate code from content; to develop in an object oriented manner on a web application.<br /><br />Let's face it, developing<em> web applications </em>thus far has looked as much like developing an application, as developing in Apple Basic resembles developing in C#. Up until now, despite the best efforts of ASP, ASP.NET 1.1 and PHP, it has had more to do with scripting that objects.<br /><br />With the aforementioned languages, it was most definitely possible to create robust web applications and even to do it in an object oriented manner, but when you got down to the brass tax it was still a scripted language.<br /><br />I have been coding for 15+ years and I can tell you it has been exciting to watch the emergence of each one of the languages I have learned. I like many developers enjoy learning new languages, especially languages that allow you write elegant code. Of course, elegance is in the eye of the beholder but the language must still allow it.<br /><br />ASP.NET has all but bridged that gap between writing a <em>Windows Forms</em> application and a <em>Web Application</em>. Extensive event handling, rich UI elements, a strong security model, great database connectivity, Master Pages for consistency, and the new adaptive rendering model guarantee ASP.NET's opponents will reconsider using this formidable platform.<br /><br />I should mention, that the .NET Framework 2.0 (Whidbey) in generally is as vastly improved as ASP.NET is in this release. I am impressed with the changes made to this wonderful language. I know that many developers are not happy with some of the new coding semantics introduced by <em>generics </em>and some of the other changes. To those persons, obviously more C# developers thought the benefits outweighed any akwardness related to familiarizing oneself with these new constructs.<br /><br />To the C# team, great job!Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com1tag:blogger.com,1999:blog-9598682.post-1113960848651037522005-04-19T18:34:00.000-07:002006-11-04T21:14:47.952-07:00Arena Wars || Official Website<strong>C# Game Development</strong>
<br /><p>There has been continual debate as to whether or not C# could be used effectively and efficiently to develop a AAA game on top of the .NET platform. The C/C++ die-hards are convinced that it is not possible because of the fact that C# is a managed language.</p>
<br />
<br /><p>Well, C/C++ eat your hearts out. A consortium of German developers has created a game called ArenaWars. It is a RTS (Real Time Strategy) game and it totally kicks ass. Below is the link to the official web site, where you can download a fully playable demo. The demo features on-line multiplayer gameplay, as well as tutorials, and single player missions.</p>
<br />
<br />Good job guys!
<br />
<br /><a href="http://arenawars.krawall.de/eng/index.html">Arena Wars || Official Website</a>Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0tag:blogger.com,1999:blog-9598682.post-1113032846480798312005-04-09T00:34:00.000-07:002006-11-04T21:14:47.836-07:00Uggh! Major Computer Issues!So today started out like any other day. My computer, which is by no means new, starts freezing up intermittently. The old mouse stops moving scenario. At first, it's just a few seconds. A few minutes later its 20 seconds... An hour passes it's 30 seconds. By 3:00pm the computer decided that it had had enough hours of Tribes 2, Visual Studo, MX Studio, and of course DVD movies. It made a sound unlike any I've ever heard one of my computers make. Kind of a <em>woosh </em>mixed with a buzz. I have tried demonstrating the sound for some of my friends and either they aren't impressed or I am just not doing it right.<br /><br />With the work-load on my plate right now, I couldn't just sit there. I called my business partner Aaron, and we talked it over. First was to repair the computer. Was it worth it? It's been on the path of slow demise for awhile, and it's 2 or 3 years old. With the price of computers these days, we decided to get a new one.<br /><img src="http://sethwebster.com/images/Vaio.gif" width="200" align="left" border="0"/><br />I found myself an open-box (bought and returned) Sony Vaio Widescreen. 3.06GHz. This thing kicks ass. 802.11b/g built in. I am sitting on my couch writing this blog entry. How cool is that?<br /><br><br /><br><br /><br><br /><br>Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0tag:blogger.com,1999:blog-9598682.post-1112829278831116262005-04-06T16:10:00.000-07:002006-11-04T21:14:47.776-07:00I speak! Yet again...<strong><u>Web site updates</u></strong><br />I am currenly migrating my entire I/T Infrastructure for Webglimmer to a Windows 2003 Server. As such, my entire Seth Webster web site is down since I host my web site on the business box.<br /><br />I will be using this blog as my soap box for the next month or so, until I have time to put the site back up. I've had this blog for awhile, but haven't really used it. <br /><br />Thanks for stopping by!<br /><br />~ SethSeth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0tag:blogger.com,1999:blog-9598682.post-1106463377160832092005-01-22T23:43:00.000-07:002006-11-04T21:14:47.716-07:00C# Plugin In Architecture<strong><u>Introduction</u></strong>
<br />I have recently started developing an application for a client that allows them to manage various parts of the database that we built for them.
<br />
<br />I am developing the system so that it is auto-updating and also completely plug-in based, in that the application is basically only a stub that loads the plugins.
<br />
<br />I developed it this way for the obvious reason, that since the database and the requirements will be quite fluid, and changing all of the time, I wanted an easy way to roll out changes to them without compromising the original intent.
<br />
<br /><strong><u>Interfaces</u></strong>
<br />I developed the plugin system using a base of interfaces to define the contract between the plugins and the host application. In this manner, we can create a concrete definition of what the application expects from the plug in, and what the plug in can expect from the application.
<br />
<br />1. IPlugin
<br />
<br /><code>namespace NPIMSPI
<br />{
<br />/// <summary>
<br />/// Summary description for IPlugin.
<br />/// </summary>
<br />public interface IPlugin
<br />{
<br />void Initialize(IPluginHost host);
<br />string Name
<br />{
<br />get;
<br />set;
<br />}
<br />PluginTypes Type
<br />{
<br />get;
<br />set;
<br />}
<br />
<br />IPluginHost Host
<br />{
<br />get;
<br />set;
<br />}
<br />
<br />string Author
<br />{
<br />get;
<br />set;
<br />}
<br />
<br />string Version
<br />{
<br />get;
<br />set;
<br />}
<br />
<br />void Show();
<br />
<br />System.Windows.Forms.UserControl MainInterface
<br />{
<br />get;
<br />set;
<br />}
<br />}
<br />}
<br /></code>
<br />This interface defines the base interface from which all plugins will inherit. You can see that it provides a method for Initializing the plugin (<strong>Initialize()</strong>), a method to Show the plugin (<strong>Show()</strong>), and 6 get/set definitions for various properties.
<br />
<br />One notable get/set definition is the MainInterface definition. This is the get/set method that will tell the host application what component to add to the plugin container (in this case a tab control). More on that later.
<br />
<br />2. IPluginHost
<br />
<br /><code>
<br />public interface IPluginHost
<br />{
<br />void Register(IPlugin Plugin);
<br />void SwitchMenu(System.Windows.Forms.MainMenu Menu);
<br />string Request(string Method,NameValueCollection Arguments);
<br />string Request(string Method,string Argument);
<br />string Request(string Method,string Argument,bool CloseOnComplete);
<br />string Request(string Method,NameValueCollection Arguments,bool CloseOnComplete);
<br />void Stop();
<br />void Stop(string Message);
<br />PluginCollection AvailablePlugins
<br />{
<br />get;
<br />set;
<br />}
<br />void CloseWebServiceForm();
<br />}
<br /></code>
<br />
<br />This interface is inherited by the host application. It defines the methods and properties accessible by the plugins. The request methods are there since the plugins communicate through that application to a web service which provides XML results to queries by the plugins. Again, we'll cover this a bit more later.
<br />
<br /><strong><u>Enum - PluginTypes</u></strong>
<br />This enum is simply allows for the plugin to tell the host application what type it is. This is used for when the host application registers the plugin. There are three types at this time; Menuitem, Tabitem, ButtonItem.
<br />
<br /><code>
<br />namespace NPIMSPI
<br />{
<br />/// <summary>
<br />/// Summary description for EnumPluginTypes.
<br />/// </summary>
<br />public enum PluginTypes
<br />{
<br />Menuitem,
<br />Tabitem,
<br />ButtonItem
<br />}
<br />}
<br /></code>
<br /><strong><u>PluginBase</u></strong>
<br />I decided that since most plugins will require much of the same functionality, that I would build a base class from which plugins would inherit. Appropriately named, PluginBase.
<br /><code>namespace NPIMSPI
<br />{
<br />/// <summary>
<br />/// Summary description for PluginBase.
<br />/// </summary>
<br />public class PluginBase : IPlugin
<br />{
<br />#region Private Members
<br />string name;
<br />PluginTypes type;
<br />System.Windows.Forms.UserControl mainInterface;
<br />IPluginHost host;
<br />string version="0.0.0.0";
<br />string author = "undefined";
<br />#endregion
<br />public PluginBase()
<br />{
<br />//
<br />// TODO: Add constructor logic here
<br />//
<br />}
<br />#region IPlugin Members
<br />public virtual void Initialize(IPluginHost host)
<br />{
<br />Console.WriteLine("Init "+this.GetType().ToString());
<br />this.host = host;
<br />}
<br />public string Name
<br />{
<br />get
<br />{
<br />// TODO: Add PluginBase.Name getter implementation
<br />return this.name;
<br />}
<br />set
<br />{
<br />this.name = value;
<br />}
<br />}
<br />public NPIMSPI.PluginTypes Type
<br />{
<br />get
<br />{
<br />// TODO: Add PluginBase.Type getter implementation
<br />return this.type;
<br />}
<br />set
<br />{
<br />this.type = value;
<br />}
<br />}
<br />public virtual void Show()
<br />{
<br />this.Show();
<br />}
<br />
<br />public IPluginHost Host
<br />{
<br />get
<br />{
<br />return this.host;
<br />}
<br />set
<br />{
<br />this.host = value;
<br />}
<br />}
<br />
<br />public string Author
<br />{
<br />get
<br />{
<br />return this.author;
<br />}
<br />set
<br />{
<br />this.author = value;
<br />}
<br />}
<br />public string Version
<br />{
<br />get
<br />{
<br />return this.version;
<br />}
<br />set
<br />{
<br />this.version = value;
<br />}
<br />}
<br />public System.Windows.Forms.UserControl MainInterface
<br />{
<br />get
<br />{
<br />return this.mainInterface;
<br />}
<br />set
<br />{
<br />this.mainInterface = value;
<br />}
<br />}
<br />#endregion
<br />}
<br />}</code>
<br />
<br />The PluginBase is the base class for most plugins, and as you can see inherits from IPlugin. I've implemented the IPlugin members, and created private members to store the information. I've also left the <strong>Show()</strong>, and <strong>Initialize(IPluginHost host); </strong>members virtual so that they may easily be overridden.
<br />
<br /><u>method <strong>Initialize(IPluginHost host)</strong></u>
<br />This method is called as the host application loads the plugin. It passes a IPlugin host to the plugin, so that 2 way communication can be implemented.
<br />
<br />
<br />Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0tag:blogger.com,1999:blog-9598682.post-1103070562741981302004-12-14T17:28:00.000-07:002006-11-04T21:14:47.657-07:00PC Christmas (Comedy)And Joseph went up from Galilee to Bethlehem with Mary, his espoused
<br />wife, who was great with child. And she brought forth a son and wrapped
<br />him in swaddling clothes and laid him in a manger because there was no
<br />room for them in the inn.
<br />And the angel of the Lord spoke to the shepherds and said, "I bring you
<br />tidings of great joy. Unto you is born a Savior, which is Christ the
<br />Lord.
<br />"There's a problem with the angel," said a Pharisee who happened to be
<br />strolling by. As he explained to Joseph, angels are widely regarded as
<br />religious symbols, and the stable was on public property where such
<br />symbols were not allowed to land or even hover.
<br />"And I have to tell you, this whole thing looks to me very much like a
<br />Nativity scene," he said sadly. "That's a no-no, too."
<br />Joseph had a bright idea. "What if I put a couple of reindeer over there
<br />near the ox and donkey?" he said, eager to avoid sectarian strife.
<br />"That would definitely help," said the Pharisee, who knew as well as
<br />anyone that whenever a savior appeared, judges usually liked to be on
<br />the safe side and surround it with deer or woodland creatures of some
<br />sort.
<br />"Just to clinch it, throw in a candy cane and a couple of elves and
<br />snowmen, too," he said. "No court can resist that."
<br />Mary asked, "What does my son's birth have to do with snowmen?"
<br />"Snowpersons," cried a young woman, changing the subject before it
<br />veered dangerously toward religion.
<br />Off to the side of the crowd, a Philistine was painting the Nativity
<br />scene.
<br />Mary complained that she and Joseph looked too tattered and worn in the
<br />picture.
<br />"Artistic license," he said. "I've got to show the plight of the haggard
<br />homeless in a greedy, uncaring society in winter," he quipped.
<br />"We're not haggard or homeless. The inn was just full," said Mary.
<br />"Whatever," said the painter.
<br />Two women began to argue fiercely. One said she objected to Jesus' birth
<br />"because it privileged motherhood." The other scoffed at virgin births,
<br />but said that if they encouraged more attention to diversity in family
<br />forms and the rights of single mothers, well, then, she was all for
<br />them.
<br />"I'm not a single mother," Mary started to say, but she was cut off by a
<br />third woman who insisted that swaddling clothes are a form of child
<br />abuse, since they restrict the natural movement of babies.
<br />With the arrival of 10 child advocates, all trained to spot infant abuse
<br />and manger rash, Mary and Joseph were pushed to the edge of the crowd,
<br />where arguments were breaking out over how many reindeer (or what mix of
<br />reindeer and seasonal sprites) had to be installed to compensate for the
<br />infant's unfortunate religious character.
<br />An older man bustled up, bowling over two merchants, who had been busy
<br />debating whether an elf is the same as a fairy and whether the elf/fairy
<br />should be shaking hands with Jesus in the crib or merely standing to the
<br />side, jumping around likes a sports mascot.
<br />"I'd hold off on the reindeer," the man said, explaining that the use of
<br />donkeys and oxen as picturesque backdrops for Nativity scenes carries
<br />the subliminal message of human dominance. He passed out two leaflets,
<br />one denouncing manger births as invasions of animal space, the other
<br />arguing that stables are "penned environments" where animals are
<br />incarcerated against their will. He had no opinion about elves or candy
<br />canes.
<br />Signs declaring "Free the Bethlehem 2" began to appear, referring to the
<br />obviously exploited donkey and ox. Someone said the halo on Jesus' head
<br />was elitist.
<br />Mary was exasperated. "And what about you, old mother?" she said sharply
<br />to an elderly woman. "Are you here to attack the shepherds as prison
<br />guards for excluded species, maybe to complain that singing in Latin
<br />identifies us with our Roman oppressors, or just to say that I should
<br />have skipped patriarchal religiosity and joined some dumb new-age
<br />goddess religion?"
<br />"None of the above," said the woman, "I just wanted to tell you that the
<br />Magi are here." Sure enough, the three wise men rode up. The crowd
<br />gasped, "They're all male!" And "Not very multicultural!" "Balthasar
<br />here is black," said one of the Magi. "Yes, but how many of you are gay
<br />or disabled?" someone shouted. A committee was quickly formed to find an
<br />impoverished lesbian wise-person among the halt and lame of Bethlehem.
<br />A calm voice said, "Be of good cheer, Mary, you have done well and your
<br />son will change the world." At last, a sane person, Mary thought. She
<br />turned to see a radiant and confident female face. The woman spoke
<br />again: "There is one thing, though. Religious holidays are important,
<br />but can't we learn to celebrate them in ways that unite, not divide? For
<br />instance, instead of all this business about 'Gloria in excelsis Deo,'
<br />why not just 'Season's Greetings'?"
<br />Mary said, "You mean my son has entered human history to deliver the
<br />message, 'Hello, it's winter'?"
<br />"That's harsh, Mary," said the woman.
<br />"Remember, your son could make it big in midwinter festivals, if he
<br />doesn't push the religion thing too far. Centuries from now, in nations
<br />yet born, people will give each other pricey gifts and have big office
<br />parties on his birthday. That's not chopped liver."
<br />"Let me get back to you," Mary said.
<br />Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0tag:blogger.com,1999:blog-9598682.post-1102977272792254342004-12-13T15:33:00.000-07:002006-11-04T21:14:47.595-07:00Welcome to my blog!Welcome to my new Blog!
<br />Seth Websterhttp://www.blogger.com/profile/01187705033445108595noreply@blogger.com0