LINUX.ORG.RU

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

Ищу туториалы и воркшопы по настройке окружения для разработки

Форум — Talks

В каждой ОС есть удобные для разработчика способы настроить окружение: например, для C++ это

  • conan.io, brew (linuxbrew) и checkinstall на онтопике
  • brew (homebrew) на полутопике
  • vcpkg (для Visuals C++) или pacman (в составе MinGW) на оффтопике.

Во всяких нодах и питонах есть свои npm и pip.

Есть известные требования современных хипстеров:

  • Если Javascript, то надо поставить свежий Node.js, настроить linter, настроить автофоматирование, настроить Google Closure Compiler
  • Если Typescript, то примерно как JS, только вместо Google Closure Compiler будет компилятор Javascript
  • Если C++, то надо поставить свежий GCC или Clang + разобраться с линковкой STL (желательно линковать статически), накатить серию библиотек (типа boost, glm, SDL2 и т.д.), настроить себе clang-format и clang-tidy
  • И ко всему бы ещё поднять continious integration где-нибудь в Jenkins или Travis

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

А встречались ли нормальные, хипстерские туториалы или воркшопы? Из разряда: здесь у нас будет окружение для $LANGUAGE_NAME, так оно будет выглядеть, такие входные требования к системе/окружению, вот серия статей, где модуль за модулем мы будем настраивать всё это. Не хочешь ставить отдельный модуль - пропускаешь статью и читаешь дальше.

Пока видел только такой воркшоп: Continuous integration для C++ разработчика. Там сразу понятно что на входе, на выходе и как это будет выглядеть.

Ну или хороший воркшоп по libFuzzer: Modern fuzzing of C/C++ Projects

Не то чтобы я новичок и нуждаюсь в пошаговых указаниях, но полгода назад самому пришлось разбираться, как нормально собрать себе свежий Clang и CMake для экспериментов с C++17 (в итоге написал небольшой shell-скрипт для сборки и для запуска checkinstall).

А сейчас на оффтопе так же разбираюсь с MinGW, который как оказалось существует в трёх вариациях (MinGW, MinGW-w64 и TDM GCC), из которых первая ещё и самая зашкварная (в ней даже заголовок <mutex> не работает, вот стыдоба-то).

 

quiet_readonly
()

Избежать повторения кода с помощью C++11 range-based for

Форум — Development

Допустим, есть какие-то единообразные инструкции над несколькими переменными

if(x % 2 == 0) ++x;
if(y % 2 == 0) ++y;
if(z % 2 == 0) ++z;

Как такое делается в современном c++? Я попробовал range-based for, но заработал только вариант с указателями.

for(auto t: {&x, &y, &z})
    if((*t) % 2 == 0) ++(*t);

Reference/dereference тут выглядит явно неуместно. Можно как-то по-другому?

Update

С помощью анонимусов получилось вот такое решение

#include <cstdio>
#include <initializer_list>
#include <functional>

#define rlist(x, ...) (std::initializer_list<std::reference_wrapper<decltype(x)>>({x, __VA_ARGS__}))

int main()
{
    int x = 2, y = 3, z = 4;
    for(auto t : rlist(x, y, z)) if(t % 2 == 0) ++t;
    printf("%d %d %d\n", x, y, z);
    return 0;
}

При использовнии выглядит достаточно прилично (а на макрос можно не смотреть). Требует стандарта C++11. Что с производительностью - пока не знаю.

Update 2

Решение на шаблонах от eao197

#include <iostream>
using namespace std;

template<typename F> void apply_to_all(F &&) {}

template<typename F, typename T, typename... O>
void apply_to_all(F && f, T && x, O && ...other) {
	f(forward<T>(x));
	apply_to_all(forward<F>(f), forward<O>(other)...);
}

int main() {
	int x = 2, y = 3, z = 4, v = 5, w = 6;
        apply_to_all([](int & v) { if(v % 2 == 0) ++v; },
		     x, y, z, v, w);
        apply_to_all([](int v) { cout << v << " "; },
		     x, y, z, v, w);
        cout << endl;
        return 0;
}
На c++14 можно писать auto вместо int в лямбде.

