API לזיהוי פנים

בתקופה האחרונה עבדנו קשה בface.com על API פתוח למציאה וזיהוי פנים, ואתמול בערב השקנו אותו.
זיהוי פנים מורכב מכמה שלבים:
השלב הראשון הוא למצוא אוטומטית היכן בתמונה יש פנים, או face detection.
השלב השני הוא להשוות את הפנים שנמצאו למודל (או מודלים) שהכינונו מבעוד מועד של מי שאנחנו רוצים למצוא. (face recognition)
השלב המקדים הוא להכין את המודל, ובשביל זה צריך לתת דוגמאות אימון של אותו אדם למערכת (traininng).
הAPI תומך כרגע בשלוש קריאות שמתאימות לשלושת השלבים האלו ובעוד כמה קריאות עזר כמו שמירה ואיחזור של טאגים וכו'.
כמובן, יש שימושים רבים למציאת פנים שלא מערבים זיהוי.

אפשר להתנסות בכל מה שיש לAPI להציע בלי לכתוב שורת קוד דרך הAPI Sandbox.
יש באתר כמה דוגמאות לשימוש בAPI, כולל ווידג'ט לתיוג פנים בתמונות, ואפליקציה שמחפשת תמונות של מפורסמים בטוויטר.

שחררנו ספריית PHP וספריית JavaScript, אבל זה לא יהיה קשה לכתוב ספריות בשפות נוספות (הAPI מבוסס HTTP, והתשובות חוזרות כJSON או XML).
תתפרעו 🙂

נ.ב:
יש מגבלה של 200 בקשות זיהוי/מציאת פנים לשעה לAPI KEY, זה בטוח מספיק להתנסות וגם לרוב השימושים, יש עוד מידע פה.

דרכון קנדי ב20 דקות, או : VPN לכל שרת

אחד המשחקים המצופים של השנה – Dragon age: Origins – יצא לפני אתמול, ואחרי שראיתי את הציונים והביקורות שהוא קיבל החלטתי לקנות אותו.

חיש מהר קניתי אותו בSteam, חנות המשחקים שלValve.
בזמן שקניתי אותו היה נראה כאילו אני מבצע הזמנה לפני שהמשחק יצא (Pre order), אבל מה שקורה בדרך כלל זה שאפשר להוריד את המשחק מראש, וברגע שהוא משתחרר (מה שהיה אמור להיות אתמול) קבצי המשחק המוצפנים עוברים תהליך של פענוח ואז אפשר לשחק.
אבל מה? מסתבר שבארצנו הקטנטונת – וגם באירופה, המשחק ישוחרר רק ביום שישי או שבת.
סתם כדי להתעצבן, בדקתי באתר הטורנטים הקרוב לביתי, ואכן – המשחק כבר שם.
שלחתי אימייל לתמיכה של Valve, בו מחיתי על כך שהם מסרו מידע שגוי שגרם לי ולאחרים לקנות את המשחק ולהצטער.
אז המשחק כבר אצלי, מוצפן – ושילמתי עליו, אבל מסיבות עלומות ומציקות אני לא מורשה לשחק בו למרות ששחקנים אחרים בעולם כן.
מעצבן מספיק כדי לפעול.
משתמשים בפורום של Steam כתבו שהם הצליחו לשחק אחרי שהתחברו לSteam תוך שימוש בVPN שמחובר לארצות הברית.
חיפשתי קצת, ולא מצאתי משהו שלא ביקש ממני כרטיס אשראי בשביל לנסות, אז חשבתי לעצמי:
השרת שמריץ את הבלוג נמצא בקנדה, רוב הסיכויים שהמשחק שוחרר בקנדה באותו תאריך כמו בארצות הברית.
החלטתי להרים שרת VPN על השרת בעזרת ההוראות פה.
ההוראות פשוטות למדי, אבל במקום לאתחל את השרת כמו שהם הציעו אחרי ההגדרות הפעלתי מחדש את pptpd:
[code]
/etc/init.d/pptpd restart
[/code]

כדי להפעיל את קידום הפקטות בקרנל בלי לאתחל, הרצתי את:
[code]
echo 1 > /proc/sys/net/ipv4/ip_forward
[/code]

פתחתי חור TCP בפיירוואל בשרת בפורט 1723, שהוא הפורט הסטנדרטי של העניין הזה, וכמובן בחרתי סיסמא חזקה עם gpw שמייצר סיסמאות שאפשר להגות (Generate pronounceable passwords), ניסיתי להתחבר דרך מכונת המשחקים שלי שמריצה חלונות 7 (מערכת מומלצת), והעסק התחבר בלי בעיה.
בדקתי את כתובת הIP שלי בwhatismyip.com ולשמחתי ראיתי שהיא הכתובת של השרת.
הפעלתי מחדש את Steam, נכנסתי מקנדה – והפלא ופלא, בתור קנדי הצלחתי להפעיל את המשחק.

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

Google Wave

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

