SIP Protocol | پروتکل سیپ

برای پروژه‌ای یک مقاله کوتاه در مورد SIP نوشتم. اینجا هم قرارش میدم شاید به درد کسی خورد.

تماسهای روی IP از دو دسته‌ی اصلی پروتکل تشکیل شده اند:

۱- پروتکل‌های Transmission

۲- پروتکل‌های Signaling

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

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

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

پروتکل SIP یک پروتکل لایه اپلیکیشن هست که شباهت زیادی به پروتکل HTTP دارد. بدین صورت که با ارسال پیغامهای متنی، کلاینت و سرور با هم ارتباط برقرار میکنند. پیغامهای متنی SIP از دو دسته تشکیل شده اند. درخواست ها و پاسخ ها.

ادامه این نوشته

نظر بدید

کمی در باب USB و کاربردش تو اندروید

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

اما تا به حال کنجکاو شدیم که USB چیه و چجوری کار میکنه ؟

USB یا همون Universal Serial Bus یک استاندارد جهانیه که کابل، کانکتور و پروتکلهای ارتباطی در bus، و نحوه تامین توان لازم بین کامپیوتر و سایر تجهیزات الکترونیکی رو تعریف میکنه.

US‌B طراحی شده تا یک ارتباط استاندارد بین تمام لوازم جانبی کامپیوتر مثل موس، کیبورد، دوربین، پخش کننده موسیقی، پرینتر و … ایجاد کنه. استانداردی هم برای ارتباطات متقابل و هم برای تامین انرژی این دیوایسها.

USB 2 که در آپریل سال ۲۰۰۰ معرفی شد چهار سیم داشت: دوتا برای تامین برق، و دو تا برای انتقال اطلاعات. USB 2 قابلیت انتقال ۴۸۰Mbit/s دیتا دارد.

در USB 3 که در نوامبر ۲۰۰۸ معرفی شد، تعداد سیم ها به ۹ سیم افزایش یافت. USB 3 قابلیت انتقال اطلاعات تا ۵Gbit/s دیتا دارد.

همونطور که مشخصه دستگاه های جانبی برای کار کردن نیاز به توان الکتریکی دارند و USB این توان رو تامین میکنه. در استاندارد USB ولتاژ ۵ ولت به دستگاه داده میشود و دستگاه میتواند تا ۵۰۰ میلی‌آمپر جریان بکشد. این مقدار جریان در USB3 به ۹۰۰ میلی‌آمپر افزایش یافت.

ارتباطات USB به شکل master/slave (رئیس/برده) هستند. در این سبک ارتباطات یک دستگاه (مثل لپتاپ شما) نقش master یا همون هاست رو بازی میکنه و یک دستگاه دیگه (مثل هارد دیسک اکسترنال) نقش slave رو ایفا میکنه. به این شکل که master توان الکتریکی مورد نیاز slave رو تامین میکنه و بر روی اون کنترل داره. برای مثال وقتی گوشیتون رو به لپتاپتون متصل میکنید، میتوانید با لپتاپ فایلهای گوشی رو مدیریت کنید و در عین حال لپتاپ برای گوشی ولتاژ ۵ولت فراهم میکنه که منجر به شارژ شدن گوشی میشه. اما تو این حالت از طریق گوشی هیچ کنترلی رو لپتاپ ندارید و این لپتاپه که مدیریت رو بر عهده داره. چون لپتاپ در اینجا نقش Master یا به بیان دیگری نقش هاست رو بر عهده گرفته.

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

USB On-The-Go یا USB OTG یا OTG تکنولوژی‌ای است که در سال ۲۰۰۱ به روی USB 2 تعریف شد. این تکنولوژی این امکان رو میداد که یک دیوایس هم بتونه نقش  Master و هم بتونه نقش Slave رو بازی کنه. این دقیقا همون دلیلیه که میتونید با یه کابل OTG گوشی رو تبدیل به یک USB Host کنید و مثلا بهش حافظه فلش متصل کنید.

خب حالا یه سوال: من میتونم از طریق USB گوشی دیتا رد و بدل کنم؟ اینجا منظورم از دیتا فایل نیست. منظورم مثلا دیتای سیگنالینگه. فکر کنم دارم بد توضیح میدم. اجازه بدید منظورم رو با یه مثال بگم:

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

