הבלוג של ינון פרק

טיפים קצרים וחדשות למתכנתים

הונו הוא כל מה שרציתי מ express

02/09/2024

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

המשך קריאה

אין או יש מקום בדיסק?

01/09/2024

הפלט של שתי הפקודות האלה על השרת הפתיע אותי -

ynon@schooler-prod-2:~$ touch a
touch: cannot touch 'a': No space left on device

ynon@schooler-prod-2:~$ df -h
Filesystem                                               Size  Used Avail Use% Mounted on
udev                                                     7.9G     0  7.9G   0% /dev
tmpfs                                                    1.6G  8.5M  1.6G   1% /run
/dev/sda                                                 315G  103G  197G  35% /
tmpfs

איך יכול להיות ש touch לא יכול ליצור קובץ חדש ומתלונן שאין מספיק מקום על הדיסק, כש df מראה שיש דווקא המון מקום? האם df משקר? האם יש corruption במערכת הקבצים? מה קורה פה?

ייתכן. אבל לפני שרצים להפעיל fsck שווה לנסות גם את df -i. מערכות קבצים בלינוקס צריכות לשמור בנוסף לקבצים עצמם גם אינדקס שמקשר בין שם הקובץ לתוכן שלו על הדיסק. האינדקס הזה גם תופס מקום והמבנה שלו יוצר מגבלה על מספר הקבצים שאפשר לשמור בתיקייה. הפקודה df -i מציגה כמה קבצים אפשר לשמור על כל כונן וכמה יש לכם, בלי קשר לגודל שלהם.

כשיש מקום על הדיסק אבל אין מספיק inodes פנויים, הפקודה touch (ויצירת קבצים באופן כללי) יציגו את אותה הודעת שגיאה מבלבלת No space left on device, למרות שהם היו צריכים להגיד Not enough free inodes on device.

הכירו את Observable Plot - הגירסה הקלה של D3

31/08/2024

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

המשך קריאה

רק שתי לחיצות

30/08/2024

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

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

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

מה שהם בטוח לא ראו זה שצרכי אבטחת המידע שלהם לא מסתדרים עם נסיעות לחו"ל משתי סיבות:

  1. לא ניתן ללחוץ על כפתור החיבור מרשת אינטרנט בחו"ל.

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

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

לקחים-

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

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

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

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

סדרת SQL בסיסי - פוסט 18 - פונקציות לעבודה עם תאריכים

27/08/2024

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

המשך קריאה

סדרת SQL בסיסי - פוסט 16 - פונקציות לעבודה עם מחרוזות

25/08/2024

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

המשך קריאה

סדרת SQL בסיסי - פוסט 15 - משפט WHERE

24/08/2024

פקודות select ו update יכולות להסתיים ב where כדי לדייק את השורות עליהן עובדים. ראינו בשיעורים קודמים איך להשתמש ב where כדי למצוא שורות עם ערך ששווה לערך קבוע מסוים או שורות עם ערכי NULL. בשיעור זה נראה עוד כמה אפשרויות לשימוש במשפטי where.

המשך קריאה