Archive for 2009/03

ایران و ترکیب احتمالی IBM و SUN

۱۳۸۸/۰۱/۰۴ ۱۶:۲۹ Salar Khalilzadeh https://plus.google.com/105397214522932500988 منتشر شده در تاریخ : ۱۳۸۸/۰۱/۰۴ دسته بندی : ، ، ، 5

IBM Sun

اگه در جریان خبرهای دنیای IT باشید حتما شنیده اید که IBM بر سر میز مذاکره خرید Sun به مبلغ 6.5 بـیلیـون دلار آمریکا هست.
این خرید در صورتی که اتفاق بیفته یکی از رویداد بسیار مهم سالهای اخیر خواهد بود چرا که Sun سازنده Java و پیشتاز تکنولوژی های وابسته در 15 سال گذشته هست.

قبل از اینکه به مقوله ایران بپردازم به بررسی تاثیرات این ترکیب بر محصولات این دو غول می پردازم.

Java
جاوا پرکاربردترین زبان برنامه نویسی و صد البته مهمترین تکنولوژی در دست این دو شرکت است. همانطور که شاید بدانید هردو شرکت IBM و SUN دارای کتابخانه زمان اجرای جاوا (JVM) هستند.
نتیجه این ترکیب می تواند open source تر شدن کتابخانه های Sun به عنوان اصلی ترین سازنده کتابخانه های جاوا بشود. چرا که sun با داشتن لیسانس opensource مخصوص به خود محدودیت هایی را ایجاد کرده است.
آنچه که از وابستگی محصولات IBM به جاوا و تاریخچه این شرکت نتیجه می شه اینه که این شرکت به هیچ وجه کنترل و توسعه جاوا را به شرکت زیر مجموعه احتمالی sun خود نخواهد داد و سعی خواهد کرد محصولی قوی تر و ترکیبی از این دو کتابخانه بدست بیاورد.

ابزارهای Java
IBM قبلا محیط توسعه مخصوص خود را برای Java داشت که البته به Eclipse انتقال یافت. هم اکنون نیز این شرکت به شدت از Eclipse همایت می کند. در آن طرف Netbeans قرار دارد که به شدت توسط Sun توسعه داده می شود.
تنیجه این ترکیب می تونه به سیاست های بعدی شرکت ترکیب شده IBM/Sun بستگی داشته باشه که پشتیبانی حرفه ای از یکی از این محصولات را به مرور زمان حذف کند. به هر حال در طولانی مدت این دو محصول نخواهند توانست با هم کنار بیایند و یکی باید حذف شود.

بانک اطلاعاتی

MySQL محصول فعلی Sun رو می توان گل سرسبد شرکت ترکیب شده دانست. دلیل آن هم به خاطر تعداد کاربران و همچنین متخصصین آن کاملا مشخص است.
در آن طرف DB2 محصول IBM قرار دارد که برای پایگاه داده های بزرگ و سرور ها طراحی شده است.
از اونجایی که MySql محدودیت کاری برای کاربران سطح پایین تا سرور های بزرگ را ندارد که این حیطه گسترده برای DB2 وجود ندارد، مطمئنا شرکت ترکیب شده از MySql برای جذب کاربران بیشتر و سپس سوق دادن آنها به سمت DB2 استفاده خواهد.
به هر حال شاید همکاری و تعامل هرچه بیشتر این دو پایگاه داده خواهیم بود.

سیستم عامل

AIX سیستم عامل بر مبنای Unix شرکت IBM در مقابل Solaris شرکت Sun که آن هم بر مبنای Unix است حرفی برای گفت ندارد. این احتمال قوی است که کاربران AIX به یک نسخه ویژه از Solaris انتقال داده بشوند.
از آنجایی که Sun هیچ نسخه ای از سیستم عامل مبتنی بر Linux ندارد این احتمال بعید به نظر نمی رسد که آبی بزرگ هم از ویژگی Solaris به سیستم عامل لینوکس خود اضافه کند.

در حال حاضر هر دو شرکت به شدت در حال تلاش در پیشرفت در محاسبات ابری (cloud-computing) هستند. آنچه که مسلم است ترکیب تیم تحقیقات این دو شرکت و پیشرفت سریع تر شرکت ترکیب شده در این زمینه است.

و سرانجام از لحاظ سخت افزار از آنجایی که IBM ارادت خاصی به پردازنده Power خود دارد به احتمال قوی شاهد توقف خط تولید پزدازنده های SPARC و اضافه شده تیم آن به تیم پردازنده Power و PowerPC باشیم.

و اما ایران

