اشارات نظر

فربد صالحی

آدابِِ رفتن، آدابِ نبودن

 

 

نوشته‌ی بالا، استوریِ آقای «سروش محمدی» تو اینستاگرامه. ایشون پزشک هستن و گاهی تو صفحه‌شون به مسائلی غیر از پزشکی هم می‌پردازن. موردی که این‌بار در موردش نوشتن برام جالب بود و البته من هم در گذشته تو این نوشته یه اشاره‌‌ای بهش داشتم. 

معمولا بیشتر آموزش‌هایی که ما می‌بینیم، چه با مطالعه‌ی خودمون و چه در گفته‌های بزرگتر‌ها، به زمانِ «بودن‌ها» مربوط میشه. اینکه چیکار کنیم که این «بودن» شروع بشه، چطور حفظش کنیم، چطور تقویتش کنیم و ..

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

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

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

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

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

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

مثال بعدی رو میشه کاملا در حیطه‌ی شغلی و حرفه‌ای دونست. این بار بحثِ «جُدا شدن» یا «رفتن» نیست، بلکه به «نبودن» مربوط میشه. خانوم «هدیه تهرانی» که ستاره‌ یا به قولی سوپر استار سینمای ایران در اواخر دهه‌ی ۷۰ و اوایل دهه‌ی ۸۰ بودن، در چند سال اخیر به هر دلیلی خیلی کم‌کار شده بودن و میشه گفت که «نبودن» در واقع. 

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

 

 

۰ نظر
فربد صالحی

فرصت تفکر و خلق

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

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

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

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

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

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

 

 

۰ نظر
فربد صالحی

انتقال اطلاعات از یک کامپوننت به کامپوننت دیگر در Angular

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

 

الف) وقتی کامپوننت‌ها در وضعیت «والد/فرزند» هستند

@Component({
  selector: 'app-child',
  template: `
    <p> {{ username }}'s code is: {{ userCode }}<p>
    <p> 
        <button 
            (click)="sendMessage('Hello from {{ username }}')"> 
                    Send Message 
        </button> 
    </p>
  `
})
export class ChildComponent {
  @Input() userCode: number;
  @Input('name') username: string;
  @Output() sendInfo = new EventEmitter<string>();

  sendMessage(message: string) { 
     this.sendInfo.emit(message); 
  }
}

در قطعه کد بالا، کامپوننت ChildComponnet تعریف شده و دارای دو ویژگی userCode و username هستش که قبل از هر دوی اونها Input@ قرار دادیم تا مشخص کنه انتظار داریم مقدارشون از بیرون از این کامپوننت وارد بشه. یه نکته‌ی ریز هم در این کد استفاده از Input('name')@ هستش و معنیش اینه که کامپوننت‌های دیگه این ویژگی رو با نام name شناسایی و مقداردهی خواهند کرد (همونطور که در کد پایین این کار انجام شده)، هر چند که در داخل خود این کامپوننت از username برای ارجاع بهش استفاده میشه. 

در قطعه کد پایین، کامپوننت ParentComponent تعریف شده که در بخش template اش با استفاده از تگ <app-child>، کامپوننتِ قطعه کد قبلی رو در یک حلقه‌ی for فراخوانی کرده. در اینجا نحوه‌ی انتقال داده به ChildComponent با استفاده از [userCode] و [name] واضح و روشنه. 

@Component({
  selector: 'app-parent',
  template: `
    <app-child *ngFor="let user of users" 
                    [userCode]="user.code"  
                    [name]="user.username"
                    (sendInfo)="onGetInfo($event)">
    </app-child>
  `
})
export class ParentComponent {

  users = Users;
  userMessage: string;

  onGetInfo(message: string) {
     this.userMessage = message;
  }

}

اما اگه بخوایم برعکس عمل کنیم چطور؟ یعنی داده رو از ChildComponent به ParentComponent منتقل کنیم. تو ChildComponent داریم: 

 @Output() sendInfo = new EventEmitter<string>();

ChildComponent هر جا که لازم بود از طریق این EventEmitter می‌تونه یه رویداد یا event تعریف شده تو کامپوننت والد خودش رو فراخوانی کنه و داده‌ها رو به شکل پارامتر به اون بفرسته. همونطور که در عبارت <EventEmitter<string مشخص شده، یه پارامتر از نوع string ارسال می‌کنه. در اینجا این پارامتر، message هستش و همون داده‌ایه که می‌خوایم منتقلش کنیم:

 sendMessage(message: string) { 
   this.sendInfo.emit(message);   
 }

