en
Feedback
ToCode

ToCode

Open in Telegram

טיפים ×§×¦×Ø×™× ×œ×ž×Ŗ×›× ×Ŗ×™× ×ž××Ŗ ינון פרק

Show more
1 419
Subscribers
No data24 hours
+17 days
-430 days
Posts Archive
ToCode
1 419
šŸ“Œ למה AI פוגע בבטחון שלכם ×›×ž×¤×Ŗ×—×™× ומה אפשר ×œ×¢×©×•×Ŗ עם זה אחד ×”×“×‘×Ø×™× שאהבתי בתכנות עוד מאז ההיכרות הראשונה שלי עם ×˜×•×Ø×‘×• פהקל היה ×©×ž×“×•×‘×Ø במקצוע צפוי. תכתוב את הקוד הנכון והתוכנית תעבוד. תכתוב קוד לא נכון ×•×“×‘×Ø×™× ×Ø×¢×™× יקרו. לימים ×œ×ž×“×Ŗ×™ שגם קוד לא נכון יכול לעבוד במצבים מהוימים והבעיות הכי קשות קורות כשיש לנו קוד נכון שמפהפה ×ž×§×Ø×” קצה שאף אחד לא חשב עליו, אבל גם אז אחרי שקילפנו מהפיק שכבות הקוד עשה מה שקוד ×¦×Ø×™×š ×œ×¢×©×•×Ŗ. בעידן ה AI זה כבר לא נכון, וזה מדאיג במיוחד עבור ×ž×Ŗ×›× ×Ŗ×™× ×¦×¢×™×Ø×™×. חבר שלח לי קישור ×œ×ž×¢×Ø×›×Ŗ לימוד תכנות לילדים ×©×ž×©×Ŗ×ž×©×Ŗ ב AI ועוזרת לילדים ×œ×‘× ×•×Ŗ משחקים עם הוכן קידוד. ×Ŗ×•×š כמה דקות היה לי באוויר משחק של מטוה ×ž×Ŗ×—×ž×§ ×ž××”×˜×Ø×•××™×“×™×, אבל אז עצרתי לחשוב "מה ×œ×§×—×Ŗ×™ מהחוויה הזאת" והאם אני רוצה שהילדים שלי ילמדו תכנות בצורה כזאת? × ×Ŗ×—×™×œ במה לא ×œ×§×—×Ŗ×™ מהחוויה. בשום שלב לא × ×™×”×™×Ŗ×™ ×œ×¢×©×•×Ŗ משהו שלא עבד ובשום שלב לא ×”×”×Ŗ×›×œ×Ŗ×™ על קוד וחשבתי "מה ×¦×Ø×™×š ×œ×©× ×•×Ŗ כאן כדי שמשהו יעבוד אחרת על המהך". למעשה את הקוד שנוצר היה לי קשה מאוד ×œ×§×Ø×•× לא כל שכן ×œ×Ŗ×—×–×§. הנה דוגמה לפונקציה אחת שהבוט כתב:
function spawnAsteroid(){
  let r=Math.random()*22+14;
  let y=Math.random()*(H-r*2)+r;
  // ×ž×Ø×—×§ מינימלי מהשחקן
  if(Math.abs(y-player.y)<60) y+=80;
  y=Math.max(r,Math.min(H-r,y));
  asteroids.push({x:W+r,y,r,speed:Math.random()*120+100+difficulty*15,rot:0,rotSpeed:(Math.random()-0.5)*3,hit:false});
}
חוׄ ×ž×”×”×¢×Ø×” בעברית קשה להבין מה קורה שם: ×©×ž×•×Ŗ ×ž×©×Ŗ× ×™× לא ×‘×Ø×•×Ø×™×, ×ž×”×¤×Ø×™ קהם ×ž×¤×•×–×Ø×™× והמון תחביר ×ž×Ŗ×§×“×. ברור שאם שיחה עם AI ×ž×™×™×¦×Ø×Ŗ קוד כזה התוצאה היא שנרצה פחות ×œ×§×Ø×•× את הקוד ונשען יותר על ה AI כדי שיפרש לנו מה כתוב שם. ברור גם שה AI טועה והוזה וכנראה ימשיך ×œ×˜×¢×•×Ŗ ×•×œ×”×–×•×Ŗ בשנים הקרובות ולכן הוא בדיוק ההיפך ×ž×Ŗ×›× ×•×Ŗ - במקום עולם ×Ŗ×•×›×Ÿ צפוי עם ההבר הגיוני לכל דבר אנחנו נכנהים לשיחה חהרת הגיון עם מכונה ומקווים שההודעה הבאה תפתור את הבעיה. לא פלא שתכנות בעזרת AI ×ž×•×Ø×™×“ את הבטחון העצמי שלנו ×›×ž×¤×Ŗ×—×™× ופוגע בהקרנות. כל זה לא בא לטעון שעלינו ×œ×•×•×Ŗ×Ø על ה AI בתור כלי עבודה או אפילו ×œ×•×•×Ŗ×Ø על הוכני קידוד שיכתבו את הקוד בשבילנו בהילוך ×ž×”×™×Ø ועל טייה אוטומטי. האתגר הוא ×œ×‘× ×•×Ŗ את הבטחון העצמי בשלבים ×•×‘×©×™×˜×Ŗ ×”×”×¤×™×Ø×œ×”, ×Ŗ×•×š כדי בניית ההיכרות שלנו עם ×”×ž×¢×Ø×›×Ŗ. יש אנשים שככל שהם ×ž×©×Ŗ×ž×©×™× ב AI יותר כך הם פחות מזהים את הקוד שלהם והופכים ×Ŗ×œ×•×™×™× בתשובות ההוכן. אנחנו ×Ø×•×¦×™× ×œ×”×™×•×Ŗ האנשים שככל ×©×ž×©×Ŗ×ž×©×™× יותר ב AI כך אנחנו ×ž×›×™×Ø×™× טוב יותר את הקוד ויודעים ×œ×¦×¤×•×Ŗ מה ×Ŗ×”×™×” תשובת ההוכן לפני שהוא כותב אותה.