حدس من در مورد ایران، تغییرات ناچیز هست. متاسفانه منبع خاصی برای تایین تعداد کاربران زبانهای برنامه نویسی وجود ندارد و البته آماری هم تهیه نمی شود.
اما آنچه از فروم ها و سایتهای برنامه نویسی ایرانی هویدا است تعداد کاربران جاوا در ایران بسیار کم. اگر رده بندی من را بخواهید خواهم گفت که جاوا بعد از C# ، VB ، C و احتمالا Delphi در رده بعدی قرار خواهد گرفت.
دلایل این کم احمیتی فعلا در بحث ما جایی ندارد ولی تا اینقدر بدانید که رایگان بودن محصولات ماکروسافت در ایران دلیل اصلی این مسئله است.

تغییرات حاصله از ترکیب این دو شرکت بیشتر در زمینه بانک اطلاعاتی و ابزارهای Java در ایران مشاهده خواهد شد.
هر دو محیط توسعه Netbeans و  Eclipse با توجه به نظر سنجی هایی که در فروم برنامه نویس و سایتی دیگر انجام شده تقریبا تعداد کاربر یکسانی دارند. پس می توان نتیجه گرفت که با محو یا حذف تدریجی یکی از این دو محصول شاهد مهاجرت کاربران به محیط دیگری باشیم که اتفاق مهمی نخواهد بود.

در مورد بانک اطلاعاتی همانطور که در بالا ذکر کردم MySql همچنان با قدرت به کار خود ادامه خواهد داد. با توجه به اینکه MySql در میان Php کاران و Linux کراران طرفدار بسیاری دارد، پس نگرانی در این زمینه وجود نخواهد داشت.
نتیجه ای که البته بعید هم به نظر نمی رسد حرکت عده ای به سمت DB2 خواهد بود تا از ویژگی های این پایگاه داده هم مطلع بشوند. با توجه به اینکه یک نسخه رایگان و کوچک از این پایگاه داده هم عرضه می شود.

نتیجه
نتیجه ای که در مورد ایران می توان گرفت این است در کوتاه مدت این ترکیب تاثیر خاصی در صنعت IT ایران نخواهد داشت.
در طولانی مدت و همراه با وارد شدن ایران به سازمان تجارت جهانی است که مشکلات اساسی صنعت IT رو خواهد شد و در این زمان است که حرکت شدید به سمت Java را شاهد خواهیم بود. در آن زمان است که باید شاهد سیاستهای این شرکت ترکیب شده در قبال ایران باشیم.

این ترکیب بر دنیای برنامه نویسان جهان بسیار تاثیر گذار خواهد بود. بزرگترین اثر گرفته از این ترکیب Oracle خواهد بود. چراکه بسیاری از برنامه ها و سیستم های مدیریت پایگاه خود را بر پایه Java پایه نهاده و صد البته چشم به نتیجه این مذاکرات دوخته است.

موفق باشید.

منابع:

http://www.sdtimes.com/link/33356
http://www.infoworld.com
http://www.multicoreinfo.com
http://osnews.com

مطالب مرتبط:

دریافت نسخه جدید Netbeans 6.5 به همراه JDK

 

سال نو مبارک

۱۳۸۷/۱۲/۲۹ ۱۳:۲۲ Salar Khalilzadeh https://plus.google.com/105397214522932500988 منتشر شده در تاریخ : ۱۳۸۷/۱۲/۲۹ دسته بندی : 5

این پست آخرین پست من در سال 87 هست. پیشاپیش سال نو رو به همه شما عزیزان تبریک می گم. امیدوارم که همیشه خوش و خرم باشید. اگه فرصت شد تو تعطیلات می نویسم.

سال نو مبارک

در ضمن امسال سال گاو است. انشااله که با کم شدن سایه شوم از کشور گوشه ای از خورشید امید رو ببینیم و گاو ما هم بتونه کمی شیر بده.

این هم از گاو ما

 

Lesley Roy

۱۳۸۷/۱۲/۲۵ ۱۲:۵۷ Salar Khalilzadeh https://plus.google.com/105397214522932500988 منتشر شده در تاریخ : ۱۳۸۷/۱۲/۲۵ دسته بندی : ، ، 4

Lesley Roy یک خواننده های جوان و البته همسن من هست که در سال میلادی قبل یعنی 2008 اولین البوم خودش رو روانه بازار کرد. این خواننده ایرلندی الاصل در سبک Power Pop خوانندگی می کنه که البته به نظر خودم چند تا آهنگ اول و اصلی اون در سبک های PopRock و Rockهستند.

به هر حال سبک و صدای ایشون که تازه باهاش آشنا شدم خیلی به مزاق من خوش اومد و خواستم شما هم با این خواننده جوان آشنا بشین:

Lesley Roy Unbeautiful

در اینجا لیست آهنگ های آلبوم Unbeautiful رو مشاهده می کنید:


  1. "I'm Gone, I'm Going"

  2. "Here for You Now"

  3. "Slow Goodbye"

  4. "Unbeautiful"

  5. "Psycho Bitch"

  6. "When I Look at You"

  7. "Thinking Out Loud"

  8. "Dead But Breathing"

  9. "Misfit"

  10. "Make It Back"

  11. "Crushed"

  12. "Come to Your Senses"

  13. "Come Back"

  14. "I Don't Want to Want You" Bonus Track



در این میان آهنگ ها Slow Goodbye وUnbeautiful و I'm Gone, I'm Going و Psycho Bitch زیبا بودند و لذت بردیم.

لینک دانلود این آلبوم از تورنت

  • مطالب مرتبط


آلبوم جدید Metallica با نام Death Magnetic

 

Threadها در جاوا اسکریپت

۱۳۸۷/۱۲/۲۳ ۱۵:۴۹ Salar Khalilzadeh https://plus.google.com/105397214522932500988 منتشر شده در تاریخ : ۱۳۸۷/۱۲/۲۳ دسته بندی : ، ، ، ، 1

WebWorker

در جاوا اسکریپت نیز همانند سایر زبانها انجام برخی محاسبات نیاز به زمان زیادی دارد.

همانند کد زیر که رشته فیبوناچی را محاسبه می کند:
function fibonacci(n) {
if(n == 0)
return 0;
if(n == 1)
return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}

در صورتی که این کد را در صفحه وب خود برای محاسبه عدد 35 ام استفاده کنید، در اکثر مرورگر ها صفحه قفل خواهد شد و اگر خوش شانس باشید مرورگر پس از مدتی با پیغامی ادامه عملیات را خواهد پرسید.

برای رفع چنین مشکلاتی در نسخه 3.1 فایرفاکس استاندارد جدیدی با نام web workers و یا به فارسی "کارگر وب" پیاده سازی شده است. این کارگر وب یکی از استاندارد های نهایی نشده کارگزار استانداردهای وب یا WhatWG است که در حال تکمیل موارد آن هستند.
کار اصلی کارگر وب انجام عملیات و دستورات طولانی در یک thread (به فارسی رشته) جداگانه است تا صفحه اصلی بتواند به طور همزمان و بدون قفل شدن به کار خود ادامه بدهد.
به طبع جدا بودن threadهای اصلی و کارگر وب سبب ایجاد تعدادی محدودیت می شود که برای جلوگیری از مشکلات هستند. یک محدودیت اساسی ارتباط داشتن دو thread با هم از طریق پیغام ها است.
همچنین امکان دسترسی و دستکاری اشیاء DOM وجود ندارد (منظور از DOM سرنام عبارت Dodcument Object Model که همان عناصر صفحه است).
و البته امکان استفاده از AJAX یا شیئ XMLHttpRequest وجود دارد.

  • تعدادی از ویژگیهای Web Workers


دسترسی به شیئ navigator در درون کارگر وب که امکان شناسایی مرورگر را می دهد. ویژگی های appName، appVersion، platform و userAgent قابل استفاده هستند.
امکان خاتمه دادن کار کارگر وب با استفاده از دستور terminate .
اسکریپتهای کارگر وب باید در یک فایل جداگانه و در مسیر یکسان از محل اجرای صفحه قرار داشته باشند.
امکان کنترل خطاهای رخ داده در درون کارگر وب با استفاده از رویداد onerror . در درون این رویداد با استفاده از ویژگی preventDefault  میتوان از خطای رخ داده چشم پوشی کرد.
امکان ارسال اعداد، boolean و اشیاء وجود دارد. تنها محدودیت در این زمینه عدم امکان استفاده از توابع و اشیاء ارجاع داده شده به DOM است.

  • نمونه پیاده سازی


در اینجاها نمونه پیاده سازی شده کامل وجود دارد
http://people.mozilla.com/~bturner/weaveworker/weaveDecryptor.html
https://wiki.mozilla.org/DOMWorkerThreads_current

ابتدا باید آخرین نسخه از Firefox را دریافت کنید. در حال حاظر Firefox 3.1 Beta 3 برای دانلود موجود است. لینک دریافت. (نسخه فارسی نیز موجود است)

در صفحه خود باید یک نمونه از شیئ Worker ایجاد کنید. مانند کد زیر:
var webworker = new Worker("workerScript.js");

