פלאנט תוכנה חופשית בישראל (Planet FOSS-IL)

17 מאי, 2012

Guy Sheffer

3arabi – Arabic chat to English translator

3arabi Logo

3arabi Logo

Hi  all,

As some might have noticed, Arabic speakers on the net use a form of writing called ‘Arabic chat‘ or 3arabi, which involves using Latin characters and Hindu-Arabic numerals to write words in Arabic. I wrote a small service called 3arabi that lets you translate this Arabic chat directly to English.

Apparently there are tools to do transliteration (converting Latin letters back to Arabic), and also translation. But nothing that does them both. That is why I wrote a small script that uses Google’s transliteration service and ‘Google Translate’. This does the job, but is not perfect, however, it does actually help me understand some messages.

The source is also available in GitHub (its in python). If anyone contributes better code I’ll merge it back to the service.

Thanks to Ira Abramov for hosting the service!

Thanks to Rajesh who wrote the transliteration API though after using it I moved to the javascript google tool with his help.

Thanks Muhammad Khatib who wrote Google Translate python API and for releasing it.

Enjoy,

Guy

Update: Google seem to be blocking the translation service, thinking its spam, if anyone knows how to contact them and asking them to lift that ban would be appreciated.


Full text

17 מאי, 2012 03:58 PM

SvxlinkWrapper – Wrapper for SvxLink to provide additional functionally such as QSO logging and auto-connect

Hey all,

A short post to announce a small peace of software I released today on github for the ham radio people.
I give you SvxlinkWrapper, this wrapper sits on top of Svxlink‘s stdout and stdin and processes it with python. Making it easy to add more advance features to Svxlinik. Since Svxlink is written in C++ and takes a while to compile, this wrapper really speeds up development. Furthermore, it uses straight.plugin making its simple to write more modules by extending SvxlinkwrapperModule and placing it in the modules folder.

Currently the to modules that SvxlinkWrapper has are for auto-connect to Echolink nodes on startup and another for a QSO logger for Echolink connections. There is also a module that should let you send commands over the Echolink chat, if you extend it. This lets me open and close repeater connections directly from the Echolink chat box.

Thats it for today, now that I have more free time, I hope to publish more things, 73


Full text

17 מאי, 2012 03:39 PM

Hamakor

‫אוגוסט פינגווין 2012‬

ביום שישי ה3/8/2012 ייערך כנס אוגוסט פנגווין – הכנס השנתי לתוכנה חופשית וקוד פתוח.
הכנס יתקיים באודיטוריום חיפה -אולם רפפורט, שד' הנשיא 138, מרכז הכרמל, חיפה.
שעות הכנס: 9:00 עד 14:00. 

אתר הכנס:
http://august.penguin.org.il
עמוד בוויקי

מרצים המעוניינים להעביר הרצאה בכנס מוזמנים לשלוח הצעה לוועד המקור board@hamakor.org.il או לוויקי בקטגוריה "תוכן הכנס".

מחיר הכניסה לכנס הוא 50 ש״ח (תשלום באמצעות PayPal). חברי וידידי העמותה זכאים להיכנס בחינם (בתנאי שחברותם בתוקף). עבור צעירים מתחת לגיל 18, סטודנטים וחיילים, מחיר הכניסה זהה למחיר התשלום השנתי של ידידות בעמותה, כך שנשמח לקבל אתכם כידידי העמותה.

Share

17 מאי, 2012 11:36 AM

Arie Skliarouk

adaptec CLI management tool

Recently I had to install adaptec CLI management tool on an ubuntu 8.10 amd64 server. Despite of the aacraid driver present in kernel, it took me a lot of time to find the management tools that allow to see RAID status and manipulate it from command line. There are several names for the tools: afacli, aaccli, afaapps, afa-apps-snmp, arcconf, hrconf... oh my!
After I found the necessary tools (64bit arch) I packaged them into a tiny deb package adaptec-utils_0.0.1_amd64.deb, which can be downloaded from here: DELETED_AS_REDISTRIBUTION OF BINARIES_IS_PROHIBITED_BY_ADAPTEC

