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

Dotmad (on .Net)

Just Another Web 5.0 Blog

Podcasts

Blogroll

August 2007 - Posts

Over 50 million reasons for using Asp.Net

I have read Oren's post, in which he writes (again) why he thinks Asp.Net is a bad web platform.
I have been reading about various tools like Ruby or MonoRail and people promoting over using simple Asp.Net.
Coincidentally, I have recently listen to an Arcast episode with Markus Frind, the founder of http://plentyoffish.com/.

This dude is the only employee in the "company" (acting as the developer, architect, CEO, janitor, etc), running the web site on two servers from his home. He wrote the site as a programming exercise.

And why is he using Asp.Net?
"Well I use ASP.NET now because it’s trivial and easy and gets the job done. There is just so much to learn out there and every six months it completely changes. So I stuck with what I knew, used it a lot, and I’ve gotten really, really good at it. "

It's beyond me why Microsoft doesn't make him their spokesperson for their platform.

Effect of the CPU on an application

I am working on a C4I application using GIS engine, and since the engine uses the CPU for it's calculations (not many GIS systems use the capabilities of graphics cards so far) the effect of the processor is critical in terms of performance.
We recently ran a test of the same system and scenario, once with an old processor, and once with a new, faster (both in clock speed and FSB), HyperThreading capable processor.

According to some benchmarks, the new processor performed twice better than the old one, and so did the application in the tests I ran - the processor load with the new processor was 50% of the load with the old one, meaning 100% improvement, the same as the processor showed in the benchmarks.
So if your system's configuration's specification was set up long before the final release, consider upgrading it - replacing a CPU may save you month of development optimizing performance.

כמה זיכרון תופסת האפליקציה שלך?

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

העמודה הקרוייה "Mem Usage" אינה מייצגת את מלוא צריכת הזיכרון של האפליקציה, אלא את הזיכרון המוקצה לה ברגע נתון, ויכול להשתנות בהתאם לשימוש במשאבי זיכרון משותפים עם אפליקציות אחרות.
דוגמה פשוטה תוכלו לראות אם תיצרו פרוייקט חדש מסוג Windows application עם טופס בודד, תריצו אותו ותבצעו Minimize. רואים איך הערך משתנה?

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

Page faults using GDI+

I'm working on a C4I application using GIS maps.
The map is refreshed (redrawn) by calling the Control.Invalidate() method.
What got my attention was seeing few thousands of page faults on each refresh, resulting in CPU usage of 3-6%.

After some research, this is the response I got from Hans Passant in the MSDN forums:
"GDI+ bitmaps use memory mapped files. The bitmap data gets loaded into memory through page faults."

Now if I only could figure out why in older versions of the application there were no page faults, especially if he is right and this is the normal mode of operation.
Posted: Aug 26 2007, 08:02 PM by Dotmad | with 1 comment(s)
תגים:

"אמא, אני רוצה להיות מגב כשאגדל"

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

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

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

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

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

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

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

אף פעם לא מאוחר להשלים תואר

בשורה לכל הגוררים תואר שנים ארוכות:

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

Posted: Aug 24 2007, 07:27 PM by Dotmad | with no comments
תגים:

79% Optimus Prime

Now I need to deal with the fact wife is 74% Megatron.....

Posted: Aug 24 2007, 08:59 AM by Dotmad | with no comments
תגים:

Adding a performance counter

Some times you need to measure the value of something while running the application.
Using a logger is not comfortable, since you don't want to monitor gazillion rows of values.
The solution: create a performance counter and use Perfmon.exe to view it while the application is running.

Here is a code for creating a counter:

private PerformanceCounter CreatePerformanceCounter()
{        
    string categoryName = "My Category";

    if ( !PerformanceCounterCategory.Exists(categoryName) ) 
    {
        CounterCreationDataCollection CCDC = new CounterCreationDataCollection();
            
        // Add the counter.
        CounterCreationData myCounter = new CounterCreationData();
        myCounter.CounterType = PerformanceCounterType.NumberOfItems64;
        myCounter.CounterName = "My Counter";
        CCDC.Add(myCounter);

        // Create the category.
        PerformanceCounterCategory.Create("categoryName", 
"This is my cateogory", CCDC); } PerformanceCounter result =
new PerformanceCounter(categoryName, "My Counter", false); }

בכי טוב

 
Technorati Profile

LinkedIn and other social networks

I answered Ayalet's survey on social networks by stating the web 2.0 site in which I center my activity is still LinkedIn.

Ayelet seemed to by surprised by the fact LinkedIn is still going strong, especially versus FaceBook.

While Facebook seems to be the most dominant among general-purpose social networking sites, LinkedIn still attracts IT professionals, since it has a specific focus:

  • It's your online resume
  • It can help find information on potential employer
  • It can help employer find references on candidates

While in other sites I may add various friends and people I met to my contacts, in LinkedIn I only add people I actually worked with, and I keep my profile very neat and ordered to serve as a professional presentation page.

In addition to that, LinkedIn may be soon competing with Facebook.

If social networks sites are trees, LinkedIn is a Bonsai tree, and there is always room for those.

 

Free and cheap WiFi in Berlin

It has been more than a month since I got back from Berlin, so I need to backup my memory of hot spots in there: Wifi is actually pretty expansive in Berlin - there are many hot spots, but to surf you need to either pay directly to an ISP, or use your...

WCF concurrency, throughput and throttling

Michele Leroux Bustamante (aka "Das Blonde") wrote a great post on WCF callback scenarios:Callback Sync Read More...
Posted: Aug 21 2007, 12:41 AM by Dotmad.net
תגים:

Free TFS posters and book

You can download useful TFS posters here. And here you can find the book: "patterns & practices Team Development with Visual Studio Team Foundation Server". Read More...
Posted: Aug 21 2007, 12:24 AM by Dotmad.net
תגים:

סקריפט לחיפוש טקסט עברי באתר

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

<input onclick="f=prompt('Please enter text','User prompt');
window.open('http://www.google.com/search?hl=en&q=site:blogs.microsoft.co.il+'+encodeURIComponent(f))"

value="Search text" type="button"/>

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

 
More Posts Next page »