@davidnead לא יודע אם הרקע שלי יעזור לך ללמוד את השטח, כי לדעתי זה תוצאה שלא תוכנתה מראש.. אך אני חושב שמה שאכתוב יכול להביא תועלת לאברכים במצב שלי, ולכן אכתוב את העולה בראשי.
אני ב"ה אברך כולל, ומתכנת רובו ככולו מערכות טלפוניות ע"ג ובאמצעות הפלטפורמה של ימות המשיח.
יש לי מגון סוגי עבודות, חלק בסגנון דינאמי לחלוטין, כגון מערכת למצ'ינגים שמסתנכרנת מול חברות צ'רידי/קוזמאצ'/גיבצ'אק/גיבסטאר/ומאטש' פלוס וכדומה, שזה בעצם מוצר עונתי/חד פעמי, שפשוט תלוי במצב האם יש כעת מצ'ינגים או לא. (אציין לפני הקורונה היו ב"ה כמה וכמה מצ'ינגים בחודש, ומהקורנה למשל זה ירד לאחת בחודשיים..), כך שלפעמים זו הכנסה יפה, ולפעמים לא בדיוק..
מאידך, הקמתי מערכות למידה מרחוק, וב"ה שזה היה במקום ואף יותר מההכנסה מהמצ'ינגים.
אך שוב זה מוצר עונתי, שעדיין אינו דומה לשכיר שהכנסתו קבועה.
לעומת זאת יש לי מספר מערכות/לקוחות, דוגמת ישיבה על קברו, ששם אני המתכנת היחיד, או דוגמת קופת העיר שם אני ג"כ נותן להם את כל השירותים הנצרכים ממערכות טלפונית (שיגור הודעות, מגביות, רישום, ועוד), הצד השווה שבהם שגם שם אין לך הכנסה קבועה, וייתכנו חודשים של פיתוחים רבים, וחודשים ללא תנועה.
לאחרונה אני מתעסק עם מוצרים של מערכות טלפוניות שהתגלגלו לפתחי, והפעם אני בונה אותם בס"ד בצורה שישמש למספר רב של לקוחות קבועים המשתמשים במוצר ומשלמים תשלום חודשי קבוע, ואני תפילה לרבון העולמים שבס"ד המוצר יצליח. (ב"ה הוא כבר עובד במספר מקומות, ואני רק אורז אותו כעת לשיווק ארצי)
בכל העבודה שלי אני עצמאי לחלוטין מבחינת הפיתוח (ללמידה מרחוק הכנסתי 2 עובדים שמכירים את מערכות ימות המשיח, ונתתי להם סט כלים לטיפול בלקוחות, וגם שם מדובר באברך כולל היושב ולומד במשך היום).
אציין גם שאין לי כמעט שום הבנה באנגלית מלבד שאני יודע צורת אות, ואם המילה היא של כמה אותיות ללא צירופי ניקוד מסובכים, אוכל אולי גם לאיית/להגות אותה, זה הכל.
זו דוגמא קטנה למתכנתים רבים בסגנון זה.
ולכן לגבי כל מה שהארכת במקום העבודה והתנאים, הם אינם נוגעים עבורי כלל, ואין לי מה להביע דעתי בזה.
וכעת לפרשנות בסגנון שלי: אני חושב שאם יהיה איגוד אישי יותר, בצורה נכונה (ואיני יודע איך בדיוק זה יתבטא), ניתן יהיה להרים מתכנתים רבים יותר להגיע להכנסות יפות יותר.
אסביר כוונתי: ישנם רבים כאן שמתמצאים במערכות של ימות המשיח, ויש להם ידיים טובות לעבוד עם ה API שלהם ולהרים דברים יפים ויקרים.
רק שהם לא חולמים בכלל שניתן להגיע מזה לרמת הכנסה גבוהה, (כמו שאני לא חלמתי), ולכן הם לא משקיעים בלמידה והבנה של דברים חדשים, או שהם לא משלמים שקל לטובת המוצרים שלהם (חושבים איך לחסוך את ה 8 ש"ח לחודש של אחסון בגוגל של יותר מ15 ג'יגה)..
כאשר מתכנת חושב שהוא יוכל להרוויח מעבודת התיכנות הזו רק 2000 ש"ח לחודש נניח, והוא רוצה להישאר במסגרת תורנית, והוא חושב לעצמו, שאני יעצור כעת וילמד שפה חדשה יותר טובה, או יעצור להשקיע לממשק איכותי ללקוחות וכו' ומה אני כבר ארוויח מזה, רק עוד כמה מאות ש"ח לחודש, הוא לא מחשיב את זה, ולכן הוא אכן לא מתקדם בזה, וההפסד כולו שלו.
כמו"כ תימצא כאן בפורום חברים שלא שילמו מעולם לתוכנה, או לשירות שניתן למצוא אותו בדיעבד בחינם, או מתכנתים מתחילים שהתחילו עם שרת PHP שיתופי, וחוששים לעבור לשרת פרטי, בפרט שזה מייקר בעשרות אחוזים, ומי מדבר לשלם על הדרכה איכותית, הם יעשו הכל מסביב עם קומבינות העיקר לא לשלם.
לדעתי הם מפסידים ובגדול, כי כמה שהם יותר ישקיעו במוצר שלהם והם יעלו את הרמה שלהם (אכן לא קל, אכן דורש להשקיע כוחות ואנרגיה של למידה וטעיה), אך בסופו של דבר, כל דבר חדש בסוף הוא ישן, כל שפה חדשה לאחר שלומדים אותה במשך תקופה היא מכסה את ההשקעה.
אצלי למשל, בתחילת הדרך כשבניתי מערכת רישום ללקוחות, לא נתתי אפילו ממשק פשוט ביותר אפילו בלי שם משתמש וסיסמא, אלא לינק לשני קבצי PHP בשרת, אחד שיוצר טבלת HTML פשוטה ביותר והשני שמוריד קובץ csv של הטבלה.
משם עברתי למשהו בסיסי ביותר עם datatable.net אך רחוק מאיכותי.
והבנתי שזה לא תכלית, וכאן בפורום מצאתי את המילה CRUD באיזה שהוא הקשר, חקרתי מה פירוש המילים וזה גרם לי לחפש משהו כזה בPHP, מצאתי ממשק YII שהתאים מאוד יפה לצרכים שלי, הלמידה לא הייתה קלה בכלל, אך עם הזמן למדתי אותה יותר יותר, ומאז הלקוחות שלי קיבלו ממשק איכותי ופשוט לביצוע פעולות על הטבלאות שלהם, צפיה עריכה וכו', ואף פעולות במתממשקות בAPI מול שרתים אחרים ועוד.
כמובן שזה הזניק את רמת המערכות שלי עשרת מונים! ואם אני רוצה להמשיך בשעות עבודה מצומצמות הרי שאני מוכרח שמוצר שלי יהיה שווה הרבה שהתמורה תכסה לי את השעות בהן אני יושב ולומד.
סיטואציה נוספת, חוויתי עומסים בPHP באחד המצ'ינגים הגדולים, שאלתי כאן בפורום והמליצו לי על nodejs, זה היה קצת מבהיל שפה חדשה, סגנון שונה לחלוטין וכו', אך כן קפצתי לזה, וב"ה זה שוב הזניק אותי.
גם כעת כשהתלבטתי לגבי ממשק חדש, שוב החלטתי להסתער על למידה של פרימוורק חדש (vue), וזאת בידיעה שבס"ד לאחר תקופה של למידה ועבודה משולבת, בס"ד העניינים יירגעו חזרה, ושוב יהיה לי בסל מוצרים איכותיים שיעזרו לי לעבוד פחות וללמוד יותר.
מה אני בא להאריך כאן כ"כ? א. כי אני לא יודע לכתוב קצר (לצערי). ב. כי אני מרגיש וזה כואב לי קצת שישנם עוד הרבה אברכים שבין כך נמצאים בעולם התיכנות ויכולים להגיע למקום שלי, ואף יותר, בס"ד, עם תכנון קצת פתוח יותר, עם הבנה להשקיע יותר במוצר, ללא פחד מתשלום על שירותים, וללא פחד מהשקעה בלמידה וממשקים, וכן לפתוח אפיקים בגובה המחיר של המוצרים שלהם (ס"ה כמה שהם לוקחים יותר כסף על עבודתם הם יביאו יותר ערך ללקוחותיהם, והגלגל יתגלגל לטובת שני הצדדים).
וכעת בנימה אישית בתחום שלי, הרבה מאוד פעמים מגיע לידי הזמנה של פיתוח מערכת שאין ביכולתי להשקיע בו כעת, אך אני מאמין שאחרים כאן יוכלו לעשות זאת, ומאידך אני לא תמיד יודע למי להפנות, כי ישנם חברה שרוצים בימות המשיח וישנם חברה שדורשים דברים שלא ניתנים בימות המשיח וכדומה.
ואני חושש להפנות למתכנת אחר שאני יודע שאין לו ממשק ניהול איכותי, או בעיות בעומסים וכדומה.
ולדעתי אם יהיו כאן מהחברים שיאמינו יותר ביכולות שלהם ובכשרון שקיבלו משמים, וישקיעו קצת יותר, אולי יהיה שייך להעביר כאן מע"ג הפורום עבודות מזדמנות מאחד לשני כאשר האחד עמוס וכו' (וכבר נידון כאן באמת לגבי תיק עבודות, אך משום מה לא הרגשתי מסתדר עם זה בינתיים).
וכל זאת לא מחייב כלל להוריד משעות הלימוד, אלא לדחות עבודות לא דחופות בעת למידת דברים חדשים וכדומה.
סליחה על האריכות, אך לדעתי צריך קצת להרים את הכפפה הזו..
בהצלחה לכולם, ואם מישהו רואה את עצמו נפגע ממה שכתבתי, אשמח אם יוכל להודיעני באישי, ואבקש מראש את סליחתו.
חוקר
-
שוק התכנות החרדי -
שיתוף סקריפט nodejs להורדת אקסל תנועות עו"ש מבנק דיסקונט משנים קודמים באמצעות התיבה האישיתהייתי צריך כעת לשחזר נתונים מחשבון של קרוב המתנהל בבנק דיסקונט של משכנתא ששולמה בעבר והעברות שבוצעו לכיסוי המשכנתא.
בתנועות אחרונות ניתן לייצא (נכון לעכשיו, בבנק דיסקונט) עד שנה אחורה.
(יש שירות בדיסקונט של שיחזור דפי חשבון ישנים בצורת HTML אבל גם זה מוגבל ל3 שנים וניתן לייצא עד 17 דפים בבקשה אחת וצריך לסנן תאריכים ולשלם עמלה לכל בקשה ועדיין להשתגע להמיר את ה HTML לאקסל וכו'. קיצר לא לעניין).
מצאתי שבתיבה האישית קיימים הנתונים כדפי חשבון (בחשבון המבוקש היו לי למפרע מ 05/2016, אין לי מושג במה זה תלוי, אבל לי זה הספיק) אך הם מופיעים כדפי חשבון ומפוזרים בין המכתבים ולא שייך לסנן אותם וכו'.
ראיתי שזה מבוסס API שמקבל בשלב ראשון את רשימת המכתבים ובשלב שני API לקבל כל מכתב כמערך של השורות וכו'.
יצרתי לעצמי סקריפט שמסנן את המכתבים רק של דפי חשבון, שולף רק את השורות של התנועות, מצליב את השנה מהכותרת לתאריך (ללא השנה) בשורה, מצליב 2/3 שורות של פירוט תנועה בודדת לשורה אחת, ויוצר מהם קובץ אקסל.
בסקריפט צריך להזין ס"ה 2 נתונים, מספר החשבון ועוגיות הזדהות, וכמובן להריץ nodejs על המחשב/שרת.
לשימוש בסקריפט יש להזדהות באתר של דיסקונט עם הפרטים, ולאחר מכן יש ללחוץ על F12 ואח"כ ללחוץ על הלחצן של תיבת הדואר הפנימי בחשבון
כעת יופיע לנו ב network/רשת התחברות לAPI המבוקש
ניתן לסנן בקלות "mailQuery" ולראות את השורה.
נלחץ על השורה ובכותרת הבקשה נחפש את הקוקיז ונעתיק אותו
יש להדביק אותו בסקריפט (למותר לציין שזה רץ רק אצלכם במחשב והעוגיות לא עוברות לשרת אחר)
כמו"כ יש להעתיק את מספר החשבון כפי שהוא מופיע בכותרות ולהדביק בסקריפט במיקום המבוקש
וזהו נותר רק להריץ אץ הסקריפט ובסיומו יש לנו אקסל מסודר להפליא עם היסטוריית תנועות ישנות.
בתקוה שהקוד יביא תועלת למישהו.
שימו לב השתמשתי בקוד ב 3 ספריות חיצונית: node-fetch, moment, json2xls.
השימוש בסקריפט הינו על אחריות המשתמש בלבד ואיני נושא בשום נזק שיגרם חלילה על ידי השימוש בו.
(לי זה עבד ללא בעיות).
להלן הקודlet fetch = require('node-fetch'); let fs = require('fs'); const moment = require('moment'); const json2xls = require('json2xls'); // כאן יש להדביק את מספר החשבון let accountNumber = "0012300000"; // כאן יש להדביק את הקוקיז let cookie = "PD_STATEFUL_fadfads......."; let MessagesList = []; let MessageID = ''; let pgnToDate = ""; let pgnSubjectID = ""; let pgnYear = 0; let pgnVer = 0; let pgnNum = 0; let MessagesData = []; let months = ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"]; let lines = []; (async () => { let next = true; while (next) { let body = { "AccountNumber": accountNumber, "ListOrContentFlag": "listnotjoined", "StatusFilter": "U", "FromDate": "", "ToDate": "", "NumberOfBackDays": 3 }; if (MessageID) { body = { "AccountNumber": accountNumber, "ListOrContentFlag": "listnotjoined", "StatusFilter": "U", "FromDate": "", "ToDate": "", "NumberOfBackDays": 3, "MessageID": MessageID, "PgnToDate": pgnToDate, "PgnSubjectID": pgnSubjectID, "PgnYear": pgnYear, "PgnVer": pgnVer, "PgnNum": pgnNum } } // console.log(body); await fetch("https://start.telebank.co.il/Titan/gatewayAPI/discountMail/mailQuery", { "headers": { "content-type": "application/json;charset=UTF-8", "cookie": cookie, }, "body": JSON.stringify(body), "method": "POST" }).then(res => res.json()).then(MailQuery => { if (MailQuery.MailQuery && MailQuery.MailQuery.PaginationBlock) { MessageID = MailQuery.MailQuery.PaginationBlock.PaginationMessageID; pgnToDate = MailQuery.MailQuery.PaginationBlock.PaginationMessageCreationDate; pgnSubjectID = MailQuery.MailQuery.PaginationBlock.PaginationMessageSubject; pgnYear = MailQuery.MailQuery.PaginationBlock.PaginationMessageYear; pgnVer = MailQuery.MailQuery.PaginationBlock.PaginationMessageVersion; pgnNum = MailQuery.MailQuery.PaginationBlock.PaginationPageNumber; next = true; } else { next = false; } try { if (MailQuery.MailQuery.MessageInfo){ MessagesList.push(...MailQuery.MailQuery.MessageInfo) } } catch (e) { console.log(e); } }).catch(console.error); } // console.log(MessagesList); for (let i = 0; i < MessagesList.length; i++) { let message = MessagesList[i]; if (message.SubjectID === 'COH012') { console.log('MessageIDNumber: ' + message.MessageIDNumber, 'index: ' + i, 'from: ' + MessagesList.length); await fetch("https://start.telebank.co.il/Titan/gatewayAPI/discountMail/mailQuery", { "headers": { "content-type": "application/json;charset=UTF-8", "cookie": cookie, }, "body": "{\"ListOrContentFlag\":\"content\",\"AccountNumber\":\"0096343062\",\"MessageIdForDetails\":\"" + message.MessageIDNumber + "\"}", "method": "POST" }).then(res => res.json()).then(MailQuery => { try { let LineInfoEntry = MailQuery.MailQuery.MessageInfo[0].PageInfoBlock.PageInfoEntry[0].LineInfoBlock.LineInfoEntry; if (LineInfoEntry){ console.log('ok'); MessagesData.push(...LineInfoEntry) let month = LineInfoEntry[3].LineTextMessage.slice(1).match(months.join("|"))[0]; let start = 1 + month.length + 1; let year = LineInfoEntry[3].LineTextMessage.substr(start, 4); LineInfoEntry = LineInfoEntry.slice(4); for (let i in LineInfoEntry){ let row = LineInfoEntry[i]; if (/^ \d/.test(row.LineTextMessage)){ let i = 1; let obj = {}; obj['תאריך'] = moment(row.LineTextMessage.substr(i, 5) + '/' + year, 'DD/MM/YYYY').format('YYYY-MM-DD');i++; i = i + 5; obj['תאריך ערך'] = row.LineTextMessage.substr(i, 1) !== ' ' ? moment(row.LineTextMessage.substr(i, 5) + '/' + year, 'DD/MM/YYYY').format('YYYY-MM-DD') : '';i++; i = i + 5; obj['סוג'] = row.LineTextMessage.substr(i, 1);i++; i = i + 1; obj['תיאור'] = row.LineTextMessage.substr(i, 31);i++; i = i + 31; obj['אסמכתא'] = row.LineTextMessage.substr(i, 10);i++; i = i + 10; obj['זכות'] = parseFloat(row.LineTextMessage.substr(i, 10).replace(',', '').trim());i++; i = i + 10; if (isNaN(obj['זכות'])){ obj['זכות'] = ''; } obj['חובה'] = parseFloat(row.LineTextMessage.substr(i, 10).replace(',', '').trim());i++; i = i + 10; if (isNaN(obj['חובה'])){ obj['חובה'] = ''; } obj['יתרה'] = parseFloat(row.LineTextMessage.substr(i, 10).replace(',', '').trim());i++; i = i + 10; if (isNaN(obj['יתרה'])){ obj['יתרה'] = ''; } obj['תוכן'] = row.LineTextMessage; lines.push(obj); } else if (row.LineTextMessage.slice(1).match(months.join("|"))){ month = row.LineTextMessage.slice(1).match(months.join("|"))[0]; year = row.LineTextMessage.substr(1 + month.length + 1, 4); } else if (/^\s{15}\S/.test(row.LineTextMessage)){ lines[lines.length - 1]['תיאור'] += row.LineTextMessage.slice(15, 31); if (row.LineTextMessage.slice(81, 10) !== ''){ lines[lines.length - 1]['יתרה'] += row.LineTextMessage.slice(81, 10); } lines[lines.length - 1]['תוכן'] += '|' + row.LineTextMessage; }else if (/^\s{75}\S/.test(row.LineTextMessage)) { lines[lines.length - 1]['אסמכתא'] += row.LineTextMessage.substr(75, 10); if (row.LineTextMessage.slice(81, 10) !== ''){ lines[lines.length - 1]['יתרה'] += row.LineTextMessage.slice(81, 10); } lines[lines.length - 1]['תוכן'] += '|' + row.LineTextMessage; } } } } catch (e) { console.log(e); } }).catch(console.error); } } console.log(lines); fs.writeFileSync('./MessagesData ' + moment().unix() + '.json', JSON.stringify(MessagesData)); fs.writeFileSync('./lines ' + moment().unix() + '.json', JSON.stringify(lines)); let excel = json2xls(lines); fs.writeFileSync('./lines ' + moment().unix() + '.xlsx', excel, 'binary'); })();
-
כמה טיפים מלקוחות שכמובן לא משלמים לפי שעה אלא רק לפי סיכומים על פונקציונליותאציין שגם לי היה לקוח אחד (בתחילת דרכי) שלא למדתי מיד את האופי שלו. הוא דרש ודרש ודרש עוד ועוד פיתוחים ורעיונות עם נקודות קטנטנות שפתאום עלו לו בראש איך ומה ניתן לשדרג ולעצב ולשפר ולהוסיף ולסנכרן, וכל פעם עם לחצים רגשיים שזה הפרנסה שלו וכו' וכו' והוא באמת לא היה אז הכי מסודר כלכלית ולכן כל בעיה קטנה הוציאה אותו לגמרי מהכלים.
אותי זה איים להוציא משפיות דעתי וכמובן בא לי על חשבון פרוייקטים אחרים, ובכל אירוע שיצא לי להפגש איתו זה היה בשבילו הזדמנות פז לחלץ ממני עוד רעיונות ופיתוחים, ועבורי סיוט לראות אותו.
סופו של יום אמרתי לו בשיא התקיפות ובשיא העדינות שעברתי על כל המיילים מתחילת ההתקשרות איתו וראיתי שלא הייתה כל התחייבות מצידי לפתח עד אין סוף, אלא רק כך וכך ואת זה עשיתי מזמן.
אני מעוניין לגשת איתך לבוררות לדעת אם יש לך זכות לדרוש ממני לפתח עוד, הוא הבין שאין לו ברירות איתי ואני מצידי סיימתי את הפיתוחים עבורו (למרות שהוא היה משלם), הוא התחנן למשהו קטן נוסף שאת זה נתתי לו.
ומאז בדר"כ שקט איתו, המערכת זורמת ללא פיתוחים נוספים, למרות שמפעם לפעם הוא נזכר ממני אך אני לא טורח להשיב לו מיד ודוחהו בכה וכה.
התייעצתי על כך לפני זה עם איש חשוב ת"ח בעל חשיבה ישרה מאוד, והוא זה שטען שאני מחוייב לעשות זאת למען המשך פרנסתי והמשך היכולת שלי ללמוד בכולל ללא הפרעות ממנו.
צריך לדעת שלכל מתכנת יכול להיות משהו שהוא נפל איתו, אך צריך גם לדעת לקום מתי שניתן.
בהצלחה! -
מעבר לGO למה? איך? ומתי?אז ככה.
אני ג"כ התחלתי עם PHP, והכל זרם בטוב ובנעימים, הרמתי פרוייקטים גדולים ב"ה בהרבה תחומים (הכל סביב מערכות טלפוניות בימות המשיח), ו PHP סיפק לי כלים מספקים למה שהוצרכתי.
עד שהגיע יום, ובקמפיין של סורוצקין - עטרת שלמה היו לי 2500 מאזינים על הקו בו זמנית, מה שגרם שהשרת לא החזיר תשובה לכולם (אני לא יודע מה נקרא שרת קרס, שזה נכבה? הופעל מחדש? לא הגיב מספיק?, בכל מקרה כאן ראיתי שהשרת לא מספיק לענות לכולם,) וזה מדובר על PHP עם אפאצ'י.
שאלתי כאן מה עושים, וההצעה הייתה לעבור לנוד.
אמרתי לעצמי, מה זה הקסם הזה נוד? למה ומדוע זה יותר מהיר? יש לו יותר יכולות מPHP? מה ואיך? לא היה לי כ"כ ברור.
אבל אמרתי, את המצב הנוכחי אני לא ממשיך, אני חייב להתכונן לפרוייקט הגדול הבא.
(בשעתו הרמתי בAWS עוד חמישה שרתים חדשים עם תמונת מערכת של השרת הרגיל, ואז וויסתתי את העומס במערכת וזה סיפק יחסית תפוקה לא רעה).
התחלתי ללמוד נוד, למרות שכמעט ולא היה לי רקע מעשי הJS ולא הבנתי מה בדיוק המושג JS על השרת.
עדיין לא קלטתי מה הרעיון שנוד יהיה יותר מהר.
ואז הגיע @magicode ונתן לי דוגמה של (אריכט... לא יודע איך לכתוב את זה) ויחיד עם הסבר של @אהרן שנתן לי בעצם הבנה שנוד הוא משהו שרץ כל הזמן ואתה יכול לעשות בו פעולות ללא קשר למשתמשים, והשרת יכול להכין מידע וכו' למשתמשים עוד לפני שהם גלשו, ולבצע פעולה אחת שתשמש אלפי גולשים בו זמנית.
זה היה לי חדש לגמרי העולם הזה, אני הייתי רגיל רק לPHP שהכל הוא סקריפט שמתחיל ומסתיים כשהלקוח קורא לדף, ואתה צריך לטעון הכל מחדש לכל משתמש, מה שגורם לשרת לבצע לכל משתמש הרבה תהליכים (ולדוגמא במצ'ינגים בPHP הייתי בודק לכל משתמש 3 קריאות מול השרת של צ'רידי, מה שאין כן בנוד יש בדיקה אחת מתוזמנת של מצב הקמפיין כל 10 שניות, ובדיקת המתרימים כל 3 דקות, זה חסך המון משאבים וזמן).
ובנוסף כאשר אני צריך לולאה לבצע עשר פעולות שלוקחות זמן, בPHP אתה ממתין לכל דבר בסבלנות שיגמור הכל, בנוד הכל מבוצע מיידית.
בהתחלה זה היה לי נורא! לא הסתדרתי עם זה, לא רציתי להסתגל לזה, ללמוד תובנות חדשות, והאמת שאז חיפשתי ברשת וראיתי ג"כ פוסטים שGO יותר מהיר מנוד, ונכנס לי חשק כמוך להתחיל לכתוב בנוד, למה לחכות שזה יהיה הַשפה, אני כבר יכול לרוץ לשם מיד.
אבל במבט מלמעלה ראיתי שזה עבור בנק הפועלים, לא עבורי.
זה דורש קימפול או איך שקוראים לזה, ואין לזה עדיין מספיק קהילה ועוד, ובעיקר כי זה באמת מיותר!
וב"ה המשכתי עם הצעת החברים כאן, למדתי להבין איך להשתלט על האי-סינכרוני (האמת, עד היום אני לא יודע בע"פ מה זה סינכרוני ומה זה אי-סינכרוני), למדתי להשתמש בפרומיס ( @dovid כן אני כבר משתמש עם זה גם בלי ליידע אותך..), למדתי את התחביר של השפה, איך מבצעים פעולות על משתנים ע"י אובייקטים שבתוך המשתנה(string.action()) לעומת PHP שכל דבר הוא פונקציה שמקבל ארגומנט את המשתנה (action(string)).
כתבתי כבר מחלקות לחיבור לבסיס נתונים ועוד ועוד.
המערכות הראשונות שלי שם היו באמת כתובות לא מידי חכם, אבל עשו את עבודה, הייתי חייב במיידית משהו שעובד, וב"ה עם הזמן ובעזרת החברים כאן הגעתי להישגים מאוד יפים בנוד.
נכון לעכשיו אני עדיין משתמש בנוד רק למצ'ינגים ולישיבה על קברו, כי אני לא לוקח כעת פרוייקטים חדשים (אני מקוה בעזה"י להכניס עובד, ואז אוכל לחזור לפיתוחים חדשים), ושאר הפרוייקטים הפעילים עדיין על PHP ולא קריטי להעביר אותם לנוד.
בישיבה על קברו למשל, יש ביום כ18000 השתתפויות של לימודים בנדרים ובטלפון, בPHP על כל תנועה, השרת היה בודק מול בסיס הנתונים כמה וכמה שאילתאות, את רשימת המסלולים להיום, טבלת השאלות והתשובות ועוד, בנוד לעומת זאת, כל חמש דקות יש רענון מול השרת בקבלת הנתונים הקבועים, ורק בדיקות ברמת המשתמש (האם כבר השתתף היום, ועדכון השתתפות) מבוצעות מיידית.
השרת נותן כעת ביצועים הרבה יותר טובים ומהירים בגלל זה.
בקיצור הארכתי מאוד, אבל ראשית רציתי לומר לך, שמע לחברי הקבוצה, שהרימו כבר פרוייקטים ולכל הפחות כמו הפרוייקט הרציני הגדול הבא שלך, ויש להם ידע ורצון לעזור.
א. בגלל עצם המענה להם שזה מה שכדאי עבורך.
ב. כי הם יעזרו לך בהמשך הדרך וההסתגלות.
ושנית, זה היה במה נוספת להביע הכרת הטוב לאלו שסייעו לי להבין ולכתוב בנוד, אלו שהזכרתי לעיל, וכן @יוסף-בן-שמעון (ואולי פיספסתי מישהו א"כ אנא ראה כאן את הכרת הטובה בעילום שם) הן על ההצעה, הן על הלימוד, והן על ההבנה בקשיי ההסתגלות.
ואם מדובר על שפה אהובה, לאחר לימודה אני מחבב אותה יותר מאשר את PHP, למרות שאני כמה שנים הייתי בPHP והייתי בטוח שאין יותר נחמד ממנה.
בהצלחה לכולם -
בירור | עבודה בתחום התכנות@אינטרקום אמר בבירור | עבודה בתחום התכנות:
ניתן בהחלט להחליט - ולעמוד בזה.
ב"ה אני אברך כולל חושן משפט 2 סדרים ביום ובשעת הכולל אני בדר"כ מתנתק מהעבודה.
(אך זה לא הגיע ביום אחד, המון השקעה ואנרגיה שמתי ואני שם לשמר את סדרי הכולל, ומאידך המון שעות נתתי לתיכנות להגיע לרמה שלי היום, וב"ה רק בגלל הידע והנסיון הרב שרכשתי וחוש התיכנות איתו נולדתי, אני רואה את עצמי שבס"ד אוכל להמשיך לשקוד על תלמודי ביתר שאת וביתר עוז [שאר חברי הכולל בגיל שלי כבר יצאו/יוצאים למשרות תורניות בכדי להביא לחם לפי הטף, ואני שהתמודדתי בשנים האחרונות לשמר את סדרי הכולל, כעת הפונטציאל שלי להשאר בכולל הרבה יותר גבוה])
אני לא כתבתי את מה שכתבתי מתוך חסרון באמונה וכו', ולא שזה לא שייך.
אלא לענות שמישהו שמגיע מראש בידיעה שזה מה שיש לו בשביל לעבוד, 2 שעות ביום, על זה דנתי, שיותר קל לקחת עבודה טכנית כקלדנות ומזכירות ולא תיכנות.
כי הטעם, ממ"נ, למי שיש את החוש הרי הוא יתמכר לכך, והוא מכניס את עצמו בנסיון לצאת מהכולל למען העבודה, ובין השיטים ניתן למצוא כאן בפורום (לא בנושא זה ספיציפי) חברים שמבכים על עצמם על שזה קרה להם, (ולאו דווקא וכן דווקא בגלל הכסף שזה מכניס), ולמי שאין את החוש והוא בא לתיכנות רק בגלל שהוא שמע שזה תחום ריווחי וברצונו להרוויח, הרי שהוא יצטרך המון למידה עד שיגיע למצב שיוכל להרוויח, הרבה הרבה יותר ממי שיש לו את החוש, וממילא לא בטוח שבשתי שעות ביום הוא יכסה את השקעתו.. -
תחושת "עיניים ננעצות"שמעתי בשם יהודי מבוגר וחכם:
כשהייתי צעיר הייתי בטוח שכולם מסתכלים עלי וצוחקים ממני.
בגרתי, הבנתי שכולם מסתכלים עלי אך לא צוחקים ממני.
בגרתי יותר, הבנתי שאף אחד לא מסתכל עלי, אני לא מעניין אף אחד.. -
לימוד תכנות@חגי אמר בלימוד תכנות:
@חוקר אמר בלימוד תכנות:
השאלה היא מה היכולת למידה העצמאי, העבודה בשטח, השיווק, וכמובן הרבה סייעתא דשמיא.
אני ב"ה יושב ולומד 2 סדרים ביום ועובד בערב (וקצת בבין הסדרים, בעיקר טלפונים) בתכנות מערכות טלפוניות כעצמאי, עם אינטרנט של נטפרי, והלימוד נעשה ע"י מדריכים ברשת, (בעיקר בפורומים ולא מתוך הדרכה של ממש).
ומבחינת העבודה בנקיות ללא חששות של שמירת עיניים וכו', ב"ה אין שום בעיה.
רק שמכיון אחר אני לא אומר שזה קל, הקושי הוא שצריך יכולות ריכוז גבוה בשעת הלימוד להתנתק מהעבודה, בפרט כשאתה מנהל פרוייקטים בהיקף, והרבה פעמים לקוחות מתקשרים ואתה יודע למה, ואתה לא עונה בשעות הסדרים, וכו'.
רק שאני לא בטוח שבעבודות אחרות זה אחרת, כי זה תלוי באופי של בן אדם כמה הוא מחובר לעבודה שלו, וכמה הוא חושב על זה גם שלא בשעות שהוא עובד.
אבל בהחלט שתחום הטכנולגיה בצורה פתוחה שאתה לא עובד על משהו מוגדר אלא מתפתח כל הזמן בעוד תחומים ועוד טכניקות זה בהחלט משהו שתופס את הריכוז כל היום.
ואולי זה לבד סיבה לעסוק בתחום תורני מוגדר שזה לא מושך ולא תופס את הריכוז בשעות שאתה לא אמור לעבוד.אני נמצא פחות או יותר באותה סיטואציה (אני שכיר שעתיים ביום מהכולל), ולפני שהתחלתי לעבוד בזה שאלתי את המדריך חתנים שלי, והוא דוקא אמר לי בדיוק ההפך, שלהיות מדריך חתנים מוציא אותך מהלימוד בגלל שאתה מרגיש שזה בתוך עולם התורה ויוצא שאתה מבטל תורה בשביל זה, אבל מקצוע שהוא כולו חול אתה יכול לעשות את ההפרדה. בפועל באמת העבודה היא רק שעתיים ביום, אבל הראש עסוק בזה יותר. ב"ה אני בכולל טוב ואני נהנה מהלימוד, אז זה פיתרון, אבל מלכתחילה אם הייתי יכול לקחת משהו אחר יתכן שאני לוקח, פשוט תכנות זה מקצוע שיש לי ביד כבר מגיל קטן רח"ל.
אני חולק על דברך.
אני לא הייתי כותב על מתנה משמים "רח"ל".
לבן אדם שיש כישרון שניתן לו משמים שיוכל אח"כ לפרנס עצמו ברווח ובכבוד, ובפרט אם בכוונתו לשבת וללמוד ושזה יהיה רק הכנסה צדדית, עליו להודות להשם.
אלא שהגדול מחברו יצרו גדול הימנו, וצריך המון כוחות וסייעתא דשמיא והשקעה מרובה, לשרש במוח ובלב מה התכלית שלך מכל זה, ובס"ד להגיע למצב שאתה מסודר בשילוב בין העבודה ללימוד התורה והתפילה וכו'.
נכון לעכשיו לולי עבודות התיכנות שלי, ספק רב אם מצב כלכלי שהפרנסה מתבססת על המילגה מהכולל הייתה מאפשרת לי לשבת וללמוד ללא דאגות פרנסה, בכל זאת זה רחיים על צווארו, וב"ה המשפחה גודלת, תשלומי משכנתא וכו', שאין הקומץ משביע את הארי.
אלא מאי, זה דורש המון כוחות והחלטות נכונות על סדר יום בריא ותקין.
אני לא אומר שאני כבר עומד בזה (והראיה שעת כתיבת הפוסט), אבל בהחלט עובדים על כך, וב"ה משתפרים מיום ליום, כך שאני לא רואה את זה כמשהו מופרך יכולת לשלב בין מה שנראה כביכול שני הפכים.
צריך ג"כ מסגרת של כולל מתאימה ומחייבת, ולימוד שאתה אוהב ונהנה ממנו, וכמובן חברותא שרוצה ללמוד, שלא יהיה מצב של יצא שכרו בהפסדו שבאים לכולל ומספרים מה קורה בעבודה..
רק אציין, אני לא באתי לומר כאן לאף אחד האם עליו לשבת בכולל וכדומה, וודאי שיש כאילו שבכל מקרה קשה עליהם הישיבה בכולל או כאלו שבכל מקרה מוכרחים לצאת לעבודה כל היום וכו', כל אחד בדרכו שהקב"ה זימן לו, אבל לעצם הנושא עליו נידון כאן האם שייך לשלב עבודות תיכנות לאברך ירא שמים, התשובה היא לענ"ד "אפשרי", אך דורש כוחות ועבודה מאומצת להשיאר תקין בסדר יום של אברך.
אביא דוגמא מאוד קיצונית ששמעתי מחבר על מכר שלו שעבד בתיכנות ועזב אותה והפך להיות מזכיר רגיל, מהסיבה שפעם אחת בליל שבת באמצע "ויכולו" עלה לו בראש מהלך מבריק עבור תיכנות מסויים שהוא היה תקוע בו, ולכן הוא החליט שזה לא מתאים, שם את המקצוע בצד והפך להיות למזכיר פשוט.
הסיפור הוא קיצוני, ולא הבאתי אותו לגבי הוראה ממנו (ובמידת הצורך ישאל כל אחד את מורה ההוראה שלו על הדרך הנכונה מה לעשות), אבל זה דוגמה לעבודה בעבודת השם שדורש מקצוע מסוג זה, וכמה צריך לתרגל את הראש לתת למוח פקודה כעת לא חושבים מחשבת חולין. -
AWS השיקה את הדאטה סנטר בישראללשם ההשוואה
פינג לפרנקפורט לעומת לתל אביב -
האם שווה לבנות לבד אתר לגיוס המונים?קשה לי לצטט את כולם, כל אחד בנקודה שהוא חידד, אבל אכתוב בכמה מילים את מה שיש לי לומר.
ליוויתי ב"ה כמה קמפיינים של צ'רידי, אחד של הקהילה שהייתי תורם ומתרים, ובעצם שם נוצר החיבור הראשון שלי עם צ'רידי, ועוד כמה שליוויתי קצת יותר עמוק.
אני בניתי לדושינסקי, ולבעלזא, ולעטרת שלמה - סורוצקין את המערכת הטלפונית.
(ולעוד כמה, רק ששם בניתי רק שלוחת שמיעת מצב הקמפיין ולא תרומות).
בנוסף אציין שבנדרים פלוס בדושינסקי ובבעלזא שהיה דף מיוחד שניתן היה לתרום לקמפיין באמצעות מתרים, זה עבד בצורה שלאחר התרומה בהצלחה השרת של נ"פ שלח API לשרת שלי, עם פרטי התרומה שחדשה, והשרת שלי עדכן אותם כתרומה חדשה, בשרתי צ'רידי.
ולא נראה שזה ימשיך לעבוד כך. (בסורוצקין אכן כבר לא היה הרשאה לעשות את זה).לעצם העניין, זה ברור שעיקר ההצלחה של צ'רידי זה הפסיכולוגיה וכדומה בניהול הקמפיין, ורוב העניינים כבר הוזכרו בשרשור למעלה, איך הם גורמים למתרימים להיכנס ללחץ וכו'.
זה ובעיקר זה, הוא יסוד ההצלחה של צ'רידי.
מצד שני, חייבים שרתים חזקים, וחייבים בנוסף לבנות את זה נכון.
לדוגמא, עד הקמפיין של בעלזא, בו הייתה קריסה בשרתי צ'רידי כשלוש שעות (מחמש לשמונה בערב) פה ושם היה קורה עומסים בשרתי צ'רידי והייתי מקבל מייל מהמערכת שלי (בעת הפעלת שלוחת שמיעת מצב הקמפיין) שיש שגיאה בהתחברות לצ'רידי עם שגיאה 502 או אחר.
לאחר הקמפיין של בעלזא הם הפיקו לקחים, וראשית כל כנראה הגדילו את השרתים, אך בעיקר מה שהם עשו שהם חסמו את האפשרות של סינון תרומות בקמפיינים גדולים דוגמת סורוצקין, שלא יוכלו לחפש בהיסטוריית התרומות, זה היה נתח כבר מאוד לשרת שלהם, וכן ב API שלהם של שליפת מידע הם הגבילו את השאילתה המירבית ל100 תוצאות.בנוסף ישנם הרבה נקודות בניהול ותכנון הקמפיין מבחינת בסיס הנתונים, דוגמת אפילו שמירת כתובת ה IP מאיפה הגיעה התרומה ועוד עשרות פרמטרים שנשמרים יחד עם התרומה.
אפשרויות הוספת תרומות אופליין - לא דרך האשראי מהאתר אונליין.וכמובן API של שליפת נתונים ברמה גלובלית או ברמת מתרים, הן עבור האתר, והן עבור המערכת הטלפונית
והאחוזים של החברה, הלוואי וצ'רידי היו לוקחים רק 4 אחוז.
ישנם חברות נוספות דוגמת קוזמאצ' שלוקחים אכן רק בסביבות 4 אחוז, רק ששם אין לי מושג איך הולך ניהול הקמפיין והמתרימים.
אך מ"מ לא כל קמפיין חייב לקחת את צ'רידי, ע"מ לגייס מאה אלף ש"ח חבל להכניס את צ'רידי לתמונה.
על זה נותר לקוות שהחברות הקטנות יותר ו/או נדרים פלוס למשל, יספקו פלטפורמה טובה ומספקת. -
סורק ברקוד ומדפסת קבלות@דאטה-בייס בימים האחרונים לא הגעתי להיות על המחשב על תחומים, כך שלא היה לי נגיש להקליד.
אציין א. כאן יש לינק של המוצר האחרון שהזמנתי שהוא כולל חיבור USB+LAN+WIFI שזה נותן לך הכי הרבה גמישות.
אך הוא עולה יחד עם המשלוח כ 260 ש"ח.
ב. אני הזמנתי השבוע מדפסת אחרת שכוללת רק USB+LAN ללא עלות משלוח ככה שזה יוצא רק 144 ש"ח.
עדיין זה לא נשלח ככה שאני לא יודע להמליץ עליו.
ג. לגבי העברית ברשמי המדפסת תומכת עברית במפרט אך הרבה התקשקשתי עם זה כי ברירת מחדל זה מגיע על מצב סינית, ויש לבצע שינוי בהגדרות, ולקח לי זמן למצוא את זה ולשנות.
אם תרכוש מדפסת מהלינק הראשון אוכל להדריך אותך להעביר למצב עברית. (אמור להיות כאן בפוסטים הישנים שלי).וכעת לגבי הלוגיקה והשאלות.
סורק ברקודים זה כמו שציינו, מקלדת, וברגע שיש סריקה זה אומר שהוקלד בכמה אלפיות שניה רצף של תווים הנסרקים, רשמי הפוקוס/עכבר אמור להיות על שדה קלט ואז הסריקה היא תחליף להקלדה וממלאת את השדה, טכנית אתה רוצה שיהיה ניתן לסרוק גם ללא מיקוד בשדה, ובשביל זה יש צורך בפונקציית JS שבודקת בכל X זמן את ההקשות של המקלדת ועם מזהה רצף הקלדות במאית השניה סימן שזה מגיע מהסורק ואז לוכדים את זה ומעבירים את זה באמצעות JS למיקוןם הנדרש.
אוכל לתת לך פונקציות JS לזה. אני צריך לחפש את זה.
לגבי המדפסת, ניתן לחבר לווינדוס ולהתקין דרייבר (באמצעות תוכנה, אוכל להפנות אותך) ואז זה מדפסת רגילה ותוכל לשלוח לזה הדפסות, כמובן שאז יש ליצור PDF עם גודל עמוד של רוחב 80.
אך אם אתה רוצה הדפסה שקטה מתוך הדפדפן ללא פתיחת דו שיח הדפסה של הדפדפן זה כבר מתחיל להיות מורכב.
הדרך לכאורה שיש לעשות את זה היא באמצעות תוכנה שרצה במחשב הלקוח, אפילו מחשב אחר מחובר לאינטרנט, לאו דווקא איפה שהדפדפן, התוכנה צריכה להיות מחוברת לשרת שלך, עדיף באמצעות ווב סוקט, אחרת תוכל לעשות שזה מבצע קריאה כל X זמן לשרת לבדוק האם יש פקודה להדפסה, וברגע שיש הדפסה זה מבצע הדפסה למדפסת, בין באמצעות USB (בוינדוס צריך בשביל זה דרייבר שונה) ובין באמצעות הרשת (והמדפסת מחוברת לרשת באמצעות LAN/WIFI).
אני כתבתי סקריפט ב nodejs שמחובר ב ws לשרת שלי, ובלחיצה על הדפס בדפדפן נשלחת בקשה לשרת ששולח פקודה למדפסת.
בחלק מהמקומות השתמשתי עם אורנג’ פי שהתקנתי עליו אבונטו ונוד והוא מחובר למדפסת..
אציין שעדיין אין לי מספיק יציבות בעניין.
דרך הרשת היו לי בעיות של ניתוקים ייתכן בגלל הכתובת הסטטית של המכשיר, ודרך האורנג פי היו לי בעיות בעת נפילת חשמל שהמכשירים לא נדלקו חזרה אוטומטית. (המחשבי הווינדוס שם הם חלשים עם ווינדוס 7 של 32 ולא הצליח להתחבר ל usb ולכן הקציתי מחשב נפרד במיוחד.בהצלחה
-
בירור | עבודה בתחום התכנותמילה אחת קטנה בנושא בהקשר לפוסטים האחרונים כאן בנושא, והוא איך המתכנת יכול לשמור על 2/3 שעות בלבד.
הייתי מבדיל. ישנם 2 משאלות:
משאלה א. לעבוד רק 2/3 שעות ביום.
משאלה ב. שלא לצאת ולא לעבוד על חשבון הכולל - דהיינו לעבוד בכל שאר שעות היממה.
הנפק"מ גדולה ביניהם..
במקצועות רבים אחרים יותר קל למצוא אפשרות בסגנון משאלה א.
אפילו עבודות על מחשב, כאשר הם טכניות, כגון הקלדה מזכירות וכדומה ניתן לכאורה ביתר קלות לשמור על שעות עבודה מוגדרות, כי זה לא באמת אמור למשוך מצד עצמו ואין כאן הרבה פיתוי להגרר שעות נוספות.
משא"כ תיכנות שממכרת, תופסת את החשיבה, ואם אתה מצליח הרי שאתה כבר נרדף על צווארך מעול ההספקים.
אני לא טעמתי אף פעם תיכנות מצד השכיר שבו אלא רק מצד העצמאי שבו, אך אומר שאולי אולי בשכיר ניתן עדיין להיות במצב של עבודה בשעות שהוגדרו בלבד, כי בסופו של יום העובד פחות מחוייב לאהוב את המוצר שהוא מפתח.
אבל בתור עצמאי להיות במצב של עבודה מוגדת 2/3 ביום נשמע לי מאוד מאוד לא קל ליישם, בכל מקרה לא בשנים הראשונות בעבודה כי הם דורשים הרבה יותר למידה של כל תחום חדש והשווי שלך בשוק הוא פחות, וממילא חייבים לעבוד יותר כשמצפים להגיע לרף הכנסה מסויימת.
משא"כ המשאלה השניה והיא להשקיע המון שעות אך לשמור על סדרי הכולל, גם היא דורשת המון המון עבודה עצמית, כי העבודה סוחפת וממכרת, וכמה שיותר תצליח העבודה תאתגר יותר. אך היא עדיין יותר ברת השגה, ניתן לשמור את סדרי הכולל עם עקביות של עמידה בזמני היום בגבורה, שזה כולל שמירת הזמנים וסדר מסויים בנוגע למענה אנושי וכדומה. (אצלי לדוגמא עשיתי שהמתקשרים אלי לאחר 10 שניות שלא עניתי (או כשאין קליטה כרגיל באיזור מגורי) השיחה עוברת למרכזיה שלפי השעה הנוכחית היא משמיעה ששעות מענה הינם בצהריים משעה עד שעה ובערב משעה עד שעה, ובשאר השעות ניתן להשאיר לי הודעה כאן בשלוחה אחד, ובמקרים דחופים בלבד יש להקיש שתיים, שם יש הפניה לסים השני שלי שמספרו אינו מפורסם.. או מעבידה ישירות את השיחת כאשר מדובר בשעות המענה)
כמו כן חובה לסכם זאת מראש עם הלקוחות שאלו הן שעות הפעילות ועליהן להיערך בהתאם לזה וכו'.
שים לב, שכמה שיותר תיכנס לעבודה ויהיה לך נסיון וממילא גם ביקוש והצלחה, יהיה יותר קל לעמוד על דרישותך על שעות הפעילות שלך.
עם כי, אני לא שולל לגמרי אפשרות של עצמאי העסוק 2/3 שעות בלבד.
לכאורה זה שייך כשמגיעים למצב שפיתחת מוצר משלך המניב הכנסה חודשית קבועה, אבל בדר"כ ייקח כמה שנים טובות של עבודה בכדי להגיע למצב בו יש יכולת לפתח לבד מוצר.
ולגבי מה ש @chv אמר, יש שתי תמיהות, הראשון מצב המעביד איך קיבל אותם לעבודה, והשני מצד העובד איך אינו מגדיל את שעות עבודתו?
ולכאורה עצם הדבר שמדובר בשכירים כבר מיישב קצת את ההסבר למה הם לא עובדים יותר משעות אלו.
ולגבי איך ייתכן שמצאו עבודה ל2/3 שעות בלבד, אם יורשה לי לשאול האם מאז ומתמיד היה כך, או שהיו שנים שהם השקיעו הרבה שעות ביום ורכשו וידע וכעת ב2/3 שעות הם מספיקים מה שאחרים מספיקים ביום שלם.. וממילא ניתן להעסיק אותם רק 2/3 ביום. -
C# או NODE.JSלעצם הנושא עליו נפתח הדיון כאן.
אני עובד היום עם PHP ובמקביל עם NODEJS.
התחלתי עם PHP וכשזה לא הספיק לעומסים למדתי נוד וכבר מצאתי הרבה סיבות לעבוד איתו.
אני עובד עם שניהם משולב על שרת אחד עם שרת nginx שזה לא מפריע לי ולא אחד על חשבון השני.
לדעתי @שואף יהיה לך תועלת גדולה מלימוד nodejs למרות הזמן הרב שזה ידרוש ממך.
אני עשיתי את זה מכורח המצב עבור המערכות של המצינגים שרציתי לחסוך את הבדיקה מול הAPI של צ'רידי עבור כל שיחה אלא שהמידע המתקבל יהיה נגיש לכל השיחות מאותה קריאה, והתחלתי ללא שום ידע בJS (יעידו על זה השאלות שלי כאן בפורום כשהתחלתי עם נוד), אך לאחר מכן העברתי לנוד עוד מערכות כישיבה על קברו ופתחתי עוד ועוד מערכות בנוד.
ומצד שני לדברים קטנים אני עדיין משתמש בPHP.
אני יכתוב מה שעולה לי בראש, ומסתבר שיש הרבה יותר.
מהמעלות בנוד:
תהליך שרץ בצד השרת כל הזמן, אתה שומר נתונים לאורך התהליך ללא הצבתם ושליפתם בכל קריאה מחדש, שזה אומר שנתונים קבועים וכדומה אתה שולף פעם אחת באתחול השרת והמידע נגיש לך לאורך הדרך ללא שליפתו מהד"ב לכל קריאה מחדש. אינו זולל CPU (אבל זולל ראם לפי הכמות שתאחסן בזמני), עמיד בעומסים.
ולגבי שאילתך, יש ספריה פשוטה של תזמון משימות, אתה יכול לתזמן לפי תאריכים, לפי זמנים ודקות ועוד ולשנות את התזמון ולבטל וכו' בתוך הקוד ללא cron.
ובכלל זה היה קפיצה טובה בשבילה לJS שכבר באה מאוד הרבה לשימוש בממשק שלי שהיא אגב פרימוורק ב PHP.
מהחסרונות: כל שינוי דורש אתחול של השרת (כמעט שזה אינו מורגש ללקוחות, אבל עדיין מסרבל, ובעיקר שמי שרגיל לPHP זה באמת מנכסס).
יש להזהר שלא ליצור לולאות שזוללות זיכרון או מה כי אז תוכל להפיל לעצמך את השרת (משא"כ PHP שבדר"כ מגביל את עצמו לכמות הראם שמאפשר לסקריפט לצרוך).ולמען האמת הלמידה של זה תקח הרבה זמן, אבל אתה לא חייב להכיר מראש את כל השפה, תתחיל להתמקד במדריכים של רן בר זיק סתם על המבנה של השפה, ותתחיל לעבוד.
כאחד שכבר הכיר תכנות בPHP מצד אחד היה יותר קשה להסתגל לתחביר ולצורת העבודה של JS, אך מצד שני אתה כבר יודע מה זה לתכנת ולומד מהר את הרעיון שמאחורי זה.בנוסף אציין שגם אני ב"ה אברך כולל במשך היום, ומפרנס את עצמי מהעבודה בערבים ובצהריים, אין לי את כל הזמן שבעולם, אך אני לא מתחרט שעברתי לנוד. התועלת שהייתה לי ממנה היא לאין ארוך (ואכן רק בזכות החברים כאן בפורום ובעיקר @dovid שהמליצו לי לבצע את המהלך)
-
לימוד תכנותהשאלה היא מה היכולת למידה העצמאי, העבודה בשטח, השיווק, וכמובן הרבה סייעתא דשמיא.
אני ב"ה יושב ולומד 2 סדרים ביום ועובד בערב (וקצת בבין הסדרים, בעיקר טלפונים) בתכנות מערכות טלפוניות כעצמאי, עם אינטרנט של נטפרי, והלימוד נעשה ע"י מדריכים ברשת, (בעיקר בפורומים ולא מתוך הדרכה של ממש).
ומבחינת העבודה בנקיות ללא חששות של שמירת עיניים וכו', ב"ה אין שום בעיה.
רק שמכיון אחר אני לא אומר שזה קל, הקושי הוא שצריך יכולות ריכוז גבוה בשעת הלימוד להתנתק מהעבודה, בפרט כשאתה מנהל פרוייקטים בהיקף, והרבה פעמים לקוחות מתקשרים ואתה יודע למה, ואתה לא עונה בשעות הסדרים, וכו'.
רק שאני לא בטוח שבעבודות אחרות זה אחרת, כי זה תלוי באופי של בן אדם כמה הוא מחובר לעבודה שלו, וכמה הוא חושב על זה גם שלא בשעות שהוא עובד.
אבל בהחלט שתחום הטכנולגיה בצורה פתוחה שאתה לא עובד על משהו מוגדר אלא מתפתח כל הזמן בעוד תחומים ועוד טכניקות זה בהחלט משהו שתופס את הריכוז כל היום.
ואולי זה לבד סיבה לעסוק בתחום תורני מוגדר שזה לא מושך ולא תופס את הריכוז בשעות שאתה לא אמור לעבוד. -
AWS השיקה את הדאטה סנטר בישראללמי שזה מעניין, מעתה ניתן לפתוח שרתים של AWS בישראל
https://aws-experience.com/emea/israel/ -
עזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמךעל כל השרשור כאן אני לא יכול להתאפק מלכתוב שני מילים
"אשריכם ישראל" -
התייעצות על כללי הצטרפות חדשיםמה עם האפשרות של א"א להגיב לפני כך וכך מוניטין, ובעצם לקריאה יהיה פתוח לכל המבקש בצורה ישירה (לא פתוח מראש לכולם), אך כדי להגיב בתיכנות אקסקלוסיבי יהיה נדרש מוניטין משאר הפורום.
ואחווה את דעתי.
ראשית אני מציין שגם 25 הוא זול מאוד לערך התועלת שיש לי בפורום, אך אני חושב שאולי בתחילת הדרך זה היה מסייג אותי והייתי נמנע ומפסיד.
ישנם צעירים(?) שחבויים בהם כשרונות לתכנות אך היות והם לא ניסו הם לא יודעים, (למרות שאני למשל כבר בגיל 9 בערך למיטב זכרוני היה לי קופסת נעליים עם מנועים של מאוורים על בטריות וכו' והייתי אוהב עיסוקים כאלו להבין ולתקן מכשיקי חשמל וכו', וכל פלאפון הייתי יכול בכמה דקות ללמוד ולהבין אותו וכו' כך שבדר"כ מי שיש לו הכישרון זה כבר יורגש לו מיד, אך עדיין את החוש התיכנותי לא הכרתי עד שלא הגיע לי לידי שימוש אמיתי על יוזמות אמיתיות) מה שאומר שייתכן מאוד וישנם בעלי פונטציאל שאם הם יראו דוגמאות ודיונים הם יגלו שהם מבינים את זה וינסו בקונסול ואח"כ שרת חינמי ואח"כ יביאו ברכה לעולם..
חבל למנוע זאת מהם (אני לא נכנס לנושא של אברכי כולל ובחורים שזה יכול להוציא אותם מהלימוד, מי שרוצה שיפתח על זה נושא אחר).
לכן יש מעלה שזה יהיה פתוח לכל המבקש בצורה ישירה, אך לא פתוח לחלוטין כי אז ישנם בעיות של העתקת יוזמות ועוד שכבר צווינו לעיל שעדיף למנוע מסקרנים כניסה, אך כאשר אומרים שיש לבקש פניה ישירה ובו מציינים חצי מילה על רקע זה כבר יסנן החוצה את מי שלא מרגיש שייך כלל.
אך עדיין לא לאפשר תגובות בכדי למנוע שאלות סתמיות (של למה? כאשר אין חצי מושג בנושא הדיון) לפני רכישת מוניטין שבדרך המנהלים כבר יוכלו בקלות לתהות על קנקנו לפי התגובות בנושאים אחרים.
אך משהו אחר מציק, מניין ירק זה חי?
המנהל היקר ר' @dovid מקצה כ"כ הרבה זמן עבורנו שעל זה אני לא יודע בכלל אם ניתן לשלם מספיק, אך לפחות עלות התחזוקה יהיה עלינו. -
מערכת טלפונית לביצוע פקודות בענןב"ה
גילוי נאות: אני מתעסק בתחום זה, באמצעות הפלטפורמה של ימות המשיח.
את תכנות המערכת אני בונה בPHP על השרת שלי, (וכמעט שאין מוגבלויות מה ניתן לבנות), והמערכת בימות המשיח מתחברת לשרת שלי לביצוע הפקודות באמצעות API.עלויות: עצם החזקת וקבלת מערכת מימות המשיח הנו חינמי, אלא א"כ רוצים שירותים מיוחדים כגון מספר זהב, צריכת יחידות עבור שיגורי הודעות וקמפיינים, או שימוש בזיהוי דיבור.
אני לוקח כסף על עלויות הפיתוח, כמתכנת, לפי המערכת המוזמנת.דוגמאות של מערכות שלי שתוכל להתרשם 033080222 - מכירים טובה, 033080777 - מערכת בדיקת יתרה בכרטיספר של אור החיים, 023011700 הרשמה לכניסות לקברי צדיקים שע"י מנהלת קבר יוסף.
יצירת קשר: 7226644@gmail.com
בנוסף תוכל לשקול לפנות לשירותי הפרמיום בימות בימות המשיח ולבקש הצעת מחיר שהם יבנו לך (ייתכן והן ישלחו אלי, לא כל מערכת שווה להם לבנות כמודול אמיתי).
יצירת קשר איתם: ימות המשיח תקשורת מחלקת מדיה yemot.media@gmail.comישנם חברות נוספות בתחום כדוגמת קול כשר, אך אין לי מושג מה הנוהל שם.
נ.ב. אני לא כ"כ בקי בכללי הפורום, לכן אני מקוה שהתשובה שלי מותרת לפי התקנון, אחרת נא להעיר את תשומת לבי. תודה
-
שיתוף סקריפט nodejs להורדת אקסל תנועות עו"ש מבנק דיסקונט משנים קודמים באמצעות התיבה האישיתאם מישהו הספיק להעתיק את הקוד
שימו לב לשינוי, ערכתי והחלפתי מparseInt
לparseFloat
בגלל שזה השמיט את האגורות, כעת מתוקן ותקין ב"ה.
אני אמנם עבדתי זמן מה להבין את הAPI של דיסקונט ובעיקר להבין את מבנה התוכן המתקבל, אך בסופו של יום קבלת הנתונים בצורת אקסל סייעו לי מאוד.
הייתי צריך לחשב 2 משכנתאות והעברות שהיו נגד המשכנתאות ולהצליב את הנתונים, זה היה תענוג לחפש באקסל בקלות את התנועות ולבדוק את ההפרשים, בהחלט אשמח מאוד אם זה יביא למישהו תועלת ויחסוך לו לחפור ולהעתיק או להזין ידנית. -
הורדת קבצים מגוגל דרייב (הפרטי) באמצעות google api על ידי nodejsיצא לי להתעסק עם זה לאחרונה וראיתי שזה היה חתיכת כאבי ראש והרבה יותר
אני משחזר כאן את סדר הדברים כמיטב זכרוני, בתקוה שיביא תועלת למישהו.
ראשית יש להרשם וליצור פרוייקט חדש כאן
לאחר מכן להכנס לדשבורד של הפרוייקט
לאחר מכן יש צורך להוסיף את שירותי דרייב
נכנסים ל ENABLE APIS AND SERVICES
מחפשים את שירות הדרייב
לוחצים על הפעל - ENABLE
לאחר מכן יש להוסיף הרשאות לגישה לסקופ של גוגל דרייב, ואח"כ ליצור קובץ אישורים, ועל כך בסרטון המצורף (כבר אין לי כח לכתוב..)
https://drive.google.com/file/d/15Vwi5_Jd6dMGEjT2zwXKx2CojxPt3bg6/view?usp=sharing
או ביוטיוב (פתוח בנטפרי)לאחר מכן יש להשים את הקובץ עם האישורים לתיקיית העבודה
ולשנות את שמו ל credentials.json.
וכעת לחלק של node יש להתקין את הספריה של גוגל כפי ההוראות כאן,
ובקיצר דהיינו להתקין כךnpm install googleapis@39 --save
לאחר מכן נמשיך לשלב 2 בהוראות הנ"ל של גוגל, אך לפני ההרצה יש לשנות את שורהconst {client_secret, client_id, redirect_uris} = credentials.installed;
ל
const {client_secret, client_id, redirect_uris} = credentials.web;
בנוסף כדי שיהיה לנו באישורים גם הרשאת גישה להורדת קבצים וכו' ולא רק רשימת הקבצים, שיניתי את שורה
const SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly'];
ל
const SCOPES = [ 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/drive.file', 'https://www.googleapis.com/auth/drive.readonly', 'https://www.googleapis.com/auth/drive.metadata.readonly', 'https://www.googleapis.com/auth/drive.appdata', 'https://www.googleapis.com/auth/drive.metadata', 'https://www.googleapis.com/auth/drive.photos.readonly', ];
רק לאחר מכן ניתן להריץ את הקובץ index.js עם הפקודה
node .
כמופיע בהוראות
אני העתקתי את הלינק שקיבלתי בקונסול ופתחתי אותו בדפדפן
נפתח לי דף לאשר גישה לאפליקיצה (ושהיא רק בבדיקה וכו')
יש להקפיד לאשר את זה מאותו חשבון שרשמנו בפרוייקט כחשבון בעל הרשאת גישה.
השרת של גוגל יפנה אתכם לכתובת שרשמנו עם משתנים נוספים
http://localhost:3000/oauth2callback?code=4/gsfdgfsdgfdshjuyODo5wjo9KUpYJ1-Q&scope=https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive.metadata.readonly https://www.googleapis.com/auth/drive.appdata https://www.googleapis.com/auth/drive.metadata https://www.googleapis.com/auth/drive.photos.readonlyיש לחלץ את הערך של code ולהדביק אותו בקונסולה של node שהפעלנו.
כעת ההרשאות אומתו וניתן לגשת להורדת קובץ וכו'.
דוגמא להורדת קובץ שעבד לי
https://stackoverflow.com/a/56724621מקוה שיעזור למישהו
בהצלחה -
קריסת MYSQL@yossiz אמר בקריסת MYSQL:
מה הכוונה קריסות? התהליך באמת קורס? (אני רוצה להאמין שקריסה של DB זה מקרה נדיר מאוד...)
בהחלט יש כזה מושג.
לפני שידעתי מה זה אינדקס..
היה לי טבלה לא זוכר באיזה שלב זה היה כ400K או כ14M שורות.
השרת היה מבצע בדיקה האם נתון מסויים נמצא בטבלה, הבדיקה הייתה חוזרת בכל שלב בהקשה של המשתמשים, וכאשר היו לי הרבה מידי משתמשים בו זמנית והבדיקה הייתה מבוצעת כל הזמן שוב ושוב על כזו טבלה גדולה, התוצאה הייתה שהחריגות גדולות השרת היה מאתחל את הmysql.
יש כאן תמונה שמראה מה קרה ברגע שאינדקסתי את הטבלה