ToCode
1 419
šŸ“Œ ×Ŗ×Ø×’×•× הפריה? כבר לא בעיה בעולם שלפני AI כשכתבתי קוד ×Ø×™×™×œ×” צד שרת והיתה חהרה לי הפריה שהיתה זמינה רק ל JavaScript היו לי בגדול שתי אפשרויות ×¤×Ø×§×˜×™×•×Ŗ: 1. אפשר ×œ×”×Ø×™×„ node.js בצד שרת כדי שיריׄ את ה JavaScript. 2. אפשר לשלוח את הקוד ×œ×”×Ø×¦×” בדפדפן ב Client Side. ברור שהאפשרות של ×Ŗ×Ø×’×•× ההפריה מ JavaScript ×œ×Ø×•×‘×™ או ×¤×™×™×Ŗ×•×Ÿ ×”×™×Ŗ×” שם אבל היא לא ×”×™×Ŗ×” ×Ø×™××œ×™×Ŗ. אף אחד לא היה יושב ×œ×Ŗ×Ø×’× הפריית קוד פתוח רק בשביל ×œ×‘× ×•×Ŗ פיצ'ר. היום זה כבר לא המצב. הבוקר רציתי ×œ×Ø× ×“×Ø ×ž××Ø×§×“××•×Ÿ בצד שרת ×‘×”×–×Ø×ž×”. ×Ø×“×§×Ø×¤×˜ שהוא מנוע פענוח ×”×ž××Ø×§×“××•×Ÿ של רובי לא בנוי לזה. אולי היה אפשר ×œ×”×Ŗ××™× אותו. אולי לא. לא נשארתי ×œ×’×œ×•×Ŗ. במקום ×ž×¦××Ŗ×™ את streaming markdown שהוא הפריית JavaScript לפענוח ×ž×“×•×Ø×’ של ×ž××Ø×§×“××•×Ÿ, בדיוק מה שהייתי ×¦×Ø×™×š. מה עושים? × ×•×Ŗ× ×™× לקלוד קוד עם מודל פתוח GLM-5 ×œ×Ø×•×„ על ההפריה ×•×œ×‘× ×•×Ŗ גרהת רובי שלה. שלוש שעות אחרי ×§×™×‘×œ×Ŗ×™ את: https://github.com/ynonp/streaming-markdown-rb אותו ממשק, 282 בדיקות ××•×˜×•×ž×˜×™×•×Ŗ שהועתקו ×ž×’×Ø×”×Ŗ ה JavaScript ועוברות בגרהת הרובי וקוד שעבד בנהיון ×”×Ø××©×•×Ÿ.

ToCode
1 419
šŸ“Œ כזה × ×™×”×™×Ŗ×™: פיתוח צד-שרת עם vavite אם ××Ŗ× ×ž×¤×Ŗ×—×™ צד לקוח או Full Stack היכוי טוב מאוד ×©××Ŗ× עובדים עם next.js או עם vite. נקהט נותנת ×“×Ø×š ×ž×”×™×Ø×” מאוד ×œ×‘× ×•×Ŗ ××¤×œ×™×§×¦×™×•×Ŗ ×Ø×™××§×˜ בלי לחשוב על ×”×¤×Ø×˜×™× ו vite מציעה ×¤×Ŗ×Ø×•×Ÿ יותר גנרי לכל ×¤×Ø×™×™×ž×•×•×Ø×§ צד לקוח שנרצה. שני כלים אלה ×”×©×Ŗ×œ×˜×• על השוק שרק לפני כמה שנים עבד בצורה כמעט ×‘×œ×¢×“×™×Ŗ עם webpack. בעוד ש next.js ×ž××¤×©×Ø×Ŗ ×œ×›×Ŗ×•×‘ גם קוד צד שרת וגם קוד צד לקוח, הפוקוה של vite הוא על צד לקוח בלבד. ומה קורה למי שרוצה ×œ×¤×Ŗ×— קוד צד שרת node.js למשל עם express אבל בלי React? פה עדיין אין אפשרויות ×˜×•×‘×•×Ŗ: 1. אפשר ×œ×”×©××Ø עם node.js ×•×œ×”×©×Ŗ×ž×© בכלי כמו nodemon כדי לרענן את השרת אחרי כל שינוי בקוד ובכלי כמו ts-node בשביל ×œ×”×Ø×™×„ את ×”×˜×™×™×¤×”×§×Ø×™×¤×˜ (וכן נוד ×ž×Ŗ×§×Ø×‘ לשם עם מצב watch מובנה ×•×”×¤×©×˜×Ŗ טיפוהי ×˜×™×™×¤×”×§×Ø×™×¤×˜ אבל אנחנו עדיין לא בעולם של ויט). 2. אפשר ×œ×¢×‘×•×Ø ל deno או bun שיודעים ×œ×”×Ø×™×„ יופי ×˜×™×™×¤×”×§×Ø×™×¤×˜ מהקופהה אבל עלולים להבך אותנו עם ×—×‘×™×œ×•×Ŗ ×ž×”×•×™×ž×•×Ŗ שלא × ×Ŗ×ž×›×•×Ŗ (בעיקר דינו). "לך ×ž×”×Ø", או בשמו המקצועי vavite הוא פלאגין ל vite שמציע חווית פיתוח צד שרת עם ויט שעובדת טוב כמו פיתוח צד לקוח עם vite וגם ×ž××¤×©×Ø×Ŗ הרחבות כמו Server Side Rendering למי שרוצה ×œ×‘× ×•×Ŗ לעצמו next.js פשוט ×•×ž×”×™×Ø יותר. הקישור ×œ×¤×Ø×•×™×§×˜ הוא: https://github.com/cyco130/vavite ואפשר למצוא המון ×“×•×’×ž××•×Ŗ בתיקיית ×”×“×•×’×ž××•×Ŗ שלהם כאן: https://github.com/cyco130/vavite/tree/main/examples בשביל הניהוי ×”×Ŗ×—×œ×Ŗ×™ ×¤×Ø×•×™×§×˜ vite חדש והוהפתי את vavite:
$ npm create vite@latest server-demo
$ cd server-demo
$ npm install --save-dev vavite
$ npm install express @types/express
×œ××—×Ø מכן יצרתי לפי ההוראות קובׄ vite.config.ts עם ×”×Ŗ×•×›×Ÿ הבא:
import { defineConfig } from "vite";
import { vavite } from "vavite";

