All streams
Search
Write a publication
Pull to refresh
25
0
Лев Рычковский @devlev

web-программист

Send message

Ну на словах сложно объяснить. Тут видео нужно записывать экрана. Под рукой такого софта нет.


Попробую объяснить на словах: сдвигаю меню влево примерно на 100-200px, далее бросаю курсор и снова двигаю меню на столько же, когда я третий раз пытаюсь передвинуть меню, после бросания курсора оно сразу уезжает на начальную позицию. Предполагается что меню не должно езжать пока курсор висит над меню. А если пунктов будет не 5 а 50?


Но я по стилю кода вижу, что баги будут 100%. Например, если вы создаете setTimeout но не как не используете clearTimeout. Если вы рассчитываете, что проверка if( !RR.menuMove ) спасет от повторного вызова, то вы глубоко ошибаетесь!


Хороший тон для каждого setTimeout писать где то рядышком clearTimeout чтобы если вдруг нужно отменить действие, это можно было сделать легко быстро!


Пример из мира React

Да тут просто ничего не работает, от слова совсем!


Сразу вспомнилась история с перезапуском кинопоиска

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


Если взять автомобиль с двигателем мощностью в 100л/с то он сможет разогнаться до 200км/ч. то по вашему получается если добавить ему еще одни такой же двигатель, он разгонится до 400км/ч. Максимальная скорость увеличится ну максимум до 280км/ч. Мощность увеличилась в два раза, а скорость нет. Скорость увеличивается не линейно!


Силу тяги винта можно считать равной весу, который этот винт может поднять.


Поэтому если вы поставите два соостных винта с одним двигателем то получение 111 условных единиц тяги. А с двумя двигателями 222 условных единицы тяги.

Если взять один винт с мотором, который поднимает 1кг, и добавить к нему еще один мотор подъемная сила не будет 2кг! Чтобы развить такую подъемную силу, винт должен начать вращаться в 4 раза быстрее.


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

Если скорость вращения винта с одним мотором 30 000 оборотов в минуту то при добавлении второго мотора, по вашему, он должен вращаться со скоростью 120 000 оборот в минуту. Но винт чисто физически не будет вращаться с такой скоростью! Ну максимум скорость вращения увеличится до 45 000 оборотов в минуту. А это значит что при добавлении второго двигателя сила тяги возрастет всего до 1.2кг максимум! (30К об/м ~ 1 кг, 120К об/м ~ 2 кг, 45К об/м ~ 1.2 кг)


Возвращаясь к примеру выше с соосной схемой, когда винты были на расстоянии 1 кг друг над другом, сила тяги была 2 кг (по 1 кг на каждый). Когда мы их начали сближать до полного сближения, сила тяги падает до 1.2 кг. Здесь чисто физически не может быть такого положения винтов, при котором они создают тягу 2,22 кг.


А до момента совпадаения КПД системы постоянно расло за счет уплотнения воздуха в который ввинчиватеся второй винт.

Если бы такое было бы в действительности, если бы тяга из двух соосных винтов с двумя двигателями возрастала была до 2.2 кг вместо по 1 кг для каждого, мир был бы завален квадрокоптерами, построенными по такой схеме. Но 98% всех выпускаемых на рынке квадракоптеров не имеют соосной схемы. Рынок решает, что работает, а что нет. Значит это не работает. А эффект ввинчивания — ну это просто ваша фантазия.

Вы же сами пишете в статье:


Силу тяги ВМГ развивает пропорциональную квадрату угловой скорости

Получается если с двумя двигателями сила тяги увеличилась в два раза (с 111 до 222) то угловая скорость винта увеличилась в 4 раза?

Предлагаю снова пофантазировать.


Представим некоторую модель, состоящую из двух винтов (30 см в диаметре), расположенных по соосной схеме, один над другим, но так что расстояние между этими винтами очень большое (ну скажем 1км). Каждый из винтов будет обладать некоторой подъемной силой, скажем 100 условных единиц. Предположим что винты вращаются в одну и туже сторону и с одинаковой скоростью (все винты и двигатели одинаковые). А поскольку расстояние между ними очень большое, то общее тяговое усилие всей системы будет 200 условных единиц (поток от верхнего винта просто не достает до нижнего).


Теперь будем сближать эти винты между собой до полного их слияния. Если пренебречь толщиной винтов (взять ее за 0 см) и толщиной двигателя (взять ее за 0 см), то после полного их сближения, получим один винт (поскольку скорости одинаковые).
А тяговое усилие одного винта мы уже знаем — оно составляет 100 условных единиц тяги.


