• Где/как найти "вилку", крепящую "ухо" к дужке, для наушников "Creative Aurvana Live!" ?

    @sergiy2303
    У меня такая же проблема. Только что сел на свою аурвану.
    1) Клей - не вариант. Уже пройденый этап на других наушниках, хватает на пару месяцев.
    2) Спаять оригинальный метал не выйдет (Он из алюминия)
    3) Металическую часть из "вилки" можно вынять, подогрев её паяльником и захватив пинцетом. Перед этим нужно будет немного спилить пластика (что бы можно было держать деталь)aa945877bcc045deb4fffff1aa414d80.jpg
    Дальнейший ремонт предполагаю с заменой оригинальной детали на болт. Гайка будет посажена в нутрь "Вилки", а шляпка внутрь обруча. Шляпка болта будет сточена так, что бы максимально соответствовала оригиналу.

    Спустя 5 минут нашел видео о пайке алюминия. Сегодня попробую спаять. Здесь отпишусь!

    Спустя 10 часов купил флюс и получилось спаять. Довольно легко даже.
    023c3525d4454f5a95e02cb00058a914.jpg

    Потом залил епоксидный клей в отверстие вилки и запихнул туда деталь

    5563fd8bd91548308738bba08df81dd8.jpg

    И вот результат:

    8461893e763640209b5476ddfdd61499.jpg
    И какой наушник был неисправен? Внешне не видно.
    Сидят так же как и раньше, только вертится наушник туже из за трения пластика. В будущем возможно залью туда смазку.

    Спустя 1 час шарнир развалился. Оказывается олово плохо переносить длительные сильные нагрузки, потому разваливается. Так что спаивать шарнир не имеет смысла. Возвращаюсь к первоначальной идее.

    Сделал шарнир из шляпки спицы
    3528b6a7b0e340338284d55c249ed295.jpg

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

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

    ae3b4861368447b38bf06d32a99397dc.jpg804995abe3a540f48ffca0dc92d71d5a.jpg
    Ответ написан
    3 комментария
  • Как быстро научиться читать «с листа» математические формулы?

    sergiks
    @sergiks Автор вопроса
    ♬♬
    Нашёл отличную шпаргалку, которая решает все мои вопросы: приложение к книге Sebastian Raschka «Introduction to Artificial Neural Networks and Deep Learning: A Practical Guide with Applications in Python»

    sebastianraschka.com...appendix_a_math_notation.pdf

    Ноутбуки книги на github: rasbt/deep-learning-book
    Ответ написан
    Комментировать
  • Кто знает литературу по профессиональному программированию микроконтроллеров?

    @rustler2000
    погромист сикраш
    Знатный апдейт. Разрывает вопрос на две проблеммы не связанны с uC. Вообще программирования uC это просто обычное программирования с дополнительными ограничениями по памяти, хипу, стэку и производительности. Ну да какбэ чтото особенное изза того что нужно знать хоть немного микроэлектронику. Но реально - ничего особенного. Конечно не мешает знать во что превращяется твой код.

    Книжно по архитектуре - любые. Хоть блин design patterns :D
    Тяжело абстрактные книжки читать - читай код u-boot/netbsd/linux - смотри как там сделанно. Применительно к твоей проблеме с шиной 485 - там полно пробинга и детектов всякой переферии. Ближайший аналог естественно будет USB. Простейшие стэки для USB есть в природе на посмотреть. API стэка можешь скопировать, чтоб либа похожа была.

    Про прерывания vs poll - это cам разбирайся с требованиями - soft rt у тебя или hard rt. Может у тебя по требованиями вообще лупы нельзя будет делать и надо линейно отрабатывать с ресетом в конце. И конечно посмотри FreeRTOS - хотябы сколько чипов он поддерживает :D
    Ответ написан
    2 комментария
  • Что изучить C или C++?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Да впрочем не особо то и важно, всё равно на отличном уровне не выучишь, да и не надо оно, помимо языка знать придётся ещё очень много вещей, по си можешь почитать "Керниган,Ритчи - Программирование на C", книжка небольшая в принципе, по C++ "Прата С. - Язык программирования С++. Лекции и упражнения", эта побольше, но действительно годная и рассказывается C++11, который делает C++ мощнее и удобнее.
    Ответ написан
    1 комментарий
  • Как правильно посчитать процент верности ответов?

    @throughtheether
    human after all
    Предлагаю такое решение. Вес каждого пункта одинаков (20% в случае 5 вариантов ответа). Для каждого пункта известно, должен ли он быть включен в ответ (должна ли стоять галочка). Если галочка должна стоять и пользователь ее поставил - за этот пункт баллы начисляются. Если галочка должна стоять, пользователь ее не поставил - баллы не начисляются. Аналогично для пункта, который не должен быть включен в ответ.
    Пример: 5 пунктов, 1 и 2 правильные, 3,4,5 - неправильные.
    1 и 2 отмечены, 3,4,5 не отмечены - 100%
    1 и 2 не отмечены, 3,4,5 не отмечены - 60%
    1 отмечен, 2,3,4,5 не отмечены - 80%
    1,3,4 отмечены, 2,5 не отмечены - 40%
    1,2 не отмечены, 3,4,5 отмечены - 0%
    и так далее (всего 32 варианта).

    Человек поставил 1 верную галочку и 1 неверную - какой процент верности?
    20% за одну верную поставленную галочку и 40% за две верные непоставленные галочки, всего 60%
    Человек поставил 1 верную галочку и 2 неверных - какой процент верности?
    20% за верную поставленную галочку, 20% за одну верную непоставленную галочку, всего 40%.
    Возможно есть какие-либо статьи или известные решения?
    Примерно так, по-моему, реализовано тестирование в coursera.

    UPD. Как я понял, вас смущает тот факт, что при некоторых свойствах ответов (количество верных/неверных) пользователь может получить средний балл, вообще не ставя галочки. Если вы считаете это проблемой, то предлагаю два решения. Первое - соответственно составлять вопросы, чтобы количество верных ответов было выше количества неверных. Второе - при старте выставить галочки в случайном порядке. В таком случае (опять же, при правильном подборе параметров) получить высокий балл ничего не делая будет сложнее.
    Ответ написан
    2 комментария
  • Как вычислить погрешность, при которой два числа с плавающей точкой можно считать равными?

    Один из подходов к определению точности - вести "двойные" вычисления:
    ведется обычный счет + в каждой формуле вычисляется погрешность итогового результата (исходя из входных погрешностей операндов и вида операций).
    К тому моменту, когда Вы подойдете к сравнению двух чисел a и b - Вам будет достаточно удостовериться, что их интервалы с учетом погрешностей не пересекаются.

    Заранее вычислить число eps возможно только в очень простых случаях.
    Более того, указывать его фиксированным в общем случае - совершенно неправильно.
    А что если Вы вычисляете треугольник со сторонами в миллиметры ?
    А что если у Вас угол при вершине всего полградуса ?
    Ответ написан
    4 комментария
  • Какой язык с семейства Си учить ?

    @nesterione
    Для работы с станками лучше учить C или C++, но в изучении они не самые простые. Обычно проблемы возникают с указателями и выделением памяти. Изучить проще C, но писать реальные проекты, особенно крупные удобнее на C++ (ООП и тд.). C# в этом плане проще, там не нужно заботится о памяти, не нужны указатели + хорошая справка на MSDN, но нужно понимать ООП.

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

    И еще, Вы сказали, что сфера производства "автоматизации производства, промышленных роботов и станков ЧПУ", если задача заключается в программировании под железо, то тут выбор очевиден C/C++. Если нужно заниматься автоматизацией, писать софт под desktop (формы, БД ...), то возможно следует выбрать C#.

    Другой "востребованный язык" подсказать сложно, востребованы не языки, а хорошие специалисты. А язык выбирайте под задачу.
    Ответ написан
    3 комментария
  • Как узнать, является ли число иррациональным?

    @killla
    В каком виде производится ввод числа?
    Ответ написан
    Комментировать
  • Как осуществить поиск функции по известным значениям?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Гуглите аппроксимация функций, интерполяция функций
    ru.wikibooks.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%...
    Ответ написан
    Комментировать
  • Android: Qt vs Java. Что лучше использовать?

    @dplsoft
    Посмею оспорить ход рассуждений lorus ( Android: Qt vs Java. Что лучше использовать? ).
    Итог у нас почти один, но как в математике - когда ход рассуждений ошибочен - даже если ответ верен - то задача не решена. Возможно во много субъективно, но выскажусь, на правах личного мнения человека, который любит и писал и на Qt, и на Android с его "родным" Java тоже.
    На Qt для Android не писал, потому что на момент начала последнего проекта технология была сырая.

    И так: Не агитка за Qt но несколько слов в защиту Qt.

    Забегая вперед скажу: топикстартеру - если есть небольшой опыт разработки под Андроид, вы не работали ранее с Qt, и вам не важна переносимость исходного кода между всем и вся - продолжайте осваивать Android SDK ( Java ) .
    По крайней мере, сейчас.
    Хорошее знание хотя бы одного инструмента, лучше чем посредственное знание двух. ;)
    C Qt под Андроид потом разберетесь. Да и "пообкатаннее" оно будет.


    1. Qt - это всё-таки C++. Разрабатывать на нём существенно сложнее, чем на Java. То есть дольше и с большим количеством ошибок.

    Надо отличать "просто С++" и С++\Qt. В первую очередь, Qt - это фактически диалект языка С++. Например в объявлении Qt-класса появляются дополнительные секции signal и slots, а в процессе сборки существует фаза мета-компиляции, которая делает C++ код под вашу платформу. Не удивлюсь, если для андроида генерируется сместь Java и C++ кода которая потом скармливается Android NDK.

    Во вторых, Qt - это _самодостаточный_ фреймворк. Никаких STL или "чего-что-ещё что представляют себе в комплекте с C++" типичные сторонние разработчики.
    Многих проблем, которые приводят к сложности разработки "на простом C++" в "С++\Qt" просто нет "by design".

    Например в Qt заложен замечательный механизм предотвращения от выхватывания "null-poiunter" - "сигнал-слоты". Это в разы упрощает и делает надежнее работу как с GUI, так и с например, объектами, работающими в разных потоках. В Qt это все сделать разы проще, чем городить аналогичные стандартные механизмы на Java. Я не говорю в итоге оно будет эффективнее - тут надо выяснять и можно поспорить - но вот то, что в Qt многие вопросы работы с потоками и межпоточным взаимодействием продуманы лучше а механизмы удобнее - на мой вгляд это факт.
    (Хотя вот такого классного механизма аки runnable, в Qt нет. Но ждем 11-го стандарта С++.)

    В третьих - "С++\Qt" - это хорошо продуманный фреймворк едва-ли не с лучшим дизайном классов, продуманными методлами, единым стилем решения проблем.

    Как человек писавший на Qt 4.0-4.6 и сейчас закончивший первывый коммерческий проект для Android - могу выставить в сторону Java много минусов (в сравнении с Qt4/Qt5.) Просто потому, что Java - как в первую очередь коммерческая технология, был вынужден набирать нелогичности ради совместимости с предыдущими версиями - едва-ли не из первых версий Java. Посомтрите вопросы к сертификации - много вопросов, которые когда начинаешь разбирать "почему так" - уходят корнями в далекое темное прошлое развития Java. И в итоге - современная Java - это часто нелогичное, лоскутное одеяло, где в разных классах для решения одной и той-же задачи применяется если не разный подход и стиль, то как минимум разные имена методов. Ну вот зачем это?)))

    Да Java детально описан, и в технически прогнозируем - но его надо зубрить, тупо зубрить все исключения и проблемы наследования логики первых версий, и зубрить где используется put(), а где add()....
    ... а Qt-можно _понять_ и не зубрить, понять и только изредка заглядывать в документацию. И в итоге писать на нем - легче.

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

    Ещё к слову про миф "на Java писать проще чем на C++"(если сравнивается Java под DalvikVM и C++\Qt5):
    Не забывайте - DalvikVM - это вам не JavaVM.
    В DalvikVM вы легко отхватите "null-pointer-exception" если вы вдруг наивно думаете, что коли у вас есть в локальной переменной ссылка на фрагмент, активити или вью - то машина не уничтожит объект "когда ей вздумается", а у вас ваша переменная не об-null-ится.

    На понимание того, какие привычки десктопного написания и дизайна приложений нельзя переносить во фреймворки Android SDK и на перестройку собственного мышления - у вас уйдет несколько месяцев. А вы _начнете_ это понимать и отхватывать такие проблемы - как только начнете писать что-то бОольшее, чем набор разрозненных активити да пары фрагментов из учебных курсов.
    И в итоге - первый ваш серьезный проект на Андроиде - может влететь вам в хорошие переработки.
    Например, в том числе и потому что нет в Android SDK v17 жизненного цикла для класса Application. Нет механизмов для созранения состояния singleton-окружения и тд.и тп.

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

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

    2. Инструментарий разработки для C++ однозначно хуже такового для Java в силу, опять-таки, особенностей языка.

    Простите, но тоже малообоснованное утверждение. См пункт 1.

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

    А когда вы пишете под Android на Java - вы всегда пишете кусок кода работающий в колнтексте DalvikVM и должны жить по предусмотренным данной машиной паттернам и сценариям, причем многие аспекты того "как это работает" - явно мало где прописаны. И если вдруг вы отсутпаете от стандартных шаблонов фреймворка Dalvik-машины - вы рискуете отгрести непонятные, трудно отловимые косяки, причем _вне_ вашего контроля, которые вы не можете корректно перехватить и обработать. Кто не знает - попробуйте уничтожить ViewGroup, id которого вы использовали как контейнер для размещения внутри него фрагмента. Как только вы делаете FragmentTransaction.commit() - вы ставите машине задачу, которую она будет выполнять "когда-то позже", вне вашего контроля, и не соизволит позволить вам корректно обработать исключение. Вплоть до возникновения ситуации, когда фрагмент пытается быть добавленным в Activity который уже отработал стандартные процедуры по Activity.finush(). Ладно бы оно выкинуло код ошибки куда, и тихо проигнорило - но это же Java - она выкинет исключение. А обернуть это дело в try...catch - вы не сможете - это не ваш кусок кода. Максимум что вы сможете - это "поймать перед смертью" Thread.UncaughtExceptionHandler. И все.
    (если я не прав - поправляйте меня, я же тоже не инженер гугля)

    3. Java - родная платформа для Android. Отсюда потенциальные проблемы с совместимостью у Qt.

    Вот зачем вы занимаетесь запугиванием?
    Android NDK (для разработки на С++) такой же родной как как и Android SDK (для разработки на Java).

    И с совместимостью у Qt с платформой Android проблем не больше, чем у любого другого приложения, которое использует вставки C++ кода и разработано с использованием стандартного Android NDK.

    --------------------------------------------
    Резюмируя: автору надо просто взвесить что зачем и как он собирается использовать.
    Если автору нужно одинаковое поведение на различных платформах - включая огрызочные поделия, Linux, разные Windows RT недопланшеты - то выбор ознозначен - курите Qt. Это возхитительнейший, ясный, хорошо продуманный и максимально логичный фреймворк, который не побоялись пересоздать с нуля ради устранения накопленных сложностей (вспоминайте переход с Qt3 на Qt4) Лично я приходил в восторг, когда работал с ним (2005-2009 гг)

    Но - в части Андроидного приклада : подозреваю, могут быть "технические риски" с использованием каких-либо особых "мобильных кусков" типа "работа со звонками, "работа с контактами", "работа с почтой" или "поставщиками контента", и пр.
    Я отошел от мира Qt когда Qt был 4.8 и я не искал там классы которые этим занимаются. Думаю что-то потомки троллей должны были создать в 5.2, но лучше проверить.
    В крайнем случае - может потребоваться стыковка с джава-объектами, и тут вам потребуется изучать Android NDK, и возможно даже писать немного оберточного кода на Java.

    Если же вам _нужна_ обязательная работа с описанными выше функциями, а на переносимость исполняемого кода - наплевать, или же у вас _уже_ есть опыт разработки с Android SDK - то конечно писать лучше на Java.

    Но в этом случае бутьте готовы к тому, что это не JavaVM, и сохранности ссылок _для_ряда_классов_ вам никто не обещает, а т.к. Java не предполагает наличия деструктора - вы _будете_ иметь определенные архитектурные сложности при построении сложных приложений.
    Например то, что в десктоп-приложении вы решили бы "простым" "синглтон-объектом" с простой функциональностью типа записал-прочитал из файла - тут вам _придется_ решать путем построения "поставщика контента" и т.п. - что значительно повышает "порог входа" для тех кто погруждается в разработку для Android.

    Но - надо отдать должное инженерам гугля - у них _были_ весомые основания поступать итак, и они максимально вас обезопасили от попадания в многие проблемы - если, конечно, вы используете фреймворк именно так, как это предполагается. И сделали многие механизмы достаточно элегантными, и приятными в использовании. Дизайн гуглековских классов мне в большей части нравится. В общем не забывайте понимать почему в примерах делается именно так как делается, а не иначе.
    Ответ написан
    5 комментариев
  • Имеет ли смысл выбирать задачу из области ИИ в качестве темы для дипломной работы с дальнейшем развитием в качестве кандидатской работы?

    @Silvery
    Все зависит от степени углубления в проблему лично вами. Если вы только начинаете изучать, что такое ИИ, то без фанатизма защитить диссертацию в срок будет весьма проблематично. Если вы учитесь там, где этой проблемой уже занимаются, или если ваш науч.рук. занимается этой проблемой, тогда будет проще.
    Что касается выбора задачи, то я могу посоветовать просмотреть монографии, защищенные диссертации на тему ИИ, и искать задачу в этом направлении.
    В общем случае, практика Российской аспирантуры показывает, что для того, чтобы защититься в срок, поступать нужно уже имея практически готовое решение.
    Ответ написан
    1 комментарий