ما همواره ۱۹۸۴ اورول را می خوانیم و از این که در آمریکا به مشکلاتی که در کتاب به آن دچار نیستیم به خود می بالیم. اما این واقعیت مهم را فراموش کرده ایم که در کنار منظرگاه تیره ای که اورول برای ما ترسیم می کند منظرگاه دیگری هم هست که قدری پیچیده تر، قدری ناشناخته تر و به همان اندازه تیره (و چه بسا تیره تر) است. این منظرگاه توسط هاکسلی در کتاب Brave new world (دنیای قشنگ نو) معرفی شده است. اورول نسبت به جهانی هشدار می دهد که ما در آن تحت ستمی بیرونی مانند رژیمی دیکتاتوری یا پادشاهی خودکامه قرار گرفته ایم. اما هاکسلی نسبت به جهانی هشدار می دهد که هیچ رئیس و قیمی مردم را از آزادی، بلوغ ذهنی و تاریخ شان محروم نکرده است اما مردم دلباخته ستمی که به آن ها میشوند شده اند! و شیفته ی تکنولوژی هایی که ظرفیت فکر کردنشان را پایین آورده است. اورول از جهانی می ترسید که درآن کتاب ها ممنوع شده اند اما هاکسلی جهانی را ترسیم می کند که دلیلی برای ممنوع کردن کتابی وجود ندارد چون کسی مشتاق نیست که آن ها را بخواند! اورول از جهانی واهمه دارد که حکومت منابع را از توده ها دریغ کرده و فقط در اختیار طبقه ی مرفه میگذارد، هاکسلی از موقعیتی میترسد که حکومت آنقدر امکانات در اختیار ما قرار می دهند که در نهایت منجر به انفعال و خود خواهی ما میشود. اورول می ترسید که حقیقت پنهان شود، هاکسلی میترسید که حقیقت در دریای ابتذالات غرق شود. اورول از جامعه ای در بند می ترسید اما هاکسلی از جامعه ای مبتذل می ترسید. و به طور خلاصه اورول از کنترل شدن مردم با درد می ترسید و هاکسلی از کنترل شدن مردم با لذت.
https://vrgl.ir/jPvzo
https://vrgl.ir/jPvzo
ویرگول
شبکه های اجتماعی،هوموفیلی و اگزیستانسیالیم
مساله آزادی به عنوان یکی از مباحث مرکزی فلسفه همواره مورد توجه بوده است این که آزادی چیست و چه عواملی آن را محدود میکنند و از همه مهمتر ره…
کد کواین (quine code)
یکی از ویژگی های کامپیوتر های امروزی این است که فرقی بین داده و کد به صورت ذاتی قایل نیستند. این به چه معناست؟ فرض کنید شما یک دستگاه مکانیکی بسازید که جمع یا ضرب کند. نمونه های آن ابزارهایی مثل چرتکه یا امثالهم هستند. به عبارتی «کد» برنامه در درون خود ابزار حک شده است و آن را تک کاربرده کرده است. نمونه های دیگر آن مدارهایی است که در درس مدار منطقی میسازید و مثلا اعداد را به هم جمع میکنند. اما ایده اینکه بتوان برنامه را به عنوان ورودی گرفت و سپس آن را اجرا کرد یک ایده انقلابی بود که منجر به پدید آمدن صنعت نرم افزار شد!
به این ترتیب کامپیوتر می تواند کد شما رو به عنوان ورودی گرفته و خروجی آن را نمایش می دهد. مثلا یک برنامه محاسبه اعداد اول کد شما رو میگیرد و اعداد اول خروجی می دهد! حالا فکر کنید شما برنامه ای پیدا کنید که وقتی آن را به عنوان ورودی به کامپیوتر می دهید خود همان برنامه را خروجی دهد!! در واقع چنین برنامه ای نقطه ثابت (fixed-point) محاسبه گر شماست! چنین ایده ی عجیب و غریبی ابتدا محال بنظر می رسد اما با کمی دقت می توان چنین برنامه ای را تولید کرد. در واقع می توان برای هر زبان برنامه نویسی چنین کدی را یافت. در اینجا خود را به پایتون ۳.۸ محدود می کنیم.
ایده ی اساسی تولید چنین برنامه ای بر اساس خود ارجاعی (self-reference) است که بدون اغراق بزرگترین زهر و تریاق در تمام ریاضیات و منطق است. مسایلی که خود ارجاعی حل میکند ما را به مرتبه جدیدی از حل مساله می رساند و گره هایی که ایجاد می کند هزاران سال است که حل نشده اند! پرداختن به خود ارجاعی خود مجالی جدا می طلبد.
کد پایتون مورد نظر این است:
exec(s:="print('exec(s:=%r)'%s)")
درک این کد بسیار دشوار است! اینجا می خواهم نشان بدهم من چطور وقتی فرمول یا مفهوم پیچیده ای را می بینیم آن را درک میکنم.
بهترین روش شکستن آن مفهوم به اجزایش است آنقدر این شکستن باید ادامه پیدا کند تا به ساده ترین جز برسیم که قابل درک است. اینجا چیزی که عجیب است تابع exec است که معمولا با آن آشنا نیستند. این تابع صرفا یک رشته را میگیرد ولی آن را به صورت کد تفسیر می کند و آن را اجرا می کند. به طور مثال:
exec("print(5)")
خروجی ۵ می دهد. می توان خود این رشته را در یک متغیر مثلا s ریخت:
exec(s:="print(5)")
این مرحله شاید دشوار ترین مرحله باشد. الان می توانیم خود رشته را چاپ کنیم
exec(s:="print(s)")
اجرای آن "print(s)" را خروجی می دهد. حالا کد زیر را:
exec(s:="t=88; print('exec(s:=%r)' %t)")
این قطعه کد متغیر t=88 را می سازد و سپس در دستور بعدی مقدار آن را مساوی r میگذارد. پس خروجی می شود: exec(s:=88)
در نهایت می توان خود کد را درک کرد:
exec(s:="print('exec(s:=%r)'%s)")
این کد به جای متغیر t خود عبارت را با r جایگزین می کند.
حالا ممکن است بپرسید فایده چنین عبارتی چیست؟ آیا صرفا یک بازی و ریاضی است؟ اگرچه اینگونه عبارت ها از لحاظ منطق و ریاضیات جالب و ارزشمند هستند اما یک کاربرد عملی بسیار مهم دارند. این کدها به ما نشان می دهند چطور برنامه هایی بنویسیم که قابلیت کپی کردن خود را دارند!! این دقیقا چیزی است که ژن های انسان و به صورت کلی هر ارگانیسم زنده انجام می دهند. آن ها حاوی کدهایی هستند که اصطلاحا self replicate هستند! ساختن چنین ماشین هایی قطعا یکی از بزگترین دست آوردهای هوش مصنوعی در آینده خواهد بود.
یکی از ویژگی های کامپیوتر های امروزی این است که فرقی بین داده و کد به صورت ذاتی قایل نیستند. این به چه معناست؟ فرض کنید شما یک دستگاه مکانیکی بسازید که جمع یا ضرب کند. نمونه های آن ابزارهایی مثل چرتکه یا امثالهم هستند. به عبارتی «کد» برنامه در درون خود ابزار حک شده است و آن را تک کاربرده کرده است. نمونه های دیگر آن مدارهایی است که در درس مدار منطقی میسازید و مثلا اعداد را به هم جمع میکنند. اما ایده اینکه بتوان برنامه را به عنوان ورودی گرفت و سپس آن را اجرا کرد یک ایده انقلابی بود که منجر به پدید آمدن صنعت نرم افزار شد!
به این ترتیب کامپیوتر می تواند کد شما رو به عنوان ورودی گرفته و خروجی آن را نمایش می دهد. مثلا یک برنامه محاسبه اعداد اول کد شما رو میگیرد و اعداد اول خروجی می دهد! حالا فکر کنید شما برنامه ای پیدا کنید که وقتی آن را به عنوان ورودی به کامپیوتر می دهید خود همان برنامه را خروجی دهد!! در واقع چنین برنامه ای نقطه ثابت (fixed-point) محاسبه گر شماست! چنین ایده ی عجیب و غریبی ابتدا محال بنظر می رسد اما با کمی دقت می توان چنین برنامه ای را تولید کرد. در واقع می توان برای هر زبان برنامه نویسی چنین کدی را یافت. در اینجا خود را به پایتون ۳.۸ محدود می کنیم.
ایده ی اساسی تولید چنین برنامه ای بر اساس خود ارجاعی (self-reference) است که بدون اغراق بزرگترین زهر و تریاق در تمام ریاضیات و منطق است. مسایلی که خود ارجاعی حل میکند ما را به مرتبه جدیدی از حل مساله می رساند و گره هایی که ایجاد می کند هزاران سال است که حل نشده اند! پرداختن به خود ارجاعی خود مجالی جدا می طلبد.
کد پایتون مورد نظر این است:
exec(s:="print('exec(s:=%r)'%s)")
درک این کد بسیار دشوار است! اینجا می خواهم نشان بدهم من چطور وقتی فرمول یا مفهوم پیچیده ای را می بینیم آن را درک میکنم.
بهترین روش شکستن آن مفهوم به اجزایش است آنقدر این شکستن باید ادامه پیدا کند تا به ساده ترین جز برسیم که قابل درک است. اینجا چیزی که عجیب است تابع exec است که معمولا با آن آشنا نیستند. این تابع صرفا یک رشته را میگیرد ولی آن را به صورت کد تفسیر می کند و آن را اجرا می کند. به طور مثال:
exec("print(5)")
خروجی ۵ می دهد. می توان خود این رشته را در یک متغیر مثلا s ریخت:
exec(s:="print(5)")
این مرحله شاید دشوار ترین مرحله باشد. الان می توانیم خود رشته را چاپ کنیم
exec(s:="print(s)")
اجرای آن "print(s)" را خروجی می دهد. حالا کد زیر را:
exec(s:="t=88; print('exec(s:=%r)' %t)")
این قطعه کد متغیر t=88 را می سازد و سپس در دستور بعدی مقدار آن را مساوی r میگذارد. پس خروجی می شود: exec(s:=88)
در نهایت می توان خود کد را درک کرد:
exec(s:="print('exec(s:=%r)'%s)")
این کد به جای متغیر t خود عبارت را با r جایگزین می کند.
حالا ممکن است بپرسید فایده چنین عبارتی چیست؟ آیا صرفا یک بازی و ریاضی است؟ اگرچه اینگونه عبارت ها از لحاظ منطق و ریاضیات جالب و ارزشمند هستند اما یک کاربرد عملی بسیار مهم دارند. این کدها به ما نشان می دهند چطور برنامه هایی بنویسیم که قابلیت کپی کردن خود را دارند!! این دقیقا چیزی است که ژن های انسان و به صورت کلی هر ارگانیسم زنده انجام می دهند. آن ها حاوی کدهایی هستند که اصطلاحا self replicate هستند! ساختن چنین ماشین هایی قطعا یکی از بزگترین دست آوردهای هوش مصنوعی در آینده خواهد بود.
جهان هستی چه شکلی است؟
وقتی به آسمان شب نگاه می کنیم ستاره های زیادی میبینیم. وقتی در بیرون از شهر باشیم جزئیات بیشتری از رد سفید رنگ راه شیری میبینیم اما مشکلی که هم برای چشم غیر مسلح و هم قویترین تلسکوپ های ساخت بشر وجود دارد نور ستاره هایی است که بسیار دورتر از ما هستند و تاکنون نور آن ها به ما نرسیده است. به همین منظور دانشمندان تصمیم به شبیه سازی بخشی از جهان هستی کردند. این شبیه سازی بر اساس داده های ماهواره کوبه در مورد تابش زمینه ای است. دراین آزمایش یک مکعب به طول 2 میلیارد سال نوری و شامل 20 میلیارد کهکشان شبیه سازی شد. این شبیه سازی توسط یکی از قدرتمند ترین ابر کامپیوتر های دنیا به نام JUROPA با 12 هزار هسته و 30 ترا بایت رم انجام شد و خروجی آن را که در تصاویر زیر می بینید بیش از 100 ترابایت داده است. این شبیه سازی به داده های تجربی همخوانی دارد و تاکنون بیش از 650 مقاله بر اساس آن چاپ شده است.
اما عجیب ترین نکته در این تصاویر که دانشمندان را متحیر کرد شباهت عجیب ساختار جهان به مغز انسان است. این شباهت فراتر از ظاهر است. مطالعه ای توسط Dmitri Krioukov در دانشگاه کالیفرنیا نشان داد که هر دو ساختار از قوانین ریاضی مشابهی پیروی می کنند. حتی ارتباط بین سلول های نورون مغز با خوشه های کهکشانی دارای سازو کار مشابهی است.
یک پارسِک برابر با ۳۰٫۹ تریلیون کیلومتر (۱۹٫۲ تریلیون مایل) و معادلِ ۳٫۲۶ سال نوری است
وقتی به آسمان شب نگاه می کنیم ستاره های زیادی میبینیم. وقتی در بیرون از شهر باشیم جزئیات بیشتری از رد سفید رنگ راه شیری میبینیم اما مشکلی که هم برای چشم غیر مسلح و هم قویترین تلسکوپ های ساخت بشر وجود دارد نور ستاره هایی است که بسیار دورتر از ما هستند و تاکنون نور آن ها به ما نرسیده است. به همین منظور دانشمندان تصمیم به شبیه سازی بخشی از جهان هستی کردند. این شبیه سازی بر اساس داده های ماهواره کوبه در مورد تابش زمینه ای است. دراین آزمایش یک مکعب به طول 2 میلیارد سال نوری و شامل 20 میلیارد کهکشان شبیه سازی شد. این شبیه سازی توسط یکی از قدرتمند ترین ابر کامپیوتر های دنیا به نام JUROPA با 12 هزار هسته و 30 ترا بایت رم انجام شد و خروجی آن را که در تصاویر زیر می بینید بیش از 100 ترابایت داده است. این شبیه سازی به داده های تجربی همخوانی دارد و تاکنون بیش از 650 مقاله بر اساس آن چاپ شده است.
اما عجیب ترین نکته در این تصاویر که دانشمندان را متحیر کرد شباهت عجیب ساختار جهان به مغز انسان است. این شباهت فراتر از ظاهر است. مطالعه ای توسط Dmitri Krioukov در دانشگاه کالیفرنیا نشان داد که هر دو ساختار از قوانین ریاضی مشابهی پیروی می کنند. حتی ارتباط بین سلول های نورون مغز با خوشه های کهکشانی دارای سازو کار مشابهی است.
یک پارسِک برابر با ۳۰٫۹ تریلیون کیلومتر (۱۹٫۲ تریلیون مایل) و معادلِ ۳٫۲۶ سال نوری است
🟢چرا از اوبونتو (Ubuntu) به مانجارو (Manjaro) مهاجرت کردم؟🟢
دلایل اصلی من برای استفاده از لینوکس نسبت به ویندوز بسیار زیاد است اما می توان به موارد زیر خلاصه کرد:
۱- تقریبا تمام جامعه یادگیری ماشین از لینوکس به عنوان سیستم عامل اولیه استفاده می کنند، بیشتر کتابخانه ها و چارچوب ها اول برای لینوکس توسعه داده می شوند.
۲- استفاده از لینوکس برای یادگیری ماشین به مراتب ساده تر است چون تکنولوژی های یادگیری ماشین همگی بر اساس لینوکس هستند.
۳- لینوکس سریع تر و مدیریت کردن آن ساده تر است. این تقریبا برای هر نوع برنامه نویسی ای صادق است و به همین خاطر به یادگیری ماشین هم قابل تعمیم است.
شاید به عنوان یه کاربر نهایی که بیشتر زمانم به کدنویسی برای یادگیری ماشین و علوم داده سپری میشود انتخاب توزیع (distro) لینوکس اهمیت چندانی نداشته باشد چون به ندرت امکانات خاص یک توزیع لینوکس برای من قابل استفاده می شود. اما اخیرا متوجه شدم که اشتباه می کنم. استفاده از توزیع مانجارو به دلایل بسیار زیادی برای من که در مجموع حدود شاید ده برنامه دسکتاپ نیاز دارم بسیار بهتر است. از اول شروع میکنم
۱- نصب مانجارو بسیار بسیار ساده و سریع است. بعد از دانلود فایل iso و لود کردن آن بر روی یک یو اس بی در کمتر از ده دقیقه (با هارد ssd) سیستم عامل شما نصب شده است. یکی از دلایل سرعت بالا این است که مانجارو که یک نسخه از arch است بر اساس فلسفه ی مینیمالیزم است به این معنی که حداقل چیزها را بر روی سیستم شما نصب می کند. این برخلاف اوبونتو هست که برنامه های زیادی مانند Librioffice که عملا برای بیشتر کابران بی استفاده است را همراه خود سیستم عامل نصب می کند.
۲- سیستم package manager و نصب برنامه مانجاور در برابر آشوب اوبونتو شبیه به یک معجزه است. سیستم یکپارچه نرم افزارهای مانجارو که بسیار بزرگ است به شما امکان می دهد هر نرم افزاری را در داخل خود سیستم بدون جستجو و دانلود در وب نصب کنید. این برای نرم افزارهای غیر رسمی AUR هم صادق است. مثال ساده آن نصب گوگل کروم است که بسیار ساده تر و بدون دردسر است. از طرفی حمایت مانجارو از snap این امکان را می دهد که بقیه نرم افزار ها هم به سادگی نصب شوند. در مقابل سیستم ppa در اوبونتو دارای مشکلات زیادی ست مثلا بعد از مدتی که یک برنامه منقضی می شود باید ppa آن آپدیت شود یا پکیج هایی که رها شده یا دیگر توسعه داده نمی شوند حذف شده و به طور کلی مدیریت آن بسیار دشوار است.
۳- سیستم مرکزی تشخیص سخت افزار مانجارو (Manjaro HardWare Detection ) یک روش بسیار هوشمندانه برای شناسایی سخت افزار سیستم شما و نصب درایورهای متناسب با آن است. چنین چیزی عملا همان هدفی است که ویندوز به دنبال ان بود و شکست خورد. به عنوان یک تجربه نصب درایور کارت گرافیک Nvidia به علاوه cuda و cudnn که عملا یک پروژه چند روزه بر روی اوبونتو یا ویندوز است در مانجارو به سادگی وارد کردن دو دستور در خط فرمان است!!
نصب درایور:
sudo mhwd -a pci nonfree 0300
نصب cuda , cudnn:
sudo pacman -S cuda cudnn
تفاوت پیچیدگی این انجام این کار با اوبونتو تقریبا شبیه یک شوخی است!
۴- سرعت بالاتر: یکی از دلایل سرعت بالاتر مانجارو تعداد کمتر سرویس هایی است که به صورت عادی بر روی سیستم درحال اجراست. از طرفی مانجارو (مانند arch) بر اساس فلسفه آخرین آپدیت (Rolling release model) قرار گرفته است بنابراین شما همیشه آخرین نسخه ی نرم افزارها رو استفاده می کنید و نیازی به بروز رسانی دستی آن ها نیست. این البته با یک مشکل هم مواجه است که ممکن است آخرین نرم افزار ها لزوما پایدارترین نسخه ها نباشند. هر چند مانجارو به شما امکان می دهد که هسته لینوکس را خودتان انتخاب کنید.
۵- بومی سازی و ظاهر: از لحاظ میزان شخصی سازی برگ برنده باز هم در دست مانجارو است. مانجارو بدون دستکاری خاصی با سه نوع مختلف محیط دسکتاپ KDE, GNOME and XFCE می آید در حالی که اوبونتو تنها با GNOME می آید. هرچند همچنان قابلیت بومی سازی در اوبونتو وجود دارد اما این کار با تغییرات زیادی همراه است که منجر به ناپایداری سیستم می شود و ارزش تغییر ظاهر را ندارد. در حالی که مانجارو بر روی KDE به صورت پیش فرض یک محیط دسکتاپ بسیار زیبا و مدرن را ارایه می کند و ابزار های داخلی خود آن برای نصب تم بسیار ساده و سریع هستند و به شما امکان انتخاب هزاران تم از ظاهر اولیه تا شکل و اندازه آیکون ها را می دهد. این شاید مزیت مهمی نباشد اما از لحاظ زیبایی شناختی قطعا مانجارو برنده است.
دلایل اصلی من برای استفاده از لینوکس نسبت به ویندوز بسیار زیاد است اما می توان به موارد زیر خلاصه کرد:
۱- تقریبا تمام جامعه یادگیری ماشین از لینوکس به عنوان سیستم عامل اولیه استفاده می کنند، بیشتر کتابخانه ها و چارچوب ها اول برای لینوکس توسعه داده می شوند.
۲- استفاده از لینوکس برای یادگیری ماشین به مراتب ساده تر است چون تکنولوژی های یادگیری ماشین همگی بر اساس لینوکس هستند.
۳- لینوکس سریع تر و مدیریت کردن آن ساده تر است. این تقریبا برای هر نوع برنامه نویسی ای صادق است و به همین خاطر به یادگیری ماشین هم قابل تعمیم است.
شاید به عنوان یه کاربر نهایی که بیشتر زمانم به کدنویسی برای یادگیری ماشین و علوم داده سپری میشود انتخاب توزیع (distro) لینوکس اهمیت چندانی نداشته باشد چون به ندرت امکانات خاص یک توزیع لینوکس برای من قابل استفاده می شود. اما اخیرا متوجه شدم که اشتباه می کنم. استفاده از توزیع مانجارو به دلایل بسیار زیادی برای من که در مجموع حدود شاید ده برنامه دسکتاپ نیاز دارم بسیار بهتر است. از اول شروع میکنم
۱- نصب مانجارو بسیار بسیار ساده و سریع است. بعد از دانلود فایل iso و لود کردن آن بر روی یک یو اس بی در کمتر از ده دقیقه (با هارد ssd) سیستم عامل شما نصب شده است. یکی از دلایل سرعت بالا این است که مانجارو که یک نسخه از arch است بر اساس فلسفه ی مینیمالیزم است به این معنی که حداقل چیزها را بر روی سیستم شما نصب می کند. این برخلاف اوبونتو هست که برنامه های زیادی مانند Librioffice که عملا برای بیشتر کابران بی استفاده است را همراه خود سیستم عامل نصب می کند.
۲- سیستم package manager و نصب برنامه مانجاور در برابر آشوب اوبونتو شبیه به یک معجزه است. سیستم یکپارچه نرم افزارهای مانجارو که بسیار بزرگ است به شما امکان می دهد هر نرم افزاری را در داخل خود سیستم بدون جستجو و دانلود در وب نصب کنید. این برای نرم افزارهای غیر رسمی AUR هم صادق است. مثال ساده آن نصب گوگل کروم است که بسیار ساده تر و بدون دردسر است. از طرفی حمایت مانجارو از snap این امکان را می دهد که بقیه نرم افزار ها هم به سادگی نصب شوند. در مقابل سیستم ppa در اوبونتو دارای مشکلات زیادی ست مثلا بعد از مدتی که یک برنامه منقضی می شود باید ppa آن آپدیت شود یا پکیج هایی که رها شده یا دیگر توسعه داده نمی شوند حذف شده و به طور کلی مدیریت آن بسیار دشوار است.
۳- سیستم مرکزی تشخیص سخت افزار مانجارو (Manjaro HardWare Detection ) یک روش بسیار هوشمندانه برای شناسایی سخت افزار سیستم شما و نصب درایورهای متناسب با آن است. چنین چیزی عملا همان هدفی است که ویندوز به دنبال ان بود و شکست خورد. به عنوان یک تجربه نصب درایور کارت گرافیک Nvidia به علاوه cuda و cudnn که عملا یک پروژه چند روزه بر روی اوبونتو یا ویندوز است در مانجارو به سادگی وارد کردن دو دستور در خط فرمان است!!
نصب درایور:
sudo mhwd -a pci nonfree 0300
نصب cuda , cudnn:
sudo pacman -S cuda cudnn
تفاوت پیچیدگی این انجام این کار با اوبونتو تقریبا شبیه یک شوخی است!
۴- سرعت بالاتر: یکی از دلایل سرعت بالاتر مانجارو تعداد کمتر سرویس هایی است که به صورت عادی بر روی سیستم درحال اجراست. از طرفی مانجارو (مانند arch) بر اساس فلسفه آخرین آپدیت (Rolling release model) قرار گرفته است بنابراین شما همیشه آخرین نسخه ی نرم افزارها رو استفاده می کنید و نیازی به بروز رسانی دستی آن ها نیست. این البته با یک مشکل هم مواجه است که ممکن است آخرین نرم افزار ها لزوما پایدارترین نسخه ها نباشند. هر چند مانجارو به شما امکان می دهد که هسته لینوکس را خودتان انتخاب کنید.
۵- بومی سازی و ظاهر: از لحاظ میزان شخصی سازی برگ برنده باز هم در دست مانجارو است. مانجارو بدون دستکاری خاصی با سه نوع مختلف محیط دسکتاپ KDE, GNOME and XFCE می آید در حالی که اوبونتو تنها با GNOME می آید. هرچند همچنان قابلیت بومی سازی در اوبونتو وجود دارد اما این کار با تغییرات زیادی همراه است که منجر به ناپایداری سیستم می شود و ارزش تغییر ظاهر را ندارد. در حالی که مانجارو بر روی KDE به صورت پیش فرض یک محیط دسکتاپ بسیار زیبا و مدرن را ارایه می کند و ابزار های داخلی خود آن برای نصب تم بسیار ساده و سریع هستند و به شما امکان انتخاب هزاران تم از ظاهر اولیه تا شکل و اندازه آیکون ها را می دهد. این شاید مزیت مهمی نباشد اما از لحاظ زیبایی شناختی قطعا مانجارو برنده است.
در نهایت اینکه اوبونتو یک توزیع بسیار عالی ست و من همچنان به کسی که تازه وارد دنیای لینوکس شده است آن را پیشنهاد می کنم اما بعد از مدتی کار کردن با آن و یاد گرفتن اصول اولیه حرکت به صورت توزیع های کمتر شناخته شده اما با کیفیت تری مانند manjaro یا mint منطقی تر است. از طرفی اوبونتو با اینکه تصمیمات اشتباه زیادی در چندین سال اخیر گرفته که منجر به مهاجرت کاربرانش شده است همچنان بزرگترین جامعه کاربری را دارد و بنابراین پیدا کردن جواب برای مشکلاتتان در وب ساده تر است. البته مانجارو هم از این لحاظ در جایگاه دوم قرار می گیرد.
This media is not supported in your browser
VIEW IN TELEGRAM
بزرگترین باگ کامپیوتری تاریخ
در چهارم ژوئن ۱۹۹۶ راکت آریان ۵ از ایستگاه فضایی اروپا به فضا پرتاب شد اما ۳۷ ثانیه بعد فضاپیما نود درجه چرخید و در نهایت در کمتر از دو ثانیه در ارتفاع چهار کیلومتری زمین منفجر شد و ۳۷۰ میلیون دلار تجهیزات در مقابل چشمان جهانیان دود شد و به هوا رفت!! مشکل کجا بود؟
بررسی دقیق بعد از حادثه مشخص کرد یک باگ ساده کامپیوتری باعث این موضوع شده بود. باگ در سیستم محاسبه مرجع لخت راکت بود. در قسمتی از کد برنامه (که به زبان Ada نوشته شده بود) عدد اعشاری ۶۴ بیتی(floating point) به عدد ۱۶ بیتی صحیح تبدیل که منجر به یک خطای سخت افزاری (hardware exception) شده بود. این خطا به صورت آبشاری منجر به خطاهای دیگر در سیستم و در نهایت انفجار راکت شد!
این باگ به عنوان گران ترین اشتباه نرم افزاری تاریخ شناخته می شود و اهمیت بررسی های دقیق نرم افزاری مانند تست و formal verification را برای متخصصان، مردم رسانه ها و سیاستمداران روشن کرد!
در چهارم ژوئن ۱۹۹۶ راکت آریان ۵ از ایستگاه فضایی اروپا به فضا پرتاب شد اما ۳۷ ثانیه بعد فضاپیما نود درجه چرخید و در نهایت در کمتر از دو ثانیه در ارتفاع چهار کیلومتری زمین منفجر شد و ۳۷۰ میلیون دلار تجهیزات در مقابل چشمان جهانیان دود شد و به هوا رفت!! مشکل کجا بود؟
بررسی دقیق بعد از حادثه مشخص کرد یک باگ ساده کامپیوتری باعث این موضوع شده بود. باگ در سیستم محاسبه مرجع لخت راکت بود. در قسمتی از کد برنامه (که به زبان Ada نوشته شده بود) عدد اعشاری ۶۴ بیتی(floating point) به عدد ۱۶ بیتی صحیح تبدیل که منجر به یک خطای سخت افزاری (hardware exception) شده بود. این خطا به صورت آبشاری منجر به خطاهای دیگر در سیستم و در نهایت انفجار راکت شد!
این باگ به عنوان گران ترین اشتباه نرم افزاری تاریخ شناخته می شود و اهمیت بررسی های دقیق نرم افزاری مانند تست و formal verification را برای متخصصان، مردم رسانه ها و سیاستمداران روشن کرد!
This media is not supported in your browser
VIEW IN TELEGRAM
مانند بقیه مدیران سخنران خوبی نیست. لباس های معمولی می پوشد اما نه برای شوآف. دغدغه اش از جنس چیزی است که همه درک می کنند و او هم آن را زندگی می کند. شعارهای قشنگ اما تو خالی نمی دهد. می توانست ثروتمند ترین مرد جهان باشد. بسیار ثروتمند تر از جف بزوس. اما به کشورهای توسعه نیافته سفر می کند و به دنبال گسترش چیزی ست که ساخته است. او تیم برنرز لی (Tim berners-lee) است. بله او را نمی شناسید چون او بیزینس منی نیست که آیفون را به جهانیان معرفی کرد و چه اختراع بزرگی (!!) که زندگی بشر را متحول کرد! خیر او سازنده چیزی بسیار اساسی تر است: شبکه جهانی وب یا اینترنت. اما تصمیم گرفت که آن را رایگان در اختیار مردم قرار دهد. حرکتی که در جهان ورشکسته ی اخلاقی امروز قابل درک نیست. جنجال های اخیر در مورد مشکلات انحصار در اینترنت من را به یاد این مرد انداخت و دیدگاه او که به طرز بی رحمانه ای توسط رسانه ها پوشش داده نمی شود. او قهرمان واقعی ست که مردم باید بشناسند و بدانند چرا اینترنت باید آزاد، غیر متمرکز و رایگان باشد. تنها هدف این نوشته هم آشنا کردن هر کسی بود که با اون آشنا نیست.
بازسازی چهره سلاطین روم باستان با استفاده از GAN
برای این کار از عکس های مجسمه های بازمانده از آن ها استفاده شده است.
برای اینکار صد البته چندین منبع اطلاعاتی اضافه وارد شده است. سعی شده است تا نژاد و رنگ مو و چشم بر اساس محل تولد وارد شود. سن بر اساس سال مرگ انتخاب شده است. در انتخاب مجسمه ها هم سعی شده است زشت ترین آن ها انتخاب شود چون این احتمال وجود دارد که مجسمه سازان قدری در ویژگی های زیبایی برای چاپلوسی اغراق کرده باشند.
صفحه پروژه
برای این کار از عکس های مجسمه های بازمانده از آن ها استفاده شده است.
برای اینکار صد البته چندین منبع اطلاعاتی اضافه وارد شده است. سعی شده است تا نژاد و رنگ مو و چشم بر اساس محل تولد وارد شود. سن بر اساس سال مرگ انتخاب شده است. در انتخاب مجسمه ها هم سعی شده است زشت ترین آن ها انتخاب شود چون این احتمال وجود دارد که مجسمه سازان قدری در ویژگی های زیبایی برای چاپلوسی اغراق کرده باشند.
صفحه پروژه
برنامه نویسی سرویس گرا در پایتون
یکی از مشکلاتی که برای سیستم های یادگیری ماشین در فاز deployment رخ می دهد مدیریت منابع در زمانی است که تعداد کاربران زیاد می شوند. همه می دانیم که سیستم های یادگیری ماشین به طور معمول از لحاظ مصرف منابع بسیار حریص هستند و اگر برای هر کاربری که از سیستم استفاده می کند یکبار چنین مدل هایی را بارگذاری کنیم بعد از مدت بسیار کوتاهی و فقط با چند کاربر تمامی منابع سیستم (پردازنده حافظه و GPU) تمام خواهد شد. صد البته چنین مشکلی چیز جدید نیست و انواع و اقسام متد های deployment برای آن اندیشیده شده است. اما اگر از سرویس های ابری خاصی استفاده نمی کنید و به دنبال راه حل سریع و کارآمدی هستید که بتوانید خودتان و به طور کامل در پایتون استفاده کنید استفاده از xmlrpc توصیه می شود.
از آنجایی که من منبع کاملی بر روی اینترنت پیدا نکردم خودم دست به کار شدم و آن را ساختم. ایده اصلی این کار این است که به جای بارگذاری مدل ها برای هر کاربری که به سیستم وارد می شود مدل یک بار در ابتدا بارگذاری می شود و سپس به صورت یک سرویس به سرور وبی شما (مثلا flask یا django) پاسخ می دهد. این روش ساده می تواند بسیار در مصرف حافظه صرفه جویی کند اما این راه حل هم برای هزاران کاربر قابل مقیاس (scale) نیست چرا که حتی با وجود سرویس ها براحتی می توان آن ها را overload کرد. در آن مرحله باید به فکر ابزارهایی مانند celery یا چیزهای مشابه باشید.(احتمالا در آینده اضافه خواهم کرد) این کد همچنین آموزش می دهد که چطور می توان یک برنامه نویسی service oriented را در پایتون انجام داد.
https://github.com/roholazandie/service_oriented_py
یکی از مشکلاتی که برای سیستم های یادگیری ماشین در فاز deployment رخ می دهد مدیریت منابع در زمانی است که تعداد کاربران زیاد می شوند. همه می دانیم که سیستم های یادگیری ماشین به طور معمول از لحاظ مصرف منابع بسیار حریص هستند و اگر برای هر کاربری که از سیستم استفاده می کند یکبار چنین مدل هایی را بارگذاری کنیم بعد از مدت بسیار کوتاهی و فقط با چند کاربر تمامی منابع سیستم (پردازنده حافظه و GPU) تمام خواهد شد. صد البته چنین مشکلی چیز جدید نیست و انواع و اقسام متد های deployment برای آن اندیشیده شده است. اما اگر از سرویس های ابری خاصی استفاده نمی کنید و به دنبال راه حل سریع و کارآمدی هستید که بتوانید خودتان و به طور کامل در پایتون استفاده کنید استفاده از xmlrpc توصیه می شود.
از آنجایی که من منبع کاملی بر روی اینترنت پیدا نکردم خودم دست به کار شدم و آن را ساختم. ایده اصلی این کار این است که به جای بارگذاری مدل ها برای هر کاربری که به سیستم وارد می شود مدل یک بار در ابتدا بارگذاری می شود و سپس به صورت یک سرویس به سرور وبی شما (مثلا flask یا django) پاسخ می دهد. این روش ساده می تواند بسیار در مصرف حافظه صرفه جویی کند اما این راه حل هم برای هزاران کاربر قابل مقیاس (scale) نیست چرا که حتی با وجود سرویس ها براحتی می توان آن ها را overload کرد. در آن مرحله باید به فکر ابزارهایی مانند celery یا چیزهای مشابه باشید.(احتمالا در آینده اضافه خواهم کرد) این کد همچنین آموزش می دهد که چطور می توان یک برنامه نویسی service oriented را در پایتون انجام داد.
https://github.com/roholazandie/service_oriented_py
GitHub
roholazandie/service_oriented_py
Contribute to roholazandie/service_oriented_py development by creating an account on GitHub.