Полезные советы для повышения эффективности разработчика

Я записываю себя во время программирования с помощью OBS Studio и притворяюсь, будто я крутой стример (хоть никто это не увидит). Это помогает потому что:

1. Помогает мне не отвлекаться. Есть конкретное задание для этого видео, именно его и выполняю.
2. Я учусь лучше формулировать то, чем занимаюсь, какие есть проблемы, решения и т. д.
3. Мотивирует. Я же не могу разочаровать свои «тысячи поклонников».
4. Потом могу посмотреть, где я зависал/ошибался и учиться на ошибках.
5. Это прикольно. Я могу шутить, ругаться как хочу (моим зрителям больше 18).
6. Записываю по-английски, это помогает практиковать язык.

Как вернуть деньги за подписку на Amazon Prim Video

В погоне за бесплатными плюшками при оформлении пробной бесплатной подписки на Twitch Prime была случайно оформлена подписка на Amazon Prime Video. Месячная подписка стоит 5.99 евро.

Все статьи в интернете говорят о том, что Амазон не возвращает деньги за этот сервис. Но я все же решил попробовать.

  1. Идем на сайт Prime Video
  2. Жмем внизу Help
  3. Выбираем тему помощи, как показано ниже на картинке
  4. Жмем Chat
  5. Открывается окно чата
  6. Описываем проблему и отправляем сообщение.
    Ну тут, конечно, English must have )

Ниже переписка в чате

Me: Hi, I tried get free trial period on Twitch. However, I was sign up to Prime Video. 19:52:58
You’re connected to Likhitha from PrimeVideo.com.
Me: Can I roll back this operation and back my money? Thanks. 19:53:54
Likhitha: Hello, my name is Likhitha. I am from Digital technical team. I’ll be happy to help you today. 19:54:24
Likhitha: Could you please wait while I look into this for you? 19:56:20
Me: Hello Likhitha, OK 19:56:43
Likhitha: May I know the charge amount you are charged? 19:59:06
Me: 5.99 euro 19:59:56
Likhitha: thank you 20:01:08
Likhitha: Do you want me to cancel Prime Video subscription? 20:01:18
Me: yes, I don’t need it and I want back my money. 20:02:26
Likhitha: I’ve cancelled and requested a refund. Refunds are issued to the payment method used to make the original purchase and usually complete within 5-7 business days. 20:03:46
Likhitha: Is there anything else I can help you with today? 20:04:12
Me: Thank you! You are great! 20:05:24
Likhitha: :) 20:06:40
Likhitha: You’re welcome. Thank You for contacting Amazon! Have a great day! 20:06:40
Likhitha has left the conversation.

Лучшие игры

Примерно раз в год появляется видеоигра, которую ни в коем случае нельзя пропускать — даже тем, кто к играм не притрагивается. В 2018-м это был драматичный вестерн Red Dead Redemption 2, а в 2019-м — Death Stranding.

Юмор

Один знакомый пытался мышкой вернуть на место уезжающее изображение на мониторе, пока не понял, что это он со стула падает.

Другой знакомый досиделся за компом до такого состояния, что взяв в руку карандаш долго тупил, как же он с латиницы на кириллицу переключается. Где же эта кнопка?

А третий знакомый все время ищет кнопку Enter в лифте, после того как нажмет цифру этажа.

Meld — компьютерная программа для сравнения содержимого текстовых файлов или каталогов.

Функции

Отключить уведомления в Хроме навсегда

Если вам надоели бесконечные всплывающие вопросы — «можно ли слать вам уведомления» в Chrome:

Settings -> Advanced -> Site Settings -> Notifications -> change «Ask Before Sending» to «Blocked».

Для русского интерфейса:
Настройки — Дополнительные — Конфиденциальность и безопасность — Настройки сайта — Уведомления — Спрашивать разрешение перед отправкой (рекомендуется)
Выключить.

Все, больше их не будет. Пользуйтесь!

КАК ОТКРЫТЬ ЛЮБОЙ ДОМОФОН БЕЗ КЛЮЧА?

Открытие домофона Визит

При не измененных заводских настройках существуют 4 варианта кода:

*#423; 12#345; 67#890; *#4230.

