@yossiz
"לא משנה, כבר הסתדרתי"..
נ.ב. כדאי ללמוד מ-SO לכאורה הם יודעים להסביר הכי טוב איך לשאול..
איך לשאול שאלה טובה? https://stackoverflow.com/help/how-to-ask
@yossiz
"לא משנה, כבר הסתדרתי"..
נ.ב. כדאי ללמוד מ-SO לכאורה הם יודעים להסביר הכי טוב איך לשאול..
איך לשאול שאלה טובה? https://stackoverflow.com/help/how-to-ask
@חוקר אמר בבירור | עבודה בתחום התכנות:
איך מגיעים לזה? נולדים עם המצב הזה?
כן.
מי שלא בתורת מתכנת - חבל שיתחיל עם זה כי גם אם יילמד שנים הוא לא יהיה בזה מוצלח.
מי שבתורת מתכנת - כנראה כבר מתכנת (כלומר התעניין פה והתעניין שם וכבר יודע צורת קוד)
@chv אמר בבירור | עבודה בתחום התכנות:
יש קטע בעייתי במושג מתכנת מתחיל, אני חושב שאין באמת בכלל מתכנת מתחיל או ותיק (כמובן שיש, אבל=) מה שמשנה באמת לעבודה זה אם אתה בתורת או לא.
לא מסכים איתך בכלל במידה ומדובר בפרילנס.
כשכיר, מה שחשוב זה יכולת ההסתגלות שלך.
כפרילנס זה גם חשוב (מאוד!) אבל כדי להתפרנס מזה אתה צריך לדעת הרבה. אחרת תבזבז ללקוח שעה שהוא משלם עליה רק כדי לפתור בעיה קטנה שבעבר לא נפגשת בה.
(זה נכון גם לשכיר, אבל שם זה הוגן.
אולי גם כי בתור שכיר לרוב תתעסק באותו איזור לתקופות ארוכות יותר, פחות תיתקל בבעיות מאיזור שלעולם לא פגשת)
כ"כ נכון. וזה אחד ההבדלים הבולטים בין שכיר לעצמאי.
כעצמאי - בזמנים הלא יעילים שבתיכנות אתה דופק את עצמך. כשאתה שכיר - אתה רק נהנה מהזמן הזה.. (ללמוד דברים חדשים, וכו')
צריך להבין שכשבוס מקבל מתכנת לחברה, הוא לא מקבל כאן 'מתכנת ריאקט' או טייטל כזה או אחר. הוא בעצם מוסיף למשאבי העיבוד של החברה עוד כוח עיבוד. זהו.
מנצלים את הכישרון שלך למטרות הקולקטיביות של החברה. בכל דרך שהיא.
כמובן שיעשו את זה הכי נכון כך שייסחטו אותך דרך הפורטים ששמה יוצא ממך הכי הרבה מיץ..
אדרבא אם מישהו מוכנס לחברה רק על טייטל מסוים - זה לדעתי רק בעיה. לא טוב.
כנראה הוא לא מתכנת אמיתי.
@chv אמר בבירור | עבודה בתחום התכנות:
משא"כ סטרטאפים קטנים אולי שם יש דווקא כן משימות גדולות שמחפשים אנשים מוכשרים מבחוץ להפיל עליהם..
רוב הפרויקטים הגדולים שלי, ולדעתי של רובנו, לא מגיעים מסטארטאפים שמוציאים עבודות.
זה בעיקר עסקים (שהביזנס שלהם לא הייטק) או אנשים פרטיים שמחפשים פתרונות לקידום נושאים ספציפיים.
כשכיר, לא מעניין אותך קוצו של יוד של מקור הפרוייקטים בחברה.
כל מה שמעניין אותך זה המוצר בפועל והפיצ'רים הנדרשים.
@חוקר לגבי התמיהות,
איך המעביד קיבל אותם? כי הוא תהה על קנקנם והחליט שזה מי שהוא רוצה כמתכנתים בחברה שלו. (לדעתי הוא לא טעה. גם לא לגביי..)
איך העובד לא מגדיל את שעות עבודתו? כי הוא לא רוצה. (כולל, ישיבה במקרה שלי) מרוויחים מספיק גם ככה
לגבי השאלה אם מאז ומתמיד התחילו על 2/3 שעות.
אני לא יודע. אני דיי חדש בחברה.
חשוב להבין שברגע שאתה מגיע למצב שהבוס צריך אותך. אתה יכול לעשות לו כמעט הכל והוא יבלע את זה העיקר שתמשיך להביא לו את התועלת שאתה מייצר.
והבוס אוהו צריך..
מתי מצאת מתכנת מתחיל ש"מישהו רוצה אותו"?
יש קטע בעייתי במושג מתכנת מתחיל, אני חושב שאין באמת בכלל מתכנת מתחיל או ותיק (כמובן שיש, אבל=) מה שמשנה באמת לעבודה זה אם אתה בתורת או לא.
יש כאלה שהם בתורת מתכנת. הם בעניין. אפשר לראות עליהם כבר בהתחלה שהם יצליחו בכל תחום.
מי שלא כזה, גם אם יילמד 10 שנים - לא הייתי מסתכל עליו.
אני התחלתי להתעסק עם תיכנות לפני כשנה וחצי להשערתי. אני מתכנת מתחיל?
@אינטרקום אני לא מכיר צורת עבודה כזאת.
צורת העבודה הקלאסית בחברות היא משימות דיי קטנות, בדרך כלל לא מפילים על בנאדם אחד דברים שיקחו שבועיים.
משא"כ סטרטאפים קטנים אולי שם יש דווקא כן משימות גדולות שמחפשים אנשים מוכשרים מבחוץ להפיל עליהם..
בקיצור זה פשוט שאלה טכנית כנראה.
הנה כבר יש לך משהו ללמוד בטרמינולוגיה:
יש פרוייקט, יש משימה. זה שני דברים.
פרוייקט זה דבר מאוד גדול, חברה נורמלית יש לה כבר את ה-2-3 כלים שעובדים ומוכרים טוב ואותם כל הזמן צריך לשפר ולהוסיף תיקונים או פיצ'רים מהלקוחות. הם יוצאים לפרוייקט רק אחת לכמה וכמה שנים.
יש אולי עוד דבר באמת בין פרוייקט למשימה שזה - פיצ'ר אם יש איזה פיצ'ר שרוצים להוסיף לתוכנה קיימת, זה יכול להיות לפעמים פרוייקטון..
@aaron אמר בבירור | עבודה בתחום התכנות:
לא קרה לך שיום שלם שברת את הראש וכלום לא התקדם?
וגם באותם רגעים אתה חייב להמשיך לעבוד, כי אתה מחויב ואין לך לאן לברוח. אני לא נהנה אז!
אם עוד לא קרה לך, או שאתה אחד מגאוני הדור, או שחסר לך ניסיון.
אני בטוח שקרה לך.
ברור שקרה, וקורה.
נו אז מה, זה החיים.
ברוך ה' ברוב הצמתים אני מצליח להתקדם סבבה..
@aaron אני נחשב עובד חברה. לגמרי.
אני ספציפית לא עובד שעתיים ביום, קצת יותר, אבל גם אלה שעובדים 3 שעות+- נחשבים עובדי חברה לגמרי.
אני לא בא להמציא כאן שכסף גדל על העצים. ברור שזה גם לא נוח ולא באמת כל יום תוכל לעבוד רק שעתיים ולברוח. תמיד אתה תלוי באנשים שתלויים בך וצריך להיות זמין במידה מסוימת וכו' (גם זה אפשר למצוא פתרונות)
עצמאי בהייטק זה פן אחר לגמרי של עבודה, לא על זה אני מדבר.
רק שאלו פה על ההיתכנות של מצב כזה, בעבודה רגילה בחברה ומה שעניתי נכון ותקף.
בנוגע לזה -
אז מי שחושב שהייטק זה עבודה קלילה וכיפית, שיתפכח.
בשביל תוצאות, בכל תחום, צריך מחויבות ואחריות. וזה לא תמיד כיף או נח.
כל מילה נכונה, רוב הפוזיציות של עבודה בתיכנות ידרשו אחריות רבה והרבה מאמץ שכלי.
אבל זה בהחלט כיף..
לא יודע מה איתך, אני נהנה מאוד
@אינטרקום מן הסתם בדברים שטרנדיים ונפוצים בחברות ממוצעות או קטנות
כלומר ווב לכל ענפיו, או בכלל SQL ונתונים שזה תחום ענק עם מעט מידי מומחים,
טכנולוגיות חדשות ולא מוכרות זה בכלל דבר שגונב תשומת לב ומראה שאתה בשפראך.
הכי טוב לעשות כמה דברים מראש, כמה כלים (לאו דווקא תועלתיים במיוחד. העיקר שיראו שהבנת את הטכנולוגיה וכבר הסתבכת עם הסיבוכים הראשונים) שמראים שאתה יודע לעשות X Y Z
ככה גם תדע מה אתה הכי נהנה ומתחבר (או שאתה לא רוצה להתחבר..)
מה שאתה טוב בו..
@upsilon01 תיכנות. בעיקר תיכנות ווב פולסטאק (יש כמה סטאקס על השולחן, כולל ASP.NET וגם דברים יותר חדשים)
@nigun אמר בבירור | עבודה בתחום התכנות:
@chv
אתה מכיר חברה שתרצה לגייס עובד לשעתיים ביום?
עד שהוא מכין את הקפה הוא כבר מתקפל.
כן. מכיר 2 חברות (בעצם שלוש)
באחת מהן אני עובד בפועל.. (אז לא שיש מישהו שעובד שעתיים ממש, אבל בהחלט יש כאלה שעובדים שלוש שעות ביום פלוס-מינוס)
אתה צריך להבין את הצרכים
@אינטרקום
אקדים ואומר שאין לי שום עניין שאתה או כל מישהו אחר יצאו מהכולל. אדרבא זה מקום ששם אני אישית רואה את עצמי (אני עוד לא בכולל..) בהמשך
בנוגע לשאלתך,
בתיכנות כמו שכתבת יש ככ הרבה תחומים וגופים וארגונים ותתי-ארגונים וסטרטאפים גדולים וסטרטאפים קטנים ופרילנסרים.
בהרבה מקומות כיוון שהמקום קצת גדול. ובכל אופן, מדובר בגוף עם הרבה אנשים. מה שקורה זה שתהליך הגיוס עובד כמקובל (וזה גרוע)- כלומר שבודקים את הבנאדם לפי קריטריונים שבאמת לא ככ משנים לעבודה, ורק אם הבנאדם עבר את הקריטריונים הוא יוכל בכלל לגשת לריאיון וכו'.
הבעיה היא שיכול להיות בהחלט שאתה תועלתי מאוד!! למישהו מסוים (כלומר לעסק מסוים) רק שפשוט אין לך איך לעבור את המשוכה של להגיע אליהם בפועל.
לכן לשאלתך האם יש עבודה של שעתיים ביום, (כמובן הנ"ל צריך לבדוק על איזה תחומים אתה מדבר, ואיזה סדר גודל של אחריות וידע טכנולוגי יש לך שתוכל לעבוד קצת זמן כל יום - שזה גם גורם לפחות אינטגרציה שלך עם צוות)
התשובה ברור שכן
כל הנושא כאן הוא לגרום לזה להגיע לידי מעשה.
לדעתי, פשוט צריך לנסות להגיע ישירות לאנשים שיצטרכו אותך.
קרי - מנהלי חברות ארגונים וסטרטאפים.
אז זה כבר עוד נושא.
@זעירא מסנכרנים אותם לחשבון מייקרוסופט (אאוטלוק)
@yossiz צודק, מה שכתבתי פשוט לא קשור למה ש @clickone שאל.
ועכשיו שאני קורא את הכותרת זה אפילו הפוך לחלוטין ממה שכתבתי.
אבל אני פשוט יסביר מה היה אצלי הצורך כי שאלת גם על עצם מה שכתבתי,
מה שקרה זה (היה כמה סיטואציות, ניקח אחת מהן, ש=)אני מחזיר מהבקאנד מערך של זמנים (=datetime objects שמומרים ל-JSON סטרינגיפי)
ואני מצפה מהיוזר לשלוח לי בחזרה זמנים (כלומר נגיד - אני מרנדר לו את הזמנים האלו בתוך כפתורים, הוא בוחר אני יודע מה הוא בחר ושולח בחזרה לבקאנד את מה שהוא בחר)
הבעיה כאן היתה - שהבקאנד (שולף זמנים מתוך ה-DB, פוסטגרס. ששומר את הזמנים עם TZ של ישראל) משום מה ממיר את הזמנים ושולח אותם בלי TZ. (למה הוא עושה את זה? לא ברור לי, אבל לא היה לי עניין לנסות לשנות)
כלומר בפרונטאנד - ה-JS לא יכול לדעת איזה TZ האובייקט date שהוא יצור מהסטרינג שייך. הוא פשוט עושה new Date וזה כמובן נהיה datetime object של UTC.
מה שקורה זה שכשאני שולח את הזמן הזה (UTC) בחזרה לבאקנד בצורה הרגילה ג'ייסונית (ISO) - הבקאנד בשלב הפרסור של זה לאובייקט היה מפרסר את זה כישראל - ומכניס/משווה עם ה-DB בצורה שגויה
(יש כאן הרבה שאלות שהייתי צריך לשאול, ולבדוק. עיקר השאלה על פייתון שהוא הבק)
לכן מה שעשיתי זה לשלוח מהפרונט את הזמנים - כ-UNIX (שזה UTC)
ולפרסר אותם בפייתון לאובייקט של זמן, ואת הזמנים האלו הוא פירסר לזמן מתאים ונכון!! והשווה בצורה הנכונה מול ה-DB, והכניס בצורה נכונה ל-DB.
מה שיוצא זה שצריך לבדוק:
מה שבטוח שזה לא פיתרון או קשור כנראה לבעיה המקורית של האשכול, אז סליחה @clickone ..
@clickone
לא לגמרי קראתי לעומק מה יוסי כתב, וכנראה שהוא ענה או פתר את העניין,
רק רוצה לכתוב שגם לי היו כמה סיטואציות כאלה ובכולן מה שעשיתי היה העברה של הdatetime הזה מהקליינט - במקום ב-datetime string - הוצאתי את ה-UNIX timestamp ממנו ואת זה שלחתי לשרת.
(וכמובן בשרת מתרגם את ה-UNIX בחזרה ל-date string או יותר נכון date object)
זה לדעתי הפיתרון הנכון וזה סידר אצלנו כמה בעיות.
ב-JS מקבלים UNIX timestamp פשוט על ידי ()getTime
ככה
console.log(new Date(Date.now()).getTime())
עריכה הסתכלתי במה שכתבתי והבנתי שיכול להיות שהצורך שאתה מדבר הוא שונה ממה שאני מכיר.
הפתרון שלי הוא למקרה שבו אני לא רוצה לתת ליוזר לסנן לפי הזמן שלו. כלומר גם אם הוא בארה"ב- הזמנים שהוא יראה בדשבורד (נגיד) יהיו לפי ישראל.
והפילטרים שאני נותן לו יחולו על פי ישראל.
כנראה הצורך שלך שונה אז סתם בלבלתי את המוח
יוסי תקן אותי אם יש לך סבלנות..
@מוטי-אורן אמר בשיתוף מידע בין ראוטרים ב express js:
הטעות שלי הייתה שעשיתי require מחדש בכל ראוטר.. זה מה שגרם ליצירת מופע חדש של המחלקה בכל פעם
זהו שלא, המודול נטען על ידי נוד פעם אחת בלבד ומאז הוא מוכנס למטמון (קאש) ומשם הוא נטען בכל פעם כשמבקשים אותו (require)
וזה מה שכתבו כאן.
ועי' https://nodejs.org/api/modules.html#modules_caching
@ש-ב-ח give us code...
@אוריי אם יש לך זמן ועצבים תעבור על השרשור הזה (הוא ארוך) https://mitmachim.top/post/301736
יש בו כל המידע ממנו תוכל ליצור סקריפט שיהלום את הצורך שלך.
לא מסובך להבין
שב על זה
@פשוט-אבל-תותח אוקיי עכשיו טיפה יותר ברור (עדיין היית יכול להתאמץ קצת יותר ולכתוב יותר ברור אבל ניחא)
ויבואר בפשטות לפני שמתחילים פרקטיקה:
אתה יצרת בעצם לחצן אינטראקטיבי (היינו לחצן שכאשר משתמש לוחץ עליו בדפדפן - נפתח לו כתובת מסוימת בטאב חדש וכדו׳) והגדרת בדרך מסוימת (שלא פירטת) מהי הכתובת שתיפתח בלחיצה עליו.
כאשר אתה רוצה לעבוד מול גוגל סקריפט - עליך להבין שגוגל סקריפט לא ׳לוחצת על כפתורים׳ בטבלה שלך. וגם אם היא עושה את זה אם תגיד לה: לא זו הדרך לגרום לגוגל סקריפט לבצע בקשת http לכתובת שאתה רוצה.
בגוגל סקריפט יש דרכים לשלוח בקשת http (ועי׳ בתיעוד) ועליך לעבוד איתם.
אוקיי זה הובן.
עכשיו הנושא הוא - איך הגוגל סקריפט אמור לקבל את הפרמטר הנחוץ של לאיזו כתובת לשלוח את הבקשה (וגם אם אתה רוצה - איך לקבל את התשובה ולשמור אותה ולנתח אותה ולהתריע לך על שגיאות שהתקבלו בתשובה)
כיוון שלא כתבת במפורש איך בדיוק הכפתור הזה עובד - אולי תפרט באמת. איך זה אמור לדעת לאיזו כתובת לשלוח - וככה יוכלו להדריך אותך איך ליצור פונקציה בגוגל סקריפט, שמקבלת את הערך הזה - ושולחת בקשת http עם פרמטר url על פי הערך הזה. (בצורה אוטומטית כל כמה דקות וכו׳)
@פשוט-אבל-תותח אם הבנתי נכון (זה מסובך מאוד להבין מה אתה רוצה) כדאי מאוד, שתפתח אשכול חדש - ובו תכתוב הכל מהתחלה, בצורה הכי מפורטת והכי ברורה שאתה יכול.
עדיין לא ברור לי עצמי מה אתה רוצה להשיג בלחיצה על הכפתור - ומה אתה רוצה להשיג בלחיצה אוטומטית על הכפתור (לחיצה שבעצם מבוצעת על ידי הסקריפט)
תתייג אותי ואת מי שאתה חושב לנכון, באשכול חדש.
שאפו ל-@OdedDvir על הדברים שהוא כתב כאן והרצון לעזור
@פשוט-אבל-תותח
א׳ כמו שדויד כתב - אתה כותב בצורה מעורפלת יותר מידי.. קצת אינפורמציה לא תזיק.
ב׳ לגבי השאלה שלך: (סליחה דויד שאני עונה אפילו שלא כתב את השאלה נכון וכו׳) משמע שאתה בנית איזו פונקציה מסוימת בגוגל שיטס - ששולחת נתונים ל-API- וכו׳ כלומר זה בעצם גוגל סקריפט, בא נקרא לשד בשמו.
אז לכאורה הכי פשוט שבמקום לעשות מאקרואים ולהשתגע - פשוט בסקריפט לך למקטע של ׳טריגרים׳ ותוסיף טריגר מבוסס זמן - כל 5 דקות - שיריץ את הפונקציה הספציפית שכתבת (זו שנקראת כשלוחצים על ״הקישור״)
ֿהמון גוט שאבעס
אנסה להסביר בלשוני הקלושה בפייתון (אני דיי ג׳וניור בפייתון)
בשורה 17 אתה יוצר אובייקט חדש עם השם (או ׳מצביע׳ או ׳לינק׳ או ווטאבר) keypad מה שאתה מאחסן בתוכו זה אובייקט חדש שנוצר על פי הקלאס שבשורה הזו בספרייה
ומה שקורה בשורה 28 בקוד שלך זה רישום של handler חדש לאובייקט הזה. כלומר ביתר ביאור: לקלאס keypad
יש בתוך self
מערך שנקרא handlers
- כאשר כל מה שנמצא שם ירוץ במקרה ו-- רגע עוד שניה.
ברישום של אובייקט מקלאס keypad
מופעלת פונקציה שממתינה ללחיצות במקלדת, כל לחיצה במקלדת עוברת לוגיקה על ידי הפונקציה. שורה 104 בספריה
אם תסתכל בקוד - תראה שכחלק מהלוגיקה - הוא בודק אם self._handlers
מכיל משהו - ואם כן הוא בעצם מריץ את מה שיש שם במערך (בלולאה, כי יכול להיות שם כמה) עם הערך של הכפתור שנלחץ. שורה 111 בספריה
עד עכשיו בלבלתי את השכל, עכשיו בנוגע לשאלה שלך מה גורם לזה לרוץ כל הזמן והרי לא רואים ׳לולאה׳? זה כאן - פשוט קורא לGPIO - ספריית עזר לקריאה מהרספברי עד כמה שאני מבין - שנותנת את הפונקציה add_event_detect
- שמאזינה לאינפוטים מסוימים. במקרה שלנו הפרמטר שמעבירים לה בין השאר הוא GPIO.FALLING
שכפי שרואים כאן משמש לקליטת לחיצה (יש הבדל בין לחיצה לעזיבת הכפתור ואולי גם יש עוד סטייטים) על כפתור..
הספרייה הנ״ל מותקנת כחלק מה-setup של הספרייה pad4pi
אז בנוגע לשאלות שכתבת בסוף:
GPIO.remove_event_detect(channel)
בתוך channel
תכתוב את הערוץ שאתה רוצה להסיר. נגיד כנראה זה יעבוד - GPIO.remove_event_detect(GPIO.FALLING)
(אם כי ייתכןמאוד שלא, וצריך להגדיר את channel
בצורה אחרת)הגיוני מאוד!! שבלבלתי את השכל, אז קח דבריי בערבון מוגבל