Ответы пользователя по тегу Программирование
  • Как открывать файлы txt в программе на python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Что тут может не работать?
    Встать в каталог, где есть файл
    with open("Sante-1.csv") as f:
        r = f.read()
        print(r)

    Ну или кому как нравится. И да, можно указывать полный путь
    f= open("/Users/leah/Documents/Sante-1.csv")
    r = f.read()
    print(r)
    Ответ написан
    Комментировать
  • На чем пишут автомобильный софт?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    На яве делают обычно GUI + медиацентр. Да и то не всегда на яве. Сам медиациент общается с автомобилем по шине CAN, иногда, в редких случаях еще и по ethernet (привет Tesla). На шине CAN сидят бортовые компьютеры, датчики, компьютеры управления подвеской, тормозами, мотором. Всё это хозяйство может быть реализовано как в железе ПЛИС (verilog), так и на SOC (пишется на C/C++).
    В современном авто от двух до 15 компухтеров разного назначения, а то и больше.

    Вот, достаточно внятная статья - auto.howstuffworks.com/under-the-hood/trends-innov...
    Ну а вообще, по ключевому слову automotive
    O! www.cvel.clemson.edu/auto/systems/auto-systems.html - тыкаем на картинке в компоненты и читаем!
    Ответ написан
    Комментировать
  • Что такое классические алгоритмы и структуры данных в вакансиях?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Классические алгоритмы - алгоритмы поиска, сортировки и обработки данных. Структуры данных - стеки, кеши, массивы, списки.
    Ну и буду старомоден, ничего лучше в этом мире до сих пор нет, как трехтомних Дональда Кнута - Искусство Программирования. Просмотрев оглавление первого тома - получите весь список! Ну а если просто прочтете по две-три странички каждого раздела, то будете в курсе, как они работают. Если разберете еще и примеры, то будете классным специалистом . А если и до решения задач доберетесь, то вас многие фирмы почтут за честь иметь в штате. Выполнение одного из заданий сложностью 45 - нобелевка.
    Но вам сейчас нужно просто прочитать оглавление! Начните с этого.
    Упс, еще и третий том обязательно оглавление.
    Ответ написан
    1 комментарий
  • Как получить дату и время из текста на python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Здесь совсем нечеткая логика, скоре всего вам нужно будет парсить фразы на лексемы, затем определять грамматику самой фразы. Причем "после завтра в 5 30" и "завтра после 5 30" хоть и отличаются на одну букву, а промахнуться можно на сутки :-)
    ну и наверняка не обойдется без какой нибудь векторной математики, типа какое действие за каким следует и к чему относится.
    Ну и как минимум нужно много, очень много тестовых образцов. Например "вчера он сказал, что завтра будет дождь, дождя не было", "два дня назад от третьего воскресенья октября".
    Ответ написан
    2 комментария
  • Как запомнить классы, функции и методы в программировании и сэкономить время?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Не нужно заучивать, нужно запоминать что есть подобная функция где-то в этом пакете. При том, что производительность рядового программиста 5-8 строк в час, всегда есть время найти нужный функционал по ассоциации через поиск.
    Ответ написан
    Комментировать
  • Изучение С для программирования микроконтроллеров?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Не очень различаются, для введения в язык С начните с книжки Керниган и Ритчи, диалект языка конечно немного устарел, но все основы представлены.
    Основной упор делайте на работу с указателями, структурами и битовыми операциями.
    Для обращения к регистрам устройства (процессора и периферии), обычно используется следующая конструкция:
    ....
    volatile u_int32 *my_cool_register = 0xFFFEBEEF; /* адрес 32-разрядного регистра, ключевое слово volatile */
    my_cool_register  |= 0x2; /* взвести второй бит */ 
    ....

    Ну и у Cortex-M3 есть адресное пространство, где все БИТЫ доступны по отдельным адресам, часто это очень удобно.

    PS. Да, используйте библиотеки от поставщика, там много уже сделано в виде макросов (про это в книжке) и библиотек.
    Ответ написан
    Комментировать
  • Что такое распределенная система?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Самый простой пример - хранение информации. Пусть у нас будет 5 серверов, которые будут хранить файлы. Для того, чтобы распределить нагрузку по этим серверам мы будем каждый файл класть на один из серверов, а сервер выбирать по очень простому алгоритму, будем считать хеш имени видеофайла и делить его на остаток от деления на 5 ( по количеству серверов). Так как предполагается, что хеширование у нас подчиняется нормальному распределению, то файлы на серверах тоже будут распределены равномерно.
    Итого, когда нам нужно узнать, на каком сервере лежит файл, нам достаточно посто посчитать хеш, найти остаток от деления и обратиться к нужному серверу.
    Тоже самое можно сделать не только с хранением, а и с вычислениями. Передавать задачу на один из серверов по какому то признаку, например по текущей загрузке или по наличию свободной памяти или еще ко какому признаку.

    Пример на питоне
    import hashlib
    h = hashlib.md5('my_cool_filename').hexdigest() # получили 16-разрядную строку
    # h =  '13061a556715c93e5543f20b7001c669' - это строка
    hi = int(h,16) # перевели ее в лонг
    # hi = 25287019810011413006158894310673729129L
    index = int(h,16) % 5 # нашли остаток от деления
    # index = 4L


    Еще раз, нужно не делить, а взять остаток от деления, операция %
    Ответ написан
    8 комментариев
  • Правильная обработка исключений?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Сейчас в меня будут кидать камни... Но исключения - это зло!
    Жрут кучу времени и ресурсов, часто ничего поправить уже нельзя, рвется контекст выполнения, и т.д.
    Так что,
    1) Делайте проверки, везде, где это возможно, используйте значения по умолчанию.
    2) Если уж возникло исключение, то обрабатывать его тут же, на этом же уровне.
    3) Не стоит увлекаться созданием собственных исключений! В 95% случаев ситуацию можно устранить и без них! А в остальных 5% достаточно стандартных системных.
    4) Все непрерываемые исключения - обрабатывать на верхних уровнях
    Вотч то я хотел сказать - java-performance.info/throwing-an-exception-in-jav...
    Ответ написан
    6 комментариев
  • Почему не отображается верно кодировка?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Кратко, у вас кодировка входного потока не указана. Так как внутри все в юникоде, то прсто при чтении потока нужно ему указать кодировку, в которой этот поток лежит. Тоже самое и при записи, смотрите на кодировку. Все это хорошо описано в статье "java русские буквы и не только". Вот прямо так в гугл и вгоняйте. Если чего непонятно будет, пишите в комментариях.
    Ответ написан
  • Почему код так себя ведёт?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    А потому что винда! Она не меняет каталог, если происходит только выбор диска.
    Вызовите cmd и сделайте следующее:
    Microsoft Windows [Version 6.1.7601]
    (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
    C:\Users\leah>cd C:
    C:\Users\leah
    C:\Users\leah>cd C:\
    C:\>

    Соответственно, вам к local_drive достаточно добавить "\"
    os.chdir(self.local_drive+os.sep)
    Ответ написан
    3 комментария
  • Как конвертировать в Java файл в другую кодировку?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Например:
    String res = new String( src.getBytes("ISO-8859-1"),"Cp1251");
    Ответ написан
    Комментировать
  • Хорошее ли железо для web программирования?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Для web-программирования подойдет абсолютно любой компьютер. Даже если будете запускать виртуалку. Я бы правда памяти нарастил, но и так пойдет.

    Конечно, сейчас скажут, что без SSD, монитора в 30'' и памяти в 32 гига вам просто не жить. Нормально. У меня эклипс, ява, пара виртуалок, куча какого-то говна запущена прямо сейчас. Core2Duo (!), 8Гб памяти и 256Gb обыкновенный HDD (не SSD). Все нормально работает и не тормозит. Правда это макбук wihte 2009 года.

    Да, на основное рабочее место купите монитор в 22'' при случае, но это у меня дома, а дома я не работаю!

    70ecd1a0a0e74cb180adb4c11b2d1c63.png
    Ответ написан
    4 комментария
  • В каком городе есть университет, где обучают электронике?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Москва, Зеленоград, Московский Институт Электронной Техники (МИЭТ) - https://www.miet.ru/
    (университет).
    Студ-кластер, общежития, студ-городок, бизнес и заводы вокруг, все дела :-)

    Список факультетов:
    • Факультет микроприборов и технической кибернетики (МПиТК)
    • Факультет электроники и компьютерных технологий (ЭКТ)
    • Факультет интеллектуальных технических систем (ИТС)
    • Факультет прикладных информационных технологий (ПрИТ)
    • Факультет (институт) экономики, управления и права (ИнЭУП)
    • Факультет иностранных языков (ИнЯз)
    • Факультет дизайна
    • Факультет военной подготовки (ВП)
    • Факультет (колледж) электроники и информатики (ФЭИ)
    • Вечерний факультет
    • Факультет дистанционного обучения (ДО)
    • Факультет обучения иностранных граждан (ОИГ)
    Ответ написан
    Комментировать
  • Как можно с модулировать вычислительную сеть и посчитать ее помощью?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, как бы сама сеть здесь нипричем. Вам нужна какая нибудь библиотека для сетевых вычислений, например MPI www.opennet.ru/docs/RUS/MPI_intro
    habrahabr.ru/company/intel/blog/251357
    habrahabr.ru/post/121235

    Или просто написать клиен-серверное приложение самому на сокетах или через http.
    Ответ написан
    2 комментария
  • Какое средство реализации Электронного Справочника Технической Документации посоветуете?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, даже не знаю что здесь посоветовать... Может быть как вариант elasticsearch?! Поиск есть, документы хранить умеет, nosql опять же, разные типы данных тоже можно добавлять... вот попробуйте - habrahabr.ru/company/percolator/blog/222765

    ЗЫ. С эластиксерч не работал еще, но в свое время, лет 10 назад очень плотно работал с люсиной (которая в его основе), там мы как раз и хранили в ней документы именно для поиска. От люсины впечатления очень положительные!
    ЗЗЫ. Прямо по статье, так и делали (с люсиной).
    Elasticsearch обычно используется в качестве дополнения к другой, основной, базе данных — с сильным акцентом на ограничения, корректность и надежность, а также транзакционно обновляемой. Соответственно, данные сначала записываются на основную базу, а затем асинхронно — в Elasticsearch
    А теперь, по ходу, можно и в нем держать....

    PPPS.
    habrahabr.ru/post/122531 - вот для начала работы.

    PPPPS. И не пугайтесь явы, с ним и на C# работать можно.
    Ответ написан
  • Как реализовать multicast в интернете?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ответ - никак, правильный. Если мы про мультикаст. Ну а если про интернет, то есть такая весчь как DNS, почему ей не воспользоваться?
    Ответ написан
  • В каком порядке разрабатывается сайт?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    В соответствии с уровнем команды выбирается язык (или языки) программирования (php, python, java, scala, perl, erlang). Далее Архитекторами выбирается:
    - архитектура приложения (приложений): фронтэнт, бекэнд, базы данных, кеши, очереди сообщений и т.д., CMS или CMF или фреймворк/фреймворки.
    И так, у нас есть команда, что, как и на чем делать.
    После этого Дизайнер делает графические файлы и передает их Верстальщику.
    В этот момент Программисты вполне могут делать основную машинерию сайта, выписывать взаимодействие с базами, фронтэндом/бекэндом, создавать ORM и запросы, делать прототипы документов и бизнес-логику.
    Как только от Верстальщиков с Дизайнерами поступают куски разметки, то их натягивают на уже существующую машинерию.
    При этом Тестировщики непрерывно в режиме continius integration белают функциональные и нагрузочные тесты.
    Далее этапы наступают этапы тестирования и исправления ошибок всей командой по кругу.
    Как только Менеджер доволен получившейся работой, то отдают Заказчику. А далее - этапы тестирования и исправления ошибок всей командой по кругу, пока Заказчик не будет доволен.

    Ну а по хорошему, так как двух одинаковых проектов практически не бывает, то все работы можно прорисовать в диаграмме Ганта. Тогда сразу будет видно, кто и что параллельно делает в данном проекте - infineconomics.blogspot.ru/2014/04/gantt-chart-in-...
    Ответ написан
    Комментировать
  • За скорость обработки циклов отвечает процессор?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    За скорость обработки циклов отвечает процессор?

    1. Да. Но, если в цикле присутствуют обращения к диску, сети или чему-то внешнему, кроме памяти и самих регистров процессора, то процессор в периоды этих обращений будет простаивать.

    Если в однопоточном выполнении какого-либо сценария будет 50 тысяч итераций, это нормально?

    2. Нормально, если задачу нельзя разбить на независимые подзадачи. Пример неразбиваемой задачи найти сложно, но например задача комивояжера в классическом исполнении.

    А если поставить всё это дело на машину с высокочастотным процессором?

    3. Будет быстрее, если нет НО из первого ответа.

    А если многоядерный процессор?

    4. Будет быстрее, если нет НО из второго ответа.

    И если программа выполняется в одном потоке, то количество ядер не важно?

    5. Да, неважно.
    Ответ написан
    Комментировать
  • Как организовать двойную очередь в Python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Две очереди, одна для всех сообщений, другая - для ожидающих.
    Воркер:
    1) получает сообщение из общей очереди
    2) проверяет блокировку по devID
    3) если блокировки нет:
    3.1) ставит блокировку на devID
    - делает работу
    - освобождает блокировку на devID
    3.2) блокировка есть:
    - перепубликует сообщение в очередь ожидания, ТОЛЬКО если оно из основной очереди
    4) проверяет очередь ожидания
    - если там сообщение, то возвращается на п2
    - иначе на п1

    Как-то так... Ну и рассмотреть вопрос на счет дидлока, когда сообщение в очереди ожидания блокируется повисшим воркером...
    Ответ написан
    6 комментариев