יום שני, 22 בדצמבר 2008

SVN - לא עובדים לבד

SVN, ראשי תיבות של Social Venture Network, זו שיטה לשליטה על תקיות בצורה מרוחקת ומשותפת, שמאפשר לך לנהל עם אנשים אחרים את הפרוייקטים שלכם גם כשאתם רחוקים, בלי שתתנגשו אחד בשני, ולהעלות שינויים רק כשהם מוכנים. הזכרתא ת SVN כבר באשכול שבו סיפרתי לכם על עורך ה-PHP שהתקנתי, וכעת הגיע הזמן לסכם גם את SVN ואת ההתרשמות שלי ממנו.

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

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

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

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

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

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


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

יום שני, 1 בדצמבר 2008

המדריך להמנעות מהודעות ספאם

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

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

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

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

להטל ברובוטים במגרש שלהם
במידה ויש לפרסם בפומבי, נסו לצנזר את הדואר האלקטרוני בצורה שלא תאפשר לרובוטים לקרוא אותו:
user [at] domain [dot] com
בצורה זו הרובוטים לא יוכלו לקרוא את הכתובת הרשומה, אך המשתמשים העצלנים יותר וחסרי המוטיבציה לא ינסו לפענח את הרשום, ועל כן יש להשתמש בדרך זו רק כאשר הדבר נדרש וברור מאליו שהצד השני רוצה ליצור איתכם קשר ולא משנה מה.
בנוסף יתכן כי משתמשים שירצו לשלוח לכתובת יטעו בפיענוח, יוסיפו בטעות רווח או ישמיטו בטעות אות, ועל כן לא ניתן להיות בטוחים בדרך זו כי כל ההודעות אכן מגיעות אליכם.

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

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

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

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

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

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

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

בתחילה פותחים חשבון שישמש כמקבל ההודעות, ואז פותחים חשבון נוסף, בו עליכם להיכנס להגדרות ולבחור בטאב "העברה ו-POP/IMAP".
כעת שהינכם תחת טאב זה, יש לשנות בשדה "העברה לנמען" את הסמן לבחירת "העבר עותק של דואר נכנס", לבחור מוען, ומה יקרה לדואר לאחר השליחה.
בדרך זו הדואר עובר מידית לכתובת אותה אתם רוצים.
שימו לב: דואר שהוגדר כדואר ספאם ועל כן מופיע במחיצת "דואר זבל" לא יעבור לכתובת שהגדרתם, וימחק בעצמו תוך 30 יום.

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

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

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

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

המשך גלישה נעימה וחסרת ספאם.

יום שני, 24 בנובמבר 2008

האינטרנט כרשת מולטימדיה

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

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

שימוש במולטימדיה דורש משאבים רבים ומעבד חזק שמסוגל לעבד את המידע.

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

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

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

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

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

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

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

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

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

עד כאן על מלוטימדיה מזויית הראיה שלי.
המשך גלישה נעימה.

יום שני, 17 בנובמבר 2008

מה שמאחורי האתר

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

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

שפה לדוגמא השייכת לצד שרת היא PHP, בה משתמשים כיום בלא מעט אתרים.

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

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

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

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

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

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

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

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

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

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

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

המשך גלישה נעימה ופיתוח פתוח.

יום שבת, 1 בנובמבר 2008

יומהולדת + פרוייקט נגישות לבעלי מוגבלויות

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

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

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

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

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

מה לנו משתלם מזה?
למרות שהיה קשה לי להאמין למספרים, שנשמעו לי מופרכים במיוחד, אבל התברר לי שנוכל לזכות ב-25% מהאוכלוסייה שלא מסוגל לגלוש, ועוד כ-37% אחוז שמתקשה להקל עליו זאת.
מלבד הנתון הזה שנשמע לי דיי גבוה ומופרך, נוספת טענה שאתר נגיש מגדיל את כמות הכניסות שלו ממנועי החיפוש ב-8 עד 14 אחוזים, מה שאמור כנראה לפנות ללב של מקדמי האתרים להשפיע על מפתחי האתרים ובעלי האתרים לתמוך בזה.

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

עדיפויות לנגישות
קיימות 3 עדיפויות לתאימות.

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

עדיפות שניה - הרמה הזאת קוראת ממש להשתמש בתקני W3C כמה שיותר מעודכנים, והיא פריקית (לדעתי) של נוחות למשתמש הרגיל והתחשבות במשתמשים שלכם.
אני כנראה נוטה ליישם אותה כברירות מחדל, כי מלבד המלצה אחת שגם בנוגע אליה החלטתי לא מזמן שאני רוצה יישום, כל השאר עשיתי תוך אמונה שזה מה שהכי נוח למשתמשים.
ניתן למצוא מכל מיני המלצות שלדעתי טובות לכלל המשתמשים, כמו למשל אתר שלא מחייב JS (נעשה באמצעות אירוע onclick בקישורים שמחזיר ערך שקר כדי לבטל את הקישור עבור אנשים שמפעילים JS), או לא להתבסס על מסמכי CSS תוך בניית העמוד בצורה הגיונית למי שמכבה מסמכים אלו, ואף הגדרת גודל יחסי ולא אבסולוטי (לדוגמא שימוש באחוזים).

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

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

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

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

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