اینجا همون جاییه که تکنولوژی OTG به کارم میاد. و خبر خوب اینکه تمام APIهای لازم برای این کار به طور پیشفرض در SDK اندروید وجود دارند. این API رو میتونید اینجا ببنید و کار باهاش رو یاد بگیرید.

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

منبع توضیحاتم در مورد USB، این لینک و این لینک از ویکی‌پدیا بود.

نظر بدید

آدرس جدید وبلاگ من : thearash.net

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

یک نظر

ساخت عکسهای مناسب برای screen density های متفاوت در اندروید با یک دستور

اگر توسعه دهنده‌ی اندروید باشید، میدونید که اندروید برای اینکه بتونه دیوایس‌های مختلف با density متفاوت رو هندل کنه، به شما اجازه میده تا از هر عکس چند سایز مختلف رو داخل پروژه قرار بدید تا خود سیستم عامل بر اساس screen density دیوایس اجرا کننده اپلیکیشن،‌تصمیم بگیره از کدوم سایز عکس استفاده کنه. جدیدا با اضافه شدن سایز جدید برای گوشی‌های با dpi بالا (حدود ۶۵۰dpi) این تعداد به ۶ رسیده و شما اگر بخواید خیلی اصولی جلو برید،‌ باید از هر عکس ۶سایز مختلف رو در داخل پروژه قرار بدید. این شیش سایز عبارتند از :

  • ldpi
  • mdpi
  • hdpi
  • xhdpi
  • xxhdpi
  • xxxhdpi

خب تغییر سایز هر عکس و ساخت شش عکس با سایز متفاوت برای هر کدوم اینها کار آسونی نیست. برای همین یک bash script نوشتم تا این کار رو برامون خیلی راحت انجام بده. شما تنها کاری که باید بکنید اینه که اول اسکریپتی که نوشتم و اسمش رو گذاشتم andsity ( ترکیب density و android) رو دانلود کنید و سپس اون رو اجرا کنید تا شش عکس رو در کنار عکس اصلی بسازه. فقط به این دو نکته دفت کنید :

۱- عکسی که به عنوان ورودی به دستور میدید باید عکسی باشه که میخواید در دیوایس‌های xxxhdpi (یعنی حدود ۶۶۰dpi) نمایش داده بشه.

۲- این دستور از پکیج ImageMagick برای تغییر سایز استفاده میکنه پس باید حتما ImageMagick رو نصب داشته باشید.

برای مثال، من andsity.sh و همینطور عکس مورد نظرم رو روی دسکتاپ قرار میدم و بعد از تغییر دایرکتوری به دسکتاپ، دستور زیر رو اجرا میکنم‌:

 ./andsity.sh arash.jpg

اگر عکس arash.jpg روی دسکتاپ وجود داشته باشه و ImageMagick رو سیستمم نصب باشه، بعد از اجرای این دستور بر روی دسکتاپ من شش فولدر قرار میگیره که عکس هر سایز درون فولدر مخصوصش قرار گرفته.

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

۳ نظر

چرا من باید/نباید از ایران برم؟

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

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

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

چرا من باید از ایران برم:

  • پیشرفت تحصیلی

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

  • پیشرفت کاری

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

  • رفاه یک زندگی متوسط

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

  • آرامش

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

چرا من نباید از ایران برم:

  • خانواده

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

  • دوستان

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

  • تغییر ناگهانی زندگی

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

  • پیشرفت کشور

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

نتیجه شخصی من:

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

۷ نظر

دایره‌ای کردن عکس‌ها با Terminal

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

برای اینکه بتونید اینکار رو بکنید باید پکیج ImageMagick رو نصب کرده باشید. حالا کاری که باید بکنید اینه که یک دایره با سایز دلخواه به عنوان فیلتر بسازید و اون رو روی عکستون قرار بدید. این کار با کامند زیر قابل انجام است:

 

convert arash.jpg \
\( +clone -threshold -1 -negate -fill white -draw "circle  ۱۰۰,۱۰۰ ۵۰,۰" \) \
-alpha off -compose copy_opacity -composite arash.png

