<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>سالار کابلی</title>

  <link href="https://sallar.me/farsi/feed.xml" rel="self"/>
  <link href="https://sallar.me/farsi"/>

  <updated>2019-01-11T00:25:31+0200</updated>
  <id>https://sallar.me/farsi</id>
  
  <author>
    <name>سالار کابلی</name>
  </author>
    
  <generator>Mira</generator>

  
  <entry>
    <title>پایان</title>
    <link href="https://sallar.me/farsi/the-end/"/>
    <id>https://sallar.me/farsi/the-end/</id>

    <published>2018-05-11T12:43:17+0200</published>
    <updated>2018-05-11T12:43:17+0200</updated>

    <content type="html"><![CDATA[<a name="more"></a>
<p>این وبلاگ سال ۱۳۸۴ شروع به کار کرد. سالی که اتفاقات زیادی افتاد مثل انتخاباتی که آینده همه ما رو تغییر داد، شروع فیلترینگ و سانسور گسترده اینترنت و پیدایش گشت ارشاد. تا حالا که ۱۳ سال از اون موقع گذشته، چیزهای زیادی تغییر کردن ولی لزوما بهتر نشدن. سانسور گسترده‌تر شده و سرکوب فراگیرتر و همه ما خسته‌تر از همیشه.</p>

<p>این ۱۳ سال برای من پستی و بلندی‌های زیادی داشته. چیزهای زیادی به دست آوردم و چیزهای خیلی بیشتری از دست دادم. آزار دیدم و آزار دادم. شکست خوردم و گاهی هم پیروز شدم. ولی مهمترین تغییری که بعد از ۱۳ سال در خودم حس می‌کنم اینه: من از ۱۳ سال پیش، دانش خیلی کمتری دارم و بیشتر از همیشه نیازمند یادگرفتن و کار بیشترم.</p>

<p>من قبلا وبلاگ‌نویسی رو خیلی دوست داشتم و احساس می‌کردم چیزهایی که تو وبلاگم می‌نویسم به اندازه کافی مخاطب دارن. تعداد بازدیدها و نظرات بلاگ هم همین رو منعکس می‌کرد. ولی از چند سال پیش که پلتفرم‌هایی مثل تلگرام به وجود اومدن، تقریبا تمام مخاطب‌های وبلاگ من هم به همون چیزها مهاجرت کردن و الان کمتر کسی بلاگ می‌خونه. شاید نوشته‌های جدید من به درد خیلی‌ها نخوره ولی خب می‌تونم از تعداد بازدیدها و واکنش‌هایی که میگیرم خیلی راحت این برداشت رو بکنم که اگر من همین مطالب رو مثلا تو یه «کانال» تلگرامی بنویسم خیلی بیشتر ازشون استقبال می‌شه. اما این موضوع یه مشکل بزرگ رو به همراه داره: پلتفرم‌هایی مثل تلگرام، وب رو خراب می‌کنن. مطالبی که در تلگرام و سیستم‌های مشابه نوشته می‌شن (مثلا فیسبوک) به آزادی در اینترنت در دسترس نیستن. موتورهای جستجو به سختی می‌تونن پیداشون کنن و اگر کسی توی گوگل بخواد اون مطالب رو پیدا کنه به مشکل می‌خوره. من با وب بسته و غیرقابل جستجو، میونه‌ای ندارم.</p>

<p>مشکل دومی که دارم اینه که من برای نوشتن هر پست وبلاگم، انرژی و زمان زیادی اختصاص می‌دم که نوشته اونجوری باشه که دوست دارم. این به خودی خود بد نیست ولی وقتی از نوشته‌ها بازخوردی که دوست دارم رو نگیرم (مثلا کسی نخونتشون) احساس می‌کنم با زمانم می‌تونستم کارهای مفیدتری انجام بدم. من نویسنده نیستم و نوشتن برای من طبیعی نیست، برای پیدا کردن جملات و لحن بیان درست انرژی زیادی مصرف می‌کنم و همیشه هم به نتیجه دلخواه نمی‌رسم و خیلی وقت‌ها نوشته‌ها باعث سردرگمی مخاطبم می‌شن.</p>

<p>زنده نگه داشتن این وبلاگ، هم برای خودم، و هم برای مخاطب‌های قدیمی وبلاگ ایجاد «انتظار» می‌کنه. من از خودم انتظار دارم هر از چند گاهی مطلبی بنویسم و وقتی فاصله بین مطالب طولانی می‌شه، احساس عذاب وجدان می‌کنم و این فکر که چرا نمی‌تونم بنویسم فکرم رو درگیر می‌کنه. گاهی هم از دوستان پیام دریافت می‌کنم که «چرا دیگه نمی‌نویسی؟» و این عذاب وجدانم رو دو چندان می‌کنه.</p>

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

<p>بخاطر این دلایلی که توضیح دادم، این آخرین نوشته این وبلاگ ۱۳ ساله است. دوست داشتم سال‌های بیشتری زنده نگهش می‌داشتم، ولی زنده نگه داشتنش باعث درگیر بودن دائمی ذهنم می‌شه. اگر حرف به درد بخوری هم برای زدن داشته باشم، می‌تونید حساب <a href="https://twitter.com/sallar">توییتر</a> یا <a href="https://github.com/sallar">گیت‌هابم</a> رو دنبال کنید چون احتمالا این‌ها تنها جاهایی هستن که درشون فعالیت می‌کنم (به ویژه گیت‌هاب).</p>

<blockquote>
  <p>یک چند به کودکی باستاد شدیم <br>
  یک چند به استادی خود شاد شدیم. <br>
  پایان سخن شنو که ما را چه رسید <br>
  از خاک در آمدیم و بر باد شدیم. <br>
  — خیام، رباعیات</p>
</blockquote>

<p>ممنونم که این ۱۳ سال در کنارم بودید و وقتتون رو برای من و وبلاگم گذاشتید. <br>
سالار، بهار ۱۳۹۷.</p>]]></content>

    <summary>
    &lt;p&gt;این وبلاگ سال ۱۳۸۴ شروع به کار کرد. سالی که اتفاقات زیادی افتاد مثل انتخاباتی که آینده همه ما رو تغییر داد، شروع فیلترینگ و سانسور گسترده اینترنت و پیدایش گشت ارشاد. تا حالا که ۱۳ سال از اون موقع گذشته، چیزهای زیادی تغییر کردن ولی لزوما بهتر نشدن. سانسور گسترده‌تر شده و سرکوب فراگیرتر و همه ما خسته‌تر از همیشه.

این ۱۳ سال برای من پستی و بلندی‌های زیادی داشته. چیزهای زیادی به دست آوردم و چیزهای خیلی بیشتری از دست دادم. آزار دیدم و آزار دادم. شکست خوردم و گاهی هم پیروز شدم. ولی مهمترین تغییری که بعد از ۱۳ سال در خودم حس می‌کنم اینه: من از ۱۳ سال پیش، دانش خیلی کمتری دارم و بیشتر از همیشه نیازمن&lt;/p&gt;
    </summary>
  </entry>
  
  <entry>
    <title>سالارکست، قسمت ۴، DX</title>
    <link href="https://sallar.me/farsi/sallarcast-episode-4/"/>
    <id>https://sallar.me/farsi/sallarcast-episode-4/</id>

    <published>2018-01-28T17:46:43+0200</published>
    <updated>2018-01-28T17:46:43+0200</updated>

    <content type="html"><![CDATA[<a name="more"></a>
<p>بالاخره بعد از مدت‌های کمی دست از تنبلی برداشتم و تصمیم گرفتم قسمت چهارم پادکستم رو هم ضبط کنم. مخصوصا به این دلیل که کمی حرف داشتم برای گفتن و نیاز داشتم جایی این حرف‌هارو بزنم. البته ممکنه شما با من موافق نباشید!</p>

<p>در این قسمت از پادکست در مورد Developer Experience یا تجربه توسعه‌دهنده (چیزی مثل تجربه کاربری) صحبت می‌کنم و کمی براتون غر می‌زنم که چرا ما برنامه‌نویس‌ها انقدر عادت داریم محصولات پیچیده و عجیب تولید کنیم و از همه انتظار داریم اون‌ها رو یاد بگیرن؟</p>

<p>قسمت چهارم سالارکست رو <a href="https://soundcloud.com/sallar/sallarcast-04">از Soundcloud بشنوید</a>، و یا فایلش رو از طریق <a href="https://t.me/sallar/4">تلگرام</a> دانلود کنید. تمام موسیقی‌ها و صداهای بکار رفته در این قسمت تحت Creative Commons منتشر شدن. اگر حوصله کلیک کردن ندارید و ساندکلاد روی اینترنت شما سانسور نشده، همینجا گوش بدید:</p>

<iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/389845665&amp;color=%232d2c4d&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true"></iframe>

<p>راستی، من شروع کردم به پخش زنده گاه به گاه هنگام کدنویسی پروژه‌هایی که روشون کار می‌کنم (و منبع باز / Open Source) هستن. اگر دوست دارید تماشا کنید، لطفا در <a href="https://www.youtube.com/user/sallarkaboli">کانال یوتوب من</a> عضو شید تا از زمان‌های پخش زنده باخبر بشید. اگر سانسورچی دوست نداره شما یوتوب ببینید، سعی می‌کنم ویدیوها رو <a href="https://www.aparat.com/sallark/">توی آپارات</a> هم بگذارم. البته قول نمی‌دم به همون سرعتی که تو یوتوب منتشر می‌شن تو آپارات هم آماده باشن.</p>

<p>وقتتون بخیر.</p>]]></content>

    <summary>
    &lt;p&gt;بالاخره بعد از مدت‌های کمی دست از تنبلی برداشتم و تصمیم گرفتم قسمت چهارم پادکستم رو هم ضبط کنم. مخصوصا به این دلیل که کمی حرف داشتم برای گفتن و نیاز داشتم جایی این حرف‌هارو بزنم. البته ممکنه شما با من موافق نباشید!

در این قسمت از پادکست در مورد Developer Experience یا تجربه توسعه‌دهنده (چیزی مثل تجربه کاربری) صحبت می‌کنم و کمی براتون غر می‌زنم که چرا ما برنامه‌نویس‌ها انقدر عادت داریم محصولات پیچیده و عجیب تولید کنیم و از همه انتظار داریم اون‌ها رو یاد بگیرن؟

قسمت چهارم سالارکست رو از Soundcloud بشنوید، و یا فایلش رو از طریق تلگرام دانلود کنید. تمام موسیقی‌ها و صداهای بکار رفته در این قسمت ت&lt;/p&gt;
    </summary>
  </entry>
  
  <entry>
    <title>در نقد دریبل</title>
    <link href="https://sallar.me/farsi/dribbble/"/>
    <id>https://sallar.me/farsi/dribbble/</id>

    <published>2017-06-22T20:41:17+0200</published>
    <updated>2017-06-22T20:41:17+0200</updated>

    <content type="html"><![CDATA[<a name="more"></a>
<p>مدت‌هاست می‌خوام در مورد دریبل (<a href="https://dribbble.com/">Dribbble</a>) بنویسم ولی فرصت نمی‌شد و یادم می‌رفت. امروز ایمیلی گرفتم ازشون که می‌تونم یک دعوت‌نامه بفرستم برای کسی تا عضو بشه و کارهاشو بذاره تو این شبکه آنلاین. البته قبلا هم خودم از کسی دعوت‌نامه گرفتم (سالها پیش) ولی هیچوقت استفاده آنچنانی ازش نکردم.</p>

<p>دریبل یه شبکه آنلاین است از طراحای مختلف که کارهاشون رو در یک قالب‌بندی خاص (اندازه و گاها سبک) تو این شبکه به اشتراک می‌گذارن و بقیه می‌تونن به کارها امتیاز بدن و زیرش کامنت بذارن. کارها رو می‌شه با فرمت PNG، JPG و یا GIF در این شبکه به اشتراک گذاشت به این شرط که اندازه کار از ۳۰۰در۴۰۰ (و یا ۶۰۰در۸۰۰) بیشتر یا کمتر نباشه.</p>

<p>من از دریبل خوشم نمیاد.</p>

<p>چرا؟ به چند دلیل:</p>

<ul>
<li>دریبل طراح رو مجبور می‌کنه کارش رو در یک اندازه و قالب خاص به اشتراک بذاره و به اون هیچ آزادی عملی نمی‌ده. شما «مجبور» هستید که اون طور که دریبل می‌خواد رفتار کنید.</li>
<li>با عضو شدن در دریبل شما فقط می‌تونید کارهای بقیه رو لایک بزنید و زیرش نظر بدید. ولی نمی‌تونید کار و طرح خودتون رو به اشتراک بذارید. دریبل معتقده که طراح واقعی و ارزشمند کسیه که بقیه طراح‌ها انتخابش کرده باشن و براش دعوت‌نامه فرستاده باشن. برای همین یک خرده فرهنگ عجیب در دنیا به وجود اومده که اگر کسی تعدادی دعوتنامه دریبل داشته باشه، از بقیه می‌خواد که نمونه کارهاشون رو براش بفرستند تا اون شخص بین طرح‌های دریافتی، به بهترین‌ها «افتخار عضویت در دریبل» رو هدیه کنه. این خرده فرهنگ (از نظر من فاشیستی) دریبل رو تبدیل به یک باشگاه انحصاری کرده.</li>
<li>مثل همه باشگاه‌های انحصاری دیگه، اعضای دریبل خودشون رو دارای امتیاز خاص نسبت به بقیه می‌دونن و فکر می‌کنن صرفا عضویت در این باشگاه بهشون امتیاز قضاوت حرفه‌ای در مورد کار دیگران رو می‌ده.</li>
<li>طرح‌هایی که در دریبل ثبت می‌شن اکثرا تکرار یک سبک خاص هستن و راحت می‌شه تشخیص داد که صرفا برای نمایش در دریبل طراحی شدن و خیلی از اون‌ها فاقد اعتبار هستن بیرون دریبل و در دنیای واقعی، غیر از نمایش کاربرد دیگه‌ای ندارن (به نظر من).</li>
<li>دریبل یک شبکه بسته است. هر کسی نمی‌تونه به صورت ناشناس در این شبکه عضو بشه (حق ناشناس ماندن در اینترنت) و حتما باید توسط طراحای دیگه شناسایی و تایید بشه.</li>
<li>کاربران دریبل رفتار آزار دهنده دارن در قبال نظراتی که دوست ندارن. چون حس می‌کنند که باشگاهی که درش عضو هستن کاملا انحصاری است، بنابراین از کاربرای دیگه (که بدون تایید عضو شدن و فقط می‌تونن نظر بذارن) انتظار دارن که مطابق میل اون‌ها رفتار کنن و نظرهای از نظر اون‌ها «کلیشه‌ای» مثل «چقدر قشنگه» و «عالی» و ... ثبت نکنن زیر طرح‌هاشون. و اگر شما این‌کار رو بکنید به سرعت بهتون تذکر می‌دن. این رفتار تبعیض آمیز و آزار دهنده، آزادی بیان رو خدشه دار می‌کنه.</li>
</ul>

<p>دریبل هم مثل فیسبوک درهاش رو به روی اینترنت بسته. شاید ندونید که فیسبوک حتی به موتورهای جستجو اجازه نمی‌ده محتوای پست‌هاش رو در فهرستشون ثبت کنن تا قابل جستجو بشن. دریبل هم به شیوه خودش به کاربران اینترنت استفاده اجازه آزاد از شبکه‌اش رو نمی‌ده. اگر دریبل برای استفاده از شبکه‌اش فقط هزینه دریافت می‌کرد کاملا منطقی بود ولی اینکه باید توسط بقیه طراح‌ها تایید شد، از نظر من حقیر، حرکتی سطح پایین، دور از شأن انسانی و فاشیستی است.</p>

<p>من حساب دریبل‌ام را پاک کردم.</p>]]></content>

    <summary>
    &lt;p&gt;مدت‌هاست می‌خوام در مورد دریبل (Dribbble) بنویسم ولی فرصت نمی‌شد و یادم می‌رفت. امروز ایمیلی گرفتم ازشون که می‌تونم یک دعوت‌نامه بفرستم برای کسی تا عضو بشه و کارهاشو بذاره تو این شبکه آنلاین. البته قبلا هم خودم از کسی دعوت‌نامه گرفتم (سالها پیش) ولی هیچوقت استفاده آنچنانی ازش نکردم.

دریبل یه شبکه آنلاین است از طراحای مختلف که کارهاشون رو در یک قالب‌بندی خاص (اندازه و گاها سبک) تو این شبکه به اشتراک می‌گذارن و بقیه می‌تونن به کارها امتیاز بدن و زیرش کامنت بذارن. کارها رو می‌شه با فرمت PNG، JPG و یا GIF در این شبکه به اشتراک گذاشت به این شرط که اندازه کار از ۳۰۰در۴۰۰ (و یا ۶۰۰در۸۰۰) بیشتر یا کم&lt;/p&gt;
    </summary>
  </entry>
  
  <entry>
    <title>نقد سریال: سیزده دلیل که چرا</title>
    <link href="https://sallar.me/farsi/13-reasons-why/"/>
    <id>https://sallar.me/farsi/13-reasons-why/</id>

    <published>2017-05-13T17:57:54+0200</published>
    <updated>2017-05-13T17:57:54+0200</updated>

    <content type="html"><![CDATA[<a name="more"></a>
<p>اول از همه می‌خوام بگم که اگر به هر دلیلی، با شخصیت اصلی این سریال احساس نزدیکی می‌کنید و یا کاری که کرده رو موجه می‌دونید و/یا بهش فکر می‌کنید، خواهش می‌کنم با کسی در موردش صحبت کنید. با <a href="https://fa.wikipedia.org/wiki/%D9%81%D9%87%D8%B1%D8%B3%D8%AA_%D8%B4%D9%85%D8%A7%D8%B1%D9%87_%D8%AA%D9%84%D9%81%D9%86%E2%80%8C%D9%87%D8%A7%DB%8C_%D9%81%D9%88%D8%B1%DB%8C%D8%AA%DB%8C_%D8%AE%D9%88%D8%AF%DA%A9%D8%B4%DB%8C">شماره تلفن‌های فوریتی خودکشی</a> (در ایران ۱۴۸۰ - سازمان بهزیستی کشور) تماس بگیرید یا احساساتتون رو با دوستان، خونواده و یا یک متخصص در میون بذارید.</p>

<hr>

<p>⚠️ <strong>هشدار: خطر لو رفتن داستان</strong></p>

<p>من معمولا در مورد فیلم و سریال‌هایی که می‌بینم چیزی نمی‌نویسم چون تخصصش رو ندارم و صرفا برای تفریح و سرگرمی می‌بینم نه از دیدگاه نقد. ولی خب سریال «۱۳ دلیل که چرا» رو که دیدم، حس کردم باید اینجا در موردش مطلب کوتاهی بنویسم. غیر از نکته‌ای که بالاتر نوشتم، بقیه موارد نظر شخصی من هستن.</p>

<p><img src="poster.jpg"></p>

<p>این سریال به نظرم از کیفیت ساخت خیلی بالایی برخورداره (از لحاظ بازی، شخصیت پردازی، فیلم‌برداری و صدابرداری). سریال در قسمت اول به بیننده قول برملا شدن یک راز بزرگ رو در آخر داستان می‌ده و برای همین حس کردیم باید هر ۱۳ قسمت رو ببینیم و بعد در مورد داستان قضاوت کنیم. فکر کردیم که شاید وقتی اون راز بزرگ افشا می‌شه ارزش داستان هم برای ما مشخص بشه. ولی اینطور نشد. به چند دلیل فکر می‌کنم که سریال خوبی نبود:</p>

<p><strong>یک.</strong> شخصیت اصلی داستان، هانا، شخصیتی عجیب و متوهم داره. همه ما در دوران نوجوانی زندگی کردیم و کم و بیش با مشکلات بزرگ و کوچیک (نسبت به خودمون) دست و پنجه گرم کردیم. ولی هانا، با وجود زندگی متوسط و حتی بالاتر از متوسط (که خودش اینطور فکر نمی‌کنه و جایی از داستان میگه که ما «بالای شهر» زندگی نمی‌کنیم) فکر می‌کنه که مشکلاتی که براش پیش اومدن بهش حق خودکشی- و بدتر از اون متهم کردن بیشتر از ۱۰ نفر رو به کشتنش- می‌دن. هانا یک دید آرمانگرایانه به دنیا داره و فکر می‌کنه که همه باید توانایی خوندن فکرش رو داشته باشن و حتی وقتی با جیغ و داد از بقیه می‌خواد که تنهاش بذارن، اونا باید توی اتاق پیشش بمونن و به حرفش گوش ندن، در حالی که از عده‌ای هم برای اینکه به حرفش گوش ندادن ناراحته. هانا در جایی از داستان در حالی که می‌تونست جلوی مورد تجاوز واقع شدن دوستش رو بگیره، سکوت می‌کنه و توی کمد می‌مونه تا شخص متجاوز کارش رو راحت تموم کنه. دلیلش هم برای این‌کار این بوده که از این ناراحت بوده که کلِی از اتاق بیرون رفته و تنهاش گذاشته. بعدتر به جای شکایت و بازگویی داستان تجاوز، خودش می‌ره در یکی از مهمونی‌های خونه همون آدم شرکت می‌کنه بازهم فقط چون ناراحت بوده و «احساس خلا می‌کرده» و در نهایت به خودش هم تجاوز می‌شه. ولی بازهم با وجود این، از شکایت و اعتراض سر باز می‌زنه و انتظار داره که شخص خاطی، بدون اینکه پدر و مادر و پلیس و مدرسه خبردار بشن، به صورت معجزه آسایی به جزای اعمالش برسه!</p>

<p><strong>دو.</strong> قهرمان داستان، کلِی، که از قسمت اول داستان احساس وظیفه می‌کنه که انتقام خون هانا رو از متهمین بگیره بدون اینکه مطمئن باشه که حق با هانا هست یا نه. در حالی که همه اون افراد هم دائم به کلِی یادآوری می‌کنن که آیا «نوار» خودت رو شنیدی یا نه؟ و ما به عنوان مخاطب انتظار شنیدن نوار کلِی رو می‌کشیم و وقتی به اون نوار می‌رسیم، می‌فهمیم که کلِی در واقع هیچکاری نکرده و خود هانا هم می‌گه جای اون توی این داستان نیست! و کلِی بخاطر احساس خدا/قهرمان گونه‌اش (hero/god complex) خودش رو متهم می‌کنه که چرا از اتاق رفته بیرون؟ کلِی در این داستان با کارهایی که می‌کنه و دائم متهم کردن بقیه و انتقام گرفتن از بقیه، باعث می‌شه که یه عده نوجوان دیگه هم به فکر خودکشی بی‌افتن (مثل الکس).</p>

<p><strong>سه.</strong> در قسمت آخر داستان خودکشی هانا به وضوح به تصویر کشیده می‌شه و حتی روش خودکشیش دقیق و درست نشون داده می‌شه (جهت کشیدن تیغ). بدتر از اون اینه که بعد از ۱۳ قسمت تنها پیام داستان اینه که بقیه افراد بخاطر عدم توجه به دوستشون باعث مرگش شدن و این دختر «حق داشته» این کار رو بکنه. حتی صحنه مرگ هانا خالی از درد و زجر به تصویر کشیده شده و مرگ نسبت پر از آرامشی رو داره. خودتون رو یک لحظه جای نوجوانی بذارید که داره این سریال رو می‌بینه و با هانا حس نزدیکی می‌کنه (به هر دلیلی: عشق، رابطه، محبت ناکافی، خانواده و ...) و می‌بینه که مرگ از این روش چقدر آسون و پر از آرامشه. این واقعا بدترین پیامی هست که یک برنامه تلویزیونی می‌تونه به مخاطب جوانش بده.</p>

<hr>

<p>من متوجهم که موضوع تجاوز و خودکشی موضوعاتی هستن که باید به صورت جدی و در سطح وسیع بهشون پرداخته بشه، ولی از نظر من این راه درستی نیست. چون اگر شما یک سر به شبکه‌های اجتماعی بزنید می‌بینید که چقدر نوجوان‌ها به این سریال علاقه پیدا کردن و با هیجان انتظار فصل دوم رو می‌کشن! به تصویر کشیدن خودکشی به صورت دراماتیک و «به حق» یکی از چیزهایی هست که از نظر من واقعا باید در موردش تجدید نظر کرد.</p>

<p>شما هم نظرتون رو اینجا بنویسید.</p>]]></content>

    <summary>
    &lt;p&gt;اول از همه می‌خوام بگم که اگر به هر دلیلی، با شخصیت اصلی این سریال احساس نزدیکی می‌کنید و یا کاری که کرده رو موجه می‌دونید و/یا بهش فکر می‌کنید، خواهش می‌کنم با کسی در موردش صحبت کنید. با شماره تلفن‌های فوریتی خودکشی (در ایران ۱۴۸۰ - سازمان بهزیستی کشور) تماس بگیرید یا احساساتتون رو با دوستان، خونواده و یا یک متخصص در میون بذارید.

