<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>owenSoft.net - Articles</title>
    <link>http://www.owensoft.net/v4/category/23/</link>
    <description>Reviews, previews and more text</description>
    <language>en</language>
    <generator>http://www.owensoft.net</generator>	
	<image>
		<url>http://www.owensoft.net/favicon.ico</url>
		<title>owenSoft.net</title>
		<link>http://www.owensoft.net/</link>
	</image>

<item>
      <title>Hardwiring: programming the design (tech) (Articles)</title>
      <link>http://www.owensoft.net/v4/item/1011/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;There is a tendancy to write your use case directly into the low level design of the code.  This pattern should be avoided as much as possible because it results in extensive &quot;recoding&quot; whenever high level design changes are made to the program.  The highlevel design is not caved in stone and will most likely change as the system evolves but its core design rearly changes.  It is important for the programmer to identify this core design.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
For example an extreme case can be seen when the previous programmers wrote a screen for the 10 department types that are in the system - assuming that there would only be 10.  As you can see hardcoding or hardwiring your use case rules into your code is not a good thing.  The programmer wrote the code on the &quot;business logic&quot; instead of the &quot;&lt;a rel=&#039;external&#039; href=&#039;/v4/item/719/&#039; title=&#039;system layer&#039;&gt;system layer&lt;/a&gt;&quot;.  &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
It is important to notice that there is a system below the business logic.  This system is what keeps the application simple and stable.  The programer should seek to find the best way to rewrite the highlevel business logic into a stable sub system.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Take for instance the previous example:  you can imagine that the programer got a use-case with 5 rows and 2 column of 10 items.  The programmer looked at the first line of the use case and started coding right away (and in truth and in fact probably coded it in half the time that I would take to code it).  The end result will work and will have the same output but the difference between the 2 approachs to the problem is night and day.  Further down in the project the need MAY arise to add a new type of department.  You should notice that the business logic in the use cases DOES NOT BREAK but the code that was written to implement the use case fails and the blame goes on the programmer even though the programmer did what the use case said should be done.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Another example:  bank type.  You notice that the use cases specify particular actions that occur on certain types of banks.  And these types of banks are hard coded into the system.  Business logic constants are bad design.  This implementation is done like so:&lt;/p&gt;&lt;p&gt;
BANK_TYPE1 = 1&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
SELECT * FROM BANKS, BANK_TYPE WHERE BANK.TYPE_ID =  BANK_TYPE.ID AND TYPE = &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
IF BANK.TYPE == BANK_TYPE1 THEN &lt;/p&gt;&lt;p&gt;
	DO BUSNIESS LOGIC&lt;/p&gt;&lt;p&gt;
END IF&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The shortfall of this type of programming is the SAME as the 10 item example above.  If for instance a new bank type is added that implements the same business logic as that of BANK_TYPE1 then the code will have to be CAREFULLY altered to facilitate the change to the design.  Here is the new code:&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
BANK_TYPE1 = 1&lt;/p&gt;&lt;p&gt;
BANK_TYPE_TWO = 3&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
SELECT * FROM BANKS, BANK_TYPE WHERE BANK.TYPE_ID =  BANK_TYPE.ID AND TYPE =  or TYPE = &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
IF BANK.TYPE == BANK_TYPE1 THEN &lt;/p&gt;&lt;p&gt;
	RETURN (BANK_TYPE1) BUSNIESS_LOGIC1()&lt;/p&gt;&lt;p&gt;
END IF&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
IF BANK.TYPE == BANK_TYPE_TWO THEN &lt;/p&gt;&lt;p&gt;
	RETURN (BANK_TYPE_TWO)  BUSNIESS_LOGIC1()&lt;/p&gt;&lt;p&gt;
END IF&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
In the best case senario the same programmer will be able to remember how the program works and change all the places that need to be changed to fix the problem.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The solution to this problem requires a system level design change that will protect the code (the programmer) from changes/enhancements to the design.  There are many ways that this can be done and the best way often takes more time and therefore the benefits of such an change must be evaluated during development by the programmer.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
---&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The point here is that it that the use cases are not low level designs.  The progammer should ( whenever possible ) try to abstract the effects that changes have on the code which is written, by writing it in a way such that it is flexible enough to absorb business logic/design changes that may occur in the future.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/1011/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2008-03-24 20:22:45</pubDate>
 </item>

<item>
      <title>How to tell if you are an IT person (Articles)</title>
      <link>http://www.owensoft.net/v4/item/924/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Mesha this is for you.  I will try to keep this simple and to the point because some of us like to argue and some of us don&#039;t.  I will start out by listing the qualifications that either by themselves or combined will result is a person who can call themselves a techie or an IT person.  This article is written because I&#039;ve realized that now in Jamaica since it seems that people have started to call themselves &quot;IT persons&quot; without fully clearing the bits or understanding what it actually means.  By IT I mean &quot;Information Technology&quot; or Computer Science or whatever related field you choose. So here now I start with a list.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
You are and IT person IF;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
You like lists.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
You like to play games for long hours, develop habits easily and have at some point in your life completed a mario brothers game.  Though not necessarily beat the game but have tried on multiple occasions.  This is however not limited to video games but anything involving a winner and a loser such as card games and games of luck or skill.  You should be able to play many games at least 3 - not just one that somebody taught you.  And be up for playing ANYTHING that looks like a game that you can win.  Games can include mind games, board games, random text messaging.  Solitaire is not a game.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
IT people like to solve problems and hate doing the same thing twice.  If an activity doesn&#039;t solve some kinda problem that will save somebody &quot;work&quot;, time or money then more than likely you are a &quot;packer&quot;.  If you&#039;ve done it before and are still doing it without improvement then you can&#039;t see the rabbit.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
If you are disgusted by the behaviour of IT people and think that they are lazy, selfish and inconsiderate then you are most definitely not an IT person.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Having an IT degree or qualification or working with computers or teaching does not automatically give you the right to call  yourself and IT person.  You merely &quot;associate&quot; with IT people but you haven&#039;t crossed that line where you start avoiding people and not returning calls.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Working at an IT company doesn&#039;t not make you and IT person.  &lt;/p&gt;&lt;p&gt;
If you ever reach to a state where your too busy to brainstorm a solution to a problem or have a concept in your head that is called &quot;work&quot; such as can be compared to farming, manual labour or mining coal - then more than likely you are in it for the money are not an IT person but rather a slave to the money.  Go and follow your dreams.  No matter how far down the wrong road you&#039;ve travelled - its never too late to turn back.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
IT people do not like to use powerpoint or write lengthy essays.  If you like to write multipage essays then chances are you are not an IT person.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Most IT people that I know like what they do, it might not seem that way but its true.  On the other hand if you would rather be flying around the world, teaching kindergarden, or staring in a rock band then chances are you are not an IT person.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
If your monitor is set to 800x600 then I really don&#039;t know what world your living in.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
If you are confused or fail to see why I would list these things are behavioral patterns of IT people then chances are you cannot relate and are NOT AN IT PERSON.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
This list that I have compiled more than likely is not complete and millions of ways could be found to argue around it.  Whether depending on whether you are a woman or a man or your from the country or whatever - it doesn&#039;t really matter because most people either are who they say they are or are pretending to be a doctor.  To each his own.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/924/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2007-11-25 19:47:55</pubDate>
 </item>

