<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Omid Ataollahi</title>
        <link>https://virgool.io/feed/@friendofpine</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 19:56:26</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/16264/avatar/2G6rk6.png?height=120&amp;width=120</url>
            <title>Omid Ataollahi</title>
            <link>https://virgool.io/@friendofpine</link>
        </image>

                    <item>
                <title>میکرو پایتون: نحوه کامپایل کردن سورس کد و تولید فایل‌های uf2</title>
                <link>https://virgool.io/@friendofpine/%D9%85%DB%8C%DA%A9%D8%B1%D9%88-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D9%86%D8%AD%D9%88%D9%87-%DA%A9%D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B3%D9%88%D8%B1%D8%B3-%DA%A9%D8%AF-%D9%88-%D8%AA%D9%88%D9%84%DB%8C%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-uf2-nghlilfsoeof</link>
                <description>موقت: فعلاً ویرگول قاطی کرده و اجازه نمایش لینک‌ها و کدها را نمی‌دهد. (لینک گیتهاب را قرار داده‌ام که فعلا بتوانید استفاده کنید) میکرو پایتون پروژه‌ای جهت برنامه‌نویسی برای رنج نسبتاً وسیعی از میکروکنترلرها می‌باشد و قصد رقابت با C و ++C را دارد. بدیهی است که در بعضی ویژگی‌ها هیچگاه به پای زبان C و ++C نمی‌رسد اما برتری‌های خاص خودش را دارد.معایب: سرعت پایین‌ (به دلیل مفسری بودن زبان پایتون).مزایا: کدنویسی بسیار سریع و آسان (و در نتیجه عیب‌یابی راحت).در بسیاری از پروژه‌های صنعتی که از میکروکنترلرها استفاده می‌گردد نیاز به پردازش با سرعت بسیار بالا وجود ندارد اما در همه‌ی پروژه‌ها سرعت عمل در کدنویسی و امکان رفع عیوب و اضافه کردن قابلیت‌های جدید اهمیت زیادی دارد. پس زبان برنامه‌نویسی باید با توجه به نیازمندی‌های خاص هر پروژه انتخاب گردد.میکروپایتون اقتباسی از CPython می‌باشد و تلاش می‌کند که با پیاده‌سازی سینتکس زبان پایتون، یک API سطح بالا بسازد تا برنامه‌نویس را از پیچیدگی‌های سخت‌افزار آسوده کند.نحوه راه‌اندازی میکروپایتون بسیار آسان است که با سرچ کوتاهی می‌توان آن را انجام داد. این پروسه برای هر میکروکنترلر کمی متفاوت می‌باشد اما در کلیات بسیار شبیه می‌باشند.سپس می‌توان با استفاده از REPL به آن متصل شد.کامپایل میکرو پایتون:چرا یک برنامه را کامپایل می‌کنیم وقتی که خروجیِ آماده‌شده را در دسترس‌مان قرار داده‌اند؟معمولاً کامپایل کردن پروژه‌ها چند علت همیشگی دارد:۱- نیاز به انجام تغییرات در پارامترهای زمان کامپایل۲- نیاز به تغییر اصل سورس کد یا ماژول‌های متصل به آن (همانند این مقاله)۳- یادگیری عمیق‌تر برنامه‌نویسی۴- مشارکت در توسعه سورس‌کدمثلاً در این موردِ به‌خصوص، کامپایل کردن سورس‌کد به هدف سخت‌تر نمودنِ دسترسی به کدها در میکروکنترلر (حفاظت بیشتر) است. زیرا بعد از اتمام پروژه‌های میکرو پایتون دسترسی به REPL وجود دارد (به وسیله Thonny IDE می‌توان به آسانی همه‌ی کدهای نوشته شده را دید).یادآوری: در هیچ میکروکنترلری -حتی در پیشرفته‌ترین انواع آن و با وجود تمام مکانیزم‌های کنترلی- امنیت و حفاظت قطعی از کدها وجود ندارد. اما همیشه می‌توان ضریب اطمینان را کمی بهبود بخشید.این آموزش با محوریت Raspberrypi Pico نوشته شده اما با اندکی تغییرات برای تمامی میکروکنترلرهای دیگر هم جوابگو می‌باشد. در این آموزش از یک لپتاپ با سیستم عامل لینوکس استفاده شده که اسم یوزر آن my-user می‌باشد و دسترسی root دارد. (می‌توان به جای لپتاپ از یک raspberrypi دیگر با سیستم عامل لینوکس هم استفاده کرد)منبع آموزش زیر داکیومنت‌های رسمی رزبری‌پای برای میکروپایتون در پیکو صفحه ۴ (لینک) و این صفحه از فروم رزبری‌پای (لینک) بوده است:https://gist.github.com/Omid888/8b0bf9bc1dde84250d188e5193ca52b7توضیحات درباره نحوه عملکرد هر خط با کامنت داده شده است.نکته ۱: در قسمت اختیاری می‌توان هر برنامه دیگری که قبلاً‌ با استفاده از REPL بر روی میکروکنترلر اجرا می‌شده‌ را قرار داد. (برنامه فعلی صرفاً جهت قرار دادن یک مثال بوده تا بتوان از سلامتِ کارِ انجام شده اطمینان حاصل کرد)نکته۲: در چند خط انتهایی، نحوه غیر فعال کردنِ کاملِ REPL توضیح داده شده است.این قسمت اختیاری می‌باشد. زیرا REPL دیگر چندان خطری ندارد اما برای امنیت بیشتر غیرفعال کردن آن توصیه می‌شود؛ مخصوصاً در صورتی‌که در مرحله production هستید.اگر هنوز در مرحله debug نرم‌افزار به سر می‌برید قابلیت‌های REPL به کار خواهند آمد.امیدوارم که مفید بوده باشد.</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Sat, 04 Nov 2023 09:08:44 +0330</pubDate>
            </item>
                    <item>
                <title>مستندهایِ مورد علاقه‌ی من در زمینه کامپیوتر</title>
                <link>https://virgool.io/Rocket/%D9%85%D8%B3%D8%AA%D9%86%D8%AF%D9%87%D8%A7%DB%8C%D9%90-%D9%85%D9%88%D8%B1%D8%AF-%D8%B9%D9%84%D8%A7%D9%82%D9%87-%DB%8C-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B2%D9%85%DB%8C%D9%86%D9%87-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-vfwogqst3bux</link>
                <description>این مقدمه را رد کنیدمن اساسا اهل کتاب (و هایپرتکست) خواندنم و به بقیه مدیوم‌ها ترجیح‌ش می‌دهم؛ آنهم به یک دلیل ساده: میزان اطلاعاتی که می‌دهند نسبت به زمانی که از انسان می‌گیرند، بیشتر است در عموم موارد.البته برخی مستندها در انتقال مفاهیم، یک قدرت منحصر به فرد دارند؛ از این جهت که می‌تواند اطلاعات پراکنده، غیرِ موضوعی و محیطی‌ای را راجع به یک مقوله به ما بدهد که کتاب فرصت نکند به همه بپردازد یا اینکه از چشم نویسنده جا بیوفتد یا اینکه اصلا نخواهد درباره‌ش حرف بزند. جزئیاتِ بصریِ مهمی که می‌توان حتی بدون اشاره‌ی مستقیم کارگردان آنها را دید و درباره‌شان آموخت. بعضی وقت‌ها هم آدم حوصله کتاب خواندن را ندارد ولی یک مستند که کمی چاشنی هیجانش بالاست و آموزنده هم هست حالش را سر جا می‌آورد.البته اصولا همه‌ی ریزه‌کاری‌ها اینقدر ارزشمند نیستند که بخواهیم برای آنها وقت آنچنانی صرف کنیم. به استثنای بعضی موارد که در ادامه درباره چندتایشان نوشته‌ام.مستند سیستم‌عامل انقلابمستند اول: Revolution OSاین مستند درباره یک سیستم عامل انقلابی است به نام لینوکس. اما نگاه جامع‌تری داشته و درباره کل جامعه متن‌باز و نرم‌افزارهای آزاد صحبت کرده است. اداهای ژورنالیستی برای به زور نشاندن مخاطب به پای فیلم را ندارد. یعنی چاشنی هیجان و هالیوودسازی آن کم است و بسیار متین و موقر به موضوع پرداخته است. سناریوی خوبی دارد و با مهم‌ترین آدم‌ها این حوزه صحبت کرده است. تکه‌فیلم‌هایی زیرخاکی‌ هم پیدا کرده از دوران قدیم (دهه ۹۰ میلادی) که واقعا دیدنی‌ست.این مستند ۲۱ سال پیش ساخته شده اما کماکان تمام حرف‌هایش شنیدنی‌ست. زیرنویس فارسی خوبی هم برایش موجود هست.مستند the codeمستند دوم: The Codeتوضیحات این مستند هم عین قبلی‌ست. به جز اینکه در فنلاند ساخته شده (سرزمین مادری لینوس تروالدز) و اینکه یکم هیجانِ رسانه‌ای در آن بیشتر است و به همین نسبت از عمق کاسته شده. ولی به نظر من کماکان ارزش دیدن را دارد و جالب هست. ضمنا زیرنویس فارسی برایش هست اما نیاز به کمی اصلاح دارد؛ حواس‌تان باشد اگر بعضی جاها را متوجه نشدید.مستند TPB AFKمستند سوم: TPB AFKاین مستند درباره‌ی سرنوشتِ موسس‌های سایت ‌thepiratebay.org هست. این سایت و پروتکل محبوبش (torrent) تونست اتفاق بسیار بزرگی رو در دنیا رقم بزنه و اون هم انتشار آزاد اطلاعات بود. هدف اولیه این سایت این بود که افراد بتونن بدون اینکه خطری تهدیدشون کنه اطلاعات، اسناد و مدارکشون رو در اختیار بقیه بگذارند. اما اتفاقی که در ادامه افتاد این بود که عده زیادی اومدند و فیلم‌های هالیوود رو به صورت رایگان در این سایت قرار دادند برای دانلود. هالیوود (در اصل باید بگیم: کمپانی‌های تهیه‌کننده‌ی فیلم در هالیوود) ضرر میلیارد دلاری دیدند و به جرم نقض قانون حق مولف (copy right) از سازندگان این سایت شکایت کردند. پلیس اینترپل اون‌ها رو تحت تعقیب قرار داد و ... . پلیس چند بار تلاش کرد که سایت رو از دسترس خارج کند ولی به دلایل فنی اون‌ها موفق شدند که دوباره سایت رو بالا بیارند (که خودش موضوع یک مقاله جداگانه‌س از بس جالبه). استدلال موسسان سایت در دادگاه چیزی شبیه به این بود: &quot;اگر ما یک سایتِ تبادل‌نظر درست می‌کردیم و افرادی در اون سایت حرف‌های غیرقانونی می‌زدند، آیا سازنده سایت مجرم است یا افرادی که اعمال غیرقانونی انجام دادند؟&quot; به عبارتِ کلی‌تر &quot;آیا در وقوع یک قتل،‌ چاقوفروشِ محله مجرم است یا آنکه با چاقو عملِ قتل را انجام داده؟&quot;مستند در سال ۲۰۱۳ ساخته شده، در حین برگزاری جلسات دادگاه این افراد. ببینید چقدر شفافیت وجود دارد در دادگاه‌های سوئیس که خبرنگاران می‌توانند انقدر فیلم بگیرند از کل ماجرا (البته در مورد همه پرونده‌ها اینطور نیستند). بعد از دیدن مستند می‌توانید درباره ادامه زندگی ایشان و وضعیت فعلی‌شان خودتان تحقیق کنید.مستند ALPHAGOمستند چهارم: ALPHAGOیه بازی شبیه به شطرنج وجود داره به اسم &quot;گو&quot; که نزدیک به ۳۰۰۰ سال قدمت داره و در تمام شرقِ آسیا بازی می‌شه. فضای حالت‌ش از شطرنج خیلی خیلی خیلی بزرگ‌تره و این یعنی از شطرنج پیچیده‌تره. هرچند که قواعد بازی خیلی ساده هستند در حدی که هر کسی می‌تونه بازی رو انجام بده.هوش مصنوعی خیلی سال پیش موفق شده بود بهترین شطرنج‌باز جهان رو شکست بده ولی در سال ۲۰۱۶ بهترین بازیکن &quot;گو&quot; در جهان رو شکست داد.این مستند فاقد نکات فنی هست و فقط داره یه لحظه تاریخی رو روایت می‌کنه؛ لحظه‌ای که هوش مصنوعی یه بار دیگه بر انسان پیروز شد. دیدنش هیجان‌انگیز و لذت‌بخشه.خب تا اینجا درباره چندتایی نوشتم. مستندهای زیر هم هستند که هنوز ندیده‌ام و طبیعتا نمی‌توانم نظر بدم ولی در لیست‌ام هستند که بعد از دیدن‌شان نظرم را خواهم نوشت البته اگر خوب بودند. ضمنا اگر پیشنهادی دارید که در لیست زیر نیست حتما بهم اطلاع بدید تا اضافه‌ش کنم.Indie game: the movie (2012)Indie game: Life After (2016)The great hack (2019)Citizenfour (2014)Snowden (2016)The social dilemma (2020)The Internet&#x27;s Own Boy: The Story of Aaron Swartz (2014)We Are Legion: The Story of the Hacktivists (2012)We Steal Secrets (2013)Inside Bill&#x27;s Brain: Decoding Bill Gates (2019)Terms and Conditions May Apply (2013)Downloaded (2013)Deep web (2015)The youtube effect (2020)Zero Days (2016)Pirates of Silicon Valley (1999)The Triumph of the Nerds: The Rise of Accidental Empires (1996)iHuman (2019)Hi, A.I (2019)Lo and Behold, Reveries of the connected world (2016)TechnoCalyps (2006)</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Fri, 30 Sep 2022 14:54:24 +0330</pubDate>
            </item>
                    <item>
                <title>اجرای خودکار اسکریپت بعد از unlock کردن در لینوکس</title>
                <link>https://virgool.io/@friendofpine/%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%DB%8C%DA%A9-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-%D8%A8%D8%B9%D8%AF-%D8%A7%D8%B2-unlock-%D8%B4%D8%AF%D9%86-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-qxcqznnf37iq</link>
                <description>یکم عنوانش بدجور شد ولی خلاصه ماجرا اینه که:من نیاز داشتم که هر بار که پسورد لپتاپم رو وارد می‌کنم و وارد سیستم‌عامل میشم یه دستورِ به خصوص اجرا بشه.به طور دقیق‌تر بخوام بگم قضیه اینه که:من به طور معمول لپتاپم رو خاموش نمی‌کنم و همیشه sleep می‌کنم. همچنین سرویس مورد علاقه‌ام برای رد شدن از فیل*تر*ینگ tor هست که آزاد و اوپن سورسه.ازونجایی که دوستان در حال تغییر زیرساخت‌ها هستند دائماً و شاهد قطع و وصلی هستیم (هم در کل اینترنت و هم در سرویس tor) و با هر بار قطع اتصال، tor نیاز داره که یه بار ریستارت بشه تا دوباره بتونه متصل بشه، تصمیم گرفتم که دستور ریستارت شدن tor رو به طور اتوماتیک اجرا کنم و یکی از بهترین موقعیت‌ها برای ریستارت کردن tor، زمانی هست که من تازه لپتاپ رو باز می‌کنم و شروع می‌کنم به کار کردن.بعد از مقدار زیادی گوگل کردن و بعد آزمون/خطا کردن، به راه حل زیر رسیدم که چون به شکل تمیز و مرتب هیچ‌جا گفته نشده بود و تکه‌ها رو از جاهای مختلف به هم چسبوندم تا به نتیجه دلخواهم برسم، تصمیم گرفتم که اینجا به اشتراک بزارمش. باشد که راهگشای کسی باشه.مرحله اولیک جوری باید بفهمیم که کِی لپتاپ lock شده و کِی unlock شده!توی لینوکس یه محلی وجود داره به اسم D-Bus که کارش اینه که: هر پروسسِ لینوکسی که بخواد پیامی رو به همه‌ی پروسس‌های دیگه اعلام کنه، می‌تونه پیامش رو به D-Bus بفرسته تا اونجا نوشته بشه. حالا بقیه پروسس‌ها هر موقع که دلشون خواست میان و اون پیام رو می‌ببین. (مثل یک تابلوی اعلانات)اون پروسسی در لینوکس که مسئول lock و unlock کردن سیستم‌عامل هست، اسمش هست systemd-logind که دقیقاً هر بار بعد از انجام مسئولیتش یک پیام توی D-Bus ثبت می‌کنه که عمل lock یا unlock انجام شد. این پیام رو هم توی قسمت org.freedesktop.login1 ثبت می‌کنه که یه بخشی (آبجکتی) از D-Bus محسوب میشه.ما چطور می‌تونیم از روی D-Bus این پیام رو بخونیم تا متوجه بشیم که الان وقت اجرای دستور دلخواه‌مون(مثلا ریستارت کردن tor) هست یا نه؟با دستور (برنامه‌ی) gdbus میشه با D-Bus ارتباط برقرار کرد. ترمینال رو باز کنید و دستور زیر رو بزنید:gdbus monitor -y -d org.freedesktop.login1همینجور که ترمینال بازه، سیستم رو lock و بعد unlock کنید. میبینید که چند خط براتون ظاهر میشه. اگر خوب دقت کنید میبینید که در اصل دو پیام نسبتا طولانی براتون نوشته شده که توی یکیش خبر از lock شدن سیستم میده و توی دومی خبر از unlock شدن.حالا کافیه که خروجی رو طوری فیلتر کنید که فقط کلمه true و false برگرده:gdbus monitor -y -d org.freedesktop.login1 | grep --line-buffered -i &amp;quotLockedHint&amp;quot | sed -uE &#039;s/.*LockedHint.*&lt;(.*)&gt;.*/\1/g&#039;اینا چند تا ابزار ساده‌ی لینوکسی هستن که پیش‌نیاز این آموزش محسوب میشن! (خودتون سرچ کنید اگر بلدشون نیستید)حالا کافیه که توی یه حلقه‌ی بینهایت، همیشه منتظر دیدن کلمه false (در اینجا به معنی unlock شدن سیستم) بمونید:gdbus monitor -y -d org.freedesktop.login1 | grep --line-buffered -i &amp;quotLockedHint&amp;quot | sed -uE &#039;s/.*LockedHint.*&lt;(.*)&gt;.*/\1/g&#039; |