В С++17 за счет if constexpr не нужно будет делать пустую заглушку для прекращения рекурсии вызовов:

template<typename F, typename T, typename... O>
void apply_to_all(F && f, T && x, O && ...other) {
	f(forward<T>(x));
	if constexpr(0 != sizeof...(other))
		apply_to_all(forward<F>(f), forward<O>(other)...);
}

 ,

Crocodoom
()

Какие telegram-каналы читаете?

Форум — Talks

Интересует, какие интересные телеграм-каналы читают лоровцы. Особенно интересны небольшие, пока не раскрученные каналы с годным контентом.

И да, линукс тут при том, что иногда читаю из под него Telegram.

 

Jack-Laphroaig
()

О стартапах тред.

Форум — Talks

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

 

Dron
()

Open source:Симуляторы кинематики столкновение тел и.т.д.

Форум — Science & Engineering

В английской википедии как то так.

Multibody dynamics (MBD) and Kinematics

Интересует, что есть в опенсорс и живое, интерес скорее любопытственный, а не для производства/диплома)

Интересует ссылки на софт и кто что пробовал. Моё гугление http://www.ar-cad.com/freecad/index.html привело меня к альтернативному freecad. Есть ещё что-то MBDyn но это я так понимаю солвер/решатель, а вот задачку удобно для него составить негде?

Каст atsym

Интересны простые примеры столкновение тел, трение, изобразить зубчатую передачу.

 ,

DR_SL
()

Ищу соавтора! Реализация Lisp.

Форум — Development

Я занимаюсь разработкой нового диалекта Lisp, параллельно в вузе читаю спецкурс по семантике языков программирования. По ссылке можно прочитать о некоторых моих идеях:

https://drive.google.com/file/d/0B13ti3tFkQZlSkFPV3NuMHR4eGc/view?usp=sharing

Пока исходников нет в общем доступе, т.к. я активно работаю над ними и мне тяжело будет поддерживать к ним доступ в инете. Ищу соавтора для допиливания реализации и/или написания книги по семантике Лиспа. Желательно из Санкт-Петербурга. Обращайтесь вконтакте: http://vk.com/maliculo

Еще хочу прорекламировать свою публичную лекцию в cs club по Лиспу: http://compsciclub.ru/node/2767

 

komputikisto
()

Техническое моделирование в Blender (CAD/CAM/CAE)

Форум — Science & Engineering

В этой теме собираем и обсуждаем методы и приёмы работы в Blender при выполнении технического моделирования (конструирования).

Ресурсы для Blender 2.78:

Ресурсы для Blender 2.49:

Специальные сборки (форки):

Если знаете где есть материалы по данной теме — давайте ссылки для наполнения шапки топика!

 , , ,

atsym
()

Насколько «сложно» сделать JIT-компилятор?

Форум — Talks

V8 - js от гугла, там есть JIT. PyPy - реализация python - там есть JIT.

Они все делают каждый свой фирменный JIT? Нет, ясно что специфика языка добавляет свою логику, например если динамическая типизация, то там переменная - это структурка с полем «тип», а в статической такого может не быть и т.п.

Вопрос наверное больше про оптимизатор. Скажем, надо сгенерить машинный код для перебора элементов в цикле. Или надо перемножить 2 вектора. JIT вставит векторную инструкцию или будет перебирать? JIT сможет понять что вот эту функцию можно вообще не реализовывать, она никогда не вызывается и т.п.

Т.е. интересно, тот код, который пишет в память байтики машинного кода, он у всех свой домашний? Или юзаются какие-то LLVM-подобные штуки, которые для большинства JIT-компиляторов разных языков давно уже дают что-то одного типа?

 

hlamotron
()

Курсы или пособия по проектированию трансляторов

Форум — General

Добрый вечер! Необходимо пройти курс по проектированию трансляторов либо курс по «устройству работы» компиляторов. Буду благодарен за ссылки на материалы или Ваш личный опыт.

 ,

kyka276
()

Аццкая музыка

Форум — Talks

Добра, пони.

