LINUX.ORG.RU

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

Запись звука, музыки.

Форум — Multimedia

Продолжаем юзать Линукс. С фоторедакторами малость разобрались. Теперь интересуют проги для записи звука, для нот. А также гитарные процы. На винде использовала ReValver, но он никогда не впечатлял. Отклик сильно тормознутый, играть с такими задержками не вариант, а писаться так и подавно. Писала звук в audacity. Тут все в общем то устраивало. Довольно простая в использовании прога. К нотным еще не подобралась. Может есть что-то типа Guitar pro?

 , , ,

irina_ivanovna
()

[C++?] Серьезный вопрос.

Форум — Development

Просьба ответит серьезно, желательно с аргументами за или против.

Предистория:
Когда то давным давно (я тогда еще только закончил 9-ый класс) я увидел в газете объявление о наборе в летнюю группу по изучению классического программирования. В тот момент я был с компьютером на ты и "очень" хорошо в них разбирался (переустанавливал Windows каждый месяц, хаял Microsoft просто потому, что после моих настроек W приходилось постоянно переустанавливать). Группа по классическому программированию так и не набралась, но набралось 1 человек на Visual Basik for Applications. Я соглсился быть вторым и начались занятия.
Все, что мне там объясняли я схватывал быстро. Меня пригласили продолжить обучение в сентябре на курсе "моделирование".
Там уже был Pascal, который я тогда совсем не знал. Сам курс был очень разношорстный: мы изучали и использование мыши через прерывание, готовились к различным олимпиадам. Параллельно я изучил Pascal.
Потом был Delphi. К концу 10-го класса я уже неплохо владел приемами программирования и вовсю клепал бесполезные программулины. Потом поступил в универ на программиста. Там тоже был Delphi, и я особо не напрягаясь писал все лабы (к моменту поступления я уже был знаком с логикой указателей, самописные стеки и графы, etc).
На 2-ом курсе в гостях у знакомого я разобщался с человеком, который уже насколько лет работал в нерезиновой программистом. Он мне и открыл глаза на мир: "Delphi здох. Его уже похоронили и забыли. Сейчас необходимо знание C++, C#. Необходимо занание паттернов проектирование". Вобщем много чего он мне наговорил. Книжек умных насоветовал, подкинул MSVS 2008, кучу электронных книжек. Я изучил C# по книжке Шилдта. Читал "Идеальный кол" (автора уже не помню). Потом купил(!) себе книжку Шилдта про С++. Мне понравился язык. Тем более что мне казалось, что именно он и есть общепринятый стандарт. Наиболее удобный язык для программиста.

А недавно в соседней теме за упоминание это С++ меня чуть было не съели со всем чем можно. Так-то.

Собственно вопрос: Так стоит ли изучать дальше С++ (а я уже достаточно углубился в книжку Страуструпа, подробно изучая все подводные течения)? Какой язык стоит изучать? Какие из них более востребованны?

Спасибо всем, кто осилил это многобукаф.

trex6
()

Ищу Senior Software Engineer с опытом разработки компиляторов в мировую CAD software компанию. ЗП высокая. Киев

Форум — Job

Ищу Senior Software Engineer с опытом разработки компиляторов. ЗП высокая, Киев. Msg me (marina.dultseva@gmail.com) or skype me (marina_dultseva). Вот описание позиции:

Global CAD software company is looking for Professional Senior Software Developers to join our international team in Kiev and work on low end part of complex software development tool, which enables user to compile code, debug, work with memory layout and work in advanced IDE.

Main responsibilities: - Design, implement and re-target significant parts of compilers and associated tools - Cooperate with R&D and product teams to enhance our technology and products - Apply the team's software engineering processes to deliver defect free code

Requirements - Strong C/C++ programming skills and proficient in scripting languages - Strong software design and algorithm development skills - Experience in contributing to production compiler codebases (commercial or open-source) - MS or BS in computer science, engineering or related field - At least 7 years work experience, with a strong track record of building high performance, production quality software on schedule - Thorough understanding of microprocessor instruction sets and architectures including multi-core, multi-thread, vector processing, and GPU - Experience with the application of formal methods - Effective verbal and written communication skills in English (at least Upper Intermediate) - Ability to work in a team as well as alone

