Ругательства на английском, за которые не побьют (но это не точно)

Ругательства — это важная часть любого языка. Правильно и к месту материться — это настоящее искусство, которым далеко не все владеют на своем родном языке.

В прошлой статье мы рассказали о mild curses — эмоциональных выражениях, которые матами не считаются. Сегодня же речь пойдет о матюках. Нормальных таких ругательствах на английском, но без жести. Встречайте medium curses во всей красе.


Напомним, что в английском языке выделяют 4 группы ругательств: mild, medium, strong и strongest.

Medium curses — это полноценные ругательства. Если mild считаются эмоциональными выражениями, то medium — это уже матюки во всех смыслах. Ими вполне можно оскорбить человека, поэтому использовать их нужно осторожно. Уровень грубости у них невысокий (относительно, конечно), но все равно нужно хорошо чувствовать момент, в каких ситуациях ими можно пользоваться.

Bullshit — хрень, бредятина, чушь, брехня.

Хоть дословно «bullshit» переводится как «бычье дерьмо», в большинстве случаев оно используется в переносном смысле.

This is some… high-tech, sci-fi, Chinese synthetic bullshit! — Это какая-то высокотехнологичная… научно-фантастическая, синтетическая китайская хрень!
Carla, I’m telling you that this is all bullshit! — Карла, я тебе говорю, это все чушь собачья!
I’ve been in this department too long to get mixed up in this political bullshit! — Я слишком долго работаю в этом Управлении, чтобы меня кормили этой политической брехней!

Несмотря на то, что формально bullshit считается ругательством, его часто используют даже на телевидении. В США была очень популярна программа «Penn & Teller: Bullshit!» («Пенн и Теллер: Чушь собачья!»), где два иллюзиониста раскрывали, как людей обманывают экстрасенсы, адепты нетрадиционной медицины, представители религиозных общин. Также в шоу рассматривали различные социальные проблемы и мифы, в которые верят люди.

То есть, слово «bullshit» было использовано в названии шоу на крупном телеканале. Эпатажно, не слишком культурно, но сработало.

Кстати, слово «bullshit» иногда используется как глагол. В таком случае оно означает «страдать херней», «брехать».

We drink and then we bullshit! — Напьемся, и будем херней страдать!

Shit — дерьмо, бля, хрень, блядь

Несмотря на то, что слова «bullshit» и «shit» очень похожи, значения в них очень разные. Если «bullshit» означает только какой-нибудь бред или брехню, то значений слова «shit» очень много.

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

В переносном смысле «shit» означает что-то плохое. Если заменить им фразу «this thing», то будет сразу понятно, что вы об этом думаете.

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

I guess saying shit is easier than doing actual police work. — Мне кажется, полиции легче говорить всякую хрень, чем делать свою работу.
You know I can’t remember all that shit. — Ты же знаешь, что я не могу запомнить эту хрень.
Farewell our shit and useless servant. — В добрый путь, наш сраный бесполезный работник.

«Piece of shit» — более узконаправленное матерное выражение. Если «shit» еще можно использовать как излишне эмоциональное междометие, то «piece of shit» используется как прямое ругательство в сторону человеку, ситуации или вещи.

Интересно, что «shit» можно использовать, чтобы показать восхищение и одобрение. Тогда все зависит от интонации и контекста. Когда в разговоре используют «the shit» (именно с артиклем the), то фраза в большинстве случаев носит положительное значение.

Bitch — сука, стерва, блядь.

Пока американские феминистки подписывают петиции, чтобы «исключить сексистские термины из словарей», мы их изучаем с точки зрения лингвистики.

По значению слово максимально соответствует русскому «сука». Незатейливое такое, но вполне уничижительное оскорбление женщин без особого подтекста или вторых смыслов. Собственно, даже обсуждать скучно.