while read x; do
      case &amp;quot$x&amp;quot in
             &amp;quotfalse&amp;quot) sudo systemctl restart tor;;
      esac
doneاین تکه کد رو در یک فایل با عنوان دلخواه و در محل دلخواه ذخیره کنید (مثلاً در این آموزش من اسمش رو گذاشتم restart-tor-after-unlock.sh و همچنین در پوشه home ذخیره‌ش کردم).مرحله دوماولا باید به اسکریپتی که نوشتیم اجازه‌ی اجرا شدن بدیم:sudo chmod +x restart-tor-after-unlock.shبعد لازمه که به user مون اجازه‌ی اجرای دستور systemctl رو بدیم. با دستور sudo visudo وارد فایل sudoers بشید و خط زیر رو به آخرش اضافه کنید:your-user-name ALL=(ALL) NOPASSWD:/usr/bin/systemctlدقت کنید که به جای your-user-name نام یوزر واقعی خودتون رو بزنید.مرحله سومحالا باید یک سرویس (systemd service) بسازیم تا اسکریپت آماده شده در مرحله اول رو بتونیم همیشه در حالت اجرا نگه داریم. پس بزنید:sudo vim /etc/systemd/system/restart-tor-after-unlock.serviceو محتویات زیر رو بهش بدید. (این محتویات به طور استاندارد تعریف شده هستن و با سرچ کوتاهی معنی هر خط رو می‌تونید متوجه بشید. متاسفانه از حوصله این مقاله خارج هست که بتونم کلمه به کلمه توضیحش بدم، هر چند که پیچیدگی خاصی هم نداره):[Unit]
Description=restart tor after unlock
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=omid
ExecStart=/bin/bash -c &amp;quot~/restart-tor-after-unlock.sh&amp;quot
Environment=&amp;quotPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin&amp;quot

