Archive for the Category »טכני «

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

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

מטרה – מהו הערך שהאתר שלך מוסיף?

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

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

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

זהות עצמית

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

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

הזיהוי יכול להיות כסיכום זריז של הכרטיס כמו ברמקול:

או תמונה ושם בלבד, כמו בטוויטר:

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

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

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

משהו לעשות ודרך להביע את עצמם

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

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

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

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

אולם המשמעות היא שבאתר יכולות להיות ביקורות שאי אפשר לשלוט במראה ובתוכן שלהן:

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

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

היכולת לתקשר

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

לסיכום

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

בהצלחה!

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

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

הדבר הראשון שאני פונה אליו הוא הווידג'טים (widgets) – כדי להתקין את הבסיסיים ביותר ואז לעבור להגדרות שלהם ושל הבלוג. הווידג'טים הראשונים שאני מתקין וממליץ עליהם:

  1. למחוק את hello dolly שמגיע עם הבלוג
  2. להפעיל את Aksimet שמגיע עם הבלוג
  3. All in One SEO Pack – תוסף נהדר ופשוט לseo פנימי
  4. Google Analyticator – מחבר את הבלוג שלכם לגוגל אנליטקס בקלות
  5. Google XML Sitemaps – לשפר את תוצאות החיפוש שלכם ולהבין מה קורה בבלוג שלכם, איך גוגל רואה אותו וכו.
  6. Relevanssi – חיפוש משופר לבלוג שלכם
  7. Subscribe To Comments – כדי לאפשר למשתמשים שלכם לדעת מתי יש תגובות במערכת
  8. TinyMCE Advanced – עורך טקסט מתקדם יותר, במיוחד אם אתם מתכוונים לכתוב הרבה און ליין
  9. WordPress.com Stats – אני מוצא את הסטטיסטיקות של וורדפרס נעימות ופשוטות. לא טובות ואמינות כמו גוגל, אבל למה לא גם וגם?
  10. WordPress Database Backup – חייבים לגבות את הבלוג שלכם
  11. wp-cache – משפר ביצועים ומוריד עומס מהשרת שלכם
  12. WP-PageNavi – לניווט קל יותר

לאחר ההתקנה, אני מתחיל עם ההגדרות:

  1. להפעיל את aksimet עם סיסמה שקיבלתם מהם
  2. מפעיל את הפלאגאין של הSEO, אם מתחשק לכם תתרמו – לא צריך לשנות יותר מדי כרגע את האפשרויות
  3. משתמש בסיסמא מסעיף 1 להפעיל את הסטטיסטיקות
  4. עובר ל כלים->Backup ומכין גיבוי שבועי (תלוי כמה אתם מעדכנים את הבלוג) שישלח לכתובת הgmail שלי
  5. הערה – לאחר שבועיים שלושה שאני רואה שהגיבויים מתקבלים, אני פשוט עושה חוק בג'ימייל שמעביר את המייל הזה אוטומטית לספרייה מיוחדת.
  6. עובר ל הגדרות->כללי: מעדכן את תיאור הבלוג, לרוב השאר בסדר גמור
  7. אם אתם מתכננים לעדכן פוסטים במייל או דרך MS Writer, תעברו לכתיבה, ותאפשרו את זה, אם לא, לא צריך.
  8. עובר ל הגדרות->קישורים ישרים: מעדכן את המבנה למותאם אישית. אני אוהב את %CATEGORY%/postname אבל הוא פוגע בביצועים ולפעמים לא עובד טוב עם דפים, אז לרוב אני מגדיר /%post_id%/%postname%/
  9. את המקומות לקטגוריות ותגים אני משאיר ריקים או ממלא category וtag בהתאמה, לפי החשק. זה לא ממש משנה.
  10. הולך לגוגל אנליטקס ופותח חשבון לאתר – לפעמים בתוך חשבון הבלוגים שלי ולפעמים בחוץ ובנפרד, תלוי למי מיועד הבלוג.. שומר את הקוד שהשאירו לי (מתחיל בUA).
  11. עובר להגדרות->google analyticor שהתקנו קודם. מאשר (enable) אותו ואז לוחץ על הקישור של Authenticate with Google, כשאני מחובר לגוגל דרך ג'ימייל לדוגמא, או שמכניס את הקוד הנ"ל.
  12. עובר להגדרות->relevanssi ומפעיל אותו.
  13. עובר להגדרות->Subscribe to Comments ומתרגם את המשפטים שחשובים לי. לרוב ל"קבל התראה במייל על תגובות חדשות", "אתה רשום לתגובות לפוסט הזה.  <a href="[manager_link]">נהל את ההתראות שלך</a>."
  14. עובר להגדרות->wp-cache ומפעיל אותו
  15. עובר להגדרות->pageNavi ומתרגם את המשפטים החשובים לי.
  16. עובר להגדרות->XML Sitemap ובונה את האינדקס בפעם הראשונה.

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

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