Играя очередную партию в Hedgewars, я заметил, что в теме «Hell» есть замечательный саундтрек и мне захотелось целый альбом чего-то такого. У вас, слушающих фьюнерал/дроун-дум и дарк-эмбиент, не попадалось нечто похожее по атмосфере и составляющей? То есть, заглушённые крики и давящая окологотическая мелодия.

Как ещё один пример есть, конечно, Radiarc, но это не совсем то, что нужно.

 , ,

commagray
()

Запилим лорвики №3?

Форум — Linux-org-ru

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

mandala, как модератора нынешней «лорвики». Кого еще кастануть — говорите.

ЗЫ: Деньжат на хостинг нужно будет собирать с миру по нитке, ибо я таки нищеброд. Хотя, чо там...

 ,

batya
()

Колмогоровская сложность физических констант, сверхтьюринговые вычисления и теоретический предел точности измерений физических констант

Форум — Science & Engineering

Вот взять например число Пи, хоть число знаков после нуля там бесконечно и непериодично, на Машине Тьюринга можно написать программу конечной длины, которая бы за конечное время вычисляла любой конечный знак такого числа после запятой. Т.е. можно ввести понятия колмогоровской сложности применительно к числу Пи - минимальная программа, которая знак за знаком будет выводить число пи (или как вариант, по запросу вывести такую-то цифру после запятой).

Но есть и числа принципиально невычислимые, однако им можно дать описание. Скажем, взять какой-нибудь Brainfuck, в котором есть некий фиксированный набор инструкций, возьмем все возможные компьютерные программы на этом самом брайнфаке(их бесконечно) и представим бесконечное число, знаки после запятой в котором в двоичной системе счисления говорят, завершается или не завершается какая-то конкретная программа. Т.е. число 0.10010111011011111011... например говорит о том, что первая программа завершается, вторая и третья не завершается, четвертая завершается, пятая не завершается, в общем как-то так. Так вот, хоть я и смог описать это число, оно не является вычислимым т.к. не существует компьютерной программы, которая бы могла это число сосчитать произвольный знак этого числа т.е. высчитать число со сколь угодно высокой но конечной точностью за конечное время. Можно сказать, у этого числа бесконечная колмогоровская сложность

Так вот, вопрос. Есть ли физические константы, которые можно путем постановки физического эксперимента экспериментально определить со сколь угодно высокой точностью, но при этом чтобы не существовало компьютерной программы для МТ, которая бы могла это число вычислить чисто математическими методами? Взять например два неких радиоактивных изотопа с разными периодами полураспада, и вести наблюдение, какой из них распадется первее. После чего повторить эксперимент с такими же двумя изотопами. При этом, если первым распался один изотоп то записываем 1, иначе 0. Потом, собрав достаточно много такой статистики распада, посмотрим на отношение единиц и нулей. И чем больше проводится подобных экспериментов, тем больше мы получаем точность этого отношения (это будет отношение периодов полураспада, если я все правильно понял). Какие тут будут погрешности в измерениях, есть они вообще, и если да, как их минимизировать/убрать? Существует ли компьютерная программа для МТ, которая могла бы, используя чисто математические/алгоритмические методы, посчитать эту константу? Есть ли вообще такие физические константы, которые при наличии соответствующих ресурсов могут быть вычислены со сколь угодно высокой точностью? Если да, были ли попытки найти некий алгоритм, который бы «сжимал» подобные константы т.е. найти некие закономерности и алгоритм, который бы эту константу считал бы таким же образом, как и число Пи?

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

 , , ,

SZT
()

А что есть почитать по ядру?

Форум — Talks

Читаю сейчас книгу Лавкрафта «Ядро Linux. Описание процесса разработки», но всё не то. Во-первых, в 2013 году читать о ветке 2.6 это как-то странно. Во-вторых, книга ориентирована на программистов, а мне хотелось бы общей информации - как что устроено в ядре, какие интересные решения там есть, ну всё такое.

Есть что-нибудь подобное для как можно более новых веток ядра? Пусть не книги, а цикл статей. На русском.

 , ,

Deleted
()

Linux для <про>двинутых

Форум — General

