January 2008 - Posts
הפעם אמשיך עם הסטטיסטיקה איתה התחלתי בשבוע שעבר. בתחום מערכות ההפעלה בישראל Windows שולטת ללא עוררין, כאשר למקינטוש ולינוקס והשאר לא מגיעות אפילו לאחוז מכלל המשתמשים.
באתר באנגלית הנתונים קצת שונים, ושם שיעור משתמשי ה-Mac עולה על 4%, ולינוקס ושות' עוד כאחוז וחצי.
Vista חגגה שנה לא מזמן, וזו הזדמנות טובה לברר עד כמה מערכת ההפעלה הזו תפסה בשוק.
אולי זו הסטיגמה שדבקה בה ככבדה יחסית, אולי הבאגים מול המחשבים הניידים ואולי העובדה שהפעלתה בצורה פיראטית היא סיפור מורכב למדיי, גרמה לכך שאחיזתה בשוק הבלתי מקצועי - שולית למדיי.
מעניין מי זה שגולש לאתרי אינטרנט היום עם Windows 95 או NT 4. לא שהאתר יעבוד אצלו בצורה נורמלית (IE 5.5 לכל היותר).
ניתן גם לראות כי אחוז משתמשי שרתי ה-TS - כלומר Windows Server 2003 הוא שולי יחסית, ושכל הלקוחות הרזים לא ממהרים כל כך מהר לתפוס תאוצה (אגב, באתר אחר אותו אני מפעיל, ראיתי כי ישנה עליה לא רעה בכלל באחוז שרתי ה-TS במוסדות חינוך, על חשבון החלפת כלל המחשבים).
רוב הסטטיסטיקות שמתפרסמות כוללות בעיקר אתרים המכוונים לאנשי מקצוע, מה שמעוות במידה רבה את הסטטיסטיקה. אני בחרתי דווקא אתר לא מקצועי - חדשות. IE עדיין במקום הראשון עם מספר יציב מאוד של כמעט 80 אחוז. FF מחרה-מחזיק אחריו עם כ-20% מהגולשים.
ספארי עדיין זניח, אבל עם עליה מטאורית ביחס לבדיקה האחרונה שלי לגביו.
עדכון (י' אייר - מאי 08): מישהו האיר את עיניי שהנתונים סותרים פוסט עדכני יותר, ובדקתי ומצאתי שצילומי המסך הגיעו בטעות מהאתר באנגלית במקום מזה העברי.
אני מעדיף להשאיר את הצילומים השגויים ולהוסיף הערה על מנת שמי שקישר אליו ברשת יוכל למצוא את זה שמדובר בטעות.
IE 7 עבר לראשונה את IE 6 גם בקרב גולשים שאינם מקצועיים, בין השאר כנראה בגלל הסרת הדרישה ל-WGA בעת התקנתו, כמו גם הזמן הרב יחסית שעבר מאז תחילת הפצתו.
IE 5.5 ומטה מתו כמעט רשמית, כשאת IE4 לא רואים בטבלה אפילו לקישוט. הגיע הזמן, לא ?

IE 6 עדיין תופס אחוז מכובד מדי של הגולשים ויקח זמן רב עד שיעלם לחלוטין, אם כי נראה שהרבה פחות מאשר לקח ל-IE5 לגרסאותיו שעד היום (!) עדיין ניתן לראות בטבלאות ולו לקישוט.
בתגובה למאמר הזה של טל שחר
בדרך כלל הכוונה ל-IE/FF, אבל אני לא מדבר על זה. אני מדבר למעשה בעיקר על התוכנות מסביב. אני למשל משתמש ב-Avant Browser לגלישה שוטפת. טאבים (עוד לפני IE7), קיצורי עכבר/מקלדת שהתמכרתי להם (לחיצה כפולה על לשונית לריענון, לחיצה כפולה על ריק לדף הבית ועוד רבים).
שימוש נוסף שלי בכל הסיפור הזה הוא הפונקציה "הפוך ללא זמין איתור באגים ב-Script (אחר)" שבאפשרויות אינטרנט בלוח בקרה. בעוד ש-IE האמיתי משמש לפיתוח ומציג שגיאות, Avant המשמש לגלישה שוטפת לא, וכך אני נמצע מצעקות על שגיאות Script באתרים שלא קשורים אליי ולא משלמים לי בשביל לתקן אותן.
אז במה אתם משתמשים?
English: Edit ID3 tag (MP3,WMA,WMV) on Server - ASP.net - VB.net /C#.
הדתיים שביננו מן הסתם מכירים את אתר האינטרנט של ישיבת בית אל. אחד המדורים הפופולאריים באתר זה הינו מדור הוידאו, והאודיו.
הקבצים עצמם מאוחסנים על שרת Windows Media שמאוחסן באחד מספקי האינטרנט הגדולים בארץ.
ביום בהיר אחד, ביקש צוות האתר הנ"ל גישה לשרת ב-TS, וזאת על מנת שיוכלו לשנות את ה-Meta Tags של הקבצים שלהם.
החלטנו לסרב לבקשה, וכך נשלחתי אחר כבוד למצוא פיתרון אחר.
ואכן, לאחר חיפוש קצר יחסית (נסיון עבר לא קטן עם Windows Media Player) גם מצאתי.
בשלב הראשון ביצעתי Interop לפקד ה-ActiveX של Windows Media Player. כן - זה שאתם מכירים מהמחשב או ליתר דיוק מאתרי האינטרנט השונים.
השלב הבא היה חקירת המאפיינים שלו. גיגול קצר ב-MSDN עשה את העבודה בקלות יחסית.
השלב הבא היה בניית מערך של מאפיינים. בלקוח הם ייוצגו על ידי תיבות טקסט (<input type=text>) ובשרת - על ידי המערך.
יכולתי כמובן להשקיע יותר ולהכין משהו חכם יותר, אבל למטרה שלי - טופס מטופש ולחצן שלח הספיק. גם טופס השרת שבו השתמשתי בשביל IsPostBack מיותר לחלוטין וניתן היה להשתמש במקומו בסתם בדיקה על request("file") שלא שווה ל- "".
עוד חמש דקות עבודה, והגעתי בערך לקוד הזה:
Imports WMPLib
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then
Dim oWMP As New WindowsMediaPlayer
oWMP.settings.autoStart = False ' לא לנגן את הקובץ בשרת, גם כי זה מיותר וגם כי לרוב זה בלתי אפשרי - אין שם כרטיס קול. חוסר שגיאות מיותרות
oWMP.URL = Request("file") ' שם הקובץ
Dim a() As String = {"Title", "Author", "Artist"} ' מערך של אפשרויות, שמיוצג גם בלקוח בשדות טקסט וגם בשרת- כמו שתראו להלן.
Dim i As Integer
For i = 0 To a.Length - 1 Step 1
' CurrentMedia - הקןבץ הנוכחי
' SetItemInfo - שינוי פרט מסויים. רשימה מלאה ב-MSDN
If Request(a(i)) <> "" Then oWMP.currentMedia.setItemInfo(a(i), Request(a(i))) ' די פשוט - אם השדה לא ריק, תעדכן את הקובץ בשדה הזה
Next
oWMP = Nothing ' לא סגור עד היום אם השורה הזו מועילה למשהו, אבל שיהיה
Response.Write("Done.")
End If
End Sub
End Class
מכוער, כבד, בזבזני - הכל נכון.
בסופו של דבר זה עובד והוריד מאיתנו את הדרישה על כל השלכותיה. אפשר גם להשתמש באובייקט כדי לקרוא את הפריטים כדי להכין רשימות השמעה למשל, או כל פריט אחר שיעלה על דעתכם.
לפיתרון הזה ישנה בעיה קשה אחת, וסיבותיה רבות:
לא ניתן לדעת אם הפעולה בוצעה
* אם אין הרשאות כתיבה לקבצים
* הפורמט של הקובץ לא תומך ב-Meta, למשל WAV
* CD Audio שהשתרבב בטעות
במקרים אלו ודומים הנתונים ישמרו בספריית המדיה של השרת, ושליפה שלהם תציג פריטים מעודכנים אולם בפועל לא יחול אף שינוי בקבצים, והאמת שגם לא נוכל לדעת את זה.
פיתרון אפשרי: בדיקת תאריך העדכון של הקובץ, והשוואתו לשניה או השתיים האחרונות.
כמובן, זה לא ממש מיועד לעבודה על קבצים של גולשים או משהו בהיקף נרחב. זה פשוט לא זה ויש לזה השלכות קשות על הביצועים, אבל לפרוייקטים מצומצמים על שרתי פיתוח למשל - זה עושה את העבודה, ומובנה (Windows server 2003 מגיע עם Media Player).
הישיבה מרוצה, הצוות שלנו מרוצה מכך שלא נוגעים לו בשרתים והכל שב על מקומו בשלום.
סוף שנה לועזית. בצה"ל יש מי שטורח לסכם את שנת העבודה ומבקש תוכניות לשנה הבאה, וכך אני מוצא את עצמי בחודש האחרון ממלא טבלאות על ימין ועל שמאל כשברור גם לי וגם לממונים עליי שאין שום תוכניות אמיתיות לעבוד לפיהן.
בלילה שבין שני לשלישי, במקרה, מצאתי את עצמי ער עד שעה מאוחרת וכך היום (שלישי - כ"ג טבת 1.1) מצאתי את עצמי עייף באופן יחסי. שאלותם של חיילים שתהו לאן הלכתי ב"סיליבסטר" גרמו לי להבין שבחצות התחלפה השנה הלועזית.
(אגב, ברור לי שאין קשר בין החוגגים לבין אותו אפיפיור נוצרי רצחני שמת במקרה בתאריך הנ"ל, אבל סתם צורם לי השם).
אבל הנה משהו חמוד שפורסם במדור הקריקטורה באתר שלנו, ואולי גם אתם תהנו :-)

______
ובקשר להבטחה שלי מהפעם שעברה על שימושים של Windows Media Player בשרת - גם זה יגיע. רק לאחרונה מצאתי את הקבצים וצריך להכין מהם מאמר ראוי לשמו ע"מ שיהיה קצת ברור מה הולך שם.
בינתיים אסתפק ואומר שהשתמשתי בו ע"מ לעדכן פריטי מדיה ללא הורדתם למחשבי הצוות והעלאה מחדש.