Also, I wrote a simple monitoring script (included in the deb package) that checks state of the Adaptec RAID system and sends out email if any of the published indicators is wrong (battery, failed disks, etc). The script can be downloaded from here: http://t11.mine.nu/adaptec-utils/adaptec_check.sh

Note that the script requires proprietary binary files to be installed. See the beginning of the script for the details.

17 מאי, 2012 05:57 AM

16 מאי, 2012

Hetz Ben Hemo

‫הצפון ובחזרה, ופרטיות של הסלולר שלך‬

‫קוראי הבלוג הקבועים כבר קראו שרציתי לעבור לצפון מפאת חסכון ועוד סיבות, ואכן עברתי לצפון. לאן בדיוק? בשלב זה, להוריי. מדוע? אה, טוב ששאלתם. כאן בצפת נפתח לאחרונה בית ספר לרפואה, מה שהצליח תוך זמן קצר להקפיץ את המחירים פה בעשרות (ולעיתים במאות) אחוזים. פעם היה אפשר לשכור בצפת דירה של 3 חדרים בגודל של [...]‬

הטקסט המלא

16 מאי, 2012 02:23 PM

14 מאי, 2012

Ddorda

‫להתחבר לנטסטיק של סלקום/אורנג' באובונטו 12.04‬

שלום לכולם,

לאחרונה עדכנתי לאובונטו 12.04. לא אלאה אתכם בסיפור השדרוג שלי, אבל בסופו של יום מצאתי את עצמי עם מערכת חמודה ויציבה עם בעיה אחת עיקרית: אני לא מצליח להתחבר לאינטרנט הסלולרי של סלקום דרך הנטסטיק של חברת Alcatel שסלקום בדר"כ מחלקים (שד"א אורנג' משתמשים בדיוק באותו מוצר).

לאחר עלעול ברשת מצאתי את הפתרון וחשבתי שאולי הוא יוכל לעזור לעוד כמה חבר'ה שנתקלו באותה בעיה.

כל שעליכם לעשות הוא לערוך את הקובץ /etc/modules עם הרשאות root, במסוף (Alt+Ctrl+T) הדביקו את השורה הבאה:

sudo gedit /etc/modules

תתבקשו לכתוב את ססמתכם, הקלידו אותה, והקישו אנטר. ייפתח לכם עורך טקסט, הוסיפו לסוף הקובץ את שתי השורות הבאות:

usbserial
option

כדי להחיל את ההגדרות הפעילו מחדש את המחשב (מישהו מכיר פתרון נכון יותר?)

דור.

14 מאי, 2012 09:09 PM

Moshe Basanchig

Blogging for the .NET framework

A system I've been working on is based on the .NET framework. It seems that Mono and Apache on a web server is a pretty good combo, and I recommend everyone with a spare day or two to give it a try.

Anyway, I needed to run a blogging engine on that same server and have that blog support Hebrew and right-to-left languages. While there are several good blogging engines for .NET, not all would run on Mono and most doesn't do the RTL part good enough.
My first attempt was to use SubText, but getting rid of the SQL Server dependency and adding the RTL support became too much of a hassle. I picked SubText for it being notorious for its simplicity and elegance, but while I was ready to invest some customization time, it demanded too much of it.
My second attempt was BlogEngine.NET. What can I say - I fell for it almost immediately. The platform is versatile enough to support not only many RDBMS's, but it also allows storing the posts in XML files. Nonetheless, the translation to Hebrew wasn't complete and there was no RTL native theme for it. So I made one.

BlogEngine.NET is hosted on CodePlex and uses Mercurial for its source control. I had a fork of the project in no time, so I started making the required changes and created a new theme based on the default one. Since I don't want to maintain a fork of the project for eternity and since I want others to enjoy this new feature, I've sent a pull-request which was accepted yesterday. So starting from version 2.5.0.6, you can enjoy BlogEngine.NET for your Hebrew blog.

As always, it feels good to contribute back and to know that my code can be further enhanced by other developers.

Happy blogging.

14 מאי, 2012 10:45 AM

Shlomi Noach

Impact of foreign keys absence on replicating slaves

In this post I describe what happens when a slave's Foreign Key setup is different from that of the master. I'm in particular interested in a setup where the slave has a subset of the master's foreign keys, or no foreign keys at all. I wish to observe whether integrity holds.

