1100 0000 1101 1110

0xc0.de/trace|

RECENT CHANGES

LibComponentLogging, Optionally ARCed

OCTOBER 30, 2011 17:42 - LIBCOMPONENTLOGGING

The newest builds of LibComponentLogging add support for Automatic Reference Counting (ARC).

Library Core:

http://github.com/aharren/LibComponentLogging-Core

Logging Back-ends:

http://github.com/aharren/LibComponentLogging-LogFile

http://github.com/aharren/LibComponentLogging-SystemLog

http://github.com/aharren/LibComponentLogging-NSLog

http://github.com/aharren/LibComponentLogging-NSLogger

ah

Card Decks 2.1.1, Configurable Card Decks in Your Bag

SEPTEMBER 14, 2011 23:01 - CARDDECKS

Card Decks 2.1.1 is a universal build which adds a native iPad user interface:

In addition, it contains some small updates to the iPhone user interface.

Build 2.1.1 requires iOS 4.0 or later and is available from the App Store.

ah

LibComponentLogging, Maintenance Builds

AUGUST 7, 2011 12:12 - LIBCOMPONENTLOGGING

Build 1.1.4 of LibComponentLogging's Core fixes the definition of the main log macro which sometimes prevented it from being used as a natural replacement for logging functions:

http://github.com/aharren/LibComponentLogging-Core

Build 1.0.3 of qlog removes the trailing semicolons which were erroneously included in the macro definitions.

http://github.com/aharren/LibComponentLogging-qlog

ah

Card Decks 2.0.3, Processing for App Store

JUNE 25, 2011 17:05 - CARDDECKS

A small update to Card Decks is available in the App Store.

The new build adds an action menu to the cards view which can be activated by tapping on the top margin:

The new build also fixes some user interface animation glitches.

ah

LibComponentLogging, Recent Updates

JUNE 24, 2011 23:23 - LIBCOMPONENTLOGGING

An update to the Core files of LibComponentLogging fixes a symbol visibility mismatch which may occur when the Core files are put into a static library. Build 1.1.3 is available from the Core repository at GitHub:

http://github.com/aharren/LibComponentLogging-Core

The following logging back-ends were also updated based on recent bug reports and feature requests:

http://github.com/aharren/LibComponentLogging-NSLog

http://github.com/aharren/LibComponentLogging-NSLogger

Build 1.0.2 of qlog adds additional logging macros which also take the log component as an argument:

http://github.com/aharren/LibComponentLogging-qlog

ah

Card Decks 2.0.2, A Small Update for Your Card Decks

DECEMBER 5, 2010 11:11 - CARDDECKS

An updated version of Card Decks is available in the App Store.

Card Decks 2.0.2 contains the following bug fixes and features:

ah

LibComponentLogging, Logger Updates

NOVEMBER 7, 2010 17:55 - LIBCOMPONENTLOGGING

The GitHub repositories of the LibComponentLogging logging back-ends have been updated to reflect the recent changes to the Core files. The logging back-ends do now use 'pretty function names' to provide better log messages for applications which make use of Objective-C++:

http://github.com/aharren/LibComponentLogging-SystemLog

http://github.com/aharren/LibComponentLogging-LogFile

http://github.com/aharren/LibComponentLogging-LogFile-Example

The 'devel' branches of the repositories have also been upgraded to the latest Core files.

In addition, a new logging back-end has been added: The new NSLogger back-end integrates Florent Pillet's NSLogger logging client which supports remote logging for Mac OS X and iPhone OS / iOS devices:

http://github.com/aharren/LibComponentLogging-NSLogger

See http://github.com/fpillet/NSLogger for more details about NSLogger.

ah

LibComponentLogging Core, Maintenance Build 1.1.2

OCTOBER 21, 2010 22:42 - LIBCOMPONENTLOGGING

A small update to the Core files of LibComponentLogging fixes compile and link errors which occured when using the library with Objective-C++. Build 1.1.2 is available from the repository on GitHub.

ah

Card Decks 2.0.1, A More Detailed List of the Changes

AUGUST 29, 2010 21:02 - CARDDECKS

Card Decks 2.0.1 is now available in the App Store. Here's a more detailed list of the changes since Card Decks 1.1:

ah