וויב

  • אפשרות לפצל שיחה לכמה קווי שיחה בקלות (Threads)
  • צ'אט חי, כמו בימי הבבסים (רואים מה האדם השני מקליד בזמן שהוא מקליד).
  • אפשרות לחבר אדם נוסף לשיחה בדיעבד על ידי הוספה שלו למשתתפים, הוא יוכל לראות את השיחה מההתחלה, כולל באמצעות מצב ניגון שמנגן את השיחה בשבילו צעד אחר צעד כאילו הוא השתתף בה מההתחלה.
  • אפשרות להגביל גישה להודעות למשתתפים מסויימים (מסרים פרטיים)
  • תמיכה בגרור וזרוק כדי להצמיד תמונות (וקבצים באופן כללי) להודעות, נכון לכרגע זה דורש גוגל gears, אבל הכוונה היא לדחוף את היכולת הזו בהצעה לHTML 5.
  • אפשרות לשתול שיחה בקלות בתוך בלוג (Embed), מכיוון שהשיחה מאוכסנת בשרת מרכזי זה לא משנה אם מגיבים מהבלוג אם מתוך Wave, היא תשאר שיחה אחת.
  • כל שיחה יכול להיות בעצם מסמך משותף שכל המשתתפים תורמים לו, בדומה לוויקי, כולל פיצול ואיחוד של גרסאות (Branch and merge), כולל עריכה חיה (כמו הצ'אט החי) על ידי כמה משתתפים במקביל.

הרחבות

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

פרוטוקול

  • ההצלחה של אימייל נובעת מכך שהפרוטוקול פתוח וכל אחד יכול להריץ שרת דואר שידבר עם כל שרת דואר אחד בפרוטוקול SMTP, שמוגדר היטב וברור לכל.
  • וויב יעבוד בצורה דומה. הפרוטוקול יהיה פתוח, ובנוסף גוגל ישחררו את כל הקוד של השרת כדי לאפשר לכל אחד שרוצה להריץ שרת וויב שידבר עם שרתי וויב אחרים בצורה שקופה למשתמשים (כמו Jabber).

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

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

מלחמת השועלים

בין שתי הרחבות פופולריות לפיירפוקס התחילה מלחמה קטנה:
מצד אחד, אדבלוק פלוס חוסם פרסומות להנאתו, מצד שני – נוסקריפט חוסם ג'אווה סקריפט מאתרים לא מורשים.
איזה סיבה כבר יכולה להיות למלחמה בין שתי הרחבות כאלו, ששתיהן עובדות לטובת המשתמש?
מסתבר שהמפתח של נוסקריפט מנסה להרוויח מפרסום, והוא עושה את זה על ידי שהוא מפנה משתמשים לדף הchangelog אחרי כל עדכון קטן, וכמובן שהדף מלא בפרסומות.
עד כאן לגיטימי בעולם האינטרנט.
אבל מה? רוב הפרסומות עובדות על ג'אווה סקריפט, ונוסקיפט חוסם ג'אווה סקריפט.
אז מה עושים?
כמובן – מוספים את אתר נוסקריפט אוטומטית לרשימה הלבנה של נוסקריפט.
צעד קטן לנוסקריפט, צעד קטן לרוע בעולם.
מדוע? כי אחרי הפתרון הזה, המפתח של נוסקריפט ראה שעדיין הוא לא מרוויח יותר מדי מפרסומות, והסיבה היא כמובן אדבלוק.
משתמשי נוסקריפט הם משתמשים מנוסים אם לא פרנואידים, ורובם מתקינים גם את אדבלוק פלוס.
אז מה עושים?
מוסיפים את נוסקריפט גם לרשימה הלבנה של אדבלוק.
צעד קטן לנוסקריפט, צעד בינוני לרוע בעולם.
זה קרה לפני שנים, ובינתיים מפתחי אדבלוק פלוס די התעלמו כי היו להם מספיק דברים אחרים לעשות.
לאחרונה הם הוסיפו את האתר של נוסקריפט לרשימה באופן מפורש (כאמור – מטרתו של אדבלוק היא לחסום פרסומות), והתחילה מלחמה קטנה שבה נוסקריפט ניסתה לגרום לפרסומת שלה להראות, ואדבלוק עדכנה את הפילטרים.
לפני כמה שבועות מפתחי אדבלוק התחילו לקבל הודעות על התנהגות מוזרה של אדבלוק כאשר מותקנת הגרסא האחרונה של נוסקריפט.
בבדיקה – מפתח אדבלוק פלוס גילה שנוסקריפט הורחבה עם קוד מעורבל (Obfuscaetd) שנועד לנטרל חלקים מסויימים מאדבלוק.
צעד קטן לנוסקריפט, צעד גדול לרוע בעולם.

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

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

hak5

כרגע ראיתי פרק של hak5, שעסק בDNS Tunneling כדי לגלוש בחינם במקומות עם WIFI סגור שמאפשרים DNS, וכן LinuxDNA – פרוייקט לאופטימיזציה של הקרנל של לינוקס עם ICC (הקומפיילר של אינטל).
אחלה תוכנית.
נראה לי שאני אתחיל לצפות בה באופן קבוע.

TL2RSS חזרה לחיים

כהרגלם בקודש, מנהלי טורנט-ליץ' הפסיקו עוד פעם לספק פיד RSS של הטורנטים האחרונים.
בפעם האחרונה שהם עשו את זה – לפני כשנה – כתבתי תוכנה שעושה את זה במקומם, הוחרמתי מהאתר לכמה ימים, ובסוף הם הבינו שהם עושים שטויות והפעילו את החשבון שלי.
אחרי כמה שבועות הRSS חזר, ובמקביל הם שמו שם קפצ'ה בכניסה שדפקה את התוכנה שכתבתי.
מכיוון שהם החזירו גם ככה את הRSS, החלטתי לעזוב את זה, ולא נגעתי בתוכנה שוב.
לא נגעתי בה שוב עד שהם עוד פעם הפסיקו לספק RSS, בהתחלה חשבתי שזו תקלה. הם טובים בתקלות עם הRSS. גם כשהוא עובד הוא לא עובד לפעמים.
אחרי שבועיים שלושה, שבהם הם לא הגיבו לשאלות בנושא, החלטתי להחיות את TL2RSS, ובבוקר קצר אחר תיקנו אותו כך שיעקוף את הקפצ'ה:
פשוט, במקום להכנס עם שם משתמש וסיסמא, עכשיו היא נכנסת עם SESSION ID שהמשתמש משיג בעצמו כשהוא עובר את הקפצ'ה.
שחררתי גרסא חדשה באתר הפרוייקט, ולפחות בשבילי התוכנה עובדת היטב.
לא ראיתי יותר מדי משתמשים לתוכנה, אבל ביננו, כתבתי אותה בשבילי.
מי שרוצה, יכול לקחת מהבלוג של הפרוייקט.

ואנא, אל תטרחו לבקש הזמנות לטורנט ליץ'. אין לי.

DealExtreme

חבר הראה לי אתה מעניין לפני כמה חודשים: DealExtreme.

למרות השם הנדוש, האתר נראה מבטיח במיוחד:
מה שמיוחד בו הוא שקודם כל אין בו דמי משלוח לשום דבר.
אתם יכולים להזמין אוזניות לאייפוד ב$1.90 ולקבל אותם בדואר בלי דמי משלוח.

לא יצא לי להשתמש בו עוד עכשיו, אבל לפני כמה ימים החלטתי לנסות והזמנתי מהם כמה גדג'טים:

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

שווה בדיקה.

שרת דואר חדש

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

אם לשפוט על פי התאריך של ההודעה הישנה ביותר בשרת הדואר שלי – את שרת הדואר שרץ בסלון הגדרתי בספטמבר 2005, מאז שדרגתי את המחשב שלו שלוש פעמים, אבל שרת הדואר נשאר וצבר דואר לרוב.
גם בפעם האחרונה השתמשתי באותו בהוראות מworkaround, אבל מאז הטוטוריאל השתנה כמובן, לא שזה מאוד משנה כי אחרי שלוש וחצי שנים לא ממש זכרתי איך זה הולך.
אחד הדברים שלא הוזכרו שם הוא שההודעות נשמרות בתיבת הדואר כקבצים – והשם שלהם מכיל את שם המכונה המקומית.
מכיוון שהשם של השרת השתנה, הייתי צריך לשנות את השמות של עשרות אלפי הקבצים מקבצים עם שמות כמו:
[code]
1234429393.V832I86d1dfM880219.home.firefang.net:2,RS
[/code]
לקבצים עם שמות כמו:
[code]
1234429393.V832I86d1dfM880219.flux.firefang.net:2,RS
[/code]

הדרך לעשות את זה בקלות היא בעזרת קומבינציה של find וmmv.
השמשתי בfind כדי למציא את כל הספריות ולהפעיל על כל ספריה פקודת mmv שתסדר את שמות הקבצים:
[code]
find -type d -exec mmv "{}/*home.firefang.net*" "{}/#1flux.firefang.net#2" \;
[/code]

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

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

  • גישת SHELL
  • מספר בלתי מוגבל של דומיינים וירטואליים באפאצ'י
  • מספר בלתי מוגבל של בסיסי נתונים בMySQL 5.
  • נפח אכסון די עצבני (יש דיסק של חצי טרה שם, וכרגע כולל גיבויים מקומיים רק 41GB בשימוש, אז משתמשים יכולים להתפרע במסגרת הטעם הטוב).
  • גיבויים שוטפים, מקומיים ומרוחקים.
  • דואר לדומיינים, כולל מספר בלתי מוגבל של תיבות דואר.

מי שמעוניין יכול לפנות במייל (omry a@t yadan.net).

העוקץ העיראקי

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

I want to move my family out of Iraq due to violence and I want to transfer
$12,500,000 to you.reply