Software products by Wakaba

Application Programs

Perl standalone (command-line) applications

Modularized XML Document Type Definition (DTD) Generator (2003〜2004)
A Perl script to generate XML DTD module implementations and/or DTD drivers, that can be used with modularized XHTML DTDs.
Though an updated but incompatible version of this script was included in the manakai package, it was dropped later, because of the uselessness of the DTD modularization and the XML DTD itself.
Language: Perl5
Library: A module from manakai is used.
wttjs (WebIDL ECMAScript Binding Test Suite Generator) (2008)
A tool to generate automated test suite from an IDL fragment conforming to the WebIDL specification. It generates test cases to check whether the DOM ECMAScript binding of a Web browser conforms to the WebIDL specification and the given IDL fragment, as well as a test harness for the automated testing against the generated test cases.
Language: Perl5, JavaScript
Libraries: Modules from manakai and Whatpm are in use, as well as JSON module available from CPAN.
Harusame (2008)
A tool to extract a version of the HTML document written in the specified natural language, from a source HTML document that contains paragraphs in multiple natural languages. It eliminates management cost for multilingual Web sites to synchronize versions of a document written in different languages.
Language: Perl5
Libraries: Modules from manakai and Whatpm are in use. - Commit Log Feed Generator (2008)
The script provides a command-line interface to update an Atom Feed that is intended for providing commit logs for a software developmenet project. The script, when invoked, adds an Atom Entry that describes a change made to the project's repository.
Language: Perl5
Libraries: Modules from manakai and Whatpm are in use.
generate-pm-package (2010)
The generate-pm-package script can be used to generate Perl module packages using a simple manifest file.
Language: Perl5

Web applications

ssmchat (2000-2002)
A Web-based chat system. It is developed as a simpler replacement for "comchatq" Web chat system, which was one of the commonly-used Web-based chat CGI scripts at that time.
Language: Perl5
The Web forum in the "Furoiran" Web site (2000-2001)
A Web-based BBS system. It was a customized version of Web-based BBS CGI script which was widely distributed at that time.
Language: Perl5
The content management system for the "Furoiran" Web site (2000-2001)
A Web-based content management system for the Web site, including basic microblogging feature.
Language: Perl5
H2H classic implementation (2001〜2003)
A Web diary (or blogging) system that supports static generation of HTML documents, with a simple markup language inspired by hnf, an HNS's markup language. Later version also support dynamic generation. Although it was originally developed for my own use, it was also used to construct a brass band club's Web site, later.
Language: Perl5
SuikaWiki wiki engine (2002〜)
A modular wiki engine, which can support multiple document markup languages and various datasources. It supports an extensible form template language, an extensible user-friendly hyperlinking syntax, rich metadata annotation framework, a calendar interface for blogging, a bugtrack interface, and other features as plugin modules. It supports a namespace feature, which was not widely implemented by wiki engines at the time of introduction, in its its wiki name syntax. Its user interface is so designed that it is fully-customizable and fully-localizable by the administrator and/or users of the wiki.
Though its development started as a derivation from YukiWiki, its source code has been replaced completely in 2004 and is no longer a variant of YukiWiki.
Language: Perl5
Something like virtual machine with something like assembler (2005)
A virtual machine and assembler implemented by JavaScript, inspired by (but not compatible with) COMET and CASL.
Language: JavaScript
BEB (Bookmarklet Editor Bookmarklet) (2005〜2010)
A bookmarklet editor, distributed as a bookmarklet itself.
Language: JavaScript
WebHACC (2007〜)
A user-friendly conformance checker for Web documents, supporting latest Web standards including HTML5, CSS3, and Atom.
Languages: Perl5, JavaScript
Libraries: Strictly speaking, WebHACC just provides a user interface and the conformance checking feature is provided by manakai and Whatpm.
Live CSSOM Viewer (2007)
A real-time CSS style sheet anaylsis tool that dumps the CSSOM tree generated by the Web browser in use.
Language: JavaScript
netaddradmin-2007 (2007)
This is a simple management tool for local network addresses. It can reduce your cost to manage local IP addresses possibily assinged to your network devices. Host names and descriptions can be associated with IP addresses. List of host names can be output in the Unix /etc/hosts format, which is useful for DNS-less network in particular. It also provides the "ping" view mode, which lists the current status of availability of hosts using Unix ping command.
Language: Perl, JavaScript
HTML Schema database (2007-2008)
An archive database for historical HTML DTDs and other schemas. It contains a number of HTML DTDs and other files, registered with metadata such as author, published date, derivation, and so on. It is possible to add line-by-line annotation to any file registered in the database, using the Web interface. It is also possible to compare any schema files to find their differences.
Language: Perl Web user account management tool (2008)
An interactive Web application for the management of user accounts and groups of users for the access control of Web contents hosted by
Source codes for this tool has not been published.
Language: Perl5, JavaScript
Library: manakai
progressreport-2008 (2008)
This is a simple submission system for weekly progress report.
Language: Perl5


