شرط بندی فوتبال : بازار دستگاه GaN RF با 18٪ CAGR از 891 میلیون دلار در سال 2020 به 2.4 میلیارد دلار در سال 2026 رشد می کند


سایت شرط بندی فوتبال
بهترین سایت شرط بندی
سایت شرط بندی معتبر فوتبال

11 ژوئن 2021

بازار دستگاه های فرکانس رادیویی نیترید گالیم (GaN) (GaN) با نرخ رشد سالانه مرکب (CAGR) 18٪ از 891 میلیون دلار در سال 2020 به بیش از 2.4 میلیارد دلار تا سال 2026 در حال افزایش است ، یول دپولپمنت تحلیلگر بازار در گزارش خود پیش بینی کرد بازار GaN RF: برنامه ها ، بازیکنان ، فناوری و بسترهای 2021 ‘. پیش بینی می شود ، بازار تحت کنترل برنامه های دفاعی و 5G زیرساخت مخابراتی باشد ، به ترتیب 49 و 41 درصد از کل بازار را نشان می دهد. به طور خاص ، بخش کلان / ریز سلول های مستقر در GaN بیش از 95 درصد از بازار زیرساخت های مخابراتی GaN را در سال 2026 نمایندگی می کند.

در صنعت RF GaN ، همه چیز با فناوری GaN-on-SiC (گالیم نیترید روی کاربید سیلیکون) شروع شد. GaN-on-SiC که بیش از 20 سال پیش راه اندازی شد ، اکنون یک رقیب جدی برای LDMOS سیلیکون و آرسنید گالیم (GaAs) در برنامه های برق RF است. تحت سلطه فناوری GaN-on-SiC ، ادغام عمودی زنجیره تأمین در هر دو برنامه دفاعی و 5G مخابرات ترجیح داده شده است. Ezgi Dogmus PhD ، تحلیلگر ارشد تیم در زمینه فعالیت های نیمه هادی مرکب و بسترهای نوظهور در این باره می گوید: “با توجه به بازار درحال ظهور GaN RF ، سرمایه گذاری های قابل توجه در سال های اخیر شکل دهنده رابطه آینده بین تقاضا و عرضه است ، که مهم است که از نزدیک تماشا کنید.” بخش برق و بی سیم. “GaN-on-SiC بستر اصلی فناوری است. رهبر بازار در سطح دستگاه ، SEDI [Sumitomo Electric Device Innovations]، برای یکپارچه سازی عمودی با تامین کننده پیشرو ویفر SiC ، II-VI همکاری کرده است. ”

فناوری GaN-on-SiC که توسط بخش مخابراتی و دفاعی 5G هدایت می شود ، از نظر چگالی توان بالا و هدایت حرارتی ، همچنان ترجیح داده می شود. GaN-on-SiC علاوه بر نفوذ عمیق در رادارهای نظامی ، همچنین انتخاب OEM های مخابراتی مانند Huawei ، Nokia ، Samsung برای زیرساخت های عظیم MIMO 5G بوده است. دستگاه های GaN-on-SiC به دلیل پهنای باند و کارایی بالا ، از LDMOS در بازار 5G سهم خود را می گیرند و از انتقال پلت فرم ویفر 6 اینچی بهره مند می شوند. در این زمینه ، بازار دستگاه های GaN-on-SiC با 17 درصد CAGR از 342 میلیون دلار در سال 2020 به 2.222 میلیارد دلار در سال 2026 در حال رشد است.

در سال 2020 ، NXP اولین پارچه GaN-on-SiC 6 “ویفر جهان را در آریزونا ، ایالات متحده آغاز کرد. انتقال از بسترهای 4 “به 6” برای GaN-on-SiC ادامه دارد و انتظار می رود در سالهای آینده تسریع شود. در سطح ریخته گری ، بازیگران بزرگی مانند نیمه هادی WIN تایوان ظرفیت خود را برای تأمین تقاضای روزافزون بازار گسترش می دهند. علاوه بر این ، انگیزه زیادی برای استقلال فناوری در اکوسیستم چین وجود دارد ، به عنوان مثال در SICC ، CETC ، HiWafer و Sanan IC. به ویژه ، SICC چین در کارخانه 6 اینچی جدید در شانگهای سرمایه گذاری کرده است.