Making the changes

Which foreign keys do we have and how do we drop them? If you want to do this by hand, well, good luck! Fortunately, common_schema provides with quite a few handy views and routines to assist us. Consider viewing the existing foreign keys on sakila:

master> SELECT create_statement FROM common_schema.sql_foreign_keys WHERE TABLE_SCHEMA='sakila';
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| create_statement                                                                                                                                                                                |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ALTER TABLE `sakila`.`address` ADD CONSTRAINT `fk_address_city` FOREIGN KEY (`city_id`) REFERENCES `sakila`.`city` (`city_id`) ON DELETE RESTRICT ON UPDATE CASCADE                             |
| ALTER TABLE `sakila`.`city` ADD CONSTRAINT `fk_city_country` FOREIGN KEY (`country_id`) REFERENCES `sakila`.`country` (`country_id`) ON DELETE RESTRICT ON UPDATE CASCADE                       |
| ALTER TABLE `sakila`.`customer` ADD CONSTRAINT `fk_customer_address` FOREIGN KEY (`address_id`) REFERENCES `sakila`.`address` (`address_id`) ON DELETE RESTRICT ON UPDATE CASCADE               |
| ALTER TABLE `sakila`.`customer` ADD CONSTRAINT `fk_customer_store` FOREIGN KEY (`store_id`) REFERENCES `sakila`.`store` (`store_id`) ON DELETE RESTRICT ON UPDATE CASCADE                       |
| ALTER TABLE `sakila`.`film` ADD CONSTRAINT `fk_film_language` FOREIGN KEY (`language_id`) REFERENCES `sakila`.`language` (`language_id`) ON DELETE RESTRICT ON UPDATE CASCADE                   |
| ALTER TABLE `sakila`.`film` ADD CONSTRAINT `fk_film_language_original` FOREIGN KEY (`original_language_id`) REFERENCES `sakila`.`language` (`language_id`) ON DELETE RESTRICT ON UPDATE CASCADE |
| ALTER TABLE `sakila`.`film_actor` ADD CONSTRAINT `fk_film_actor_actor` FOREIGN KEY (`actor_id`) REFERENCES `sakila`.`actor` (`actor_id`) ON DELETE RESTRICT ON UPDATE CASCADE                   |
| ALTER TABLE `sakila`.`film_actor` ADD CONSTRAINT `fk_film_actor_film` FOREIGN KEY (`film_id`) REFERENCES `sakila`.`film` (`film_id`) ON DELETE RESTRICT ON UPDATE CASCADE                       |
| ALTER TABLE `sakila`.`film_category` ADD CONSTRAINT `fk_film_category_category` FOREIGN KEY (`category_id`) REFERENCES `sakila`.`category` (`category_id`) ON DELETE RESTRICT ON UPDATE CASCADE |
| ALTER TABLE `sakila`.`film_category` ADD CONSTRAINT `fk_film_category_film` FOREIGN KEY (`film_id`) REFERENCES `sakila`.`film` (`film_id`) ON DELETE RESTRICT ON UPDATE CASCADE                 |
| ALTER TABLE `sakila`.`inventory` ADD CONSTRAINT `fk_inventory_film` FOREIGN KEY (`film_id`) REFERENCES `sakila`.`film` (`film_id`) ON DELETE RESTRICT ON UPDATE CASCADE                         |
| ALTER TABLE `sakila`.`inventory` ADD CONSTRAINT `fk_inventory_store` FOREIGN KEY (`store_id`) REFERENCES `sakila`.`store` (`store_id`) ON DELETE RESTRICT ON UPDATE CASCADE                     |
| ALTER TABLE `sakila`.`payment` ADD CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `sakila`.`customer` (`customer_id`) ON DELETE RESTRICT ON UPDATE CASCADE             |
| ALTER TABLE `sakila`.`payment` ADD CONSTRAINT `fk_payment_rental` FOREIGN KEY (`rental_id`) REFERENCES `sakila`.`rental` (`rental_id`) ON DELETE SET NULL ON UPDATE CASCADE                     |
| ALTER TABLE `sakila`.`payment` ADD CONSTRAINT `fk_payment_staff` FOREIGN KEY (`staff_id`) REFERENCES `sakila`.`staff` (`staff_id`) ON DELETE RESTRICT ON UPDATE CASCADE                         |
| ALTER TABLE `sakila`.`rental` ADD CONSTRAINT `fk_rental_customer` FOREIGN KEY (`customer_id`) REFERENCES `sakila`.`customer` (`customer_id`) ON DELETE RESTRICT ON UPDATE CASCADE               |
| ALTER TABLE `sakila`.`rental` ADD CONSTRAINT `fk_rental_inventory` FOREIGN KEY (`inventory_id`) REFERENCES `sakila`.`inventory` (`inventory_id`) ON DELETE RESTRICT ON UPDATE CASCADE           |
| ALTER TABLE `sakila`.`rental` ADD CONSTRAINT `fk_rental_staff` FOREIGN KEY (`staff_id`) REFERENCES `sakila`.`staff` (`staff_id`) ON DELETE RESTRICT ON UPDATE CASCADE                           |
| ALTER TABLE `sakila`.`staff` ADD CONSTRAINT `fk_staff_address` FOREIGN KEY (`address_id`) REFERENCES `sakila`.`address` (`address_id`) ON DELETE RESTRICT ON UPDATE CASCADE                     |
| ALTER TABLE `sakila`.`staff` ADD CONSTRAINT `fk_staff_store` FOREIGN KEY (`store_id`) REFERENCES `sakila`.`store` (`store_id`) ON DELETE RESTRICT ON UPDATE CASCADE                             |
| ALTER TABLE `sakila`.`store` ADD CONSTRAINT `fk_store_address` FOREIGN KEY (`address_id`) REFERENCES `sakila`.`address` (`address_id`) ON DELETE RESTRICT ON UPDATE CASCADE                     |
| ALTER TABLE `sakila`.`store` ADD CONSTRAINT `fk_store_staff` FOREIGN KEY (`manager_staff_id`) REFERENCES `sakila`.`staff` (`staff_id`) ON DELETE RESTRICT ON UPDATE CASCADE                     |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Most of the foreign key constraints use RESTRICT for DELETE (meaning you are not allowed to delete a parent row when children exist), and CASCADE for UPDATE (meaning changes to parent will propagate to children). This is good, since I want to test behavior of both RESTRICT and CASCADE.

