Donec felis eros, blandit non

root's picture

Morbi id lacus. Etiam malesuada diam ut libero. Sed blandit, justo nec euismod laoreet, nunc nulla iaculis elit, vitae. Donec dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Vivamus vestibulum felis nec libero. Duis lobortis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc venenatis pretium magna. Donec dictum ultrices massa. Donec vestibulum porttitor purus. Mauris nibh ligula, porta non, porttitor sed, fermentum id, dolor. Donec eu lectus et elit porttitor rutrum. Aenean justo. Phasellus augue tortor, mattis nonummy, aliquam euismod, cursus eget, ipsum. Sed ultricies bibendum ante. Maecenas rhoncus tincidunt eros.

Donec felis eros, blandit non

root's picture

Morbi id lacus. Etiam malesuada diam ut libero. Sed blandit, justo nec euismod laoreet, nunc nulla iaculis elit, vitae. Donec dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Vivamus vestibulum felis nec libero. Duis lobortis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc venenatis pretium magna. Donec dictum ultrices massa. Donec vestibulum porttitor purus. Mauris nibh ligula, porta non, porttitor sed, fermentum id, dolor. Donec eu lectus et elit porttitor rutrum. Aenean justo. Phasellus augue tortor, mattis nonummy, aliquam euismod, cursus eget, ipsum. Sed ultricies bibendum ante. Maecenas rhoncus tincidunt eros.

Donec felis eros, blandit non

root's picture

Morbi id lacus. Etiam malesuada diam ut libero. Sed blandit, justo nec euismod laoreet, nunc nulla iaculis elit, vitae. Donec dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Vivamus vestibulum felis nec libero. Duis lobortis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc venenatis pretium magna. Donec dictum ultrices massa. Donec vestibulum porttitor purus. Mauris nibh ligula, porta non, porttitor sed, fermentum id, dolor. Donec eu lectus et elit porttitor rutrum. Aenean justo. Phasellus augue tortor, mattis nonummy, aliquam euismod, cursus eget, ipsum. Sed ultricies bibendum ante. Maecenas rhoncus tincidunt eros.

Windows Time Service Tools and Settings

hswong3i's picture

A very useful document when you are working with virtualization, e.g. VMware, XEN, KVM, plus Windows platform.

Usually you may face time sync problem, whatever faster or slower than host. A very simple tip: setup a ntpd within host, and force client to keep ping and update it. The Linux ntpd is very simple and so I will not mention the detail setup, but how to client to be more hardworking?

Here is the most important setting:

Windows Time Service Group Policy Settings

You can configure most W32Time parameters by using the Group Policy Object Editor. This includes configuring a computer to be an NTPServer or NTPClient, configuring the time synchronization mechanism, and configuring a computer to be a reliable time source.

Note
- Group Policy settings for the Windows Time service can be configured on Windows Server 2003 domain controllers and can be applied only to computers running Windows Server 2003.

You can find the Group Policy settings used to configure W32Time in the Group Policy Object Editor snap-in in the following locations:
- Computer Configuration\Administrative Templates\System\Windows Time Service
Configure Global Configuration Settings here.

- Computer Configuration\Administrative Templates\System\Windows Time Service\Time Providers
Configure Windows NTP Client settings here.
Enable Windows NTP Client here.
Enable Windows NTP Server here.

IMHO, just set it as 100 if you have local ntpd server ;-)

Siren 1.1 fixing security issues released

hswong3i's picture

Besides Drupal 6.1, a maintenance release that fixes problems reported using the bug tracking system, as well as security vulnerabilities, Siren 1.1 is now available for download, too. For more information, please refer to Siren 1.0 release note.

NOTE: If you are going to work with Siren's PDO drivers, always remember to use the latest PHP release, or even latest CVS snapshot. Some unexpected error may trigger when working with old PHP PDO implementation.

NOTE: It is strongly suggest to test Siren 1.1 with a flash new installation. If you are considering about a upgrade/migration from Drupal to Siren, you may first upgrade to latest Drupal release, and handle the migration from Drupal to Siren manually. Siren is not suggest to use for production, please use it with your own risk ;-)

Download

Compare MediaWiki "per-page access restrictions" third-party hacks

hswong3i's picture

Entry point

http://www.mediawiki.org/wiki/Manual:Preventing_access
http://www.mediawiki.org/wiki/Category:Page_specific_user_rights_extensi...

Background

If you intend to have different view permissions than that, MediaWiki is not designed for your usage. (See bug 1924.) Data is not necessarily clearly delineated by namespace, page name, or other criteria, and there are a lot of leaks you'll have to plug if you want to make it so (see security issues with authorization extensions for a sample). Other wiki software may be more suitable for your purpose. You have been warned.

Options

