האם מישהו ניסה את גרסה 4 הלא חינמית של GPT בתחום התכנות? האם יש לה יתרון ניכר?
yyy
-
בינה מלאכותית GPT 3.5 לעומת 4 - יתרון בתכנות. -
טקסט תהילים חינמי - חופשימחפש קובץ או DB של טקסט התהילים חינמי חופשי, ושיהיה מה שפחות צריך להתקשקש אם זכויות יוצרים וכדו'.
מצאתי את זה
אבל אני רוצה קובץ גדול או DB כאמור.
תודה רבה -
פניה אסינכרונית והמסתעף Angular TSעכשיו ברשותכם שאלות:
א.
הפונקציה בסרוויסgetBooks() { return this.Books = this.Books || this.httpClient.get<Book[]>(this.GetBooksURL).toPromise(); }
מחזירה פרומיס
אבל הפונקציה בקומפוננטהasync ngOnInit() { this.books= await this.BookSvc.getBooks();
מקבלת []Book ,
השאלה היא האם הסיבה שמתבצעת ההמרה האוטומטית הזו, למרות שמדובר ב-TS, זה בגלל שיש async/await הוא מבין שהוא צריך לחלץ את הערך מהפרומיס?ב. אני מנסה לחבר את פרומיס זה לרעיון הכללי של פרומיס. אני ידעתי שהמצב של הפרומיס מוגדר ע"י הרצת resolve/reject, ואז פונים לthen או catch וכדו'. השאלה היא מי מריץ כאן מאחור את כל הפונקציות האלו הרי בקוד אני לא נוגע כאן ב-resolve then ודומיהם?
-
פניה אסינכרונית והמסתעף Angular TS@יוסף-בן-שמעון
הטעות שלי היית שחשבתי שהתכוונת
לזהreturn (this.Books = this.Books )|| this.httpClient.get<Book[]>(this.GetBooksURL).toPromise();
ולא הבנתי מה ההצבה המוזרה באופרנד הראשון
בשעה שהתכוונת באמת לזה:return this.Books = (this.Books || this.httpClient.get<Book[]>(this.GetBooksURL).toPromise());
-
פניה אסינכרונית והמסתעף Angular TSאגב ה-toPromise בהקשר זה הוא depricated
-
פניה אסינכרונית והמסתעף Angular TS@יוסף-בן-שמעון כתב בפניה אסינכרונית והמסתעף Angular TS:
כשאתה מבצע השמה למשתנה books אתה קודם כל בודק אם הוא כבר מאותחל,
זה נכון לגבי כל השמה, או שזה משהו ספציפי לפקודת return?
במידה והוא כבר אותחל אתה לא משנה בו כלום אלא מצביע עליו בחזרה,
למה פקודה כזו
return this.books || this.httpClient.get<Books []>(this.Getbooks URL).toPromise();
לא מבצעת אותו דבר, הרי אם האובייקט אינו מאותחל זה יחזיר undefind כלומר false, וילך לפרומיס לאתחל את האובייקט, ואם זה כן מאותחל כלומר true שיחזיר אותו עצמו ולא יפנה לפרומייס?
בדקתי ואכן בסינטקס שלי הוא כן פונה כל פעם מחדש ואני רק שואל למה זה קורה. -
פניה אסינכרונית והמסתעף Angular TS@יוסף-בן-שמעון כתב בפניה אסינכרונית והמסתעף Angular TS:
books: Promise<Book[]>;
books: Promise<Book[]> = [];לא כך ולא כך, אלא כך:
books:Books[] = [];
זה:
books: Promise<Books[]>;
מחזיר את השגיאה הזו
'books' has no initializer and is not definitely assigned in the constructor.
ואז אני מוסיף סימן?
ומקבל שגיאה ב-returnType 'Promise<book[] | undefined>' is not assignable to type 'Promise<book[]>'. Type book[] | undefined' is not assignable to type book[]'. Type 'undefined' is not assignable to type book[]'.ts(2322)
וזה:
books: Promise<Book[]> = [];
מחזיר שגיאה:
Type 'never[]' is missing the following properties from type 'Promise<Book[]>': then, catch, finally, [Symbol.toStringTag]
-
פניה אסינכרונית והמסתעף Angular TS@יוסף-בן-שמעון
עשיתי כדבריך:
זה הסרוויסconstructor(private httpClient: HttpClient) { this.getBooks(); } getBooks() { return this.Books = this.Books || this.httpClient.get<Book[]>(this.GetBooksURL).toPromise(); }
זה הקומפוננטה
constructor( private BookSvc: BookSevice ) { } async ngOnInit() { this.books= await this.BookSvc.getBooks(); }
העניין שכעת לא מתבצעת בכלל פניה לשרת.
האמת (אני מניח שזה קשור לזה) שגם כך אשמח להכיר את הסינטקס של ה-return הנ"ל בשני דברים:
א. סימן ה"||" פירושו OR?
ב. מה המשמעות של קטע הקוד הזה
this.books = this.books
?
תודה רבה. -
פניה אסינכרונית והמסתעף Angular TS@WEB כתב בפניה אסינכרונית והמסתעף Angular TS:
לא חייבים להפוך לפרומיס, observable הוא מצוין ויכול לעשות הרבה דברים שpromise לא יודע לעשות.
אני משתמש ב-observable כדי לקבל מהשרת, אבל אני לא יודע להשתמש בו שרק כאשר יתאכלסו הנתונים מהשרת אל תוך הסרוויס, אז ישלף המידע.
כמו"כ למה לקרוא לhttp מתוך הconstructor של הservice? מקובל ליצור פונקציה בתוך הservice שהיא מחזירה את הobsevable של הקריאה. הconstructor משמש להזרקה של services אחרים לתוכו.
כי חשבתי שיהיה הגיוני פעם אחת לשלוף את המידע ולא כל פעם לבדוק האם המידע קיים או לא.
-
פניה אסינכרונית והמסתעף Angular TS@יוסף-בן-שמעון כתב בפניה אסינכרונית והמסתעף Angular TS:
this.books = await BooksSvc.GetBooks();
הכנסתי את השורה הזו ל-CTOR וקיבלתי שגיאה
'await' expressions are only allowed within async functions and at the top levels of modules
הכנסתי את הנ"ל לפונקציה נוספת בתוך showBooksasync getBooks() { await this.booksSvc.getBooks() }
והשארתי את הקריאה מקונסטרקטור כך:
this.books= this.getBooks()
כתוצאה מכך אני מקבל שגיאה
Type 'Promise<void>' is missing the following properties from type 'Book[]': length, pop, push, concat, and 29 more.
בקיצור לא הולך...
-
פניה אסינכרונית והמסתעף Angular TSיש לי
http//GetBooks
- API שמחזיר מערך של אובייקטיםמסוגBook
המייצגים ספרים.
אני רוצה להציג את רשימת הספרים בקומפוננטהShowBooks
. בקומפוננטה זו יש חיווי חזותי האם קראתי את הספר או לא התלוי במשתנהhasReaded
הנמצא בתוךBook
.
כל ספר אפשר לקרוא ולצורך כך יש קומפוננטה נפרדתBookReader
.
בסיום הקריאה אני מסמן "קראתי" והחיווי אמור להתעדכן אוטומטי כשאחזור ל-showBooks
.המימוש מתבצע כך: בקונסטרקטור של
ShowBooks
נטען סרויסBooksSvc
, אשר בקונסטרקטור שלו (שלBooksSvc
) מתבצעת פנייה אוטומטית לשרת ואת המערך שהיא מקבלת היא מציבה למערך בתוך הסרויס .
כעת בהמשך הקונסטרקטור שלshowBooks
פשוט מקבלים מהסרויס את רשימת הספרים העדכנית.
showBooks
this.books = BooksSvc.GetBooks();
BookSvc
GetBooksURL: string = "http:GetBooks"; books: Book[] = []; constructor(private httpClient: HttpClient) { this.firstGetBooks().subscribe(b => { this.books =b; }) } firstGetBooks(): Observable<Book[]> { return this.httpClient.get<Book[]>(this.GetBooksURL) } Getbooks() { return this.books }
הבעיה היא שכשהקומפוננטה
showBooks
מבקשת את המערך מהסרוויס עדין לא תמיד המידע הגיע. הצלחתי לפתור את זה עם setTimeOut אבל זה פתרון גרוע לדעתי כי אתה לא יודע כמה זמן יקח למידע להגיע וזה או בזבוז זמן או שתיפול על פחות מידי זמן.
איך אפשר לפתור את זה? -
קליטת תו מהקונסול - #C@yossiz
אכן מה שהביא אותי להרהר בדבר הוא תחום מערכות ההפעלה, בו למיטב זכרוני למדתי שתחום התצוגה מתוחזק בדר"כ ע"י מערכת ההפעלה ולא ע"י האפלקציה.לסיכום התשובות ע"פ הקישור שהביא @Aharon-0
יש 2 שיטות:האחת הסטנדרטית יותר היא יצירת מחלקה (בדומה אולי ל -pipe בלינוקס) שפשוט משמשת "איש באמצע" ומתעדת את כל הפניות לקונסול. (גישה זו פחות "מעניינת" בעיני כי היא בדיוק כמו יצירת מטריצת משתנים המייצגים לוח.)
השניה היא גישה ל-Buffer (דרך די מורכבת אם רוצים להתחיל מ-0)
כך או כך אין דרך מובנית לעשות זאת.
-
קליטת תו מהקונסול - #C@dovid כתב בקליטת תו מהקונסול - #C:
@yyy לא הבנתי מה שכתבת,
אני רק התכוונתי שבעוד שלהבנתך לא רלוונטי לכתוב למה אתה צריך את זה (קריאה מטקסט בקונסול),
אני בטוח כמעט במאת האחוזים שאם היית מספר למה אתה צריך את זה היו תשובות פשוטות בהרבה.אני פשוט טוען שנושא ה-X שלי הוא רצון להכיר טוב יותר את המערכת, ולכן הבעיה שהצגתי היא ה-X עצמו ולא Y.
-
קליטת תו מהקונסול - #C@dovid כתב בקליטת תו מהקונסול - #C:
בכל מקרה השאלה פה צועקת את XY Problem.
אני מאמין שבשביל להגיע להבנה טובה של חומר, אחרי שניסית והצלחת לעבוד עם הדרכים המקובלות, תנסה את הדרכים הפחות מקובלות והיותר ביזאריות, באופן זה אתה "נוגע" בגבולות הגזרה של המערכת ומגיע למידע שלא תגיע בדרכים רגילות.
אבל אולי זה רק אני... -
קליטת תו מהקונסול - #C@dovid כתב בקליטת תו מהקונסול - #C:
אני חושד שאתה גם בבעיית הXY, אני מייעץ שתספר למה אתה צריך דבר כזה.
אני מיישם לוח משחק ומנסה לחסוך מטריצת משתנים.
-
קליטת תו מהקונסול - #Cיש לי קונסול שהדפסתי בו ABC, כעת אני רוצה "לקחת" מההדפס (הקונסול השחור) את ה-B ולהכניס אותו לתוך משתנה. האם אפשר, ואיך אני עושה את זה?
במילים אחרות אני רוצה שה-Input יגיע מהמסך ולא ממשתנה או מהמשתמש.
תודה רבה. -
מחפש מצלמה ביתית - תקציב 3000 ש"ח@יעקב2 כתב במחפש מצלמה ביתית - תקציב 3000 ש"ח:
ברצינות ? מה נשאר מייצב אופטי וזום
שאת אלו יש גם במרק 3 וגם ב-2?
-
מחפש מצלמה ביתית - תקציב 3000 ש"חזה מעניין כי הדירוג של מרק III די גרוע באתר של קנון . אומנם מספר המדרגים נמוך בשניהם, כך שהסטיה האפשרית כנראה גדולה יותר.
-
מחפש מצלמה ביתית - תקציב 3000 ש"ח@nigun
לא נראה לי. אני שולח את זה למישהו בארה"ב. כמובן שלכן צריך לשלם מיסים בסדר גודל של 40$, אבל זה עדיין יוצא יותר זול בכ-300 ש"ח מהמקום הכי זול שמצאתי בארץ לעת עתה. אם זה כל ההפרש, יכול להיות שעדיף כבר בארץ כי אתה מקבל אחריות ל-3 שנים. -
מחפש מצלמה ביתית - תקציב 3000 ש"חהאם ייתכן למצוא יותר זול מהיצרן עצמו?
https://www.usa.canon.com/shop/p/powershot-g7-x-mark-ii?color=Black&type=New