LINUX.ORG.RU

Избранные сообщения Aswed

Rust, вложенные ссылки и все дела

Форум — Development

Допустим, я хочу хранить данные в SQLite. Также я не хочу дёргать SQLite напрямую из main, а хочу сделать задаче-специфичную обёртку, предоставляющую методы вида «положить яблоки», «запросить количество груш», а не SQL-запросы. Потому что мне в целом не принципиально, что там под капотом и с тем же успехом вместо БД я мог бы использовать текстовый файл (просто БД будет лучше себя вести на большом объёме данных не влезающем в ОЗУ).

Ну что ж, берём SQLite:

let connection = sqlite::open("db.sqlite").unwrap();
let mut statement = connection.prepare("SELECT COUNT(*) FROM pears").unwrap();

А теперь мы хотим положить connection и statement в одну структуру FruitStorage, у которой будет метод count_pears(). И не можем. Потому что statement требует лайфтайм connection. И не позволяет их Rust класть в одну структуру.

Можно, конечно, сделать две структуры. FruitStorage содержащий connection с методом get_fruit_counter, возвращающим FruitCounter, который уже содержит в себе statement и имеет метод count_pears(), при этом имеет лайфтайм FruitStorage. Но это явное очень сильное протекание абстракции. У нас потом могут быть ещё более высокоуровневые абстракции, а деталь реализации «для работы с SQLite нужно два отдельных объекта - соединение и подготовленный запрос» будет и дальше нас приследовать.

Как такое решается?

 ,

KivApple
()

Где вы храните схемы описания софта, подобные блок-схемам?

Форум — Talks

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

Где вы размещаете подобные схемы и в чем их рисуете?

Хотелось бы держать это близко к коду, чтобы оно не протухало.

Пока вариант Shinx + png + исходник этого png (в любом формате в котором человек его рисовал, например drawio или tikz или svg)

 , ,

omegatype
()

Программист C++/Python, компиляторы, machine learning, open source

Форум — Job

В компанию Huawei требуется программист-контрактор С++/Python для работы над OpenSource-проектом TVM. Предстоит заниматься разработкой инструмента по оптимизации алгоритмов машинного обучения, их сборке и развертыванию на мобилные платформы, поддержкой импорта/экспорта моделей из других фреймворков, улучшением внутренного представления данных. Требуюется опыт разработки компиляторов (предложим задачи по IR) или опыт работы в датасайнсе/машинном обучении (предложим задачи автооптимизации ML-моделей). Также обязательны: «продвинутое» знание английского, навыки работы в Git, работа с командной строке Linux. Страница проекта: https://tvm.ai.

Responsibility:
1. Build state-of-art Deep Learning software stack for mobile platform
2. Analyse the open source DL model compiler, improve internal representation
3. Improve compatibility with other frameworks and develop new features

Requirements:
1. Good knowledge of C++ and Python, functional programming skills would be a plus
2. Experience in deep learning or compiler development
3. Knowledge about hardware architectures would be plus.

Зарплата 150-250 т.р. в месяц. Возможны гибкий график, сокращенная рабочая неделя.

Работа в Huawei Moscow Research Center, возможность работы из офиса в Санкт-Петербурге обсуждается.

Контакт для откликов - grrwlf@gmail.com

 , , , ,

ierton
()

Msk, Разработчик C++/Python (Russian Quantum Center, удаленно), 130k+

Форум — Job

Описание вакансии

Мы ищем разработчиков ПО в группу квантовых коммуникаций. Наша группа состоит из молодых ученых и программистов, успешно реализовавших проект по квантовой криптографии.

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

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

Мы ориентированы на удаленную работу и создание максимально комфортных условий работы для разработчиков. Мы всегда открыты к новым идеям и практикам работы.

С нами вы будете:

  • Участвовать в создании новых продуктов с нуля
  • Работать бок о бок с молодыми учеными и вместе воплощать идеи в жизнь
  • Использовать современные инструменты и технологии

