Intellectual Property: Trademark, Copyright, Patent

An educating post from Joe Andrieu on Microsoft‘s Ribbon UI:

There are a few ways that courts currently recognize Intellectual Property protection. I’m not a lawyer, but I have taken a few classes and dealt with it as a technology entrepreneur. So, take this with a grain of salt, especially as I am likely to be too
broad or simplistic here.

The most likely protection they would use would be trademark, copyright, and
patent. These are often jointly described as
Intellectual Property, but are treated under the law differently. Microsoft is
also trying to establish a contractual agreement that
creates further protection.

Trademark only applies if the use confuses users into thinking the product is a
Microsoft product. That’s not too hard to
work-around as long as you aren’t mimicking office functionality directly.
Trademarks apply to marks on goods or services used in
commerce. It happens automatically upon use, but may be bolstered by labelling
(TM) and registration, which allows (R). It can also
be applied to trade “dress,” which is a unique presentation, packaging, or
appearance of a product.

Copyright applies to any expression of an idea, and particularly unique
expressions are definitely protected. It does not however,
apply to utility. That is, the function of the interface is not copyrightable,
only its expression, which I would interpret as its
unique visual characteristics. Copyright applies to all expressive (creative)
works, automatically; it does not require prior
approval by any agency.

Continue reading →

NTFS Links minor update

I decided yo update NTFS Links to fix an annoying issue several people complained about. If you copy a directory and decide to, yes, copy and not create soft link, you will be still prompted with the same question for every subdirectory inside. Windows gove no option to learn this is actually a subdirectory and not a different operation so the workaround is not as simple as it seems.

The solution is the following: each of the dialogs currently is suppressible using a special check box, which if checked makes dialog don’t appear unless Control key is pressed. Since this version, if unchecked, the dialog box is still suppressible while you hold Shift down. Thus, hold shift and have subdirectories processed with default option without prompt.

The rest of the changes, significant amount of in fact, add no more features. The extension is changed to using Unicode version of APIs (you can expect it to work as much as 1% faster), compiled with new compiler, without dependencies and thus distributable became unexpectedly small, 251K as compared to previous 336K.

What’s new in this build?

  • New: Shift key being hold suppresses prompt dialogs

Application Name: Alax.Info NTFS Links
License: Free for personal use, request commercial licenses via email or contact form
Latest Version: 1.1.2
Download Link: Alax.Info NTFS Links 1.1.2 (251K)

NTFS Links: Alternate data streams

Another interesting feature of NTFS file system is alternate data streams, which basically means that a file may be attached extra data such as for example “slave files”. The tricky peculiarity is that data streams are almost invisible to Windows shell, though Windows uses stream to attach version information (Summary property page in file properties) and zone information to mark downloaded files from unsafe locations.

The idea I thought about was that alternate data streams may be useful to create a named copy of file contents, something similar to checkingin to version control system. The idea does not seem to be worth implementation though as it is unpredictable how software (such as word processors) is updating the files. If the file is re-created, the existing alternate data streams would get lost with saving of the new content.

Additionally, a good introduction into NTFS features, including hard links and streams (I am actually surprised I came across these only now):

MD5 and SHA-1 using CryptoAPI from JScript

Alax.Info Crypt Tools provides an interface to popular cryptography hash functions (AKA one-way functions) for scripting code, such as JScript/JavaScript, VBScript etc. Also might be used in other COM/OLE/ActiveX compatible environments, however this makes less sense due to presence of native API. The usage is rather simple:

function MD5(Text)
{
Hash = WScript.CreateObject(“AlaxInfo.CryptTools.Md5Hash”);
Hash.AddStringA(Text);
WScript.Echo(“MD5(\”” + Text + “\”): ” + Hash.GetHashString());
}
MD5(“”);
MD5(“a”);
MD5(“abc”);
MD5(“message digest”);
MD5(“abcdefghijklmnopqrstuvwxyz”);
MD5(“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789”);
MD5(“12345678901234567890123456789012345678901234567890123456789012345678901234567890”);

MD5 and SHA-1 algorithms are implemented (more to appear when necessary).

Keywords: CryptoAPI, MD5 (Message-Digest algorithm 5; RFC 1321), SHA-1, CCryptProv, CCryptMD5Hash, CCryptSHAHash, CCryptSHA1Hash, HCRYPTHASH, CryptAcquireContext, CryptHashData

Application Name: Alax.Info Crypt Tools
License: Free for personal use, request commercial licenses via email or contact form
Latest Version: 1.0.0
Download Link: Alax.Info Crypt Tools 1.0.0 (225K)

ATLASSERT vs ATLASSUME

ATL of Visual Studio 2005 contains a new interesting macro, undocumented though, which seems to provide a better hint for detecting bugs. Unlike documented ATLASSERT, ATLASSUME not only asserts on failure, but also makes an infinite loop with __analysis_assume intrinsic inside for the code analysis tool. However it is also important that this intrinsic does not affect any compilation optimization, for which an __assume is to be used.

It is also quite interesting to find other new macros ATLENSURE_THROW, ATLENSURE, ATLENSURE_SUCCEEDED and ATLENSURE_RETURN_HR, for which we had an analog since Visual C++ 6.0 and ATL3 (different shorter names though as they are very much convenient and widely used).

Be informed on file system updates

Alax.Info Be Informed update is available.

What’s new in this build?

  • New: File system check activity; a check for file system changes in a specified directory and file name regular expression pattern with a notification on created, deteted file and file size changes according to configured granularity

05-image001.png

Keywords: FindFirstFile, FindNextFile, FindFirstChangeNotification, FindNextChangeNotification

Application Name: Alax.Info Be Informed
License: Free for personal use, request commercial licenses via email or contact form
Latest Version: 1.0.3
Download Link: Alax.Info Be Informed 1.0.3 (725K)

Be informed on exceeding pre-configured performance threshold

Alax.Info Be Informed update is available.

What’s new in this build?

  • New: System performance activity; a periodic poll for performance data and notification in case of exceeding pre-defined threshold

04-image002.png

Keywords: Performance, GetPerformanceInfo, PERFORMACE_INFORMATION, PERFORMANCE_INFORMATION, Memory, Commit Limit, Commited Bytes, Handle Count, Thread Count

Application Name: Alax.Info Be Informed
License: Free for personal use, request commercial licenses via email or contact form
Latest Version: 1.0.2
Download Link: Alax.Info Be Informed 1.0.2 (711K)