دقت کنید که من در خط اول دایره رو ساختم و در خط دوم دایره رو روی عکس قرار دادم. بخشی که شما ممکنه نیاز به تغییرش داشته باشید چهار عدد ۱۵۰,۱۵۰,۱۰۰,۱۰۰ است. دو عدد اول (۱۵۰,۱۵۰) مختصات مرکز دایره و دو عدد دوم (۱۰۰,۱۰۰)  مختصات یک نقطه است که دایره تا اونجا باید ادامه پیدا کنه.

نظر بدید

متریال دیزاین | نحوه‌ی استفاده از RecyclerView

material_design

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

  1.  یک تم جدید به نام Theme.Material
  2. ویجتهای جدید ( لیستها و کارتها)
  3.  API برای ایجاد سایه و انیمیشن.

در اینجا من قصد معرفی کلاس ویجت جدیدی به نام RecyclerView رو دارم . این ویجت جایگزین مناسبی برای ListView خواهد بود. مخصوصا زمانی که لیست ما قراره به طور مرتب توسط دیتایی که از وب یا از کاربر میگیره تغییر کنه.

این ویجت در API 21 اندروید معرفی شد. اما در کتابخانه ساپورت ورژن هفت (android.support.v7.widget.RecyclerView) هم وجود داره تا در نسخه های پایینتر هم پشتیبانی بشه.

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

۲ نظر

حل مشکل WebView در اندروید نسخه چهار

اگر برنامه‌نویس اندروید باشید و اگر تو برنامتون از WebView استفاده کرده باشید، احتمالا به مشکل عجیب نمایش پیغام webpage not available یا page can not be loaded یا ۴۰۴ برخورده باشید. این مشکل به این دلیل عجیبه که شما مطمئنید صفحه‌ای که میخواید تو WebView بازش کنید وجود داره و اینو بارها با مرورگرهای مختلف تست کردید. اما وقتی همون صفحه رو تو WebView باز میکنید با پیغام webpage not available رو به رو میشید. البته دقت کنید که این مشکل تو اندروید چهار ( و احتمالا پایینتر) وجود داره و تو اندروید پنج حل شده.

دلیل وجود این مشکل اینه که webkit که در لایه‌های پایینتر سیستم عامل اندروید وجود داره و انجینی هست برای وب‌ویوو ، SSL سایتهای ایرانی رو معتبر نمیدونه. و از اونجایی که WebView به طور پیشفرض طوری نوشته شده که SSL Errorها رو نمایش نده، تنها چیزی که شما میبینید یه صفحه‌ی سفیده و پیغامی که میگه این صفحه نمیتونه باز شه.

و اما راه‌حل؟

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

برای حل این مشکل تنها کافیه که کلاسی مثل کلاس زیر بنویسید:

 

private class mWebViewClient extends WebViewClient{
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            handler.proceed();
        }
    }

و حالا تنها کاری که باید بکنید اینه که یه آبجکت از این کلاس رو به WebView بدید:

 

mWebView.setWebViewClient(new mWebViewClient());

 

و به همین سادگی این مشکل حل خواهد شد : )

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

۶ نظر

تجربه من از TEDx کیش

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

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

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

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

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

tedxkish

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

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

تداکس برای من اونقدر جذاب بود که وقتی این فرصت رو داشتم که با خانم مژده اسکندری (برگذار کننده‌ی اصلی کنفرانس)
موقع خودن چای در هتل شایان هم‌صحبت بشم، اولین سوالم این باشه که “خب خانم اسکندری، ما کی دوباره تو ایران تداکس خواهیم داشت؟”

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

نظر بدید

ما و تصویر غلطمون از دانشگاه‌ ایده‌آل

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

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

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

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

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

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

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

۶ نظر
android application Google I/O HomeBrew ImageMagick Material Design mobile PogressBar RecyclerView splash TEDxKish ux آموزش اندروید الوین تافلر اندروید اپلیکیشن برنامه نویسی برنامه نویسی اندروید برنامه‌نویسی برنامه‌نویسی اندروید تداکس کیش تعمیر تغییر سایز عکس با ترمینال خلاصه کتاب دانش داده دانشگاه دانشگاه ایده‌آل دزد دیتا ساینس رشته مهندسی کامپیوتر ریکامندرسیستم سیستم‌های توصیه‌گر فری‌لنس لپتاپ متریال دیزاین معرفی کتاب موج سوم نوار پیشرفت همایش هوش مصنوعی ُجزیره کیش کار کسب و کار یادگیری عمیق یادگیری ماشین