Sunday, November 22, 2009

My Blog was Moved

Thank you for your visiting. I moved this blog to, because I wanted to check features of wordpress App. :)

My all existing entries were migrated to the new blog. Please, change your bookmark, or bookmark it if you didn't add my blog to your bookmark!

Friday, July 17, 2009

XC Download

I’ve released an application called "XC Download Test". That is a test implementation of the agent who checks updates, downloads MODs and uploads those to your server. The agent will make it fun to build your site and keep it. But, things you can do with XC Download are very few, because it implements only a couple of features for test.

This agent application tries to download all items that an item you specified depends on. You may test the behaviour with test XML. When the application is launched, you get sample list from my homepage by clicking a button of the application window. Then, do double-click "cube_default" to download the theme. The application will begin to download Package_Legacy before theme download, because it tries to solve dependency. This is one of the most important features.

By this agent, there will be no need to discuss default organizations of packages that our project releases. Our project is software development project, but not distribution project. Therefore we should not use energy to keep other MODs that we don't develop. But, we often discuss what MODs to put the package in default.

I think that "simple is best" and "users have freedom to choose". But, the reason why the package is requested to contain default MODs is that it's difficult to get MODs for beginners.

We are developers. Our energy should be used for software development, not software collections. Therefore, we should solve the problem by software mechanics. Distributions are very great activity, but we should not do it. If we have to do something for distribution, it's writing code.

See cygwin. They don't have distribution packages , because they provides a powerful installer. It's easy to download favorite software. So nobody needs distribution package containing default software. Users have freedoms. That's very nice.

Thursday, June 25, 2009

Messaging System

I'm writing a simple messaging system of the new XOOPS Cube core 1.0. Messaging system is not PM. That's core system and a async communication method between objects (actors). An object will be able to pass a message to another object, even if the object don't know the existence of another object. An object as an actor receives messages through it's mailbox. A such mechanism is used by CELL processor that needs to communicate between SPU and PPU.

The messaging system and the task system is the most imortant new features of the new core.

We should prepare such systems for next-gen pararell programming. And, my role is developing such systems. I will write technical brief of these.

Thursday, June 18, 2009

iPhone 3G S Reservations

Today, I went to the shop in Yokohama and reserved "iPhone 3G S". The shop will give this new phone to me at 26th, June. I'm looking forward it.

Today is also a release day of iPhone OS 3.0. I has finished upgrading. Upgrading needed much time, because it takes much time to download. I still haven't used all features of the new OS, but I feel that spotlight is very cool.

XOOPS Cube implements "cubot light" aka action search in the control panel. We should enhance this feature.

Saturday, June 13, 2009

XOOPS Cube will orient to mobile gadget

I'm busy same as always. I don't have time to touch PC and Web. So I'm using iPhone well to enjoy internet.

Now I can not write an entry of my blog, because I don't use PC at my home.
(I have to go to bed to keep my health, when I come back to my home)

iPhone enables to write blog. I often update my blog on the train. The following screenshot is "Hatena Touch" that is iPhone App for the Japanese blog service "Hatena".

With this App, I can modify existing entries, write drafts and post new entries.

That's really useful. Even though I'm a XOOPS Cube developer but use "Hatena". Because the environment that this App brings is very useful for my life style.

This shows me what I should do. Now, many great developers are there in XOOPS Cube community. They have enough passions and skills to develop XC.

Also I have passions to develop some software that enables to control XC with mobile gadget. Because I want to control my website with iPhone App. If such software doesn't exist, busy workers can not keep their site.

Therefore I want to develop such software.

Monday, April 6, 2009

XOOPS Cube Legacy 2.1.7 RC released!

Hi all,

The project released XOOPS Cube Legacy (aka Package_Legacy) 2.1.7 RC. This is a minor upgrade version from 2.1.6a, contains many fixes and many enhancements and includes all patches of 2.1.6a security fix.

Please test this RC and report issues if you encounter any troubles. You may post reports to the project forum or each community forum.

(We ask community administrators to forward those reports)

How to upgrade from 2.1.6 or 2.1.6a
Remove mainfile.php and /install directory from the package not to break your current environment. Next, upload files of the package to your server. Finally, do update modules indicating red icon in the module management of the control panel. You may close the site in the control panel to hide your upgrading.

- Gusagi
- Hxrr
- Marijuana
- Mikhail
- Minahito
- Mumincacao
- Onokazu
- Roger
- Salamander
- Tohokuaiki
- Tom_G3X

