پاس چیه، چرا باید ازش استفاده کنیم و معرفی یه پاس برای تمرین و پروداکشن

قدیم‌ها وقتی یه سرویس می‌نوشتیم، مجبور بودیم سخت افزارش رو بذاریم در یک دیتا سنتر و به اینترنت وصلش کنیم و روش سیستم عامل نصب کنیم و … اما بعد که vps ها اومدن، حداقل دردسر سخت افزار از سر ما باز شد و یکضرب یه سیستم‌عامل داشتیم که باید کانفیگش میکردیم تا مثلا بتونیم جنگو، لاراول یا دیتابیس خودمون رو روش اجرا کنیم. اینو می دونستین؟ حتما می دونستین پس بذارین از یه جای جالب دیگه شروع کنم (:

تو نرم افزار اصطلاح مهمی هست به اسم Yaak Shaving یا تراشیدن موهای گاومیش. بحث هم سر اینه که وقتی مثلا تصمیم می‌گیرین پایه‌های میز ناهار خوری رو محکم کنین، اول باید صندلی هاش رو بذارین جایی مثل انباری که بشه میز رو جابجا کرد ولی می بینین تو انباری جا نیست و مجبورین لباس های قدیمی که اونجا انبار شده رو تحویل یه خیریه بدین ولی چون تو ماشین خودتون جا نمی شه باید زنگ بزنین به یه دوست قدیمی که وانت پراید داره و … و یکهو می بینین چون می خواستین میز ناهارخوری رو عوض کنین، مشغول تراشیدن موهای یه گاومیش هستین (: این تو دنیای نرم افزار خیلی زیاد اتفاق می افته. شما می خواین برنامه ای که نوشتین رو بذارین روی یک سرور ولی می بینین که سه روز مشغول کمپایل یه ماجول یا درست کردن مکانیزم های آپدیت یا بک آپ اتوماتیک و این چیزها هستین.

این مشکل رو توی دنیا، پاس حل می کنه. همون PaaS یا Platform as a Service. پلتفرم اونجایی است که برنامه شما روش اجرا می شه و اگر یه VPS خریده باشین شامل کارهایی می شه مثل درست کردن شبکه اون سرویس، راه انداختن گیت روش، تنظیمات امنیتی، آپدیت کردن، ساختن یوزرها، دسترسی به دیتابیس و غیره و غیره. بعدها هم آپدیت کردنش، خالی کردن هاردش، ارتقاء سخت افزارش و غیره و اطمینان از اینکه بعد از این کارها همه چیز درست کار می کنه. حالا فرض کنین یه شرکت بیاد و این خدمات رو به شما بده و بگه شما کافیه فقط نگران دیتا و برنامه‌تون باشین و بقیه چیزها شامل راه اندازی سرورها، استورج، مجازی‌سازی، سیستم عامل، شبکه و … با اونهاست. این شرکت کلی کار شما رو ساده و امن می کنه. توی این سیستم یکسری سرویس مرسوم از پیش تنظیم شده هست که شما می تونین انتخابشون کنین. مثلا می تونین بگین یه دیتابیس پستگرس یا مای‌اسکوئل لازم دارین و اون به شما یوزر و پسورد و روش اتصالش رو می ده. یا ممکنه بگین نیاز به جایی دارین که بتونه پروژه جنگوی شما رو اجرا کنه یا اصولا در سطحی دیگه، یه کانتینر (مثلا داکر) بهش بدین و بگین سه تا ازش بالا باشه و اگر لازم شد تا ۷ تا هم از اون بیاره بالا. این می شه یه سرویس پاس. سرویسی که کلی از زحمات ما به عنوان مدیر سیستم رو کم می کنه و اجازه می ده روی بخش معماری و برنامه نویسی مون تمرکز کنیم. همچنین انتظار می ره از هر چیزی که خودمون سر هم کرده باشیم، امن تر و قابل توسعه تر باشه.

هر پاسی، معمولا برنامه های کامند لاین خودش رو داره که اجازه می ده بگین «برنامه های داخل این دایرکتوری رو با یه پلتفرم با فلان مقدار رم و سی پی یو بیار بالا». با تنظیمی مثل این:

kind: ExternalService
name: mywebsite
spec:
  image_pull_policy: Always
  port: 80
  source:
    context: .
    media_path: ''
    project_type: django
    python_version: '3.5'
    static_path: static
    wsgi: fandoghapp.wsgi
  env:
    - name: Mysql_Host
        value: db
    - name: Mysql_Password
        value: 123456
    - name: Mysql_User
        value: root
    - name: DB_Name
        value: myDatabaseName

می تونین این رو بنویسین و بعد با استفاده از کامند لاینی که پاس بهتون داده، کد رو پوش کنین و کاری نداشته باشین سیستم عامل اصلی چیه یا چقدر رم داره یا چقدر سی پی یو یا آپدیت شده یا نه. در واقع در پاس ها، شما مسوولیت مدیریت سیستم و غیره رو می سپرین به یکی دیگه و فقط می گین «این کد رو روی سروری با فلان مقدار رم و سی پی یو اجرا کن» و خلاص (:

توی دنیا پاس های مشهوری مثل هروکو هستن که باعث می شه راه اندازی کد، بی نیاز از کارهای مدیر سیستمی بشه ولی خب تو ایران بهشون دسترسی نداریم. اما چند ماه قبل که از نگهداری سرور یه پروژه خسته شده بودم، سرچ کردم و دیدم توی ایران یه پاس هست به اسم فندق و بعد از مدتی تلاش و صحبت با ساپورتشون که خیلی هم با حوصله کمک می کرد، موفق شدم پروژه رو منتقل کنم اونجا و از اون موقع هیچ مشکلی نداشتم و کارهای حتی فان بعدی رو هم با فندق پیش بردم. به نظرم داکیومنت هاشون خیلی خوبه و ساپورتشون از داکیومنت ها هم بهتر. در ضمن دونستن و یادگرفتن کار با پاس،‌ کمی کار می بره ولی جزو مهارت هایی است که خیلی مهمه یه آدم فنی داشته باشه. پیشنهاد می کنم حتی به شکل تفریحی هم که شده، یه چیز کوچیک با سرورهای رایگانشون بالا بیارین – هرچند که به نظرم سرویس رایگانشون برای اکثر کارهای واقعی (حتی شخصی) خیلی کمه؛ ولی برای یادگیری کافیه.

این تبلیغه؟ (: بستگی داره به چی بگین تبلیغ. خودشون نمی دونن من دارم این رو می نویسم و نه فقط بهم پولی ندادن، که پول تک تک کارهایی که روشون کردم رو هم دادم و خواهم داد (: اما به این معنی تبلیغ/آگاهی است که : یه چیز خوب اونجاست که خوبه اگر لازم دارین استفاده اش کنین + یک مهارت مهم هست که خوبه یادش بگیرین. ولی خوب توی این دنیای مهمل این روزها، آدم از هر چی تعریف کنه حتما خواهد شنید: پول گرفته که می گه (: البته من ترجیح می دم پیش فرض این باشه چون واقعا تقریبا همه پول می گیرن که از هر چیزی که پول می ده، تعریف کنن (: به قول معروف «خیلی هاتون پرسیده بودین پس بکشین بالا» ((:

برای اینکه لینک گم نشه: این شما و این فندق و البته دوستان از پشت صحنه تذکر می دن که لیارا هم هست که من همین الان دارم تجربه اش کنم (:

سیستم عامل آزاد و متن بازی برای فردای فروپاشی

فرض کنین یک نفر باشه که فکر کنه فروپاشی تمدن ما نزدیکه. معتقد باشه به زودی زنجیره تامین مواد اولیه جهان به مشکل برخواهد خورد و به خاطر گرون بودن هزینه انرژی، ما هیچ وقت نخواهیم تونست به سطح فعلی‌مون در الکترونیک برگردیم و دونه دونه کامپیوترهایی که داریم از بین خواهند رفت و ما می مونیم و توان حداکثر ساخت میکروپروسسورهایی بسیار ساده تر. راستش من باشم فکر می‌کنم با یه آدم متوهم یا یک رمان علمی‌تخیلی روبرو هستم؛ شایدم یکی فکر کنه راست می‌گه. ولی بحث ما این نیست.

این آدم یه کار خیلی جالب کرده: شروع کرده از حالا یه سیستم عامل آزاد و متن باز درست کنه برای اون دوران و اسمش رو هم گذاشته Collapse OS. یه کرنل z80 و ترکیبی از برنامه‌ها، ابزارها و داکیومنت‌ها که بتونن سیستم‌عاملی رو درست کنن که:

۱. روی ماشین‌های حداقلی / میکروپروسسورها اجرا بشن
۲. بشه با حداقل پورت‌ها باهاشون ارتباط برقرار کرد (سریال، کیبرد و نمایشگر)
۳. بشه باهاشون فایل متنی ادیت کرد
۴. بشه سورس اسمبلی رو برای گستره وسیعی از MCU و CPUها کمپایل کرد
۵. بشه دیوایس‌های ذخیره سازی مثل SDها رو خوند
۶. و بشه با اینها، سیستم رو تکثیر کرد

یعنی در واقع مجموعه ابزارهای کولپس او اس به شما اجازه می‌دن که وقتی با یکسری سی پی یو یا کامپیوترهای تک چیپ تنها موندین، بدون اینترنت و کامپیوترهای مدرن و غیره بتونین اونها رو راه بندازین کنین و چرخی به اسم کامپیوتر رو دوباره اختراع کنین! البته بسیار ساده تر و ابتدایی تر؛ چون به نظر ایشون، بعد از فروپاشی تمدن ما، الکترونیکمون در سطح سی پی یوهای ۸ بیتی خواهد بود.

در حال حاضر این پروژه می‌تونه باینریهای Z80 و AVR رو بسازه، خودش رو بازتولید کنه (یعنی با رم و دیسک کافی، می تونه خودش رو اسمبل کنه)، روی RC2014 ران بشه و کیبرد PS/2 رو بفهمه و یک شل داشته باشه که می تونه به مموری درخواست بده، IO استفاده کنه و کد داخل حافظه رو ران کنه. امکان خوندن حاظه اس دی و ادیتوری در سبک ed هم فراهمه. لازمه اضافه کنم که کرنل + شل کمتر از ۵ کیلوبایت است و اسمبلر هم حدود ۵کیلوبایت که کمتر از ۸ کیلوبایت رم برای اجرا لازم داره.

خلاصه؟ دوستمون معتقده در ۲۰۳۰، جهان شروع به فروپاشی می کنه و به جای سخنرانی صرف در این مورد، تصمیم گرفته از حالا سیستمی رو آماده کنه که ما بدون کامپیوترهای امروزی مون، روی همون میکروکنترلرهای ساده بتونیم بوت‌استرپ کنیم و کامپیوتر داشته باشیم (: جدیت و اینکه واقعا به چیزی که معتقده عمل کرده قابل تحسینه و معلومه که می شه از پروژه سیستم عامل روز فروپاشی‌اش چیزهایی یاد گرفت.

ربات مد در روزهای تلخ

روزهای تلخی رو می گذرونیم. وقاحت و دروغ تمومی نداره ولی ما سعی میکنیم دوام بیاریم. یکی از راه های دوام آوردن من در این شرایط، رفتن سراغ تو دو لیست و تیک زدن کارهای قدیمی ای است که توشه ولی با الویت پایین. چیزهایی مثل لینک دانلود آمازون کتاب توروالدز کار نمی کنه یا مثلا هدرهاش درست از ام.دی. رندر نمی شه یا بررسی و مرج و بستن پی آر های دوستان یا درست کردن یه صفحه برای دانلود کل رادیوگیک‌ها و پیش بردن دوره بلاکچین و اینجور چیزها. من به این وضعیت می گم ربات مد: کارها رو می ذاری جلوت و یکی یکی شروعشون می کنی و پیش می بری. بدون فکر و خیال. موقع کار معمول، آدم فکر و خیال می کنه و برنامه می ریزه و بازی می کنه و … ولی در ربات مد دیگه می پذیره که خیال‌پردازی بسه و کارها باید تیک بخورن یا حداقل روشون وقت صرف بشه. بدون بازیگوشی و پر و بال دادن به خیال و نقشه های دور. این ربات مد‌ معمولا روشی است برای پیش بردن کارهای سخت یا بی مزه یا ترسناک ولی این روزها روشی هم می شه برای حفظ نسبی سلامت عقل. اینجا نوشتم که بگم ازش کمی ویدئو هم در اومده و اگر بخواین می تونین توی کانال آپارات جادی یا کانال یوتوب جادی ببینینشون یا فالو کنین یا هر کار که دوست داشتین. آزاده.

وضعیت کرنل لینوکس در ۲۰۲۰

رسمی هست که بعضی‌ها هر سال وضعیت کرنل رو بررسی می‌کنم. منظورم وضعیت کد، فایل ها، کامیت‌ها و برنامه‌نویس هایی است که این کامیت‌ها رو انجام دادن. بر اساس آمار اولین روز ۲۰۲۰، کرنل لینوکس ۲۷میلیون و ۸۵۲هزار و ۱۴۸ خط است۷ شامل داکیومنت‌ها، کانفیگ ها، ابزارهای یوزر اسپیس و ..). این کرنل ۸۸۷هزار و ۹۲۵ کامیت داشته که محصول کار ۲۱۰۷۴ نفر آدمه. این ۲۷.۸ میلیون خط کد، در ۶۶هزار و ۴۹۲ فایل تقسیم شده.

در طول ۲۰۱۹، کرنل لینوکس ۷۴۷۵۴ کامیت دریافت کرده که از تاریخ ۲۰۱۳، پایین ترین رقم است! کامیت‌ها در سال‌ ۲۰۱۸ و ۲۰۱۷، حدود ۸۰هزار تا بوده و در ۲۰۱۶ حدود ۷۷هزار تا ودر سال های ۲۰۱۴ و ۲۰۱۵، ۷۵هزار. این کمتر شدن نویسندگان در مقایسه ۲۰۱۹ و ۲۰۱۸ هم وجود داشته. در ۲۰۱۹ تعداد نویسندگان ۴۱۸۹ بوده که کمی کمتر از عدد ۴۳۶۲ مربوط به سال ۲۰۱۸ است و البته بیشتر از عدد ۴۰۴۲ سال ۲۰۱۷. البته این کم تر شدن کامیت‌ها، در سطح کد تاثیر زیادی نداشته و با ۳میلیون و ۳۸۶هزار و ۳۴۷ خطی که امسال به کرنل اضافه شده (و البته ۱میلیون و ۶۹۶هزار و ۶۲۰ خط حذف شده)، میزان رشد کنترل تقریبا شبیه هر سال است.

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

برای دیدن اطلاعات بیشتر می تونین به صفحه گیت استت نگاه کنین و برای درک بهتری از پروژه، این خروجی cloc است که کارش شمردن خطوط کد و نمایش آماری اون است. اگر count lines of code یا همون cloc رو روی کرنل اول ۲۰۲۰ رو اجرا کنیم، نتیجه اینه:

   66449 text files.
   66000 unique files.                                          
   11119 files ignored.

github.com/AlDanial/cloc v 1.82  T=67.33 s (822.2 files/s, 388799.5 lines/s)
---------------------------------------------------------------------------------------
Language                             files          blank        comment           code
---------------------------------------------------------------------------------------
C                                    27961        2761653        2292505       14061980
C/C++ Header                         19875         531782         956091        4300989
reStructuredText                      2153         101820          53725         270579
Assembly                              1320          46971         101470         230117
JSON                                   273              0              0         161955
Bourne Shell                           577          13299           9690          52817
make                                  2531           9485          10644          41766
SVG                                     58            117           1364          36216
Perl                                    59           6021           4422          30642
Python                                 118           4987           4588          26256
YAML                                   325           5205           1449          25529
yacc                                     9            697            359           4810
PO File                                  5            791            918           3077
lex                                      8            326            300           2015
C++                                     10            320            129           1933
Bourne Again Shell                      51            356            297           1765
awk                                     10            140            116           1060
Glade                                    1             58              0            603
NAnt script                              2            146              0            551
Cucumber                                 1             28             50            174
Windows Module Definition                2             15              0            109
m4                                       1             15              1             95
CSS                                      1             28             29             80
XSLT                                     5             13             26             61
vim script                               1              3             12             27
Ruby                                     1              4              0             25
INI                                      1              1              0              6
sed                                      1              2              5              5
---------------------------------------------------------------------------------------
SUM:                                 55360        3484283        3438190       19255242
---------------------------------------------------------------------------------------

اگر هم دوست دارین کرنل رو درک کنین۷ این کتاب قدیمی شروع خوبیه «درک کرنل لینوکس / لینک آمازون.

منبع اصلی

مشکل نرم‌افزاری پارکومترها، در ۲۰۲۰ اونها رو از کار انداخت

ماجرای باگ سال ۲۰۰۰ خیلی پر سر و صدا بود ولی عملا خطری درست نکرد. بحث این بود که شاید در حین سوییچ از سال ۱۹۹۹ به ۲۰۰۰، بعضی برنامه نویس ها سال رو فقط در رقم عوض کرده باشن و وقتی سال از ۹۹ تبدیل به ۰۰ می شه، کامپیوتر فکر کنه زمان به عقب برگشته و اتفاقات عجیبی بیافته. اما تقریبا هیچ اتفاق مهمی نیافتاد.

اما حالا در ۲۰۲۰ یه اتفاق بانمک داشتیم: از کار افتادن تعداد زیادی از پارکومترهای همه دنیا از نیویورک سیتی تا استرالیا. سازمان حمل و نقل می گه چون برنامه ای که در این پارکومترها استفاده شده با سال ۲۰۲۰ منطبق نیست، پارکومترها نمی تونن کردیت کارت قبول کنن و فقط با سکه یا اپ مخصوصشون می شه بهشون پول پرداخت کرد. این پارکومترها که توی شهر نیویورک سیتی هم هستن، توسط شرکت Parkeon نصب شدن و ظاهرا آپدیت مناسب رو دریافت نکردن و حالا لازمه که تک به تک سراغشون رفت و آپدیتشون کرد، حدود ۱۴۰۰۰ پارکومتر که حدود ۸۵۰۰۰ جای پارک رو مدیریت می‌کنن.

اگر شما هم برنامه‌ای می‌نویسین یادتون باشه ممکنه مدتی بسیار طولانی تر از اونی که فکر می کنین، فعال بمونه و خوبه که از روز اول حواستون به این مساله باشه، بخصوص تو ایران که ما به زودی با مساله «سال ۱۴۰۰» روبرو خواهیم بودیم و لازمه برنامه‌هامون تاریخ‌ها رو درست ذخیره کنن.

رادیوگیک ۰۹۷ – فلسفه علم به افتخار رها

در این شماره از رادیو گیک، به سراغ یکی از قدیمی ترین بحث هایی می ریم که برای این رادیو تو فکرم بود: فلسفه علم. اینکه علم چیه، چه چیزی می تونه ادعای علمی بودن بکنه و آیا حوزه عمل علم کجاست. معلومه که مثل هر رادیوی دیگه، سری به اینترنت می زنیم و لعنتی به سانسور می فرستیم و با گذاشتن هدفون-مانندی ساخته شده از نارگیل، منتظر می مونیم هواپیماها برامون خوراکی بیارن!

با این لینک‌ها مشترک رادیوگیک بشین

فلسفه علم

دانشی در مورد تفکر در مورد مسائل بنیادین و اساسی جهان و زندگی . مثلا اینکه هستی چیه. واقعیت چیه. آگاهی چیه. ارزش چیه. ذهن چیه یا زبان چیه. به همین شکل، فلسفه علم در مورد پایه ها، شیوه ها و مفاهیمی که با علم همراه می شن صحبت می کنه. در واقع داریم می پرسیم چه چیزی علمی است، کدوم نظریه علمی قابل اتکا است و شایدم در این مورد حرف می زنیم که هدف نهایی علم چیه. می بینین که یه رادیوگیکی باید اتفاقا این رو دقیق بدونه. هم به این خاطر که بتونیم علم و غیر علم رو جدا کنیم، هم برای اینکه اگر لازم نیست نگران علمی بودن چیزها نباشیم و هم برای اینکه بتونیم در مورد آینده هوش مصنوعی و کلونینگ و کریسپر از نظر اخلاقی نظرات بهتری بدیم، هرچند که این آخری احتمالا وارد فلسفه اخلاق و خود اخلاق و مطالعات علم می شه ولی خب … ترس نداره (:

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

این رو هم اضافه کنم که درسته که از زمان ارسطو فلسفه داریم، اما فلسفه علم به عنوان یه رشته جدا، از حوالی قرن ۲۰ درست شد. بخصوص با «پوزیتیویسم منطقی» بعد هم افرادی مثل پوپر ایده های جدیدی دادن و بعد هم کتاب ۱۹۶۲ توماس کون (توضیحات) به اسم «ساختار انقلاب‌های علمی» بحث رو به سطح دیگه ای بردن و مفوم پارادایم رو مطرح کردن که حرف اصلی اش اینه که در هر دوره، سوال ها، مفاهیم و کارهایی هست که اصولا دیسیپلین علمی اون دوره رو تعریف می کنه و البته جزییات زیاده اما من آخرش اشاره ای هم به نویسنده مورد علاقه ای فایرابند می کنم با کتاب بر ضد روش که اصولا استدلال می کنه ما نباید در مورد روش علمی صحبت کنیم چون هر روشی در علم، باید مجاز باشه. بحث پیشتر هم می ره و خب خیلی جاهاش هم از سواد عمومی من هم خارجه، ولی خوبی علوم اجتماعی اینه که هر کس حق نظر دادن داره و شنونده است که باید درک کنه به چی گوش بده و بعد از این سراغ چی بره. معلومه که اگر خوشتون اومد، بیشتر می خونین. مثلا در این باب که آیا علوم رو می شه به هم تبدیل کرد، آیا شیمی قابل تقلیل به فیزیک هست؟ آیا جامعه شناسی رو می شه از روانشناسی استنتاج کرد و آیا تحقیق در مورد انسان، می تونه در مورد ارزشها هم به ما اطلاعاتی بده؟ با ما باشین…. با این چیزها می شه پرواز کرد، البته در ذهن… فعلا بیرون از ذهن فقط با فیزیک می شه پرواز کرد… شایدم شیمی (((:

اما اول ببینیم علم چیه

تعریف قدیمی ارسطو می گفت و نزدیک که امروزه هنوز هم، به کار می‌رود، متعلق به ارسطو است و دانش علمی را مجموعه‌ای از آگاهی‌های قابل اتکا می‌داند که از لحاظ منطقی و عقلانی، قابل توضیح باشند. ما از حوالی ۳۰۰۰ سال قبل از میلاد به این معنا علم داریم که حاصل تجربه و تکرار پدیده ها و غیره بودن. حتی تا مدتی به چنین چیزها و اکتشافاتی فلسفه طبیعی می گفتن چون عملا فلسفه پشت دنیا رو کشف کرده بودن (:

الان علم به معنی اقدام قاعده‌مند در جهت توسعه و سازماندهی هدفمند اطلاعات با ارزش جهان شمول است که در قالب تفسیرهای قابل آزمایش و پیش‌بینی‌هایی دربارهٔ جهان، صورت می‌گیرد. در این مورد توی تاریخ فلسفه علم بیشتر حرف می زنیم ولی گفتم یه توضیح ریز در مورد علم مورد بحث بدم. ما در دنیای علم ، اونو به سه طبقه تقسیم می کنیم : علوم طبیعی (مثلا فیزیک، شیمی، …)، علوم اجتماعی (اقتصاد، سیاست، جامعه شناسی، روانشناسی، ..) و علوم صوری (منطق، ریاضیات، آماری و علوم کامپیوتر). دو تای اولی مبتنی بر مشاهده و قابل آزمایش و بررسی مجدد هستن ولی آخری (صوری) با اینکه مبتنی بر روش های دقیق مرتبط با دانش هستن، نیازی به شواهد تجربی ندارن و روی مفاهیم آبسترکت کار می کنن و به همین دلیل بحث هست که جزو علم هستن یا نه. عملا اونها کشف شدن و درست شدن تا بتونن بقیه علوم رو پیش ببرن، مثلا نیوتن برای توضیح حرکت نیازمند کشف مشتق بود (:

اما در نهایت اینکه چی علم است و چی علم نیست هنوزم مورد بحثه و خب وابسته به دیدگاه. به پوزیتیویسم (همونم مثبتگرایی) سعی کردن بگن چیزی که قابل مشاهده است علم و چیزی که قابل مشاهده نیست، بی معنی (: [مفهوم کلی از مشاهده رو توضیح بدم با گپ د رمورد امکان سنجش]. اما بعدا تعریف جالب و بسیار متواضعی از سمت کارل پوپر اومد که می گفت گزاره علمی گزاره ای است که ابطال پذیر باشه (Falsifiability).

قبلا می گفتن که با استقراء (induction) من می تونم به قانون برسم. اگر هی قوی سفید ببینم می تونم نتیجه بگیرم که همه قوها سفید هستن. اما دیوید هیوم و کانت و بعد پوپر دیدن که این شکل از استدلال مشکل داره و با استنتاج در تضاده (deduction). شاید جالب باشه که بعدا با کشف قوی سیاه استرالیایی، این مثال معنی جالبتری گرفت. افرادی مثل هیوم و کانت سعی کردن جواب هایی برای این مساله پیدا کنن ولی بعد پوپر ایده هاشون رو کاملتر کرد و گفت اصولا ما نیازی به پذیرش پیشینی این ایده ها نداریم. بلکه ما می تونیم گزاره هایی بدیم که قابل رد شدن باشن و بعد ببینیم رد کردن اونها چقدر سخته! این احتمالا یکی از جهش های بسیار بزرگ فلسفه علم بود. پوپر می نویسه:

I shall require that [the] logical form [of the theory] shall be such that it can be singled out, by means of empirical tests, in a negative sense: it must be possible for an empirical scientific system to be refuted by experience.

— Karl Popper, Popper 1959. p 19

مثال همه قو ها سفید هستن یا «ظلم منجر به فروپاشی حکومت می شه» که ابطال پذیر نیست.

در واقع پوپر علم رو اینطوری تعریف کرد که قابل رد شدن باشه! نه قابل اثبات شدن و بعد از تلاس بسیار برای ردش و شکست خوردن، تقویت بشه نه اثبات!

اما آیا با مشاهده به نتیجه می رسیم؟

مثال جوجه ها اینجا خیلی مشهوره [مثلا رو بگم]. در واقع ما فقط با پشت هم چیدن مشاهداتمون نمی تونیم به علم برسیم. ریچارد فاینمن اصطلاح کارگو کالت ساینس رو کشف کرده [توضیح بدم و اینکه فرم رو حفظ کردن، ما رو به محتوا نمی رسونه]. این مساله می گه که ما باید بتونیم یه چیزی رو برای دفاع از علم، به مشاهدهاضافه کنیم. در واقع از مشاهده خالص ظاهرا نمی شه به علم رسید. البته اگر بخوایم عام تر نگاه کنیم، این بحث نسبی است. بستگی داره به تعاریف علم. گاهی ممکنه بگن استقراء احتمال چیزی رو تقویت می کنه و جوجه ها اتفاقا اشتباه نمی کردن و نظریه شون با علم سازگار بوده.

بعضی ها هم ممکنه بگن کلا استقراء روش اصلی علم نیست و با استنتاج است که به علم می رسیم. در واقع می گن باید مشاهده کنیم و بعد سعی کنیم توضیحبدیم. بعدش هم یه چیزی به اسم تیغ اوکام (استره اکام، اصل امساک، اصل اختصار تبینن: موجودیت‌ها یا وجودها (نهادها) نباید بدون ضرورت افزایش یابد. یا در توضیح و توصیف، بخش های ناضروری را حذف کن) رو برداریم و هر چیزی از توضیحمون زیادی است رو حذف کنیم و برسیم به ساده ترین توضیح ممکن مشاهده.

اینجاست که به بحث تئوری می رسیم

تئوری علمی

تئوری علمی شرح منطقی و عمومیت دادن یه یک ذهنیت است.در علوم طبیعی باید بتونیم این نظریه ها رو بسنجیم، آزمایش کنیم و تکرار کنیم. – اونهم با یک روش پذیرفته شده. اینطوری می تونیم توضیح بدیم که چرا هر بار آب رو می ذاریم روی آتیش جوش میاد. در واقع تونستیم ذهنیت مولکول رو بفهمیم و هر چند بار می خوایم تکرارش کنیم و دقیقا بگیم بقیه چطوری می تونن روش ما رو پی بگیرن تا دقیقا به نتایج ما برسن.

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

و حالا می بینین چقدر خوب می شه برگشت به همون بحث گزاره های علمی که قابل نقض شدن هستن و وقتی آزمایش اونها رو نشون می ده، تقویت می شن. [اگر اسکینر رو نگفتم بگم اینجا و نیاز به نظریه حین مشاهده و اینکه چی علمی است و چی نه].

و بحث آخرمون… هدف و ارزش در علم

هدف و ارزش

حالا سوال مهم دیگه ای داریم: آیا علم به حقیقت پی می بره؟ یا سوال هایی هستن که علم قادر به پاسخ به اونها نخواهد بود؟ هیچکس نمی دونه. رئالیسم علمی می گه هدف علم رسیدن به حقیقت است یا حداقل تا حدی رسیدن به اون یا چیزی که به حقیقت نزدیکه. در مقابل مخالفین می گن که پدیده هایی هست که قابل مشاهده نیستن و در نتیجه علم نمی تونه ادعا کنه که به دنبال رسیدن به حقیقت جهان است. از اونطرف ابزارگرایان می گن وظیفه علم، مفید بودن است و سنجش علم باید بر اساس فایده اون باشه و کلا حرف زدن از حقیقت بی معنیه.

همچنین توی ارزش، دو بحث نتیجه گیری ارزشی باید از ربط ارزشی جدا بشه [توضیح خودم]

اما هر چی که باشه، علم متواضع‌ترین منبعی بوده که بشر بهش دسترسی داشته چون همیشه داشته تلاش می کرده خودش رو رد کنه! و ازاونطرف مفیدترین هم بوده چون عملا تنها چیزی بوده که از نتایجش همگان فایده بردن و هیچ وقت هم نه باعث کشتار بوده نه شکنجه نه هیچچی ولی خب ابزار بوده (: اما دلیل نبوده… می بینیم که حتی کسانی که دلایل غیرعلمی برای این چیزها دارن هم در نهایت وقتی می خوان به هدف برسن، ابزار علمی رو انتخاب میکنن..

پس وقتی چیزی شنیدیم به این فکر کنیم که چقدر منطقی است، چقدر قابل دفاع است،آیا قابل سنجش هست؟ آیا قابل مشاهده هست؟‌آیا قابل تکرار هست؟ و از همه مهمتر آیا قابل رد شدن هست؟ و اگر رد بشه می گیم علم پیش رفته؟ (: اگر اینطوره بهش به عنوان علم احترام بذاریم.

تقبیح ها و تشویق ها

تشکر از عباس مهدیه که دوست رادیو گیک است. تشکر از محمد نشاط خو که یه ایمیل باحال بهم زده بود و چند نکته جالب رو گفته بود.
میلاد هم یهه تیکه از That’s My Heart از Lindemann تقدیم به خودش
hymn for missing از red رو از طرف مصطفی به سیما

ایمان یا ایتوماسن؟
حال و هوای میامی رو داره. البته ما که هیچ وقت نرفیم اما با فیلما و بازیهاش انگار اونجا بودیم قبلا :))
فایل نمی فرستم، اسمش اینه jan hammer crockett’s theme

موسیقی

  • آهنگ آریان به اسم گمشده من رو از طرف رضا تقدیم می کنیم به عل یپهلوان تو استرالیا
  • ۱۲۷ – پاپ امرجنسی – سربازان سرنوشت
  • یاس – سرکوب
  • عثمان سحاب – نازی
  • elf and his dreams -Old Story

کارت ویزیتی که لینوکس اجرا می‌کنه

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

اگر این کامپیوتر رو به یه کامپیوتر دیگه وصل کنین، در تقریبا ۶ ثانیه بوت می‌شه و علاوه بر یه فولدر که توش فایل هایی مثل رزومه و اینها هست، یه پورت سریال هم به شما می‌ده که اگر از طریقش به لینوکسی که داره روی کارت ویزیت وصل می شه وصل بشین، می‌تونین به چند بازی جمع و جور لینوکسی کامند لاینی و یه ۲۰۴۸ و حتی یه مفسر میکروپایتون دسترسی داشته باشین. همه اینها روییه چیپ ۸ مگی با یه بوت لودر ۲۵۶کیلویی و یه کرنل ۱.۶ مگی پیاده سازی شدن. کل فایل سیستم روت ۲.۴ مگ بیشتر نیست و هوم هم قابل نوشتن است.

قیمت؟ همه این سیستم روی هم کمتر از ۳ دلار قیمت داره و البته کماکان اگر کسی اونو بگیره، یعنی خیلی جدی گرفته شده (:

برای توضیحات بیشتر در مورد مراحل ساخت و طراحی اینجا رو ببینین.

گوگل داره جلوی لاگین با براوزرهای کمتر مرسوم لینوکسی رو می‌گیره

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

امکان ورود وجود ندارد. این مرورگر یا برنامه‌ای که استفاده می‌کنید شاید امن نباشد. سعی کنید از مرورگر دیگری استفاده کنید. اگر در حال استفاده از یک مرورگر پشتیبانی شده هستید، سعی کنید صفحه را رفرش کنید و دوباره وارد شوید.

مواجه می‌شوند اما اگر همین اکانت را روی همین سایت‌ها با یکی از مرورگرهای مرسوم مانند فایرفاکس یا کروم استفاده کنند، مشکلی در ورود ندارند. مساله اصلی هم این است که در صورت وجود مشکل در یکی از این مرورگرها، گوگل باید حداقل به تیم توسعه اعلام کند که چه مشکلی در آن‌ها دیده است یا برعکس، مجموعه ای گایدلاین منتشر کند و بگوید هر مرورگری که می خواهد روی گوگل استفاده شود باید این موارد را پشتیبانی کند. منطقا مرورگرهایی مانند کانکوئرر تحت توسعه مداوم هستند و بعید است به شکل کور بشود گفت مشکل امنیتی‌ای دارند که مانع لاگین می‌شود. بخصوص که طبق آزمایش‌ها، بعد از عوض کردن اطلاعات user agent، سیستم بدون هیچ مشکلی قابل استفاده است.نکته جالبتر این است که فعلا همه افراد این مشکل را ندارند. برای بعضی‌ها پیش میاید و برای بعضی‌ها نه و احتمالا یک تست از طرف گوگل است.

مساله حادتر اما، ایجاد محدودیت توسط یک شرکت بزرگ دارای انحصار نسبی روی ابزارهای مورد استفاده ما است. کاری که براوزرهایی مانند ویوالدی مجبور هستند آن را دور بزنند ولی در نهایت لازم است قانون آن را کنترل کند. همین حالا هم قانون می‌گوید براوزر را نمی شود با سیستم عامل اجبار کرد، هر براوزر لازم است حق انتخاب موتور جستجو را به کاربر بدهد و موارد مشابه. منطقا باید کم کم قانونی هم باشد که بگوید «فقط با فلان براوزر میذارم بیای تو سایت من» غیرقانونی است چون قدم بعدی این است که «ورود با فلان سیستم عامل ها ممنوع است» و قدم بعدی «ورود بدون لپ تاپی که خودم ساختم ممنوع است».