⚠️ هشدار: خطر لو رفتن داستان

من معمولا در مورد فیلم و سریال‌هایی که می‌بینم چیزی نمی‌نویسم چون تخصصش رو ندارم و صرفا برای تفریح و سرگرمی می‌بینم نه از دیدگاه نقد. ولی خب سریال «۱۳ دلیل که چرا» رو که دیدم، حس کردم باید اینجا در موردش مطلب کوتاهی بنویسم. غیر از نکته‌&lt;/p&gt;
    </summary>
  </entry>
  
  <entry>
    <title>ترک شبکه‌های اجتماعی</title>
    <link href="https://sallar.me/farsi/social-networks/"/>
    <id>https://sallar.me/farsi/social-networks/</id>

    <published>2017-04-22T17:22:00+0200</published>
    <updated>2017-04-22T17:22:00+0200</updated>

    <content type="html"><![CDATA[<p>کسایی که من رو میشناسن میدونن که من علاقه زیادی به توییتر داشتم از اول. سال‌های خیلی زیادیه که <a href="https://twitter.com/sallar">حساب توییتر</a>م خیلی فعال است و در مورد همه چیز توش می‌نویسم. از دو سال پیش که از ایران اومدم بیرون یه حساب توییتر دیگه ساختم و حرفای روزمره‌ام رو توی اون منتشر کردم و اکثر کسایی که تو حساب اصلیم دنبال میکردم رو هم توی اون حساب هم دنبال کردم چون حساب اصلی و قدیمیم رو بیشتر اختصاص دادم به ارتباطات جدیدم تو این فضای جدیدی که توش هستم.
<a name="more"></a></p>

<p>ولی داشتن حساب توییتر (و در کل شبکه‌های اجتماعی)، فشار زیادی به اعصاب و آرامش من وارد می‌کنه. چند تا دلیل داره این موضوع:</p>

<ul>
<li>آدمای مختلف در مورد چیزهای مختلف حرف می‌زنن و طبیعتا ممکنه در مورد چیزهایی حرف بزنن که من باهاشون موافق نیستم و یا خلاف نظر و چیزهایی هستن که بهشون اعتقاد دارم و پایبندم. درسته که این حق بقیه است که در مورد هر چیزی که دلشون می‌خواد هر چیزی که دلشون می‌خواد بنویسن، ولی این حق من هم است که نخونم.</li>
<li>خیلی وقتا این آدم‌ها کسایی هستن که من باهاشون ارتباط دوستانه دارم و اصولا آنفالو کردنشون تبدیل می‌شه به یه داستان دنباله دار که خودش باعث ناراحتی و دلخوری می‌شه.</li>
<li>این آدم‌هایی که در مورد چیزهای مختلف حرف می‌زنن (و تعدادشون خیلی زیاد است) همیشه با هم موافق نیستن و اغلب وارد بحث‌هایی می‌شن که تبدیل می‌شه به یه دعوای اساسی و ناراحت کننده.</li>
<li>پر از مسایل سیاسی است و من اصولا آدمی نیستم که به این مسایل علاقه داشته باشم. من به تکنولوژی علاقه دارم و دوست دارم «فقط» اخبار مربوط به تکنولوژی رو بخونم.</li>
<li>توییتر شبکه اجتماعی سریعی است. یعنی هر اتفاقی در دنیا می‌افته با تاخیر چند ثانیه‌ای در توییتر منتشر می‌شه. این شاید از خیلی جهات خوب باشه، ولی شما تصور کنید که من از خواب بیدار شدم و همون اول که چشمام رو باز می‌کنم چشمم میخوره به یه خبر خیلی ناراحت کننده که کل روز یا هفته یا ماهم رو تلخ می‌کنه. ترجیح میدم این اخبار رو وقتی ببینم که از لحاظ روحی آمادگی روبرویی باهاشون رو داشته باشم.</li>
<li>توییتر (و بقیه) یک حالت سوراخ خرگوشی (Rabbit Hole) داره و وقتی واردش میشی بیرون اومدنت با خداست! این ضربه اساسی میزنه به زندگی آدم چون دیگه فرصت نداری کارهای مفید (یا کاری که بابتش پول گرفتی) رو انجام بدی. </li>
</ul>

<p>در نهایت اینکه تصمیم گرفتم اون حساب جدید رو که توش بیشتر حرف میزدم و میخوندم رو ببندم و توی حساب قدیمیم (sallar) فقط اخبار تکنولوژی رو دنبال کنم و بقیه توییت‌هارو بر حسب هشتگ و ... فیلتر کنم که نبینم.</p>

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

<p>فکر نمی‌کنم این مطلب برای کسی جذاب بوده باشه ولی خب اینجا نوشتم که به افکارم سر و سامون بدم.</p>]]></content>

    <summary>
    &lt;p&gt;کسایی که من رو میشناسن میدونن که من علاقه زیادی به توییتر داشتم از اول. سال‌های خیلی زیادیه که &lt;a href=&quot;https://twitter.com/sallar&quot;&gt;حساب توییتر&lt;/a&gt;م خیلی فعال است و در مورد همه چیز توش می‌نویسم. از دو سال پیش که از ایران اومدم بیرون یه حساب توییتر دیگه ساختم و حرفای روزمره‌ام رو توی اون منتشر کردم و اکثر کسایی که تو حساب اصلیم دنبال میکردم رو هم توی اون حساب هم دنبال کردم چون حساب اصلی و قدیمیم رو بیشتر اختصاص دادم به ارتباطات جدیدم تو این فضای جدیدی که توش هستم.

    </summary>
  </entry>
  
  <entry>
    <title>انگیولار ۲ در مقابل ری‌اکت</title>
    <link href="https://sallar.me/farsi/ng2-vs-react/"/>
    <id>https://sallar.me/farsi/ng2-vs-react/</id>

    <published>2017-04-14T18:25:00+0200</published>
    <updated>2017-04-14T18:25:00+0200</updated>

    <content type="html"><![CDATA[<p>من یه مدتی هست که شرکتم رو تغییر دادم و شرکت جدید یه شرکت خیلی بزرگه که بخش‌های مختلف داره. این بخشی که من توش کار میکنم بخش Commerce است و کارشون اینه که برای شرکت‌های و سازمان‌های دیگه، سیستم‌های فروش آنلاین (B2B, B2C) در واقع فروشگاه آنلاین، راه‌اندازی کنن.</p>

<p>یکی از مهم‌ترین ابزارهایی که برای راه‌اندازی اینجور سیستم‌ها استفاده می‌کنن Hybris است که یه «فروشگاه‌ساز» پیچیده و گران ساخت آلمان است و مشتری‌های سازمانی این رو ترجیح میدن چون متعلق به شرکت SAP است و خب خیلی‌ها از بقیه محصولات SAP هم استفاده می‌کنن. این Hybris، با جاوا نوشته شده و برای همین این بخش از شرکت ما پر از برنامه‌نویس‌های جاوا است چون راه‌اندازی و تغییر هایبریس نیاز به مهارت داشتن در جاوا داره (متاسفانه). توی پروژه‌های Commerce که با هایبریس راه‌اندازی می‌شن، معمولا برای راه‌اندازی بخش Front-End از Angular استفاده می‌شه. حالا تا قبل از اینکه من توی شرکت شروع به کار کنم از نسخه ۱ انگیولار استفاده می‌شد ولی از وقتی من اومدم (شش ماه پیش) شروع کردن به استفاده از نسخه ۲. با وجود اینکه من مقاومت زیادی کردم و نمی‌خوساتم از انگیولار استفاده کنم، ولی به دلایلی که پایین‌تر توضیح می‌دم، متوجه شدم که برای اون محیط و اون پروژه‌ها این بهترین گزینه بوده.</p>

<p><a name="more"></a>
از طرفی هم من یک سال و نیمه که روی <a href="https://github.com/buttercup/buttercup">باترکاپ</a> کار می‌کنم، یه نرم‌افزار مدیریت رمزعبور رایگان و متن‌باز که با دوست و همکارم Perry راهش انداختیم. اوایل که شروع کردم به کار روی این پروژه، برای بخش فرانت‌اند فریم‌ورک BackboneJS رو انتخاب کردم چون برام آشنا تر از بقیه فریم‌ورک‌ها بود، ولی <a href="https://sallar.me/refactoring-buttercup/">به دلایلی که تو این نوشته شرح دادم</a> خیلی سریع فهمیدم که گزینه مناسبی نبوده و کل پروژه رو با React و Redux بازنویسی کردم. نسخه‌ای که با ری‌اکت بازنویسی شده بود رو نوامبر ۲۰۱۶ منتشر کردیم و از اون موقع داریم به سرعت به روز رسانی می‌کنیم.</p>

<p>بعد از ۱۰ ماه کار روی یه پروژه React و ۶ ماه کار روی پروژه‌های Angular 2 (به صورت همزمان) فکر می‌کنم بتونم یه جمع بندی کلی بکنم در مورد تجربه کارم با هردو شاید بتونه به کسی که می‌خواد بینشون انتخاب کنه کمک کنه.</p>

<h2 id="انگیولار_۲">انگیولار ۲</h2>

<p>یکی از بهترین چیزهایی که در مورد انگیولار می‌شه گفت اینه که به سرعت می‌شه یک نمونه اولیه از محصول رو راه‌اندازی کرد. چون انگیولار بیشتر یک Framework هست (و نه کتابخانه) و خودش به صورت پیش‌فرض شامل خیلی چیزها است که توسعه رو به شدت آسون می‌کنه.</p>

<p>یکی از نقات قوت انگیولار ۲، زبان توسعه‌اش (Typescript) است از نظر من. با اینکه می‌شه با جاواسکریپت معمولی هم کدها رو نوشت، ولی مستندات انگیولار توصیه می‌کنه که از تایپ‌اسکریپت استفاده بشه که به نظر من گزینه بسیار خوبی است. با اینکه من قبلا با تایپ‌اسکریپت مشکلات زیادی داشتم (بخاطر شبیه بودنش به سی‌شارپ و جاوا و همچنین چون توسط مایکروسافت توسعه داده می‌شه) ولی بعد از مدت‌ها کار باهاش، واقعا بهش علاقه پیدا کردم. جاواسکریپت بخاطر نداشتن تایپ (Type) در زبان، ضعف‌های بسیاری در زمینه Tooling (ابزار کار، ادیتور و ...) داشته همیشه و تایپ‌اسکریپت بسیاری از این مشکلات رو حل می‌کنه. تجربه استفاده از تایپ‌اسکریپت باعث شد که حتی تو <a href="https://github.com/sallar/led-matrix-simulator">پروژه‌های</a> <a href="https://github.com/sallar/led-matrix">شخصی</a> هم گاهی ازش استفاده کنم.</p>

<p>یکی دیگه از خوبی‌های (؟) انگیولار، اینه که از مفاهیم جا افتاده و استاندارد معماری نرم‌افزار استفاده می‌کنه و این (به علاوه تایپ‌اسکریپت) باعث می‌شه که حتی برنامه‌نویس‌های قدیمی جاوا هم بتونن راحت باهاش کنار بیان و کد فرانت‌اند بنویسن و در توسعه‌اش مشارکت داشته باشن. مثلا وقتی یکی از برنامه‌نویس‌های جاوا می‌خواد چیزی رو توی بک‌اند درست بکنه، شاید توی همون PR توی چیزی در فرانت‌اند هم دست ببره و درستش کنه چون کدها به نظرش آشنا میان حتی اگر هیچوقت کد سمت کاربر ننوشته باشه. این مزایای زیادی داره مخصوصا برای شرکت‌ها و سازمان‌های بزرگ. چون همیشه استخدام برنامه‌نویس‌های فرانت‌اند درحالی که برنامه‌نویس بک‌اند توی شرکت بیکار نشسته، کار علاقلانه‌ای نیست و شرکت براش خیلی بهتره که از نیروهای فعلیش استفاده کنه. شاید من و شما، که به این محیط‌ها و شرایط عادت نداریم این موضوع آزارمون بده، ولی خب واقعیت اینه که برای شرکت‌های مسایل دیگه اولویت دارن مثل همین چیزی که توضیح دادم.</p>

<p>موضوع بعدی که به نظرم توی توسعه یک سری از پروژه‌ها کمک زیادی می‌کنه اینه که انگیولار خودش خیلی چیزها رو به صورت پیش‌فرض داره. مثلا برای انجام درخواست‌های شبکه نیاز به نصب چیز اضافی نیست و از پکیج Http خود انگیولار میشه استفاده کرد و خیلی چیزهای دیگه. برای همین سرعت توسعه بالاتر می‌ره و از لحاظ اقتصادی هم به صرفه تره.</p>

<p>اما! بعد از ۶ ماه کار با انگیولار تو ۴-۵ پروژه مختلف، و همه مزایای بالا، باز هم اگر قرار باشه برای یک پروژه جدید فریم‌ورک انتخاب کنم، به هیچ وجه انگیولار رو انتخاب نمی‌کنم. به چند دلیل مختلف:</p>

<ul>
<li>انگیولار یه فریم‌ورک opinionated است، یعنی یک جورهایی روش طراحی و توسعه پروژه رو دیکته می‌کنه. این شاید برای شرکت‌های بزرگ خوب باشه، ولی برای من که می‌خوام پروژه رو بسته به نیازهام مهندسی بکنم چیز جذابی نیست.</li>
<li>انگیولار سنگینه. با اینکه نسخه ۴ انگیولار سبک‌تر شده و خودشون اصرار دارن در حال رفع مشکلات هستن، ولی انگیولار خیلی بار اضافه به همراه داره. مثلا همین پکیج Http و چیزهای دیگه‌ای مثل RxJS، ابزارهای Browser و ... که به صورت پیش‌فرض با انگیولار نصب می‌شن. خیلی از این چیزها برای اینن که توسعه راحت‌تر بشه ولی خب من دوستشون ندارم.</li>
<li>انگیولار از سیستم Templating متنی استفاده می‌کنه. برای اینکه چیزی رو در فرانت‌اند نمایش بدین، باید کد HTML بنویسید و توش از تگ‌های مخصوص انگیولار استفاده کنید. انگیولار هم در «زمان اجرا» (و نه زمان ساخت) این رشته HTML رو بررسی و Parse میکنه و متغیرها و ... رو توش جایگزین می‌کنه با مقادیر اصلی. کلا سیستم‌های templating هرچقدر هم خوب ساخته شده باشن و روی سرعت پردازششون کار شده باشه، ولی بازهم کندن و امکان بروز خطا هم درشون خیلی وجود داره. مثلا وقتی دارید روی پروژه انگیولار با وب‌پک کار می‌کنید، نصف مواقع اگر مشکلی توی کد HTML تون وجود داشته باشه، پیر میشین تا بفهمید مشکل از کجا بوده. دلیلش هم این است که کد HTML از نظر جاواسکریپت فقط یک رشته متن است و اون رو نمی‌فهمه و انگیولار باید پردازشش کنه.</li>
<li>من از مفاهیم Reactive Programming (که به همراه پکیج RxJS وارد انگیولار می‌شه) خوشم نمیاد. به نظرم برای انجام کارهای ساده بیش از حد پیچیدست و ذهن برنامه‌نویس رو به سمت پیچیدگی بیشتر سوق می‌ده تا سادگی. این نظر خیلی شخصی است ولی خب من طرفدار برنامه‌نویسی Functional هستم و از Observe کردن اشیا، فراری‌ :)</li>
<li>انگیولار، گذاشتن Side Effect توی کامپوننت‌ها رو ترغیب می‌کنه. اگر با مفاهیم Functional Programming آشنایی داشته باشید منظورم رو متوجه می‌شید، اگر نه، تو بخش پایین که ری‌اکت رو توضیح می‌دم سعی میکنم کمی هم در مورد اون بنویسم.</li>
</ul>

<h2 id="ری‌اکت_و_ریداکس">ری‌اکت و ریداکس</h2>

<p>یکی از بزرگترین مشکلاتی که در شروع کار با ری‌اکت باهاش مواجه بودم این بود که یاد گرفتنش کار آسونی نبود. البته منظورم از یاد گرفتن ساختن برنامه‌های واقعی باهاشه، وگرنه Todo List رو که همه می‌تونن چشم بسته هم بسازن باهاش. وقتی توی اینترنت دنبال مقالات مربوط به ری‌اکت و ریداکس می‌گردی، هزار جور آدم مختلف هزار جور راه توسعه مختلف بهت پیشنهاد می‌دن و آدم خیلی راحت بین چیزهای مختلفی که می‌خونه گم می‌شه و نمیدونه کدوم به درد کارش می‌خوره. این موضوع دو تا دلیل داره، یکی اینکه برعکس انگیولار، ری‌اکت یه فریم‌ورک نیست و فقط یه View Library است و کارش فقط Presentation است و نوشتن منطق برنامه کاملا به عهده شماست و ری‌اکت روی هیچ روشی برای اینکار تاکید نداره. فقط به شما کمک می‌کنه خروجی رو سریع‌تر و راحت‌تر نمایش بدین. دوم اینکه چون opinionated نیست، شما دستتون کاملا بازه که چطور ازش استفاده کنید برای همین آدم‌های مختلف سعی می‌کنن opinionated اش بکنن و نظر خودشون رو به عنوان «استاندارد» به شما قالب کنن. نباید گولشون رو بخورید!</p>

<p>برای فهمیدن ری‌اکت (و در ادامه‌اش ریداکس)، شما باید یک چیز ساده در ریاضی رو درک کنید:</p>

<pre><code>λx.y (z)
</code></pre>

<p>تابع (Function) ـی که یک ورودی (Argument) و یک نتیجه (Return value) داره. در نمای Lamda Calculus بالا، تابع ورودی x رو قبول می‌کنه و y رو به عنوان خروجی تولید می‌کنه. و ماهم مقدار z رو به این تابع می‌دیم.</p>

<p>اگر با مفاهیم برنامه‌نویسی Functional آشنا نیستید پیشنهاد می‌کنم <a href="https://www.gitbook.com/book/drboolean/mostly-adequate-guide/details">این کتاب عالی</a> رو مطالعه کنید. همه چیز در ری‌اکت و ریداکس بر اساس این مفاهیم طراحی شده. برنامه شما در واقع یک Function از ورودی‌هاست و یک خروجی (ظاهر برنامه تون) رو تولید می‌کنه. در برنامه‌نویسی فانکشنال، اگر ورودی تغییر نکنه، خروجی هم نباید تغییر کنه. بنابراین اگر ورودی‌های برنامه شما تغییر نکنه، همیشه یک خروجی رو باید تولید کنه. (برای حفظ ساختار این مطلب، از توضیح بیشتر خودداری می‌کنم و امیدوارم خودتون بیشتر در این زمینه تحقیق کنید و یا اگر دوست داشتید از من سوال بپرسید)</p>

<p>بعد از درک این مفاهیم، یاد گرفتن ری‌اکت و ریداکس خیلی خیلی ساده می‌شه و حداقل برای من نوشتنش لذت بخشه چون برنامه‌ای که می‌نویسم کاملا قابل پیش‌بینیه. یکی از چیزهایی که معمولا کسایی که می‌خوان ری‌اکت رو یاد بگیرن می‌ترسونه، JSX است، که قبلا <a href="https://sallar.me/app-journey/">به تندی (و اشتباه) در موردش غر زدم</a>! بخاطر این‌که JSX ظاهر «شبیه» به HTML داره، همه فکر می‌کنن که شما در حال نوشتن اچ‌تی‌ام‌ال در جاواسکریپت هستید و این برای خیلی‌ها جذاب نیست. اما اصلا اینطور نیست. JSX غیر از ظاهرش، ارتباط خاصی با HTML نداره. بذارید سعی کنم توضیح بدم چرا. این تیکه کد React رو در نظر بگیرید:</p>

<pre><code class="language-js">const Title = ({ text }) =&gt; (
  &lt;h1&gt;
    &lt;span className="colorize"&gt;{text}&lt;/span&gt;
  &lt;/h1&gt;
);
console.log(&lt;Title text="hello" /&gt;);
</code></pre>

<p>با اینکه این شبیه به HTML است، ولی وقتی برنامه‌تون رو اجرا می‌کنید، قبل از اینکه به مرورگر برسه، این کد توسط Babel تبدیل می‌شه به کد زیر:</p>

<pre><code class="language-js">const Title = function Title({ text }) {
  return React.createElement(
    "h1",
    null,
    React.createElement(
      "span",
      { className: "colorize" },
      text
    )
  );
};
console.log(React.createElement(Title, { text: "hello" }));
</code></pre>

<p>و در واقع این تابع چیزی هست که مرورگر میبینه و اجرا می‌کنه. اگر باور نمی‌کنید، خودتون به جای نوشتن JSX، این‌بار از تابع استفاده کنید. <a href="https://facebook.github.io/react/docs/react-without-jsx.HTML">اینجا بیشتر توضیح دادن در این مورد</a>. پس همینطور که می‌بینید، JSX فقط کار شما رو راحت‌تر می‌کنه که با یه Syntax «واضح» تر، ساختار تو در تو بسازید. یک مثال دیگه برای اینکه باور کنید که JSX ربطی به HTML نداره پکیج <a href="https://github.com/Yomguithereal/react-blessed">react-blessed</a> است. اگر به جای react-dom که به صورت پیش‌فرض باهاش کار می‌کنید با این پکیج کار کنید، خروجی برنامه شما به جای مرورگر (و در نهایت HTML)، توی ترمینال (کنسول) نمایش داده می‌شه. برای اطلاعات بیشتر صفحه همون پکیج رو ببینید. پس ری‌اکت در واقع فقط یک ابزار است که به شما کمک می‌کنه «تابع» بنویسید.</p>

<p>با اینکه به وضوح من از ری‌اکت خیلی خوشم میاد، اما در بعضی از شرایط ازش استفاده نمی‌کنم:</p>

<ul>
<li>ری‌اکت فقط یک View Library است. شما باید خودتون بقیه کارها رو بکنید. مثلا درخواست شبکه، کار با دیتابیس و ... همه به عهده شماست و براش باید ابزارهای مختلف نصب کنید. این برای خیلی‌ها مخصوصا در شرکت‌های بزرگ جذاب نیست چون به سرعت ممکنه چند دستگی به وجود بیاد بین برنامه‌ها.</li>
<li>وقتی تیم شما از برنامه‌نویس‌هایی با پیش‌فرض ذهنی «شی گرایی» تشکیل شده، استفاده از ری‌اکت ممکنه هم‌تیمی‌هاتون رو کلافه کنه چون تقریبا با هرچیزی که تاحالا باهاش کار کردن تفاوت داره مفاهیمش و ممکنه قبول کردن این تغییر براشون سخت باشه. شما قرار نیست هم‌تیمی‌هاتون رو اذیت کنید.</li>
<li>اگر برنامه‌نویسی Functional و Pure رو دوست ندارید و نمیتونید درکش کنید، یا به هر دلیلی فکر می‌کنید برای کار شما مناسب نیست، شاید استفاده از ری‌اکت و ریداکس براتون مناسب نباشه.</li>
</ul>

<h2 id="در_نهایت">در نهایت</h2>

<p>همونطوری که قبلا <a href="https://www.amazon.com/clouddrive/share/eiDdoCBAqfRSY4KjjxUwuptXudhdsmzGb5JA5SLQtLk?ref_=cd_ph_share_link_copy">در این ارائه</a> سعی کردم توضیح بدم، هر ابزاری در جا و مکان مناسب خودش قابل استفاده است و لازم نیست آدم بچسبه به یک ابزار یا زبان خاص و روی استفاده از اون تاکید کنه. هیچ فریم‌ورک، ابزار یا زبانی از سر بیکاری به وجود نیومده، همه این‌ها زاده نیازهای سازنده‌هاشون بودن و خیلی تصادفی ممکنه نیازهای ما با نیازهای اونا همسو باشه. بالاتر توضیح دادم که خود من دو سال پیش با یه سری چیزها کاملا مخالف بودم و الان دوستشون دارم، بخاطر اینکه سعی کردم ذهنم رو باز کنم و ببینم هر ابزاری در جای خودش قابلیت‌های زیادی داره و کمک زیادی بهم می‌کنه. </p>

<p>حالا چه از انگیولار استفاده می‌کنید و چه از ری‌اکت، سعی کنید براتون مهم نباشه که دیگران چه فکری در موردتون می‌کنن و آیا کارتون «باحال» است یا نه. ابزارها فقط ابزار هستن و سبک زندگی نیستن. از چیزی استفاده کنید که مشکلتون رو حل می‌کنه.</p>]]></content>

    <summary>
    &lt;p&gt;من یه مدتی هست که شرکتم رو تغییر دادم و شرکت جدید یه شرکت خیلی بزرگه که بخش‌های مختلف داره. این بخشی که من توش کار میکنم بخش Commerce است و کارشون اینه که برای شرکت‌های و سازمان‌های دیگه، سیستم‌های فروش آنلاین (B2B, B2C) در واقع فروشگاه آنلاین، راه‌اندازی کنن.&lt;/p&gt;

&lt;p&gt;یکی از مهم‌ترین ابزارهایی که برای راه‌اندازی اینجور سیستم‌ها استفاده می‌کنن Hybris است که یه «فروشگاه‌ساز» پیچیده و گران ساخت آلمان است و مشتری‌های سازمانی این رو ترجیح میدن چون متعلق به شرکت SAP است و خب خیلی‌ها از بقیه محصولات SAP هم استفاده می‌کنن. این Hybris، با جاوا نوشته شده و برای همین این بخش از شرکت ما پر از برنامه‌نویس‌های جاوا است چون راه‌اندازی و تغییر هایبریس نیاز به مهارت داشتن در جاوا داره (متاسفانه). توی پروژه‌های Commerce که با هایبریس راه‌اندازی می‌شن، معمولا برای راه‌اندازی بخش Front-End از Angular استفاده می‌شه. حالا تا قبل از اینکه من توی شرکت شروع به کار کنم از نسخه ۱ انگیولار استفاده می‌شد ولی از وقتی من اومدم (شش ماه پیش) شروع کردن به استفاده از نسخه ۲. با وجود اینکه من مقاومت زیادی کردم و نمی‌خوساتم از انگیولار استفاده کنم، ولی به دلایلی که پایین‌تر توضیح می‌دم، متوجه شدم که برای اون محیط و اون پروژه‌ها این بهترین گزینه بوده.&lt;/p&gt;

