Обновить
2
0.5

Пользователь

Отправить сообщение

Если вдруг решите написать об этом статью - я бы почитал с удовольствием.

Это было на предыдущей работе, сейчас уже техническую часть не собрать. А "общие рассуждения" - их в интернете и без меня полно.

Я бы в ваш список добавил еще дедлоки в распределенных системах.

Да согласен.
Раз уж зашла об этом речь (проверка высокоуровнего состояния на отсутствие блокировок) - вы не знаете ПО, для представления \ верификации небольших протоколов и\или state-machine (на 10-20 переменных состояния)?

Замечу, что цикл в Resource Allocation Graph => WFG создаётся не только на mutex но и на других способах синхронизации.

1 Чтобы предотвратить deadlock надо учесть ещё:
1.а) другие примитивы синхронизации
1.б) блокирующие системные вызовы (мы, к стати ловили такой deadlock - блокирующий системный вызов в потоке A, завершению которого мешал другой поток B захвативший ресурс и уснувший на mutex захваченном потоком A).

2. Есть ещё livelock и livelock-like проблема: у вас может быть ещё и самописная синхронизация, типа активного ожидания события. Тут вообще сложно и 8 лет назад были только частные решения:
2.а) Если такое ожидание не завязано на бизнес-логику (а только на техническую, изолируемую часть) - называете эту функцию "ожиданием на примитиве" и включаете её в вашу модель (у вас - детекция циклов в WFG), с соответствующими обёртками.
2.б) Если такое ожидание завязано на всю вашу безнес-логику - то это уже другая высокоуровневая модель синхронизации по избеганию livelock ну и соответственно тема другой статьи (цикла статей) на хабре.

Раскладка Qwerty создавалась с прицелом минимизировать коллизии в центре клавиатуры. Это было актуально для пишущих машинок.
Сегодня это же актуально для смартфонов, если хочешь что-то быстро написать и начинаешь писать двумя руками. Поэтому иметь две раскладки: для компьютеров и для смартфонов вряд ли разумно.

Ну и опять же какой там эффект при переходе на дворак? Я думаю o-малое (если не чистый 0) по сравнению qwerty -> слепая десятипальцевая печать на qwerty.

У меня в клавогонках при желании ускориться нагрузка была на "держать в голове look ahead буфер" чтобы не печатать с экрана, а так-то руки могли ещё прибавить.

О_О отличная статья.
Прям хорошо разъяснила почему зачастую глядя на (clean code или "clean code") хочется его выкинуть весь и написать как в ссылке на репозиторий.

Чтобы все действия в одном месте, а не замаскированные размазывания преобразований по 15 функциям.

В основном это гуглится по lock global order (+ какие-то дополнительные условия, поскольку сам lock global order - это слишком строгая и весьма простая модель).
Когда занимался этим были и другие (кроме lock global order) модели, но нам не подошли.

ПС
Вот ссылка (судя по абстракту примерно то, статью не читал): делают глобальный порядок на блокировках и доказывают что благодаря этому всё хорошо.

https://link.springer.com/chapter/10.1007/978-3-642-11957-6_22

А вот перечислите, реально было бы интересно.

SICP, Code Complete, Clean Code, Design Patterns, Dragon Book - с ходу.

Остальное - либо не дотягивает, либо слишком технология-ориентировано, либо надо вспоминать.

  1. На этапе статического анализа исходного кода или компиляции.

  2. В рантайме.


Есть ещё такой "промежуточный" способ, как: deadlock-free model + runtime проверка соответствия программы модели (разумеется имеет смысл если проверка имеет преимущество перед поиском циклов в RAG \ WFG).

Вкладываться - я имею в виду "честно вкладываться, а не спекулировать (*)" надо на длительный срок в "несколько циклов".
В этом случае вы получаете что-то около "среднего дохода по экономике" - может быть 2% может быть 5% годовых.


*) Почему спекулировать это плохо? Потому, что на втором конце сделки (например если вы покупаете биток по 30к и надеетесь, что он отрастёт) всегда стоит другой агент, который рассчитал что биток и дальше будет падать.
В среднем тенденция такая, что условные Джоны с Иванами в этой игре расстаются с деньгами, а JP Morgan и City Bank деньги получают.

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

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

Лично я помучался с выбором нормального для изучения исполнителя, выучил несколько песен Фрэнка Синатры, а когда его песни надоели - бросил.

Я за три года поднял с А1-А2 (в какой-то момент в моей области появилась очень хорошая ru-документация и я расслабился) до B1-B2.
В этот момент скилл становится "самоподдерживающимся".

Что мне помогло:
1. Понимание, что "изучить язык" это не спринт, а марафон.
- 1.а) с преподавателем "мотивированному взрослому" нужно 400часов + 400 часов домашних работ до нужного уровня (по презентации Стэнфордского универа);
- 1.б) без преподавателя оценить сложно, но я бы оценивал в 1600 часов (учитывая, что часть из них будет "низкоэффективными", например в метро)
При этом только с уровня B1-B2 (я бы назвал это b2 с ошибками когда вы много текстов понимаете, но знаете ещё мало слов, неуверенны с предлогами, оборотами...) язык начинает быть "самоподдерживающимся" знанием, до этого надо вкладываться.

2. Представлять что вам нужно:
- знания - "грамматики" + словарный запас
- умения - reading \ writing \ listening \ speaking
- слушание и произношение - я бы выделил в отдельный скилл (во всяком случае когда я занялся этим отдельно это дало буст).
вам нужны только умения, но без "нижележащего" уровня знаний не обойтись.