He dumped that crazy, controlling bitch. — Он бросил эту сумасшедшую, помешанную на контроле сучку.
I married a real bitch who set a poor example. — Я был женат на жуткой стерве, которая подавала ей дурной пример.
Gosh, ye actually love the bitch. — Господи, да ты и правда любишь эту суку.

Иногда «bitch» используется в качестве глагола. В таком случае слово означает «обманывать», «портить», «ломаться», «ныть». Тут уже нужно смотреть на контекст. Но в любом случае никаких хороших смыслов это слово не имеет.

«Son of a bitch» — «сукин сын». Мужской вариант оскорбления.

Munter — уродина

Продолжаем тему сексизма. «Munter» — скорее, британское слово. Во всяком случае, в США его используют очень и очень редко.

Применяется оно чаще всего к женщинам, чтобы в грубой форме подчеркнуть несовершенство их красоты. Но иногда его говорят мужчинам — в таком случае градус оскорбления увеличивается. Ведь мало того, что женщиной обозвали, так еще и уродливой.

В целом смысл один — что-то настолько некрасивое, что вызывает отвращение.

O my god! Did you see the right munter Kevin picked up last night? — Господи! Ты видел, какую уродину подцепил Кевин прошлой ночью?

Tits — сиськи, соски

Собственно, никакого сильного ругательства здесь нет. Лишь грубоватое обозначение женской груди или сосков. Тем не менее, британцы вполне серьезно приравняли его к ругательствам.

Tits в прямом значении означает «соски», но чаще всего используется именно как обозначение женской груди. Штука в том, что boobs имеет практически то же значение, но его считают только вульгаризмом, а tits приравняли к ругательству.

Or maybe he just misses her tits. — Или может, он просто скучает по ее сиськам.
Sign my tits, Tom James. — Распишись мне на сиськах, Том Джеймс.
Those guys just like my tits. — Тем парням нравяться только мои сиськи.

В целом tits имеет более сексуализированное значение, чем boobs или breasts, поэтому с ним нужно осторожнее.

Формально фразы «You have nice tits» и «You have nice boobs» означают одно и то же. Но первая звучит грубее — если вы скажете ее девушке, то шансы получить по щам будут выше, чем от второй.

Bollocks — чушь, ерунда, яйца, тестикулы

Слово с очень богатой этимологией. В среднеанглийском, который использовали в Англии в XII-XIV веках, оно означает «мужские тестикулы». Или если без эвфемизмов, то «яйца».

«Bollocks» имеет общие корни с «balls», одно из значений которого тоже «яйца». В Британии они используются практически в равной степени, но в США говорят только «balls».

Правда, есть незначительные отличия в смыслах. «Bollocks» также может означать «чушь», «ерунда», «бред». Если немного обобщить, то «Bollocks» по смыслу — это объединенные «balls» и «bullshit».

Farell almost strung us up by our bollocks for losing track of you. — Фарелл нас чуть за яйца не подвесил за то, что мы упустили тебя.
Then you’ll cut out this bollocks and start to co-operate. — Тогда прекращайте нести эту чушь и начинайте сотрудничать.
I have never, ever heard such utter bollocks. — Я никогда не слышал такой сущей бессмыслицы.

Стоит отдельно подчеркнуть, что «bollocks» — это чисто британское ругательство. Оно активно используется в Шотландии и Ирландии, но вот в США оно как-то не прижилось. Так что осторожнее с ним, если говорите с американцем — вас могут неправильно понять.

Arsehole — жопа, задница, засранец, мудак, придурок.

Буквально переводится как «дырка в жопе». В некоторых случаях обозначает анальное отверстие, но в большинстве своем используется в переносном смысле и является оскорблением.

«Arsehole» и «asshole» имеют абсолютно одинаковые значения. И единственная разница в них — региональная. «Arsehole» привыкли использовать в Британии, а «asshole» — в США. Но если вы перепутаете, ничего страшного не случится, оба варианта правильны.