OK, we wish to remove these constraints from the slave. To see what we are going to do, consider:

slave1> select drop_statement from common_schema.sql_foreign_keys where table_schema='sakila';
+-----------------------------------------------------------------------------------+
| drop_statement                                                                    |
+-----------------------------------------------------------------------------------+
| ALTER TABLE `sakila`.`address` DROP FOREIGN KEY `fk_address_city`                 |
| ALTER TABLE `sakila`.`city` DROP FOREIGN KEY `fk_city_country`                    |
| ALTER TABLE `sakila`.`customer` DROP FOREIGN KEY `fk_customer_address`            |
| ALTER TABLE `sakila`.`customer` DROP FOREIGN KEY `fk_customer_store`              |
| ALTER TABLE `sakila`.`film` DROP FOREIGN KEY `fk_film_language`                   |
| ALTER TABLE `sakila`.`film` DROP FOREIGN KEY `fk_film_language_original`          |
| ALTER TABLE `sakila`.`film_actor` DROP FOREIGN KEY `fk_film_actor_actor`          |
| ALTER TABLE `sakila`.`film_actor` DROP FOREIGN KEY `fk_film_actor_film`           |
| ALTER TABLE `sakila`.`film_category` DROP FOREIGN KEY `fk_film_category_category` |
| ALTER TABLE `sakila`.`film_category` DROP FOREIGN KEY `fk_film_category_film`     |
| ALTER TABLE `sakila`.`inventory` DROP FOREIGN KEY `fk_inventory_film`             |
| ALTER TABLE `sakila`.`inventory` DROP FOREIGN KEY `fk_inventory_store`            |
| ALTER TABLE `sakila`.`payment` DROP FOREIGN KEY `fk_payment_customer`             |
| ALTER TABLE `sakila`.`payment` DROP FOREIGN KEY `fk_payment_rental`               |
| ALTER TABLE `sakila`.`payment` DROP FOREIGN KEY `fk_payment_staff`                |
| ALTER TABLE `sakila`.`rental` DROP FOREIGN KEY `fk_rental_customer`               |
| ALTER TABLE `sakila`.`rental` DROP FOREIGN KEY `fk_rental_inventory`              |
| ALTER TABLE `sakila`.`rental` DROP FOREIGN KEY `fk_rental_staff`                  |
| ALTER TABLE `sakila`.`staff` DROP FOREIGN KEY `fk_staff_address`                  |
| ALTER TABLE `sakila`.`staff` DROP FOREIGN KEY `fk_staff_store`                    |
| ALTER TABLE `sakila`.`store` DROP FOREIGN KEY `fk_store_address`                  |
| ALTER TABLE `sakila`.`store` DROP FOREIGN KEY `fk_store_staff`                    |
+-----------------------------------------------------------------------------------+