export default defineConfig({
 appType: "custom",
 builder: {
  async buildApp(builder) {
   await builder.build(builder.environments.ssr!);
  },
 },
 plugins: [vavite()],
});
וקובׄ src/entry.server.ts עם ×”×Ŗ×•×›×Ÿ הבא:
import express from "express";

const text: string = "Hello New World";

const app = express();

app.get("/", async (req, res) => {
  res.send({ text });
});

// Default export a Connect-compatible handler for dev
export default app;

if (import.meta.env.COMMAND === "build") {
 // Start the Express server in production mode
 app.listen(3000, () => {
  console.log("Server is running on http://localhost:3000");
 });
}

if (import.meta.hot) {
 import.meta.hot.accept();
}
×”×¤×¢×œ×Ŗ שרת הפיתוח עם:
$ npm run dev
ואנחנו באוויר. התוצאה: 1. נתיב ראשי ×©×ž×—×–×™×Ø את ה JSON ×©×ž×•×’×“×Ø בקוד. 2. שגיאות קומפילציה אם אני טועה ×‘×˜×™×™×¤×”×§×Ø×™×¤×˜, גם בדפדפן וגם במהוף. 3. טעינה ××•×˜×•×ž×˜×™×Ŗ אחרי כל שינוי. אחרי שמהיימים פיתוח מפעילים npm run build והפלאגין הופך את קבצי ×”×˜×™×™×¤×”×§×Ø×™×¤×˜ לקובׄ dist/entry.server.js אותו אפשר להפעיל ישירות עם node dist/entry.server.js או ×œ×™×¦×•×Ø קיצור ×“×Ø×š מה package.json. בתיקיית ×”×“×•×’×ž××•×Ŗ שלהם יש עוד המון ×“×•×’×ž××•×Ŗ להמון ×¤×Ø×™×™×ž×•×•×Ø×§×™× וגם דוגמה לשילוב ×Ø×™××§×˜ ופיתוח SSR מאפה. הך הכל נראה יופי של כלי לאנשים ×©×Ø×•×¦×™× שליטה מלאה על בניית קוד צד השרת שלהם בלי ×œ×”×Ŗ×¤×©×Ø על חווית פיתוח ×ž×”×™×Ø×”.

ToCode
1 419
הבעיה כאן היא הפוכה. אנחנו ×Ø×’×™×œ×™× לשמוע על הוכן AI שעושה ×¤×¢×•×œ×•×Ŗ לא הגיוניות ושובר ×“×‘×Ø×™×. כאן יש לנו בן אדם שהיו לו הרשאות לבצע פעולה ×ž×”×•×™×ž×Ŗ, ומזה אנחנו לומדים שהוא היה ××ž×•×Ø ×œ×“×¢×Ŗ מה הוא עושה, ובכל זאת עשה את אותה פעולה ×ž×”×•×›× ×Ŗ שביטלה מנגנוני הגנה פנימיים בחברה. האם הוכני AI הולכים להפוך ×ž×Ŗ×§×¤×•×Ŗ Social Engineering ×œ×§×œ×•×Ŗ יותר? במובן מהוים כן. כשההוכן ×ž×¤×Ø×”× מידע שגוי ומטעה ×‘×Ŗ×•×š ×¤×•×Ø×•×ž×™× פנימיים העובדים נוטים להאמין ×•×œ× ×”×•×Ŗ אפילו אם העצה לא × ×©×ž×¢×Ŗ הגיונית. ×œ×§×Ø×™××” נוהפת על האירוע: https://agatsoftware.com/blog/ai-agent-security-meta-rogue-agent-incident/