אבל הפוסט הזה הוא לא דווקא על jQuery ושאר הספריות הפומביות הנמצאות שם – אלא דווקא על הדרך בה כדאי להשתמש בה באתר שלכם: CDN.

CDN הם ראשי התיבות לContent Delivery Network, ובגדול, שימוש בurl אחד המפוזר בסרברים שונים ברחבי העולם. השילוב הזה של כתובת אחת וסרברים מפוזרים חשוב ביותר נותן לכם שלושה דברים עיקריים בבת אחת (שימוש בזכרון מטמון, מהירות גישה וכפילות גישה) – וללא עלות כלל. במקרה של jQuery המאוחסנת בCDN של גוגל (יחד עם עוד ספריות) – היתרונות אפילו גדולים יותר מאשר רשת CDN פרטית שלכם.

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

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

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

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

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

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>

עוד שני טיפים קטנים ששווה לחשוב עליהם:

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

גירסה אחרונה – בכתובת הנ"ל אתם משתמשים בגירסה הרצויה של jQuery. אם תרצו להשתמש בגירסה האחרונה, השתמשו בסיפרה "1" ללא נקודה.

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

  1. ווידג'ט תאריכים – נו באמת. מישהו משתמש בזה באמת?
  2. תמונות שלא קשורות לכלום – נכון, תמונות בבלוג זה טוב וחשוב, אבל אם לא מצאתם תמונה קשורה באמת.. אז למה?
  3. אין פרטים על הכותב – דיברנו על זה קצת בוורדקמפ האחרון, אבל זה באמת חשוב. לקוראים שלכם חשוב לדעת מי אתם.
  4. הידור מיותר – לכל אלה שממלאים תחתית של כל פוסט בכל המקומות שאפשר לפרסם את הפוסט שלהם, מפוצצים בוויד'טים וכדומה. רחמים.
  5. בלוגרול עצום – הבלוגרול קיים כדי לתת לקורא אפשרות להגיע לעוד אנשים מעניינים, הקשורים באופן זה או אחר אליך ואל מה שהבלוג שלך מדבר עליו, והמטרה היא להגיע לטובים ביותר ולא לרשימה הארוכה ביותר.
  6. ענן התגיות – וכאן אני לא מסכים עם ג'ף – אבל הוא טוען שקשה להשתמש במדיה הויזואלית של הענן. טוב, אי אפשר להיות צודק תמיד.
  7. פרסום יתר – מופיע קצת פחות בבלוגים ישראליים, אבל קיים הרבה בחו"ל.
  8. היומן האישי – בלוג הוא כלי להעברת מידע, סיפורים, דברים מעניינים. לא כלי לספר מה קורה לך ביום יום. בלוג הוא לא יומן אישי.
  9. "מצטער שלא כתבתי כבר כמה זמן" – אם לא יצא לכם לכתוב, והקוראים נשארו, סבבה. מי שרוצה לקרא אתכם יודע איך להגיע אליכם ומתי. אל תבזבזו זמן בהתנצלויות או הבטחות לעתיד טוב יותר.
  10. בלוגין על בלוגין – אלא אם כן אתם כותבים בעניינים טכניים וקהל היע שלכם הם בלוגרים בעצמם, שזה די נדיר, אין הרבה מקום לדבר על עצם הכתיבה.
  11. חדשות – למה בדיוק לכתוב על מה שקורה עכשיו, בלי נקודת מבט חדשה?
  12. רשימות – בדיוק כמו זו. נ'פ סייד.
  13. חסימת תגובות – לדעתי זו מעין נקודה שהיא גבול. אם אין תגובות זו כתבה, לא בלוג.

