Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

How To Build A New Freetype

I've had several requests for my RPM for freetype2 including sub-pixel rendering for openSUSE 10.2. So here are instructions on how to build your own, including my modified SPEC file. If you're in the USA it might be illegal to download my file, so this file is only for people who live in free countries. Or at least semi-free countries, like the UK.

  1. Download freetype2 source rpm from http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/src/ - it might be a newer version by the time you come to download this.
  2. Download freetype-2.3.3.tar.bz2 and freetype-doc-2.3.3.tar.bz2 from freetype.org.
  3. Download freetype2.spec if your government will let you.
  4. Install the source rpm: sudo rpm -ivh freetype2-2.3.1-7.src.rpm
  5. Put the tar.bz2 files in /usr/src/packages/SOURCES
  6. Put the spec file in /usr/src/packages/SPECS
  7. Build the rpm: rpmbuild /usr/src/packages/SPECS/freetype2.spec
  8. The built rpms will be in /usr/src/packages/RPMS/i586
Note that you will need to have any required libraries and tools installed in order to build this. It should just be the basic development tools I think.

a silhouette of a person's head and shoulders, used as a default avatar

Sub-pixel Antialiasing in openSUSE 10.2

Finally, I have sub-pixel antialiasing in openSUSE 10.2. For some reason, it was turned off in the 10.2 release because of something being broken. I haven't been able to find out what. But yesterday I got tired of waiting for it to be fixed, so I downloaded the alpha freetype package from 10.3, only to find that it also has sub-pixel antialiasing turned off. No problem - I just installed the source package, replaced the tar files with version 2.3.3 ones, edited the spec file to enable sub-pixel rendering, disabled the freetype2-bitmap-foundry patch (because it wouldn't compile with it in there), rebuilt the rpm and installed it. Hey presto - sub-pixel rendering!

Last time I blogged about getting fonts to look better in 10.1, I had a load of comments telling me I should just turn of antialiasing because text looks better without it. Well, I like antialiasing, and especially sub-pixel antialiasing. On my 1900x1200 display it looks great. So there!

a silhouette of a person's head and shoulders, used as a default avatar

JJ, get some chocolate :-)

Had to say good-bye to mouse. He'll travel to Australia. Again. Tried to smuggle myself into the luggage but I was too big. Hope mouse will at least send me a postcard. He is such a lucky mouse. My friend even bought chocolate for him.

a silhouette of a person's head and shoulders, used as a default avatar

EDS + Hibernate = 100% CPU

There has been issues reported by GW users that Evolution hangs/suspends for a while when composing mails. We weren't able to reproduce the issue and respective gdb traces didn't give enough information. Lately, I started hibernating my laptop and when I resume from hibernation, I noticed that EDS started taking 100% CPU and when gdb is attached to the process... voila!!!.. EDS was running with 264 threads and most of it are waiting to update GW addressbook and rest are waiting to update GW calendars.

A little further investigation revealed that it was because of the combination of g_timeout_add()+hibernation. GLib stores the last processed time for g_timeout_add and when hibernated, the memory image is stored and restored, when resumed from hibernation. When restored, callbacks registered with g_timeout_add() gets called - as the difference in time during hibernation and resume satisfies the g_timeout_add() timeout value and that too in multiples of 100. Harinath (of Mono fame) helped me understand the GLib part and the fixes have gone in for GW and webcal provider.

a silhouette of a person's head and shoulders, used as a default avatar

User scenarios of text grid

The following user scenarios of text grid are under investigation.

1. When user creates a text document, the default paper mode of text grid is read from user preference settings. User can switch the default paper mode of text grid in text document options tab page. (Tools --> Options --> Text Document --> General) by clicking the check box "Use squared paper mode for text grid".

2. When import a Ms Word 97/2000 file (.doc), the default paper mode is treated as "standard paper mode".

3. When import a text document of the previous version of OO.org (.odt, .sxw), the default paper mode is treated as "squared paper mode"