To actually make the DROP, we use common_schema's eval():

slave1> call common_schema.eval("select drop_statement from common_schema.sql_foreign_keys where table_schema='sakila'");

eval() is a handy routine which invokes statements generated by the given query.

This concludes the setup part.

Tests will include:

  1. Attempting to delete a parent row
  2. Attempting to add an invalid child row
  3. Attempting to update parent row

I was thinking there would be a difference between the two binary log file formats: STATEMENT and ROW. But the tests I produced showed no difference.

Tests

Attempting to delete parent row:

master> delete from actor where actor_id=1;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`sakila`.`film_actor`, CONSTRAINT `fk_film_actor_actor` FOREIGN KEY (`actor_id`) REFERENCES `actor` (`actor_id`) ON UPDATE CASCADE)

slave1> select * from actor where actor_id=1;
+----------+------------+-----------+---------------------+
| actor_id | first_name | last_name | last_update         |
+----------+------------+-----------+---------------------+
|        1 | PENELOPE   | GUINESS   | 2006-02-15 04:34:33 |
+----------+------------+-----------+---------------------+

Good: the master refused the DELETE, and no DELETE occurred on slave. Integrity is intact.

Attempting to add an invalid child row:

master> insert into film_actor (actor_id, film_id, last_update) values (9999, 1, NOW());
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`sakila`.`film_actor`, CONSTRAINT `fk_film_actor_actor` FOREIGN KEY (`actor_id`) REFERENCES `actor` (`actor_id`) ON UPDATE CASCADE)

slave> select * from film_actor where actor_id=9999;
Empty set (0.00 sec)

Integrity is still intact.

Attempting to update parent row: there is nothing invalid about this operation. I'm wondering whether changes are CASCADEd on slave as well as on master:

master> update actor set actor_id=999 where actor_id=199;

master> select count(*) from film_actor where actor_id=999;
+----------+
| count(*) |
+----------+
|       15 |
+----------+

The 999 value wasn't there before on the master, so this verifies the CASCADE works on master. As for slave:

slave> select count(*) from actor where actor_id=999;
+----------+
| count(*) |
+----------+
|        1 |
+----------+

slave> select count(*) from film_actor where actor_id=999;
+----------+
| count(*) |
+----------+
|        0 |
+----------+

Bummer! The actor's row was updated, but cascading did not work on slave.

This is actually documented. However, the documentation only relates to the issue of slave tables being MyISAM. The problem occurs even when the slave tables are InnoDB, and have no foreign key constraints.

Conclusion

My personal interest in the scenario is due to something I'm working on, I'll elaborate on a future post. People sometime hope to get rid of foreign keys, and might wonder whether replication performance would boost having constraints removed on slaves.

When slave does not enforce foreign keys, you cannot rely on integrity with cascading constraints. An ugly patch might be to use triggers so as to simulate their behavior. Performance wise this is very bad.

14 מאי, 2012 05:52 AM

13 מאי, 2012

Boris Shtrasman

sip

די מזמן רציתי לכתוב פוסט על הוספת חשבון SIP למכשירי הסלולר אולם הספיקו לפני, 
הבעיה שלי מפריעה היא שחלק מהספקים שמאפשרים הוצאת שיחה אבל לא מאפשרים חיבור ל sipbroker.

