<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8458396</id><updated>2011-04-21T12:37:49.354-07:00</updated><title type='text'>Stan's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://stan51.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://stan51.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Stan</name><uri>http://www.blogger.com/profile/04792522229036610796</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8458396.post-113292219708135500</id><published>2005-11-25T04:31:00.000-08:00</published><updated>2005-11-25T04:36:37.090-08:00</updated><title type='text'>New R1.0 feature - textboxes...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7028/574/1600/findit-snapshot.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/7028/574/400/findit-snapshot.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hardly revolutionary I'm sure you'll agree, however dotWidget has been without them until now.  Using the new api widgets can create an unlimited number of text boxes, configuring them all independantly of each other.  The widget is notified through the Notify() hook (Name = "_textbox_invoke") when the user hits the Enter key.&lt;br /&gt;&lt;br /&gt;For the moment only single line edit controls are supported, however full multi-line rich-text support is planned for the future.  On the right you can see the first widget to take advantage of this new feature - a simple Google search...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8458396-113292219708135500?l=stan51.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stan51.blogspot.com/feeds/113292219708135500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8458396&amp;postID=113292219708135500' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/113292219708135500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/113292219708135500'/><link rel='alternate' type='text/html' href='http://stan51.blogspot.com/2005/11/new-r10-feature-textboxes.html' title='New R1.0 feature - textboxes...'/><author><name>Stan</name><uri>http://www.blogger.com/profile/04792522229036610796</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8458396.post-113286568303566823</id><published>2005-11-24T12:49:00.000-08:00</published><updated>2005-11-24T12:56:21.453-08:00</updated><title type='text'>Why Release 1.0 now?</title><content type='html'>Simple really, if I didn't do it now, it'd probably never get it done. Also, I found myself thinking about other applications - those that seem to be in perpetual 0.x status (Litestep) and those that seem to fly through major version numbers (iTunes, Internet Explorer) like a dose of salts.&lt;br /&gt;&lt;br /&gt;I got round to thinking what 0.x releases mean to people (and what they &lt;span style="font-style: italic;"&gt;should&lt;/span&gt; mean to people) and I kind of figured that a 0.x release means either 'Alpha' or 'Preview', with Beta releases normally preceding a 1.x release. This means that things such as 'Release 0.8 Beta 1' are pretty much nonsensical as it implies a Beta of an Alpha!&lt;br /&gt;&lt;br /&gt;As for dotWidget, it's more-or-less this time last year that R0.6 came out (and two years ago that I actually started work on it in the first place) so, although R1.0 won't hit any anniversaries, it's nice that it was at least announced now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8458396-113286568303566823?l=stan51.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stan51.blogspot.com/feeds/113286568303566823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8458396&amp;postID=113286568303566823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/113286568303566823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/113286568303566823'/><link rel='alternate' type='text/html' href='http://stan51.blogspot.com/2005/11/why-release-10-now.html' title='Why Release 1.0 now?'/><author><name>Stan</name><uri>http://www.blogger.com/profile/04792522229036610796</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8458396.post-111519274150803289</id><published>2005-05-04T00:25:00.000-07:00</published><updated>2005-05-04T01:39:30.003-07:00</updated><title type='text'>April round-up...</title><content type='html'>Making good progress, so here's a quick round-up of what's in and working so far:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Desktops&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These aren't sevice-based as they don't fit the model well, instead there's a series of global functions that allow you to manage them. Note I say 'them' rather than 'it' - that's right, DarkFiber will feature the ability to have multiple desktops, each of which can have its own background (transparent, solid colour, or image) and - of course - shells can interact with them to develop virtual window (and host) managers. A subset of the api is as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;set_desktop_count(&lt;/span&gt;number_of_desktops&lt;span style="font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;activate_desktop(&lt;/span&gt;desktop&lt;span style="font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;show_desktop()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;hide_desktop()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;set_desktop(&lt;/span&gt;element, data&lt;span style="font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In addition to these functions, there will also be the ability for clients to subscribe (hence why I was initially looking to make this a service) to receive notifications when the number of desktops of changed, a particular desktop is activated, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;General shell tasks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Progress on the real having-to-do-what-explorer-does is also going well. The famed built-in DDE server that Explorer uses is now started and stopped, and the necessary windows and undocumented function calls are now created and called so that the tasks.service can use the HSHELL_* notification messages rather than a snooping timer to update its list (it also means that those annoying flashing task button messages are captured at last) - much of the code for this was borrowed from the &lt;a href="http://shell.franken.de/%7Esky/explorer-doc/taskbar_8cpp-source.html"&gt;ROS Explorer project&lt;/a&gt;, of which I'm deeply indebted to.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lastly...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I haven't forgotten about the more detailed service architecture post I promised; I'll get this done soon, along with an introduction to the next piece of the puzzle - ColdFusion...&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8458396-111519274150803289?l=stan51.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stan51.blogspot.com/feeds/111519274150803289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8458396&amp;postID=111519274150803289' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/111519274150803289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/111519274150803289'/><link rel='alternate' type='text/html' href='http://stan51.blogspot.com/2005/05/april-round-up.html' title='April round-up...'/><author><name>Stan</name><uri>http://www.blogger.com/profile/04792522229036610796</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8458396.post-111425030487711531</id><published>2005-04-23T02:53:00.000-07:00</published><updated>2005-04-23T02:58:24.876-07:00</updated><title type='text'>Progress report (picture)</title><content type='html'>&lt;a href="http://www.k23productions.com/products/darkfiber/progress_05-04-23.jpg"&gt;Screenshot showing progress to date&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8458396-111425030487711531?l=stan51.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stan51.blogspot.com/feeds/111425030487711531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8458396&amp;postID=111425030487711531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/111425030487711531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/111425030487711531'/><link rel='alternate' type='text/html' href='http://stan51.blogspot.com/2005/04/progress-report-picture.html' title='Progress report (picture)'/><author><name>Stan</name><uri>http://www.blogger.com/profile/04792522229036610796</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8458396.post-111411027319866740</id><published>2005-04-21T20:04:00.000-07:00</published><updated>2005-04-21T12:04:33.206-07:00</updated><title type='text'>DarkFiber Services Architecture</title><content type='html'>I wasn't going to bother with a standardised architecture for the DarkFiber services - with them being built-in to the core library anyway it seemed a bit like overkill - but, after working on the api's for the timer.service and the hotkey.service a generic architecture started to develop anyway.&lt;br /&gt;&lt;br /&gt;With timers and hotkeys, you &lt;span style="font-style: italic;"&gt;add &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;remove &lt;/span&gt;them, then you receive notifications of when something happens (the timer elapses; the hotkey gets pressed) - so we already have a standard interface here:&lt;br /&gt;&lt;br /&gt;AService.Add(&lt;span style="font-style: italic;"&gt;something&lt;/span&gt;)&lt;br /&gt;AService.Remove(&lt;span style="font-style: italic;"&gt;something&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Of course, now we're building a list of things we've added to a service, we can also do searching and enumerating, so we get:&lt;br /&gt;&lt;br /&gt;AService.Find(&lt;span style="font-style: italic;"&gt;something&lt;/span&gt;)&lt;br /&gt;AService.RewindItems&lt;br /&gt;AService.GetItem(&lt;span style="font-style: italic;"&gt;something&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Of course, for this to be completely generic, the &lt;span style="font-style: italic;"&gt;something &lt;/span&gt;has to conform to a standard as well.  Initially, I was going to go down the fully object-oriented route by having the &lt;span style="font-style: italic;"&gt;something &lt;/span&gt;be something that implements the most basic melon interface there is - MObject - and leave it at that.  Instead though, I've taken a slightly more old-fashioned/c-based approach and have created a COM datatype called MSERVICEREQUEST that takes the place of the &lt;span style="font-style: italic;"&gt;something&lt;/span&gt;.   A nice side of this is that the interface is kept very small and is future-proofed.  Here's how it works:&lt;br /&gt;&lt;br /&gt;Instead of having Add(), Remove(), Find(), etc. methods in the interface, these have all been consolidated into a single method - DoRequest() - which looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MService_DoRequest(&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Request &lt;/span&gt;As &lt;span style="color: rgb(204, 0, 0);"&gt;MSERVICEREQUEST&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;)&lt;/span&gt; As &lt;span style="color: rgb(204, 0, 0);"&gt;M_RESULT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Request defines the request itself along with any relevant data required to complete the request.  For example, if the request is an add then most likely you'll need to provide a name for the object to be added, the virtual keycode and modifier(s) (if it's a hotkey) or the interval (if it's a timer).  All this is contained in MSERVICEREQUEST, which looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;typedef struct MSERVICEREQUEST {&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;    M_SERVICE_COMMANDS Command;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;    MMessageSink *ReplyPort; &lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;    MMessage *Reply;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;    BSTR Name;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;    BSTR StrData;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;    LONG Id;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;    LONG LngData;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;} MSERVICEREQUEST;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;/span&gt;With the exception of the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;Command &lt;/span&gt;&lt;/span&gt;value, all other values are optional - they're only relevant to the command itself.  The nice thing about this is that the &lt;span style="font-weight: bold;"&gt;DoRequest()&lt;/span&gt; method can be used to enable two-way communication between a service and a client - for example, if the command was a ficticious 'get_info' one, the client could pass this and the name of the object it wanted information about; the service would then populate the other fields accordingly.&lt;br /&gt;&lt;br /&gt;Now we've discussed the basics, one or two examples are probably appropriate.  At the time of writing, there are three service currently in existence, all probably around 90% complete.  These are the hotkey.service, timer.service and task.service (I've written them using their display names so feel free to read them as 'hotkey service' and not 'hotkey dot service').&lt;br /&gt;&lt;br /&gt;The timer.service is the most simple - all it does is allow clients to add timers; it then sends a message back to the client every time the timer interval elapses.  To add a timer you need to send an add request and provide a name and an interval for the timer - null (empty) names and timers of less than 1 are not allowed.  The pseudo code for this is as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;With myrequest&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;  .Command = M_SERVICE_ADD&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;  .Name = "my_timer"&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;  .LngData = 500&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;End With&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;If the_timer_service.DoRequest(myrequest) = M_OK Then&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;  { request completed okay }&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;Else&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;  { something failed }&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;EndIf&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, this wouldn't work.  Why?  Well, there are two more fields we must also specify when adding a timer - &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;Reply &lt;/span&gt;&lt;/span&gt;and &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;ReplyPort&lt;/span&gt;&lt;/span&gt; - which detail a melon message and messagesink respectively.  These are required as otherwise the service would have no way of contacting the client when the interval times out.  Here's the corrected request structure:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;With myrequest&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;  .Command = M_SERVICE_ADD&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;  .Name = "my_timer"&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;  .LngData = 500&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  .Reply = new_Message(100)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;  .ReplyPort = Me&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;"&gt;End With&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This would now succeed and every 100ms or so the adding class would receive a message with the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;What &lt;/span&gt;&lt;/span&gt;field set to 100.&lt;br /&gt;&lt;br /&gt;That's it for this update, next time I'll talk about subscribing to a service and how services are accessed from clients.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8458396-111411027319866740?l=stan51.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stan51.blogspot.com/feeds/111411027319866740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8458396&amp;postID=111411027319866740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/111411027319866740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/111411027319866740'/><link rel='alternate' type='text/html' href='http://stan51.blogspot.com/2005/04/darkfiber-services-architecture.html' title='DarkFiber Services Architecture'/><author><name>Stan</name><uri>http://www.blogger.com/profile/04792522229036610796</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8458396.post-111383534085853821</id><published>2005-04-18T15:42:00.000-07:00</published><updated>2005-04-18T07:42:20.860-07:00</updated><title type='text'>DarkFiber Introduction</title><content type='html'>As already mentioned in the &lt;a href="http://www.k23productions.com/comment.php?comment.news.32"&gt;news post&lt;/a&gt; on the k23productions site, DarkFiber is a toolkit aimed at making development of Windows Shell replacements a lot easier by taking care of all the background interaction between Windows and the end-user graphical interface.  Here I'll give a brief outline of the planned features:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Desktop management, along with support for multiple virtual desktops&lt;/li&gt;   &lt;li&gt;Start Menu content management, including support for 'merging' the common and user applications together into a single menu&lt;/li&gt;   &lt;li&gt;Boot-up application launching - both registry and Start Menu applications - as well as the ability to boot applications from a script&lt;/li&gt;   &lt;li&gt;System Tray item management&lt;/li&gt;   &lt;li&gt;Running task management&lt;/li&gt;   &lt;li&gt;Timer and hotkey management&lt;/li&gt;   &lt;li&gt;Other Windows version-specific features&lt;/li&gt;   &lt;li&gt;Filesystem monitoring&lt;/li&gt;   &lt;li&gt;VBScript wrapper objects, including safe error and procedure handling&lt;/li&gt; &lt;/ul&gt; If all this sounds like a sales brochure then, sorry, I've been on a consulting course recently and I'm finding it hard to shake off.  I'll be posting more information about all of these elements over time, in each I'll discuss the proposed API and explain reasons behind some of the decisions I've made.  I've also uploaded the initial version of the library to CVS &lt;a href="http://sourceforge.net/cvs/?group_id=100911"&gt;here&lt;/a&gt; for those of you interested in following development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8458396-111383534085853821?l=stan51.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stan51.blogspot.com/feeds/111383534085853821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8458396&amp;postID=111383534085853821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/111383534085853821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/111383534085853821'/><link rel='alternate' type='text/html' href='http://stan51.blogspot.com/2005/04/darkfiber-introduction.html' title='DarkFiber Introduction'/><author><name>Stan</name><uri>http://www.blogger.com/profile/04792522229036610796</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8458396.post-111279714420412513</id><published>2005-04-06T15:18:00.000-07:00</published><updated>2005-04-06T07:19:04.206-07:00</updated><title type='text'>Update</title><content type='html'>Not posted here in quite a while... Which is frustrating as this blog is rapidly ending up the same as all my other on-line diaries: unused.&lt;br /&gt;&lt;br /&gt;Firstly, to manage expectations, don't expect anything ground breaking in this one - suffice to say that since the last post (Sep '04) I've gotten married so the wife and I are busy decorating, demolishing, and re-decorating the new house.  To make matters worse, I'm working away from home a lot these days so I don't get much time to see the wife; let alone time to do much coding.  Oh, and spring has sprung in the UK now (at least, it has today) so that means more time in the garden and less on the computer (good and bad I'm sure you'll agree).&lt;br /&gt;&lt;br /&gt;The other concern I have is that I'm not really sure &lt;span style="font-style: italic;"&gt;what&lt;/span&gt; to work on - I made a promise to myself (and several others) that I'd make some serious progress on eggShell but, to date, I'm no way near as forward with it as I'd like to be and I'm concious that the next release of dotWidget should be out on the shelves...&lt;br /&gt;&lt;br /&gt;Anyway I wouldn't like to end this post on a negative note, so here's the mustard on what's going on in the workshop at the moment.&lt;br /&gt;&lt;br /&gt;Menu Bar - the top bar from the various eggShell screenshots.  This has now been pulled out from eggShell (as was dotWidget) and is it's own standalone application - although there's some nice inter-process communication still in there...&lt;br /&gt;&lt;br /&gt;Terminal - the terminal application from eggShell.  Again, now a standalone application.&lt;br /&gt;&lt;br /&gt;And something going by the name of DarkFiber - but I'll tell you about that soon...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8458396-111279714420412513?l=stan51.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stan51.blogspot.com/feeds/111279714420412513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8458396&amp;postID=111279714420412513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/111279714420412513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/111279714420412513'/><link rel='alternate' type='text/html' href='http://stan51.blogspot.com/2005/04/update.html' title='Update'/><author><name>Stan</name><uri>http://www.blogger.com/profile/04792522229036610796</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8458396.post-109604290845872305</id><published>2004-09-24T09:18:00.000-07:00</published><updated>2004-09-24T09:21:48.460-07:00</updated><title type='text'>Welcome to my Blog...</title><content type='html'>Well, surely &lt;em&gt;everyone&lt;/em&gt; starts with one of these sort of messages don't they?&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8458396-109604290845872305?l=stan51.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stan51.blogspot.com/feeds/109604290845872305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8458396&amp;postID=109604290845872305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/109604290845872305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8458396/posts/default/109604290845872305'/><link rel='alternate' type='text/html' href='http://stan51.blogspot.com/2004/09/welcome-to-my-blog.html' title='Welcome to my Blog...'/><author><name>Stan</name><uri>http://www.blogger.com/profile/04792522229036610796</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