תהנו.

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

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

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

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

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

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

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

התשובה היא זו:

SELECT * FROM tbl1 LEFT JOIN tbl2 ON tbl1.personId = tbl2.personId WHERE ISNULL(tbl2.personId)

או במילים אחרות – שלוף את כל הנתונים מטבלה אחת המחוברת לשניה, כשבשניה הID הוא null.

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

קודם כל, השימוש ה"ראשוני" לחיפוש מקומי (מה אנשים עושים קודם כל לפני פניה לעסק מקומי):

pic1

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

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

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

pic3

זום על הפרטים החשובים מהתמונה הזו:

pic4

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

pic5

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

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

פותחים את המסמך שאתם רוצים, בצד ימין למעלה יש את התפריט הבא:

גוגל דוקס

לחצו על Share, ואז Publish as a Web Page, תקבלנו את המסך הבא:

Picture 7

קחו את הלינק ושתפו בוורדפרס, ווואלה.

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

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

  • בעקבות המערכת החלפתי את תוסף הgoogle anlytics בכל הבלוגים שלי בGoogle Analyticator. למרות שהתוספים דומים, באחרון יש תוספת ללוח הבקרה של וורדפרס עצמו שמביאה את עיקר העניינים ואופציות הקינפוג רבות יותר. מומלץ.
  • תוסף החיפוש, Relevanssi, גם הוא עוברת – משתמש בטכניקת חיפוש מתקדמת של כמות הפעמים שמילת החיפוש נמצאת במסמך וכן כמות הפעמים שהמילה נמצאת בבלוג באופן כללי. ז"א חשיבות המילה כפול המצאותה במסמך. מענין. כמובן ששאר האופציות הרגילות של תוסף חיפוש – חיפושים פופולריים וכו – קיימות.
  • תוסף טוב לכוכבים וציונים לא מצאנו, ואנחנו משתמשים במשהו לא כ"כ מצטיין – אם נמצא נודיע, או שנצטרך לכתוב אחד. למישהו יש?
  • הבאז ברשת הגיע קודם כל דרך פייסבוק וטוויטר, שישר הביאו לנו כמעט 100 יוניקים ביום – אחרי יום אחד שלי בלבד. עומר הצטרף עם עבודה קלה בפורומים, ואנחנו מתייצבים באיזור הזה. האתגר הבא יהיה שיתופי פעולה וכתיבת תוכן, ואח"כ המשך חיזוק SEO. דיווח יבוא בהמשך..

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

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

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

שימוש במנגנון מטמון cache:

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

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

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

לא להעתיק משתנים ללא סיבה:

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

דוגמא רעה:

$description = $_POST['description'];
echo $description;

דוגמא טובה:

echo $_POST['description'];

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

שימוש במנגנון הבאפר של PHP:

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

המנעו מכתיבת שאילתות SQL בלולאה:

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

$userData = [];
foreach ($userList as $user) {
$userData[] = '("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
}
$query = 'INSERT INTO users (first_name,last_name) VALUES' . implode(',', $iserData);
mysql_query($query);
Produces:
INSERT INTO users (first_name,last_name) VALUES("John", "Doe"),("Jane", "Doe")...

שימוש בגרש אחד עד כמה שאפשר במקום גרשיים:

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

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

במקום:

echo 'hello, my name is '. $myName .', how are you?';

עדיף:

echo 'hello, my name is ', $myName, ', how are you?';

להשתמש בSWITCH במקום בIF.ELSE

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