Что будет делать кандидат

  • Участие в разработке архитектурных и технических решений
  • Разработка, тестирование и документирование кода
  • Проектирование и реализация протоколов взаимодействия для квантовых сетей
  • Реализация методов пост-квантовой защиты

Требования к кандидату

  • Опыт full-time разработки на языках С++ и Python от 2 лет
  • Умение оценивать трудоемкость задач и попадать в свои оценки
  • Опыт работы с системой контроля версий Git
  • Опыт работы с системой сборки CMake
  • Знание стандартов С++11/14
  • Опыт работы с Linux, знание bash и основных утилит
  • Понимание необходимости тестов и умение их писать

Будет плюсом

  • Опыт использования Docker
  • Опыт работы с системами виртуализации (VMWare, VirtualBox)
  • Аккаунт на github.com или на другом ресурсе, где можно посмотреть ваш код
  • Опыт написания кросс-платформенного кода
  • Знание сетевого стека Linux
  • Опыт работы с математическими библиотеками Python (numpy / scipy)
  • Понимание сетевых протоколов (в т.ч. стека IPSec)
  • Понимание протоколов маршрутизации
  • Понимание алгоритмов консенсуса (Византийский консенсус / Paxos / Raft)

Условия работы

  • Удаленная работа без строгих требований по времени, но с полной занятостью
  • Основное взаимодействие по Skype и в мессенджерах, встречи только по необходимости
  • Белая заработная плата от 130000 рублей

Дополнительные инструкции

Если Вас заинтересовала наша вакансия, пишите на почту n.pozhar@rqc.ru . В теме письма укажите “Вакансия Разработчик С++/Python с LOR", в тексте письма укажите как вы соответствуете каждому пункту из раздела “Требования к кандидату” и “Будет плюсом”, приложите резюме с описанием своего опыта. Мы в первую очередь рассматриваем кандидатов из Москвы и МО.

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

 , ,

AnMakc
()

Red Hat ищет питонистов

Форум — Job

Red Hat ищет питонистов в Брно (Чехия) с релокацией. Сеньоров могут релоцировать в Испанию.

Резюме можно слать мне (abondarenko@gmail.com, me@andreybondarenko.com).

UPD: там сейчас 20(!) позиций открыто. Вилку не знаю, там слишком разный народ ищут. Наверное, от 2000 евро джуниору.

 , ,

Shaman007
()

Движки на nodejs или Python

Форум — Web-development

Что есть не тяжёлое для блога или портала среднего размера?

Порекомендуйте какой-нибудь движок на nodejs или python с хорошим latency.

 ,

Mirage1_
()

Задачка по питону

Форум — Development

Есть бот для чатов, написан на питоне, у бота есть команда «чисть». Эта команда должна забивать 20 пустых сообщений в конфу, нo она не работает. Код для этой команды походу этот https://pastebin.com/JtxuJQCg хотя не уверен до конца. Цель: сделать, чтобы команда «чисть» работала, т.е. забивала 20-ю сообщениями конфу, в которой сидит бот. Помогите пожалуйста, нужно.

 

simd0264
()

Разработчик С++ (Москва, от 150 т.р.)

Форум — Job

Проект: Медиасервер (видеонаблюдение). Разработка медиасервера, интегрирующего «снизу» видео, аудио (в перспективе), данные аналитики от самых разных источников - камер, регистраторов, видеосерверов (Kraftway, ITV, ISS и т.п.). «Сверху» медиасервер интегрируется с ПО ситуационного/управляющего центра.

Функции: Разработка ПО под Linux (IP-камера, IP-видеосервер) x-86 (arm как вариант в будущем). С++ основной язык. Подбор и интеграция готовых библиотек для реализации заданного функционала. Сейчас используем ZeroMQ, Viinex, остальное – на этапе выбора. Предметная область - обработка видео: захват, архивирование, ретрансляция, кодирование/декодирование, видеоаналитика. Оптимизация ПО обработки видео под аппаратную платформу. Участие в разработке архитектуры, выработка предложений по реализации необходимой функциональности, контакт с авторами алгоритмов/библиотек. Есть GIT, Redmine. Тестирование - отдельная группа.

