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

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

רק בגלל שזה נשמע משכנע

05/01/2023

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

בדוגמה לא טכנית ביקשתי מהחבר לייצר רשימה של מילים בנות 5 אותיות שמתחילות ב e ומכילות j, ככה נראתה השיחה:

Q:
please suggest some 5 letter words that start with an e and contain a j

A:
Here are five 5-letter words that start with an "e" and contain a "j":

    eject - to force out or expel, as by a sudden and vigorous thrust
    jumbo - very large in size or quantity
    jenny - a female donkey or ass
    jewry - the Jewish people or community, especially as a whole
    jowar - a type of sorghum grain that is commonly grown in arid regions of Africa and Asia.

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

If you want to download multiple images, you can use a loop to iterate over the URLs of the images and download them one at a time using one of the methods described above. You may also want to consider using threading or asyncio to download the images in parallel, which can improve performance if you are downloading a large number of images.

אף מילה על האפשרות להשתמש ב sessions בספריית requests (שברוב המקרים תתן תוצאה טובה יותר משימוש ב Thread-ים או ב async), ובלי הסביר איך לבדוק את הביצועים בעצמך.

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

יום 5 - מימוש שרת Echo ב Rust

31/12/2022

אחרי כל הדברים היפים שמצאתי ב Rust, היום גיליתי את שני הדברים שעדיין חסרים - תמיכה מובנית במודל תכנות אסינכרוני ותמיכה ב Green Threads. בואו נראה את שתי הבעיות דרך בניית שרת Echo.

המשך קריאה

יום 4 - מימוש tail ב Rust

30/12/2022

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

המשך קריאה

יום 1 - מספיק Rust בשביל שנוכל לקודד

27/12/2022

הי חברים,

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

מוכנים? הדקו חגורות ומיד ממריאים.

המשך קריאה