SwiftlyTilting: usability, reusability

Thursday, October 14, 2010

WinBinder 2010.10.14 released - WinBinder is a PHP extension for making Windows Applications

I’m now “officially” maintaining WinBinder, so from now on you can get the latest version of WinBinder directly from Winbinder.org’s download page

Read my tutorial on getting started with WinBinder.
Visit the Winbinder Forums if you need more assistance

Changes since 2010.10.01

Added in 2010.10.14
* Fixed bug with return values for wb_sys_dlg_open when using wbc_multiselect
* Made 3rd and 4th parameters of wb_send_message optional

Added in 2010.10.13
* Additional flag parameter for wb_sys_dlg_open that accepts the option WBC_MULTISELECT. If this is enabled, all selected files will be returned as an array.

Sunday, October 3, 2010

Winter 2.2.1 Released - Winter is an Interpreted language for MediaWiki

Here is an update for Winter, the Wiki Interpreter.

Changes include
* added ^o and ^c escape characters
* added + to allowed characters in function names and functions
* added #reset_all_vars function
* added ++ and — functions
* fixed bug with #strpos and #substr returning false when it shouldn’t
* added #is_numeric, #is_int and #is_string functions
* fixed bug with array assignment
* other minor bug fixes

Winter Homepage on Mediawiki.org
Winter Documentation

Download Winter 2.2.1
Downloaded 2866 times

Saturday, October 2, 2010

New version of Winbinder, the PHP extension for making Windows Apps, released

New version of WinBinder… with some actual NEW FEATURES

Download WinBinder 2010.10.01
Downloaded 2304 times
Tutorial on getting started
Winbinder Forum

This is a list of all changes since 0.46.190.

  • PHP 5.3 compatible
  • Unicode support added
  • Removed version checking from wb_windows.inc.php
  • Fixed memory leak in winapi library calls
  • Fixed bug where maximize wasn’t triggering WBC_RESIZE
  • Fixed bug where closing child windows would kill main window
  • Added WBC_NOHEADER style for ListView to disable the listview column header
  • Added WBC_MULTISELECT style for ListBox to that you can select more than one item
  • Added WBC_DEFAULT style to PushButton to make them display as the default button
  • ListView will respond to right clicks and fire WBC_RBUTTON
  • Window callback will pass WBC_GETFOCUS as an event when the window is focused
  • Window callback will respond to WM_HOTKEY(windows message) (experimental)
    New functions for use with the low level Windows API. These functions return pointers to callback functions, which are needed by certain WinAPI functions. The callback functions will send windows messages to the main Winbinder callback function, which will then trigger your PHP based callback function(s).

    • wb_get_midi_callback returns a pointer to MidiOutProc (can also be used for MidiInProc, WaveInProc, WaveOutProc or any similar callback) for use with functions like midiOutOpen
    • wb_get_enum_callback returns pointer to EnumWindowProc
    • wb_get_hook_callback returns a pointer to HookProc for use with various hooks.[/list][/list]

Finally got the time to merge my changes with Winbinder 0.5.0.. thanks to Ermac and Alec for their contributions to that version.

C source is included in the ZIP

Tuesday, August 3, 2010

MediawikiPlayer 0.2.4

This version fixes a bug where some variables were being written as parameters instead.

Mediawiki Extension Page: Extension:MediawikiPlayer
Original post: Embed JW FLV Media Player with Mediawiki using the MediawikiPlayer Extension

If you find MediawikiPlayer useful, please consider making a $5 donation.

Download MediawikiPlayer v0.2.4
Downloaded 2304 times

Thursday, July 1, 2010

MediawikiPlayer v0.2.3

This version fixes additional security issues for servers with register_globals enabled.

Local Wiki page: MediawikiPlayer
Mediawiki Extension Page: Extension:MediawikiPlayer
Original post: Embed JW FLV Media Player with Mediawiki using the MediawikiPlayer Extension

If you find MediawikiPlayer useful, please consider making a $5 donation.

Download MediawikiPlayer v0.2.3
Downloaded 2300 times

Thursday, June 10, 2010

MaintenanceShell 0.3.1

This version fixes a minor bug which caused a warning error to be displayed. This bug was introduced in 0.3.0

MaintenanceShell homepage on MediaWiki.org

Download MaintenanceShell v0.3.1
Downloaded 2303 times

Sunday, May 23, 2010

MaintenanceShell v0.3.0

This version fixes a major security issue with XSS and CSRF vulnerabilities. All users are encouraged to upgrade immediately.

