شرط بندی فوتبال : 3 کار ساده ای که می توانید برای ایجاد یک لیست ایمیل سالم و پر رونق انجام دهید


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

18 ژوئن 2021

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

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


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

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

بنابراین ، برای ایجاد لیستی سالم و شکوفا باید بر چه چیزی تمرکز کنید؟ بیایید برخی از مهمترین مراحل را بررسی کنیم.

مربوط: 4 راه برای جلوگیری از رفتن نامه های الکترونیکی به هرزنامه

1. افراد را وادار کنید تا تأیید کنند که می خواهند در لیست ایمیل شما باشند

ایجاد یک لیست ایمیل سالم به این معنی است که مشترکین شما عمداً در آن ثبت نام کرده اند. برای اطمینان از این موضوع ، از همه بخواهید که مشترک شدن در ایمیل های شما هستند. روش انتخاب دوگانه م mostثرترین روش است.

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

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

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

بنابراین ، اگر قبلاً این کار را نکرده اید ، این فرایند تأیید اشتراک را تنظیم کنید. انجام این کار در داشبورد ارائه دهنده خدمات ایمیل آسان است.

مربوط: ‘سوuseاستفاده از نامه های الکترونیکی’: آنها چیست و چگونه بر بازاریابی ایمیل شما تأثیر می گذارند

2. برای دسترسی به افراد واقعی از ReCAPTCHA استفاده کنید

هرزنامه ها برنامه های رایانه ای هستند که می توانند تعداد زیادی آدرس ایمیل (غالباً جعلی) را برای پستی ثبت نام کنند لیست ها. شما می توانید یک لیست سالم را مدیریت کنید و تعداد زیادی ثبت نام را دریافت کنید که اغلب با شکایت هرزنامه ، لغو اشتراک یا برگشت همراه است. به این دلیل است که یک ربات در آن ثبت نام کرده است.

بدیهی است که یک لیست سالم و پر رونق از مشترکین انسانی تشکیل می شود و ربات ها نیست. یکی از بهترین راه ها برای واقعی نگه داشتن همه چیز استفاده از ReCAPTCHA است. آیا آن آزمایشات ساده ای را که برای آزمایش ربات ها با آزمایش هوش انسان استفاده می شود ، می دانید؟ ReCAPTCHA CAPTCHA اختصاصی Google است و می توانید نصب آن را به راحتی.

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

3. از API اعتبار سنجی ایمیل استفاده کنید تا داده های بد را از لیست خود دور نگه دارید

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

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

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

اینها مسائلی است که نمی توانید در زمان واقعی از آنها جلوگیری کنید ، اما یک API اعتبارسنجی ایمیل این کار را می کند. هنگامی که گزینه opt-in و ReCAPTCHA را تنظیم کردید ، افزودن این نرم افزار به فرم های شما تضمین می کند لیست شما برای مدت طولانی تری سالم می ماند.

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

نکته پاداش: به طور منظم کل لیست خود را به صورت عمده بررسی کنید

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

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

تمرکز یک لیست ایمیل معتبر انتخاب شده از افرادی است که واقعاً می خواهند با شما تعامل داشته باشند.

مربوط: چرا ایمیل مارکتینگ برای تجارت شما بهتر از شبکه های اجتماعی است


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

شرط بندی فوتبال : بازار دستگاه 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


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

شرط بندی فوتبال : Mind the platform execution gap


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

Leaders of software development organisations are under great pressure to
ensure that their employees spend their time on value-adding activities. One
way to achieve this is to use SaaS to outsource functionality that isn’t
part of their organisation’s core business. Another way is to consolidate
infrastructure capabilities required by many teams and services into a
digital platform (which might in turn rely upon SaaS and cloud providers).
Usually, internal platforms are curated combinations of internally developed
and externally procured capabilities.

Evan Bottcher has a great description of the key elements of a digital
platform:

A digital platform is a foundation of self-service APIs, tools,
services, knowledge and support which are arranged as a compelling
internal product.

Evan Bottcher

The purpose of a developer productivity platform is to allow teams who
build end-user products concentrate on their core mission. Examples of
platform services include delivery services like pipeline infrastructure,
application services like Kubernetes clusters, operational services like
monitoring and security services like vulnerability scanning software.
An internal platform team will usually take tools and services offered by
cloud providers and other vendors and host, adapt or extend them to make
them conveniently available to their software developer colleagues. The
aim is not to reinvent commercially available functionality (the world does
not need another homegrown Kubernetes) but to bridge the gap between what
you can buy and what is really needed (your teams may appreciate a
simplified Kubernetes experience that takes advantage of assumptions about
your infrastructure and makes it easier to manage).

These services are often infrastructure-heavy, but we regard this
as an implementation detail. We take a broad view of platform where
we include any internally provided tooling that promotes
developer effectiveness.
Following Evan’s definition, we embrace documentation and support as vital
aspects of a platform. We believe that a what-it-is-for rather than a
how-it-is-made view of platform is preferable because offering platform
services to internal teams is an institutionalised approach to reducing
friction. It is incumbent upon platform engineers to keep an open mind
about the best way to reduce that friction. Some days that will be
provisioning infrastructure. Other days it might be making a build script
a little easier to use or facilitating a workshop to help a team to define
their SLOs.

When well executed, a platform strategy promises to reduce costs and
allow product development teams to focus on innovation. When it goes
wrong, problems with the platform are passed directly onto the entire
software development organisation. In our work with clients, we have
observed that there is a substantial amount of industry enthusiasm
(otherwise known as hype) around building internal platforms, but we also
see a potential execution gap that has to be navigated.

A person leaving a train labelled 'hype train' beneath a warning saying 'Mind the gap!'.

Please mind the gap between the hype train and the platform.

Building an effective platform and an organisation to support it is a
worthwhile but ambitious goal that takes greater maturity than directly
provisioning infrastructure for services. As with other ambitious technical
maneuvers, for example microservice architectures, there are foundational
competencies that are prerequisites for sustainable success. They do not all
have to be mature before you embark on a platform journey, but you must have
the appetite and resolve to develop them along the way, otherwise your
digital platform is unlikely to deliver a return on the substantial
investment you will put into it.