&lt;p&gt;
    </summary>
  </entry>
  
  <entry>
    <title>استفاده پیشرفته‌تر از مک</title>
    <link href="https://sallar.me/farsi/mac-powerusers/"/>
    <id>https://sallar.me/farsi/mac-powerusers/</id>

    <published>2017-02-22T19:08:00+0200</published>
    <updated>2017-02-22T19:08:00+0200</updated>

    <content type="html"><![CDATA[<p>امروز صبح موقع خوندن توییتر دیدم <a href="https://jadi.net/2017/02/macbookpro2015review/">جادی یه مطلب توی وبلاگش</a> نوشته در مورد مکبوک و رفتم خوندمش. توی اون مطلب جادی در مورد مشکلاتی که موقع کار با مک داشت نوشته بود. منم با توجه به اینکه الان دقیقا هشت سال هست که کاربر مک هستم، تصمیم گرفتم یه مطلب بنویسم در مورد یه سری از ابزارها و چیزها که به درد کاربرهای پیشرفته‌تر می‌خوره. </p>

<a name="more"></a>

<h2 id="انتخاب">انتخاب</h2>

<p>کلا یکی از مهمترین چیزهایی که ما آدم‌ها داریم تو زندگیمون، حق انتخابه. در این یک زمینه خاص، ما حق داریم که سیستم‌عامل مورد علاقمون رو بر اساس سلایق و علایقمون (و همچنین با توجه به وسع مادی و …) انتخاب کنیم. من در مورد کاربرهای عادی حرف نمی‌زنم و به طور خاص دارم در مورد آدم‌های فنی مثل برنامه‌نویس‌ها حرف می‌زنم. به نظر من این جنگ قدیمی که آیا لینوکس بهتر هست یا مک کاملا یه بحث بیهوده و سوخته است. چرا؟ چون همه آدم‌ها یکی نیستن. بعضی‌ها سادگی رو دوست دارن، بعضی‌ها پیچیدگی، بعضی‌ها سادگی و پیچیدگی همزمان و هزار ترکیب سلیقه دیگه.
یکی از خوبی‌های دنیای مدرن اینه که سیستم‌عامل و سخت‌افزار، دیگه مونوپلی نیستن. حداقل سه دسته اصلی سیستم‌عامل وجود داره و هزاران سازنده سخت‌افزار و این سیستم‌عامل‌ها و سخت‌افزارها رو هرجور که دلتون بخواد می‌تونید باهم ترکیب کنید. در نهایت چیزی که مهمه اینه که شما چیزی که براتون کار می‌کنه رو پیدا کنید و در عین لذت بردن ازش، ازش نتیجه‌ای که می‌خواستید رو بگیرید.</p>

<h2 id="فلسفه_مک">فلسفه مک</h2>

<p><img src="os9.jpg"></p>

<p>چیزی که باید قبل از استفاده از مک بهش توجه کنید اینه که سیستم‌عامل مک (و در کل هر چیزی که اپل تولید می‌کنه) یه سیستم‌عامل opinionated هست. یعنی چی؟ یعنی اینکه یه عده طراح نرم‌افزار، سخت‌افزار، برنامه‌نویس و مهندس توی اپل تصمیم گرفتن که یه سری چیزها به یه شکل خاص کار کنن. و این تصمیم‌ها حتی جدید نیستن و خیلی‌هاشون قبل از اینکه خیلی از ماها به دنیا بیایم گرفته شدن. این اصلا فلسفه وجودی شرکت اپل هست. اون‌ها از اول گفتن که محصولاتی رو تولید می‌کنن که «خودشون» ازش لذت ببرن در مرحله اول، و در مرحله دوم آدمایی تو دنیا هستن که با اونا هم‌عقیدن!
حالا شما ممکنه به هر دلیل انسانی‌ای، با اونا هم عقیده نباشید. در این حالت دو تا انتخاب می‌تونید بکنید، یکی اینکه کلا از مک و یا محصولات این شرکت خاص استفاده نکنید، و دومی اینکه مک رو اونطوری که می‌خواید تغییر بدید. این حالت دوم تا حد زیادی قابل انجام هست ولی خب در نهایت با توجه به اینکه اپل، فلسفه‌اش چیزیه که توضیح دادم، ممکنه کاری که بخواید بکنید کمی دردناک باشه.</p>

<p>بنابراین اگر شما به ظاهر تمام macOS هایی که طی ۲۰ سال اخیر توجه کنید، می‌بینید که طراحیشون تغییر اونقدر بزرگی نکرده (از لحاظ ظاهری) و اگر این رو با ویندوز مقایسه کنید می‌بینید که ویندوز از زمان ویندوز ۹۸ تاحالا، حداقل ۱۰ جور طراحی عوض شده. این ثبات بخاطر اینه که اپل روی یک مدل طراحی تاکید داره و کسایی که محصولات اپل رو می‌پسندن، اون نوع از طراحی رو هم می‌پسندن. طراحی ظاهری سیستم‌عامل مک، معمولا با ظاهر فیزیکی دستگاهی که روش اجرا شده هماهنگه (از لحاظ رنگ و یکپارچگی). برای همین خیلی کم پیش میاد کسی که از این محصول استفاده می‌کنه بخواد ظاهر سیستم رو مثلا آبی تیره کنه (که اگر بخواد ممکنه امکان پذیر باشه، ولی منظور من این نیست). مک یه محصول جداگونه برای خودشه و نه شبیه لینوکسه (با اینکه هسته‌اش یونیکسه) و نه شبیه ویندوز و نه برعکس.</p>

<p>در نهایت اینکه یکی از فلسفه‌های مهم شرکت اپل، «سادگی» ـه. این سادگی میتونه ظاهری و سخت‌افزاری باشه، و می‌تونه کاربردی باشه. مثلا اپل دوست داره شما بتونید با فشار دادن کمترین تعداد کلیک فلان کار رو بکنید. در مقابل مثلا هدف لینوکس سادگی نیست، هدفش customizability (قابلیت تغییر دادن) هست. مثل اندروید در مقابل iOS. آدمای مختلف ممکنه انتخابای مختلفی بکنن. کسی که می‌خواد همه‌جای سیستمش رو تغییر بده (مثلا رنگ ظاهر سیستم عامل رو از خاکستری‌ای که «مرحوم» انتخاب کرده تغییر بده به نارنجی) اصولا نباید مک براش چیز جذابی باشه چون توی مک یه سری انتخاب‌ها در مرحله اول به آدم «تحمیل» می‌شن. شما نمی‌تونید من رو قضاوت کنید که چرا از این تحمیل شدن خوشم میاد و من هم نمی‌تونم شما رو قضاوت کنم که چرا خوشتون نمیاد.</p>

<h2 id="نصب_برنامه‌های_جانبی">نصب برنامه‌های جانبی</h2>

<p>حالا با تمام این اوصاف، چیزهایی هستن که توی مک خیلی پیش‌پا افتاده هستن و خیلی راحت با نصب کردن چند نرم‌افزار ساده می‌شه حلشون کرد. امروز توی توییت‌ها دیدم چند نفر ناراحت بودن که چرا باید برای فلان کار برنامه نصب کرد؟ خب معلومه! حتی توی لینوکس هم همه چیز به صورت پیش‌فرض وجود نداره و باید خودتون چیزهای مختلفی که می‌خواید رو نصب کنید. نمی‌فهمم چرا وقتی به مک می‌رسه همه می‌پرسن چرا باید چیز اضافی نصب کرد؟</p>

<p>ضمن اینکه بیشتر نرم‌افزارهای کاربردی که برای مک وجود دارن، مجانی هستن یا حداقل یه نسخه مجانی ازشون وجود داره. اینکه چرا کلا ما باید همش دنبال نرم‌افزار «مجانی» باشیم خودش یه مطلب جداگونه می‌خواد. ولی من شخصا حاضرم بابت زحماتی که یه برنامه‌نویس برای تولید نرم‌افزار باکیفیت می‌کشه پول پرداخت کنم. تعداد زیادی از نرم‌افزارهای مک اگر مجانی نباشن، قیمت خیلی پایینی دارن مثلا ۴-۵ یورو و این در مقابل هزینه‌های دیگه انقدر پایین هست که به چشم نمیاد (یه فنجون قهوه ۴ یورو هست خیلی جاها مثل اینجا).</p>

<p>مک به صورت پیش‌فرض با خیلی از ابزارهای کاربردی منتشر می‌شه. مثلا وقتی شما مک رو باز می‌کنید، همون اول بدون نصب هیچ چیزی، به php, mysql, python, ruby, git, curl و خیلی چیزهای دیگه که گاهی حتی روی لینوکس به صورت پیش‌فرض نصب نیست، دسترسی دارید.</p>

<p>حتی توی مک دو تا اپ به اسم‌های Automator و Script Editor وجود داره که باهاشون می‌تونید خیلی کارهای پیچیده بکنید که خود سیستم عامل به صورت پیش‌فرض انجام نمی‌ده. ولی اپل این گزینه‌ها رو برای کاربرهای پیشرفته‌تر مثل شما طراحی کرده.</p>

<h2 id="معرفی_چند_برنامه_کاربردی">معرفی چند برنامه کاربردی</h2>

<p>اینجا چند تا نرم‌افزار معرفی می‌کنم برای کاربرهایی که ممکنه بخوان بیشتر از حالت عادی سیستمشون رو تغییر بدن. مثلا همه کارا رو با کیبورد انجام بدن (کاری که من می‌کنم) و یا برای مدیریت پنجره‌ها و غیره.</p>

<h3 id="مدیریت_پنجره‌ها">مدیریت پنجره‌ها</h3>

<ul>
<li><a href="https://github.com/mattr-/slate">Slate</a> که باهاش می‌تونید اسکریپت بنویسید و کارهای پیچیده بکنید</li>
<li><a href="https://github.com/kasper/phoenix">Phoenix</a></li>
<li><a href="http://tracesof.net/uebersicht/">Übersicht</a></li>
<li><a href="https://github.com/koekeishiya/kwm">kwm</a></li>
</ul>

<h3 id="شخصی‌سازی_کیبورد_و_ترک‌پد_و_ماوس">شخصی‌سازی کیبورد و ترک‌پد و ماوس</h3>

<ul>
<li><a href="https://pqrs.org/osx/karabiner/">Karabiner</a></li>
<li><a href="https://www.boastr.net/">BetterTouchTool</a> برای شخصی‌سازی کیبورد، ماوس و ... (رایگان نیست ولی کیفیتش بالاست)</li>
</ul>

<h3 id="ادیتور___سیستم">ادیتور / سیستم</h3>

<ul>
<li><a href="https://brew.sh/">Homebrew</a> مهمترین ابزار مدیریت نرم‌افزار. معادل <code>apt-get</code> توی لینوکس</li>
<li><a href="https://code.visualstudio.com/">VSCode</a> ادیتور رایگانی که این مطلب رو توش به فارسی نوشتم</li>
<li><a href="http://hyper.is/">Hyper Terminal</a></li>
<li><a href="https://www.iterm2.com/">iTerm</a></li>
<li><a href="http://fish.sh/">Fish Shell</a></li>
<li><a href="https://github.com/lra/mackup">Mackup</a> برای سینک کردن تنظیمات خیلی از برنامه‌ها بین سیستم‌های مختلف</li>
<li><a href="https://www.alfredapp.com/">Alred</a> رایگان نیست ولی Launcher خیلی قوی‌ای هست</li>
<li><a href="http://www.titanium.free.fr/">Onyx</a> برای دسترسی به تنظیمات پیشرفته‌تر سیستم</li>
</ul>

<p>طبیعتا نرم‌افزارهای دیگه خیلی زیاد هستن ولی من سعی کردم گزینه‌هایی که کمتر شناخته شده و رایگان هستن رو اینجا بنویسم. خودتون هم اگر بیشتر بگردید، کلی نرم‌افزار کدباز عالی پیدا می‌کنید. برای مثال این <a href="https://github.com/jaywcjlove/awesome-mac">لیست</a> رو ببینید که توش کلی نرم‌افزار با جزئیات رو توضیح داده.</p>]]></content>

    <summary>
    &lt;p&gt;امروز صبح موقع خوندن توییتر دیدم &lt;a href=&quot;https://jadi.net/2017/02/macbookpro2015review/&quot;&gt;جادی یه مطلب توی وبلاگش&lt;/a&gt; نوشته در مورد مکبوک و رفتم خوندمش. توی اون مطلب جادی در مورد مشکلاتی که موقع کار با مک داشت نوشته بود. منم با توجه به اینکه الان دقیقا هشت سال هست که کاربر مک هستم، تصمیم گرفتم یه مطلب بنویسم در مورد یه سری از ابزارها و چیزها که به درد کاربرهای پیشرفته‌تر می‌خوره. &lt;/p&gt;


    </summary>
  </entry>
  
  <entry>
    <title>شبیه ساز ماتریکس LED</title>
    <link href="https://sallar.me/farsi/led-simulator/"/>
    <id>https://sallar.me/farsi/led-simulator/</id>

    <published>2016-12-04T18:30:00+0200</published>
    <updated>2016-12-04T18:30:00+0200</updated>

    <content type="html"><![CDATA[<p>چند وقت پیش یه <a href="http://lametric.com/">دستگاه جذاب</a> دیدم که برای <a href="https://twitter.com/idreams_ir">رامین</a> فرستادم و ازش پرسیدم آیا همچین نوع صفحه نمایشی بیرون هست که بخوام براش برنامه‌نویسم خودم و این دستگاه رو نخرم؟ رامین پیشنهاد داد که یه <a href="https://www.adafruit.com/products/420">صفحه 32x16 ماتریکسی RGB</a> بگیرم و از اون شروع کنم ساختن چیزی که میخوام. اما با توجه به اینکه از خرید تا رسیدنش دستم کمی طول می‌کشید، تاب نیاوردم و تصمیم گرفتم شبیه ساز همین صفحه رو با جاواسکریپت بسازم.</p>

<a name="more"></a>

<h2 id="dom_یا_canvas">Dom یا Canvas</h2>

<p>تلاش اول رو با Dom انجام دادم. از ری-اکت استفاده کردم که ۱۶ ردیف ۳۲ تایی div مختلف بچینم کنار هم و بر اساس یه آرایه اون‌هایی که میخوام رو رنگ‌آمیزی کنم که شبیه اون صفحه در بیاد. همه چیز خوب بود تا اینکه تصمیم گرفتم به انیمیشن تبدیلش کنم. الگوریتم انیمیشن اینه: داده‌های صفحه یه آرایه ۱۶ تایی هست که هر کدوم از اعضاش، یه آرایه ۳۲ تایی از آبجکت‌هایی هستن که توش وضعیت پیکسل (خاموش و روشن) و رنگ اون رو مشخص میکنن. برای اینکه تبدیل به انیمیشن بشه، برای هر فریم از انیمیشن، یکی از اون اعضای آرایه ۳۲ تایی رو از اول آرایه برمیداریم و میذاریمش ته آرایه، و این کارو برای هر ۱۶ عضو آرایه اصلی تکرار می‌کنیم و بعد تابعی که اون div هارو رنگ می‌کنه دوباره صدا میزنیم. </p>

<p>جاواسکریپت با سرعت می‌تونه اون آرایه‌ها رو پردازش کنه و تغییرشون بده، ولی تغییر دادن استایل ۵۱۲ تا div در Dom خیلی کار سریعی نیست. برای همین نمیشه در هر ثانیه ۶۰ بار این کار رو انجام داد (۶۰ فریم بر ثانیه که هدف منه). نهایتا میشه در هر ثانیه ۲۰ تا ۳۰ بار این کار رو انجام داد و بخاطر همین انیمیشن نهایی روون نمیشه.</p>

<p>بنابراین تصمیم گرفتم که به جای Dom از Canvas استفاده کنم چون خیلی سریع‌تره. تغییر دیگه‌ای که فکر کردم بدم بهتره این بود که به جای آرایه ۲ بعدی برای رنگ‌آمیزی صفحه از آرایه یک بعدی استفاده کنم. یعنی به جای این:</p>

<pre><code class="language-js">const arr = [
  [{on: true}, {on: false}, {on: true}, ...],
  [{on: true}, {on: false}, {on: true}, ...],
  [{on: false}, {on: true}, {on: false}, ...],
  ...
];
</code></pre>

<p>از این استفاده کنم:</p>

<pre><code class="language-js">const arr = [
  {on: true}, {on: true}, {on: true},
  {on: true}, {on: true}, {on: true},
  ...
];
</code></pre>

<p>ولی با این روش، دسترسی به x و y برای پر کردن خونه‌ها سخت‌تر میشه. چون در حالت ۲ بعدی اگر مثلا بخوام به اطلاعات پیکسل <code>x=10</code> و <code>y=5</code> مثلا دسترسی پیدا کنم، راحت می‌نویسم <code>arr[5][10]</code> و برای رسم همه پیکسل‌ها روی صفحه به دو تا حلقه for نیاز هست. ولی در حالت یک بعدی، برای رسم پیکسل‌ها، باید تو یه حلقه <code>for</code> مقدار <code>y</code> رو با <code>Math.floor(i / 32)</code> و مقدار <code>x</code> رو با <code>i - (y * 32)</code> به دست بیارم. برای دسترسی به یه <code>x</code> و <code>y</code> خاص هم باید اون رو با <code>(y * 32) + x</code> محاسبه کرد. ولی خب در نهایت محاسبه‌ها سریع‌تر میشن چون فقط یه حلقه <code>for</code> به اندازه <code>x * y</code> داریم، نه یه آرایه دو بعدی و دو تا حلقه. (البته برای یه صفحه 32x16 این تفاوت سرعت اصلا محسوس نیست). </p>

<p>با این تغییرات (در اصل تغییر Dom به Canvas) و استفاده از <code>requestAnimationFrame</code> خیلی راحت ۶۰ فریم در ثانیه به دست میاد.</p>

<h2 id="نوشتن_متن_روی_صفحه">نوشتن متن روی صفحه</h2>

<p>میکروکنترلرها برای اینکه متن رو روی اسکرین‌های پیکسلی بنویسن، از فونت‌های Bitmap استفاده می‌کنن. فونت‌های بیت‌مپ همونطور که از اسمشون مشخصه، فونت‌هایی هستن که اطلاعات هر گلیف (حرف) رو به صورت یه آرایه از پیکسل‌ها ذخیره می‌کنن. مثلا اگر عرض هر حرف قراره ۶ پیکسل باشه، و ۹۶ حرف داشته باشیم، یه فونت بیت‌مپ در واقع یه آرایه دو بعدی ۹۶در۶ هست. هر پیکسل به صورت یه بایت اطلاعات ذخیره شده (هشت بیت) که در واقع ارتفاع پیکسلی اون ستون هست. بنابراین هر گلیف اندازش ۶ در ۸ پیکسله. مثلا این اطلاعات حرف A هست:</p>

<pre><code class="language-js">[0x7c,0x24,0x24,0x24,0x7c,0x00]
</code></pre>

<p>شیش تا عدد هگزادسیمال (مبنای ۱۶). حالا این رو چطور رسم کنیم؟ اول اون عددای هگزادسیمال رو تبدیل به باینری می‌کنیم (مبنای دو). توی جاواسکریپت این کار به این سادگی انجام می‌گیره. ولی ما نیاز به یه بایت اطلاعات داریم و این تبدیل شامل صفرهای اول بایت نمیشه پس باید خودمون صفرهاشو بذاریم. هرکدوم از این صفر و یک‌ ها در این بایت، اطلاعات ۸ پیکسل تو ستون اول گلیف ما هستن. و اگر شیش تا از این ستون‌ها رو کنار هم بذاریم حرف A شکل می‌گیره. نکته دیگه اینه که میکروکنترلرها از پایین به بالا می‌چینن ولی ما از بالا به پایین، برای همین باید اون بایت رو برعکس کنیم.</p>

<p><img src="drawing.png"></p>

<p>موضوع بعدی اینه که چطوری اطلاعات هر حرف رو از توی فونت پیدا کنیم؟ آرایه اصلی فونت به ترتیب عدد یونیکد هر حرف ذخیره شده. مثلا گلیف فاصله (کد یونیکد ۳۲) اولیه (صفرمی در واقع)، علامت تعجب (کد ۳۳) دومی (اولی در واقع) و الی آخر. پس برای پیدا کردن گلیف، باید کد یونیکد هر حرف رو به دست بیاریم، ازش ۳۲ تا کم کنیم و اون عدد نهایی، ایندکس گلیف تو آرایه فونته. بعد به ترتیب اینا رو کنار هم با فرمولی که توی بخش بالا گفتم رسم می‌کنیم :)‌</p>

<p><img src="simulator.png"></p>

<h2 id="ابزار">ابزار</h2>

<p>برای نوشتن کد این شبیه‌ساز به جای جاواسکریپت معمولی از تایپ‌اسکریپت استفاده کردم بخاطر اینکه توی همچین کدی تایپ‌ها نقش مهمی رو دارن و اگر یه چیز اشتباهی جای چیز دیگه‌ای باشه همه چی بهم می‌ریزه و پیدا کردن مشکل کمی سخت می‌شه. دلیل دیگه‌ای هم داشت و اونم اینه که دوست داشتم یه پروژه شخصی رو هم با این زبون انجام بدم. </p>

<p>برای پیاده سازی مثال‌ها و بقیه چیزهای نمایشی هم به جای ری‌اکت از <a href="https://github.com/developit/preact">preact</a> استفاده کردم که نسخه ۳ کیلوبایتی ری‌اکت هست در واقع و خیلی شبیهه و کمی سریع‌تر. اونم فقط به این خاطر که میخواستم از چیز جدید و سبک استفاده کنم.</p>

<p>کدهای این شبیه‌ساز رو <a href="https://github.com/sallar/led-matrix-simulator">اینجا</a> و مثال زنده‌اش رو رو میتونید <a href="https://sallar.github.io/led-matrix-simulator/">اینجا ببینید و باهاش بازی کنید</a>.</p>]]></content>

    <summary>
    &lt;p&gt;چند وقت پیش یه &lt;a href=&quot;http://lametric.com/&quot;&gt;دستگاه جذاب&lt;/a&gt; دیدم که برای &lt;a href=&quot;https://twitter.com/idreams_ir&quot;&gt;رامین&lt;/a&gt; فرستادم و ازش پرسیدم آیا همچین نوع صفحه نمایشی بیرون هست که بخوام براش برنامه‌نویسم خودم و این دستگاه رو نخرم؟ رامین پیشنهاد داد که یه &lt;a href=&quot;https://www.adafruit.com/products/420&quot;&gt;صفحه 32x16 ماتریکسی RGB&lt;/a&gt; بگیرم و از اون شروع کنم ساختن چیزی که میخوام. اما با توجه به اینکه از خرید تا رسیدنش دستم کمی طول می‌کشید، تاب نیاوردم و تصمیم گرفتم شبیه ساز همین صفحه رو با جاواسکریپت بسازم.&lt;/p&gt;


    </summary>
  </entry>
  
  <entry>
    <title>مالیات در فنلاند</title>
    <link href="https://sallar.me/farsi/taxes-in-finland/"/>
    <id>https://sallar.me/farsi/taxes-in-finland/</id>

    <published>2016-09-28T14:44:00+0200</published>
    <updated>2016-09-28T14:44:00+0200</updated>

    <content type="html"><![CDATA[<p>یکی از جالب‌ترین مواردی که بعد از اومدن فنلاند بهش برخوردم، موضوع حقوق و مالیات بود. چون با توجه به اینکه ما در ایران خیلی به مسئله مالیات توجه نمی‌کنیم و تقریبا وقتی درآمدی داریم، بدون کسری وارد حسابمون می‌شه، بعد از اومدن به فنلاند و دریافت اولین حقوقم و انجام کارهای مربوط به مالیات خیلی تعجب کردم. با اینکه می‌دونستم از قبل که در کشورهای دیگه مسئله مالیات خیلی مهم ولی نمی‌دونستم که انقدر! برای همین تصمیم گرفتم که این مطلب رو حالا بعد از حدود ۲ سال کار در اینجا بنویسم شاید مفید باشه برای کسایی که تصمیم دارن در آینده مهاجرت کنن.</p>

<p>اولین چیزی که باید بهش توجه کنید اینه که وقتی به شما کاری پیشنهاد می‌شه و می‌گن حقوقش x یورو است، به این معنی نیست که شما ماهیانه x یورو دریافت می‌کنید. اون مقدار حقوق که به شما اعلام می‌شه در واقع حقوق Gross یا قبل از کسر مالیات هست و برای اینکه این پول به حساب شما برسه، چند تا بلا سرش میاد. ولی برای اینکه توضیح بدم چه اتفاقاتی می‌افته باید اول توضیح بدم که سیستم مالیاتی اینجا چطور کار می‌کنه.
<a name="more"></a></p>

<h3 id="کارت_مالیات">کارت مالیات</h3>

<p>برای اینکه شما بتونید «درآمد» داشته باشید، باید «کارت مالیاتی» تون رو به کارفرما بدین تا بر اساس اون حقوق شما محاسبه و واریز بشه. کارت مالیات رو شما باید از سازمان مالیات (در فنلاند Vero) دریافت کنید. معمولا این کارت رو هر سال ژانویه دریافت می‌کنید و به کارفرماتون تحویل می‌دید. کارت مالیات رو می‌تونید از طریق تلفن، حضور در اداره مالیات و یا از اینترنت دریافت کنید. روندش به طور خلاصه به این صورته:</p>

<ul>
<li>هر سال ماه ژانویه برای دریافت کارت مالیات جدید اقدام می‌کنید</li>
<li>هنگام پر کردن فرم مالیات، باید پیش‌بینی کنید که در طول اون سال (از ژانویه تا دسامبر) قراره چقدر درآمد داشته باشید. مثلا اگر حقوق شما ۵۰۰۰ یورو اعلام شده، شما باید مقدار کل درآمد اون سال (Annual Income)  رو ۶۰۰۰۰ یورو وارد کنید در فرم.</li>
<li>اطلاعات دیگه مثل وضعیت تاهل، شهر محل سکونت و … باید وارد بشه ولی معمولا به صورت پیش‌فرض اون اطلاعات پر شدن و لازم نیست کاری بکنید.</li>
<li>سیستم بر اساس این داده‌ها یک کارت مالیات بهتون می‌ده و اون کارت رو به کارفرما می‌دین (معمولا یک برگ کاغذ یا فایل پی‌دی‌اف) و اون‌ها حقوق رو بر اساس اون کارت مالیات براتون واریز می‌کنن هر ماه.</li>
</ul>

<p>حالا توی اون کارت مالیات چه اطلاعاتی نوشته شده؟ توی کارت مالیات ۲ تا عدد وجود داره:</p>

<ol>
<li><strong>درصد مالیات پایه:</strong> مثلا ۲۷٪. این مقدار مالیاتی هست که شما هر ماه از حقوقتون کم می‌شه به شرطی که درآمدتون هنوز از اون مقداری که برای اون سال اعلام کردید عبور نکرده باشه (مثلا شما ۶۰۰۰۰ یورو اعلام کردید ولی جمع درآمد شما از ژانویه تا اون ماه حقوق هنوز از ۶۰۰۰۰ بالاتر نرفته). معمولا اگر موقع دریافت کارت مالیات پیش‌بینی رو درست انجام بدید عبور نمی‌کنه و همین مقدار باقی می‌مونه مالیات تا آخر سال.</li>
<li><strong>درصد مالیات اضافه:</strong> مثلا ۳۹٪. این درصد برای مازاد درآمد هست. مثلا اگر اتفاقی بیفته که درآمد شما از میزانی که اعلام کرده بودید (مثلا اون شصت هزار یورو) عبور کنه، برای میزانی که عبور کرده باید به جای ۲۷٪ اون درصد دوم رو پرداخت کنید که ۳۹٪ هست مثلا. </li>
</ol>

<p>حالا در چه شرایطی ممکنه درآمد شما در اون سال با مقداری که اعلام کردید تفاوت داشته باشه؟ ممکنه شما کارتون رو عوض کنید و درآمد کار جدید بیشتر از کار اصلی باشه. مثلا اگر شرکت قبلی به شما ماهیانه ۵۰۰۰ یورو پرداخت می‌کرد و شما کارت مالیات رو برای ۶۰۰۰۰ یورو (۱۲ ضربدر ۵۰۰۰) دریافت کرده بودید، اگر شرکت جدید حقوقش ۵۵۰۰ یورو باشه، و شما ماه سپتامبر کارتون رو عوض کنید، اون شصت هزار یورو زودتر پر می‌شه و در واقع ۲۰۰۰ یورو از حقوق ماه دسامبرتون دیگه توی سقف مالیات اصلیتون جا نمی‌شه و شما باید اون درصد اضافه (مثلا اون ۳۹٪) رو برای اون ۲۰۰۰ یورو باقی پرداخت کنید (از حقوق آخرتون برای ۳۵۰۰ یورو مالیات ۲۷٪ و برای ۲۰۰۰ یورو مالیات ۳۹٪ پرداخت می‌کنید). حتی اگر کارتون رو هم عوض نکنید و در کار فعلی پاداش یا افزایش حقوق داشته باشید همین اتفاق می‌افته.</p>

<p>حالا برای اینکه این درصد بالای مالیات رو پرداخت نکنیم برای اون مقدار اضافه باید چی کار کنیم؟ دو تا کار می‌شه کرد:</p>

<ol>
<li><p>ماه ژانویه وقتی دارید کارت مالیات می‌گیرید، پیش‌بینیتون رو بیشتر از مقدار درآمدتون در نظر بگیرید. مثلا اگر قراره اون سال ۶۰ هزار یورو درآمد داشته باشید، مقدار پیش‌بینی رو ۷۰ هزار یورو وارد کنید. اینطوری درصد اصلی مالیاتتون ۲-۳ درصد بالاتر از حد اصلی است ولی عوضش خیالتون راحت هست که اون سال حتی اگر ۱۰ هزار یورو هم بیشتر درآمد داشته باشید مالیاتتون هیچ فرقی نمی‌کنه و لازم نیست استرس داشته باشید. (حالت برعکسش رو پایین‌تر شرح می‌دم)</p></li>
<li><p>شما بعد از اینکه ماه ژانویه کارت مالیات رو گرفتید، تا قبل از ماه دسامبر می‌تونید هر زمان که دلتون خواست برید به سایت مالیات و پیش‌بینی اصلیتون رو تغییر بدید و یک کارت جدید بگیرید. ولی در این حالت درصد مالیات برای ماه‌های باقی مونده ممکنه بیشتر از ۲-۳ درصد بالا بره. چون این دقیقا مثل مورد اول هست، ولی در واقع شما اون ۲-۳ درصد اضافی که هر ماه از ژانویه بیشتر باید پرداخت می‌کردید رو قراره در ماه‌های باقی مونده یک جا پرداخت کنید. این اتفاق امسال برای من افتاد. پیش‌بینی من ماه ژانویه بهم درصد مالیات ۲۵٪ رو داده بود، ولی آخر سپتامبر رفتم پیش‌بینی رو ده هزار یورو بالاتر بردم و باعث شد که مالیات ۳ ماه آخر سال ۳۵٪ بشه! اگر از ژانویه پیش‌بینی رو ده هزار یورو بیشتر در نظر گرفته بودم، در واقع در طول کل سال همون مقدار مالیات رو پرداخت می‌کردم ولی چون تقسیم بر ۱۲ ماه می‌شد انقدر بهم فشار نمی‌اومد.</p></li>
</ol>

<p>معمولا اینجا همه ترجیح میدن مورد اول رو انجام می‌دن و در کل حالت پیشنهاد شده همه است.</p>

<p>ولی اگر مثلا ماه ژانویه اعلام کنیم که ماه قراره ۶۰ هزار یورو درآمد داشته باشیم ولی در طول اون سال نه پاداش بگیریم و نه کارمون عوض شه و در نهایت درآمد کل سال ۵۰ هزار یورو بشه چی؟ ما در واقع در اون سال بابت ۱۰ هزار یورو درآمدی که نداشتیم مالیات پرداخت کردیم به دولت! یعنی مثلا حدود ۲۵۰۰ یورو در طول اون سال مالیات اضافی و بدون دلیل پرداخت کردیم که میتونست بیاد تو حسابمون ولی به جاش به دست دولت رسیده. اما! به همین سادگی شما پولتون رو که به سختی به دست آوردید از دست نمی‌دید:</p>

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

<ul>
<li>شما دقیقا به اندازه درآمدتون مالیات پرداخت کردید.</li>
<li>شما بیشتر از چیزی که اعلام کرده بودید درآمد داشتید و مالیات کمتر پرداخت کردید. در این حالت توی همون نامه یک قبض هم وجود داره که مقدار مالیات اضافه‌ای که باید پرداخت کنید رو بهتون می‌گه که پرداخت کنید و تا ماه ۱۱ اون سال وقت دارید. این اتفاق خیلی پیش نمیاد چون شما با توضیحاتی که قبلا دادم باید جلو همچین اتفاقی رو خودتون گرفته باشید.</li>
<li>شما کمتر از میزانی که اعلام کرده بودید درآمد داشتید و در واقع مالیات اضافی پرداخت کردید. مثلا برای شما مینویسه که در طول سال ۲۰۱۵ شما ۲۵۰۰ مالیات اضافی پرداخت کردید و در آخر مینویسه که این پول رو ماه دسامبر به حساب شما واریز می‌کنیم! این دقیقا همون دلیلی هست که معمولا می‌گن بهتره پیش‌بینی درآمدتون بالاتر از درآمد اصلیتون باشه به دو دلیل یکی اینکه اگر درآمدتون بالاتر رفت مشکلی نداشته باشید و دوما اگر مالیات بیشتر پرداخت کردید، انتهای سال بعد به حسابتون واریز بشه که چون ماه دسامبر اینجا «عید» هست کلا و پس مونده مالیات رو همون حوالی عید کریسمس به حساب‌ها واریز می‌کنن، همه خیلی خوشحال می‌شن وقتی یه پول توجیبی حسابی از پس‌انداز مالیاتی سال قبلشون به حسابشون واریز می‌شه!</li>
</ul>

<p>اینکه بین دریافت اون نامه و واریز باقی مونده انقدر فاصله است به این خاطره که توی اون نامه کارنامه مالیاتی شما، نوشته شده که اگر توی سال قبل خرج‌هایی کردید که برای کارتون بوده و بابتشون مالیات پرداخت کردید، اون خرج‌ها رو در جواب اون نامه اعلام (declare) کنید تا مالیاتی که براشون پرداخت کردید بهتون برگردونده (deduct) بشه. مثلا اگر هزینه سفر بین محل سکونت و محل کارتون در سال گذشته از ۷۵۰ یورو بیشتر شده باشه، مالیات اون مقدار اضافی رو بهتون برمیگردونن (چون بابت بلیط اتوبوس و بنزین و … حدود ۲۴٪ مالیات و عوارض پرداخت کردید) یا مثلا اگر برای «کار» در خونه یه کامپیوتر خریدید، مالیات اون رو بهتون برمی‌گردونن و چیزهایی مثل این که همشون رو توی سایت‌های مالیاتی توضیح می‌دن معمولا.</p>

<h3 id="حقوق_دریافتی">حقوق دریافتی</h3>

<p>حالا شما فرض کنید کارت مالیات گرفتید و درصدی که توش نوشته شده هم ۲۷٪ هست که به نظرتون خیلی بد نیست. اما حقوقی که براتون ماهیانه واریز می‌شه باز هم بیشتر از این مقدار ازش مالیات کسر می‌شه. چرا؟ به این چند دلیل:</p>

<ul>
<li>اگر شرکت هزینه خاصی برای شما می‌کنه، مثلا پول تلفن یا اینترنت شما رو پرداخت می‌کنه، اون هزینه درواقع بخشی از درآمد شما محسوب می‌شه. مثلا اگر حقوقتون ۵۰۰۰ یورو هست، شرکت ۲۰ یورو پول ماهیانه تلفن و ۲۰ یورو پول ماهیانه اینترنت رو پرداخت می‌کنه برای شما، میزان حقوق شما در اون ماه ۵۰۴۰ یورو هست و نه ۵۰۰۰ یورو. در واقع مقدار اون Benefit ها به میزان درآمدتون اضافه می‌شه و شما باید اون‌ها رو در دریافت کارت مالیات هم لحاظ کنین. یعنی در واقع پیشبینی اون سال رو ۶۰۴۸۰ یورو در نظر بگیرید.</li>
<li>از حقوق شما در فنلاند (و خیلی از کشورهای دیگه ولی با درصد متفاوت) حدود ۵.۷٪ هزینه بازنشستگی کم می‌شه ماهیانه. این پول رو هر ماه از حسابتون کم می‌کنن تا وقتی که ۶۵ سالتون بشه و اون موقع با این پول‌ها بهتون ماهیانه حقوق بازشستگی می‌دن. تا زمانی که در فنلاند کار و زندگی می‌کنید حق ندارید این مقدار رو پرداخت نکنید. ولی اگر زمانی خواستید برای همیشه از فنلاند برید، می‌تونید درخواست کنید تا این هزینه‌ها رو بهتون برگردونن</li>
<li>از حقوقتون حدود ۱.۱۵٪ هم بیمه بیکاری کم می‌شه که اگر یه وقت کارتون رو از دست دادید تا چند ماهی بهتون حقوق بدن. </li>
</ul>

<p>در نهایت اگر این عددا رو جمع کنید می‌بینید که مالیات ماهیانه ۳۴٪ می‌شه که از حققتون کسر می‌شه و باقیش براتون واریز می‌شه. مثلا اگر حقوقتون ۵۰۰۰ یورو باشه بعد از محاسبات بالا ۱۷۰۰ یورو مالیات و بقیه چیزها کم می‌شه و ۳۳۰۰ یورو به حسابتون واریز می‌شه. به این مقدار که در نهایت به دستتون می‌رسه می‌گن Net Income یا درآمد خالص.</p>

<p>اگر از درآمد خالص حدود ماهیانه ۱۰۰۰ یورو به طور میانگین هزینه اجاره رو کم کنید، حدود ۲۲۰۰ یورو برای زندگی و خرج‌هاتون باقی می‌مونه. البته تمام این‌ها با این فرض بود که میزان حقوق ۵۰۰۰ یورو در ماه باشه که این مقدار در فنلاند جزو درآمدهای خیلی بالا محسوب می‌شه و افراد متخصص همچین درآمدی دارن (مثلا کسی که در سنای فنلاند کار میکنه ممکنه ۷۰۰۰ یورو درآمد داشته باشه). میانگین درآمد شغل‌های عادی ۳۰۰۰ یورو (قبل از کسر مالیات) است که البته مالیات کم‌تری هم بابتشون پرداخت می‌شه طبیعتا. چون در فنلاند سیستم سوسیالیستی حاکم هست تقریبا هرچقدر درآمد بیشتری داشته باشی باید مالیات بیشتری پرداخت کنی و مالیات ثابت نیست.</p>

<p>در نهایت این نکته رو بگم که اعدادی که ازشون تو این مطلب استفاده کردم هیچکدوم واقعی نیستن و درآمد و مالیات یه شخص حقیقی رو نشون نمیدن. من فقط برای توضیح این موارد به صورت حدسی و حدودی یک سری محاسبات انجام دادم. مثلا ممکنه در واقعیت کسی که ۵۰۰۰ یورو حقوق میگیره بیشتر از ۲۷٪ مالیات پرداخت کنه. فقط اون هزینه بازنشستگی و بیمه بیکاری واقعی‌ان که البته اون هم تو کشورهای مختلف متفاوته. </p>]]></content>

    <summary>
    &lt;p&gt;یکی از جالب‌ترین مواردی که بعد از اومدن فنلاند بهش برخوردم، موضوع حقوق و مالیات بود. چون با توجه به اینکه ما در ایران خیلی به مسئله مالیات توجه نمی‌کنیم و تقریبا وقتی درآمدی داریم، بدون کسری وارد حسابمون می‌شه، بعد از اومدن به فنلاند و دریافت اولین حقوقم و انجام کارهای مربوط به مالیات خیلی تعجب کردم. با اینکه می‌دونستم از قبل که در کشورهای دیگه مسئله مالیات خیلی مهم ولی نمی‌دونستم که انقدر! برای همین تصمیم گرفتم که این مطلب رو حالا بعد از حدود ۲ سال کار در اینجا بنویسم شاید مفید باشه برای کسایی که تصمیم دارن در آینده مهاجرت کنن.&lt;/p&gt;