Для доступа с использованием сервисного меню: #999.
После двух прерывистых сигналов вводим: 1234 (стандартный), при ошибке вводим: 0000; 9999; 3535; 12345; 6767.
Сигналом доступа является один звук, отказа – два звука.

Способ доступа в сервисное меню с помощью трех кнопок.

Нажимаем «2», (ожидаем пару секунд), «#» (еще пару секунд), «3535» — далее происходит открывание двери.
После нажатия «*» — осуществляется выход из программного режима.

Открытие домофона МЕТАКОМ

Три способа открывания домофонов «МЕТАКОМ»:

1) Нажатие кнопки вызова, далее набираем номер первой квартире в подъезде и опять нажимаем кнопку вызова. На дисплее должны высветиться буквы COD, осуществляем набор цифр – 5702.
2) 65535 – вызов – 1234 – 8.
3) вызов – 1234 – 6 – вызов – 4568.

Открытие домофона Cyfral

Два варианта открытия:

1) При наличии отметки «М» на домофоне.Нажимаем: 07054, либо – вызов — 41, либо – вызов – 1410.
2) При наличии трехзначных номеров квартир.Вызов – номер квартиры (100, 200) – вызов — 2323; 7272; 7273 (один из 3-х номеров).

Открытие домофона Eltis

Два быстрых и простых варианта:Вызов – 2323;Вызов – 7273.

Открытие домофона ФАКТОРИАЛ

Нажимаем цифры: 000000; 123456, при отказе нажимаем – 5 – 180180 – вызов — 4 вызов.

Открытие домофона Keyman

Наиболее проблематичные в осуществлении доступа.

1) К – 100 – 789 – короткий звук – 123456 – 8
2) К – 170862 – короткий звук – 0

Agile, Scram, CI — главное

Agile манифест появился в 2001.
Scram — не методология, а фреймворк.
Статистика о том, что scram используют 99% проектов — выдумка.
Scram не для проектов, а для продуктов.
Ролей клиента и бизнес-аналитика в scram нет. Есть три роли: команда разработки (отвечает за качество продукта), владелец продукта (отвечает за максимизацию ценности), scram мастер (отвечает за эффективные процессы). Вместе они — scram команда.

Бэклогом Продукта владеет только Владелец продукта и только он может вносить туда изменения.
Бэклогом Спринта только команда разработки.

Бэклог продукта состоит не из эпиков, а из всех хотелок и требований к продукту, которые имеют разные сущности и степень детализации.
User story — лишь один из способов формулировать задачи. Story должна отвечать не только на вопросы «что» и «для кого», но и «зачем».

Такой встречи, как плэннинг покер не существует, есть просто планирование спринта. Покер — просто инструмент для оценки.

В стори поинтах оцениваются не задачи, а истории. Но оценка в стори поинтах вообще не обязательна в Scram и каждая команда сама решает, стоит ли ее использовать.

Если используется плэннинг покер — не может быть ещё и временной оценки задач.

Конец спринта наступает не после ревью, а после ретроспективы.

Статус done — это не только когда протестировано. Команды сами вырабатывают для себя definition of done и у всех он разный.

Цель ревью — не ублажить заказчика и показать , какие мы крутые. Цель — дать попользоваться реальному клиенту функционалом и оперативно получить обратную связь, чтобы адаптировать бэклог продукта.

Кроме планирования, дейли, ревью и ретро в скраме никаких встреч нет. Ещё проводится уточнение элементов бэклога продукта, но это не обязательно встреча.

«Scram сделан для одного проекта. 1 проект — 1 команда» — заблуждение. Scram применяется для продуктов, продукты могут быть огромными. Для этого есть разные способы масштабирования scram, которые эффективно работают.

Эффективность команды в стори-поинтах не измеряется. Она измеряется в бизнес велью.

Scram мастер — не погонщик, не менеджер. Он помогает команде стать самоорганизованной, работает с командой через донесение ценностей scram, учит эффективно использовать Фреймворк, даёт обратную связь, коучит членов команды и владельца продукта, помогает владельцу продукта использовать техники управления бэклогом. Работает с организацией в целом. Scram мастер — выделенная роль , а не совмещённая.

Document​.evaluate()

Returns an XPathResult based on an XPath expression and other given parameters.

SyntaxSection