Business value

The decision to commit to an internal developer productivity platform
is an economic one. The argument in favour depends on efficiency, quality
and time-to-market benefits exceeding the financial, talent and
opportunity costs incurred in its construction and evolution. If you can’t
articulate the business case for your platform, then you aren’t in a
position to responsibly adopt it. Your calculations must take into account
the capabilities of commercially available services because unless your
platform offers features, specificity to your context or convenience that
a commercial offering cannot, you may be better off leaving it to the
market and avoiding the maintenance burden – after all your platform
strategy depends upon reducing the amount of undifferentiated work, not
increasing it!

The decision to build a digital platform is only the beginning of your
responsibility to substantiate the business value of your digital
platform. The motivation for a platform strategy may be compelling at a
high level, but there are many fine-grained decisions involved in deciding
which features to offer and how to offer them. To complicate matters
further, the business justification for your features will shift over time
as the state of technology progresses, the needs of your organisation
evolve and cloud providers and other vendors release new and improved
offerings that compete with your homegrown solutions.

To deliver the promised value to your organisation, plan for a greater
proportion of continuous improvement versus product innovation than
end-user facing products. To keep the platform manageable and costs under
control, operability-related items must have a place of honour in the
backlog. Your users appreciate consistency, stability and dependability
over a stream of new features. Also, every product that you offer you must
some day deprecate in favour of a new product on the market, an internally
built successor or even devolving responsibility for the capability back
to your product development teams. Deprecation is a fundamental part of
the platform product lifecycle, and failure to consider it may undermine
the business benefits you hoped to gain by offering it in the first
place.

Product thinking

You must never forget that you are building products designed to
delight their customers – your product development teams. Anything that
prevents developers from smoothly using your platform, whether a flaw in
API usability or a gap in documentation, is a threat to the successful
realisation of the business value of the platform. Prioritise developer
experience – a product that no one uses is not a successful product, no
matter its technical merits. In order to achieve return on investment for
your internal platform, your product development teams need to use it and
use it well. For that to happen, they need to appreciate it, understand it
and be aware of its features. As Max Griffiths describes in his article
on Infrastructure as Product,
platform products require customer empathy, product ownership and
intelligent measurement, just like other kinds of product.

One advantage of internal products is that you have users that are
highly invested in your products’ evolution and success. Like any group of
customers, your colleagues will be a mixture of the skeptical, the neutral
and the enthusiastic. Harnessing the enthusiasts and helping them to
become early adopters and champions of the platform will greatly benefit
perception of the platform in your organisation. Communicating your
roadmap, accepting feedback and harvesting experiences from your users
will contribute to your platform’s ongoing relevance. Luckily, you all
work for the same organisation, so you have rich communication channels
available. Internal platforms need marketing. It won’t look the same as
marketing a product to the public, but it’s marketing nonetheless.

Maintaining goodwill is key to adoption. So if you have any unavoidable
outages, communicate them and perhaps adapt your plans to reduce impact on
your users. If something goes wrong and you have an outage (hint: you
will) then apology and transparency will reassure them. Resist the
temptation to rely on managerial mandates as an adoption strategy. You may
have captive users, but compelling them to use products supposedly for
their own good does not foster a productive relationship.

Operational excellence

When you adopt an internal platform, you ask your product development
teams for a great deal of trust. Your platform is now a key dependency of
the systems your organisation uses to fulfill its function. Your
operational competence needs to be sufficient to justify that trust.

This means that your platform teams need to have a sound grasp of the
fundamentals of software infrastructure, like networking, scaling and
disaster recovery. If your platform engineering teams have difficulty with
the underlying technology, they will not build robust products for your
product development teams. Furthermore, modern operational excellence
extends beyond infrastructure and into practices that ensure reliability.
The book Site Reliability
Engineering
is a good account of the state of the art in this area.
If your platform organisation doesn’t have skills in SRE practices like
observability, monitoring and SLOs, not only are you at risk of breaking
the trust of your product teams, you are at risk of doing it and not
knowing that you did it.

Your platform organisation must also have the maturity to manage
incidents efficiently and to learn from them. Out-of-hours support,
alerting systems and blameless incident retrospectives should be a
priority. You may need to establish processes, modify wording on employer
contracts and budget for fair compensation to make this possible, as well
as make on-call a sufficiently pleasant
experience to encourage broad participation
. It will also affect
your planning. When you need to make significant changes, for example
migrations, you need to invest in making them gracefully so as to minimise
downtime for your users.

Software engineering excellence

A platform organisation is not just an operations department, so it
needs more than operational capabilities. Even if you do not plan on
writing substantial custom applications, your scripts, templates and
configuration files will rapidly accumulate complexity. If you want to
retain the ability to quickly and safely change your platform, you need to
build it the right way.

Our favourite summary of software engineering excellence in an
infrastructure context are the three core practices of infrastructure as
code, as defined by Kief Morris in his book
Infrastructure as Code
:

  • Define everything as code
  • Continuously test and deliver all work in progress
  • Build small, simple pieces that you can change independently

If your organisation is able to consistently apply these practices,
it’s much more likely to be able to execute on your platform vision.
Without them, you may be able to get your infrastructure into a good state
at a point in time, but you will not be able to sustain the pace of
evolution your development teams’ changing needs will demand.

Using internal products places demands on product development teams
too. Good product development teams are aware of the service levels
offered by their dependencies, factor them into their own designs and use
engineering practices to mitigate those risks that could impact their
service level objectives. This is even more important when those
dependencies are provided internally, because no matter how high quality
your platform is, it is unlikely to reach the level of polish of a
commercial SaaS provider.

Healthy teams

Individual skill is important, but sustaining excellence over the long
term requires strong team-level disciplines. When your platform systems
are depended upon by the rest of the business, it’s not acceptable for the
expertise to maintain them to be held only by a few busy individuals. You
need autonomous teams with clear missions who avoid individual code or
system ownership. They must invest in knowledge sharing, documentation and
onboarding. A single person winning the lottery should never be a threat
to the viability of your platform.

