UPD от 2017-02-18: ещё по поводу надуманных примеров на shell. Вы говорите, примеры надуманные, что можно сделать find -exec или xargs. Да, можно. Но как минимум сам факт того, что нужно постоянно держать в голове, что, мол, цикл нельзя и нужен -exec и xargs — это уже костыль. Проистекающий из принципа «всё есть текст», ну или из слишком тупой реализации этого принципа в UNIX shell.
Я вас наверное удивлю, но очень много где нужно "постоянно держать в голове, что можно а что нельзя". Например:
Почему-то в списках aka std::list (или LinkedList) доступ по индексу не сильно быстрый, а в vector добавление "тормозит"
В C++ нельзя кидать исключение из деструктора
В Objective C нельзя nil засунуть в NSArray
В Java hashCode и equals зачем-то бывает нужно переопределять. Да еще и как попало написать нельзя.
Я не спорю, что можно придумать задачу, которая тяжело решается используя unix shell. Особенно в интерактивном режиме (в смысле из интерактивного шелла). При чем более приближенных к реальности, чем 'положить в файл результат grep-а по нему же'. И да, таких задач очень много. Вы предложили изначально задачу с touch-ем, я показал решение в 1 элементарную строчку. shell идеально подошел для её решения.
Если задача становится слишком сложной для shell, то я просто возьму python/perl или что-нибудь еще. Вплоть до того что буду прям из кода на python вызывать command-line утилиты используя subprocess.check_output, если так проще/быстрей.
Я помню, как однажды жутко оплошался, не зная этих тонкостей. Я набрал find -delete -name '*~' вместо find -name '*~' -delete или что-то такое. Ну подумаешь, думал я, опции не в том порядке. Смысл же тот же. И find удалил всё. И снёс свои важные файлы.
А если кто-то случайно сделает cp old_file new_file вместо cp new_file old_file и начнет писать "подумаешь, опции не в том порядке", то виноват тоже будет shell? А если я, наконец, нож возьму не той стороной и вместо того чтобы колбасу отрезать, руку порежу?
Нужно было вместо этого сделать так, чтобы find только умел искать файлы. А всю остальную функциональность нужно вынести из него. Проверки на размер файла должны быть снаружи.
Эээ. А -type тоже оттуда уберем? И вообще, вас кто-то заставляет пользоваться "встроенной" проверкой на размер? Проверяйте снаружи, если так удобнее. Только для простых случаев кода так будет больше заметно. В этом же и всё удобство шелла, что часть задач легко решается в одну строку вроде find ~/tmp -mtime +5 -delete практически не задумываясь.
Чем вы предлагаете shell заменить? perl/python? Покажите решение с удалением всех файлов определенного размера и сравните количество кода.
Скорее наоборот. Если дорога не идеально ровная, то в случае стабилизации, кадры не так сильно отличаются между собой, а значит при том же битрейте детализация будет лучше.
Во всяком случае мне с SJCAM M10+ показалось, что стабилизация помогает.
Я конечно не спорю, в статье есть много достаточно правдивого. Но реально некоторые вещи притянуты за уши…
Вы только представьте! Вот допустим, нужно удалить все файлы в текущей папке с размером, большим 1 килобайта. Да, я знаю, что такое надо делать find'ом. Но давайте предположим, что это нужно сделать непременно ls'ом. Как это сделать?
Вот допустим, нужно забить гвоздь. Да, я знаю, что такое надо делать молотком. Но давайте предположим, что это нужно сделать непременно микроскопом. Как это сделать?
Я не закончил про UNIX shell. Рассмотрим ещё раз пример кода на shell, который я уже приводил: find foo -print0 | while IFS="" read -rd "" A; do touch — "$A"; done. Здесь в цикле вызывается touch (да, я знаю, что этот код можно переписать на xargs, причём так, чтобы touch вызывался только один раз; но давайте пока забьём на это, хорошо?).
А почему не find foo -exec touch {} \;?
Код на любом другом языке программирования будет работать быстрее этого. Просто на момент появления UNIX shell он был одним из немногих языков, которые позволяют написать это действие в одну строчку.
Код на любом языке можно написать так, чтобы он работал быстрее этого. В том числе и на shell. Более того, на любом языке можно написать код, который будет медленнее этого…
Занятно, что эппл, популяризовавший планшеты, никогда не стремился натянуть сову на глобус сделать Единый Интерфейс Для Всего, и ни в пользователях, ни в разработчиках у них дефицита нет.
А тут уже видимо другие особенности мозга (языка/образования) накладываются… Может быть и было бы быстрей, если бы скорость чтения в обе стороны была одинаковой.
Каждый переход из одной колонки в другую — это потеря времени. Такой себе своеобразный cache miss в мозге. При этом статья в газете, как правило, намного длиннее сообщения на форуме, одного комментария и т.д. Три перехода на соседнюю колонку за статью — это намного меньше, чем по переходу на сообщение.
Не случайно в газетах вообще есть разбивка на колонки, и статьи таки стараются писать вертикально. Вероятность того, что Вы найдете относительно маленькую статью (скажем, размером в 3-4 комментария из 1-2 предложений), и которую при этом разобьют на 2-3 колонки практически равна нулю. Это разве что может быть продиктовано какой-нибудь особенностью верстки (иначе не влезло). Либо это 'первая страница', куда обычно стараются впихнуть побольше заголовков в качестве собственной рекламы.
Блокировка установки русскоязычной прошивки и перепайка микросхемы «сертифицированными специалистами» за доплату — просто бред.
Извините, если вы считаете Blackvue премиальным брендом, то его название на коробке должно говорить о некоторой планке качества, продуманности, сервиса, и т.д. А если под одним брендом и одной моделью можно встретить разные регистраторы, еще и с несовместимыми прошивками, то это, извините, бренд сам себе грабли положил.
Возьмите пример с Samsung. Под одной моделью (допустим S7 Edge) они тоже продают несколько версий железа. Но на коробке где-то мелкими буквами написан немаркетинговое название модели.
Единственное что я могу предложить — привозите сами и китайские версии и продавайте их заметно дешевле 'барыг, получающих сверхприбыли'. Только честно напишите чем китайская версия хуже.
Я как-нибудь не поленюсь и выложу сюда фото внутренностей другой сгоревшей 'поделки' этого псевдо-премиума — Power Magic.
Это уже спорно. Раньше когда телефонов/платформ было много — может быть. Сейчас реально платформы целых две… А у конкретного человека скорее всего вообще одна. Соответственно написать какой-нибудь скрипт для бэкапа не сильно сложно.
Пользуюсь очень активно. Кстати QI зарядки уже тоже появились с так называемым 'Fast Charge'. Телефоны от Samsung умеют показывать, когда они заряжаются 'быстро'.
Единственное что меня разочаровало: свежий S7 Edge не умеет 'быстро заряжаться' с включенным экраном. (Хотел получить беспроводное крепление в машину и пользоваться телефоном как навигатором). В общем батарейка все равно садится. Но очень медленно.
Напишу и я сюда свой отзыв о продукции этого «премиального» бренда. Пусть не регистратора, но близко к этому.
Так вот, есть у BlackVue такая штука, как Power Magic Pro. Идея у неё очень прикольная. Позволяет оставить регистратор работать от аккумулятора, ограничив при этом максимально допустимое время работы, чтобы не допустить полного разряда аккума. Можно задать время работы (6, 12, 24 часа, либо бесконечно) и минимально допустимое напряжение на АКБ (12, 12.5, 22.8 и 23.2 вольта). Просят за это чудо 30-35 баксов.
Первое разочарование этим «премиальным» аксессуаром пришло с пониманием того, что пороги срабатывания по напряжению подобраны очень хреново:
— 12.5v это слишком много (примерно 80% емкости). Даже вполне себе свежий АКБ зимой на авто, которое ездит в обычном городском цикле не всегда заряжен до такого напряжения.
— 12.0v уже слишком мало. Это около 30% емкости. После такого зимой (например, через день) можно и не уехать.
Года два я с этим устройством проездил. А потом в один прекрасный день оно тупо перегорело. Как позже оказалось, провод к регистратору был проложен не совсем удачно, и в итоге перетерся и замкнул. При этом 2A предохранители, через который эта поделка была подключена, остались целыми.
В общем, как оказалось, в этом 'премиальном продукте' похоже что ПОЛНОСТЬЮ ОТСУТСТВУЕТ защита от перегрузки. Спасибо что не загорелось. Я конечно не 'специалист с огромным опытом в области производства регистраторов', но способ защиты от перегрузки уже давно придуман. И практически любая китайская автомобильная зарядка ценой в пару баксов на али легко переживает КЗ. А тут 'премиум класс' и всё такое.
Вы сами это написали… Если это намек на то что Вы писали про подключение, то это ничего не меняет. Покажите мне любое современное бытовое устройство, которое дохнет при подключении к нему чего-либо.
А на Google Play на ползвезды больше. Основная масса — жаловались на отсутствие русского языка, который появился. Уже писал об этом, не берите по верхам, разбирайтесь и смотрите в суть вопроса.
Ага… И эти отзывы были на русском языке. Для полноты картины гляньте английский Play Market. Вот прям сейчас смотрю и в первой десятке:
1. App had improved but… I have bought two DW650S-2CH units, why can't I use both on the same account without paying to register the second camera? Why should I have to create a separate account for each camera to use the free cloud service, having just paid $500 for each unit, it is stupid and pointless!
2. DR550GW WiFi connect issue Sometimes connects to WiFi but drops after about 30 seconds. Buffer speed is terrible during that time and it's impossible to export a file to device because it always drops before it completed. Please fix WiFi issues rather than concentrating on new features and language support.
3. It gets irritating at times when it keeps prompting non stop «No SD Card». I had to restart my car Engine and hope that it will quiet down. Sometimes, restarting my car Engine helps and sometimes, It doesn't and it means I have to restart my car Engine again in the hope that it will quiet down.
5. Unstable through blackvue cloud DR650GW -1CH Whenever I try to connect the device through this blackvue cloud, will disconnect. When i do manage to get connected, the playback is super slow and after 30 sec the device will automatically reboot, very frustrating as I have fast network on 4G Wi-Fi both my phone and my car. And yes, I have updated firmware already. Would not recommend your product to any friends n family until you guys Fix the problem.
6. Waste of time. Had a new phone now app will not play a single file. Give us back the Old app that worked! Now it says the firm ware is not compatible with the app? Do I now have a cabcam that is useless! Well done.All that money wasted. Sort your game out as this is crazy. NOT HAPPY
7. Failed Wi-Fi Keep getting message 'failed to connect to WiFi'. 650GW 2-channel dashcam was working ok before
8. Crashes all the time. Crashes whenever I view notifications. Wish I could disable the cloud connected/disconnected notifications too as they are a nuisance because my hotspot loses coverage during parts of the daily commute.
9. I connect to the device wifi, I open the app and 90%of the time I get «Failed to connect to wifi»
Понимаете. Есть специфичные для регистраторов вещи, например крепление на стекло, аккумулятор vs конденсатор, какие-то особенности компоновки и т.д.
А есть вещи, которые общие для всей техники, например несовместимые электрически разъемы не соединить физически. И НИКОГДА выдергивание провода не должно приводить к выходу техники из строя.
Я Вам тоже еще раз скажу, что мне не нужно быть специалистом с кучей лет опыта в производстве/тестировании/пиаре прегистраторов или любой другой техники, чтобы сказать, что сгорающий от выдергивания разъема прибор — это НЕ НОРМАЛЬНО. При чем это не нормально даже для дешевого китайского барахла. Не говоря уже про так называемый «премиальный регистратор».
Я вас наверное удивлю, но очень много где нужно "постоянно держать в голове, что можно а что нельзя". Например:
std::list(илиLinkedList) доступ по индексу не сильно быстрый, а вvectorдобавление "тормозит"nilзасунуть вNSArrayhashCodeиequalsзачем-то бывает нужно переопределять. Да еще и как попало написать нельзя.Я не спорю, что можно придумать задачу, которая тяжело решается используя unix shell. Особенно в интерактивном режиме (в смысле из интерактивного шелла). При чем более приближенных к реальности, чем 'положить в файл результат grep-а по нему же'. И да, таких задач очень много. Вы предложили изначально задачу с touch-ем, я показал решение в 1 элементарную строчку. shell идеально подошел для её решения.
Если задача становится слишком сложной для shell, то я просто возьму python/perl или что-нибудь еще. Вплоть до того что буду прям из кода на python вызывать command-line утилиты используя
subprocess.check_output, если так проще/быстрей.А если кто-то случайно сделает
cp old_file new_fileвместоcp new_file old_fileи начнет писать "подумаешь, опции не в том порядке", то виноват тоже будет shell? А если я, наконец, нож возьму не той стороной и вместо того чтобы колбасу отрезать, руку порежу?Эээ. А
-typeтоже оттуда уберем? И вообще, вас кто-то заставляет пользоваться "встроенной" проверкой на размер? Проверяйте снаружи, если так удобнее. Только для простых случаев кода так будет больше заметно. В этом же и всё удобство шелла, что часть задач легко решается в одну строку вродеfind ~/tmp -mtime +5 -deleteпрактически не задумываясь.Чем вы предлагаете shell заменить? perl/python? Покажите решение с удалением всех файлов определенного размера и сравните количество кода.
Во всяком случае мне с SJCAM M10+ показалось, что стабилизация помогает.
Вот допустим, нужно забить гвоздь. Да, я знаю, что такое надо делать молотком. Но давайте предположим, что это нужно сделать непременно микроскопом. Как это сделать?
А почему не find foo -exec touch {} \;?
Код на любом языке можно написать так, чтобы он работал быстрее этого. В том числе и на shell. Более того, на любом языке можно написать код, который будет медленнее этого…
И да, 'ширина' одной строки тоже ограничена.
Не случайно в газетах вообще есть разбивка на колонки, и статьи таки стараются писать вертикально. Вероятность того, что Вы найдете относительно маленькую статью (скажем, размером в 3-4 комментария из 1-2 предложений), и которую при этом разобьют на 2-3 колонки практически равна нулю. Это разве что может быть продиктовано какой-нибудь особенностью верстки (иначе не влезло). Либо это 'первая страница', куда обычно стараются впихнуть побольше заголовков в качестве собственной рекламы.
Извините, если вы считаете Blackvue премиальным брендом, то его название на коробке должно говорить о некоторой планке качества, продуманности, сервиса, и т.д. А если под одним брендом и одной моделью можно встретить разные регистраторы, еще и с несовместимыми прошивками, то это, извините, бренд сам себе грабли положил.
Возьмите пример с Samsung. Под одной моделью (допустим S7 Edge) они тоже продают несколько версий железа. Но на коробке где-то мелкими буквами написан немаркетинговое название модели.
Единственное что я могу предложить — привозите сами и китайские версии и продавайте их заметно дешевле 'барыг, получающих сверхприбыли'. Только честно напишите чем китайская версия хуже.
Я как-нибудь не поленюсь и выложу сюда фото внутренностей другой сгоревшей 'поделки' этого псевдо-премиума — Power Magic.
А на счет автоматизации — было бы желание… Обычно телефон часов 6 в сутки может лежать на зарядке. Копируй/синхронизируй что угодно.
Единственное что меня разочаровало: свежий S7 Edge не умеет 'быстро заряжаться' с включенным экраном. (Хотел получить беспроводное крепление в машину и пользоваться телефоном как навигатором). В общем батарейка все равно садится. Но очень медленно.
Так вот, есть у BlackVue такая штука, как Power Magic Pro. Идея у неё очень прикольная. Позволяет оставить регистратор работать от аккумулятора, ограничив при этом максимально допустимое время работы, чтобы не допустить полного разряда аккума. Можно задать время работы (6, 12, 24 часа, либо бесконечно) и минимально допустимое напряжение на АКБ (12, 12.5, 22.8 и 23.2 вольта). Просят за это чудо 30-35 баксов.
Первое разочарование этим «премиальным» аксессуаром пришло с пониманием того, что пороги срабатывания по напряжению подобраны очень хреново:
— 12.5v это слишком много (примерно 80% емкости). Даже вполне себе свежий АКБ зимой на авто, которое ездит в обычном городском цикле не всегда заряжен до такого напряжения.
— 12.0v уже слишком мало. Это около 30% емкости. После такого зимой (например, через день) можно и не уехать.
Года два я с этим устройством проездил. А потом в один прекрасный день оно тупо перегорело. Как позже оказалось, провод к регистратору был проложен не совсем удачно, и в итоге перетерся и замкнул. При этом 2A предохранители, через который эта поделка была подключена, остались целыми.
В общем, как оказалось, в этом 'премиальном продукте' похоже что ПОЛНОСТЬЮ ОТСУТСТВУЕТ защита от перегрузки. Спасибо что не загорелось. Я конечно не 'специалист с огромным опытом в области производства регистраторов', но способ защиты от перегрузки уже давно придуман. И практически любая китайская автомобильная зарядка ценой в пару баксов на али легко переживает КЗ. А тут 'премиум класс' и всё такое.
Ага… И эти отзывы были на русском языке. Для полноты картины гляньте английский Play Market. Вот прям сейчас смотрю и в первой десятке:
1. App had improved but… I have bought two DW650S-2CH units, why can't I use both on the same account without paying to register the second camera? Why should I have to create a separate account for each camera to use the free cloud service, having just paid $500 for each unit, it is stupid and pointless!
2. DR550GW WiFi connect issue Sometimes connects to WiFi but drops after about 30 seconds. Buffer speed is terrible during that time and it's impossible to export a file to device because it always drops before it completed. Please fix WiFi issues rather than concentrating on new features and language support.
3. It gets irritating at times when it keeps prompting non stop «No SD Card». I had to restart my car Engine and hope that it will quiet down. Sometimes, restarting my car Engine helps and sometimes, It doesn't and it means I have to restart my car Engine again in the hope that it will quiet down.
5. Unstable through blackvue cloud DR650GW -1CH Whenever I try to connect the device through this blackvue cloud, will disconnect. When i do manage to get connected, the playback is super slow and after 30 sec the device will automatically reboot, very frustrating as I have fast network on 4G Wi-Fi both my phone and my car. And yes, I have updated firmware already. Would not recommend your product to any friends n family until you guys Fix the problem.
6. Waste of time. Had a new phone now app will not play a single file. Give us back the Old app that worked! Now it says the firm ware is not compatible with the app? Do I now have a cabcam that is useless! Well done.All that money wasted. Sort your game out as this is crazy. NOT HAPPY
7. Failed Wi-Fi Keep getting message 'failed to connect to WiFi'. 650GW 2-channel dashcam was working ok before
8. Crashes all the time. Crashes whenever I view notifications. Wish I could disable the cloud connected/disconnected notifications too as they are a nuisance because my hotspot loses coverage during parts of the daily commute.
9. I connect to the device wifi, I open the app and 90%of the time I get «Failed to connect to wifi»
А есть вещи, которые общие для всей техники, например несовместимые электрически разъемы не соединить физически. И НИКОГДА выдергивание провода не должно приводить к выходу техники из строя.