<item>
      <title>Quick: How to setup and run php-apache on win2k sp4 (Articles)</title>
      <link>http://www.owensoft.net/v4/item/782/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Friday, May 18, 2007, 7:15:29 PM&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&quot;for people who have installed something before&quot;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
goto (link)&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
download the last &quot;PHP x.x.x installer&quot;  it should be about 22 mb by now.  Php has 2 streams;  a 4.x stream and a 5.x stream.  Check which version your web host will give you access to.  If your only going to play with it on your machine then just go for the lastest version.  But remember that if you start using features of 5 you might have a little difficulty running it on 4.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Downloading the Apache HTTP Server &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Go to (link) and download the &quot;HTTP Server&quot;.  Which also has 2 streams but the instructions above still apply.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Start installing&lt;/p&gt;&lt;p&gt;
Install the Http Server&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Install Php&lt;/p&gt;&lt;p&gt;
Run the php Installer.  It might ask you to setup a server for ex appache and select the folder which contains the configuration files ( C:Program FilesApache Software FoundationApache2.2htdocs )&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Do not enable all the php modules, pick the ones that you know you want because sometimes the modules have external requirements that may prevent you from starting,&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Got to Start//Programs//Apache and then search the option to restart your http server.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Installation Done&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Goto&lt;/p&gt;&lt;p&gt;
C:Program Files/Apache Software Foundation/Apache2.2/htdocs&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
create a text file&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
call it &quot;p.php&quot;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Edit it with a text editor (preferable editplus from (link) )&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
add this code to the file;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;?&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
phpinfo();&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
?&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
save the file.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
OPen you browser and goto;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
(link)&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
You should see a long purple table with the php logo.  Your good to go.  Setup was successful.  That directory is now your webserver, so can only run php programs from the for now.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
More stuff to do&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
(link)&lt;/p&gt;&lt;p&gt;
►Another problem is that people many times use OLD PHP script that uses &#039;short tags&#039;. That is when the PHP declarative starts with &lt;?. Since at least PHP 4, the default for opening PHP script has been &lt;?php. If you are using script with short tags, then you can do one of two things. Either change ALL of your opening tags to &lt;?php, or edit you PHP.INI file changing short_open_tag to ON. &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Other&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
You might also want to install a database such as Mysql&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
If you run the Mysql 5 install do not enable &quot;strict mode&quot;.  Its really really really strict.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Might also want to get phpmyadmin&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/782/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2007-07-01 15:17:15</pubDate>
 </item>

<item>
      <title>Gene find triggers baldness hope (Articles)</title>
      <link>http://www.owensoft.net/v4/item/750/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Hair loss in humans might be reversible, suggest scientists who have helped create new hair cells on the skin of mice.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
It was thought hair follicles, once damaged, could never be replaced.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
But a University of Pennsylvania, US, team, writing in the journal Nature, says hair growth can actually be encouraged using a single gene. &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Read more &lt;a rel=&#039;external&#039; href=&#039;http://news.bbc.co.uk/2/hi/health/6661849.stm&#039; title=&#039;BBC NEWS | Health | Gene find triggers baldness hope&#039;&gt;BBC NEWS | Health | Gene find triggers baldness hope&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By mad bull on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/750/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2007-05-22 06:51:01</pubDate>
 </item>

<item>
      <title>The System Layer (Tech) (Articles)</title>
      <link>http://www.owensoft.net/v4/item/719/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;In this day and age of highly complex business applications, which encompass a wide array of solutions to real world problems, it is essential to note the importance of application logic.  Application logic or The System Layer is the track on which the business logic of any system must be built so that it travels at a constant, steady and predictable pace.  Applications built on business logic are roll-a-coasters of terror.  It is often easy for a software developer to take the &quot;customer is always right&quot; approach to programming software.  And in so doing build applications that are based entirely on the business logic of the client.  This is a common pitfall which although creates wonderful entity relationship diagrams requires an extensive knowledge of the client business logic to maintain, upgrade and optimize.  You end up in a situation where the application becomes a exquisite dish that must be prepared by a Tibetan monk.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