לדוגמה אם יש לי חשבון ב opensips או ב ekiga , ומישהוא שהוא לקוח בחברת תקשורת בחול יכול לחייג קידומת מסויימת ממכשיר הטלפון ואז הוא מגיע אלי.
אותו הדבר בכל אחד מספקי הטלפוניה והשירות שמחוברים לsipbroker (לא מצאתי חברת טלפוניה אחת בישראל שמספקת את שירות ה peering הזה פה).

לכן מי שכבר רוכש חשבון SIP בשביל להוציא שיחות (דרך אגב פיטצר מצויין זה שינוי מזהה שיחה יוצאת) ממליץ לו לחבר את החשבון הזה לאחד מהחשבונות שמחוברים ל sipbroker.
הרווח שלך הוא שאתה יכול לקבל שיחות מכל נקודה בעולם ועבור חלק מהאנשים בחינם.
הסבר:
  • כל לקוח בשרת אחר יכול להתקשר עליו בחינם ניתן לחייג עליו מטלפון רגיל בחלק מהחברות.לדוגמה יש לי מספר טלפון 9XXXX בopensips אז בשביל לחייג אלי מחברה מסויימת יחייגו :
    *7789XXXX
  • במידה ויש שיחת חינם למספרי גישה ניתן להשתמש ברישמה הבאה (ויש גם ישראלים) בשביל לחייג בחינם למספר טלפון SIPי.
    (מספרים של סלקום , הוט ובזק) - אדם מתקשר מהטלפון הקווי שלו למספר גישה ודרכו מגיע למרכזיה שאיתה יכול להגיע לשיחה אליכם.
    צחוק צחוק אבל זה זול יותר מחלק מהשיחות של נייד-לנייד דרך נייד->קו בזק->VoIP.

  • וכמובן בשביל להתקשר בSIP מחייגים פשוט account@fqdn או ה enum שלכם.

מה שלי היה חסר ב sipme זה חוסר תמיכה ב SIMPLE (אני אשמח לראות שאני טועה), ובכללי חוסר תיעוד על שימוש ב P-headers.

בגלל שיש לי מספר מכשירים (חברות) אני נאלץ לחפש פתרונות יצרתים , עבור האנדרויד שלי השתמשתי בcsipsimple והנוקיה השתמשה בלקוח המובנה שלה.

כרגע אני מחפש פתרון מבוסס pjsip גם לנוקיה וגם לאנדרויד מהסיבה שלקוחות מבוססי pjsip ממשים לבד הכול ולא תלויים יותר מדי במכשיר (ואז הבאג המעצבן של E72 שלא איפשר הוצאת שיחה ללא חבילת data לא היה מתריד אותי).

עלויות - 
שיחה לוקחת בין 8K ל 24K לפי קצב הדגימה והפרוטוקול שאתם משתמשים בו, 
אם אתם מחייגים לרוב לקווים נייחים אין ממש סיבה לדגום מעל 8 (לא ניתן להשמיע widesample על קוו טלפון אנגלוגי).

13 מאי, 2012 03:17 PM

12 מאי, 2012

Hetz Ben Hemo

‫הבהרות בקשר לפוסט "שרתים"‬

‫אתמול פרסמתי פוסט על רצוני להימנע מרכישת שרתים מהיצרנים הגדולים ועל הרצון לבנות שרתים בעצמי. בעקבות כמה טוקבקים שנכתבו שם, חשבתי להבהיר כמה דברים הן על "חץ ביז" והן על כיוון העסק ולגבי יצור שרתים: הפוקוס של "חץ ביז" תמיד היה ותמיד יהיה שרתי VPS (שרתים וירטואליים) בארץ או בחו"ל. זה היה וזה יהיה התחום [...]‬

הטקסט המלא

12 מאי, 2012 02:15 PM

Amir Aharoni

Turkic Wikimedia Conference 2012, Almaty: Other Highlights and Summing Up

Other highlights

Of course, the Turkic Wikimedia Conference had many other highlights except my talks and workshops. Jonas Öberg from Creative Commons delivered a keynote speech about the importance of letting people freely share their works, especially with regards to cultures which are not as known as the American or the Western European, such as that of Kazakhstan. Basically, anybody who is curious about the culture of Kazakhstan will only be able to know about it the things that are freely posted online. If it’s gathering dust in the library or locked behind a password in a pay-to-read website, nobody will read it.

