همایش آموزش آنلاین – تجربه کار گروهی دانشگاهی

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

این که چرا حالا در مورد همایشی که برگزار شده و تموم شده دو تا نکته هست، یکی به اشتراک گذاشتن ویدئو‌های سخنران‌ها که توی وبسایت همایش می‌تونین ببینین. و دیگه این که تجربه‌ی خودم از این همایش با بچه‌های دانشگاه رو باهاتون به اشتراک بزارم.

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

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

آموزش آنلاین

همایش آموزش آنلاین

مسئله‌ی مالی

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

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

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

سخنران‌ها

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

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

مخاطب

راستش اول از این مورد خیلی می‌ترسیدم، این که فقط ۱۰ درصد سالن ۲۵۰ نفری پر بشه واقعا ترسناکه. واسه همین خیلی صحبت کردم. اولین پیشنهاد و بدترین پیشنهاد، گرفتن هزینه بابت ضمانت حضور بود. این جوری چون که بابت حضور قبلا پول دادن بچه‌ها حتما حضور پیدا می‌کردن. از طرفی منطقی بود ولی از طرفی «غیر انتفاعی بودن» کار زیر سوال می‌رفت. ما این هزینه‌ای که قرار هست از بچه‌ها بگیرم رو صرف چه کاری می‌کنیم؟ مگه دانشگاه و اسپانسر مسئله‌ی مالی رو از دوش ما باز نکردن؟ پس من کاملا مخالف این قضیه بودم. حتی اگه فقط ۱۰ درصد سالن پر بشه.

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

و جواب گرفتم، بدون این که هزینه‌ای برای ضمانت حضور بگیرم، تقریبا ۶۰-۷۰ درصد سالن پر شد. هر چند که عالی نبود، ولی به نسبت همایش های قبلی که توی سالن شیخ‌بهایی دانشگاه برگزار شده بود و من توشون شرکت کرده بودم، خیلی عالی بود. البته یکی از دلایلی که این تعداد حداکثر نشد، ناهماهنگی با استادها بود، قرار بود استادها توی همایش حضور داشته باشن ولی متاسفانه فقط روئسای دانشکده‌ها حضور داشتند.

نکته‌ی جالبی که بود واقعا توی همایشی که برگزار شد و از نظر مخاطبین و برگزارکننده‌ها، خیلی خوب برگزار شد. این مشکل‌هایی که اول ازش می‌ترسیدیم وجود نداشت. بلکه مشکلاتی وجود داشت که اول از نبودنشون مطمئن بودیم!

نبود مسئول سالن

یکی از اصلی ترین دلایلی که من ارائه‌ام رو لغو کردم همین نبود مسئول سالن بود! مگه امکان پذیره که سالنی که از یک ماه قبل رزرو شده، مسئول صدا و تصویر نداشته باشه؟ و خب اینجا ایرانه … صبح روزی که من رفتم سالن رو تحویل بگیرم، گفتند که مسئول سالن یک هفته هست که از دانشگاه رفته و سالن مسئول نداره!

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

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

عدم مسئولیت پذیری بچه‌ها

نمی‌خوام باز هم گلایه کنم، می‌خوام اینبار تجربه‌هام رو بگم. توی این همایش، کسایی که من از حضورشون حتی مطمئن نبودم خیلی بیشتر از کسایی که چند ماه قبل به من قول همکاری داده بودن، توی همایش کمک کردن.

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

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

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

البته، باید بگم که انتظامات دانشگاه هم کم سنگ توی راهمون ننداخت، هرچند که خودمون باید زودتر این بوروکراسی اداری رو انجام می‌دادیم که به مشکلی بر نخوریم ولی خب، انتظار داشتم که بیشتر باهامون همکاری کنن.

همایش آموزش آنلاین

همایش آموزش آنلاین

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

پی‌نوشت: اطلاعات و عکس‌ها و ویدئو‌های همایش رو توی سایت همایش می‌تونین پیدا کنین، http://shbu.bersam.org

چگونه در لینوکس یک تصویر متحرک درست کنیم؟ (قسمت دوم)

خب، توی قسمت اول توضیح دادیم که چه شکلی با ابزارهای مختلفی مثل ImageMagick، ffmpeg و GIMP میشه تصویر متحرک با فرمت gif درست کرد.

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

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

اینجاست که می‌خوایم از فرمت webm به جای gif استفاده کنیم. سرعت بیشتر، محاسبه‌ی کمتر و از همه مهم‌تر، حجم بسیار کمتر از مزیت‌های این فرمت نسبت به gif هست. اما این که چرا هنوز همه از webm استفاده نمی‌کنن به خاطر پشتیبانی نشدنش توی مرورگرهای قدیمی و IE هست.

