יום שישי, 2 בינואר 2009

כל מה שצריך לפיתוח אתרים במחשב ביתי

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

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

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

קישורים:
  • עמוד הבית של PHP - כולל הורדה של הרכיבים הדרושים, מדריכים רבים ועידכונים.
  • PHP ישראל - נכון לעכשיו האתר הרישמי בארץ, ולמרותש הוא מיושן יש בו הסבר יחסית טוב בנוגע לדברים בסיסיים.
מסד נתונים - MySQL
מסד נתונים [=בסיס נתונים] - קובץ לאחסון נתונים בצורה מסודרת, לשם אחזורם ועיבודם.
אחרי שגמרנו עם ההגרדה הכוללנית שהופכת את הקבצים בעלי סיומת txt למסדי נתונים (ולעיתים אף יעילים), ניתן להתייחס למסד MySQL עצמו, שזהו בסיס נתונים נוח במיוחד שזוכה לפופולאריות רבה בקרב מתכנתים, ומשמשת מערכות רבות בשל הנוחות שבה.
מסד הנתונים MySQL משתמש בתחביר השפה SQL, שפה דיי פשוטה בעלת תחביר פשוט, ואליה מסד נתונים זה מוסיף תוספות תחביר משלו.

קישורים:
  • האתר הראשי של MySQL - כולל הורדה, מדריכים, וחומר רב בנוגע למסד הנתונים.
  • W3School SQL - מדריך ה-SQL באתר W3C (באנגלית).
  • Webmaster SQL - מדריך ה-SQL באתר הפופולארי העברי Webmaster, ישנם גם מדריכי משתמשים מומלצים.
שליטה על מסד הנתונים - phpMyAdmin
מדובר בפרוייקט קוד פתוח שנכתב ב-PHP, ומאפשר לנו שליטה מסויימת וביצוע משימות בקלות במסד הנתונים MySQL.בצורה ויזואלית ונוחה ניתן ליצור ולערוך (ואף למחוק) את מסד הנתונים, הטבלאות שבו, לנהל משתמשים, ועוד מגוון אפשרויות שמקלות מאוד את השימוש ב-MySQL ומאפשרות ביצוע של פעולות בצורה פשוטה וויזואלית.

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

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

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

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

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

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

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

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

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

יום שני, 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.

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

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

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