אז מזל טוב לי, והמשך גלישה מהנה.

יום שישי, 24 באוקטובר 2008

Spore - אבולוציה במשחק אחד

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

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

מתחילים לשחק
בתחילת המשחק תבחרו את מראה היצור, שמו, ואם הינו טורף או צמחוני (בחירה אשר תשפיע על דמותכם כבר עם תחילת המשחק).
את תחילת המשחק אתם תעברו מול עורך SPORE, בעל השם המוצלח, אשר מאפשר לכם בקלות ובמגוון דרכים ליצור את
דמותכם.

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

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

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

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

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

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

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

תשדרגו, ותתכוננו להתפתח לשלב הסיוויליזציה.

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

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

חלק יחשיבו את שלב זה לשלב המעניין ביותר, למרות שדעתי היא שהתמקדות ביצור עצמו וגידולו היא החלק העיקרי במשחק.

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

יום שני, 13 באוקטובר 2008

תואר בתוכנות לבניית אתרים

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

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

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

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

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

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

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

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

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

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

מה אתה מעדיף?
מתוחכמת ככל שתיהיה, התוכנה לא השאירה בי עדין דיי רושם, והחלטתי לגשש בין ההגדרות כדי לראות מה באמת היא מאפשרת לי, וכמה ניתן למתוח את הגבול.
מיד עם פתיחת האפשרויות יכולתי להגדיר ככל העולה על רוחי, וההגבלות היו מעטות ביותר:
החל מקידוד תווים, ומה לעשות בתפריט ההתחלה, ועד לפרטים הקטנים כמו צבע או השלמה אוטומטית אותה אני רוצה, ובדרך אפילו לבחור את התקן בו אני כותב (לצערי לא קיים XHTML1.1, אבל התקן דומה לתקן הנוקשה של XHTML1.0, מה שמאפשר בקלות לעקוף את הבעיה).

בין האפשרויות מצאתי אפשרות יעילה במיוחד של לחבר את העורך לשרת PHP שממוקם אצלי במחשב, ואף בעזרת התוכנה להפעיל את יישומי השרת, לכוון את ה-DEBUG לעבוד על פי ההגדרות המוצבות באותו שרת, ואפילו לצפות בדף הישר מתוך העורך, והכל על פי השרת שממוקם אצלי במחשב וכבר מוגדר להעדפות שלי.

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

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

האפשרות של הפרוייקטים נשמעה לי יעילה, אבל אז החבר שהתקין יחד איתי את התוכנה החליט לספר לי על SVN, אפשרות לניהול פרוייקטים בקבוצות, הצגת מקור והדרך הטובה ביותר לנהל קבוצה סביב פיתוח אתר.
אבל זה לא בא בקלות, נדרשתי להתקין TortoiseSVN, תוכנה שאמורה ליצור קשר עם השרת לפי מה שהבנתי, ושניתן לחברה לתוכנה phpDesigner, אבל בין זה לבין לפספס את האפשרות של ניהול פרוייקטים מקיף אין ממש התלבטות, ולאחר ריסטרט וגילוי כי ההגדרות שלי נמחקו ועשייתן מחדש ובצורה יותר מבוקרת שוב הכל פעל 0והפעם שמר לי את ההגדרות).

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

האם אני אדבוק בה? ימים יגידו, ובינתיים ההתרשמות שלי ממנה דיי חיובית.

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

יום שישי, 3 באוקטובר 2008

הילד שצעק "תקנים תקנים"

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

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

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

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

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

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

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

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

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


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

דוגמא יפה היא המהירות של עליית הדף, ויבואו כמובן אנשים שיגידו שעדיף לפתח אתר בעזרת תוכנות, להשתמש בטבלאות ולא לתמוך בתקנים אבל ככה זמן הפיתוח יהיה מהיר יותר, אבל הם לא תמיד חושבים על הטווח הרחוק, שאומר שהם יוכלו לשכור שרת זול יותר, שיהיה יציב יותר כי המשתמשים צריכים פחות תעבורה.
כמובן שגם בפחות תעבורה יבואו אותם אנשים וגידו שבעידן ה-10 מגה אינטרנט אין לתעבורה משמעות, אבל בינתיים נראה שמנוע החיפוש גוגל התחיל להתחשב בזמני עליה (לא בטוח כמה השמועה נכונה), וחוץ מזה ממתי שרת יציב יותר ופחות תעבורה היו לא הכרחיים?

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

המשך גלישה לא אדישה לכולם.

