להשתמש ב-TextMate בשביל הודעות Commit של Git


אני עובד עם Textmate ועם Git מאז שיש לי מק ומאז שהתחלתי לעבוד עם Ruby On Rails.

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

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

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

ראשית, צריך להורות ל-Git להשתמש ב-TextMate בשביל זה, עושים את זה על ידי ה-Command Line – כך:

git config --global core.editor "mate -w"

לאחר מכן, את הודעות הקומיט מבצעים כך:

git commit -a --amend

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

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

תוכנה לבדיקת לינקים שבורים באתרים (Mac)

David Walsh כתב בבלוג שלו השבוע על תוכנה למקינטוש שכל כך שמחתי לראות שאמרתי שאני חייב לכתוב עליה גם, אבל כל הקרדיט על הגילוי הראשוני מגיע לו :-)

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

מה התוכנה?

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

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

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

לתוכנה קוראים Integrity והיא חינמית. אפשר להוריד אותה מכאן

הנה כמה צילומי מסך של התוכנה מתוך אתר היוצר.

IntegrityShot3.2Main

IntegrityShot3.2Options

LabelScreenshot

תהנו.

כרגיל, אשמח לתגובות

טמפלייט לקובץ gitignore לפרויקט פלקס

שלום לכולם,

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

היות וכנראה יש עוד כמה כמוני שם בחוץ, חשבתי שכדאי שאני אפרסם את הקובץ gitignore שבד"כ אני מתחיל איתו פרויקטי פלקס, בעצם אני גורם לgit להתעלם מכול הקבצים שלא צריכים להיות תחת source control מכיוון שלכול אחד מהצוות יש את הגרסאות שלו ואנחנו לא רוצים שהם ידרסו אחד את השני

ללא הקדמות נוספות, כך הקובץ שלי נראה

