After The Deadline is a project of Automattic (the creator of WordPress) which checks:

  • spelling
  • grammar
  • styles (finds complex phrases, cliches, bias-language & suggests simple ones)
  • and detects misused words (has a database of 1500 most misused words & suggestions)

The software used to come as a plugin for several projects (like WordPress, RoundCube, PHP List) but it is now open source and anybody can embed it to their own code.

Besides the artificial intelligence it already has, it is possible to add new rules & improve the application.

The project also has libraries for jQuery, Ruby & Python to make developing new plugins easier.


Searching an entire database for a Guid or Unique Identifier

Searching an entire database for a Guid or Unique Identifier can be a bit of a tricky proposition. However a little bit of T-SQL can help…

DECLARE @GUIDHunted nvarchar(60)
SET @GUIDHunted = ‘0A24EC0C-65EE-4519-89DF-ABD3DD24F7EF’

SELECT *, ‘UNION ALL SELECT ”’ + + ‘.’ + + ”’, count(*) FROM ‘
+ +’.[‘ + + ‘] WHERE ‘ + + ‘ = ”’ + @GuidHunted + ””
FROM sys.all_columns ac
JOIN sys.all_objects ao
ON ac.[object_id] = ao.[object_id]JOIN sys.schemas s
ON ao.[schema_id] = s.[schema_id]where user_type_id = 36 — UniqueIdentifier
and != ‘sys’

Here is the output result for a fictional database (just copy the results into a new query window, delete the first UNION ALL and execute).

UNION ALL SELECT ‘myschema.Objects’ , count(*) FROM myschema.Objects WHERE ObjectID = ‘0A24EC0C-65EE-4519-89DF-ABD3DD24F7EF’

UNION ALL SELECT ‘myschema.Objects2’ , count(*) FROM myschema.Objects2 WHERE ObjectID = ‘0A24EC0C-65EE-4519-89DF-ABD3DD24F7EF’

This assumes that programmers weren’t storing guids in nvarchar types or that the programmers didn’t create other user types using unique identifiers.

FreeBSD 8.1-BETA1 released

The first of the test builds for the FreeBSD 8.1 release cycle is now available for several architectures.

If you are updating an already running machine the CVS branch tag is RELENG_8, or if you prefer SVN use “stable/8”. Updates done that way will result in a machine that says it is running “8.1-PRERELEASE”.

The freebsd-update(8) utility supports binary upgrades of i386 and amd64 systems running earlier FreeBSD releases. Systems running 8.0-RELEASE can upgrade as follows:

# freebsd-update upgrade -r 8.1-BETA1

During this process, FreeBSD Update may ask the user to help by merging some configuration files or by confirming that the automatically performed merging was done correctly.

# freebsd-update install

The system must be rebooted with the newly installed kernel before continuing.

# shutdown -r now

After rebooting, freebsd-update needs to be run again to install the new userland components, and the system needs to be rebooted again:

# freebsd-update install
# shutdown -r now

Users of earlier FreeBSD releases (FreeBSD 7.x) can also use freebsd-update to upgrade to FreeBSD 8.1-BETA1, but will be prompted to rebuild all third-party applications (e.g., anything installed from the ports tree) after the second invocation of “freebsd-update install”, in order to handle differences in the system libraries between FreeBSD 7.x and FreeBSD 8.x.

Mockup tool: Balsamiq Mockups

A very, very useful tool and worth the cost, $79 USD is Balsamiq Mockups. It works because Balsamiq Mockups intentionally uses hand-drawn UI elements, so that people don’t get attached to “that pretty color gradient” or think that your mockup has actual code behind it and is “practically done”…

AeroWindow 2.0 – Cool Windows 7 style modal popups

AeroWindow is a jQuery plugin for creating Windows 7-like aero style modal pop-ups complete with the minimize, zoom, maximize and close functions. There can be multiple pop-ups in one page where the active one is highlighted visually. All on the screen can be resized, drag’n dropped and maximized with double-clicks.

SharePoint 2010: User Profile Synchronization Service Woes

I will continue to update this post with the solution. As/if I/Microsoft support find it…

Having a terrible time getting FIM to start. It just won’t start. Logs provide tiny little tidbits such as

The Execute method of job definition Microsoft.Office.Server.UserProfiles.UserProfileImportJob threw an exception. More information is included below. User profile import is in progress!Import could not be started. Please start import later or stop import now for new import to start.

but nothing substantial… So it was time to get more detail by using ULS Viewer.

Using ULS Viewer

2: Looks like:
3: And is easy to start using with SharePoint 2010 by running it and doing
  1. “File”
  2. “Open From”
  3. “ULS” which should reference C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14LOGS

ULSViewer allows users with access to ULS log files to view their logs in a more user friendly interface instead of using standard log file viewers. Logs opened can be filtered, sorted, highlighted, appended, etc in order to single out the data that is important to the user. This information can be used to diagnose problems with machines running ULS services, or to monitor machines and the events they create.

The ULSViewer tool runs on either 32 or 64 bit architectures of Microsoft Windows 2003 Server, Windows 2008 Server, Windows 2008 Server R2, Windows 7, Windows Vista, and Windows XP.

The ULSViewer tool performs various actions against the data from ULS log files in order to better analyze it. ULSViewer allows the user to:

  • Highlight data of importance to the user on the fly
  • Bookmark log entries
  • Append logs to other logs in order to track trends
  • Hide unimportant data
  • Only view critical log entries by sorting data by severity
  • Write rules to prompt the user when certain events occur
  • View your data in a spreadsheet instead of the text file ULS generates
  • Monitor remote machines logs that are running ULS services
  • Open multiple logs at the same time in order to compare log files.
  • Open logs files from multiple machines at the same time.

I found the following:
UserProfileApplication.SynchronizeMIIS: Failed to configure ILM, will attempt during next rerun. Exception: System.Security.SecurityException: There are currently no logon servers available to service the logon request. at System.Security.Principal.WindowsIdentity.KerbS4ULogon(String upn) at System.Security.Principal.WindowsIdentity..ctor(String sUserPrincipalName, String type) at System.Security.Principal.WindowsIdentity..ctor(String sUserPrincipalName) at Microsoft.IdentityManagement.SetupUtils.IlmWSSetup.GetDomainAccountSIDHexString(String domainName, String accountName) at Microsoft.IdentityManagement.SetupUtils.IlmWSSetup.GrantSQLRightsToServiceAccount() at Microsoft.IdentityManagement.SetupUtils.IlmWSSetup.IlmBuildDatabase() at Microsoft.Office.Server.Us…
“56:05.2 OWSTIMER.EXE (0x0E00) 0x087C SharePoint Portal Server User Profiles 9q1h Medium ILM Configuration: Configuring certificate. 460c3158-2024-4635-8a85-011823d0caa2″
So is it a certificate issue?
I will continue to update this post with the solution. As/if I/Microsoft support find it…

Smokescreen: real time SWF to JS aka “hello iPad/iPhone”

Now this is “interesting”. Smokescreen, written by Chris Smoak, is a “Flash player written in JavaScript” in that it takes Flash objects and then actually converts them to JavaScript in real time… Whoah you say. Hello iPad/iPhone/whatever…

The goodness: it runs entirely in the browser, reads in SWF binaries, unzips them (in native JS), extracts all images and any embedded audio and then turns them into base64 encoded data:uris. Post all that prework it then stitches the vector graphics back together as an animated SVG. And rather nicely at that.

The badness: 8k lines of JS translates to ~175kb and some serious slowness on mobile devices…

The potential nss nss: supposedly it will be fully opensourced in the not too distant future. Allowing for sorts of optimization potential.