Требования: Хороший опыт коммерческой разработки на С++.

Условия: Место работы: м.Алексеевская, 5 мин.пешком от метро. График работы: Пятидневка. 8-часовой рабочий день. Зарплата официальная. От 150 т.р. Полное соблюдение ТК РФ.

borzov@kraftway.ru Максим

 

Borzov
()

Инженер-программист, г.Санкт-Петербург

Форум — Job

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

Требования скромные:

- опыт разработки на языках C/C++ от 1 года;
- желателен опыт разработки на Python;
- желателен опыт разработки с использованием Qt;
- знание или отсутствие боязни Bash;
- навыки администрирования Linux, QNX;
- умение или отсутствие боязни разбираться в чужом коде;
- готовность к самостоятельной работе;
- готовность к командировкам.

Зарплата от 80000р. Оформление по ТК РФ. Предоставление и оплата отпусков и больничных в соответствии с законодательством. ДМС. Пятидневная рабочая неделя, 8-ми часовой рабочий день.

Резюме слать на адрес: aleksey.karelin@rif-spb.ru

 , , ,

HongZa
()

Senior C++ Developer / Architect

Форум — Job

Санкт-Петербург
от 150К + плюшки
Всё по ТК, белое и пушистое

Наш клиент - Российский филиал UK компании занимающейся разработкой продукта по анализу финансовых операций с криптовалютами - ищет опытного программиста С++ с хорошим пониманием Python и опытом работы с большими объемами данных

Что иметь, знать и уметь
- Опыт от 5 лет на должностях senior developer\architect
- Профессиональное знание C++
- Глубокие знания алгоритмов
- Оптимизация хранения данных в памяти, работа с большим обьемом памяти. (linux)
- Опыт разработки многопоточных приложений на C++
- Понимание ООП и базовых шаблонов проектирования, опыт применения в реальных проектах
- Писать качественный, хорошо структурированный код
- Знание Git
- Английский язык на уровне чтения технической документации
- Желательно знание blockhain