А что у нас есть из литературы про архитектуру Linux? Сколько книг ни смотрю на том же рутрекере, всё по одному шаблону: как установить Ubuntu, Red Hat, ещё пачку дистрибутивов, да как потом поднять почтовый сервер да пользователей добавить, ну и дальше в том же роде. А хочется углубленной матчасти, как там что в ядре происходит, как взаимодействуют компоненты системы, всякие секретики sysfs.

Язык: русский.

 , ,

Deleted
()

Курс про shell и гнутые утилиты для неофита

Форум — Development

Нужен ~недельный курс с практикой. Формирующий у новичка понимание основных принципов работы в юних лайк шелле.

Желательно, что бы это было оформлено в виде набора кратких теоретических выкладок сопровождаемых тестами (желательно автоматическими).

Лучше, что бы таковой курс был составлен на английском.

Может попадалось кому, что то в таком духе на глаза?

 , , ,

pon4ik
()

Безумные тред. Список «хитрого». IT-знания с переднего края прогресса.

Форум — Development

Хотелось бы составить немного невменяемый иррациональный список-кучу «хитрого». Buzzwords из области высокой производительности.

Список будет содержать «хитрое». Хитрое - это узко-специальные знания из области алгоитмов, структур данных, современной аппаратуры, нацеленное на достижение высокой производительности; с чем работают передовые специалисты для достижения максимальной производительности. Также, хитрое - это IT - тенденции/идеи последнего времени.

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

Начну так:

  • lock-free структуры данных; CAS; барьеры памяти; relaxed, release, acquire и т.п. Блокировки шин, кешей, store-buffer и т.п. — вот это всё.
  • cache-oblivious структуры данных; van Emde Boas layout;
  • false sharing, кеши процов
  • fractal tree (buffered B-Tree), Lars Arge 2003, LSM
  • blockchain
  • netmap
  • HTML5/WebGL/WebSocket/WebAssembly
  • ML: нейросети, forest tree, HMM, WFST-графы

Критика списка не интересует, нужно только дополнение. Считаете список бредом -> не можете продолжить -> не продолжаете -> всё довольны.

 

hlamotron
()

sql ide?

Форум — Development

в этом вашем линуксе появилось что-то приличное для потсгреса? pgadmin все еще вселяет ужас один своим видом...

 ,

Rastafarra
()

Реальные пацаны пишут на Gambas!

Форум — Talks

Бодрячком, бодрячком, ребята!

Раз-раз-раз, это Gambas!
Application пишем класс,
И на GSoC'е пацаны
Пишут на Gambas квайны.
Этот ленгвидж любим мы,
Жгём все в ритме ВиВаси.
Сотня строк за пять минут —
Пацаны на ваське жгут.

Кодь на Gambas, если не лох!

Школа рака учит вас
CRUD'ы писать на Gambas,
Клаву до утра топтать
И ничё не принимать.
Питюшёны и кресты —
Наши злейшие враги.
Конпеляя всё за раз —
Отжигаем на Gambas!

Это сырцы гамбасы, веселее, пацаны!

https://www.dropbox.com/s/k7upzmt7zat93rq/Gambas.ogg?dl=1

// Кто не понял, о чём ваще речь: http://gambas.sourceforge.net/en/main.html

 , , , ,

contra_sperm_spero
()

Посоветуйте, что почитать по big data

Форум — Talks

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

 , ,

praseodim
()

JavaScript?!

Форум — Development

Бобра всем форумчанам.

Недавно переквалифицировался из чистого бекенда во фронтенд и открыл для себя прекрасный мир JavsScript (оказывается это давно уже Язык, зря к нему так относился пренебрежительно). Появились некоторые вопросы:

  • Что можно почитать из книг именно по ES6?
  • Аналогично - посоветуйте что нибудь по Node.js
  • Так же - по Express и Jade
  • Есть ли какой-нибудь фреймворк для создания игр для декстопа (не html5) кроме Cocos2d (по нему очень плачевные доки для JS)?
  • Какой фреймворк для декстоп приложений рассмотреть? Qt/QML не предлагать - интересен именно фреймворк с поддержкой ES6.
  • Аналогично предыдущему - для мобильников.
  • Лучшая IDE?

Всем спасибо за ответы!

 , , ,

silver-bullet-bfg
()