Получается некий предел, который от 200 единиц тяги на расстоянии в 1км стремится к некоему значению тяги на расстоянии 0. Здесь нужно учесть тот факт что вращают такой сдвоенный винт два мотора, а не один. Силу тяги ВМГ развивает пропорциональную квадрату угловой скорости. Даже если предположить, что угловая скорость возрастает на 20% от двух моторов, то сила тяги возрастает на корень от этого значения. Т.е. сила тяги такого винта составит порядка 110 единиц тяги.


Получается так, что сила тяги будет постепенно падать на протяжении сближения винтов с 200 единиц тяги до 110 при полном сближении. Вы же утверждаете, что сила тяги возрастает при соосной схеме и будет даже больше (211 условных единиц) той что номинально выдает каждый из винтов. Если следовать вашим словам, тогда должна находится некоторая точка на расстоянии от 1км до 0, в которой сила тяги будет максимальной.


Приведу другой пример:


Представим себе систему координат, состоящую из всего одной оси X. На этой оси расположен мячик для пинбола по которому бьют ракеткой со скоростью 30 км/ч. Допустим, что мячу передалась такая же скорость и он теперь движется вдоль оси со скоростью 30 км/ч. Пусть в системе будет небольшое трение, ну скажем о воздух. На расстоянии 10 метров от начальной точке, скорость мяча будет уже, ну скажем, 25 км/ч. Если в точке, на расстоянии 10 метров, ударить по мячу ракеткой в том же направлении и с такой же скоростью 30 км/ч то мячь пролитит на расстояние, ну скажим 50 метров. Если бы мы не ударяли бы по мячу ракеткой второй раз, то мячь бы пролетел тогда только 40 метров.


Получается, можно было потратить энергии только на один удар, и мяч бы пролетел бы на 40 метров или сделать два удара потратив в два раза больше энергии и мяч улетит всего на 10 метров дальше. А теперь представим себя, сидящим на мяче, после первого удара о ракетку. В момент совершения второго удара ракетка будет двигаться относительно мяча со скорость всего 5 км/ч! (скорость ракетки минус скорость мяча).


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


Вот цитата из вашей же статьи:


Результаты летных испытаний и другие экспериментальные материалы свидетельствуют, что коэффициент полезного действия соосных несущих винтов в среднем в 1,06-1,1 раза (на 6-10%) выше, чем одиночных, что видно на рис.1. Учитывая экономию мощности, идущей на компенсацию реактивного момента (10-12%), получаем, что в целом коэффициент полезного действия соосных вертолетов на 16-22% выше, чем одновинтовых.

Вот и получается что:


  1. в случае одного винта — тяга 100 условных единиц тяги.
  2. в случае соосной схемы тяга больше на 22% по сравнению с одновинтовой схемой — т.е. 122 условных единицы тяги.
  3. в случае двух винтов в одной плоскости тяга будет 200 условных единиц тяги.

Получается трикоптер со спаренными винтами будет иметь 366 условных единиц тяги, а гексакоптер с винтами в одной плоскости — 100*6 = 600 условных единиц тяги. Даже если вычесть порядка 10% на пересечение воздушных потоков, останется 540 условных единицы тяги!


Получается потеря в мощности при соосной схеме 78% а не 50% как я писал выше, для каждой пары винтов. А для всего коптера потеря в тяги составит 32% а не 25% как я писал выше.


Наверно поэтому так редко встречаются варианты коптеров с соосной схемой.

Да, с условными единицами вы хорошо придумали, лучше моих процентов. Но вот вопрос — откуда взялись дополнительных 11 условных единиц силы тяги при расположении винтов в соосной схеме?

Ну вы уклоняетесь от ответа) Вот есть один винт — он создает тягу, условно, 100%. Есть два винта рядом в одной плоскости — они создают тягу ну скажем 200%.


По вашему два винта в соосной схеме сколько наберут?

А вы как думаете, какой вариант будет тянуть сильнее, из моего комментария выше?

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


Представим себе длинное, очень прочное плечо, параллельное горизонту (например длинной 3 метра) с одной стороны оно закреплено на креплении, позволяющем ему свободно перемещаться вверх/вниз. Теперь на конце этого плеча будем моделировать различных схемы компоновки винтов:


  1. два винта закреплены на поперечной перекладине, так что сверху все это выглядит как длинная буква "Т". Оси вращения винтов разнесены друг от друга на расстоянии не больше половины диаметра (как у настоящего квадрокоптера)
  2. два винта в соосной схеме, один винт под другим (один винт направлен вниз, другой вверх).
  3. один винт закрепленный по центру на конце.

