ארכיון הקטגוריה: אופטימיזציה

כל הביטים גדולים כקטנים

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

להמשיך לקרוא כל הביטים גדולים כקטנים

כל מיקרו-אמפר קובע: איך לגשת לתכנון מערכות חסכוניות בחשמל

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

להמשיך לקרוא כל מיקרו-אמפר קובע: איך לגשת לתכנון מערכות חסכוניות בחשמל

אופטימיזציה: האם אפשר להוציא את המיץ מהסוויץ'?

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

להמשיך לקרוא אופטימיזציה: האם אפשר להוציא את המיץ מהסוויץ'?

דברים שלמדתי מרודולף האייל

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

רודולף בפעולה
רודולף בפעולה

להמשיך לקרוא דברים שלמדתי מרודולף האייל

על גודל פונט וסוללה ב-Kindle

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

בחירת גודל גופן בקינדל

להמשיך לקרוא על גודל פונט וסוללה ב-Kindle

חיפוש מהיר של מיקומי GPS בקובץ

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

המקום היחיד ש-GPS עובד בו (צילום מסך מתוך Google Earth)
המקום היחיד ש-GPS עובד בו (צילום מסך מתוך Google Earth)

להמשיך לקרוא חיפוש מהיר של מיקומי GPS בקובץ

0.000011574Hz, חלק ראשון

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

הרעיון הזה מטופש מכדי להשאיר אותו לנצח בגדר תיאוריה, נכון? 🙂

להמשיך לקרוא 0.000011574Hz, חלק ראשון

פרויקט: כרטיס ביקור UART

מבדיחה בפייסבוק לקיט אמיתי: כמה פרטים טכניים על קיט "כרטיס הביקור" שהכנתי עבור האקתון הארדואינו.

דוגמית מקוד כרטיס הביקור
דוגמית מקוד כרטיס הביקור

להמשיך לקרוא פרויקט: כרטיס ביקור UART

מה מתמטיקה עוזרת בחיים

לפני כמה ימים נחת על שולחני ספר שרציתי לקרוא כבר הרבה מאד זמן: Hacker's Delight (מהדורה שניה). זהו למעשה אוסף של שיטות, טריקים וקונצים לאופטימיזציה של פעולות לוגיות ומתמטיות בתוכנות מחשב – מידע שימושי לכל מתכנת שעובד "קרוב לברזלים", ובמיוחד למתכנתי מיקרו-בקרים. הנה דוגמה לתועלת של טריקים חשבוניים… עוד לפני שקראתי דף אחד בספר.

טריקים למתכנתי Low-level: הספר Hacker's Delight
טריקים למתכנתי Low-level: הספר Hacker's Delight

להמשיך לקרוא מה מתמטיקה עוזרת בחיים

היקום הבלתי-אפשרי של Elite

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

פתיח המשחק Elite באמולטור המקוון bbc.godbolt.org
פתיח המשחק Elite באמולטור המקוון bbc.godbolt.org

להמשיך לקרוא היקום הבלתי-אפשרי של Elite