Change Log
[Bug Fix - From Bug Tracker]
- Fix Bug #2491813 - SmileEditAction include multi byte comment.
- Fix Bug #2491817 - SmileEditAction cannnot delete old file.
- Fix Bug #2591041 - Typo Legacy_PublicControllerStrategy.class.php.
- Fix Bug #2642879 - javascript error in admin area.
- Fix Bug #2642959 - SQL Error in Legacy_Updater.
- Fix Bug #2658360 - doubtful escaping in quoteString()
- Fix Bug #2666693 - Error in /XUpgrade/admin/class/UpgradeProcessor.class.php
- Fix Bug #2686374 - Bugs in class.phpmailer.php v2.0.2 (Updated PHPmailer to v2.0.3)
- Fix Bug #2690736 - typo: X_ITEM_TILE (X_ITEM_TITLE?) default_notify.tpl
- Fix Bug #2690739 - typo in /install/include/functions.php, line 38
- Fix Bug #2696701 - user_lostpass.html email maxlength too short
- Fix Bug #2699408 - Specify 2nd argument of mysql_real_escape_string().
- Fix Bug #2724748 - XoopsMemberHandler::getUserByEmail() cannot get user object.

[Bug Fix - From "XCube" Bug Tracker]
- Fix Bug #2656854 - XC_CLASS_EXISTS loops infinity.
- Fix Bug #2635869 - Abstracts difference of class_exists between two versions.

[Patches - From Feature Request Tracker]
- Request #2642992 - exclude extra trim()
- Request #2662922 - DB Layer can be overridden.
- Patch #2697022 - Package_Legacy¥html¥ - new portuguese translations
- Patch #2697034 - extra_languages¥ - new pt_utf8 translations
- patch #2697044 - missing: XUpgrade and system pt language files
- Patch #2701060 - Path disclosure in xoopsmailerlocal.php (pt_utf8)
- Patch #2701140 - legacyRender: update for Portuguese Files

[Other Changes/Enhancements]
- Request #2682887 - MySQL Database Connection should specify the client_flags
- Legacy Controller class provides LEGACY_MODULE_VERSION constant as phpversion.

Sunday, March 1, 2009

Abstraction by Include/Link Switch

The virtual function is often used as one of solutions to accept the same source code to different environment. This way makes surface of source code beautiful, but it is not good performance because virtual functions are heavy process. Programers who work on real time application think that's beautiful way but feel that isn't ideal performance.

Because compilers generate indirect-jump with a function pointer table from virtual function, CPU's branch prediction feature is not useful for a such situation. It surely triggers pipeline-stole. If a perfect JIT will be completed in the future, the perfect JIT will be useful for this situation. But, there is not a such JIT now.

Virtual functions are very good approach. But we hope to fix as many as possible of the function address. If there are some functions that we don't need to handle as abstract functions at runtime, address of those functions should be fixed to let CPU use direct-jump. Let's say you have to develop the middleware that can be used for both of PS3 and Xbox360. Firstly, you may plan to use virtual functions to abstract different between two platforms. But, imagine use of game software. Users never able to change platform while they are playing the game.

In other words, developers decide which libraries to link when compiling. The middleware you're developing makes it possible that developer compile each application for multi-platform from the same source code, so you may supply the plural include files and libraries for each platform. Developers will write each makefile. Because this approach doesn't use virtual functions, most function address will be fixed. And, some of them will be compiled as inline-functions.

A such approach is one of standard approaches of multi-platform programming. We take the approach for the following purpose.

- Writes inline-assembly code on multi-platform that has different CPU.
- Changes JIT of game script for multi-platform that has different CPU.
- Solves the different compilers and different compiler versions.
- Changes link libraries to their debug edition or others.

Maybe the approach is also useful for script programming. We often focus on the "runtime-compile" feature of the script program environment. But, the environment has also the "runtime-link" feature.

Let's say you have to write functions that remove platform difference between PHP4 and PHP5. The platform condition is not changed at runtime. Therefore, when program tries to include a file declaring the functions, you may prepare two files for each platform. That's like the approach of C/C++. C/C++ can change include-path and link-library by platform conditions. And, that's better performance than the approach that each function checks platform and changes execution.

That's one of standard approaches if our language is C/C++. However, the script programming world has the different common sense from C/C++. Therefore developers who work on PHP may not agree the approach that change include-file by platform condition.