Card Decks 2.0.1, Processing for App Store

AUGUST 25, 2010 22:23 - CARDDECKS

Card Decks 2.0.1 is right on its way to the App Store.

A short list of what has changed since Card Decks 1.1:

ah

qlog - quick logging macros

JUNE 20, 2010 21:05 - LIBCOMPONENTLOGGING

qlog is a set of quick logging macros for LibComponentLogging.

http://github.com/aharren/LibComponentLogging-qlog

qlog provides a short macro for every log level of LibComponentLogging, e.g. qlerror() for error messages and qltrace() for trace messages. Additionally, all logging macros take the current log component from a preprocessor define which can be (re)defined in your application at a file-level, section-based, or global scope.

To use qlog, simply add the qlog.h file to your project and define the preprocessor symbol ql_component at a global scope with your default log component, e.g.

#define ql_component lcl_cDefaultLogComponent

Then, logging statements can be added to your application by using the qlog macros instead of LibComponentLogging's lcl_log macros, e.g.

qlinfo(@"initialized");
qlerror(@"file '%@' does not exist", file);
qltrace();

If you want to use a specific log component for all logging statements in a file, you can simply redefine ql_component to match this log component, e.g. by adding a #undef #define sequence at the top of the file:

#undef ql_component
#define ql_component lcl_cFileLevelComponent

ah

LibComponentLogging SystemLog, Feature Build 1.1.1

APRIL 2, 2010 14:45 - LIBCOMPONENTLOGGING

A new release of the LibComponentLogging SystemLog logger, which sends log messages to the Apple System Log facility (ASL), is available for download from the project's repository on GitHub:

http://github.com/aharren/LibComponentLogging-SystemLog

Build 1.1.1 adds the following features:

The SystemLog logger is compatible to LibComponentLogging Core 1.0 and 1.1, and can be used without LibComponentLogging Core.

ah

LibComponentLogging LogFile, Maintenance Build 1.1.2

FEBRUARY 21, 2010 23:07 - LIBCOMPONENTLOGGING

Build 1.1.2 of LibComponentLogging's LogFile logger fixes the following bug:

The new build is available from the repository on GitHub:

http://github.com/aharren/LibComponentLogging-LogFile

ah

unifiedps 1.3.1

FEBRUARY 14, 2010 11:50 - UNIFIEDPS

Unifiedps also moved to GitHub. The initial build 1.3.1 removes some internal code which is no longer needed with the new repository, it also fixes some formatting issues in the source code and removes a warning with newer versions of Perl, e.g. on Mac OS X 10.6.

Additionally, the packaged .unifiedpsrc template file includes a new -AAx user-defined option which tells unifiedps to display information about the processes (including all parent and child processes) of all users, even those which are not connected to a controlling terminal, but not those which belong to root, nobody, daemon, and those users starting with a '_'.

ah

LibComponentLogging LogFile, Feature Build 1.1.1

FEBRUARY 10, 2010 20:57 - LIBCOMPONENTLOGGING

The first stable build of the LibComponentLogging LogFile logger 1.1 release is available from the project's repository on GitHub:

http://github.com/aharren/LibComponentLogging-LogFile

Build 1.1.1 adds the following features and bug fixes:

The LogFile logger can be used in combination with LibComponentLogging Core 1.0 and 1.1.

ah

LibComponentLogging UserDefaults, Build 1.0.1

FEBRUARY 5, 2010 17:31 - LIBCOMPONENTLOGGING

UserDefaults is a LibComponentLogging Core extension which stores/restores settings to/from the user defaults. Currently, the extension can store/restore active log level settings.

The UserDefaults extension is living in its own repository on GitHub:

http://github.com/aharren/LibComponentLogging-UserDefaults

The following code shows a simple usage pattern for the UserDefaults extension in your application's main.m file:

#include "lcl.h"
#include "LCLUserDefaults.h"

int main(int argc, char *argv[]) {
  // restore the log level settings from the standard user defaults
  [LCLUserDefaults restoreLogLevelSettingsFromStandardUserDefaults];

  // start your application
  ...
}

The UserDefaults extension uses the following format for storing log level settings in your application's domain:

"logging:<bundle identifier>:<log component name>:level" = <integer>

Examples:

"logging:com.yourcompany.YourApplication:Application/Component 1:level" = 5
"logging:com.yourcompany.YourApplication:Application/Component 2:level" = 3

You can simply change the log level settings from the command line by using the 'defaults' command, e.g.

defaults write <application> "logging:com.yourcompany.YourApplication:Application/Component 1:level" -int 2

ah

LibComponentLogging Core, Feature Build 1.1.1

FEBRUARY 3, 2010 22:05 - LIBCOMPONENTLOGGING

Core

Build 1.1.1 of LibComponentLogging Core is available on GitHub. It adds the following features:

ah

LibComponentLogging LogFile, Example Xcode Project

JANUARY 27, 2010 21:45 - LIBCOMPONENTLOGGING

Just pushed an example Xcode project to GitHub which bundles the library Core and the LogFile logger of LibComponentLogging with a small example application:

http://github.com/aharren/LibComponentLogging-LogFile-Example

The project contains the latest builds of LibComponentLogging Core (build 1.0.4) and the LogFile logger class (build 1.0.3).

ah

Card Decks, Maintenance Build 1.1.2

DECEMBER 24, 2009 07:23 - CARDDECKS

A maintenance update of Card Decks is now available in the App Store. Build 1.1.2 fixes the following bugs:

ah

Introducing [a] Blank Space

DECEMBER 17, 2009 23:20 - BLANKSPACE

Blank Space is a tiny web application which serves as a blank space between the application icons on your iPhone's home screen. That's it. There's nothing more.

ah

Card Decks, Feature Build 1.1.1

NOVEMBER 7, 2009 07:55 - CARDDECKS

The first build of the 1.1 release of Card Decks is now available as an update in the App Store.

Card Decks

Card Decks 1.1 contains the following new featues:

ah

Using the Unicode Symbols Keyboard in Card Decks 1.1

NOVEMBER 6, 2009 23:59 - CARDDECKS

Release 1.1 of Card Decks adds a 'keyboard extension' for Unicode symbols which lets you select special characters from the font directly when editing a card. So, you don't have to use the trick of adding special characters via their UTF-8 encoding in Card Decks URLs anymore.

The following screens show the list of Unicode symbol blocks in the keyboard, the first symbols of the 'Miscellaneous Symbols' block, and the snowman symbol. Just click on a symbol in the symbol list, and it will be inserted into your card's text.

By default, the symbols keyboard shows only a selected set of Unicode blocks and symbols. The 'full symbol table' can be enabled via the Settings application.

ah

Card Decks, Maintenance Build 1.0.3

OCTOBER 19, 2009 23:55 - CARDDECKS

Build 1.0.3 of Card Decks is now "Ready for Sale" in the App Store. This update fixes the following bugs:

ah

Card Decks, Maintenance Build 1.0.2

SEPTEMBER 10, 2009 18:01 - CARDDECKS

Maintenance build 1.0.2 of Card Decks is available in the App Store. It contains the following improvements and bug fixes:

ah

LibComponentLogging Core, Maintenance Build 1.0.4

JULY 25, 2009 18:27 - LIBCOMPONENTLOGGING

Maintenance build 1.0.4 of LibComponentLogging Core fixes an issue with the main logging macro lcl_log in the Core part of the library which prevented the definition of custom logging macros on top of lcl_log.

With build 1.0.4, it is now possible to define simplified logging macros which draw the current log component from a file-level (or global) #define, e.g.

