The future of System Nucleus

Posted by admin on February 22nd, 2011

The Immediate Future

If you saw my last post, time for working on System Nucleus has been virtually non-existent over the past few months.  I have made a great deal of progress on a number of major changes & additions, but substantial work is still required before any of these is ready.  It will likely be several months before a new version of System Nucleus is released with any new features.

However, a maintenance release will be made hopefully in the next week or two.  A third party package that provides many of the controls used in System Nucleus has been updated and fixed issues with 64-bit systems.  I have been having numerous intermittent issues on my 64-bit machines with previous versions of this package that I had just about given up on tracking down.  If you have been running the 64-bit version of System Nucleus, chances are you’ve seen these issues, possibly many times, or maybe only a few times before giving up.

For those running the 32-bit version, there will be a few other changes and improvements that may make it worthwhile to upgrade.  As always, a detailed list of changes will be included in the change log, distributed with the software and available on the download page.

Going Forward…

Since releasing System Nucleus about 8 months ago, I’ve gotten a lot of great (and not so great) feedback, requests and suggestions that have significantly shaped its development.  It has also burgeoned into a nearly unwieldy beast, and I have been significantly sidetracked from some of my original goals by things like localization and documentation – those are important, but not a lot of fun, especially as I did not account for them from the beginning and so have a lot of work to do before they are realized.

From the beginning, one of my main intentions was for System Nucleus to be able to query & manage remote systems – anyone can manipulate processes & services locally, and while I think there is a great deal of value in some things like batch editing that I haven’t seen before, most of the functionality is nothing new.  As I’ve stated in the past, I have no intention of reinventing the wheel – the wheel’s pretty, I use the wheel, and have no complaints about the wheel.  As this was an originating idea, most of the code has been written with this in mind and already provides remote functionality, it just needs to be exposed through the interface in an elegant, intuitive and stable manner.

So, after the upcoming maintenance release, I will be focusing on remote functionality.  This will likely mean scaling back functionality significantly and then adding it back as it is made compatible & stable working remotely.   There will probably be some early releases, possibly under alternate names, with only partial functionality – I imagine the first might be something like a remote process manager, with only the functionality currently available in the Processes view.  This will also give me the opportunity to localize & document pieces at a time, and so make those processes more manageable as well.

This will be a major undertaking, and as yet I cannot say how much time & resources I will be able to dedicate.  I will occasionally post updates on my progress, especially as I near something releasable.

Long time, no updates…

Posted by admin on February 22nd, 2011

Its been a while since I posted anything or any updates to System Nucleus.  The holiday season was a very busy, hectic time, and it never seemed to end – well, the holidays ended, but the busy kept right on.  I have been very busy with work and other projects lately, with little time to spare for work on the web site or software.  As this shows no signs of coming to an end anytime soon, I cannot make many predictions on when new versions of System Nucleus will become available.  I will be detailing a little bit more on the future of System Nucleus in a separate post to come shortly.

Interview with System Nucleus developer published on FamousWhy

Posted by admin on December 8th, 2010

Famous Interview FamousWhy.com has published a brief interview with me regarding System Nucleus.  The full interview is available here.  The contents of the interview are also reproduced below with the permission of FamousWhy.com.


FW Editor: What are your plans or objectives in the near future?
Spencer Salva: From the beginning, System Nucleus was intended to manage both local and remote machines. I hope to have the remote functionality implemented for the next major version, 3.0. Also, I’ve been working very hard on reconfiguring the app to support localization. The first languages available should be German and Portuguese – outside of the United States, I’m seeing the most downloads from Germany and Brazil.

FW Editor: How and when did you start writing the code for System Nucleus? What inspired you the most? Do you plan to develop new software, or are you more focused on optimizing the current ones?
Spencer Salva: I started writing it in 2006 as a project to teach myself C#. At the time I was using tons of different tools all the time, and I had so many different tools that I didn’t remember what they all did. Also, as part of my job, I often need to stop several Services or processes at once, but the built-in tools only let you do one at a time. I figured I’d try to do something to make my job a little easier.