Multi-DB backend:
Details: Set up separate wikis with a shared user database, configure one as viewable and one as unviewable (see above), and make interwiki links between them.
PROs: elegant, no core hack, official suggested solution.
CONs: need to use interwiki links between each instance.

Group Based Access Control (http://www.mediawiki.org/wiki/Extension:Group_Based_Access_Control):
Compatible: 1.11.0 and higher
PROs: easy to setup, no patches, real extension, etc.
CONs: Users can still use search feature to find unauthorized pages and see excerpts in the search results.

Page access restriction (http://www.mediawiki.org/wiki/Extension:Page_access_restriction):
Compatible: 1.4-1.7.1, 1.10
PROs: useful for intranet relying on MediaWiki as a non-encyclopedic content management system, like e-learning platforms or informational systems.
CONs: requires patches to core MediaWiki code.

Simple Security (http://www.mediawiki.org/wiki/Extension:Simple_Security):
CONs: Outdated (1.4.x)

WhiteList (http://www.mediawiki.org/wiki/Extension:WhiteList):
Compatible: 1.6.0+
PROs: flexible pure extensions, similar idea as Blacklist.
CONs: limited groups handling (user based), limited flexibility, VERY NEW!

PageSecurity (http://www.mediawiki.org/wiki/Extension:PageSecurity):
Compatible: 1.8,1.9
PROs: Named security definitions, Support for MediaWiki user groups, Separate permissions for reading and writing, MOST POWERFUL!
CONs: requires patches to core MediaWiki code.

PageProtectionPlus (http://www.mediawiki.org/wiki/Extension:PageProtectionPlus):
Compatible: 1.8,1.9.1
PROs: have multiple protected and unprotected areas on a single article.
CONs: ?

Siren is now moving to 2.x development

hswong3i's picture

Following with the release of Drupal 6.0, Siren is now moving to 2.x development. Further more drivers development will first take place in 2.x, and backport for 1.x if possible, e.g. the debug of pdo_oci, pdo_sqlite and pdo_ibm.

You can obtain latest Siren 1.x by CVS export:

cvs -z6 -d:pserver:anonymous:anonymous@edin.no-ip.com:/cvs/siren export -r SIREN-1 -d siren-1.x-dev siren

For latest Siren 2.x snapshot, use the following CVS export command:

cvs -z6 -d:pserver:anonymous:anonymous@edin.no-ip.com:/cvs/siren export -d siren-2.x-dev siren

Nightly CVS snapshot tarballs are also available for Siren 1.x and Siren 2.x.

What will be the new face of Druapl 7.x database stack?

hswong3i's picture


I start my Drupal + Oracle research since the end of Drupal 4.7 life cycle (around Oct 2006), based on my client's request. The project is still running, but I am not satisfy about its progress. After keep trace in Drupal database stack implementation for more than years, it is time for focusing on Drupal 7.x development.

So what are the changes since 4.7.x? And what will be happened for 7.x? I would like to share my research progress with you, and so let's brain storming for what's next :-)

Siren 1.0 released

hswong3i's picture

After a parallel development of Siren with Drupal 6.x for more than 2 month, Siren 1.0 is now release together with Drupal 6.0. Since it is very close to the release of Siren 1.0 RC4, there is not much of changes unless the remove of use of persistence connection, based on stability concern. I am confident that the code is stable enough for wider testing by the community.

NOTE: It is strongly suggest to test Siren 1.0 with a flash new installation. If you are considering about a upgrade/migration from Drupal to Siren, you may first upgrade to latest Drupal release, and handle the migration from Drupal to Siren manually. Siren is not suggest to use for production, please use it with your own risk ;-)

Download

Persistence connection coming with 20~25% performance improvement

hswong3i's picture

Since my previous SQLite benchmarking generate some unexpected result (performance is greatly degrade when working with multiple concurrent connection), I try to revamp most of my existing Drupal DB driver implementation as persistence connection, which trying to reduce the DB connection overhead. Well, the result is once again unbelievable:

  • In case of PostgreSQL, performance improved for around 20%!
  • In case of Oracle, performance boosted for around 25%!
  • SQLite's performance still greatly degrade with multiple concurrent connection, even working in persistence mode.

The research figure is quite positive when compare my RC3 benchmarking result with that of RC4. This also means most databases have a lot of potential to improve their overall performance, based on existing Drupal 6.x implementation, with the help of persistence connection (w/o PDO).

UPDATE (2008-02-12): Oh, it is not a flash new idea for Drupal (http://drupal.org/node/171124 and http://api.drupal.org/api/function/db_connect/4.7). On the other hand, php.net also come with some useful comments about using pg_pconnect() or not. So for the mean time, using ordinary pg_connect() would be a safer and better choice. Well, at least did a good try, and also figure out persistence connection won't give any benefit to SQLite ;-p

First of all, let's have a look about the benchmarking figures:

Syndicate content