این پارامترها از هر نوع و به هر تعداد می‌تونن باشن. حالا برای اینکه تو کامپوننت والد این مقدار دریافت بشه، تو تمپلیت ParentChild داریم:

(sendInfo)="onGetInfo($event)"

که یعنی هر موقع sendInfo تو ChildComponent رو emit کردن، ()onGetInfo توی ParentChild فراخوانی بشه و پارامتر هم از طریق event$ ارسال بشه:

onGetInfo(message: string) {
   this.userMessage = message;
}

در حالت خیلی کلی میشه گفت در این روش، از Input@ برای ورود داده و از Output@ برای خروج داده استفاده میشه. 

 

ب) وقتی کامپوننت‌ها مستقل از هم هستند

تو این حالت هر کامپوننت route خودش رو داره. وقتی می‌خوایم یک یا چند پارامتر رو منتقل کنیم، خیلی راحت میشه از queryها در route استفاده کرد. مثلا اگه بخوایم دو تا پارامتر به نام‌های id و category رو از ProducstListComponent به ProductDetailComponent ارسال کنیم:

 
  this.router.navigate(
          ['/product-detail'], 
          {
             queryParams: { id: '3', category = 'mobile'} 
          }
  );
  

و اگه بخوایم تو ProductDetailComponent این پارامترها رو دریافت کنیم:

productId: number;
productCategory: string;
 
ngOnInit() {
    this.route.queryParams.subscribe(params => {
       this.productId= +params['id'];
       this.productCategory = params['category'];
    });
}

 

اما گاهی نیاز داریم که تعداد زیادی پارامتر یا حتی مثلا لیستی از اشیا رو منتقل کنیم به کامپوننت بعدی. در این حالت استفاده از query ها نه راحت هستش نه منطقی. در این حالت می‌تونیم از ویژگی state استفاده کنیم که از نسخه‌ی 7.2 به Angular اضافه شده. برای این‌ کار در ProductsListComponent برای انتقال لیست sameProductsList خواهیم داشت:

this.router.navigate(
              ['/product-detail'], 
              {state: {sameProds: sameProductsList}}
);

سپس برای دریافت این لیست در ProductDetailComponent:

sameProducts: any[];

ngOnInit() {

    const currentNavigationState = 
             this.router.getCurrentNavigation().extras.state;

    if (currentNavigationState) {

      this.sameProducts = currentNavigationState.sameProds;

    } 
 }

 

۰ نظر
فربد صالحی

سرازیریِ انتخاب

 

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

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

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

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

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

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

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

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

 

 

 

 

۰ نظر
فربد صالحی

هنر توجه داشتن

 

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

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

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

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

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

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

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

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

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

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

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

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

 

 

 

 

 

 

۰ نظر
فربد صالحی

هیچ می‌دانی؟

 

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

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

فریدون فرخزاد در سال ۱۹۹۱ میلادی (۱۳۷۲ شمسی) درکشور آلمان در منزلش به قتل رسید. حدس زده میشه که قتلش به فعالیت‌های سیاسی که بعد از سال ۱۳۵۷ داشت مربوط بوده. بیت‌های زیر، بخشی از شعر «در نهایت جمله آغاز است عشق» سروده‌ی این هنرمند هستش:

 

هیچ می‌دانی ز درد من هنوز، از درون گرم و سرد من هنوز

هیچ می‌دانی چه تنها مانده‌‎ام، چون صدف در عمق دریا مانده‌ام

هیچ می‌بینی زوال برگ را، ابتدا و انتهای مرگ را

هیچ می‌‎بینی نهاد و ریشه را، یاد داری لذت اندیشه را

هیچ می‌بینی چه سبز است این درخت، شاخه‌ای می‌چینی از اشجار بخت

 

هیچ باران را تماشا می‌کنی، چشمه‌ساران را تماشا می‌کنی

می‌زنی دستی به گیتاری هنوز، می‌دمد از پنجه‌ات باری هنوز

هیچ سازی در صدایت می‌خزد، نقش پروازی ز پایت می‌خزد

