GoTo
פורסם במקור בפורום CODE613 ב05/01/2014 23:40 (+02:00)
GoTo
פורסם במקור בפורום CODE613 ב05/01/2014 23:40 (+02:00)
שלום לכולם
vba מהתל בי בכל פעם שאני מכניס למשתנה מסוג string הרבה מאוד חומר, לא יודע למה, פונקציות תמיד מקבלות יותר מ 255 תווים, משתנים מקומיים לפעמים לא ולפעמים כן. האם יש איזה מידע שיכול לשפוך אור על העירפול הזה. ואיזה אובייקט כן יכול להכיל עד 2 מיליארד תווים?
תודה
פורסם במקור בפורום CODE613 ב05/01/2014 17:53 (+02:00)
קודם כל זה מן הסתם נדיר ביותר תוכן שווה וקישורים שונים, אלא אם כן מדובר בתוכן קבוע שמופיע בראש או בתחתית.
דבר שני נראה שאפילו גוגל לא מתמודדים עם זה, כלומר זיהוי תוכן זאת משימה קשה מאוד, ואתה רואה בתוצאות חיפוש לפעמים שהאינדקס של גוגל רושם את הדף עם כל מיני חומרים קבועים שנמצאים בפנים כגון שתף בפייסבוק, הירשם לקבלת מנוי, וכיוצא בזה. זה מבחינת האינדקס חלק בלתי נפרד מהדף.
דבר שלישי, נראה לי שלא יקרה כלום אם פה ושם יהיו דפים כפולים, העלות של האלגוריתם הזה, עם הסיכון שבו שכל טעות עלולה להשמיט דפים שלמים שהרובוט לא יעבור עליהם, לא שווה את התועלת של חיסכון בעוד כמה בתים...
בהצלחה.
פורסם במקור בפורום CODE613 ב05/01/2014 13:47 (+02:00)
recordset עובד יותר מהר משאילתה, אבל מבחינת תחזוקת קוד לפעמים כדאי לעשות sql.
פורסם במקור בפורום CODE613 ב05/01/2014 15:36 (+02:00)
אם אתה צריך את זה לתצוגה בלבד (ועדיף שכך, כי זה יותר חסכוני לרשום שורה אחת לכל הכנסה שהיא בתשלומים.
כדאי לעשות את זה נטו עם שאילתה, בדרך הבאה. אתה עושה טבלה עם עמודה אחת שמכילה מספרים בלבד, נניח 24 רשומות שמכילות מספרים 1-24 שם אותה בשאילתה יחד עם טבלת התשלומים, ואז בעצם כל תשלום יופיע 24 פעמים (כי אין קשר גומלין בין הטבלאות), כדי להגביל את זה אתה עושה תנאי שהשדה מספר בטבלת המספרים הוא קטן או שווה לשדה מספר תשלומים בטבלת התשלומים. ואז הכפולות יהיו רק כמספר התשלומים. כעת אתה צריך גם לדאוג שהסכום יהיה חלקי התשלומים, והתאריך יהיה בתוספת של חודש כל רשומה (את זה אתה יכול לשאוב מהרשומה של טבלת המספרים להוסיף את החודשים על התאריך וכך לקבל את התאריך הנכון).
אם לא הובן, אעלה קוד וגם קובץ אם אפשרי.
בהצלחה.
פורסם במקור בפורום CODE613 ב05/01/2014 13:51 (+02:00)
סידור מקומות לפונקציות, מחלקות, נושאים, קינון וכדומה. הוא השלב היותר קריטי כדי להפוך את הקוד למסודר.
פונקציה אפילו סטטית, אמורה להיות מקוננת בתוך ההקשר המתאים, ההקשר נקבע לפי נושא הפונקציה ולא מושאה.
למשל כשיש פונקציה שאמורה להחזיר טלפונים של איש קשר, עליה להיות מקוננת בתוך קלאס של איש הקשר, אבל כשיש פונקציה שאמורה להחזיר את כל הפקסים של כל אנשי הקשר לפי תנאי מסויים, היא אמורה להיות מקוננת בתוך קלאס של טלפונים, כאשר הנושא הוא "טלפונים" נחפש את הפונקציה המתאימה בקלאס של טלפונים, ואילו כאשר הנושא הוא "איש קשר" זה הפוך.
אז במקרה דנן יש אובייקט איש קשר, אובייקט טלפון, אוסף אנשי קשר ואוסף טלפונים. כך שכל אובייקט איש קשר אמור להכיל הפניה לרשימה של הטלפונים שלו, וכל אובייקט טלפון אמור להכיל הפניה לאובייקט איש קשר שתחתיו הוא קיים. כאשר נרצה למשל להשתמש באוסף של פקסים, נסנן את הטלפונים לפי "סוג מספר"="פקס" ואם נרצה להוסיף עוד תנאי באנשי הקשר נוסיף כאוות נפשנו, בהנחה שיש לנו הפניה לאיש הקשר.
אם כל פונקציה מסודרת לפי הנושא, אנחנו יכולים להיות בטוחים בדרך שבה נשיג דברים, כלומר זה יחסוך לנו זמן חיפוש כשנרצה לפנות לאוסף כלשהו, נדע את המסלול מראש איך הוא אמור להיות.
עם זאת, יש להפריד בין פונקציות ליבה, לבין פונקציות הצבעה וסדר בלבד. אז מה יהיה הפרוייקט שלנו לשיעור הזה, בואו נלך על תוכנה למשכנתא.
בפרוייקט ייעוץ משכנתאות, אנו צריכים להמליץ ללקוח על משכנתא אופטימלית. משכנתא מורכבת מכמה פרמטרים:
[]סכום נדרש[/]
[]יכולת החזר חודשית[/]
[]שיעור ריבית[/]
[]סוג החישוב (קרן שווה, החזר שווה)[/]
[]סיכונים בריבית משתנה[/]
[]הצמדה למדד[/]
[]ובסופו של דבר תמהיל נכון כי משכנתא בדרך כלל מורכבת מכמה הלוואות.[/]
אז ברור שקודם כל יש אובייקט לקוח שמכיל מידע אודות המשכורת של בני הזוג, הסכום הנדרש, ההון העצמי וכו'.
יש את המנועים המרכזיים של המערכת, מה שקרוי בדרך כלל core או קרנל.
נכתוב פונקציה שיודעת לחשב ריבית והצמדה (הפונקציות הפיננסיות המובנות עד כמה שידוע לי יודעות לחשב ריבית בלבד, אולם להצמדה לא מצאתי משהו מוכן) לתקופה כלשהי, הפונקציה תקבל ארגומנט סכום הלוואה, תקופה, מדד צפוי, ושיעור ריבית. פונקציה כזאת אמורה לעבור חודש חודש בלולאה על מנת לתת לנו תוצאה של לוח סילוקין סופי הכולל מדד (אין דרך אחרת לחשב השפעת מדד על הלוואה בהחזר חודשי הואיל והקרן פוחתת בכל חודש).
פונקציה כזאת תהיה בדרך כלל סטטית, הואיל והיא פונקציית ליבה של המערכת, היא עצמאית לחלוטין, ואסור שתהיה מקוננת תחת אובייקט כלשהו.
מעבר לכך, יש לנו הצעות מחיר שונות מכמה בנקים, ובכמה סוגי הלוואות, נניח שלכל בנק יש איזה שהוא מחירון בסיסי שהוא נקודת פתיחה למשא ומתן, והדבר תלוי ברמת היציבות של הלווים, איכות הנכס, שיעור ההון העצמי, תקופת ההלוואה, וכן הלאה. את כל הנתונים הללו יש לנו במסד הנתונים.
כעת הזוג שמגיע לבחור משכנתא, אמור להתחיל מנקודה מסויימת, כלומר קודם כל כמה אתם רוצים להחזיר בחודש, מהו הסיכון כאשר ההחזר החודשי עולה עם התקופה, אולי עדיף לקחת חלק מההלוואה לתקופה קצרה יותר וכך עם השנים ילך ההחזר החודשי ויפחת, או יקזז את עליית המדד, וכן הלאה.
נבנה מחלקה שתפקידה הוא "מחולל משכנתאות" שעושה סימולציה של כמה סוגי הלוואות, היא תקבל לתוכה את הנתון של יכולת ההחזר החודשי כנקודת עוגן, ומכאן ואילך תתחיל להציע הלוואות שונות, זה די מסובך לבנות דבר כזה (מה שנקרא באקסל "חתירה למטרה" ורואים על המסך שהוא עושה את זה עם לולאה של ניסיונות), אבל לצורך הענין אני מניח שבנינו מחולל כזה.
אוקי, המחולל הציע לנו מספר תמהילים אפשריים, על בסיס החזר חודשי בין X לבין Y, כל תמהיל הוא אוסף של מספר הלוואות המרכיבות את הסכום הסופי גם יחד. ולכל לקוח יש לנו כמה תמהילים להמליץ ולבחור את האופטימלי מביניהם, לפי פרמטרים של יכולת החזר עלויות סיכון לבנקים ועוד.
כעת אנו צריכים ליצור אופטימייזר שיצביע על כל תמהיל, מהם נקודות החולשה שלו, ומהם נקודות החוזקה שלו. וימליץ ללקוח על התמהיל הכי משתלם, בהתחשב בכך שיש בכל משכנתא מספר מרכיבים בעלי ערך כלכלי ששאיפת הלקוח הוא להפחיתם ככל האפשר, ואולם בדרך כלל הם מקזזים זה את זה.
מרכיב ההחזר החודשי: ככל שהוא נמוך יותר הוא משתלם יותר. מרכיב סך ההחזר: ככל שהסכום שמוחזר לבנק בסך הכל הוא נמוך יותר כך המשכנתא משתלמת יותר. מרכיב הסיכון: ככל שהסיכון לעליית הריבית/מדד הוא נמוך יותר כך הערך הכלכלי של המשכנתא הוא גבוה יותר עבור הלקוח.
אולם, מה נעשה שעל מנת להפחית סיכון של עליית מדד עלינו לשלם ריבית גבוהה יותר, שתשפיע על החזר חודשי גבוה יותר או החזר מוחלט גבוה יותר (פריסת ההלואה לתקופה ארוכה יותר כך שההחזר החודשי יישאר על עמדו ואילו סך ההחזר יעלה), גם בכדי לחשב את הערך הכלכלי הנזגר מכל מרכיב, עלינו לספק לאופטימייזר שלנו נקודות יחס. שאת זה יקבע היועץ, על סמך מידע שיקבל מהלווים, יש כאלו שהסיכון ארוך הטווח חשוב עבורם יותר מאשר החזר חודשי הגבוה בכמה מאות שקלים, ויש כאלו שדווקא ההחזר החודשי הוא נקודת החולשה שלהם, והם מעדיפים אותו נמוך ככל הניתן גם במחיר של סך החזר גבוה.
לאחר שפיתחנו את האופטימייזר המשוכלל שלנו, נוכל לתת לו מקום של כבוד באובייקט עצמאי שתפקידו לטפל באופטימיזציה של המשכנתא.
אם נשים לב, כל אובייקט וכל פונקציה היא עולם בפני עצמו, ואין שום טעם לערבב ביניהם, מבחינתי הייתי עושה DLL נפרד לכל פונקציה. נפריד אותם בהפרדה מוחלטת, קבצים נפרדים, מחלקות נפרדות וכולי.
מה שכן, לצורך הסדר הנאות ויכולת השליטה שלנו במערכת, עלינו לסדר תחת כל לקוח, את המחירים המוצעים לו, התמהילים שהמחולל הציע לו, והמלצות האופטימייזר. כל זה גורם לנו להבין שפונקציות ליבה, צריכות להיכתב בנפרד לגמרי מאשר פונקציות של סדר.
הכלל הברור הוא, פונקציה שתפקידה לבצע פעולה מורכבת, עד כמה שניתן לבודד אותה מהמערכת, מומלץ לעשות זאת. וכל הפונקציות האחרות יכולות לשלוח אליה בכיף, אבל היא כשלעצמה צריכה להיות ממוקמת במקום מיוחד שתפקידו לבצע את הפעולה, זוהי בניה מודולרית.
אני מקוה שהמסר הועבר, זהו עיקרון די פשוט אבל חשוב מאוד ברצף המדריכים שלנו.
פורסם במקור בפורום CODE613 ב03/01/2014 00:10 (+02:00)
אזהרה! זהו פוסט רצוף אמוציות ופובליציסטיקה, מי שמעוניין במשהו אובייקטיבי שלא יקרא!
קליק און צודק בכל מילה ומילה, הביקורת כלפי מייקרוסופט היא בעיקר שהבשורה שלהם בחבילת האופיס היתה "כל אחד יכול" ומי שרוצה דווקא להסתבך נותנים לו את האפשרות על ידי vba וכדומה.
במיזם של דוט נט הם ניסו בעצם לפתח שפת תוכנה לכל דבר, זה כבר לא אופיס, אולם עם זאת הם ניסו לשלב מימשקים כלשהם. אגב הם לא חלמו שדוט נט תצליח כל כך זה נקרא אחד מההצלחות הגדולות של מייקרוסופט.
מה שקרה כנראה שהם הסתחררו מההצלחה הבלתי צפויה של דוט נט, וכמו בכל חברה גדולה, יושב לו איזה אנליסט חולה נפש, שבמקום לחשוב על אסטרטגיה אמיתית בשטח, הוא מנתח כל מיני סטטיסטיקות, שבמקרה שלנו לא אומרות הרבה מבחינה מהותית, ומחליטים לזנוח לגמרי את אקסס, (שים לב שמשנת 2007 כמעט כלום לא התחדש שם) ולנסות לגרור את ההצלחה לפתח כלים טפשיים כמו סילברלייט שלא יצא מזה כלום בסוף, וכן להמשיך ולפתח את דוט נט, שזה כשלעצמו דבר טוב, אבל לא על חשבון אופיס, שהוא הדבר הכי טוב שיש למייקרוסופט ואני מדבר מבחינה מסחרית!!! אופיס תמיד חייבת ברישיון, היא פרת מזומנים עתירת שומן, ומה חסר לה??? קידמה!!! אופיס זאת חבילה של מימשקי משתמש ומימשקי תיכנות מדהימים! אבל היא תקועה עשרים שנה אחורה.
עכשיו אילו הייתי ביל גייטס (ולא בבחינת אילו הייתי רוטשילד) הייתי מקדם כמה צעדים דרסטיים בחבילת אופיס
לא תגורו מפני איש!
לגופו של ענין אני חושב שדוט נט זה הדבר הכי גרוע שיכול לקרות למי שבונה תוכנה לנתונים, זאת משאבת זמן וכחות (אגב כשאני לוקח לפי שעה על פרוייקט, אני משמיט את השעות שבהם אני מחפש באינטרנט חומר על משהו שנתקלתי בו ואני לא מכיר, ואפילו על קוד שאני לא מצליח להפעיל בגלל שגיאה, אני לוקח בדרך כלל רק על עבודה ששירתה באופן ישיר את הלקוח, כך שאם אעבדו בדוט נט השכר הראלי שלי לשעה יכול להגיע לשקל אחד... אלא אם כן אני יהפוך לרמאי ויגבה גם עבור סעיף מריטת עצבים...) זה לא שלא ניסיתי, ניסיתי 2 פרוייקטים לעשות בדוט נט, אחד לקח 4 חודשים והשני חודש, כשנשברתי, החלטתי שאני עושה הכל באקסס עם odbc כמובן, ותנחשו, מה שלקח חודש ולא הגעתי לרבע מהדרך, לקח לי באקסס שלושה ימים לסיים!!!!! ומה שלקח 4 חודשים ולא הגעתי ל 10 אחוז, כבר עכשיו אני קרוב לחצי עבודה אחרי שבועיים שלושה.
כעת מה זה בדיוק מעניין לקוח באיזה שפה כתבתי??? איזה מסכים יש לו בדיוק?? הוא צריך מידע נקודה. תכניסו לראש, לקוח של מסד נתונים לא צריך קוביה תלת מימדית שמסתובבת ומראה קובץ וידאו על כל אחת מדפנותיה (WPF) לקוח צריך גישה פשוטה לנתונים שלו, אם יש משהו מורכב יותר, נו נו, אפשר לעשות קצת בדוט נט. אבל שכל דבר הכי פשוט יצטרך הצהרה על שלושים אובייקטים????? לאן הידרדרנו???
באופן אישי אני נוטה יותר ויותר לכיוון של עולם הקוד הפתוח, יש כלים מדהימים כמו node.js ספריות javascript שלא מפסיקות להתפתח ולצוץ כפטריות לאחר הגשם גוגל עכשיו יצרה ספריה שנקראת angularjs שמאפשר שליטה יוצאת דופן במימשק ה HTML, יש מסדי נתונים עם תפיסה חדשה לגמרי nosql הפופלרי שבהם הוא mongodb. ואני בטוח שהעתיד של כל מי שלא רוצה לבנות את פיתום ורעמסס, ששוקעים עם כל יציאת גירסה חדשה של מייקרוסופט, ואחר כך לך תתאים ותקלות בתאימות לאחור ועוד אלף ואחד דברים, להצטרף לציבור החופשי של קהילת הקוד הפתוח, ולהיות כמו שבט לוי. לא משועבדים לפרעה אחד, יש שוק חופשי, וכל אחד רשאי לומר את דברו.
עדיין לא הוצאתי את כל העצבים שלי על דוט נט וגרורותיה, אני שונא את דוט נט, ועדיין משתמש בה לצרכים כלשהם, אבל לא סובל לעשות בה דברים גדולים מידי. שונא את המימשקים החדשים של מייקרוסופט, שונא ללמוד דברים שעוזרים לי כל פעם רק למקום אחד ספציפי, אוהב את העולם הוובי, הפתוח והליברלי, וזהו.
החותם בעצבים גמורים
ארכיטקט
פורסם במקור בפורום CODE613 ב01/01/2014 14:13 (+02:00)
עוד שאלה מה בדיוק עיכב אותך כל כך בדוטנט שמצאת לו פתרון כל כך מהיר באקסס ?
הקסם של אקסס זה כריכת נתונים פשטנית, אשר מתבססת כמעט אך ורק על sql ולא זו בלבד אלא sql מחרוזתי, כלומר לא linq למשל שהוא קוד ליטרלי, אלא אתה יכול להרכיב מחרוזת בזמן ריצה או מה שזה לא יהיה ולהריץ אותה כמחרוזת sql. חוץ מזה מנוע ה jet שלה שמיוצג לפעמים באמצעות אובייקט recordset שזהו אובייקט שימושי ביותר בקוד (גם הוא מקבל מחרוזת sql כערכת רשומות ומכאן גם גמישותו) עובד במהירות ויעילות עצומה. כאשר אתה לוקח את כל זה והחיבור לתצוגה הוא באופן הפשוט ביותר, אתה בעצם עובד יותר על מסד נתונים מאשר על תצוגות וקוד. הפיתוח באקסס הוא מהיר ביותר, זול ביותר מבחינת שעות עבודה, וקל לתחזוקה אם בונים אותו היטיב.
דבר נוסף זה הדוחות כמ"ש קליק וואן, כל הכלים העלובים אשר מנסים לחקות את הדוחו"ת של אקסס הם רק "כמעט וכמו" ואיך כתוב בפרסומות, לא כמעט, לא כמו "קוקה קולה". כשלקוח מבקש דו"ח אתה בונה לו בחמש דקות כל מה שהוא רוצה לדעת, אם זה קיבוץ לפי, אם זה סכומים מצטברים, אם זה תנאים שהוא בוחר לבד, ולא צריך לכתוב linq לכל תנאי שהוא מבקש!!!! זה הדבר הכי מעצבן עלי תבל, אתה לא יכול לכתוב linq שיתחיל ויגמר במחרוזת בלבד, שהלקוח יכול לעשות בו ככל העולה על רוחו. (ואז יבואו אנשי דוט נט ויגידו כן אפשרי אפשרי, כן כן, נמאס לי למצוא "אפשרות" לכל דבר, אני רוצה דברים שלכתחילה בנויים כך) קחו למשל דבר פשוט, קריאה לפונקציה באמצעות מחרוזת, כמה קל ופשוט ב vb6 יש פקודה שנקראת run וזהו. אבל בדוט נט, כשרציתי לעשות דבר כזה, ישבתי שבוע לשבור את השיניים עם חמש מחלקות שצריך להפעיל בשביל דבר כל כך פשוט, אז למה הם ביטלו את זה? למה לא עשו פקודה של run וזהו????? אין לי כוח להכביר בדוגמאות, אבל העיקרון הוא פשוט, כל דבר שמפר את היחס ההוגן של מחיר-ערך, אחת דינו לצאת מהשוק. או להישאר רק בשוק מצומצם יותר, שעבורו הערך שוה את המחיר.
וזכור את כלל הזהב של תוכנה (ובעצם כל עסק מסחרי):
סטרט אפ מבטיח, הוא סטרט אפ שמפחית מחיר של ערך קיים (מחיר זה לאו דווקא כסף, אלא גם נגישות למשל אם עבור גישה לערך כלשהו אתה צריך לעשות מאמץ כגון לצאת מהבית) כמו למשל אתר שמתווך בין קונים למוכרים ללא עלות שיווק, או כמו מערכת wix וכדומה. או שכלול הערך והשארת המחיר על עמדו, כמו למשל הזמנת מונית באמצעות אפליקציה. אם יש לך סטרט אפ שגם משכלל ערך קיים, וגם מפחית את המחיר שלו אפילו ביחס לערך הבלתי משוכלל, זה כבר יותר בטוח מהשקעה במשכנתא (כמובן שצריך לבדוק היבטים עיסקיים וטכניים נוספים אני מדבר על ההיבט של פוטנציאל שוק)
סטרט אפ מסוכן הוא ניסיון יצירת ערך חדש שלא היה קיים (כמו 99% הסטרטאפים שנופלים, כי הרעיון לא תפס), או שכלול של ערך אולם גביית מחיר נוסף עבור הערך (שזה בדיוק מה שעשו מייקרוסופט עם דוט נט שהיא שפה נהדרת לכל הדעות, ויותר משוכללת מאקסס וכו' וכו', אני לא מתווכח עם זה, אבל המחיר שאתה צריך לשלם עבורה כמפתח הוא פי עשרת אלפים זמן תיכנות ועקומת למידה מעצבנת מאוד). הסיכון הוא בכך שאתה לא יכול לדעת איך השוק מתמחר ערך, אתה חייב לזרוק חכה ולראות, ולכן כל כהאי גוונא, שמנסים "לדחוף" דברים חדשים על ידי שכנוע של אנשי מכירות אגרסיביים, שהערך הזה שווה את המחיר, זה דבר שמלכתחילה לא הייתי משקיע בו... ולדשדש עם דוט נט זאת בהחלט השקעה לא מבוטלת.
פורסם במקור בפורום CODE613 ב01/01/2014 18:30 (+02:00)
KingYes חותם על כל מילה שלך.
גם אני מצטרף מגיקוד הוא הגורו של תיכנות האינטרנט במדינת ישראל, ואני אומר את זה בתור תלמיד מובהק!!! בעמק הסיליקון היו שוכרים טרוריסטים מהחמאס שיחטפו אותו וקונים להם את חצי עזה... אני מקוה שהם לא קוראים את זה.
נראה לי שצריך לפרסם כאן עץ קשרים מי מכיר את מי ומי מאמין במה, כדי שידעו את כללי המשחק בפורום.
@ClickOne
טוב... גילוי נאות. אנחנו מתחרים.
מי התיר לך לדבר בשמי? כל מה שאמרתי זה ש APT מתחרה בי, אני לא מתחרה באיש.
@ClickOne
ואני מאד מאד מאד מקווה שזה לא אומר שמרגע זה אנחנו לא יכולים להיות חברים... (אני כותב את התגובה הזו קצת בלחץ שלא תחליט עכשיו שלא מתאים לך לשאול שאלות או לעזור כשהמתחרה בסביבה - באמת שיכולתי לשתוק ולא לספר, ולשמור לעצמי את הגילוי הזה)
תרגיע, אנחנו לא חיים בג'ונגל, שם יש תחרות על משאבים מוגבלים, בעולם מדעי ומסודר של קידמה, יש כרגע לכל אחד כל מה שהוא צריך בלי קשר לאמונתו הדתית או לצורה שבה הוא תופס אותה. מתחרים בתחום ריווחי, הם בדרך כלל על דברי הבל, כמו אגו מטופש או עודפי כסף כדי להשוויץ וכדומה, מתרבות הזבל שמגיעה מאירופה וארצות הברית, אז נא להרגיע את הרוחות. מה שכן מרתיח אותי זה נוכלות ורמאות או מצגי שוא, שהמניעים שלהם בעיקר אותה תחרות מטופשת, שמתמקדת בשאיבת כסף, ולא במהותו של מוצר.
לגופו של עניין אני מעדיף לפחות מהצד שלי, לשמור על יוקרתו וחשיבותו של הפורום הנכבד הזה, להתמקד בנושאים המקצועיים ומה שמלווה בחיי המקצוע על כל הבטיו, עבורי זה קודש קודשים כי אמרו חז"ל באבות דרבי נתן [u:3bga6f5i]כשם שהתורה ניתנה בברית, כך המלאכה ניתנה בברית[/u:3bga6f5i], שים לב המלאכה, ולא הפרנסה!!! אז בואו לא נרד לרמה של אנשי מכירות, ראה חתימתי תחת כל תגובה......
בברכת הצלחה לכל אחד ואחד מחברי הפורום בפרנסתו ובדרכו.
פורסם במקור בפורום CODE613 ב02/01/2014 22:11 (+02:00)
איך קוראים לתוכנה שלך? מטרה?
אני משתדל לשמור על השתתפותי בפורום במובן המקצועי נטו, ולכן נמנע מלהשתמש בו למטרות שונות מבלי רשות מפורשת של הבעלים. לכן לא אכחיש ולא אאשר את הנ"ל מה שכן אומר שהשם הזה הוא ודאי לא השם המדוייק של התוכנה נכון להיום.
הם מסוגלים לומר עליך שאתה מקצוען, אבל אחרי 4000 רשומות התוכנה שלך נופלת בגלל שאתה משתמש בטכנולוגיה לא טובה, והם פשוט שוכחים לספר שהם גם על אקסס. (מה עוד שרמת הכתיבה והתיכנון שם מתחת לכל ביקורת...)
מי זה עליך מי זה אתה? נראה לי בלבלת פה בין נוכח לנסתר ברבים פרש נא דבריך.
כולנו מעוניינים ללמוד, ולומדים תמיד.
להבדיל מהגויים אצלנו לימוד הוא לא מסיבה תועלתנית בלבד, אלא זה חלק בלתי נפרד מהתרבות, אנחנו המצאנו את בתי הספר וחוק חינוך חובה לפני 2500 שנה בערך, את החובה ללמד את הבן אומנות קבעו חז"ל כבר בתקופת התלמוד ומן הסתם זה היה מסורת מכמה דורות אחורנית. להבדיל מהגויים שאצלם בתי הספר המקצועיים התחילו רק עם פרוץ המהפכה התעשייתית כאשר הלימודים כולם מכוונים למטרת תועלת חומרית בלבד.
[למי שלא יודע את בתי הספר הראשונים הקימו תעשיינים בעלי הון בצמוד למפעלים שלהם, וזאת על מנת להכשיר את פועלי הצווארון הכחול של הדור הבא, הם היו מממנים את הלימודים הללו, מכיון שהם היו זקוקים לפועלים שיתפעלו את המכונות וכו', ועל ידי לובי מרושע ומושחת הם התחילו להשית אט אט את חובת החינוך והלימודים על המדינה כדי לחסוך את הוצאות בית הספר שלהם, ואת הוצאות האקדמיה המקצועית הטילו על כתפי הציבור עצמו כך שהתהפכו היוצרות במקום שהתעשיינים יתורו אחרי פועלים יכשירו ויממנו אותם כמתבקש, תחת זאת הם שיעבדו את הציבור למימון הלימודים והפכו את כיוון התחרות אל פניהם של הפועלים שיתחרו על משרות ויסכנו כסף רב של לימודים על חשבונם]
הענין הוא שלימוד עבורנו הוא פחות ופחות דברים טכניים, ויותר ויותר דברים תיאורטיים, והדיון הנוקב כאן, הוא על "טוהר" הלימודים, כלומר ככל שהיחס בין לימוד לתפוקה מעשית הוא גבוה יותר (בפחות לימודים אתה יכול להפיק יותר מעשים = שפת תיכנות שבה המועט מחזיק את המרובה) זהו לימוד טהור יותר, וככל שזה מתהפך כך הלימוד שלך הוא יותר ויותר מקצועי ופחות ופחות תיאורטי, ולימוד מקצועי הוא עבורנו לא לימוד, אלא עבודה בלבד.
מתוך הערכה רבה לארכיטקט ולידע הענק שלו, אני בטוח שהוא לומד גם כיום המון ושולט בכל טכנולוגיה קיימת (כמעט, כמעט...)
נא לא להגזים, אין לי ידע ענק ולא שולט בכל טכנולוגיה גם לא כמעט כמעט נא לא לדרוש ממני יותר מדאי :oops: , כמו כולם בדיון הזה אני תר אחר המובחרת שבטכנולוגיות כדי לקבוע שם את מושבי לאורך זמן ולדעתי כבר מצאתי. בכל זאת את הפירגון קיבלתי ו
פורסם במקור בפורום CODE613 ב02/01/2014 15:52 (+02:00)
ClickOne חזק ואמץ אל תערוץ ואל תחת!!!
קמתי בבוקר ראיתי את התגובה של רחמים ובדיוק הכנתי תשובה לכל שורה, והנה אני רואה שכבר כתבת את זה בעמוד 2.
הבעיה היסודית לדעתי היא גם יועצי המיתוג והשיווק של מייקרוסופט, שכרגיל כחברה גדולה היא לוקחת כל מיני אמריקאים כלומניקים ש"מומחים בשיווק ומיתוג" ומנסים לשווק לנו שפות תוכנה או פלטפורמות לאנשי מקצוע, כאחרוני המשווקים של קולקציית הלבשה, הכל על בסיס אמוציונלי של "ישן" לעומת "חדש" ומנסים להפוך הכל לנוצץ ומבריק, כאילו אנחנו ערסים שהחלום שלנו זה מרצדס שחורה עם גג נפתח. עד כמה אפשר לבזות אותנו???
ובכן לאמריקאי הטיפוסי ביל גייטס אם אתה רואה את הפורום הזה ולמדת במקרה עברית לאחרונה, תתעורר!!!!!!! אנחנו אנשי מקצוע, לא תשווק לנו באמצעות פרסומות עם פרזנטורים מגולחים למשעי, לא תשווק לנו כלים לעבודה יומיומית, בגלל שינוי קל בעיצוב. אם אתה כבר מסתכל על אנליזה, הביצועים של המניות של מייקרוסופט לא משהו בעשר שנים האחרונות, וזה פלא למה??? הרי השקעתם כל כך הרבה בשיווק אגרסיבי, מפרסמים את windows 7 על האוטובוסים, עוד מעט נראה אותכם גם בתכלס' ולעניין, וואו איזה מהלך מבריק!!! למה זה לא עובד??? תשתדלו בבקשה לפתח את המוצרים בצורה אמיתית!!! ותצאו מהקוספט הזה של שיווק שיווק ושיווק.
תלמד מחברת כלי העבודה מקיטה, חברה פולנית שהקים איזה מהנדס חרוץ לפני 100 שנה, ראית אותם פעם מפרסמים?? אני לא נתקלתי בפרסומת שלהם, כשאני נכנס לטמבור, ואני חובבן כלי עבודה מושבע, אני רואה לכל היותר פלייר אחד או שניים של מקיטה, עם מפרט טכני!!!! של עוצמת הבטריה, עמידות הכלי, ועוד נתונים שמעניינים איש עבודה!!! בפרסומות של החברות האיזוטריות אני רואה מברגה עם ליטוש של פוטושופ, אפקטים גרפיים נוצצים, ובמרכז מין בועה בצורת פיצוץ המכריזה "new 99 ש"ח בלבד" את המברגה הזו קניתי מייד לילד שלי ליום הולדת של גיל 6, אבל אני משתמש רק במקיטה (ואגב הילד כל הזמן משגע אותי שאתן לו להשתמש במקיטה, הוא מרגיש את ההבדל טוב מאוד!!!) למרות שהפלייר שלהם נראה עלוב מאוד, צר לי לאכזב את אנשי הפרסום והמיתוג יתעסקו נא עם בגדי ילדים או מוצרי טיפוח שונים ומשונים, שמרוקנים את כיסנו בלאו הכי ולא ינסו לדחוף לנו מוצרי תוכנה בלי להצביע על היעילות האמיתית שלהם.
ואגב אפרופו תוכנה למוסדות, הזכרתם כאן מתחרה שלי שהעייפות שלו מלפתח את התוכנה הלאה, זה בגלל שרוב האנרגיה שלו מושקעת בשיווק ומכירות, תחזוקת לקוחות, כיבוי שרפות, האיש שכתב את התוכנה כבר עייף ומבוגר, הוא לא נותן לאף אחד לנגוע בזה (אגב איש המכירות שלו התפטר כבר לפני שנה ומשהו אז כיום הכל מתבסס רק על לקוחות קיימים) גם לי יש תוכנה למוסדות, מפותחת הרבה יותר משלו, לקוחות שלו עוברים אלי, ואני לא משקיע כמעט בשיווק, מספיק לי 10 לקוחות מרוצים שיכפילו את עצמם כל חצי שנה. זה מודל התרחבות יציב ומבטיח, אבל התרבות האמריקאית זה מחטף מהיר ואגרסיבי, יצירת רווחים על ידי שקרים ומצגי שוא, אין לי כוח להמשיך לתקוף את תרבות זו שרבו תחלואיה.
פורסם במקור בפורום CODE613 ב02/01/2014 09:50 (+02:00)
שלום
יש משהו חדש ב sql מ 2008 כמדומני שנקרא cross apply משהו מעניין מאוד ואני צריך אותו כדי להפוך עמודות לשורות, דא עקא לא מצליח להבין את הפעולה של זה והתחביר כל הדוגמאות באינטרנט מסבכות אותי.
אשמח אם יש מישהו שיכול להסביר בפשטות, ואולי להעלות קוד של 3 עמודות מקסימום.
ואגב למעוניינים להעלות קוד sql server ולראות אותו בפעולה יש כאן כלי מדהים ביותר הנה דוגמא לשימוש ביכולת שבנושא שלנו.
תודה
פורסם במקור בפורום CODE613 ב31/12/2013 22:38 (+02:00)
מה הפירוש יש לי חופש לבחור בין שפות? פתחתי את ה IDE וזה השפה של sql server אם ככה אולי אני צריך מדריך מאלף עד תיו מה זה פונקציות ב sql, אם אני מבין נכון זה מקומפל בסופו של דבר ל clr..
פורסם במקור בפורום CODE613 ב31/12/2013 22:34 (+02:00)
שלום אני רוצה לכתוב פונקציות ב sql server לא מבין מה ההבדל בין 2 התיקיות שיש שם table ו scalar איפה אני אמור לשים את הפונקציה שלי?
פורסם במקור בפורום CODE613 ב31/12/2013 21:40 (+02:00)
יש טאב קונטרול מהמם שנראה בדיוק כמו כרום, יש שם המון פונקציונליות והכל מוכן. השתמשנו בו בזמנו במסגרת הניסיונות שלנו ב WPF. לא פתחתי את הפרוייקט כדי לבדוק לך אבל נראה לי שהקישור הנ"ל מספיק אם לא אפתח ואבדוק לך.
פורסם במקור בפורום CODE613 ב02/01/2014 16:27 (+02:00)
ניסיתי, הבעיה עם זה היא שהוא מבטל את כל הטרנזקציות הפתוחות, והמדובר כאן שהטריגר הזה הוא צאצא נין ונכד לטרנזקציה שנמצאת 3 שלבים לפניו וכולם בטלים ומבוטלים לא שרירין ולא קיימין וכו', כנראה שביטול טרנזקציות זה באמת בנוסח של כל נדרי. אני צריך לבטל "רק" רשומה מסויימת. למעשה נכנעתי והפעלתי שאילתת מחיקה פשוטה.
מה שעוד גיליתי במסגרת החקירות בנושא הזה, שהטריגר מופעל "פר טרנזקציה" ולא פר רשומה. רוצה לומר, אם יש שאילתה שמוסיפה מאה רשומות, הטריגר לא מופעל 100 פעמים, אלא פעם אחת בלבד. והטבלה הזמנית inseted אכן מכילה את כל הרשומות שבטרנזקציה. זה כנראה נועד לחסוך בביצועים, אבל לדעתי היה צריך לעשות אופציה שהטריגר ירוץ על כל רשומה בנפרד, אבל זה כבר נושא למדיניות של מייקרוסופט, ואבא שלי תמיד אמר לי שאני לא ישנה את העולם, מה שממריץ אותי דווקא לנסות לשנות כדי לבדוק אם הוא צודק.......
פורסם במקור בפורום CODE613 ב31/12/2013 17:36 (+02:00)
אני שמח להעלות את הנושא ה 101 שאינו דומה.... 100... ל... 101.....
תקוותי כי הפורום הזה ישרת את הציבור ההולך וגדל בצורה מקצועית, ויהיה גם עזר ומקור פרנסה לבני עמנו!
הנושא ה 101 שלנו הוא טריגר sql שאמור לבדוק לפני הוספת רשומה ולהחליט האם לבטל את הוספת הרשומה או לא, מהי הדרך הטובה ביותר לעשות זאת.
כמובן שאין ברצוני לעשות טריגר של after insert ואחר כך להפעיל שאילתת מחיקה או פקודת מחיקה כלשהי. אני מעדיף לעשות את זה לפני ההוספה ואז פשוט "למנוע" את ההוספה, ובכן כאשר הפעלתי את זה ב Instead insert הסתבכתי הוא מחק לי רשומות גם אם התנאי לא התקיים, וגם כדאי מאוד אם אפשרי שהקאונטר של ה identity האוטומטי עדיין לא יופעל באם התנאי לא מתקיים, כלומר שלא יהיה שום זכר שמישהו ניסה בכלל להכניס כאן רשומה.
דבר נוסף למי שיתהה למה לי טריגר הרי די באינדקס ייחודי מותנה בתנאי כלשהו, התשובה היא ששאלתי כאן את השאלה הזאת וענו לי שאין אפשרות לסנן אינדקס על ידי טבלה זרה, אז הדרך היחידה העומדת בפני היא טריגר בלבד.
אם יש רעיונות אשמח לשמוע!
פורסם במקור בפורום CODE613 ב28/12/2013 18:46 (+02:00)
שכבת הפלדה של הנתונים יכולה לכלול את הדטה ביס שיכיל נתונים בלבד ועוד כמה מחלקות קוד שיטפלו בנתונים, כך שזה יחסוך לזה המון זמן לנסות לעשות כל דבר בתוך ה SQL, תעשה בקוד ונגמר הסיפור. וכך גם לא תאבד את ההפרדה בין הממשק לשכבת הנתונים.
אתה צריך להבין משהו רבי רחמים, כאשר בונים פרוייקט נתונים, אתה לא יכול לדעת איך מחר או מחרתיים נרצה לעדכן ומאיזה שאילתה, עכשיו אם אתה עושה קוד שמטפל בכל מיני דברים, אתה צריך "לזכור" כל פעם שמעדכנים משהו, שזה יעבור דרך הקוד ההוא, וזה כבר בעייה של ארכיטקטורה, תאר לעצמך שהעסק מחליט להרחיב את פעילותו, ולאפשר ללקוחות לעדכן את הנתונים שלהם באמצעות אתר אינטרנט, ואתה למצער עשית איזה שהוא קוד שקשור בחבל הטבור לאינטרפייס של WPF או אקסס, או מה שזה לא יהיה. אתה מבין את המשמעות של זה כמה כתיבת קוד והמרת קוד אתה צריך כדי שזה יעבוד כמו שצריך. אבל אם כל הלוגיקה של הנתונים ארוזה בתוך הדטה בייס, אין לך מה לדאוג, והלקוח יכול אפילו לקחת מישהו אחר שיכתוב לו את הקוד של האתר, הרי סוף סוף כל מה שמעודכן בטבלה כלשהי, עושה את כל העבודה הנדרשת, על מנת לוודא ולאמת נתונים ברמת הבינה העיסקית. וזה עבודה אמיתית לטווח ארוך.
התחושה האישית שלי, שהנושא של UI הוא הרבה יותר נמצא בתהליכי התפתחות מואצים, מאשר המנועים האמיתיים, כגון דטה בייסים, וקוד ליבה. קח את שפת C ושפת SQL מאז שהמציאו אותן, לא נס ליחן ולא כהתה עינן, הן משרתות להערכתי 90 אחוז מכוח המיחשוב ברחבי העולם!!!! כל הפיתוחים שאנחנו רואים לא מפריעים בכלל למערכות קיימות, אלא רק משפרות ומשכללות. מאידך כמה מהמורות ותמורות עובר תחום ה UI בעשרים שנה האחרונות, כל אחד בא ומחסל את מה שעשה זולתו קודם לכן....
לכן אני תמיד ממליץ אם אתה רוצה שהמקצוע שלך יהיה יעיל ובר ביקוש למשך שנים ארוכות, תהפוך למומחה ב"מצרכי יסוד" של מיחשוב, כגון דטה בייסים, טכנולוגיית צד שרת וכדומה. אבל מי שהופך מומחה לפלטפורמה מסויימת, הוא "מהמר" שהיא תתפוס ותחזיק מעמד כמו וורדפרס או כיוצא באלו.
בכל אופן לא נסטה מהעניין, אתה צריך לספק ללקוח שלך דבר שאתה גאה בו למשך עשרים שנה קדימה לפחות, והדבר הכי טוב שאתה יכול לעשות בשביל זה זה הדטה בייס העוצמתי שלו. מבחינת UI הוא יוכל להחליף כל שנתיים מבחינתי, ולקחת גם חברות חיצוניות.
אם כבר, יש אפשרות להפעיל פונקציות CLR שכתובות בC# או VB, אבל זה כבר עניין אחר.
בכל מקרה השאיפה היא לעשות כמה שיותר בDB. זה נקרא שכבת פלדה.
דווקא זה קוסם לי הייתי צולל קצת לנושא הזה של יכולות CLR. אם יש מדריך פיקנטי, אשמח לקישור, בינתיים אני קורא את התיעוד הרישמי.
ואגב בעניין שלנו, אני כבר 80 אחוז באמצע לכתוב קוד גנרי שיעשה את העבודה של טבלת לוג שינויים, יש לי קצת בעיות עם הקוד אשאל בשאלה נפרדת.
תודה.
פורסם במקור בפורום CODE613 ב27/01/2014 15:59 (+02:00)
שכבת לוגיקת הנתונים צריכה להיות עצמאית לגמרי, זה לא משנה מה הקליינט, להיפך בארגון שרוב הליבה שלו היא לוקיגת נתונים, הכל צריך להיות סגור בתוך הדטה בייס, בשביל מה יש דטה בייס???? הרי הכל אפשר לעבוד בעצם עם קובצי טקסט או XML ולעשות את כל הניתוח בקוד... :lol: כמו שהיה לפני 40 וחמישים שנה. הרעיון של דטה בייס זה ליצור שכבת פלדה יצוקה של נתונים, שתהווה את היסוד של הבינה העיסקית, ועליה אתה יכול לבנות כמה UI שרק תרצה ובאיזו טכנולוגיה שתבחר. אז קליק וואן באמת צודק כשאמר שאני צודק... :lol: :lol: :lol:
פורסם במקור בפורום CODE613 ב26/01/2014 21:01 (+02:00)
האמת שזה די מאכזב, לא ממש משהו גנרי, זה משהו די עלוב שאני גם יכולתי לעשות אותו עוד לפני שפתחתי את האשכול, פשוט להשתמש בכל העמודות ולהכניס ערכים ישנים וחדשים.
פורסם במקור בפורום CODE613 ב26/01/2014 18:28 (+02:00)