Skip to content

RED! RED! It's all RED! And RED is POSITIVE!

It has been done.

There isn't much more to say about the long outstanding dmake removal from the LibreOffice build system than what Björn Michaelsen described in detail except one thing that sprang to my mind when seeing the final commit that removed 93554 lines: it's all red and it's so good.

Going to FOSDEM

As usual I'll attend this year's FOSDEM to spread and gather knowledge, meet people and have fun.

I'll definitely stick around the LibreOffice Devroom on Sunday if you want to meet me and I would be pleased if you come visit my talk Language Tags - or, what is BCP 47 and why would we want it that is scheduled to start at 14:20

See you at Bruxelles!

Editable Date Acceptance Patterns in LibreOffice

The introduction of more restrictive date acceptance patterns in LibreOffice 3.6 (see earlier blog entries here and here) generated quite some discussion whether the change was good or bad. The fact that not all locales had patterns for incomplete (only day and month) date input added to their data also added some angry voices.

Independent from that there was one thing overlooked: users want to be able to input dates using the numeric keypad and in locales with a '.' dot date separator that was not possible anymore because usually then there is no dot on the keypad due to the decimal separator being different. That certainly needed to be addressed.

There is no way to satisfy everyone with a default set of patterns, I therefore implemented a Date acceptance patterns edit field in the Tools→Options→LanguageSettings→Languages dialogue that follows the selected locale and enables users to add, edit and remove patterns.

Date acceptance patterns edit field.
Date acceptance patterns edit field.

The change is currently in master and pending review as a late feature for inclusion to the 3.6.2 release.

Example for the German de-DE locale:

  • default patterns: D.M.Y;D.M.
  • to enable additional input on numeric keypad: D.M.Y;D.M.;D-M-Y;D-M
    • if 3-4 shall not result in a date, D-M- could be used instead of D-M
    • note that to enter an ISO 8601 Y-M-D date with a D-M-Y pattern active one needs to enter a year >31 or with at least 3 digits, e.g. 011
  • instead of D-M-Y;D-M also D/M/Y;D/M could be used

Changes to the patterns become effective immediately after having confirmed and closed the dialog.

Does your LibreOffice locale need a date acceptance pattern for incomplete date input?

Update 2012-08-31T23:08+0200 : Editable Date Acceptance Patterns in LibreOffice

As explained in an earlier article a new feature will be available with LibreOffice 3.6 that limits date recognition of input to predefined locale dependent patterns to prevent erroneous detection of dates. To be able to input incomplete dates a locale needs date acceptance patterns defined in its locale data, quite a lot submissions of such patterns have already been included, but many locales do not have any pattern assigned yet. For these locales date input will only be possible as a complete date, no incomplete dates will be accepted. Maybe your locale should be enabled for incomplete date input but isn't yet? Then please submit the pattern(s), either as a comment to this blog post, or on the LibreOffice l10n mailing list if you are involved with LibO localization anyway, or simply mail me.

Locales without explicit DateAcceptancePattern elements:
(one implicit full date pattern is always generated)

ak_GH    ar_DZ    ar_EG    ar_OM    ast_ES    az_AZ    bn_IN    bs_BA    cv_RU    da_DK    de_AT    de_CH    de_LI    de_LU    dsb_DE    dz_BT    ee_GH    el_GR    en_AU    en_CA    en_GB    en_GH    en_JM    en_NA    en_ZA    eo    es_AR    es_BO    es_CL    es_CO    es_CR    es_DO    es_EC    es_GT    es_PE    eu    fa_IR    fo_FO    fr_CA    fur_IT    fy_NL    gl_ES    gsc_FR    gug_PY    ha_GH    haw_US    he_IL    hi_IN    hil_PH    hr_HR    hsb_DE    ht_HT    hu_HU    hy_AM    ia    id_ID    it_CH    jbo    ka_GE    kk_KZ    kl_GL    km_KH    ko_KR    ku_TR    ky_KG    la_VA    lb_LU    lg_UG    lif_NP    ln_CD    lo_LA    ltg_LV    lv_LV    mai_IN    mk_MK    ml_IN    mn_MN    mt_MT    my_MM    myv_RU    ne_NP    no_NO    oc_FR    om_ET    or_IN    pjt_AU    pl_PL    plt_MG    ro_RO    rue_SK    rw_RW    sc_IT    sg_CF    shs_CA    so_SO    sr_RS    sv_FI    sv_SE    sw_TZ    tg_TJ    th_TH    ti_ER    tk_TM    tpi_PG    ug_CN    uk_UA    ur_PK    uz_UZ    vi_VN    wa_BE    zh_HK    zh_MO    zh_SG   