3. Примерные инструменты:
Метро: duolingo(бесплатно) \ lingualeo (у них бывают хорошие скидки)
по дороге "фоном" - в наушниках OxfordBookwarms / лёгкие аудио
за компьютером
- чтение книг на английском
- слушание "сложных" аудио
- гугление непонятных вопросов.
- плагин-переводчик от lingualeo мне понравился возможностью повторять встреченные слова.


4. Набор инструментов
1, 2 годы -- слушать Oxford Bookwarms -- (с уровня 1, до предпоследнего)
1,2 годы -- lingualeo - грамматика; слова -- "неправильные глаголы" "фразовые глаголы"
1год ... -- рабочие мануалы / статьи (то, что по силам)
2,3 год -- duolingo (на нём нельзя научиться, но можно ДОУЧИТЬСЯ).
2,3,.... год - научпоп-литература. Советую именно её (советую: "basic economics"; "Guns, Germs, and Steel: The Fates of Human Societies")
3 год - подростковые фильмы, книги (ориентируйтесь на 12-14 лет, т.е. что-то типа Гарри Поттера).
1 год -- каналы на youtube:
- english with rebecca
- phonetic fanatic - хочу отдельно отметить этот канал, всё остальное +/- заменяемо, аналогов этому не видел.
2,3,... год -- каналы на youtube
- milton fridman
- robert sapolsky
- Stanford university channel + MIT channel (note: TED talks мне вообще не понравились, но можно сюда).


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

Извините за вопрос - а что является ближайшей аналогией этого курса на coursera ?

Просто у меня есть общее недоверие к теме "системного мышления" в изложении отечественных инфлюенсеров (в первую очередь это Анатолий Левенчук). Недоверие связано с тем, что форма изложения С.М. очень "нетехническая" и подозрительно близка к изложению всяких псевдо-научных теорий.

обобщения, сравнительные характеристики и обзывательства в этой теме некорректны, субъективны и неизменно отдают клюквой :)

Давайте загуглим:
what english accent easier to learn
is rhotic english accent learn to learn
is non-rhotic english accent easier to learn

Показательно:
1. Исследований, которые можно было бы выложить как "финальный аргумент";
2. Большинство опросов/мнений что американский английский проще (подозреваю, что сравнивались GA vs RP);
3.а. Большинство опросов/мнений говорят, что /r/-full акценты проще для изучения;
3.б. за /r/-less акценты выступают японцы-корейцы, у которых по-видимому есть специфические трудности с произношением r с гласными;


Предварительные выводы:
- американский вообще и /r/-full акценты в частности люди считают проще для изучения по опросам.
- ваша сентенция про клюкву не только неуместна но и похоже неверна; как и вообще заявление что частные мнения необобщаемы.

Разумеется мы делимся личным опытом.

1.
Ну вот как-то так сложилось, что американцев понимают, а англичан менее (и я подозреваю потому, что они не считают важным быть понятными другим).

2.

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

exactly!

Собственно 1+2 я и назвал снобизмом.
Вы так не считаете?

=============================================
> В любом случае делать на них упор и надеяться, что когда-нибудь сможешь
зазвучать "как британец" или "как американец", особенно самостоятельно,
не стоит.
То, что вы называете "особенностями" по-моему сложная (для русскоязычных) часть английского языка в навыках listening \ speaking. И эта, и без того сложная часть ещё и усложнена в британских акцентах.

В сравнении англичан с американцами (как сравнить англичан с другими странами без десятка примечаний я просто не знаю): у американцев получается говорить понятно для не-нэйтивов, а у англичан почему-то куда меньше.
Не прикладывать усилия для того, чтобы тебя понимали (несмотря на то, что ты изначально в выгодном положении и прикладываешь к общению куда меньше усилий) - на мой взгляд ну такое себе.

По поводу британских акцентов: /r/-less (вроде это называется non-rhoticity) акценты просто сложны, т.к. из-за выпадения /r/ требуется различать (и воспроизводить) больше гласных звуков, что реально сложно (особенно самостоятельно - мы в топике про самостоятельное изучение языка) особенно в задней части IPA-chart.

Англичане да снобы (ну и британский(ие) акценты английского довольно плохие для изучения).

А в США, если человек плохо знает английский это значит, что он знает как миинмум ещё один язык.

duolingo крутой инструмент, но очень ограниченный.

Его лучшее применение, на мой взгляд:
- полировка ошибок (когда ты уже что-то знаешь, но неточно)
- изучение новых слов (вроде слово повторяется за тему около 20 раз)
также "игровые механики" помогают поддерживать интерес (но лично у меня вот после 3х месяцев и 1 места в алмазной лиге интерес прямо пропал).

Во всём остальном он не очень хорош.
Есть места, где он просто недоделан и можно лучше, а есть где просто лучше наверное не сделать.

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

ПС
При этом места непонимания очень сильно отличаются от русского, где непонимание беглой речи тоже есть, но оно не так критично и я точно знаю как его исправлять в случае необходимости

Спасибо статья хорошая.
Из плюсов - достаточно полное рассмотрение с разъяснениями и примерами (наверное претендует на славу What Every Programmer Should Know About Memory).
Из минусов - перевод (иногда только к середине абзаца понимал о какой именно известной речи идёт вещь).

ПС
Про lock convoy не знал, но видел в одном проекте хак и теперь знаю, что против него: сначала крутится спинлок (с попыткой взять атомик) и только потом уход в системный вызов.

Разумеется если вы понимаете цели заказчика и вашей конторы (а они могут и не совпадать) - то вам куда проще работается, в смысле выбора конкретного технического решения из спектра возможных (это одна из самых сложных и часто "давлеющих" вещей - сделал 3 месяца назад формально правильно, но не подходяще под цели заказчика, сейчас переделываешь, да ещё и знаешь что ошибся ты).

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

Информация

В рейтинге
2 122-й
Зарегистрирован
Активность