هیچ می‌دانی زبان من چه بود، لحن این و لفظ آن من چه بود

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

 

خسته‌ام از باور و ناباوری،‌ می‌نخواهم ارتفاع دیگری

عمق تب‌دار زمینم آرزوست،‌ یا شبی در مسلخ تاریک دوست

......

۰ نظر
فربد صالحی

یک نکته‌ی کوچک در خصوص صحبت‌های خانم سمیرا رحیمی

 

 

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

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

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

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

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

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

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

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

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

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

 

۰ نظر
فربد صالحی

استیو جابز، بورس، دلار و ندای درونی

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

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

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

اینکه اون «ندا» درسته یا این «فریادها» رو خیلی مطمئن نیستم، و البته احتمالا اینکه چی درسته و چی غلط رو مثل همیشه نتیجه و دستاورد نهایی مشخص می‌کنه. همونطور که اینجا در موردش نوشتم.

 

 

۰ نظر
فربد صالحی

زندگی در سرزمین شمالی

سریال ژاپنی «از سرزمین شمالی» یا "Kita no kuni kara"،‌ بخشی از خاطرات دوران کودکی منه. کل خانواده علاقه‌ی زیادی به این سریال داشتن و معمولا همگی موقع پخشش جلوی تلویزیون جمع بودن. البته طبق روال صدا و سیما، این سریال هم معمولا با فاصله‌ی چند سال بازپخش می‌شد که حداقل این یکی، البته به همراه سریال ایرانی «روزی روزگاری»، ارزش چندبار نگاه کردن رو داشت.  

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

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

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

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

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

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

 

 

 

۰ نظر
فربد صالحی

پیاده‌سازی CORS برای اَپ‌های موبایلی Ionic در Asp.Net Core

کارکرد SOP

فرض می‌کنیم از طریق یه مرورگر به وبسایت http://www.yyy.com مراجعه و در اون لاگین می‌کنیم، و این وبسایت هم شناسه‌ی این لاگین رو به صورت کوکی روی دستگاه ما ذخیره می‌کنه. تا زمانیکه این کوکی روی دستگاه ما ذخیره شده، هر وقت از این دستگاه و با همون مرورگر به این وبسایت مراجعه کنیم، با هر request این کوکی به این وبسایت ارسال میشه و وبسایت می‌تونه حساب کاربری ما رو بشناسه.

اما نکته اینجاست که حتی وقتی ما روی این دستگاه و با اون مرورگر مشخص، وبسایتی متفاوت مثل http://www.xxx.com  رو هم باز می‌کنیم، اگه این وبسایت در بخشی از عملیاتش یه request‌ به دامنه‌ی yyy بفرسته، مثلا API اون رو فراخوانی کنه، باز هم مرورگر همه‌ی کوکی‌های ذخیره شده توسط وبسایت yyy، از جمله کوکی لاگین ما رو، بدون توجه به مبدا ارسال کننده request که در اینجا xxx هستش، به yyy ارسال می‌کنه. در واقع مرورگر برای ارسال کوکی‌ها، به مقصد request توجه می‌کنه و نه ارسال‌کننده‌ی request. به این ترتیب وبسایت yyy ممکنه request ارسالی از سمت وبسایت xxx رو ارسال شده از طرف حساب کاربری ما در yyy تشخیص بده و اطلاعات محرمانه‌ی ما رو برگردونه یا دسترسی‌هایی به این وبسایت بده که نباید. 

سیاست مرورگرهای امروزی برای جلوگیری از این مشکل، Same Origin Policy یا "SOP" هستش. به طور کلی این سیاست به این صورت پیاده میشه که اسکریپت‌های بارگذاری شده توسط یک «منشاء»، نمی‌تونن به منابعی مثل API از منشاء متفاوت دسترسی داشته باشن. اما معیار یکسان بودن منشاء چیه؟

وقتی دو منبع دارای "scheme"، "host" و "port" کاملا یکسان باشند، اونوقت دارای منشاء یکسان درنظر گرفته میشن. به نظرم درک سریع موضوع با دیدن سه دسته‌ی زیر با منشاء‌های متفاوت امکان‌پذیر خواهد بود. دوتای اول فقط scheme های متفاوت دارن (http , https)، سه تای بعدی host های متفاوت دارن (example, www.example, myapp.example) و دوتای آخری پورت‌های متفاوت (8080 و 80 که مقدار پیشفرضه). بنابرین هیچکدوم از سه دسته منشاء یکسانی ندارن.

 

 

