LINUX.ORG.RU

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

BE::Shell или не плазмой единой

Галерея — Скриншоты

Доброго вечера всем. Сегодня я бы хотел рассказать о замечательной замене плазмы для KDE под названием BE::Shell. Это весьма гибко настраиваемая оболочка, позволяющая использовать многие элементы (в том числе Label с поддержкой html) и стилизовать их с помощью qss. Это предоставляет неплохие возможности для творчества. Пример конфига можно увидеть на скриншоте, а конфиг целиком - взять в приложенном архиве. Хотя штука это довольно малоизвестная и пилится всего одним человеком, но пилится весьма активно, и при этом производит впечатление целостного и зрелого продукта. Сразу хочу предупредить, что в качестве дефолтного конфига используется совершенно пустой стол, что может озадачить установившего его человека, так что стоит сразу создать свой или использовать найденный на просторах интернета конфиг.

Использую я все это дело с XMonad.

Пустой стол
Куда же без ЛОРа

Конфиг

 ,

keyran
()

Почему иксы надо закопать

Форум — Talks

Как задолбало смотреть на деградантов, агитирующих сидеть на иксах. Для тех, кто хоть немного разбирается в современных GPU - иксы это дикость. Это такое же legacy как терминалы в ядре.

Так получилось, что пока SGI со товарищи занимались ИБД, и надували щеки - вот прям также, как местные ололо, «разбирающиеся в архитектуре иксов», компания микрософт день и ночь думала о том, как сделать графику быстрее. И поэтому майкрософт(а не красноглазые) придумали шейдеры. Поэтому они придумали стандарт на API для ускорения видео. Микрософт а не «опенсорс сообщество» задает направление развития графики.

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

А опенсорс идет по остаточному принципу. И главным образом благодарить за это вы должны сраные иксы.

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

То же самое и для 3д: есть api, есть драйвер, есть минипорт. На выходе получаешь surfacы. Их можно поставить в очередь отрисовки(flip queue) откуда их будет подбирать DWM и собирать в окошки.

И то же самое для 2Д. каким надо быть идиотом, чтоб городить всякие XAA/EXA/UXA/XAXAXA вместо того, чтоб дать приложению самому отправлять команды на gpu. Там есть полная поддержка всей графики-2д 3д и видео. тот же интелоGPU можно проинструктировать программой, и он сам будет отдавать команды на blit-функцию, рисовать градиенты, глифы печатать, и кривые малевать.

Вот ровно то же самое делает wayland. он подбирает surfacы из flip queue и собирает их в картинку.

Никакого геморроя с bumblebee и прочими костылями для убогих иксов: surfacы которые видит интегрированное видео - они в памяти. mmapнул памяти, занес ее в GTT интеграшки - есть окно. открыл драйвер мегаgpu, занес в его GTT ту же область. все работает. gpu рисует и блитит, интеграшка под чутким руководством оконного манагера собирает и показывает.

Я думаю, иксмены понимают, что их аргументы «за иксы» - это полный бред. Они отлично понимают, что wayland проще и меньше жрет ресурсов. Они отлично понимают, что рисовать можно и без иксов, и даже удобнее, т.к. нет самодельных проблем с несколькими видяхами. И даже их сетевая прозрачность проигрывает RDP по всем параметрам: флешки звук и даже скорость.

Эти деграданты просто идут на принцип. Все они понимают, поэтому как полоумные повторяют про «сетевую прозрачность»: видят, что ничего больше в активе нет.

 ,

ckotinko
()

Разыскиваю за мошенничество

Форум — Talks

Ребята, прошу помощи. Разыскиваю за мошенничество одного персонажа. Поиск показал, что он активный пользователь форума linux.org.ru. Профиль www.linux.org.ru/people/wyldrodney/profile