.DS_Store
.actionScriptProperties
.flexProperties
.project
.settings/*
bin-debug/*

הערה: אם אתם משתמש windows אתם לא צריכים את ה DS_Store, זה קבצים שנוצרים רק במק

על אמנות ביצירת תוכנה – Software Craftsmanship

לאחרונה חתמתי על המניפסטו של Software Craftsmanship.

הקדמה

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

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

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

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

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

האומנות ביצירת תוכנה, מה זה?

Software Craftsmanship היא מעבר לכול גישה או פילוסופיה, יש לה המון נקודות משותפות עם xp (extreme programming), אבל כפי שכבר אמרתי, זוהי לא מתודולוגיה, היא לא מגדירה עקרונות low level בפיתוח תוכנה כמו tdd או refactoring.

ישנו ספר שעוסק בנושא, אני מאוד ממליץ על קריאה שלו: הנה לינק אליו

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

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

ממשיכים…

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

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

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

ממשיכים…

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

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

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

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

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

רגע רגע, אני מתכנת .net, זה רלוונטי לי?

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

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

יש לי צוות של 20, האם אני יכול להגיד שהם עובדים תחת הכללים של software craftsmanship?

לא

האמת, לא

ושוב, לא

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

מה הקשר לדוד בוב?

uncle bob (חפשו בגוגל, אל תהיו עצלנים) הוא אחד הspeakers הטובים ביותר שיש לנו בתחום, הוא הגדיר את הפילוסופיה כ"חזרה לבסיס" או "לעשות את הבחירות הנכונות". בוב אגב, הוא הכותב של הספר clean code (עוד המלצה).

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

סיכום

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

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

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

2 תוספי חובה ל-Visual Studio

הפוסט הזה הוא במיוחד לכול אחי המפתחים ב.net אשר משתמשים בVisual Studio ככלי העיקרי לפיתוח אתרים ותוכנות.

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

אשמח לתגובות

2 must addons for visual studio from Avi Tzurel on Vimeo.

כיצד תהיו מקצוענים בפיתוח תוכנה? חלק 2

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

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

מכונת זמן מישהו?

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

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

בין אם אתם משתמשים בSVN או בGIT, גם אם אתם משתמשים בשרת פנים חברתי או בGoogle Code זה בכלל לא משנה, אתם צריכים להכיר את הכלים לSource Control ולהשתמש בהם. לעשות Commit כשסיימתם וUpdate לפני שאתם מתחילים.

Patching

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

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

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

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

תסרבו!

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

פעם קיבלתי מייל כזה מלקוח:

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

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

תשמרו את הלקוח שלכם מיודע

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

מה הנקודה?

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

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

המנעו מזה! כמו מאש!

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

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

הבנתם? יופי :-)

שירות, שירות, שירות

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

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

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

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

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

תרשום תרשום…

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

מכירים את המילה "שכחתי", תשכחו אותה :-)

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

GTD – Getting Things Done!

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

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

תוכנית חדשה של מיקרוסופט – Website Spark

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

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

הרכזת מיקרוסופט על תוכנית חדשה

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

(צילום מסך מאתר התוכנית)

webadbaehn4n4tn

אורך התוכנית: 3 שנים בהם תוכלו לצאת מהתוכנית בכול נקודה, לשלם 100 דולר ולהגיד שלא הייתם מרוצים – אך זו כמובן לא הכוונה.

מה התוכנית כוללת?

3 רשיונות לVisual Studio 2008 Profesional Edition
1 רישיון לExpression Studio 2 או 3
2 רישיונות לExpression Web 2 או 3
3 רישיונות ל Windows Server 2008 ול Sql Server 2008
4 רישיונות מעבר לWindows 2008 ול Sql server 2008

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

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

למי זה מתאים?

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

למי זה לא מתאים?

זה לא מתאים לכם אם אתם כבר חברים של אחת התוכניות במיקרוסופט כמו ActionPack או מנוי MSDN כזה או אחר.

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

jQuery למתחילים

שלום לכולם,

כבר הרבה זמן שאני רוצה ומתכוון להקליט ScreenCast על jQuery.

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

אשמח לתגובות

מעבר על jQuery from Avi Tzurel on Vimeo.

ולידציה לתעודת זהות ישראלית בC#

שלום חברים,

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

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

תיהנו

   1: public static bool validateID(string idNumberString)

   2: {

   3:     if (idNumberString.Length < 9)

   4:         return false;

   5:

   6:     int int1 = Convert.ToInt32(idNumberString.Substring(0, 1)) * 1;

   7:     int int2 = Convert.ToInt32(idNumberString.Substring(1, 1)) * 2;

   8:     int int3 = Convert.ToInt32(idNumberString.Substring(2, 1)) * 1;

   9:     int int4 = Convert.ToInt32(idNumberString.Substring(3, 1)) * 2;

  10:     int int5 = Convert.ToInt32(idNumberString.Substring(4, 1)) * 1;

  11:     int int6 = Convert.ToInt32(idNumberString.Substring(5, 1)) * 2;

  12:     int int7 = Convert.ToInt32(idNumberString.Substring(6, 1)) * 1;

  13:     int int8 = Convert.ToInt32(idNumberString.Substring(7, 1)) * 2;

  14:     int int9 = Convert.ToInt32(idNumberString.Substring(8, 1)) * 1;

  15:

  16:     if (int1 > 9) int1 = (int1 % 10) + 1;

  17:     if (int2 > 9) int2 = (int2 % 10) + 1;

  18:     if (int3 > 9) int3 = (int3 % 10) + 1;

  19:     if (int4 > 9) int4 = (int4 % 10) + 1;

  20:     if (int5 > 9) int5 = (int5 % 10) + 1;

  21:     if (int6 > 9) int6 = (int6 % 10) + 1;

  22:     if (int7 > 9) int7 = (int7 % 10) + 1;

  23:     if (int8 > 9) int8 = (int8 % 10) + 1;

  24:     if (int9 > 9) int9 = (int9 % 10) + 1;

  25:

  26:     int sumOfAllInts = int1 + int2 + int3 + int4 + int5 + int6 + int7 + int8 + int9;

  27:

  28:     sumOfAllInts = sumOfAllInts % 10;

  29:     if (sumOfAllInts > 0)

  30:         return false;

  31:     else

  32:         return true;

  33: }

הקוד המקורי מאתר ASP תרגמתי אותו לc# והוספתי ולידציה לאורך של 9 תווים בהתחלה.

שיהיה בכיף!

אם אתם משתמשים בקוד שימו איזה תגובה כדי שאני אדע :-)

פתרון גיבוי מלא וחינמי למחשב באמצעות SyncBack

שלום לכולם,

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

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

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

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

תודה

גיבוי מלא למחשב באמצעות Syncback from Avi Tzurel on Vimeo.