Locales with explicit DateAcceptancePattern elements:

  • an_ES:
    • D/M
  • be_BY:
    • D/M/
    • D.M.
  • bg_BG:
    • D.M.Y г.
    • D.M.Y г.
    • D.M.Y Г.
    • D.M.Y Г.
  • br_FR:
    • D/M
  • ca_ES:
    • D/M
  • cs_CZ:
    • D.M.
    • D. M.
    • D. M. Y
    • D. M.
    • D. M. Y
  • de_DE:
    • D.M.
  • en_US:
    • M/D
  • es_ES:
    • D/M
  • et_EE:
    • D.M
    • D. M
    • D.M.
    • D. M.
  • fi_FI:
    • D.M.
  • fr_BE:
    • D/M
  • fr_CH:
    • D/M
    • D.M.
  • fr_FR:
    • D/M
  • fr_LU:
    • D/M
  • gd_GB:
    • D/M
    • D-M
  • is_IS:
    • D/M/
    • D.M.
  • it_IT:
    • D/M
  • ja_JP:
    • M-D
    • M/D
    • M/D
    • Y.M.D
    • Y/M/D
    • Y年M月D日
    • M月D日
  • kab_DZ:
    • D/M
  • lt_LT:
    • M-D
  • nl_BE:
    • D/M
  • nl_NL:
    • D-M
  • pt_AO:
    • D-M
  • pt_BR:
    • D/M
  • pt_PT:
    • D-M
  • ru_RU:
    • D.M.
    • D/M/
  • sk_SK:
    • D.M.
    • D. M.
    • D. M. Y
    • D. M.
    • D. M. Y
  • sl_SI:
    • D. M. Y
    • D.M.
    • D. M.
  • tr_TR:
    • D.M
    • D/M
    • D-M
  • zh_CN:
    • M-D
    • M/D
    • M/D
    • Y.M.D
    • Y/M/D
    • Y年M月D日
    • M月D日
  • zh_TW:
    • Y.M.D
    • M-D
    • M/D
    • Y年M月D日
    • M月D日

If some of the entries seem to be duplicates within a locale and include spaces, that's because they are defined both with normal space and with breaking space to accommodate both input variants.

LibreOffice Hamburg Hackfest 2012

Thorsten already summarized it very well and even Björn survived it, the LibreOffice Hamburg Hackfest 2012 was a great success, 25-30 participants hacking, building, exchanging ideas, having fun, too little sleep and Italo's pasta.

So let me just add that with the help of moggi I learned how to add a new file type's (here CSV) filter test to Calc's unit tests in order to prevent regressions in the CSV import filter that I lately changed to some extent and finished polishing at the Hackfest.

Many thanks to co-organizers Thorsten and Björn and of course all who joined and participated and made the Hackfest such a great event. We'll definitely have to do this again.


LibreOffice goes collaborating

One week of successful hacking at the Cambridge collaboration hackfest.

After I already struggled with Telepathy for some while, trying to implement DBus tubes over XMPP, Michael Meeks arranged a collaborative hackfest at Cambridge, where Collabora Ltd. is situated who to a large part are the maintainers of the Telepathy library. Nice to meet some of these guys (btw, if you happen to be in Cambridge and are into good Indian food go for the Golden Curry).

So last week Will Thompson from Collabora was set aside to work with us, who was of great help and immediately spotted why my tube acceptor never caught any offered tube, silly me, not spinning GMainLoop yet another time to wait for a specific state change ... Before, a connection to DBus could already be setup and a session between two contacts initiated and a tube offered, but I didn't get to the point where a tube was really established.

What we achieved from Tuesday to Thursday / Friday morning:

  • use Empathy's XMPP account and contact list
  • establish a DBus tube between an account and a contact
  • transfer a file over the tube (which shall be the document to be worked on)
  • intercept Calc input (basic proof of concept)
  • transfer input as packet through tube
  • receive on other end and use as input

Kudos again to Will, who made the fast progress on the Telepathy bits possible. And Michael for tearing apart Calc's ScDocFunc. That I now have to glue together again somehow ;-)

All happens on the LibreOffice feature/tubes2 branch. You're more than welcome to help out, especially if you're familiar with Telepathy or like to implement some dialogs in VCL such as an account/contact picker or have ideas how to improve our bits. You might also be interested that further work on this topic is offered as a Google Summer of Code (GSoC) project. There's plenty to do.

Btw, the next opportunity to collaboratively hack on collaboration would be at the Hamburg Hackfest on April 14/15 :-)

Update 2012-03-27T13:25+0200
Michael has some more details with bells and whistles and video over at his blog, video here: