Interview: Dimitris Glezos
One of the reasons I like open source so much , is the relationships that are developed between users and developers. Through irc, blogs, forums, etc, users can contact us directly and discuss with us about almost anything :) . This is why I try to be quite active on these areas. As a user, I also really enjoy reading interviews from various open source developers. Learning more about their character and personality leads effectively to more creative discussions with them.
In order to turn the above thoughts into actions, I am planning to get involved with the Gentoo userrel project :)
Bringing users and developers closer is a nice way to keep them motivated and recruit highly active users as future developers.
Today, I have the honor and the pleasure to interview Dimitris Glezos, a Fedoras’ board member and the founder of Indifex. He is also the lead developer of Transifex.
* Could you briefly introduce yourself?
I’m Dimitris Glezos, 28 years old, living in sunny Greece. I’m the founder of
Indifex, a new software company which researches and develops scalable
solutions for content translation and distribution. I’ve been quite active in
the Fedora Project as a member of the Board and a member of the Fedora
Localization and Documentation Steering Committees.
I graduated as a Computer Engineer from Greece and specialized on Advanced
Information Systems, before deciding to try out research and study Semantic
Web and Fuzzy Logic for a year and half. After finally admitting to myself
that my true love is open source, I switched to work full-time on it.
In the non-technology world, I enjoy design, photography and rock climbing
quite a lot. Lately I’ve been trying to learn Contract Bridge too — hard
game. But that’s true for most of the great games, right?
* Tell us about your opensource contribution.
The first contribution I remember came at least a year after I started being
attracted to the free software culture from projects like Mozilla. I took the
lead in localizing the PHP programming language manual, and proceeded to
translating Fedora and GNOME in Greek. Around that time, together with Nikos
Charonitakis and others, the Greek Fedora Team was founded.
In terms of code contributions, I’ve sent a few patches to the i18n toolchain
of the Fedora Docs Project and some improvements to Fedora’s Websites and
default Firefox homepage. Seeing how much Fedora’s Localization infrastructure
could be improved, I decided to expose myself in more trouble by leading the
effort to move the Fedora development code, which was hosted on an internal
CVS server, to servers managed by the community. Boy, that was fun!
At that point Transifex started being built, with support from the Google
Summer of Code, and soon became the Localization Platform for Fedora. Today,
the Tx development website has more than 70 people registered and the project
has grown to 15K lines of code and a strong core team of committers.
Oh, and one of the most fun stuff I did about open source and ‘digital
freedom’ in general was my involvement with the FFII opposition to the
legislation of software patents in the EU. Lots of trips to the European
Parliament, which, to all’s satisfaction and excitement, led to the rejection
of the directive.
* Recently you became a member of Fedoras’ Board. What is your area of
responsibility now?
The Fedora Project Board is the highest level of decision-making within
Fedora, and together, as a group, its members are empowered to decide on the
Project’s policies, to steer it to a good direction, to set priorities, and to
allow the rest of the Fedora sub-projects do their work with efficiency and
accountability.
While I’m a firm believer that the most successful organizations are those
which do not need a centralized decision center (a good read on the topic is
“The Starfish and the Spider” by Brafman and Beckstrom), the Board *is*
eventually accountable for everything that might go wrong in Fedora.
One of the roles I’m taking in the Board is helping the team and the Fedora
Project Leader have the best view of the needs, feelings and requests of the
community. Also, I’m working in continuing to increase the Project’s openness
in every decision taken, and in expanding our community reach by proposing
(sometimes drastic) changes in the way we’re doing things.
Being a guy who lives in Europe and doesn’t work with Red Hat allows me to
give different input to the Board, eventually chipping in the balance of the
team in a way which represents and benefits our community the most.
* What’s the status of Fedora at this moment? How do you see its future in
the next 2-3 years?
The Feature process we have in Fedora is completely open, and anyone can apply
for having a feature. You can take a look at the upcoming Fedora 11 feature
list at http://fedoraproject.org/wiki/Releases/11/FeatureList.
We released our Beta a few days ago, which looks quite promising. Some of the
features I’m excited about are automatic font and application installation,
kernel-based mode setting, faster startup (20 seconds?!), and the built-in
support for Delta RPMs, which allows users to update their packages by
downloading only what has changed in the update instead of a whole new version
of the package.
I’m also excited to see Python 2.6 being shipped with Fedora 11, a feature led
by Indifex’s own Ignacio Vazquez-Abrams.
Fedora’s development pace seems to be increasing, with more features landing
with each release. We see a lot of innovation happening in Fedora, and that’s
great, because that’s what our users like to see and need. In a few years I
see Fedora being even more influential in the state of the Linux Desktop,
having a stronger developer community and with improvements on the things we
need to continue improving.
* Transifex is being used more and more for translating purposes. How do you
feel about that?
Well, it feels great of course. :) The promises Transifex makes are quite
simple: I’ll be the robot to which translators can request everything they
need to translate, and the servant to take those files and silently put them
into the developer’s knitting pattern. Gradually we see more projects being
interested to use Transifex, and this will allow us to do some pretty cool
stuff in the future.
I’m also very excited to see that there is interest to use Transifex as a
platform and extend it to build other tools which extend and compliment its
functionality. This is also one of the reasons I’d like us to release a public
API soon too: to allow even more projects to interoperate with Tx and offer
users more features than today.
* How do you see the future of Transifex?
Bigger, better, faster. We’re working hard in listening to feedback from
translators and developers, in order to make Tx the best tool for large
communities of users like Fedora, Maemo, GNOME, OpenSUSE etc.
I also see the spur of side-projects which use Transifex to do cool stuff that
couldn’t be done before in the Open Source L10n landscape.
* What is the purpose of your company, Indifex? Do you have any projecs
running already?
At Indifex, we’re working on solutions that eventually will enable millions of
people to easily publish material to the web in the user’s native language.
Indifex also hires some very talented code hackers, among others, who develop
Transifex to the needs of various large organizations. We provide support for
the translation workflow of enterprises and big projects like Fedora, making
sure the translators and developers have the infrastructure they need to work
efficiently.
One of our biggest projects at this moment is the development of
transifex.net, a one-stop place and open platform for crowdsourcing
translations.
For us, Indifex is the place where we can have fun hacking great solutions
together using cutting-edge tools like Python, Linux, distributed version
control systems, and scalable internationalization techniques. It’s been a
great time so far, and I’m super excited about the upcoming months and years.
Related links:
Patching with Quilt
Quilt is a great program to create patches. This post is a quick ‘n’ dirty tutorial on how to create a quick patch
Assuming you have Quilt installed ,
quilt new my.patch
will create a new empty patch named my.patch
Lets say that this patch is going to affect the main.cpp file. So ,
quilt edit main.cpp
Will open the main.cpp files using your predifined editor ( $EDITOR ), allowing you to make any changes you like. When you are done , exit the editor. Now, my.patch is a ready-to-apply patch for the main.cpp file.
If you want to apply it , you should refresh the patch by doing
quilt refresh
and
quilt push
to apply it. Now you have your new main.cpp file ready to use :)
The patch is stored under patches/ folder
If you want to revert the patch you can use
quilt pop
This quide was ment to give you the main idea about the quilt program
A great guide about quilt can be found here.
Happy patching
Gentoo kernel bug hunting
After Daniels Drake call on November issue of Gentoo Monthly Newsletter I decided to join and help gentoo kernel team to hunt, catch, and kill several kernel bugs.
So far I like the whole development process. Daniel and the rest of the guys ( on #gentoo-kernel irc room ) are trying to show us the correct ways to deal with a possible kernel bug. There is no much coding to do ( hopefully ). We just try to understand why a bug is happening without dealing with source files ( until now ).
I think that this is a good way to understand the whole Linux kernel’s tree and become more familiar with it .
If someone would like to join us, join #gentoo-kernel irc room on freenode servers . Furthermore you can read this guide about the whole kernel maintenance process
Linux on Toshiba u300-154
Recently I bought Toshiba Satellite U300-154
I found no information on the internet from users who run linux on it
So I thought it would be usefull to post some info about its configuration
lspci
00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation Mobile LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation Mobile IDE Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation Mobile SATA AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E PCI Express Fast Ethernet controller (rev 01)
04:00.0 Network controller: Intel Corporation Device 4229 (rev 61)
0a:01.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 05)
0a:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 22)
0a:01.2 System peripheral: Ricoh Co Ltd Device 0843 (rev 12)
0a:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 12)
0a:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 12)
And lsusb
Bus 002 Device 002: ID 04f2:b008 Chicony Electronics Co., Ltd
Bus 002 Device 001: ID 1d6b:0002
Bus 007 Device 001: ID 1d6b:0001
Bus 006 Device 001: ID 1d6b:0001
Bus 005 Device 001: ID 1d6b:0001
Bus 001 Device 001: ID 1d6b:0002
Bus 004 Device 001: ID 1d6b:0001
Bus 003 Device 001: ID 1d6b:0001
Hardware configuration
1) Webcamera
You need to install Linux-uvc
and then follow
2) Graphics
This guide will help you configure graphics on this laptop. On the bottom of this post I am attaching my xorg.conf for your assistance
3) Special Keys
This guide will help you setup all the multimedia keys on this laptop
I am also attaching .Xmodmap for you
4)Networking
a) Ethernet
Use this guide to install your pci-e ethernet controller
b) Wireless
This is tricky one
You need proper kernel configuration ( enable everything for Intel 4965 wireless cards ), use kernel >=2.6.26 and you need iwl4965-ucode package. After that wlanssistant ( install it first ) will setup your network like a charm
Bluetooth
–updated 25-10-2008–
And yes, it works
You need the omnibook module (http://gentoo-portage.com/app-laptop/omnibook) . Then loadthe module by typing
modprobe omnibook ectype=14
You can modify the /etc/conf.d/modules file like this
modules_2_6_27=”vboxdrv iwlcore iwlagn omnibook”
module_omnibook_args=”ectype=14″
Then , simply folow the guide on gentoo-wiki: Bluetooth
IEEE1394 and Memory readers
I havent tested them but i guess both devices will work since they are identified correctly
Attached files
More files available on my dev space on gentoo experimental
Rename files using bash
Lately I had an issue. I wanted to rename all the files in a specific folder. I wanted to change the pattern M.D. to Null. So I wrote a lame bash script to do that
#!/bin/bash
for i in *.avi
do
filename="${i/.avi}"
newfile=`echo "$filename"|sed s'/\,\?\ M\.D\.\?//'`
mv "$i" "$newfile".avi
done
However I dont like this way and i m sure that there is a much better way to do that. Do you have any ideas how this operation could be more simple? :)