&lt;p&gt;اولین چیزی که باید بهش توجه کنید اینه که وقتی به شما کاری پیشنهاد می‌شه و می‌گن حقوقش x یورو است، به این معنی نیست که شما ماهیانه x یورو دریافت می‌کنید. اون مقدار حقوق که به شما اعلام می‌شه در واقع حقوق Gross یا قبل از کسر مالیات هست و برای اینکه این پول به حساب شما برسه، چند تا بلا سرش میاد. ولی برای اینکه توضیح بدم چه اتفاقاتی می‌افته باید اول توضیح بدم که سیستم مالیاتی اینجا چطور کار می‌کنه.

    </summary>
  </entry>
  
  <entry>
    <title>کار تیمی</title>
    <link href="https://sallar.me/farsi/teamwork/"/>
    <id>https://sallar.me/farsi/teamwork/</id>

    <published>2016-09-03T20:09:00+0200</published>
    <updated>2016-09-03T20:09:00+0200</updated>

    <content type="html"><![CDATA[<p>در ادامه مطلب قبلی، که در مورد چیزهایی که بعد از مهاجرت یاد گرفتم نوشته بودم، می‌خوام باز هم بنویسم در مورد چیزهایی که در طول انجام کارهای جدیدم یاد گرفتم. چیزهایی که قبلا باید یاد می‌گرفتم ولی متاسفانه هیچوقت نشد.</p>

<p>مهمترین چیزی که بهش رسیدم اینه که فقط خوب یا عالی بودن در انجام یه کاری کافی نیست برای موفق شدن. من مدت‌های طولانی فکر می‌کردم اینکه تمام توان و انرژیم رو برای انجام یه پروژه یا کار می‌ذارم کافیه. ولی بعد از چند ماه کار اینجا متوجه شدم این اصلا کافی نیست و چیزهای خیلی مهم‌تری، یا به همون اهمیت تاثیر دارن توی پیشرفت در کار.
<a name="more"></a></p>

<p><img src="sallars-desk.jpg" alt="My Desk @ Kiosked" id="my_desk___kiosked"></p>

<h3 id="وقت_شناسی">وقت شناسی</h3>

<p>من زمانی که ایران بودم و به صورت فری‌لنس کار می‌کردم، هیچوقت اهمیت زیادی برای زمان قایل نبودم. هروقت که در توانم بود کار می‌کردم و هروقت تموم می‌شد می‌خوابیدم. مثلا ممکن بود کل شب رو بیدار باشم و ساعت ۱ از خواب بیدار شم و یا برعکس. و اینکه اگر هم قرار بود پروژه‌ای رو در x روز یا ماه تحویل بدم، خیلی دقیق روی اون زمان‌بندی پافشاری نمی‌کردم و معتقد بودم که کیفیت کاری که تحویل می‌دم خیلی مهم‌تر از اینه که کار روی سر موقع تحویل بدم. این موضوع شاید بعضی اوقات درست باشه (مثلا وقتی کیفیت کار قراره خیلی پایین بیاد، در اون صورت باید پش‌بینی زمان‌بندی بهتر انجام می‌شد) ولی کیفیت کار به تنهایی قابل قبول نیست و این رو من الان می‌دونم. کار با کیفیت زمانی اهمیت داره که سر موقع انجام داده بشه وگرنه ارزشش رو بکلی از دست می‌ده.</p>

<p>ماه‌های اولی که اینجا سر کار میومدم همیشه سعی می‌کردم ساعت ۹ سر کار باشم (چون نمی‌خواستم نامنظم به نظر برسم) ولی چون قبل از اون در ایران زندگی می‌کردم و تقریبا غیر ممکن بود سر یه ساعت خاص یه جا باشی، اینجا هم بعضی روزها از دستم در می‌رفت و مثلا ۵ دقیقه دیرتر می‌رسیدم. بعد فهمیدم که تیم ما یه قانون داره که اگر بعد از ساعت ۰۹:۰۰ برسی شرکت باید یه یورو بندازی تو قلک تیم! این قانون بامزه بود تا زمانی که تعداد سکه‌هایی که انداخته بودم تو قلک به ۲۰ تا رسید: این یعنی من خیلی روزها دیر می‌رسیدم (حتی ۱ دقیقه هم باعث اجرای اون قانون می‌شد و فرقی نمی‌کرد ۱ دقیقه یا ۱ ساعت - دیر کردن دیر کردنه) و این باعث ناراحتیم بود. بعضی وقت‌ها که توضیح می‌دادم اتوبوس اشتباهی رو سوار شدم همکارهام به شوخی (ولی جدی) می‌گفتن که خب ۱۰ دقیقه زودتر بیدار شو که اگر اشتباهی هم شد بشه جبرانش کرد. اونجا بود که فهمیدم زمان چقدر ارزش و اهمیت داره و سعی کردم بعد از اون همیشه سر موقع برسم. خیلی بارها شده از یک یا دو روز قبل به هم‌تیمی‌هام اطلاع می‌دم که قراره فلان روز من ۱۰ دقیقه دیرتر برسم چون فلان کار رو دارم و این روش درست‌تری هست از «بعدا» اطلاع دادن؛ چون اینطوری بقیه می‌تونن برنامه‌های تیم رو با آدم هماهنگ کنن.</p>

<p>موضوع دیگه‌ای که توی فنلاند خیلی به چشم میاد اینه که سیستم حمل و نقل عمومی خیلی دقیق هست. یعنی اگر توی اپ نوشته باشه فلان اتوبوس ساعت ۰۸:۲۳ میاد، معنیش اینه که با درصد خطای خیلی کمی اتوبوس همون موقع میاد و اگر حتی در حال دویدن به سمتش هم باشی خیلی اوقات منتظرت نمی‌مونه و در حالی که داری می‌بینیش می‌ره حتی اگر برف و کولاک و یخبندان باشه، و بارها این اتفاق برای من افتاده و این به آدم یاد می‌ده که همیشه زودتر از موعد اومدن اتوبوس توی ایستگاه باشم.</p>

<p>این دو موضوع باعث شدن که الان من آدم خیلی وقت‌شناس‌تری از قبل باشم. این وقت‌شناسی بعد از مدتی تبدیل به دیسیپلین می‌شه و آدم ناخودآگاه همیشه اون رو رعایت می‌کنه.</p>

<h3 id="عضوی_از_تیم_بودن">عضوی از تیم بودن</h3>

<p>همونطور که قبلا گفتم من تقریبا همیشه به تنهایی کار می‌کردم تا زمانی که وارد این شرکت شدم. توی تیم کار کردن تفاوت زیادی با تنهایی کار کردن داره که اگر بخوام مهم‌ترین‌هاش رو توضیح بدم اینا هستن:</p>

<p><strong>اعتماد داشتن به تخصص هم‌تیمی‌ها:</strong> وقتی آدم تنهایی کار می‌کنه، مجبوره صفر تا صد یه پروژه رو خودش انجام بده. برای همین تقریبا همه چیز با اون کیفیتی پیش میره که انتظارش رو داره. ولی کار کردن تو یه تیم به این معنیه که آدمای دیگه‌ای قراره بخش‌های مختلف پروژه رو انجام بدن و اون‌ها حتما روش کار و کیفیت کارشون مثل خود آدم نیست و کاملا متفاوته خیلی وقت‌ها. مهم‌ترین چیز اینه که به تخصصشون اعتماد داشته باشیم و بدونیم که اون‌هاهم هرکاری در توانشون هست رو انجام می‌دن برای تموم شدن پروژه.</p>

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

<p><strong>تافته جدا بافته نباشیم:</strong> تنهایی کار کردن همیشه حس «خوب بودن» رو به آدم القا می‌کنه. چون آدم فکر می‌کنه انقدر خوب هست که می‌تونه به تنهایی یه پروژه رو انجام بده و بابتش پول بگیره. بعد از یه مدت حتی آدم خودش رو بهتر از «رقیب‌هاش» هم می‌دونه در اون صنعت یا بیزینس. مثلا یک طراح وب فری‌لنس (آزادکار) خیلی وقت‌ها ممکنه فکر کنه از طراح‌های وب دیگه کارش بهتره و طبیعی هم هست این طرز فکر. ولی وقتی وارد تیم بشه و به این تفکرش ادامه بده مشکل ساز می‌شه. آدمای توی یه تیم همه باهم برای به انجام رسوندن یه هدف واحد دارن تلاش می‌کنن. هیچکس رقیب هیچکس نیست و با اینکه ممکنه بعضی‌هاشون از بقیه تجربه بیشتر یا کمتری داشته باشن، هیچکس تافته جدا بافته نیست. اینکه آدم فکر کنه من خیلی خوبم پس روش کار من به روش کار بقیه برتری داره خیلی تفکر مسمومی هست از نظر من. همیشه سعی می‌کنم تفکراتم رو با واقعیت هماهنگ کنم و فکر نکنم من از بقیه بهتر و بالاترم.</p>

<h3 id="دنیای_واقعی">دنیای واقعی</h3>

<p>کار کردن به تنهایی توی خونه و روی پروژه‌های شخصی یا آزادکاری تفاوت عمده‌ای داره با کار توی یه شرکت که محصول و مشتری داره. محصولی که مشتری داره معنیش این هست که اون مشتری بابت محصول پول پرداخت می‌کنه و اون پول داره اون شرکت رو با همه متعلقاتش (از جمله من و شما) اداره می‌کنه. شرکتی که پول نداشته باشه دیگه وجودش معنی نداره. این موضوع باعث می‌شه که «خوشحال نگه داشتن» اون مشتری‌ها تبدیل بشه به پراهمیت‌ترین هدف اون شرکت. حالا بعضی مشتری‌ها بابت کیفیت پول پرداخت می‌کنند و بعضی‌های دیگه بابت «سر موقع» برطرف شدن نیازهاشون.</p>

<p>فرض کنید محصول یه شرکت یک نرم‌افزار آنلاینه و یکی از مشتری‌ها ضمن کار با اون نرم‌افزار به مشکل برخورده و به شرکت ما اطلاع داده و خیلی هم شاکیه. فارغ از اینکه کد خود نرم‌افزار چقدر تمیز و عالی نوشته شده، برای حل مشکل مشتری، ما باید تمام تلاشمون رو بکنیم که در سریع‌ترین زمان ممکن مشکل برطرف بشه. برای این‌کار برنامه‌نویس‌ها باید احیانا کدی رو بنویسن که شاید باب میلشون نباشه ولی مجبورن که بنویسن؛ چرا که اگر اون مشکل اساسی امروز حل نشه ممکن هست اون مشتری از دست بره (این اتفاق بارها افتاده در شرکت فعلی من). هر برنامه‌نویسی که این کد رو می‌نویسه با خودش میگه که «در اولین فرصتی که گیرم بیاد کد رو تمیز می‌کنم بعدا» و توی کد هم هزار تا کامنت Todo می‌ذاره که بعدا روش بهتری پیدا کنه. ولی متاسفانه در دنیای واقعی، بعد از حل مشکل فعلی باید کار متفاوتی انجام بشه و ممکنه تا چند سال بعد کسی فرصت نکنه برای اون Todo های داخل کد روش بهتری پیدا کنه! همین می‌شه که کم کم کد برنامه پر از کدهای قابل تامل می‌شه که هرکدوم یه زمانی یه مشکلی رو حل کردن و برای تمیز کردنشون باید وقت و هزینه بسیار صرف کرد.</p>

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

<p>برای همین من یاد گرفتم که کدی که همکارام توی شرکت می‌نویسن رو با کدی که توی اینترنت توسط آدم‌های معروف به اشتراک گذاشته می‌شن مقایسه نکنم. کدی که به هدف انتشار در اینترنت و اوپن سورس کردن نوشته می‌شه خیلی تفاوت داره با کد داخل شرکت. توی شرکت خیلی وقت‌ها بحث «بقا» مطرح هست و گاهی (متاسفانه) کیفیت در درجه اول اهمیت نیست.</p>]]></content>

    <summary>
    &lt;p&gt;در ادامه مطلب قبلی، که در مورد چیزهایی که بعد از مهاجرت یاد گرفتم نوشته بودم، می‌خوام باز هم بنویسم در مورد چیزهایی که در طول انجام کارهای جدیدم یاد گرفتم. چیزهایی که قبلا باید یاد می‌گرفتم ولی متاسفانه هیچوقت نشد.&lt;/p&gt;

&lt;p&gt;مهمترین چیزی که بهش رسیدم اینه که فقط خوب یا عالی بودن در انجام یه کاری کافی نیست برای موفق شدن. من مدت‌های طولانی فکر می‌کردم اینکه تمام توان و انرژیم رو برای انجام یه پروژه یا کار می‌ذارم کافیه. ولی بعد از چند ماه کار اینجا متوجه شدم این اصلا کافی نیست و چیزهای خیلی مهم‌تری، یا به همون اهمیت تاثیر دارن توی پیشرفت در کار.

    </summary>
  </entry>
  
  <entry>
    <title>بعد از ۱۱ سال</title>
    <link href="https://sallar.me/farsi/11-years/"/>
    <id>https://sallar.me/farsi/11-years/</id>

    <published>2016-07-15T13:38:00+0200</published>
    <updated>2016-07-15T13:38:00+0200</updated>

    <content type="html"><![CDATA[<a name="more"></a>
<p>اولین نوشته این وبلاگ ۱۱ سال پیش، چند روز پیش نوشته شد. ۲۱ تیر ۱۳۸۴.
چقدر همه چیز ساده‌تر بود:</p>

<p>{% blockquote %}
سلام!
خوشحالم بالاخره وبلاگ من هم راه افتاد ( منظورم روزنوشت هست )!
اگر شانس بیارم و خدا بهم عمر اضافی بده، اینجا مطالب جالبی رو خواهید دید!
اگه میشه ، با نظراتتون منو برای ادامه کار دلگرم کنید.
اصلا من گفتم کی هستم؟ اگه نمیدونید یه سری به پرشین تولز بزنید، اونجا یه چند نفری منو میشناسند.
من سالار کابلی، طراح و برنامه نویس وب هستم و زمینه کاری من در برنامه نویسی وب زبان php هست، تا حالا سکریپت های زیادی نوشتم و چند تا سایتی رو راه انداختم.
بازم میگم خوشحالم که یه جا هست که توش بنویسم و چند نفری هستن که باهاشون دوستم.
{% endblockquote %}</p>

<p>نکته دیگه‌ای که به چشم می‌خوره تغییر علاقم هست بعد از ۱۱ سال (در زمینه برنامه‌نویسی). اون زمان پی‌اچ‌پی می‌نوشتم و دوست داشتم طراحی وب یاد بگیرم. سال‌ها بعد پی‌اچ‌پی رو گذاشتم کنار و صرفا طراح وب شدم، و الان طراحی وب رو گذاشتم کنار و باز برنامه‌نویسی می‌کنم اما با Node و Swift. فکر می‌کنم آدم اگر ثابت یه جا بمونه می‌پوسه.</p>

<p><a href="/farsi/hello-everybody/">این هم لینک به اون مطلب. ۲۱ تیر ۱۳۸۴.</a></p>]]></content>

    <summary>
    &lt;p&gt;اولین نوشته این وبلاگ ۱۱ سال پیش، چند روز پیش نوشته شد. ۲۱ تیر ۱۳۸۴.
چقدر همه چیز ساده‌تر بود:

{% blockquote %}
سلام!
خوشحالم بالاخره وبلاگ من هم راه افتاد ( منظورم روزنوشت هست )!
اگر شانس بیارم و خدا بهم عمر اضافی بده، اینجا مطالب جالبی رو خواهید دید!
اگه میشه ، با نظراتتون منو برای ادامه کار دلگرم کنید.
اصلا من گفتم کی هستم؟ اگه نمیدونید یه سری به پرشین تولز بزنید، اونجا یه چند نفری منو میشناسند.
من سالار کابلی، طراح و برنامه نویس وب هستم و زمینه کاری من در برنامه نویسی وب زبان php هست، تا حالا سکریپت های زیادی نوشتم و چند تا سایتی رو راه انداختم.
بازم میگم خوشحالم که یه جا هست که توش بنویس&lt;/p&gt;
    </summary>
  </entry>
  
  <entry>
    <title>حباب</title>
    <link href="https://sallar.me/farsi/the-bubble/"/>
    <id>https://sallar.me/farsi/the-bubble/</id>

    <published>2016-05-20T22:40:10+0200</published>
    <updated>2016-05-20T22:40:10+0200</updated>

    <content type="html"><![CDATA[<p>الان بیشتر از یه ساله که دیگه ایران زندگی نمی‌کنم. این یه سال به من درس‌های بزرگی داده و باعث شده که من جور دیگه‌ای به خودم و آیندم نگاه کنم. متنی که قراره بخونید، ویرایش نشده و خامه. هرچیزی که به ذهنم رسیده رو فقط یادداشت کردم که بتونم احساسم رو توضیح بدم و ازش بگذرم.</p>

<p>می‌خوام در مورد «شناخته شده بودن» حرف بزنم. چیزی که سال‌ها در ایران باهاش آشنایی داشتم. ولی باید قبلش مختصر توضیحی بدم در مورد اینکه اصلا چی شد که من «شناخته شدم»؟
<a name="more"></a></p>

<p>من برنامه‌نویسی رو وقتی حدودا ۱۲ سالم بود شروع کردم بدون اینکه درک درستی از Computer Science داشته باشم و تمام چیزهایی که از برنامه‌نویسی یاد گرفتم اول بر اساس یه آزمون و خطای کودکانه بود و بعد بر اساس تجربه و بعدها کمی علم واقعی قاطی داستان شد. سال‌های نوجوانیم رو صرف یاد گرفتن و تقلید از دیگران کردم تا بتونم برنامه‌نویسی رو اونطور که دوست دارم یاد بگیرم. بزرگ‌تر که شدم به «طراحی» و حسی که طراحی به من می‌داد علاقمند شدم و متوجه شدم که چون توجه زیادی به جزئیات دارم، می‌شه برنامه‌نویسی رو با هنر قاطی کرد و باهاش «وب» رو ساخت. خوش‌شانس بودم و با آدم‌های زیادی آشنا شدم که تو اون راه بهم کمک کردن و همیشه حامی و دوست و دلگرمی بودن برای من. توییتر که اومد تعداد کسایی که کارهامو می‌دیدن بیشتر شدن و خیلی‌ها هم به من لطف زیادی داشتن.</p>

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

<p>حالا برگردیم به «شناخته شده بودن». من شانس آوردم که همزمان با اینکه من به اوج کارم در اوج جوانی رسیدم، گوگل ریدر و توییتر و فیسبوک و … هم شروع کردن به محبوب شدن در ایران و منِ ناشناخته، از همه این شبکه‌ها استفاده کردم برای معرفی خودم و کارهام. شانس آوردم که کسایی بودن که کارم رو دوست داشته باشن و باهام کار کنن و تبدیل بشن به آینده من. آدم‌ها بهم اعتماد کردن و گفتن که کارهامو دوست دارن. و این برای منی که همیشه ناشناخته بودم هیجان بزرگی بود. کم کم دعوت شدن به سخنرانی‌ها، مصاحبه، نوشتن تو مجله‌ها و … شروع شدن و هیجان من هم بیشتر و بیشتر. تعداد فالوورهای توییترم بعد از هر همایش رادیکالی اضافه می‌شدن و آدم‌های بیشتری پیدا می‌شدن که به من خیلی لطف داشتن همیشه.</p>

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

<p>همه این‌ها تبدیل شدن به مسئولیت بیشتر و بالا رفتن انتظار همه کسایی که من رو می‌شناختن و حتی اون‌هایی که من رو نمی‌شناختن. انتظار اینکه سطح کار من هر روز بالاتر بره، انتظار اینکه کار رو سریع تحویل بدم، همه پروژه‌ها رو قبول کنم، همه ایمیل‌ها رو جواب بدم، اگر خودم نمی‌تونم بقیه رو معرفی کنم، و هزار انتظار دیگه‌ای که تبدیل می‌شدن به کابوس شبانه. بالاتر از همه این‌ها انتظار خودم از من که کارم رو در اون سطحی نگه دارم که قولش رو به خودم دادم. و این روز به روز سخت‌تر می‌شد.</p>

<p>از ایران که اومدم بیرون، از یه «طراح وب سنیور معروف» تبدیل شدم به یه «برنامه‌نویس». شروع کردم به کار بین آدم‌هایی که خیلی‌هاشون از من خیلی باهوش‌تر بودن و بیشترشون برنامه‌نویس‌های واقعی بودن؛ نه کسایی مثل من که با آزمون و خطا برنامه‌نویس شده بودن و بخاطر خالی بودن عرصه معروف شده بودن؛ نه. برنامه‌نویس‌های خیلی باهوشی که معروف هم نبودن، ادعایی نداشتن و فالورهای توییترشون هم به ۱۰۰ تا نمی‌رسید. نه براشون مهم بود که شناخته بشن و نه دوست داشتن دیگران دائم ازشون تعریف کنن. حسی که من باهاش بیگانه بودم. فکر می‌کردم چون تو ایران آدم معروفی بودم اینجا هم باید خیلی تحویل گرفته بشم. ولی بعد از مدتی فهمیدم چقدر دارم اشتباه می‌کنم. چقدر همیشه اشتباه می‌کردم. دنیا خیلی بزرگتر از چیزیه که من تصورش رو می‌کردم و آدم‌های خیلی باهوش‌تری از من تو دنیا هستن و من هنوز خیلی راه مونده که برم و به اونا برسم.</p>

<p>این برام فرصت خیلی خوبی بود که تغییر بدم طرز فکر و روش زندگیم رو. طراحی وب رو با اینکه خیلی دوست داشتم و توش خوب بودم گذاشتم کنار و سعی کردم که «فقط» برنامه‌نویس خوبی باشم. یاد گرفتم که نمی‌تونم تو چند تا چیز عالی باشم. نمی‌تونم جذاب‌ترین UI ممکن رو طراحی کنم و در عین حال کد یه سنسور رو با C بنویسم. شاید بتونم هر دو رو در حد متوسط انجام بدم ولی من دوست ندارم متوسط باشم. برای همین انتخاب کردم که برنامه‌نویس بمونم و ازش لذت ببرم و توش خوب باشم.</p>

<p>اینکه دیگه کسی اینجا من رو نمیشناسه به من اجازه داد که دوباره با ذهن باز و بدون دغدغه کاری که همه زندگیم دوست داشتم انجام بدم رو ادامه بدم. این ناشناس بودن برام حس خوشایندیه. حس آسودگی یه تازه کار رو دارم. با اینکه حالا اینجا هم برنامه‌نویس سنیور هستم ولی حالا یه برنامه‌نویس سنیور عادی مثل بقیه برنامه‌نویسای سنیور دنیا هستم. نه کمتر و نه بیشتر. و مثل اونا من هم برای بیشتر دونستن و بیشتر انجام دادن و بیشتر پیشرفت کردن تلاش می‌کنم: با خوب بودن تو یه چیز. نه هزار چیز.</p>

<p>مهم‌تر از همه چیز این رو یاد گرفتم که کار تو دنیای واقعی، فرق داره با محبوب بودن توی توییتر و گیت‌هاب و ردیت. برنامه‌نویس‌های خیلی بزرگی تو دنیا هستن که ۱۰ تا فالوور هم ندارن توی توییتر.</p>

<p>با اینکه نمی‌شه چیزی رو از خاطر آدم‌ها یا اینترنت پاک کرد، ولی دوست دارم بخش بزرگی از «سالار کابلی» که قبلا وجود داشت رو پاک کنم. چون دیگه اهمیتی نداره. درسته که گذشته من باعث شده که من اینی بشم که الان هستم، ولی اون دنیا برای من تموم شده و می‌خوام کوله پشتیم رو بذارم یه گوشه و سبک‌تر سفر کنم.</p>]]></content>

    <summary>
    &lt;p&gt;الان بیشتر از یه ساله که دیگه ایران زندگی نمی‌کنم. این یه سال به من درس‌های بزرگی داده و باعث شده که من جور دیگه‌ای به خودم و آیندم نگاه کنم. متنی که قراره بخونید، ویرایش نشده و خامه. هرچیزی که به ذهنم رسیده رو فقط یادداشت کردم که بتونم احساسم رو توضیح بدم و ازش بگذرم.&lt;/p&gt;