MaintenanceShell homepage on MediaWiki.org

Download MaintenanceShell v0.3.0
Downloaded 2183 times

Thursday, May 13, 2010

cStruct and WinAPI: Classes for accessing the Windows API with PHP and WinBinder

One of the biggest roadblocks to writing code which accesses the Windows API is the fact that so many functions require you to provide data formatted in specific format. This format is defined on MSDN as a C struct, which has no direct representation in PHP. The best you can hope for is to figure out the layout of the structure, and then set up some PACK/UNPACK calls to convert the data to and from something more useful in PHP.

Enter cStruct, a collection of objects that helps provide support for C-like structures. All common data types have been implemented. This will save lots of time as you don’t have to remember or figure out how many bytes each datatype takes up and how to convert it to and from binary data.

Download cStruct.0.2.2
Downloaded 2060 times

Sunday, May 9, 2010

MaintenanceShell v0.2.4

This fixes a minor html issue with IE. Also includes the German language localization.

MaintenanceShell homepage on MediaWiki.org

Download MaintenanceShell v0.2.4
Downloaded 2224 times

Friday, May 7, 2010

Maintenance Shell v0.2.3 for Mediawiki

Fixed some minor bugs and also moved the text strings into the language file for better localization.

MaintenanceShell homepage on MediaWiki.org

Download MaintenanceShell v0.2.3
Downloaded 2098 times

Friday, March 5, 2010

MediawikiPlayer v0.2.1

This version fixes a bug which prevented loading of files that were stored on the wiki.

Local Wiki page: MediawikiPlayer
Mediawiki Extension Page: Extension:MediawikiPlayer
Original post: Embed JW FLV Media Player with Mediawiki using the MediawikiPlayer Extension

If you find MediawikiPlayer useful, please consider making a small donation.

Download MediawikiPlayer v0.2.1
Downloaded 2557 times

Thursday, December 17, 2009

phc-win 0.3.1 - a PHP EXE compiler

The bugs in bcompiler seem to have been worked out since phc-win 0.3.0. Unlike 0.3.0, this release has the standard PHP DLLs (for PHP 5.3.1) and separate Winbinder, win32std and bcompiler DLLs. I’m hoping to be able to get a smaller DLL with all of the required extensions going, but for now this is better than the buggy bcompiler version.

If you find php-win useful, please consider making a small donation.

View the phc-win documentation.

Download phc-win 0.3.1
Downloaded 5147 times

Note to XP users:
You may need to install the Microsoft Visual C++ 2008 Redistributable Package (x86) for EXEs to run correctly.

Note to Windows 2000, 9x Users
Due to a change in 5.3.x series of PHP, phc-win does not work on Windows 2000 or 9x machines. There are no plans to compile a 5.2.x series binary for phc-win. If you cannot upgrade your OS, I recommend using phc-win 0.2.1 which uses PHP 5.0.5.

Check the phc-win category for the latest version.

Wednesday, December 16, 2009

phc-win 0.3.0 - a PHP EXE compiler - compatible with PHP 5.3.1

It’s been quite a while since phc-win was updated due to the difficulty of getting all of the extensions compiled and running with each new version of PHP. Finally I got WinBinder compiled with PHP 5.3.1, and Alec Gorge helped out and compiled some lightweight DLL files to use with phc-win.

The good:
* PHP 5.3.1 compatible
* Program EXEs need only 1 DLL file and no other files to run correctly (if using one of the Alec Gorge compiled DLLs)
* Included DLL is only 2.44 megs

The bad:
* it seems bcompiler has changed since the last update of phc-win. Unfortunately it has introduced an error which causes programs to crash if your PHP code uses constants as default function parameter values. IE function foo ($bar = CONSTANT_VALUE) will cause the a program crash. Other problems may also exist with bcompiler. Because of this I may need to make the bcompilation stage optional.

UPDATE: Bug reports have been submitted to the bcompiler team and they are working on it, so hopefully there will be a resolution to this issue. Update 2: phc-win 0.3.1 is packaged with updated bcompiler dlls.

This version of phc-win has no actual functionality changes from 0.2.1 besides minor tweaks to get things working with php5.3 and working around the bcompiler issues.

If you find php-win useful, please consider making a small donation.

Download phc-win 0.3.0
Downloaded 2731 times

For the latest version, check the phc-win category.

Monday, September 7, 2009

SwiftlyTilting Wiki (re)Launches!