#define log_info(_format, ...) \
  lcl_log(FileLevelLogComponent, lcl_vInfo, _format, ##__VA_ARGS__);
#define FileLevelLogComponent \
  lcl_cUIC1

log_info(@"initialized");

ah

Using UTF-8 Encoded Characters in Card Decks URLs

JULY 25, 2009 16:01 - CARDDECKS

The font that is used by Card Decks contains a lot of special characters, e.g. the sun with rays symbol '☀', the cloud '☁', or the umbrella symbol '☂'. Unfortunately, the iPhone's keyboard is very limited with regard to the set of characters that can be selected, e.g. you cannot write the cloud symbol via the keyboard.

Until a future version of the iPhone OS, or the Card Decks application, adds support for specifying a character's encoding directly when editing a card, e.g. using UTF-8, you can create a Card Decks URL which encodes a deck with your cards and then import that card deck into the application. Within a Card Decks URL, special characters can be used with their UTF-8 URL encoding, e.g. the sun symbol has the UTF-8 encoding 0xe2 0x98 0x80 which can be encoded in an URL as %e2%98%80. Accordingly, the cloud symbol can be encoded as %e2%98%81, and the umbrella symbol as %e2%98%82.

A sample Card Decks URL which adds a new card deck named 'Weather' consisting of cards which show the sun, the cloud, and the umbrella symbol could look like this:

carddecks:///add?Weather,ffffff,000000&%e2%98%80&%e2%98%81&%e2%98%82

More information about the Card Decks URL scheme is available at the Card Decks project site at /CardDecks.

ah

Card Decks 1.0.1 available in App Store

JULY 16, 2009 23:23 - CARDDECKS

The first release of Card Decks is available in the App Store. Card Decks is a small iPhone OS application which provides decks of simple, configurable, colored, multi-line text cards which can be used for voting, or to show your opinion, argument, or mood.

ah

LibComponentLogging LogFile, Feature Build 1.0.3

JUNE 7, 2009 15:10 - LIBCOMPONENTLOGGING

Feature build 1.0.3 of LibComponentLogging LogFile adds the ability to append to an existing log file instead of always creating a new log file on startup.

ah

LibComponentLogging Core, Maintenance Build 1.0.3

MAY 30, 2009 16:34 - LIBCOMPONENTLOGGING

Maintenance build 1.0.3 of LibComponentLogging Core fixes some small issues in the Core part of the library:

ah

LibComponentLogging Core, Maintenance Build 1.0.2

APRIL 26, 2009 22:32 - LIBCOMPONENTLOGGING

The maintenance build 1.0.2 of the Core part of LibComponentLogging adds a missing import for the Foundation framework to the lcl.h main header file.

Without this import, the compiler may complain about a bad definition of the type _lcl_level_t if lcl.h is imported without a preceding import of the Foundation framework, e.g. if lcl.h is imported as the first file in the prefix header file or if no prefix header is used.

ah

Logging to a File or to the System Log

FEBRUARY 21, 2009 12:22 - LIBCOMPONENTLOGGING

Additional logger implementations are available for LibComponentLogging:

ah

Component-based Logging for Objective-C Applications

JANUARY 25, 2009 23:15 - LIBCOMPONENTLOGGING

After working with Objective-C on Mac OS X and the iPhone OS for a while now, I've factored out some code for component-based logging for Objective-C applications into a small open source library named LibComponentLogging.

The library is designed ...

LibComponentLogging is split up into a Core part, which provides the main logging concepts like log levels and log components, and Loggers, which implement concrete logging strategies, e.g. writing the log messages into a file. This separation makes LibComponentLogging deployable for different application scenarios, e.g. an application may write its log message to a file while another application may send them to the system log.

ah

unifiedps 1.2.46 available

FEBRUARY 10, 2008 16:58 - UNIFIEDPS

An updated version of unifiedps is available on its project site at /unifiedps.

Changes since 1.2.31:

ah

alias ps="~/bin/unifiedps"

SEPTEMBER 13, 2007 21:02 - UNIFIEDPS

$ ps
 PID        PPID  USER  TTY      TIME COMMAND
 1          0     root  -     0:39.30 /sbin/launchd
: 146       1     ah    -     1:07.48 /sbin/launchd
:  1787     146   ah    -     0:00.51 /Applications/Utilities/Terminal
    1788    1787  root  s000  0:00.01 login -pf ah
:    1789   1788  ah    s000  0:00.02 -bash
:     1819  1789  ah    s000  0:00.02 unifiedps
 

Finally I made it to rewrite some Perl code which was originally only intended to display the running processes on different Unix-like platforms in a tree-structured format. Actually, just to find the right parent process to 'kill'.

The main component of this code was an abstraction of the different platforms' native 'ps' commands accompanied by a simple tree formatter. The supported platforms were AIX and i5/OS PASE, HP-UX, Linux, and Solaris.

The rewritten code at /unifiedps has grown to a more convenient wrapper for the native 'ps' commands and adds functionality for restricting and marking the displayed processes, a small macro processor for defining user-defined options, and additional platform support.

ah