خب من اینجا خروجی gif قبلیم رو سعی می‌کنم به webm تبدیل کنم تا تفاوت رو ببینین، باز هم از ابزار ffmpeg استفاده می‌کنیم:

ffmpeg -i in.gif out.webm

که out.gif ورودی هست و نتیجه توی out.webm ذخیره میشه.  ۱.۵ مگابایت حجم تبدیل شد به ۸۰ کیلوبایت، بیش از ۱۸ برابر کاهش حجم. البته کیفیت عالی نیست.

حالا با چند تا آپشن این خروجی رو بهتر می‌کنیم.

ffmpeg -i in.gif -b:v 600K -qmin 0 -qmax 50 -crf 5 out.webm

-b:v با این آپشن bitrate تصویرمون رو تعیین می‌کنیم.  600K به نظر کیفیت قابل قبولی رو برای ما برمی‌گردونه.

-qmin و -qmax هم بازه‌ی VBR رو تعیین میکنن. که من ایده‌ی خاصی ندارم چیه راستش!

-crf که Constant Rate Factor هست و معمولا بین بازه ۰ تا ۵۰ ست و هر چی کمتر باشه کیفیت بیشتره.

خروجی ۲۰۰ کیلوبایت شد که باز هم خیلی از ۱.۵ مگابایت بهتره، ffmpeg یه ابزار خیلی قدرتمنده که چندین صفحه man داره. مطمئنن بهتر از این هم میشه خروجی گرفت:

همچنین قسمت اول این پست رو در «چگونه در لینوکس یک تصویر متحرک درست کنیم؟» بخونید.

چگونه در لینوکس یک تصویر متحرک درست کنیم؟

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

راه حل گرافیکی

برای راه حل گرافیکی از نرم‌افزار GIMP استفاده می‌کنیم. بدون هیچ احتیاج به پلاگین خاصی فقط کافیه که توی فایلی که درست کردیم به ازای هر فریم یک لایه بزاریم و انتهای اسم اون لایه به صورت “Layer (250ms)” مدت زمان نمایش لایه رو تعیین کنیم. برای پیش‌نمایش این گیف میتونین از Filters > Animation > Playback گیف رو نمایش بدین.

حالا کافیه موقع ذخیره‌سازی به صورت gif ذخیره کنیم.

خروجی به صورت gif

خروجی به صورت gif

تنها نکته‌ای که هست اینه که حتما تیک گزینه‌ی as animation رو بزنین.

Loop forever: اگه این گزینه رو زده باشین گیف متوقف نمیشه.

راه حل خط فرمان

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

convert -delay 50 frame1.jpg -delay 100 frame2.jpg -delay 150 frame3.jpg -loop 0 -pause 200 animated.gif

delay: قبل از هر عکس می‌تونیم از این آپشن استفاده کنیم تا وقفه ایجاد کنیم. عددها به میلی‌ثانیه هستن.

loop: بعد که همه‌ی فریم‌ها رو گذاشتیم، با آپشن loop میگیم که چند بار تکرار بشه. 0 به معنی بی‌نهایت هست.

pause: این آپشن هم میگه با هر بار چرخش چند میلی‌ثانیه صبر کنه.

و در آخر هم اسم فایل خروجی رو می‌نویسیم. اگه تعداد عکس‌ها هم زیاد هستن می‌تونیم از *.jpg استفاده کنیم تا تمام عکس‌ها رو پوشش بده.

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

ffmpeg -t 2 -ss 00:02:35 -i video.mp4 animated.gif

که ساختار ساده‌ای داره، این دستور، از زمان ۰۲:۳۵ به مدت دو ثانیه از فایل video.mp4 رو به صورت گیف توی animated.gif ذخیره می‌کنه.

out-small-cover

(روی عکس کلیک کنید تا gif خروجی رو ببنید.)

حریم شخصی | حق دادنی نیست، گرفتنیست

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

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

اما مهم‌ترین کار برای جلوگیری از این مسئله، اطلاع‌رسانی در مورد اهمیت این موضوع و بعد در مورد راه‌های جلوگیری از اون هست.

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

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

این مطلب رو در این باره بخونید: مجموعه‌ای از نوشته‌ها برای استفاده بهتر و ایمن‌تر از فیس‌بوک – دویچه‌وله

همچنین با استفاده از افزونه‌هایی مثل DoNotTrackMe و خیلی از افزونه‌های دیگه توی مرورگر دلخواهتون مطمئن بشید که فیس‌بوک، گوگل و … شما رو توی سایت‌های دیگه ترک نمی‌کنند.

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

