دسته‌ها
دسته‌بندی نشده

نیتراف

یکی از اساتید بسیار جالب علوم/مهندسی کامپیوتر که در دانشگاه نوشیروانی بابل مشغول به استادی هستند، آقای دکتر غلامی رودی هستند.

برای آشنایی با کارهای ایشان و فعالیت‌های ترویجی ایشان می‌توانید به این آدرس مراجعه کنید.

A picture of me and my father (Mirepesht village)

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

تعریف خود ایشان از نیتراف را ببینید:

من از ابزارهای موجود برای آماده کردن مستندهای فارسی راضی نبودم و پس از بررسی برنامه‌های موجود، تصمیم گرفتم یکی از نسخه‌های تیراف را تغییر دهم.  مدتی از نسخه‌ی تغییر داده شده‌ی Troff برای سیستم عامل Plan 9 استفاده کردم اما در نهایت، به دلیل برخی از محدودیت‌ها، تصمیم گرفتم نسخه‌ی جدیدی از تیراف را بنویسم.  چند سال پیش، نیتراف یا Neatroff را نوشتم و پس از آن تقریبا همه‌ی مستندهایم را با این برنامه آماده کرده‌ام.

بخشی از شهرت تیراف به علت صفحات man در یونیکس و پیش‌پردازش‌گر pic برای کشیدن تصاویر است ولی برای تولید مستندهای کامل، بسیار کمتر از تک (لااقل در دهه‌ها اخیر) شناخته شده است.  انتخاب لاتک یا تیراف تا حد زیادی سلیقه‌ای است، ولی معماری تیراف، سادگی و انعطاف آن و مخصوصا سرعت ساختن بسته‌های جدید در آن به نظر من بی‌نظیر است (مشابه برخی دیگر از ایده‌های ساده‌ای که توسط برنامه‌نویسان یونیکس معرفی شده‌اند).  بنابراین، فکر می‌کنم افرادی که پس از استفاده از هر دو، تیراف را ترجیح دهند، کم نباشند.

اگر دانشجویانی به شما مراجعه کردند که از برنامه‌های حروفچینی موجود، مخصوصا برای نوشتن فارسی ناراضی هستند، به ایشان توصیه کنید نیتراف را یک بار آزمایش کنند.  این مستند توضیحات اولیه‌ای در مورد آن می‌دهد.
http://litcave.rudi.ir/neatfbeg.pdf

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

اخیرا یک بسته‌ی نسبتا ساده آماده کرده‌ام؛ در فایلی که آدرس را بیان کردم در مورد استفاده از آن توضیحاتی داده‌ام. همچنین، در صورتی که هنوز از ویرایشگر vi استفاده می‌کنید، شاید نیتوی برای شما جالب باشد (که البته رابط گرافیکی ندارد):
https://github.com/litcave/neatvi

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

دسته‌ها
دسته‌بندی نشده

کار علمی که موجب تحول شود

دانشجویی ماه‌ها پیش نوشته بود:

من دو یا سه ماهی است که ذهنم درگیر این ۲ سوال شده‌است:
۱. آیا ساختار (هم روابط انسانی، هم قواعد سازمانی دانشگاه)‌ توانایی و کشش این را دارد که بتوان کاری کرد.
۲. در صورتی که جواب به سوال ۱ بله باشد، چه فیلدهایی پیشگام در این زمینه است یا بهتر بگویم در چه فیلد‌هایی کار‌های بزرگ(!) انجام می‌شود.

در مورد سوال ۲ گرایش‌های مختلف کامپیوتر و ریاضی (ماشین لرنینگ، الگوریتم، OR و بایوانفورماتیک) و رشته‌های مختلف (سیاست‌گذاری عمومی، MBA، فلسفه علم) را به شکل گذری بررسی کردم ولی آنی نبود که بگویم: «این می‌تواند مشکلی بزرگ حل کند». شاید این طرز تفکر غلط باشد. نمیدانم.

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

۲) راستش من هم فکر نمی‌کنم هیچ کدام از این رشته‌ها باشند که واقعا مشکل بزرگ را حل کنند. اما فکر می‌کنم در زمینه‌های یادگیری ماشین و بیوانفورماتیک می‌توان کارهای بزرگی انجام داد که خیلی چیزها را تحت تاثیر قرار بدهد.

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

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

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

دسته‌ها
دسته‌بندی نشده

مدرسه تابستانی سرطان

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