Текст объявления: Продам Pentax K-5 Kit! Петербург. Дмитрий, 8 999 026 40 86. Объявление появлялось на Avito с ценой 12 400 (удалено), с ценой 14 500 висит В контакте на БАРАХОЛКЕ PENTAX (от 21 окт 2014) и в группе PENTAX K5 (от 21 окт 2014) главная страница. На форуме linux.org.ru тема тоже была.https://www.linux.org.ru/forum/talks/10879135 Автор объявления Дмитрий Казанцев vk.com/id266485184 , e-mail d.kazantsev@7pikes.com Договорились о покупке с пересылкой в Нижний Новгород. Условия пересылки - треть суммы предоплаты на QIWI-кошелек, идентичный номеру телефона 8 999 026 40 86. Внес предоплату 4500 02 ноября. После чего продавец отписался 03 ноября, что у него возникли проблемы с QIWI-кошельком. С тех пор по сегодняшний день, 16 ноября, на связь не выходит, на телефонные звонки и электронные сообщения по почте и В КОНТАКТЕ не отвечает, хотя в сети появляется регулярно. Чек о переводе имеется, переписка сохранена. Есть все основания обратиться в полицию, но хотелось бы решить дело мирно.

С уважением, Евгений Богушев, Нижний Новгород. Страничка в контакте vk.com/id33223069, на форуме www.linux.org.ru/people/pentax/profile

Перемещено beastie из admin

pentax
()

agda или coq?

Форум — Development

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

 ,

kyz
()

Ворос по раскрытию макросов

Форум — Development

Допустим, я пишу новый, «более лучший лисп»(ТМ). Хочу реализовать простенькую макросистему. Мой экспандер анализирует исходник, находит макровызовы, раскрывает их, а дальше возникает вопрос. Что если код, в который раскрывается макрос, содержит еще один макровызов? Его нельзя раскрыть на данном этапе, поскольку еще нет разрешения имен. Значит, мне надо заэвалить все, а раскрывать когда? Скорей всего, когда данный вызов потребуется. Заэвалил, запускаю снова экспандер. вроде норм. Но что если результат 2 вызова требуется уже при первом выполнении? Заставлять пользователя явно указывать, в какой фазе раскрывать каждый макрос, или как?

 

terminator-101
()

Не понимаю, что такое замыкание (closure)

Форум — Development

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

Но если прочитать вики, то «Замыкание (англ. closure) в программировании — функция, в теле которой присутствуют ссылки на переменные, объявленные вне тела этой функции и не в качестве её параметров (а в окружающем коде).» Ну и что? Получается просто, что процедура использует глобальные переменные, ничего примечательного тут вроде и нет.

Так что такое замыкание? Помогите разобраться.

 ,

mentalmenza
()

Пьеса «Тред на ЛОРе», в одно действие.

Форум — Talks

по мотивам Ищу гуру Си программирования

Входит Вопрощающий:

Всем привет.
Есть тут свободные полгода
В которые хотел бы я программы изучать,
Даю вам это знать.
Пока что начал только Java лишь учить
По книге, впрочем, и дошёл до ООП,
Вы подскажите, это правильно, иль надобно тем книгам сгнить?
Хотел бы выбрать я ЯП и направление,
Что позволяло бы работать на фрилансе,
А также, у людей чтоб вызывалось изумление.

Входит ЛОРовец:
Двадцатник баксов в час, или забудь о нас

Входит Новенький:
You're welcome.
Давай свои контакты - отпишу.
Ведь мне не жалко помогать, один чёрт одиночество последнее недели
Так разъедает душу мне, что еле я дышу.

Входит Наркоман:
K&R расскажет, и покажет
Тебе всё милый друг,
Ну а коль что вдруг непонятно станет, то значит в голове недуг.
Ведь суть проста: конструкций мало, новых слов десятка два.
И сей язык освоишь быстро.
Хочу предупредить я, правда, что сам язык не цель твоя,
Ведь цель должна учится на ошибках.
Важнее знать не то, что как вам делать сударь,
Важнее путь тернистый, полный ям, и отроколов
Вам пройти и знать тропинку по которой надобно идти таким путем
Чтобы все ямки обойти.
И к сожаленью, или, может, к счастью, тропинку ту лишь одному тебе дано найти.
Ведь мудрый путник лишь укажет, в какую можно сторону идти.

Входит Зевака:
Внесите царя.

Входит Лавсан:
Я хоть не Царь, но знаю всё про Си, давай, спроси

Вопрощающий:
Жду контакта.

Входит Некто:
Будут вопросы - кастуй, или пиши на мыло.
И мыло можно, если что, найти в LKML и ffmpeg-develop.

Входит Царь:
О Наркоман, а почему нули,
Которые смешать с навозом в три счета,
Так много кукарекают о том, о чем не понимают ничерта?

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

Вопрощающий:
Увы, нет у меня таких вопросов
(И тут же поникает носом)

Входит Эдди: (лавсану)
Ты царь?

Лавсан:
Кто такой царь?

Новенький (лавсану):
Он твой последователь.
Вон, четырьмя постами выше.
И, потише,
Сейчас начнется развлеченье.

Эдди (лавсану):
А, раз не царь ты, то ведь Си не знаешь!
К тому же, зачем еще и о Царе тут вопрошаешь?

Царь (вопрошающему):
Причем тут удивительные.
Когда хотите вы спросить что-либо, то естественно,
Что на пространные вопросы,
Не менее пространные я буду вынужден вам отвечать ответы,
Поймите ж это.

Поэтому, Царя должны вы право заинтриговать,
Чтобы смог он для себя обосновать
Полезность траты времени на ху**оса.
Вот смысл моего вопроса.
Зачем царю писать куда-то, без причины?
Не есть ли это признак вроде Эдди дурачины?

Входит Аноним:
Какое-то собранье зебр в треде.
И странно, все стихами говорят.
Похоже, что попал я в Ад.

ЗАНАВЕС.

 ,

lovesan
()

Лисперы, что я делаю не так? - II

Форум — Development

Я понял что я делал не так — я просто не использовал лисп.

Вощем, может кому полезно будет, человек пишет как дошел до жизни такой http://www.defmacro.org/ Честно говоря это мой уже не первый подход к снаряду. До этого раза поташнивало, сейчас думаю зашел. Действительно лисп оказался прост как грабли.

Без матов осознание того на сколько оно кульно описать тяжко.

Есть вопросы:

1) Кто-нибудь есть кто пользует vim, при этом пишет на лиспе?

2) Ясен хобот емакс мощнее, но как то оно не то. Есть кто пересел? Как ощущения вообще?

3) Practical Common Lisp ослилил. Что есть еще для просветления?

ebantrop
()

Об отсутствии кота

Форум — Development

(cons cat (cons other-cat nil))

Как можно заметить, отсутствие коробки с котом не является ни коробкой, ни котом, но одновременно и тем, и тем.

Кроме того, наличие отсутствия кота по очевидным причинам определяется только в рантайме.

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

К тому же, единственное, что нам и правда важно, так это то, что мы посадили котов в коробки, или скорее даже то, что они там сейчас сидят.

Отсюда:

Третья Теорема Лавсана (о бесполезности статической типизации)

Статическая типизация не добавляет ничего действительно полезного и только лишь отбирает время.

Дискач.

 ,

lovesan
()

Лямбда-выражения для идиота

Форум — Talks

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

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

LongLiveUbuntu
()

Какие есть ресурсы хорошие по теории ООП?

Форум — Development

Какие есть книги (и другие ресурсы) хорошие по теории ООП и связанного?

Кроме Википедии :-) Википедия сложна еще и тем, что там нету никакой структуры материала - мысли нужно формировать самому из взаимоисключающих обрывков, и путем чтения книг/ссылок откуда взялся материал. А эти ресурсы зачастую вообще не в ту степь, и начинаются словами «на основе ваших знаний вот такой-то теории».. т.е. ее тоже нужно изучать. Это безусловно познавательно, но не влезает ни в какие разумные требования по времени изучения материала. Разумные требования - ну, например, год.

stevejobs
()

Анализ пользователей 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
()

Compton Blur

Галерея — Скриншоты

Оказывается, в compton есть размытие, которое работает не медленно. Пока удалось включить только ядро 7x7box, гауссово не работает - скатывается на box.

PNG (2560x1440, 2080 Kb)

Обоина

 ,

zezic
()

Приложение силы не к центру масс

Форум — Talks

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

Перемещено leave из development

 

abs
()

как написать 2d физический движок?

