Category Archives: Software and Programming

She’s Lost ConTroll Again (Hebrew)

רציתי להגיד משהו באינטרנט, בעניין תוכנת ניהול הכנסים שהעמותה משתמשת בה. אני מדבר כמובן על חומי. סליחה, קונטרול. קונטרול היה השם שאורי פולגר נתן לתוכנת ניהול הכנסים שכתב בשביל אחד מכנסי העמותה (תנ״כ? כונסה? כפי שאנו רואים מהעדר שם קצר וקליט, לא בדיוק תחום לוהט בעולם ההיי-טק). מאז התפתחה הקונטרול בהשפעת שני כוחות: מתנדבים מארגני כנסים שרצו להשתמש בה ולהוסיף בה מיני פיצ׳רים דרושים, ומתנדבים מכנתים שהוסיפו את אותם הפיצ׳רים בעודם מקטרים על פגמי המערכת ותחלואיה וחולמים בערגה על היום שבו יזדמן להם לבנות את הכל מחדש כמו שצריך.
לפחות זו הבנתי (החלקית והלקויה, אך רבת-השנים) לגבי תוכנת ניהול הכנסים של העמותה הקרויה קונטרול.
בימים האחרונים למדתי, שמישהו כתב מחדש כמו שצריך תוכנת ניהול כנסים לעמותה, והיא שימשה גם בביגור האחרון ואולי גם בכנסים קודמים. אני חושד שיש כל מיני משתמשים ותיקים של המערכת שהוחלפה שזועמים על הזזת הגבינה (פעם התעללתי בעידו פנסקי המסכן ואילצתי אותו לנהל ביגור עם אתר כנס שהודבק מכמה פלאגאינים של וורדפרס, אז אני יכול רק לדמיין מה אנשים פחות סטואיים ממנו עלולים להרגיש).
אבל מה שאני רואה או מבין (וכאמור, אני ג׳ון סנואו מוחלט בנושא) שמתנגדי המודרנה ממקדים את כעסם בכך שהבחור שמנהל את פרוייקט קונטרול הנוכחי (א) רואה בעבודתו הבלתי-מבוטלת פרוייקט עצמאי ולא משהו תחת מטריית העמותה (ב) ולמרות זאת קורא לפרוייקט שלו קונטרול.
עצוב לי שהאנשים הללו, Michael Pevzner ו Itai Assaf Raizman-Greif מפגינים בכך חוסר-הבנה בסיסי לגבי הפסיכולוגיה של ההתנדבות שמתעלמת מכל מה שמלמדת אותנו ההיסטוריה של העמותה לדורותיה.
זוכרים את האחווה? גרעין מרכז? דרקוניקון? כל לארפ המוני וכל כנס נישתי? למה מתנדב שמרים כנס לראשונה בחייו רוצה לעשות את זה לבד, ולעצב את אתר הכנס בעצמו, אפילו שהינה רגע אני מחולל לך וורדפרס על אתר העמותה?
כי אנשים רוצים בעלות על הדברים שהם עושים. אנשים רוצים להיות מסוגלים להצביע על דבר ולהגיד *אני עשיתי את זה*. ההצלחה היא שלי, ההברקות והפאדיחות והפאקים הם שלי. או שלנו. אבל שלנו זה אני ואוגי, לא ״העמותה״, לא הקולקטיב.
כבר החוותי דעה שהעמותה לא אמורה לכתוב תוכנות ולתחזק אתרים (ומיד עוררתי את זעמו של איזה פעיל שהתקנת ויקי לצרכי פעילות מסויימת היא הבייבי *שלו*). כשמדובר בפרוייקט תוכנה התנדבותי גדול של פיתוח תוכנת ניהול כנסים כמו קונטרול, אז המתנדבים שמפיחים חיים בפרוייקט הם *מתכנתים*. למארגנים ומשתמשים ו״מנהלי מוצר״ יש תפקיד חשוב, אבל הם הלקוחות, זה לא הבייבי שלהם. רוצים להתקדם מעבר לגילגול כדור בוץ במעלה ההר ב-FTP מכנס לכנס? תנו למתכנתים המתנדבים תחושת בעלות על העבודה שלהם, תנו להם את הפרוייקט *שלהם* – הוא לעולם לא יהיה שלכם, כי אתם בצד של ״אני לוחץ על הכפתור וזה לא עובד״. אתם בצד של להרים כנס, ולא בצד של לאנדקס טבלאות כדי לייעל שליפות בבסיס הנתונים.
בדיוק כמו שאחראי תוכן של אייקון לא יכול להגיד ללארפרים איך להרים את הלארפ שלהם, בדיוק כמו שהלארפרים היו צריכים את האחווה שלהם כדי להביא לעמותה את ארועים שלהם (ואני מקווה שזו דוגמה היסטורית אנתרופולוגית, ושהעמותה מודל 2017 מלאה במתנדבים ששולטים במשחקים חיים כמו גם בשולחניים), כך גם כדי לפתח תוכנה בהתנדבות, צריך לתת למתכנתים המתנדבים את מרחב המחייה שלהם, את הגיטהאב ורשיון הקוד הפתוח והתקווה העמומה שהם כותבים מערכת מספיק כללית, גמישה ונכונה כדי שיום אחד אולי אפשר יהיה להרים עליה כנס שאינו כנס עמותה.
בקיצור, אני מבקש מכם – תרפו קצת, רדו מבריקדת זכויות היוצרים ונכסי העמותה והערכים והצדק ותיזכרו שאתם עובדים עם מתנדבים. מתנדב שעושה משהו כי זה מה שהוא רוצה לעשות מוצלח בהרבה ממתנדב שעושה משהו כי צריך לעשות אותו. אנשים רוצים להרגיש שהם בשליטה על מה שהם עושים, ואין דבר שיותר מפריע לאנשים טכניים (בין אם הם מתכנתים, עורכים לשוניים, גרפיקאים או מעצבי משחקים) מניהול של מישהו שהם רואים כלא-טכני. אדם לא-טכני שמבקש עזרה מעורר רצון לסייע, אדם לא-טכני שמנסה לנהל מעורר רצון להתחפף.

GNU screen – persistent terminal sessions

So, you open a terminal, ssh to some server, start a long-running command and suddenly –
there’s a power cut / Moba or whatever program you are using dies / windows restarts

Is it all lost?
Well, yes. But there’s a way to avoid it:

use screen.

screen (aka GNU screen, for easier googling) is basically a session manager for the terminal.
To start it, ssh to your server and type “screen”.

You will notice that the screen clears and you’ve got another shell prompt. This shell is running under the screen session.

You can work in the shell as normal (i.e, starting an interactive command, ssh to another server, etc), or you can send commands to the screen session using the Ctrl-A key combination (^a).

To get a list of screen commands, type Ctrl-A ?
(or better yet, look up a cheatsheet)

To detach from the screen session, type Ctrl-A d
– this will get you out of the session, but leave screen running.

You can re-attach to the running screen from any other terminal session by typing screen -r

If you’ve left the screen session running in another terminal, you can take it over in your current terminal by typing the command screen -rd.

So, to put together what we’ve learned:

Start a screen session:
screen

Start a slow-running command in the shell:

$OUR_ROOT/tools/Foo/some_really_slow_script.pl -in ……

Leave it running, or detach with Ctrl-A d

Go home, reconnect to work (or go for lunch, come back after your machine rebooted by accident or whatever), ssh to the server where you ran screen, and type

screen -rd

to see if your script finished and carry on from where you left.

You leave screen by exiting all the shells you have open under the screen session, or with a keyboard shortcut I can’t be bothered to look up.

Bonus tips (i.e, all the screen commands my fingers know):

Ctrl-A c = open another shell session inside screen

Ctrl-A Ctrl-A = toggle between the two most recent open shell sessions

Ctrl-A ” = see a list of open shell sessions

Ctrl-A A = give a name to the current shell session

Ctrl-A ‘ = switch to a named shell session by typing (the start of ) its name.
Hope you find this useful,

Tabs, Tea and Typos

Tile Tabs is a Firefox extension which lets you view multiple web pages in one window – you know, like a tiling window manager or frames in a web page. I love tabs probably more than most people, but I started using split windows in Vim recently because sometimes you really want to look at two different files side by side, so why not web pages?

George Orwell on making Tea.

מדינה קרקעית

Typo in Haaretz produced the jolly headline “only a third in favour of ground nation”. Let’s move to Bespin now! I posted this on Facebook, Twitter and even Google Plus, might as well post it on the Internet.