&lt;p&gt;می‌خوام در مورد «شناخته شده بودن» حرف بزنم. چیزی که سال‌ها در ایران باهاش آشنایی داشتم. ولی باید قبلش مختصر توضیحی بدم در مورد اینکه اصلا چی شد که من «شناخته شدم»؟

    </summary>
  </entry>
  
  <entry>
    <title>توسعه با سویفت، از یادگیری تا اجرا</title>
    <link href="https://sallar.me/farsi/developing-for-ios/"/>
    <id>https://sallar.me/farsi/developing-for-ios/</id>

    <published>2016-04-18T21:48:31+0200</published>
    <updated>2016-04-18T21:48:31+0200</updated>

    <content type="html"><![CDATA[<p>تابستان ۲۰۱۵ در شرکت یک برنامه آخر هفته برنامه‌نویسی در شرکت برگزار کردیم و قرار شد ایده‌های شخصیمون رو با هزینه شرکت اجرا کنیم. یکی از ایده‌هایی که من و چندتا از همکارهام داشتیم این بود که برای پیدا کردن رستوران‌هایی که بوفه ناهار دارن اطراف شرکت یک اپ بنویسیم که پیدا کردن جا برای ناهار خوردن راحت‌تر بشه 😃.</p>

<p>من مسئولیت نوشتن اپ رو به عهده گرفتم و اون رو با استفاده از Ionic Framework پیاده سازی کردم و یکی از همکارهام هم دیتای اپ رو توی Firebase ذخیره کرد (با استفاده از یه crawler ساده). اپی که تولید شد توی اون دو روز ساده ولی کاربردی بود و کارش رو به درستی (تقریبا) انجام میداد.
<a name="more"></a></p>

<p><img src="cordova.jpg" alt="Cordova AngularJS" id="cordova_angularjs"></p>

<p>با توجه به نظر خیلی منفی‌ای که نسبت AngularJS و مشتقاتش دارم (Ionic با انگیولار کار می‌کنه) و فکر می‌کنم که هرگز نمیشه یک برنامه سالم رو با AngularJS توسعه داد، بعد از اون ماجرا تصمیم گرفتم اپ رو در زمان بیکاری با استفاده از React Native که اون روزها تازه داشت پا می‌گرفت دوباره پیاده سازی کنم. بعد از چند روز این کار رو کردم و نتیجه هم بد نبود. حداقل حس Native داشت و از انگیولار بهتر بود و ساختار بهتری داشت.</p>

<p>ولی مشکلی که وجود داشت این بود که React Native مشکلات زیادی داشت و من نمی‌تونستم همه اون‌هارو خودم حل کنم و توسعه‌دهنده‌هاش هم وقت زیادی برای حل همه اون مشکلات نداشتن (البته حالا همه اون مشکلات حل شدن و RN گزینه خوبی برای توسعه اپ هست). بنابراین تصمیم گرفتم کلا قید ماجرا رو بزنم.</p>

<p><img src="react-native.jpg" alt="React Native" id="react_native"></p>

<p>از طرف دیگه مدت‌ها بود دلم میخواست زبان برنامه‌نویسی جدید اپل (سویفت) رو یاد بگیرم و حداقل امتحانی هم که شده یه کاری باهاش بکنم. من تاحالا هر اپی که برای موبایل توسعه داده بودم web-based بود و همیشه با جاواسکریپت اینکار رو می‌کردم. برای همین تصمیم گرفتم که هر روز بعد از کار تلاش کنم که سویفت رو یاد بگیرم. چند تا کتاب و آموزش آنلاین رو مطالعه کردم و بعد از مدتی شروع کردم به پیاده سازی امتحانی همین اپ با سویفت.</p>

<p>چیزی که باعث شد سویفت رو برام جذاب کنه Syntax ساده و آشناش بود. من چون با زبان‌های C-Family مثل Javascript, Java و PHP آشنایی داشتم از خیلی سال قبل، سینتکس سویفت برام خیلی طبیعی و آشنا بود و تونستم سریع باهاش کارم رو راه بندازم.</p>

<p>اپ رو با سویفت توسعه دادم بالاخره. البته با کلی سرچ و پرس و جو از دوستان و استفاده از پکیج‌های اوپن‌سورس. نتیجه خیلی بهتر و روان‌تر از اون چیزی بود که انتظار داشتم. طبیعتا یک اپ native خیلی بهتر از مشابه‌های قبلیش با جاواسکریپت بود. <a href="https://github.com/sallar/lunchify-swift">کد رو توی گیت‌هاب ببینید</a>.</p>

<p><img src="swift.png" alt="Swift" id="swift"></p>

<p>در حین توسعه اپ چیزی دیگه‌ای یادم اومد که به کل فراموشش کرده بودم و اون هم این بود که اپ برای کار کردن جدی نیاز به داده‌های واقعی داره! و ۴-۵ تا رستوران اطراف شرکت برای اینکه اپ به صورت واقعی و کاربردی منتشر بشه کافی نیست. برای پیاده سازی دیتابیس اپ و ذخیره داده‌های مورد نیاز از NodeJS که بهتر از هرچیز دیگه‌ای می‌فهممش استفاده کردم. مرحله اول استخراج داده‌ها از منابع مورد نیاز بود و مرحله دوم ذخیره‌شون توی دیتابیس و توسعه API مورد نیاز برنامه.</p>

<p>برای انجام مرحله اول <a href="https://github.com/mohebifar">محمد محبی‌فر</a> عزیز زحمت کشید و وقتی من در حال توسعه خود اپ بودم بهم کمک کرد و ساختار اصلی Scraper رو توسعه داد و بعد با کمک هم چند تا اسکریپت نوشتیم که از این Scraper بتونه از منابع مختلف داده‌های مورد نیاز رو استخراج کنه و تبدیلشون کنه به فرمتی که دیتابیسم انتظار داره. نکته جالب قضیه اینه که همه رستوران‌هایی که می‌خواستم توی اپ باشن نوع داده‌شون باهم یکی نبود. بعضی‌هاشون API داشتن و بعضی‌هاشون منوهاشون به صورت PDF توی وب‌سایتشون منتشر می‌شد! اسکریپتی که نوشتیم همه این فرمت‌ها رو میخوند و داده‌ها رو استخراج و تمیز می‌کرد. <a href="https://github.com/sallar/lunchify-scraper">پروژه رو می‌تونید توی گیت‌هاب ببینید</a>.</p>

<p>برای مرحله دوم هم یک API خیلی ساده با MongoDB توسعه دادم و قابلیت جستجو بر اساس لوکیشن رو بهش اضافه کردم. MongoDB به صورت پیش‌فرض از اطلاعات مکانی (Geo) پشتیبانی می‌کنه و می‌تونه بر اساس Lat و Long جستجو کنه. برای همین نیاز نبود خیلی تلاش کنم برای این بخش. <a href="https://github.com/sallar/lunchify-api">کد این بخش رو هم اینجا می‌تونید ببینید</a>. (البته توجه کنید که هنوز کدها نهایی نشدن و براشون تست نوشته نشده).</p>

<p>در نهایت اپ رو به API وصل کردم و بعد از تست و انجام توسعه و تمیزکاری‌های نهایی، برای اپل ارسال کردم تا تایید کنه و خوشبختانه بعد از ۲ روز تایید شد. البته اپ فقط در فنلاند و سوئد در دسترسه و شاید در آینده اگر بتونم داده‌های لازم در کشورهای دیگه رو جمع‌آوری کنم برای اون کشورها هم منتشرش کنم.</p>

<p>در کل این پروژه برای من بیشتر یه زمین بازی بود که بتونم توش چیزهایی که می‌خوام رو یاد بگیرم و شاید در نهایت نتیجه به درد کسی هم بخوره. چه کسایی که از اپ منتشر شده استفاده می‌کنن و چه کسایی که می‌خوان کد رو مطالعه کنن. با توجه به اینکه دانش Swift من به چند ماه هم نمی‌رسه به احتمال خیلی زیاد خیلی از کدهایی که نوشتم رو خیلی بهتر و تمیزتر می‌شه نوشت و من هم سعی می‌کنم کم کم اگر وقت داشتم اطلاعاتم رو بالاتر ببرم و اپ رو توسعه بدم و بهتر کنم.</p>

<p>در نهایت هم از <a href="https://twitter.com/euwars">فرزاد</a>، <a href="https://twitter.com/shaahink">شاهین</a>، <a href="https://twitter.com/_arashasghari">آرش</a> و همکارهای اینجام که طبیعتا این متن رو نمی‌تونن بخونن تشکر می‌کنم که سوال‌های خیلی زیاد من رو تحمل کردن و بهم کمک کردن پروژه رو به انتها برسونم.</p>]]></content>

    <summary>
    &lt;p&gt;تابستان ۲۰۱۵ در شرکت یک برنامه آخر هفته برنامه‌نویسی در شرکت برگزار کردیم و قرار شد ایده‌های شخصیمون رو با هزینه شرکت اجرا کنیم. یکی از ایده‌هایی که من و چندتا از همکارهام داشتیم این بود که برای پیدا کردن رستوران‌هایی که بوفه ناهار دارن اطراف شرکت یک اپ بنویسیم که پیدا کردن جا برای ناهار خوردن راحت‌تر بشه 😃.&lt;/p&gt;

&lt;p&gt;من مسئولیت نوشتن اپ رو به عهده گرفتم و اون رو با استفاده از Ionic Framework پیاده سازی کردم و یکی از همکارهام هم دیتای اپ رو توی Firebase ذخیره کرد (با استفاده از یه crawler ساده). اپی که تولید شد توی اون دو روز ساده ولی کاربردی بود و کارش رو به درستی (تقریبا) انجام میداد.

    </summary>
  </entry>
  
  <entry>
    <title>کار در کیاسکد</title>
    <link href="https://sallar.me/farsi/working-at-kiosked/"/>
    <id>https://sallar.me/farsi/working-at-kiosked/</id>

    <published>2016-01-13T20:03:31+0200</published>
    <updated>2016-01-13T20:03:31+0200</updated>

    <content type="html"><![CDATA[<p>چند ماهی هست که از آخرین نوشته‌ام توی وبلاگ فارسیم می‌گذره و متاسفانه هم وقت نبود مطلب جدیدی بنویسم و هم چیز خاصی برای گفتن نداشتم. تصمیم گرفتم در مورد چیزهایی که بعد از ۹ ماه کار در کیاسکد اتفاق افتاده بنویسم تا هم شما با شرایط کار در این شرکت (و تا حدودی خیلی از شرکت‌های بیرون ایران) آشنا بشید و هم کاری کرده باشم که وبلاگ دوباره فعال بشه. این مدت خیلی از دوستان از من خواستن که مورد شرایط کاری از لحاظ فنی و از لحاظ کنی براشون بنویسم، فکر می‌کنم این مطلب پاسخ جامعی باشه.</p>

<a name="more"></a>

<h3 id="محصول_کیاسکد">محصول کیاسکد</h3>

<p>اول از همه چیز بهتره در مورد این توضیح بدم که <a href="http://www.kiosked.com/advertisers">کیاسکد</a> دقیقا چه کاری می‌کنه. کیاسکد به طور کلی یک شرکت تبلیغاتیه و با استفاده از اسکریپتی که مشتری‌ها توی وب‌سایتشون می‌ذارن، روی صفحاتشون تبلیغات نشون می‌ده. شعار کیاسکد Zero Ad Waste است و منظورشون اینه که سعی می‌کنن تبلیغات رو به صورت هدفمند به کسایی نشون بدن که به احتمال زیاد به محتوای تبلیغ علاقه دارن و در نتیجه هم تبلیغ‌دهنده بابت پولی که پرداخت کرده ضرر نمی‌کنه و هم بیننده تبلیغ وقتش هدر نمی‌ره. اینکه کیاسکد چطور این کار رو انجام می‌ده از حوصله این بحث خارجه (و به من هم البته اجازه نمی‌دن در موردش صحبتی بکنم) ولی می‌تونید اطلاعات بیشتر رو <a href="http://www.kiosked.com/advertisers">توی وب‌سایت شرکت</a> پیدا کنید. </p>

<p>من در این ۹ ماه روی پروژه‌های زیادی در کیاسکد کار کردم ولی دو تا از مهم‌ترینشون که ملموس‌تر از بقیه‌ان اینا هستن: یکی نوع نمایش تبلیغ In-Scroll است و یکی هم <a href="http://demoapp.kiosked.com/">وب‌اپلیکیشن دموی کیاسکد</a> برای موبایل که با اینجا قابل دیدنه (فعلا فقط با آیفون ۶ و بالاتر سازگاره). </p>

<p>بقیه پروژه‌هایی که در کیاسکد روشون کار کردم عموما NodeJS هستن و کاربرد داخلی دارن و متاسفانه نمی‌شه در موردشون یا کدهاشون صحبت کرد.</p>

<h3 id="تیم‌های_فنی">تیم‌های فنی</h3>

<p>توی بخش فنی کیاسکد چند تیم مجزا وجود داره که مهم‌ترینشون اینا هستن: ‌Consumer Front-End، Consumer Back-End، Data Team، Big Data Team، DevOps، Service Operations و Quality Assurance و من توی بخش فرانت-اند کار می‌کنم. همه این تیم‌ها زیرمجموعه Product/Engineering هستن.</p>

<h3 id="نحوه_انجام_پروژه‌ها">نحوه انجام پروژه‌ها</h3>

<p>وقتی من وارد کیاسکد شدم برای انجام پروژه‌ها از اسکرام استفاده می‌شد و هر کدوم از تیم‌ها اسپرینت‌های ۲ هفته‌ای جدا داشتن و وظایفشون رو به صورت مستقل انجام می‌دادن و در نهایت به هم وصل می‌شدن. ولی الان مدتی هست که اسپرینت زمانی رو کنار گذاشتیم و برای انجام پروژه‌ها، اون‌ها رو به بخش‌های مستقل تقسیم می‌کنیم و به هر کدوم یه Epic اختصاص می‌دیم. هر Epic شامل افراد لازم برای انجام اون پروژه‌ست و اون افراد در طول انجام اون پروژه به صورت یه تیم باهم روی اون محصول کار می‌کنن تا زمانی که تموم بشه و پروندش بسته بشه. مثلا برای یه محصول خاص ممکنه ۲ نفر از تیم فرانت‌اند و یک نفر از بک‌اند و یک نفر از کنترل کیفیت باهم کار کنن تا پروژه تموم بشه.</p>

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

<h3 id="تکنولوژی‌ها_در_فرانت‌اند">تکنولوژی‌ها در فرانت‌اند</h3>

<p>ابزار و تکنولوژی‌هایی که توی تیم فرانت‌اند باهاشون کار می‌کنیم دائم در حال تغییرن و نمی‌شه به طور ثابت از یک مجموعه ابزار استفاده کرد. ولی ما از چند گروه ابزار استفاده می‌کنیم برای کارهای مختلف:</p>

<h4 id="اسکریپت__library__اصلی">اسکریپت (Library) اصلی</h4>

<p>برای برنامه‌نویسی اسکریپت اصلی که در سایت مشتری‌ها به کار می‌ره از ES6 (در نهایت <a href="https://babeljs.io/">تبدیل</a> به ES5) و <a href="https://github.com/perry-mitchell/lamd">AMD</a> استفاده می‌کنیم. ابزار ساختمون (Build Tooling) گرانت (Grunt) هست و از Jasmine برای تست استفاده می‌کنیم. برای تست لایبرری اصلیمون از سه نوع تست: <a href="https://en.wikipedia.org/wiki/Unit_testing">Unit Test</a>، <a href="https://en.wikipedia.org/wiki/Integration_testing">Integration Test</a> و Feature Test استفاده می‌کنیم و برای تست خود ابزارهای ساخت <a href="https://github.com/caolan/nodeunit">nodeunit</a> رو بکار می‌بریم.</p>

<p>لایبرری اصلی جاواسکریپتمون حدود ۷۰۰ تا یونیت تست و تعدادی هم Integration و Feature تست داره که این‌ها کیفیت محصول رو برامون تضمین می‌کنن. چون کوچکترین اشتباهی که ما در توسعه لایبرری بکنیم روی سایت‌های خیلی بزرگ تاثیر می‌ذاره و ماها به صورت مستقیم باید پاسخگو باشیم. برای همین هیچ کدی بدون تست، گذروندن چند مرحله Code Review و QA Testing وارد پروداکشن نمی‌شه.</p>

<h4 id="ابزارهای_سمت_سرور">ابزارهای سمت سرور</h4>

<p>برای توسعه، ساخت و Delivery لایبرری اصلی به تعدادی ابزار سمت سرور نیاز داریم که قبلا این ابزارها در تیم بک‌اند و با php ساخته می‌شدن، ولی ما اون‌ها رو به تیم خودمون منتقل کردیم و همه رو با NodeJS بازنویسی کردیم. با این کار هم سرورها و ابزارهامون سریع‌تر و سبک‌تر شدن و هم زمان توسعه و هزینه نگه‌داری خیلی پایین‌تر اومد. نسخه فعلی نُد که پشتیبانی می‌کنیم <a href="https://nodejs.org/en/blog/release/v4.2.0/">4.2 LTS</a> هست و بهمون امکان استفاده از امکانات جدید ES6 رو می‌ده.</p>

<h4 id="دشبوردها_و_ابزارهای_مانیتورینگ">دشبوردها و ابزارهای مانیتورینگ</h4>

<p>غیر از دشبورد آماریمون که به دست مشتری‌هامون می‌رسه، بقیه دشبوردها و ابزارهای تحت وب‌مون کاربرد داخلی دارن. برای توسعه این ابزارها در فرانت‌اند از <a href="http://emberjs.com/">Ember.js</a> و <a href="http://backbonejs.org/">Backbone.js</a> استفاده می‌کنیم. البته بک‌بُن به اصرار من هست و هر ابزاری که قراره من روش کار کنم حتما با بک‌بُن انجام می‌دم چون شخصا ترجیحش می‌دم به Ember. ولی خب نسخه ۲ امبر که همکارام در حال حاضر باهاش در حال توسعه هستند هم بد نیست در کل به نظرم.</p>

<h3 id="ابزارهای_کلی">ابزارهای کلی</h3>

<p>توی کیاسکد از محصولات <a href="https://www.jetbrains.com/">JetBrains</a> و <a href="https://www.atlassian.com/">Atlassian</a> استفاده می‌کنیم. از PHPStorm و WebStorm برای توسعه و از Jira برای مدیریت پروژه‌ها و HipChat برای ارتباطات داخلی. از Gitlab هم که طبیعتا برای گیت. البته هرکدوممون هم حق انتخاب ابزارهای خودمون رو داریم؛ مثلا من ترجیحا <a href="https://itunes.apple.com/us/app/paw-http-rest-client/id584653203?mt=12">Paw</a> رو به جای Postman انتخاب کردم چون فکر می‌کنم خیلی بهتر هست. نسبت مک و لینوکس هم به همدیگه تو بخش فنی ۵۰/۵۰ هست.</p>

<h3 id="بقیه_موارد">بقیه موارد</h3>

<p>تیم‌های فنی، طراحی و بخشی از مدیریت در دفتر فنلاند مستقرن و بقیه تیم‌ها توی دفترهای دیگمون در کشورهای دیگه هستن. مثلا توی دفترهای نیویورک و لوس‌آنجلسمون عمدتا مدیریت و فروش مستقر هستن و در لندن بازاریابی و بقیه کشورها هم بیشتر فروش. آدم‌های این دفترهای مختلف در طول سال برای رویدادهای مختلفی همدیگه رو ملاقات می‌کنن. مثلا در طول تابستون برای ۳ روز همه کارمندهای کیاسکد اومدن فنلاند و باهم رفتیم یه اردوی گروهی. (<a href="https://vimeo.com/140756637">در موردش یه ویدیو ببینید</a>)</p>

<p>در آخر که اگر سوال دیگه‌ای براتون پیش اومد یا دوست داشتید در مورد چیزهای مختلف بدونید، توی صفحه پادکست <a href="http://it-voice.ir/sallar/">IT Voice</a> بپرسید که بتونم هفته آینده توی پادکستی که قراره منتشر کنن در موردشون حرف بزنم. ممنونم که این مطلب طولانی رو مطالعه کردید و بابت جمله‌بندی کمی عجیبم عذر می‌خوام.</p>]]></content>

    <summary>
    &lt;p&gt;چند ماهی هست که از آخرین نوشته‌ام توی وبلاگ فارسیم می‌گذره و متاسفانه هم وقت نبود مطلب جدیدی بنویسم و هم چیز خاصی برای گفتن نداشتم. تصمیم گرفتم در مورد چیزهایی که بعد از ۹ ماه کار در کیاسکد اتفاق افتاده بنویسم تا هم شما با شرایط کار در این شرکت (و تا حدودی خیلی از شرکت‌های بیرون ایران) آشنا بشید و هم کاری کرده باشم که وبلاگ دوباره فعال بشه. این مدت خیلی از دوستان از من خواستن که مورد شرایط کاری از لحاظ فنی و از لحاظ کنی براشون بنویسم، فکر می‌کنم این مطلب پاسخ جامعی باشه.&lt;/p&gt;


    </summary>
  </entry>
  
  <entry>
    <title>چرا از ایران رفتیم</title>
    <link href="https://sallar.me/farsi/why-i-left-iran/"/>
    <id>https://sallar.me/farsi/why-i-left-iran/</id>

    <published>2015-06-07T16:02:32+0200</published>
    <updated>2015-06-07T16:02:32+0200</updated>

    <content type="html"><![CDATA[<p>یک‌ماه بعد از <a href="https://sallar.me/1393/11/28/to-my-mother/" title="برای مادرم">فوت مادرم</a>، دوستی به من اطلاع داد که یک موقعیت شغلی در یک شرکت فنلاندی هست و اگر علاقه دارم اقدام کنم. من و شراره هم فکر کردیم که بد نیست برای تغییر شرایط روحی و محیطیمون برای اینکار اقدام کنیم. برای موقعیت Software Engineer در شرکت <a href="http://www.kiosked.com">Kiosked</a> اقدام کردم، و بعد از انجام کارهای مربوط به اجازه اقامت و خرید بلیط، بعد از حدود ۲۵ روز وارد فنلاند شدیم.</p>

<p><img src="https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2015/06/IMG_5002-1.jpg" alt="IMG_5002 (1)" id="img_5002__1_"></p>

<p>وقتی ما به فنلاند اومدیم، کسی رو غیر از صابر که در همین شرکت کار می‌کرد نمی‌شناختیم و غیر از مقداری لباس چیز دیگه‌ای با خودمون نیاورده بودیم. اتفاق خیلی خوبی که افتاد این بود که همکارهای جدیدم (که حالا خیلی‌هاشون به دوست‌های خوبم تبدیل شدن) در تمام مراحل انجام کارهامون خیلی بهمون کمک کردن. از پیدا کردن و اجاره خونه و خرید وسایل گرفته تا انجام کارهای اداری و جاهایی که نیاز به زبان فنلاندی داشت (زبان فنلاندی خیلی سخته! هرچند تقریبا همه انگلیسی صحبت می‌کنن ولی برای بعضی کارهای اداری بهتره فنلاندی بدونی).</p>

<a name="more"></a>

<p>قبل از اومدن به فنلاند من و شراره خیلی اطلاع خاصی در مورد اینکه فنلاند چطور کشوری هست نداشتیم. بیشترین چیزی که توی اینترنت بهش اشاره شده بود این بود که سرد هست و ۲ میلیون سونا داره! بعد از اومدن فهمیدیم که هردوی این‌ها درستن. فنلاند (حداقل پایتختش که ما هستیم) کشور خیلی آرومی هست با مردم خیلی آروم‌تر! برای مایی که از تهران اومدیم این قضیه خیلی خیلی به چشم اومد. اینجا وقتی چهار تا ماشین پشت سر هم پشت چراغ قرمز وایمیستن میگن ترافیک سنگینه (باید با ترافیک همت آشناشون کنیم). مردمش سرشون به کار خودشونه ولی خب اگر ازشون کمک بخوای حتما هرطور بتونن کمکت می‌کنن. یکی از خوبی‌هاش اینه که سیستم حمل‌ونقل عمومی با اینکه خیلی گرون هست (بدون کارت هر بار سفر اتوبوس ۳ یورو تا ۵ یورو هست)، همیشه درست کار می‌کنه و آدم می‌تونه برای رفت و آمدش برنامه‌ریزی دقیق بکنه.</p>

<p>با اینکه اینجا باید مالیات نسبتا بالایی پرداخت کرد (حدود ۲۵~۳۰٪) که البته بین کشورهای اروپایی شاید خیلی بالا به حساب نیاد، ولی هزینه‌ها نسبت به پولی که بعد از کسر مالیات و ... باقی می‌مونه معقول هستن (غیر از حمل و نقل که اشاره کردم). اگر بخوام چند تا مثال بزنم: قیمت یک وعده غذایی برای کارمندها (تقریبا همه رستوران‌ها ساعات ناهار رو با همین قیمت حساب می‌کنن) ۱۰ یورو هست، هزینه آب آپارتمان هر دو ماه ۱۲ یورو، اجاره خونه ۹۰۰ یورو (خونه‌های مرکز شهر هلسینکی خیلی گرون‌تر هستن)، یک کیلو مرغ ۸ یورو، گوشت خورشتی کیلویی ۳۰ یورو، اینترنت خونه ما تا ۱۰ مگابیت رایگان (۱۰۰ مگابیت ماهی ۱۰ یورو و ۳۵۰ مگابیت ماهی ۲۰ یورو)، یک بار خرید متوسط از سوپرمارکت برای میوه، سبزی، لبنیات و ... حدود ۲۰ تا ۳۰ یورو، بلیط سینما ۱۴ یورو، استفاده از کتابخونه و تمام امکانات داخلش (پرینتر سه بعدی، کتاب‌ها، ابزار و وسایل صنعتی، ... کاملا رایگان)،‌کارت حمل‌ونقل برای یک‌ماه ۹۸ یورو (اتوبوس، مترو، ترم و قایق نامحدود).</p>

<p>البته غیر از مالیات چیزهای دیگه‌ای هم از درآمد کسر می‌شه، مثلا همه باید هزینه بازنشستگی رو پرداخت کنن که برای من ۵.۷٪ قبل ازکسر مالیات هست (که بار اول که دیدم روی فیش حقوقم خیلی برام عجیب بود چون مقدار کمی نبود). اضافه‌کاری در روزهای تعطیل هم برای شرکت ما ۵۰۰ یورو در روز هست (که البته برای شرکت‌های دیگه ممکنه متفاوت باشه). ولی موضوع خوبی که وجود داره اینه که امنیت شغلی اینجا خیلی بالاست و قانون‌های زیادی از کارمند حمایت می‌کنن و اگر به هر دلیلی شما کارتون رو از دست بدید، به راحتی می‌شه پیگیری کرد و شرکت هم نمیتونه از زیر بار مسئولیتش در بره.</p>

<p>تعداد ایرانی‌های اینجا برخلاف سوئد که پر از ایرانی هست خیلی زیاد نیست و بیشتر کسایی که هستن یا دانشجو هستن در هلسینکی یا تورکو یا خیلی سال پیش به همراه خونوادشون مهاجرت کردن اینجا. البته وقتی در هلسینکی قدم بزنی در روز حداقل یک بار به ایرانی‌ها برمیخوری که خیلی وقت‌ها هم علاقه‌ای ندارن با آدم حرف بزنن :-) ولی خب دوستان ایرانی خوبی هم اینجا داریم که واقعا گُل هستن.</p>

<p>شرایط کاری و سطح فنی شرکت خیلی متفاوت هست با اون چیزی که ما در ایران بهش عادت داشتیم. اگر کسی عنوان شغلیش Senior هست، واقعا سواد و اخلاقش هم سنیور هست. برای همین برای رسیدن به این عنوان شغلی باید کار کرد و سواد فنی رو ثابت کرد. تکنولوژی‌هایی که در شرکت برای توسعه نرم‌افزار ازشون استفاده می‌شه چیزهایی هستن که در ایران ما همیشه در موردشون می‌خوندیم ولی هیچوقت ازشون استفاده نمی‌کردیم (فقط در موردشون توییت می‌کردیم!). این موضوع خیلی چالش برانگیز هست چون به مطالعه نیاز هست تا بشه به ساختار جدید عادت کرد. ولی خب من شخصا این چالش رو دوست دارم چون این موضوع باعث شده که احساس بهتری در مورد خودم داشته باشم و البته هر روز صبح خوشحال باشم که دارم میرم سر کار.</p>

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

<p>تمام این چیزها باعث شدن که من و شراره خوشحال باشیم که تصمیم گرفتیم اینجا بیایم چون بعد از چندین سال کار و زندگی خیلی استرس‌زا در ایران، این تغییرات خیلی خوب و مثبت هستن.</p>]]></content>

    <summary>
    &lt;p&gt;یک‌ماه بعد از &lt;a href=&quot;https://sallar.me/1393/11/28/to-my-mother/&quot; title=&quot;برای مادرم&quot;&gt;فوت مادرم&lt;/a&gt;، دوستی به من اطلاع داد که یک موقعیت شغلی در یک شرکت فنلاندی هست و اگر علاقه دارم اقدام کنم. من و شراره هم فکر کردیم که بد نیست برای تغییر شرایط روحی و محیطیمون برای اینکار اقدام کنیم. برای موقعیت Software Engineer در شرکت &lt;a href=&quot;http://www.kiosked.com&quot;&gt;Kiosked&lt;/a&gt; اقدام کردم، و بعد از انجام کارهای مربوط به اجازه اقامت و خرید بلیط، بعد از حدود ۲۵ روز وارد فنلاند شدیم.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2015/06/IMG_5002-1.jpg&quot; alt=&quot;IMG_5002 (1)&quot; id=&quot;img_5002__1_&quot;&gt;&lt;/p&gt;

