Technology Tales

Notes drawn from experiences in consumer and enterprise technology

20:06, 29th October 2015

Quantity Queries for CSS

A Dao of Web Design

CSS Shapes 101

These articles from A List Apart examine different aspects of CSS and web design philosophy. The first introduces CSS Shapes, a specification developed by Adobe that enables content to flow around complex, non-rectangular shapes on web pages using functions such as circle(), ellipse(), inset() and polygon(), as well as alpha-channel images, with additional tools from Adobe's Brackets editor making shape creation and editing more straightforward.

The second, written in 2000, argues that web designers should abandon the print-derived instinct to control page presentation and instead embrace the inherently flexible nature of the web, advocating for relative units, semantic markup and adaptable layouts that serve all users regardless of their device, browser or visual ability. The third introduces a pure CSS technique called quantity queries, which uses combinations of :nth-last-child() and the general sibling combinator to apply different styles depending on how many elements are present in a set, allowing layouts to respond to the quantity of content just as media queries respond to viewport dimensions.

11:15, 24th July 2015

Windows XP Command-line reference A-Z

The above provides an alphabetical reference guide for Windows XP command-line tools and utilities. The page lists over 100 commands ranging from basic file operations like copy and delete to network diagnostics such as ping and tracert, system administration tools including disk management and security functions, and Terminal Services operations. Users can access detailed help for any command by typing the command name followed by a forward slash and question mark at the command prompt. The Windows XP CD includes more than 40 additional support tools beyond those installed by default, which can help diagnose and resolve computer problems. Many of these command-line tools require administrator-level privileges to run properly. To use these commands, users must open the Command Prompt through the Start menu by typing cmd in the Run dialogue box. This reference was last updated in September 2009 and is no longer receiving regular updates from Microsoft.

18:40, 10th July 2015

Windows: Ignore errors with XCOPY and ROBOCOPY

When recovering data from damaged drives or performing large-scale directory operations on Windows, both xcopy and robocopy commands can be configured to continue copying despite encountering disk errors. The xcopy command uses flags such as /C to continue through errors, /H and /R to handle hidden and read-only files, /S for recursive copying and /Y to suppress overwrite confirmations. ROBOCOPY, which is available in Vista and Windows 7 or through the XP Resource Kit, offers faster performance and uses the /MIR flag to mirror entire directory structures, though this option can delete files from the destination if they no longer exist at the origin. Setting both retry attempts and wait times to zero with /R:0 and /W:0 ensures the operation proceeds without pausing when encountering problematic files. However, robocopy cannot bypass certain types of errors such as cyclic redundancy checks, and care must be taken when excluding junction points to avoid infinite loops.

18:41, 6th July 2015

You Might Not Need Underscore

The evolution of JavaScript, particularly with the introduction of ES2015 and ES2016 features, has significantly reduced the reliance on utility libraries such as Underscore for common tasks. Many functions previously considered essential for productivity in older versions of the language are now available natively through standard library methods, which are more consistent, easier to maintain and require less context for developers to understand. This shift encourages the use of built-in capabilities, which can simplify code readability and reduce the overhead of managing third-party dependencies. As modern browsers and tools like Babel support these standards, developers can leverage native array and object methods, function bindings and other features that eliminate the need for abstraction layers, fostering more sustainable and transferable coding practices.

07:35, 23rd June 2015

DNF Command Reference

DNF is a package management tool designed to handle software installation, removal and updates on Linux systems. It operates by interacting with repositories, which are sources of software packages. Users can specify packages using various formats, including names, versions and file paths, with support for pattern matching. Commands such as install, remove and repoquery allow users to manage packages, while modular filtering ensures only relevant packages from active module streams are considered. Metadata synchronisation is crucial for ensuring up-to-date repository information, though some commands may use cached data to reduce bandwidth usage. Configuration files and repository settings are stored in specific directories, and users can control package filtering through exclude and modular options. The tool also supports transaction management, enabling users to review and revert changes if necessary.

12:07, 8th May 2015

Linux / Unix ncftp: Upload Directory Tree To Remote FTP Server Recursively