FW Editor: System Nucleus is one of the best system managers from the market. What is the secret?
Spencer Salva: It serves a major need for myself and I use it all the time, so it’s been designed to make my own tasks easier. I saw certain functionality missing or difficult to use in a lot of the tools available, and I’ve focused on adding those features. I know from experience that sometimes software developers never actually use their own products, and don’t think about how things should work from an end user’s perspective.

FW Editor: Do you plan to improve or change System Nucleus in any way? If yes, how are you going to do that?
Spencer Salva: I have a long list of new features and improvements, there’s over 150 items on the ‘To Do’ list for System Nucleus right now. Since it started out as a learning project, there are some things I set up early on that could be done more efficiently to improve performance. There are also a number of interface improvements planned, things that have taken a while to research and require major customizations.

FW Editor: Can you tell us more about the System audit feature?
Spencer Salva: I spent a lot of time on this, there is so much information available about the various hardware and software components, and many of the tools I have used either aren’t detailed enough, or present a ton of information in a very difficult to use format. I’ve tried to gather as much information as is possible while keeping it usable. Most of it is based on WMI, but a lot is pulled directly from the registry as well, and translating that info into understandable information can be tricky. The original intention was just to display some basic system info on the Welcome screen, but that sort of spiraled out of control as I added more & more info, so I figured if I was going to do it, I might as well do it right.

FW Editor: Why would you recommend System Nucleus over any other similar product?
Spencer Salva: It really is different than other products. I’ve used a lot of similar products, and I still do, many of which do certain things very well. I’ve concentrated on things other tools don’t do or that I think can be done better.

FW Editor: It is safe to use Backup and Recovery tool? Many similar applications register serious problems with this particular feature.
Spencer Salva: I’ve actually been surprised at how much attention the backup & recovery features have gotten. They’re actually very simple. The backups are either copying files, or using tools built-in to Windows to export data; nothing is ever moved or deleted. The recovery features are an interface to Windows’ System Restore, so its all pretty safe to use.

FW Editor: Is there any customer support service for System Nucleus users?
Spencer Salva: There is a link to email support in the Help menu, and an error reporting screen that can email error details directly to me, where users can elect whether to be notified of a fix or assist in testing it. Its just me working on this project in my spare time, but I do respond to all emails, except those where the user has not chosen to be notified. This has actually been very valuable, a lot of problems have been fixed that I probably never would have come across on my own, and I think the software has gotten a lot better because of it. The support requests have been very scarce since the latest release, so I’m hoping that means people aren’t having problems, and not that they aren’t using it.

FW Editor: Now, to end our small interview, is there any message you would like to send to System Nucleus users?
Spencer Salva: Thanks for all the support, it can be very difficult trying to make everyone happy and still stay interested in what is ultimately a hobby. I do read a lot of the reviews and comments posted on various sites and blogs, many are favorable, some aren’t, but that’s to be expected, System Nucleus isn’t perfect and neither am I. I just ask that anyone having an issue let me know with as much detail as possible.

One of the best sets of 16×16 icons gets much better

Posted by admin on November 23rd, 2010

For a long time now, the Silk icon set by famfamfam has probably been the most widely used set of icons, size 16×16 or otherwise, and for good reason.  With over 700 high quality, easily recognized icons at no cost, it is possible to find all the icons one needs for a project without sacrificing quality or a uniform style.  The icons are easily recognizable in numerous web sites and applications, including many notable projects like  uTorrent and Notepad++.  Damieng has also contributed the Silk Companion, an additional set of nearly 500 icons that extend the Silk icon set with both variations on the existing icons and a number of icons the original set lacked.

When I started creating System Nucleus, I used the Silk & companion sets almost exclusively, only straying for icons that had no representation in these sets.  I wanted the icons to match as closely as possible to maintain a uniform appearance.  However, for larger icons I really prefer more crisp (higher resolution?) icons, and always start looking for these in the Hydroxygen set from deviantdark.

I’m not a graphic designer, and I don’t know how the difference between these sets would be most accurately described, but when viewed side-by-side, it is immediately clear the icons just don’t ‘go together’.  Being a bit obsessive myself, this bothered me, and the more Hydroxygen icons I used, the more the Silk icons looked ‘cartoonish’ by comparison.  I considered using 16×16 versions of the Hydroxygen icons – indeed, the set includes this along with a number of other sizes – but the problem is that, with high resolution graphics, definition decreases along with the size, and what is a beautiful, eye-catching image at 72×72 is reduced to a indistinct smudge at 16×16.  This, I think, is the reason there are so few really good, comprehensive sets of small icons – there is only so much that can be done in a 16×16 space.

Around this time, I found the Fugue icons from Yusuke Kamiyamane, which I immediately noted for their crisp, modern  appearance.  I considered switching to this as my default icon library, but it just didn’t have the icons I need.  While nearly 1000 icons strong, this number shrank drastically once considering that for most of the unique icons in the set there were 5 or more variants.  So, while nice, using these meant mixing with numerous other sets of icons, making continuity of appearance nearly impossible.

So I was extremely excited to discover recently that this set had been expanding to over 3,000 icons.  I found out when I noticed Paint.NET, an excellent freeware graphic editor that uses the Fugue icons, had some I’d never seen before.   It appears to have been well thought out, as nearly every icon I need is either explicitly provided or can be easily derived by combining the existing icons.  With this update, I believe it is as complete a set as the Silk icons.  Which one is more complete will likely vary depending on your particular needs, but its nice to know there’s more than one option.    For my part, nearly every 16×16 icon in System Nucleus has been ‘fugue-alized’ for the upcoming version 3.0.

System Nucleus 2.3.2 Released

Posted by admin on November 8th, 2010

I am happy to announce an update to System Nucleus, version 2.3.2 has been released. This is a minor update from the previous release of 2.3.1, including primarily fixes and performance improvements. However, some new functionality has also been included, such as:

  • Added WMI checkpoints & repair options if needed at start up
  • Added shortcuts to over 30 additional Windows applications in Windows 7
  • Added support for additional languages during installation
  • Services: Added functionality to create a new service

In addition, many behind the scenes changes have been made towards multilingual support, which will be available in version 3.0. Version 3.0 is the next slated release, and it will likely be some time before this becomes available as there are some major changes and additions to be included. More details on the planned changes for 3.0 will be detailed in a later posting. No further changes to 2.3 are planned at this time, although maintenance releases may occur if any issues are found.

To see the complete change log and download the new version, visit the download page.  Also, don’t forget to vote for what new changes you would most like to see in 3.0.  You can vote & see the current voting results on the System Nucleus product page or the spencerberus.tech blog.

An Attempt to Explain the Internet in the Time of Dickens

Posted by admin on October 29th, 2010

As a major consumer & fan of both the Internet and the works of Charles Dickens, I couldn’t help but share this amusing story board I came across by Doogie Horner. Presented as a flow chart, it chronicles an attempt to explain the Internet to a 19th century London street urchin named Oliver, no last name given but one can imagine it might be ‘Twist’. One inconsistency to note, however – the year given is 1835, and the urchin makes mention of ‘tubes that run under the city’, of which the first portion was opened in 1863 (source: Wikipedia). Still, historical accuracy is not the goal, and it certainly is amusing. Check out the full diagram here.

Making Sense of Regular Expressions

Posted by admin on October 26th, 2010

Regular expressions are very useful and, while they may appear complicated at first, are actually quite simple.  They can become quite long and appear daunting, but by understand the syntax, any expression can be broken down into small components that are easy to understand.

So, what is a regular expression?  Very simply, it is a pattern used to match strings of text.  Everything else is just syntax.  For example, we may have a pattern such as:

^[A-J]{2,3}\s?\d+$

This will match “AG 2010”, but will not match “AND Me”.

Stop staring at the regular expression above. If you don’t understand it, that’s OK, you’re not supposed to, otherwise you wouldn’t be reading this. If you do understand it – and REALLY understand, no guessing – stop reading, you’re wasting your time.

What Can A Regular Expression Do For Me?

One primary use of regular expressions is in computer programming.  Most modern programming languages have implemented some degree of support for regular expressions.  Notable among these is Perl, well known for its extensive integration of and extensions to regular expressions.  Depending on the language, there may be some syntactic differences or additions.  However, most implementations support a basic set of standard syntax rules.  All of the syntax discussed here should be applicable to nearly every implementation.

Not a programmer?  That’s OK, you may still find some use for regular expressions.  An increasingly visible application of regular expressions is in support of Find-and-Replace functionality in text & document editors.  Static strings can be great when looking for static text, but what if you want to locate something with a bit of variance, say, all phone numbers or mail codes in a document?  A static string just won’t work in such cases, but a regular expression can very easily be employed for such a task.  If your current text editor does not support regular expressions, you may want try one that does after reading this to test out your regular expression skills and see how useful they can be.  Even though I do a fair bit of programming, I probably get the most use out of regular expressions with my favorite text editor, Notepad++, which, besides having long supported regular expressions in its Find and Replace functionality, has an incredibly comprehensive set of additional features that have made it indispensable for me, and it’s entirely free.

Anatomy of a Regular Expression

There are two parts to a regular expression – what we want to match, and the quantity to match. Let’s start with what we want to match.

1. What To Match

What to match can be broken down into 3 categories: the actual character(s) to match, grouping of characters, and positional matches.

In its simplest and most literal form, we can explicitly specify literal characters to match. For example:

And

is a regular expression. This matches a capital A, followed by a lowercase ‘n’, followed by a lowercase ‘d’. It’s not all that useful, but it is a valid regular expression. It is important to note that, as this example demonstrates, regular expressions are case sensitive.

1.1 Grouping

More likely though, we will want to match one of several characters, which is where grouping comes in. The most common form of grouping is the character class, a series of characters within square brackets. For example:

[ABCDEnr]

means ‘match a capital A, capital B, capital C, capital D, capital E, lowercase n OR lowercase r’. But what if I want to match any uppercase letter? I’d rather not have to type 26 letters. Not to worry, as multiple consecutive characters can be expressed as a range, specified as two characters separated by a dash, like so:

[A-Enr]

This is equivalent to the previous expression, and can be read as ‘match any capital letter from A to E, lowercase n OR lowercase r’. Note that the use of the dash to express a range of characters is only valid in a character class; outside of a character class, a dash simply matches a dash. Also, if the dash is the first character in the character class, it will match a literal dash character.

In some cases, it may be simpler to specify those characters you don’t want to match. Suppose you want to match any character except an underscore or dollar sign. This can be expressed as:

[^_$]

The carat, when it is the first character within a character class, negates the character class, changing the meaning of the character class to ‘match any character EXCEPT those listed in this character class’. Note that, to negate a character class, the carat must be the first character within the square brackets; anywhere else in the character class, the carat matches a literal carat character.

1.2 Character Shorthand

To simplify character matching even further, there are a number of shorthand expressions that can be used to match certain types of characters. The most common of these are defined in the following table.

Expression Matches…
\s

Any white-space character. Equivalent to [\f\n\r\t\v].

\S

Any non-white-space character. Equivalent to [^\f\n\r\t\v].

\d any decimal digit character. Equivalent to [0-9]
\D

Any non-decimal digit character. Equivalent to [^0-9].

\w

Any word character. Equivalent to [a-zA-Z_0-9].

\W

Any non-word character. Equivalent to [^a-zA-Z_0-9].

.

Any single character except new line (\n).

Table 1.2 character shorthand expressions

The shorthand expressions listed above are effective both inside and outside a character class, with the exception of the dot (.). Within a character class, the dot matches a literal dot character.

