להורדה | סימניה להורדת קבצי הקוד מ Base44
-
לאחר זמן רב בו אני מתפלא מדוע אפשרות הורדת הקודים ב Base44 מתאפשרת רק לבעלי מנוי...
בעז"ה יצרתי בעזרת AI סימניית דפדפן שבלחיצה עליה יורדים כל קבצי הקוד של הפרויקט שלכם למחשב.
כמובן שלשם כך אתם אמורים להיות בדאשבורד של האפליקציה על קטעי הקודים. (התיקיות לא חייבות להיות פתוחות - הסימנייה פותחת את כולן אוטומטית כדי שהקודים יהיו גלויים)
תרגום הדפדפן בדף - צריך להיות כבוי. אם הוא דלוק הסימנייה תציג לכם אזהרה ולא תוריד את הקודים.javascript:(async function(){if(document.documentElement.classList.contains("translated-ltr")||document.documentElement.classList.contains("translated-rtl")||document.querySelector("title")&&document.querySelector("title").hasAttribute("_msthash"))return void alert("⚠%EF%B8%8F תרגום הדפדפן זוהה כפועל בדף זה. זה עלול לגרום לקוד שגוי.\n\nאנא בטל את התרגום באופן ידני (בדרך כלל דרך אייקון בשורת הכתובת) והפעל את הסימנייה מחדש.");const e=e=>new Promise(t=>setTimeout(t,e)),t=(t,n)=>{const o=document.createElement("a"),r=new Blob([n],{type:"text/plain"});o.href=URL.createObjectURL(r),o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(o.href)};console.log("שלב 1: פותח תיקיות באופן רקורסיבי...");let n=0;for(;n<10;){const o=Array.from(document.querySelectorAll('nav button[data-state="closed"]')).filter((e=>e.querySelector(".lucide-folder")));if(0===o.length)break;for(const t of o)t.click(),await e(50);await e(400),n++}await e(500),console.log("שלב 2: איסוף והורדת כל הקבצים...");const o=document.querySelectorAll("nav button"),r=[];if(o.forEach((e=>{const t=e.querySelector("svg"),n=e.querySelector(".lucide-folder"),o=e.querySelector("span.truncate");if(t&&!n&&o){let t=o.innerText.trim();t.includes(".")||(t+=".js"),r.push({button:e,filename:t})}})),0===r.length)return void alert("לא נמצאו קבצים להורדה בתפריט.");for(const n of r){console.log(`מעבד את הקובץ: ${n.filename}...`),n.button.click(),await e(750);const r=document.querySelector(".monaco-editor .view-lines");if(r){const o=Array.from(r.querySelectorAll(".view-line")).map((e=>e.innerText)).join("\n");t(n.filename,o),await e(200)}else console.error(`לא נמצא עורך קוד עבור הקובץ ${n.filename}`)}alert(`ההורדה הושלמה! 👍 (הורדו ${r.length} קבצים בס"ד)`)})();
שימו רק לב כי הקודים של Base44 לא בנויים כאתר סטטי עם html, css, js, אלא כולם קבצי js/jsx בהם נמצאים גם הפונקציונליות וגם העיצוב של האפליקציה עם ספריית React. (כך ע"פ AI Studio)
אם בכל זאת תרצו את ה html של האפליקציה, יהיה עליכם לשמור אותם מהאתר המוכן עצמו (ctrl+s) -
לאחר זמן רב בו אני מתפלא מדוע אפשרות הורדת הקודים ב Base44 מתאפשרת רק לבעלי מנוי...
בעז"ה יצרתי בעזרת AI סימניית דפדפן שבלחיצה עליה יורדים כל קבצי הקוד של הפרויקט שלכם למחשב.
כמובן שלשם כך אתם אמורים להיות בדאשבורד של האפליקציה על קטעי הקודים. (התיקיות לא חייבות להיות פתוחות - הסימנייה פותחת את כולן אוטומטית כדי שהקודים יהיו גלויים)
תרגום הדפדפן בדף - צריך להיות כבוי. אם הוא דלוק הסימנייה תציג לכם אזהרה ולא תוריד את הקודים.javascript:(async function(){if(document.documentElement.classList.contains("translated-ltr")||document.documentElement.classList.contains("translated-rtl")||document.querySelector("title")&&document.querySelector("title").hasAttribute("_msthash"))return void alert("⚠%EF%B8%8F תרגום הדפדפן זוהה כפועל בדף זה. זה עלול לגרום לקוד שגוי.\n\nאנא בטל את התרגום באופן ידני (בדרך כלל דרך אייקון בשורת הכתובת) והפעל את הסימנייה מחדש.");const e=e=>new Promise(t=>setTimeout(t,e)),t=(t,n)=>{const o=document.createElement("a"),r=new Blob([n],{type:"text/plain"});o.href=URL.createObjectURL(r),o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(o.href)};console.log("שלב 1: פותח תיקיות באופן רקורסיבי...");let n=0;for(;n<10;){const o=Array.from(document.querySelectorAll('nav button[data-state="closed"]')).filter((e=>e.querySelector(".lucide-folder")));if(0===o.length)break;for(const t of o)t.click(),await e(50);await e(400),n++}await e(500),console.log("שלב 2: איסוף והורדת כל הקבצים...");const o=document.querySelectorAll("nav button"),r=[];if(o.forEach((e=>{const t=e.querySelector("svg"),n=e.querySelector(".lucide-folder"),o=e.querySelector("span.truncate");if(t&&!n&&o){let t=o.innerText.trim();t.includes(".")||(t+=".js"),r.push({button:e,filename:t})}})),0===r.length)return void alert("לא נמצאו קבצים להורדה בתפריט.");for(const n of r){console.log(`מעבד את הקובץ: ${n.filename}...`),n.button.click(),await e(750);const r=document.querySelector(".monaco-editor .view-lines");if(r){const o=Array.from(r.querySelectorAll(".view-line")).map((e=>e.innerText)).join("\n");t(n.filename,o),await e(200)}else console.error(`לא נמצא עורך קוד עבור הקובץ ${n.filename}`)}alert(`ההורדה הושלמה! 👍 (הורדו ${r.length} קבצים בס"ד)`)})();
שימו רק לב כי הקודים של Base44 לא בנויים כאתר סטטי עם html, css, js, אלא כולם קבצי js/jsx בהם נמצאים גם הפונקציונליות וגם העיצוב של האפליקציה עם ספריית React. (כך ע"פ AI Studio)
אם בכל זאת תרצו את ה html של האפליקציה, יהיה עליכם לשמור אותם מהאתר המוכן עצמו (ctrl+s) -
@לאצי אין דרך פשוטה להוריד לדעתי כי האפליקציות שלהם כתובות בריאקט וכמעט כל הקוד בצד שרת
@מתכנת-חובב אין אפשרות להמיר את קודי הריאקט לקבצי קוד רגילים?
-
לאחר זמן רב בו אני מתפלא מדוע אפשרות הורדת הקודים ב Base44 מתאפשרת רק לבעלי מנוי...
בעז"ה יצרתי בעזרת AI סימניית דפדפן שבלחיצה עליה יורדים כל קבצי הקוד של הפרויקט שלכם למחשב.
כמובן שלשם כך אתם אמורים להיות בדאשבורד של האפליקציה על קטעי הקודים. (התיקיות לא חייבות להיות פתוחות - הסימנייה פותחת את כולן אוטומטית כדי שהקודים יהיו גלויים)
תרגום הדפדפן בדף - צריך להיות כבוי. אם הוא דלוק הסימנייה תציג לכם אזהרה ולא תוריד את הקודים.javascript:(async function(){if(document.documentElement.classList.contains("translated-ltr")||document.documentElement.classList.contains("translated-rtl")||document.querySelector("title")&&document.querySelector("title").hasAttribute("_msthash"))return void alert("⚠%EF%B8%8F תרגום הדפדפן זוהה כפועל בדף זה. זה עלול לגרום לקוד שגוי.\n\nאנא בטל את התרגום באופן ידני (בדרך כלל דרך אייקון בשורת הכתובת) והפעל את הסימנייה מחדש.");const e=e=>new Promise(t=>setTimeout(t,e)),t=(t,n)=>{const o=document.createElement("a"),r=new Blob([n],{type:"text/plain"});o.href=URL.createObjectURL(r),o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(o.href)};console.log("שלב 1: פותח תיקיות באופן רקורסיבי...");let n=0;for(;n<10;){const o=Array.from(document.querySelectorAll('nav button[data-state="closed"]')).filter((e=>e.querySelector(".lucide-folder")));if(0===o.length)break;for(const t of o)t.click(),await e(50);await e(400),n++}await e(500),console.log("שלב 2: איסוף והורדת כל הקבצים...");const o=document.querySelectorAll("nav button"),r=[];if(o.forEach((e=>{const t=e.querySelector("svg"),n=e.querySelector(".lucide-folder"),o=e.querySelector("span.truncate");if(t&&!n&&o){let t=o.innerText.trim();t.includes(".")||(t+=".js"),r.push({button:e,filename:t})}})),0===r.length)return void alert("לא נמצאו קבצים להורדה בתפריט.");for(const n of r){console.log(`מעבד את הקובץ: ${n.filename}...`),n.button.click(),await e(750);const r=document.querySelector(".monaco-editor .view-lines");if(r){const o=Array.from(r.querySelectorAll(".view-line")).map((e=>e.innerText)).join("\n");t(n.filename,o),await e(200)}else console.error(`לא נמצא עורך קוד עבור הקובץ ${n.filename}`)}alert(`ההורדה הושלמה! 👍 (הורדו ${r.length} קבצים בס"ד)`)})();
שימו רק לב כי הקודים של Base44 לא בנויים כאתר סטטי עם html, css, js, אלא כולם קבצי js/jsx בהם נמצאים גם הפונקציונליות וגם העיצוב של האפליקציה עם ספריית React. (כך ע"פ AI Studio)
אם בכל זאת תרצו את ה html של האפליקציה, יהיה עליכם לשמור אותם מהאתר המוכן עצמו (ctrl+s) -
לאחר זמן רב בו אני מתפלא מדוע אפשרות הורדת הקודים ב Base44 מתאפשרת רק לבעלי מנוי...
בעז"ה יצרתי בעזרת AI סימניית דפדפן שבלחיצה עליה יורדים כל קבצי הקוד של הפרויקט שלכם למחשב.
כמובן שלשם כך אתם אמורים להיות בדאשבורד של האפליקציה על קטעי הקודים. (התיקיות לא חייבות להיות פתוחות - הסימנייה פותחת את כולן אוטומטית כדי שהקודים יהיו גלויים)
תרגום הדפדפן בדף - צריך להיות כבוי. אם הוא דלוק הסימנייה תציג לכם אזהרה ולא תוריד את הקודים.javascript:(async function(){if(document.documentElement.classList.contains("translated-ltr")||document.documentElement.classList.contains("translated-rtl")||document.querySelector("title")&&document.querySelector("title").hasAttribute("_msthash"))return void alert("⚠%EF%B8%8F תרגום הדפדפן זוהה כפועל בדף זה. זה עלול לגרום לקוד שגוי.\n\nאנא בטל את התרגום באופן ידני (בדרך כלל דרך אייקון בשורת הכתובת) והפעל את הסימנייה מחדש.");const e=e=>new Promise(t=>setTimeout(t,e)),t=(t,n)=>{const o=document.createElement("a"),r=new Blob([n],{type:"text/plain"});o.href=URL.createObjectURL(r),o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(o.href)};console.log("שלב 1: פותח תיקיות באופן רקורסיבי...");let n=0;for(;n<10;){const o=Array.from(document.querySelectorAll('nav button[data-state="closed"]')).filter((e=>e.querySelector(".lucide-folder")));if(0===o.length)break;for(const t of o)t.click(),await e(50);await e(400),n++}await e(500),console.log("שלב 2: איסוף והורדת כל הקבצים...");const o=document.querySelectorAll("nav button"),r=[];if(o.forEach((e=>{const t=e.querySelector("svg"),n=e.querySelector(".lucide-folder"),o=e.querySelector("span.truncate");if(t&&!n&&o){let t=o.innerText.trim();t.includes(".")||(t+=".js"),r.push({button:e,filename:t})}})),0===r.length)return void alert("לא נמצאו קבצים להורדה בתפריט.");for(const n of r){console.log(`מעבד את הקובץ: ${n.filename}...`),n.button.click(),await e(750);const r=document.querySelector(".monaco-editor .view-lines");if(r){const o=Array.from(r.querySelectorAll(".view-line")).map((e=>e.innerText)).join("\n");t(n.filename,o),await e(200)}else console.error(`לא נמצא עורך קוד עבור הקובץ ${n.filename}`)}alert(`ההורדה הושלמה! 👍 (הורדו ${r.length} קבצים בס"ד)`)})();
שימו רק לב כי הקודים של Base44 לא בנויים כאתר סטטי עם html, css, js, אלא כולם קבצי js/jsx בהם נמצאים גם הפונקציונליות וגם העיצוב של האפליקציה עם ספריית React. (כך ע"פ AI Studio)
אם בכל זאת תרצו את ה html של האפליקציה, יהיה עליכם לשמור אותם מהאתר המוכן עצמו (ctrl+s) -
@לאצי תודה זה שימושי מאוד
אבל תוכל לתת לי הסבר איך תכלס' אחרי הורה דרך הסימניה אוכל לראות את האתר במחשב ללא חיבור לאינטרנט?@יעקב-4 זה פרוייקט בפני עצמו... צריך להבין בזה. וגם כמו ש @מתכנת-חובב אמר, רוב מוחלט של הדברים שם הם בצד שרת, אז זה לא יעבוד לך אלא אם כן אתה כותב את הצד שרת ומתאים את הקודים שהורדת לקבצי צד שרת. קיצור סיפור מההפטרה.
וזה קודים ארוכים, מנסיון כל סוגי הבינה המלאכותית לא יעזרו לך... אני עשיתי את זה בסוף לבד... וזה המון זמן... -
@לאצי אין דרך פשוטה להוריד לדעתי כי האפליקציות שלהם כתובות בריאקט וכמעט כל הקוד בצד שרת
@מתכנת-חובב אם אני מוריד בדרך הרגילה אני צריך להגדיר מחדש את צד שרת?
-
@מתכנת-חובב אם אני מוריד בדרך הרגילה אני צריך להגדיר מחדש את צד שרת?
@רציונל כתב בלהורדה | סימניה להורדת קבצי הקוד מ Base44:
@מתכנת-חובב אם אני מוריד בדרך הרגילה אני צריך להגדיר מחדש את צד שרת?
כי אם לא אפשר לשתף איתי את האפליקציה ואני אוריד בלנ"ד
-
לאחר זמן רב בו אני מתפלא מדוע אפשרות הורדת הקודים ב Base44 מתאפשרת רק לבעלי מנוי...
בעז"ה יצרתי בעזרת AI סימניית דפדפן שבלחיצה עליה יורדים כל קבצי הקוד של הפרויקט שלכם למחשב.
כמובן שלשם כך אתם אמורים להיות בדאשבורד של האפליקציה על קטעי הקודים. (התיקיות לא חייבות להיות פתוחות - הסימנייה פותחת את כולן אוטומטית כדי שהקודים יהיו גלויים)
תרגום הדפדפן בדף - צריך להיות כבוי. אם הוא דלוק הסימנייה תציג לכם אזהרה ולא תוריד את הקודים.javascript:(async function(){if(document.documentElement.classList.contains("translated-ltr")||document.documentElement.classList.contains("translated-rtl")||document.querySelector("title")&&document.querySelector("title").hasAttribute("_msthash"))return void alert("⚠%EF%B8%8F תרגום הדפדפן זוהה כפועל בדף זה. זה עלול לגרום לקוד שגוי.\n\nאנא בטל את התרגום באופן ידני (בדרך כלל דרך אייקון בשורת הכתובת) והפעל את הסימנייה מחדש.");const e=e=>new Promise(t=>setTimeout(t,e)),t=(t,n)=>{const o=document.createElement("a"),r=new Blob([n],{type:"text/plain"});o.href=URL.createObjectURL(r),o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(o.href)};console.log("שלב 1: פותח תיקיות באופן רקורסיבי...");let n=0;for(;n<10;){const o=Array.from(document.querySelectorAll('nav button[data-state="closed"]')).filter((e=>e.querySelector(".lucide-folder")));if(0===o.length)break;for(const t of o)t.click(),await e(50);await e(400),n++}await e(500),console.log("שלב 2: איסוף והורדת כל הקבצים...");const o=document.querySelectorAll("nav button"),r=[];if(o.forEach((e=>{const t=e.querySelector("svg"),n=e.querySelector(".lucide-folder"),o=e.querySelector("span.truncate");if(t&&!n&&o){let t=o.innerText.trim();t.includes(".")||(t+=".js"),r.push({button:e,filename:t})}})),0===r.length)return void alert("לא נמצאו קבצים להורדה בתפריט.");for(const n of r){console.log(`מעבד את הקובץ: ${n.filename}...`),n.button.click(),await e(750);const r=document.querySelector(".monaco-editor .view-lines");if(r){const o=Array.from(r.querySelectorAll(".view-line")).map((e=>e.innerText)).join("\n");t(n.filename,o),await e(200)}else console.error(`לא נמצא עורך קוד עבור הקובץ ${n.filename}`)}alert(`ההורדה הושלמה! 👍 (הורדו ${r.length} קבצים בס"ד)`)})();
שימו רק לב כי הקודים של Base44 לא בנויים כאתר סטטי עם html, css, js, אלא כולם קבצי js/jsx בהם נמצאים גם הפונקציונליות וגם העיצוב של האפליקציה עם ספריית React. (כך ע"פ AI Studio)
אם בכל זאת תרצו את ה html של האפליקציה, יהיה עליכם לשמור אותם מהאתר המוכן עצמו (ctrl+s)@לאצי הקוד הזה מוריד כZIP עם החלוקת מבנה תיקיות... אולי כדאי שתערוך למעלה...
javascript:(async function(){if(document.documentElement.classList.contains("translated-ltr")||document.documentElement.classList.contains("translated-rtl")||document.querySelector("title")&&document.querySelector("title").hasAttribute("_msthash"))return void alert("⚠️ תרגום הדפדפן זוהה. בטל תרגום ונסה שוב.");const e=e=>new Promise(t=>setTimeout(t,e));if(!window.JSZip){console.log("טוען את ספריית JSZip...");const t=window.define;try{window.define=void 0;const o=await fetch("https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"),l=await o.text();new Function(l)(),window.JSZip||new Error("JSZip did not attach to window object."),console.log("JSZip נטען בהצלחה.")}catch(e){return console.error("שגיאה קריטית בטעינת JSZip:",e),window.define=t,alert("לא ניתן היה לטעון את ספריית הדחיסה (JSZip). הסקריפט לא יכול להמשיך.")}finally{window.define=t}}console.log("שלב 1: פותח תיקיות באופן רקורסיבי...");for(let t=0;t<15;t++){const o=Array.from(document.querySelectorAll('nav button[data-state="closed"]')).filter((e=>e.querySelector(".lucide-folder")));if(!o.length)break;for(const t of o)t.click(),await e(50);await e(500)}await e(1e3),console.log("שלב 2: איסוף מבנה הקבצים והתיקיות...");const t=[];for(const o of Array.from(document.querySelectorAll("nav button")).filter((e=>!e.querySelector(".lucide-folder")))){const l=o.querySelector("span.truncate");if(!l)continue;let n=l.innerText.trim();n.includes(".")||(n+=".js");const r=[n];let a=o.parentElement;for(;a&&a.closest("nav");){const e=a.closest("div.group");if(!e)break;const t=e.querySelector(":scope > button");t&&t.querySelector(".lucide-folder")&&t.querySelector("span.truncate")&&r.unshift(t.querySelector("span.truncate").innerText.trim()),a=e.parentElement}const i=r.join("/");t.push({button:o,path:i})}if(!t.length)return alert("לא נמצאו קבצים להורדה.");console.log(`נמצאו ${t.length} קבצים. מתחיל הורדה...`);const o=new JSZip;for(const l of t){console.log(`מעבד את הקובץ: ${l.path}...`),l.button.click(),await e(850);const t=document.querySelector(".monaco-editor .view-lines");t?(o.file(l.path,Array.from(t.querySelectorAll(".view-line")).map((e=>e.innerText)).join("\n")),await e(200)):(console.error(`לא נמצא עורך קוד עבור הקובץ ${l.path}`),o.file(l.path,"// Error: Could not find code editor for this file."))}console.log("יוצר קובץ ZIP...");const l=await o.generateAsync({type:"blob"}),n=document.createElement("a"),r=document.title.split("|")[0].trim().replace(/\s+/g,"_")||"project";n.href=URL.createObjectURL(l),n.download=`${r}.zip`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(n.href),alert(`✅ הושלם! הורד קובץ ZIP עם ${t.length} קבצים במבנה תיקיות.`)})();
-
@לאצי הקוד הזה מוריד כZIP עם החלוקת מבנה תיקיות... אולי כדאי שתערוך למעלה...
javascript:(async function(){if(document.documentElement.classList.contains("translated-ltr")||document.documentElement.classList.contains("translated-rtl")||document.querySelector("title")&&document.querySelector("title").hasAttribute("_msthash"))return void alert("⚠️ תרגום הדפדפן זוהה. בטל תרגום ונסה שוב.");const e=e=>new Promise(t=>setTimeout(t,e));if(!window.JSZip){console.log("טוען את ספריית JSZip...");const t=window.define;try{window.define=void 0;const o=await fetch("https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"),l=await o.text();new Function(l)(),window.JSZip||new Error("JSZip did not attach to window object."),console.log("JSZip נטען בהצלחה.")}catch(e){return console.error("שגיאה קריטית בטעינת JSZip:",e),window.define=t,alert("לא ניתן היה לטעון את ספריית הדחיסה (JSZip). הסקריפט לא יכול להמשיך.")}finally{window.define=t}}console.log("שלב 1: פותח תיקיות באופן רקורסיבי...");for(let t=0;t<15;t++){const o=Array.from(document.querySelectorAll('nav button[data-state="closed"]')).filter((e=>e.querySelector(".lucide-folder")));if(!o.length)break;for(const t of o)t.click(),await e(50);await e(500)}await e(1e3),console.log("שלב 2: איסוף מבנה הקבצים והתיקיות...");const t=[];for(const o of Array.from(document.querySelectorAll("nav button")).filter((e=>!e.querySelector(".lucide-folder")))){const l=o.querySelector("span.truncate");if(!l)continue;let n=l.innerText.trim();n.includes(".")||(n+=".js");const r=[n];let a=o.parentElement;for(;a&&a.closest("nav");){const e=a.closest("div.group");if(!e)break;const t=e.querySelector(":scope > button");t&&t.querySelector(".lucide-folder")&&t.querySelector("span.truncate")&&r.unshift(t.querySelector("span.truncate").innerText.trim()),a=e.parentElement}const i=r.join("/");t.push({button:o,path:i})}if(!t.length)return alert("לא נמצאו קבצים להורדה.");console.log(`נמצאו ${t.length} קבצים. מתחיל הורדה...`);const o=new JSZip;for(const l of t){console.log(`מעבד את הקובץ: ${l.path}...`),l.button.click(),await e(850);const t=document.querySelector(".monaco-editor .view-lines");t?(o.file(l.path,Array.from(t.querySelectorAll(".view-line")).map((e=>e.innerText)).join("\n")),await e(200)):(console.error(`לא נמצא עורך קוד עבור הקובץ ${l.path}`),o.file(l.path,"// Error: Could not find code editor for this file."))}console.log("יוצר קובץ ZIP...");const l=await o.generateAsync({type:"blob"}),n=document.createElement("a"),r=document.title.split("|")[0].trim().replace(/\s+/g,"_")||"project";n.href=URL.createObjectURL(l),n.download=`${r}.zip`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(n.href),alert(`✅ הושלם! הורד קובץ ZIP עם ${t.length} קבצים במבנה תיקיות.`)})();
@oryadaniely נוצר ע"י?
-
@oryadaniely נוצר ע"י?
@לאצי חצי חצי... אני יודע לכתוב קוד...