To keep these platform engineering teams productive, their systems for
planning work need to be mature. They must have backlogs of items
described in terms of their value and have processes for prioritisation,
otherwise the urgent may overwhelm the important. Incidents and unplanned
work are inevitable, but if too much of the team’s time is consumed with
toil, then it will never have the capacity to invest in the improvement of
its products. Teams should not try to manage too many platform products at
once.

We find the idea of cognitive load, as discussed in Matthew Skelton and
Manuel Pais’s book Team Topologies,
a useful one for keeping teams’ missions manageable. If a team constantly
switches context between completely different tasks, then the cognitive
load is too great and, when this happens, not only will the team be less
capable to undertake their day to day work, but it will also be difficult
for new team members to gain the confidence they need to work on all the
systems.

Getting started

If you do not already have these capabilities in your organisation,
does that disqualify you from adopting a platform strategy? How, you might
ask, are you supposed to build these capabilities without lessons
obtainable only from experience?

The secret is not to compromise on the quality of your execution, but
to be modest in the scope of your ambition – at first. A platform
initiative, no matter how small, should produce business value, be guided
by product thinking, be implemented with operational and software
engineering excellence and be backed by a team structure that can sustain
the new platform service. Anything less than that, and the boost you hoped
to deliver is likely to become a drag that tarnishes the reputation of
your fledgling platform with developers in your organisation.

Small, focused platform services targeted at well-understood parts of
your technology estate have a lower degree of difficulty. They don’t let
you off the hook for considering platform from a holistic perspective, but
they let you get started and build from there. For example, providing a
logging cluster that can ease the operational burden on product teams and
improve visibility across services has clear business value that does not
require sophisticated financial modelling to establish. It still requires
product thinking to ensure that it serves its customers (does its
availability, freshness and search UI meet the needs of the developers?)
but that product thinking does not need to have the maturity of that
required to, for example, offer a unified developer portal. And it still
requires software engineering, operational skill and a healthy team to do
well, though not as much as to, for example, build an observability
sidecar for all your organisation’s microservices.

The first question to ask yourself is what is the smallest thing
we can build
that would help the product teams?
The second is how could we upgrade or migrate away from this when the time
comes? The state of the art is evolving rapidly and vendor lock-in is no
less painful because the vendor is your very own organisation. If
deprecating your platform service would require a painful transition over
years, it is probably time to go back to the drawing board and simplify
your product. You do not need to have a detailed calendar and a plethora
of substitute technologies ready to go, but factoring in a realistic
lifetime (three to five years) and architectural seams for replacing
solutions will force your designs to be simpler and more decoupled.

We recommend that adoption of your platform be voluntary. This supports
your platform strategy in two ways. Firstly, when product teams have the
ability to opt out of platform services, it encourages you to keep your
services loosely coupled, which will benefit the platform when the time
comes to launch a new generation of the service or to replace it with a
commercial offering. Secondly, when your platform organisation is
dependent on product teams’ appreciation of the platform’s benefits, it
puts a strong pressure on your platform organisation to keep customer
delight at the forefront of their minds. Mandatory migration to the
platform is a shortcut that has the long-term risk of eroding your team’s
product thinking discipline.

You may find a simple classification system useful to set expectations
about the maturity of new platform features, for example to indicate that
a new feature is in beta. You might want to associate SLOs and support
tiers with the maturity classification as an experimental feature needs not
to offer the same high availability as a core feature or your platform. It
may not, for example, require round the clock support. Once the feature is
promoted to full support, users of the platform can expect SLOs strong
enough for them to build mission critical components on top of, but before
then a less demanding set of expectations gives the platform team freedom
to experiment and to validate their assumptions about the product before
making a strong (and long-term) commitment to it.

If you are able to keep the above in mind, you will have an additional
advantage. Your platform teams will manage small portfolios of very
effective products. Their cognitive load will be small and their focus
will be able to stay on continuously reducing the development teams’ time
to market instead of just on keeping the lights on.

Conclusion

Digital platforms are portfolios of technical products. Like all
products, platforms generate value through use. With the right underlying
business justification, careful product management and effective technical
execution, digital platforms succeed by reducing cognitive load on product
development teams and accelerating an organisation’s innovation. Platforms
take considerable investment in terms of money, talent and opportunity
cost. They repay this investment by positively impacting product
development teams’ ability to quickly and efficiently develop high quality
customer-facing products.

Developing a digital platform is a strategic decision and not to be
taken lightly. Besides the direct financial considerations, digital
platforms also exert pressure on the relationships within your
organisation. Product developers’ have experienced the offerings of
commercial cloud providers and to live up to those raised expectations
platform engineering teams must be mature in both product management and
technical implementation. Product development teams also have to learn to
be good partners of your platform organisation and accept their share of
responsibility for the operation of their services.

Digital platforms are force multipliers, so there is a fine line
between developing a competitive advantage and introducing a significant
productivity blocker. The decisions you make along the product lifetime
will determine whether you walk on one side or the other. The good news is
that just like with every other kind of software development, if you start
small, empathise with your customers, learn from your successes (and your
failures) and keep your overall vision in mind, you have every chance of
success.



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

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


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

4 مه 2021

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

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


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

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

1. ارسال اطلاعات بی ربط.

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

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

2. استفاده از We-Transfer برای ارسال تصاویر.

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

حتی نشریات کوچک نیز مملو از نامه های الکترونیکی و ارسالی مقاله هستند و معمول نیست که روزنامه نگاران روزانه دو صد ایمیل یا بیشتر دریافت کنند. این بدان معنی است که همیشه امکان باز کردن سریع و مقابله با همه آنها وجود ندارد. اگر خدمات برتر We-Transfer که پیوندها را زنده نگه می دارد تا زمانی که تصمیم به حذف آنها ندارید ، انتخاب نمی کنید ، بهتر است دو یا سه تصویر را در یک ایمیل با بیانیه مطبوعاتی یا مقاله واقعی پیوست کنید ، و آنها را در اندازه قابل کنترل نگه دارید . برای چاپ ، کمتر از 1 مگابایت jpgs و بالاتر از 5 مگابایت و به صورت آنلاین با pngs یا jpgs 1 مگابایت هدف قرار ندهید. بهتر است از ارسال پرونده های گسترده We-Transfer نیز خودداری کنید – با کلیک بر روی بارگیری ، فقط 900 مگابایت فهمیدید و برای همیشه طول می کشد وقتی فقط یک عکس کوچک می خواهید فشار خون حتی با حوصله ترین روزنامه نگار را افزایش دهد.

