<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4193594047334486267</atom:id><lastBuildDate>Fri, 13 Sep 2024 20:41:25 +0000</lastBuildDate><category>c#</category><category>Cisco</category><category>MikroTik</category><category>Network</category><category>OSPF</category><category>RouterOS</category><category>array list</category><category>context menu</category><category>email</category><category>event handler</category><category>image</category><category>memory leak</category><category>outlook</category><category>remove duplicates</category><category>webbrowser</category><title>Idiots guide to ICT engineering</title><description>networking, code snippets, PACS, RIS and other random IT stuff.</description><link>http://ict-engineer.blogspot.com/</link><managingEditor>noreply@blogger.com (g)</managingEditor><generator>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-1398408599211410154</guid><pubDate>Wed, 28 Sep 2011 09:10:00 +0000</pubDate><atom:updated>2011-09-28T11:39:54.592+02:00</atom:updated><title>How to point Trend OfficeScan clients to new server</title><description>After losing our Trend OfficeScan/WSUS/Intranet/App server in an unfortunate idiot accident our department was left with the scattered remains. We had to install OfficeScan on a new server and update the client machines to reflect the new hostname and port settings. A quick and dirty solution was to use PsExec and execute the Trend IpXfer.exe tool. And Im all about quick and dirty :) First I copied the IpXfer tool to our domain controller netlogon folder. This will ensure that clients choose the closest DC to execute IpXfer.&lt;div&gt;I then ran the following command : psexec \\* -u &lt;b&gt;domain\administrator&lt;/b&gt; -p &lt;b&gt;yourpw&lt;/b&gt; &quot;&lt;b&gt;\\domain.co.za\netlogon\trend client update\ipxfer.exe&lt;/b&gt;&quot; -s &lt;b&gt;trendserverip &lt;/b&gt;-p &lt;b&gt;8080&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;PsExec will now merrily enumerate your domain and update your OfficeScan clients. Don&#39;t worry if you see an &quot;Error code 0 exit&quot; error, the clients should still update. You have the option of specifying a file with a list of IPs or single hosts if the big bang approach is too cavalier for you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hope this saves someone some time...sometime.&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2011/09/how-to-point-trend-officescan-clients.html</link><author>noreply@blogger.com (g)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-7865865885548297805</guid><pubDate>Wed, 14 Sep 2011 14:14:00 +0000</pubDate><atom:updated>2011-09-14T16:17:41.747+02:00</atom:updated><title>Best colour laser printer for printing x-rays?</title><description>Does anyone out there have experience in implementing a paper printing solution for a busy radiology department? Any pitfalls to avoid? I&#39;m currently looking at a couple of options,  notably Xerox and HP but if you can make any other suggestions I would really appreciate it.</description><link>http://ict-engineer.blogspot.com/2011/09/best-colour-laser-printer-for-printing.html</link><author>noreply@blogger.com (g)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-4951389109051029955</guid><pubDate>Tue, 15 Mar 2011 13:05:00 +0000</pubDate><atom:updated>2011-03-15T15:13:35.582+02:00</atom:updated><title>iPad iOS 4.3 update problems</title><description>I recent got an iPad for a work project - as if I was going to pay for it myself... Today I tried to update its iOS version to 4.3. After numerous failed attempts through iTunes (kept on getting a 9006 unspecified error of some sorts), I found a link to a &lt;a href=&quot;http://techie-buzz.com/how-to/how-to-update-ios-4-3-itunes-manually.html&quot;&gt;forum&lt;/a&gt; where many fellow South Africans complained about the same issue. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I followed the instructions and finally got iOS upgraded. You can download the 4.3 file from:&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://appldnld.apple.com/iPhone4/041-0329.20110311.Cvfre/iPad1,1_4.3_8F190_Restore.ipsw&quot;&gt;http://appldnld.apple.com/iPhone4/041-0329.20110311.Cvfre/iPad1,1_4.3_8F190_Restore.ipsw&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One thing to note though, the update will download a .zip file. Simply rename the extension to .ipsw and proceed with the manual update.&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2011/03/ipad-ios-43-update-problems.html</link><author>noreply@blogger.com (g)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-1660979368416349655</guid><pubDate>Mon, 07 Feb 2011 20:02:00 +0000</pubDate><atom:updated>2011-02-07T22:08:32.338+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">c#</category><category domain="http://www.blogger.com/atom/ns#">email</category><category domain="http://www.blogger.com/atom/ns#">image</category><category domain="http://www.blogger.com/atom/ns#">outlook</category><title>C# &amp; Outlook: Insert image in email body</title><description>&lt;div&gt;Haven&#39;t posted in a while...I blame it on being lazy. Which is not a bad thing, I always maintain a lazy IT guy is a damn effective IT guy. But I&#39;m veering off topic now.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Figured something out today that might be useful. As you may know there are a few ways of sending mail with your C# app. You can use straight SMTP or you can integrate with various other email clients. The nice feature of the latter method being you&#39;ll have a record of the email in your Sent Items. By the way I use Outlook 2007 so for the purpose of this article. Setting up the basic integration is pretty easy so I&#39;m gonna skip that - have a look at http://support.microsoft.com/kb/310262 for info on how it works. Make sure you use an HTML body type. My problem was getting an image (in my case, logo) into the body of the email. It turned out to be as easy as referencing an image in the file system in an img tag, for example:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&amp;lt;img src=&quot;&quot; + Application.StartupPath + &quot;\Images\logo.png&quot; + &quot;&quot; align=&#39;baseline&#39; border=&#39;0&#39; /&amp;gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Till next time, whenever that may be.&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2011/02/havent-posted-in-while.html</link><author>noreply@blogger.com (g)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-8293963218707374966</guid><pubDate>Fri, 15 Oct 2010 13:28:00 +0000</pubDate><atom:updated>2010-10-15T15:41:03.652+02:00</atom:updated><title>Visual Studio Express hangs!</title><description>I run VS C# 2010. For some reason my IDE started hanging for 2 minutes every time I start to debug as well as when I exit my app. I didn&#39;t encounter any problems when running the app from install. Before I Googled it, I just deleted the contents of the debug and release folders which sorted out the problem. My guess is vshost, used during debugging, somehow got corrupted. &lt;div&gt;Hope it works for you.&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2010/10/visual-studio-express-hangs.html</link><author>noreply@blogger.com (g)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-935493004159856368</guid><pubDate>Thu, 14 Oct 2010 18:06:00 +0000</pubDate><atom:updated>2010-10-14T20:35:24.607+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">c#</category><category domain="http://www.blogger.com/atom/ns#">context menu</category><category domain="http://www.blogger.com/atom/ns#">event handler</category><title>Building a C# context menu at runtime</title><description>&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;I know this is a very basic topic, but I&#39;m pretty sure someone will find a use for it.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;This example takes a result set (res.Rows) and builds a context menu with hyperlinks loaded in the tag property. When you click on the menu item, it that loads the link in a webbrowser control. Remember to set the context menu property of the control you want to associate the menu with. The code is self-explanatory.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;foreach (DataRow r in res.Rows)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;       ToolStripMenuItem mnuItem = new ToolStripMenuItem();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;       mnuItem.Text = r[1].ToString();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;       mnuItem.Tag = @&quot;http://serverIP/website/&quot; + r[3].ToString();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;       mnuItem.Image = Properties.Resources.ImageName;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;       mnuItem.Click += new EventHandler(ContextMenuItemClick);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;       cmnuOptions.Items.Add(mnuItem);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;private void ContextMenuItemClick(object sender, EventArgs e)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;       ToolStripMenuItem clicked = sender as ToolStripMenuItem;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;       webReferral.Navigate(clicked.Tag.ToString());&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;       &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2010/10/i-know-this-is-very-basic-topic-but-im.html</link><author>noreply@blogger.com (g)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-3364121967578673375</guid><pubDate>Thu, 14 Oct 2010 13:16:00 +0000</pubDate><atom:updated>2010-10-16T22:40:12.606+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">c#</category><category domain="http://www.blogger.com/atom/ns#">memory leak</category><category domain="http://www.blogger.com/atom/ns#">webbrowser</category><title>.Net Webbrowser control memory leak</title><description>If you are wondering why your .net webbrowser controls are drilling your RAM, then this article is for you. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/88c21427-e765-46e8-833d-6021ef79e0c8&quot;&gt;http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/88c21427-e765-46e8-833d-6021ef79e0c8&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mike_T2E&#39;s code did the trick for me.&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2010/10/net-webbrowser-control-memory-leak.html</link><author>noreply@blogger.com (g)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-5595739935112150655</guid><pubDate>Sun, 18 Oct 2009 21:22:00 +0000</pubDate><atom:updated>2009-10-18T23:22:57.137+02:00</atom:updated><title>NGN Hacked!</title><description>&lt;p&gt;Sunday night and I&#39;m casually browsing the net and decided to check up on my mates&#39; golf handicaps. This is what I stumbled on...&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_zrmta3SNusE/StuHJ6Ox-AI/AAAAAAAAAB8/1ItQquPPk_A/untitled%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px&quot; border=&quot;0&quot; alt=&quot;untitled&quot; src=&quot;http://lh6.ggpht.com/_zrmta3SNusE/StuHLyr_x0I/AAAAAAAAACA/qV5FljKqy7c/untitled_thumb%5B1%5D.jpg&quot; width=&quot;215&quot; height=&quot;252&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The National Golf Network website (&lt;a href=&quot;http://www.ngn.co.za&quot;&gt;www.ngn.co.za&lt;/a&gt;) was hacked! NGN currently holds the contract to manage golf handicaps for the South African Golf Association. They have been under pressure of late, with rival companies bidding for the soon to be expired contract. This rather embarrassing situation obviously doesn&#39;t do their reputation any good.&lt;/p&gt;  &lt;p&gt;I hope the damage is limited to defacing only and that the central handicap database remains untouched. Although, I could do with a lower handicap myself...&lt;/p&gt;  </description><link>http://ict-engineer.blogspot.com/2009/10/ngn-hacked.html</link><author>noreply@blogger.com (g)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_zrmta3SNusE/StuHLyr_x0I/AAAAAAAAACA/qV5FljKqy7c/s72-c/untitled_thumb%5B1%5D.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-8668966778110174164</guid><pubDate>Tue, 29 Sep 2009 07:00:00 +0000</pubDate><atom:updated>2009-09-29T09:00:49.256+02:00</atom:updated><title>Happy Holidays – The Google Trends Experiment</title><description>&lt;p&gt;We picked up on an interesting trend while playing around with Google Trends today. And to be honest I am not at all surprised with the results…&lt;/p&gt;  &lt;p&gt;We were comparing the search popularity of a few programming languages when I noticed a marked decrease in searches around the holiday periods for all languages. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_zrmta3SNusE/SsGwktkD6PI/AAAAAAAAABs/F-OQhtEhjts/s1600-h/1%5B2%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;1&quot; border=&quot;0&quot; alt=&quot;1&quot; src=&quot;http://lh5.ggpht.com/_zrmta3SNusE/SsGwl3qMDkI/AAAAAAAAABw/QmCO3lZWfaw/1_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;175&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Low and behold, what happens when you add Porn to the mix…&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_zrmta3SNusE/SsGwm1SBSII/AAAAAAAAAB0/Pa1rAXkeCfY/s1600-h/2%5B2%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;2&quot; border=&quot;0&quot; alt=&quot;2&quot; src=&quot;http://lh4.ggpht.com/_zrmta3SNusE/SsGwn9Lb19I/AAAAAAAAAB4/YIym9bU8QH8/2_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;183&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now we know what programmers do when they are on leave!   &lt;br /&gt;Get some sun dudes!&lt;/p&gt;  </description><link>http://ict-engineer.blogspot.com/2009/09/happy-holidays-google-trends-experiment.html</link><author>noreply@blogger.com (g)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_zrmta3SNusE/SsGwl3qMDkI/AAAAAAAAABw/QmCO3lZWfaw/s72-c/1_thumb.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-653723353349737660</guid><pubDate>Wed, 15 Jul 2009 12:23:00 +0000</pubDate><atom:updated>2009-07-15T14:23:14.295+02:00</atom:updated><title>Google Adsense now in Rands</title><description>&lt;p&gt;This would probably mean that you can see your Adsense earning in your local currency wherever you may be. Awesome, just makes it look like so much more. $1 US = R8.15 South African Rand. Now if you were living in Zimbabwe… $1 US = Z$ 442.60 Zimbabwe Dollar!&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  </description><link>http://ict-engineer.blogspot.com/2009/07/google-adsense-now-in-rands.html</link><author>noreply@blogger.com (g)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-3455446040163072267</guid><pubDate>Fri, 03 Jul 2009 08:31:00 +0000</pubDate><atom:updated>2009-07-03T10:31:26.521+02:00</atom:updated><title>Custom Application Deployment through Active Directory</title><description>&lt;p&gt;I write various custom apps for our SME (Small to Medium Enterprise) to try and make our users’ lives easier. And make mine difficult in the process… I use C# Express Edition 2008 which doesn’t give you the ability to create a install project. You can publish the project but I find it very limiting plus you can’t create an msi package to roll out with Active Directory. &lt;/p&gt;  &lt;p&gt;This got me started on an app to manage distribution of my custom apps better. I created a wizard interface that lets you create a “Project” and a generic remote path (I use the c$ share e.g. \\hostname\c$\projectname\). Next, browse and select the files associated with the project ie. executable, dlls, etc. In my case, I just link to the files in my Visual Studio created project “release” folder. Finally, the app gets a list of domain computers and you can select which hosts to roll out to. All the information is stored in a textfile.   &lt;br /&gt;The main interface lets you select a saved project and verify if the associated files (File.Exists) and hosts (with Ping) are available. If you are happy just click Deploy and Bobs your uncle. The files will copy to the selected hosts and you have the option of creating Desktop and Startup shortcuts. And you can do all this without even having to explain to a user how to run an installation… &lt;/p&gt;  &lt;p&gt;I am not going to publish this app yet purely because its customized for my organisation and I don’t have time to write the app flexible enough. I will however send *edited* source code to anybody that could find it useful, just leave a comment.&lt;/p&gt;  </description><link>http://ict-engineer.blogspot.com/2009/07/custom-application-deployment-through.html</link><author>noreply@blogger.com (g)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-4496677656077132588</guid><pubDate>Wed, 01 Jul 2009 07:40:00 +0000</pubDate><atom:updated>2009-07-01T09:46:12.684+02:00</atom:updated><title>C# Context Menu on ListViewItem</title><description>&lt;p&gt;The problem when assigning a context menu directly to a ListView control is that the menu show everywhere on the control. This can be quite irritating if you just want it to show when you rightclick on a listviewitem. Below is example code to overcome the problem. Assign a contextmenu to the listview control and create a menuitem. In this example the listview contains a list of network host names/IPs, on rightclick it will show a context menu to browse to the c$ share of the host. I know its not the most elegant solution, but it works. Just note, the menu location offsets may need some tweaking.&lt;/p&gt;  &lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;       private void &lt;/span&gt;lvwHosts_MouseUp(&lt;span style=&quot;color: blue&quot;&gt;object &lt;/span&gt;sender, &lt;span style=&quot;color: #2b91af&quot;&gt;MouseEventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style=&quot;color: #cc001f&quot;&gt;//Check if right clicked on a ListView Item&lt;br /&gt;            &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;if &lt;/span&gt;((lvwHosts.SelectedItems.Count != 0) &amp;amp;&amp;amp; (e.Button == &lt;span style=&quot;color: #2b91af&quot;&gt;MouseButtons&lt;/span&gt;.Right))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style=&quot;color: #cc001f&quot;&gt;//Create a new point relative to form and listview locations + offset&lt;br /&gt;                &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Point &lt;/span&gt;mousePoint = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Point&lt;/span&gt;();&lt;br /&gt;                mousePoint.X = &lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;.Location.X + lvwHosts.Location.X + e.Location.X + 25;&lt;br /&gt;                mousePoint.Y = &lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;.Location.Y + lvwHosts.Location.Y + e.Location.Y + 55;&lt;br /&gt;                &lt;br /&gt;                &lt;span style=&quot;color: #cc001f&quot;&gt;//Show context menu &lt;br /&gt;                &lt;/span&gt;cmnBrowse.Show(mousePoint);&lt;br /&gt;                &lt;span style=&quot;color: #cc001f&quot;&gt;//Change text of current menu item to relevant path&lt;br /&gt;                &lt;/span&gt;cmnBrowse.Items[0].Text = &lt;span style=&quot;color: #17a22d&quot;&gt;@&amp;quot;Browse to \\&amp;quot; &lt;/span&gt;+ &lt;br /&gt;                    lvwHosts.SelectedItems[0].Text + &lt;span style=&quot;color: #17a22d&quot;&gt;@&amp;quot;\c$&amp;quot;&lt;/span&gt;;&lt;br /&gt;                &lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;private void &lt;/span&gt;browseToCToolStripMenuItem_Click(&lt;span style=&quot;color: blue&quot;&gt;object &lt;/span&gt;sender, &lt;span style=&quot;color: #2b91af&quot;&gt;EventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;string &lt;/span&gt;path = sender.ToString();&lt;br /&gt;            &lt;span style=&quot;color: #cc001f&quot;&gt;//Remove the &amp;quot;Browse to&amp;quot; substring&lt;br /&gt;            &lt;/span&gt;path = path.Remove(0, 10);&lt;br /&gt;            &lt;span style=&quot;color: #cc001f&quot;&gt;//Start explorer&lt;br /&gt;            &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Process&lt;/span&gt;.Start(&lt;span style=&quot;color: #13a61b&quot;&gt;&amp;quot;explorer.exe&amp;quot;&lt;/span&gt;,path);&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;a href=&quot;http://11011.net/software/vspaste&quot;&gt;&lt;/a&gt;  </description><link>http://ict-engineer.blogspot.com/2009/07/c-context-menu-on-listviewitem.html</link><author>noreply@blogger.com (g)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-7785042134206741160</guid><pubDate>Tue, 27 Jan 2009 09:39:00 +0000</pubDate><atom:updated>2009-01-27T11:39:31.809+02:00</atom:updated><title>QoS curveball</title><description>&lt;p&gt;This is one of those random head scratchers that can frustrate you for a day, and if you are lucky enough to solve the mystery, make you go &amp;quot;What the hell!!??&amp;quot;.&lt;/p&gt;  &lt;p&gt;We have a hybrid VOIP system, which basically connects existing POTS infrastructure to IP Gateways handling inter-branch communication on IP infrastructure. We installed our first pure IP phones at a new branch last week. Unfortunately we had to connect these phones to a very basic switch. The telecomms company involved with the installation gave our IT Dept a call, saying they cannot access the IP phone&#39;s web interface from a PC connected on the same switch. Huh? Ping? Nope. Ok try another workstation on the same switch. Success. Huh? Try first workstation again. Nope. WTF!!! Try from a server on another switch at the same branch. Success. Try from the router connected to that same switch. FAIL. Damn....&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_zrmta3SNusE/SX7WR0U5RCI/AAAAAAAAABc/qxS3snm8tVw/com%20problem%5B2%5D.jpg&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;132&quot; alt=&quot;com problem&quot; src=&quot;http://lh3.ggpht.com/_zrmta3SNusE/SX7WSgNqHGI/AAAAAAAAABg/2xsejY1vZHA/com%20problem_thumb.jpg&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We were baffled. To cut a long story short, I managed to get comms up and running after disabling Layer 2 QoS on the Siemens admin interface.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_zrmta3SNusE/SX7WTgJqDFI/AAAAAAAAABk/-olqTi_aorI/cfg%5B2%5D.jpg&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;143&quot; alt=&quot;cfg&quot; src=&quot;http://lh4.ggpht.com/_zrmta3SNusE/SX7WUfdYreI/AAAAAAAAABo/pI1_3AuBA74/cfg_thumb.jpg&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I dont know how this will affect voice quality yet. In a low volume environment such as ours I&#39;m sure it should be just fine. The other option is of course to buy a proper QoS switch....   &lt;br /&gt;The thing is, I still cant figure out why certain workstations (standard XP Pro) were able to communicate with the IP phone while others couldn&#39;t. Maybe someone has can shed some light?&lt;/p&gt;  </description><link>http://ict-engineer.blogspot.com/2009/01/qos-curveball.html</link><author>noreply@blogger.com (g)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_zrmta3SNusE/SX7WSgNqHGI/AAAAAAAAABg/2xsejY1vZHA/s72-c/com%20problem_thumb.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-9012476069777603226</guid><pubDate>Tue, 20 Jan 2009 20:31:00 +0000</pubDate><atom:updated>2009-01-20T22:31:06.312+02:00</atom:updated><title>ASP.net and AJAX made simple</title><description>&lt;p&gt;Our practice is just about ready to make the BIG decision on a proposed PACS implementation. So before the PACS tidal wave drowns our little IT Department, I managed to find something interesting to keep me occupied.    &lt;br /&gt;This week I stumbled across a website offering a host of video tutorials on Microsoft ASP.net&#39;s AJAX implementation. Now I know very well that this is nothing new, but its still new to me! During my undergrad studies we had a 6 month course on ASP.net which I passed by the skin of my teeth, to this day I still don&#39;t know how seeing as though I barely studied for the exam...So my ASP skills is rusty to say the least. &lt;/p&gt;  &lt;p&gt;Luckily Joe Stagner and his team from Microsoft has done an excellent job making it really easy with step by step instructional videos to create rich data driven web apps. Although I am a big fan of Open Source, doing most of my recent web dev in PHP and MySQL, it is still very useful to know what&#39;s out there in order to chose which platform best suits your needs.&lt;/p&gt;  &lt;p&gt;I compiled a short list of tools you&#39;ll need to get cracking:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&amp;#160;&lt;a href=&quot;http://www.microsoft.com/express/download/&quot; target=&quot;_blank&quot;&gt;Microsoft Visual Studio Web Developer Express Edition SP1&lt;/a&gt; (includes AJAX extensions bundled with .NET Framework 3.5)&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/express/download/&quot; target=&quot;_blank&quot;&gt;Microsoft SQL Server 2005 Express Edition&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.codeplex.com/AjaxControlToolkit&quot; target=&quot;_blank&quot;&gt;AJAX Control Toolkit&lt;/a&gt; - Contains controls and extensions.&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.asp.net/learn/ajax-videos/&quot; target=&quot;_blank&quot;&gt;ASP.NET AJAX Video Tutorials&lt;/a&gt; - Excellent resource make yourself more familiar with the platform.&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://asp.net/ajax/ajaxcontroltoolkit/samples/&quot; target=&quot;_blank&quot;&gt;Control Samples&lt;/a&gt; - Useful to play around with the functionality.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Have fun!&lt;/p&gt;  </description><link>http://ict-engineer.blogspot.com/2009/01/aspnet-and-ajax-made-simple.html</link><author>noreply@blogger.com (g)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-303813535395786793</guid><pubDate>Fri, 16 Jan 2009 12:01:00 +0000</pubDate><atom:updated>2009-01-16T14:37:27.255+02:00</atom:updated><title>Easy SMS integration for your application</title><description>&lt;p&gt;&lt;a href=&quot;http://www.vodazone.co.za/&quot; target=&quot;_blank&quot;&gt;Vodacom Developer Zone&lt;/a&gt; has an awesome product suite to integrate SMS capability into your applications. And its so easy to use, and thats what I&#39;m all about ;)&lt;/p&gt;  &lt;p&gt;Using their common gateway you can send SMSs via:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;HTTP/S &lt;/li&gt;    &lt;li&gt;XML &lt;/li&gt;    &lt;li&gt;COM Object &lt;/li&gt;    &lt;li&gt;FTP &lt;/li&gt;    &lt;li&gt;SMPP &lt;/li&gt;    &lt;li&gt;SMTP &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I needed to write a C# app exposing the COM Object to send our patients reminders about appointments, seeing as though our current RIS is archaic and does not integrate SMSs. This quickly grew to three-application suite including a version to send account payment advices, with my Comms Edition facilitating easy internal staff communications through a group manager. See image below (Click to enlarge):&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_zrmta3SNusE/SXB3CteZTTI/AAAAAAAAABM/RbSDb5azkSw/sms%5B6%5D.png&quot;&gt;&lt;img style=&quot;border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;164&quot; alt=&quot;sms&quot; src=&quot;http://lh5.ggpht.com/_zrmta3SNusE/SXB3DlTeNNI/AAAAAAAAABY/Wd5JcVEOW6w/sms_thumb%5B2%5D.png&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The SMS classes support a wide variety of features including batch sending and delivery reports. SMS credits are purchased through Clickatell for about US$0.03 per SMS (33 South African cents), with discounts applicable on larger bundle purchases. &lt;/p&gt;  &lt;p&gt;And the code? Easy of course!  &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;1. Declare the SMS object: &lt;/p&gt;  &lt;div style=&quot;border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 93.61%; cursor: text; color: #f4f4f4; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; height: 42px; background-font-family: consolas, &#39;Courier New&#39;, courier, monospace&quot;&gt;   &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 60.6%; color: #f4f4f4; border-top-style: none; line-height: 12pt; padding-top: 0px; border-right-style: none; border-left-style: none; height: 25px&quot;&gt;&lt;span style=&quot;color:#000000;&quot;&gt;SMS_COMAPILib.SMS oSMS =&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt; SMS_COMAPILib.SMS();&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;style type=&quot;text/css&quot;&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, &quot;Courier New&quot;, courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type=&quot;text/css&quot;&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, &quot;Courier New&quot;, courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;2. Send the SMS: &lt;/p&gt;&lt;div    style=&quot;border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px;  padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 93.72%; cursor: text;  max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; height: 56px; background-font-family:consolas, &#39;Courier New&#39;, courier, monospace;font-size:8pt;color:#f4f4f4;&quot;&gt;&lt;br /&gt; &lt;pre   style=&quot;padding-right: 0px; padding-left: 0px;  padding-bottom: 0px; margin: 0em; overflow: visible; width: 83.85%;  border-top-style: none; line-height: 12pt; padding-top: 0px; border-right-style: none; border-left-style: none; height: 23pxfont-size:8pt;color:#f4f4f4;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt; &lt;span style=&quot;color:#000000;&quot;&gt;msgID = oSMS.SendMsg&lt;/span&gt;(&lt;span style=&quot;color:#0000ff;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;, smsNow, cellNow);&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;The boolean states whether to use your session id, &lt;strong&gt;smsNow&lt;/strong&gt; is the message and &lt;strong&gt;cellNow&lt;/strong&gt; is the mobile number. The method returns a MessageID handy to generate a delivery report.&lt;/p&gt;&lt;p&gt;3. Get delivery report:&lt;/p&gt;&lt;div    style=&quot;border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px;  padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 96.35%; cursor: text;  max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; height: 59px; background-font-family:consolas, &#39;Courier New&#39;, courier, monospace;font-size:8pt;color:#f4f4f4;&quot;&gt;&lt;br /&gt; &lt;pre   style=&quot;padding-right: 0px; padding-left: 0px;  padding-bottom: 0px; margin: 0em; overflow: visible; width: 99.11%;  border-top-style: none; line-height: 12pt; padding-top: 0px; border-right-style: none; border-left-style: none; height: 31pxfont-size:8pt;color:#f4f4f4;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt; &lt;span style=&quot;color:#000000;&quot;&gt;queryResult = oSMS.QueryMsg(msgID, SMS_COMAPILib.eSMSAPIorCLI_ID.SMS_API_ID);&lt;/span&gt; &lt;/pre&gt;&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2009/01/easy-sms-integration-for-your.html</link><author>noreply@blogger.com (g)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_zrmta3SNusE/SXB3DlTeNNI/AAAAAAAAABY/Wd5JcVEOW6w/s72-c/sms_thumb%5B2%5D.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-1652472443322505135</guid><pubDate>Tue, 06 Jan 2009 14:20:00 +0000</pubDate><atom:updated>2009-01-08T09:04:27.793+02:00</atom:updated><title>Agfa Impax Demo a Hit</title><description>&lt;p&gt;The PACS market in South Africa is growing quite steadily, and we should see a lot more practices go digital in the near future. My exposure to enterprise level PACS software is limited to be honest. I have worked with Conquest as well as &lt;a href=&quot;http://www.clearcanvas.ca&quot; target=&quot;_blank&quot;&gt;ClearCanvas&lt;/a&gt;, the latter being a very promising open source project. Read more on &lt;a href=&quot;http://pacsworld.blogspot.com/&quot; target=&quot;_blank&quot;&gt;PACSWorld&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Our practice recently got Agfa&#39;s Impax 6.3.1 PACS server on demo for a month. We are still on analog equipment for the most part. I was hooked from day one. The configurability is mindblowing, the interface easy to use and the administration is a piece of pie!Some of the features I like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A specific user&#39;s settings will &amp;quot;follow&amp;quot; that user on a per modality basis. In other words, if I change my toolsets for MRI&#39;s today at a specific workstation, those exact settings will apply on any other workstation I log into&lt;/li&gt;    &lt;li&gt;Drag and drop tool configurations&lt;/li&gt;    &lt;li&gt;User and group manager is very intuitive and extensive&lt;/li&gt;    &lt;li&gt;The toolset available to radiologists and referring physicians is huge&lt;/li&gt;    &lt;li&gt;Security includes LDAP (Active Directory) account mapping&lt;/li&gt;    &lt;li&gt;Image streaming is pretty efficient&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I will add some more items to this list as I go along&lt;/p&gt;</description><link>http://ict-engineer.blogspot.com/2009/01/agfa-impax-demo-hit.html</link><author>noreply@blogger.com (g)</author><thr:total>10</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-3573699626685970508</guid><pubDate>Mon, 05 Jan 2009 08:13:00 +0000</pubDate><atom:updated>2009-01-05T10:20:16.738+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Cisco</category><category domain="http://www.blogger.com/atom/ns#">MikroTik</category><category domain="http://www.blogger.com/atom/ns#">Network</category><category domain="http://www.blogger.com/atom/ns#">OSPF</category><category domain="http://www.blogger.com/atom/ns#">RouterOS</category><title>OSPF integration on Cisco and MikroTik RouterOS</title><description>&lt;p&gt;A while ago our IT Department implemented a wireless WAN solution to replace the Diginet fixed line infrastructure we had. The wireless equipment includes &lt;a href=&quot;http://www.poynting.co.za/&quot; title=&quot;Poynting Antennas&quot;&gt;Poynting&lt;/a&gt; antennas and &lt;a href=&quot;http://www.mikrotik.com/&quot;&gt;MikroTik&lt;/a&gt; router boards running their RouterOS software. The bandwidth we getting is roughly 20-30 Mbps, as opposed to 64/128 Kbps we had on fixed line...(yeah I know!!). The reality of living in South Africa is that bandwidth is pretty damn expensive as one company owns the monopoly. Hopefully Neotel will be challenging that soon.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Anyway back to the topic. On completion of the wireless project our Cisco and RouterOS routing tables were a crazy mixture of EIGRP and static routes. To solve this issue I decided to merge all our routing to OSPF as both platforms support it, and its way better than RIP. It was a leap of faith as I have a lot of experience with Cisco but I have never done a multi-vendor implemention.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;To my surprise it was a walk in the park! A couple of config lines and OSPF started doing its thing. The great thing about using Winbox with RouterOS is that you can see inactive routes as they appear in the routing table. This allowed me to verify that all the OSPF routes were correct before disabling the static routes.We now have a scalable network with dynamic fail-over and little administrative overhead. I added some screenshots and the basic Cisco OSPF config, but if you need any advise on a similar project I will be glad to assist where I can.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;#Cisco OSPF Config&lt;/b&gt;&lt;br /&gt;router ospf 100&lt;br /&gt;log-adjacency-changes&lt;br /&gt;network 192.168.1.0 0.0.0.255 area 0&lt;br /&gt;network 192.168.100.0 0.0.0.3 area 0&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;p&gt;#RouterOS config with Winbox&lt;/p&gt;&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;img src=&quot;http://img134.imageshack.us/img134/812/ospf1og4.jpg&quot; alt=&quot;ospf1.JPG&quot; height=&quot;371&quot; width=&quot;701&quot;/&gt;&lt;img src=&quot;http://img360.imageshack.us/img360/1580/ospf2pc6.jpg&quot; alt=&quot;ospf2.JPG&quot; height=&quot;370&quot; width=&quot;702&quot;/&gt;&lt;/p&gt;</description><link>http://ict-engineer.blogspot.com/2009/01/ospf-integration-on-cisco-and-mikrotik.html</link><author>noreply@blogger.com (g)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-1797663978976725753</guid><pubDate>Tue, 30 Dec 2008 10:18:00 +0000</pubDate><atom:updated>2008-12-31T12:30:53.301+02:00</atom:updated><title>Brilliant Ajax Calendar</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Hubi19VvlsXrcEV2EpnsYe45jPE0Y62uMbP2VRbYfKBN63MVXywko6wG2hl7ZZpzYFkzAOh3WyQsn2k_Zo7lh5kGryEnBxPApbsk1lfUM8D9y3G4xXq3oyzJqnAkoFnbeVLr0FxIuN4/s1600-h/cal.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 249px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Hubi19VvlsXrcEV2EpnsYe45jPE0Y62uMbP2VRbYfKBN63MVXywko6wG2hl7ZZpzYFkzAOh3WyQsn2k_Zo7lh5kGryEnBxPApbsk1lfUM8D9y3G4xXq3oyzJqnAkoFnbeVLr0FxIuN4/s320/cal.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5285529618536455170&quot; /&gt;&lt;/a&gt;&lt;br /&gt;I am developing an in-house PHP leave scheduler and needed a datepicker /calendar control.&lt;div&gt;My Google searches brought me to &lt;a href=&quot;http://dev.base86.com/scripts/vista-like_ajax_calendar_version_2.html&quot;&gt;Vista-like AJAX Calendar Version 2&lt;/a&gt; and I must say its by FAR the best one if have ever come across. Looks amazing, very easy to use and extremely customizable, even for a PHP beginner such as myself. Well done to the developers!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One thing I have to mention, initially I ran across a problem where the dates did not display correctly. This was caused by incorrect IIS user rights, so if you run into similar problems just make sure your rights are correct (iwam/iusr).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oh and please make sure you have declared the html namespace because it changes the way your browser renders your page. To be very honest I have never paid much attention to it, untill this morning when I realised IE7 is way more sensitive than Chrome!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2008/12/brilliant-ajax-calender.html</link><author>noreply@blogger.com (g)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Hubi19VvlsXrcEV2EpnsYe45jPE0Y62uMbP2VRbYfKBN63MVXywko6wG2hl7ZZpzYFkzAOh3WyQsn2k_Zo7lh5kGryEnBxPApbsk1lfUM8D9y3G4xXq3oyzJqnAkoFnbeVLr0FxIuN4/s72-c/cal.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-5233672940689050155</guid><pubDate>Tue, 04 Nov 2008 16:01:00 +0000</pubDate><atom:updated>2008-11-04T18:19:13.397+02:00</atom:updated><title>Faulty Network Cabling</title><description>I spent most of my Monday night with our network cabling contractors trying to fix one of the strangest networking issues i have ever experienced. We ran 5 points to a new office, using cabling supplied by a company called &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Yodata&lt;/span&gt; we never used before. After the installation, our contractors tested the points as per usual and everything seemed fine. While they packed up and left, myself and a &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;colleague&lt;/span&gt; moved 2 workstations to their new locations, only to find Windows complaining that the network cable is unplugged... After more testing (the cable tester only tests continuity) we eventually figured out the (brand new out of the box) cable is completely poked. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I still don&#39;t know exactly what why we dont get any comms across, tonight we are installing new cabling. That works.&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2008/11/faulty-network-cabling.html</link><author>noreply@blogger.com (g)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-3290131465793649724</guid><pubDate>Mon, 03 Nov 2008 12:34:00 +0000</pubDate><atom:updated>2008-11-03T14:56:10.966+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">array list</category><category domain="http://www.blogger.com/atom/ns#">c#</category><category domain="http://www.blogger.com/atom/ns#">remove duplicates</category><title>How to: Remove Duplicates from C# ListBox</title><description>&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;i must admit i quite a lazy coder so if i can find a method online that i can bend to my will im stoked. every now and again i have to write my own unfortunately...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;this is a simple snippet to remove duplicates from a ListBox in C# using an ArrayList. i run this method everytime i add new items.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;use it, dont use it....&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255);&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;private &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255);&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;void &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;CheckDuplicates()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt; {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            int r = ListBox.Items.Count;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            ArrayList newList = new ArrayList();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            //Load all Items into temp array&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;           string[] temp = new string[r];&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            for (int i = 0; i &lt; r; i++)&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;                temp[i] = ListBox.Items[i].ToString();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            //Add unique items to new ArrayList&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            foreach (string ts in temp)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;                if (!newList.Contains(ts))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;                {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;                    newList.Add(ts);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;                }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            ListBox.Items.Clear();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            foreach (string ns in newList)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;                ListBox.Items.Add(ns.ToString());&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2008/11/how-to-remove-duplicates-from-c-listbox.html</link><author>noreply@blogger.com (g)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4193594047334486267.post-8705532761160287778</guid><pubDate>Mon, 03 Nov 2008 10:35:00 +0000</pubDate><atom:updated>2008-11-03T14:21:27.892+02:00</atom:updated><title>First Post</title><description>hi&lt;div&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;ive&lt;/span&gt; been threatening to start a blog for a while now, so I finally took the leap today.&lt;/div&gt;&lt;div&gt;the reason &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;im&lt;/span&gt; doing this is mainly to post interesting problems and solutions i encounter, and if i can help one guy out there stuck on the same &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;arb&lt;/span&gt; problem i would be stoked :)&lt;/div&gt;&lt;div&gt;in my line of work as an IT professional im required to &quot;engineer&quot; quite a number of strange IT solutions, hopefully someone can benefit from my experience.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;i know my way around networks pretty well, and &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;im&lt;/span&gt; a semi skilled C# developer so most of my posts will be in these fields.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;k im on my way to lunch, ill start adding some content soon.&lt;/div&gt;</description><link>http://ict-engineer.blogspot.com/2008/11/first-post.html</link><author>noreply@blogger.com (g)</author><thr:total>1</thr:total></item></channel></rss>