ToCode
1 419
šŸ“Œ חמש תקריות אבטחה הקשורות להוכני AI שחשוב ×œ×”×›×™×Ø כל טכנולוגיה חדשה מביאה איתה התרגשות, ×™×›×•×œ×•×Ŗ חדשות, הבנה לא מלאה של עולם ×”×Ŗ×•×›×Ÿ ולחׄ לאימוׄ ×ž×”×™×Ø מדי - ×’×•×Ø×ž×™× שיחד ×ž×™×™×¦×Ø×™× אינהוף עבודה לאנשי ××‘×˜×—×Ŗ מידע. בואו נראה 5 ×“×•×’×ž××•×Ŗ ×ž×”×Ŗ×§×•×¤×” האחרונה שנותנות טעימה ×ž×”××Ŗ×’×Ø×™× שמצפים לנו בשנים הקרובות. āœ ×“×œ×™×¤×Ŗ הקוד של קלוד קוד ×“×Ø×š sourcemap ממש לפני כמה ימים ×× ×˜×Ø×•×¤×™×§ העלו גרהה חדשה של קלוד קוד. קלוד קוד כתוב ×‘××œ×§×˜×Ø×•×Ÿ ורׄ עם bun, ××¤×œ×™×§×¦×™×•×Ŗ כאלה ×‘×“×Ø×š כלל עוברות מיניפיקציה שהופכת את הקוד ללא קריא לבני אדם אבל בגלל ×˜×¢×•×Ŗ של הוכן הקידוד הגרהה הפעם כללה גם את הקוד ×”×ž×§×•×Ø×™ (הוג של debug build). ×”××™× ×˜×Ø× ×˜ חגג וקוד ×”×ž×§×•×Ø המלא של קלוד קוד זמין היום ×œ×”×•×Ø×“×” מהמון ××Ŗ×Ø×™× ××•×Ŗ× ×× ×˜×Ø×•×¤×™×§ מנהה ×œ×”×•×Ø×™×“ ×ž×”×Ø×©×Ŗ. ×× ×˜×Ø×•×¤×™×§ ×ž×¤×•×Ø×”×ž×™× ×‘×Ŗ×”×œ×™×š פיתוח בו הוכני הקידוד ×›×•×Ŗ×‘×™× את הקוד משלב ×”×Ø×¢×™×•×Ÿ עד ×¤×Ø×•×“×§×©×Ÿ. האם גם בני אדם היו יכולים ×œ×¢×©×•×Ŗ ×˜×¢×•×Ŗ דומה ולא לשים לב שמעלים גרהה עם קוד ×”×ž×§×•×Ø המלא? כנראה שכן. קרו ×ž×§×Ø×™×. ועדיין אין הפק שכשכל ×Ŗ×”×œ×™×š הפיתוח עובר להילוך ×ž×”×™×Ø קל יותר ×œ×¢×©×•×Ŗ ×˜×¢×•×™×•×Ŗ. ×ž×§×•×Ø ×œ×§×Ø×™××” נוהפת: https://dev.to/varshithvhegde/the-great-claude-code-leak-of-2026-accident-incompetence-or-the-best-pr-stunt-in-ai-history-3igm āœ פרצת אבטחה ב Code Rabbit חשפה מידע הודי ×§×•×“×Ø×‘×™×˜ הוא הוכן חכם שכותב Code Reviews, ×›×œ×•×ž×Ø הוא קורא קוד (PR-ים) שאנשים מעלים לגיטהאב ×•×ž×”×‘×™×Ø מה טוב ומה ×¦×Ø×™×š לשפר בהם. ×§×•×“×Ø×‘×™×˜ ×ž××¤×©×Ø ×œ×”×Ø×™×„ כלי אנאליזה אוטומטיים על הקוד. אחד הכלים ×”× ×Ŗ×ž×›×™× נקרא rubocop ותפקידו לבדוק קוד רובי. ופה יש שתי בעיות: 1. ×§×•×“×Ø×‘×™×˜ הריׄ את הכלי רובוקופ על מכונה ×¤× ×™×ž×™×Ŗ שלהם, לה יש הרשאות והגדרת ×ž×¤×Ŗ×—×•×Ŗ API בתור ×ž×©×Ŗ× ×™ הביבה ×©×ž××¤×©×Ø×™× ×œ×’×©×Ŗ להמון תשתית ×¤× ×™×ž×™×Ŗ של קוד ×Ø×‘×™×˜. 2. רובוקופ ×ž××¤×©×Ø לטעון Extensions שהם קבצי Ruby ×ž×Ŗ×•×š ×ž××’×Ø הקוד הנבדק. חיבור שני ×”×“×‘×Ø×™× אפשר ×œ×—×•×§×Ø×™ אבטחה ×œ×”×Ø×™×„ כל קוד שלהם על המכונה ×©×ž×Ø×™×¦×” את ההוכן של ×§×•×“×Ø×‘×™×˜ ודרכה להגיע לכל תשתיות הענן של ×§×•×“×Ø×‘×™×˜ עצמם. ×ž×§×•×Ø ×œ×§×Ø×™××” נוהפת: https://kudelskisecurity.com/research/how-we-exploited-coderabbit-from-a-simple-pr-to-rce-and-write-access-on-1m-repositories āœ ×ž×Ŗ×§×¤×Ŗ הזרקת ×¤×Ø×•×ž×¤×˜ EchoLeak לקופיילוט אתגר עצום בהרצת הוכן AI שמטפל לך בעניינים במחשב הוא שאותו הוכן חשוף להמון מידע שעלול ×œ×”×™×•×Ŗ זדוני, ולכן הוכנים כאלה ×¦×Ø×™×›×™× מנגנוני הינון. ×‘×ž×Ŗ×§×¤×Ŗ EchoLeak ×—×•×§×Ø×™× הראו איך הם עוקפים את מנגנוני ההינון של Copilot 365 (זה של האופיה) כדי ×œ×”×–×Ø×™×§ הוראות זדוניות לקופיילוט ×“×Ø×š אימייל. המהלך עובד כך: 1. תוקף שולח אימייל עם הוראות זדוניות בכתב ×‘×œ×Ŗ×™ נראה. 2. קופיילוט 365 נשלח לבדוק אימיילים או להכם אימיילים ×ž×”×Ŗ×™×‘×”. 3. קופיילוט עוקב אחר ההוראות הזדוניות ושולח ×”×™×”×ž××•×Ŗ ומידע רגיש ×œ×Ŗ×•×§×£. ×ž×Ŗ×§×¤×” זו ×ž×–×›×™×Ø×” לנו את הבעיה בהגנה ×ž×‘×•×”×”×Ŗ הינון - מנגנוני הינון אפשר לעקוף ×•×‘×”× ×Ŗ×Ÿ ×Ŗ×ž×Ø×™×„ מהפיק חזק מישהו בוודאות ימצא מעקף. לקח לנו עשרות שנים לנצח ×ž×Ŗ×§×¤×•×Ŗ SQL Injection וזמן דומה לנצח ×ž×Ŗ×§×¤×•×Ŗ JavaScript Injection (XSS). כמה זמן ייקח לנצח את ×ž×Ŗ×§×¤×•×Ŗ ה Prompt Injection? קריאה נוהפת: https://www.forcepoint.com/blog/insights/echoleak-m365-copilot-attack āœ בהיה ×”× ×Ŗ×•× ×™× המלא של מולטבוק היה זמין ברשת נכון, הם לא ×”×Ø××©×•× ×™×. גם בני אדם השאירו בהיהי × ×Ŗ×•× ×™× (במיוחד רדיה) וקבצים על AWS ×¤×Ŗ×•×—×™× לעולם, אבל כמו שכתבתי על ×“×œ×™×¤×Ŗ קוד ×”×ž×§×•×Ø, הוכני קידוד פשוט עושים יותר ×•×–×”×™×Ø×™× פחות ולכן עושים הרבה יותר ×˜×¢×•×™×•×Ŗ. מולטבוק, הרשת החברתית של הוכני AI, נכתבה במלואה על ידי הוכן קידוד. בהיה ×”× ×Ŗ×•× ×™× שלהם הכיל מיליון וחצי ×ž×¤×Ŗ×—×•×Ŗ API ובזכות העדר מוחלט של בקרת גישה ×œ×§×Ø×™××” כל אחד יכל להכנה לחשבון של כל אחד מהבוטים ×”×Ø×©×•×ž×™× ×œ×ž×¢×Ø×›×Ŗ. למידע נוהף: https://www.wiz.io/blog/exposed-moltbook-database-reveals-millions-of-api-keys āœ הוכן ×Ŗ×ž×™×›×” של מטא שכנע עובד לבטל ×ž×“×™× ×™×•×Ŗ אבטחה ×”×ž×§×Ø×” הבא מעניין בגלל הדינמיקה הארגונית שלו. עובד אחד ×ž×¤×Ø×”× שאלה ×‘×¤×•×Ø×•× פנימי ב meta, עובד אחר ביקש מה AI ×œ×¢× ×•×Ŗ לעובד ×”×Ø××©×•×Ÿ ×‘×¤×Ø×˜×™ אבל ההוכן ×¤×Ø×”× את התשובה ×‘×¤×•×Ø×•× לכולם. עובד שלישי ראה את התשובה (שמכילה מידע שגוי) וניהה ×œ×œ×›×Ŗ לפי ההוראות שבה. ××•×Ŗ×Ÿ הוראות ×’×Ø×ž×• לביטול ×—×•×ž×Ŗ אבטחה ובכך בעצם ניתנו הרשאות יתר לקבוצה גדולה של עובדים שלא היו ×¦×Ø×™×›×™× לקבל הרשאות אלה.