3. تعقیب سریع و مکرر برای دیدن اینکه آیا پوشیده شده است.

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

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

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

4. درخواست خبرنگاران برای ارسال پیوندها و قلمه ها.

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

5. زیرنویس نکردن تصاویر.

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

6. ارسال و پس گرفتن دعوت نامه ها.

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

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

7. ارسال اطلاعات خیلی دیر.

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

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

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

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

شما می خواهید به عنوان قابل اعتماد ، توانایی رعایت ضرب الاجل ها و کسی که خیلی سریع پاسخ می دهد شناخته شوید. تماس های روابط عمومی با این شهرت به مراتب بیشتر تحت تأثیر قرار می گیرند.

9. سخت کردن دسترسی به دارایی ها.

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

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

10. ارسال بیانیه های مطبوعاتی و زمینهای شنیع.

زمان برای همه ما ارزشمند است – و مطمئنا روزنامه نگارانی که در دنیایی از مهلت های قانونی کار می کنند. آنها به راحتی ساعات اوقات فراغت را برای خواندن بی شمار ندارند جنگ و صلحمطبوعات با طول هر روز منتشر می شود. بهترین نسخه ها کمتر از 500 کلمه دارند ، از امتیازات گلوله ای استفاده می شود ، آنها عنوان کوتاه دارند و از پنج یا شش روزنامه نگار مشهور پیروی می کنند – WHO ، WHAT ، WHERE ، WHEN و WHY (و چگونه).

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

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

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


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

شرط بندی فوتبال : بتا شماره 1 – فیدر برای Android

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

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

17 فوریه 2021 10:29

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

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

جدید چیست؟ یک جمع بندی

بیشترین درخواست ما – تم ها

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

مرور بصری – تصاویر

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

ناوبری اصلاح شده – اولین ارسال

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

آینده اثبات شده – بومی واکنش نشان دهید

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

و خیلی بیشتر…

مثل آنچه شما؟ مجموعه های خوب ، به اشتراک گذاری ویژگی ها ، کشف ، فونت های زیبا و خوب ، شما باید این را خودتان دریابید.

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

می خواهید وارد عمل شوید؟ برای آزمایش بتا اینجا ثبت نام کنید، و ما شما را قلاب خواهیم کرد.

نکات مهم فیدر: وبلاگ های پرطرفداری که با فیدر دنبال می شوند

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

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


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

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

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

کلاس 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);
    }
}


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

شرط بندی فوتبال : چگونه با خواندن RFC 1034 نیمی از روز هدر ندهیم


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

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

تنظیمات فعلی ما به خوبی کار می کند ، اما دارای دو عیب بزرگ است:

  • هر شاخه به ALB خاص خود نیاز دارد (این همان چیزی است که توسط منبع Ingress تولید می شود).
  • DNS است DNS است DNS است و بعضی اوقات طول می کشد تا تکثیر شود و ما نیاز به مدیریت یک رکورد (3-5 برای هر شاخه) داریم.

این خطاها بهم پیوسته است: اگر مجبور نباشم به هر شاخه ALB خود را بدهم ، می توانم از یک رکورد wildcard استفاده کرده و هر زیر دامنه را در دامنه اختصاصی شاخه خود به یک ALB هدایت کنم و اجازه دهم مسیر ALB کجا باشد آنها از طریق سرصفحه های میزبان تعلق دارند. این بدان معنی است که من می توانم بدون نیاز به همه آن ALB ها پس انداز کنم و می توانیم زمان DNS-DNS را به صفر برسانیم (و پیچیدگی های حاشیه نویسی و شرطی های خارجی-گسترش یافته در YAML ما).

(در حالی که چند دقیقه انتظار برای انتشار و حل DNS به نظر نمی رسد مشکل بزرگی باشد ، ما با بررسی اینکه واقعاً با استفاده از یک مسیر داخلی در نام میزبان جدید به محض اتمام ساخت استقرار ، باعث می شود که ما قبل از ایجاد رکورد و ذخیره سازی محلی دستگاه خود ، پاسخ NXDOMAIN را تا زمان انقضا TTL برای حل DNS حل کنیم.)

پیش از این ، این کار عملی بود ، اما به تلاش اضافی نیاز داشت که ارزش آن را نداشت – احتمالاً لازم است از طریق یک کنترل کننده سفارشی انجام شود که از اضافه کردن خدمات شما به یک شی object Ingress از طریق حاشیه نویسی های سفارشی مراقبت کند. این مسیر Fine ™ was بود (من حتی یک کنترل کننده اثبات مفهوم درست کردم که این کار را انجام داد) ، اما این بدان معنی بود که یک ابزار اضافی وجود دارد که اکنون باید مدیریت کنیم ، همراه با نیاز به ایجاد و مدیریت آن شی object اصلی Ingress .

وارد نسخه جدید کنترل کننده کنترل ورودی (و نام جدید آن است: aws-load-balancer-controller) که شامل یک جدید است IngressGroup ویژگی که دقیقا آنچه من نیاز دارم این مجموعه ای جدید از حاشیه نویسی را اضافه می کند که می توانم به Ingress خود اضافه کنم که باعث می شود همه منابع Ingress من قوانین هدایت یک ALB منفرد باشد نه ALB های منفرد.

“عالی!” با خودم فکر می کنم صبح که پروژه آزمایش نسخه جدید را شروع می کنم و می فهمم چگونه می خواهم این کار را انجام دهم (با استفاده از آن به عنوان فرصتی برای پاکسازی دسته ای از بدهی های فنی نیز).

من همه چیز را در جای خود قرار می دهم – من کنترل کننده aws-load-balancer-controller را در خوشه آزمایشی خود به روز کردم ، تمام سوابق ALIAS مخصوص شاخه را که برای ALB های قدیمی وجود داشت حذف کردم ، به خارجی-dns گفتم که دیگر منابع Ingress را مدیریت نکنید ، و یک کارت wildcal ALIAS راه اندازی کنید که با اشاره به ALB جدید من که همه این شاخه ها باید به اشتراک بگذارند

کار نمی کند

$ curl --header "Host: alb-v2.branch-deploy.com" https://alb-v2.branch-deploy.com
curl: (6) Could not resolve host: alb-v2.branch-deploy.com

اما اگر من مستقیماً با هدر میزبان مناسب با ALB تماس بگیرم ، این کار را انجام می دهد:

$ curl --header "Host: alb-v2.branch-deploy.com" --insecure https://internal-k8s-swiper-no-swiping.us-east-1.elb.amazonaws.com
<html><body>You are being <a href="https://alb-v2.branch-deploy.com/sign_in">redirected</a>.</body></html>

(╯ ° □ °) ╯︵ ┻━┻

من هیچ سرنخی ندارم که چه خبر است. من به وضوح می بینم که رکورد در Route53 وجود دارد ، اما من نمی توانم آن را به صورت محلی حل کنم ، و همچنین برخی از سرویس های تست DNS (. MX Toolbox) نمی تواند.

ممکن است گزینه “ارزیابی سلامت هدف” در کاراکتر وحشی باشد؟ آن را غیرفعال کرد و دوباره امتحان کرد ، هنوز چیزی نیست.

من کاملاً گیر افتاده و شروع به مرور سایت می کنم اسناد Route53 و این خط را پیدا کنید و فکر کنید این پاسخ به مشکل من است:

اگر رکوردی به نام * .example.com ایجاد کنید و سابقه.com ​​وجود ندارد ، مسیر 53 به درخواست های DNS برای مثال.com پاسخ می دهد با NXDOMAIN (دامنه ناموجود).

بنابراین ، من برای ایجاد رکورد برای branch-deploy.com می روم تا ببینم آیا شاید این باشد. اما هنوز این کار را انجام نمی دهد. این زمانی است که آن سطر را دوباره می خوانم و می فهمم که به هر حال برای من صدق نمی کند – من اولین بار آن را اشتباه خوانده بودم ، سعی نمی کنم شاخه-deploy.com را حل کنم. (خوانش اولیه من این بود که * .branch-deploy.com بدون وجود سابقه برای branch-deploy.com برطرف نمی شود).

Welp ، زمان کاوش در است RFC، چیزهای مبهمی وجود دارد که من اینجا گم کرده ام. تصور درست بود

RC های Wildcard اعمال نمی شوند:

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

– هنگامی که نام پرس و جو یا یک نام بین دامنه wildcard و نام query وجود داشته باشد. به عنوان مثال ، اگر یک wildcard RR دارای نام مالک “* .X” باشد ، و این منطقه همچنین حاوی RR های متصل به BX باشد ، کارتهای wild برای درخواستهای نام ZX اعمال می شوند (با فرض اینکه هیچ اطلاعات صریح برای ZX وجود ندارد) ، اما نه به BX ، ABX یا X.

هوم ، آن گلوله دوم به نظر سرب می رسد. بگذارید به منطقه Route53 خود برگردم و نگاه کنم.

ノ (゜ – ゜ ノ)

آه ، من آن را می بینم.

یکی از ویژگی های سیستم استقرار شعبه ما این است که شما همچنین می توانید خط لوله نامه پستی ویژه شعبه خود داشته باشید. برای استفاده از آن ویژگی ، ایمیل می کنید yourself@your-branch.branch-deploy.com. برای ساخت آن کار ، هر شعبه یک رکورد MX در سایت-branch.branch-deploy.com شما بدست می آورد.

در اینجا مسئله نهفته است. اگر می توانید یک رکورد wildcard برای branch-deploy.com داشته باشید ، اگر یک رکورد MX (یا هر رکورد دیگری واقعاً) برای یک زیر دامنه مشخص وجود داشته باشد و سعی کنید از-branch.branch-deploy.com خود ، A / AAAA / بازدید کنید. وضوح CNAME از درخت به حیوان وحش صعود نمی کند. 🙃

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




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

شرط بندی فوتبال : افکار نوشتن یک اسکریپت 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 یک سیستم عامل جذاب برای طیف وسیعی از کارهای ساده است. این به کاربران امکان می دهد بدون نیاز به نصب چیزی روی دستگاه خود ، کد را اجرا کنند ، داده ها را در یک محیط آشنا وارد کنند و از اشتراک آسان با همکاران پشتیبانی کنند. این یک پلتفرم نیست که من درباره آن بحث های زیادی می شنوم ، اما باید یکی از آنها را بخاطر بسپارم. به طور خاص ، برای هر کاری که یک اسکریپت پوسته ساده باشد ، اما کاربران شما با پنجره های کنسول و فایل های متنی راحت نیستند.



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

شرط بندی فوتبال : Don’t Compare Averages


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

Imagine you’re an executive, and you’re asked to
decide which of your sales leaders to give a big award/promotion/bonus to.
Your company is a tooth-and-claw capitalist company that only considers
revenue to be important, so the key element in your decision is who has got
the most revenue growth this year. (Given it’s 2020, maybe we sell
masks.)

Here’s the all-important numbers.

nameaverage revenue increase (%)
alice5
bob7.9
clara5

And a colorful graph

Based on this, the decision looks easy. Bob, at just under 8%, has a
notably better revenue increase than his rivals who languish at 5%.

But lets dig deeper, and look at the individual accounts for each of our
salespeeps.

nameaccount revenue increases (%)
alice-121-3-1101381110
bob-0.5-2.5-6-1.5-2-1.8-2.380
clara374.55.54.855.2465

This account-level data tells a different story. Bob’s high performance
is due to one account yielding a huge 80% revenue increase. All his other
accounts shrank. With Bob’s performance based on just one account,
is he really the best salespeep for the bonus?

Bob’s tale is a classic example of one the biggest problems with
comparing any group of data points by looking at the average. The usual
average, technically the mean, is very prone to one outlier swinging the
whole value. Remember the average net worth of a hundred homeless people is
$1B once Bill Gates enters the room.

The detailed account data reveals another difference. Although Alice and
Clara both have the same average, their account data tells two very
different stories. Alice is either very successful (~10%) or mediocre (~2%), while Clara
is consistently mildly successful (~5%). Just looking at the average hides this
important difference.

By this point, anyone who’s studied statistics or data visualization is
rolling their eyes at me being Captain Obvious. But this knowledge isn’t
getting transmitted to folks in the corporate world. I see bar charts
comparing averages all the time in business presentations. So I decided to
write this article, to show a range of visualizations that you can use to
explore this kind of information, gaining insights that the average alone
cannot provide. In doing this I hope I can persuade some people to stop only
using averages, and to question averages when they see others doing that.
After all there’s no point eagerly collecting the data you need to be a
data-driven enterprise unless you know how to examine that data
properly.

A strip chart shows all the individual numbers

So the rule is don’t compare averages when you don’t know what the
actual distribution of the data looks like. How can you get a good picture
of the data?

I’ll start with the case above, when we don’t have very many
data points. Often the best way to go for this is a strip chart, which
will show every data point in the different populations.

show code
ggplot(sales, aes(name, d_revenue, color=name)) +
  geom_jitter(width=0.15, alpha = 0.4, size=5, show.legend=FALSE) +
  ylab(label = "revenue increase (%)") +
  geom_hline(yintercept = 0) +
  theme_grey(base_size=30)

With this chart we can now clearly see the lone high point for Bob,
that most of his results are similar to Alice’s worst results, and that Clara
is far more consistent. This tells us far more than the earlier bar chart,
but isn’t really any harder to interpret.

You may then ask, how to plot this nice strip chart? Most people who
want to plot some quick graphs use Excel, or some other spreadsheet. I
don’t know how easy it is to plot a strip chart in the average
spreadsheet, as I’m not much of a spreadsheet user. Based on what I see in
management presentations, it may be impossible, as I hardly ever see one.
For my plotting I use R, which a frighteningly powerful statistics
package, used by people who are familiar with phrases like “Kendall rank
correlation coefficient” and “Mann-Whitney U test”. Despite this fearsome
armory, however, it’s pretty easy to dabble with the R system for simple
data manipulation and graph plotting. It’s developed by academics as
open-source software, so you can download and use it without worrying about
license costs and procurement bureaucracy. Unusually for the open-source
world, it has excellent documentation and tutorials to learn how to use
it. (If you’re a Pythonista, there’s also a fine range of Python libraries
to do all these things, although I’ve not delved much into that
territory.) If you’re curious about R, I have a
summary
in the appendix of how I’ve learned what I know about it.

If you’re interested in how I generate the various charts I show
here, I’ve included a “show-code” disclosure after each chart which shows
the commands to plot the chart. The sales dataframes
used have two columns: name, and d_revenue.

What if we have a larger number of data points to consider? Imagine our
trio are now rather more important, each handling a couple of hundred
accounts. Their distributions still, however show the same basic characteristics, and we
can see that from a new strip chart.

show code
ggplot(large_sales, aes(name, value, color=name)) +
  geom_jitter(width=0.15, alpha = 0.4, size=2, show.legend=FALSE) +
  ylab(label = "revenue increase (%)") +
  geom_hline(yintercept = 0) +
  theme_grey(base_size=30)

One problem with the strip chart, however, is that we can’t see the
average. So we can’t tell whether Bob’s high values are enough to
compensate for this general lower points. I can deal with this by plotting
the mean point on the graph, in this case as a black diamond.

show code
ggplot(large_sales, aes(name, value, color=name)) +
  geom_jitter(width=0.15, alpha = 0.4, size=2, show.legend=FALSE) +
  ylab(label = "revenue increase (%)") +
  geom_hline(yintercept = 0) +
  stat_summary(fun = "mean", size = 5, geom = "point", shape=18, color = 'black') +
  theme_grey(base_size=30)

So in this case Bob’s mean is a bit less than the other two.

This shows that, even though I often disparage those who use means to
compare groups, I don’t think means are useless. My disdain is for those
who only use means, or use them without examining the overall
distribution. Some kind of average is often a useful element of a
comparison, but more often than not, the median is actually the better
central point to use since it holds up better to big outliers like Bob’s.
Whenever you see an “average”, you should always consider which is better:
median or mean?

Often the reason median is such an under-used function is because our tooling
doesn’t encourage use to use it. SQL, the dominant database query
language, comes with a built-in AVG function
that computes the mean. If you want the median, however, you’re usually
doomed to googling some rather ugly algorithms, unless your database has
the ability to load extension functions. If
some day I become supreme leader, I will decree that no platform can have
a mean function unless they also supply a median.

Using histograms to see the shape of a distribution

While using a strip chart is a good way to get an immediate sense of
what the data looks like, other charts can help us compare them in
different ways. One thing I notice is that many people want to use The One
Chart to show a particular set of data. But every kind of chart
illuminates different features of a dataset, and it’s wise to use several
to get a sense of what the data may be telling us. Certainly this is true
when I’m exploring data, trying to get a sense of what it’s telling me.
But even when it comes to communicating data, I’ll use several charts so
my readers can see different aspects of what the data is saying.

The histogram is a classic way of looking at a distribution. Here are
histograms for the large dataset.

show code
ggplot(large_sales, aes(value, fill=name)) +
  geom_histogram(binwidth = 1, boundary=0, show.legend=FALSE) +
  xlab(label = "revenue increase (%)") +
  scale_y_continuous(breaks = c(50,100)) +
  geom_vline(xintercept = 0) +
  theme_grey(base_size=30) +
 facet_wrap(~ name,ncol=1)

Histograms work really well at showing the shape of a single
distribution. So it’s easy to see that Alice’s deals clump into two
distinct blocks, while Clara’s have a single block. Those shapes are
somewhat easy to see from the strip chart too, but the histogram clarifies
the shape.

A histogram shows only one group, but here I’ve shown several together
to do the comparison. R has a special feature for this, which it refers to
as faceted plots. These kind of “small multiples” (a term coined by
Edward Tufte) can be very handy for comparisons. Fortunately R makes them
easy to plot.

Another way to visualize the shapes of the distributions is a density
plot, which I think of as a smooth curve of a histogram.

show code
ggplot(large_sales, aes(value, color=name)) +
  geom_density(show.legend=FALSE) +
  geom_vline(xintercept = 0) +
  xlab(label = "revenue increase (%)") +
  scale_y_continuous(breaks = c(0.1)) +
  theme_grey(base_size=30) +
  facet_wrap(~ name,ncol=1)

The density scale on the y axis isn’t very meaningful to
me, so I tend to remove that scale from the plot – after all the key
element of these are shapes of the distributions. In addition, since the
density plot is easy to render as a line, I can plot all of them on a
single graph.

show code
ggplot(large_sales, aes(value, color=name)) +
  geom_density(size=2) +
  scale_y_continuous(breaks = NULL) +
  xlab(label = "revenue increase (%)") +
  geom_vline(xintercept = 0) +
  theme_grey(base_size=30) 

Histograms and density plots are more effective when there are more
data points, they aren’t so helpful when there’s only a handful (as with
the first example). A bar chart of counts is useful when there are only a few
values, such as the 5-star ratings on review sites. A few years ago Amazon
added such a chart for its reviews, which show the distribution in
addition to the average score.

Boxplots work well with many comparisons

Histograms and density plots are a good way to compare different
shapes of distributions, but once I get beyond a handful of graphs then
they become difficult to compare. It’s also useful to get a sense of
commonly defined ranges and positions within the distribution. This is
where the boxplot comes in handy.

show code
ggplot(large_sales, aes(name, value, color=name)) +
  geom_boxplot(show.legend=FALSE) +
  ylab(label = "revenue increase (%)") +
  geom_hline(yintercept = 0) +
  theme_grey(base_size=30) 

The box plot focuses our attention on the middle range of the data, so
that half the data points are within the box. Looking at the graph we can
see more than half of Bob’s accounts shrank and that his upper quartile is
below Clara’s lower quartile. We also see his cluster of hot accounts at
the upper end of the graph.

The box plot works nicely with a couple of dozen items to compare,
providing a good summary of what the underlying data looks like. Here’s an
example of this. I moved to London in 1983 and moved to Boston a decade
later. Being British, I naturally think about how the weather compares in
the two cities. So here is a chart showing comparing their daily high
temperatures each month since 1983.

show code
ggplot(temps, aes(month, high_temp, color=factor(city))) +
  ylab(label = "daily high temp (°C)") +
  theme_grey(base_size=20) +
  scale_x_discrete(labels=month.abb) +
  labs(color = NULL) +
  theme(legend.position = "bottom") +
  geom_boxplot()

This is an impressive chart, since it summarizes over 27,000 data
points. I can see how the median temperatures are warmer in London during
the winter, but cooler in the summer. But I can also see how the
variations in each month compare. I can see that over a quarter of the
time, Boston doesn’t get over freezing in January. Boston’s upper quartile
is barely over London’s lower quartile, clearly indicating how much colder
it is in my new home. But I can also see there are occasions when Boston
can be warmer in January than London ever is during that winter month.

The box plot does have a weakness, however, in that we can’t see the
exact shape of the data, just the commonly defined aggregate points. This
may be an issue when comparing Alice and Clara, since we don’t see the
double-peak in Alice’s distribution in the way that we do with histogram
and density chart.

There are a couple of ways around this. One is that I can easily
combine the box plot with the strip chart.

show code
ggplot(large_sales, aes(name, value, color=name)) +
  geom_boxplot(show.legend=FALSE, outlier.shape = NA) +
  geom_jitter(width=0.15, alpha = 0.4, size=1, show.legend=FALSE) +
  ylab(label = "revenue increase (%)") +
  stat_summary(fun = "mean", size = 5, geom = "point", shape=18, color = 'black') +
  geom_hline(yintercept = 0) +
  theme_grey(base_size=30) 

This allows me to show both the underlying data, and the important
aggregate values. In this plot I also included the black diamond that I
used before to show the position of the mean. This is a good way to
highlight cases like Bob where the mean and median are quite different.

Another approach is the violin plot, which draws a density plot into
the sides of the boxes.

show code
ggplot(large_sales, aes(name, value, color=name, fill=name)) +
  geom_violin(show.legend=FALSE, alpha = 0.5) +
  ylab(label = "revenue increase (%)") +
  geom_hline(yintercept = 0) +
  theme_grey(base_size=30) 

This has the advantage of showing the shape of the distribution
clearly, so the double peak of Alice’s performance stands right out. As
with density plots, they only become effective with a larger number of
points. For the sales example, I think I’d rather see the points in the
box, but the trade-off changes if we have 27,000 temperature measurements.

show code
ggplot(temps, aes(month, high_temp, fill=factor(city))) +
  ylab(label = "daily high temp (°C)") +
  theme_grey(base_size=20) +
  labs(fill = NULL) +
  scale_x_discrete(labels=month.abb) +
  theme(legend.position = "bottom") +
  geom_violin(color = NA) 

Here we can see that the violins do a great job of showing the shapes
of the data for each month. But overall I find the box chart of this data
more useful. It’s often easier to compare by using significant signposts
in the data, such as the medians and quartiles. This is another case where
multiple plots play a role, at least while exploring the data. The box
plot is usually the most useful, but it’s worth at least a glance at a
violin plot, just to see if reveals some quirky shape.