Poshun Chiu ، تحلیلگر فناوری و بازار ، متخصص در نیمه هادی مرکب و Substrates در حال ظهور ، یادداشت می کند: “با این حال ، GaN-on-Si هنوز به عنوان یک رقیب اصلی ، در بازی است و راه حل های مقرون به صرفه و مقیاس پذیر را نوید می دهد.” Chiu اضافه می کند: “علیرغم حجم کم بازار از سه ماهه دوم 2021 ، PA-Ga-on-Si به دلیل پهنای باند زیاد و ضریب شکل کوچک ، OEM های گوشی های هوشمند را جذب می کند.” “تصویب آن در برخی از مدل های گوشی های زیر 6 گیگاهرتز 5G به دنبال پیشرفت چشمگیر فناوری بازیکنان نوآور ، به زودی انجام می شود. این قطعاً می تواند یک نقطه عطف برای صنعت RF GaN-on-Si باشد. ”

GaN-on-Si دائماً افراد تازه وارد را جذب می کند. Selsabil Sejil ، دکترای فناوری ، تحلیلگر فناوری و بازار ، متخصص در نیمه هادی های مرکب و بسترهای نوظهور ، می گوید: “در حالی که توسعه MACOM-STMicroelectronics on 6” platform در حال انجام است ، GlobalFoundries و Raytheon اخیراً اعلام کردند که برای هدف قرار دادن برنامه های بی سیم 5G ، دفاعی و فراتر از آن همکاری می کنند. “برای تأمین تقاضای روزافزون ، تازه واردان با توانایی تازه ساخته شده در حال پیوستن هستند.”

یول می گوید ، ورود اخیر کارخانه های ریخته گری و هم افزایی با صنایع الکترونیکی در حال ظهور صنعت GaN-on-Si همچنین می تواند به GaN-on-Si RF کمک کند تا در طولانی مدت شتاب بیشتری بگیرد. به گفته یول ، بازار دستگاه های GaN-on-Si با هدایت گوشی ها بلکه از طریق برنامه های دفاعی و زیرساخت های مخابراتی 5G ، با رشد CAGR 86٪ از کمتر از 5 میلیون دلار در سال 2020 به 173 میلیون دلار در سال 2026 رسیده است.

برچسب ها: GaN RF

بازدید: www.i-micronews.com


سایت شرط بندی
سایت پیشبینی
سایت شرط بندی معتبر

شرط بندی فوتبال : مارموت ها به دوستان تربیت شده اسیر خود می آموزند که چگونه در طبیعت زندگی کنند


سایت شرط بندی فوتبال
بهترین سایت شرط بندی
سایت شرط بندی معتبر فوتبال

جوردین الگر ، نگهدارنده مارموت ، که از کوه کوه واشنگتن در جزیره ونکوور می گذرد ، گیج شده است. او می گوید: “من قبلاً هرگز مارموتی را هنگام قدم زدن در اینجا ندیده ام.” علی رغم تجهیزات ردیابی رادیویی ، این بعد از ظهر گرم ژوئیه کوتاه آمده است. اما در حالی که الجر صحبت می کند ، گویی برای پاداش خوش بینی اش ، مارموی وحشی برچسب خورده ای بر روی چوبی ظاهر می شود و ما را چشم دوخته است.

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

این گونه از پنج گونه مارموتای آمریکای شمالی – و 14 گونه دیگر در سراسر جهان – با خز قهوه ای تیره متمایز می شود. تغییرات چشم انداز ، که اغلب به درختانی که به فضاهای باز مورد نظرشان حمله می کنند ، در جزیره ونکوور در طول قرن 20 پیوند داده می شود ، زیستگاه کوهستان مارموت ها را از هم پاشید و جمعیت را به انزوا کشاند. تا سال 2003 ، کمتر از 30 نفر در طبیعت باقی مانده بودند و آنها بسیار پراکنده بودند به طوری که بسیاری نتوانستند جفت پیدا کنند.

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

