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

תפנית בסיפור עם השרת

אז ככה, מצאתי את בעל השרת!

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

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

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

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

אז אני מתנצל אם לא הייתי בסדר.

יום ראשון, 24 באוגוסט 2008

חשמל אלחוטי?

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

לדברי אינטל, כ75% מהאנרגיה מגיעים ליעד, בעוד 25% "נעלמים" בדרך.
הטכנולוגיה עובדת גם במרחקים גדולים יותר, אבל ביעילות נמוכה הרבה יותר..

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

יום ראשון, 17 באוגוסט 2008

mod_rewrite

אחת האפשרויות המעניינות בשרתים מסוג apache (אני לא יודע מאיזה גרסה בדיוק, אבל רוב השרתים כבר תומכים בזה)
היא mod_rewrite.
אני לא מכיר ולא מתיימר להכיר את כל הדברים שניתן לעשות עם זה, אבל אחד הדברים המעניינים הוא שינוי הכתובת למשהו אחר. למה הכוונה? לדוגמה:
יש לי נניח אתר שצריך להציג פרטים אודות מוצרים, העמוד מקבל בכתובת את הקטגוריה, שם הפריט ושם החנות (כדי לראות אם המוצר קיים במלאי...) אז זה יכול להיות כתובת כזו:
www.mystore.com/index.php?do=show_product&store=store_name&cat=cat_name&product=product_name
כמו שאתם וודאי שמים לב, זה לא נוח לקריאה, לא נוח לשימוש - וסוד קטן, זה גם לא נוח למנוע החיפוש..
מנועי חיפוש אוהבים אתרים סטטיים (יעני אתרים לא משתנים - html) על פני אתרים דינאמיים (אתרים משתנים... php, asp, asp.net).
אז למה שלא נהפוך את הכתובת לידידותית למשתמש ולמנוע החיפוש? מה אם אני אגיד לכם שניתן לעשות כתובת כזו במקום:
www.mystore.com/products/store_name/cat_name/product_name.html
אתם בטח שואלים איך... אז זה איך:
יש אפשרות לקבוע כללים. למשל:
אם תופיע הכתובת הזו:
www.mystore.com/products/x/y/z.html
תעביר את הנתונים x, y וz לכתובת:
www.mystore.com/index.php?do=show_product&store=x&cat=y&product=z
יפה מאוד, עכשיו איך עושים את זה?
ניצור קובץ .htaccess חדש. ראשית נדאג לכך שלא תוצג שגיאה, ושהקוד יתבצע רק אם השרת תומך בmod_rewrite.
<IfModule mod_rewrite.c>
</IfModule>
עכשיו נפעיל את מנוע הrewrite
RewriteEngine On
עכשיו נוסיף את ה"חוק" הזה... הסבר קצר.
אם אני ארצה למשל, שכל פעם שיכנסו לכתובת "index.html" זה יכנס למשל לכתובת "index.php"
אני אכתוב
RewriteRule ^/?index\.html$ index.php [L]
לטובת כל מי שלא מבין בזה, אלה ביטויים רגולריים.. הסימן ^ מסמל תחילת מחרוזת, הסימן $ מסמל סוף מחרוזת.
עשיתי \. בגלל שלסימן "." יש משמעות - כל תו שהוא. אז \. מבטל את ההשפעה שלו.

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

RewriteRule ^/?products/(.*)/(.*)/(.*)\.html$ index.php?do=show_product&store=$1&cat=$2&product=$3 [L]

ולסיום, הקוד שלנו צריך להראות ככה:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/?products/(.*)/(.*)/(.*)\.html$ index.php?do=show_product&

store=$1&cat=$2&product=$3 [L]


</IfModule>


אלה דברים שיותר קל ללמוד מהקודים עצמם מאשר מהסברים לדעתי.

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


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

אני מצטער אם זה קצת מתבלגן עם הימין ושמאל.. זה מה יש :)

עד הפעם הבאה, להתראות.

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

תכנות מונחה עצמים - מה הסיפור הגדול?

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

מה זה תכנות מונחה עצמים בעצם?
תכנות מונחה עצמים (Object-Oriented Programming - OOP) הוא צורת תכנות שנתמכת על ידי רוב שפות התכנות החדשות כיום.
הרעיון הוא לקחת מחלקה, ולשים בה את הפונקציות והמשתנים הייחודיים רק לה.
לדוגמה מחלקה בשם cat - חתול, יהיו בה למשל פונקציות של ללכת, לאכול, לשתות ולילל.. יהיו בה משתנים של גיל, צבע וכו'.
הגיוני, לא ככה?

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

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

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

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

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

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


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

להתראות בפוסט הבא, שבת שלום :)


איך לבחור חברת אחסון?

שאלה: איך אני בוחר שרת לאחסן עליו את הקבצים?

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

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

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

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

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

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

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

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

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

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

וחוזרים לפה :)

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

לצערי הבחירה שלי, בשרת או במערכת היתה שגויה...

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

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