Будем считать все винты с моторами абсолютно одинаковыми.


Мне же кажется, что распределение сил будет примерно таким:


  1. оба винта дают по 100% тяги, но за счет их близости суммарная тяга обоих будет в районе 190%.
  2. верхний винт дает 100% тяги, нижний — 50% — итого: 150%
  3. один винт — 100% тяги

Площадь под поверхностью винтов, как мне кажется, сыграет решающую роль в выигрыше по КПД. Поэтому трикоптер со спаренными винтами будет выдавать 150% * 3 = 450% мощности по сравнению с гексакоптером у которого винты будут расставлены в одной плоскости: 95% * 6 = 570%. Потеря в мощности получается 21%.


А вы как думаете, какой вариант будет тянуть сильнее?

Ну как минимум на чертеже винтов не хватает, возможно вы просто не успели их дорисовать?


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


Мне кажется, здесь может теряться до 50%. Т.е. если в случае шести винтов, тяга будет слабее на целых 25% по сравнению с тягой гексакоптера с традиционной схемой расположения винтов.


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

Да писали уже про это тут https://habr.com/ru/post/475170/


Всякий раз когда у меня появляется желание написать свою версию слотов для React я говорю себе — не делай этого!


А если заменить "фатальный недостаток" на "фича" то и проблемы решатся сами собой.

Думаю вам надо отвлечься пока от программирования. От себя могу посоветовать потренировать другие навыки, если таковые не в совершенстве:


  1. Десятипальцевый метод ввода на клавиатуре (в слепую, когда не смотришь на клавиатуру совсем) — любому будущему программисту такой навык точно не помешает. Ставим цель 60 слов в минуту и вперед. Рекомендую этот сайт https://www.typingclub.com/ — есть бесплатный тариф.
  2. Upper-Intermediate уровень английского. Как же без него, опять без английского сейчас не куда, и если хочешь читать документации в первоисточнике то только English. Рекомендую вот этот сайт https://www.duolingo.com/ — тоже есть бесплатный тариф.

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

Считаю себя человеком, который собаку съел по части скролла.


Короткий ответ: фиксировать положение скролла можно только с помощью JS. Чтобы скролл оставался всегда по центру нужно каждый раз пересчитывать его положение при добавлении элементов.


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

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

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


Я считаю, что нужно быть очень сильным духом, чтобы лишить себя социума в общем на финансовую прибыль.


P.S. А может те люди, которые съехали, просто обанкротились?

Я конечно не специалист по Vuejs, больше по React, но общую суть уловил. Такая же модель шаблонов используется в ASP.NET приложениях с шаблонизатором Razor. В Razor у шаблона страницы можно указать родительский шаблон с помощью которого будет отрисована страница. Но если переносить вашу логику на шаблоны Razor, то название шаблона layout: "green-layout" будет указываться в файле page.vue. Мне кажется роутер не должен знать о том в каком виде нужно отрисовывать компонент. Задача роутера — роутить компоненты. Роутер должен знать, что нужно вывести такой то компонент, а как его вывести (с каким шаблоном) это уже пусть сам компонент решает.


А вообще система с layout в Razor мне не очень нравится. Часто нужно прокинуть кусок кода в родительский компонент и тут начинаются танцы с бубном из кучи блоков прокидывания этого самого кода.


Поэтому для меня более предпочтительная модель построения страниц на React


/// router
<Router>
   <Route>
      <ComponentPage1>

/// сomponentPage1
<RootView layout="green">
   <PageView>
</RootView>

Где <RootView> это по сути ваш корневой layout, только прокидывание свойст получается как бы сверху, а не снизу. В случае с Razor прокидывание получается снизу на верх.

Выше писали что создавали и на маках, я не знаю, у меня не мак.

Обычно, кардинальные решения принимаются после совместного голосования, тестах на фокус группах. Но никто, я повторяю, никто, не имеет право, создавать без моего ведома, иконки у меня на рабочем столе!!! Сделать такой удар по репутации компании, да как вас еще ноги по офису носят? Искренне желаю вам, Володя, скорейшего увольнения с вашей текущей должности.

Согласен с вами, так действительно будет удобнее.

  1. Мне кажется useText в виде callback функции идеально здесь подходит, потому что если бы useText возвращал бы сразу текст то тогда пришлось бы каждый раз делать перерендер компанента.
  2. Тоже показалось странным использовать свои собственные Route, Switch и т.д
  3. У меня тоже возникла мысль что наверно должен быть некий простенький эмулятор телеги что-ли чтобы удобно и быстро все тестировать.

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Registered
Activity