در این کد به سازنده کلاس اسکریپت workerScript.js ارسال می شود. سپس برای اینکه بتوانیم پیغام ارسالی توسط کارگر را دریافت کنیم باید رویداد onmessage را پیاده سازی کنیم:
webworker.onmessage = function(event) {
document.getElementById("result").textContent = event.data;
};

این کد در thread اصلی صفحه اجرا خواهد شد پس امکان تغییر اطلاعات DOM وجود دارد. در اینجا فیلدی با نام result تغییر خواهد کرد.
در صورت تمایل می توان OnError را هم برای دریافت خطاهای احتمالی پیاده سازی کرد:
webworker.onerror = function(event) {
document.getElementById("result").textContent = "Worker error: " + event.data + "n";
};

پیاده سازی فایل اسکریپت workerScript.js
این فایل که در thread جداگانه ای اجرا خواهد شد باید حداقل دارای یک پیاده سازی ار رویداد onmessage باشد تا بتواند کار مورد نظر را درون خود انجام دهد.
onmessage = function(event) {
var n = parseInt(event.data);

if (n == 0 || n == 1) {
postMessage('Hello');
return;
}
}

توجه کنید که تعریف رویداد onmessage مستقیما بوده است. این رویداد پس از اجرای postMessage در thread اصلی اجرا خواهد شد. در این رویداد مقدار ورودی آن را بررسی می کنیم و در صورت برقرار بودن شرط پیغامی به صفحه ارسال می شود.

هم اکنون می توان به کارگر وب دستور اجرا را صادر کرد. برای این منظور باید از متد postMessage استفاده کنید. پس از اولین postMessage ارسالی کارگر وب شروع به کار کرده و اجرا می شود.
توجه کنید که این کد را باید در صفحه بنویسید و نه در فایل اسکریپت.
worker.postMessage(10);

منابع
https://developer.mozilla.org/web-tech/2008/09/04/web-workers-part-1/
https://developer.mozilla.org/web-tech/2008/12/04/web-workers-part-2/
https://developer.mozilla.org/web-tech/2009/01/05/web-workers-part-3/
https://wiki.mozilla.org/DOMWorkerThreads
https://wiki.mozilla.org/DOMWorkerThreads_current
http://www.whatwg.org/specs/web-workers/current-work/
http://ajaxian.com/archives/web-workers-update-for-firefox-31

 

دو مقاله دو ابزار

۱۳۸۷/۱۲/۲۱ ۲۳:۲۸ Salar Khalilzadeh https://plus.google.com/105397214522932500988 منتشر شده در تاریخ : ۱۳۸۷/۱۲/۲۱ دسته بندی : ، ، ، ، 0

چند روز پیش کار بر روی دو تا مقاله  توصیفی برای ابزارهایی که قبلا نوشته بودم روبه پایان رسوندم که لینک آنها رو اینجا میذارم.

ابزار اولی مربوط به کنترل خطاها در Asp.Net و بعدی در مورد کار با thread ها در دلفی است.

در این مقاله به بررسی ابزار CustomErrorHandler می پردازیم که به ما این امکان را می دهد که شیوه نمایش خطاها را در ASP.NET تغییر دهیم. این خطاها از لحاظ ساختار بسیار استاندارد تر و برای گوگل قابل تشخیص تر هستند.

با استفاده ابزار ThreadWorker که برای دلفی نوشته شده است می توانید، وظایف و یا کارهای طولانی خود را بدون وقفه در کار برنامه انجام دهید.

 

با AlphaControls فرم های خود را زیبا کنید

۱۳۸۷/۱۲/۱۴ ۱۴:۱۵ Salar Khalilzadeh https://plus.google.com/105397214522932500988 منتشر شده در تاریخ : ۱۳۸۷/۱۲/۱۴ دسته بندی : ، ، 7

alphaskinsاخیرا به صورت پاره وقت بر روی پروژه ای تو دلفی کار می کنم که نیاز داره ظاهری زیبا داشته باشه. البته تصمیم گرفتم که پروژه رو تو Delphi 2009 بنویسم.

برای زیبا سازی فرم ها سری کامپیوننت های BusinessSkinForm و VCLSkin رو از قبل می شناختم که پوسته های خوب و زیبایی دارند. چیزی که می خوام الان براتون معرفی خیلی فراتر از این دو ابزار هست.

ابزار مورد نظر من که AlphaControls نام داره برای پوسته گذاری برنامه طراحی شده. نکته مهمی که این بسته ابزار رو از بقیه تمیز میده کیفیت کارشون هست.