In a client environment where business logic is often mapped to physical tasks that can range from a very simple process to a complex maze of activities, sustainable applications need to be built on a simple, predictable backbone aka a System Layer.  The system layer is akin to how a computer works with 1s and 0s or in genetics with DNA.  If you want to build an application you are essentially putting together some 1s and 0s.  You use 1s and 0s because its a standard, easy to use and relatively simple setup that the computer and other people already understand.  1s and 0s are a part of what I refer to as &quot;the system layer&quot; - the basic rules on which software is built.  The system layer aims to provide a layer of simplicity to an otherwise complex application.  Keep the application simple at its base and complex in specific branches.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Maybe I am being a bit extreme when I chose to use 1s and 0s as an example.  Say for instance a file in an operating system.  A file at its basic level has no business logic - it can be anything at anytime and the operating system would not careless.  This &quot;carefree&quot; attitude is why operating systems are the most widely used type of software.  In operating systems &quot;business logic&quot; is often implemented at the GUI level.  The act of forcing users to create files that consist of names and extensions is enforced In the &quot;file-browser&quot; but never are the core level.  Operating systems provide a system layer in which your application can operate efficiently - you are a &quot;client&quot; of the operating system.  The operating system can maintain its efficiency by maintaining a stable System Layer.  Building an application on business logic is like building the whole operating system again, but your files are not just files - they are whatever the business logic dictates. This creates a situation in which a rabbit is never really a rabbit unless you know that it is a rabbit.  And in most cases the people who &quot;know&quot; and the people who &quot;want to know&quot; aren&#039;t the same people - in said scenario a rabbit might swim or fly depending on a status, type table, or season.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Application Logic or A System Layer aims to improve stability, predictability, extensibility and maintainability of software application by creating a simple set of fundamental rules upon which business logic is implemented.  All Files have a name, meta data and content.  RABBITS DONOT FLY UNLESS TOLD TO FLY.  Developing a system layer does require research and thought; you must be willing to stick with it FOREVER, through thick and thin, rain or storm.  Bypassing the system layer even a little would be blasphemous.  Unless such a time a rises that a piece of business logic should totally destroy your tracks.  Well built tracks last forever, roads develop potholes.  Keep it simple, open and efficient at its base and finding problems will be easier, isolated and less magical in other areas of the system.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/719/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2007-04-23 21:34:18</pubDate>
 </item>

<item>
      <title>The Sweetest Taboo (Explanation of blog post) (Articles)</title>
      <link>http://www.owensoft.net/v4/item/658/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;This is a sorta explaination of the post &quot;&lt;a rel=&#039;external&#039; href=&#039;/v4/item/655/&#039; title=&#039;The Sweetest taboo&#039;&gt;The Sweetest taboo&lt;/a&gt;&quot; since people didn&#039;t really get it.  You should read that first before venturing off into this.  Most of my posts - well all have 3 paragraphs which often times do not interact.  Avoid trying to make sense of it as a whole.  Sometimes I will make the effort and write a full essay but those times are rare and far between.  Took a couple hours but I&#039;ve managed to link every reference I could find.  I&#039;d like to thank Youtube.com, my mother and all the people who didn&#039;t annoy me.  The notes are * emphased or highlighted in yellow on my site.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The explanation&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The sweetest taboo *reference song &lt;a rel=&#039;external&#039; href=&#039;http://youtube.com/watch?v=1WGR2dvA_xQ&#039; title=&#039;The sweetest taboo&#039;&gt;The sweetest taboo&lt;/a&gt; by Sade Adu&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
*Taboo is noun meaning a social or religious custom prohibiting or restricting a particular practice or forbidding association with a particular person, place, or thing.  Its also from one of my favorite artists Sade Adu.  Its off an album called Promise by Sade.  The &quot;Best of Sade Album&quot; was stolen from a roommate in New York in 2001 - I loved it so much.  The album defined my entire trip.  I was in the Bronx with my grandmother.  Then the whole 9/11 thing happened and I came home a week later.  Watched it live because the other public channels stopped working when they too out the tower.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
submitted on 07th Jan 2007 to Logbook  *first post of 2007&lt;/p&gt;&lt;p&gt;
submitted by owen * I are di one&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Its been sometime since we last spoke.  *reference to a song called &quot;&lt;a rel=&#039;external&#039; href=&#039;http://www.youtube.com/watch?v=eiiU-Fky18s&amp;eurl=&#039; title=&#039;Cupid&#039;s Chokehold&#039;&gt;Cupid&#039;s Chokehold&lt;/a&gt;&quot; by the GymClassHeroes.  In which the protagonist writes to his mother about his love life. Very good song and video. &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
When I was a young boy my momma said to me &quot;There&#039;s only one girl in the world for you and she probably lives in Tahiti &quot;.  *From a song by &lt;a rel=&#039;external&#039; href=&#039;http://www.wrecklesseric.com/&#039; title=&#039;Wreckless Eric&#039;&gt;Wreckless Eric&lt;/a&gt; called &lt;a rel=&#039;external&#039; href=&#039;http://www.wrecklesseric.com/whole_wide_world.htm&#039; title=&#039;Whole Wide World&#039;&gt;Whole Wide World&lt;/a&gt; which I found a &lt;a rel=&#039;external&#039; href=&#039;http://downandoutmusic.wordpress.com/2006/11/09/wreckless-eric-whole-wide-world/&#039; title=&#039;review &amp; mp3&#039;&gt;review &amp; mp3&lt;/a&gt; from the Stranger Than Fiction - Original SoundTrack.  &lt;a rel=&#039;external&#039; href=&#039;http://video.google.com/videoplay?docid=-8068393268110693126&#039; title=&#039;Stranger Than Fiction&#039;&gt;Stranger Than Fiction&lt;/a&gt; is a movie I watched the week before about a Tax auditor who is hearing his life being narrated by a voice in the sky.  Good movie.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Luckily, being as I am, I do not think of it much, illusions of grandeur are not entertained. Only fools rush in. *reference &quot;&lt;a rel=&#039;external&#039; href=&#039;http://youtube.com/watch?v=hmp5mpsDnGc&#039; title=&#039;Can&#039;t help falling in love&#039;&gt;Can&#039;t help falling in love&lt;/a&gt;&quot; by UB40 It is hard to resist like spiked christmas sorrel. It had so much alcohol in it that it didn&#039;t even taste like sorrel. Being red was its only alibi. I poured it half full and attempted to over-power the spirits with ice water like an exorcist. *reference to year&#039;s week post &lt;a rel=&#039;external&#039; href=&#039;http://www.owensoft.net/v4/item/646/&#039; title=&#039;Love is lame&#039;&gt;Love is lame&lt;/a&gt; Little did it do. *Stranger Than Fiction I won&#039;t be your father figure, put your tiny hands in mine.  *reference song &quot;&lt;a rel=&#039;external&#039; href=&#039;http://youtube.com/watch?v=Z64BHHBHT00&#039; title=&#039;Father Figure&#039;&gt;Father Figure&lt;/a&gt;&quot; by George Michaels&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
* The entire second paragraph is about my taboo.  Which ties into the title of the post.  The title of the post usually has nothing to do with the content but this one seemed fitting.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
As I look down in to her eyes and stare. In deep thought about nothing I look fixedly with my eyes wide open until she starts to giggle profusely [] *Something that is profuse is poured out or given freely, often to the point of exaggeration or excess. like a school girl at a fair. A fair that has a bounce-a-bout, merry-go-round and cotton candy. * Refers to Brooks park in Mandeville Jamaica, where I grew up as a child.  You could only get cotton candy at fairs back them  A confused look rolls over her face - trying to fathom my thoughts.  *apparently I confuse people often  At which point I break my silence and move towards her lips, thats all I wanted, its a little bit more than it seems.  *reference to a song  &quot;More Than It Seems&quot; &lt;a rel=&#039;external&#039; href=&#039;http://rcarecords.com/download/cope/morethanitseems.mp3&#039; title=&#039;mp3&#039;&gt;mp3&lt;/a&gt; by &lt;a rel=&#039;external&#039; href=&#039;http://www.google.com/search?hl=en&amp;lr=&amp;safe=off&amp;client=safari&amp;rls=en&amp;q=Citizen+Cope&amp;btnG=Search&#039; title=&#039;Citizen Cope&#039;&gt;Citizen Cope&lt;/a&gt; Sad eyes turn the other way.  * reference &quot;Sad Eyes&quot; by the Bee Gees Let me show you how much I care. *reference &quot;The reasons Unknown&quot; by The Killers As I watch the clock, time slowly drifts *water on, it becomes hard to concentrate.  Something in the way she moves. * reference &quot;&lt;a rel=&#039;external&#039; href=&#039;http://youtube.com/watch?v=wBe85UKa1GQ&#039; title=&#039;Something&#039;&gt;Something&lt;/a&gt;&quot; by the Beatles 1969  Sometimes I find myself lost in the glow of her shiny nose like a meteor drawn dangerously into the earth&#039;s path, emitting light as a result of being heated.  As the separation anxiety *SNES video game with Venom and Spiderman begins to sink in *water, nothing is quite the same but if it makes you happy why are you so sad?  *reference song &quot;&lt;a rel=&#039;external&#039; href=&#039;http://youtube.com/watch?v=Bzn8HbKlAzU&#039; title=&#039;If it makes you happy&#039;&gt;If it makes you happy&lt;/a&gt;&quot; by Sheryll Crow It may take sometime to recover. This has been the worst December ever.  *really  Love me for who I am.  *stop trying to figure me out, I&#039;m not weird&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
It has been a stressful new year. Not counting the people who have been murdered so far. *25 in a week Being murdered I imagine would be more than stressfull. I was just getting accustomed to 2006 when it came to a hard, bitter and infuriating end. No Mavado watch. *christmas present mission influenced by Tash to get myself a watch from a girl for christmas by any means necessary - failed Children killing children while the students rape their teachers. We can&#039;t carry these sins on our back, we gonna swim to the ocean floor, crash to the other shore.  *water *reference &quot;Swim&quot; by Madonna off the Ray Of light Album All we need is love * Beatles and snow * Snow falling in Jamaica would reduce the crime rate - its a theory, I pray for it nightly.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Conclusion&lt;/p&gt;&lt;p&gt;
There you have it, took a while to compile but its done.  Won&#039;t be doing that again.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/658/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2007-01-14 21:06:00</pubDate>
 </item>

