DCSIMG
November 2007 - Posts - Dotmad (on .Net)

Dotmad (on .Net)

Just Another Web 5.0 Blog

Podcasts

Blogroll

November 2007 - Posts

למה חשוב להמשיך להשוות מחירים גם אחרי הקנייה

 

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

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

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

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

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

Light reading at the traffic light

 
In case you were wondering, the book in the picture is the bible.
Posted: Nov 30 2007, 08:03 AM by Dotmad | with no comments
תגים:

Five steps for creating a transparent user control

Guest post from Eyal Ron:
 
After much testing this is the correct formula for a truly transparent user control:
 
  1. Derive from Panel rather then UserControl.
  2.  

  3. Override the OnPaintBackground function:
  4.       protected override void OnPaintBackground(PaintEventArgs pevent)

          {

                //do nothing

          }

     

  5. Override the OnMove function:
  6.       protected override void OnMove(EventArgs e)

          {

                RecreateHandle();

          }

     

  7. Override the CreateParams property:
  8.       protected override CreateParams CreateParams

          {

                get

                {

                      CreateParams cp = base.CreateParams;

                      cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT

                      return cp;

                }

    }

     

  9. Override the OnPaint function:

      protected override void OnPaint(PaintEventArgs e)

      {

            Graphics g = e.Graphics;

 

//Do your drawing here

            .

            .

            .

     

            g.Dispose();

      }

Posted: Nov 29 2007, 01:27 PM by Dotmad | with 3 comment(s)
תגים:

"משתתף בכנס של מייקרוסופט נפגע בעינו מסוכריה שמרצה השליך אליו"

לא, זה לא באמת קרה, אבל כשאליעז טוביאס הסביר בהרצאה שנשא בDeveloper Academy 2 למה הוא לא רוצה לזרוק את הסוכריה לקהל - זה נשמע לי כמו כותרת נהדרת.

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

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

משם לארוחת צהריים, שכללה עמידה בתורים מאוד ארוכים ואז ישיבה בשמש עם האוכל (בהחלט ייתרון לעומת מקומות אחרים), והאוכל ללא ספק היה שיפור משמעותי לעומת הכנס בשנה שעברה, ואז להרצאה של יוחאי קרייתי על LINQ והשינויים בתחביר בגרסה 3.5.
באופן עקרוני יוחאי הדגים את הקיצורים וה"תרגילים" השונים שאפשר לעשות עם התוספות החדשות לשפה (כולל להפוך אותה לפחות קריאה ופחות מובנית עצמים), ואז בנה "לינק לאובייקטים" במשך חצי שעה (לא יכולתי שלא לחשוב על מנהל פיתוח שעכשיו יסרב לקנות את גרסה 2008 בטיעון שניתן לבנות אותה באופן עצמאי....). ממשתתף שדיברתי איתו נשמעה הטענה ש-60% מחומר ההרצאה היה זהה להרצאה של לאון לנגהייבן בבוקר.
באופן אישי אני חושב שלינק מוצג רוב הזמן בתור מעין Facebook - צעצוע נחמד שלא ברור מה הצורך האמיתי בו, וחבל שאין הרצאות שמתמקדות בייתרונות הייחודים של הטכנולוגייה, כולל איחוד מידע ממקורות שונים מהותית, כמו אובייקטים, מסדי נתונים וXML.

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

ההרצאה האחרונה ליום הייתה של אליעז טוביאס (זה מתחילת הפוסט) על שפות מודלים ויישומן בגרסת 2008. הוא הדגים כיצד ניתן לבנות דיאגרמות מורכבות המסוגלות להציג כללים מערכתיים בצורה חזותית (בדומה לclass diagram ודומיה) כולל הגדרת בלוקים ומחברים ע"י המשתמש. מדובר במערכת שהייתה חלקית בגרסת 2005 אבל דרשה עבודה רבה עם XML בניגוד לגרסה החדשה.

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

Another weekend is gone

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

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

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

זה קורה גם לכם?

Special consideration for the ThreadAbort exception