יום שני, 29 בספטמבר 2008

אין לי זמן

כולנו אומרים את זה, כולנו נגיד את זה, אבל אף אחד כמעט לא באמת מתכוון לזה.

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

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

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

המשך גלישה מהנה, חג שמח ושנה טובה.

יום שישי, 12 בספטמבר 2008

אומנות הכתיבה

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

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

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

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

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

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

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

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

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

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

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

הרחבה ומריחה OUT

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

כתיבה לסוג קהל מסוים

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

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

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

כתיבה למישהו

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

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

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

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

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

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

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

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

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

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

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

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

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

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

כתיבה מהנה.

יום ראשון, 7 בספטמבר 2008

עובדים ולומדים - אל תצאו פראיירים

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

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

*בהשראת המאמר טיפים לעבודה ולימודים ביחד*

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

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

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

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

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

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

שעות עבודה - זמן זה כסף!
למרות שנהוג להעריך את סכום העבודה, הרבה פעמים אנשים אומרים לעצמם במתכון קבוע לכאב ראש שאם זה מערכת סקרים זה בטח לא שווה יותר מ-150 שקל, אז תנו לי לחדש לכם: אתם לא חייבים לעבוד בצורה כזאת!
למה משלמים לאדם שעובד במקום מסודר עבור שעות ואתם תעבדו על פי סכום גלובאלי? לא נראה לכם קצת לא הגיוני?
הפתרון לעניין הוא פשוט לדעת כמה אתם שווים, ולסכם עם הלקוחות שאתם לוקחים פאר שעה (עדין תאלצו להעריך כמה שעות אתם עובדים, אבל ככה הסכום שתקבלו לא יהיה גובל בסכום גלובאלי בכל מצב), כאשר להעריך כמה אתם שווים לשעה זה בהחלט המפתח כאן.

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

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

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