برای آشنایی بیشتر با این موضوع این صفحه، Do Not Track Us رو ببینین و برای جلوگیری از اون از جستجوگر DuckDuckGo به جای گوگل استفاده کنید

از طرفی هر کسی که بین شما و این سایت اینترنتی باشه می‌تونه که اطلاعات شما رو برداره و مطمئن ترین راه برای جلوگیری از این کار استفاده از پروتکل SSL هست، برای این کار سعی کنید سایت‌ها رو با HTTPS باز کنید و یا از افزونه‌ی HTTPS Everywhere از موسسه EFF استفاده کنید.

من توی این وبلاگ قبلا از Google Analytics برای آمارگیری استفاده می‌کردم، اما به پیشنهاد دوست خوبم، امید مومن زاده، الان از نرم‌افزار piwik استفاده می‌کنم. توی این نرم‌افزار آزاد، به آزادی‌های شما احترام گذاشته میشه و اگه شما با فعال بودن گزینه‌ی Do Not Track توی مرورگرتون وارد وبلاگ من بشید، نرم‌افزار piwik شما رو ثبت نمی‌کنه.

این مقاله رو در مورد piwik از وبلاگ سرریزهای ذهن من بخونید: از حالا این وبلاگ اطلاعاتتون رو به گوگل نمی‌ده، حریم خصوصی شما مهمه

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

پی‌نوشت: مثل این که افزونه‌ی wp-statictis وردپرس، به گزینه‌ی Do Not Track اهمیتی نمی‌ده، پس من هم افزونه رو غیرفعال کردم.

لینک‌های مرتبط

  1. We put your privacy first – Mozilla
  2. Data Privacy Day – Wikipedia

بهترین انتخاب واحد دانشگاه

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

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

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

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

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

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

جمع آوری اطلاعات

خب توی فاز اول باید اطلاعات درس‌ها رو دربیارم. با توجه به مشکلات امنیتی که گفتم به سادگی میشه SQL Inject کرد به سیستم و اطلاعات رو در  آورد. حتی اگه SQL معتبر نفرستین سیستم سخاوتمندانه اخطار می‌ده و راهنمایی‌تون میکنه. ولی من قصد ندارم که از دانشگاه اخراج بشم و کرکر هم نیستم، پس این گزینه رو رد می‌کنم و سعی میکنم از اون چیزی که همه بهش دسترسی دارن استفاده کنم. پس خیلی ساده با استفاده از یه لایبرری ۵۰ کیلوبایتی به اسم simple html dom، اطلاعات مورد نیازم رو از صفحه‌ی مربوطه دربیارم و بعد محاسبات مورد نیازم رو روش انجام بدم.

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

مشکل بعدیم تصحیح اطلاعات هست، من از ك و ي عربی توی زبان فارسی خوشم نمی‌اد! و مهم‌تر از اون من روی «سه شنبه ساعت ۱۰ (به مدت ۱ ساعت کلاس W210)» محاسبات نمی‌تونم انجام بدم. پس مجبورم این رشته‌ها رو اصلاح کنم و همچنین این ساعت‌ها رو به یه مفهوم قابل محاسبه برای خودم تبدیل کنم. خوشبختانه توی کل سیستم تمام اشتباهات یه جور هستن (یعنی اگه نوشته «یکشنبه»، همه جا همینه و میشه الگو توش درآورد.)

محاسبه و در آوردن خروجی

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

  • با حداقل اتلاف وقت بیشترین واحد رو بگیرم؛ مثلا سه روز ۱۸ واحد
  • زمان کافی قبل از روز امتحانش داشته باشه
  • با استادی که بهتر درس و نمره میده باشه
  • ترم متناسب باشه، خیلی سخت نباشه و خیلی هم آسون نباشه
  • درس‌هایی اولویت بیشتری دارن که پیش‌نیاز بقیه هستن

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

  • تداخل زمانی نداشته باشه
  • تداخل امتحانی نداشته باشه
  • پیش‌نیاز درس رو گذرونده باشم
  • بیش تر از ۲ درس عمومی نداشته باشه

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

اینجا میشه دستم رو باز بزارم و بگم که مثلا تمام حالت‌هایی که روزهای بیشتری توی هفته خالی دارن و حداقل ۱۵ واحد توش برداشته شده رو برای من برگردونه؛ برای من به شخصه چون مشغول به کار هستم، خیلی مهمه که بتونم این زمان تلف شده توی دانشگاه رو تا حد امکان کم کنم.

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

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

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

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

نرم‌افزار آزاد، علوم کامپیوتر و ریاضی