As a rule, I never want to see an unhandled exception crashing my application with the .Net error dialog and without logging the error. Therefor I always hook both the AppDomain.UnhandledException and the Application.ThreadException events to catch those exceptions, log them, and close the application gracefully.

Turns out I overlooked one small detail - the ThreadAbort exception, raised by a call to the Thread.Abort method. It's not a best practice to use it (you should let the thread shut down itself), but it may be used by a 3rd party code, so it can't be ignored.

However, since it's not an actual exception there is no logic in shutting down the application due to this exception.

Posted: Nov 22 2007, 08:26 AM by Dotmad | with no comments
תגים:

Acer's localized international warranty

I have been looking to buy a notebook computer for some time now.
Someone told me about a friend of his who bought a new Acer notebook during a trip to the US as a temporary replacement for his malfunctioning computer, and now he wants to sell this new notebook computer (as his old computer was fixed). It seems he got it in the US with an international warrenty.

So I called Acer's locale dealer (Newpan) to check this out.
Turns out the Acer management dictated that an Israely who buy a notebook in the US will not have warrenty in Israel.
In other words: If you buy a computer in the U.S., you get international warrenty as long as you use it inside the U.S.

 

Validation of a NumericUpDown control

The NumericUpDown control has a built-in validation:
  • Values smaller than the minimum are replaced by the minimum
  • Values larger than the maximum are replaced by the maximum

This may lead to a situation in which the user entered an invalid value and pressed the form's "OK" button, leading to saving of a value completely different than the one entered with no notification.
To prevent this, enter your own validation code into the validating event (using the "Text" property instead of "Value"), and if the validation fails set the e.Cancel argument to "true".

 

Posted: Nov 18 2007, 03:59 PM by Dotmad | with no comments
תגים:

From the people who brought you "Catastrophic Error"

Now comes another great error dialog:
"The Operation completed successfully" error dialog.
Posted: Nov 18 2007, 11:34 AM by Dotmad | with 1 comment(s)
תגים:

Create the ultimate business card

During the David Platt's lecture I received a business card from him.
The card's title is "Rolling Thunder computing" (his company), and his title is: "Supreme and Exalted, Dictator-for-life"
I think that's the best job title I have ever seen on a business card, and even better - it makes people pause and remember him because it's unusual.
Do you have special titles on your business cards?
Posted: Nov 17 2007, 09:21 PM by Dotmad | with 1 comment(s)
תגים:

Captcha failure when writing a comment

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

הפתרון:

  • ללחוץ על CTRL+N כדי לפתוח חלון חדש, שם מופיע המספר העדכני.
  • לסגור אותו, לחזור לחלון המקורי ולכתוב בו את המספר העדכני.

מחשב נייד של דל: בחירת דגם

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

מבחינת סדרות, יש לדל מספר סדרות הנמכרות בארץ:

  • Latitude - מחשבים קלים המיועדים למשתמשים עסקיים (ולכן יקרים יחסית).
  • Inspiron - דגם "מעמד הביניים", שוקל קרוב לשלושה קילו אבל מציע חומרה סבירה בהחלט.
  • Vostro - סדרת כניסה הנמכרת בעיקר בארה"ב (שם מדובר על אחריות מוגבלת לשנה בלבד) ובארץ כמעט שלא נמכרת.
  • Precision - מחשבי קצה עליון - חומרה חזקה במחירים גבוהים.

לאור הזמינות והמחירים, סדרות הVostro וה-Precision נפסלו מיידית, מה שהשאיר את שתי הסדרות האחרות.

הדגמים העדכניים של הLatitude, בינהם דגם ה-630 הפופולרי יקרים ב-20-30 אחוז יחסית לדגם מקביל מסדרת Inspiron, כשהתמורה העיקרית למחיר היא משקל קל יותר (קל יותר ב-25%). נמכרים בארץ גם דגמים ישנים יותר (דגם 610), שאותם אולי כדאי לשקול.

מבחינת הInspiron נראה שה"מציאה" היא דגם ה-6400 בעל מעבר AMD, שכבר אינו נמכר בארה"ב (הוחלף בדגם 1520 בעל מעבד אינטל, אבל יקר יותר), ושניתן למצוא ב-4000-4500 ש"ח עם שלוש שנות אחריות. ויש לו גם מסך 15.4 אינץ' שימושי.