שעות עבודה ולימודים
בניגוד לסטודנטים ולאנשים שעברו את המבחנים האלו, לכולם אכפת אם קיבלתם 75 או 90 בבגרות בהיסטוריה, גם אם זה לא ממש קשור למקצוע, זה עדין נראה מעולה על הדף, וכאן אין להתבלבל, הבגרות הולכת לתפוס המון זמן מחייכם (אלא אם תטוסו לחו"ל ותפתחו חברה בת של גוגל שלאחר מכן תפרד מגוגל ותגרום למפלתה, אבל עד אז יש זמן), וגם הציונים הטיפשיים ילוו אותכם כנראה לתקופה לא מבוטלת בעתיד, וכאן אין תחליפים, חייבים להשקיע:
  1. אל תעבדו בתקופות מבחן, ואם יש לכם לקוחות או רשימת המתנה, רצוי ליידע אותם שבתקופה מסויימת אתם לא עובדים.
  2. אל תחשיבו שעות עבודה כשעות לימודים, כבר ראיתי בני נוער שעושים את השטות הזאת, וזה רק הכעיס את המעסיק שלא היה מוכן לשלם את הסכום, ובצדק (נשמע ממש הזוי לעשות את זה).
  3. אל תתנו ללקוחות להחליט בשבילכם,, ובלי הנחות, שלא ינסו לרמאות אותכם בגלל הגיל, ושלא יורידו את מה שמגיע לכם.
למען אלו שלא מבינים איפה זה גובל:
[!] מבחנים, עבודות, בחנים, כל אלו לפני זמן עבודה, אל תדחו אותם, גם אם זה אומר שתסיימו את הפרוייקט עליו אתם עובדים אחרי הזמן שנקבע עם הלקוח.

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

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

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

בהצלחה לכל העובדים החדשים, ושנה טובה.

יום רביעי, 3 בספטמבר 2008

אל תחסמו לי את האפשרויות

בלא מעט אתרים אני מוצא את בעל האתר מחליט להתחכם ולחסום לי לחיצה על לחצן ימני, על ctrl, ניסיון נואש למנוע ממני לראות את המקור, ועוד טריקים כאלו ואחרים, כאשר מטרתם ברורה: אל תעתיקו לי מידע.

עם זאת, לדעתי הצעד הזה אינו נכון, כיווןש הוא פוגע לרוב במשתמשי האתר, ומבריח אותם, ומכאן שאם אין גולשים, אין מי שיעתיק מידע, ואין מי שיקח את האתר ברצינות.
ובכל זאת, נגרמות לא מעט תופעות בעקבות הניסיונות הנואשים:
  1. כמות הקוד מול התוכן עולה => פגיעה בקידום האתר.
  2. האתר מונע מגולשים תמימים לגלוש בו בנוחות.
  3. מי שבאמת ירצה את המידע מאלא יוכל להשיגו (לי למשל יש תוכנה שמשחררת לי את קוד המקור לאחר השינויים והרצת ה-JS ברגע שביקשתי ממנה, מה שהופך את הניסיון לממש לא יעיל וסתם מציק).
  4. הרבה פעמים ניתן לעקוף את זה כשרוצים בלי הרבה בעיה.

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

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

יום שישי, 29 באוגוסט 2008

מתחילים ללמוד קידוד

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

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

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

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

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

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

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

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

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

טיפ 1 - ולידטור כתיבה נכונה:
פה ראיתי פחות מודעות לכתיבת CSS נכונה מאשר למודעות של תקני ה-HTML וה-XHTML השונים, דבר שלצערי מצער מאוד.
כתיבה נכונה של CSS יכולה למנוע באגים או תופעות בלתי נעימות שקורות עקב התנגשות של פקודות שונות, דבר שיעזור לבטל את התסכול שנוצר וחוסר ההבנה למה אלמנט לא מגיב כמו שרציתם.
כשאתם מריצים בוליטור CSS את הקוד, רצוי לשנות את הערך ב-warnings לערך All, ובכך לקבל תמונה שלמה הכוללת המלצות שיכולות לעזור למנוע באגים בהמשך הפיתוח.

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

טיפ 3 - הכינו את ה-HTML לפני:
הרבה פעמים CSS גורם לשינויים מסויימים, אבל זה לא חייב להיות ככה, והכרה של CSS לעומק מספקת את כל הדרוש לכם כדי לקודד אלמנטים כפי שהינכם רוצים.
הכנה מראש של מסמך ה-HTML בידיעה שהכי הרבה שתשנו זה את ה-CLASS של האלמנט (פרט למקרים קיצוניים) בהחלט יעזור לכם לקודד ביתר קלות, ועם זאת להעניק לכל טקסט את האלמנט אותו הוא דורש, בלי למלאות את הדף באלמנטים רבים נוספים, שנוצרו רק לצורך CSS.

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

למי שיש טיפים נוספים יכול להציע אותם בתגובה, ואני אשקול האם להוסיפם.
המשך גלישה מהנה.

יום שני, 25 באוגוסט 2008

יצירת תפריט לאתר

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

המשך גלישה מהנה.

יום שישי, 22 באוגוסט 2008

OneNote - ההברקה של מייקרוסופט

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

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

קניית Office Home and Student 2007 וההתקנה
לפני פחות משבוע אבא שלי הניח על הטלוויזיה בלילה קופסא, שעל גביה נכתב Office Home and Student 2007, ובאה לאפשר לי להפסיק להתלונן על האופיס המפגר, ולהתקין אצל אחי אופיס (מתברר שלא היה אצלו).
ואכן, יום למחרת כשחזרתי מהעבודה, הדלקתי את המחשב, ובלי לחשוב פעמיים מחקתי את האופיס מהמחשב והכנסתי את הדיסק לכונן ה-DVD, ולא קרה דבר.
החלטתי שמייקרוסופט לא מתקדמים מידי והכנסתי את הדיסק לכונן הטקליטורים הרגיל (שמתפקד בזמנו החופשי כצורב), ואז הופיעה לפני התקנה של האופיס, שעברה בצורה חלקה במיוחד.

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

OneNote - מי צריך מחברות אמיתיות?
מדובר על אחת התוכנות היותר מרשימות שניגלו אלי, ונורא היה קשה לי להאמין שהייתה גרסה 2003 עליה כלל לא שמעתי (חשבתי שהאופיס 2003 שלי כלל כל תוכנה שמייקרוסופט יכלו להמציא, מתברר שטעיתי).
התוכנה מאפשרת לנהל מחברות וירטואליות, כשכל אחת כוללת מקטע (או בימינו - לשונית, ומחוץ למחשב - חוצצים) חדש, דפים השייכים לאותו מקטע, וסאב דפים (דבר שבמציאות לא אפשרי ממש, וכעת ניתן לביצוע בצורה דיי מהירה ומיידית).

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

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

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

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

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

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

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

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

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

המשך גלישה מהנה.

יום שני, 18 באוגוסט 2008

שינויים בבלוג

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

שינויים בבלוג
  • ארכיון הבלוג:
    • שינוי בתצוגה של הארכיון.
    • הארכיון כעת מציג את השנים, את החודשים, ואת שמות הפוסטים של אותו חודש.
    • נוספו נקודות שמצהירות על שם פוסט חדש (דבר שנורא חסר לדעתי וצריך להיות בברירות מחדל).
  • תגובות:
    • לחיצה על התגובות בעמוד הראשי ובדפי הארכיון מעבירה לתגובות בעמוד הפוסט.
    • הוצאתי את הריבוע הכתום מצד שמאל של התגובות בעמודי הפוסט.
    • לחיצה על תאריך התגובה בעמוד הפוסט מעביר לתגובה באותו עמוד (במקום ליצור כתובת מיוחדת לדף כמו קודם).
    • לחיצה רגילה על "הוסף רשומת תגובה" פותח חלון POPUP שמאפשר הוספת תגובה ותוכן מינימאלי.
    • לחיצה לפתיחה בחלון חדש / טאב על "הוסף רשומת תגובה" פותח את העמוד כפי שהיה בעבר (שמה ניתן לעיין בפוסט בעיצוב מינימאלי).
ביצוע השינויים
אני חייב להשמיץ את Blogger במקרה הזה, כיוון שהוא לא נתן שום כלי נוח ויעיל לביצוע השינויים, ואפילו דפי המידע לא עזרו, ומצאתי את עצמי מפתח טכניקות משלי, ולא בהכרח טובות, כדי לעקוף את הבלוג האכזר שמגביל אותי באפשרויות, ולבצע את מה שאני רוצה כפי שאני רואה לנכון.

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

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

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

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

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

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

למי שיש רעיונות, הצעות, הארות לבלוג, זה הזמן!
המשך גלישה מהנה.

יום שישי, 15 באוגוסט 2008

XML - מה זה?!

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

מה זה XML
אני הולך לנפץ לרבים את הידיעה שלהם כאשר אני מגדיר כי XML זו אינה שפה (ובטח שלא שפת תגיות), ואין להתייחס אליה באופן הזה.
XML (ראשי תיבות של eXtensible Markup Language) זה אוסף של חוקים, הנקבעו על ידי W3C (כנראה שלא עזבנו אותם למרות הכל).

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

XML מול HTML, מה כדאי?
למי שטועה, HTML נועד לבניית אתרים ונבנה בדומה לתקני ה-XML (אך לא בדיוק), ולכן קיימת עדיפות לשימוש בו על פני XML.
לעומת זאת מי שמכיר את XML מכיר את המהירות והיעילות, ומכאן נוסד XHTML, כתיבת HTML על פי תקני ה-XML (אוסף התקנים המכונים XML), דבר שלוקח את התכונות הטובות בין השפות ומשלב אותן (ועם זאת יוצר כאב ראש לא קטן).

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

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

מה זה החתול הזה DTD?
ראשית, לא מדובר בחתול, ומסמך ה-DTD (ראשי תיבות של Document Type Definition, בעברית: הגדרת סוג מסמך) מגדיר את ההררכיה בדף (לדוגמא, הוא יכול להגדיר ששדה input לא יכול להיות ישירות ב-form, והוא נכנס תחת אלמנט כמו p, אלמנט block) הבנוי בעקרונות ה-XML (בכוונה נזהרתי במילים, אם כי אין לי דרך טובה להגיד את זה).
במסמך ה-DTD ניתן לקבוע היכן כל אלמנט יכול לבוא, אילו אלמנטים הם חובה, מתי הם באים וכדומה (אם תחשבו על זה, בעצם ככה הגדירו לנו את סוגי ה-XHTML השונים).


XPath - ה-SQL של תקני ה-XML
רבים מאיתנו מכירים את SQL, שפה חמודה לביצוע שאילתות במסדי נתונים התומכים בה, ואכן היא משרתת את מטרתה (אם כי לא מזמן יצא לי להתלונן שהיא ממש מוגבלת באפשרויות, ושהרבה פעמים נכנסים איתה ראש בראש).
כעת נכנס XML לתמונה, והוא כבר לא תומך ב-SQL, אז מה עושים? XPath (ראשי תיבות של קיצור של XML Path Language) זו התשובה, והתשובה הזאת מאפשרת לנו לסמן מידע במסמך ה-XML בלי הרבה כאב ראש, אכן היתרון עצום.

יש ל-XPath תחביר פרטי, שמתאים לצרכי ה-XML (לדעתי CSS צריכים להעתיק כמה תכונות), ומאפשר בקלות לסמן בדיוק את רצוננו (יש אפילו פונקציות).
XPath מהווה מרכיב חשוב בהרבה טכנולוגיות נלוות.

הכירו את XSL
אחד מהטכנולוגיות הנספחות ל-XML, כאשר הכתיבה שלו היא דומה באופן מפחיד לכתיבה של XML עצמו, למרות שהמהות שונה.
XSL (מוכר גם כ-XSLT, ראשי תיבות של eXtensible Stylesheet Language Transformations) הוא הדרך של לשכתב מידע XML ל-HTML קריא (ומגניב), כדי שהמחשבים יוכלו להציגו, ואכן למרות ההגדרה המוזרה הזאת, זה מה שנעשה בשטח.
בעזרת XSL ניתן לתרגם מידע ב-XML ישירות ל-HTML ובכך להציג לקורא את אשר אנו חפצים.

יותר מגניב מזה לא יכול להיות... בעצם יכול, כי אנחנו יכולים לטעון XML ו-XSL בזמן אמת ולשלב, גאוני!

RSS - ובעברית רסס
RSS (ראשי תיבות של Really Simple Syndication) מבוסס גם הוא על XML, והוא מציג חוקים ותגיות שנקבעו מראש לייצאו נתונים בצורה קבועה, כאשר שפת התגיות הזאת תפסה והיום בהמון מקומות ניתן לשמור ולצפות ב-RSS של אתר מסויים, שמכיל את התוכן אשר האתר רצה לפרסם.
המטרה העיקרית היא להוציא מידע ללקוחות ולאתרים אחרים בצורה קבועה, ולאפשר ללקוחות לרכז ולנהל תכנים ממספר מקורות (במקום לעבור אתר אתר כמו שהרבה נאלצים לעשות כיום בפועל).

DOM - גם על זה W3C השתלטו
DOM (ראשי תיבות של Document Object Model) הינה הדרך לגשת לעצמים בדפים מבוססי XML (כולל HTML) ולהשפיע על אלמנטים ללא תלות ובזמן אמת.
בעקבות שימוש של זה בדפדפנים שונים בעזרת JS כדי להשפיע על דפי ה-HTML, החליטו W3C להציג תקנים קבועים.

על XML ומשפחתה
XML זו לא שפה, אבל נולדו הרבה שפות וטנכולוגיות בעקבותיה, ולדעתי תקני ה-XML מהווים צעד חשוב באינטרנט, וקידמו רבות את הנושא.
XML תומך בטכנולוגיות צד לקוח כמו CSS, המאפשר לנו לעצב את הדף כרצוננו (הולך מעולה עם XSL), ו-JS שמאפשר לנו להחיות את האתר בזמן אמת, שני אלו בלבד מהווים היתרון עצום ל-XML, אבל כמו שאמרתי, XML כשם שהוא אינו מיועד לבניית אתרים (גם אם ניקח לדעתי את השמות של HTML ונכניס אותם בהתאמה ל-XML, זה עדין לא המטרה שלו).

מי שינסה לקדם מסמך XML יתקשה, שכן לרובוטים אין דרך לדעת את חשיבות התג, ומבחינתם הכל תוכן רגיל (עוד סיבה למה להשתמש ב-HTML או ב-XHTML).

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

המשך גלישה מהנה.

יום שני, 11 באוגוסט 2008

מסע הצלב של IE

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

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

כאן נגמרת המלחמה השניה, ואחרי שנים קם לו הדפדפן Firefox (או בקיצור: FF), ומביא לתחילתה של המלחמה החדשה, וכאשר הוא ואופרה משלבים כוחות קמים להם תקנים חופשיים שאמורים לשמור על תאימות לאחור.
מכאן מתחילה מלחמה כאשר כל צד עושה כל שביכולתו לכבוש את לב האנשים, וכאשר דפדפן Safari של אפל מצטרף, מתחילה חגיגה אמיתית.

אז מה זה מעניין אותנו?!
ההשלכות של המעשה גדולות, ומקודדי האתרים מצאו את עצמם בין תקנים ובין המון גורמים הדורשים התחשבות, וכאשר מקודדים אתר, צריך לדאוג שבמחשב יהיו כל הדפדפנים, בשביל שתוכלו לסדר תאימות לכולם.
טוב, כל הדפדפנים זו הגזמה, אבל רצוי לדאוג שבמחשב יהיו 5 הדפדפנים הגדולים:
IE6, IE7, FF3, Opera 9, Safari 3

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

Internet Explorer 6
אני כבר לא מדבר על הגרסה החמישית של הדפדפן, שממנה מתעלמים עקב השימוש הנמוך בה, אני מדבר על משתמשי IE6, שמהווים חצי מגולשי הדפדפן IE ודורותיו, ולא מוכנים לעבור לגרסה החדשה, מתוך שיקולים שרובם גובלים בחוסר ידיעה או עצלנות.

הדפדפן IE6 חי על תקנים משלו, אותם המציאו כמובן אקספלורר, ומציג אתרים עם באגים, כאשר יש לעיתים קרובות ליצור גרסה לכל שאר הדפדפנים ואז גרסה שרק גרסה זו של אקספלורר ומטה יקראו, כיוון שהבאגים בהם בגדר הלא ברור.
אבל כאשר רוצים לתמוך במספר רב של דפדפנים אי אפשר להתעלם ממנו, ולאחר הרבה תסכולים למדתי לעשות את הדבר הבא:
<!--[if lt IE 7]>
<link rel="stylesheet" href="css/iefix.css" type="text/css">
<![endif]-->
הקוד הזה יפעל רק על גרסאות אספלורר הקטנות מ-7 (כלומר 6 ומטה), וכל שאר הדפדפנים יראו את הקוד כהערה.
כעת ניתן לייבא תיקון עבור הדפדפן ולספק תמיכה גם לו.

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

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

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

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

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

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

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

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

הדפדפן מתיימר להיות הכי מהיר (והוא היה לפני יציאת FF3), ומומלץ להורידו בגלל אחוז המשתמשים הלא מבוטל בו.

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

המשך גלישה מהנה.

יום שישי, 8 באוגוסט 2008

הלקוח, מה הוא רוצה?

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

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

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

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

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

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

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

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

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

המשך גלישה מהנה.

יום שני, 4 באוגוסט 2008

קידוד בעזרת DIV, אבל לא רק

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

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

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

שלב 2 - יצירת תבנית בסיסית
בשלב הזה מכינים את הדברים הבסיסיים בקידוד:
תבנית ה-HTML הכללית, בה אנו הולכים להשתמש, תיהיה הצעד הראשון, כאשר אם יש תקן בו אנו רוצים להשתמש, כבר עתה אנו נכניס אותו כחלק ממבנה ה-HTML ולא בסוף (כמו שלעיתים אני רואה שאנשים נזכרים, ואז קצת מאוחר מידי).
בקוד אנו נכניס תג meta המספק מידע על סוג התווים (לדוגמא: UTF8) ודף CSS חיצוני שיכיל את קוד ה-CSS (יחסוך בהמשך קפיצה בין מיקומים בדף, ובנוסף יעזור להגדיל את כמות התוכן בדף ביחס לקוד).

בקובץ ה-CSS אנו נכתוב כבר עתה ערכים לתגית body שנרצה שיהיו בסיס בדף, אם זה צבע הרקע מאחורה (או שאולי תמונה?!), אם זה הורדת המסגרת הפנימית (padding) של הדף, אם זה קביעות הקשורות לטקסט כמו גודל פונט, וכל קביעה כללית אותה אנו נרצה.

דוגמה לדפים משלב 2:
HTML Document (index.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11-flat.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title>game</title>
<link rel="stylesheet" href="./global.css" type="text/css" />
</head>

<body>
<!-- Text -->
</body>
</html>
CSS Document (global.css):

body
{
direction: ltr;
padding: 0px;
margin: 0px;
font-size: 14px;
font-family: arial,verdana,sans-serif;
}

שלב 3 - אלמנט גלובאלי
הערה לפני: מעתה קוד ה-HTML עליו אני אכתוב בא במקום ההערה במסמך ה-html שהצגתי קודם.

לאחר שיש בידינו את מה שאנו רוצים לעשות (שלב 1) ואת הקוד הכללי של הדף (שלב 2), אנו יוצרים אלמנט גלובאלי, שבתוכו יכנסו כל שאר האלמנטים (אלא אם במקרה חריג נחליט ליצור אלמנט מתחתיו שיכיל מידע אחר שאנו רוצים כביכול מחוץ לעיצוב).
האלמנט הזה יהיה div, כיוון ש-div הוא אלמנט מסוג block, ואין לו שום מאפיין עיצובי אחר.
HTML Document (index.html):

<div id="global">

</div>
כעת לאחר שיצרנו אלמנט גלובאלי, אנו נגדיר לו כיצד יראה, ותכונות הקשורות אליו.
CSS Document (global.css):

#global
{
width: 800px;
border: 1px solid gray;
margin: 10px auto 5px;
}
שימו לב: כבר עכשיו רצוי לבדוק בולידטור אם הינכם עומדים בתקנים, לפחות של CSS, כדי למנוע בעיות עתידיות בהמשך.

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

יש תמיד שאלה בנוגע לכמה רוחב לאלמנטים האלו, וכתשובה חד משמעית הייתי אומר לכם להכריע באחוזים, מהסיבה הפשוטה שלאחר מכן תוכלו לשנות את האלמנט המכיל אותם, והם יושפעו בלי לעשות לכם הרבה בעיות.
HTML Document (index.html):

<div id="global">
<div id="top">

</div>
<div id="left">

</div>
<div id="right">

</div>
<div id="bottom">

</div>
</div>
כעת בעזרת CSS אנו דואגים שכל דבר יהיה במקומו, ניתן לעשות זאת בעזרת float, בעזרת margin, בעזרת padding, שימוש ב-clear, או בכל אלמנט אחר שיכול לעזור בקביעת המבנה.
ניתן ואף רצוי לתת רקע שונה לכל אחד מהאלמנטים, כדי שנוכל לזהותם.
מה שאני לא ממליץ לעשותו הוא קביעה של גובה לאלמנטים, כי אנו רוצים אותם גמישים בלי הגבלה לגובה מסויים (ברוב המקרים).
CSS Document (global.css):

#top, #bottom
{
padding: 0.5em;
background-color: gray;
color: white;
clear: left;
}

#left
{
float: left;
width: 30%;
margin: 0;
padding: 1em;
}

#right
{
border-left: 1px solid gray;
margin-left: 32%;
padding: 1em;
}
לאחר שראיתם כי הגדלים מתאימים וכי האלמנטים מסתדרים כפי שרציתם (אפשר להוסיף תוכן זמני כדי להיות בטוחים שיציגם), מומלץ לעצבם (ניתן לראות בדוגמא עיצוב פשוט).
בידקו שוב את ה-CSS בולידטור כדי לוודא שהינו עומד בתקנים.

שלב 5 - תוכן ואלמנטים נוספים
כעת לאחר שיש בידינו מבנה, אנו לא נשתמש ב-div אלא אם נצטרך את התכונות שלו (אלמנט מסוג block ללא תכונות עיצוביות נוספות), אלא באלמנטים לפי הצורך:
  1. נשתמש בתגי ה-H עבור כותרות.
  2. נשתמש ברשימה (UL) עבור תפריטי קישורים.
  3. בתגית P עבור פסקאות.
  4. בכל אלמנט אחר בעת הצורך.
כאשר יש בידינו את המסמך הכללי, אנו ניצור תגית H1 לכותרת העליונה, ורשימה ב-DIV השמאלי עבור לינקים (הכוללת בתוכה כבר לינקים לצורך העניין), אשר מעליה נוסיף תגית H2 לכותרת של הרשימה.
ניתן כבר להוסיף תוכן בשביל שנידע סדר גודל של דברים, ובכדי שנוכל לעצב הכל בהתאם.
HTML Document (index.html):

<div id="global">
<div id="top">
<h1>iBlog</h1>
</div>
<div id="left">
<h2>Links</h2>
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
</div>
<div id="right">
<p>
text text text text text text text text text text text<br />
text text text text text text text text text text text<br />
text text text text text text text text text text text<br />
text text text text text text text text text text text
</p>
<p>
text text text text text text text text text text text<br />
text text text text text text text text text text text
</p>
</div>
<div id="bottom">
(c) Copyright
</div>
</div>
כעת נבטל כמה תכונות עיצוביות של מספר אלמנטים כדי שנוכל להמשיך לעבוד.
CSS Document (global.css):

h1, h2, #left ul
{
padding: 0;
margin: 0;
list-style: none;
}
אלמנטים נפוצים שהייתי ממליץ להשתמש בהגדרות עיצוב אלו כדי לבטל את שלהן:
ul, dl, dt, dd, form, h1, h2, h3, h4, h5, h6, h7, p


לאחר שביטלנו את התכונות העיצוביות שמפריעות לנו, נוכל לעבוד על האלמנטים.
לתגיות h1 אנו נגדיר מרכוז, את הקישורים שבתוך הרשימה שב-DIV השמאלי, אנו נגדיר כאלמנטי block בשביל שנוכל לעצבם.
ואז נוכל לשנותם כעולה על רוחנו.
CSS Document (global.css):

h1
{
text-align: center;
}

#left ul a
{
display: block;
width: 90%;
background-color: gray;
color: white;
margin-bottom: 2px;
text-align: center;
text-decoration:none;
}
בנוסף, נוכל להגדיר לקישורים אלו מצב שיפעל בעת שעוברים מעליהם, נניח לשנות את צבע הרקע לשחור.
CSS Document (global.css):

#left ul a:hover
{
background-color: black;
color: white;
}
שימו לב: חובה לבדוק אם ה-HTML וה-CSS תקינים בעזרת ולידטור.

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

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

קודים מלאים
HTML Document (index.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11-flat.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title>game</title>
<link rel="stylesheet" href="./global.css" type="text/css" />
</head>

<body>
<div id="global">
<div id="top">
<h1>iBlog</h1>
</div>
<div id="left">
<h2>Links</h2>
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
</div>
<div id="right">
<p>
text text text text text text text text text text text<br />
text text text text text text text text text text text<br />
text text text text text text text text text text text<br />
text text text text text text text text text text text
</p>
<p>
text text text text text text text text text text text<br />
text text text text text text text text text text text
</p>
</div>
<div id="bottom">
(c) Copyright
</div>
</div>
</body>
</html>
CSS Document (global.css):

body
{
direction:ltr;
padding: 0px;
margin: 0px;
font-size:14px;
font-family: arial,verdana,sans-serif;
}

#global
{
width: 800px;
border: 1px solid gray;
margin: 10px auto 5px;
}

#top, #bottom
{
padding: 0.5em;
background-color: gray;
color: white;
clear: left;
}

#left
{
float: left;
width: 20%;
margin: 0;
padding: 1em;
}

#right
{
border-left: 1px solid gray;
margin-left: 22%;
padding: 1em;
}

h1, h2, #left ul
{
padding: 0;
margin: 0;
list-style: none;
}

h1
{
text-align: center;
}

#left ul a
{
display: block;
width: 90%;
background-color: gray;
color: white;
margin-bottom: 2px;
text-align: center;
text-decoration:none;
}

#left ul a:hover
{
background-color: black;
color: white;
}

בהצלחה, והמשך גלישה מהנה.