Форум — Development

Я понимаю что это работа не на один вечер, и что задача эта не из легких, тем не менее хочется. Что хотелось бы - примерно как в LIMBO

UPD не думаю что язык играет какую-то роль,но писать я собрался на C++

 

abs
()

верификация алгоритма

Форум — Development

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

Я знаю о существовании agda, coq, ats - но, насколько можно судить по разрозненным знаниям из википедии, они доказывают корректность зависимых типов выражений. А у меня тип везде один и тот же - граф и граф

Подскажите, как правильно будет доказать правильность реализации алгоритма по некой спецификации? И как правильно описывать такие спецификации алгоритмов?

 ,

jcdr
()

Я снес свой проект к ебб

Форум — Development

я выполнил команду find myfolder/ ".pyc" -type f -delete в надежде снести все пик файлы из проекта и снес все из каждой вложенной папки , там было килограмм 100 двух недельного кода, а так же гит... Если ли варианты поднять хотябы код?

quas
()

Посоветуйте хорошую книгу по MySQL.

Форум — Development

Простенькие запросы писать могу, надо мочь писать не простенькие.

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

 , ,

Deleted
()

[ЖЖ] *морфизм, Haskell & Lisp

Форум — Development

Вот все праздники разбирался с Template Haskell, квазицитированием, SYB и ghc7, не забывая такие важные вещи как распитие спиртных напитков и игру в FreeCiv :)

И вот какая идея мне пришла в голову... Катаморфизм ведь — штука всеобъемлющая, и если лисперы могут называть свои S-выражения алгебраическими типами данных, то почему же мы не можем называть алгебраические типы данных S-выражениями?

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

Единственное, «но» в подходе лисп-систем к компиляции, там компилятор «внутри», а не «с боку» как в более традиционных подходах. А так, работы ведутся, та же Java, та же Scala позволяет вмешиваться в работу компилятора. А в GHC есть Template Haskell, который идеологически близок к лисповским макросам, с той только разницей, что они стоят по разные стороны относительно катаморфизма: лисп как списки, хаскель как алгебраические типы с соответствующей типизацией.

В ООП языках все еще интереснее, там для реализации лисповского подхода нужно две вещи: а) классы должны быть объектами первого класса; б) должен быть способ узнавать конкретный тип объекта в рантайме. В Яве есть и первое (на худой конец в рамках JVM), и второе. В С++ есть RTTI, а вот с первым дела обстоят вроде бы не очень, хотя Александреску в своей книге показывал, вроде бы, как можно генерить иерархию классов с помощью шаблонов. Про Scala, вообще молчу, там алгебраические типы «из коробки» имеются.

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

 

Macil
()

A Nanopass Framework for Commercial Compiler Development

Форум — Development

/cast true_admin; анонимус, толкавший nanopass народу; другой умный анонимус

Мне одному кажется, что оригинальной реализации сабжа от Эндрю Кипа и компании для commercial compiler development недостаёт хоть чего-то для обработки ошибок и реализации макросов?

Для сообщений об ошибках надо писать свой парсер и подпиливать грамматику языка, чтобы прямо в программе сохранять информацию о положении конструкций в исходнике. Для макросов надо вообще городить свои pattern matcher и code walker, потому что всё оригинальное добро на клёвом compile-time syntax-case и — сюрприз! — не позволяет доопределять языки в рантайме.

Итого что в осадке остаётся? Разве что идеи о том, 1) что маленькие специализированные проходы удобнее комбинировать и дорабатывать, чем большие монолитные, 2) что eDSL лучше сраной кодогенерации, 3) что pattern matching удобен для написания трансляторов. Ну, блин, это вроде и так очевидные вещи.

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

В общем, правы были те ребята из ICFP о том, что nanopass годится только как наглядное пособие для обучения. Даже во второй инкарнации. Ну, или как, э-э-э... pattern matcher для бек-энда, если закрыть глаза на обработку ошибок.

Я уж думал, появилось хоть что-то, уменьшающее количество ad-hoc решений при реализации языков. Но, похоже, создание подходящих утилит всё ещё остаётся искусством.

/discuss

 , ,

ilammy
()