<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محمد رستمی</title>
        <link>https://virgool.io/feed/@mbrostami</link>
        <description>Developer</description>
        <language>fa</language>
        <pubDate>2026-06-16 10:45:14</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/13663/avatar/avatar.png?height=120&amp;width=120</url>
            <title>محمد رستمی</title>
            <link>https://virgool.io/@mbrostami</link>
        </image>

                    <item>
                <title>جمهوریِ دیکتاتوریِ سیلیکونی</title>
                <link>https://virgool.io/@mbrostami/%D8%AC%D9%85%D9%87%D9%88%D8%B1%DB%8C%D9%90-%D8%AF%DB%8C%DA%A9%D8%AA%D8%A7%D8%AA%D9%88%D8%B1%DB%8C%D9%90-%D8%B3%DB%8C%D9%84%DB%8C%DA%A9%D9%88%D9%86%DB%8C-geoxvqum0l1h</link>
                <description>توی این مطلب قصد دارم (به زبان غیر فنی) به موضوعی بپردازم که شاید نه الان ولی در آینده نزدیک خیلی اهمیت بیشتری پیدا کنه:‌ «حریم خصوصی»sillicon valleyهیچ مشکلی پیش نمیاد اگه گوگل یا هر شرکت دیگه ای، از اطلاعات من استفاده کنه تا بهم تبلیغاتی که نیاز دارم رو نشون بده، تا محتوایی که بیشتر علاقه دارم رو ببینم. مثلا ممکنه چند بار توی گوگل دنبال یه لپ تاپ خاص گشته باشید و یهو وسط یه بازی کاملا بی ربط یه آگهی لپ تاپ می بینید با قیمت مناسب که تقریبا چیزی بوده که دنبالش بودید. عالی. توی توییتر، نظرمون رو توییت میکنیم،‌ نظر دیگران رو میخونیم، هشتگ میزنیم، طوفان توییتری راه میندازیم، روی سیاست تاثیر می ذاریم، با اطلاعاتی که خودمون پیدا میکنیم و می خونیم به روز هستیم. توی یوتیوب هر ویدیویی رو میتونیم پیدا کنیم که بهمون کمک کنه. از یادگیری زبان گرفته تا آشپزی و مطالعه و کتاب صوتی و هزار تا فایده ی دیگه. رایگان بودن تمام این سرویس ها هم که مشخصا مدل در آمدیشون رو نشون میده، تبلیغات. When the product is free, YOU are the product همه چی میتونه مفید باشه. من تمام مزایایی که این شرکت های بزرگ برای ما کاربرها دارند رو انکار نمی کنم. ولی موضوعی هست که باید از امروز عمیقا بهش فکر کنیم و تصمیم بگیریم. حریم خصوصیهمه ما با فرم های Terms and Conditions برخورد داشتیم و نخونده قبول کردیم تا بتونیم از نرم افزار استفاده کنیم. معمولا این محتوا داخلش هست که شما اجازه میدید مثلا یوتیوب از اطلاعات شما برای بهبود عملکرد سرویس یا سرویس های خودش استفاده کنه. یا به گوگل مجوز میدید،‌ از محتوایی که تولید میکنید و داخل یوتیوب قرار میدید برای انالیز و بهبود عملکرد سرویسش استفاده کنه. فقط در رابطه با گوگل میتونم بگم اگه اندروید، گوگل کروم، سرچ گوگل، گوگل مپ و ... استفاده میکنید، گوگل اجازه داره تا موقعیت مکانی، کلماتی که سرچ کردید و تاریخچه سرچ، اپلیکیشن هایی که استفاده کردید، ویدیو هایی که دیدید، جاهایی که رفتید، سایت هایی که باز کردید، نوتیفیکیشن هایی که گرفتید، دستگاه های بلوتوثی که نزدیکتونه، وای فای هایی که بهش وصل شدید، اطلاعات حسابتون، کلماتی که با کیبورد گوشی تایپ کردید و ... استفاده کنه. به همه اینها بازدیدتون از تمام سایت هایی که کپچای گوگل،‌ اسکریپت analytics، یوتیوب و سرویس های دیگه ی گوگل رو اجرا میکنن، زمان هایی که هر کدوم از موارد بالا اتفاق افتاده و مدت زمان تعامل رو اضافه کنید. بیشتر؟ این لینک رو بخونید. و همه اینها برای بهبود عملکرد سرویس های گوگل ذخیره، آنالیز و استفاده میشن و اگر شما اطلاعاتتون رو از گوگل حذف کنید گوگل حق این رو داره که تا مدت معینی همه این اطلاعات رو نگه داره. جالبه که همه اینها قانونیه. البته که یه تنظیماتی هست که میتونید دسترسی رو محدود کنید ولی به صورت تنظیمات پیش فرض نیست. و گوگل فقط یکی از این شرکت هاست. شبکه های اجتماعی مثل فیسبوک، اینستاگرام، توییتر، واتزاپ و ... هم اطلاعات رو به روش های دیگه میگیرن. با این حال موضوعی که میخوام مطرح کنم این مواردی که گفتم نیست.پردازش اطلاعاتاین همه اطلاعات جمع آوری شده چطور پردازش میشن؟ و به چه دردی میخورن؟ مهمترین استفاده این اطلاعات طبقه بندی دقیق تر کاربرهاست. از اونجا که این سرویس ها بر اساس تبلیغات درآمد زایی میکنن، باید بتونن جوری کاربرها رو طبقه بندی کنن تا مشتری های این شرکت ها بتونن تبلیغ کاملا هدفمند داشته باشن. هرچی اطلاعات جمع آوری شده بیشتر باشه، طبقه بندی دقیق تر، پول بیشتر. برای مثال:گوگل: کاربرهایی که طی دو روز اخیر کلمه فلان رو سرچ کردن، و توی فلان شهر زندگی می کنن و گوشیشون اندروید هستش و فیس بوک روی گوشیشون نصبه، و کاربر فعال فیس بوک هم هستن، و روزی حداقل ۳۰ دقیقه توی فیسبوک چرخ میزنن و حداقل یک بار به فلان مرکز خرید توی همون شهر مراجعه کردن و اینترنت پر سرعتی هم دارن و ...فیس بوک: کاربرایی که به مطالب مربوط به فلان کلمه کلیدی علاقه دارن، و نظرات مخالف این موضوع رو نمی پسندن، و نظرهای مخالفشون رو صریح بیان میکنن و فلان جا زندگی میکنن و تحصیل کرده هستن و سنشون از ۳۰ به بالاست و متاهل هستن و .... شاید مثال ها کمی غیر واقعی به نظر برسه. اما میتونید در مورد Cambridge Analytica بخونید. خلاصه اش اینه که سال ۲۰۱۸ مشخص میشه که این شرکت به صورت غیر مستقیم از اطلاعات کاربرای فیس بوک استفاده کرده و توسط الگوریتم های هوشمندی که نوشته بودن کاربرای آمریکایی رو به طیف هایی طبقه بندی کرده بودن. مثلا طرفداری ترامپ - مخالفای ترامپ و کسایی که توی تصمیم گیری مشکل دارن. و همین دسته سوم رو تارگت کمپین های تبلیغاتی خودشون کردند تا نظرشون رو نسبت به ترامپ مثبت کنن. همین اتفاق برای کاربرای انگلیسی در مورد Brexit افتاد.این شرکت ها خوره ی جمع آوری اطلاعات هستن، حتی کم اهمیت ترین چیزی که به ذهن ما برسه، مثل رابطه تعداد پلک زدنمون موقع نگاه کردن به صفحه گوشی به زمان استفاده از اپلیکیشن. برای ذهن ما انسان ها شاید بی هدف و بی اهمیت باشه ولی وقتی همین اطلاعات به الگوریتم های داده کاوی، یادگیری ماشین و ... داده میشه، خروجی میتونه با اهمیت باشه. مخصوصا وقتی تعداد داده ورودی زیاد باشه. اونا تمام تلاششون رو میکنن (با روانشناسی، جامعه شناسی، نورو مارکتینگ) تا شما اعتیاد بیشتری پیدا کنید به استفاده از سرویس ها، سایت ها، سوشال نت ورک ها. اینطوری هم اطلاعات بیشتری می بلعن و هم تبلیغات بیشتری می فروشن.نمونه دیگه ای که همین چند روز پیش گندش در اومد مربوط به گوگل بوده که میخواسته کمپین ۲ ماهه ای رو شروع کنه برای تاثیر گذاری روی قانون گذار های کمیسیون اروپا (که در حال تغییر قوانینی هستن که روی شرکت های بزرگ تکنولوژی تاثیر میذاره).با همین روند کنونی، در آینده شاهد شرکت های بزرگ دیگه خواهیم بود که روش های جدید، الگوریتم های هوشمندتر برای استفاده از این انبوه اطلاعات جمع آوری شده از تک تک ما طی ۱۰ الی ۲۰ سال، تولید میکنن. درست مثل پدری که بچه ۱۰ سالشو میشناسه، با این تفاوت که الگوریتم ها روانشناس های بهتری خواهند بود.۱۰ سال بعد؟اول اینکه این شرکت های سیلیکونی اطلاعات رو تا ابد نگه می دارن، (گرچه قوانین میگن که نباید قابل ردیابی باشن). فرض کنید همه اطلاعاتی که میتونستن از شما بگیرن، از ۱۰ سال گذشته تا به امروز موجوده.  حالا تصور کنید یک الگوریتمی هست که با خوندن یک جمله میتونه تشخیص بده لحن گوینده چطور هستش. (نمونه موجود) یا با خوندن اطلاعات قبلی شما میتونه تشخیص بده که چه چیزی شما رو عصبی میکنه، چه چیزی انگیزه میده و چه چیزی خوشحالتون میکنه و یا حتی چطور نظرتون رو میشه تغییر داد. مثل اینکه به یک خبر گوش میکنید، کتاب میخونید، فیلم می بینید، و حسی که میگیرید ممکنه خشم، نفرت، خوشحالی یا هرچیز دیگه ای باشه. دور از ذهن نیست که از اطلاعات ۱۰ سال گذشته شما بشه همچین روانشناسی ماشینی انجام داد و شما رو حتی بهتر از خودتون شناخت. حالا الگوریتم دیگه ای توی جایی مثل توییتر میتونه با پشت سر هم قرار دادن یک سری توییت هایی از کسایی که شما دنبال میکنید ولی در راستای هدفی که اون الگوریتم مشخص میکنه، و همینطور نمایش تبلیغات،‌ توی ناخودآگاه شما تاثیر بذاره یا اطلاعات غلط رو به شکل اطلاعات عمومی به شما برسونه یا شما رو خوشحال، غمگین یا خشمگین کنه جوری که خودتون متوجه این انحراف نشید. و در مجموع بخش کوچکی یا تمام زندگی ما رو ممکنه تحت تاثیر قرار بده. یا الگوریتم هایی که بتونن اخبار جعلی بسازن حتی از خود انسان ها هم بهتر. و این اخبار هر جایی که هستیم دنبالمون باشن تا در نهایت ناخودآگاه مجبور به باورشون بشیم. برای مثال میتونید این لینک رو ببینید که تصاویری از انسان هایی می سازه که در واقعیت وجود خارجی ندارن. در همین زمانی که هستیم امکان ساخت ویدیو هایی با تکنولوژی DeepFake و GAN و DeepVoice وجود داره.به همه اینها IoT و تمام اطلاعاتی که از دیوایس های هوشمند اطرافمون میشه بیرون کشید هم اضافه کنید. به نظرم تاثیری که هالیوود روی جهان گذاشت تاثیر زیادی بود که همه ما احساسش کردیم. شاید بشه گفت سینما و رسانه یکی از قوی ترین ابزارهای تاثیر گذاری روی مردم هست. پیشرفت نورومارکتینگ و هوش مصنوعی توی مسیر فعلی و کمک ما به این شرکت های سیلیکونی برای جمع آوری داده ها از ما، دنیا رو به سمتی میبره که در نهایت صنعتی به وجود میاد صدها برابر تاثیر گذارتر از هالیوود. چون سینما تعامل یک طرفه است که فقط انتقال داده میشه. ولی صنعت جدید آینده، با تعامل کاملا دو طرفه، هوشمند و خود یادگیرنده خواهد بود. و اگه محدود باشه به شرکت های سیلیکونی که برای قدرت (اطلاعات) بیشتر باهم رقابت میکنن، جمهوریِ دیکتاتوریِ سیلیکون ولی به وجود میاد. که تمام سیاست ها و قوانین این صنعت از این حکومت به شرکت های کوچیک تر و در نهایت به مردم دیکته میشه.نمونه ی کوچکی از این دیکتاتوری در حال به وجود اومدن رو اینجا و اینجا مربوط به تلگرام ببینید.در نهایت باید اضافه کنم که سیلیکون ولی توی این مطلب نمادی از شرکت های بزرگیه که منبع درآمدشون، اطلاعات کاربراشونه و محدود به منطقه جغرافیایی نیست.چه کنیم؟اطلاعاتمون رو در رابطه با Privacy بیشتر کنیم. سرویس های دیگه ای که Privacy رو حفظ میکنن، Tracking نمیکنن و free software ها رو بیشتر حمایت کنیم. در دسترس بودن سورس کد سرویس هایی که استفاده میکنیم حداقل میتونه یه جور شفاف سازی در مورد نحوه استفاده از اطلاعات ما باشه. سعی کنیم سرویس های سیلیکونی رو جایگزین کنیم با سرویس هایی که سیاست های حریم خصوصی قابل قبولی دارن. اگه مسیر IoT هم به این سمت حرکت کنه، شاید به جرات بشه گفت با چیزی غیر قابل کنترل روبرو خواهیم بود. حتی اگر روزی به این نقطه برسیم و به فرض محال، مردم در اعتراض به این دیکتاتوری دست از استفاده از این دیوایس ها،‌ سرویس ها و ... بکشن، باز نمی تونن جلوی تاثیر گذاری از طریق روش های دیگه رو بگیرن چرا که اطلاعات چندین سال تک تک ما همچنان دست این حکومت خواهد موند.   این لینک ها رو چک کنید: https://www.humanetech.com/take-controlhttps://ownyourdata.foundation/https://spreadprivacy.com/what-does-google-know-about-me/https://gdpr.euتنظیمات Privacy تون رو بررسی کنید:https://myactivity.google.com/...این فیلم ها رو ببینید:The Great HackThe Social Dilemma کامنت بذارید و شیر کنید تا بیشتر در موردش صحبت کنیم و اصلاح کنیم</description>
                <category>محمد رستمی</category>
                <author>محمد رستمی</author>
                <pubDate>Sat, 31 Oct 2020 12:07:06 +0330</pubDate>
            </item>
                    <item>
                <title>Consistent Hashing Algorithm</title>
                <link>https://virgool.io/@mbrostami/consistent-hashing-algorithm-xi0r50f3o39l</link>
                <description>پست قبلی رو ادامه ندادم دیگه، دیره یه مقدار :دیاین پست رو برای این می نویسم که جایی ثبت بشه تا بعد ها بتونم بهش رجوع کنم. ایرادی چیزی بود فیدبک بدید که باهم اصلاحش کنیم.مقدمهداشتم در مورد شبکه های distributed p2p مطالعه می کردم. به مبحث DHT رسیدم. DHT مخفف Distributed Hash Table.  فرض کنید یه شبکه درست کردید که ۱۰۰۰ تا کلاینت بهش وصل شدن از سراسر دنیا. اینا برای پیدا کردن همدیگه به یه routing table یا یه hash table نیاز دارن که ازش بتونن بپرسن فلانی مثلا آی پیش چیه. این کار خیلی هم راحت نیست. برای اینکه سرور مرکزی وجود نداره که ازش درخواست کنید و اونم جواب بده. پس کلاینت (از این به بعد نود) نود ها باید از هم دیگه بپرسن. این هم امکان نداره که هر نود جداگانه اطلاعات تمام نود های دیگه رو داشته باشه، اینجوری باشه این سیستم scalable نخواهد بود. پس یه نود برای پیدا کردن آی پی نود دیگه از کدوم نود باید بپرسه؟ (بحث اینکه چطور بدون وجود سرور مرکزی، نود ها به شبکه جوین می شن مبحث bootstrapping هست که فعلا واردش نمیشیم) شبکه های p2p که از سرور مرکزی استفاده میشه مثل Napster و ... مد نظرمون نیست اینجا.البته توی bitcoin و بعضی از تکنولوژی هایی که با blockchain پیاده سازی شدن یه سری نود ها میتونن full node باشن که تمام اطلاعات رو بتونن دانلود کنن و لوکال داشته باشن ولی برای همه نود ها صدق نمی کنه.خوب حالا که سرور مرکزی وجود نداره چیزی به اسم DHT هست. که به صورت تیکه به تیکه پخش میشه توی شبکه. با یه ضریب اطمینانی، هر تیکه از این hash table توسط چندین نود مختلف نگه داری میشه. فعلا از DHT بگذریم چون به بحث اصلی نمی رسیم. فقط بگم که یکی از راه های درست کردن این hash table استفاده از الگوریتم consistent hashing هست. الگوریتم Consistent Hashing برای اینه که هم هش هایی بسازیم که random هستن و هم این random بودنه باعث نشه که با هر اضافه شدن و حذف شدن یه نود hash table غیر قابل اعتماد بشه.نحوه کاراز جایی که HAProxy به عنوان load balancer داره ازش استفاده می کنه میتونه مثال خوبی باشه، برای اینکه دقیقا از همین الگوریتم استفاده میکنه تا درخواست هایی که از سمت درخواست کننده میاد رو به طور متعادل بین سرور هایی که وجود دارن پخش کنه. مثال: فرض کنید ۲ تا سرور به عنوان load balancer دارید و HAProxy روشون نصب کردید. ۳ تا سرور هم دارید که پشت HA گذاشتیدشون. حالا توی هر HA باید سرور ها رو به عنوان نود به HA بدید.در ساده ترین حالت ممکن بالانس کردن به صورت random هست که میتونه request شماره ۱‍  (req1) رو در یک زمان به نود ۱ بفرسته،‌ دفعه بعد به نود ۲ بفرسته و ... . یه کم پیشرفته ترش کنیم میتونیم یه جدولی داشته باشیم که بگه req1 رو فقط به نود ۱ بفرست. (نود ۱ رندوم انتخاب شده. مسئله ی دیگه که پیش میاد اینه که ۲ تا سرور HA ما باید بدونن که اون یکی، req1 رو به چه نودی داده.)‌ اما مشکل اصلی اینه که وقتی یکی از نود ها حذف بشن یا یه نود جدید اضافه بشه، دوباره برای تمام req ها باید سرور های رندوم جدید انتخاب بشه که ممکنه با دفعه قبلشون فرق داشته باشه. (اگه این اتفاق نیفته بالانس از بین میره)‌ اما راهکار بعد استفاده از همین الگوریتمی هست که توضیح دادم که از اینجا به اختصار بهش میگیم CH.    حالا HA ها با همین الگوریتم CH و Hash Function به ازای هر نود یه hash تولید میکنن.  HAProxy 1:node1 =&gt; hash(node1) =&gt; aaa