var xpathResult = document.evaluate(
  xpathExpression,
  contextNode,
  namespaceResolver,
  resultType,
  result
);
  • xpathExpression is a string representing the XPath to be evaluated.
  • contextNode specifies the context node for the query (see the XPath specification). It’s common to pass document as the context node.
  • namespaceResolver is a function that will be passed any namespace prefixes and should return a string representing the namespace URI associated with that prefix. It will be used to resolve prefixes within the XPath itself, so that they can be matched with the document. null is common for HTML documents or when no namespace prefixes are used.
  • resultType is an integer that corresponds to the type of result XPathResult to return. Use named constant properties, such as XPathResult.ANY_TYPE, of the XPathResult constructor, which correspond to integers from 0 to 9.
  • result is an existing XPathResult to use for the results. null is the most common and will create a new XPathResult

ExampleSection

var headings = document.evaluate("/html/body//h2", document, null, XPathResult.ANY_TYPE, null); 
/* Search the document for all h2 elements.  
 * The result will likely be an unordered node iterator. */
var thisHeading = headings.iterateNext(); 
var alertText = "Level 2 headings in this document are:\n";
while (thisHeading) {
  alertText += thisHeading.textContent + "\n";
  thisHeading = headings.iterateNext();
}
alert(alertText); // Alerts the text of all h2 elements

Note, in the above example, a more verbose XPath is preferred over common shortcuts such as //h2. Generally, more specific XPath selectors as in the above example usually gives a significant performance improvement, especially on very large documents. This is because the evaluation of the query spends does not waste time visiting unnecessary nodes. Using // is generally slow as it visits every node from the root and all subnodes looking for possible matches.

Further optimization can be achieved by careful use of the context parameter. For example, if you know the content you are looking for is somewhere inside the body tag, you can use this:

document.evaluate(".//h2", document.body, null, XPathResult.ANY_TYPE, null);

Notice in the above document.body has been used as the context instead of document so the XPath starts from the body element. (In this example, the "." is important to indicate that the querying should start from the context node, document.body. If the «.» was left out (leaving //h2) the query would start from the root node (html) which would be more wasteful.)

See Introduction to using XPath in JavaScript for more information.

NotesSection

  • XPath expressions can be evaluated on HTML and XML documents.
  • While using document.evaluate() works in FF2, in FF3 one must use someXMLDoc.evaluate() if evaluating against something other than the current document.

Result typesSection

(Merge with Template:XPathResultConstants?

These are supported values for the resultType parameter of the evaluate method:

Result TypeValueDescription
ANY_TYPE0Whatever type naturally results from the given expression.
NUMBER_TYPE1A result set containing a single number. Useful, for example, in an XPath expression using the count() function.
STRING_TYPE2A result set containing a single string.
BOOLEAN_TYPE3A result set containing a single boolean value. Useful, for example, an an XPath expression using the not() function.
UNORDERED_NODE_ITERATOR_TYPE4A result set containing all the nodes matching the expression. The nodes in the result set are not necessarily in the same order they appear in the document.
ORDERED_NODE_ITERATOR_TYPE5A result set containing all the nodes matching the expression. The nodes in the result set are in the same order they appear in the document.
UNORDERED_NODE_SNAPSHOT_TYPE6A result set containing snapshots of all the nodes matching the expression. The nodes in the result set are not necessarily in the same order they appear in the document.
ORDERED_NODE_SNAPSHOT_TYPE7A result set containing snapshots of all the nodes matching the expression. The nodes in the result set are in the same order they appear in the document.
ANY_UNORDERED_NODE_TYPE8A result set containing any single node that matches the expression. The node is not necessarily the first node in the document that matches the expression.
FIRST_ORDERED_NODE_TYPE9A result set containing the first node in the document that matches the expression.

Results of NODE_ITERATOR types contain references to nodes in the document. Modifying a node will invalidate the iterator. After modifying a node, attempting to iterate through the results will result in an error.

Results of NODE_SNAPSHOT types are snapshots, which are essentially lists of matched nodes. You can make changes to the document by altering snapshot nodes. Modifying the document doesn’t invalidate the snapshot; however, if the document is changed, the snapshot may not correspond to the current state of the document, since nodes may have moved, been changed, added, or removed.

Origin
https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate