ארכיון פוסטים מהחודש ינואר, 2008

מקוורלד, צ'יפס וקולה

שלישי, 15 בינואר, 2008 מאת ailaG

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

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

אז מה יש לנו? בבאנרים של אפל כתוב There’s Something in the Air ובאחד מאתרי השמועות היה כתוב שמישהו רשם דומיינים שמכילים את המילים MacBookAir ונראה שהמישהו קשור לאפל.

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

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

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

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

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

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

ככה בטוח לא.

שני, 14 בינואר, 2008 מאת ailaG

?הלועפ ךתיא ףתשל םירחאל םורגל ךיא (לא, הקידוד שלכם לא שגוי<p><p>)  

PHP / צבע אקראי

שלישי, 8 בינואר, 2008 מאת ailaG

זה לא קוד מקורי מדי, אבל אם אפשר לחסוך לכם עבודה למה לא.

במערכת ניהול תוכן שלי, שהממשק בה די פשוט ולא צבעוני בעליל, אם המשתמש שמר פרטים חדשים הוא מקבל הודעת אישור במסך הבא. לא מקבל את מספר השינויים (למי יש כוח לספור אותם?) אלא רק איזה <p class=’sysMsg'>השינויים נשמרו.</p>
מבחינת שימושיות, אפילו לי לא נוח כשאני שומרת כל פעם שינוי אחר - הריבוע "השינויים נשמרו" נשאר זהה.. זה נראה כאילו סתם עלה אותו מסך, ולא באמת התבצע שינוי במערכת.

אז נעשה שכל פעם הצבע של הריבוע ישתנה.. ממילא זו לא המערכת הכי אסתטית :-)

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

CSS:
.sysMsg { border: 3px solid red; }

PHP:
srand(time());

# for ANY random color:
print '<p class="sysMsg" style="border-color: #' . str_pad(dechex((rand()*rand())%(pow(16,6))),6,'0').';">השינויים נשמרו.</p>';

# for stuff that isn't too white, say, maximum 0xDD (**) for each value of R, G, B
$ceil = 34+34*pow(16,1)+34*pow(16,2);
print '<p class="sysMsg" style="border-color: #' . str_pad(dechex((rand()*rand())%(pow(2,24)-$ceil)),6,'0').';">השינויים נשמרו.</p>';

מה עשינו פה?

קודם כל, שינינו רק את צבע ה BORDER, דרסנו את זה של ה CSS. ככה התערבנו ב CSS בצורה המינימלית ביותר שאני רואה לפחות (אלא אם מתחילים לדחוף פונקציות רנדומליות ל CSS, וזה נראה לי כאב ראש)

שנית, לגבי המתמטיקה.

בדוגמה ללא ההגבלה לצבע לא לבן:

  • pow(2,24)‎ נותן 0x‎ 1,000,000 , כלומר אחד מעל לצבע הכי גבוה שיש לנו (זה בעצם pow(2,8) . pow(2,8) . pow(2,8)‎ (*) ). מכיוון ש rand() % $x נותן לנו מספרים מ 0 ועד ‎$x-1 זה נותן לנו באמת מספר רנדומלי בטווח הזה.
  • ‎rand() * rand()‎ - לא קראתי את המדריך, אבל פרקטית כשהשתמשתי באחד המספרים יצאו קטנים מדי. כנראה שהמספר הרנדומלי הרגיל לא גדול מספיק. ככה הגדלנו אותו. מי יודע, אולי צריך להכפיל שוב, אבל אני מעריכה שלא.
  • צריך לוודא שיוצא לנו מספר של 3 או 6 ספרות, אחרת דפדפנים יתקעו על זה.

בדוגמה עם ההגבלה:

  • רצינו שכל ערך יהיה עד ‎0xDD, כלומר רצינו להחסיר ‎0×22 מהגבול העליון של כל ערך. בדצימלי ‎0×22 = 34 .
  • כדי להוריד 22 מהספרה השלישית והרביעית, לדוגמה, נצטרך להכפיל את 22 ב 16 בחזקת 2.(***)

והאמת?

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

$sysMsgColor = '#';
foreach (array('r','g','b') as $c)
$sysMsgColor.= dechex(rand()%226+30);

אבל הפתרון הזה לא מעניין מספיק לטעמי בשביל פוסט.

——————–

(*) למי שלא מכיר,קוד לצבע בHTMLית מורכב משלושה מרכיבים: אדום, ירוק, כחול. לכל אחד מאלו צריך להזין ערך בין 0 ל-255, כלומר בין 0 ל- ‎2^8-1 . זה צריך להיות בהקסאדצימלי, ושלושת הערכים מופיעים זה אחרי זה. למשל צבע שהוא זה 13 אדום, 255 ירוק, 0 כחול ולכן ‎#0DFF00 .

(**) הסימון ‎0xWHATEVER פירושו שהערך (WHATEVER) מוצג בהקסא. ואז למשל A = 9+1 .

(***) מה זאת אומרת פנית לכוכביות? עדיף לחפש חומר על בסיסי ספירה.