Benefits: - Competitive official salary, which is based upon your qualification; - Opportunities for career and professional growth, working with new progressive technologies; - Challenging complex permanent projects; - Flexible working day (40 hours per week); - 24 days paid vacation; - Paid sick leave.

 , , , ,

marrum
()

Какой язык относительно легче изучается: японский или корейский?

Форум — Talks

Хорошо владею 2 славянскими языками, а также английским, базовым испанским латинской Америки и совсем начальным кхмерским.

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

Чье письмо читаемее? Какой легче для слуха? Какой язык в целом проще?

 , ,

redhat
()

Facebook платит за устранение багов в реализации языка программирования D

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

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

Одно из определений языка D: «D — это то, чем должен был быть С++». Вокруг языка сломалось уже много копий, но несмотря на это язык продолжает жить и развиваться, демонстрируя свои замечательные возможности и расширяя свое сообщество. Все больше разработчиков из мира С++/Java пристально следят за развитием языка и стараются держать руку на пульсе. Должен отметить, что сообщество D не является ортодоксальным и фундаменталистким (что бы это ни значило), и нередко в ньюсгруппах можно увидеть, что в ответ на вопрос, можно ли использовать D для решения определенной задачи, члены сообщества рекомендуют задавшему вопрос использовать другой язык, отличный от D. Так что в лице сообщества D любой найдет грамотных специалистов своего дела, готовых ответить на нужный вопрос кратко и по существу. Все это делает развитие языка неизбежным и неотвратимым.

Список багов с ценами за их устранение

>>> Оригинал новости

 ,

yetanother
()

Советские фантастические фильмы

Форум — Talks

Что из советских фантастических фильмов стоит посмотреть? Поисковик выдаёт большие списки, посоветуйте что действительно стоит посмотреть.
Из детства помню только куски про каких-то глупых роботов, которые глючили от загадки "А и Б сидели на трубе...".

 

teod0r
()

Что делают хаскеллисты если нужно внезапно выполнить I/O?

Форум — Development

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

def func(args):
    a = subfunc1(args)
    b = subfunc2(a)
    return subfunc3(b)
func args = subfunc3 b where
     b = subfunc2(a)
     a = subfunc1(args)

Функции работают одинаково, плюс относительно хаскелловской функции я знаю что она не зависит от глобального состояния и прочий хаскелловский блёрб.

Но тут ВНЕЗАПНО я понял, что хотел бы логгировать все случаи, когда subfunc1 выдал какой-то определенный результат. В случае с императивным кодом все просто

def func(args):
    a = subfunc(args)
    if some_condition(a):
        logger.warning('Some shit happened')
    ....

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

Вопрос, как правильно писать на хаскеле чтоб в такой ситуации отделываться минимальными изменениями кода?

 

provaton
()

Самые необычные произведения

Форум — Talks

какие вы можете назвать самые необычные, нестандартные, шаблоноразрывающие сюжетно и стилистически художественные произведения? жанр любой, кроме детектива и фэнтези

для затравки: «Котлован» Платонова и «Толстая тетрадь» Аготы Криштоф

 ,

Alyssa
()

KVM и OpenStack

Форум — General

Пытаюсь читать доки по OpenStack и не могу найти в них прямого ответа на вопрос: как именно обеспечивается взаимодействие между KVM и возможностями предоставляемыми OpenStack (Swift, Cinder, Neutron). Насколько я понимаю, интерфейс у OpenStack - ReST поверх HTTP; устройства ввода-вывода, эмулируемые KVM, обращаются непосредственно к нему? Или (например, для Swift или Cinder) на хосте через FUSE монтируются некие сетевые шары, к которым потом KVM обращается как к обычным файлам?

Тем, кто посоветовал «поставь OpenStack и посмотри» - большое спасибо.

 , ,

tailgunner
()

Вышла Scala 2.10

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

Объявлено о выходе новой версии языка программирования Scala 2.10.

Основные нововведения:

  • классы-значения (value classes) — новый механизм, позволяющий уменьшить расходы на выделение памяти;
  • неявные модификаторы (implicit classes) теперь относятся к определению классов и призваны упростить расширения для других типов;
  • интерполяция строк (string interpolation) — новый механизм создания строк;
  • Futures и Promises призваны упростить создание многопоточного кода;
  • библиотека Akka Actors теперь является частью языка;
  • наконец-то в состав языка добавлена поддержка макросов.

Текущая стабильная версия языка программирования Scala может быть получена на странице загрузки проекта; исходные коды распространяются на условиях лицензии BSD.

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

 

ymn
()

Чем отличается компилятор от интерпретатора?

Форум — Development

Сабж

Еще интересует, является ли то и другое трансляторами?

selena-gomes
()

Книга по алгоритмам

Форум — Development

Здравствуй, ЛОР:)!

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

Заранее спасибо.

 ,

Sektor
()

Страуструп о будущем семантических средств разработки с комментариями

Новости — Документация
Группа Документация

У Страуструпа имеется книжка о развитии и о будущем средств разработки для языка C++, "Дизайн и эволюция языка C++", в частности о поддержке семантического программирования. Интерес представляют комментарии к книге данные Евгением Зуевым, одним из известных советских программистов и разработчика компилятора C++.

Отредактировано anonymous_incognito

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

 ,

anonymous
()

[C][pool based memory allocator]

Форум — Development

Подскажите какую-нибудь приличную сишную библиотеку для работы с памятью через пул объектов. Года 4 назад что-то находил, но название вылетело из головы совершенно.

Лицензия LGPL, BSD, etc...

 

mv
()

Как оптимизировали программу на Ocaml

Новости — Документация
Группа Документация

По ссылке приведены примеры программ с соревнований на ICFPC'09 (кстати, самим по себе интересными тем, что участники соревновались в управлении космическими аппаратами) которые демонстрируют как оптимизационные возможности, свойственные функциональным языкам (в частности хвостовая рекурсия), позволяют написанной на нём программе-интерпретатору некоего языка управления двигателем космического аппарата обогнать по скорости работы аналогичную на C/C++.

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

 , , ,

anonymous_incognito
()

О каких алгоритмах любят спрашивать на собеседовании разработчики компиляторов?

Форум — Development

Необычный вопрос, да (-; О каких алгоритмах любят поболтать на собеседовании парни, разрабатывающие компиляторы? Что у них там самое коварное на уме из книжки Ахо, Ульмана и Лам? Спасибо.

kiverattes
()

Обновился инструмент для работы с агентами в C++: SObjectizer 5.5.0

Форум — Development

SObjectizer — это реализация модели акторов для C++, позволяющая программировать на C++ с использованием работающих на разных нитях агентов, общающихся между собой посредством сообщений. SObjectizer существенно упрощает разработку событийно-ориентированных приложений, для параллельной и независимой обработки событий в которых требуется многопоточность и/или распределенность. SObjectizer использовался для создания как для мелких утилит, так и серьезных распределенных приложений, работающих под большой нагрузкой в режиме 24x7.

Последние несколько лет SObjectizer развивается на SourceForge как OpenSource проект под BSD-лицензией. Подробнее об истории, текущем состоянии и направлении движения SObjectizer можно прочитать здесь.

Версия 5.5.0 является результатом очередного, очень значимого этапа развития проекта.

Главное отличие v.5.5.0 от предыдущих версий — это отсутствие зависимости от ACE Framework. Т.е. теперь ACE в коде ядра SObjectizer не используется вообще, для SObjectizer достаточно наличия стандартной библиотеки C++11. Это означает, что SObjectizer уменьшился в размере, нужно меньше времени на сборку SObjectizer-проектов, упрощается поддержка различных компиляторов и платформ. В частности, эта версия SObjectizer тестировалась посредством MSVS2013 (Windows), GCC 4.8/4.9 (Windows, Linux), Clang 3.5.0 (Linux).

Из более мелких изменений можно отметить прямую поддержку std::chrono при работе с отложенными/периодическими сообщениями, а так же небольшое изменение названий некоторых классов/функций (с сохранением старых имен для обеспечения совместимости). Более подробная информация о нововведениях в v.5.5.0 доступна в соответствующем разделе Wiki проекта. Так же увеличилось количество страниц с описаниями базовых вещей SObjectizer.

Версия 5.5.0 может быть загружена из раздела Files или получена из Subversion-репозитория.

Примечание. Этот релиз содержит только ядро SObjectizer (т.е. проект so_5). Никакие другие подпроекты (вроде so_log или so_sysconf) в релиз не включены. Возможно, сборка SObjectizer Assembly со всеми подпроектами будет сформирована и опубликована позже (если она действительно кому-то потребуется).

PS. Анонс делается просто для того, чтобы уведомить, что такой проект есть, живет, развивается. Доступен под BSD-лицензий, т.е. даром, в том числе и для коммерческих проектов. Это не просьба сделать code review. И не попытка кому-то что-то «продать».

PPS. Специально для желающих постебаться над синтаксисом и посравнивать программирование на C++ с Perl-ом. Вот классический пример Hello, World. В традиционном, ООП-шном варианте, с созданием класса агента и переопределением виртуальных методов (хотя есть и более модерновый вариант, с использованием С++ных лямбда-функций):

#include <iostream>

// Main SObjectizer header files.
#include <so_5/all.hpp>

// Definition of an agent for SObjectizer.
class a_hello_t : public so_5::rt::agent_t
{
	public:
		a_hello_t( so_5::rt::environment_t & env )
			: so_5::rt::agent_t( env )
		{}

		// A reaction to start of work in SObjectizer.
		virtual void
		so_evt_start() override
		{
			std::cout << "Hello, world! This is SObjectizer v.5."
				<< std::endl;

			// Shutting down SObjectizer.
			so_environment().stop();
		}

		// A reaction to finish of work in SObjectizer.
		virtual void
		so_evt_finish() override
		{
			std::cout << "Bye! This was SObjectizer v.5."
				<< std::endl;
		}
};

int
main( int, char ** )
{
	try
	{
		// Starting SObjectizer.
		so_5::launch(
			// A function for SO Environment initialization.
			[]( so_5::rt::environment_t & env )
			{
				// Creating and registering single agent as a cooperation.
				env.register_agent_as_coop( "coop", new a_hello_t( env ) );
			} );
	}
	catch( const std::exception & ex )
	{
		std::cerr << "Error: " << ex.what() << std::endl;
		return 1;
	}

	return 0;
}

PPPS. Специально для желающих узнать, чем SObjectizer лучше libcppa/CAF. В двух словах — это две совершенно разные разработки, ставящие перед собой разные цели и достигающие их разными способами. Подробнее здесь и здесь.

 , , ,

eao197
()

Анализ пользователей Common Lisp и Racket

Форум — Development

Common Lisp разрабатывался и используется в предположении, что пользователь программы — программист. Поэтому из языка намеренно исключены сложные для понимания конструкции (пользователь не обязательно квалифицированный программист), поэтому в языке мощнейший отладчик, позволяющий без остановки программы переопределять функции и вообще делать что угодно. Но из-за этого документация по большей части библиотек Common Lisp существует только в виде docstring и комментариев в коде (некоторые вообще считают, что код сам себе документация). Из-за этого обработка ошибок почти всегда оставляется на отладчик (главное сделать рестарт «перезапустить с последней итерации», а там пользователь сам разберётся). Из-за этого в программе проверяется только happy path (пользователь ведь «тоже программист»).

Racket разрабатывался и используется в предположении, что пользователь программы не программист, а задача разработчика написать программу так, чтобы она корректно работала при любых входных данных (если данные некорректны, то сообщала об этом в том месте, где данные были введены). Поэтому в языке эффективная библиотека для написания тестов, система контрактов на уровне модулей, макимально широкий спектр инструментов программирования (разработчик должен быть профессионалом!). Также реализована идея инкапсуляции: считается, что пользователь модуля не должен знать особенности реализации и, более того, не может в своём коде изменить функцию чужого модуля если это явно не разрешено разработчиком того модуля. Исходный код разумеется доступен, но его не требуется смотреть, чтобы использовать модуль. Достаточно документации. Поэтому реализована мощнейшая система документировния Scribble, а при реализации макроса есть возможность обеспечить указание на ошибки в коде, предоставленном макросу пользователем, не показывая потроха макроса.

И поэтому в Racket нет CLOS (есть как минимум две реализации, но не используются) - провоцирует заплаточное программирование (monkey patching), поэтому отладчик намеренно ограничен (если ты отлаживаешь программу, значит ты не знаешь как она должна работать!), поэтому нет разработки в образе (image based) - она провоцирует разработку через отладку (а значит непонимание программы и проверку только happy path).

Таким образом, Racket и Common Lisp несмотря на внешнее сходство являются очень разными языками. И я рекомендую писать на Racket, если только конечными пользователями программы не являются исключительно программисты на Common Lisp.

Взято с http://racket-lang.blog.ru/#post214726099

Хотелось бы знать, что по этому поводу думают пользователи ЛОРа. А также, мне кажется, что для Java и C++ будет где-то такая же разница.

 , ,

monk
()

Вышел CompCert 2.0

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

CompCert — это компилятор языка программирования Си (ANSI C с незначительными ограничениями) для платформ PowerPC, ARM и IA32, предназначенный для сборки программ с повышенными требованиями надежности и дополняющий формальные методы проверки (статический анализ, проверка на модели и т.п.) на уровне исходного кода.

Некоторые изменения:

  • поддержка типов long long и unsigned long long;
  • предварительная поддержка отладочной информации;
  • агрессивная стратегия исключения дублирующегося кода;
  • уменьшено потребление памяти при компиляции;
  • исправлены некоторые ошибки.

Исходные коды компилятора распространяются на условиях лицензии «INRIA Non-Commercial License Agreement».

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

 compcert

ymn
()

Объявлено о готовности международного стандарта C++14

Форум — Talks

http://www.opennet.ru/opennews/art.shtml?num=40408
Для Ъ:

  • Поддержка автоматического определения типа, возвращаемого любой функцией, в которой используется несколько выражений return, содержащих значение одного типа. В С++ определение типов было ограничено лямбда-функциями, содержащими только один вызов return;
  • Реализован дополнительный синтаксис определения типа - decltype(auto), который можно использовать для определения результирующего типа возвращаемого функцией значения (например, «string lookup1(); decltype(auto) look_up_a_string_1() { return lookup1(); }»);
  • Поддержка захвата переменных лямбда-функций с возможностью захватывать переменные с перемещением значения и объявлять произвольные локальные переменные в лямбда-объекте;
  • Возможность указания типа «auto» для лямбда-выражений, позволяющего вынести определение типа на плечи компилятора по аналогии с вычислением типов переменных, объявленных с указанием ключевого слова «auto»;
  • Поддержка задания шаблонов для переменных, в дополнение к ранее поддерживаемым шаблонам для функций и классов;
  • Расширение числа возможностей, которые можно использовать внутри функций constexpr. В частности, C++14 позволяет объявлять локальные переменные и использовать выражения if, switch, for, while, do-while, допускает мутацию объектов;
  • Добавлен атрибут "[[deprecated]]", при помощи которого можно пометить элемент устаревшим, после чего останется возможность использования этого элемента, но будут выводиться предупреждения, что в будущем его поддержка может быть прекращена.
  • Поддержка разделяемых мьютексов (shared_mutex) и разделяемых блокировок (shared_lock);
  • Добавлены псевдонимы «*_t» для трансформации типов, позволяющие уйти от использования многословных объявлений c typename (remove_reference_t вместо «typename remove_reference», make_unsigned_t вместо typename make_unsigned и т.п.);
  • Возможности обращения к элементам кортежа по типу, при условии, что в кортеже содержится только один элемент данного типа.

Не думал, что когда-нибудь это скажу, но С++ потихоньку нет-нет да становится годным.

 

mix_mix
()