The ncftp client provides an improved FTP experience for Linux and Unix systems, particularly useful when needing to upload entire directory structures to remote servers. Unlike standard FTP clients, ncftp includes enhanced features such as command line editing, command histories and recursive file transfers. Installation is straightforward through package managers like apt-get on Debian and Ubuntu systems or yum on RHEL, CentOS and Fedora distributions. The ncftpput command enables recursive uploads of complete directory trees, with options to specify usernames, passwords, custom ports and verbose output to monitor transfer progress. This utility proves especially valuable when managing remotely hosted sites where FTP remains the only available method for transferring files and subdirectories. The tool is available for FreeBSD, Solaris and most Unix variants, making it a versatile solution for system administrators needing reliable recursive file transfer capabilities.

20:00, 4th May 2015

Online CSS Unminifier

This tool was developed to convert minified CSS into a more readable format by using JavaScript and regular expressions, allowing users to adjust tab width for better formatting. Initially created as a simple online utility, it was later adapted into a standalone Node.js project, making it accessible for local use via npm. The tool gained widespread appreciation for its utility in debugging and reviewing minified stylesheets, though some users noted limitations in handling specific syntax or embedded data. Over time, the developer incorporated feedback to address these issues, and the tool remained a popular resource among developers for its straightforward approach to improving code legibility.

01:55, 5th March 2015

The FINDSTR command is a utility used to search for text patterns within files using regular expressions, offering options to specify search criteria such as case sensitivity, line positions and file locations. It supports parameters like /b for matching patterns at the beginning of a line, /i for case-insensitive searches and /s to include subdirectories, while allowing users to define search terms directly or read them from external files. Examples demonstrate its use in locating specific words, patterns, or lines within files, including the ability to filter results by line numbers, file names, or seek offsets, making it a versatile tool for text analysis in command-line environments.

01:51, 5th March 2015

How to Read the Value of an HTTP Header

Reading HTTP header values requires only a few lines of server-side scripting code, with the implementation varying slightly across different programming languages. In ASP, both VBScript and JScript access headers through the Request.ServerVariables collection, using the format HTTPx where x represents the header name with hyphens replaced by underscores. Java Servlet and JSP environments utilise the getHeader() method of the HttpServletRequest object, passing the header name directly with hyphens intact. Perl stores header values in the %ENV hash, again replacing hyphens with underscores and prefixing with HTTP. PHP follows a similar pattern to ASP and Perl, storing headers in the $_SERVER array with the same naming convention as HTTP_x with underscores replacing hyphens. Each language offers additional pre-defined server environment variables beyond these HTTP headers, though these fall outside the scope of basic header retrieval for user agent and device capability detection purposes.

17:06, 9th December 2014

LIBNAME Statement Syntax :: SAS/ACCESS 9.3 Interface to PC Files: Reference

The LIBNAME statement in SAS can be used to associate a library reference with external data sources such as Microsoft Excel or Access files, enabling interaction with these files as if they were SAS datasets. It requires specifying a library name, an engine name corresponding to the file type and optionally a physical path and filename, though the file extension often suffices to identify the engine. Connection options like PATH, INIT and PROMPT allow customisation of how SAS connects to the data, while specific parameters for Access and Excel files handle security settings, version compatibility and database interactions. The statement also supports clearing or listing library attributes, facilitating dynamic access to external data objects through SAS procedures and data steps.

  • The content, images, and materials on this website are protected by copyright law and may not be reproduced, distributed, transmitted, displayed, or published in any form without the prior written permission of the copyright holder. All trademarks, logos, and brand names mentioned on this website are the property of their respective owners. Unauthorised use or duplication of these materials may violate copyright, trademark and other applicable laws, and could result in criminal or civil penalties.

  • All comments on this website are moderated and should contribute meaningfully to the discussion. We welcome diverse viewpoints expressed respectfully, but reserve the right to remove any comments containing hate speech, profanity, personal attacks, spam, promotional content or other inappropriate material without notice. Please note that comment moderation may take up to 24 hours, and that repeatedly violating these guidelines may result in being banned from future participation.

  • By submitting a comment, you grant us the right to publish and edit it as needed, whilst retaining your ownership of the content. Your email address will never be published or shared, though it is required for moderation purposes.