Technology Tales

Notes drawn from experiences in consumer and enterprise technology

10:36, 10th February 2016

Sorting data in SAS: can you skip it?

In the context of SAS programming, the necessity of sorting data has evolved with the integration of database technologies. When working with Base SAS datasets, sorting remains a common practice to enable BY-group processing, as many procedures rely on ordered data. However, when connecting to external databases, implicit sorting is often handled by the database engine itself, eliminating the need for explicit PROC SORT steps. This shift reduces computational overhead and streamlines workflows, particularly with large datasets. Discussions among users highlight scenarios where manual sorting in SAS might still be preferable, such as when custom collation sequences are required or when performance tests reveal unexpected outcomes. Alternatives like indexing offer trade-offs, balancing initial setup costs against repeated data access. The key takeaway for programmers is to understand the data source and procedure requirements, opting for implicit sorting when possible but retaining control where necessary. As SAS continues to adapt, the line between traditional data manipulation and modern database practices blurs, demanding a nuanced approach to optimise both efficiency and accuracy.

16:23, 4th December 2015

List or delete hidden files from command prompt

Files and folders on Windows can be marked with a hidden attribute that prevents them from appearing in normal directory listings or in Explorer. The dir command with the /A:H switch displays hidden files in a specified directory, while adding /S extends the search to include subdirectories and /B formats the output as a simple list. To show only hidden folders rather than files, the command uses /A:DH instead. Deleting hidden files requires the del command with the /A:H parameter, as attempting deletion without specifying this attribute will result in a file not found error. Individual hidden files can be removed by name, or all hidden files in a directory can be deleted at once using a wildcard, with the /S switch enabling deletion across subdirectories as well. When working with hidden folders, the rmdir command can remove them after generating a list with dir, though caution is necessary as mistakes can lead to permanent data loss.

20:15, 29th October 2015

Grid by Example

This online resource serves as a comprehensive learning platform for CSS Grid Layout, offering a variety of educational materials including short video tutorials that demonstrate different aspects of the specification, small examples showcasing individual features such as Subgrid, and ready-to-use pattern templates with fallback options for older browsers. The site provides a structured guide to help beginners start learning, links to additional articles and conference presentations, and a weekly email newsletter focused on CSS Layout resources. Created and maintained by Rachel Andrew, the platform also includes a GitHub repository where visitors can ask questions about Grid Layout and report browser bugs, whilst offering information about related projects and tools developed by the same creator.

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.

  • 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.