چینی جکسون ، هماهنگ کننده میدانی در بنیاد بازیابی مارموت ، توضیح می دهد: “این مارموت های نژاد اسیر وقتی آنها را در طبیعت رها می کنیم چالش های بسیاری دارند.” مارموت های نژاد اسیر و بدون تجربه از دنیای خارج ، نمی دانستند که چگونه حفره های خواب زمستانی را حفر کنند ، تا چه حد می توانند پرسه بزنند یا چگونه به شکارچیان پاسخ دهند. جکسون می گوید: “همه چیز برای آنها جدید است.” آنها غرایز درستی دارند ، اما برای یادآوری آنها نیاز به کمک دارند. بنابراین دانشمندان اولین و تنها مدرسه مارموت جهان را تأسیس کردند.

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

مارموت درست است که مشکوک است: تا پایان تابستان ، دوباره پس گرفته می شود و در مکان دیگری جابجا می شود. جابجایی ها به طرز چشمگیری موفقیت آمیز بوده است – نه تنها شش مستعمره تقویت شده جان سالم به در برده اند ، بلکه آنها چهار مورد دیگر را به تنهایی از بین برده اند. اکنون بیش از 200 مورد از این مارموت ها در طبیعت وجود دارد.

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


سایت شرط بندی
سایت پیشبینی
سایت شرط بندی معتبر

شرط بندی فوتبال : یک مثال عالی از زمانی که …

سایت شرط بندی فوتبال بهترین سایت شرط بندی سایت شرط بندی معتبر فوتبال

بازگشت به وبلاگ

07 مه 2021 15:44

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

اگر سوئدی هستید ، می توانید هرکدام از این فیدها را به حساب خود اضافه کنید تا 10 دقیقه پس از تغییر ، به صورت رایگان به روز شود: به روزرسانی های واکسن برای سوئد.

ما از خودمان استفاده کردیم هر ابزار وب سایت در منابعی که می توانیم پیدا کنیم ، و آن را در این لیست عمومی بسته بندی کنیم. از آنجایی که ما اهل سوئد هستیم ، کار خود را با سوئد آغاز کردیم ، اما دوست داریم این سرویس را برای مکان های بیشتر در دسترس قرار دهیم. چیزی مشابه می خواهید؟ برای ما پیوندهایی به صفحه آژانس های بهداشتی محلی خود ارسال کنید تا اطلاعات جدیدتری ایجاد کنیم. فقط آن را به ارسال کنید [email protected].

سالم ماندن!

مطالعه موردی: فیدر برای محققان دارویی

سایت شرط بندی سایت پیشبینی سایت شرط بندی معتبر

شرط بندی فوتبال : Bliki: RefinementCodeReview


سایت شرط بندی فوتبال
بهترین سایت شرط بندی
سایت شرط بندی معتبر فوتبال

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

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

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

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

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

اما بیشتر … همه. یک استثنا obvious آشکار در اینجا مسائل امنیتی است. کد می تواند برای سالها خوب کار کند تا زمانی که یک مهاجم سو finds استفاده را پیدا کند ، در آن زمان ما از عدم بررسی آن ابراز تاسف می کنیم. این نمونه ای از نگرانی های ایمنی با تأثیر بالا اما نادر است که شایسته بررسی دقیق است. اما این بدان معنا نیست که ما نباید از پالایش به عنوان مکانیزم بررسی کد استفاده آگاهانه کنیم. در عوض ، این بدان معناست که ما باید از نگرانی های نادر با تأثیر زیاد آگاه باشیم و جریان کار خود را تنظیم کنیم تا به دنبال آن نوع مشکل خاص باشیم ، به میزان مورد نیاز در شرایط خود ، تنظیم کنیم. تجزیه و تحلیل تهدید باید ماژول هایی را که نیاز به توجه بیشتر دارند و انواع خطرات آنها را تهدید می کند. بررسی کد هدفمند ممکن است برای نگرانی های امنیتی برنامه ریزی شود ، این موارد می توانند به طور م moreثرتری اجرا شوند زیرا روی نوع خاصی از مشکلات متمرکز هستند.

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

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

سپاسگزاریها