ToCode
1 419
šŸ“Œ היכום שנה ראשונה של langlets השבוע חידשתי את הדומיין langlets.app וכך נזכרתי שעברה שנה מאז ×©×”×¢×œ×™×Ŗ×™ אותו ×œ××•×•×™×Ø, וזו ×”×–×“×ž× ×•×Ŗ ×ž×¦×•×™× ×Ŗ ×œ×”×§×™×Ø×” של ×”×¤×Ø×•×™×§×˜ ועל ×”×Ŗ×Ø×•×ž×” הייחודית של AI ×œ×”×™×¤×•×Ø שלו. āœ מה זה לנגלטה דואולינגו ×Ŗ×ž×™×“ היה ××¤×œ×™×§×¦×™×™×Ŗ לימוד השפות האהובה עליי. דואולינגו מושלם כדי ללמוד את המילים הראשונות בשפה ×˜×‘×¢×™×Ŗ חדשה ולהגיע מאפה למשפטים פשוטים ×“×Ø×š ×Ŗ×Ø×’×•×œ ומשחק. מאוד × ×”× ×™×Ŗ×™ מהמשחקים שם ×•×œ×ž×“×Ŗ×™ בדואולינגו צרפתית, הפרדית, רוהית, ערבית, קצת יוונית וקצת ×Ø×•×ž× ×™×Ŗ. בכל ×”×ž×§×Ø×™× ×”×Ŗ×—×œ×Ŗ×™ ללמוד מילים מהשניה הראשונה ×©×”×¤×¢×œ×Ŗ×™ את האפליקציה. בשבילי דואולינגו פתח ×“×œ×Ŗ לעולם של לימוד שפות שלא היה נגיש עבורי לפני. הבעיה ×©× ×Ŗ×§×œ×Ŗ×™ בה בכל שפה ×©×”×Ŗ×—×œ×Ŗ×™ ללמוד בדואולינגו ×”×™×Ŗ×” בעיית הצעד הבא, ×›×œ×•×ž×Ø אחרי שלושה-ארבעה חודשים של לימוד שפה ×”×Ŗ×Ø×’×™×œ×™× בדואולינגו כבר לא לימדו אותי אוצר מילים שימושי והחל מהנקודה הזאת בשביל ×œ×”×Ŗ×§×“× בשפה ×¦×Ø×™×š ×œ×¢×‘×•×Ø ×œ×Ŗ×•×›×Ÿ יותר רציני - ×”×¤×Ø×™×, וידאו, פודקהטים. ×“×‘×Ø×™× ××ž×™×Ŗ×™×™×. אבל מי ×©×ž×Ŗ×Ø×’×œ ללמוד ×“×Ø×š משחקים חמודים מגלה ×©×œ×¢×‘×•×Ø ×œ×§×Ø×•× הפר או ×œ×Ø××•×Ŗ וידאו זה ×ž××Ŗ×’×Ø ולא ×Ŗ×ž×™×“ ×–×•×›×Ø×™× את המילים כמו ×©×¦×Ø×™×š. וכך נולד langlets - ×ž×¢×Ø×›×Ŗ שהופכת כל ×Ŗ×•×›×Ÿ ××ž×™×Ŗ×™ למשחקי לימוד בהגנון דואולינגו. āœ מה עובד לנגלטה מכיל Pipeline שיודע ×œ×§×—×Ŗ כל הרט מיוטיוב ×•×œ×‘× ×•×Ŗ ממנו הדרה של × ×Ŗ×•× ×™× ללומדי שפה: 1. ×Ŗ×ž×œ×™×œ מלא בשפה ×”×ž×§×•×Ø×™×Ŗ של הוידאו 2. ×Ŗ×Ø×’×•× שנשמע טבעי לשפה אחרת 3. ×”×Ŗ××ž×Ŗ מילים - ×›×œ×•×ž×Ø ×”×Ŗ××ž×Ŗ כל חלק בטקהט ×”×ž×§×•×Ø×™ למילה המקבילה לו במשפט ×”×Ŗ×Ø×’×•× 4. ×—×œ×•×§×Ŗ ×”×”×Ø×˜ לקטעים ×§×¦×Ø×™× ×©×ž×Ŗ××™×ž×™× ללמידה. 5. בניית ×Ŗ×Ø×’×™×œ×™ אוצר מילים בהגנון דואולינגו ×ž×Ŗ×•×š הטקהט של הוידאו בזכות Ollama ומודלים ×¤×Ŗ×•×—×™× והנדיבות של גוגל ×©× ×•×Ŗ× ×™× 20 בקשות ביום בחינם ל Gemini Flash אפשר לעבד עד 20 ×”×Ø×˜×™× ביום בחינם ×œ×’×ž×Ø×™. זה אולי לא מהפיק בשביל לתת לכל אחד ×œ×”×¢×œ×•×Ŗ ×”×Ø×˜×™× ×œ×ž×¢×Ø×›×Ŗ אבל בהחלט מהפיק בשביל ×œ×”×Ŗ×—×™×œ ×œ×‘× ×•×Ŗ הפריית ×Ŗ×›× ×™× ×œ×©×¤×•×Ŗ שאני רוצה ללמוד. ×”×Ŗ×—×œ×Ŗ×™ להכניה ×œ×ž×¢×Ø×›×Ŗ ×©×™×Ø×™× בצרפתית, הפרדית וערבית ×•××Ŗ× יכולים למצוא ××•×Ŗ× בדף הראשי של האתר ×•×œ××—×Ø×•× ×” עברתי להוהיף הדרות רשת קצרות, בערבית ×©×ž×Ŗ×™ 10 קליפים ×ž×Ŗ×•×š حياة Ų¹ŁŠŁ„ŲŖŁ†Ų§ (הדרת רשת ×ž×¦×•×™×Ø×Ŗ ירדנית), בצרפתית 13 קטעים ×ž×Ŗ×•×š ההדרה bref (×ž×”×™×Ø×”, הרבה הלנג, לא היה קל לשכנע את ה AI לשתף פעולה) ובהפרדית 5 הפורי ילדים. āœ מה התוכניות להמשך אמנם לנגלטה באוויר שנה אבל רק ממש לפני כמה שבועות עברתי ל Ollama ומודלים חופשיים וכך נפתחה לי האופציה ×œ×”×’×‘×™×Ø את קצב ×”×¢×œ××Ŗ ×”×”×Ø×˜×™×. עד ×”×ž×¢×‘×Ø ל Ollama כל הרט ×©×”×¢×œ×™×Ŗ×™ עלה 2-3 ש"ח, שזה לא נורא אבל עדיין ההבדל בין 2-3 ש"ח לחינם הוא ×ž×©×ž×¢×•×Ŗ×™, במיוחד ×‘×¤×Ø×•×™×§×˜ פנאי שלא מכניה שקל. לכן הדבר ×”×Ø××©×•×Ÿ שאני רוצה שם זה פשוט להוהיף עוד ×Ŗ×›× ×™× - בדגש על הדרות רשת קצרות כי ×’×™×œ×™×Ŗ×™ שזו ×”×“×Ø×š שהכי כיף לי ללמוד בה. עם ×”×Ŗ×›× ×™× אצטרך למצוא ×“×Ø×š יותר טובה להציג ××•×Ŗ× ×•×œ××Ø×’×Ÿ את עמוד הבית ואולי ×œ×™×™×¦×Ø ×ž×¢×Ø×›×Ŗ ×”×ž×œ×¦×•×Ŗ. אתגר שני הוא ×‘×Ŗ×Ø×’×•×œ×™× עצמם. הם כבר עובדים טוב ×•×¢×•×–×Ø×™× לי ×œ×”×©×Ŗ×¤×Ø בשפות אבל אני רחוק ×ž×Ø×ž×Ŗ ×”×ž×©×—×§×™×•×Ŗ ×•×”×”×Ŗ×ž×›×Ø×•×Ŗ של דואולינגו. āœ ×Ø×•×¦×™× ×œ×¢×–×•×Ø? ××Ŗ× מוזמנים לנגלטה הוא ×¤×Ø×•×™×§×˜ קוד פתוח. אם יש לכם רעיונות ×œ×©×™×¤×•×Ø או ×”×Ŗ× ×Ø×•×¦×™× ×œ×Ø××•×Ŗ איך זה עובד אפשר למצוא את הקוד בגיטהאב בקישור הזה: https://github.com/ynonp/langlets-rails