דרוש מפתח ASP.NET

קיבלתי את המייל הנ"ל:

Hi,

I came across your blog with Google. Perhaps you can help me out with a request I have.

We are a startup with just 2 people at the moment but are slowly growing. The company is called Mobilgistix. We develop mobile/web applications based entirely on Microsoft technologies. The application we are currently building is very exciting. It is for healthcare and is designed to help millions of children around the world who are afflicted with autism. It will revolutionize the way children are treated. We have patents pending on the product.

I personally am located in Germany and my other partner is located in New York. (I am actually a Canadian). We are in the process of establishing our business in Israel. My partner is Jewish.

We are looking for a freelance developer for about 4-6 weeks with possible full time employment after this. Can I ask you for a favor? Could you provide me with some contacts of any friends or colleagues you know who do freelance development in Israel who are experienced with ASP.NET, SQL Server and Ajax? Would it also be possible if you could post the project on your blog? It would really help us a lot. While I realize that you normally don't do this, please consider that we are doing this to help countless sick children around the world (including Israel) and every little bit of help from others is very much appreciated. When our web site is completed (www.teachme.us.com) we will post a credit to your name for helping.

We hope to make Mobilgistix the "Google" of mobile/web applications in the fields of GPS and healthcare.

Thank you
Johann Blake
johannblake at gmail.com

Posted: Nov 17 2007, 05:28 PM by Dotmad | with 4 comment(s)
תגים:

דרושה עזרה - הוספת גלריית תמונות לאתר

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

כל האתרים הנ"ל מציעים היום אפשרות לשבץ אלבום באחת משתי דרכים:

  1. מצגת רצה של תמונות, המציגה תמונה בודדת מתחלפת
  2. שיבוץ כל האלבום בתוך הדף, אבל אז פחות מ-50% משטח הדף משמשים להצגת התמונות (אלא אם יש דרך שאיני מכיר כדי לשנות עיצוב של דף האלבום)

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

חשוב שהפתרון יהיה "קופסה שחורה" שניתן לשבץ בדף html רגיל - כלומר שלא ידרוש ממני התקנת קבצים נוספים (סקריפטים, CSS וכולי) ולא ידרוש ממני לרוץ בפלטפורמה יעודית (כמו wordpress או php).

מי מכיר פיתרון כזה?

בחירה במחשב נייד

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

  • זיכרון - מדובר במוצר זול והכרחי, לכן דרוש לפחות ג'יגה
  • כונן אופטי - קורא DVD (צורב אינו הכרחי)
  • מעבד - לא ממש קריטי ליישומים אותם אני מעוניין להריץ - מנסיון במחשב שולחני גם סלרון יספיק, אבל אני מעדיף מעבד עם HyperThreding
  • דיסק קשיח - גם 40GB יספיק לי
  • קישוריות - הכרחית תמיכת בBT ובWiFi
  • אחריות - שלוש שנים
  • מקלדת - ללא הkeypad, כדי שהמקשים יהיו גדולים יותר
  • מסך - כנראה 14 או 15 אינץ'
  • מערכת הפעלה - חלונות XP

למה ההתעקשות על XP?

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

אז עשיתי קצת מחקר והתחלתי לפסול חברות בשיטת האלימינציה:

  • טושיבה וHP - לא רק שהמחשבים מגיעים עם וויסטה, נאמר לי שבמידה וארצה להתקין XP לא יהיו לי דרייברים - איני מעוניין ברכישת חומרה שכובלת אותי מראש לתוכנה מסויימת.
  • LG - כנ"ל, וגם לרוב המקלדות יש keypad
  • IBM/Lenovo - דורשים מחיר שערורייתי (1090 ש"ח) על הארכת אחריות לשלוש שנים

נשארתי בעצם עם דל (Dell), שמתאימים לדרישות שלי - עכשיו אני מנסה לבחור את הדגם.

More Posts Next page »