It happened because some asshole was texting and driving. — Это случилось потому, что какой-то мудак писал смс-ку за рулем.
Now, for example, you’re being an arsehole. — А вот сейчас, например, ты ведёшь себя как засранец.
Seriously, only an arsehole would actually vote for me. — Серьёзно, за меня станут голосовать только придурки.

«Arsehole» или «asshole» по сути являются более грубым эквивалентом «arse» и «ass». Так что аккуратнее, если хотите обозвать им человека.

Отдельно напомним: все перечисленные слова — это полноценные ругательства. Мы рекомендуем их изучать, чтобы вы всегда могли понять обсценную речь нейтива, но сами используйте их очень аккуратно. EnglishDom за культурное использование языка — вдохновляйтесь только хорошими словами 🙂

Онлайн-школа EnglishDom.com — вдохновляем выучить английский через технологии и человеческую заботу

Только для читателей Хабра первый урок с преподавателем по Skype бесплатно! А при покупке занятий получите до 3 уроков в подарок!

Получи целый месяц премиум-подписки на приложение ED Words в подарок.
Введи промокод mediumcurses на этой странице или прямо в приложении ED Words. Промокод действителен до 28.02.2021.

Наши продукты:

ссылка на оригинал статьи https://habr.com/ru/company/englishdom/blog/490266/

Как я писал полудецентрализованную криптовалюту на PHP. (Часть 1 — Сбор библиотек)

Предисловие

Вы наверно помните прошлую статью, в которой я разрабатывал централизованную криптовалюту. Идея была, как Вы знаете, плохой. Я решил перезапустить линейку этих туториалов, но уже более менее нормальной, чем было в прошлые разы. В этой линейке постараемся «пережевать» все сказанное. Поэтому, если Вы видели прошлую статью, Вы здесь можете увидеть что-нибудь, что было и в прошлой статьи.

Что происходило во время двух месяцев радиомолчания

  1. Улетал в другую страну отдохнуть.
  2. Читал во время отдыха комментарии которые пишут.
  3. Ждал выход новой версии одной из библиотек (P2P-библиотеки для PHP, а она полудецентрализованная потому-что Вам будет насколько я понимаю лень открывать порты).
  4. Занимался разработкой материалов к этой статье.
  5. Прибывшим домой, старался всем отвечать.
  6. И конечно же — ничего не делал :).

Надеюсь на то, что хотя бы эту линейку не заброшу.

Сравниваем.

Во-первых: Децентрализованная криптовалюта будет куда в разы надежнее чем централизованная, в которой любой человек имея на руках свое время, будет вручную пытаться переписать ее блокчейн.
Во-вторых: В отличии от централизованных монет, в децентрализованной БД кошельков храниться не будут. В связи с чем, любой, кто на руках имеет баланс на счету, может часть сжечь, даже ошибившись в одной буковке в адресе кошелька.
В-третьих: В отличии от децентрализованных монет, в централизованной любой фрод может стереть всем баланс. А никто этого не хочет.

Начинаем!

Прежде чем начнем искать библиотеки, сразу скажу следующее:

  • Писать буду под консольную PHP 7.4
  • Composer — годная штука. Использовать ее я не забываю.
  • Чтение про нормальный code-style отложу на потом. Мне этот пока нравится. (Наверно кто-то дочитав до этого момента сразу закроет эту вкладку)

Поиск библиотек

P2P. Воспользуемся библиотекой BPN (Bit Point Network), автор — Никита Подвирный (его группа ВК — тыньк).
Blockchain. Воспользуемся библиотекой phpblockchain. Самому пришлось ее отполировать. А так, ссылка на библиотеку — клик
Эти две библиотеки не поддерживают Composer. А сверху, которую разработал Никита — его собственный менеджер пакетов, который у меня не завелся.
BIP39. Нам будет необходимо восстановить кошелек из любого места в мире. Используем эту библиотеку — click
BIP44. Пойдет и библиотека от Minter, вот ссылка — нажми.
Вот список необходимых библиотек. Первые две кинул в одну директорию, последние две уже установил через Composer.