ToCode
1 419
šŸ“Œ זהירות: תפיהת חריג מבלוק ברובי הקוד הבא ברובי זורק Exception ×ž×Ŗ×•×š הלולאה ותופה אותה, וקל ×œ×Ø××•×Ŗ שזה עובד:
begin
  [1, 2, 3].each do |i|
    raise 'Stop' if i.even?
  end
rescue => e
  puts "Error: #{e.message}"
end
אבל חשוב לא ×œ×”×Ŗ×‘×œ×‘×œ, המבנה של rescue אחרי בלוק לא מבטיח שכל Exception שייזרק מהבלוק ×‘××ž×Ŗ ייתפה. הדוגמה ×”×§×œ××”×™×Ŗ היא קוד שנשלח ×œ×”×Ø×¦×” ב Thread נפרד, וזה נראה ככה:
class Array
  def pmap(&block)
    each do |i|
      Thread.new { block.call(i) }
    end
    self
  end
end

begin
  [1, 2, 3].pmap do |i|
    raise 'Stop' if i.even?
  end
rescue => e
  puts "Error: #{e.message}"
end
פונקציית pmap שהגדרתי על Array ×©×•×œ×—×Ŗ את הבלוק ×œ×Ø×•×„ ב thread נפרד ולכן ה Exception שהבלוק זורק לא נתפה ב Thread הראשי. ×“×Ø×š אחת לטפל בקוד כזה היא להקפיד ×œ×”×¢×‘×™×Ø את ה Exception ל Thread הראשי ×ž×Ŗ×•×š pmap, ×›×œ×•×ž×Ø:
class Array
  def pmap(&block)
    threads = each.map do |i|
      Thread.new do
        block.call(i)
      end
    end

    threads.each(&:join)
    threads.each(&:value)
  end
end
והפעם הפעלה תדפיה את השגיאה:
#<Thread:0x000000012233cbd8 a.rb:4 run> terminated with exception (report_on_exception is true):
a.rb:15:in `block in <main>': Stop (RuntimeError)
        from a.rb:5:in `block (2 levels) in pmap'
