How to extract text from HTML

איך ניתן לחלץ טסקט מתוך HTML

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

כשניגשתי למשימה, בניגוד לרגיל, לא קבעתי לעצמי מראש מה בדיוק קטע הקוד שאני כותב אמור לעשות, במקום זה התחלתי ממה שהוא וודאי אמור לעשות, ואז שיפרתי עד שקיבלתי את התוצאה שרציתי. בגדול, מה שהפונקציה צריכה לעשות הוא לדלג על כל הקטעים בתוכן שנמצאים בין התו < לבין התו > שאלו הם התגים לדוגמה ב: '<span dir="rtl">abc</span>' יישאר רק 'abc'.

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

קטגוריות: .NET

איך באמת לא חשבתי לקרוא לזה ASWIFT?!

היום נתקלתי בבלוג Google Code במאמר הנושא את השם "Your Web, Half a Second Sooner", דרכו הגעתי לווידאו של הרצאה מרתקת שהתקיימה בכנס Velocity 2010 בה איזה בחור מגוגל סיפר על טכניקה "חדשה" שהם המציאו. הם קראו לה ASWIFT. בקצרה, הם (ואני מדבר על צוות של גוגל) "מצאו" פתרון לטעינת קוד javascript של צד ג' בצורה אסינכרונית (שלא נועלת את הדף עד לסיומה) והרצתם תחת הדומיין של הדף המארח (לצורך עקיפת מנגנון Same Origin). במקרה שלהם זה היה עבור הAdSense.

Velocity 2010: Michael Kleber & Arvind Jain, "Don't Let Third Parties Slow You Down"

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

מה אני לומד מזה? האמת היא – לא יודע. אולי הייתי צריך לקרוא לזה ASWIFT?

קטגוריות: טכנולוגיה
תגיות: ,

שימושיות ואבטחה בLogout

השאלה המתבקשת היא: זה Logout, מה כבר יכול להשתבש?! - אז מסתבר שלא מעט. מדובר בדברים פשוטים וברורים מאליהם עד כדי כך, שפשוט לא חושבים עליהם.

את לינק היציאה (או logout) תמצאו ברוב האתרים על הMasterPage. הלינק מוצג רק למשתמשים שמזוהים באתר ע"י ביצוע כניסה (או login), שכן רק עבורם שייכת פעולה זו. השאלה המעניינת היא, מה מתרחש כשלוחצים על הלינק?

ניתן לממש logout בכמה דרכים:

  • כמטפל לאירוע הClick בCode Behind של הMasterPage עצמו.
  • ע"י הפנייה לדף מיוחד (נקרא לו Logout.aspx) שכל מטרתו היא לבצע logout.

בשני המקרים מתחילים מקריאה למתודה FormsAuthentication.SignOut() שמבצעת עבורנו את השמדת העוגיות וכדו'. עד כאן הכל פשוט. הבעיה מתעוררת בדף שיוחזר למשתמש.

במקרה של מימוש ע"י מטפל אירוע Click בMasterPage יש שתי בעיות פוטנציאליות:

  1. מטפלי האירועים מבוצעים בשלב מאוחר במחזור חיי הדף. ולכן, תכנים רבים שאמורים להיות מוצגים רק למשתמשים מזוהים, עדיין יוצגו בדף בפעם הראשונה שהדף ייטען לאחר הlogout.
  2. היות ומדובר בMasterPage, ייתכן שהדף שממנו בוצע הlogout נגיש למשתמשים מזוהים בלבד. כתוצאה, לאחר הlogout המשתמש יוקפץ מיידית לדף הכניסה (או login)!!

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

קטגוריות: .NET
תגיות: ,