Jonas Öberg. By: Ashina. License: CC-BY-SA 3.0.

Jonas Öberg. By: Ashina. License: CC-BY-SA 3.0.

The Wikimedian Daniel Mietchen, who is an advocate for Open Science, convincingly explained why opening up academic articles and experiments will not just make them cheaper, but also more correct scientifically.

Daniel Mietchen

Daniel Mietchen

Daniel also impressed lots of people with his Russian speaking skills: Apparently, he grew up in East Germany, where all children had to study Russian in schools, and he was one of the few children who actually bothered to learn it well. He said that at first he didn’t like to be forced to learn a language that wasn’t useful to him, but when he had to read a book of prose – The Tales of the Late Ivan Petrovich Belkin – as homework, he found it very satisfying, even though it was very hard in the beginning.

Another highlight was a book about editing Wikipedia given to me by one of its authors Irada Alakbarova, a participant from Azerbaijan. It is similar in content and scope to the book written by the French Wikimedians Guillaume Paumier and Florence Devouard, but it’s impressive that Irada is not just an enthusiastic Wikimedian, but also a department head in the Information Technology Institute of the Azerbaijan Academy of Sciences, and the book’s other author Rasim Aliquliyev is the Institute’s director. (In precise Azeri spelling their names are İradə Ələkbərova and Rasim Əliquliyev. The letter Ə is a part of Azerbaijan’s Latin-based writing system, but looks too weird to many English readers.)

İradə Ələkbərova

İradə Ələkbərova

Irada also told me that some time ago she gathered any information that she could about Wikipedia’s server configuration and used it as an example for teaching configuration of high-performance websites. She was very happy when I told that the Wikimedia server configuration became even more transparent recently.

Summing up

I participated in many conferences lately, and this one was unusually satisfying in many ways.

As usual, meeting the people was the best part. This refers both to the people from places like Bashkortostan and Sakha, with whom I communicated by email for many years, hardly imagining how do they look, and also to people whom I had not known before and who came from countries that I could hardly imagine of ever visiting, like Kyrgyzstan and Turkmenistan. The international press mostly reports bad and weird news from these countries, but as it often happens, the image created by the media has little to do with the real people – I was stunned by the talent, the originality and the vigor that they demonstrated.

I was not the only one who felt that the conference was a great success, so we already started to throw around ideas for the location of another one. The names of Bishkek, Ufa, Baku and Istanbul were suggested, and I would certainly be very happy to go to any of these cities or to meet these wonderful people elsewhere.

Most importantly, this conference left me and the other participants a long list of exciting tasks to do.


Filed under: Free Software, translation, Wikipedia Tagged: Creative Commons, Open Science

12 מאי, 2012 08:52 AM

11 מאי, 2012

Hetz Ben Hemo

‫שרתים‬

‫השבוע היה בתכנון להזמין עבור העסק מספר שרתים נוספים מ-HP להרחבת העסק. בדקנו מחירים, התווכחנו עם משווקים, קיבלנו הצעות מספקים שונים והמחירים כרגיל הראו שהמשווקים פה מרוויחים בכלל לא רע על חשבון עסקים כמו חץ ביז. אז לפני שאני שם חותמת עסק וחותם על ההזמנה החלטתי קצת לחשוב מחדש על עניין ההזמנה. בכל זאת, מדובר [...]‬

הטקסט המלא

11 מאי, 2012 03:03 PM

10 מאי, 2012

Lior Kaplan

חבר חדש בועד המנהל של Open Source Matters

OSM, הגוף שעומד מאוחרי Joomla! הודיע כי לועד המנהל שלו נבחרו שלושה חברים חדשים. אחד מהם, עופר כהן שמו, פעיל בקהילת ה-Joomla! הישראלית ואחד מהמארגנים של יום ג'ומלה 2011.

בנוסף לתרומת הקוד לפרוייקט ולתרגום לעברית, עופר גם הולך להעביר הרצאה בנושא "Joomla architecture revealed" בכנס הג'ומלה הבינלאומ "J and Beyond". כל הכבוד עופר ובהצלחה (:


Filed under: Free Software in Israel, Israeli Community

10 מאי, 2012 09:15 PM