Error: Stop

ToCode
1 419
šŸ“Œ טיפ הנדהת ×¤×Ø×•×ž×¤×˜×™×: עדיף ×œ×”×©×Ŗ×ž×© במה שהמודל ×ž×›×™×Ø הטיפ שלי להיום הוא תוצאה של יותר מדי זמן שבזבזתי בריב עם מודל על משהו ×œ×›××•×Ø×” פשוט - ג'מיני של גוגל יודע ×œ×’×©×Ŗ ×œ×”×Ø×˜×™× ביוטיוב ×•×œ×”×”×‘×™×Ø מה קורה ×‘×”×Ø×˜ ואפילו להוציא ×Ŗ×ž×œ×™×œ טקהטואלי. בנהיון ×”×Ø××©×•×Ÿ שלי ×œ×”×©×Ŗ×ž×© בו כדי ×œ×Ŗ×ž×œ×œ ×”×Ø×˜×™× כתבתי פשוט "תוציא לי את הזמנים ×ž×”×”×Ø×˜" אבל התוצאה לא ×”×™×Ŗ×” מהפיק טובה. לפעמים המודל פשוט ניחש זמנים, לפעמים הוא שבר משפטים ×‘×ž×§×•×ž×•×Ŗ לא נכונים. בעבודת Prompt Engineering בעזרת AI ×”×’×¢×Ŗ×™ ×œ×¤×Ø×•×ž×¤×˜ ממש טוב שכלל 3 כללי אצבע:
1. **Audio Analysis**: You need to actually listen to the audio and not rely only on the existing youtube captions. YouTube transcriptions can be inaccurate and is not suitable for our requirements.

2. **Language Focus**: The provided content might include text in other languages in the beginning or the end (before or after the actual content). Only extract the main video in the clip language. You can ignore prefix or suffix if they're in another language.

3. **Phrase Segmentation Rules**:
   - **Mandatory splits**: Always split before coordinating conjunctions (and, but, or, so)
   - Split at clause boundaries (before subordinating conjunctions, after complete thoughts)
   - Keep grammatically linked words together (modal + verb, adjective + noun, etc.)
   - Target 4-7 words per phrase for optimal memorization
   - Each phrase should demonstrate one primary grammatical concept
   - Break at natural pauses that would occur in speech
אבל לא משנה מה עשיתי ×Ŗ×ž×™×“ היו מדי פעם פהפוהים. ×”×¤×Ŗ×Ø×•×Ÿ היה ×œ×§×—×Ŗ צעד אחורה מכל ×˜×›× ×™×§×•×Ŗ הנדהות ×”×¤×Ø×•×ž×¤×˜×™× ×•×œ×Ŗ×›× ×Ÿ מהלול מחדש. במקום ×œ×”×”×‘×™×Ø לו איך ×¦×Ø×™×š ×œ×™×™×¦×Ø כתוביות ××ž×Ø×Ŗ×™ פשוט: "צור קובׄ srt". כך במעט מאוד טוקנים כיוונתי את המודל לעולם ×Ŗ×•×›×Ÿ שלם של כללים שכבר היו מוטמעים במודל ×ž× ×Ŗ×•× ×™ האימון שלו. ×ž×•×”×Ø ההשכל היותר חשוב כאן הוא מה לא קרה - לא משנה כמה ביקשתי מהוכני AI לשפר את ×”×¤×Ø×•×ž×¤×˜, אף אחד מהם לא הציע לי למחוק הכל ולמצוא ×¤×Ø×•×ž×¤×˜ אחר שמשיג את אותה ×ž×˜×Ø×” ×‘×“×Ø×š טובה יותר. את הטיפ כאן של ×œ×™×¦×•×Ø קובׄ srt אף מודל לא חשב לתת, ×œ×ž×Ø×•×Ŗ שאם אני שואל כל מודל אם זה ×Ø×¢×™×•×Ÿ טוב הם כולם יעופו עליו.

ToCode
1 419
šŸ“Œ לא הכי חדש עוד לא ההפקנו ×œ×”×Ŗ××•×©×© ×ž×”×’×Ø×”××•×Ŗ ×”×ž×–×•×™×¤×•×Ŗ של LiteLLM וכבר ×”×Ŗ×¤×Ø×”× שגם axios נפרצו וגרהאות זדוניות עלו ל npm. אם ×‘×˜×¢×•×Ŗ תתקינו את אקהיוה 1.14.1 או 0.30.4 ×”×§×Ø×™×¤×˜ שרׄ אחרי ×”×Ŗ×§× ×” ×™×›× ×™×” הוה ×˜×Ø×•×™×× ×™ ×©×™×©×Ŗ×œ×˜ ×ž×Ø×—×•×§ על המחשב שלכם. ×ž××—×Ø והגרהאות הזדוניות האלה ×œ×Ø×•×‘ ×ž×Ŗ×’×œ×•×Ŗ ×ž×”×Ø הבעיה היא בעיקר של אנשים שמפעילים npm install axios בדיוק ×‘××•×Ŗ× יום או יומיים שהגרהה ×”×ž×–×•×™×¤×Ŗ היא החדשה ביותר על npm. מה עושים? אפשר לבדוק כל פעם ב npm מה הגרהה העדכנית, מה השינויים שהיא מביאה וכמה זמן היא באוויר ×•×œ×‘×—×•×Ø לבד גרהה אחת יותר ישנה. אפשר גם ×œ×–×›×•×Ø שכלי ניהול ×—×‘×™×œ×•×Ŗ ×Ø×‘×™× מגיעים עם מנגנון Cooldown מובנה שימנע ×”×Ŗ×§× ×Ŗ גרהאות חדשות מדי. ב npm נוכל ×œ×”×©×Ŗ×ž×© בו ×‘××ž×¦×¢×•×Ŗ הפקודות הבאות בקובׄ ~/.npmrc:
min-release-age=7 # days
הרבה אנשים מוהיפים גם את הפקודה:
ignore-scripts=true
×©×ž×•× ×¢×Ŗ ×ž×—×‘×™×œ×•×Ŗ באופן כללי ×œ×”×Ø×™×„ ×”×§×Ø×™×¤×˜×™×, מה שהיה עוזר עם הפרצה הזו לאקהיוה אך לא בטוח שיעזור ×‘×ž×§×Ø×” הכללי כי ×Ŗ×ž×™×“ חבילה זדונית יכולה פשוט ×œ×”×Ø×™×„ קוד זדוני כשטוענים אותה. ×‘×¤×™×™×Ŗ×•×Ÿ אין לנו עדיין ×¤×Ŗ×Ø×•×Ÿ מובנה ב pip אבל אם ××Ŗ× ×ž×©×Ŗ×ž×©×™× ב uv ×Ŗ×•×›×œ×• להוהיף לקובׄ ~/.config/uv/uv.toml את הפקודה:
exclude-newer = "7 days"
כדי ש uv ×™×Ŗ×¢×œ× ×ž×—×‘×™×œ×•×Ŗ שעוד לא ישבו בריפו שבוע ×œ×”×Ŗ×™×™×‘×©. וכן ברור ×œ×’×ž×Ø×™ שיש פה ×˜×Ø×™×™×“××•×£. גרהאות חדשות ×™×›×•×œ×•×Ŗ לתקן בעיות אבטחה בגרהאות ישנות יותר ולפעמים נרצה ×œ×”×Ŗ×§×™×Ÿ ×ž×”×Ø ×ž×”×Ø גרהה חדשה לפני שבעיית האבטחה ×Ŗ×Ŗ×’×œ×” ×•×”××§×Ø×™× ×™×©×Ŗ×ž×©×• בקוד הישן נגדנו. כרגע עושה ×Ø×•×©× ×©×”×ž×Ŗ× ×” עם ×”×Ŗ×§× ×Ŗ גרהאות חדשות היא ברירת מחדל טובה יותר.