Постусловие

Мне пришлось все начать сначала, уже более похожим на другие криптовалюты. Децентрализованно, без контроля властей, свободным для всех. Примерно через несколько часов я опубликую вторую часть, где будем писать уже клиент, настроим трекер. Всем удачи! Еще увидимся.

ссылка на оригинал статьи https://habr.com/ru/post/490472/

STM32 с чистого листа

Нельзя доверять коду, который вы не написали полностью сами. — Кен Томпсон

Пожалуй, моя самая любимая цитата. Именно она и стала причиной по которой я решил нырнуть в самую глубь кроличьей норы. Свой путь в мир программирования я начал совсем недавно, прошло всего около месяца и я решил писать статьи для закрепления материала. Все началось с простой задачи, синхронизировать лампы в своей фото студии с помощью Ардуины. Задача была решена, но в фото студию я больше не заходил, времени нет. С того момента я решил основательно заняться программированием микроконтроллеров. Ардуина, хоть и привлекательна в своей простоте, как платформа мне не понравилась. Выбор пал на компанию ST и их популярную продукцию. В тот момент я еще не представлял в чем особо разница, но как типичный потребитель я сравнил скорость «процессора» и количество памяти, купил себе внушительную плату с дисплеем STM32F746NG — Discovery. Я пропущу моменты отчаяния и сразу перейду к делу.

Погрузившись в образ программиста я очень много читал, изучал, экспериментировал. И как я уже описал выше я хотел изучить ну вот прям все. И для этого я поставил цель, ни каких готовых решений, только свое. И если получилось все у меня то и у вас получиться.

Список всего того что понадобиться:

  1. Виртуальная машина Ubuntu 16+ ну или что под рукой есть
  2. arm компилятор — скачать по ссылке developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
  3. openocd отладчик и программатор — скачивать по ссылке не получится, собираем из исходников, инструкция прилагается
    git clone https://git.code.sf.net/p/openocd/code openocd
  4. Текстовый редактор любой по вкусу

После того как все установили и собрали, можем приступать к первому проекту! И нет, это даже не мигание лампочкой. Для начала мы должны вникнуть в процесс инициализации самого мк.

Что нам понадобится:

  1. Makefile
  2. Linker.ld
  3. Init.c

Начнем с последнего пункта Init.c. Первым делом наш мк должен загрузить адрес «stack pointer» это указатель на адрес памяти который используется для инструкций PSUH и POP. Настоятельно рекомендую досконально изучить эти две инструкции, так как я не буду в деталях объяснять все инструкции. Как это реализовать смотрим ниже

extern void *_estack; void *vectors[] __attribute__((section(".isr_vector"), used)) = {     &_estack } 

Теперь разберем данный пример. Extern означает, что символ внешний, и этот символ мы объявили в файле Linker.ld, к нему мы еще вернемся чуть позже.

 __attribute__((section(".isr_vector"), used))

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

Теперь давайте разберемся, зачем этот массив и с чем его съест мк. В отличии от обычного процессора, мк на архитектуре арм начинает исполнение когда не с нулевого адреса, а с адреса на который указывает указатель в этом массиве, все сложно. Так же первый указатель в этом массиве всегда указывает на начало стэка, а вот второй уже указывает на начало нашего кода.

Приведу пример. дано что стэк начинается с 0x20010000 а код программы находиться 0x0800008. то массив можно написать как

void *vectors[] __attribute__((section(".isr_vector"), used)) = {     0x20010000,     0x08000008 } 

То есть, первым делом контроллер инициализирует стэк, а потом считает адрес первой инструкции и загрузит ее в регистр программного счетчика. Теперь самое главное, в зависимости от модели эти цифры могу быть разные, но на примере stm32f7 я могу уверенно сказать что этот массив должен быть в памяти по адресу 0x08000000. Именно с этого адреса мк начнет свою работу после включения или ресета.

Теперь прервемся и обратим внимание на то как именно положить этот массив в нужную нам секцию. Этим занимается «ld» или линкер. Это программа собирает всю нашу программу воедино и для этого используется скрипт Linker.ld. Привожу пример и дальше разберем его.

MEMORY{ 	ROM_AXIM (rx) : ORIGIN = 0x08000000, LENGTH = 1M 	RAM_DTCM (rwx): ORIGIN = 0x20000000, LENGTH = 64K }  _estack = LENGTH(RAM_DTCM) + ORIGIN(RAM_DTCM);  SECTIONS{ 	.isr_vector : { 	KEEP(*(.isr_vector)) 	} >ROM_AXIM</code> } 

Разберемся, что тут происходит. MEMORY определяет секции памяти а SECTIONS определяет секции. тут же мы видим и наш _estack и то что он равен сумме начала памяти и ее длины, то есть конец нашей памяти. Также определена секция .isr_vector в которую мы положили наш массив. >ROM_AXIM в конце нашей секции означает что эта секция должна быть помещена в секцию памяти которая начинается с 0x08000000 как того требовал наш мк.

Мы поместили массив куда надо теперь надо какую нибудь инструкцию нашему мк для работы. Вот дополнены Init.c

extern void *_estack;  void Reset_Handler();  void *vectors[] __attribute__((section(".isr_vector"), used)) = {     &_estack,     &Reset_Handler };  void __attribute__((naked, noreturn)) Reset_Handler() {     while(1); }

Как я уже упомянул ранее, вторым адресом должен быть указатель на первую функцию или инструкцию. И опять атрибуты, но тут все просто, функция не возвращает ни каких значений и следует ни каким ABI при входе, то есть голая «naked». В такие функции обычный пихают ассемблер.

Теперь самое время скомпилировать наш код, и посмотреть что же там под капотом. Makefile пока трогать не будем.

arm-none-eabi-gcc -c init.c -o init.o -mthumb

arm-none-eabi-gcc -TLinker.ld -o prog.elf init.o -Wl,--gc-sections -nostartfiles -nodefaultlibs -nostdlib

И тут мы видим много непонятного. по порядку:

  1. -mthumb компилируем для armv7, который использует только thumb инструкции
  2. -TLinker.ld указываем скрипт линкера. по дефолту он скомпилирует для исполнения в среде линукс
  3. -Wl,—gc-sections -nostartfiles -nodefaultlibs -nostdlib убираем все стандартные библиотеки, файлы инициализации среды С и все другие вспомогательные библиотеки типа математики.

Загружать такое в мк конечно толку нет. Зато есть толк в просмотре и изучении бинарника.

objcopy -O ihex prog.elf prog.bin

hexdump prog.bin

И тут мы увидим вывод. «00000000: 00 01 00 02 09 00 00 08» что будет символизировать нам об успехе. Это моя первая статья и я не вполне смог раскрыть весь материал и суть, поэтому в следующей я более подробно опишу механизмы и мы друзья сможем перейти к программе которая не будет мигать лампочкой, но выставит скорость процессора.

ссылка на оригинал статьи https://habr.com/ru/post/490474/

Сложные стартапы

Пожалуй это крайне не очевидно, но шансов на успех больше у сложных стартапов, чем у простых. Сложные стартапы требуют кучу денег, времени, координации, а так же большего технологического фундамента, чем у других. Сложный стартап можно назвать «хорошим» если в конечном итоге он будет приносить прибыль (не все сложные задачи стоит решать).

Я помню когда Instagram начал набирать популярность, буквально каждый день зарождался его клон. Тогда было профинансировано более 1 000 подобных стартапов. Тем временем только 10 стартапов в области атомных реакторов.

Легкие стартапы проще начать, но сложней довести до успеха. Самый ценный товар в экосистеме стартапов — это талантливые люди, и в большинстве своем талантливые люди хотят работать над чем-то значимым.