حالا میشه متوجه شد که وقتی در حال توسعه‌‌ی یه برنامه روی سیستم خودمون هستیم، با اینکه "backend"  و "frontend" هر دو دارن روی http://localhost اجرا میشن، چرا در حالت پیش فرض frontend  نمی‌تونه API رو از backend فراخوانی کنه. چون در واقع روی پورت‌های متفاوتی در حال اجرا هستن، یکی به فرض روی http://localhost:4200 و دیگری روی http://localhost:44353. بنابراین طبق توضیحات بالا منشاء یکسانی ندارن، با اینکه پروتکل (http) و host اونها (localhost) یکسانه. 

 

کارکرد CORS

گاهی لازم میشه که از محدودیت‌های اعمال شده بوسیله‌ی SOP کم کنیم. مثلا یه اپ تحت وب با انگولار نوشتیم و روی دامنه‌ی https://www.aaa.com قرار دادیم که باید API قرار گرفته روی دامنه‌ای با منشاء متفاوت مثل https://api.aaa.com رو فراخوانی کنه. برای این منظور از مفهوم Cross Origin Resource Sharing یا "CORS" استفاده می‌کنیم. در واقع ما با استفاده از CORS به تعدادی از دامنه‌ها اجازه‌ی عبور از محدودیت‌های اعمال شده بوسیله‌ی SOP رو میدیم. برای این کار، اگه API رو با Asp.Net Core پیاده کرده باشیم، در فایل "Startup.cs" و در تابع "ConfigureServices" خواهیم داشت:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddPolicy("AllowMyOrigin",
                builder => builder.WithOrigins("https://www.aaa.com").AllowAnyHeader());
            });

           ....
        }

در واقع ما یه Policy با اسم دلخواه "AllowMyOrigin" که هر اسم دیگه‌ای هم می‌تونه باشه تعریف کردیم که میگه به "https://www.aaa.com" اجازه‌ی دسترسی به API رو بده، با اینکه منشاء متفاوتی داره. حالا در همون فایل و در تابع "Configure" این Policy رو اِعمال می‌کنیم:

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            ....

            app.UseCors("AllowMyOrigin");

            .....
        }

به این ترتیب، محدودیت SOP برای https://www.aaa.com برداشته میشه. 

 

CORS برای اپ Ionic

می‌دونیم که SOP عملا برای برنامه‌‌هایی که روی مرورگر اجرا میشن مهمه و در واقع اپ‌های native موبایل دچار محدودیت در این زمینه نیستن. برنامه‌های تحت ‌وب هم که یه دامنه‌ی مشخص دارن و دیدیم که می‌تونیم  این دامنه رو استثنا کنیم. اما اپ‌های موبایل تولید شده با Ionic با توجه به «هیبریدی» بودنشون چه وضعی دارن؟

می‌دونیم که اپ‌های Ionic عملا داخل WebView اجرا میشن. بنابراین نه مثل برنامه‌های تحت وب تو دامنه‌ی مشخصی قرار دارن که اون رو استثنا کنیم،‌ و نه کاملا native هستن که SOP شاملشون نشه. بر طبق مستندات وبسایت Ionic، برای رفع این مشکل میشه از روش زیر استفاده کرد:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddPolicy("AllowMyOrigin",
                builder => builder.WithOrigins("capacitor://localhost", // capacitor: ios
                                               "http://localhost",      // capacitor: android | ionic webview 3.x on cordova: android
                                               "ionic://localhost",     // ionic webview 3.x on cordova : ios
                                               "http://localhost:8080", // ionic webview 2.x on cordova : ios & android
                                               ).AllowAnyHeader());

            });

            ....
        }

 

در واقع به جای اینکه یه دامنه خاص رو استثنا کنیم، چهار منشاء بالا رو که هرکدوم یک یا چند حالت رو برای اپ‌های Ionic پوشش میدن استثنا می‌کنیم و به این ترتیب محدودیت SOP برای اپ‌های Ionic برداشته میشه. 

۰ نظر
فربد صالحی