بن نوبل ، کریس فورد ، ایوان بوتچر ، ایان کارترایت ، جرمی هویسکامپ ، کن موگراژ ، ماریو جیامپیتری ، مارتا روته ، عمر بشیر ، پیتر گیلارد-ماس و سیمون برونینگ در مورد پیش نویس های این پست در لیست پستی داخلی ما اظهار نظر کردند.


سایت شرط بندی
سایت پیشبینی
سایت شرط بندی معتبر

شرط بندی فوتبال : اجاره


سایت شرط بندی فوتبال
بهترین سایت شرط بندی
سایت شرط بندی معتبر فوتبال

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

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

کلاس ReplicatedKVStore

  public void onBecomingLeader() {
      leaseTracker = new LeaderLeaseTracker(this, new SystemClock(), server);
      leaseTracker.start();
  }

رهبر یک کار برنامه ریزی شده را شروع می کند تا دوره ای مدت انقضا اجاره را بررسی کند

کلاس LeaderLeaseTracker

  private ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
  private ScheduledFuture<?> scheduledTask;
  @Override
  public void start() {
      scheduledTask = executor.scheduleWithFixedDelay(this::checkAndExpireLeases,
              leaseCheckingInterval,
              leaseCheckingInterval,
              TimeUnit.MILLISECONDS);

  }

  @Override
  public void checkAndExpireLeases() {
      remove(expiredLeases());
  }

  private void remove(Stream<String> expiredLeases) {
      expiredLeases.forEach((leaseId)->{
          //remove it from this server so that it doesnt cause trigger again.
          expireLease(leaseId);
          //submit a request so that followers know about expired leases
          submitExpireLeaseRequest(leaseId);
      });
  }

  private Stream<String> expiredLeases() {
      long now = System.nanoTime();
      Map<String, Lease> leases = kvStore.getLeases();
      return  leases.keySet().stream()
              .filter(leaseId -> {
          Lease lease = leases.get(leaseId);
          return lease.getExpiresAt() < now;
      });
  }

پیروان ردیاب اجاره بدون عملیات را شروع می کنند.

کلاس ReplicatedKVStore

  public void onCandidateOrFollower() {
      if (leaseTracker != null) {
          leaseTracker.stop();
      }
      leaseTracker = new FollowerLeaseTracker(this, leases);
  }

اجاره نامه به شرح زیر ارائه می شود:

public class Lease implements Logging {
    String name;
    long ttl;
    //Time at which this lease expires
    long expiresAt;

    //The keys from kv store attached with this lease
    List<String> attachedKeys = new ArrayList<>();

    public Lease(String name, long ttl, long now) {
        this.name = name;
        this.ttl = ttl;
        this.expiresAt = now + ttl;
    }

    public String getName() {
        return name;
    }

    public long getTtl() {
        return ttl;
    }

    public long getExpiresAt() {
        return expiresAt;
    }

    public void refresh(long now) {
        expiresAt = now + ttl;
        getLogger().info("Refreshing lease " + name + " Expiration time is " + expiresAt);
    }

    public void attachKey(String key) {
        attachedKeys.add(key);
    }

    public List<String> getAttachedKeys() {
        return attachedKeys;
    }
}

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

کلاس ReplicatedKVStore

  private ConcurrentHashMap<String, Lease> leases = new ConcurrentHashMap<>();
@Override
public CompletableFuture<Response> registerLease(String name, long ttl) {
    if (leaseExists(name)) {
        return CompletableFuture
                .completedFuture(
                        Response.error(Errors.DUPLICATE_LEASE_ERROR,
                            "Lease with name " + name + " already exists"));
    }
    return server.propose(new RegisterLeaseCommand(name, ttl));
}

private boolean leaseExists(String name) {
    return leases.containsKey(name);
}

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

کلاس LeaderLeaseTracker

  private Map<String, Lease> leases;
  @Override
  public void addLease(String name, long ttl) throws DuplicateLeaseException {
      if (leases.get(name) != null) {
          throw new DuplicateLeaseException(name);
      }
      Lease lease = new Lease(name, ttl, clock.nanoTime());
      leases.put(name, lease);
  }

شکل 1: ثبت اجاره نامه

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

کلاس LeaderLeaseTracker

  @Override
  public void refreshLease(String name) {
      Lease lease = leases.get(name);
      lease.refresh(clock.nanoTime());
  }