<item>
      <title>The Voting Bathroom Analogy (Articles)</title>
      <link>http://www.owensoft.net/v4/item/621/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Voting is like washing your hands in the bathroom, there is no &quot;instant&quot; benefit to it and the &quot;I told you so&quot; that you get is often not a direct fault of not washing you hands but is a fault of going to the bathroom.  It would help if you could avoid the bathroom all-together but most people are born into the bathroom.  Being born into a bathroom offers you advantages which you get because people wash their hands.  Some people just like to wash their hands because it makes them feel good, others wash because they get a bad taste in their mouth when they lick their fingers and some don&#039;t wash at all and choose to live like rebels.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The existence of the bathroom is never really-actually-clearly-significantly defined to those that do not benefit from it.  Worst yet only the people that benefit from the regular use of the bathroom and posses the knowledge of it can efficiently use the bathroom for social gain.  So encouraging others to wash their hands is therefore crucial to these people.  The more people that wash allow the bathroom operates to be in a better position to create social gain from the bathroom.  Because the people who understand the bathroom the most are often the people who built it, they are ever present.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The importance of the bathroom is not understated but is known to almost half the population.  The inner workings of the bathroom are important but the importance cannot be conveyed to the people who willingly or ignorantly do not was their hands.  Lets say that everybody starts to wash their hands; in such a case it would be apparent that the ill effects of not washing you hands would totally disappear.  If it is not possible for everybody to wash their hands and in fact doesn&#039;t matter if everybody washes their hands then the purpose of washing your hands becomes irrelevant.  The proper use of the bathroom seems to be more important.  Therefore, if the bathroom in used correctly then why wash your hands?&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The answer to the question is multifaceted.  Apparently either nobody trusts the bathroom or the bathroom is setup in such away that you have to make a choice.  The choices are always limited.  Limiting the choices seems to be a trend that existed since the beginning of the bathroom itself.  Polar choices are setup, choices are often re-shuffled upon each entrance to the bathroom, the choices are or may appear to be different but you still wash your hands the same way.  The choices are often make to seem obvious but have little to do with the actual outcome in the worst cases.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/621/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2006-11-09 16:13:43</pubDate>
 </item>

<item>
      <title>The Bleach Incident (Articles)</title>
      <link>http://www.owensoft.net/v4/item/485/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;