&lt;p&gt;وقتی ما به فنلاند اومدیم، کسی رو غیر از صابر که در همین شرکت کار می‌کرد نمی‌شناختیم و غیر از مقداری لباس چیز دیگه‌ای با خودمون نیاورده بودیم. اتفاق خیلی خوبی که افتاد این بود که همکارهای جدیدم (که حالا خیلی‌هاشون به دوست‌های خوبم تبدیل شدن) در تمام مراحل انجام کارهامون خیلی بهمون کمک کردن. از پیدا کردن و اجاره خونه و خرید وسایل گرفته تا انجام کارهای اداری و جاهایی که نیاز به زبان فنلاندی داشت (زبان فنلاندی خیلی سخته! هرچند تقریبا همه انگلیسی صحبت می‌کنن ولی برای بعضی کارهای اداری بهتره فنلاندی بدونی).&lt;/p&gt;


    </summary>
  </entry>
  
  <entry>
    <title>برای مادرم</title>
    <link href="https://sallar.me/farsi/to-my-mother/"/>
    <id>https://sallar.me/farsi/to-my-mother/</id>

    <published>2015-02-17T18:54:03+0200</published>
    <updated>2015-02-17T18:54:03+0200</updated>

    <content type="html"><![CDATA[<a name="more"></a>
<p>حالا بیشتر از ۴۰ روز است که از رفتنش می‌گذرد. روز اول فکر می‌کردم که شاید دردش با گذشت روزها کمتر شود، ولی نه تنها کمتر نشد، هر روز به توان رسید. بیشتر از ۴۰ روز است که رفته.</p>

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

<p>وقتی می‌خواهم توصیفش کنم بغض گلویم را فشار می‌دهد. نمی‌دانم چه بگویم. آنقدر بزرگ بود که وصفش در جملات و کلمات نمی‌گنجد. مهربان و دلسوز و از خودگذشته بود ولی آدم را لوس نمی‌کرد، می‌گفت: «من هم مثل مادربزرگتم، لوست نمی‌کنم.» وقتی می‌دید عصبانی هستم و نمی‌توانم آرام شوم، با یک لیوان آب و یک قرص به اتاقم می‌آمد، قرص را با مهربانی می‌گذاشت کف دستم و می‌رفت. این یعنی «آروم باش، همه چی درست می‌شه» و همه چیز درست می‌شد.</p>

<p>از صبح تا شب من بودم و مادرم. کنار هم می‌نشستیم. او تلویزیون می‌دید و من کار می‌کردم. دوست داشت از کارهایم برایش حرف بزنم؛ بگویم کدام مشتری چه گفت و آیا از کار جدید خبری هست یا نه؟ کنفرانسی، سمیناری چیزی دعوت شدم یا نه؟ با اینکه از کارهایم سر در نمی‌آورد ولی هروقت تلفنی با کسی حرف می‌زد حسابی پُز کارهایم را می‌داد و سعی می‌کرد همان چیزی را بگوید که من گفته بودم. وقتی چند روز درگیر چیزی می‌شدم و حرف نمی‌زدم خیلی زود شاکی می‌شد که: «جدیدا دیگه هیچی برام تعریف نمی‌کنی.» جواب می‌دادم که خب باید این کار را تمام کنم تا اتفاق جدیدی بیفتد و من تعریف کنم. یک بار که با جایی مصاحبه کرده بودم، حسابی دلخور شده بود که «چرا در مورد مامانت هیچی نگفتی؟» جواب دادم که «بابا آخه مصاحبش اونطوری نبود که» و قول دادم همیشه همه‌جا اول بگویم «مادرم». باید اسمش را می‌گفتم، چون همه زندگیم را به او مدیونم.</p>

<p>دوست داشت دوست‌هایم را دعوت کنم که بیایند خانه ما «هرکاری دلشان می‌خواهد بکنند». به دوستانم می‌گفت «من هم دلم مثل شما جوونه، نمی‌خواد جلوی من چیزی رو قایم کنید، راحت سیگار و قلیونتون رو هم بکشید.» یکی از دوستانم که می‌آمد مادرم گیر می‌داد که «دوست دخترت چه خبر؟».</p>

<p>هوایم را هم داشت. با اینکه خیلی خوشحال نبود که دانشگاه را می‌پیچاندم و به جایش کار می‌کردم، اما به انتخابم احترام می‌گذاشت و دوست داشت در کارم پیشرفت کنم هر از چند گاهی هم یک گیر کوچکی به دانشگاه می‌داد که «انقدر نرفتی آخرش بیرونت میندازن». مجبورم می‌کرد در تمام انتخابات‌هایی که برگزار می‌شد (هرچیزی که بود) شرکت کنم تا «اگه یه وقتی خواستن جایی استخدامت کنن به مشکل نخوری» می‌گفتم من کار دولتی می‌خواهم چه‌کار؟ میگفت «تو کاریت نباشه بخاطر من برو» و می‌رفتم. شناسنامه‌ام پر از مهر است. وقتی در کار با کسی به مشکل می‌خوردم دیگر کلا اسم طرف را فراموش نمی‌کرد. چند روز یک بار می‌گفت «اون پدرسوخته دیگه چیزی نگفته؟» من هم همه چیز را برایش تعریف می‌کردم تا دلش آرام بگیرد.</p>

<p>خیلی دوست داشت که با شراره ازدواج کنم. هی اصرار کرد که «زود باشین چرا انقدر لفتش می‌دین؟» ما هم دقیقا ۲ روز قبل از اینکه راهی بیمارستان شود عقد کردیم. انگار که خبر داشت قرار است اتفاقی بیفتد که آن‌همه اصرار کرد. اما چه خوب شد که اصرار کرد. در یکی از روزهای بعد از بیمارستان، در حالی که روی تختش داشت از خوردن غذایش لذت می‌برد به پرستارهایش پُز می‌داد که «دستپخت عروس شهلاس دیگه» و چشمانش از خوشحالی می‌درخشید. حالش حسابی خوب شده بود که برگشته بود منزل. در بیمارستان نگران این بود که روز تولدم بیمارستان باشد. می‌پرسید که چند روز مانده؟ آخرش هم برای تولدم برگشت خانه و پیشمان بود. زیباترین تولد عمرم بود. شهلا و عروس شهلا هردو کنارم بودند.</p>

<p>۵۳ روز در ICU با بیماری جنگید و بعد هم که حالش بهتر شد، ۲ هفته برگشت منزل. خوشحال بودم که حالش بهتر شده و من خوشبخت‌ترین مرد روی زمینم. ولی استرس داشتم. هر شب تا صبح تعداد نفس‌هایش را (که گاهی به ونتیلاتور وصل می‌شد) می‌شمردم که یک وقت از ۳۰ نفس در دقیقه بالاتر نرود؛ چون اگر می‌رفت نشانه بدی بود. روز قبل از رفتنش، یکی از پزشک‌های بیمارستان به دیدنش آمد و با خوشحالی به ما گفت که حالش عالی است و جای نگرانی نیست، مامان هم گفت «بزن به تخته». اما صبح روز بعدش رفت. قلبش دست از جنگیدن برداشت. انگار که آرام شده بود. ساعت ۴ صبح بوسیده بودمش و شب بخیر گفته بودم و ساعت ۷ برای همیشه خوابید.</p>

<p>بزرگترین ترس من در تمام زندگی‌ام به حقیقت پیوست. هنوز رفتنش را درک نکرده‌ام. هرچه می‌گذرد، بیشتر عمق نبودنش را حس می‌کنم و دردم بیشتر می‌شود. مادرم، «تنها» کسی که از کودکی تا حالا داشتم، از کنارم پر کشید. من تمام زندگی‌ام را به مادرم مدیونم. کاش فرصت داشتم بخش کوچکی از بزرگی‌اش را جبران کنم. ولی نشد. فرصت خوشبختی‌ام کوتاه بود.</p>

<p>حالا من مانده‌ام و شراره و یک زندگیِ بدون «شهلا» پیش رویمان. ولی بدون «شهلا» نیستیم. مادرم در قلب ما، هنوز زنده است.</p>]]></content>

    <summary>
    &lt;p&gt;حالا بیشتر از ۴۰ روز است که از رفتنش می‌گذرد. روز اول فکر می‌کردم که شاید دردش با گذشت روزها کمتر شود، ولی نه تنها کمتر نشد، هر روز به توان رسید. بیشتر از ۴۰ روز است که رفته.

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

وقتی می‌خواهم توصیفش کنم بغض گلویم را فشار می‌دهد. نمی‌دانم چه بگویم. آنقدر بزرگ بود که وصفش در جملات و کلمات نمی‌گن&lt;/p&gt;
    </summary>
  </entry>
  
  <entry>
    <title>از قلم فارسی آزاد حمایت می‌کنم</title>
    <link href="https://sallar.me/farsi/open-typeface/"/>
    <id>https://sallar.me/farsi/open-typeface/</id>

    <published>2014-12-29T14:53:35+0200</published>
    <updated>2014-12-29T14:53:35+0200</updated>

    <content type="html"><![CDATA[<a name="more"></a>
<p>من قبلا بارها در مورد <a href="https://sallar.me/1392/10/06/stop-justifying-text-on-the-web/" title="متون را در وب Justify نکنید">تایپوگرافی</a> <a href="https://sallar.me/1392/03/19/please-save-the-persian-script/" title="لطفا خط فارسی را نجات دهید!">فارسی</a> <a href="https://sallar.me/1391/10/20/persian-webfonts-display-issue-in-chrome-and-a-solution/" title="مشکل نمایش وب‌فونت‌های فارسی در کروم ویندوز + یک راه‌حل">در وب</a> مطلب نوشتم و از نبود یک قلم استاندارد برای وب گلایه کردم. البته از زمان نوشتن اون مطالب تا حالا چندین تایپ‌فیس خوب طراحی و بهینه‌سازی شدن. از جمله خانواده قلم «<a href="http://www.moslemebrahimi.com/?p=1873">ایران</a>» و «<a href="http://www.moslemebrahimi.com/?p=1526">ایران سن سریف</a>» که توسط <a href="https://twitter.com/MoslemEbrahimi">مسلم ابراهیمی</a> عزیز طراحی شده و تعدادی از قلم‌های قدیمی‌تر که توسط <a href="https://twitter.com/zoghal">صالح سوزنچی</a> برای وب بهینه‌سازی شدن.</p>

<p><a href="http://pfont.ir/"><img src="https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2014/12/carousel1.jpg" alt="pfont" id="pfont"></a></p>

<p>ولی حرکت خوب دیگه‌ای که در حال انجامه؛ <a href="http://pfont.ir/">کمپین قلم فارسی آزاد</a> هست که مدتیه راه‌اندازی شده و در حال جمع‌آوری هزینه مورد نیاز برای طراحی یک خانواده قلم آزاد و رایگان برای استفاده عموم هست. این خانواده قلم قراره توسط <a href="http://pfont.ir/interview/">دامون خانجانزاده</a> طراحی بشه و سورس و مستندات فنی قلم در گیت‌هاب قرار بگیرن. این خانواده قلم همچنین قراره برای استفاده در وب و صفحات نمایش مختلف بهینه‌سازی بشه تا توسعه‌دهنده‌ها دیگه برای استفاده از یک قلم فارسی خوب اونقدر به دردسر نیفتن.</p>

<p>در نهایت اینکه توصیه می‌کنم اگر توان مالی دارید از این کمپین <a href="http://pfont.ir/">حمایت کنید</a> تا به مرز ۱۰ میلیون تومان برسه (اگر بیشتر هم بشه طبیعتا بهتره) و اگر هم توان مالی ندارید هم لطفا این کمپین رو در شبکه‌های اجتماعی و در وبلاگ‌هاتون به اشتراک بذارید تا کمپین زودتر به هدف تعیین شده برسه.</p>

<p>ممنونم؛ سالار.</p>]]></content>

    <summary>
    &lt;p&gt;من قبلا بارها در مورد تایپوگرافی فارسی در وب مطلب نوشتم و از نبود یک قلم استاندارد برای وب گلایه کردم. البته از زمان نوشتن اون مطالب تا حالا چندین تایپ‌فیس خوب طراحی و بهینه‌سازی شدن. از جمله خانواده قلم «ایران» و «ایران سن سریف» که توسط مسلم ابراهیمی عزیز طراحی شده و تعدادی از قلم‌های قدیمی‌تر که توسط صالح سوزنچی برای وب بهینه‌سازی شدن.