دسته‌ها
دسته‌بندی نشده

معرفی Detexify

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

این ابزار را می‌توانید اینجا پیدا کنید.

دسته‌ها
دسته‌بندی نشده

انتخاب مسیر علمی همراه با تجربه

یکی از دانشجویان علوم کامپیوتر شریف نوشته:

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

الان اینجوریم که یه روز ۴ تا کنفرانس [نامرتبط] می‌بینم می‌رم سمت اینکه تصمیم بگیرم آن رشته را بخونم ممکنه یه هفته بعد چند تا مساله زیست و یادگیری ماشین ببینم تصمیم خوندن چیزی مثل بیوانفورماتیک یا هوش مصنوعی تو ذهنم برجسته می‌شه و چند هفته بعد با چند نفر آدم تئوری کار صحبت می‌کنم و این تو ذهنم شکل میگیره نکنه اگر درس‌های ریاضی محض بیشتری پاس می‌کردم الان اون مسیر اصلی علاقم بود!

احتمالا سخته برای شما که جوابی واضح به اینها بدین ولی حس کردم شاید حرف‌هایی داشته باشین که یکم درگیری‌های ذهنمی رو منسجم‌تر کنه.

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

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

جواب بنده به این سوال این است که نمی‌دانم. سوال سختی است و درنتیجه بگذارید تصمیم‌گیری در مورد اینکه باید چه کار کرد را به خود دانشجو بسپاریم. اما شاید بتوان این نکات را در نظر گرفت.

۱) بالاخره باید یک کاری کرد. در نتیجه بالاخره یکی از این موارد را انتخاب کنید.

۲) عامل موفقیت را در نظر بگیرید. تنها موضوع مورد نظر علاقه نیست، اگر به موضوعات مختلفی علاقه‌مند هستید، تخمین بزنید در کدام موفق‌تر خواهید بود و آن را انتخاب کنید. اگرچه همین هم کار سختی است.

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

۴) هنوز برای تصمیم‌گیری وقت دارید. اگر احساس می‌کنید هنوز تصمیم نگرفته‌اید، خیلی هم نگران نباشید، افرادی را می‌شناسیم که تا ۴۰ سالگی تجربه می‌کنند تا بعد از آن تصمیم بگیرند. به خاطر این تاخیر هم نمرده‌اند، اگرچه ممکن است از موفقیت‌شان کم شده باشد، اما چه بسا از کیفشان در زندگی کم نشده است. در نتیجه خوف نکنید و به زندگی‌تان ادامه دهید.

دسته‌ها
دسته‌بندی نشده

پیشرفت‌های اخیر در زمینه یافتن نزدیک‌ترین همسایه

جمع‌بندی جالبی به زبان ساده در مورد مسئله یافتن نزدیک‌ترین همسایه منتشر شده که شاید جالب باشد. مسئله بسیار جالب است و کارهایی هم که انجام شده بسیار عجیب هستند.

Good Algorithms Make Good Neighbors

دسته‌ها
دسته‌بندی نشده

بهینه‌سازی برای یادگیری ماشین

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

دسته‌ها
دسته‌بندی نشده

ریاضی برای علوم کامپیوتر

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

دسته‌ها
دسته‌بندی نشده

زیربناهای یادگیری ژرف

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

برنامه و فیلم‌های آن را می‌توانید در اینجا بیابید.

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

دسته‌ها
دسته‌بندی نشده

Sample-Optimal Low-Rank Approximation of Distance Matrices

فرض کنید دو مجموعه X و Y از تعدادی نقطه داریم. فرض کنید یک ماتریس A می‌سازیم و در آن فاصله دو به دوی نقاط بین X و Y را قرار می‌دهیم. حال می‌خواهیم A را با یک ماتریس که مرتبه‌اش کم است تخمین بزنیم. در این مقاله، نویسندگان این کار را انجام داده‌اند.

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

۱) چگونه مقاله بنویسیم. نمی‌دانم از قدیم این‌گونه بوده یا جدیدا رواج پیدا کرده که یک فصلی در ابتدای مقاله می‌گذارند، اصل ایده، راه‌هایی که به جواب نمی‌رسند و این‌که چگونه قطعات اثبات سر هم شده را توضیح می‌دهند. حیف است آدم این روش را ببیند و طور دیگری مقاله بنویسد! الآن بسیاری از مقالات علوم کامپیوتری به همین صورت نوشته می‌شود.

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