1.3 Positional Matches

Suppose we want to find the first page of a document by matching the page number, where the page numbers are in the format ‘Page N’. We might use the following regular expression:

Page 1

Nothing fancy, we are matching a literal string, and this may seem to work well enough at first. However, what happens when we get to Page 10? In most cases, this will also be a match for our expression above. Why is this so? A regular expression does a character by character match, so the above expression could be read as ‘Match a capital P, followed by a lowercase a, followed by a lowercase g, followed by a lowercase e, followed by a space, followed by a numeral 1’. Notice this does not account for anything following the match, so this will match ‘Page 1’, ‘Page 10’, or ‘Page 1983467231894’

To address such cases, positional match characters are provided. The dollar sign ($) matches the position at the end of a string. Adding this to our expression above, we have:

Page 1$

This can be read as ‘Match a capital P, followed by a lowercase a, followed by a lowercase g, followed by a lowercase e, followed by a space, followed by a numeral 1, with no further characters in the string’.

Similarly, we can match the position at the beginning of a string using the carat (^). Recall that the carat negates a character class if it is the first character after the opening square bracket. To match the beginning of a string, the carat must be outside of any character class.

Note that some regular expression implementations provide configuration options to force the expression to match the given string in its entirety. This is equivalent to automatically prepending the carat and appending the dollar sign to the specified expression.

2. Quantifiers

OK, so we’ve looked at character matching, but except for our very first literal expression, we haven’t matched more than a single character. One way we can match multiple characters is to string together two or more expressions like those we’ve seen so far. For example:

[A-Z][A-Z][A-Z][A-Z][A-Z][A-Z]

This will match any five consecutive capital alpha characters. So, this would match ‘SAMPLE’ but not ‘Sample’. However, our expression is going to become very large very quickly if we have to define each character individually.

We can specify the number of times we want to match a given character by placing the quantity within curly braces following the character expression. Using this method, an equivalent to the previous expression would be:

[A-Z]{5}

Suppose, in addition to matching 5 capital letters, we’d also like to match if there are only 3 or 4 capital letters. Again, we specify the quantity in curly braces following the character, but we specify two numbers, the first being the minimum number of instances of the previous character to match, the second being the maximum, separated by a comma. So, to match 3,4 or 5 capital characters, we write:

[A-Z]{3,5}

Using this notation, we can also specify no minimum or no maximum number of characters to match by leaving the relevant value blank. So:

[A-Z]{3,}

matches 3 or more capital letters, while

[A-Z]{,5}

matches 5 or fewer capital letters.

2.1 Quantifier Shorthand

Similar to the character shorthand expressions discussed previously, there are a number of quantifier shorthand expressions that make common quantities simple to express. These are defined in the following table.

Expression Matches the previous expression/character…
*

0 or more times; equivalent to {0, }.

?

1 or more times; equivalent to {1, }.

+

0 or 1 times; equivalent to {0,1}

Table 2.1 quantifier shorthand expressions

3. How A Regular Expression is Applied

By default, regular expressions are said to be ‘greedy’, meaning any given element in an expression will match as much of the string to which it is applied as possible. Take for instance the very common expression:

.*

This means ‘match any given character 0 or more times’, which essentially matches anything and everything, with the exception of new line characters. Matched characters are said to be ‘consumed’, meaning that, once matched, they are discard and are not subject to any further processing.

If this is the case, what happens with an expression such as:

.*e

Suppose we apply this to the string ‘Page’. Given what we know so far, the ‘.*’ portion of our regular expression should match ‘Page’, consuming the entire string and leaving nothing for the ‘e’ to match. If this is the case, we might suppose that nothing but a new line character could ever be matched after ‘.*’ in a regular expression, as it will consume all other characters.