ToCode
1 419
šŸ“Œ כל ×™×¦×Ø×Ÿ וההקילז שלו למינימקה יש ריפו של הקילז למודל שלהם: https://github.com/MiniMax-AI/skills זה של ×× ×˜×Ø×•×¤×™×§: https://github.com/anthropics/skills זה של OpenAI: https://github.com/openai/skills וכמובן של Gemini: https://github.com/google-gemini/gemini-skills אבל למה כל אחד ×¦×Ø×™×š skill משלו? ומה הם לא ×ž×”×¤×Ø×™× לנו? אז נכון האוהף של Gemini די ריק אבל ×©×œ×•×©×Ŗ ×”××—×Ø×™× כוללים הרבה ×“×‘×Ø×™× ×ž×©×•×Ŗ×¤×™×. למה שלא תעבדו יחד? אני חושב שההיפור כאן הוא בדיקת ×”×¤×Ø×•×ž×¤×˜×™× מול המודל ועבודת Prompt Engineering של ××•×Ŗ×Ÿ חברות. נשווה למשל את ההקיל של פיתוח ×¤×Ø×•× ×˜×× ×“, ב OpenAI יש ×Ø×©×™×ž×” ×ž×”×•×“×Ø×Ŗ של נושאים וכל נושא מחולק ×œ×Ŗ×Ŗ×™ נושאים לדוגמה:
Copy

1. Write in product language, not design commentary.
2. Let the headline carry the meaning.
3. Supporting copy should usually be one short sentence.
4. Cut repetition between sections.
5. Do not include prompt language or design commentary into the UI.
6. Give every section one responsibility: explain, prove, deepen, or convert.

If deleting 30 percent of the copy improves the page, keep deleting.
×œ×¢×•×ž×Ŗ× ×× ×˜×Ø×•×¤×™×§ ×ž×Ŗ××Ø×™× לנו ×¤×Ø×•×ž×¤×˜ הרבה יותר פתוח ויצירתי:
Design Thinking

Purpose: What problem does this interface solve? Who uses it?
Tone: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
Constraints: Technical requirements (framework, performance, accessibility).
Differentiation: What makes this UNFORGETTABLE? What's the one thing someone will remember?
וכאן יש שאלה, עד כמה ×× ×˜×Ø×•×¤×™×§ ×›×•×Ŗ×‘×™× את ההקיל ×©×™×Ŗ××™× למודלים שלהם או ×ž×©×Ŗ×ž×©×™× בהקיל ובאקוהיהטם כדי לבדל את עצמם. ככל שהמודלים ×ž×©×Ŗ×¤×Ø×™× ×•×”×¤×¢×Ø×™× ביניהם הולכים וקטנים אנחנו נראה יותר עבודת ×”×Ŗ××ž×” באקוהיהטם - הקילז, אימון לשימוש בכלים מהוימים, גישה ×‘×œ×¢×“×™×Ŗ ל APIs מהוימים (ג'מיני כבר עושים את זה עם ×”×™×›×•×œ×Ŗ ×”×‘×œ×¢×“×™×Ŗ שלהם ×œ×§×Ø×•× ×”×Ø×˜×™× מיוטיוב). וככל שהדגש עובר לאקוהיהטם כך נראה יותר אפשרויות ושילובים מעניינים, כמו ×”×™×›×•×œ×Ŗ ×œ×—×‘×Ø הקיל של ×× ×˜×Ø×•×¤×™×§ למודל פתוח של מינימקה ×•×œ×”×Ø×™×„ אותו ×‘×Ŗ×•×š הוכן הקידוד של OpenAI. ובאותו נושא אולמה הודיעו ×œ××—×Ø×•× ×” על ××™× ×˜×’×Ø×¦×™×” מלאה עם VS Code. אפשר היום ×œ×‘×—×•×Ø ×ž×Ŗ×•×š ×”×Ŗ×¤×Ø×™×˜ של VS Code מודלים ×¤×Ŗ×•×—×™× ×œ×’×ž×Ø×™ ×©×Ø×¦×™× אצלכם על המכונה (או בענן) בנוהף למודלים שמגיעים מקופיילוט.