node2 =&gt; hash(node2) =&gt; ccc
node3 =&gt; hash(node3) =&gt; yyyHAProxy 2:node1 =&gt; hash(node1) =&gt; aaa
node2 =&gt; hash(node2) =&gt; ccc
node3 =&gt; hash(node3) =&gt; yyyالبته hash table به صورت key, value هست که هر هش به آی پی یا اسم نود اشاره میکنه.خوب مشخصه که hash function به ازای یه ورودی مشخص همیشه یه خروجی ثابت بر میگردونه واسه همینه که توی هر دو سرور hash node1 شده aaa. این لیست از نود ها و هش هاشون روی حافظه هر دو HA به صورت مستقل به صورت Sort شده ذخیره میشن. مرحله بعد از همین hash function استفاده می شه تا req ورودی شماره ۱ رو تبدیل به یه هش ثابت کنه.   req1 =&gt; hash(req1) =&gt; bbbمقدار هش برای هر دو HA یکسان خواهد بود. ولی این هش ها هیچ جا ذخیره نمی شن. فقط ازش استفاده میشه برای پیدا کردن نزدیک ترین سرور بعد از این هش. که بایه لوپ روی نودها و باینری سرچ با log n میشه نود مربوطه رو پیدا کرد. node1 =&gt; hash(node1) =&gt; aaa
--- bbb
node2 =&gt; hash(node2) =&gt; ccc
node3 =&gt; hash(node3) =&gt; yyyکه اینجا بعد از هش bbb اولین هشی که ازش بزرگتر هست رو پیدا میکنه که میشه ccc یعنی نود ۲. هیچ فرقی هم نمی کنه کدوم HA این req رو میگیره. هر دوشون به نتیجه نود ۲ میرسن. اگر هش‌ req کمتر از aaa باشه همیشه نود ۱ پاسخگو هست. اگر هم بزرگتر از yyy باشه دوباره برمی گردیم از اول لیست شروع می کنیم که میشه همون نود ۱. برای همین هست که CH رو به صورت یه حلقه ای از هش ها نشون می دن. مثل این:‌consistent hashingیه مشکل دیگه هست. به فرض اگر hash function ای که داریم از 000 شروع بشه و yyy تموم بشه. req های بعدی که میان هش های جدید رندوم ثابت میگیرن. و قطعا بین ۳ تا نودی که داریم بالانس درستی برقرار نمیشه. چون نود ۱  هش هایی رو که از 000 تا aaa رو باید هندل کنه. نود ۲ از aab تا ccc که تعدادشون قطعا کمتر از نود ۱ هست. نود ۳ هم از ccd تا fff رو هندل میکنه که باز نسبت به نود ۲ بیشتر هست. برای حل این مشکل هم تنها کافیه نود ها رو به صورت رندوم تکرار کنیم توی hash table.node1 =&gt; hash(node1 - 1) =&gt; aaa 
node1 =&gt; hash(node1 - 2) =&gt; xxx
node1 =&gt; hash(node1 - 3) =&gt; 555