درخواست های تازه سازی فقط به رهبر هسته سازگار ارسال می شود ، زیرا فقط رهبر مسئول تصمیم گیری در مورد انقضا قرارداد اجاره نامه است.

شکل 2: تجدید اجاره نامه

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

کلاس LeaderLeaseTracker

  public void expireLease(String name) {
      getLogger().info("Expiring lease " + name);
      Lease removedLease = leases.remove(name);
      removeAttachedKeys(removedLease);
  }

شکل 3: انقضا اجاره

پیوستن اجاره نامه به کلیدهای موجود در مقدار ذخیره کلید

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

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

consistentCoreClient.registerLease("server1Lease", TimeUnit.SECONDS.toNanos(5));

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

consistentCoreClient.setValue("/servers/1", "{address:192.168.199.10, port:8000}", "server1Lease");

هنگامی که Consistent Core پیام ذخیره کلید را در ذخیره مقدار کلید خود دریافت می کند ، کلید مورد اجاره مشخص را نیز ضمیمه می کند.

کلاس ReplicatedKVStore

  private ConcurrentHashMap<String, Lease> leases = new ConcurrentHashMap<>();

کلاس ReplicatedKVStore

  private Response applySetValueCommand(Long walEntryId, SetValueCommand setValueCommand) {
      getLogger().info("Setting key value " + setValueCommand);
      if (setValueCommand.hasLease()) {
          Lease lease = leases.get(setValueCommand.getAttachedLease());
          if (lease == null) {
              //The lease to attach is not available with the Consistent Core
              return Response.error(Errors.NO_LEASE_ERROR,
                      "No lease exists with name "
                              + setValueCommand.getAttachedLease());
          }

          lease.attachKey(setValueCommand.getKey());

      }
      kv.put(setValueCommand.getKey(), new StoredValue(setValueCommand.getValue(), walEntryId));

با انقضا قرارداد اجاره ، Consistent Core همچنین کلیدهای پیوست شده را از ذخیره ارزش کلیدی خود حذف می کند.

کلاس LeaderLeaseTracker

  public void expireLease(String name) {
      getLogger().info("Expiring lease " + name);
      Lease removedLease = leases.remove(name);
      removeAttachedKeys(removedLease);
  }
private void removeAttachedKeys(Lease removedLease) {
    if (removedLease == null) {
        return;
    }
    List<String> attachedKeys = removedLease.getAttachedKeys();
    for (String attachedKey : attachedKeys) {
        getLogger().trace("Removing " + attachedKey + " with lease " + removedLease);
        kvStore.remove(attachedKey);
    }
}


سایت شرط بندی
سایت پیشبینی
سایت شرط بندی معتبر

شرط بندی فوتبال : چگونه به راحتی یک تبلیغ ویدیویی در فیس بوک ایجاد کنیم کاربران در واقع مشاهده می کنند


سایت شرط بندی فوتبال
بهترین سایت شرط بندی
سایت شرط بندی معتبر فوتبال

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

19 نوامبر 2020

4 دقیقه خواندن

نظرات بیان شده توسط کارآفرین همکاران خودشان هستند.


طبق گفته های HubSpot ، تقریبا هشت میلیارد فیلم ها هر روز در فیس بوک مشاهده می شوند – و این فقط به فیلم های گربه ای محدود نمی شود. بازدیدها از محتوای ویدیوی پشتیبانی شده از سال 2016 به میزان قابل توجهی 258 درصد افزایش یافته است. اما حتی پس از نمایش ویدیوی شما در خبرخوان یک فرد ، حفظ توجه او هنوز هم دشوار است. یک بررسی توسط Locowise دریافت که به طور متوسط ​​، بیشتر مردم فقط یک سوم یک کلیپ مشخص را تماشا می کنند. تقریباً 53.2 درصد بینندگان 30 ثانیه تماشا می کنند.

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

روی مخاطب خود تمرکز کنید

در نظر بگیرید که چه کسی است است و چه نوع محتوایی برای آنها جذاب است. شما ممکن است با بودجه ای چند میلیون دلاری کار نکنید ، اما جزئیات ذهنی همچنان تفاوت ایجاد می کند.

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

فیلم های فیس بوک به طور کلی باید بر روی مخاطبان اول تلفن همراه متمرکز شود. تحقیق از VentureBeat نشان می دهد که بیش از 90٪ از کاربران فیس بوک در درجه اول از طریق دستگاه تلفن همراه خود به شبکه اجتماعی دسترسی دارند. با این حساب ، الف مطالعه موردی توسط بافر دریافت که تبلیغات ویدیویی فیس بوک باید از نسبت ابعادی مربعی استفاده کند ، زیرا این امر می تواند تا 35 درصد بازدید بیشتر و 100 درصد جذابیت بیشتر از فیلم های افقی داشته باشد. بخشی از این را می توان به این واقعیت نسبت داد که یک فیلم مربعی در واقع فضای بیشتری را در صفحه گوشی هوشمند اشغال می کند.

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

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

مربوط: 5 دلیل که مشاغل باید در ایجاد محتوای ویدیویی متمرکز شوند

هدف قرار دادن: “سس” ضروری

هیچ مقاله ای در مورد تبلیغات در فیس بوک بدون تأکید بر هدف قرار دادن مخاطب کامل است – و بله ، در تبلیغات ویدیویی به همان اندازه مهم است که محتوای دیگر دارد. هدف گذاری مناسب به شما کمک می کند ویدیو را در زمان مناسب برای تأثیر مطلوب در جلوی افراد مناسب قرار دهید.

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

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

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

این فرآیند در نهایت به شما امکان می دهد یک کانال فروش ایجاد کنید که در آن ویدیوها فقط جذابیت بیشتری نداشته باشند – آنها همچنین کاربران فیس بوک را به سمت خرید از نام تجاری شما سوق می دهند.

مربوط: 6 روش استفاده از داده های اجتماعی برای بازاریابی هدفمند

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

بارگذاری…


سایت شرط بندی
سایت پیشبینی
سایت شرط بندی معتبر

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


سایت شرط بندی فوتبال
بهترین سایت شرط بندی
سایت شرط بندی معتبر فوتبال

13 نوامبر 2020

BIOS مبتکر نورپردازی با محوریت انسان (HCL) (سیستم های نوآوری و بهینه سازی بیولوژیکی LLC) از کارلسباد ، کالیفرنیا (تأسیس شده از ناسا) و ارائه دهنده راه حل های روشنایی Lumileds LLC از سان خوزه ، کالیفرنیا ، ایالات متحده برای ایجاد یک LED SkyBlue جدید با یکدیگر متحد شده اند. عملکرد تراشه قبلاً موجود را دو برابر می کند. گفته می شود که ال ای دی 3030 میانه قدرت جدید به طور چشمگیری مانع توسعه لومن در هر دلار را برای تولیدکنندگان چراغ های روشنایی کاهش می دهد و مانع اصلی ارائه راه حل های روشنایی بهتر و سالم به بازار را از بین می برد.

Lumileds مهندسی LUXEON LED جدید را ارائه داد تا فناوری انحصاری SkyBlue Circadian BIOS را ارائه دهد. زیست شناسی سلولی انسان ده ها هزار سال است که نور طبیعی آسمان آبی را تشخیص داده و به آن واکنش نشان می دهد. با استفاده از علمی که از ناسا سرچشمه گرفت ، BIOS فناوری SkyBlue Circadian خود را ایجاد کرد که با یک گیرنده نوری غیر بصری در چشم درگیر می شود. ادعا می شود که ، در طول روز ، SkyBlue ریتم شبانه روزی را تقویت می کند ، هوشیاری را افزایش می دهد ، تمرکز را بهبود می بخشد و روحیه را تقویت می کند و در عصر ، فضای گرمتری ایجاد می کند که باعث تولید طبیعی ملاتونین می شود و منجر به خواب بهتر در شب می شود.

Lumileds می گوید ، از طریق ارتباط با BIOS ، مهندسی ، فسفر ، ساخت و تخصص راه حل را به اکوسیستم روشنایی انسان محور می آورد. رئیس بازاریابی Lumileds ، ویلم سیلویس-اسمیت می گوید: “ما قادر به تولید دو برابر لومن در بسته 3030 خود هستیم و می توانیم عملکرد سیستم را از 110 به 160 لومن در هر وات افزایش دهیم.” وی می افزاید: “این می تواند مواد را کاهش دهد ، تخفیفات برنامه های کاربردی را به بازی بگیرد و در نهایت قیمت گذاری کاربر نهایی را کاهش دهد.”

گفته می شود ، اکنون بیش از 30 شریک BIOS Illuminated و آنهایی که منتظر عبور از شکاف فناوری HCL LED بوده اند ، می توانند با اطمینان به LED ها ، نمونه کارهای خود را در این بازار مهم بسازند. این بازار در حال توسعه موجب افزایش انتخاب مصرف کننده ، کاهش هزینه های کاربر نهایی و در نهایت افزایش بهره وری ، بهبود جسمی ، روحی و روانی و بهبود کیفیت خواب برای افراد در سراسر جهان می شود.

لری چاپین ، مدیر ارشد محصولات در HE Williams Inc ، یک شریک BIOS Illuminated ، اظهار داشت: “همکاری ما با BIOS به ما امکان می دهد تا تقاضای روزافزون برای راه حل های روشنایی با عملکرد بالا را که از سلامت شبانه روزی پشتیبانی می کنند ، برطرف کنیم.” وی افزود: “رابطه BIOS ایجاد شده با Lumileds باعث تقویت زنجیره تأمین و در نتیجه کاهش زمان هدایت و انعطاف پذیری بیشتر برای شرکای نصب شده آنها خواهد شد.”

برچسب ها: براق

بازدید: www.lumileds.com

بازدید: www.bioslighting.com


سایت شرط بندی
سایت پیشبینی
سایت شرط بندی معتبر

شرط بندی فوتبال : افکار نوشتن یک اسکریپت Google App


سایت شرط بندی فوتبال
بهترین سایت شرط بندی
سایت شرط بندی معتبر فوتبال

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

Google Sheets یک بستر عالی برای افراد غیر برنامه نویس است

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

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

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

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

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

سخت ترین قسمت احراز هویت است

“منطق تجارت” در متن ها بسیار آسان بود. لیست اعضای موجود در کانال Slack خود را با اعضای ثبت شده در Patreon یا در لیست جداگانه خود مقایسه کنید. سپس از این مقایسه برای تولید لیست افرادی برای افزودن یا حذف از Slack استفاده کنید. تمام آنچه که لازم بود این بود که ایمیل ها را از لیست ها بیرون بکشید و چند عمل تفاوت را انجام دهید.

بخش اصلی دریافت لیست ها بود ، نه به معنای واکشی آنها از REST URL (که باز هم آسان است) ، بلکه برای جلب رضایت خدماتی است که اسکریپت برای دریافت این داده ها مجاز است. هر دو سرویس از OAuth برای مرتب سازی احراز هویت استفاده می کنند ، اما این استاندارد حتی با کتابخانه ای که اسکریپت های Google App ارائه می دهد هیچ نشانه ای از تمیز کردن و پخش آن نیست.

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

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

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

مستندات Google غیر صفر است

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

سازماندهی صفحه گسترده

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

با توجه به این کمبود ، من با غریزه همیشگی ام رفتم. اولین غریزه این است که داده ها را با حداقل دستکاری در فروشگاه محلی بارگیری کنید. بنابراین اسکریپت من برای بارگیری داده ها از slack کاری بیش از انتخاب زمینه های مورد نظر من و ریختن آنها در یک صفحه صفحه گسترده نبود. به همین ترتیب صفحه من از داده های Patreon یک بارگذاری ساده از پرونده CSV را از Patreon فرض می کند. هر دو این صفحات برای پاک کردن و جایگزینی کل صفحه هنگام تازه سازی ساخته شده اند. صفحه سوم فقط شامل لیستی از موارد استثنائی است که توسط دست نگهداری می شود. هر سه این صفحات ، داده های خالص داده ها ، یک جدول واحد ، عناوین در ردیف 1 ، بدون فرمول هستند. اسکریپت مقایسه از این سه صفحه داده خوانده می شود ، منطق کاربرد (ساده) را انجام می دهد و دو لیست را به یک صفحه خروجی جداگانه منتقل می کند.

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

از appendRow برای افزودن ردیف ها استفاده نکنید

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

با شکار در اطراف API ، دیدم که بسیاری از عملیات صفحه گسترده به تعیین دامنه در صفحه گسترده بستگی دارد. من با استفاده از یک ردیف جدید اضافه می کردم
Sheet.appendRow، اما اگر محدوده ای را تعریف کنم (که می تواند کل صفحه باشد) ، می توانم استفاده کنم Range.setValues بجای. هنگامی که من این کار را کردم ، اضافه کردن ردیف ها به طور فوری انجام شد. من هیچ نکته ای در اسناد یا جای دیگری در وب برای آزمایش این مورد پیدا نکردم ، این مهم از آنجاست که کمبود این نوع اسناد مانع استفاده گسترده مردم از این سیستم عامل است.

به جستجوی API اجازه دهید چندین مقدار را جستجو کند

همانطور که در بالا ذکر کردم ، به دلیل مشکلات موجود در احراز هویت ، در نهایت از رابط REST برای داده های Patreon استفاده نکردم. اما دلیل دیگری برای حمایت از بارگیری CSV وجود داشت. Patreon API منبعی را شامل می شد که به من می گوید همه افرادی که طرفدار یک کمپین هستند ، برای این افراد شناسه Patreon و نام آنها را به من می دهد. اما برای بررسی صحیح لیست slack ، به ایمیل آنها نیز احتیاج داشتم. که من می توانم با گرفتن یک منبع نمایه شده توسط شناسه ، به دنبال آن باشم. با این حال لازم است که این کار را برای چند صد نفر انجام دهم ، و برای هر یک از آنها یک GET جداگانه لازم دارم.

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

من دوست دارم منطق برنامه را از صفحه گسترده IO جدا کنم

روش دستیابی به داده ها از صفحه گسترده استفاده از ستون و سطرهای مرسوم صفحه گسترده است (به عنوان مثال سلول “B22” یا دامنه “A2: E412”). این برای بسیاری از وظایف اسکریپت نویسی منطقی است ، زیرا برنامه نویسان در مورد دستکاری سلولهای صفحه گسترده به این مسئله فکر می کنند.

من تمایل دارم که چیزها را متفاوت ببینم ، داده هایم را به صورت ساختارهای اصلی داده های جاوا اسکریپت ترجیح می دهم ، به ویژه اینکه می توانم از JavaScript استفاده کنم خط لوله جمع آوری
اپراتورهای موجود در آنها

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

extractData(sheetName, firstCol, lastCol, mapper) {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName)
  const numRows = sheet.getLastRow()
  const range = `${firstCol}1:${lastCol}${numRows}`
  return sheet.getRange(range).getValues().map(mapper)
}