4. When user is editing a text document with text grid.
if he switchs the paper mode from "squared" to "standard", the following behavior is used:
* line height = Max base text size + Max ruby text size
* lines per page = type area height / line height
* Max ruby text size = 0

if he switch the paper mode from "standard" to "squared", the following behavior is used:
* line height = type area height / lines per page
* Max base text size = line height * 2 / 3
* Max ruby text size = line height / 3

a silhouette of a person's head and shoulders, used as a default avatar

Two kinds of text grid layout

As mensioned before, there are two kinds of text grid layout which are used in CJK users. One is "squared page mode", the other is "standard (rectangle) page mode".

Per the text grid prososal approved by ODF TC, the style:layout-grid-standard-mode property is added to specified which kind of text grid is used for the document.

In order to ensure that either “sqaured mode” or “standard mode “is used for the whole document, the style:layout-grid-standard-mode property can only be set for the default style of the “page-layout”. When the style:layout-grid-standard-mode attribute appears inside a style:page-layout definition, then the attribute MUST be ignored.

Global setting entry for selection of which kind of text grid layout is used for the whole document. (Tools-->Options-->OpenOffice.Org Writer-->General)


When the "Use squared page mode for text grid" is checked, the original tab page of text grid is used.


When the "Use squared page mode for text grid" is unchecked, the following tab page of text grid is used.

a silhouette of a person's head and shoulders, used as a default avatar

Microsoft ISA server support

Today I came across a E2K_DEBUG trace forwarded to me from a Beta customer that had OWA url like http://www.example.com/CookieAuth.dll?Logon and after some googling found out that, when a Mailbox server is behind a Microsoft ISA proxy server, the OWA url gets redirected to the above link. Evolution-exchange now will support Microsoft ISA server as well.

a silhouette of a person's head and shoulders, used as a default avatar

Text grid in Ms Word 97 binary file format

In Ms Word 97 binary file format, there are three SPRMs to deal with grid. They are:

Name

sprm

Property

size

Description

sprmSDxtCharSpace

0x7030

Sep.dxtCharSpace

long

Specifies the grid width

sprmSDyaLinePitch

0x9031

Sep.dyaLinePitch

long

Specifies the grid height

sprmSClm

0x5032

Sep.clm

long

Specifies the grid type


sprmSClm has four values, which corresponds to four types of grid.

Name

value

Grid type

sprmSClm

0

No grid

1

Specify line and character grid

2

Specify line grid only

3

Text snaps to character grid


a silhouette of a person's head and shoulders, used as a default avatar

Text grid enhancement in MS Office 2007

Today, I downloaded and installed a Chinese trial version of MS Office 2007. I was surprised that “Square page mode” is also supported in MS word 2007, which is not supported in previous version.

Below illustrates the menu entry for “square mode” setting. ( Maybe this function is disabled in none_CJK version in default).

Setting tab page:

Squared page (20 ×20):

If the “square page mode” is enabled, the page setting menu is disabled. “standard page mode” setting is not allowed, which avoids mixed page mode in a document.

a silhouette of a person's head and shoulders, used as a default avatar

My Subwoofer Is Woofing

I managed to get the subwoofer on my Inspiron 9400 working today. I had read in several places that I just need to add 'model=ref' to the module config file, but I'd tried that without success.

Today I discovered that openSUSE 10.2 uses version 1.0.12 rc2 of the alsa drivers, and they don't support the subwoofer. So I downloaded alsa-driver-1.0.13, configured it with ./configure --with-cards=hda-intel, ran make, and then make install-modules, rebooted my machine, and the sub was working. Oh and that model=ref line was added to /etc/modprobe.d/sound, so now the first line is options snd-hda-intel enable=1 index=0 model=ref.


There's only one slight problem - the master volume control doesn't adjust the subwoofer (shown as LFE in the mixer), and muting the sound also doesn't mute the sub. But other than that it works!