manakai (2002〜)
A set of Perl modules supporting Internet message formats such as RFC 822/2822 mail messages, HTTP messages, and as such, in addition to a pure-Perl DOM implementation supporting latest Web standards such as DOM3 Core, DOM2 Traversal, DOM3 Events, and Selectors API.
Language: Perl5 (XSLT 1.0 was also used.)
HSML (Hyper Slide Markup Language) and its implementation (2003〜2005)
An XML-based markup language for presentation slides with XBL 1.0 / HTC implementation supporting Mozilla browsers and WinIE.
Language: XBL 1.0, HTC, JavaScript
CharClass (2003〜)
A Perl regular expression character class library, defining character classes such as “non-voiced Katakana letters”, “Han characters listed in Japanese daily-used Han character set”, “characters listed in a character class defined in JIS X 4051”, “characters that can be used in XML 1.0 Name”, and so on.
Language: Perl5
drag.xbl and (2003〜2004)
An XBL or HTC library to make an HTML element draggable, supporting Mozilla browsers and WinIE.
Language: XBL 1.0, HTC, JavaScript
vcutils — Utilities and Perl modules for version control tools (2004〜2010)
A collection of utility scripts and Perl modules for handling version control system files, especially RCS and CVS repository files.
Language: Perl5
Library: manakai
toc.xbl: Auto-generation of table of contents (2005)
An XBL library that enables automatical generation of table of contents section of an HTML document, supporting Mozilla browsers.
Language: XBL 1.0, JavaScript
xpointer.js, An XPointer implementation by JavaScript (ECMAScript) (2005)
An implementation of XPointer, written in JavaScript. It supports the shorthand pointer syntax and element() and xmlns() schemes. In addition, its extensible implementation framework enables an easy adoption of new XPointer schemes, as demonstrated by samples of additional scheme implementations.
Language: JavaScript
Simulation and Graph-generation utilities (2006〜2007)
Perl modules and scripts, developed as core or protocol-independent components of network protocol simulation and visualization tools, during 2006-2007. They are not useful by themselves - actual simulation and visualization logic have to be built on top of features provided by these Perl codes, e.g. job scheduling, input parameter handling, and drawing abstract interfaces.
Language: Perl5
Whatpm (2007〜)
A set of Perl modules supporting latest Web hypertext application technologies such as HTML5, CSS3, Atom, and WebIDL. It includes pure-Perl implementations of HTML5 parser and CSS parser.
Language: Perl5
testdataparser (2007〜2011)
A test data parser for Tree Construction Tests for HTML parsers.
Language: Perl5
Regular expression visualizer and regular expression related Perl modules (2008)
This is a collection of tools for regular expression, including a regular expression visualizer and Perl regular expression parsers for Perl and JavaScript regular expression languages.
Language: Perl5
SAMI JavaScript Framework (2009〜)
Sami is a lightweight JavaScript framework for modern Web applications in Web browser environment or the Web platform. It provides an easy-to-use API for various commonly-used sets of operations for Web applications, without tainting prototype chains or other "platform environment". The core part of the library is inspired by Ten.js framework. In addition, it contains advanced features such as unit testing and parser generation, as additional modules.
Langauge: JavaScript
Test::Apache::RewriteRules (2010〜2011, as the main author)
The Test::Apache::RewriteRules module sets up Apache HTTPD server for the purpose of testing of a set of RewriteRules in apache.conf Apache configuration.
Language: Perl5
perl-test-test (2010)
This package enables testing of testing frameworks, i.e. meta-testing. The Test::Test::More module provides subroutines for testing of Test::More-based test modules such as test_ok_ok and test_ng_ok.
Language: Perl5
Migemo.js (2011)
Yet another Migemo implementation in JavaScript. It generates regular expressions for incremental search of strings written in Japanese.
Language: JavaScript
Web::URL::Canonicalize - Perl URL Canonicalizer (2011)
The Web::URL::Canonicalize module parses, resolves, and canonicalizes URLs as Web browsers do. Web browsers canonicalize URLs in many places. URL parsing, resolving, and canonicalizing rules are too complex and sometimes vary across browsers. This module is trying to imitate their behavior as far as possible.
Language: Perl5

Web Browser Extensions

Windows Explorer “Web view” enhancement (1998?)
A set of HTML template (.htt) files, JScript/VBScript files, and an ActiveX control for enhanced version of Windows Explorer's “Web view”interface introduced by WinIE4.
These files has not been published.
Languages: JScript, VBScript, Visual Basic 5
WinIE context menu items (2002)
A set of document analysis utilities that can be added to the context menu of WinIE browser.
Language: JScript
A sidebar panel that provides a secondary browsing context for displaying navigation or table of contents page, targeted for Mozilla suite browser.
Languages: XUL, JavaScript
Japanese language pack for LiveHTTPHeaders (2003〜2004)
A Japanese language pack for LiveHTTPHeaders, HTTP header analysis tool for Mozilla browsers.
Language: XUL
Hatena Star Everywhere Chrome Extension (2011)
The "Hatena Star Everywhere" Chrome Extension adds Hatena Star function to every page opened in your Chrome browser.
Language: JavaScript

Windows Native Applications

Text editor (1997?)
A simple plain text editor with MDI user interface.
This program has not been published.
Language: Visual Basic 4
Message browser (1999?〜2000?)
A message browser that supports various Internet message formats such as RFC 822 mail messages, Usenet news articles, and MIME entities (including MIME media types such as message/external-body, multipart/*, and so on), DSNs, MDNs, various content (transfer) encoding such as Base64, Quoted Printable, uuencoded, ROT13, and ROT47, and various character encodings such as ISO/IEC 2022 based encodings (including US-ASCII, ISO/IEC 8859 coded character sets, EUC encodings, and ISO-2022-JP), Shift JIS variants, Unicode encodings (including UTF-1, UTF-7, UTF-8, UTF-9 (Latin-1 based), UTF-16, UTF-32, and UTF-EBCDIC), TRON code, and Mule internal encoding.
This program has not been published.
Language: Visual Basic 6
Library: Microsoft Internet Explorer is used as embeded browser (i.e. the Trident rendering engine is embeded).
Multimedia screen saver with scripting support (1999)
A flexible screen saver engine, which can render texts, audios, and images. With a simple configuration dialog, you can make the screen saver render a text with some decorations and/or an image or images within the specified directory (i.e. slideshow). In addition, a simple script language enables flexible control of objects including texts, audios, and images. Surprisingly, it can be standalone, in other word, it can be used as a normal application that is not a screen saver!
This program was distributed within a limited scope. A “multimedia” CD-ROM album application was constructed using this engine.
Language: Visual Basic 6
Library: For playing mp3 audio files it requires an external DLL file.

Technical Specifications

Web-related Specifications

The <urn:x-suika-fam-cx:> Namespace (2001〜2007)
A specification that defines the syntax of the urn:x-suika-fam-cx: URN NID and its name assignment process, as well as an RDF/XML-based language for marking up the definition of names defined in the namespace. There is an Ajax implementation.
DOM Document Type Definition Module (2007〜2008)
A specification that defines a manakai extension to DOM for manipulating document type definitions, which can be used, for example, to generate XML DTD from a program. It is implemented by manakai.
Selectors Serialization Format for Testing (SSFT) Specification (2007)
A specification that defines a serialization canonical format of the Selectors language for the purpose of testing of tools. It is implemented and used by Whatpm.
SuikaWiki Markup Language (SWML) (2008〜2010)
This specification defines SuikaWiki Markup Language (SWML). SWML is the markup language developed and implemented for SuikaWiki hypertext system.
manakai's Conformance Checking Guideline for Obsolete HTML Elements and Attributes (2010)
This specification defines authors' requirements for historical HTML elements and attributes, which are not defined in the Web Applications 1.0 specification or listed but marked as obsolete, such that conformance checkers can find authoring errors against these requirements. Use of such non-conforming elements and attributes are sometimes necessary for compatibility with legacy or Galápagos user agents and/or historical authoring practices. A conformance checker that reports a non‐conforming elements and attributes just as non-conforming is not useful enough to ease authoring processes in such legacy circumstances. The scope of this specification is explicitly limited to the conformance checking of documents (or parts of documents) that contains obsolete elements and attributes for the purpose of comaptibility. This specification is developed as part of the manakai project. Although it might be useful to other parties, the only intended audiences of this specification are contributors of the project. This specification does not define or describe any kind of standard.

Translations of Specifications

Translations of RFCs (2002〜2003)
Japanese translations of RFCs related to Internet message formats.
Translated texts are marked up as well as the original text by an XML-based language, which is an extension of the RFC 2629's RFC markup language for including both original and translated texts and then translated into HTML by an XSLT style sheet.
Introduction to Web Forms 2.0 repeating form control model (2006)
A Japanese translation of the section that introduces the repeating form control model in Web Forms 2.0 specification.
HTML 5 and Web Workers (2008, one of co‐translators)
Japanese translations of HTML5 specifications. A new interactive interface and tools for translation works has been developed by Wakaba. Since the HTML5 specification adopts a new specification development model, it is unrealistic to follow the traditional model for the development of a Japanese translation of a technical specification. The new tools enable a new style of works, i.e. use of an interactive Web interfaces, paragraph-level editing, and automatic synchronization with the original specification text.
Language used for tools: Perl5, JavaScript