سپس می توانم از آن با کدی مانند این استفاده کنم:

const mapper = row => ({email: row[3], name: row[0], slackId: row[1]})
slackData = this.extractData("raw-slack-download", "A", "D", mapper)

هنگامی که آن را وارد آرایه کردم ، فهمیدم که نتایج آسان است ، اگرچه مجبور شدم یک مطلب ساده بنویسم Array.difference عملکردی که من به آن دسترسی نداشتم لوداش.

محیط توسعه قابل درک است

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

اگر کار پیچیده تری انجام می دادم ، در مورد ایجاد یک محیط بهتر تحقیق می کردم. یک احتمال این است که ببینم آیا می توانم اسکریپت را با استفاده از حالت عالی Tramp Emacs ویرایش کنم (که اجازه می دهد فایل های از راه دور را ویرایش کنید ، مثل اینکه آنها محلی هستند.) هنوز هم یک راه بهتر برای همگام سازی فایل های محلی با google drive ، به من اجازه می دهد تا آنها را حفظ کنم کد منبع در repo git. اما برای یک کار ساده مانند این ، حدود 150 خط کد ، ارزش بررسی این مسئله را نداشت که آیا این امکان وجود دارد.

خلاصه

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



سایت شرط بندی
سایت پیشبینی
سایت شرط بندی معتبر