However, this is not the case, due to a process called ‘backtracing’. Backtracing essentially allows a regular expression to ‘back up’ and look for a match among the characters already consumed. So, when applying our expression of ‘.*e’ to the string ‘Page’, the process is as follows:

  1. .* is applied to ‘Page’, matching ‘Page’.
  2. ‘e’ now must be matched. The regular expression engine backs up in the string, character by character, until a match is found. As the last letter in our string is a match, the ‘e’ in our expression matches the ‘e’ in ‘Page’, and subsequently, our first part of the expression, .*, matches ‘Pag’.

That’s all for now, we’ll cover more in Part 2.  However, with what you now know, you should be able to start writing & understanding most regular expressions.

New test builds of System Nucleus

Posted by admin on October 20th, 2010

Hidden carefully within Spencerberus.com is a secret – the latest test builds of System Nucleus.  Actually, they’re at the following links:

32-bit test build

64-bit test build

I’ve been using these file names for quite some time actually, but only sent the links out to people who report bugs that the new builds were known to fix.  I will continue to update these builds as fixes & changes are made, so the above links should remain valid.  If you’ve found a problem and want to see if it’s been fixed already, or just want to test out the latest build, feel free to download these at any time.  Note that, while these tend to be pretty stable and improve upon the current release, they have not yet been fully tested and may contain bugs or incomplete features.

When WMI Goes Bad

Posted by admin on October 19th, 2010

Windows Management Instrumentation (WMI) is Microsoft’s implementation of the Web-Based Enterprise Management (WBEM) standard, intended to enable centralized management of disparate platforms and systems.  WMI provides detailed information on just about everything in, on, and connected to a computer running Microsoft Windows.  And, while it’s probably best know for such audit and inventory abilities, its real power lies in the management functionality it provides. It is not only a way of accessing information, but of configuring and testing many system settings and features. Plus, all of this functionality can be accessed remotely.

Sometimes though, WMI just doesn’t work quite right. Thankfully, there are a number of tools, many built-in to Windows, that can assist in testing, diagnosing, and resolving issues with WMI. Here is a list of the tools & procedures we will take a look at in this multi-part article:

  1. The WMI service
  2. WMI Tester
  3. Verifying the WMI repository
  4. registering WMI
  5. recompiling WMI classes
  6. Repairing the WMI Repository
  7. System File Checker
  8. Restoring to a previous point in time
  9. Rebuilding the WMI repository
  10. When all else fails…
  11. References

WMI concepts necessary to the techniques & tools described will be given throughout the article.  For more detailed information on what WMI is and can do, the following resources may be of use (links will open in a new window or tab):

NOTE: This article was written to accompany the release of my WMI Recovery Tool, which in turn was created to support the System Nucleus toolkit for Windows, which makes extensive use of WMI.  However, while my WMI tool was designed to make performing many of the procedures discussed much simpler, the information presented here does not require either of these software packages to be of use.

Next: The WMI Service…

Click to continue reading “When WMI Goes Bad”

System Nucleus 2.3.1 Maintenance Release – stability improvements & minor fixes

Posted by admin on October 4th, 2010

This release primarily addresses a few stability issues, anyone experiencing any sort of problem with the current version should upgrade.  There are a couple improvements to error reporting as well, so if you are having an issue that is not fixed by the upgrade, re-submit the error report as it may provide more information.  See the change log for a complete list of changes.

A lot of people have reported issues that appear to be due to WMI installation issues.  This new version will detect at startup if WMI is not installed, not registered or has some other major issue, and offers to attempt a fix.  This should work for the majority of WMI issues, but there will likely be some that it does not address.  I am working on a WMI Diagnostic & Repair Tool that offers a number of additional WMI repair & testing options.  This will be included in all future versions of System Nucleus.  However, there will be a stand alone version available as soon as it is ready, which I expect will be in about a week, perhaps sooner.  Availability will be announced in the RSS feed, which can be most easily subscribed to here.  Initial download will be available only through the System Nucleus download page, but I may add it to other download sites if there is sufficient interest.

Download the latest version of System Nucleus here.


Copyright © 2010 spencerberus.tech. Web hosting.
WordPress Loves AJAX