رفتن به مطلب

Fahim

مدیر بازنشسته
  • تعداد ارسال ها

    2418
  • تاریخ عضویت

  • آخرین بازدید

تمامی مطالب نوشته شده توسط Fahim

  1. Fahim

    اعتراض

    معمولا در چنین مواردی نحوه گفتن خیلی مهمه بعضی افراد وقتی صحبت می کنن شاید به تمام ناگفته ها بپردازن اما گفتنشون با نگفتنشون فرقی نداره این بخاطر نوع بیان کردن و قدرت صداست نوع برخوردها در هر مکان خیلی فرق می کنه قبلا بر این عقیده بودم همه ماها عاقل و بالغ هستیم و سعی می کردم همه چیز را منطقی حل کنم اما تازگی ها به این نتیجه رسیدم که داد و بیداد کردن و بلند کردن صدا خیلی از جاها زودتر جواب میده
  2. Fahim

    اصفونیا کوجاین پس؟

    سودی نمیای اصفهان؟؟؟؟
  3. به همه دوستان خسته نباشید میگم امیدوارم همیشه موفق باشن
  4. اول نیوز، در روزگاری نه چندان دور، نرم افزار AIDA با وجود محیط سیاه و سفید و غیر گرافیکی، یکی از بهترین برنامه ها برای تست قطعات سخت افزاری کامپیوتر بود. این نرم افزار معمولا بر روی فلاپی دیسک قرار میگرفت و میتوانست سیستم را بوت و عیب یابی کند. اما توسعه دهنگان این نرم افزار بیکار ننشستند و همراه با پیشرفت سیستم عامل ها و کامپیوتر ها، نرم افزار خود را توسعه دادند. اکنون جدیدترین نسخه از نرم افزار AIDA که به اسم AIDA۶۴ Extreme Edition منتشر شده است، یکی از بهترین و حرفه ای ترین نرم افزار ها برای تست و عیب یابی سخت افزار کامپیوتر میباشد. اگر احساس میکنید مشکلی در سخت افزار کامپیوتر شما وجود دارد، و یا قطعه ای به شکل مطلوب کار نمیکند، میتوانید برای تست آن روی این نرم افزار حساب کنید. یا اگر کامپیوتر خود را با سخت افزار جدیدی آپگرید کرده اید و میخواهید از سالم بودن آن مطمئن شوید، میتوانید از تست های جداگانه ای که AIDA۶۴ برای هر قطعه دارد استفاده کنید. نسخه جدید نرم افزار AIDA۶۴ Extreme Edition نه تنها شما را از زیر و بم سخت افزار کامپیوترتان مطلع میکند، بلکه ویندوز شما را نیز به طور کامل بررسی کرده و مشکلات آن را گزارش میدهد. امکانات اصلی نرم افزار AIDA۶۴ Extreme Edition در یک نگاه: - توانایی تست کامل سیستم و یا تست یک قطعه خاص به انتخاب کاربر - گزارش مشکلات و ارائه راه حل - دارا بودن بانک اطلاعاتی جامع و کامل از انواع سخت افزارها - پیشنهاد آپدیت کردن درایور یک سخت افزار در صورت کارامد نبودن درایور فعلی - بررسی عملکرد قطعات مختلف و میزان سازگاری آنها با یکدیگر - بررسی ویندوز از نظر امنیتی - ارائه اطلاعات کامل در مورد مادربرد، پردازنده (CPU)، حافظه Ram، کارت گرافیک و صدا، شبکه، هارد دیسک، پورت های ورودی و خروجی سیستم، و... نسخه جدید این نرم افزار، یعنی AIDA۶۴ Extreme Edition ۲.۷ منبع : سرزمین دانلود دانلود با حجم ۱۴.۵ مگابایت
      • 3
      • Like
  5. Fahim

    مدیریت استثنا‌ها در Net.

    مقدمه در زمان طراحی یک برنامه احتمال بروز خطا همیشه وجود دارد. خطاها به دو شکل ظاهر می‌شوند؛ در حالت اول یک ترکیب نحوی اشتباه یا فراموش کردن یک کاراکتر در پایان دستورات باعث ایجاد خطایی در زمان کامپایل برنامه می‌شود. این‌گونه خطاها به‌راحتی قابل تشخیص بوده و توسط کامپایلر گزارش داده می‌شوند. اما نوع دیگری از خطاها شکل‌های پیچیده‌تری نسبت به حالت اول دارند که به آن‌ها خطاهای زمان اجرا (runtime error) می‌گویند. این خطاها تا زمان اجرای برنامه قابل تشخیص نخواهند بود. به‌عنوان مثال، زمانی که عملیات I/O روی فایل‌ها انجام می‌گیرد یا زمانی که یک ارتباط به پایگاه داده‌ها باید ایجاد شود، نمونه‌ای از حالت‌هایی است که ممکن است سبب بروز خطا شوند. در چنین شرایطی اگر از الگوی مناسبی استفاده نشده باشد، نتایج غیرقابل پیش‌بینی به‌وجود خواهد آمد. در این‌گونه حالات برنامه با نمایش یک پیغام خطای تولید شده توسط CLR پایان می‌پذیرد. در این میان، نوع دیگری از خطاها نیز وجود دارند که مربوط به اشیاء پویا (Dynamic) می‌شوند، به‌عنوان مثال اگر در زمان طراحی، از یک ترکیب نحوی اشتباه استفاده شود، این مورد توسط کامپایلر گزارش داده نمی‌شود و خطا خود را در زمان اجرای برنامه، نشان خواهد داد. به این دلیل مدیریت این نوع خطاها روش خاص خود را دارد. نرم‌افزار Visual studio یکی از قوی‌ترین ابزارهایی است که برای ساخت برنامه‌های مختلف از آن استفاده می‌شود. امکاناتی که ویژوال استودیو برای ساخت برنامه‌های مختلف به کاربران ارائه می‌دهد، بسیار زیاد است. یکی از این ویژگی‌های قدرتمند، ابزارهایی است که برای Trace کردن یک برنامه وجود دارد. این ابزارها که در قالب پنجره‌هایی مانندcall stack Locals/Watch/Auto/ و با پشتیبانی ازBreakpoints همراه هستند، در منوی Debug قرار دارند. بررسی خط به خط (Step Info/Step over/Step out) یک برنامه تا قرار دادن چند متغیر یا یک عبارت در پنجره watch که در زمان اجرای برنامه می‌توانید آن‌ها را لحظه به لحظه بررسی کنید، نمونه‌ای از این توانمندی‌ها است. اما هدف این مقاله تشریح مؤلفه‌های فوق نیست، بلکه هدف، تمرکز روی مکانیزم‌هایی است که مدیریت خطاها را پیاده‌سازی می‌کنند. Exception چیست؟ زمانی که یک نوع یا یک شیء را تعریف می‌کنید، این شیء می‌تواند دارای انواع مختلفی از عضوها مانند متدها، خاصیت‌ها و رویدادها باشد و هر کدام از موارد فوق می‌توانند عملیاتی را روی یک شیء انجام دهند. اما زمانی که یک عضو نتواند وظیفه خود را کامل کند، در این حالت یک Exception یا استثنا رخ می‌دهد. یک استثنا بیانگر یک حالت غیرمعمول در روند اجرای یک دستور است. این حالت بیانگر آن است که متد، فرآیند اجرای خود را به‌درستی انجام نداده، در نتیجه شی‌ءهای استثنا که توصیف‌کننده خطا هستند، ساخته و پرتاب می‌شوند (استثنا‌‌ها به‌صورت دستی نیز با استفاده از کلمه کلیدی throw قابل پرتاب شدن هستند، که در ادامه، آن‌ها را خواهید دید). به‌عنوان مثال، زمانی که عملیات I/O مانند نوشتن، باید روی یک فایل انجام شود اما فایل روی یک رسانه فقط خواندنی قرار دارد، یک استثنا یا Exception تولید می‌شود. مایکروسافت در سایت MSDN استثنا را این‌گونه توصیف می‌کند: «روشی استاندارد که net. با استفاده از آن خطاها را گزارش می‌کند.» Exception Handling چیست؟ مکانیزمی که به استثنای تولید‌شده واکنش نشان می‌دهد، Exception Handling نامیده می‌شود. این مکانیزیم برای اداره کردن خطاها از بلوک‌های try/catch/finally استفاده می‌کند که نحوه استفاده و پیاده‌سازی آن‌ها را در ادامه خواهید دید. در زمان بروز خطا شیء Exception که شامل جزئیاتی در‌خصوص استثنای رخ‌داده است، پرتاب می‌شود. استثنا در زمان پرتاب، درون پشته قرار می‌گیرد. CLR وظیفه اداره کردن استثنا را برعهده دارد. نحوه انجام این عمل به‌صورت زیر است: اگر استثنا از داخل یک بلوک try تولید شده باشد، CLR شروع به جست‌وجو در بلوک‌های catch می‌کند. پیمایش بلوک‌ها به همان ترتیبی که در مرحله کدنویسی مشخص شده، مورد بررسی قرار می‌گیرد، این‌کار تا زمانی‌که بلوکی بتواند خطا را اداره کند، ادامه می‌یابد و در صورتی‌که هیچ بلوکی توانایی handle کردن خطا را نداشته باشد، CLR پشته را برای یافتن بلوکی که بتواند خطا را اداره کند، جست‌وجو می‌کند. این فرآیند ادامه می‌یابد تا به ابتدای پشته برسد و اگر هیچ بلوک catch که توانایی اداره کردن خطا را داشته باشد، وجود نداشت، در آن صورت سازنده پیش‌فرض استثنا را اجرا کرده و یک Unhandled exception یا خطای اداره نشده را تولید کرده و پردازش را در اصطلاح shut down یا terminate می‌کند که نتیجه آن خاتمه ناگهانی برنامه است. این امر به این موضوع اشاره دارد که برنامه دارای یک باگ است که باید برطرف شود. در صورتی‌که بلوک catch هماهنگ پیدا شود، دستورات داخل بلوک catch اجرا می‌شود. در این میان، اگر بلوک finally نیز وجود داشته باشد، دستورات آن بعد از اجرای بلوک catch اجرا می‌شود. کلاس Exception کلاس Exception کلاسی پایه برای همه Exceptionها است. این کلاس از Object مشتق شده است و کلاس‌های استثنا از این کلاس مشتق شده و شی‌ءهای استثنا را تولید (پرتاب) می‌کنند. ترکیب نحوی این کلاس به‌صورت زیر است: [serializableAttribute] [ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType.None)] public class Exception : ISerializable, _Exception کلاس بالا با دارا بودن خاصیت‌ها و متدهای مختلف، این امکان را فراهم می‌آورد که در صورت مواجه شدن با یک استثنا بتوانید اطلاعات مفیدی از شیء استثنا به‌دست آورده، علت بروز خطا را متوجه شده و آن‌را برطرف کنید. خاصیت‌هایی که این کلاس شامل می‌شود، عبارتند از:Message,HelpLink,InnerException,StakTrace,Data,InnerException,Source,TargetSite (توضیحات مربوط به این خاصیت‌ها بعدا ارائه خواهد شد). هر کدام از این خاصیت‌ها بیانگر اطلاعاتی درمورد خطای رخ‌داده است. به‌طور مثال زمانی‌که یک استثنا سبب بروز استثنای دیگری شود، می‌توان آن‌را با InnerException رصد کرد . کلاس SystemException SystemExeption یکی از کلاس‌های مشتق شده از کلاس Exception است. استثنا‌های تولید‌شده توسط CLR از این کلاس مشتق می‌شوند. کلاس ApplicationException کلاس ApplicationException یکی دیگر از کلاس‌های مشتق شده از Exception است. برنامه‌های کاربر و نه CLR استثنا‌های سفارشی را که از این کلاس مشتق شده است، پرتاب می‌کنند. زمانی‌که صحبت از ساخت یک کلاس سفارشی می‌شود، انتخاب میان ApplicationExeption و Exception سخت است و درباره این‌که کدام‌یک از این کلاس‌ها برای ساخت یک کلاس سفارشی باید مورد استفاده قرار گیرد، اختلاف نظر وجود دارد. در زمان ارائه نسخه‌های اولیه .Net عنوان می‌شد که باید از ApplicationException استفاده شود اما بعداً مایکروسافت در مستنداتی که در سایت MSDN ارائه کرده است، به این نکته اشاره می‌کند که از کلاس Exception استفاده کنید. متن زیر برگرفته از سایت MSDN در این خصوص است۱: For most applications, derive custom exceptions from the Exception class. It was originally thought that custom exceptions should derive from the ApplicationException class; however in practice this has not been found to add significant value. سلسله مراتب استثنا‌ها یکی از مزیت‌های استفاده از چارچوب دات نت‌، کدنویسی در یک محیط مدیریت شده با استفاده از قابلیت‌های CLR به‌عنوان یکی از مؤلفه‌های اصلی .Net است. CLR یا همان Common Language Runtime به‌عنوان هسته اصلی چارچوب .Net مسئولیت اجرای وظایف مختلفی را بر عهده دارد که عملیاتی مانند مدیریت حافظه و مدیریت استثناها نمونه‌ای از این وظایف است. کلاس‌های Exception درون چارچوب .net یک ساختار سلسله مراتبی دارند به‌طوری‌که کلاس Exception به‌عنوان کلاس پایه برای همه کلاس‌های استثنا تعریف شده است. به‌دلیل ارث‌بری کلاس‌های استثنا از این کلاس، امکان استفاده از متدها و خاصیت‌های درون این کلاس در کلاس‌های دیگر نیز وجود دارد. به‌طور کل، استثناها به دو صورت اتفاق می‌افتند؛ در حالت اول توسط .Net runtime و در حالت دوم توسط برنامه‌نویس ایجاد می‌شوند. دیاگرام ترسیمی برای کلاس‌های Exception چیزی شبیه به شکل۱ خواهد بود. البته کلاس‌های Exception انواع زیادی دارند که هر کدام نیز دارای مشتقات مختلفی هستند. شکل۱ یک طرح کلی از این ساختار را نشان می‌دهد (به‌طور مثال، کلاس IOException یکی از کلاس‌هایی است که از SystemException مشتق می‌شود، در حالی‌که IOException خود دارای مشتقات دیگری است). شکل1: سیستم سلسله مراتبی توارث استثناها در NET. همان‌گونه که درشکل۱ می‌بینید، کلاس Exception به‌عنوان کلاس والد (parent) برای همه کلاس‌های استثنا عمل می‌کند و کلاس‌های System.Exception و ApplicationException نیز از مشتقات اصلی آن به‌شمار می‌روند که هر کدام دارای زیر‌کلاس‌های دیگری هستند. شیء‌های Exception که توسط CLR تولید می‌شوند، در بیشتر اوقات از کلاس System.Exception مشتق می‌شوند. (اما این قاعده همواره به صورت کامل صدق نمی‌کند.) مدیریت خطاها شناسایی یک Exception در چارچوب .Net همه زبان‌های برنامه‌نویسی تحت .Net از مزیت‌های exception handling بهره‌می‌برند. برای این منظور، از یک مکانیزم ساخت یافته که به‌صورت بلوک‌هایی برای *****‌کردن کدها مشخص شده است، استفاده می‌شود. این بلوک‌ها که با‌نام‌های try,catch,finally وجود دارند، در زمان بروز استثنا‌، آن‌ را دریافت کرده و واکنش نشان می‌دهند و به این‌گونه از خاتمه یافتن ناگهانی برنامه جلوگیری به‌عمل می‌آورند. شکل۲، نمونه‌ای از مکانیزم عملکرد این بلوک را در حالت کلی نشان می‌دهد: شکل2: دیاگرام نحوه عملکرد بلوک‌های try , catch, finally قطعه کد زیر نحوه پیاده‌سازی یک بلوک try/catch را نشان می‌دهد: private void MyMethod() { try { //کدی که ممکن است تولید یک استثنا کند } catch(FormatException ex) { // واکنش به استثنا اجرا شده } catch(IOException ex) { // واکنش به استثنا اجرا شده } catch { throw; } finally { //کد درون این قسمت همیشه اجرا می‌شود، خواه استثنایی تولید شده باشد یا خیر //از این قسمت می‌توان برای آزاد‌سازی منابع استفاده شده توسط برنامه استفاده کرد } } Try کدی که روند اجرای آن ممکن است به درستی انجام نشود و احتمال بروز خطا در زمان اجرای آن وجود داشته و به بررسی نیاز دارد، در بلوک try قرار می‌گیرد. به‌عنوان یک پیشنهاد، اگر از دستوراتی استفاده می‌کنید که این دستورات ممکن است سبب بروز خطاهای مختلفی باشند، بهتر است که هر‌کدام را در یک بلوک جداگانه try/catch قرار دهید. catch کد درون بلوک catch در واکنش به خطای رخ داده، اجرا می‌شود. یک بلوک try می‌تواند یک یا چند بلوک catch داشته باشد. اگر برنامه‌ای روند اجرای طبیعی خود را طی کند، بلوک‌های catch توسط CLR مورد استفاده قرار نخواهند گرفت. همچنین عبارتی که بعد از پرانتز در بلوک catch مورد استفاده قرار می‌گیرد، catch type نامیده می‌شود. با استفاده از این روش می‌توانید جزئیات مربوط به خطای تولید شده را دریافت کرده، آن‌را ثبت کنید یا کارهایی که لازم است، انجام دهید. در هر بلوک catch می‌توانید یک استثنا را که احتمال می‌دهید در برنامه‌تان رخ خواهد داد، قرار دهید. بلوک try می‌تواند با چند بلوک catch مورد استفاده قرار گیرد اما به تنهایی نمی‌توان از آن استفاده کرد و حداقل به یک بلوک catch نیاز دارید. finally بلوک finally به‌صورت اختیاری می‌تواند در بلوک try مورد استفاده قرار گیرد. کدهای قرار گرفته در این بلوک finally همواره اجرا خواهند شد، بنابراین، مکان مناسبی برای عملیات آزاد‌سازی منابع استفاده شده است. آزادسازی اشیاء پایگاه داده یا بستن Handle یک فایل، نمونه‌ای از مواردی است که می‌توانند درون این بلوک قرار گیرند. مثال زیر نمونه‌ای از نحوه استفاده از این بلوک‌ها را نشان می‌دهد: FileStream fileStream = null; try { fileStream = File.OpenRead(«Hdl.jpg»); } catch(System.IO.FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } finally { //کد درون این قسمت همراه اجرا می‌شود if (fileStream != null) { fileStream.Close(); } } یکی دیگر از روش‌های اداره‌کردن استثنا‌ها، استفاده از بلوک‌های تودرتوی try/catch است. هرچند این روش کم‌تر مورد استفاده قرار می‌گیرد، اما در برخی شرایط نیاز به استفاده از این روش خواهید داشت. بنابراین بهتر است با نحوه پیاده‌سازی این‌گونه بلوک‌ها آشنا باشید. قطعه کد زیر یک مثال از مکانیزم پیاده‌سازی این روش است: int[] myarray = new int[3]; for (int i = 0; i { try { Console.WriteLine(«Enter Numbers : «); try { myarray = int.Parse(Console.ReadLine()); } catch (IndexOutOfRangeException e) { Console.WriteLine(e.Message); } catch (FormatException e) { Console.WriteLine(e.Message); } } catch (OverflowException e) { Console.WriteLine(e.Message); } } در صورتی‌که مقدار وارد شده در مثال بالا از نوع کاراکتر باشد، بلوک FormatException به آن واکنش نشان خواهد داد اما در‌نهایت بلوک IndexOutofRangeException که نشان‌دهنده تجاوز از حد ارائه است، رخ خواهد داد. نمونه خروجی برنامه را در شکل ۳ مشاهده می‌کنید. شکل 3 Throw an exception همان‌گونه که عنوان شد، استثنا‌ها مکانیزمی هستند که .Net برای گزارش خطاها از آن‌ها استفاده می‌کند. با استفاده از اشیاء استثنا نوع خطای رخ داده به همراه علت آن مشخص می‌شود و می‌توانید تعیین کنید که چه عملی برای اداره کردن آن باید انجام گیرد؛ که به این امر Exception Handling می‌گویند. در ابتدای مقاله، عنوان شد که یک استثنا ممکن است توسط یک برنامه‌نویس تولید شود، اما پرسشی که به‌وجود می‌آید؛ این است که چقدر زمان لازم است تا به‌طور دستی یک استثنا را پرتاب کنید؟ در پاسخ باید گفت زمانی‌که متدی وظیفه خود را به‌درستی انجام نمی‌دهد، لازم است که یک استثنا پرتاب شود. برای پرتاب یک استثنا در زمان اجرا از کلمه کلیدی throw به همراه نام استثنای مورد نظر استفاده می‌شود. هنگام پرتاب یک استثنای لازم است که توضیحاتی را در‌خصوص استثنای ایجاد شده ارائه کنید تا علت وقوع آن واضح شود. اما پرتاب کردن استثنا‌ها باید با احتیاط صورت گیرد. مثلاً برای مواردی مانند ورودی نامعتبری که کاربر ممکن است آن‌ها را در فیلدهای ورودی وارد کند، نباید یک استثنا پرتاب شود و این موضوع با نمایش یک پیغام ساده می‌تواند پوشش داده شود. مثال زیر، نحوه انجام این عمل را نشان می‌دهد. در قطعه کد زیر اگر ورودی متد Show برابر با مقدار خالی یا null باشد، استثنای ArgumentNullException اجرا خواهد شد (یا در اصطلاح پرتاب خواهد شد). به‌دلیل این‌که از بلوک try/catch استفاده نمی‌کنیم، برنامه با نمایش پیغام خطا پایان می‌یابد. در زمان پرتاب یک استثنا به‌طور دستی بهتر است از یک عبارت که توصیف‌کننده خطا است، استفاده کنید. (همان‌گونه که گفته شد، برای مواردی مانند مثال زیر نباید از یک استثنا استفاده کرد) از ترکیب نحوی throw برای پرتاب یک استثنا استفاده می‌شود اما از دستور throw برای پرتاب هر استثنایی نباید استفاده کرد. بعضی از استثنا‌ها باید به‌صورت اتوماتیک اجرا شوند که نمونه‌هایی از آن‌ها را در قسمت‌های بعدی مقاله خواهید دید. private void Show(string str) { if (string.IsNullOrEmpty(str)) { throw new ArgumentNullException(«Show’s Parameter:», «is empty.»); } } فراخوانی متد بالا با مقدار خالی یا null خروجی زیر را نشان داده و برنامه را خاتمه می‌دهد. حال کد بالا را با استفاده از بلوک try امتحان می‌کنیم: try { Show(null); } catch (ArgumentNullException ex) { Console.WriteLine(ex.Message); } در قطعه کد بالا بلوک catch استثنای تولید شده را دریافت کرده و برنامه به‌طور ناگهانی خاتمه نمی‌یابد. پرتاب دوباره استثنا یکی از مواردی که ممکن است با آن روبه‌رو شوید یا در کدهای نوشته شده توسط برنامه‌نویسان دیگر، آن‌را ببینید، پرتاب دوباره یک استثنا است، اما به‌دلیل ناآگاهی برخی از برنامه‌نویسان نتیجه اجرای کد می‌تواند متفاوت با چیزی باشد که تصور می‌شود. زمانی که یک شیء استثنا پرتاب می‌شود، نقطه‌ای که استثنا از آن تولید شده است، توسط CLR در پشته ثبت می‌شود و با استفاده از خاصیت stackTrace این اطلاعات با‌ارزش در‌خصوص علت وقوع خطا کمک‌کننده خواهد بود. اما این اطلاعات دائمی نیستند؛ به این معنی که خاصیت stackTrace هر بار که یک شیء استثنا پرتاب می‌شود، ری‌ست می‌شود. به مثال زیر توجه کنید: try { ...... { catch (Exception ex) { ..... throw ex; } دستورات throw ex که در بالا استفاده شده است، باعث می‌شود اطلاعات StackTrace در‌خصوص استثنای رخ داده، از دست برود و در این حالت باید از ابزارهای debugger برای کشف خطا استفاده کرد، که کار را سخت می‌کند. برای حل این مشکل، باید همان استثنای تولید‌شده را دوباره پرتاب کنید. ترکیبی که سی‌شارپ ارائه می‌کند، ساده است. در این روش کلمه throw به‌تنهایی مورد استفاده قرار می‌گیرد؛ بدون هیچ‌گونه عبارتی. در نتیجه کد بالا به‌صورت زیر پیاده‌سازی می‌شود: try { ...... { catch (Exception ex) { .... //کدهایی که در ارتباط با استثنا هستند throw; } در این مقاله با استثنا‌ها آشنا شدید و دریافتید که این اشیا چه هستند، سلسله مراتب آن‌ها چگونه است، چطور با استفاده از بلوک‌های try/catch/finally می‌توانید آن‌ها را مدیریت کنید و در‌نهایت چگونه می‌توانید به‌طور دستی یک استثنا را پرتاب کنید. درباره انواع دیگر خطاها و نحوه مدیریت آن‌ها، شماره آینده ادامه خواهیم داد. پی‌نوشت ۱- [Hidden Content]
      • 2
      • Like
  6. هرگاه از آینده نرم‌افزارهای آزاد/متن باز صحبت می‌شود، یا موضوع پیش‌بینی‌های مربوط به سال پیش‌رو مطرح می‌شود، بیشتر نگاه‌ها به سمت آمار و ارقامی چون سهم آندروئید از بازار، افزایش تعداد کاربران میزکارهای لینوکسی به بیش از یک درصد و مواردی مشابه معطوف می‌شود. اما واقعیت آن است که رویدادهای بنیادی‌تری نیز وجود دارند که می‌توانند نه تنها دنیای نرم‌افزارهای آزاد که کل حوزه IT را نیز دست‌خوش تغییر و تحول قرار دهند. سیستم‌عامل جدیدی از بنیاد موزیلا برای تجهیزات قابل‌حمل، زیرساخت‌های قدرتمند مجازی‌سازی ردهت و چند موضوع دیگر که در این نوشتار مشاهده خواهید کرد، این قابلیت را دارند که نه تنها پول و اعتبار را برای توسعه دهندگان‌شان به ارمغان آورند بلکه تغییراتی اساسی را در دنیای فناوری اطلاعات رقم بزنند. Wayland وی‌لند (Wayland) یک پروتکل سرویس‌دهنده صفحه نمایش و یک کتابخانه برای لینوکس است که این پروتکل را پیاده‌سازی می‌کند. وی‌لند شیوه‌ای را برای ارتباط مستقیم مدیر پنجره‌ها با برنامه‌ها و سخت‌افزار گرافیکی بدون نیاز به سخت‌افزار ورودی و دیگر کتابخانه‌های غیر‌لازم فراهم می‌کند. کریستین هوگزبرگ پروژه وی‌لند را به‌صورت یک پروژه پاره‌وقت در سال ۲۰۰۸، زمانی که در ردهت کار می‌کرد، آغاز کرد و اکنون در واپسین ماه‌های سال ۲۰۱۲ میلادی به نسخه پایدار ۱ رسیده است. X سال‌ها است که به‌عنوان سرویس‌دهنده پنجره در سیستم‌های پوزیکس استفاده می‌شود اما در ظاهر همانند برخی دیگر از فناوری‌‌های یونیکسی به پایان راه نزدیک می‌شود و باید جای خود را به وی‌لند بدهد. آدام جکسون از پروژه فدورا و مارک شاتلورث از اوبونتو در سال ۲۰۱۰ وعده استفاده از وی‌لند در توزیع‌های متبوع‌شان را دادند اما با انتشار نسخه نخست وی لند کم‌کم باید شاهد پیاده‌سازی این پروتکل باشیم و البته دور از انتظار نخواهد بود اگر فدورا این فناوری را نیز (همانند سایر فناوری‌ها) برای نخستین‌بار در توزیع خود به خدمت بگیرد و به صورت عمومی معرفی کند. وی لند به عنوان پروتکل سرویس‌دهنده گرافیکی ساده‌تر، انعطاف‌پذیرتر و با بازدهی بیشتر معرفی شده است. Firefox OS آیا با وجود ریشه دواندن آندروئید و iOS (و حتی ویندوز‌فون‌ها) در تلفن‌های همراه جدید، امکان موفقیت سیستم‌عامل دیگری وجود دارد؟ جواب بسیاری به این پرسش «خیر» است اما اگر پروژه مربوط به بنیاد موزیلا و دارای رابطه خویشاوندی با مرورگر محبوب فایرفاکس باشد، همگی در جواب خود شک خواهیم کرد. Firefox OS که پیش‌تر با نام Boot To Gecko ( یا به اختصار B2G) معرفی شده بود، آمده است تا با دگرگون کردن ساختار اپلیکیشن‌های نصب شونده روی دستگاه، توسعه‌دهندگان و کاربران را به سمت خود بکشد. اهل فن و صاحب‌نظران حوزه نرم‌افزار اذعان دارند که دنیای نرم‌افزار به سمت نرم‌افزارهای تحت وب پیش می‌رود و اینجاست که Firefox OS آمده است تا با استفاده از برنامه‌های مبتنی بر HTML5 تفاوت میان نرم‌افزارهای محلی و تحت وب را به حداقل برساند و از این راه مقابل بزرگانی چون گوگل، اپل و مایکروسافت قد علم کند. سیستم‌عامل بنیاد موزیلا با ++C و جاوا اسکریپت نوشته شده و هسته‌ای بر پایه هسته لینوکس دارد. توسعه‌دهندگان و طراحان پا را فراتر از این گذاشته و Firefox Marketplace را برای قرار دادن و دانلود اپلیکیشن‌های این سیستم‌عامل نوپا ایجاد کرده‌اند. هم‌اکنون به کمک شبیه‌ساز r2d2b2g که یک افزونه برای فایرفاکس است، می‌توان نسخه‌های اولیه این سیستم عامل داغ و آتشین را روی سیستم‌های دسکتاپ آزمایش کرد و مورد بررسی قرار داد. نخستین دستگاه‌هایی که سیستم‌عامل فایرفاکس روی آن‌ها خواهد نشست، توسط آلکاتل و ZTE تولید و در اوایل ۲۰۱۳ در برزیل عرضه خواهند شد. همچنین به گفته وبلاگ موزیلا، دویچه تله‌کام، اتصالات، اسمارت، اسپرینت، تلکام ایتالیا و چندین اپراتور دیگر برای عرضه و پشتیبانی Firefox OS اعلام آمادگی کرده‌اند. Systemd به جای System V systemd به عنوان جایگزینی برای دایمون init (م Daemon) در لینوکس (ودایمون‌های System V یا به سبک BSD) معرفی شد. Systemd وابستگی‌های اجرا/توقف یک دایمون را بهتر رعایت می‌کند، اجازه کار بیشتری به‌صورت همزمان در هنگام بالا آمدن سیستم می‌دهد، سربار کمتری برای پوسته ایجاد می‌کند و از System V سنتی سیستم‌های یونیکسی سریع‌تر است. مزایای جایگزینی Systemd به جای sysvinit سنتی برای نخستین‌بار با معرفی این سیستم Init جدید در فدورا ۱۵ مورد توجه قرار گرفت. پس از آن مگیا۲، مندریوا ۲۰۱۱، اپن سوزه 1.12 به بعد و آرچ لینوکس از اکتبر ۲۰۱۲ از این سیستم استفاده کردند. همچنین Systemd به عنوان یک وابستگی خارجی میزکار گنوم ۳ ( از نسخه 2.3 به بعد) باید در توزیع‌هایی که از این میزکار استفاده می‌کنند، نصب شود. اسکریپت‌های Systemd با Sys V سازگاری دارد اما توزیع‌هایی مانند فدورا از همان نسخه آغازین در حال جایگزینی کامل اسکریپت‌های سنتی یونیکس با اسکریپت‌های جدید Systemd هستند. Systemd هم اکنون در شاخه در حال آزمایش دبیان قرار دارد و با انتشارهای نسخه عمده دبیان و ردهت در سال ۲۰۱۳ و معرفی بیش از پیش این سیستم، کم‌کم شاهد حذف System V خواهیم بود. در سیستم‌های مبتنی بر systemd باید به‌جای دستورات معروف service ServiceName start از ابزار systemctl و به‌صورت systemctl start ServiceName.service استفاده کرد. دلیل این امرآن است که systemd از ۶ نوع مختلف واحدهای service، socket، device، mount،automount، target و snapshot پشتیبانی می‌کند. اگرچه برخی موارد مانند تغییر runlevel به راحتی اسکریپت‌های Sys V نیست اما مزایای دیگر systemd باعث شده‌اند تا از هم‌اکنون این سیستم را سیستم استارت‌آپ لینوکس‌های نسل آینده بنامیم. ناگفته نماند در این میان اوبونتو از سیستم استارت‌آپ خود به نام upstart استفاده می‌کند. RHEV شکی نیست که بازار مجازی‌سازی در مراکز داده در تسخیر Vmware و چنگال Vmware ESX است اما ردهت که در سپتامبر ۲۰۰۸، Qumranet (خالق، نگه‌دارنده و توسعه‌دهنده KVM) را به مبلغ ۱۰۷ میلیون دلار خرید، به‌صورت ضمنی به Vmware هشدار داد. اگرچه ردهت از KVM به عنوان مجازی‌ساز اصلی در لینوکس انترپرایز خود (RHEL) استفاده می‌کند اما می‌خواهد از KVM به‌صورت Baremetal (همانند ESX) نیز استفاده کند؛ بنابراین مجازی‌ساز انترپرایز ردهت (RHEV) را با KVM بنا نهاد تا بلکه بتواند سهمی از بازار پر‌سود مجازی‌سازی را از آن خود کند. اگرچه هنوز RHEV به بلوغ کامل نرسیده است و کار توسعه آن ادامه دارد اما در همین مدت کوتاه نیز سر و صداهایی به پا کرده است. به عنوان مثال، رابط مدیریتی RHEV (که ردهت آن را خریداری کرده است) توسط زبان‌های برنامه‌نویسی مایکروسافتی (خانواده دات‌نت) نگارش شده و به‌احتمال، یکی از کارهای اصلی توسعه‌دهندگان و برنامه‌نویسان ردهت تغییر این رابط و بازنویسی و انتشار آن با یک زبان برنامه‌نویسی آزاد و متن‌باز است. اما انتشارهای RHEV طی این چند سال (نسخه ۲/۲ در ژوئن ۲۰۱۰ و نسخه ۳ در ژانویه ۲۰۱۲) نشان از عزم راسخ ردهت برای نفوذ به بازار مجازی‌سازها دارد و به‌احتمال در سال ۲۰۱۳ باید منتظر انتشار نسخه‌ای جدید با ویژگی‌های بیشتری از آن بود. RHEL 7.0, Debian 7.0 انتشار نسخه‌های مادر و سروری دبیان و لینوکس انترپرایز ردهت که از قضا هر دو به نسخه‌۷ رسیده‌اند و در سال آینده یک انتشار اصلی خواهند داشت، می‌تواند در نوع خود جالب توجه باشد. دبیان‌۷ موسوم به Wheezy چند روز پیش چهارمین نسخه آزمایشی از برنامه نصب‌کننده خود را که قرار است با Wheezy بیاید، منتشر کرد و ردهت هم در کنفرانس ۲۶ ژوئن خود برخی از ویژگی‌های نسخه آتی خود را منتشر ساخت. در این میان شاید ویژگی‌هایی مانند پشتیبانی کامل از (LXC (Linux container، نصب کننده جدید با پشتیبانی از تجهیزات ذخیره‌سازی مدرن و بهبودهایی روی LVM جهت استفاده در لینوکس انترپرایز ردهت، بیشتر به چشم بیایند. اگر می‌خواهید ویژگی‌های بیشتری از نسخه آینده لینوکس انترپرایز ردهت ببینید، می‌توانید هم‌اکنون فدورا ۱۷ و ۱۸ را آزمایش کنید زیرا نسخه آینده ردهت بر پایه این دو نسخه فدورا خواهد بود. از حق نگذریم تجربه نصب یک توزیع لینوکسی انترپرایز طرف سرور آن هم با میزکار لمسی در نوع خود شگفتی بزرگی خواهد بود. نسخه آینده ردهت از میزکار گنوم۳ استفاده می‌کند. در دنیای سخت‌افزار و پردازنده‌ها، این روزها صحبت‌های بسیاری در مورد معماری ARM می‌شود. ARM که با تسخیر بازار تجهیزات قابل حمل، خواب اینتل را آشفته کرده و به‌تازگی پردازنده ۶۴بیتی خود را نیز تولید کرده است، سودای رخنه در بازار پر‌سود سرورها را نیز در سر دارد. با معرفی سرورهای HP با پردازنده ARM در کنفرانس امسال ردهت که توان بسیار پایینی مصرف می‌کنند و می‌توانند برای مصارفی مانند مانیتورینگ در مراکز داده استفاده شوند، زمزمه‌های انتشار یک ویرایش RHEL 7.0 برای این پردازنده‌ها بیش از پیش شنیده می‌شود. اگرچه ردهت برنامه مشخص و روشنی را برای انتشار نسخه‌ای مختص پردازنده‌های ARM منتشر نکرده است اما انتشارهای اخیر فدورا برای ARM، اختصاص یافتن چندین توسعه‌دهنده فدورا به کار روی معماری ARM از جانب ردهت و همچنین بالا گرفتن تب استفاده از این پردازنده‌ها در مراکز داده، مواردی هستند که شایعات انتشار RHEL 7.0 ویرایش ARM را تقویت می‌کنند. اما آینده نرم‌افزارهای آزاد با توجه به این‌که به طور معمول حامی مالی و پشتیبان خاصی ندارند، نیاز به ویترینی برای معرفی دارند تا پس از به نمایش درآمدن د رآن، زمینه برای بررسی‌ها و نقدها و تشویق‌ها فراهم شده و زمینه رقابت جدی با برنامه‌های متن بسته و معادل تجاری آن‌ها فراهم شود. توزیع‌های لینوکسی به عنوان گل سر‌سبد محصولات متن‌باز همانند ویترینی برای نمایش قابلیت‌ها و ویژگی‌های این برنامه‌ها هستند و اینجاست که اهمیت انتشار توزیع‌های مادری مانند دبیان و ردهت در سال آینده مشخص می‌شود. این توزیع‌ها هر دو، سه سال یک‌بار منتشر می‌شوند بنابراین ویژگی‌ها و برنامه‌های جدیدی که در این توزیع‌ها معرفی می‌شوند، فرصت دیده شدن را خواهند داشت. علاوه‌بر آن، به نظر می‌رسد با رو به‌فزونی گذاشتن برنامه‌های تحت وب و ارتباط و پیوند قدرتمند وب با سیستم‌ها و برنامه‌های آزادی مانند سرورهای لینوکسی، php ،Mysql، سرویس‌دهنده‌های وب مانند آپاچی (به اختصار LAMP) و همچنین معرفی سیستم‌عامل فایرفاکس موبایل در سال ۲۰۱۳ باز هم استفاده از برنامه‌های تحت وب و برنامه‌های آزاد و متن‌باز در این حوزه افزایش یابد
      • 2
      • Like
  7. 1- در طبیعت شگفت‌آور پیرامون ما چیزهایی هست که از کشف‌شان لذت می‌بریم. چیزهایی هم هستند که پس از سپری شدن لذت اکتشاف، همچنان ذهن را در حال پردازش نگه می‌دارند. نوعی زنبور هست که برای بقای نسل خود شیوه خاصی را دنبال می‌کند. او ابتدا کفش‌دوزکی را نشان می‌کند، سپس بر سر او فرود می‌آید. نیش‌اش می‌زند تا برای مدتی فلج شود و در حین همین کار، درون شکم کفش‌دوزک تخم‌ریزی می‌کند. کفش‌دوزک پس از به هوش آمدن به راه خود ادامه می‌دهد اما زندگی او مدت کوتاهی پس از این رویداد عوض می‌شود. لاروها پس از بیرون آمدن از تخم، در شکم کفش‌دوزک زندگی می‌کنند و از اعضا و جوارح داخلی بدن جانور زنده تغذیه می‌کنند. در تمام این دوره، کفش‌دوزک میزبان، از دردی درونی زجر می‌کشد و به خود می‌پیچد. سرانجام تسلیم می‌شود و زمانی که نوزادان برای شروع مرحله جدید زندگی از بدن رنجور میزبان بیرون می‌آیند، او دیگر بی‌جان شده است. 2- در صنعت موبایل چیزهایی هست که از کشف‌شان لذت می‌بریم. چیزهایی هم هستند که پس از سپری شدن لذت اکتشاف، همچنان ذهن را در حال پردازش نگه می‌دارند. شرکتی به نام نوکیا هست که اخبار و حواشی مرتبط با وضعیت امروزش ماجرای پر‌اهمیتی شده است. در بسیاری از تحلیل‌های مرتبط با وضعیت کنونی غول آسیب‌خورده صنعت موبایل، بارها به آمار و ارقام فروش و درآمد سرسام‌آور این شرکت تا همین سه چهار سال پیش برمی‌‌خوریم. دوره‌ای که تاج و تخت «شماره یک سابق» هنوز ارج و اعتباری در خور یک پیشگام واقعی داشت و خبری از زیان‌دهی و گرفتاری‌های امروز نبود. اخراج چهل هزار کارمند طی دو سال گذشته، زیان‌‌های مالی چند صد میلیون دلاری در فصل‌های اخیر و... تفسیر خیلی خوبی از استعاره «زمانه عوض شده» را پیش روی این شرکت قرار داده است. پنج سال قبل، سهم نوکیا از بازار اسمارت‌فون‌ها بیش از 30 درصد بود و بقیه با فاصله محسوسی به دنبال رتبه‌های بعدی این بازار بودند. نوکیا با سمیبین یکه تازی می‌کرد و همه چیز بر وفق مراد بود. اما در کمال شگفتی، مدیران نوکیا به‌سادگی انقلاب آی‌فون و مدتی بعد، آندروئید را نادیده گرفتند و چنان کند به صرافت تغییر افتادند (با ارتقای سمیبین، حرکت به سمت لینوکس با Maemo و سپس Meego) که دنیای ابزارهای همراه هوشمند طی رقابت دو پلتفرم دیگر برای همیشه عوض شده بود. حالا دیگر وقت گرفتن یک تصمیم اساسی و سرنوشت‌ساز بود و نوکیای تمایز طلب به استقبال پلتفرمی‌ رفت که برخی، آن را سومین بازیگر بزرگ دنیای موبایل در آینده می‌دانند: ویندوز‌فون مایکروسافت. 3- از دیدگاه شخصی، سیستم عامل ویندوز فون مایکروسافت را دوست دارم. حتی شش هفت سال قبل، زمانی که یک گوشی آی‌میت مجهز به ویندوز موبایل 5 برای مدتی ابزار کارم شده بود، به رغم اشکالات، محدودیت‌ها و انتقادهای درستی که به آن وارد بود، کار کردن با آن، مزایای ویژه‌ای برایم داشت. پس از فترتی چند ساله (که خیلی هم گران تمام شد)، مایکروسافت با عرضه ویندوز‌فون7 در اواخر سال 2010 گام بزرگی برای بازگشت به بازی برداشت. همان‌طور که webOS پس از آی‌فون با نوآوری‌های جذاب‌اش، نقطه دیگری به تاریخ این صنعت افزود، مایکروسافت نیز به جای درپیش گرفتن رویکردی تقلیدی، با بازنویسی کامل سیستم‌عامل همراهش (متفاوت از ویندوز موبایل) و طراحی یک رابط کاربری تازه، تلاش می‌کند تا پاره‌خطی را که دو سرآن اپل و گوگل ایستاده‌اند، به یک مثلث تبدیل کند. این که سرنوشت مایکروسافت در معمای «بدون دست زدن به پاره‌خط، یک مثلث بسازید» چه خواهد بود، موضوع این نوشته نیست اما پاسخ آن در سرنوشت نوکیا تأثیری مانند اثر اکسیژن بر حیات آدمی دارد. 4- درست در همان سال‌هایی که نوکیا شماره یک بازار اسمارت‌فون‌ها بود، سهم مایکروسافت از این بازار نیز با ویندوز موبایل، دو رقمی شده بود. بر‌اساس آمارهای اخیر منتشر شده، سهم فعلی ویندوز‌فون به حدود ۳ درصد رسیده است. به‌رغم تلاش‌های زیاد “آقايان” ردموند طي دوسال گذشته و تزریق میلیاردی کمک به شریک استراتژیک فنلاندی، در کنار اقدام‌های دیگری مانند دست به نقد شدن و کشیدن چک برای توسعه‌دهندگان نرم‌افزاری به‌منظور ترغیب‌شان به ساختن برنامه‌های پرطرفدار دو پلتفرم دیگر (تشکیل اکوسیستم)، هنوز خبری از رشد و رونق این پلتفرم - در‌اندازه‌هایی که انتظار می‌رود-نیست. چرایی این موضوع در این نوشته نمی‌گنجد اما همین موضوع سبب شده تا درباره اهداف و پی‌آمدهای اتحاد راهبردی مایکروسافت و نوکیا، فرضیه‌های جدیدی مطرح شود. فرضیه‌هایی که برخی از آن‌ها به کلی با تصورات کنونی در تضاد است. 5- دو فرضیه اصلی درباره وضعیت فعلی نوکیا وجود دارد: نخست آن که هدف از اتحاد این شرکت با مایکروسافت، یک بازی برد- برد بوده است. به طور طبیعی هم برداشتی غیر از این، عجیب به نظر می‌رسد؛ غول موبایل به یک سیستم‌عامل قابل رقابت با دیگران نیاز دارد و غول نرم‌افزار هم برای بازگشت به بازی، به یک شرکت خوش‌نام نیازمند است تا سیستم عامل خود را از فرش به عرش برساند. اوضاع اما آن‌طور که باید، پیش نرفته و فرضیه دومی را به وجود آورده است: شاید در این مقطع زمانی، مایکروسافت بیش از آن که به توفیق نوکیا نیاز داشته باشد، به تملک این شرکت مشتاق است و برای تصاحب نماد فناوری فنلاند، چه چيزي بيش از كاهش سهم آن در بازار موبايل و ذهن‌ها مي‌تواند راه را هموار كند؟ پرسش مهم‌تر اين خواهد بود كه اگر اين فرضيه را بپذيريم، آن‌گاه رساندن نوكيا به كدام وضعيت به معناي موفقيت مدير عاملي خواهد بود كه همين بيست و اندي ماه پيش، “دستِ راست بالمر بودن” را رها كرده و به درون يكي از بزرگ‌ترين شركت‌هاي فناورانه اروپا قدم گذاشته است؟ ياد تروا افتاديد؟ ياد چيزهاي مهم‌تري باشيد: شايد نوكيا موفق‌ترين مدير‌عامل دنيا را دارد. ۶- در صنعت موبایل چیزهایی هست که از کشف‌شان لذت می‌بریم. چیزهایی هم هستند که پس از سپری شدن لذت اکتشاف، همچنان ذهن را در حال پردازش نگه می‌دارند. شرکتی به نام مايكروسافت هست که برای بقا، شیوه خاصی را دنبال می‌کند... .
      • 1
      • Like
  8. و باز نمايشگاهی ديگر با جولان طرح‌ها، رنگ‌ها و مجالی نو برای نمايش تازه‌ترين دستاوردهای دانشمندان زبده و مهندسان و طراحان چيره‌دست جهان! نمايشگاه امسال حال و‌ هوای شگرفی داشت و برخی از تازه‌ها به واقع تحسين‌برانگيز بودند. در‌عرصه پردازنده‌های موبايل چندين محصول جديد معرفی شد که نشان می‌داد اين بازار برای تراشه‌سازان از اهميت بسيار بالایی برخوردار است. سخنرانی آغازين اين نمايشگاه که در چند سال گذشته، با ميزبانی مايکروسافت و مديرعامل خروشان‌سخنش استيو بالمر برگزار می‌شد، پس از کناره‌گيری مايکروسافت، امسال به کوالکام و مديرعامل آن، دکتر پاوئل ژاکوب رسيد. چه‌بسا به‌روی صحنه آمدن کوالکام در مراسم آغازين را بتوان به اهميت بازار موبايل و به‌ويژه تراشه‌هایش برای اهل فن تعبير کرد. اما اين همه ماجرا نبود. تلويزيون‌های OLED که سال‌ها مشتاقان را چشم‌انتظار گذارده بودند امسال پس از پيمودن راهی دراز و پشت سر گذاردن مراحل پيچيده فاز تحقيق و توسعه شرکت‌های نام‌دار جهان با جلوه‌ای بيش از سال گذشته به CES 2013 رسيدند. خودروها نيز که هر سال بيش از پيش به تصرف سامانه‌های الکترونيکی و کامپيوتری درمی‌آيند امسال نيز از عطش خود برای به‌کارگيری فناوری‌های نوين حکايت کردند و باز شرکت‌‌های شهير دنيای گرافيک بر توجه ويژه خود به دنيای بازی‌های کامپيوتری صحه گذاردند و در اين ميان پديده‌‌هایی مانند پروژه شيلد رونمایی شدند. بله! سال۲۰۱۳ ميلادی نيز با بزرگ‌‌ترين نمايشگاه دستگاه‌های الکترونيکی و کاربردی دنيا آغاز شد تا بيش از 3000 شرکت‌ حدود 20 هزار کالا و سرويس جديد را با حضورتقریباً 150 هزار علاقه‌مند و متخصص در اين حيطه و تحت پوشش خبری بيش از 5000 رسانه و آژانس خبری به دنيا معرفی کنند. به سنت هر سال، اين‌بار نيز کوشيديم تا بخشی از خبرسازترين محصولات به‌نمايش درآمده را در قالب برگ‌هایی چند فراروی شما قرار دهيم. Download: CES 2013.pdf Size: 3044 kb
      • 1
      • Like
  9. طرف مقابل فک کنم طلب مرگ از خدا کنه اگه بخوای عذابش را هم ببینی و جون طرف پسره بعد از هر بار عذاب دیدن میاد پیش خودت می شینه ولی این کار اصلا بهداشتی نیست حداقل اگه میخوای نابودش کنی تمیز این کارو بکن
  10. Fahim

    اصفونیا کوجاین پس؟

    پیمان این شیرینی چی شد پس
  11. امروز من خدمات ارتباطی بودم گفتن باید با شماره 9990 تماس بگیرید
  12. رتبه ایران چیه ؟؟
  13. حالا خوبه واسه شما فقط تبلیغات میاد !!! من خطم را از شهری که داخلش کار می کردم خریدم چند وقته پیش چند تا شهید گمنام اونجا به خاک سپردن شهرداری هم برای این که مراسم بگیرن تقریبا هر روز از این پیام ها میداد که مردم شهید پرور .... بیاید و در مراسم شرکت کنید بعد مراسم سوم شد بعد مراسم هفته شد بعد از هر مراسم هم تشکر می کردن از این همه حضور مردمی 9 دی هم پدرمون را در آوردن از بس پیام دادن بیاین شرکت کنید در راهپیمایی حمایت از رهبر
  14. من فعلا الافم درس هم می خونم اما بیشتر الافم :icon_pf (34):
  15. Fahim

    اصفونیا کوجاین پس؟

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

    اصفونیا کوجاین پس؟

    :icon_gol: خوب خدا را شکر خیلی زحمت کشید واقعا حقش بود که قبول بشه
  17. میشه چله کشی را یه بار دیگه توضیح بدی من طرحم را انتخاب کردم خود کسی که پرینت می گرفت برام روی کاغذ شطرنجی پرینت رنگی گرفت ولی چله کشی را متوجه نشدم یه سوال دیگه به نظرت چقدر طول میکشه بافته بشه
  18. چرا این کارو با من میکنید ؟ نمیخواستم امسال بافتنی ببافم خیلی خوشمله جو گیر شدم دیگه فایده نداره
  19. Fahim

    اصفونیا کوجاین پس؟

    از مورتا (مهرزاد) کسی خبر داره؟ کنکور را چیکار کرد ؟ هر وقت مورتا را دیدیم گفت درس دارم :icon_razz: کسی می دونه چی کار کرد؟
  20. Fahim

    اصفونیا کوجاین پس؟

    اگر رفتنی شدیم شوما هم بیا کلا همه دعوت پیمان هستید :gnugghender: موسویان هم اومد دعوت پیمان و موسویان هستید
  21. Fahim

    اصفونیا کوجاین پس؟

    شما چرا ناراحتی؟؟؟
  22. Fahim

    اصفونیا کوجاین پس؟

    عزیزمیییی :heartshape2::aghosh:
  23. Fahim

    اصفونیا کوجاین پس؟

    آخخخ جووون یه شیرینی افتادیم :gnugghender: به یاد 21 بهمن سال گذشته میخوای 21 بهمن بریم؟؟؟
  24. با اجازتون تالار کامپیوتر بعضی قسمت هاش را بررسی کردم ولی تالار کامپیوتر خیلی گسترده است تنها راه حلی هم که داشتم این بود که گزارش بدم
  25. Fahim

    اصفونیا کوجاین پس؟

    چی شدی دخملیم ؟؟؟؟
×
×
  • اضافه کردن...