[Install]
WantedBy=multi-user.targetتذکر: در قسمت User اسم یوزر خودتون رو بنویسید طبیعتاً.به این سرویس‌ای که ساختیم دستور اجرا شدن بعد از هر بار بالا اومدن لینوکس رو بدیم:sudo systemctl enable restart-tor-after-unlockحالا هم لپتاپ رو ریستارت می کنیم یا بهتر اینکه دستور زیر رو می‌زنیم تا سرویس شروع به کار کنه:sudo systemctl start restart-tor-after-unlockحالا همه‌چی آماده‌س. امتحان کنید و احتمالا با کمی سرچ و تغییرات به اون چیزی که دلخواه‌تونه خواهید رسید.واسه این زیبایی‌های لینوکسه، که عاشقشم.پ.ن۱: اگر احیاناً به دلیل بی‌سلیقه‌گی ویرگول، در خوندن کد‌ها دچار مشکل هستید، کد رو تا چند روز آینده توی گیت‌هاب هم خواهم گذاشت.پ.ن۲: عملِ unlock کردن و login کردن، تفاوت مهمی داره. من در این مقاله در مورد unlock توضیح دادم. ولی اگه نیازِ شخصیِ شما با login برطرف میشه، با یه سرچ کوتاه پیداش خواهید کرد.</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Tue, 23 Nov 2021 20:49:06 +0330</pubDate>
            </item>
                    <item>
                <title>نشریاتِ مهمِ‌ فارسی‌زبانِ حوزه‌یِ کامپیوتر و آی‌تی و ICT</title>
                <link>https://virgool.io/@friendofpine/%D9%86%D8%B4%D8%B1%DB%8C%D8%A7%D8%AA%D9%90-%D9%85%D9%87%D9%85%D9%90-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86%D9%90-%D8%AD%D9%88%D8%B2%D9%87-%DB%8C%D9%90-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D9%88-%D8%A2%DB%8C-%D8%AA%DB%8C-ict-lb4bdqco6z84</link>
                <description>از آن روزها که می‌رفتیم پای کیوسک روزنامه/مجله فروشی و به کشف مطالب به درد بخورتر می‌پرداختیم گذشته و دیگر نمی‌شود به این روش به کشف مطالب به‌روز و معتبر پرداخت. مخصوصاً که مطالب زرد/دروغ در اطراف‌مان هم چنان زیاد شده که دیگر وقت سر خواراندن هم نگذاشته برای‌مان.+ پس چه می‌شود کرد؟- نشریات خوب امروزی را پیدا کنیم.خب من چند تا از این نشریات که در حوزه‌ی ICT (وزارت فناوری اطلاعات و ارتباطات) چاپ می‌شوند را معرفی می‌کنم. (که به صورت فعال در حال کار هستند.)نکته: این نشریات لزوماً به مسائل فنی نپرداخته‌اند، بلکه به مسائل سیاسی-اجتماعی ما درباره‌ی فناوری هم گفته‌اند.فراموش نکنید که به دلیل برخی مسائل که همگی می‌دانید، دست و پای نویسندگان کمی بسته است اما با این حال نویسندگان توانسته‌اند از عهده‌ی موضوع بربیایند،‌ پس با خیال راحت مطالعه کنید.ماهنامه عصر تراکنشیک نمونه از نشریهخرید نسخه چاپی: سایت اصلی نشریهخرید نسخه الکترونیکی: فیدیبو - طاقچه - جار - سایت اصلی نشریه - مگ‌ایرانماهنامه شبکهیک نمونه از نشریه خرید نسخه چاپی: سایت اصلی نشریهخرید نسخه الکترونیکی: سایت اصلی نشریه - فیدیبو - طاقچه - مگ‌ایران - کتاب‌راههفته‌نامه عصر ارتباطیک نمونه از نشریهنسخه چاپی: نداردنسخه الکترونیکی: سایت اصلی نشریه (رایگان) - جارماهنامه پیوستیک نمونه از نشریهنسخه چاپی: سایت اصلی نشریهنسخه الکترونیکی: سایت اصلی نشریه - جار - فیدیبوپ.ن: اگر نشریه‌ای احیاناً جا مونده، لطفا کامنت بگذارید و اسم و لینک‌ش رو بفرمایید.</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Sat, 07 Aug 2021 15:14:48 +0430</pubDate>
            </item>
                    <item>
                <title>سریِ دومِ کتاب‌‌هایِ‌ مهمِ ترجمه شده در حوزه کامپیوتر</title>
                <link>https://virgool.io/@friendofpine/%D8%B3%D8%B1%DB%8C%D9%90-%D8%AF%D9%88%D9%85%D9%90-%DA%A9%D8%AA%D8%A7%D8%A8-%D9%87%D8%A7%DB%8C%D9%90-%D9%85%D9%87%D9%85%D9%90-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%AD%D9%88%D8%B2%D9%87-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-v31rvrcpedmm</link>
                <description>مفصلا در پستِ قبل راجع به ترجمه حرف زده‌ام و چند کتاب هم معرفی کرده‌ام. (لینک پست قبل)بدون معطلی وارد قسمت دوم می‌شم.فقط برای تفریحدیگه تمامِ دوستانِ من میدونند که عاشقِ سینه‌چاکِ لینوس تروالدز -خالق هسته‌ی لینوکس- هستم.این مرد خیلی خیلی در زندگیِ شخصیِ من تاثیر داشته و خب البته سیستم‌هایی ساخته که الان تقریبا اکثر دنیا رو دارن میجرخونن.ترجمه هم از جادی میرمیرانی هست که واقعا باسواد و کارکشته و با فکر هست. ایشون رو هم شدیدا دوست دارم.کتاب درباره‌ی تاریخچه‌ي سیستم‌عامل لینوکس از روز اول هست و اینکه چطور یک فردِ تازه فارغ‌التحصیل شده از دانشگاه هلسینکی، تونست یک انقلاب رو شروع کنه و سیستم‌عاملی بسازه که همه‌ی دنیا ازش استفاده کنند و الهام‌بخش فنی -و حتی فلسفی- برای برنامه‌نویسانِ دنیا باشه.نسخه‌ی الکترونیکی، کتاب رایگان هست. لینکِ مطالعه‌يِ کتابنسخه‌یِ چاپی هم اینجا توضیح داده شده که چطور بخریدش. لینک توضیحات بیشتربرای درکِ عمیق‌ترِ این کتاب نیاز به کمی دانش از درسِ سیستم‌عامل دارید.ابر قدرت‌‌هایِ هوشِ مصنوعینویسنده‌یِ این کتاب، مهم‌ترین آدم در حوزه‌ی هوشِ مصنوعی در چین است. (بله درست خواندید، ازین به بعد باید کارهایی که چینی‌ها در هوش انجام می‌دهند را هم دنبال کنیم. چون آنها الان بعد از آمریکا و کانادا پیشرفته‌ترین کشور جهان در هوش مصنوعی هستند.)درباره‌ي کتاب باید بگم که در نگاه اول به نظر میاد که داره به شدت تلاش می‌کنه تا بگه چین در هوشِ مصنوعی خیلی عالی شده و ممکنه دلتون رو بزنه. اما بعدش متوجه جزئیات مهمی از اتفاقاتی که به تازگی در جهان در حال وقوع هستند که به نوبه خودش بسیار جالب هست. مطالبِ این کتاب رو در آینده به صورتِ خلاصه‌نویسی یا یک معرفیِ مفصل، در ویرگول خواهم نوشت.نسخه‌يِ چاپی موجود هست. (در گوگل سرچ کنید و یا در کتاب‌فروشی‌ها)نسخه‌یِ الکترونیکی هم از طاقچه قابلِ خرید هست. لینک خریدمقاله‌یِ کلیسایِ جامع و بازاراین مورد، کتاب نیست و مقاله محسوب می‌شود. اما هیچ دست‌کمی از کتاب ندارد. از مشهورترین مقالات دنیای کامپیوتر است. خواندش به اندازه بقیه آسان نیست ولی بسیار لذت بخش هست.حرفِ اصلیِ مقاله این است که شما به دو روش می‌توانید نرم‌افزارهایِ بزرگ و پیچیده را تولید کنید. اول روش &quot;بازار&quot; و دوم روش &quot;کلیسای جامع&quot;.اینکه خصوصیات هر روش چیست و چه مزایا و معایبی دارد را نمی‌گویم چون تقریبا می‌شود مقاله‌ی اصلی.زیباست.لینک مطالعه‌ی آنلاینمتاسفانه اطلاعاتی از مترجم وجود نداره. اما ترجمه قابل قبول هست.تستِ ماماناین کتاب در حوزه‌ی کامپیوتر نیست. بلکه مربوط به فضایِ استارتاپ و کارآفرینی هست.علتِ اینکه آوردمش اینه که بچه‌های کامپیوتر چون نزدیکی زیادی با استارتاپ‌ها دارند، به این مطالب هم علاقه دارند و هم نیازِ فراوان.این کتاب شما رو از این توهم که &quot;می‌ریم یه استارتاپ می‌زنیم، می‌ترکونیم&quot; نجات میده و بهتون اجازه می‌ده به ایده‌تون نگاه منطقی داشته باشین و نیاز بازار رو بهتر درک کنید.هم نسخه چاپی و هم الکترونیکی دارند: لینک خرید</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Thu, 11 Mar 2021 12:57:41 +0330</pubDate>
            </item>
                    <item>
                <title>کتاب‌هایِ مهمِ ترجمه شده در حوزه‌یِ مهندسی و علومِ کامپیوتر</title>
                <link>https://virgool.io/@friendofpine/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%87%D8%A7%DB%8C%D9%90-%D9%85%D9%87%D9%85%D9%90-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%AD%D9%88%D8%B2%D9%87-%DB%8C%D9%90-%D9%85%D9%87%D9%86%D8%AF%D8%B3%DB%8C-%D9%88-%D8%B9%D9%84%D9%88%D9%85-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-fsl7b8f2ar98</link>
                <description>‌‌‌ ‌مقدمهبعضی کتاب‌ها یک تنه همه چیز را برایت زیر و رو می‌کنند و طوفان می‌کنند در دنیایت.چندان که می‌دانید، ترجمه در حوزه‌یِ کامپیوتر یک صنعتِ منفجر شده و بی دست و پایی بوده، از روز اول تا همین حالا. همه چیز محدود می‌شود به کتاب‌هایِ جعفرنژاد قمی و چندتایِ دیگر که همه‌گی فاجعه‌بار هستند، هم به لحاظِ انتخابِ کتاب‌ها و هم به لحاظِ کیفیتِ ترجمه‌ها. این وسط، استثناهایی تازگی‌ها به وقوع پیوسته که به نظرم مهم است تبلیغ شوند تا این صنعت دوباره جان بگیرد، در آن پول تزریق شود تا رونق بگیرد و سطح علمی و فرهنگی جامعه ارتقا پیدا کند.چرا به ترجمه نیاز داریم؟اول باید بگویم که من خودم از آن دسته آدم‌هایی هستم که با زبانِ انگلیسی واقعا راحتم و از خواندنِ متونِ تخصصیِ انگلیسی لذت می‌برم و چندان چالشی برایم تلقی نمی‌شوند.بعضی‌ها می‌گویند که به جایِ هدر دادنِ انرژیِ جمعی‌مان برایِ ترجمه کردن، می‌توانیم به تقویتِ مهارت‌مان در انگلیسی بپردازیم تا بتوانیم همه‌مان به همه‌ی منابع دسترسی داشته باشیم و یکبار برای همیشه به این مساله خاتمه دهیم.اما قضیه به این سادگی‌ها نیست..نمی‌خواهم بگویم که زبانِ فارسی در خطر است و این مهملات؛ که اعتقادی به این حرف‌ها ندارم.نمی‌خواهم برای تنبلیِ بعضی‌ها در یادگیریِ انگلیسی -که زبانِ بین‌المللی و هم‌چنین زبانِ تخصصیِ رشته کامپیوتر است-  بهانه آورده باشم.و نمی‌خواهم که با احمق‌هایی هم‌سو شده باشم که می‌خواهند با زبانِ انگلیسی (و نتیجتاً فرهنگِ غربی) مبارزه کنند؛ که این‌ کارها جز جفا به خود و دیگران نیست.من اما برایِ دلایلِ بهتری قائل به ترجمه هستم:اولاً ترجمه باعثِ هم‌افزاییِ فکری ‌می‌شود. یعنی وقتی کتابی ترجمه می‌شود، مقداری از تفکرات و پیشینه‌یِ مترجم هم به عمقِ کتاب افزوده می‌شود که باعثِ درکِ بهتر خوانندگان می‌شود. مثلاً من خودم بارها به این مساله برخورده‌ام که نویسنده‌ای، مطلبی را نوشته و تصور کرده که خواننده، پیش‌زمینه‌یِ لازم برایِ درکِ مطالب را دارد ولی مثلا به دلیلِ فاصله‌یِ جغرافیایی یا فرهنگی یا دینی یا خیلی چیزهایِ دیگر، خواننده پیش‌نیاز لازم را ندارد. این رفعِ ابهام، به عهده‌یِ مترجمِ وفادار است تا در پاورقی، آن پیش‌نیاز را ارائه دهد. ثانیاً خواندنِ یک مطلب در زبان‌هایِ مختلف، همانندِ نگاه کردن به یک شی‌ٔ از زوایایِ مختلف است که گاهی نرون‌هایی را در مغزمان به هم متصل می‌کند که آدم فکرش را هم نمی‌کند و ایده‌های جالبی آشکار می‌شود.باور ندارید؟ این تد تاک را ببینید.ثالثا این روش، خودش نوعی تبلیغ برای کتاب‌های خوب محسوب می‌شود. مثلاً در بین میلیون‌ها کتابِ نوشته شده، شما چطور انتخاب می‌کنید که کدام را بخوانید؟ یک روشِ خوب اعتماد کردن به مترجمانِ کارکشته است که عمرشان را در این راه صرف کرده‌اند. مثلا وقتی اسمِ استاد نجفِ دریابندری می‌آید، می‌توان با اطمینان به کتاب‌‌هایی که انتخاب کرده‌اند برای ترجمه، اعتماد کرد. یا مثلاً جادی که درباره‌ش پایین‌تر نوشته‌ام.رابعاً این که ما بخواهیم رنجِ ترجمه را به جان بخریم، نشان‌دهنده‌یِ علاقه و احترام‌مان به زبانِ زیبایِ فارسی هم هست. اینکه انتخاب کنیم متنی با ارزش را، با شیرینیِ زبانِ فارسی همراه کنیم، -علاوه بر لذت مضاعف-  نشانِ سربلندی و قدرشناسی از داشته‌هایِ قشنگ‌مان است.خب برویم سراغِ سری‌ِ اول کتاب‌ها:هنرِ کدنویسیِ خوانامن خودم این کتاب رو مطالعه کردم و هم ازش لذت بردم و هم بسیار آموختم. نثر روان و آسانی دارد.سه فصل از کتاب به رایگان قابلِ مطالعه است.فقط به صورتِ الکترونیکی عرضه شده.(نسخه‌ی چاپی ندارد.)آشنایی بیشتر با کتاب و دریافت کد تخفیفمعماریِ تمیز - کدنویسِ تمیز - کدِ تمیزسه کتابِ فوق‌العاده شاهکار..نویسنده‌یِ این کتاب‌ها، رابرت مارتین (معروف به عمو باب) هست. آدمی به شدت با سواد. ویدیوهاش توی اینترنت زیاد هست و همین که برنامه‌نویس‌ها صداش می‌کنن &quot;عمو&quot;، خودش نمایان‌کننده‌یِ خیلی چیزاست. ایشون مبدعِ اصولِ S.O.L.I.D در شیْ‌گرایی هم هستند.من هر سه کتاب رو خوندم و به شدت توصیه می‌کنم. برایِ ترجمه بسیار زحمت کشیده شده که با اولین نگاه متوجه خواهید شد.لینکِ خریدِ کتابفقط نسخه‌یِ چاپی دارد. (نسخه‌یِ الکترونیکی ندارد.)بخش‌هایِ زیادی از هر سه کتاب به طورِ رایگان قابلِ دسترس می‌باشد.ترفندهای پایتونمن خودم هنوز این کتاب رو نخوندم به همین دلیل نمی‌تونم نظر بدم. ولی جادی در موردش حسابی توضیح داده و براش تبلیغ کرده.حتما این کتاب رو در اولین فرصت مطالعه می‌کنم و نظرم رو همینجا اضافه می‌کنم.لینک خرید و توضیحات کامل*** نکته مهم: این کتاب، آموزشِ گام به گام و مقدماتی نیست. بلکه یک مرجعِ کامل هست.فقط نسخه‌یِ چاپی دارد. (نسخه‌یِ الکترونیکی ندارد.)بخش‌هایی از کتاب به طورِ رایگان قابلِ دسترس می‌باشد.سریِ دومِ کتاب‌ها رو احتمالا چند روز دیگه منتشر می‌کنم و بعدش اگه استقبال شد و بقیه گفتن به درد می‌خوره، سراغ دوره‌های آموزشی مهمِ فارسی و پادکست‌هایِ مهمِ فارسی‌زبان هم خواهم رفت.</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Thu, 11 Mar 2021 11:31:34 +0330</pubDate>
            </item>
                    <item>
                <title>دانلود ویدیوهای پخش شده در adobe connect</title>
                <link>https://virgool.io/wptips/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D9%88%DB%8C%D8%AF%DB%8C%D9%88%D9%87%D8%A7%DB%8C-%D9%BE%D8%AE%D8%B4-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-adobe-connect-mwfukipzutrp</link>
                <description>مقدمهاین کار اخلاقا صحیح نیست! اما گاهی استثناء دارد...چون در صورتی که برگزارکننده‌ی سمینار تمایل به بیرون دادن فایل تصویری داشته باشد، این امکان برای ایشان فراهم شده است(توسط خود نرم‌افزار) و در صورتی که شما این قابلیت را ندارید احتمالا host رضایت نداشته است.اما در این مورد خاص، چون محتوای ویدیوها درس‌های دانشگاه هستند و متعلق به عموم مردم هستند که از هزینه نفت تامین شده‌اند، من اشکالی نمی‌بینم در انتشار آن.متاسفانه دانشگاه بهشتی احتمالا به دلیل صرفه جویی در هزینه‌ها و بسته بودن فکر مسئولان آن، تصمیم گرفته که فایل ویدیویی درس‌ها را منتشر نکند. اما به دلیل ترافیک شدیدی که در ایام منتهی به امتحانات حتما پیش خواهد آمد، نیاز هست که عده‌ای ویدیوها را داشته باشند تا همه با هم یورش نبرند. (دانشگاه از قبل با اعلام پیامی، این زحمت را به عهده دانشجویان گذاشته بود)ضمن اینکه بعضی‌ها نیاز دارند که درس‌ها را با سرعت دو برابر گوش دهند تا خوابشان نبرد و دلایلی از این دست، باعث شدند که مجبور شوم این روش را با کمی جستجو پیدا کنم که میتوانید از آن استفاده کنید.این روش محدودیت‌هایی هم دارد که ذکر خواهم کرد.روش دانلودشما برای ورود به کلاس آنلاین یا کنفرانس احتمالا لینکی شبیه به لینک‌ زیر را در اختیار دارید:https://vc15.sbu.ac.ir/pckl20p0q77l/?session=breezbreezhs359ceps88wmbq3قسمت سمت راست علامت سوال را پاک کنید تا لینک زیر بدست آید:https://vc15.sbu.ac.ir/pckl20p0q77l/حالا عبارت [ output/filename.zip?download=zip ] را به آخر آن اضافه کنید. مانند:https://vc15.sbu.ac.ir/pckl20p0q77l/output/filename.zip?download=zipفایل شروع به دانلود می کند.بعد از دانلود و unzip کردن آن، دو فایل با نام‌های cameraVoip_*_*.flv و screenshare_*_*.flv میبینید.به جای ستاره، هر عددی می‌تواند قرار گرفته باشد.فایل اول فقط شامل صداها می‌باشد و فایل دوم فقط شامل تصویرها می‌باشد.نرم‌افزار VLC (یا هر پلیر دلخواه‌تان) را دانلود و نصب کنید.وارد منوی ‌MEDIA شوید و Open Multiple Files را بزنید. ( اگر مک‌بوک دارید: File - Advance Open File )هر دو فایل را انتخاب کنید و لذت ببرید.محدودیت‌ها اگر در برنامه gif یا ppt به اشتراک گذاشته شده است، این روش جوابگو نیست. (اگر راهی می‌شناسید بگید)ممکن است فایل ویدیو و صدا به صورت چند بخشی باشد که لازم است خودتان باید بدونید چجوری استفاده کنید ازش.</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Wed, 28 Oct 2020 22:07:17 +0330</pubDate>
            </item>
                    <item>
                <title>پس ویرگول چه باید بکند؟</title>
                <link>https://virgool.io/@friendofpine/%D9%BE%D8%B3-%D9%88%DB%8C%D8%B1%DA%AF%D9%88%D9%84-%DA%86%D9%87-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A8%DA%A9%D9%86%D8%AF-gqtnf4kborcq</link>
                <description>چند وقت پیش با دیدنِ خبرِ &quot;افزایش بازدید از یک پست، به ازای دریافت مبلغی پول از نویسندگان&quot; چنان عصبانی و متعجب شدم که نگو و نپرس.ویرگول به عنوانِ یک سیستمِ عرضه‌ی محتوا، که کارش رو انصافا خوب انجام داده تا به حال، به نظر می‌آید که سوراخِ دعا را گم کرده است.خب اینجا با سه موجودیت، طرف هستیم: خواننده‌ها، ویرگول، نویسنده‌ها.تنها در صورتی این سیستم، پایدار می‌ماند که به شکل &quot;برد-برد-برد&quot; عمل کند.اگر قرار باشد که این سیستم -که ارزشش به اندازه‌ی یک دانشگاه عالی هست- ادامه‌دار باشد، نباید مخارج خود را از نویسندگان تامین کند؛ زیرا:اولا اکثر نویسندگان در اینجا بدونِ هدفِ تبلیغاتی می‌نویسند (دلی می‌نویسند). و در صورت ترویجِ اینگونه تبلیغاتی نوشتن‌ها، فضای ویرگول به سمت تبلیغاتی و کثیف شدن پیش می‌رود، به جای اینکه به سمت تحقیقاتی و علمی بودن پیش برود.دوما نویسندگان به جای پاداش گرفتن، به ضرر دهی هم می‌رسند و کم‌کم مایوس خواهند شد و مطالبِ دستِ اولِ فارسی از بین می‌رود. (نتیجتا ویرگول هم از بین می‌رود)همه می‌دانیم که ویرگول یک کپی از سایت medium است. (که شدیدا جای خالی‌اش در وبِ فارسی احساس می‌شد)روش درآمدی مدیوم چگونه است؟ از خوانندگان اشتراک ماهیانه می‌گیرد و به بهترین تولیدکنندگان محتوا درآمد می‌دهد و آن‌گاه خودش نیز سود اش را برمی‌دارد. (حلال‌تر از شیر مادر)اما سوال اینجاست که آیا این روش در ایران قابل اجرا است؟ آیا کابرانِ فارسی‌زبان به این سطح از شعور اجتماعی رسیده‌اند که باید برای دریافت مطالب خوب و تمیز، مقداری -هر چند اندک- پول پرداخت کنند؟اگر &quot;بله&quot;، چطور به این نتیجه رسیدید؟ و اگر &quot;نه&quot;، بگویید برای ایجاد این فرهنگِ خوب چه باید کرد؟اگر هم فکر می‌کنید کلا روش بهتری دارید لطفا ارائه کنید به ویرگول و جامعه‌ی کاربری‌اش.یادمان باشد:     &quot; انتقاد، بدون ارائه‌ی راه‌حل، ارزشی ندارد. &quot;پ.ن: یکی دیگر از دوستانِ ویرگولی، در اینجا حرفایِ جالبی زده.پ.ن۲: قسمت کامنت‌ها رو هم ببینید.پ.ن۳: روی تگ ویرگول (در همین خط پایینی) کلیک کنید و پست‌های بیشتری را بخوانید.</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Thu, 11 Jun 2020 19:03:37 +0430</pubDate>
            </item>
                    <item>
                <title>یوتیوب، بدون فیلتر</title>
                <link>https://virgool.io/@friendofpine/%DB%8C%D9%88%D8%AA%DB%8C%D9%88%D8%A8-%D8%A8%D8%AF%D9%88%D9%86-%D9%81%DB%8C%D9%84%D8%AA%D8%B1-eb3yq2yjp9xh</link>
                <description>نکته: اگر فیلترشکن خوبی دارید و ازش راضی هستید، نیازی به خواندن این مقاله ندارید.مقدمات نچندان فایده‌دار: یوتیوب به عنوان یکی از مهم‌ترین دانشگاه‌های دنیا - حتی شاید مهم‌ترین دانشگاه دنیا- فیلتر است و ما خوشحال نیستیم.راه حل:  استفاده از افزونه‌ی مرورگر سایت dideo.ir   (آموزش استفاده)اول: دانلود افزونه برای firefox و دانلود افزونه برای chrome/chromiumدوم: هرجایی که یک ویدیوی یوتیوب وجود داشت، یک آیکون قرمز-سفید رنگ هم خواهید دید که با کلیک روی آن می‌توانید بدون فیلتر ویدیو را ببینید. مثلا:و تمام..نکته: این سایت مطابق قوانین فعلی کشور عمل می‌کند و هر ویدیویی را به شما نشان نمی‌دهد.معایب: سیستم اکانتینگ گوگل موجود نیست(که کاملا قابل درک هست البته). در نتیجه نمی‌توانید وارد اکانت خود شوید و ویدیویی را like/dislike کنید. نمی‌توانید به یک چنل، subscribe کنید و نمی‌توانید از پیشنهادات یوتیوب که مخصوص شخص شماست استفاده کنید.مزایا: سرعت عالی. نداشتن سیستم کامنت‌گذاری(در پست‌های آتی توضیح می‌دهم که چرا این یک مزیت است). داشتن افزونه برای مرورگرها. ویدیوهای مشابه‌ به آن چیزی که دارید میبینید را به شما پیشنهاد می‌دهد(این پیشنهادات را از خود یوتیوب دریافت می‌کند).اگر شما هم روش خوبی می‌شناسید، در کامنت‌ها بنویسید تا بقیه استفاده کنند.</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Sat, 06 Jun 2020 08:05:10 +0430</pubDate>
            </item>
                    <item>
                <title>Dependency Injection (DI)</title>
                <link>https://virgool.io/javacup/dependency-injection-di-u0tihizx1pfe</link>
                <description>تزریق وابستگی یا dependency injection یک روش طراحی(design pattern) در مهندسی نرم‌افزار است تا کدهایی بهتر و منعطف‌تر تولید کنیم.اما چگونه؟ این روش در عین سادگی، سوء تفاهم‌هایی ایجاد می‌کند که در آخر به آن اشاره خواهم کرد.اما این مطلب به زبان خیلی خیلی خیلی ساده چه می‌خواهد بگوید؟فرض کنید که سه برنامه نویس در سه گوشه‌ی دنیا، هر یک در حال تولید نرم‌افزار هستند..برنامه‌نویس اول: آمریکا،برنامه‌نویس دوم: ژاپن، و برنامه‌نویس سوم در استرالیا است.این سه نفر هیچگاه همدیگر را ندیده‌اند و نخواهند دید.برنامه نویس اول روزی با خود فکر می‌کند و برنامه‌ای به ذهنش می‌آید که به صورت زیر آن را در زبان جاوا پیاده‌سازی می‌کند. این برنامه تنها یک کلاس دارد. این کلاس شامل یک تابع و یک constructor است:برنامه‌نویس اول از کد خود به وجد امده و خود را استالمنِ زمانه می‌بیند!!!این برنامه‌نویس، کد خیلی خفن خودش رو کامپایل می‌کند و توی اینترنت به شکل یک کتابخانه به نام A.jar آپلود می‌کند.برنامه‌نویس دوم که داشته چرخ میزده توی اینترنت یهو این برنامه رو میبینه و خوشش می‌آید. در ادامه یه ایده به ذهنش می‌رسه که می‌خواد از برنامه‌ی قبلی توی برنامه‌ی خودش استفاده کنه (طبیعتا با رعایت حقوق مولف).پس بعد از اجازه گرفتن از برنامه‌نویس اول، کد زیر رو می‌نویسه:او نیز حس می‌کند توروالدزِ درونش دارد شکوفا می‌شود.این هم نتیجه‌ی زحمات برنامه‌نویس دوم. از برنامه‌ی قبل در کدهایش استفاده کرده و میبینید که برنامه‌ش نسبت به برنامه‌ی قبلی کارهای بیشتری می‌تواند بکند. پس خوشحال و شادان کدهایش را کامپایل می‌کند و یک فایل B.jar می‌سازد و در اینترنت پخش می‌کند. اما در این حین متوجه نکته‌ای هم می‌شود: اینکه حجم فایلش به طرز غیرمعمولی سنگین‌تر شده است! چرا؟ چون کدهای نفر قبلی را هم، درون کدهای خودش چپانده و حالا کدها به شکلِ تجمعی دارند زیاد می‌شوند.. همینطور پیش برود و چند نفر دیگر اگر ازین کدها استفاده کنند دیگر آن فایل را باید با تریلی حمل کرد..حالا چه می‌شود؟ خب نوبت برنامه‌نویس سوم است. وی تنها قصد دارد از برنامه‌ی نفر دوم استفاده کرده و خروجی آن را صرفا ببیند. (او نمی‌خواهد کدی به کدهای قبلی اضافه کند و کتابخانه‌ی جدیدتری تولید کند):این روالی است که ادم فکر می‌کند در پروژه‌های بزرگ اتفاق می‌‌افتد..  ولی در واقع اینگونه نیست. دلایلش را مفصل در ادامه خواهم آورد. فعلا شیوه‌ی درست را ببینید:‌‌‌‌استفاده از Dependency Injection Design Patternحالا فرض کنید که برنامه‌نویسان ما می‌خواهند به شیوه‌ی اصولی‌تری کار کنند.برنامه‌نویس اول که نیازی نیست تغییری در کدهایش بدهد.ولی برنامه‌نویس دوم باید به این گونه عمل بکند:استفاده از DI بسیار ساده است!و این هم برای برنامه‌نویس سوم(که در حقیقت همان استفاده کننده‌ی نهایی است):در یک جمله، DI یعنی چه؟به جای اینکه وابستگی‌ها(dependency) را درون کلاس‌ها بسازیم، درون تابع main می‌سازیمشان. آنگاه به وسیله تابع سازنده آن‌ها را به کلاس مربوطه پاس دهیم(تزریق می‌کنیم).حدس می‌زنم که تا به اینجا متوجه اهمیت ‌‌DI شده باشید، اما به به عنوان جمع‌بندی نهایی، مطالب زیر را بخوانید تا تسلط‌تان به موضوع کامل شود.۱- اگر نخواهیم به شیوه‌ی DI کد بنویسیم باید کتابخانه‌هایی با حجم بالا (که طبیعتا دیگر غیرقابل دیباگ کردن شده‌اند) را تحمل کنیم.۲- بدون DI، قابلیت ماژولاریتی از بین رفته و دیگر کدها قابلیت ارتقا نخواهند داشت. مثلا فرض کنید که شخص چهارمی پیدا بشود و اعلام کند که برنامه‌ای نوشته که دقیقا کار برنامه‌ی A را انجام می‌دهد، ضمن اینکه مصرف حافظه‌ی آن را به نصف تقلیل داده است. آيا این کد قابلیت استفاده در برنامه‌ی دوم را به راحتی دارد؟ مسلما خیر.۳- عمل ایجاد اشیا به جای زمان کامپایل، در زمان اجرا انجام می‌شوند. نتیجه اینکه این اصل، فقط در زبان‌های کامپایلری معنی دارد و زبان‌های مفسری به‌ آن احتیاجی نخواهند داشت.۴- تست‌پذیری در این روش بسیار بالا می‌رود. (توضیح در اینجا و اینجا)۵- مصرف حافظه محدودتر میشود.خب معایب این روش چیست؟کد کمی ناخواناتر و پیچیده‌تر به نظر می‌رسد. (بار دیگر کدهای نفر سوم را با هم مقایسه کنید).سوء تفاهمی که در بالا به آن اشاره کرده بودم در واقع این‌ست که افراد وقتی برای اولین بار این اصل را درک می کنند می‌گویند بابا آخه لازم بود این همه صغرا کبرا بچینی و یه اسم به این بزرگی براش بزاری در حالی که خودش در واقعیت دو تا خط کد بیشتر نیست؟جواب: خب بله. درسته که ساده‌س ولی خیلی مهمه و برای از قلم نیوفتادن‌ش هم هست که اینقدر براش آب و تاب به خرج می‌دن.باور نمی‌کنید؟ به عنوان منبع،  اینجا(James Shore) و اینجا(Martin Fowler) رو ببینید. این‌ها آدم حسابی‌های دنیای کامپیوترند..خب امیدوارم که مطالب مفید بوده باشد برایتان! با آرزوی سلامتی!</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Thu, 04 Jun 2020 13:22:50 +0430</pubDate>
            </item>
                    <item>
                <title>راهنمایِ کاملِ بهداشتِ کار با کامپیوتر</title>
                <link>https://virgool.io/@friendofpine/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%DA%A9%D8%A7%D9%85%D9%84-%D8%A8%D9%87%D8%AF%D8%A7%D8%B4%D8%AA-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-aeem0tamho60</link>
                <description>توضیح: این مقاله مناسب برنامه‌نویسان، تایپیست‌ها، مهندسان، گرافیست‌ها، حسابدارها و هرکسی‌ست که ساعاتی از طول روز را با کامپیوتر سر و کله می‌زند و می‌خواهد که از لحاظ جسمی و روانی سالم بماند.توضیح: این مقاله به مرور زمان تکمیل‌تر خواهد شد.بخش اول: نورقاعده یکم: شدت نور مانیتور باید با شدت نور محیط یکسان باشد.توضیح: در موبایل‌های هوشمند یک سنسور وجود دارد که میزان نور محیط را تشخیص می‌دهد و به طور خودکار نور صفحه را مطابق با نور محیط تنظیم می‌کند تا به مردمک چشم آسیب نرسد. اما این سنسور در اکثر مانیتورهای کامپیوتر وجود ندارد. پس مسوولیت این کار با شماست.قاعده دوم: هیچ‌گاه در اتاق تاریک کار نکنید.توضیح: برنامه‌نویسان علاقه‌ی وافری دارند که از سکوت و آرامش شب استفاده کنند تا بتوانند بهتر کار کنند. در دراز مدت، شب‌کاری باعث به وجود آمدن(و یا تشدید) مشکلات روانی می‌شود و حتی متابولیسم بدن انسان را اساسا تغییر می‌دهد. اما اگر برای کوتاه مدت نیاز دارید که شب‌کاری کنید حتما و حتما در محیطی کاملا روشن کار کنید. زیرا مردمک چشم دائما مجبور است که میزان گشادی/تنگی خود را بین نور مانتیور و تاریکی تنظیم کند که باعث خستگی و سردرد و آسیب به چشم می‌شود.قاعده سوم: قابلیت night light را فعال کنید.توضیح: این یک ویژگی نرم‌افزاری(نه سخت‌افزاری) می‌باشد که در حال حاضر همه‌ی سیستم‌عامل‌ها آن را دارند. مثلا برای ویندوز این گونه فعال می‌شود. در لینوکس(با دسکتاپ گنوم) نیز این گونه هست. این ویژگی باعث کم شدن خشکی چشم و کم شدن مشکل بی‌خوابی می‌باشد. اوایل احساس راحتی نخواهید داشت، اما بعد از مدتی متوجه می‌شوید که چقدر شب‌ها نقشی حیاتی دارد.قاعده چهارم: نور مستقیم خورشید هیچگاه نباید به چشمان شما، یا به مانیتور شما تابیده شود.(پرده را تا نیمه بکشید)راهنمایی: در صورت احساس سوزش، خارش، خشکی و قرمزی چشم می‌توانید از قطره‌ی چشم ِ &quot;اشک مصنوعی&quot; استفاده کنید (با مشورت پزشک‌). نمونه‌ی ایرانی و خارجی آن در داروخانه‌ها موجود هستند. بخش دوم: وضعیت نشستن (میز، صندلی و ...)قاعده یکم: احساس راحتیتوضیح بدیهی: فرم بدن‌تان را در ساعات طولانی به وضعیتی که خوشایندتان نیست درنیاورید.قاعده دوم: در اکثر مواقع باید از میز و صندلی استفاده کنید و در موارد کمی میتوانید در حالت نشسته(چهار زانو یا دو زانو)، خوابیده و ایستاده کار کنید.توضیح: اکثر افراد چون از پشت میز نشستن خسته می‌شوند به وضعیت‌های دیگر در می‌آیند که همگی بد هستند. اینها موجب آسیب به زانو، کمر، ستون فقرات، گردن، و دست‌ها می‌شوند. پس برای رفع خستگی چه کنیم؟ در ادامه توضیح داده‌ام.قاعده سوم: انتخاب میز مناسب !!توضیح: میز کامپیوتر با میز مطالعه(میز تحریر) فرق دارد. میز کامپیوتر یک قسمت اضافه نسبت به میز تحریر دارد که مخصوص کیبورد است و به صورت کشویی داخل و خارج می‌شود. تنها نکته‌ی خرید میز مناسب کامپیوتر، همین است. این مساله برای سلامت مچ دست بسیار مهم می‌باشد.وقتی مدتی تلاش کنید که مچ دست‌تان را به حالت درست بگیرید، متوجه اهمیت وجود کشوی مخصوص کیبورد خواهید شد.قاعده‌ی چهارم: انتخاب صندلی مناسب !!شرط اول: صندلی باید قابلیت تنظیم ارتفاع داشته باشد( تا ارتفاع آن به اندازه ساق پای شما بشود).شرط دوم: صندلی باید در قسمت کمر، دارای انحنا باشد تا گودی کمر را پر کند.شرط سوم: تکیه‌گاه گردن داشته باشد. و در آخر باید دسته داشته باشد تا دست‌ها محلی برای استراحت داشته باشند و نیاز نباشد دائما روی میز قرار بگیرند.قاعده پنجم: استفاده از زیرپاییتوضیح: گاه به گاهی عضلات پا نیز نیاز به استراحت دارند...قاعده ششم: موقعیت مانیتور    ****خیلی مهم****توضیح: مانیتور باید طوری قرار بگیرد که لبه‌ی بالایی آن با چشمان شما، هم ارتفاع باشند. چند عدد کتاب یا یک استندِ مانیتور(monitor stand) میتواند این کار را برایتان انجام دهد. که البته زیبایی محیط را هم در حد اعلایی بالا می‌برند. هم‌چنین فاصله چشم تا مانیتور میبایست حدودا ۵۰ سانتی‌متر باشد.به قسمت اضافه شده در زیر مانیتور نگاه کنید.استند مخصوص لپتاپ هم کارایی جالبی دارد.قاعده هفتم: طرز نشستنشرط اول: زاویه‌‌ی آرنج‌ها و زانوها و لگن حدود ۹۵ درجه باشد(یعنی کمی بیشتر از زاویه قائمه).شرط دوم: کمر، صاف و در حالت کشیده باشد.شرط سوم: گردن، صاف و در امتداد کمر(ستون فقرات) باشد. https://www.aparat.com/v/0w2Xo  https://www.aparat.com/v/ltiRe  https://www.aparat.com/v/1xB2O  https://www.aparat.com/v/8lBnJ بخش سوم: نکات پراکندهقاعده اول: خوراکی‌هاتوضیح: گرسنگی باعث پایین آمدن راندمان بدن و خستگی زودهنگام می‌شود. برای حل این مشکل از میوه‌های شیرین مانند موز و ... استفاده کنید. مغزها -مانند بادام، گردو، فندق و ... - هم بسیار مفید هستند. اما اگر مشکل پرخوری در حین کار دارید، از میوه‌های کم‌ کالری مانند خیار، هویج، کاهو و ... استفاده کنید تا هم دست و دهان‌تان مشغول باشد و هم اینکه به بدن خود ضربه نزنید. تنقلات و نوشیدنی‌های انرژی‌زا بسیار بد هستند و حتی اگر در کوتاه مدت بازدهی بهتری داشته باشند، در بلند مدت بدن و ذهن را مستهلک می‌کنند.  مصرف قهوه و چای فقط در حد کم مناسب است. اگر نوشیدنی دوست دارید، شیر عسل، شیر نارگیل و انواع عرقیجات ذهن را باز و آماده نگه می‌دارند.قاعده دوم: استراحتتوضیح: هر ۵ دقیقه یکبار به فضای اتاق نگاه کنید تا چشم دچار خستگی و خشکی نشود.هر ۲۵ دقیقه، چند بار دور اتاق قدم بزنید.هر یک ساعت، پنج دقیقه حرکت کششی انجام دهید.(از اینجا)هر چند ساعت، یک پیاده روی مفصل داشته باشید.(فعالیت روزانه)هر چند روز، یک فعالیت بدنی کاملا خسته کننده همانند کوه‌نوردی یا استخر یا پینگ-پونگ داشته باشید.(فعالیت هفتگی)قاعده سوم: مولتی تسکینگ نکنید.توضیح: مهمترین قاتل خلاقیت، انجام دادنِ چند کار به طور همزمان است. در هنگام کار، موسیقی و کتاب صوتی و پادکست گوش ندهید.  حتی دو وظیفه مختلف را نیز همزمان انجام ندهید و نگذارید انرژی ذهنی‌تان برایِ سوویچ کردنِ بینِ کارها تلف شود.آپدیت اول: حرکات اصلاحی جهت برطرف کردن قوز کمر در این ویدیوی کوتاه توضیح داده شده است: لینکآپدیت دوم: محمدرضا شعبانعلی هم مفصل راجع به ارگونومی نوشته که مقاله‌اش در این آدرس قابل دسترسی هست: لینک - خواندن این مطلب رو اکیداً توصیه می‌کنم.</description>
                <category>Omid Ataollahi</category>
                <author>Omid Ataollahi</author>
                <pubDate>Fri, 29 May 2020 01:44:43 +0430</pubDate>
            </item>
            </channel>
</rss>