معمولا ابزارهایی که برای پوسته گذاری بر روی نرم افزارها طراحی می شوند پوسته هایشان خیلی طرح های زننده و ناخوش آیندی دارند. برای مثال با داشتن منحنی های زیاد و یا رنگ بندی های نامناسب بیشتر به یک تابلوی نقاشی نامفهوم تبدیل می شوند تا یک نرم افزار کاربردی.

ابزار مورد نظر من یعنی Alpha Control بر خلاف سایر ابزارها بسیار حرفه ای ظاهر شده است. چیزی که این ابزار رو برجسته می کنه طراحی حرفه ای پوسته های آن هست که علاوه بر سادگی، حرفه ای بودن رو به برنامه شما القا می کنه. همچنین علاوه بر اینکه ترکیب رنگ های جالب به کار رفته چشم کاربر رو ازیت نمی کنه، این امکان هم هست که با تغییر مقادیر ترکیب رنگ (Hue) و غلظت رنگ (Saturation) در زمان اجرا (On the fly) یا در زمان طراحی ظاهر پوسته های رو به صورت بسیا زیبا در بیاورید.
همچنین جلوه های انیمیشنی که حرفه ای طارحی شده اند و در نسخه های جدید به آن اضافه شده بر ازش این بسته اضاقه می کند.

  • توضیح بیشتر در مورد Alpha Controls


این ابزار اختصاصا برای زبان دلفی و C++ Builder طراحی شده است. به دو صورت می توان این ابزار رو در پروژه مورد استفاده قرار داد. در اولین حالت می توان با افزودن یک کنترل به فرم با نام TsSkinManager و تعیین پوسته دلخواه، به فرم و تمامی کنترل های استاندارد پوسته اعمال کرد. اشکال این روش آن است که از جلوه های انیمیشن و تعدادی جلوه دیگر محروم خواهید.
در حالت دوم باید از اکنترل هایی که AlphaControls محیا کرده و برگه های "AlphaStandard" و "AlphaAdditional" به محیط IDE اضافه می شوند استفاده کنید.
در این صورت علاوه بر اعمال پوسته کنترل ها می توانند جلوه های زیبایی داشته باشند. تنها عیبی که این روش دارد این است که باید تمامی کنترل ها رو حذف کرده و مجددا از کنترل های این ابزار استفاده کنید. نویسندگان این ابزار به فکر این مسئله هم بودند و برنامه تبدیلی با نام AlphaConvert برای این کار نوشت اند. این برنامه فایل های dfm پروژه را گرفته و کنترلهای استاندارد را به کنترل های alpha تبدیل می کند. در پایان پست لینک دریافت آن را مشاهده خواهید کرد.

برای طراحی پوسته های سفارشی طبق معمول برنامه ای نیز در نظر گرفته شده است. البته به شخصه که آن را بررسی کردم کارکردن باهاش سخت بود و البته تنظیمات زیادی دارد.

امکانات این بسته در اینجا به پایان نمیرسه. بسته این ابزار علاوه بر کنترل های استاندارد دارای کنترل های اضافی هم هست که در برگه AlphaAdditional قرار دارند. TsDecimalSpinEdit ، TsComboBoxEx ، TsLabelFX و ... که تعدادی از این ابزارها هستند.

  • نسخه رایگان


بخش خیلی مهمی از این ابزار که اون را واقعا از بقیه جدا می کنه نسخه رایگان این ابزار است. در نسخه رایگان تعدادی از کنترل ها همراه با پشتیبانی از کنترل های سایر شرکت (ThirdParty) حذف شده است.
با این حال یک مزیت مهم همچنان وجود دارد و ان اعمال پوسته به کنترل های استاندارد دلفی است. به طوری که بدون نیاز به استفاده از کامپوننت های این ابزار می توانید پوسته های زیبا را داشته باشید.

نکته آخر اینکه به نظر می رسه که شرکت سازنده این ابزار روسی باشه؛ که می تونه یکی از دلایل کمتر شناخته شدن این ابزار هم باشه!

  • دانلود 2009 AlphaControls


سایت سازنده

دریافت نسخه رایگان (Lite Edition)

دریافت بسته کامل آخرین نسخه Trial (شامل بسته ها ، سازنده پوسته و مثالهای آماده)

دریافت AlphaConvert (مبدل پروژه ها)

گالری تصویری از پوسته های طراحی شده و موجود

  • نتایج اعمال این ابزار به فرم را مشاهده می کنید


تنظیمات ترکیب رنگ و شدت آن

نتیجه اعمال Saturation و HUE

تصویری از تعدادی کنترل اضافی و جلوه ها

کنترل های اضافی با جلوه ها

تصویری از برنامه دموی این ابزار

یک مثال کامل با پوسته

  • بخوانید


مروری بر Delphi 2009 و مهاجرت به آن