Что делать
- Переписать текущий PyPy код на С++
- Оптимизировать алгоритмы\управление памятью\маппингом БД на диск и чтением с диска
- Подключить JSON API на CRUD операции с иерархическая кластеризацией
- Дальнейшее взаимодействие с Data Scientist`ами

С любыми вопросами по вакансии сюда!
сделаю правильному человеку предложение от которого будет сложно отказаться

 , , ,

koryazh
()

Rust и компиляция под Windows прямо с линукс

Форум — Development

Как скомпилировать программу на Rust под Windows прямо из Linux, может есть какие настройки Cargo?

 , , ,

playX
()

Django: покидайте годных мануалов

Форум — Development

Доброго дня! В гугле бан сняли, но тем не менее спрашиваю еще здесь. =) Интересуют ресурсы (сайты, книги, видео) по Django для начинающего. Представление о языке python имею, но желательно, чтобы для малоопытных был материал. С разжовыванием. Спасибо!

 , ,

kerby
()

Rust vs C

Форум — Development

Я Rust не знаю.
Допустим решил я написать быстрый лексер (разбиватель токенов),как я делаю это в Си:

typedef struct {
    const char* text;
    size_t      text_len;
    size_t      text_pos;

    const char* token;
    size_t      token_len;
} lexer_t;
 
void lexer_next_token(lexer_t* lexer);

И я могу получить все токены без выделения памяти,я просто иду по тексту и ставлю lexer_t.token в начало токена, и в token_t.token_len записываю длинну токена.А в расте как сделать подобную вещь?Тоже без выделения памяти естественно (ну кроме стека,где выделяется код возврата и 2 size_t для функии next_token).Верней можно ли сделать такое в расте?

 ,

linuhs_user
()

Придумайте генетический алгоритм

Форум — Development

Алгоритм должен сгенерировать N разных глифов (например 60), удовлетворяющих требованиям (ограничениям?).

Глифы должны:
1) Быть двумерными, связными (чтобы можно было по несвязности разделить текст на отдельные символы). Никаких «ы».
2) Не переходить друг в друга при сдвигах, наклонах, масштабированиях/сжатиях и поворотах.
3) Подсказывать направление текста (чтобы текст читался правильно только с одного направления, а при поворачивании на 90, 180 и 270 было понятно, что текст повёрнут).
4) Быть несложными = простыми (чтобы их было быстро писать) с точки зрения описания инструкциями (например состоять из минимального количества точек и соединяющих отрезков.
5) Максимально отличаться друг от друга по внешнему виду.

 ,

Einstok_Fair
()

Практическая несостоятельность критерия Поппера

Форум — Science & Engineering

Узнал кое-что любопытное.

Как известно, научная теория (утверждение) от ненаучного фричества отличается тем, что её можно фальсифицировать. То есть, можно поставить (возможно даже мысленный) эксперимент, доказывающий ошибочность теории. Если она ошибочна. Это называется критерий Поппера.

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

Но не всё так шоколадно на практике. Подумал, что критерий Поппера-то с проблемами. Ведь , если применять к математике, получится, что математика не научна, как минимум из-за своей аксиоматически. Пятый постулат Евклида не фальсифицируем однако! Ну и всё прочее тоже. Любые математические гипотезы, требующие в случае своей истинности перебора бесконечного количества чисел (например теорема Ферма) тоже не фальсифицируемы.

Это уже какая-то ерунда получается. Решил погуглить и наскочил на прекрасное. Тезис Дюэма — Куайна

В философском энциклопедическом словаре

Первый вариант тезиса (версия Дюэма):

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

Второй вариант тезиса (версия Куайна):

Любое утверждение может рассматриваться как истинное, несмотря ни на что, если мы сделаем достаточно решительные корректировки в каком-то ином фрагменте системы

Т.о., из сформулированного Куайном сильного варианта тезиса следует нефальсифицируемость фундаментальных научных теорий.

И как теперь делить фричество от науки? :))))

 ,

anonymous_incognito
()

Leaf 0.2 — высокопроизводительная платформа машинного обучения

Новости — Open Source
Группа Open Source

Анонсирован выход новой версии Leaf 0.2. Leaf написан на языке программирования Rust и является модульной, производительной и переносимой платформой машинного обучения.

По тестам на производительность, Leaf 0.2 опережает другие платформы, являясь, на данный момент, самой быстрой платформой машинного обучения. По словам разработчиков, они смогли добиться этого за счёт выбора языка программирования Rust и библиотеки для высокопроизводительных вычислений Collenchyma (также написанной на Rust). Также, за счёт использования библиотеки Collenchyma можно обучать и запускать модели на CPU, GPU, FPGA, и т.д. с использованием OpenCL или CUDA или другого вычислительного языка, на разных машинах и операционных системах, без лишней адаптации кода. Это делает очень удобным возможность разворачивания моделей на серверах, рабочих станциях, смартфонах, а также современных встраиваемых устройствах.

Чтобы ознакомиться, разработчики предлагают установить Leaf 0.2 и поиграться с примерами, включая популярные Глубокие Нейронные Сети как Alexnet, Overfeat, VGG и другие.

>>> Подробности

 , , ,

dotcoder
()

Веселая музычка из /dev/urandom

Форум — Development
cat /dev/urandom | hexdump -v -e '/1 "%u\n"' | awk '{ split("0,2,4,5,7,9,11,12",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1382*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | aplay -c 2 -f S32_LE -r 16000

Source: http://blog.robertelder.org/bash-one-liner-compose-music/

 , ,

Oxdeadbeef
()