דילוג לתוכן
  • חוקי הפורום
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
לוגו מותג
  1. דף הבית
  2. קטגוריות בהרצה
  3. תכנות
  4. בינה מלאכותית - AI
  5. עזרה הדדית - בינה מלאכותית
  6. המלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי

המלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי

מתוזמן נעוץ נעול הועבר עזרה הדדית - בינה מלאכותית
201 פוסטים 40 כותבים 19.3k צפיות 37 Watching
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א אליה אליהו

    @צבי-מחשבים כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

    @sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

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

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

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

    כאן אני אתן פירוט על שלשה כלים כאלו:

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

    השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שנדרש כדי להפעיל אותו מפתח API בתשלום. ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.

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

    הכלי השלישי הוא cursor הוא פועל בשיטה דומה מאד לקודמים, ויש לו תוכנית חינמית מוגבלת למדי, וכמובן תוכניות בתשלום.

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

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

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

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

    אני למשל לא יודע תיכנות ואצלחתי לפתח תוכנה כמובן בעזרת ה AI

    צ מנותק
    צ מנותק
    צללית
    כתב נערך לאחרונה על ידי
    #124

    @אליה-אליהו איזה תוכנה?

    תגובה 1 תגובה אחרונה
    0
    • מישהו12מ מישהו12

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

      אם לא הייתי יודע כלל תכנות - זה לא היה מעשי באמת

      EBAE מנותק
      EBAE מנותק
      EBA
      מדריכים
      כתב נערך לאחרונה על ידי EBA
      #125

      @מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

      א"א לתכנת בלי לדעת תכנות.

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

      יצא מדהים, הקוד בספויילר.

      from selenium import webdriver
      from selenium.webdriver.chrome.service import Service
      from selenium.webdriver.chrome.options import Options
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.support import expected_conditions as EC
      import time
      import os
      import json
      from datetime import datetime
      from dotenv import load_dotenv
      from bidi.algorithm import get_display
      
      def display_rtl(text):
          """מציג טקסט בעברית בכיוון הנכון"""
          return get_display(text)
      
      load_dotenv()
      
      class ListingUpdater:
          def __init__(self):
              print(display_rtl("מאתחל את דפדפן Chrome..."))
              self.cookies_file = "yad2_cookies.json"
              self.setup_driver()
              
          def setup_driver(self):
              chrome_options = Options()
              chrome_options.add_argument('--disable-gpu')
              chrome_options.add_argument('--no-sandbox')
              chrome_options.add_argument('--disable-dev-shm-usage')
              chrome_options.add_argument('--start-maximized')
              chrome_options.add_experimental_option("detach", True)
              
              try:
                  self.driver = webdriver.Chrome(options=chrome_options)
                  print(display_rtl("דפדפן Chrome הואצל בהצלחה"))
              except Exception as e:
                  print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}"))
                  raise
      
          def save_cookies(self):
              cookies = self.driver.get_cookies()
              with open(self.cookies_file, 'w') as f:
                  json.dump(cookies, f)
              print(display_rtl("נשמרו עוגיות בהצלחה"))
      
          def load_cookies(self):
              try:
                  with open(self.cookies_file, 'r') as f:
                      cookies = json.load(f)
                  
                  # Navigate to the domain first
                  self.driver.get('https://www.yad2.co.il')
                  time.sleep(2)
                  
                  # Add the cookies
                  for cookie in cookies:
                      self.driver.add_cookie(cookie)
                  
                  print(display_rtl("עוגיות נטענו בהצלחה"))
                  return True
              except FileNotFoundError:
                  print(display_rtl("לא נמצא קובץ עוגיות קיים"))
                  return False
              except Exception as e:
                  print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}"))
                  return False
      
          def check_login_status(self):
              try:
                  print(display_rtl("בודק סטטוס התחברות..."))
                  # First go to main page
                  self.driver.get('https://www.yad2.co.il')
                  time.sleep(3)
                  
                  # Then try to access my-ads
                  print(display_rtl("מנסה לגשת לאזור האישי..."))
                  self.driver.get('https://www.yad2.co.il/my-ads')
                  time.sleep(10)  # תן יותר זמן לטעינה
                  
                  # Check if we're actually on the my-ads page
                  current_url = self.driver.current_url
                  print(display_rtl(f"כתובת נוכחית: {current_url}"))
                  
                  if "my-ads" in current_url:
                      print(display_rtl("מחובר בהצלחה לאזור האישי!"))
                      return True
                  else:
                      print(display_rtl("לא הצלחנו להגיע לאזור האישי"))
                      return False
                      
              except Exception as e:
                  print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}"))
                  return False
      
          def manual_login(self):
              print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:"))
              print(display_rtl("1. הכנס את פרטי ההתחברות שלך"))
              print(display_rtl("2. פתור את אתגר האבטחה אם נדרש"))
              print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי"))
              
              self.driver.get('https://www.yad2.co.il/auth/login')
              
              # Wait for successful login
              WebDriverWait(self.driver, 300).until(
                  lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url
              )
              
              print(display_rtl("התחברת בהצלחה!"))
              self.save_cookies()
      
          def update_listings(self):
              try:
                  print(display_rtl("מנווט לדף המודעות שלי..."))
                  self.navigate_to_my_ads()
                  
                  # מחפש את כפתורי ההקפצה
                  print(display_rtl("\nמחפש כפתורי הקפצה..."))
                  bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                  
                  if not bump_buttons:
                      print(display_rtl("לא נמצאו כפתורי הקפצה"))
                      return False
                  
                  print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה"))
                  
                  # עובר על כל כפתור הקפצה
                  for i in range(len(bump_buttons)):
                      try:
                          # מנווט מחדש לדף המודעות בכל פעם
                          self.navigate_to_my_ads()
                          
                          print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}..."))
                          
                          # מוצא את כפתורי ההקפצה מחדש אחרי הניווט
                          bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                          if i >= len(bump_buttons):
                              print(display_rtl("לא נמצאו יותר כפתורי הקפצה"))
                              break
                              
                          button = bump_buttons[i]
                          print(f"\nטקסט על כפתור {i + 1}:", button.text.strip())
                          
                          # בודק אם הכפתור מושבת
                          if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"):
                              print(display_rtl("הכפתור מושבת"))
                              continue
                          
                          # גולל לכפתור
                          self.driver.execute_script("arguments[0].scrollIntoView(true);", button)
                          time.sleep(1)
                          
                          # מנסה ללחוץ באמצעות JavaScript
                          print("מנסה ללחוץ על כפתור ההקפצה...")
                          self.driver.execute_script("arguments[0].click();", button)
                          print("לחיצה על כפתור ההקפצה")
                          
                          # מחכה קצת ואז מרענן את הדף
                          time.sleep(2)
                          print("מרענן את הדף...")
                          self.driver.refresh()
                          
                          # מחכה לטעינת הדף
                          print("ממתין לטעינת הדף...")
                          self.wait_for_page_load()
                          print("הדף נטען")
                          
                          # מחכה קצת זמן אחרי ההקפצה
                          time.sleep(3)
                          
                      except Exception as e:
                          print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}"))
                          if hasattr(e, 'msg'):
                              print(f"Message: {e.msg}")
                  
                  return True
                  
              except Exception as e:
                  print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}"))
                  if hasattr(e, 'msg'):
                      print(f"Message: {e.msg}")
                  return False
                  
          def navigate_to_my_ads(self):
              """מנווט לדף המודעות שלי ומחכה שהדף יטען"""
              self.driver.get('https://www.yad2.co.il/my-ads')
              
              # מחכה שהדף יטען
              print(display_rtl("ממתין לטעינת הדף..."))
              WebDriverWait(self.driver, 30).until(
                  lambda driver: driver.execute_script("return document.readyState") == "complete"
              )
              
              # מחכה שה-splash screen ייעלם
              print(display_rtl("ממתין שמסך הטעינה ייעלם..."))
              try:
                  splash_screen = WebDriverWait(self.driver, 10).until(
                      EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1"))
                  )
                  WebDriverWait(self.driver, 20).until(
                      EC.staleness_of(splash_screen)
                  )
                  print(display_rtl("מסך הטעינה נעלם"))
              except:
                  print(display_rtl("לא נמצא מסך טעינה"))
              
              # מחכה שיופיע התוכן האמיתי
              print(display_rtl("ממתין לטעינת התוכן..."))
              time.sleep(3)
      
          def wait_for_page_load(self):
              WebDriverWait(self.driver, 30).until(
                  lambda driver: driver.execute_script("return document.readyState") == "complete"
              )
      
          def close(self):
              try:
                  self.driver.quit()
              except:
                  pass
      
      def main():
          updater = None
          try:
              while True:  # לולאה אינסופית
                  print("\nמתחיל הרצה חדשה...")
                  updater = ListingUpdater()
                  updater.load_cookies()
                  if updater.check_login_status():
                      print(display_rtl("התחברות באמצעות עוגיות הצליחה!"))
                  else:
                      print(display_rtl("צריך להתחבר שוב..."))
                      updater.manual_login()
                  
                  print(display_rtl("\nמתחיל את תהליך העדכון..."))
                  updater.update_listings()
                  
                  updater.close()
                  
                  # מחכה 4 שעות ודקה
                  print("\nממתין 4 שעות ודקה עד להרצה הבאה...")
                  time.sleep((4 * 60 * 60) + 60)  # 4 שעות + דקה בשניות
                  
          except KeyboardInterrupt:
              print("\nהתוכנית הופסקה על ידי המשתמש")
          finally:
              if updater:
                  updater.close()
      
      if __name__ == "__main__":
          main()
      
      

      ט A 3 תגובות תגובה אחרונה
      9
      • EBAE EBA

        @מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

        א"א לתכנת בלי לדעת תכנות.

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

        יצא מדהים, הקוד בספויילר.

        from selenium import webdriver
        from selenium.webdriver.chrome.service import Service
        from selenium.webdriver.chrome.options import Options
        from selenium.webdriver.common.by import By
        from selenium.webdriver.support.ui import WebDriverWait
        from selenium.webdriver.support import expected_conditions as EC
        import time
        import os
        import json
        from datetime import datetime
        from dotenv import load_dotenv
        from bidi.algorithm import get_display
        
        def display_rtl(text):
            """מציג טקסט בעברית בכיוון הנכון"""
            return get_display(text)
        
        load_dotenv()
        
        class ListingUpdater:
            def __init__(self):
                print(display_rtl("מאתחל את דפדפן Chrome..."))
                self.cookies_file = "yad2_cookies.json"
                self.setup_driver()
                
            def setup_driver(self):
                chrome_options = Options()
                chrome_options.add_argument('--disable-gpu')
                chrome_options.add_argument('--no-sandbox')
                chrome_options.add_argument('--disable-dev-shm-usage')
                chrome_options.add_argument('--start-maximized')
                chrome_options.add_experimental_option("detach", True)
                
                try:
                    self.driver = webdriver.Chrome(options=chrome_options)
                    print(display_rtl("דפדפן Chrome הואצל בהצלחה"))
                except Exception as e:
                    print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}"))
                    raise
        
            def save_cookies(self):
                cookies = self.driver.get_cookies()
                with open(self.cookies_file, 'w') as f:
                    json.dump(cookies, f)
                print(display_rtl("נשמרו עוגיות בהצלחה"))
        
            def load_cookies(self):
                try:
                    with open(self.cookies_file, 'r') as f:
                        cookies = json.load(f)
                    
                    # Navigate to the domain first
                    self.driver.get('https://www.yad2.co.il')
                    time.sleep(2)
                    
                    # Add the cookies
                    for cookie in cookies:
                        self.driver.add_cookie(cookie)
                    
                    print(display_rtl("עוגיות נטענו בהצלחה"))
                    return True
                except FileNotFoundError:
                    print(display_rtl("לא נמצא קובץ עוגיות קיים"))
                    return False
                except Exception as e:
                    print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}"))
                    return False
        
            def check_login_status(self):
                try:
                    print(display_rtl("בודק סטטוס התחברות..."))
                    # First go to main page
                    self.driver.get('https://www.yad2.co.il')
                    time.sleep(3)
                    
                    # Then try to access my-ads
                    print(display_rtl("מנסה לגשת לאזור האישי..."))
                    self.driver.get('https://www.yad2.co.il/my-ads')
                    time.sleep(10)  # תן יותר זמן לטעינה
                    
                    # Check if we're actually on the my-ads page
                    current_url = self.driver.current_url
                    print(display_rtl(f"כתובת נוכחית: {current_url}"))
                    
                    if "my-ads" in current_url:
                        print(display_rtl("מחובר בהצלחה לאזור האישי!"))
                        return True
                    else:
                        print(display_rtl("לא הצלחנו להגיע לאזור האישי"))
                        return False
                        
                except Exception as e:
                    print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}"))
                    return False
        
            def manual_login(self):
                print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:"))
                print(display_rtl("1. הכנס את פרטי ההתחברות שלך"))
                print(display_rtl("2. פתור את אתגר האבטחה אם נדרש"))
                print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי"))
                
                self.driver.get('https://www.yad2.co.il/auth/login')
                
                # Wait for successful login
                WebDriverWait(self.driver, 300).until(
                    lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url
                )
                
                print(display_rtl("התחברת בהצלחה!"))
                self.save_cookies()
        
            def update_listings(self):
                try:
                    print(display_rtl("מנווט לדף המודעות שלי..."))
                    self.navigate_to_my_ads()
                    
                    # מחפש את כפתורי ההקפצה
                    print(display_rtl("\nמחפש כפתורי הקפצה..."))
                    bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                    
                    if not bump_buttons:
                        print(display_rtl("לא נמצאו כפתורי הקפצה"))
                        return False
                    
                    print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה"))
                    
                    # עובר על כל כפתור הקפצה
                    for i in range(len(bump_buttons)):
                        try:
                            # מנווט מחדש לדף המודעות בכל פעם
                            self.navigate_to_my_ads()
                            
                            print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}..."))
                            
                            # מוצא את כפתורי ההקפצה מחדש אחרי הניווט
                            bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                            if i >= len(bump_buttons):
                                print(display_rtl("לא נמצאו יותר כפתורי הקפצה"))
                                break
                                
                            button = bump_buttons[i]
                            print(f"\nטקסט על כפתור {i + 1}:", button.text.strip())
                            
                            # בודק אם הכפתור מושבת
                            if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"):
                                print(display_rtl("הכפתור מושבת"))
                                continue
                            
                            # גולל לכפתור
                            self.driver.execute_script("arguments[0].scrollIntoView(true);", button)
                            time.sleep(1)
                            
                            # מנסה ללחוץ באמצעות JavaScript
                            print("מנסה ללחוץ על כפתור ההקפצה...")
                            self.driver.execute_script("arguments[0].click();", button)
                            print("לחיצה על כפתור ההקפצה")
                            
                            # מחכה קצת ואז מרענן את הדף
                            time.sleep(2)
                            print("מרענן את הדף...")
                            self.driver.refresh()
                            
                            # מחכה לטעינת הדף
                            print("ממתין לטעינת הדף...")
                            self.wait_for_page_load()
                            print("הדף נטען")
                            
                            # מחכה קצת זמן אחרי ההקפצה
                            time.sleep(3)
                            
                        except Exception as e:
                            print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}"))
                            if hasattr(e, 'msg'):
                                print(f"Message: {e.msg}")
                    
                    return True
                    
                except Exception as e:
                    print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}"))
                    if hasattr(e, 'msg'):
                        print(f"Message: {e.msg}")
                    return False
                    
            def navigate_to_my_ads(self):
                """מנווט לדף המודעות שלי ומחכה שהדף יטען"""
                self.driver.get('https://www.yad2.co.il/my-ads')
                
                # מחכה שהדף יטען
                print(display_rtl("ממתין לטעינת הדף..."))
                WebDriverWait(self.driver, 30).until(
                    lambda driver: driver.execute_script("return document.readyState") == "complete"
                )
                
                # מחכה שה-splash screen ייעלם
                print(display_rtl("ממתין שמסך הטעינה ייעלם..."))
                try:
                    splash_screen = WebDriverWait(self.driver, 10).until(
                        EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1"))
                    )
                    WebDriverWait(self.driver, 20).until(
                        EC.staleness_of(splash_screen)
                    )
                    print(display_rtl("מסך הטעינה נעלם"))
                except:
                    print(display_rtl("לא נמצא מסך טעינה"))
                
                # מחכה שיופיע התוכן האמיתי
                print(display_rtl("ממתין לטעינת התוכן..."))
                time.sleep(3)
        
            def wait_for_page_load(self):
                WebDriverWait(self.driver, 30).until(
                    lambda driver: driver.execute_script("return document.readyState") == "complete"
                )
        
            def close(self):
                try:
                    self.driver.quit()
                except:
                    pass
        
        def main():
            updater = None
            try:
                while True:  # לולאה אינסופית
                    print("\nמתחיל הרצה חדשה...")
                    updater = ListingUpdater()
                    updater.load_cookies()
                    if updater.check_login_status():
                        print(display_rtl("התחברות באמצעות עוגיות הצליחה!"))
                    else:
                        print(display_rtl("צריך להתחבר שוב..."))
                        updater.manual_login()
                    
                    print(display_rtl("\nמתחיל את תהליך העדכון..."))
                    updater.update_listings()
                    
                    updater.close()
                    
                    # מחכה 4 שעות ודקה
                    print("\nממתין 4 שעות ודקה עד להרצה הבאה...")
                    time.sleep((4 * 60 * 60) + 60)  # 4 שעות + דקה בשניות
                    
            except KeyboardInterrupt:
                print("\nהתוכנית הופסקה על ידי המשתמש")
            finally:
                if updater:
                    updater.close()
        
        if __name__ == "__main__":
            main()
        
        

        ט מנותק
        ט מנותק
        טופטופיסט
        כתב נערך לאחרונה על ידי טופטופיסט
        #126

        @EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

        הכנתי תוכנה להקפצה אוטומטית של מודעות ביד2, משהו שאני חולם עליו כבר שנים.

        רעין פצצה!


        חבל שלא שיתפת אותנו בפורום כבר 'לפני שנים'...

        EBAE תגובה 1 תגובה אחרונה
        0
        • ט טופטופיסט

          @EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

          הכנתי תוכנה להקפצה אוטומטית של מודעות ביד2, משהו שאני חולם עליו כבר שנים.

          רעין פצצה!


          חבל שלא שיתפת אותנו בפורום כבר 'לפני שנים'...

          EBAE מנותק
          EBAE מנותק
          EBA
          מדריכים
          כתב נערך לאחרונה על ידי
          #127

          @טופטופיסט שיתפתי
          https://mitmachim.top/topic/11664/עזרה-ממומחי-סקריפטים-הקפצה-אוטומטית-יד-2

          תגובה 1 תגובה אחרונה
          1
          • EBAE EBA

            @מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

            א"א לתכנת בלי לדעת תכנות.

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

            יצא מדהים, הקוד בספויילר.

            from selenium import webdriver
            from selenium.webdriver.chrome.service import Service
            from selenium.webdriver.chrome.options import Options
            from selenium.webdriver.common.by import By
            from selenium.webdriver.support.ui import WebDriverWait
            from selenium.webdriver.support import expected_conditions as EC
            import time
            import os
            import json
            from datetime import datetime
            from dotenv import load_dotenv
            from bidi.algorithm import get_display
            
            def display_rtl(text):
                """מציג טקסט בעברית בכיוון הנכון"""
                return get_display(text)
            
            load_dotenv()
            
            class ListingUpdater:
                def __init__(self):
                    print(display_rtl("מאתחל את דפדפן Chrome..."))
                    self.cookies_file = "yad2_cookies.json"
                    self.setup_driver()
                    
                def setup_driver(self):
                    chrome_options = Options()
                    chrome_options.add_argument('--disable-gpu')
                    chrome_options.add_argument('--no-sandbox')
                    chrome_options.add_argument('--disable-dev-shm-usage')
                    chrome_options.add_argument('--start-maximized')
                    chrome_options.add_experimental_option("detach", True)
                    
                    try:
                        self.driver = webdriver.Chrome(options=chrome_options)
                        print(display_rtl("דפדפן Chrome הואצל בהצלחה"))
                    except Exception as e:
                        print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}"))
                        raise
            
                def save_cookies(self):
                    cookies = self.driver.get_cookies()
                    with open(self.cookies_file, 'w') as f:
                        json.dump(cookies, f)
                    print(display_rtl("נשמרו עוגיות בהצלחה"))
            
                def load_cookies(self):
                    try:
                        with open(self.cookies_file, 'r') as f:
                            cookies = json.load(f)
                        
                        # Navigate to the domain first
                        self.driver.get('https://www.yad2.co.il')
                        time.sleep(2)
                        
                        # Add the cookies
                        for cookie in cookies:
                            self.driver.add_cookie(cookie)
                        
                        print(display_rtl("עוגיות נטענו בהצלחה"))
                        return True
                    except FileNotFoundError:
                        print(display_rtl("לא נמצא קובץ עוגיות קיים"))
                        return False
                    except Exception as e:
                        print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}"))
                        return False
            
                def check_login_status(self):
                    try:
                        print(display_rtl("בודק סטטוס התחברות..."))
                        # First go to main page
                        self.driver.get('https://www.yad2.co.il')
                        time.sleep(3)
                        
                        # Then try to access my-ads
                        print(display_rtl("מנסה לגשת לאזור האישי..."))
                        self.driver.get('https://www.yad2.co.il/my-ads')
                        time.sleep(10)  # תן יותר זמן לטעינה
                        
                        # Check if we're actually on the my-ads page
                        current_url = self.driver.current_url
                        print(display_rtl(f"כתובת נוכחית: {current_url}"))
                        
                        if "my-ads" in current_url:
                            print(display_rtl("מחובר בהצלחה לאזור האישי!"))
                            return True
                        else:
                            print(display_rtl("לא הצלחנו להגיע לאזור האישי"))
                            return False
                            
                    except Exception as e:
                        print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}"))
                        return False
            
                def manual_login(self):
                    print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:"))
                    print(display_rtl("1. הכנס את פרטי ההתחברות שלך"))
                    print(display_rtl("2. פתור את אתגר האבטחה אם נדרש"))
                    print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי"))
                    
                    self.driver.get('https://www.yad2.co.il/auth/login')
                    
                    # Wait for successful login
                    WebDriverWait(self.driver, 300).until(
                        lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url
                    )
                    
                    print(display_rtl("התחברת בהצלחה!"))
                    self.save_cookies()
            
                def update_listings(self):
                    try:
                        print(display_rtl("מנווט לדף המודעות שלי..."))
                        self.navigate_to_my_ads()
                        
                        # מחפש את כפתורי ההקפצה
                        print(display_rtl("\nמחפש כפתורי הקפצה..."))
                        bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                        
                        if not bump_buttons:
                            print(display_rtl("לא נמצאו כפתורי הקפצה"))
                            return False
                        
                        print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה"))
                        
                        # עובר על כל כפתור הקפצה
                        for i in range(len(bump_buttons)):
                            try:
                                # מנווט מחדש לדף המודעות בכל פעם
                                self.navigate_to_my_ads()
                                
                                print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}..."))
                                
                                # מוצא את כפתורי ההקפצה מחדש אחרי הניווט
                                bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                                if i >= len(bump_buttons):
                                    print(display_rtl("לא נמצאו יותר כפתורי הקפצה"))
                                    break
                                    
                                button = bump_buttons[i]
                                print(f"\nטקסט על כפתור {i + 1}:", button.text.strip())
                                
                                # בודק אם הכפתור מושבת
                                if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"):
                                    print(display_rtl("הכפתור מושבת"))
                                    continue
                                
                                # גולל לכפתור
                                self.driver.execute_script("arguments[0].scrollIntoView(true);", button)
                                time.sleep(1)
                                
                                # מנסה ללחוץ באמצעות JavaScript
                                print("מנסה ללחוץ על כפתור ההקפצה...")
                                self.driver.execute_script("arguments[0].click();", button)
                                print("לחיצה על כפתור ההקפצה")
                                
                                # מחכה קצת ואז מרענן את הדף
                                time.sleep(2)
                                print("מרענן את הדף...")
                                self.driver.refresh()
                                
                                # מחכה לטעינת הדף
                                print("ממתין לטעינת הדף...")
                                self.wait_for_page_load()
                                print("הדף נטען")
                                
                                # מחכה קצת זמן אחרי ההקפצה
                                time.sleep(3)
                                
                            except Exception as e:
                                print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}"))
                                if hasattr(e, 'msg'):
                                    print(f"Message: {e.msg}")
                        
                        return True
                        
                    except Exception as e:
                        print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}"))
                        if hasattr(e, 'msg'):
                            print(f"Message: {e.msg}")
                        return False
                        
                def navigate_to_my_ads(self):
                    """מנווט לדף המודעות שלי ומחכה שהדף יטען"""
                    self.driver.get('https://www.yad2.co.il/my-ads')
                    
                    # מחכה שהדף יטען
                    print(display_rtl("ממתין לטעינת הדף..."))
                    WebDriverWait(self.driver, 30).until(
                        lambda driver: driver.execute_script("return document.readyState") == "complete"
                    )
                    
                    # מחכה שה-splash screen ייעלם
                    print(display_rtl("ממתין שמסך הטעינה ייעלם..."))
                    try:
                        splash_screen = WebDriverWait(self.driver, 10).until(
                            EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1"))
                        )
                        WebDriverWait(self.driver, 20).until(
                            EC.staleness_of(splash_screen)
                        )
                        print(display_rtl("מסך הטעינה נעלם"))
                    except:
                        print(display_rtl("לא נמצא מסך טעינה"))
                    
                    # מחכה שיופיע התוכן האמיתי
                    print(display_rtl("ממתין לטעינת התוכן..."))
                    time.sleep(3)
            
                def wait_for_page_load(self):
                    WebDriverWait(self.driver, 30).until(
                        lambda driver: driver.execute_script("return document.readyState") == "complete"
                    )
            
                def close(self):
                    try:
                        self.driver.quit()
                    except:
                        pass
            
            def main():
                updater = None
                try:
                    while True:  # לולאה אינסופית
                        print("\nמתחיל הרצה חדשה...")
                        updater = ListingUpdater()
                        updater.load_cookies()
                        if updater.check_login_status():
                            print(display_rtl("התחברות באמצעות עוגיות הצליחה!"))
                        else:
                            print(display_rtl("צריך להתחבר שוב..."))
                            updater.manual_login()
                        
                        print(display_rtl("\nמתחיל את תהליך העדכון..."))
                        updater.update_listings()
                        
                        updater.close()
                        
                        # מחכה 4 שעות ודקה
                        print("\nממתין 4 שעות ודקה עד להרצה הבאה...")
                        time.sleep((4 * 60 * 60) + 60)  # 4 שעות + דקה בשניות
                        
                except KeyboardInterrupt:
                    print("\nהתוכנית הופסקה על ידי המשתמש")
                finally:
                    if updater:
                        updater.close()
            
            if __name__ == "__main__":
                main()
            
            

            A מנותק
            A מנותק
            aiib
            כתב נערך לאחרונה על ידי
            #128

            @EBA איך משתמשים בו?
            בעבר היה כזה דבר ויד 2 חסמו אותו...

            NH.LOCALN תגובה 1 תגובה אחרונה
            0
            • A aiib

              @EBA איך משתמשים בו?
              בעבר היה כזה דבר ויד 2 חסמו אותו...

              NH.LOCALN מנותק
              NH.LOCALN מנותק
              NH.LOCAL
              מדריכים
              כתב נערך לאחרונה על ידי
              #129

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

              כל הפרטים כאן: https://github.com/features/copilot

              לאינדקס המלא של כלל הסקריפטים שלי
              https://nhlocal.github.io

              M תגובה 1 תגובה אחרונה
              5
              • NH.LOCALN NH.LOCAL

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

                כל הפרטים כאן: https://github.com/features/copilot

                M מנותק
                M מנותק
                MAKRO
                כתב נערך לאחרונה על ידי
                #130

                @NH-LOCAL @sivan22 @ @צדיק-תמים ושאר הכותבים המבינים
                אשמח לשמוע מהו המודל החינמי המומלץ לכתיבת קוד
                אבל לא שמתפקד כתוסף ל VS אלא בלי שום תוכנה שמותקנת על המחשב
                (הכתיבה וההרצה תהיה במחשב אחר)
                תודה!

                צ תגובה 1 תגובה אחרונה
                1
                • M MAKRO

                  @NH-LOCAL @sivan22 @ @צדיק-תמים ושאר הכותבים המבינים
                  אשמח לשמוע מהו המודל החינמי המומלץ לכתיבת קוד
                  אבל לא שמתפקד כתוסף ל VS אלא בלי שום תוכנה שמותקנת על המחשב
                  (הכתיבה וההרצה תהיה במחשב אחר)
                  תודה!

                  צ מנותק
                  צ מנותק
                  צללית
                  כתב נערך לאחרונה על ידי
                  #131

                  @MAKRO אם השאלה היא gemini מול chat-gpt - ברור שchat-gpt עולה בכמה רמות. ובתוך chat-gpt יש כמה מודלים, יש את היותר טוב בחינם ואחרי כמה שאלות זה יורד, ועדיין זה יותר טוב מג'מיני
                  קלוד לא בדקתי

                  M NH.LOCALN 2 תגובות תגובה אחרונה
                  1
                  • צ צללית

                    @MAKRO אם השאלה היא gemini מול chat-gpt - ברור שchat-gpt עולה בכמה רמות. ובתוך chat-gpt יש כמה מודלים, יש את היותר טוב בחינם ואחרי כמה שאלות זה יורד, ועדיין זה יותר טוב מג'מיני
                    קלוד לא בדקתי

                    M מנותק
                    M מנותק
                    MAKRO
                    כתב נערך לאחרונה על ידי
                    #132

                    @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                    קלוד לא בדקתי

                    @NH-LOCAL כתב שכיום, החינמי שלהם כבר לא משהו...

                    נ NH.LOCALN 2 תגובות תגובה אחרונה
                    0
                    • M MAKRO

                      @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                      קלוד לא בדקתי

                      @NH-LOCAL כתב שכיום, החינמי שלהם כבר לא משהו...

                      נ מנותק
                      נ מנותק
                      נעזר1000
                      כתב נערך לאחרונה על ידי נעזר1000
                      #133

                      @MAKRO כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                      @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                      קלוד לא בדקתי

                      @NH-LOCAL כתב שכיום, החינמי שלהם כבר לא משהו...

                      זכור לי שהוא ( @NH-LOCAL ) גם כתב שבשביל פרונט ועיצובים הוא (קלוד) הרבה יותר טוב מכל השאר,
                      ואני מאשר זאת מנסיון.

                      ומנצל את ההזדמנות להודות לו על הטיפ הזה.

                      תגובה 1 תגובה אחרונה
                      1
                      • M MAKRO

                        @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                        קלוד לא בדקתי

                        @NH-LOCAL כתב שכיום, החינמי שלהם כבר לא משהו...

                        NH.LOCALN מנותק
                        NH.LOCALN מנותק
                        NH.LOCAL
                        מדריכים
                        כתב נערך לאחרונה על ידי
                        #134

                        @MAKRO כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                        @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                        קלוד לא בדקתי

                        @NH-LOCAL כתב שכיום, החינמי שלהם כבר לא משהו...

                        זה השתנה כעת שוב, הם החזירו את המודל הטוב שלהם למשתמשים החינמיים ממש אתמול!

                        לאינדקס המלא של כלל הסקריפטים שלי
                        https://nhlocal.github.io

                        תגובה 1 תגובה אחרונה
                        3
                        • צ צללית

                          @MAKRO אם השאלה היא gemini מול chat-gpt - ברור שchat-gpt עולה בכמה רמות. ובתוך chat-gpt יש כמה מודלים, יש את היותר טוב בחינם ואחרי כמה שאלות זה יורד, ועדיין זה יותר טוב מג'מיני
                          קלוד לא בדקתי

                          NH.LOCALN מנותק
                          NH.LOCALN מנותק
                          NH.LOCAL
                          מדריכים
                          כתב נערך לאחרונה על ידי NH.LOCAL
                          #135

                          @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                          @MAKRO אם השאלה היא gemini מול chat-gpt - ברור שchat-gpt עולה בכמה רמות. ובתוך chat-gpt יש כמה מודלים, יש את היותר טוב בחינם ואחרי כמה שאלות זה יורד, ועדיין זה יותר טוב מג'מיני
                          קלוד לא בדקתי

                          כבר לא ממש נכון. ממליץ להסתכל על המדד livebench שמודד יכולות של מודלי AI בכמה פרמטרים מרכזיים.

                          בפועל, מהניסיון האישי שלי, זה תלוי מאוד פר משימה. בשבוע האחרון עסקתי במספר פרוייקטים שונים ומשונים עם דרישות ומבני קוד שונים. בחלק מהמקרים gpt4o הפשוט היה טוב יותר מכל מודל אחר, במקרים אחרים זה היה gemini 2.0 החדש ובמקרים מסויימים o1 של OPENAI

                          לאינדקס המלא של כלל הסקריפטים שלי
                          https://nhlocal.github.io

                          צ תגובה 1 תגובה אחרונה
                          3
                          • NH.LOCALN NH.LOCAL

                            @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                            @MAKRO אם השאלה היא gemini מול chat-gpt - ברור שchat-gpt עולה בכמה רמות. ובתוך chat-gpt יש כמה מודלים, יש את היותר טוב בחינם ואחרי כמה שאלות זה יורד, ועדיין זה יותר טוב מג'מיני
                            קלוד לא בדקתי

                            כבר לא ממש נכון. ממליץ להסתכל על המדד livebench שמודד יכולות של מודלי AI בכמה פרמטרים מרכזיים.

                            בפועל, מהניסיון האישי שלי, זה תלוי מאוד פר משימה. בשבוע האחרון עסקתי במספר פרוייקטים שונים ומשונים עם דרישות ומבני קוד שונים. בחלק מהמקרים gpt4o הפשוט היה טוב יותר מכל מודל אחר, במקרים אחרים זה היה gemini 2.0 החדש ובמקרים מסויימים o1 של OPENAI

                            צ מנותק
                            צ מנותק
                            צללית
                            כתב נערך לאחרונה על ידי
                            #136

                            @NH-LOCAL אני כתבתי מהניסיון שלי, יתכן שבאמת זה תלוי במשימות. בכל הפעמים שבדקתי אותו דבר בשניהם, chat-gpt היה יותר ממוקד ומדויק ועם פחות הזיות. וגם כשהיה צריך לתקן את עצמו הוא הבין יותר מהר את נקודת הבעיה.

                            תגובה 1 תגובה אחרונה
                            0
                            • sivan22S sivan22

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

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

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

                              כאן אני אתן פירוט על שלשה כלים כאלו:

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

                              השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שכדי להפעיל אותו נדרש API. אפשר להשתמש גם עם API חינמי של גוגל שניתן להשיג מכאן. אם כי איכות יותר טובה תתקבל בשימוש בAPI בתשלום של אנטרופיק, ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.

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

                              הכלי השלישי הוא cursor הוא פועל בשיטה דומה מאד לקודמים, ויש לו תוכנית חינמית מוגבלת למדי, וכמובן תוכניות בתשלום.

                              צ מנותק
                              צ מנותק
                              צללית
                              כתב נערך לאחרונה על ידי
                              #137

                              @sivan22 ניסיתי היום להשתמש בwindsurf ומשום מה כל פעם שהוא מנסה ליצור קובץ הוא נתקל בשגיאה הבאה:

                              ErrorCascade cannot propose edits to files that do not exist.
                              איך אני יכול לפתור את זה?

                              מ תגובה 1 תגובה אחרונה
                              0
                              • צ צללית

                                @sivan22 ניסיתי היום להשתמש בwindsurf ומשום מה כל פעם שהוא מנסה ליצור קובץ הוא נתקל בשגיאה הבאה:

                                ErrorCascade cannot propose edits to files that do not exist.
                                איך אני יכול לפתור את זה?

                                מ מנותק
                                מ מנותק
                                מדהים
                                כתב נערך לאחרונה על ידי
                                #138

                                @צללית אולי לפתוח עם הרשאות מנהל 🤔

                                צ תגובה 1 תגובה אחרונה
                                1
                                • מ מדהים

                                  @צללית אולי לפתוח עם הרשאות מנהל 🤔

                                  צ מנותק
                                  צ מנותק
                                  צללית
                                  כתב נערך לאחרונה על ידי צללית
                                  #139

                                  @מדהים אבדוק
                                  למרות שבשביל ליצור קבצים לא צריך להיות מנהל.
                                  עריכה: בדקתי ולא עזר

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • sivan22S sivan22

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

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

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

                                    כאן אני אתן פירוט על שלשה כלים כאלו:

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

                                    השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שכדי להפעיל אותו נדרש API. אפשר להשתמש גם עם API חינמי של גוגל שניתן להשיג מכאן. אם כי איכות יותר טובה תתקבל בשימוש בAPI בתשלום של אנטרופיק, ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.

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

                                    הכלי השלישי הוא cursor הוא פועל בשיטה דומה מאד לקודמים, ויש לו תוכנית חינמית מוגבלת למדי, וכמובן תוכניות בתשלום.

                                    sivan22S מנותק
                                    sivan22S מנותק
                                    sivan22
                                    כתב נערך לאחרונה על ידי
                                    #140

                                    @sivan22
                                    עדכון (ערכתי גם את הפוסט למעלה): ההמלצה הנוכחית שלי היא להשתמש בCline עם API חינמי של גוגל. אמנם מדי פעם הוא נעצר, אבל סך הכל אפשר לעבוד איתו, והוא כמובן חינמי.

                                    י תגובה 1 תגובה אחרונה
                                    2
                                    • sivan22S sivan22 התייחס לנושא זה
                                    • sivan22S sivan22

                                      @sivan22
                                      עדכון (ערכתי גם את הפוסט למעלה): ההמלצה הנוכחית שלי היא להשתמש בCline עם API חינמי של גוגל. אמנם מדי פעם הוא נעצר, אבל סך הכל אפשר לעבוד איתו, והוא כמובן חינמי.

                                      י מנותק
                                      י מנותק
                                      יעקב 4
                                      כתב נערך לאחרונה על ידי
                                      #141

                                      @sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                      @sivan22
                                      עדכון (ערכתי גם את הפוסט למעלה): ההמלצה הנוכחית שלי היא להשתמש בCline עם API חינמי של גוגל. אמנם מדי פעם הוא נעצר, אבל סך הכל אפשר לעבוד איתו, והוא כמובן חינמי.

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

                                      צ תגובה 1 תגובה אחרונה
                                      0
                                      • י יעקב 4

                                        @sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                        @sivan22
                                        עדכון (ערכתי גם את הפוסט למעלה): ההמלצה הנוכחית שלי היא להשתמש בCline עם API חינמי של גוגל. אמנם מדי פעם הוא נעצר, אבל סך הכל אפשר לעבוד איתו, והוא כמובן חינמי.

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

                                        צ מנותק
                                        צ מנותק
                                        צללית
                                        כתב נערך לאחרונה על ידי
                                        #142

                                        @יעקב-4 יש הסבר למעלה בפוסט הראשון, נכנסים לקישור שמובא שם ומקבלים מפתח API בתוכנה יש מקום ברור לשים אותו מיד בהתחלה אחרי שאתה גומר להתקין את התוסף בתוך הVSCODE, צריך לבחור מתוך הרשימה את GEMINI של google ומתחת זה יש מקום להכניס מפתח API

                                        י תגובה 1 תגובה אחרונה
                                        1
                                        • צ צללית

                                          @יעקב-4 יש הסבר למעלה בפוסט הראשון, נכנסים לקישור שמובא שם ומקבלים מפתח API בתוכנה יש מקום ברור לשים אותו מיד בהתחלה אחרי שאתה גומר להתקין את התוסף בתוך הVSCODE, צריך לבחור מתוך הרשימה את GEMINI של google ומתחת זה יש מקום להכניס מפתח API

                                          י מנותק
                                          י מנותק
                                          יעקב 4
                                          כתב נערך לאחרונה על ידי
                                          #143

                                          @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                          @יעקב-4 יש הסבר למעלה בפוסט הראשון, נכנסים לקישור שמובא שם ומקבלים מפתח API בתוכנה יש מקום ברור לשים אותו מיד בהתחלה אחרי שאתה גומר להתקין את התוסף בתוך הVSCODE, צריך לבחור מתוך הרשימה את GEMINI של google ומתחת זה יש מקום להכניס מפתח API

                                          אוקי אתה מסתמא מתכוון לזה:
                                          b24203df-0ca9-4f79-bee3-71e74b963e07-image.png

                                          ואז להכניס אותו פה:
                                          ecd10373-8a67-4e3f-a5bc-62b866270a61-image.png

                                          זה מה שקורה:
                                          612fe87a-f17c-486f-b28d-7bf6218542d3-image.png

                                          צ תגובה 1 תגובה אחרונה
                                          0

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • חוקי הפורום
                                          • לא נפתר
                                          • משתמשים
                                          • חיפוש גוגל בפורום
                                          • צור קשר