בשעת קידוד, מקודד ה-UTF-8 ממיר את התו המבוקש למספר לפי טבלת יוניקוד ואז, תלוי בערכו של אותו מספר, ממיר אותו למספר הבתים הנדרש. מפענח UTF-8 הקורא קטע שקודד קודם לכן קורא את הבתים, על-פי הסימונים מחליט כמה בתים עליו לקרוא לשם קבלת תו בודד, מוציא מבתים אלה את המספר ואז הולך לטבלת יוניקוד ורושם את התו המתאים.
אם ברצוננו לקודד את התו U+000A שהוא תו הזנת השורה, עלינו רק ללכת לפי אלגוריתם הקידוד ומיד נגלה שכל שעלינו לעשות הוא לכתוב בבית אחד את המספר 0x000A. אם מפענח UTF-8 יתקל בבית 0x000A, מיד ידע שמדובר בבית בודד המייצג תו בודד (הסיבית המשמעותית ביותר היא 0) ואז יבדוק מהו התו U+000A. נשאלת השאלה מה יקרה אם מפענח ה-UTF-8 יתקל באחד מרצפי הבתים הבאים:
נבחן את האפשרות הראשונה, 0xC0 0x8A, ההמרה הבינארית היא 10001010 11000000. הסיביות המודגשות הן הסיביות המכילות את המספר בהצגתו הבינארית, המספר הוא 0x000A ומייצג את התו U+000A ביוניקוד. הליך פיענוח דומה של שתי האפשרויות האחרות יביא לתוצאה זהה. נראה אם כן שניתן להציג תווים מסוימים ביותר מדרך אחת. לכאורה ניתן להציג תווים בדרך המומלצת (והחסכונית) או להציג אותם על ידי שימוש ביותר בתים.
הצגתו של תו על ידי יותר בתים ממה שצריך מכונה הצגתו ב"צורה הארוכה" (Overlong Form). בעבר נעשה שימוש זדוני באפשרות של הצגת תווים בצורתם הארוכה לשם עקיפת מנגנוני אבטחה שונים. תוכנות האבטחה לא פענחו את הקוד לפני הבדיקה אלא ביצעו את הבדיקה ישירות על הבתים המקודדים תוך כדי הסתמכות על אלגוריתם הקידוד המוכר ועל העובדה שכל תו מקודד בצורה הקצרה ביותר. בשיטה זו נעקפו מנגנוני הביטחון של שרתי IIS של מיקרוסופט. השימוש בצורה הארוכה של תווים מנע מתוכנת האבטחה למצוא אותם. עקב כך השימוש בצורות ארוכות נאסר על ידי סטנדרט .
טיפול בקלט לא תקין.
הסטנדרטים המגדירים את UTF-8 אינם מגדירים תגובה אחידה לאופן בו צריך מפענח UTF-8 לנהוג אם הוא נתקל בקלט לא תקין (למשל בית המצהיר על התחלה של רצף של ארבעה בתים ולאחריו בית אחד בלבד, או למשל צורה ארוכה עליה נכתב קודם לכן). קיימות מספר אפשרויות לפיהן יכול המפענח לנהוג:
קיימת אפשרות גם שהמפענח ינהג בצורה שונה כאשר הוא נתקל בסוגי קלטים לא תקינים שונים.
סטנדרט דורש רק שמפענחי UTF-8 לא יפענחו "צורות ארוכות". סטנדרט היוניקוד דורש ש"כל מפענח יוניקוד יתייחס לכל קטע קוד שגוי כשגיאה. זה יבטיח שהוא לא יפרש או יפלוט רצף קוד שגוי".
הטיפול בקלטים לא תקינים חשוב מטעמי אבטחת מידע, כפי שראינו לגבי צורות ארוכות. ישנן שתי אפשרויות לטפל בקלט לא תקין ולשמור על ביטחון המידע: האפשרות הראשונה היא לפענח את קידוד UTF-8 לפני שעושים בדיקות כלשהן (ואז לבצע את הבדיקות על הטקסט המפוענח). האפשרות השנייה היא להשתמש במפענח שבמקרה של קלט לא תקין מוציא הודעת שגיאה או טקסט שהאפליקציה מחשיבה כבלתי מזיק. אפשרות נוספת היא כלל לא לפענח את קידוד UTF-8, אך זה מחייב את התוכנה אליה מעבירים את הטקסט המקודד לטפל בעצמה בקלט לא תקין.
חשיבות נוספת לזיהוי קלטים לא תקינים ודרך הטיפול בהם היא לשם טיפול במקרים של איבוד או השחתה של בתים. אם בית הושחת או אבד והמערכת מזהה מספר לא נכון של בתים המייצגים תו, ביכולתה למזער את הנזק לפגיעה בתו זה בלבד. התעלמות מהבעיה והנחה שכל הבתים מופיעים ללא בדיקה שאכן כל אחד מהבתים העוקבים תואם את הדגם, עלולה במקרה של בית אחד חסר להביא לקריסת הפענוח כולו והשחתה של הטקסט (בניגוד להשחתה של תו אחד).
שימושים במערכות קיימות.
UTF-8 הוא קידוד ברירת המחדל במערכות יוניקס ולינוקס.
שפת התכנות Java תומכת בקריאה וכתיבה של מחרוזות המקודדות ב-UTF-8, דרך המחלקות InputStreamReader ו-OutputStreamWriter. מאידך, למטרות של סיריאליזציה של אובייקטים, שימוש ב-Java Native Interface ולשם הטמעת קבועים בקובצי class, משתמשת Java בגרסה קצת שונה של UTF-8 המכונה UTF-8 משופר (modified UTF-8). ישנם שני הבדלים בין UTF-8 התקני לזה המשופר. הראשון שבהם הוא שתו ה-NUL, שסימונו ביוניקוד U+0000, מקודד באמצעות שני בתים במקום בית אחד בצורה: 10000000 11000000. שינוי זה מבטיח שבעת קידוד המחרוזת לא יוטמעו בה תווי NUL וכך נפתרת בעיית עיבוד המחרוזות בשפות כמו שפת C המשתמשות בתו ה-NUL כסימון לסיום מחרוזת וכל תו NUL מוטמע יביא לחיתוך המחרוזת בטרם עת. ההבדל השני הוא בצורת קידודם של תווים מחוץ למשטח הרב-לשוני הבסיסי. ב-UTF-8 התקני, מקודדים תווים אלה באמצעות ארבעה בתים. ב-UTF-8 המשופר, תווים אלה מומרים קודם כל לצורה של זוגות ממלאי מקום (surrogate pairs), כמו ב-UTF-16 ואז כל אחד מבני הזוג מקודד לבדו והקידודים נכתבים ברצף, כמו ב-CESU-8. הסיבה להבדל זה מעודנת יותר. ב-Java, אורכו של משתנה מסוג תו הוא 16 סיביות. מסיבה זו, חלק מתווי יוניקוד דורשים שימוש בשני משתנים מסוג תו לשם ייצוג הולם. תכונה זו של השפה אינה תואמת את ההתקדמות ביוניקוד וההחלטה לפרוץ את גבולות המרחב הרב-לשוני הבסיסי, אך היא חיונית לשם ביצועים ולשם תאימות לאחור ולכן לא סביר שתשתנה. השימוש ב-UTF-8 משופר מבטיח שניתן יהיה לפענח מחרוזות מקודדות על ידי פיענוח של יחידת קוד של UTF-16 אחת בכל פעם ולא על ידי פיענוח מספר ייצוגי אחד של יוניקוד בכל פעם. השימוש ב-UTF-8 משופר גורם לכך שקידודם של תווים הדורשים ארבעה בתים כאשר משתמשים בצורה התקנית של UTF-8, דורש ב-UTF-8 המשופר שימוש בשישה בתים.
מערכת ההפעלה, Mac OS X, המיועדת למחשבי מקינטוש, מקודדת את שמות הקבצים במערכת הקבצים שלה על ידי שימוש ב-UTF-8 המותאם ליוניקוד מופרד קנונית. לעיתים מתייחסים לגרסה זו של UTF-8 כאל UTF-8-MAC. ביוניקוד, אם ברצוננו לייצג למשל את האות Ä (האות האנגלית הגדולה A עם שתי נקודות מעליה), נוכל להשתמש בתו היוניקוד U+00C4, שהוא בדיוק האות Ä. לחלופין, נוכל גם להשתמש בתו U+0041 שהוא התו A (האות האנגלית הגדולה A) ומיד לאחריו לשים את התו U+0308 שהוא הסימן הדיאקריטי שתי נקודות מעל לאות. בעיקרון תקן היוניקוד קובע חוקים לשילוב סימנים דיאקריטיים. קיימים בתקן תווים מיוחדים הנקראים תווים משלבים (combining characters). כתיבת אות ולאחריה תווים משלבים אמורים להוביל להצגת האות עם הניקוד. מטעמי תאימות לאחור ומסיבות אחרות, חלק מהאותיות עם הניקוד קיימות כתו נפרד ביוניקוד. תווים אלה נקראים תווים מורכבים מראש (precomposed characters) והתקן קובע גם לאילו תווים הם שקולים. יוניקוד מופרד, או מפורק, קנונית הוא יוניקוד שבו נאסר השימוש בתווים מורכבים מראש ולכן חייבים להשתמש בשילוב של אותיות וסימנים דיאקריטיים בכל מקום שבו נחוץ תו עם סימן דיאקריטי. השימוש ביוניקוד מופרד מקל רבות על הליכי מיון אך יוצר בלבול בקרב תוכנות המניחות שתווים מורכבים הם הצורה השכיחה ושילוב של תווים משלבים נעשה רק עבור צירופים מיוחדים. (זוהי דוגמה להגוון ה-NFD לנירמול טקסט). קיים דיון נרחב בנושא במסמך Apple Computer's Q&amp;A 1173.
תורת היחסות הכללית ומכניקת הקוונטים
מוסדות תכנון
מיחזור מתכת
מיחזור מתכת היא פעולה שמטרתה הפיכת המתכת חזרה לחומר גלם עבור התעשיות השונות.
נהוג להבחין בין מתכות ברזליות לאל ברזליות:
מיחזור פסולת פלדה ומתכות ברזליות נעשה במפעלי התכה בתנורים שעובדים בטמפרטורה של כ-1800 מעלות צלזיוס. פסולת המתכת שנאספת מוכנסת לתנור, מותכת ומועברת לתבניות ליציקת מוצרים חדשים.
מיחזור מתכת בישראל.
על פי סקר הרכב אשפה שנעשה בשנת 1995, בישראל המתכות השונות מהוות כ-4% ממשקל הפסולת הביתית. לפי נתוני הלמ"ס, כ-60 אלף רכבים יוצאים משימוש מדי שנה, אלו שווים בהערכה גסה, לכ-40 אלף טון מתכת. לפי דיווחי מפעלי המיחזור מכוח חוק הפיקדון על מכלי משקה מוחזרו מעל 170 טון מתכת מפחיות בשנה. לכמויות אלו יש להוסיף פסולת לבנה (מקררים, מכונות כביסה), מכונות, פסולת ברזל מבניין ומתכת מהתעשייה שמשקלן רב וקשה להעריך את כמותן באופן מדויק.
בשנת 2002 דווח למשרד להגנת הסביבה על איסוף של כ-290 אלף טון מתכת ברזל להתכה וגריסה על ידי שני מפעלי המיחזור הגדולים (יהודה פלדות בע"מ אשר ממוקם באשדוד וחוד אסף תעשיות בע"מ אשר ממוקם בעכו), מתוכם כ-70 אלף טון מתכת ברזל יוצאה לחו"ל. בשנה זו מוחזרו כ-40 אלף טון אל-מתכות.
מיחזור גזם
פיוטר (פטר) איליץ' צ'ייקובסקי
חשישיון
חשישיון (בערבית: الحشاشون או الحشاشين או الحشيشية, החשישיים) היה מסדר של ניזארים (אחת הקבוצות של הפלג האסלאמי איסמאעיליה) בעיקר מפרס ומסוריה, שנוסד בשלהי המאה ה-11. המסדר הציב איום צבאי על שלטונה של השושלת הסלג'וקית בשטחי ממלכת פרס, באמצעות השתלטות על מבצרים רבים, בהנהגתו של חסן-י סבאח.
אנשיו נודעו באכזריותם ובמנהגם לחסל את אויביהם הפוליטיים והדתיים (בעיקר מוסלמים). התפרסמו בעולם בעיקר בשל המיתוסים שדבקו בהם.
אטימולוגיה.
טעות נפוצה היא שמקור השם חשישיון מהמילה חשיש, כלומר מעשני חשיש, ככינוי גנאי שהוצמד לקבוצה על ידי מתנגדיה. השימוש המתועד הראשון בשם היה על ידי הח'ליפה הפאטמי העשירי "אל עמיר", במכתב משנת 1123 הוא כינה את הניזארים הסורים "החשישיה" (حشيشية). הכינוי חשישיה במקורות המוסלמים משמש ככינוי גנאי כללי, ללא קשר לחשיש. כינוי זה נפוץ בקרב היסטוריונים אנטי-איסמאעילים ולאחר מכן באירופה בעקבות חיכוכים צבאיים בין ניזארים וצלבנים, שמתעדיהם אימצו גם הם את הכינוי.