Стартап должен привлечь множество людей. Как правило, первым 5 — 10 человек, достаточно предложить крупные акции и зоны ответственности. Но в дальнейшем, людей придется мотивировать присоединится к вам основной идей стартапа, его целями и ценностью.

Миру это нужно, в ближайшее время эта проблема не будет решена, если мы этого не сделаем, и у нас гораздо меньше шансов на успех, если вы не присоединитесь

Здесь действует производная от принципа Питера — ваш стартап поднимется на новый уровень, когда он больше не сможет привлекать достаточно талантливых людей. (Иногда это относится и к карьере — ограничивающим фактором для многих в конечном итоге становится количество талантливых людей, которых вы знаете и с которыми можете работать).

Легкий стартап — встречный ветер, а сложный стартап — попутный ветер. Если люди видят насколько вам важен проект и сколько вы вкладываете в него сил, то они будут помогать вам. Это словно фоновая сила, которая будет решать задачи найма людей, рекламы, поиска новых инвестиций и так далее.

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

Позвольте себе стать более амбициозным — найдите наиболее интересную версию того, над чем вы сейчас работаете. Затем поговорите об этом большом видении и неустанно работайте над этим, но всегда делайте разумный следующий шаг. Не лучшая идея, когда на первом этапе у вас регистрация компания, а на втором — отправление на Марс.

Будьте готовы взять на себя долгосрочную приверженность тому, что вы делаете. Большинство людей этого не делают, что является одной из причин, по которым они выбирают «легкие» стартапы. В мире комплексных преимуществ (compounding advantages), когда большинство людей думают о трех летнем периоде, думайте о десяти летнем периоде жизни компании и у вас будет преимущество.

ссылка на оригинал статьи https://habr.com/ru/post/490150/

Распродажа снюса в Таиланде

Сейчас у вас появилась возможность купить хороший снюс по низкой цене, всего по 200 бат. Обратите внимание, что предложение ограничено.

В наличии:

Apex
Blax Black Edition
Blax Lemon & Lime
Desert
Killa Cold Mint
Killa Fusion
Lucky
Odens
Pablo
Pegas Cold Citrus
Pegas Cold Cola
Pegas Cold Raspberry

1 баночка любого снюса обойдется вам всего в 200 бат, доставка бесплатна в любую точку Таиланда. Заказ принимается в любой день.
Порядок доставки: осуществляется на следующий день, если вы сделали заказ до 15:00 в период понедельник-пятница (если завтра не тайский праздник, предусматривающий выходной день). Заказали в среду утром — получили в четверг днем. Заказали в вечер субботы — получили днем во вторник. Учитывайте это.

Для заказа вам необходимо воспользоваться контактами, которые вы найдете в конце статьи.
Перед заказом рекомендуется приготовить данные, а именно:
1) Ваш полный тайский адрес, который вы можете посмотреть в гугл-картах, или лучше у администратора вашей гостиницы.
2) Ваши Имя и Фамилия (латиницей). Обратите внимание, при использовании псевдонима могут возникнуть трудности. При указании адреса гостиницы указывать ПОЛНОЕ ее название.
3) Контактный номер телефона.ТОЛЬКО ТАЙСКИЙ! Либо ваш, либо администратора гостиницы, либо любого человека, который понимает английский или тайский язык.

Обратите внимание на три важные вещи:
1) Отвечать на звонок курьера нужно ОБЯЗАТЕЛЬНО
2) Указывать свои данные необходимо КОРРЕКТНО.
3) Ответственность за соблюдение первых двух пунктов лежит только НА ВАС.

Данная акция предусмотрена ввиду того, что формально срок годности перечисленных продуктов недавно подошел к концу. По факту же это годный к употреблению снюс, в чем мы предварительно убедились (и выжили).

Контакты для заказа:
1) Соц. сеть ВКОНТАКТЕ: vk.com/imm_mannerheim
2) WhatsApp и Telegram +66620945190