Categories
וורדפרס לינוקס קוד פתוח ותוכנה חופשית

עוברים דירה


אחרי שלוש שנים שבהן האתר הזה רץ מעל שרות האחסון של Scaleway, קיבלתי מהם הודעה שהחומרה שעליה אני רץ (dual core ARM CPU, 2GB RAM, 50GB SSD) תפסיק לעבוד בעוד מספר חודשים. הם הציעו לי לעבור באותו מחיר לשרת VPS מבוסס אינטל, אלא שעוד לפני שהספקתי להגיב, קיבלתי את המכתב שזו כותרתו: We’re evolving our Instances prices, או בתרגום חופשי: נמאס לנו להיות הכי זולים בשוק, אז נעלה את המחיר ב 66%.


החלטתי שזה הזמן לחפש שרות אכסון חדש, והגעתי דרך חבר לעבודה ל OVHcloud. השרת הבסיסי נראה על הנייר חלש יותר (מעבד אחד בלבד ודיסק קטן יותר), אבל בבדיקות ביצועים בשטח הוא משמעותית יותר מהיר. זה מורגש גם בעבודת ההתקנה (פרטים בהמשך) וגם בזמן ריצה, כפי שנמדד ע״י StatusCake. המחיר זהה למחיר (הישן) של Scaleway: שלושה אירו לחודש, בלי התחייבות.

השרת שלי מריץ בנוסף גם שני שרתי node קטנים, כך שהעברת כל הטוב הזה היא לא פשוטה, ולכן החלטתי הפעם ללכת על Docker. למי שלא מכיר את Docker, מומלץ לקרוא את סדרת המאמרים באתר של רן בר-זיק. שם הוא גם מדגים התקנת WordPress. אני בחרתי לעקוב אחרי המדריך של Michael J. Stealey ב GitHub, שממנו גם עשיתי פורק לריפו משלי. המדריך הזה קצת יותר מתאים לסביבה הנוכחית שלי שכוללת MariaDB במקום MySQL, וגם סקריפטים מוכנים לתמיכה ב https, דרך השרות של Let’s Encrypt.

רוב התהליך עוקב אחרי ה README, אבל מכוון שלא התחלתי מאתר חדש כפי שהמדריך מתאר, ביצעתי מספר שינויים, כמו שיחזור של ה DB ומבנה הקבצים מהשרת הנוכחי. זו הייתה טבילת האש הראשונה ל restic שהזכרתי באחד הפוסטים הקודמים והוא הוכיח את עצמו מצויין. שחזור של MySQL שרץ בתוך קונייטנר הוא קצת מורכב, וגם כאן יש לבר-זיק מדריך טוב.

אז נשארו לי כמה קצוות לסגור, כמו חידוש אוטומטי של הסרטיפיקטים ב Let’s Encrypt, והפעלה של גיבויים, אבל בסך הכל נראה שדוקר עושה עבודה טובה, והמעבר הבא יצריך ״רק״:

sudo docker-compose up -d
Categories
וורדפרס לינוקס קוד פתוח ותוכנה חופשית

php 7.4

חלפה למעלה משנה מאז שהתמיכה ב-7.0 php הופסקה, וזה הזמן לשדרג את הבלוג לגרסה 7.4. כרגיל, צריך לקרוא את כל ה breaking changes, אבל אם הבלוג והתוספים מתוחזקים לגרסה העדכנית ביותר, אפשר לסמוך בדרך כלל שהכל יעובד. גיבוי של הקוד והדאטה רצוי גם כן.

את הגיבויים אני מבצע לאחרונה בעזרת restic, כאשר הקבצים מועלים לאכסון (הזול יחסית) של Backblaze B2.

אחרי שמכניסים את הגדרות ל restic למשתני סביבה, סקריפט הגיבוי פשוט למדי:

#!/bin/bash
d=$(date +%Y-%m-%d)
mysqldump -u *** -p *** > ~/backup/sql/yehudab-${d}.sql
gzip ~/backup/sql/*.sql
tar -czf ~/backup/site/yehudab.com-${d}.tar.gz yehudab.com
restic backup ~/backup

לצורך השדרוג, עקבתי אחרי המדריך ב CloudBooklet. מכוון שאני מריץ php דרך ngnix, ביצעתי את הסעיפים הרלוונטים לגרסת fpm.

אה, וכמובן, להשתמש ב vi, כי nano זה לחלשים.

אחרי השדרוג, אני מנסה לשמור את הפוסט הזה ובום error 500. בדיקה מהירה בלוג של nginx על השרת מגלה ששכחתי להתקין את  php7.4-memcache שהמדריך הנ"ל לא מחשיב כ common extension. הרצת:

sudo apt install php7.4-memcache

וריסטרט לשרת פתרו את הבעיה.
שדרוג

Categories
וורדפרס קוד פתוח ותוכנה חופשית

וורדפרס 5.0

גרסה חדשה של וורדפרס יצאה השבוע, והבלוג קיבל את השדרוג המתחייב. על הדרך, עברתי לתבנית 2019 החדשה (הקודמת הייתה 2016).

בקרוב פוסט עם תוכן אמיתי ותמונה לא ממוחזרת.

Categories
אישי קוד פתוח ותוכנה חופשית

חם יותר מיולי

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

Hotter then July album cover

זה היה בתחילת שנות השמונים של המאה שעברה. אני ועוד תלמיד מהתיכון שלמדתי בו נהגנו לבלות בחדר המחשבים של בניין רוס באוניברסיטה העברית. באותה תקופה שודרה ברדיו תוכנית חידונים שנקראה ״עד 120״. הרעיון היה פשוט: הקריין שואל 10 שאלות, שהתשובה לכל אחת מהן היא מספר. המאזינים צריכים להתקשר לתחנה והראשון שעונה את התשובה הנכונה מקבל תקליט מתנה. אחרי שהצטברו 10 מספרים, מגיע השלב שעניין אותי: צריך היה לקחת את עשרת המספרים ובאמצעות 4 פעולות חשבון בינהם להגיע למספר 120. הראשון שהתקשר לאולפן עם התרגיל הפתור קיבל 10 תקליטים. בדרך כלל, היה די קשה להגיע בדיוק למספר, ולכן ניתן היה לעגל תוצאות של חילוק. על תשובה מעוגלת חילקו פרס קטן יותר (2-4 תקליטים, תלוי במספר הפותרים).

אחרי מספר נסיונות לפתור את החלק המתמטי בעזרת נייר ועפרון, החלטנו לנצל את מחשבי האוניברסיטה לטובת הפרס הנחשק. תכנית מחשב שתעבור על כל האפשרויות הייתה מחוץ לתחום במשאבים שהיו זמינים לנו אז (נדמה לי שזה היה מחשב VAX-11/780, שהריץ גרסת יוניקס של ברקלי), וכנראה גם לא היום – מדובר בכטרליון תרגילים אפשריים – אבל בעזרת יוריסטיקה פשוטה יחסית הצלחנו לכתוב תוכנית שתמצא פתרון בזמן סביר. העניין היותר מורכב בשלב הזה היה החלק הלוגיסטי: להביא רדיו למעבדה, להקשיב לתוכנית, להזין את המספרים ואז לרוץ לטלפון הציבורי בקומה השניה ולהתקשר לאולפן.

בסופו של דבר עליתי לשידור מספר פעמים וצברתי בסה״כ כ-10 תקליטים, בינהם התקליט Hotter then July של סטיבי וונדר.

Categories
וורדפרס לינוקס קוד פתוח ותוכנה חופשית

HTTP/2

עוד שדרוג קטן לבלוג.
הפעם העברתי את השרת מ apache ל nginx, ועל הדרך הפעלתי HTTP/2.
זה אמור לשפר את הביצועים, למרות שאני לא ממש מרגיש בזה בנתיים.

Hex dump of nginx logs

למעוניינים, המדריך הזה מסביר על התקנת nginx, והגדרות HTTP/2. כאן תמצאו הסבר על ההגדרות הדרושות ב nginx לטובת הפעלת WordPress במקום mod_rewrite של apache.

התוצאה הסופית של כל ההגדרות האלה, כפי שנשמרה בקובץ ‎/etc/nginx/sites-available/default היא זו:

server {

        listen 443 ssl http2 default_server;
        listen [::]:443 ssl http2 default_server;
        include snippets/gzip.conf;

        ssl_certificate /etc/nginx/ssl/live/yehudab.com/fullchain.pem;
        ssl_certificate_key /etc/nginx/ssl/live/yehudab.com/privkey.pem;
        ssl_dhparam /etc/nginx/ssl/live/yehudab.com/dhparam.pem;

        root /var/www/yehudab.com;

        index index.html index.htm index.php index.nginx-debian.html;

        server_name yehudab.com;

        location / {
                try_files $uri $uri/ =404;
        }

        location /blog/ {
                try_files $uri $uri/ /blog/index.php?$args;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
        include snippets/expires.conf;
}


server {
       listen         80;
       listen    [::]:80;
       server_name    yehudab.com;
       return         301 https://$server_name$request_uri;
}

לאחר סיום ההגדרות, ניתן לוודא את תמיכת האתר ל HTTP/2 באמצעות דף הבדיקה של KeyCDN.

Categories
לינוקס קוד פתוח ותוכנה חופשית

רק שניה

רק שניה מפרידה בין השעה 03:14:07 ל 03:14:08 בתאריך: 19 בינואר 2038. לכאורה, זה לא צריך לעניין אף אחד. אבל אם אתה יוניקס/טיים גיק כמוני, התאריך הזה מייד אמור להדליק לך נורה אדומה.
למה? כי בשניה הזאת יעברו בדיוק 2,147,483,648 (או 2 בחזקת 31) שניות מתאריך 1.1.1970 בשעה 00:00:00. מחשב לינוקס בארכיטקטורת 32 ביט לא יכול להציג את הזמן הזה.
נסו להריץ את הפקודה הבאה על מחשב הלינוקס הקרוב:

date --date='@2147483647'

או במערכות מבוססות BSD (כמו macOS), את הפקודה הזאת:

date -r 2147483647

זה אמור לעבוד בלי בעיה. אבל אם תוסיפו שניה נוספת (כלומר להחליף את ה-7 ב-8), אתם עלולים לראות משהו כזה:
2038 on 32 bit Linux

לעומת זאת, על מחשב 64 ביט, התוצאה תקינה:
2038 on 64 bit Linux

אז למה זה מעניין עכשיו, ומה איכפת לי ממשהו שיקרה בעוד קצת יותר מ-20 שנה?

קודם כל, כי הזמן עובר. 20 שנה נשמע כמו המון זמן, אבל אם תסתכלו סביבכם בחדר, תראו לא מעט מכשירי חשמל שעובדים 20 שנה ויותר. תוסיפו לזה את העובדה שהיום כמעט כל מכשיר (ממנורה ועד טלוויזיה) מחובר לאינטרנט, ותבינו שיתכן שזו פצצת זמן שנדרכת עם כל קניה של מכשיר חדש שנעשית היום. וזה עוד בלי להזכיר מטוסים, בתי חולים, מערכות רכב (מישהו מוכן להיכנס למכונית אוטונומית ב 2038?) רמזורים, מעליות.

צילום המסך העליון, לדוגמה, נלקח ממחשב Raspberry Pi שמחובר למערכת ההשקיה בגינה שלי.
Raspberry Pi with Open Sprinkler
האם הוא ישרוד עד 2038? אולי. עד עכשיו, החלפתי בממוצע מחשב השקייה כל 10 שנים: הראשון בגלל הבטרייה שזלגה, והשני עדיין עבד, רק שרציתי להחליף אותו בדגם שמאפשר תכנות דרך הרשת במקום ממשק לא ידידותי. למזלי, ה 19 בינואר יוצא בחורף, כך שיהיו לי כמה חודשים טובים לדאוג למחליף במידת הצורך.

ולמה נזכרתי בכל זה עכשיו? כי מחר (2 ביולי 2017) יעבור מספר השניות את סף ה 1.499 מיליארד, ובעוד שבועיים (14 ביולי) הוא יעבור את סף ה 1.5 מיליארד.

השעון מתקתק…

Categories
וורדפרס לינוקס קוד פתוח ותוכנה חופשית

שוב שדרוג לבלוג

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

בלוג

דבר ראשון, בקטנה, שדרוג מתחייב לגרסה האחרונה (4.8).

חוץ מזה, תוסף חדש: Yoast SEO, כי פייסבוק דורש מטה תגיות, וזה הכי קל.

אבל הכי חשוב, החלפתי את שרות האירוח מאכסון משותף על NearlyFreeSpeach לשרת וירטואלי פרטי של Scaleway. בחרתי בשרת מבוסס ARMv8 כך שהמחיר יוצא כמעט אותו דבר (3$ בראשון, 3€ באחרון), כשכאן אני מקבל שרת פרטי, יכול להריץ עליו מה שאני רוצה, וגם הביצועים טובים הרבה יותר. כמובן, אני צריך לדאוג לבד לשדרוגי תוכנה, אבטחה, גיבויים וכד׳, אבל זה חלק מהעניין. המדריך ב LinuxBabe יכול לעזור כאן.

Scaleway לא כ״כ אוהבים ששולחים מייל מהשרת שלהם (כדי שלא ישמשו לספאם), אז נרשמתי לשירות mailgun שמאפשר לשלוח עד 10,000 מיילים בחודש בחינם. הוא עובד יחד עם התוסף המקביל ב WordPress. באתר wpbeginner יש הסבר מפורט איך להשתמש בשניהם.

דבר אחרון, העברתי את האתר לעבוד דרך https, כי בכל זאת 2017. המדריך הנ״ל מ LinuxBabe מסביר איך לעשות את זה בחינם דרך Let's Encrypt.

Categories
סקראץ׳ קוד פתוח ותוכנה חופשית

מדריך למתחילים בסקראץ׳

[פוסט זה הוא תרגום של מדריך המשתמש הרשמי של Scratch. תוכלו להוריד את המדריך באנגלית מדף העזרה באתר. הזכויות למקור שמורות ל Lifelong Kindergarten Group, MIT Media Lab. מופץ ברשיון CC-BY-SA 2.0]

Scartch Cat

סקראץ׳ (Scratch) היא שפת תיכנות שמאפשרת ליצור סיפורים אינטראקטיביים, אנימציות, משחקים, מוזיקה ואומנות.

מסך לדוגמה מסקראץ׳

המדריך הזה יאפשר לכם ליצור פרויקט בסקראץ׳.

ליצירת פרויקט חדש, גשו לאתר: http://scratch.mit.edu. אם האתר נפתח באנגלית, ניתן לשנות את שפת הממשק מהתפריט בתחתית הדף. לאחר מכן, לחצו על הכפתור צור.
צור

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

1 – התחילו לזוז

לבנת זוז

גררו לבנת זוז לאזור התסריטים.

לחצו על הלבנה

לחצו על הלבנה כדי לגרום לחתול לזוז.

2 – הוסיפו צלילים

לבנת נגן בתוף

גררו לבנת נגן בתוף וחברו אותה ללבנת הזוז.

לחצו והקשיבו

לחצו והקשיבו.
אם לא הצלחתם לשמוע, בדקו שהרמקול במחשב שלכם מופעל.

החלפת צלילים

תוכלו לבחור סוג אחר של תופים מהתפריט.

3 – התחילו ריקוד

הוספת לבנת זוז חדשה

הוסיפו לבנת זוז חדשה. לחצו בתוך הלבנה והוסיפו סימן מינוס.

לחצו להפעלה

לחצו על כל אחת מהלבנים כדי להריץ את כל הערמה.

לבנת נגן בתוף נוספת

הוסיפו לבנת נגן בתוף חדשה, והחליפו את סוג התוף מהתפריט. לחצו להרצה.

4 – שוב ושוב

לבנת חזור

גררו לבנת חזור והצמידו אותה לראש הערמה. הפה של לבנת החזור צריך לעטוף את שאר הלבנים.

כדי לגרור את הערמה, יש לתפוס אותה מהלבנה העליונה.

שינוי מספר החזרות

תוכלו לשנות את מספר החזרות שיבוצעו.

לחצו כדי להריץ.
אפשר ללחוץ על כל אחת מהלבנים להרצת הערמה כולה.

5 – אמרו משהו

לבנת אמור

לחצו על קטגוריית המראה וגגרו החוצה לבנת אמור.

שינוי טקסט

לחצו בתוך לבנת האמור והקלידו כדי לשנות את המילים. לחצו כדי לנסות.

חברו לראש הערמה

אחר-כך, חברו את לבנת האמור להתחלה.

6 – דגל ירוק

כאשר לוחצים על הדגל הירוק

גררו לבנת כאשר לוחצים על הדגל הירוק וחברו אותה להתחלה.

הפעלת הדגל הירוק

בכל פעם שלוחצים על הדגל הירוק, התסריט מתחיל לפעול.
להפסקה, לחצו על כפתור העצור.

7 – שנו צבע

עכשיו, נסו משהו שונה…

לבנת שנה אפקט

גררו לבנת שנה אפקט.

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

8 – לחיצה על מקשים

לבנת כאשר נלחץ מקש

חברו לבנת כאשר נלחץ מקש

עכשיו, לחצו על מקש הרווח במקלדת שלכם.

בחירת מקש

תוכלו לבחור מקש שונה מהתפריט

9 – הוסיפו רקע

תוכלו להוסיף רקע לבמה.

בחירת רקע

לחצו כפתור רקע כדי לבחור רקע חדש.

בחרו רקע מהספריה (למשל "spotlight-stage").

ספרית הרקעים

לחצו אישור.

הרקע החדש מופיע כעת על הבמה.

הרקע החדש

10 – הוסיפו דמות

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

כפתורי הוספת דמות

כפתורי הוספת דמות:

דמות מהספריה בחרו דמות מהספריה

צייר דמות ציירו דמות משלכם

דמות מקובץ העלו דמות/תמונה מקובץ

דמות ממצלמת רשת צלמו תמונה (ממצלמת רשת)

כדי להוסיף את הדמות הזאת:
קייסי רוקדת
לחצו על דמות מהספריה ואז לחצו על קטגורית אנשים ובחרו את הדמות "cassy dance" (קייסי רוקדת).

תוכלו לגרור את הדמויות ולמקם אותן על הבמה.
גררו את הדמות

11 – חקרו!

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

הוסיפו צליל:
צלילים

לחצו על לשונית הצלילים. תוכלו לבחור צליל בחר צליל, להקליט צליל משלכם הקלטה, או ליבא מקובץ צליל מקובץ. (בפורמט AIF, MP3 או WAV)

הוספת צליל לתסריט
עכשיו לחצו על לשונית התסריטים וגררו לבנת נגן צליל לתסריט. בחרו את הצליל מהתפריט.

שנו תלבושות:
תלבושות

לכל דמות יכולות להיות מספר תלבושות.
לשינוי התלבושת הנוכחית, לחצו על לשונית התלבושת.
אחר-כך לחצו על תלבושת שונה לדמות.

צרו אנימציה:
אנימציה

תוכלו ליצור אנימציה ע"י החלפת תלבושות.
לחצו על לשונית התסריטים.
צרו תסריט שמחליף בין התלבושות.

12 – טיפים!

שם לפרויקט
תנו שם לפרויקט שלכם.

לרעיונות נוספים, לחצו על טיפים:
טיפים

חלון טיפים

חלון הטיפים מראה דוגמאות תסריטים שבהם תוכלו להשתמש בפרויקט.

הוא גם מסביר מה כל אחת מהלבנים של סקראץ׳ עושה.

שמור ושתף

כדי לשמור את הפרויקט ברשת, הקפידו להתחבר לאתר. התחבר

(אם תרצו לשמור את הפרויקט במחשב שלכם, לחצו על תפריט קובץ ובחרו באפשרות: ״הורד למחשב שלך״.)

כאשר אתם מוכנים, לחצו על ראה דף פרויקט

דף פרויקט
דף פרויקט

לחצו מסך מלא לקבלת מסך מלא.

לחצו שיתוף כדי שאחרים יוכלו לצפות ולשחק בפרויקט שלכם. כאשר אתם משתפים, אחרים יכולים לבקר ולשחק בפרויקט שלכם.

הוסיפו הערות לפרויקט.

מה עכשיו? תוכלו לצור פרויקט חדש או לחקור לקבלת רעיונות.

כדי ללמוד עוד, לחצו עזרה או גלשו אל http://scratch.mit.edu/help (אנגלית).

למי שרוצה להעמיק עוד יותר, מומלץ לקרוא את הספר בעברית: עקרונות ומושגים במדעי המחשב דרך Scratch, מאת מיכל ארמוני ומוטי בן-ארי. ניתן להוריד את הספר בחינם. שימו לב: הספר נכתב לגרסה 1.4 של סקראץ׳. ניתן להוריד מאותו קישור דף הסבר על השינויים בגרסה 2.

Categories
קוד פתוח ותוכנה חופשית

השרות הנסיוני לתכנון נסיעה בתח"צ עלה לאויר

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

תכנון מסלול לדוגמה

שימו לב! השרות מוגש as-is. אין שום הבטחה לתקינות הנתונים מבחינת האפשרות לנסוע במסלול, יעילות המסלול, זמנים, מספרי הקוים, או מחיר הנסיעה (אם וכאשר יפורסם).
שוב תודה לחברי ומנהלי עמותת המקור על התמיכה בפרויקט.

Categories
קוד פתוח ותוכנה חופשית

חישוב מסלול נסיעה בתחבורה ציבורית

משרד התחבורה החל לפרסם לפני כשבוע מאגר מידע חדש הכולל לוחות זמנים ונתיבים של התחבורה הציבורית בארץ. המאגר מפורסם לפי תקן פתוח של גוגל שנקרא GTFS. במסגרת שיתוף פעולה של מספר חברים ברשימת התפוצה של המקור, הקמנו פיילוט שמדגים את יכולות המאגר. הקוד בפיילוט מבוסס על פרויקט OpenTripPlanner. תודה לירון על עבודת התרגום, ולשאר החברים על העידוד והתמיכה.

עד להקמת שרת ציבורי, ניתן להתרשם מצילומי המסך:

מסלול שלם:
מסלול שלם

התמקדות על מקטעים:
התמקדות על מקטעים

גרסה להדפסה:
גרסה להדפסה

ההסבר בהמשך מיועד למי שרוצה להקים שרת. לא למי שרוצה לחשב מסלול !! (מה שנקרא: Don't try this at home).

להקמת השרת, יש לבצע את הפעולות הבאות: (זה הרקע. הקוד בפסקה הבאה מבצע את הפעולות)

לוודא שאזור הזמן של השרת הוא Asia/Jerusalem.
להוריד ולפתוח את הקוד של OpenTripPlanner (גודל הקובץ כ 90MB) וליצור קישור סימבולי ל / .
להוריד ולפתוח קובץ Open Street Map של ישראל מהאתר cloudmade.com (גודל הקובץ 22MB).
למצוא את כתובת קובץ ה GTFS מאתר מאגרי המידע של הממשלה, ולהוריד אותו. מכוון שהקובץ מוגש (זמנית?) משרת ftp ולא http, צריך לארח אותו מחדש על שרת אחר. בדוגמאות הקוד בהמשך האירוח הוא בשרת מקומי

$ date
# Make sure timezone is correct. If not, run the command:
# $ sudo ln -sf /usr/share/zoneinfo/Asia/Jerusalem /etc/localtime
# make sure ntp is installed and running. if not, follow these instructions: http://www.ehow.com/how_8251011_sync-time-centos.html
$ mkdir ~/GTFS
$ cd ~/GTFS
$ curl -L -O "http://maps5.trimet.org/otp-dev/otp.zip"
$ curl -L -O "http://downloads.cloudmade.com/asia/western_asia/israel/israel.osm.bz2"
$ curl -L -O "ftp://199.203.58.18/israel-public-transportation.zip" 
# !! replace IP above with correct IP
$ unzip otp.zip
$ bunzip2 israel.osm.bz2
$ sudo ln -s ~/GTFS/otp /
$ ln -s ~/GTFS/israel.osm /otp/cache/osm/

יש לערוך מספר קבצי הגדרות:

$ vi /otp/graph-builder.xml 
# Line 13, change properties to 'name="path" value="/home/yehuda/GTFS/israel-public-transportation.zip"'
#              (or whatever path you placed the file in)
# Line 40, change file name of OSM from or-wa.osm to israel.osm (just file part)
$ vi /otp/bin/build-graph.sh
# Line 1, change -Xmx2048m to -Xmx6114m. If you have more memory, put as much as possible
$ vi /otp/bin/start-server.sh
# Line 1, change -Xmx2048m to -Xmx4096m. If you have more memory, put as much as possible

בניית הגרף (משלב נתוני OSM עם נתוני תח"ץ)

$ cd /otp
$ bin/build-graph.sh >& ~/GTFS/build-graph.err
# might take 15-30 minutes depending on processor power and memory
$ ls -l /otp/Graph.obj
# should be around 1GB

אחרי הריצה חשוב לוודא בלוג שאין תעופה בגלל חוסר זכרון !!

עכשיו אפשר להריץ את השרת האפליקטיבי:

$ cd /otp
$ bin/start-server.sh 
# Wait for line: "Winstone Servlet Engine v0.9.10 running..."

עכשיו אפשר לפתוח דפדן לכתובת : http://localhost:8080/opentripplanner-webapp/index.html (אם השרת אינו מקומי, להחליף localhost בכתובת השרת). ולנסות לחשב מסלול.

תרגום לעברית:
לבדוק האם הקובץ ‎/otp/webapps/opentripplanner-webapp/js/otp/locale/Hebrew.js‏ קיים. אם לא, להוריד אותו מכאן ולשמור בנתיב הנ"ל. אחר-כך, יש לבצע מספר תיקונים בקוד:

$ vi /otp/webapps/opentripplanner-webapp/index.html
# line 2, add 'dir="rtl"' to html tag
# line 53, duplicate this line and change file name to "js/otp/locale/Hebrew.js" 
$ vi /otp/webapps/opentripplanner-webapp/js/otp/config.js
# line 12, change otp.locale.English to otp.locale.Hebrew (at end of line)
# line 175, change value of 'enabled' to 'true'
# line 177, add this to end of string:
# + '<div style="margin:10px auto;width:205px"><a href="http://www.opentripplanner.org/"><img src="images/logo-otp.png" title="OpenTripPlanner" /></a>' +  '<a style="margin:0 10px" href="http://www.hamakor.org.il/"><img src="images/logo-hamakor.png" title="עמותת המקור" /></a>' + '<a href="http://www.hetz.biz/"><img src="images/logo-hetz.png" title="חץ ביז" /></a></div>'
$ vi /otp/webapps/opentripplanner-webapp/js/otp/locale/Hebrew.js
# line 28, change title to: "אודות האתר"
# line 29, change content to: 
# 'אתר זה הוקם ע"י יהודה ב. על בסיס נתוני "לו"ז ומידע גאוגראפי בתחבורה הציבורית" הזמינים מאתר <a href="http://data.gov.il/">data.gov.il</a> ועל בסיס תוכנת הקוד הפתוח <a href="http://www.opentripplanner.org/">OpenTripPlanner</a>.' + '<br>' + 'תרגום התוכנה לעברית בוצע ע"י ירון שהרבני. אירוח אתר זה בחסות <a href="http://www.hamakor.org.il/">עמותת המקור</a> ובאדיבות <a href="http://www.hetz.biz/">חץ ביז</a>.' + '<br>' +  'תנאי שימוש: עמותת המקור עושה כמיטב יכולתה בכדי לספק שירות זה על בסיס נתונים מדוייקים ועדכניים אולם ייתכנו טעויות. המידע ניתן כפי שהוא ללא אחריות. ראו גם <a href="http://data.gov.il/dataset/383">תנאי שימוש של משרד התחבורה</a>.' 

עכשיו לרפרש את הדפדפן ולהנות מההמשק העברי. יתכן שתתקבל הודעה על כשלון בחישוב המסלול. במקרה זה, יש לבחור תאריך חדש לחישוב בתחום המכוסה על-ידי הקובץ (יום הורדת הקובץ ועד שבועיים קדימה)