node2 =&gt; hash(node2 - 1) =&gt; ccc
node2 =&gt; hash(node2 - 2) =&gt; 111
node2 =&gt; hash(node2 - 3) =&gt; 999

node3 =&gt; hash(node3 - 1) =&gt; yyy
node3 =&gt; hash(node3 - 2) =&gt; 222
node3 =&gt; hash(node3 - 3) =&gt; 444  خوب حالا یه مقدار بالانس تر شدن. برای همین توی تصویری که دایره شکل هست نود ها ۸ بار تکرار شدن تا کمک کنه به بالانس کردن قضیه. توی این سیستم خیلی راحت یک نود میتونه حذف و اضافه بشه بدون اینکه کل سیستم رو تحت تاثیر قرار بده. مثلا اگر یه نود جدید ۴ اضافه کنیم و هشی که تولید میشه zzz باشه، تنها req هایی که هش اشون از yyy تا zzz باشه باید به نود ۴ برن. باقی مثل قبل می مونن. باز هم یه مشکل دیگه هست. فرض کنید req1 یه درخواست سنگین باشه و req 2 یه درخواست خیلی سبک. اون وقت نود ی که قراره req 1 رو هندل کنه همیشه ریسورس بیشتری از نود های دیگه استفاده میکنه. این مشکل رو CH with bounded loads حل می کنه. Consistent Hashing with bounded loadsنسخه بهبود یافته این الگوریتم هم هست با عنوان Consistent Hashing With Bounded Loads توسط وهاب میررکنی، مرتضی زادی مقدم و میکل تراپ معرفی شد که بعدها HAProxy این بخش رو وارد سورس کد خودش کرد. (اینجا ببینید) این الگوریتم بهبود یافته با اضافه کردن میانگین لود و با یه فرمول ریاضی ساده، جلوی آور لود بعضی از نود ها رو در الگوریتم قبلی اصلاح کرد که باز این حالت با یک عددی مثل balance factor از ۱ تا ۲ قابل تنظیمه. اگه فرصت بشه در مورد این هم یه مطلب جدا می نویسم.  در نهایت خواستم این الگوریتم رو با golang پیاده کنم دیدم قبلا چند نفری اینکارو کردن و حتی یه نسخه اش توی golang/groupcache بود. اما چیزی که وجود نداشت این بود که اگر سرور ها یا نود ها از نظر منابع یکسان نباشن چطور باید هندل کرد که سعی کردم با درست کردن این mbrostami/consistenthash مشکل رو حل کنم. موفق باشید</description>
                <category>محمد رستمی</category>
                <author>محمد رستمی</author>
                <pubDate>Fri, 24 Apr 2020 20:09:58 +0430</pubDate>
            </item>
                    <item>
                <title>چالش های شیپور - ۱</title>
                <link>https://virgool.io/@mbrostami/%DA%86%D8%A7%D9%84%D8%B4-%D9%87%D8%A7%DB%8C-%D8%B4%DB%8C%D9%BE%D9%88%D8%B1-%DB%B1-jerdbao44pjx</link>
                <description>سلاماین اولین نوشته ی من توو ویرگول هست و دوست دارم تجربیاتی که با شیپور داشتم رو به اشتراک بذارم. چالش های فنی و غیر فنی. توو شیپور خیلی چیزها یاد گرفتم. از کار تیمی سوئدی ها و سطح دانششون تا چالش های بزرگ شدن تیم، تکنولوژی ها و تغییر ساختار تیم ها. قسمت جذابش برای ما آدمای فنی شاید همون چالش های فنی هستش که درگیرشیم.راستش رو بخواید من اولین روزی که به شیپور ملحق شدم حس خوبی نسبت به برند شیپور نداشتم ولی بعد از مدت کوتاهی نظرم به کل عوض شد. مخصوصا کار کردن با رضا اربابیان این دید رو تغییر داد. و بعد تکنولوژی ها و به روز بودن همه چیز رو برام جالب کرد تا الان که حدود ۴۰ نفر توو بخش IT داریم با هم کار میکنیم :) این سوال برای خیلی ها پیش میاد که ۴۰ نفر آدم چیکار میکنیم!!! به مرور توضیح میدم.اولین چیزی که به ذهنم میرسه، اشتباهاتیه که اول کار انجام دادیم تا بتونیم سریع تر برنامه رو آماده کنیم ولی حدود ۲ سال بعد هزینه ی زیادی رو برای اصلاح اون ها پرداخت کردیم. گرچه ساختاری که توو برنامه استفاده کردیم در اوایل کار در حدی بود که بتونه نیاز شیپور رو برطرف کنه و بدون مشکل پیش بره. اما هرچقدر که تیم بزرگتر شد و جلوتر رفتیم، برگشت به عقب و اصلاح اون ها سخت تر و پیچیده تر شد. الان وقتی به این موارد فکر میکنم به این نتیجه میرسم که این جور کار کردن شاید برای استارت آپ هایی که تازه تاسیس شدن خوب جواب بده،‌ ولی برای استارت آپی که مراحل رشد اولیشو طی کرده (در اون زمان ۱۳۹۴ مثل شیپور) باید اهمیت بیشتری به تعادل بین کیفیت و زمان داده بشه. و هرچه بیشتر رشد میکنه حفظ این تعادل، هم سخت تر میشه و هم اهمیت بیشتری پیدا میکنه.خیلی توضیح ساده و اولیه ای بود برای نوشته اول. توو نوشته های بعدی جبران میکنم :)</description>
                <category>محمد رستمی</category>
                <author>محمد رستمی</author>
                <pubDate>Fri, 27 Jul 2018 17:14:31 +0430</pubDate>
            </item>
            </channel>
</rss>