NK says: hi&lt;/p&gt;&lt;p&gt;
NK says: you there ?&lt;/p&gt;&lt;p&gt;
owen says: sup?&lt;/p&gt;&lt;p&gt;
NK says: I was hospitalized for 2 days... for the first time in Canada&lt;/p&gt;&lt;p&gt;
NK says: that too... with an Ambulance pickup&lt;/p&gt;&lt;p&gt;
NK says: yesterday, I came out of Hos...&lt;/p&gt;&lt;p&gt;
owen says:  :O&lt;/p&gt;&lt;p&gt;
owen says: man, what happened?&lt;/p&gt;&lt;p&gt;
NK says: I was inhaled strong and punget... smell of bleach / Javex&lt;/p&gt;&lt;p&gt;
NK says: which I was not aware .... when I was doing some cleaning  in the bathroom&lt;/p&gt;&lt;p&gt;
NK says: unfortunately, because of winter all the doors and windows were closed...&lt;/p&gt;&lt;p&gt;
NK says: and I fell short of breath....&lt;/p&gt;&lt;p&gt;
owen says: oh,&lt;/p&gt;&lt;p&gt;
NK says: had to run of the house for air.... in  - 12 centigrade..., snow&lt;/p&gt;&lt;p&gt;
NK says: for 30 - 40 min.&lt;/p&gt;&lt;p&gt;
NK says: and finally ran into Hypothermia&lt;/p&gt;&lt;p&gt;
NK says: next door neighbour called the ambulance&lt;/p&gt;&lt;p&gt;
NK says: to rescue the situation&lt;/p&gt;&lt;p&gt;
owen says: man you almost killed you self!&lt;/p&gt;&lt;p&gt;
NK says: I guess....&lt;/p&gt;&lt;p&gt;
NK says: yes&lt;/p&gt;&lt;p&gt;
NK says: it was very unfortuante situation&lt;/p&gt;&lt;p&gt;
owen says: you doing better now?&lt;/p&gt;&lt;p&gt;
NK says: Yeah... I am &lt;/p&gt;&lt;p&gt;
NK says: I still feel fragile...&lt;/p&gt;&lt;p&gt;
NK says: Luckily,... I have healthcard...&lt;/p&gt;&lt;p&gt;
owen says: you&#039;ll be back up to strength in a couple a days&lt;/p&gt;&lt;p&gt;
NK says: and did not incur and bills&lt;/p&gt;&lt;p&gt;
NK says: yes, you are right&lt;/p&gt;&lt;p&gt;
NK says: that would be fair enough time , i guess&lt;/p&gt;&lt;p&gt;
owen says: just rest&lt;/p&gt;&lt;p&gt;
NK says: I want you to post a message on your site - saying that some smart people have to be alert all the time&lt;/p&gt;&lt;p&gt;
NK says: no matter who they are...&lt;/p&gt;&lt;p&gt;
NK says: Lot of intelectual do know certain circumstances...&lt;/p&gt;&lt;p&gt;
owen says: what doesn&#039;t kill you makes you stronger&lt;/p&gt;&lt;p&gt;
NK says: absolutely&lt;/p&gt;&lt;p&gt;
NK says: post message and hep people by alerting.... once in a life time&lt;/p&gt;&lt;p&gt;
NK says: i think you can do that....&lt;/p&gt;&lt;p&gt;
NK says: a simple bleach can put us ... dangerous situation&lt;/p&gt;&lt;p&gt;
owen says: true&lt;/p&gt;&lt;p&gt;
&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/485/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2006-02-09 19:41:56</pubDate>
 </item>

<item>
      <title>How to build a heirarcy with one query (Articles)</title>
      <link>http://www.owensoft.net/v4/item/451/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Generating a tree list / heirarcy without a hundred queries is a problem that I have had since way back in 2002 when I started building the &lt;a rel=&#039;external&#039; href=&#039;/repository/messageboard.php&#039; title=&#039;forum&#039;&gt;forum&lt;/a&gt;.  Running a query for every node in the tree seemed malign to all things database.  Even doing it once and caching the result was not something I would consider a &#039;good fix&#039;.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
