ארכיון פוסטים מהקטגוריה "מחשבים"

שחזור מידע מדיסק דינמי

יום רביעי, 24 בספטמבר, 2008
אז כמו שכתבתי קודם, הלך לי לוח האם, והטכנאי שם לי איזה לוח מעפן. אבל פה הסיפור רק התחיל. כשהחזרתי את המחשב הביתה, כמו תמיד, השארתי אותו דלוק 24/7. תוך כמה ימים הוא התחיל ליפול לי במסכים כחולים, דבר שעוד לא קרה לי קודם (לא שה-XP אף פעם לא קרס לי, אבל בפעמים הבודדות שזה קרה הוא עשה איתחול אוטומטי). זאת למרות שהוא מוגדר עדיין לבצע איתחול אוטומטי בזמן קריסה, ולא להציג מסך כחול. לאחר זמן קצר שמתי לב שבעצם הבעיה היא שכל מני פרוססים נופלים לי בצורה רנדומלית. לפעמים זו תוכנה שאני עובד איתה, לפעמים זה משהו שרץ ברקע כמו הפיירוול, ולפעמים זו חתיכה של ה-windows, ואז הוא נופל.

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

לגבי לוח האם, חיפשתי קצת, ובסוף מצאתי משהו סביר.הבעיה היא שמדובר במחשב די ישן. הייתי צריך לוח אם שיתמוך בכרטיס מסך בטכנולוגיית AGP, בזיכרון DDR 333, והדובדבן שבקצפת – מעבד בשקע 478, שכבר לא מיוצר כיום. חיפוש ב-zap וכמה חנויות שאני מכיר העלה את Foxconn 661MXPlus, לוח אם שתומך בכל אלה, אבל הולך ונעלם מהשוק, באופן טבעי.

בקבוצות דיון הציעו לי שתי תוכנות חינמיות לבדיקת הדיסק, שתיהן לא מצאו את ה-MBR. תוכנה שלישית (R-Studio) שהציעו לי עולה קצת כסף, אבל נאמר שמצאתי לנושא הכספי פתרון. בניגוד לשתיים הקודמות, האחת הזאת הצליחה לקרוא את הדיסק ולהוציא ממנו קבצים. למרבה הצער, היא הצליחה יותר עם קבצי טקסט, וגם לא תמיד. קבצים בינאריים מכל הסוגים – אודיו, וידאו, תוכנות, קבצי zip, וכו', כולם ללא יוצא מן הכלל לא שוחזרו בצורה תקינה, למעט שתי תמונות BMP שנראות כמו צללית מטושטשת של התמונה המקורית. קבצי טקסט, כולל HTML ופורמטים טקסטואליים אחרים, ברובם שוחזרו, למעט מספר קבצים ששחזורם נכשל, ונוצר קובץ מלא בג'יבריש במקומם. חלק מקבצי הטקסט העבריים הומרו לאותיות אנגליות, לפי המפתח הבא:

a ב
b ג
c ד
d ה
e ו
f ז
g ח/ן
h ט
i י
j ך
k כ
l ל
m ם
n מ
o ן/ח
p נ
q ס
r ע
s ף
t פ
u ץ
v צ
w ק
x ר
y ש
z ת
` א

למען האמת, עד שהעתקתי את הטבלה לכאן לפי סדר האלף בית לא שמתי לב שיש פה כניראה המרה של הסטה של קוד ה-ASCII של האותיות. שימו לב שהאותיות o ו-g עשויות להיות מומרות לחי"ת או נו"ן סופית, בצורה לא צפויה. כמו כן האות אל"ף עשויה להיות מומרת לתו האפוסטרוף, הנמצא משמאל למקש 1 בפינה השמאלית עליונה של המקלדת.

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

אז שיחזרתי מה שהצלחתי לשחזר, ועכשיו ניסיתי לאפס את הדיסק כדי להחזיר אליו את מה ששיחזרתי. פתחתי את Disk Management של Windows (אם אתם לא יודעים מה זה, עדיף שלא תגעו בזה) וראיתי שהדיסק נמצא במצב Unknown, Not Initialized, כמו שהוא היה מאז שחזר מהתיקון. ניסיון לבצע Initialize מתפריט ההקשר של הדיסק לא הצליח – הדיסק נשאר במריו. גם מחיקת ה-MBR בעזרת diskpart לא עזר. גם low level format בעזרת תוכנה שהורדתי מאתר היצרן, היטאצ'י אם אתם רוצים לדעת, לא שכנע את windows לאתחל את הדיסק. די מוזר, מכיוון שכל הפרמטרים מראים שהדיסק תקין מבחינה מכנית וחשמלית. כאמור, תוכנת השחזור הצליחה לקרוא ממנו, התוכנה של היטאצ'י גם מראה שהוא תקין בבדיקות הדיאגנוזה שלה, וגם windows רואה את הדיסק, גם אם לא מסכים להשתמש בו.

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

אני מקווה שבסוף הסיפור הזה יהיה לי שוב מחשב עובד.

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

הבלוג השני שלי

יום חמישי, 24 ביולי, 2008
לפני כחודש הוזמנתי במפתיע אל משרדי מיקרוסופט ישראל לשיחה עם עמית כהן, שאחראי על קשר עם קהילת הקוד הפתוח בישראל. יום לאחר מכן נשרף לי המחשב, ולא התפניתי לכתוב על זה כל כך. בשיחה הוא תיאר בפני את המאמצים של מיקרוסופט למשוך מפתחי קוד פתוח לכתוב גם לפלטפורמות של מיקרוסופט, החל מ-Windows ועד SQL Server ואחרים. זאת גם על ידי תחרויות, תמיכה בפרוייקטים, ושחרור יותר מידע על ה-API שלהם.
בסוף השיחה הוא הציע לי לפתוח בלוג באתר הבלוגים של מיקרוסופט ישראל, ולכתוב שם על קוד פתוח. אתמול כתבתי את הפוסט הראשון.
מתקרב אל הצד האפל? לא אכחיש.

microsoft + opensource = ?

יום חמישי, 10 ביולי, 2008

So today I got an email from SourceForge, asking me to vote in their Community Choice Award for best open source software in various categories. Apart from the usual Best Project for the Enterprise or Best Project for Multimedia, they also have categories for Most Likely to Be Accused of Patent Violation (ReactOS is my choice here) or Most Likely to Get Users Sued (the various file sharing programs are the immidiate suspects here).

I voted in categories that had software I had some experience with, which was about half the categories. Anyway, I was surprised to see that the primary sponsor for this whole thing is no other than Microsoft. Yes, the one you are least likely to think of when it comes to open source. Their logo was linked to http://www.microsoft.com/opensource/, which contains the words "open source" more times than I could think possible on one page for a microsoft.com site.

Which reminds me, about two weeks ago, just before my machine crashed , I had a meeting with Amit Cohen from Microsoft-Israel. He invited me, as an open source developer and advocate, to open a blog at blogs.microsoft.co.il. So now that I have some time again I registered myself there, and if it hadn't needed approval, this post might have been posted there.

עוף ליין

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

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

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

אז סוף סוף אחרי שבוע היה לי שוב מחשב. כבר בחנות שמנו לב שהדיסק השני שלי, עם ה-My Documents והרבה קבצים, חלקם בני כמעט עשר שנים, לא מזוהה. ב-Disk Management רואים אותו, אבל בתור Unknown, Not Initialized. ניסינו לעשות Initialize ללא תגובה. הוא העלה את התיאוריה שגם הדיסק נדפק, אני מקווה שזאת רק בעיית קונפיגורציה. מדובר במה שקוראים ב-windows דיסק דינמי, ועקרונית צריך לעשות לו Import foreign disk, אבל כאשר הוא במצב שהוא נמצא, האפשרות הזאת לא זמינה. אם מישהו מכיר פתרון, אשמח לשמוע.

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

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

בלב המאפליה

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

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

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

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

מיקרוסופט חושפת את הקוד של דוט נט

יום שני, 22 באוקטובר, 2007
זה כבר חדשות ישנות, אבל בתחילת אוקטובר הכריזה מיקרוסופט, שהיא תחשוף חלקים ניכרים מקוד המקור של .NET Framework (וכניראה למעשה רוב המערכת הזאת) תחת רשיון MS Reference License, שאינו רשיון קוד פתוח (וכאן אני ראיתי זאת לראשונה). אני גיליתי את זה במקרה לפני כמה ימים, ודי נדהמתי. אמנם מיקרוסופט כבר שיחררה בעבר את הקוד של כמה תוכנות זניחות, כמו Wix ליצירת קבצי התקנה, אבל סביבת הפיתוח של .NET זה משהו בסדר גודל אחר. הפעם כאמור היא לא משחררת את הקוד, רק מאפשרת למפתחים לראות אותו ולהיכנס לתוכו בזמן ניפוי הבאגים, אבל זה עדיין צעד גדול קדימה. גם סאן עשתה את זה בעבר עם ג'אווה, והצעד הבא שלה היה לשחרר את ג'אווה תחת ה-GPL. יהיה מעניין אם גם מיקרוסופט תעשה זאת, מכיוון שבסופו של דבר הם לא מרוויחים מה-framework, אלא ממכירת רשיונות לסביבת הפיתוח Visual Studio.

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

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

User friendliness and open source

יום שישי, 31 באוגוסט, 2007

In the past, one of the problems of open-source software was it's lack of user friendly interfaces. Often it had combersome dialogs, with too many options to understand, or technical terms that common people don't understand, or a command line interface alone, and other such problems. Furtunaly, this is changing. Today Firefox, Ubuntu linux and OpenOffice are praised for their easy to use designs. But this is not always the case.

I recently started a new job at a software company. I was surprised that they didn't use any software configuration management system, or a bug tracker. After some investigation, I suggested using Subversion (AKA SVN) and Bugzilla. Bugzilla requires MySQL and Apache, which were installed quite easily as a Windows service automatically.

SVN, on the other hand, gave my more trouble. Even today, SVN's official distribution is in C source code, with compiled binaries provided by third party volunteers. Their download page has a few links to Windows installers, prepared by different people, which is a problem by itself – how would I know which to use? I decided to install the latest Apache, version 2.2.4. So I downloaded and installed it as a service, which was pretty easy. Then I came about to install SVN. I clicked the first link to download the 2.2 compatible version, and was faced with a list of options, with very short and difficult to understand explanations as to what they are for. Eventually I decided to download the svn-python-1.4.5.win32-py2.5.exe. The link was broken (yesterday, and still is today). The same was with the -py2.4.exe link. So I went back, read some more, and clicked the second download option, where I found svn-1.4.5-setup.exe. The only problem, is that this version supports Apache 2.0 and not 2.2, so I couldn't use the mod_dav_svn even if I wanted to (unless I downgrade Apache).

The installation itself was quite easy, but there was no option to configure some basic parameters like I could in MySQL or Apache, or install as a service. Apache comes with an option to set it as a service even after you install it, but with SVN, you would have to use Windows' sc.exe utility, a multy-parameters command line program that refused to accept svn for some reason. I also didn't have an option to set the repository's location, and had to set it as a parameter to the svnserve executable. In short, SVN still has a lot to learn in the field of making your program usable.

הצבא הדיגיטלי

יום ראשון, 26 באוגוסט, 2007

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

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

ועוד בעיה אחת, שכבר ראינו בלבנון: מה עושים כשנגמרת הסוללה?

Geeks

יום שני, 13 באוגוסט, 2007

Slashdot reported about a talk by Bjarne Stoustrup, the inventor of C++, about the next generation of the programming language. The following are three comments by Slashdot readers:

(Score:5, Insightful)
by cosmocain (1060326) on Monday August 13, @07:06AM (#20210265)
…transcript, anyone? i hate watching or listening to vids at work.

Re:uh…

(Score:5, Funny)

by LiquidCoooled (634315) on Monday August 13, @07:11AM (#20210299)
Good afternoon everybody, I would like to start by including iostream.h into the discussion.

After this we can get onto the main proceedings which might or might not return anything.

We move to the future by emitting a string of "Hello world" before returning zero.

This is the end of the discussion I hope it was informative.

Re:uh…

(Score:5, Insightful)

by Pseudonym (62607) <ajb@spamcop.net> on Monday August 13, @07:45AM (#20210479)
Good afternoon everybody, I would like to start by including iostream.h into the discussion.

That ruined the joke for me. Like Stroustrup would ever include the legacy non-namespaced header!

mozip.NET 2.0 released

יום שבת, 4 באוגוסט, 2007

i haven't written about mozip.NET, my pet software project, in quite a while, even when i had what to write about. mozip.NET is a small program i wrote to help with the localization of SeaMonkey, the community continuation of Mozilla Suite. mozip.NET allows localizers build a localized installer of SeaMonkey for windows, without compiling the whole thing.

Version 2.0 is based on version 2.0 of the .NET Framework, and utilizes some of it's new controls. this makes it look very nice, with 3D toolbar and an Office 2003 style menus. in addition, it gives you an opportunity to give a file you extract from the installer a new name, if a file by the same name already exists at the target folder. it also remembers your last extract folder between sessions, and the last window size (this last feature actually gave me some trouble, and was eventually introduced in a minor update, i numbered 2.0.1). other than that, there are the features already present in previous versions, of adding files, testing the integrity, and deleting files.

If you find this interesting, you can download it here.

I would have attached an image here, but for some reason Yahoo! insists on jpeg images. I guess you'll have to download it to see it then…