<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>dwmcc - Dylan Wadsworth McCarthy</title> <atom:link href="http://dwmcc.com/feed" rel="self" type="application/rss+xml" /><link>http://dwmcc.com</link> <description>DIY, Servers, Coding, and general thoughts.</description> <lastBuildDate>Sun, 01 Jan 2012 22:23:15 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>Subversion with Apache2 (Linux!)</title><link>http://dwmcc.com/archives/464</link> <comments>http://dwmcc.com/archives/464#comments</comments> <pubDate>Mon, 01 Aug 2011 22:33:47 +0000</pubDate> <dc:creator>Dylan</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[Apache2]]></category> <category><![CDATA[HTTP]]></category> <category><![CDATA[Subversion]]></category> <category><![CDATA[Subversion server]]></category> <category><![CDATA[Subversion with Apache]]></category> <category><![CDATA[Subversion with Apache2]]></category> <category><![CDATA[svnserve]]></category> <guid
isPermaLink="false">http://dwmcc.com/?p=464</guid> <description><![CDATA[<p>I&#8217;ve spent a little bit of time every day last week trying to figure out how to manage repositories through Apache2 with the Subversion server. Boy, what a pain. Although documentation exists, the integration with Apache is a little bit&#8230;</p>]]></description> <content:encoded><![CDATA[<p>I&#8217;ve spent a little bit of time every day last week trying to figure out how to manage repositories through Apache2 with the Subversion server. Boy, what a pain. Although documentation exists, the integration with Apache is a little bit complicated to figure out on your own, especially if you&#8217;re setting up your first repository.</p><p>If you don&#8217;t know what Subversion is, I&#8217;d recommend taking a look <a
href="http://en.wikipedia.org/wiki/Apache_Subversion" title="Subversion - Wikipedia" target="_blank">here</a>.</p><p>Here&#8217;s how to set up your own Subversion server, for Linux users only. I used Ubuntu 10.04, so keep in mind that your results may differ.</p><p>First, we need to establish your base directory for the repository. Simply create a directory where you want your repository to be located.</p> ]]></content:encoded> <wfw:commentRss>http://dwmcc.com/archives/464/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>SeedSlayer: Auto-stop seeding on torrents</title><link>http://dwmcc.com/archives/339</link> <comments>http://dwmcc.com/archives/339#comments</comments> <pubDate>Tue, 22 Mar 2011 18:26:33 +0000</pubDate> <dc:creator>Dylan</dc:creator> <category><![CDATA[Portfolio]]></category> <category><![CDATA[Filesharing]]></category> <category><![CDATA[no seeding]]></category> <category><![CDATA[P2P]]></category> <category><![CDATA[seeding]]></category> <category><![CDATA[SeedSlayer]]></category> <category><![CDATA[Stop seeding]]></category> <category><![CDATA[torrent]]></category> <category><![CDATA[Torrenting]]></category> <guid
isPermaLink="false">http://dwmcc.com/?p=339</guid> <description><![CDATA[A while back, I realized that there must be thousands of people who sit around their computers, waiting for torrents to finish downloading, so that they can stop it from seeding. That's why SeedSlayer was developed...]]></description> <content:encoded><![CDATA[<h3>Related Blog Post: <a
title="Torrenting/P2P/Filesharing: How it Works" href="http://dwmcc.com/archives/325" target="_blank">Torrenting/P2P/Filesharing: How it Works</a></h3><p>A while back, I realized that there must be thousands of people who sit around their computers, waiting for torrents to finish downloading, so that they can stop it from seeding. I&#8217;m talking about people downloading ethical torrents here, not the people downloading illegal files, although it applies to them as well. Many people don&#8217;t want their torrents to seed, for many different reasons. Some agressive ISP&#8217;s throttle download and upload speed, and many more have an upload limit. If you start downloading a torrent, then go to bed, chances are when you&#8217;ll wake up, it will have been seeding (uploading) for a while. The process of seeding can easily pass through your upload limit, charging you hundreds of dollars in extra &#8220;fees&#8221; that your ISP may charge for exceeding the limit. Whatever the reason, I realized that people must get tired of waiting for torrents to finish downloading, so they can stop them from seeding.</p><p>This got me thinking, and I wrote a script called SeedSlayer, which, as its name implies, stops seeding. With SeedSlayer, you can start your torrent downloading, and go to bed knowing that when you wake up, your torrent won&#8217;t have seeded at all, and will have stopped the process before it began. This means you can download files without having to worry about always watching your computer, because SeedSlayer will do it for you.</p><p>Although there are other means of stopping torrents from seeding, 99% relay that information to the torrent tracker (the server that keeps track of who&#8217;s downloading, who&#8217;s uploading, and what their settings are), so the tracker lowers your download priority, and you&#8217;ll get a reduced download speed. SeedSlayer doesn&#8217;t relay anything to the tracker. It simply runs in the background, waiting for your torrents to stop downloading, then it prevents the upload process.</p><p>In the simplest of terms,</p><p>Without SeedSlayer = Uploading (Uses valuable upload allocation, if applicable)</p><p>With other method = Slower Download Speed (Tracker knows you&#8217;re not going to seed, gives you a slower download)</p><p>With SeedSlayer = No Uploading/Seeding, No decrease in download speed.</p><p>If you&#8217;re interested in SeedSlayer, you can visit the project page (<a
title="SeedSlayer Project Page" href="http://www.dwmcc.com/seedslayer" target="_blank">here</a>), or the development blog (<a
title="SeedSlayer Development Blog" href="http://www.dwmcc.com/seedslayer/blog" target="_blank">here</a>).</p> ]]></content:encoded> <wfw:commentRss>http://dwmcc.com/archives/339/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Torrenting/P2P/Filesharing: How it Works</title><link>http://dwmcc.com/archives/325</link> <comments>http://dwmcc.com/archives/325#comments</comments> <pubDate>Tue, 22 Mar 2011 17:45:22 +0000</pubDate> <dc:creator>Dylan</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[connections]]></category> <category><![CDATA[Filesharing]]></category> <category><![CDATA[How it works]]></category> <category><![CDATA[network]]></category> <category><![CDATA[P2P]]></category> <category><![CDATA[Torrenting]]></category> <guid
isPermaLink="false">http://dwmcc.com/?p=325</guid> <description><![CDATA[<p>There are millions of people around the world who use P2P (<a
title="Peer-to-Peer" href="http://en.wikipedia.org/wiki/Peer-to-peer" target="_blank">Peer-to-Peer</a>) file sharing to easily and quickly share files. Some of the files being shared are legal, some are not. Although the majority of the P2P and filesharing&#8230;</p>]]></description> <content:encoded><![CDATA[<p>There are millions of people around the world who use P2P (<a
title="Peer-to-Peer" href="http://en.wikipedia.org/wiki/Peer-to-peer" target="_blank">Peer-to-Peer</a>) file sharing to easily and quickly share files. Some of the files being shared are legal, some are not. Although the majority of the P2P and filesharing industry is built around the efficient distribution of illegal files, such as movies, games, and software, P2P filesharing can be used in some ethical ways, such as distributing a linux (Ubuntu, for example) distribution, or making widely available your free software. HowStuffWorks has illustrated the concept of P2P and torrenting, below.</p><div
class="wp-caption alignright" style="width: 410px"><a
href="http://computer.howstuffworks.com/bittorrent.htm"><img
title="How Torrenting Works" src="http://static.howstuffworks.com/gif/bittorrent-4.jpg" alt="How torrenting Works (image)" width="400" height="444" /></a><p
class="wp-caption-text">Borrowed from HowStuffWorks.com</p></div><p>One of the main concepts of torrenting is that the file you&#8217;re downloading is not stored on a central server, everyone who&#8217;s downloading and uploading it has a piece of the file. When you torrent something, you&#8217;re essentially downloading a slice of the file from a bunch of different computers who are also downloading it, instead of the entire file from one server.</p><h4>Pro Tip: When you&#8217;re uploading a torrent (sharing after you&#8217;ve finished, downloading it), it&#8217;s called seeding.</h4><p>This entire process reduces the overall stress on the server, and on each individual client.</p><h3>Related Portfolio Post: <a
title="SeedSlayer: Auto-stop seeding on torrents" href="http://dwmcc.com/archives/339" target="_blank">SeedSlayer: Auto-stop seeding on torrents</a></h3><p>dwmcc</p> ]]></content:encoded> <wfw:commentRss>http://dwmcc.com/archives/325/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Converting a String to an Integer and Back Again &#8211; Sikuli</title><link>http://dwmcc.com/archives/220</link> <comments>http://dwmcc.com/archives/220#comments</comments> <pubDate>Tue, 31 Aug 2010 20:21:48 +0000</pubDate> <dc:creator>Dylan</dc:creator> <category><![CDATA[Blog]]></category> <guid
isPermaLink="false">http://dwmcc.com/?p=220</guid> <description><![CDATA[<p>Recently, while experimenting with <a
href="http://www.sikuli.org" target="_blank">Sikuli</a>, and asking questions in the forums, I ran across a helpful tidbit: How to convert a string to an integer and back again. The process is quite simple. If you are, say, keeping&#8230;</p>]]></description> <content:encoded><![CDATA[<p>Recently, while experimenting with <a
href="http://www.sikuli.org" target="_blank">Sikuli</a>, and asking questions in the forums, I ran across a helpful tidbit: How to convert a string to an integer and back again. The process is quite simple. If you are, say, keeping track of how many laps a hypothetical hippo has run around a hypothetical car in a hypothetical computer program, you can use a variable to record an integer in Sikuli. At the beginning of the script, you would define the integer, and, depending on what you&#8217;re tracking, you would define the base value. If we&#8217;re tracking Mr. Hippo, we would start at zero, as he would begin running at zero laps, he wouldn&#8217;t have already completed one lap when he starts running around the car. If that&#8217;s case, we would define our base value as zero.</p><div
class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Mr_Hippo_Laps = 0</div></div><p>Notice, I didn&#8217;t enclose the &#8217;0&#8242; with quotation marks, because we&#8217;re recording an integer, not a string. Examples:</p><p>Integer: &#8220;123&#8243;</p><p>String: &#8220;The quick brown hippo jumped over the lazy car.&#8221;</p><p>Sikuli can determine if we are asking for an integer or string simply from the quotation marks. If they don&#8217;t exist around a base-10 numerical value, it defines it as an integer. If they do exist around a base-10 numerical value, or, for that matter, any letters or numbers in the define statement, Sikuli defines that as a string. In our sample Sikuli project, we will start with defining an integer as &#8217;0&#8242;, and create a prompt, asking how many laps Mr. Hippo has completed, which will be written to the defined integer, and then printed in a popup. Keep in mind that a popup can only display a string, so the number of laps will need to be converted back to a string.</p><div
class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">loop = 1<br
/> while loop == 1:<br
/> &nbsp; &nbsp; mr_hippo_laps = input(&quot;How many laps has Mr. Hippo completed?&quot;)<br
/> &nbsp; &nbsp; try:<br
/> &nbsp; &nbsp; &nbsp; &nbsp; mr_hippo_laps = (int(mr_hippo_laps))<br
/> &nbsp; &nbsp; except:<br
/> &nbsp; &nbsp; &nbsp; &nbsp; popup(&quot;The entered string cannot be converted to a valid base 10 integer. The script will now exit&quot;)<br
/> &nbsp; &nbsp; &nbsp; &nbsp; exit()<br
/> &nbsp; &nbsp; popup(&quot;Please click the 'OK' button to see how many laps Mr.Hippo has completed.&quot;)<br
/> &nbsp; &nbsp; popup(str(mr_hippo_laps))<br
/> while loop == 0:<br
/> exit()</div></div><p>We&#8217;re done! We now have a simple Mr. Hippo laps tracker in Sikuli.</p> ]]></content:encoded> <wfw:commentRss>http://dwmcc.com/archives/220/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Visual Basic &#8216;Hello World&#8217;</title><link>http://dwmcc.com/archives/198</link> <comments>http://dwmcc.com/archives/198#comments</comments> <pubDate>Fri, 27 Aug 2010 17:08:07 +0000</pubDate> <dc:creator>Dylan</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Hello World]]></category> <category><![CDATA[Progamming]]></category> <category><![CDATA[Tech]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[Visual Basic]]></category> <category><![CDATA[Visual Basic 2010 Express Edition Hello World]]></category> <guid
isPermaLink="false">http://dwmcc.com/?p=198</guid> <description><![CDATA[<p>A quick tutorial on printing &#8216;Hello World&#8217; in Visual Basic:</p><p>First, open Visual Basic. If you don&#8217;t have it, download it <a
href="http://go.microsoft.com/?linkid=9709929" target="_blank"><span
style="text-decoration: underline;">here</span></a>.</p><p>Create a new &#8216;Windows Forms Application&#8217;, and name it &#8216;Hello World&#8217;.</p><p><a
href="http://dwmcc.com/wp-content/uploads/2010/08/VB_Tut_1.tif"><br
/> </a><a
href="http://dwmcc.com/wp-content/uploads/2010/08/VB_Tut_1.bmp"></a></p><p>You&#8217;ll then be&#8230;</p>]]></description> <content:encoded><![CDATA[<p>A quick tutorial on printing &#8216;Hello World&#8217; in Visual Basic:</p><p>First, open Visual Basic. If you don&#8217;t have it, download it <a
href="http://go.microsoft.com/?linkid=9709929" target="_blank"><span
style="text-decoration: underline;">here</span></a>.</p><p>Create a new &#8216;Windows Forms Application&#8217;, and name it &#8216;Hello World&#8217;.</p><p><a
href="http://dwmcc.com/wp-content/uploads/2010/08/VB_Tut_1.tif"><br
/> </a><a
href="http://dwmcc.com/wp-content/uploads/2010/08/VB_Tut_1.bmp"><img
class="aligncenter size-full wp-image-201" title="Visual Basic - New Application - 'Hello World'" src="http://dwmcc.com/wp-content/uploads/2010/08/VB_Tut_1.bmp" alt="" /></a></p><p>You&#8217;ll then be presented with your new project, and we can begin creating our &#8216;Hello World&#8217; application. Since we won&#8217;t be using an interface for this, commonly referred to as a &#8216;form&#8217;, we need to hide the main form. We can do this via code or in the form&#8217;s settings. If we&#8217;re not using a form, what will we be using, you ask? We&#8217;ll be creating a messagebox, and adding &#8216;Hello World&#8217; to it. In Visual Basic, this is so incredibly simple, it can be done within seconds. We&#8217;re going to need to get to our &#8216;form&#8217; code, so double-click on the form</p><p><a
href="http://dwmcc.com/wp-content/uploads/2010/08/form.bmp"><img
class="aligncenter size-full wp-image-206" title="VB Form - Double Click" src="http://dwmcc.com/wp-content/uploads/2010/08/form.bmp" alt="" /></a></p><p>We will then be presented with the code window, which will have code already written in it, and look somewhat like the image below. That&#8217;s okay, it&#8217;s just our &#8216;Public Class&#8217;, which defines our forum.</p><p><a
href="http://dwmcc.com/wp-content/uploads/2010/08/VB_Tut_3.bmp"><img
class="aligncenter size-full wp-image-208" title="Visual Basic - Blank Code Window - Form 1" src="http://dwmcc.com/wp-content/uploads/2010/08/VB_Tut_3.bmp" alt="" /></a>In the space between the<span
style="color: #339966;"> &#8216;Private Sub Form1_Load&#8217;</span> and the<span
style="color: #339966;"> &#8216;End Sub&#8217;</span>, we&#8217;ll need to:</p><p>1. Make the main form invisible when the application is run, and</p><p>2. Create a messagebox with the &#8216;Hello World&#8217; message.</p><p>First, to make the form invisible on run, we need to specify two things: The form, and the visibility. We will set this using the following code:</p><div
class="codecolorer-container vb vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="vb codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Me.Visible = <span
style="color: #00C2FF; font-weight: bold;">False</span></div></div><p>As you see, it&#8217;s incredibly easy to understand, as it&#8217;s setting &#8216;Me&#8217;, or the current form to invisible. Our code should now resemble this:</p><p
style="text-align: center;"><a
href="http://dwmcc.com/wp-content/uploads/2010/08/VB_Tut_4.bmp"><img
class="aligncenter size-full wp-image-211" title="Visual Basic - Me.Visible=False - Form 1 Code" src="http://dwmcc.com/wp-content/uploads/2010/08/VB_Tut_4.bmp" alt="" width="531" height="71" /></a></p><p
style="text-align: left;">It is now necessary to add the messagebox functionality. We&#8217;ll need to use the following code:</p><div
class="codecolorer-container vb vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="vb codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">msgbox(<span
style="color: #800000;">&quot;Hello World!&quot;</span>)</div></div> ]]></content:encoded> <wfw:commentRss>http://dwmcc.com/archives/198/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Program: Web Browser Lite</title><link>http://dwmcc.com/archives/177</link> <comments>http://dwmcc.com/archives/177#comments</comments> <pubDate>Thu, 26 Aug 2010 21:15:43 +0000</pubDate> <dc:creator>Dylan</dc:creator> <category><![CDATA[Portfolio]]></category> <category><![CDATA[Beta]]></category> <category><![CDATA[Browser]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Visual Basic]]></category> <category><![CDATA[WBL]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Web Browser]]></category> <category><![CDATA[Web Browser Lite]]></category> <guid
isPermaLink="false">http://dwmcc.com/?p=177</guid> <description><![CDATA[<p><a
href="http://www.dwmcc.com/programs/screenshots/WBL.png"></a></p><p>An application I developed in Visual Basic, it allows for non-cluttered, easy access to the web. No toolbars, no add-ons, no themes, just a stripped down, extremely lite browsing experience. I developed this because of the want to have&#8230;</p>]]></description> <content:encoded><![CDATA[<p><a
href="http://www.dwmcc.com/programs/screenshots/WBL.png"><img
class="alignnone" title="Web Browser Lite" src="http://www.dwmcc.com/programs/screenshots/WBL.png" alt="" width="436" height="290" /></a></p><p>An application I developed in Visual Basic, it allows for non-cluttered, easy access to the web. No toolbars, no add-ons, no themes, just a stripped down, extremely lite browsing experience. I developed this because of the want to have a browser on my flash-drive, that starts virtually instantly, and is incredibly fast. WBL, or Web Browser Lite accomplishes both of those goals.</p><p>NOTE: This is an alpha verison of WBL, meaning it&#8217;s even before the beta phase, vis a vis, there are many bugs, problems, and issues with it. I&#8217;m extremely busy and I&#8217;ll get around to furthering development as soon as I can. Thanks!</p><p>Download: <a
href="http://www.dwmcc.com/programs/WBL.rar" target="_blank">WBL.rar</a></p><p>Installation Instructions:</p><p>1. Download File, and Extract it.</p><p>2. Run setup.exe</p><p>3. Done!</p> ]]></content:encoded> <wfw:commentRss>http://dwmcc.com/archives/177/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Program: PinnacleHandler</title><link>http://dwmcc.com/archives/174</link> <comments>http://dwmcc.com/archives/174#comments</comments> <pubDate>Thu, 26 Aug 2010 21:10:25 +0000</pubDate> <dc:creator>Dylan</dc:creator> <category><![CDATA[Portfolio]]></category> <category><![CDATA[21st Century]]></category> <category><![CDATA[After School]]></category> <category><![CDATA[After School Program]]></category> <category><![CDATA[Beta]]></category> <category><![CDATA[Pinnacle]]></category> <category><![CDATA[PinnacleHandler]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Visual Basic]]></category> <category><![CDATA[Work]]></category> <guid
isPermaLink="false">http://dwmcc.com/?p=174</guid> <description><![CDATA[<p>While working at the 21st Century After School Program, student&#8217;s missing assignments are handed out as an update, to see where they are academically.</p><p><strong>Problem:</strong></p><p>We have students from three different schools that attend the After School Program. The grading&#8230;</p>]]></description> <content:encoded><![CDATA[<p>While working at the 21st Century After School Program, student&#8217;s missing assignments are handed out as an update, to see where they are academically.</p><p><strong>Problem:</strong></p><p>We have students from three different schools that attend the After School Program. The grading application, Pinnacle, has different logins for each school. It is also built on the Java environment. The nature of the application does not allow for multiple instances of the application to be open at the same time, vis a vis, it is necessary to log in and out of different school, depending on where the student is educated.</p><p><strong>Solution:</strong></p><p>An application written in Visual Basic 2010, that we call PinnacleHandler, that easily manages and allows for more than one school to be open at once, by opening separate Java environments for each school. This slows down the computer, but allows for all schools to be opened and viewed at once.</p><p>More info: <a
href="http://www.dwmcc.com/programs/PinnacleHandler/publish.htm" target="_blank">PinnacleHandler</a></p> ]]></content:encoded> <wfw:commentRss>http://dwmcc.com/archives/174/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Sikuli &#8216;Hello World&#8217;</title><link>http://dwmcc.com/archives/145</link> <comments>http://dwmcc.com/archives/145#comments</comments> <pubDate>Thu, 26 Aug 2010 19:06:05 +0000</pubDate> <dc:creator>Dylan</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Hello World]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[message box]]></category> <category><![CDATA[messagebox]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Screenshot]]></category> <category><![CDATA[Sikuli]]></category> <category><![CDATA[Tech]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[Visual Programming]]></category> <guid
isPermaLink="false">http://dwmcc.com/?p=145</guid> <description><![CDATA[<p>My last few posts have been about the popular programming tool developed by MIT, called Sikuli [Sick-ooh-lee]. More information is available at <a
title="Sikuli" href="http://www.sikuli.org" target="_blank">http://www.sikuli.org</a>. That being said, I&#8217;m going to show you just how easy Sikuli is by&#8230;</p>]]></description> <content:encoded><![CDATA[<p>My last few posts have been about the popular programming tool developed by MIT, called Sikuli [Sick-ooh-lee]. More information is available at <a
title="Sikuli" href="http://www.sikuli.org" target="_blank">http://www.sikuli.org</a>. That being said, I&#8217;m going to show you just how easy Sikuli is by creating a &#8216;Hello World&#8217; program. For those of you who don&#8217;t know what that is, read a short overview <a
href="http://en.wikipedia.org/wiki/Hello_world"><span
style="text-decoration: underline;"><em>here</em></span></a>.</p><p>&#8212;&#8211;</p><p>First, open the Sikuli IDE. For those of you without it, now would be a wise time to download it at <a
href="http://en.wikipedia.org/wiki/Hello_world">http://www.sikului.org</a>. We&#8217;ll create a version that opens a messagebox with your desired text, in this case, &#8216;Hello World&#8217;.</p><p
style="text-align: center;">&nbsp;</p><p><a
href="http://dwmcc.com/wp-content/uploads/2010/08/Screen_1.jpg"><img
class="size-medium wp-image-150  " title="The Sikuli GUI" src="http://dwmcc.com/wp-content/uploads/2010/08/Screen_1-300x193.jpg" alt="" width="300" height="193" /></a></p><p>Now, for the first step. Creating a messagebox. This is incredibly simple, using the &#8216;popup&#8217; function. Remember that Sikuli is based on Java, so <del>some</del> lots of the code will seem oddly familiar for a Java guru.</p><p>To initialize a messagebox, or popup, we need to call it, using the code below.</p><div
class="codecolorer-container java vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">popup<span
style="color: #009900;">&#40;</span><span
style="color: #009900;">&#41;</span></div></div><p>Now, we need to specify the text within the popup, as the command listed previously will throw an error without specification. To do that, we use quotes. The following code will create a popup, and populate it with the text within the quotes.</p><div
class="codecolorer-container java vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">popup<span
style="color: #009900;">&#40;</span><span
style="color: #0000ff;">&quot;Hello World!&quot;</span><span
style="color: #009900;">&#41;</span></div></div><p>That&#8217;s it. Seriously, I&#8217;m not kidding. While other programming languages will have you create framework, layouts, etc, we&#8217;ve just created a simple &#8216;Hello World&#8217; program using Sikuli in seconds. In the IDE, your code should look along the lines of this:</p><div
id="attachment_154" class="wp-caption aligncenter" style="width: 410px"><a
href="http://dwmcc.com/wp-content/uploads/2010/08/Screen_2.jpg"><img
title="Sikuli Hello World Program" src="http://dwmcc.com/wp-content/uploads/2010/08/Screen_2.jpg" alt="" width="400" height="142" /></a><p
class="wp-caption-text">The Sikuli code to display &#39;Hello World&#39;</p></div><p>When this code is run, it will display a nice messagebox just like this:</p><p
style="text-align: left;"><a
href="http://dwmcc.com/wp-content/uploads/2010/08/Screen_3.jpg"><img
class="aligncenter size-full wp-image-165" title="Sikuli Hello World Popup" src="http://dwmcc.com/wp-content/uploads/2010/08/Screen_3.jpg" alt="" width="261" height="119" /></a>Enjoy!</p> ]]></content:encoded> <wfw:commentRss>http://dwmcc.com/archives/145/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Restart Script [Redirect/Loop to Beginning] in Sikuli</title><link>http://dwmcc.com/archives/122</link> <comments>http://dwmcc.com/archives/122#comments</comments> <pubDate>Thu, 26 Aug 2010 16:48:32 +0000</pubDate> <dc:creator>Dylan</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Loop Back]]></category> <category><![CDATA[Loop to Beginning]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Redirect]]></category> <category><![CDATA[Redirect to Beginning]]></category> <category><![CDATA[Redirect to Beginning of Script]]></category> <category><![CDATA[Restart]]></category> <category><![CDATA[Restart Script]]></category> <category><![CDATA[Sikuli]]></category> <category><![CDATA[Tech]]></category> <category><![CDATA[Visual Programming]]></category> <guid
isPermaLink="false">http://dwmcc.com/?p=122</guid> <description><![CDATA[<p>Just wanted to point out an awesome function for restarting your script, or looping back to the beginning of the script in Sikuli. For those of you who don&#8217;t know what Sikuli is, check out my post here. The code&#8230;</p>]]></description> <content:encoded><![CDATA[<p>Just wanted to point out an awesome function for restarting your script, or looping back to the beginning of the script in Sikuli. For those of you who don&#8217;t know what Sikuli is, check out my post here. The code for looping to the beginning is dead simple, but it took some digging to get to it. The code is:</p><div
class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">continue</div></div><p>That&#8217;s it! Here&#8217;s an example script using the &#8216;continue&#8217; tag:</p><div
class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">setThrowException(False)<br
/> if find (IMG):<br
/> &nbsp; &nbsp; popup(&quot;Found&quot;)<br
/> &nbsp; &nbsp; continue<br
/> else:<br
/> &nbsp; &nbsp; popup(&quot;Not Found&quot;)<br
/> &nbsp; &nbsp; wait(IMG)<br
/> &nbsp; &nbsp; click(IMG)<br
/> &nbsp; &nbsp; popup(&quot;End of Script&quot;)</div></div><p>This can also be used to loop a script, like in the example below:</p><div
class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">setThrowException(False)<br
/> if find (IMG):<br
/> &nbsp; &nbsp; popup(&quot;Found&quot;)<br
/> &nbsp; &nbsp; continue<br
/> else:<br
/> &nbsp; &nbsp; popup(&quot;Not Found&quot;)<br
/> &nbsp; &nbsp; wait(IMG)<br
/> &nbsp; &nbsp; click(IMG)<br
/> &nbsp; &nbsp; popup(&quot;Script will now loop.&quot;)<br
/> continue</div></div><p>Tada! You&#8217;ve now looped a script in Sikuli.</p> ]]></content:encoded> <wfw:commentRss>http://dwmcc.com/archives/122/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Sikuli &#8211; Visual Screenshot Programming for Program to Program Interaction</title><link>http://dwmcc.com/archives/114</link> <comments>http://dwmcc.com/archives/114#comments</comments> <pubDate>Thu, 26 Aug 2010 16:38:51 +0000</pubDate> <dc:creator>Dylan</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[DataNINJA]]></category> <category><![CDATA[Internship]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Sikuli]]></category> <category><![CDATA[Tech]]></category> <category><![CDATA[Visual Programming]]></category> <guid
isPermaLink="false">http://dwmcc.com/?p=114</guid> <description><![CDATA[<p>For those of you who don&#8217;t know about <a
href="http://www.sikuli.org">Sikuli</a> [Sick-ooh-lee], It&#8217;s a visual programming language for virtually every operating system out there. It relies on screenshots to interact with other programs on your computer. Basically, it&#8217;s program to program&#8230;</p>]]></description> <content:encoded><![CDATA[<p>For those of you who don&#8217;t know about <a
href="http://www.sikuli.org">Sikuli</a> [Sick-ooh-lee], It&#8217;s a visual programming language for virtually every operating system out there. It relies on screenshots to interact with other programs on your computer. Basically, it&#8217;s program to program interaction that works awesome for automation. I&#8217;m working with Sikuli for my <a
href="http://dwmcc.com/?p=71" target="_blank">DataNINJA script</a> for my programming internship this Summer. Definately check it out, it&#8217;s a great language to get started with!</p> ]]></content:encoded> <wfw:commentRss>http://dwmcc.com/archives/114/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