ولی حرکت خوب دیگه‌ای که در حال انجامه؛ کمپین قلم فارسی آزاد هست که مدتیه راه‌اندازی شده و در حال جمع‌آوری هزینه مورد نیاز برای طراحی یک خانواده قلم آزاد و رایگان برای استفاده عموم هست. این خانواده قلم قراره توسط دامون خانجانزاده طراحی بشه و سورس و مستندات فنی&lt;/p&gt;
    </summary>
  </entry>
  
  <entry>
    <title>یک‌پزشک</title>
    <link href="https://sallar.me/farsi/1pezeshk/"/>
    <id>https://sallar.me/farsi/1pezeshk/</id>

    <published>2014-11-20T10:32:14+0200</published>
    <updated>2014-11-20T10:32:14+0200</updated>

    <content type="html"><![CDATA[<p><img src="https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2014/11/preview@2x.jpg" alt="Preview" id="preview"></p>

<p>اسفند پارسال، <a href="https://twitter.com/alireza1356">آقای دکتر مجیدی</a>، نویسنده مجله فناوری <a href="http://1pezeshk.com/">یک‌پزشک</a> با من تماس گرفت و گفت که می‌خواد یک‌پزشک رو مجددا طراحی کنه و من خوشحال بودم که این وظیفه رو به من سپرده چون یک‌پزشک یکی از مجله‌های مورد علاقم هست که تقریبا هرروز سعی می‌کنم مطالبش رو مطالعه کنم و از طرفی هم به آقای دکتر مجیدی و خانم فرانک مجیدی هم ارادت بسیاری دارم. کار طراحی رو از اواخر اسفند شروع کردم و حدود ۲ ماه روش کار کردم و شخصا نتیجه رو خیلی دوست داشتم. چند روز پیش نسخه جدید یک‌پزشک روی وب‌سایت فعال شد و البته مشکلاتی داشت، برای همین لازم دونستم اینجا توضیحاتی در مورد طرح جدید بدم.</p>

<a name="more"></a>

<h2 id="ساختار_و_رنگبندی_طرح">ساختار و رنگبندی طرح</h2>

<p>ساختار جدید یک‌پزشک به صورت ۳ ستونه طراحی و اجرا شده کل عرض صفحه رو می‌پوشونه (تا عرض ۱۴۴۰ پیکسل). با توجه به اینکه دکتر مجیدی دوست داشتن که در سایدبار اطلاعات زیادی رو در مورد موارد مختلف (مثل موسیقی، کتاب، فیلم، روزنامه، فوتبال و ...) بگنجونن، تصمیم گرفتم که از تمام فضاهای موجود استفاده کنم و این طوری باشه که روند طرح بیش از حد شلوغ نشه. همچنین چینش مطالب در طرح جدید برخلاف طرح قبلی به صورت وبلاگی و به ترتیب زمانه به این صورت که جدیدترین مطالب بالاتر ظاهر می‌شن (غیر از اسلایدر مطالب سنجاق شده که بالای همه مطالب هستن همیشه).</p>

<p>رنگ آبی یک‌پزشک که ازش به عنوان رنگ غالب و accent استفاده کردم از لوگوی فعلی یک‌پزشک استخراج شده. در طرح سعی کردم تا جایی که ممکنه از رنگ‌های خنثی استفاده کنم تا تمرکز خواننده با دیدن رنگ‌های مختلف به هم نخوره، چون بهرحال طرح دارای تصاویر زیادی هست (عکس‌های مطالب و تبلیغ‌ها) که به اندازی کافی جلب توجه می‌کنن.</p>

<h2 id="تایپوگرافی">تایپوگرافی</h2>

<p>برای تایپوگرافی طرح جدید یک‌پزشک از دو تایپ‌فیس استفاده کردم: نسخه شخصی‌سازی شده تایپ‌فیس <a href="http://openfontlibrary.org/en/font/iranian-serif">Iranian Serif</a> (برای محتوی و متن بدنه) و میترا (برای تیتر، کلمات کلیدی و دکمه‌ها). ایرانین‌سریف از خوانایی بالایی برخورداره و بین تایپ‌فیس‌های موجود فارسی از بقیه چشم‌نوازتره. کار اصلاح و شخصی‌سازی این تایپ‌فیس رو برای استفاده در یک‌پزشک <a href="https://twitter.com/zoghal">صالح سوزنچی</a> عزیز انجام داده.</p>

<p><img src="https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2014/11/type-0@2x.jpg" alt="Content" id="content"></p>

<p>برای تنظیم سایز قلم در متون مختلف و همچنین تنظیم ارتفاع خطوط از یک <a href="http://modularscale.com/">Modular Scale</a> با مبنای <a href="http://en.wikipedia.org/wiki/Golden_ratio">نسبت طلایی (فی)</a> استفاده کردم (البته به صورت رند شده) (<a href="http://alistapart.com/article/more-meaningful-typography">بیشتر+</a>). به این صورت که تمام متن‌های موجود در طرح مضربی از همدیگه بر اساس یکی از اعداد داخل Scale هستن. این موضوع خوانایی رو بالاتر می‌بره و طرح رو چشم‌نواز می‌کنه و باعث می‌شه که چشم خواننده موقع اسکن صفحه و خوندن مطالب خیلی خسته نشه. برای تنظیم فاصله‌های خالی طرح هم از همین اعداد استفاده شده که نسبتشون با متون رعایت شده باشه.</p>

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

<p><img src="https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2014/11/type@2x.jpg" alt="Content" id="content"></p>

<p>همچنین در صفحه مطلب، از عناصر تایپوگرافیکی متعددی برای آسان کردن مطالعه مطلب استفاده کردم (مثل نقل‌قول‌ها، مطلب مهم و ...) که هرکدوم به صورت جداگونه طراحی شدن.</p>

<h2 id="طراحی_ریسپانسیو">طراحی ریسپانسیو</h2>

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

<p><img src="https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2014/11/mobile@2x.jpg" alt="Mobile" id="mobile"></p>

<p>این نوع طراحی ریسپانسیو، بر اساس سایز دستگاه‌ها نیست و بیشتر <a href="http://goldilocksapproach.com/">بر اساس خود محتوی و اهمیت اون‌هاست</a> و باعث می‌شه که طرح به بهترین حالت به شکل فضایی که در اختیار داره در بیاد و از اون فضا استفاده کنه و دیگه نگران اضافه شدن دستگاه‌های جدید نباشیم.</p>

<p><a href="https://www.dropbox.com/s/2sbqll9ewy5h1xu/1Pezeshk-Mobile.mov?dl=0">ویدیو از عملکرد نسخه موبایل</a></p>

<h2 id="طراحی_بدون_تصویر_و_پیکسل_پرفکت">طراحی بدون تصویر و پیکسل پرفکت</h2>

<p><img src="https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2014/11/icons@2x.jpg" alt="IcoMoon" id="icomoon"></p>

<p>غیر از لوگوی یک‌پزشک و لوگوهای اپلیکیشن‌ها (کارنتس، فلیپ‌بورد و نیوزاستند) که به صورت وکتور در دسترس نبودن، در طراحی یک‌پزشک از هیچ عکسی استفاده نکردم و کل طراحی با CSS انجام گرفته. این کار تعداد درخواست‌های شبکه رو کاهش می‌ده و باعث می‌شه که سایت با سرعت بیشتری بارگذاری بشه. آیکن‌های موجود در طرح با استفاده از وب‌فونت بارگذاری می‌شن و با ابزار <a href="https://icomoon.io/">IcoMoon</a> ساخته و شخصی‌سازی شدن. فایل مربوط به آیکن‌ها فقط شامل آیکن‌هایی هست که در طرح استفاده شدن و چیزهای اضافی درش قرار نگرفته که فایل رو سنگین نکنه. تموم آیکن‌های روی گرید ۱۶ پیکسلی طراحی شدن و توی طرح برای نمایششون از مضرب ۱۶ پیکسل استفاده شده (۱۶، ۳۲، ۶۴، ...) تا شفافیت و وضوحشون رو از دست ندن. اون چند تا عکسی هم که در طرح وجود داره، به صورت اسپرایت درآوردم و برای فشردگی‌های پیکسلی مختلف آماده کردم که وضوحشون رو روی صفحه‌نمایش‌های باکیفیت‌تر از دست ندن.</p>

<h2 id="فشرده‌سازی_و_حجم_پایین_فایل‌ها">فشرده‌سازی و حجم پایین فایل‌ها</h2>

<p>برای طراحی یک‌پزشک از هیچ فریم‌ورک سی‌اس‌اسی استفاده نکردم که حجم فایل سی‌اس‌اس نهایی بالا نره و به سرعت بارگذاری شه چون حجم خود HTML با وجود محتوای زیاد و تصاویر طرح انقدری هست که کاربر رو منتظر بارگذاری بذاره. تا حد ممکن هم از کد جاواسکریپت غیر از برای موارد ضروری استفاده نکردم که اولا در صورتی که جاواسکریپت به هر دلیلی دانلود نشد طرح بتونه فعال باقی بمونه و دوما حجم فایل جاواسکریپت پایین باشه و کاربر رو دچار مشکل نکنه.</p>

<h2 id="تکنولوژی‌های_مورد_استفاده">تکنولوژی‌های مورد استفاده</h2>

<p>برای طراحی یک‌پزشک از HTML5 و CSS3 بدون پشتیبانی مرورگرهای قدیمی استفاده کردم. طرح فقط در اینترنت‌اکسپلورر ۱۰ و بالاتر و مرورگرهای مدرن کار می‌کنه و هیچ کاری برای پشتیبانی مرورگرهای قدیمی انجام ندادم.</p>

<p>برای CSS از Sass با <a href="https://github.com/sass/libsass">Libsass</a> استفاده کردم که سرعت بالاتری داره. از Libsass با استفاده از ابزار Grunt خروجی می‌گیرم و با استفاده <a href="https://github.com/nDmitry/grunt-autoprefixer">grunt-autoprefixer</a> پیشوندهای وندور رو به سی‌اس‌اس تولید شده اضافه می‌کنم و در نهایت فشرده‌سازی می‌کنم و بالای فایل مشخصاتش رو می‌نویسم. فایل‌های جاواسکریپت رو هم با استفاده از Grunt و پلاگین uglify به هم می‌چسبونم و فشرده‌سازی می‌کنم و بالای فایلشون مشخصاتشون رو می‌نویسم که همشون باهم ۱ فایل بشن فقط. همچنین برای Autoreload کردن، اسپرایت کردن تصاویر به صورت خودکار و ورژنینگ هم از Grunt استفاده می‌کنم.</p>

<p><img src="https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2014/11/code@2x.jpg" alt="Sublime Text" id="sublime_text"></p>

<p>همونطور که قبلا هم گفتم از اکستنشن کروم IcoMoon به صورت پریمیوم برای تولید آیکن‌فونت‌ها استفاده کردم که کنترل بسیار زیادی رو به من میده برای ساختن و ویرایش آیکن‌هام. آیکن‌هایی که نیاز به طراحی یا ویرایش داشتن رو با استفاده از <a href="http://bohemiancoding.com/sketch/">Sketch</a> طراحی کردم و خروجی SVG گرفتم و وارد IcoMoon کردمشون.</p>

<p>از ادیتور Sublime Text نسخه ۳ هم برای کدنویسی و انجام تمام کارهای مربوط به Git استفاده کردم.</p>

<h2 id="صفحه‌های_که_من_طراحی_کردم">صفحه‌های که من طراحی کردم</h2>

<p>مواردی که من برای طرح یک‌پزشک طراحی کردم این‌ها بودن: صفحه اصلی به همراه باکس‌های ویژه سایدبار، صفحه مطلب، صفحه پروفایل کاربر، بخش نظرات و صفحه تماس.</p>

<p>بعد از اینکه سایت فعال شد متوجه شدم که بعد از سوار شدن طرح روی قالب وردپرس، صفحات دیگری با طراحی و ساختاری متفاوت از اون چیزی که من طراحی کردم به سایت اضافه شدن. مثلا پنل کاربری که یک منو بالای فرم ویرایش داره و کل فرم ویرایش که از لحاظ ساختاری و HTML/CSS با اون چیزی که من طراحی کردم تفاوت بسیاری داشت. این موارد رو من انجام ندادم و به دلیل مشکلاتی که اخیرا برام پیش اومده هنوز فرصتش رو نداشتم که اونطوری که میخوام اصلاحشون کنم.</p>

<h2 id="مشکلات_فعلی_طرح">مشکلات فعلی طرح</h2>

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

<p>در هر صورت، ما داریم تلاشمون رو می‌کنیم که تمام مشکلات رو برطرف کنیم و طرح اون چیزی بشه که همه ما دلمون می‌خواد باشه. متاسفانه در این روند مسایلی پیش اومد که این مشکلات رو دو چندان کرد و بیشترشون هم مشکلاتی بود که برای من <a href="https://twitter.com/sallar/status/527747095122292736">پیش اومدن</a>. ممنون می‌شم اگر در روند حل مشکلات موجود صبوری کنید و اجازه بدید تا به همراه دوستان بتونیم سریع‌تر اون‌ها رو برطرف کنیم.</p>

<p><span style="color: #808080;">رد ادعا: تصاویر بالا از نسخه خودم از طرح یک‌پزشک گرفته شدن و مطالب و تصاویر نشان داده شده واقعی نیستن.</span></p>

<p>&nbsp;</p>]]></content>

    <summary>
    &lt;p&gt;&lt;img src=&quot;https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2014/11/preview@2x.jpg&quot; alt=&quot;Preview&quot; id=&quot;preview&quot;&gt;&lt;/p&gt;

&lt;p&gt;اسفند پارسال، &lt;a href=&quot;https://twitter.com/alireza1356&quot;&gt;آقای دکتر مجیدی&lt;/a&gt;، نویسنده مجله فناوری &lt;a href=&quot;http://1pezeshk.com/&quot;&gt;یک‌پزشک&lt;/a&gt; با من تماس گرفت و گفت که می‌خواد یک‌پزشک رو مجددا طراحی کنه و من خوشحال بودم که این وظیفه رو به من سپرده چون یک‌پزشک یکی از مجله‌های مورد علاقم هست که تقریبا هرروز سعی می‌کنم مطالبش رو مطالعه کنم و از طرفی هم به آقای دکتر مجیدی و خانم فرانک مجیدی هم ارادت بسیاری دارم. کار طراحی رو از اواخر اسفند شروع کردم و حدود ۲ ماه روش کار کردم و شخصا نتیجه رو خیلی دوست داشتم. چند روز پیش نسخه جدید یک‌پزشک روی وب‌سایت فعال شد و البته مشکلاتی داشت، برای همین لازم دونستم اینجا توضیحاتی در مورد طرح جدید بدم.&lt;/p&gt;


    </summary>
  </entry>
  
  <entry>
    <title>نه به ایرانسل، نه به مبین‌نت.</title>
    <link href="https://sallar.me/farsi/no-to-irancell-no-to-mobinnet/"/>
    <id>https://sallar.me/farsi/no-to-irancell-no-to-mobinnet/</id>

    <published>2014-10-03T18:41:33+0200</published>
    <updated>2014-10-03T18:41:33+0200</updated>

    <content type="html"><![CDATA[<p>خیلی سعی کردم که بشه این مطلب رو ننویسم، بهش فرصت دادم ولی اوضاع تغییری نکرد؛ حالا با دلی پر از ایرانسل و مبین‌نت این مطلب رو می‌نویسم.</p>

<p>به دلیل شرایط مختلفی که طی چند ماه گذشته برام پیش اومد، نتونستم که یک جا ثابت بمونم و از اینترنت ADSL ـی که داشتم استفاده کنم و به اجبار روی آوردم به وایمکس. از ۲۰ مرداد تا الان که ۱۱ مهر هست، من در حال استفاده از وایمکس‌های ایرانسل و مبین‌نت بودم. اما انقدر تجربه بدی داشتم که مجبور شدم بخاطرش این مطلب رو بنویسم تا شما هم اگر قصد استفاده از سرویس وایمکس این دو سرویس‌دهنده رو دارید، در تصمیم‌تون تجدید نظر یا تامل کنید.</p>

<a name="more"></a>

<h3 id="موقعیت_جغرفیایی_و_سرویس‌های_مورد_استفاده">موقعیت جغرفیایی و سرویس‌های مورد استفاده</h3>

<p>من وایمکس ایرانسل و مبین‌نت رو عمدتا در این ۳ نقطه جغرافیایی استفاده کردم: <strong>خیابان گاندی، تهران</strong>. <strong>خیابان بهار جنوبی، تهران</strong>. <strong>گوهردشت، کرج</strong>. سرویس‌های مورد استفاده در هر دو مودم سرویس <strong>۲ مگابیت بر ثانیه</strong> حجمی بوده.</p>

<h3 id="هزینه‌های_سرویس">هزینه‌های سرویس</h3>

<ul>
<li>هزینه ماهیانه وایمکس مبین‌نت، <strong>۴۵ هزارتومان</strong> به همراه ۵ گیگابایت حجم و ۱۳ هزار تومان برای هر گیگابایت حجم اضافه!</li>
<li>هزینه ماهیانه وایمکس ایرانسل، <strong>۷۱ هزار تومان</strong> به همراه ۱۲ گیگابایت حجم.
من هر دوی این سرویس‌ها رو همزمان شارژ کردم چون بخاطر کیفیت پایین، مجبور هستم متناوبا بین این دو سویچ کنم.</li>
</ul>

<h3 id="سرعت_دانلود">سرعت دانلود</h3>

<p>با توجه به اینکه مسئولین این دو سرویس‌دهنده فکر می‌کنن تمام کاربران اینترنت، تنها استفاده‌ای که از اینترنت می‌کنن دانلود غیرقانونی فیلم و نرم‌افزار هست، اگر با دانلود منیجر چیزی رو دانلود کنید سرعت دریافت بین ۵۰ کلوبایت تا ۲۰۰ کیلوبایت بر ثانیه متغیر هست. البته مبین‌نت به ۲۰۰ میرسه ولی ایرانسل در بهترین حالت از ۱۳۰ بالاتر نمی‌ره در حالی که در تئوری باید هر دو ۲۵۶ کیلوبایت بر ثانیه سرعت دانلودشون باشه. ولی اگر بدون دانلود منیجر سعی کنید فایلی رو دانلود کنید، سرعت از ۵ الی ۶ کیلوبایت بر ثانیه بالاتر نمیره.</p>

<h3 id="سرعت_آپلود">سرعت آپلود</h3>

<p>سرعت آپلود هر دو سرویس در بیشتر مواقع کمتر از ۱۰ کیلوبایت هست و در بهترین حالت به ۴۰ کیلوبایت در ثانیه می‌رسه.</p>

<h3 id="زمان_پینگ">زمان پینگ</h3>

<p>مهم‌ترین مشکل این دو سرویس زمان پینگ بالای اون‌ها هست. امروز سرعت پینگ DNS سرور خود ایرانسل ۱۳هزار میلی‌ثانیه بود! در بهترین حالت از ۷۰۰-۸۰۰ میلی‌ثانیه پایین‌تر نمیاد تازه اگر شانس بیاریم و پکت به مقصد برسه و دراپ نشه. پینگ ایرانسل از گوگل:</p>

<pre lang="bash">$:~ sallar$ ping google.com
PING google.com (173.194.35.14): 56 data bytes
...
Request timeout for icmp_seq 11
Request timeout for icmp_seq 12
Request timeout for icmp_seq 13
Request timeout for icmp_seq 14
64 bytes from 173.194.35.14: icmp_seq=12 ttl=47 time=3099.515 ms
Request timeout for icmp_seq 16
Request timeout for icmp_seq 17
Request timeout for icmp_seq 18
64 bytes from 173.194.35.14: icmp_seq=13 ttl=47 time=6724.858 ms
64 bytes from 173.194.35.14: icmp_seq=14 ttl=47 time=5924.321 ms
Request timeout for icmp_seq 21
Request timeout for icmp_seq 22
64 bytes from 173.194.35.14: icmp_seq=15 ttl=47 time=8902.048 ms
Request timeout for icmp_seq 24
64 bytes from 173.194.35.14: icmp_seq=16 ttl=47 time=9144.711 ms
64 bytes from 173.194.35.14: icmp_seq=17 ttl=47 time=9791.023 ms
64 bytes from 173.194.35.14: icmp_seq=18 ttl=47 time=9498.300 ms
64 bytes from 173.194.35.14: icmp_seq=19 ttl=44 time=9589.393 ms
</pre>

<p>مبین‌نت هم همچین شرایطی رو داره. حتی گاهی پینگ سرورهای داخل ایران که اصولا باید خوب باشه خوب نیست. و موضوع مهم این که مبین‌نت و ایرانسل چیزی به اسم سرور داخلی نمی‌شناسن و براشون فرقی نداره سرعت اتصال به سرور ایرانی و خارجی. همشون عین همدیگه کم هستن. همین الان برای اینکه قیمت ماهیانه ایرانسل رو مطمئن بشم کلی صبر کردم تا پنل Ecare خودش باز بشه.</p>

<h3 id="پشتیبانی">پشتیبانی</h3>

<p>بدترین چیز در مورد این سرویس‌ها پشتیبانی اون‌ها هست.</p>

<p>اولین مشکلم با ایرانسل بود، نیاز داشتم تعرفه رو تغییر بدن ولی اون‌ها تغییر نمی‌دادن و من هم مجبور شدم برم دنبال پیدا کردن «آشنا» که آخرش هم پیدا کردم و متوجه شدم تغییر تعرفه از لحاظ فنی امکان پذیر بود ولی اپراتورها این کار رو انجام نمی‌دادن. اینکه چرا رو هنوز متوجه نشدم. غیر از اون هربار که بخاطر سرعت پایین باز شدن صفحات با ایرانسل و مبین‌نت تماس گرفتم، یکی یا ترکیبی از این پاسخ‌ها رو دریافت کردم:</p>

<ul>
<li>مشکل از ف.یلتر شکن هست. (براشون توضیح میدم که استفاده نمی‌کنم و مشکل بدون اون وجود داره)</li>
<li>مشکل از ویروسه! آنتی‌ویروس نصب کنید (توضیح میدم که سیستم عاملم مک هست و این مشکل روی گوشی و تبلت هم وجود داره)</li>
<li>مشکل از ویندوز هست (توضیح میدم که از مک استفاده می‌کنم و مشکل روی گوشی و تبلت هم هست)</li>
<li>مشکل از مرورگرتون هست (توضیح میدم که غیر از کروم با فایرفاکس و سافاری و مرورگرهای موبایل و تبلت هم تست کردم)</li>
<li>مشکل از اینه که با سیم وصل نکردید (توضیح میدم که اولا لپتاپم امکان اتصال با سیم رو نداره دوما چرا با سیم هم تست کردم مشکل همین بود)</li>
<li>مشکل از سرورهای خارج کشور هست (توضیح میدم که سرورهای داخل کشور هم مشکل دارن)</li>
<li>مشکل از دکلی هست که بهش وصل شدید (توضیح میدم با تغییر فرکانس مودم و وصل شدن به دکل‌های دیگه هم این مشکل پابرجاست)</li>
<li>مشکل از نرم‌افزاری هست که باهاش سرعت دانلود رو تست کردید، با فلان نرم‌افزار تست کنید و مجددا تماس بگیرید (توضیح میدم که من سرعت دانلود برام مهم نیست و سرعت باز شدن صفحات برام اهمیت داره ولی با این حال با تمام نرم‌افزارهای تست سرعت، سرعت رو امتحان کردم)</li>
<li>مشکلی وجود نداره ولی با این حال ارجاعتون می‌دیم بین ۲۴ تا ۴۸ ساعت آینده همکاران ما باهاتون تماس می‌گیرن (که گاهی ۷ صبح زنگ می‌زنن، ۳-۴ روز بعد)</li>
<li>مشکلی وجود نداره، لطفا در نظرسنجی ما هم شرکت کنید
وقتی بهشون توضیح میدم که من کاربر عادی نیستم و تمام راه‌های دیباگ که دوستان پیشنهاد می‌کنن رو قبلا بررسی کردم خودم، کاملا حرفم رو نادیده می‌گیرن و دوباره حرفاشون رو (مخصوصا اینکه با سیم وصل کنید بعد تماس بگیرید) رو تکرار می‌کنن. تا حالا حدود ۳۰ بار به پشتیبانی هرکدوم از سرویس دهنده‌ها زنگ زدم ولی تا امروز پیش نیومده که مشکل من رو حل کنن.</li>
</ul>

<h3 id="سخن_آخر">سخن آخر</h3>

<p>من کماکان بعد از ۲ ماه هنوز مشکل دارم و به اجبار هر دو سرویس رو ۲ ماه پیاپی شارژ کردم. واقعا متاسفم برای خودم که مجبورم از این سرویس‌ها استفاده کنم و در حال حاضر تنها راه جایگزین استفاده از اینترنت رادیویی هست که حدود ۵۰۰ هزار تومن هزینه راه‌اندازی نیاز داره. به شدت کلافه‌ام و نمی‌دونم باید چیکار کنم. ولی پیشنهاد می‌کنم حتی اگر مجبور شدید، شده از رایتل استفاده کنید ولی از وایمکس این ۲ سرویس‌دهنده استفاده نکنید تا حداقل بیشتر حرص نخورید.</p>

<p>پی‌نوشت: حدود ۱۰ بار ریلود کردم این صفحه رو تا بتونم این مطلب رو منتشر کنم. Connection Timeout می‌داد.</p>]]></content>

    <summary>
    &lt;p&gt;خیلی سعی کردم که بشه این مطلب رو ننویسم، بهش فرصت دادم ولی اوضاع تغییری نکرد؛ حالا با دلی پر از ایرانسل و مبین‌نت این مطلب رو می‌نویسم.&lt;/p&gt;

&lt;p&gt;به دلیل شرایط مختلفی که طی چند ماه گذشته برام پیش اومد، نتونستم که یک جا ثابت بمونم و از اینترنت ADSL ـی که داشتم استفاده کنم و به اجبار روی آوردم به وایمکس. از ۲۰ مرداد تا الان که ۱۱ مهر هست، من در حال استفاده از وایمکس‌های ایرانسل و مبین‌نت بودم. اما انقدر تجربه بدی داشتم که مجبور شدم بخاطرش این مطلب رو بنویسم تا شما هم اگر قصد استفاده از سرویس وایمکس این دو سرویس‌دهنده رو دارید، در تصمیم‌تون تجدید نظر یا تامل کنید.&lt;/p&gt;


    </summary>
  </entry>
  
  <entry>
    <title>سالارکست، اپیزود ۲، طراحی</title>
    <link href="https://sallar.me/farsi/sallarcast-episode-2/"/>
    <id>https://sallar.me/farsi/sallarcast-episode-2/</id>

    <published>2014-09-27T14:05:36+0200</published>
    <updated>2014-09-27T14:05:36+0200</updated>

    <content type="html"><![CDATA[<a name="more"></a>
<p>&nbsp;</p>

<p><img src="https://s3-eu-west-1.amazonaws.com/sallar.me/uploads/2014/09/e11.jpg" alt="Illustrated by Sahar Ahvaz" id="illustrated_by_sahar_ahvaz"></p>

<p>قبل از همه چیز عذر میخوام که انتشار قسمت دوم پادکست انقدر طولانی شد. متاسفانه درگیر مشکلاتی شدم که باعث شد کمی طول بکشه.</p>

<p>در این قسمت سالارکست، می‌خوام در مورد طراحی حرف بزنم، اینکه طراحی چی هست و چرا در دنیا اهمیت داره. مدتی پیش کتابی خوندم به اسم <a href="http://shapeofdesignbook.com/">The Shape of Design</a> نوشته Frank Chimero که یکی از طراح‌های مورد علاقم هست. فرنک در کتابش در مورد طراحی حرف می‌زنه و خوندنش این جرات رو به من داد که من هم در این پادکست از طراحی بگم؛ بعضی از کلمات رو هم از کتاب اون قرض گرفتم.</p>

<p>تشکر می‌کنم از <a href="https://twitter.com/saimonjafari">سامان جعفری</a> عزیز که زحمت کشید کار آهنگ‌سازی، انتخاب موسیقی و تنظیم صدای این پادکست رو با وجود تازه‌کار بودن من برای ضبط و گویندگی انجام داد و از <a href="https://twitter.com/saharsaaa">سحر اهوز</a> عزیز که تصویرسازی این قسمت (و امیدوارم قسمت‌های بعدی) رو خیلی دوست‌داشتنی انجام داده. انتشار این پادکست بدون اونا امکان پذیر نمی‌شد.</p>

<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/169571358&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false"></iframe>

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

<p>اپیزود دوم رو می‌تونید از <a href="https://soundcloud.com/sallar/sallarcast-episode-02-design">ساند‌کلاد گوش بدید</a> یا <a href="http://j.mp/1pxInRo">فایل MP3 رو دانلود کنید</a>.</p>]]></content>

    <summary>
    &lt;p&gt;&amp;nbsp;

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

در این قسمت سالارکست، می‌خوام در مورد طراحی حرف بزنم، اینکه طراحی چی هست و چرا در دنیا اهمیت داره. مدتی پیش کتابی خوندم به اسم The Shape of Design نوشته Frank Chimero که یکی از طراح‌های مورد علاقم هست. فرنک در کتابش در مورد طراحی حرف می‌زنه و خوندنش این جرات رو به من داد که من هم در این پادکست از طراحی بگم؛ بعضی از کلمات رو هم از کتاب اون قرض گرفتم.

تشکر می‌کنم از سامان جعفری عزیز که زحمت کشید کار آهنگ‌سازی، انتخاب موسیقی و تنظیم صدای این پادکست رو با وجود تازه‌کار&lt;/p&gt;
    </summary>
  </entry>
  
</feed>