Summing Up

  • Don’t use just an average to compare groups unless you understand
    the underlying distribution.
  • If someone shows you data with just an average ask: “what does the
    distribution look like?”
  • If you’re exploring how groups compare, use several different plots
    to explore their shape and how best to compare them.
  • If asked for an “average”, check whether a mean or median is better.
  • When presenting differences between groups, consider at least the
    charts I’ve shown here, don’t be afraid to use more than one, and pick
    those that best illustrate the important features.
  • above all: plot the distribution!

Acknowledgments

Adriano
Domeniconi, David Colls, David Johnston, James Gregory, John Kordyback, Julie Woods-Moss, Kevin Yeung, Mackenzie Kordyback, Marco Valtas, Ned Letcher, Pat Sarnacke, Saravanakumar Saminathan, Tiago Griffo, and Xiao Guo

commented on drafts of this article on internal mailing lists.

My experience learning R

I first came across R about 15 years ago, when I did a little work with
a colleague on a statistical problem. Although I did a lot of maths in
school, I shied away from statistics. While I was very interested in the
insights it offers, I was deterred by the amount of calculation it
required. I have this odd characteristic that I was good at maths but not
good at arithmetic.

I liked R, particularly since it supported charts that were hardly
available elsewhere (and I’ve never much liked using spreadsheets). But R
is a platform with neighborhoods dodgy enough to make JavaScript seem
safe. In recent years, however, working with R has become much easier due
to the work of Hadley Whickham – the Baron Haussmann of R. He’s led the
development of the “tidyverse”: a series of libraries that make R very
easy to work with. All the plots in this article use his ggplot2 library.

In recent years I’ve used R more and more for creating any reports that
make use of quantitative data, using R as much for the calculations as for
the plots. Here the tidyverse dplyr library plays a big role. Essentially
it allows me to form pipelines of operations on tabular data. At one level
it’s a collection pipeline on the
rows of the table, with functions to map and filter the rows. It then goes
further by supporting table-oriented operations such as joins and pivots.

If writing such excellent software isn’t enough, he’s also co-written
an excellent book to learn to use R: R for Data
Science
. I’ve found this to be a great tutorial on data analytics,
an introduction to the tidyverse, and a frequent reference. If you’re
at all interested in manipulating and visualizing data, and like to get
hands-on with a serious tool for the job, then this book is a great way to
go. The R community has done a great job with this and other books that help
explain both the concepts and tools of data science. The tidyverse
community has also built an first-rate open-source editing and development
environment called R Studio. I shall say no
more that when working with R, I usually use it over Emacs.

R certainly isn’t perfect. As a programming language it’s shockingly
quirky, and I’ve dared not stray from the tree-lined boulevards of simple
dplyr/ggplot2 pipelines. If I wanted to do serious programming in a
data-rich environment, I’d seriously consider switching to Python. But for
the kinds of data work I do, R’s tidyverse has proven to be an excellent
tool.

Tricks for a good strip chart

There’s a couple of useful tricks that I often reach for when I use a
strip chart. Often
you have data points with similar, or even the same values. If I plot
them naively, I end up with a strip chart like this.

show code
ggplot(sales, aes(name, d_revenue, color=name)) +
  geom_point(size=5, show.legend=FALSE) +
  ylab(label = "revenue increase (%)") +
  geom_hline(yintercept = 0) +
  theme_gray(base_size=30)

This plot is still better than that first bar chart, as it clearly
indicates how Bob’s outlier is different to his usual performance. But
with Clara having so many similar values, they all clump on top of each
other, so you can’t see how many there are.

The first of my tricks I use is to add some jitter. This adds some
random horizontal movement to the points of the strip chart, which allows
them to spread out and be distinguished. My second is to make the points
partly transparent, so we can see when they plot on top of each other.
With these two tricks, we can properly appreciate the number and position
of the data points.

Exploring the bin width for histograms

A histogram works by putting the data into bins. So if I have a bin
width of 1%, then all accounts whose revenue increase is between 0 and 1%
are put into the same bin, and the graph plots how many are in
each bin. Consequently the width (or amount) of bins makes a big
difference to what we see. If I make larger bins for this dataset, I get
this plot.

show code
ggplot(large_sales, aes(value, fill=name)) +
  geom_histogram(binwidth = 5, boundary=0,show.legend=FALSE) +
  scale_y_continuous(breaks = c(50,100)) +
  xlab(label = "revenue increase (%)") +
  geom_vline(xintercept = 0) +
  theme_grey(base_size=30) +
  facet_wrap(~ name,ncol=1)

Here the bins are so wide that we can’t see the two peaks of Alice’s
distribution.

The opposite problem is that if the bins are too narrow the plot
becomes noisy. So when I plot a histogram, I experiment with the bin
width, trying different values to see which ones help expose the
interesting features of the data.


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

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


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

در اواسط دهه 90 ، دقیقاً همانطور که Netscape Navigator اولین نگاه خود را به ما نشان می داد دیداری اینترنت می تواند باشد ، طراحی وب به دو طعم رسیده است.

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

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

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

هنگامی که طراحان شروع به طراحی کردند ، وب بسیار عالی شد برای وب ، طرح های دیگر را ارائه نمی دهد به وب.

حمل و نقل چیزها بین سیستم عامل ها به ویژه هنگامی که چیز جدید کاملاً جدید باشد (یا سعی در افزایش کشش دارد) متداول است. در اواخر دهه 80 و اوایل دهه 90 مکینتاش بخار شد و ویندوز 3 در سال 1990 به بازار آمد ، تعداد زیادی از توسعه دهندگان ویندوز / رایانه شروع به ارسال نرم افزارهای خود به مک کردند. آنها نرم افزار Mac را ننوشتند ، آنها نرم افزار ویندوز را منتقل کردند. و شما می توانید بگویید – بسیار فریب بود. خوب است در زمانی که Mac به طور گسترده توسعه نیافته بود ، اما به وضوح منتقل شد.

وقتی چیزی منتقل شده است ، بدیهی است.

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

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

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

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

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

هر دو کار شبیه سازی کار در دفتر را از راه دور ، هر دو به یک بی نظمی نزدیک می شوند.

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

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

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

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

از راه دور کار کنید ، دفتر را بارگیری نکنید.


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