I discovered how to solve this problem back in August of 2004 using &#039;by reference&#039; pointers.  Using this method a very large tree can be generated using one query, an array, recursion, and some programming kung-fu.  There is a down fall to this method however i.e. the query has to bring back all the nodes in the tree or else you will end up with missing sections.   A enchanced version is implemented in the &lt;a rel=&#039;external&#039; href=&#039;/v4/sitemap/&#039; title=&#039;sitemap&#039;&gt;sitemap&lt;/a&gt; of this website.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The technique involves a table which has 3 or more columns; id, name, parent.  The &#039;parent&#039; column would be a reference to an id in the same table.  I created the table this way because it makes for simpler queries.  Firstly you run your query and get all your records from the table (downside!).&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
select * from sitemap&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The second step is to loop through each record while placing each item into a array using the id column as the array key.  The section step is to check the parent value and to add a child array to the parent node.  Then whenever a node which has a parent appears a reference is added to that parent node&#039;s child node.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The following code is written in php a C like language.  It should be easily portable to most other language.&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
$os-&gt;execsql2(&quot; select * from sitemap &quot;, &#039;CACHE&#039;); &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
$struct=array();&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
while( $row = $os-&gt;fetch_array() )	{&lt;/p&gt;&lt;p&gt;
   if( !isset( $struct[$row] ) ) {&lt;/p&gt;&lt;p&gt;
	$struct[$row]=array( &#039;id&#039;=&gt;$row, &#039;name&#039;=&gt;$row, &#039;parent&#039;=&gt;$row, &#039;data&#039;=&gt;$row   );&lt;/p&gt;&lt;p&gt;
	   } else {&lt;/p&gt;&lt;p&gt;
		$struct[$row]=$row;&lt;/p&gt;&lt;p&gt;
		$struct[$row]=$row;&lt;/p&gt;&lt;p&gt;
		$struct[$row]=$row;&lt;/p&gt;&lt;p&gt;
		$struct[$row]=$row;&lt;/p&gt;&lt;p&gt;
	   }  &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
      if( $row != 0 ) {&lt;/p&gt;&lt;p&gt;
	  if( !isset($struct[$row]) ) 	  $struct[$row]=array(&#039;id&#039;=&gt;&#039;undefined&#039;,&#039;name&#039;=&gt;&#039;undefined&#039;,&lt;/p&gt;&lt;p&gt;
&#039;parent&#039;=&gt;&#039;undefined&#039;, &#039;data&#039;=&gt;&#039;undefined&#039;);&lt;/p&gt;&lt;p&gt;
	   if( !isset($struct[$row]) )&lt;/p&gt;&lt;p&gt;
 $struct[$row] = array();&lt;/p&gt;&lt;p&gt;
		   $struct[$row][$row]= &amp;$struct[$row];&lt;/p&gt;&lt;p&gt;
	   }&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
   } &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
I could do a part 2 of this article but anyway.  Print the results involves looping through nodes which have parent set to 0.  Then printing the child nodes if any.  You need 2 functions;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
function write_select_struct( $struct, $name ) {&lt;/p&gt;&lt;p&gt;
	print(&#039;&lt;select name=&quot;&#039; . $name . &#039;&quot; &gt;&#039;);&lt;/p&gt;&lt;p&gt;
	foreach ( $struct as $key =&gt; $value) &lt;/p&gt;&lt;p&gt;
		if( $value == 0 ) {&lt;/p&gt;&lt;p&gt;
			print(&#039;&lt;optgroup label=&quot;&amp;nbsp;&quot;&gt;&#039;);&lt;/p&gt;&lt;p&gt;
			write_option_struct($value, &#039;&#039;);&lt;/p&gt;&lt;p&gt;
			print &#039;&lt;/optgroup&gt;&#039;;&lt;/p&gt;&lt;p&gt;
		}&lt;/p&gt;&lt;p&gt;
	print(&#039;&lt;/select&gt;&#039;);&lt;/p&gt;&lt;p&gt;
}&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
function write_option_struct($a, $path) {&lt;/p&gt;&lt;p&gt;
	print(&#039;&lt;option value=&quot;&#039; . $a . &#039;&quot; &gt;&#039;);&lt;/p&gt;&lt;p&gt;
	$path .= $a . &#039; &amp;raquo; &#039; ;&lt;/p&gt;&lt;p&gt;
	print $path . &#039;&lt;/option&gt;&#039;;&lt;/p&gt;&lt;p&gt;
	//$a &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
	if( isset($a) ) {&lt;/p&gt;&lt;p&gt;
		foreach ( $a as $key =&gt; $value) &lt;/p&gt;&lt;p&gt;
			{ write_option_struct( $value, $path ); }&lt;/p&gt;&lt;p&gt;
	}&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
}&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Finally you simple call the function;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
write_select_struct( $struct, &#039;category_id&#039; );&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
which prints out you tree in a drop down list which can be modified into a tanle list or whatever you please.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The original program was implemented in 86 lines total.  Thats it.  Watch your memory.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
DisAdvantages&lt;/p&gt;&lt;p&gt;
In most cases you have to load the entire list in order to biuld the tree.  So very large lists are personally  discouraged if you are using it in real time.&lt;/p&gt;&lt;p&gt;
Missing Parent keys will create undefined links in the tree.&lt;/p&gt;&lt;p&gt;
Multiple functions are annoying.&lt;/p&gt;&lt;p&gt;
The function that initially builds the list is kinda cryptic&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Advantages&lt;/p&gt;&lt;p&gt;
Simple, quick and manageable meaning that once you understand how the code works you can use in varied situations with fewer special attacks.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/451/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2005-11-19 19:41:26</pubDate>
 </item>

<item>
      <title>Standard ASP .NET Namespaces (Articles)</title>
      <link>http://www.owensoft.net/v4/item/443/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;The classes contained in a select number of namespaces are available in your ASP.NET pages by default. (You must explicitly import other namespaces.) These default namespaces contain classes that you use most often in your ASp.NET applications:&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
System&lt;/p&gt;&lt;p&gt;
Contains all the base data types and other useful classes such as those related to generating random numbers and working with dates and times.&lt;/p&gt;&lt;p&gt;
System.Collections&lt;/p&gt;&lt;p&gt;
Contains classes for working with standard collection types such as hash tables, and array lists.&lt;/p&gt;&lt;p&gt;
System.Corrections.Specialized&lt;/p&gt;&lt;p&gt;
Contains classes that represent specialized collections such as linked lists and string collections.&lt;/p&gt;&lt;p&gt;
System.Configuration&lt;/p&gt;&lt;p&gt;
Contains classes for working with configuration files (Web.config files).&lt;/p&gt;&lt;p&gt;
System.Text&lt;/p&gt;&lt;p&gt;
Contains classes for encoding, decoding, and manipulating the content of strings  &lt;/p&gt;&lt;p&gt;
System.Text.RegularExpressions&lt;/p&gt;&lt;p&gt;
Contains classes for performing regular expression match and replace operations.&lt;/p&gt;&lt;p&gt;
System .Web&lt;/p&gt;&lt;p&gt;
Contains basic classes for working with the World Wide Web, including classes for representing browser requests and server responses.&lt;/p&gt;&lt;p&gt;
System.Web.Caching&lt;/p&gt;&lt;p&gt;
Contains classes used or caching classes for performing custom caching operations.&lt;/p&gt;&lt;p&gt;
System.Web.Security&lt;/p&gt;&lt;p&gt;
Contains classes for implementing authentication and authorization such as Forms and Passport authentication.&lt;/p&gt;&lt;p&gt;
System.Web.SessionState&lt;/p&gt;&lt;p&gt;
Contains classes for implementing session state.&lt;/p&gt;&lt;p&gt;
System.Web.UI&lt;/p&gt;&lt;p&gt;
Contains the basic classes used in building the user interface of ASP.NET pages&lt;/p&gt;&lt;p&gt;
System.Web.UI.HTMLControls&lt;/p&gt;&lt;p&gt;
Contains the classes for HTML controls.&lt;/p&gt;&lt;p&gt;
System.Web.UI.WebControls&lt;/p&gt;&lt;p&gt;
Contains the classes for Web controls.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By KMT on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/443/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2005-10-29 01:55:20</pubDate>
 </item>

<item>
      <title>ASP .NET Repeater - rock star hack (Articles)</title>
      <link>http://www.owensoft.net/v4/item/424/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;This article assumes that you are either good at some language and new at ASP.NET.  Or, you are good at ASP.NET and never written anything or whatever.  Anyway I refer to this piece of that I am going to tell you about as a &quot;hack&quot; because I am not very good at ASP.NET and I could not get expert advice on the subject.   So after weeks of mental juggling, reading useless/redundant articles and playing around with Web Matrix, I finally got the Repeater object to work.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Basically the code uses the repeater object to create an array of input fields with which I can dynamically add, update or delete rows while still using ASP.NET web controls which are tied to a 2 dimensional data-source.  In other web development languages you could simply create an array of input fields but I found some issues with doing that in ASP.NET.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The Code&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
The first step is to create a repeater onto a blank page.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Edit the repeater code in source view and add a item tag.  Within the item tag your add web controls etc that you want to be repeated.  Note that the IDs of my web controls are the same as the columns of my data-source.  I use the IDs when I am updating the data-source.  My data-source is a &quot;DataTable&quot; object which is stored in a session variable but it could be a &quot;Arraylist&quot; or something else that is &quot;Bindable&quot;.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Set the web controls to values from your data-source.  Note that Text=&#039;value&#039; uses single quotes.  If you use double quotes then you are going to get a parse error from aspx.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Add event functions to your web controls.  These events need to be monitored so that the appropriate actions can be taken when they are fired.  They work exactly as did before but figuring out which row the event is being fired on is the tricky part.  You will notice that all my text boxes fire the same change event - this is optional.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Write the event code.  You will need a function to delete a row and to update your data-source with changes from the web-controls.  You will also need a function to find out the index of the row on which the event is being fired on.  Once you have the index you can use that to update or delete the corresponding index in your data-source.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
That is basically the gist of it.  Only thing left to do is to save your DataTable to somewhere permanent.  In this example I loop through and print the values in my data-source when you click the save button.  You might (and should) be using something more sophisticated.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Download&lt;/p&gt;&lt;p&gt;
&lt;a rel=&#039;external&#039; href=&#039;/ext/item/repeater.zip&#039; title=&#039;repeater.zip&#039;&gt;repeater.zip&lt;/a&gt; - zip file&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Other Info&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Eventually you might end up working on a datasource which is &quot;live&quot;.  Inorder to keep track of the records which are live and ones that are just added to the form aka &quot;new&quot;.  You might need to have some sort of flag on each row.&lt;/p&gt;&lt;p&gt;
if you need to refer to controls in a row using javascript use this code; &lt;/p&gt;&lt;p&gt;
&lt;%# Container.uniqueid %&gt;:control_name&lt;/p&gt;&lt;p&gt;
&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/424/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2005-09-26 18:38:45</pubDate>
 </item>

<item>
      <title>Getting started in computer programming (Articles)</title>
      <link>http://www.owensoft.net/v4/item/349/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Computer programming in general is about solving problems and avoiding errors.  It is defined as; creating a sequence of instructions to enable the computer to do something&lt;/p&gt;&lt;p&gt;
Computer programs are written by programmers.  Whom spend most of their time trying to figure out the best way to solve a problem using the tools or languages which they know.   Knowing a language is crucial because a programmer will never be able to solve a program problem unless he or she knows how to solve the problem.  So the next question is how does a programmer learn to solve problem?&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Problems usually have many solutions&lt;/p&gt;&lt;p&gt;
The more problems you have solved in the past the easier it is to solve future problems.  In effect the more expirience you have solving problems and writing code - the better programmer you become over time.  Most problems are solved in a number of ways &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Trail and error - spend an amount of time trying different bits of code until you come up with an answer.&lt;/p&gt;&lt;p&gt;
Research - finding somebody or some information on how to solve a problem.&lt;/p&gt;&lt;p&gt;
Experience - you did something similar before so this problem can be solved basically the same way.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Step 1: Getting started&lt;/p&gt;&lt;p&gt;
You need to find a nice little language in which to write your code. Finding a nice language is important.  You should be able to setup and run you program without any help from anybody.  Some people may need programming books or tutorials.  Make sure you have the help files that come with the language so that you can look up the meanings of errors you will encounter.  Nice languages have nice help files that you can read and understand.  Some errors are not in the help and you have to ask a human to explain it.  Seek professional help.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Step 2: Find a problem to solve&lt;/p&gt;&lt;p&gt;
Once you up and running with one or two simple programs you learned in class, tv or got from somebody, you should find yourself a problem to solve.  It is important for you find a problem of your own choosing so that you will be committed to solving it.  It could be a calculator, game or operating system it does not matter - everything starts somewhere.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Step 3: write the program&lt;/p&gt;&lt;p&gt;
Start writing your program.  It may take you 2 days, 2 months or 2 years to solve the problem depending on how big the problem is or how quickly you learn.   In some cases problems are never solved and are left waiting in a file somewhere.  It is important not to rush through when writing your program - keep a steady pace.  If a problem come up often times it is best to just shutdown you machine and go to sleep.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Step 4: Re-write the program&lt;/p&gt;&lt;p&gt;
A program usually never comes to a state of completion.  You will realise that the closer you come to completing it the more new solutions appear.  So you either stop writing the program at some point or you keep messing with it indefinitely.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Step 5: Find another problem&lt;/p&gt;&lt;p&gt;
After you reach a point in your first program and your show it off to your friends, you will need to find a new project to work on.  The more problems you solve the better you will become.  Note that sometimes a problem cannot be completely solved.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/349/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2005-04-13 07:13:45</pubDate>
 </item>

<item>
      <title>How to think like a programmer (Articles)</title>
      <link>http://www.owensoft.net/v4/item/344/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;A good program starts in the head of a programmer.  You first consider whether the problem you are about to solve (aka the program) is impossible to write or not.  In a class situation a teacher will usually give you a solvable problem.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
When given a problem, a lab assignment or whatever, try to break it up into parts.  So parts of a program have to completed before other parts and from this you should be able to figure out where to start writing your program.  Think of it as a river (flow chart) that runs from the top of a mountain down until it reachs the sea.  It is not a lake.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
In most cases your program will involve some sort of menu.  Think of the menu as a series of IF_STATEMENTS.  If one thing happens THEN another thing happens and so on and so forth.  Sometimes only after you start writing the program you will be able to finish it.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Things to do&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Most new programmers often make the mistake of trying to put the entire program into their head - this is not good.  Write little parts of the program one at a time ( in a logical order ).&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Do not write the entire program then try to compile it.  A program works one line at a time.  Start out by writing the first 5 line of the program - then compile.  if java sucks, compile after every 10 lines.  This will help build up your skills and ensure that by the time you reach the end, the program will actually run with out errors.  FIND AND FIX ERRORS AS YOU GO ALONG.  Errors will be harder to find after to finish typing 500 lines.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Look at other peoples code.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Start writing the program&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Copy and paste.  If you have written a similar piece of code before copy it and use it in you new program.  Donot waste time writing it again.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Ask questions though they maybe stupid, its a learning process.  Programmers become better through constant research.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Donot wait until the last minute, the sooner you start - the better.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/344/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2005-03-29 07:14:59</pubDate>
 </item>

<item>
      <title>Software Programming Patterns (Articles)</title>
      <link>http://www.owensoft.net/v4/item/319/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;It is important to understand why some programmers write code differently from other programmers and the reasoning behind each block or section of code.  This article is not directed at any particular language or style of programming, it is a discussion of the differences computer code which is written to solve various problems.  The patterns may overlap but nothing is ever defined specifically and are to be considered as a general overview.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Error Reduction&lt;/p&gt;&lt;p&gt;
At some point code may be written in order to reduce errors that may arise at a late point in time.  In a computer program a error can arise at any point in anytime and for any random reason.  In order to reduce the effects of such an occurrence some parts of a program might be written in order to reduce the effect of such an error.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Read Ability&lt;/p&gt;&lt;p&gt;
The code is written so that it is easy to read by anybody that may happen to decide to read it at some point in the future.  Sometimes also referred to as clean code but clean code is also relative to the experience of the reader.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Efficiency&lt;/p&gt;&lt;p&gt;
The code is written so that it can make the best use of computer resources.  This does not necessarily mean it is fast, easy to read or reduces possible errors.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Speed&lt;/p&gt;&lt;p&gt;
Falls under 2 forms speed of execution and speed of development.  Speed of execution involves writing the program so that it can run as fast as possible in the expected operating environment.  Speed of development means it is written so the application can evolve or change at a high rate.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Simplicity&lt;/p&gt;&lt;p&gt;
The code is written so that it is simple.  Simplicity is relative but usually it spreads rapidly.  Simple to read, update, integrate, extend etc.  &lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Stability&lt;/p&gt;&lt;p&gt;
The code is written so that it does not crash easily either by internal or external forces.  Usually maximizing scalability and robustness.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Reusability&lt;/p&gt;&lt;p&gt;
The code is written so that it can not only be used to solve the current problem but many future problems as well.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Friendliness&lt;/p&gt;&lt;p&gt;
Code usually falls into 2 forms programmer friendly and user friendly.  The first form is code written in order to make it easier to re-write or update.  While the second form is directed towards code written in order to improve user interface efficiency.  Code can also be language friendly, hardware friendly, etc.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Dependency&lt;/p&gt;&lt;p&gt;
Often times code is written so that it is very dependent or very independent for whatever reason.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
Conclusion&lt;/p&gt;&lt;p&gt;
The patterns outlined are usually not mutually exclusive and it is often not possible to maintain a constant pattern through out an application.   As to whether a pattern is more advantageous than another is dependent on several variables.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By owen on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/319/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2005-01-26 21:51:34</pubDate>
 </item>

<item>
      <title>Online Infidelity or Cyber affair (Articles)</title>
      <link>http://www.owensoft.net/v4/item/293/</link>		
	  <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;We have all experienced the joys of online communication, where we communicate with friends, family and meet new people from near and far without leaving the comfort of our homes or offices. There is a growing trend for people in relationships to create intimate relations through cyberspace, this includes; cyber sex, e-mail and cheating via on-line chats, this is called Online Infidelity/Cyber affair. A survey done by MSNBC and Elle Magazine of people using the internet found that 10 percent of women and 19 percent of men, when online say they are single although they are not. Another study conducted by Psychologist Dr. Beatriz Mileham showed that approximately 30 percent of cyber affairs end up in a real-world affair. These online relationships start as innocently as, “How are you?” and can escalate from there to &quot;are you spending the night?”.&lt;/p&gt;&lt;p&gt;
The number of victims of Cyber Affair is on the rise, that is why I must share with you three Tell-Tale Signs that may be present if your partner (spouse) is having a Cyber affair, they are; (1) a change in your partner’s sleep patterns (2) a demand for privacy when using the PC and (3) ignored household chores. I will now explore these signs in detail.&lt;/p&gt;&lt;p&gt;
(1) Change in your partner’s sleep patterns - Chat rooms and meeting places for cyber sex don&#039;t heat up until late at night, so the cheating partner will tend to stay up late to be a part of the action. Often, the partner suddenly begins coming to bed in the early-morning hours, and may leap out of bed an hour or two earlier in the mornings and bolt to the computer for a pre-work quickie.	&lt;/p&gt;&lt;p&gt;
(2) A demand for privacy when using the PC- With cyber affair cheaters usually search for greater privacy and secrecy surrounding their computer usage. The computer may be moved from a visible place to a secluded corner, password may be changed, and all online activities conducted in secrecy.  If interrupted when online, the cheating partner may react with anger, defensiveness or quickly close the pages.		&lt;/p&gt;&lt;p&gt;
(3) Ignored household chores - When on-line time increases, household chores often go undone. That&#039;s not automatically a sign of a cyber affair, but in a relationship those dirty dishes, piles of laundry, and un-mowed lawns might indicate that someone else is competing for your partner’s attention. When your partner begins to invest more time and energy on-line and fails to keep up their end of the household bargain, it could signal that an on-line relationship is going on.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
In closing, Cyber affairs are becoming very prominent so ladies and gentlemen if you see a change in you partner’s sleeping habits, a demand for privacy while using the PC and household chores been ignored, chances are “you a get bun online”. My friends open your eyes to these signs, and don’t be like Paul a friend of mine who saw the signs and choose to ignore them, he is now single not by choice but because of a cyber affair, don’t let this happen to you.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;By Daimion on Articles&lt;/strong&gt;  &lt;!-- &lt;a href=&quot;http://www.owensoft.net/v4/item/293/#comment&quot;&gt;Post your comments on this article&lt;/a&gt; --&gt;&lt;/p&gt;</description>
	  <pubDate>2004-12-07 14:09:53</pubDate>
 </item>

  </channel>
</rss>
