<?xml version="1.0" encoding="UTF-8"?>
<!-- name="generator" content="pyblosxom/1.4.1 7/27/2007" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
<channel>
<title>Блогчетање  Apr 2010</title>
<link>https://danilo.segan.org/blog</link>
<description>Данилово блогче</description>
<language>en</language>
<item>
  <title>Upstream translations in Ubuntu</title>
  <link>https://danilo.segan.org/blog/launchpad/automatic-translations-sharing</link>
  <description><![CDATA[
<p>
  Last year we introduced a feature we internally called 'message
  sharing': basically a mechanism to directly share translations
  between different releases of a same project or of the same
  distribution.
</p>

<p>
  That was a huge improvement in both usability (IMO, at least: you
  translate a string in one release and it's instantly translated in
  all the others) and allowed us to make Launchpad Translations much
  more scalable (this one is very tangible).  Eg. compared to one full
  week it took us to "open" a new Ubuntu release for translations, it
  took us full 25 minutes to do that for Karmic and 45 minutes for
  Lucid.
</p>

<p>
  However, while 'message sharing' has reduced duplication of efforts
  a lot, it still happens: translators work at the same time upstream
  and in Ubuntu, and might be translating exactly the same strings.
</p>

<p><em>What can we do to solve that?</em></p>

<h3>Importing latest upstream translations</h3>

<p>
  Well, first off, Launchpad doesn't even know about latest upstream
  translations.  What it gets is upstream translations as they were
  packaged in a tarball that is the base of an Ubuntu package.
</p>

<p>
  However, that might mean very old translations.  For instance,
  perhaps there was no Ubuntu package re-upload for 3 months.
  Translations upstream usually get committed directly to a VCS.
  They'll flow into Ubuntu only when they get packaged into tarballs,
  and those tarballs become basis for a new package in Ubuntu.
</p>

<center>
  <img src="http://danilo.segan.org/slike/blog/translations-flow-today.png"
  /><br />
  <em>Today, maintainers decide when to release translations to the
  world, and packagers decide what upstream releases go to Ubuntu
  users</em>
</center>

<p>
  This means that there are two high bars for translations to flow
  over before they can get into Ubuntu:
</p>

<ul>
  <li>
    Upstream maintainers need to release a tarball with updated
    translations
  </li>
  <li>
    Ubuntu packagers need to prepare updated packages from these
    tarballs, and sometimes they can't even do that (without merging
    from VCS directly, because upstream might not be releasing
    'translations updates' tarballs)
  </li>
</ul>

<p><em>How about we eliminate these blockers with Launchpad?</em></p>

<p>
  So, we want Launchpad to directly import upstream translations from
  their VCS of choice.  Luckily, we can depend on our
  amazing <a href="https://launchpad.net/launchpad-code">Launchpad
  Code</a> team and <a href="http://bazaar-vcs.org">Bazaar
  community</a> to provide us with a bzr branch no matter what the
  upstream VCS of choice is.  And we already
  have <a href="http://blog.launchpad.net/translations/screencast-importing-translation-templates-from-a-bazaar-branch">imports
  from bzr branches</a>, so we are all set, right?
</p>

<p>
  Well, not exactly.  Projects don't like to keep their generated
  files in their repos.  And for upstream projects, we can't really
  ask them to (since we know it's a bad idea anyway).  So, we need to
  be able to generate templates (POT files) on the fly.
</p>

<p>
  However, that is a very touchy job which depends on the upstream.
  I.e. it's not the same thing if you are generating a template for
  GNOME, KDE or regular GNU (gettext-using) project.  And many a
  script that needs to be run to do this could be very risky: intltool
  itself has a number of obvious implementation details such that any
  upstream committer would be able to take over the machine it was run
  on.  So, this has to happen in a safe, sandboxed environment.
</p>

<p>
  Not surprisingly, Launchpad already has this
  with <a href="https://launchpad.net/soyuz">Soyuz</a>.   We just need
  to <em>slightly</em> modify it so we can run template generation
  jobs on it.
</p>

<p>
  We've split this into two separate steps: developing a library that
  allows us to generate templates for a particular source code layout
  (module named "pottery" inside the LP tree, currently only
  supporting intltool layouts), and working on the infrastructure to
  run these on the existing Launchpad build farm.
</p>


<center>
  <img src="http://danilo.segan.org/slike/blog/translations-flow-phase1.png"
  /><br />
  <em>After translations are committed to upstream VCS, we should
  import them into Launchpad asap</em>
</center>

<p>
  We are in the process of doing extensive QA on this code, and we
  expect to roll it out next week.  But, this is just a step of our
  bigger vision.
</p>

<p><small>
    As a side-note, this feature will also be useful for
    intltool-based projects hosting their code and translations in
    Launchpad: they won't have to keep POT files committed either.
</small></p>

<h3>In Ubuntu or in Launchpad</h3>

<p>
  We could have gone one route and simply imported these upstream
  translations directly into Ubuntu.  It'd be a big win, but it
  wouldn't work very well for those upstreams which are already in
  Launchpad.  And, since we are looking a bit further into the future,
  there are other drawbacks to that approach as well (like being able
  to send translations back upstream).
</p>

<p>
  So, we decided that it's best to import them directly into Launchpad
  projects, keep their upstream templates there for the future, but
  keep those translations read-only.
</p>

<p>
  Now, Launchpad internal database model already has a sort of
  definition of "upstream", though it was never exactly so (which is
  why we always struggled with the name: over time, the term went
  from "published" to "imported", and now finally to "upstream").
</p>

<p>
  Through many discussions
  <a href="https://dev.launchpad.net/Translations/Specs/UpstreamImportIntoUbuntu"
     >on different approaches</a>, we decided to go
  with the
  <a href="https://dev.launchpad.net/Translations/Specs/UpstreamImportIntoUbuntu/FixingIsImported"
     >fix is_imported flag</a> one.
</p>

<p>
  This will enable us to share translations directly between upstreams
  in LP (and because of the feature that we are QAing right now, we'll
  have latest upstream translations in there already, no matter where
  project is hosted) and Ubuntu source packages.
</p>

<p>
  The way we are going about this is very similar to message sharing
  we have today.  It's just that now different privileges come into
  action as well, making it all suitably more complex to handle.
</p>

<p>
  This is something that we
  are <a href="https://blueprints.launchpad.net/rosetta/+spec/import-upstream-translations-into-ubuntu">actively
  working on</a>, and something that we hope to deliver in May.
</p>

<center>
  <img src="http://danilo.segan.org/slike/blog/translations-flow-phase2.png"
  /><br />
  <em>Pushing latest imported translations into regular Ubuntu
  language pack updates is the final stage</em>
</center>


<p>
  Before we can even consider calling this done, we'll have to do a
  lot of testing.  And we'll need help from community to get
  everything set-up.  First thing to do is to go around Launchpad and
  make sure that for every source package with translations in Ubuntu
  there is a linked upstream project, and that upstream project has a
  trunk branch that syncs with the latest upstream source code.
</p>

<p>
  Next, we'll really need some serious QA to happen.  If you are no
  stranger to Python code, checking
  out <a href="https://dev.launchpad.net/Getting">Launchpad tree</a>
  and trying out pottery on all the intltool branches you can think of
  would be very useful input.
</p>

<p>
  Or, if there is your favourite i18n layout that you'd like us to
  support, extending pottery and our auto-approver to deal with it
  would be a very welcome addition.
</p>

<p>
  Even going ahead and splitting pottery into a separate branch and
  module would be nice, because it would make it more re-usable (for
  instance, it could then be used in GNOME's damned-lies) and easier
  to extend for people not directly interested in Launchpad.
</p>

<h3>And... How about giving back?</h3>

<p>
  Ubuntu will get latest translations from upstreams then, which is
  all pretty neat.  But, how about contributing the translation fixes
  back as well?
</p>

<p>
  That is a natural next step.  Having the latest templates and
  translations in Launchpad will allow us to generate very precise
  diffs between Ubuntu and upstream translations (i.e. we'll know what
  string is Ubuntu-specific, and we'll know which translations are
  newer).  Then, we'll have to figure out how to submit those
  upstream?
</p>

<p>
  Should that happen automatically or should it be user-initiated?
  How will Launchpad talk to each of the upsterams?  Launchpad should
  talk to every upstream as they prefer it, and that may mean
  per-project, per-translation-team policies.  But, I'll come
  back to this topic once we have the foundation done with getting
  latest upstream translations into Ubuntu.
</p>

]]></description>
</item>

<item>
  <title>GUADEC 2010</title>
  <link>https://danilo.segan.org/blog/gnome/guadec-2010</link>
  <description><![CDATA[
<p>
  I haven't found any "I am attending GUADEC" badges for this year yet, so
  I had to craft my own with a hint of "oranje".  After missing out on the
  joint GNOME-KDE conference last year, I will come to Hague this time
  around.
</p>

<center>
  <a href="http://guadec.org">
    <img src="http://danilo.segan.org/slike/blog/guadec-oranje.png" />
  </a>
</center>

<p>
  This time, I'll also be talking a bit more about "bridging the gap"
  theme Launchpad development team has taken over the last half-year or
  so, and what we are doing to help connect two amazing communities: GNOME
  development community with the Ubuntu development community.
</p>

<center>
  <a href="https://dev.launchpad.net/Roadmap">
    <img src="http://danilo.segan.org/slike/blog/gnome-and-ubuntu-through-launchpad.png" />
  </a>
</center>

<p>
  There's a lot of cool stuff going on in Launchpad that should have
  positive benefits for both Ubuntu and GNOME.  I hope to be able to spark
  some interest in what's going on.
</p>

]]></description>
</item>

<item>
  <title>Техноманија, БГЕлектроник — ћао!</title>
  <link>https://danilo.segan.org/blog/hardver/tehnomanija-i-bgelektronik-cao</link>
  <description><![CDATA[
<p>
  Коначно је сага готова: преко 2 месеца од када је <a href="http://danilo.segan.org/blog/hardver/tehnomanija-i-onlajn-narucivanje">замењени</a> ТВ отишао на
  <a href="http://danilo.segan.org/blog/hardver/sreca-srecu-stize">сервис</a>,
  и око три и по месеца од куповине, добио сам паре назад.

<h3>БГЕлектроник</h3>

<p>
  Е сад, зашто треба избегавати Самсунг телевизоре код нас?  Зато што је
  БГЕлектроник овлашћени сервис за Београд.  А шта они раде?
</p>

<p>
  Па, између осталог (нису ниједан од <em>својих</em> рокова испоштовали,
  па ни онај за издавање одобрења за замену ТВ-а), зато што:
</p>

<ul>
  <li>варају чак и своје добављаче, а не само купце</li>
</ul>

<p>
  Ово је само моја претпоставка, али изведена из неколико чињеница.
  Раније (пре 1. јануара 2010.) је гаранцију давао увозник Самсунг
  телевизора, а од средине јануара то ради „Самсунг директно“ (тако су ми
  рекли).  Пошто сам ја оригинално ТВ купио по „старим правилима“, а
  замењени добио по „новим“, могуће је да Самсунг није хтео да призна
  гаранцију (пошто, наравно, продавци нису поменули да су покушали да ми
  увале коришћени ТВ па су морали да га замене).
</p>

<p>
  Е сад, не би то било довољно да се посумња, да се није десило још
  неколико ствари.  Када сам дошао да узмем одобрење за замену ТВ-а, на
  њему је писало да сам ТВ купио 26.02.2010. (а однет у сервис 08.02.) уз
  прихефтану копију фискалног рачуна од тог датума са потпуно другим
  износом.  Уз то, јасно сам видео други примерак моје потврде са пријема
  на сервис са гомилом података прецртаних тамним маркером.
</p>

<p>
  Мени ово указује на то да је БГЕлектроник пилићар у тој мери да нису
  спремни ни да сносе трошкове када буду ухваћени у превари (тј. уваљивању
  коришћених телевизора).  Ја већину ових папира имам скенирано (иако сам
  их морао предати при пријему новца), па ако неко зна некога кога би то
  занимало (нпр. из Самсунга), радо ћу му проследити.
</p>

<h3>И Техноманија...</h3>

<p>
  Ух, ух.  Закон крше непрестано, а између осталог и тиме што не
  обезбеђују одношење на и доношење телевизора са сервиса.  Подсетимо се
  Закона о облигационим односима:
</p>

<blockquote>
  <strong>Члан 505.</strong>
  <p>
    (1) Продавац, односно произвођач је дужан да о свом трошку пренесе
    ствар до места где треба да се оправи, односно замени, као и да
    поправљену, односно замењену ствар врати натраг купцу.
  </p>
  <p>
    (2) За то време продавац, односно произвођач сноси ризик за пропаст
    или оштећење ствари.
</blockquote>

<p>
  Можда сервис треба ово да обезбеди, али није на мени да се бринем ко ће
  то да обави, него продавцу.  Не знам за вас, али мени у кола тешко стане
  ТВ од 100 и више см.
</p>

<p>
  Даље, уз ТВ ми је стигао потпуно непопуњен гарантни лист — само печат и
  потпис на бланко гарантном листу.  Ово крши неколико чланова Закона о
  заштити потрошача.  При том су ми испоручили коришћени ТВ (но, они тврде
  да је он испоручен директно од добављача), и читава замена је трајала
  преко месец дана.  А тада сам добио ТВ који се покварио после два минута.
</p>

<p>
  И на крају, да све буде још лепше — повраћај новца.  Како ми рекоше,
  „вратити паре на картицу“ је „сувише сложена процедура“, па су питали да
  ли ми одговара готовина.  Пристајем на све само да их се отарасим, а
  онда ми кажу да ће „возачи“ донети паре сутра (не, не могу ја да их
  покупим у некој радњи).  И иако је сутра радни дан, њима то ништа не
  смета — ја ћу да седим кући и да се надам да ће стићи у неко доба.  Око
  14ч мени досади па их позовем, и испостави се да неће доћи (зато што
  возачи немају паре код себе — хм, хм), и обећавају да ће доћи сутра
  ујутро! Да немам могућности да радим и од куће, лепо бих се провео.
</p>

<p>
  У суботу ујутро тако заиста стижу доносећи паре и то све хиљадарке.
  Милина.  „Наравно да ћу да пребројим, а шта си ти мислио.“
</p>

<p>
  И шта је наравоученије?  Па, држаћу се даље од Техноманије због њихове
  непословности.  И даље од <a href="http://www.samsung.com">Самсунг</a>
  телевизора док год је БГЕлектроник једини овлашћени сервис за исте у
  Београду.  А пошто је сервис плазма телевизора изгледа сувише
  компликован, даље и од њих.
</p>


<h3>А остали...</h3>

<p>
  Па, пре узимања следећег ТВ-а се мало распитујем.  Сазнао сам да бар два
  овлашћена сервиса за <a href="http://lg.com/rs/">LG</a> телевизоре
  такође немају теренску службу (ERC и Екран сервис).
  За <a href="http://sony.rs">Сони</a> је један овлашћени сервис дивни
  БГЕлектроник, а други је <a href="http://www.sonyservis.rs/">Input</a>:
  ови други бар нуде могућност доношења, али се то наплаћује (од 2.000 дин
  па навише). Филипс и Тошиба су веома слабо заступљени на нашем тржишту,
  а Панасоник се махом бави плазмама (од којих сам одустао због повећаних
  ризика да ми се деси исто што и са претходном).
</p>

<p>
  Ако имате информација да неки продавац или произвођач заиста нуди
  одговарајућу услугу у гарантном року, волео бих да чујем за њих.
</p>

]]></description>
</item>

<item>
  <title>Српски курзиви</title>
  <link>https://danilo.segan.org/blog/prevod/srpski-kurzivi</link>
  <description><![CDATA[
<p style="font-style: italic; font-family: serif; font-size: 160%;">
  Како код вас изгледају слова „бгдпт“?
</p>

<center>
  <img src="http://danilo.segan.org/slike/blog/srpski-kurzivi.png" /><br />
  <em style="font-size:small;">У DejaVu Serif Italic слово „г“ није савршено, али остало је добро</em>
</center>

<p>
  Како (на ГНУ системима) лако проверити да ли неки фонт подржава
  српске курзиве?
</p>

<center>
  <code>
    pango-view --font="DejaVu Serif Italic 64" --text "бгдпт" --language=sr
  </code>
</center>

<p>
 Пре него што ово пробате, на Убунту инсталирајте ttf-dejavu-extra пакет
 (<code>sudo aptitude install ttf-dejavu-extra</code>). Ако их не
 инсталирате, ништа од курзива али и то није страшно пошто ћете добити
 само искошене фонтове.
</p>

]]></description>
</item>

</channel>
</rss>