The wiki at SwiftlyTilting.com has received a face lift. I’ve also added documentation for all of my MediaWiki extensions, and there is a new sandbox area for users to try out Winter and my other extensions as well.


Sunday, August 9, 2009

CustomSidebar v0.3.0 - Mediawiki Extension

This update adds full template support as well as the ability to add sidebars based on user group and namespace.

CustomSidebar Homepage on MediaWiki.org

Download CustomSidebar 0.3.0
Downloaded 6839 times

Friday, July 31, 2009

Embed JW FLV Media Player with Mediawiki using the MediawikiPlayer Extension

According to JW, “The JW FLV Player is the Internet’s most popular and flexible media player.” With the MediawikiPlayer Extension, one can easily include the JW FLV Media Player into wiki pages. JW FLV Player supports

  • FLV
  • MP4 (H264/AAC)
  • MP3
  • Youtube
  • Various streaming servers
  • Various XML playlists

Documentation available at the MediawikiPlayer homepage on MediaWiki.org

Download MediawikiPlayer v0.2.0
Downloaded 2576 times

Download MediawikiPlayer v0.1.0
Downloaded 2637 times

Friday, June 19, 2009

Maintenance Shell MediaWiki Extension v0.2.2

This update for Extension:MaintenanceShell adds quote mark support for the command line.

Download MaintenanceShell v0.2.2
Downloaded 2381 times

Monday, June 1, 2009

Access MediaWiki maintenance scripts without a terminal shell using the MaintenanceShell extension

Some of the most powerful utility scripts which are included with Mediawiki can only be run via the command line, usually through a terminal shell. Unfortunately, many ISPs don’t allow terminal shell access, making life hard on MediaWiki admins.

I’ve written an extension for MediaWiki which tricks these maintenance scripts into thinking they are being run via the command line. A form on a special page provides access from the wiki.

MaintenanceShell homepage on MediaWiki.org

Download MaintenanceShell v0.2.1
Downloaded 820 times

Thursday, May 21, 2009

CustomSidebar extension for MediaWiki 1.14.0

I had the need for custom sidebars definable on a per-page basis in MediaWiki, and I didn’t like the current options out there. Luckily MediaWiki 1.14.0 adds a new hook right after the sidebar is generated, making it easy to replace its contents. You can either pull contents from another page or define the menu items on the page itself.

CustomSidebar Homepage on MediaWiki.org

Download CustomSidebar 0.1.0
Downloaded 827 times

Winter 2.2.0 - Interpreted language for MediaWiki

It’s been quite a while since I’ve updated Winter, but recently I discovered how to access content from other pages so perhaps we’ll see some new features. For now, I’ve added #include and #include_raw. #include will include the text from another page and run it through the Winter engine. #include_raw is not run through the Winter engine before being dumped into the page. Wikitext markup is not interpreted during this stage.. if you need the content to be formatted, you should use the #include command within a <winterprewiki> block. I also fixed a few bugs.

Winter Homepage on Mediawiki.org
Winter Documentation

Download Winter 2.2.0
Downloaded 1306 times

Thursday, November 1, 2007

Winter 2.1.1

Just a quick bugfix for Winter.

  • fixed NOTICE of undefined variable
  • fixed count command which would return the incorrect value

And since it’s been a while since I posted these links:
Winter Homepage on Mediawiki.org
Winter Documentation

Download Winter 2.1.1
Downloaded 1501 times

Sunday, September 2, 2007

Winter 2.1.0

One thing that has been bugging me about Winter is that code must be left aligned or else MediaWiki will format it with some HTML. This made it impossible to write neat code, especially in longer programs. I finally hit upon a decent workaround and now program code is much more readable.


{{#function | formatNum ||
{{#if | {{#1}} | {{#1}} | no more }} bottle{{#if | {{#1 == 1}} | | s }}

{{#for | {{#i = 99}} || {{#i >= 0}} || {{#i --}} ||
{{#bottles | @= | {{#formatNum | {{#i}} }} }}
{{#ucfirst | {{#bottles}} }} of beer on the wall, {{#bottles}} of beer.
{{#if | {{#i}} |
Take one down and pass it around, {{#formatNum| {{#i - 1}} }} |
Go to the store and buy some more, 99 bottles
}} of beer on the wall



{{#function | formatNum ||
   {{#if | {{#1}} || {{#1}} || no more }} bottle{{#if | {{#1 == 1}} || || s}}

{{#for | {{#i @= 99}} || {{#i >= 0}} || {{#i --}} ||
   {{#bottles | @= | {{#formatNum | {{#i}} }} }}
   {{#ucfirst | {{#bottles}} }} of beer on the wall, {{#bottles}} of beer.
   {{#if | {{#i}} ||
      Take one down and pass it around, {{#formatNum| {{#i - 1}} }}
      Go to the store and buy some more, 99 bottles
   }} of beer on the wall.


I’ve also added features to access the various template parameter variables used on a page, as well as various other upgrades and bug fixes.

  • changed syntax so that carriage returns are ignored if followed by a space
  • added template variable access
  • added time, microtime, date, urlencode, explode, implode, request_var, template_var, to_str, to_int, show_page_text, version, wordwrap, keep_nl
  • added ^. escape char
  • added <winterprewiki> tag which allows winter to be used before mediawiki processes it
  • added addVar for external user functions to add variables
  • added WinterBeforeProcess and WinterAfterProcess hooks
  • added various information available at runtime such as user name, page name, etc
  • fixed bug with nowinter tag
  • fixed bug when using foreach with noexistent array
  • fixed bugs with & and ? operators (they’re turned into html entities)
  • fixed bug caused by pipes being returned in error messages
  • updated error messages

Download Winter 2.1.0
Downloaded 1162 times

Sunday, August 12, 2007

Winter 2.0.2

A user left a comment notifying me about a warning message which would appear if allow_call_time_pass_reference was set to off in PHP settings. I’ve fixed the problem along with a few other minor bugs for this release. I also added a new comment syntax {{#| You comment here }}

Change log:

* Fixed allow_call_time_pass_reference bug
* Fixed bug with <nowinter> tag
* Fixed bug when undefined variables were referenced
* Added alternative comment syntax

Download Winter 2.0.2
Downloaded 1002 times

Friday, August 10, 2007

Winter 2.0.1 and Winter manual updated

I finished up the initial stages of the Winter 2.0 documentation today, so now you should be able to fully take advantage of all the new features. I noticed a few minor issues as I was documenting the code so I corrected them and have released the changes as Winter 2.0.1.

Change log:

  • Fixed some bugs with #eval
  • Changed the | (bitwise or) operator to ? since | is a reserved symbol in Winter (can’t believe I missed that one before!)
  • Improved #comment so that it does not evaluate code
  • Improved the escape character system

Download Winter 2.0.1
Downloaded 978 times

Saturday, August 4, 2007

Winter 2.0.0

It’s been over a year since I last released an update for Winter. Since then MediaWiki introduced support for parser function extensions, which provide some of the same basic functionality as Winter. Winter code does not interfere with parser functions, and they can be used on the same page, though care must be taken when combining both types of code together.

This new version of Winter has been in the works for a few months now. Many new features and functions have been added, and some bugs have been corrected as well. The program code has increased in size by nearly 80% since 1.5.0!

Homepage on Mediawiki.org

About Winter:

Winter is the Wiki Interpreter, a complete programming language plug-in for MediaWiki, the software which powers Wikipedia and many other wikis across the internet.

Change log:

  • Added installation settings $wgWinterMaxNesting, $wgWinterMaxOperations, $wgWinterMaxIterations, $wgWinterNotAllowed
  • fixed bug in operation count which severely under counted operations
  • fixed bug when trying to loop inside of a function
  • added external function definition support
  • improved tag
  • improved error messages
  • added - and $ to acceptable function and variable name characters, explicitly defined _
  • depreciated #define in favor of #str_replace_all
  • added @ modifier for variable assignment operators
  • added < - and <=> variable assignment operators
  • added & | xor < < >> bitwise operators
  • added ^ arithmetic operator
  • added #add, #subtract, #multiply, #divide arithmetic functions
  • added #strtoupper, #strtolower, #ucfirst, #trim, #ltrim, #rtrim, #strip_tags string functions
  • depreciated #default in favor of #set_param_default
  • added #comment as another name for #null
  • added #debug for easy debugging stub display
  • added #rand function
  • added #html_to_xml and #xml_xpath xml function
  • added array variable type (2 dimensions maximum)
  • added #foreach loop construct for traversing arrays
  • added []= and [][]= operators for array assignment
  • added #count, #array_rand, #array_rand_value, #sort, #rsort, #asort, #arsort, #natsort, #ksort, #krsort array functions

Download Winter 2.0.0
Downloaded 1297 times

Validate XHTML | Word Press