Прогнал 27 ресурсов с двух проб в Москве и Новосибирске за 5 суток, разобрал 278 эпизодов расхождений между ними, нашёл живые трёхчасовые блоки telegram.org из Сибири.
Нейросеть старается следовать правилам русского языка и неполные предложения в прошедшем времени без необходимого контекста не употребляет. В этом предложении нет существительного и оно однозначно не восстанавливается. Кто “прогнал 27 ресурсов”? Кто “разобрал 278 эпизодов”? Я? Ты? Сантехник Петров? Карл Маркс? В повелительном наклонении оно бы звучало нормально: “прогони 27 ресурсов”. Сразу понятно - второй род, единственное число. Значит “ты”. Ты прогони. В будущем времени тоже: “прогоню 27 ресурсов”. Сразу понятно - первый род, единственное число, местоименние “я”. Я прогоню. Но не “прогнал 27 ресурсов”. Допустим контекст из предыдущих предложений, скажем: “Мой кот два раза прошел по клавиатуре и что-то запустил. Прогнал 27 ресурсов с двух проб…”. Тогда понятно о ком речь. Но контекста нет.
P.S. Извините, но меня бы так не колбасило если бы подобные речевые обороты не стали в последнее время настолько распространены. Даже банки мне шлют сообщения “Одобрили Вам кредит!”. Наверное, Бивис и Баттхед одобрили, раз не написано кто.
Каждый рантье считает себя великим трудягой. Ведь в его ведении выбор банка куда вложить деньги и контроль - не ошиблись ли они в начислении процентов на которые потом этому рантье жить. И налоги тоже надо платить. Но это все равно пассивный доход.
Пассивный это когда сидишь на пляже, а деньги капают
Так дропшиппинг это оно и есть. Это не простая перепродажа где тебе сначала требуются собственные средства на закупку, а потом размещение товаров и попытка их продать вернув свои деньги с процентом. Это когда есть китайцы с условным магазином “Великий нефритовый путь” которые готовы принимать заказы на отправку товаров почтой не только со своим логотипом, но и с любым другим каким клиент пожелает. Нигде на посылке не будет указан оригинальный продавец. То есть делаете вебсайт, со своим названием и логотипом, скажем тот же AXEVIBE, который фактически за душой ничего не имеет, а переадресует заказы настоящему магазину “Великий нефритовый путь” за некоторую комиссию. Переадресует автоматически, у китайцев есть или API и кастомизируемые под вас веб-странички. Приняв заказ и получив оплату (формочку оплаты картой или пейпалом китайцы обычно сами организуют) магазин рассылает коробочки (без надписей, или даже с надписями AXELVIBЕ) с нефритовыми массажерами по полученным адресам, а вам, как владельцу сайта, за подгон клиентов платит комиссию. Владелец сайта лежит на пляже, собирает комиссию и может раз в год напрягается и домен продлевает. Вот только, как указано в статье, саппорт надо самому осуществлять. Мы же не хотим покупателя к непосредственному продавцу отправить. Во-первых, он может кроме китайского ни на каком и не говорить. Во-вторых, это покупателя испугать может. Он к вам пришел потому как вы Джон из соседнего Техаса, а не Ли Сунь из Шанхая который не выглядит надежным. А в-третьих, кто же себя любимого из цепочки выкидывает? Весь профит базируется на том, чтобы клиент обращался к тебе, а не мимо тебя. Но поскольку хочется лежать на пляже, получать пассивный доход и даже на саппорт не отвлекаться, то вместо саппорта копипастой генерятся отписки.
обычно в бесскобочной записи все аргументы являются просто списком через запятую
Кстати, есть исключение. Если первый параметр указан в прототипе как & то первым параметром можно написать блок кода перед которым не надо sub и после которого не нужна запятая. То есть с прототипом &@ легко можно написать свой аналог grep и вызывать его как my @filtered = mygrep { $_ > 5 } 0..10; И тут неважно есть скобки или нет, вот так my @filtered = mygrep({ $_ > 5 } 0..10); тоже можно.
Тут хитрость в том, что парсер без скобок трактует это как вызов метода myprint для STDERR который одновременно является и typeglob и объектом класса IO::File, наследником IO::Handle. А в IO::Handle мы только что доопределили свой метод. Но в варианте со скобками это пришлось бы переписать как:
STDERR->myprint("hello");
у данной конкретной функции прототип нестандартный
У данной (print) прототип нестандартный. Но есть встроенные и со стандартными прототипами которые без прототипа работать не будут. Вот, скажем, у push стандартный прототип (\@@). Если его вызвать с амперсандом:
#!/usr/bin/perl
use strict;
use warnings;
my @arr;
&push(@arr, 'value');
то получим:
Undefined subroutine &main::push called at /tmp/push.pl line 8.
Еще, кстати, побочный эффект. С амперсандом оно ищет только в main::, а в CORE:: не ищет. Ну ок, подскажем ему где искать.
#!/usr/bin/perl
use strict;
use warnings;
my @arr;
&CORE::push(@arr, 'value');
и получаем:
Type of arg 1 to &CORE::push must be array reference at /tmp/push.pl line 8.
И это в чистом виде игнорирование прототипа. Вполне стандартного. Прототип \@@ говорит, что первым параметром должен быть указан массив, а в функцию будет передана ссылка на него. Поскольку прототип игнорировался, то были переданы значения (ноль значений на самом деле, так как @arr пустой), а не ссылка.
А с прототипами и их внезапной неработой самые приколы начинаются когда функции библиотечные или даже встроенные. Возьмем print, очень популярную, все ее назубок знают. А все ли знают какой у нее прототип? И что будет если вызывать эту функцию с & и игнорировать прототипы? Давайте вызовем ее тремя способами. Первый:
#!/usr/bin/perl
use strict;
use warnings;
print STDERR "error1\n";
результат:
error1
Второй:
#!/usr/bin/perl
use strict;
use warnings;
print(STDERR "error2\n");
результат:
error2
Третий:
#!/usr/bin/perl
use strict;
use warnings;
&print(STDERR "error3\n");
результат:
String found where operator expected (Do you need to predeclare "STDERR"?) at /tmp/print.pl line 6, near "STDERR "error3\n""
syntax error at /tmp/print.pl line 6, near "STDERR "error3\n""
Execution of /tmp/print.pl aborted due to compilation errors.
Продолжу. Крайне неочевидным побочным эффектом использования амперсанда является неявная передача параметров из вызывающей функции. Напишем короткую программку с двумя функциями. inner печатает свои аргументы, а outer вызывает inner двумя способами, с амперсандом и без. И вызовем outer.
#!/usr/bin/perl
use strict;
use warnings;
sub inner {
print "Передано " . scalar(@_) . " аргументов: " . join(', ', @_) . "\n";
}
sub outer {
inner;
&inner;
}
outer(1,2,'dummy');
результат:
~$ /tmp/tst.pl
Передано 0 аргументов:
Передано 3 аргументов: 1, 2, dummy
Во втором случае аргументы внешней функции передались внутрь второй. Это неожиданно и может приводить к странным результатам включая порчу данных (учитывая что inner может не только “видеть”, но и изменять аргументы outer).
Так и Perl имеет lexical scope variables. И они являются предпочтительными. local используется редко, обычно все переменные определяются как my и тогда они связаны лексически и работают быстро.
Вот так не пишите никогда. Разве что при написании собственного autoloader-а (но это точно не про введение в Perl). Есть три основных способа вызвать подпрограмму (она же функция):
1. subr() 2. subr 3. &subr
Так вот, преимущественно стоит использовать первый метод. С ним меньше всего подводных камней и неоднозначностей. Пример:
printf("У %d коров %d рогов\n", x, 2 * x);
Иногда можно второй. Когда вы уверены в том, как оно выполняется и когда скобки привносят ненужную громоздкость. Например:
А третьим способом позьзоваться не надо почти никогда. Это наследие Perl4 который уже 32 года не актуален. Хотя совместимость с ним поддерживается.
И да, на точке-с-запятой в конце строки не экономьте (как это сделано в этом же примере). А то оно рано ли поздно вам боком выйдет. Мало того, во многих местах кода хорошим тоном считается даже оставлять концевую запятую при перечислении элементов в списках, типа:
my @commands = ( 'init', 'run', 'exit', );
Это не является нарушением синтаксиса, а diff-ы при добавлении элементов выходят аккуратнее.
З.Ы. За Perl-ом закрепилась дурная слава write-only языка не в силу его имманентных свойств, а из-за того, что горе-программистам лень прочитать (а прочитав - выполнять) perldoc perlstyle который идет в комплекте с интерпретатором.
А при насыщени сердечника КПД значит не падает? То же самое происходит. Про конденсатор - согласен. Кстати, во "взрослых" обратноходовых преобразователях (а эта схема является простейшим обратноходовым) специально предпринимают меры чтобы не было насыщения. Например, зазоры в магнитопроводе делают.
ПОС на выключение запускается не из-за выхода транзистора из насыщения и не из-за возрастания коллекторного тока, а из-за того, что магнитный поток перестает нарастать. А потом и уменьшаться начинает. А ЭДС индукции во вторичной обмотки пропорциональна изменению магнитного потока. Да, поток может перестать нарастать из-за насыщения сердечника. Но даже если насыщения сердечника нет, то он все равно перестанет нарастать, только несколько позже.
А зачем в этой схеме насыщение сердечника? Транзистор приоткрывается, ток начинает нарастать. Изменение тока приводит к появлению ЭДС во вторичной обмотке полностью открывающей транзистор. В какой-то момент ток перестает расти и без насыщения сердечника. Потому как сопротивление открытого транзистора, внутреннее сопротивление батареи и сопротивление обмотки ограничивают ток. Как только ток перестает расти, ЭДС на вторичной обмотке падает. Транзистор призакрывается. Теперь ток не просто не растет, а падает. Падение тока вызывает появление ЭДС обратой полярности закрывающей транзистор полностью.
Качество звука по нынешним меркам очень низкое. Узкая полоса частот, монофонический сигнал, амплитудная модуляция восприимчива к помехам. А уровень помех в этих диапазонах стал запредельным. Покрытие одной станцией тысяч километров расстояния больше не актуально. В-общем, все ушли в УКВ.
Ну вы же уже читали Постановление Правительства РФ от 16 апреля 2012 г. N 313, я надеюсь? Создание криптографических средств в РФ является лицензируемым видом деятельности. А факультативно, ст. 14.1 КоАП РФ и ст. 171 УК РФ для общего развития, об ответственности за занятие лицензируемыми видами деятельности не имея лицензии.
В данном примере если подойдут батареи 20C, то подойдут и 12С. Потому как c-rating величина отосительная, а в абсолютных цифрах допустимый разрядный ток первого аккумулятора 2500 x 12 = 30 000 mA = 30 A. А у второго 1500 x 20 = 30 000 mA = 30A. То есть 12C способен безопасно выдавать тот же разрядный ток, только у него при этом еще и емкость зачительно выше (а значит проработает он от одной зарядки дольше).
Зато подводку к статье писал человек.
Нейросеть старается следовать правилам русского языка и неполные предложения в прошедшем времени без необходимого контекста не употребляет. В этом предложении нет существительного и оно однозначно не восстанавливается. Кто “прогнал 27 ресурсов”? Кто “разобрал 278 эпизодов”? Я? Ты? Сантехник Петров? Карл Маркс? В повелительном наклонении оно бы звучало нормально: “прогони 27 ресурсов”. Сразу понятно - второй род, единственное число. Значит “ты”. Ты прогони. В будущем времени тоже: “прогоню 27 ресурсов”. Сразу понятно - первый род, единственное число, местоименние “я”. Я прогоню. Но не “прогнал 27 ресурсов”. Допустим контекст из предыдущих предложений, скажем: “Мой кот два раза прошел по клавиатуре и что-то запустил. Прогнал 27 ресурсов с двух проб…”. Тогда понятно о ком речь. Но контекста нет.
P.S. Извините, но меня бы так не колбасило если бы подобные речевые обороты не стали в последнее время настолько распространены. Даже банки мне шлют сообщения “Одобрили Вам кредит!”. Наверное, Бивис и Баттхед одобрили, раз не написано кто.
Каждый рантье считает себя великим трудягой. Ведь в его ведении выбор банка куда вложить деньги и контроль - не ошиблись ли они в начислении процентов на которые потом этому рантье жить. И налоги тоже надо платить. Но это все равно пассивный доход.
Так дропшиппинг это оно и есть. Это не простая перепродажа где тебе сначала требуются собственные средства на закупку, а потом размещение товаров и попытка их продать вернув свои деньги с процентом. Это когда есть китайцы с условным магазином “Великий нефритовый путь” которые готовы принимать заказы на отправку товаров почтой не только со своим логотипом, но и с любым другим каким клиент пожелает. Нигде на посылке не будет указан оригинальный продавец. То есть делаете вебсайт, со своим названием и логотипом, скажем тот же AXEVIBE, который фактически за душой ничего не имеет, а переадресует заказы настоящему магазину “Великий нефритовый путь” за некоторую комиссию. Переадресует автоматически, у китайцев есть или API и кастомизируемые под вас веб-странички. Приняв заказ и получив оплату (формочку оплаты картой или пейпалом китайцы обычно сами организуют) магазин рассылает коробочки (без надписей, или даже с надписями AXELVIBЕ) с нефритовыми массажерами по полученным адресам, а вам, как владельцу сайта, за подгон клиентов платит комиссию. Владелец сайта лежит на пляже, собирает комиссию и может раз в год напрягается и домен продлевает. Вот только, как указано в статье, саппорт надо самому осуществлять. Мы же не хотим покупателя к непосредственному продавцу отправить. Во-первых, он может кроме китайского ни на каком и не говорить. Во-вторых, это покупателя испугать может. Он к вам пришел потому как вы Джон из соседнего Техаса, а не Ли Сунь из Шанхая который не выглядит надежным. А в-третьих, кто же себя любимого из цепочки выкидывает? Весь профит базируется на том, чтобы клиент обращался к тебе, а не мимо тебя. Но поскольку хочется лежать на пляже, получать пассивный доход и даже на саппорт не отвлекаться, то вместо саппорта копипастой генерятся отписки.
Да, конечно. Встроенная функция из пространства имен CORE (см. https://perldoc.perl.org/CORE)
Кстати, есть исключение. Если первый параметр указан в прототипе как & то первым параметром можно написать блок кода перед которым не надо
subи после которого не нужна запятая. То есть с прототипом&@легко можно написать свой аналогgrepи вызывать его какmy @filtered = mygrep { $_ > 5 } 0..10;И тут неважно есть скобки или нет, вот такmy @filtered = mygrep({ $_ > 5 } 0..10);тоже можно.В бесскобочной записи как раз можно описать собственный
print.результат:
Тут хитрость в том, что парсер без скобок трактует это как вызов метода myprint для STDERR который одновременно является и typeglob и объектом класса IO::File, наследником IO::Handle. А в IO::Handle мы только что доопределили свой метод. Но в варианте со скобками это пришлось бы переписать как:
У данной (
print) прототип нестандартный. Но есть встроенные и со стандартными прототипами которые без прототипа работать не будут. Вот, скажем, уpushстандартный прототип(\@@). Если его вызвать с амперсандом:то получим:
Еще, кстати, побочный эффект. С амперсандом оно ищет только в main::, а в CORE:: не ищет. Ну ок, подскажем ему где искать.
и получаем:
И это в чистом виде игнорирование прототипа. Вполне стандартного. Прототип
\@@говорит, что первым параметром должен быть указан массив, а в функцию будет передана ссылка на него. Поскольку прототип игнорировался, то были переданы значения (ноль значений на самом деле, так как@arrпустой), а не ссылка.А с прототипами и их внезапной неработой самые приколы начинаются когда функции библиотечные или даже встроенные. Возьмем
print, очень популярную, все ее назубок знают. А все ли знают какой у нее прототип? И что будет если вызывать эту функцию с & и игнорировать прототипы? Давайте вызовем ее тремя способами. Первый:результат:
Второй:
результат:
Третий:
результат:
Продолжу. Крайне неочевидным побочным эффектом использования амперсанда является неявная передача параметров из вызывающей функции. Напишем короткую программку с двумя функциями. inner печатает свои аргументы, а outer вызывает inner двумя способами, с амперсандом и без. И вызовем outer.
результат:
Во втором случае аргументы внешней функции передались внутрь второй. Это неожиданно и может приводить к странным результатам включая порчу данных (учитывая что inner может не только “видеть”, но и изменять аргументы outer).
Например, внезапно перестают работать прототипы. Напишем программку с единственной функцией setter и вызовем ее дважды, без амперсанда и с ним.
результат:
Во втором случае setter не присвоил переменной $x значение 10.
Или вот еще. Напишем махонькую программку в которой есть только exit. Но сделаем в слове exit опечатку.
Проверим синтаксис запустив perl с ключом -c, т.е. попросим его прекомпилировать код, но не исполнять.
А теперь добавим & перед exut и снова попробуем.
Интерпретатор перестал ловить ошибку на этапе прекомпиляции. Она выскочит на этапе исполнения, но это может быть гораздо неприятнее.
Так и Perl имеет lexical scope variables. И они являются предпочтительными.
localиспользуется редко, обычно все переменные определяются какmyи тогда они связаны лексически и работают быстро.Язык хороший, примеры - говно.
Вот так не пишите никогда. Разве что при написании собственного autoloader-а (но это точно не про введение в Perl). Есть три основных способа вызвать подпрограмму (она же функция):
1. subr()
2. subr
3. &subr
Так вот, преимущественно стоит использовать первый метод. С ним меньше всего подводных камней и неоднозначностей. Пример:
printf("У %d коров %d рогов\n", x, 2 * x);Иногда можно второй. Когда вы уверены в том, как оно выполняется и когда скобки привносят ненужную громоздкость. Например:
my @sorted = sort { $a <=> $b } map { $_->{order} } @records;А третьим способом позьзоваться не надо почти никогда. Это наследие Perl4 который уже 32 года не актуален. Хотя совместимость с ним поддерживается.
И да, на точке-с-запятой в конце строки не экономьте (как это сделано в этом же примере). А то оно рано ли поздно вам боком выйдет. Мало того, во многих местах кода хорошим тоном считается даже оставлять концевую запятую при перечислении элементов в списках, типа:
my @commands = (
'init',
'run',
'exit',
);
Это не является нарушением синтаксиса, а diff-ы при добавлении элементов выходят аккуратнее.
З.Ы. За Perl-ом закрепилась дурная слава write-only языка не в силу его имманентных свойств, а из-за того, что горе-программистам лень прочитать (а прочитав - выполнять) perldoc perlstyle который идет в комплекте с интерпретатором.
Микроконтроллеры STM32F2x имеют от 64 до 128 килобайт ОЗУ внутри и ножек у этого ОЗУ просто нет.
А при насыщени сердечника КПД значит не падает? То же самое происходит. Про конденсатор - согласен. Кстати, во "взрослых" обратноходовых преобразователях (а эта схема является простейшим обратноходовым) специально предпринимают меры чтобы не было насыщения. Например, зазоры в магнитопроводе делают.
ПОС на выключение запускается не из-за выхода транзистора из насыщения и не из-за возрастания коллекторного тока, а из-за того, что магнитный поток перестает нарастать. А потом и уменьшаться начинает. А ЭДС индукции во вторичной обмотки пропорциональна изменению магнитного потока. Да, поток может перестать нарастать из-за насыщения сердечника. Но даже если насыщения сердечника нет, то он все равно перестанет нарастать, только несколько позже.
А зачем в этой схеме насыщение сердечника? Транзистор приоткрывается, ток начинает нарастать. Изменение тока приводит к появлению ЭДС во вторичной обмотке полностью открывающей транзистор. В какой-то момент ток перестает расти и без насыщения сердечника. Потому как сопротивление открытого транзистора, внутреннее сопротивление батареи и сопротивление обмотки ограничивают ток. Как только ток перестает расти, ЭДС на вторичной обмотке падает. Транзистор призакрывается. Теперь ток не просто не растет, а падает. Падение тока вызывает появление ЭДС обратой полярности закрывающей транзистор полностью.
Откуда вы знаете, что техногенных?
Качество звука по нынешним меркам очень низкое. Узкая полоса частот, монофонический сигнал, амплитудная модуляция восприимчива к помехам. А уровень помех в этих диапазонах стал запредельным. Покрытие одной станцией тысяч километров расстояния больше не актуально. В-общем, все ушли в УКВ.
Ну вы же уже читали Постановление Правительства РФ от 16 апреля 2012 г. N 313, я надеюсь? Создание криптографических средств в РФ является лицензируемым видом деятельности. А факультативно, ст. 14.1 КоАП РФ и ст. 171 УК РФ для общего развития, об ответственности за занятие лицензируемыми видами деятельности не имея лицензии.
В данном примере если подойдут батареи 20C, то подойдут и 12С. Потому как c-rating величина отосительная, а в абсолютных цифрах допустимый разрядный ток первого аккумулятора 2500 x 12 = 30 000 mA = 30 A. А у второго 1500 x 20 = 30 000 mA = 30A. То есть 12C способен безопасно выдавать тот же разрядный ток, только у него при этом еще и емкость зачительно выше (а значит проработает он от одной зарядки дольше).