LINUX.ORG.RU

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

Покажите свой make.conf

Форум — Desktop

$SUBJ. Нужно для использования в качестве примера.

 ,

Valkeru
()

Чем плох этот %яп%

Форум — Talks

Навеяно темой: Чем плох Go?

Впервые тред на лоре не перешел в срач между rust и c++, и даже, местами была интересная критика. Не знаю сможем ли повторить, но все же спрошу (выбирайте яп на ваш вкус).

Чем плох:

  • 1) Python
  • 2) JavaScript (именно бэкенд node.js)
  • 3) PHP
  • 4) Java
  • 5) Kotlin
  • 6) Scala
  • 7) Dart
  • 8) C#
  • 9) Swift
  • 10) C
  • 11) C++
  • 12) Rust
  • 13) D
  • 14) Go
  • 15) ...любой другой язык, о котором вы не смогли промолчать...

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

 ,

wist512
()

Нужно выкачать социальную сеть

Форум — Development

Помогите с концептом или ткните на пример, если такой есть. Для академической задачи по BigData надо выкачать весь фэйсбук\вконтакт, информации что доступна без регистраций на страницах пользователей вполне хватит. Сразу вижу следующие вопросы: 1. Легально ли это? Не нарушает ли это законы РФ\США\Других стран? 2. Я так понимаю что надо очень быстрый интернет, то есть арендовать выделенный сервер на гигабитами в секунду. Не забанят ли за это хостеры? 3. Не забнят ли «по IP» служба безопасности социальных сетей? Не нарушает ли это правила социальных сетей? 4. Может кто знает с чего начать? Это должен быть shell script с использованием wget или есть специальные инструменты для этого?

 

bigfrogg
()

Building Tiny Rust Binaries for Embedded Linux

Форум — Development

Сабж.

TL;DR: растоман последовательно уменьшает размер собираемого бинарника на примере хеллоуворлда с ~6 Мб до ~200 кб, используя ряд тонких настроек Cargo и LLVM, а также прибегая к помощи Xargo и upx.

 ,

Virtuos86
()

Запуск ЛИНТЕР x64

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

Прочитал, что на ReactOS успешно протестирована работа СУБД LINTER (ИСП РАН), https://linter.ru/

Я решил ... а чем мы, линуксоиды, хуже? К тому же, есть версия для Linux x64.

Скачал архив, распаковалось под обычным пользователем при запуске sh-установщика, указал каталог установки. Пару раз установщик спросил права root, для копирования файлов в /usr/bin и /etc/init.d

$ ls -1 /usr/bin/*linter*
/usr/bin/chklinter
/usr/bin/linter
/usr/bin/start_linter.sh
/usr/bin/stop_linter.sh

$ ls -1 /etc/init.d/*linter*
/etc/init.d/linter.sh

В целом, установка выполняется гладко. Единственное, утомляет интерактивность, надо много раз отвечать на вопросы. Но это дисциплинирует. На этапе установки init-скриптов вывалилась бага:

... Повторить ввод пароля снова?(Y/N) [N]: Y
Пароль: 
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
Системный стартовый скрипт успешно установлен. 
Для старта/остановки ЛИНТЕР используйте команду 
/etc/init.d/linter.sh start(stop).

В каждом каталоге установленной СУБД (у меня бинарники запускаются из /t/Linter/linter/) есть readme, с пояснением о назначении практически каждого файла.

К сожалению, версия БАСТИОН - по запросу, поэтому тестирую Стандарт.

В файле linter/bin/readme написано, что интерактивный доступ к СУБД - через утилиту inl.

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

$ inl
Интерактивный SQL в.6.0 для СУБД Линтер в.6.0
Copyright (C) 1990-2017 Relex, Inc. All rights reserved.

 Имя пользователя   : test
 Пароль пользователя: 
 INL : неверное имя пользователя.

Ага. Надо искать пароль к демо-базе. Он есть в корневом readme, база demo, пользователь SYSTEM, пароль MANAGER.

Для получения подсказки надо запускать inl -h, так как ключик --help утилита не понимает. Запускаем inl:

$ inl
Интерактивный SQL в.6.0 для СУБД Линтер в.6.0
Copyright (C) 1990-2017 Relex, Inc. All rights reserved.

 Имя пользователя   : SYSTEM
 Пароль пользователя: 
SQL> h
 INL : неверная команда
SQL> ?
 INL : неверная команда
SQL> help
 Alter    - изменить описание таблицы
 Alter proc <filename> - изменение процедуры (текст берётся из файла)
 Backup   - архивация базы данных
 Blob     - операции с блобом, формат команды:
   blob {insert|clear|append|get}
    {rowid=<row_id> <user_name>.<table_name>.<column_name>|column=<col_num>}
    [type=<blob_type>] {file=<file_name>|<text_blob_body>};
 Browse   - включить/выключить выдачу  результата запроса в табличном режиме
 Codepage - установить кодовою таблицу (866, 1251, koi8)
 Commit   - завершить текущую транзакцию
 Correct - исправление индекса для указанной записи
 Count    - выводить/не выводить кол-во кортежей
 Create   - создание таблицы, индекса или другого объекта БД 
 Create proc <filename> - создание процедуры (текст берётся из файла)
 Create trig <filename> - создание триггера (текст берётся из файла)
 Dbinfo   - получить информацию о базе
 Delete   - удаление строк из таблицы
 Disfill  - разрешить/запретить дополнение VAR типов до максимальной ширины
 Dishead  - разрешить/запретить вывод заголовка ответа 
 Display  - показать информацию об объекте БД, формат команды:
   display {variable|event} <object_name>

 INL : нажмите любую клавишу (q для выхода) : 


 Optimistic  - установить режим обработки транзакций optimistic
 Outfil[e]:  - определение файла вывода ответа
 Page     - включить/выключить выдачу ответа по страницам
 Pessimistic - установить режим обработки транзакций pessimistic
 Precount - разрешить/ запретить вавод количества строк ответа перед выводом результата 
 Press    - перестроить все индексы и сжать номера записей
 Priority:- установить приоритет запроса
 Rebuild  - восстановить таблицу
 Result:  - определение файла вывода ответа на следующий запрос 
 Revoke   - отменить привилегии пользователя
 Rollback - откатить текущую транзакцию
 Select   - выбор строк из таблицы
 Sh       - выполнить команду ОС
 Show     - показать описание таблицы
 Sleep    - приостановить выполнение
 Time {format}    - включить/выключить выдачу времени
 Truncate - очистка таблицы и усечение файлов
 Username - подключиться с другим именем пользователя
 Unload:  - определение разделителя
 Update   - замена строк

SQL> Dbinfo
 Информация о базе данных 'DEMO Database'
   СУБД Линтер версия                   : 6.0.17
   Размер памяти ядра                   : 5000
   Размер очереди каналов               : 100
   Размер очереди таблиц                : 178
   Размер очереди колонок               : 1073
   Размер очереди файлов                : 366
   Размер очереди пользователей         : 100
   Размер памяти сортировки             : 500
   Размеры кэшей транслятора SQL (0 - по умолчанию)
   польз/таблицы/столбцы/проц/кодировки : 0/0/0/0/0
   Количество процессов сортировки      : 1
   Предельная длина записи в таблице БД : 4096
   Интервал сброса изменений            : 0
   Интервал проверки соединения         : 30
   Журнал транзакций                    : включен
   Протокол обращений (LINTER.LOG)      : выключен
   Синхронный вывод                     : выключен
   Разный порядок байт клиента и сервера: нет
   Режим совместимости по стандартом SQL: нет
   Обязательные префиксы для геоданных  : нет
   Режим 'только чтение'                : нет
   Квантование по времени               : нет
   Увеличенный буфер обмена             : да
   Кодировка базы данных                : CP1251
   Операционная система                 : Linux

Из замеченных деталей: нет кодировки базы UTF-8. Видимо, решили ускорить алгоритмы поиска.

В каталоге samples нет примера для использования python-биндинга, но есть примеры для Tcl, PHP, C, Java, Perl.

Насчёт занимаемой памяти могу померять только так:

$ ps aux | awk 'BEGIN{RSS=0}/linter/{RSS=RSS+$6}END{print RSS}'
20872 Кбайт

linter$ du -sh 
168M	.

Debian 8 x64, i3wm

>>> Просмотр (1366x768, 68 Kb)

 ,

pacify
()

Кастомное что-то

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

!!! Скрин в жипеге !!!

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

В связи с тем, что разработка sublime text внезапно возобновилась, вернулся на него и обнаружил, что с моего последнего скриншота, в результате кучи маленьких изменений, окружение стало уж совсем другим.

В первую очередь порадовал возврат на саблайм со связки атом+вим и переход на polybar вместо i3bar+py3status.

Номера+названия воркспейсов были заменены иконками, что было очень непривычно, т.к. раньше я всё раскидывал как попало, но в итоге пришёл к 3-4 воркспейсам на монитор и через небольшое время стало даже проще ориентироваться.

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

Если кому-то нужны конфиги и/или модули/скрипты/плагины коих куча, пишите в дискорд (d3adc0d3#9019), в других местах почти не сижу.

Как соберусь и запилю репозиторий со всеми dot файлами и README/скриптом для установки зависимостей и/или развёртывания всего этого дела, выброшу на общее обозрение.

Ах да, если что, в саблайме небольшой Nim пакет для работы с Riot Developers Api.

Ещё скриншоты:

https://imgur.com/a/KLRU2

Сводка:

Дистр: Arch

ВМ: i3-gaps

Бар: polybar

Редактор: Sublime Text 3 Dev

Терминал: Xfce4 Terminal

ШГ: Noto (UI), Noto Mono (Terminal), Fira Code (Sublime)

Тема саблайма: кастом

Плагин polybar'а для mpv: кастом

>>> Просмотр (1920x1080, 574 Kb)

 , , ,

Deleted
()

Лисперы, приведите пример превосходства Лиспа

Форум — Talks

Я вот пытаюсь понять, так ли хорош Лисп, как его малюют?

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

В общем, вопрос мой не «про функциональщину вообще», а именно про LISP.

И вот он, этот вопрос, точнее просьба: приведите, пожалуйста, пример кода на ЛИСПе (своего или чужого), который бы вызывал вау-эффект в форме «Вау! LISP реально могуч!». На любом диалекте Лиспа.

Но, конечно, нужно быть честными и соблюдать такие условия:

  • Нужно описание, что ваш код делает (желательно еще с комментариями внутри кода).
  • Код должен демонстрировать, прежде всего, превосходства Лиспа как языка, а не большое количество существующих макросов и библиотек.
  • Код должен решать какую-нибудь практическую задачу. Сколь угодно узкоспециализированную, но имеющую отношение к реальному миру. «Программа в 40 строк, которая парсит и исполняет сама себя рекурсивно, пока память не кончится» - это хорошо, но не интересно. Разве что если она перекомпилирует сама себя в Python, а код на Python перекомпилирует сам себя в LISP. Это хоть и не практично, но эпично.
  • Задача не должна быть совсем примитивной. «А вот тебе расчет факториала в одну строку» - это, конечно, хорошо, но интересует ведь что-то нестандартное.
  • Если дадите ссылку на статью, то в ней должен быть приведен код целиком, а не по кускам, которые надо старательно вычленять и собирать. Или сами приведите его. Я (пока) не знаю Лиспа, как я смогу его собрать и оценить?
  • Я знаю, что ЛОР - не моя личная армия, но если все так уж страшно заняты, то кто же сидит в толксах?


Как говорят американцы, «продайте мне Lisp».

Всем откликнувшимся заранее спасибо.

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

 , ,

proud_anon
()

Краткий обзор ряда консольных hex редакторов

Форум — Talks

Ну и на десерт: ещё есть hexdumper под названием hex, ориганал которого был написан в 1983-ем году. И он тоже дампит не только ASCII: http://saahriktu.org/hex/hex.png .

 

saahriktu
()

autostart'ы в совремённом Linux

Форум — Admin

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

Уже не уверен, что все их знаю. Решил составить список, может кто чего скажет ещё по его поводу. Поскольку ориентируюсь на Debian, не исключено есть какие-то особенности в иных дистрах.

  1. /etc/init.d  — (rc.0-6) — классическое место для init-скриптов для запуска разных демонов. + rc.local
  2. cron — /etc/crontab запуск чего-то по расписанию кроном и его клонами.
  3. /etc/systemd/system — сервисы, которые запускает systemd
  4. etc/xdg/autostart/ — приложения, запускаемые при загрузке десктопа, а вообще есть (но может и не быть, но автозагрузка иметься) системная переменная $XDG_CONFIG_DIRS
  5. /etc/profile, а также скрипты внутри /etc/profile.d — запускаются bash подобными оболочками.
  6. ~/.bashrc ~/.profile и ~/.bash_logout при разлогинивании
  7. /etc/X11/xinit/xinitrc — запускается X-ами, но если есть ~/.xinitrc запускается он.
  8. /etc/X11/xinit/xserverrc — тоже может запускаться
  9. /etc/gdm3/Xsession (gdm — для старых) если gdm3 менеджер, соответственно есть ещё: /usr/share/config/kdm/Xsession и другие
  10. Автозапуск графическими оболочками, кроме автостарта десктопа есть ещё, например, автозапуск гномом (и прочими), например для гнома и кде в /usr/share/applications и для текущего пользователя в ~/.config/autostart/ для кде ещё и в ~/.config/plasma-workspace/shutdown и ~/.config/plasma-workspace/env
  11. Вообще в графических оболочках может быть дохренища всяких автозапусков на разные случаи прописано в отдельных настройках, например, в гномореестре: скринсейверы, приложения при нажатии кнопки Power и т.д.
  12. Модули ядра. Загрузка прописывается в /etc/modules — сами модули лежат в подкаталогах /lib/modules/`uname -r`/ с расширением .ko
  13. Может быть раздел в (U)EFI — BIOS, оттуда что-то тоже может стартануть, причём даже после загрузки ядра, если правильно понял. Как фича работает пока толком не понял.
  14. /etc/udev/rules.d — менеджер устройств в Linux.

 ,

anonymous_incognito
()

Pokemon GO + гугл + АНБ + картографирование всего!

Форум — Talks

Дорогие мои хомячата, хотите расскажу вам интересное об игре «Pokemon Go»? Linux тут при том что она запускается на яблооси и андроиде. Пруфов не будет.
— Разработчик игры: Niantic Labs. Внутренний старт-ап Гугла. Связи Гугла с Большим Братом — гуглите (лол!) сами, я пойду чуть глубже.
— Ниантик основан Джоном Хэнком (John Hanke), так же основавшим Keyhole, Inc ( «Замочная скважина» ) — проект для картографирования поверхности, выкупленный все тем же Гуглом и создавшим на его базе Гугл-карты, Гугл-Земля, Гугл-Стритс.
— А теперь внимание, следите за руками! Keyhole, Inc спонсировался венчурным фондом In-Q-Tel. Это фонд ЦРУ, вполне официально созданный в 1999 году.
Посредством вышеуказанных аппликаций, были решены важные задачи:
— Обновляемое картографирование поверхности планеты, включая дороги, базы и тд. А ведь когда-то, карты-километровки считались стратегическими и секретными. В гражданские карты даже специально вносились погрешности.
— Автомобили-роботы от Гугл-Стритс заглянули во все переулки, картографировав наши города, машины, лица…
Оставалась одна проблема. Как заглянуть в наши дома, подвалы, тенистые аллеи, казармы, госучереждения и так далее, по списку?
И что бы вы думали? Все та же конторка, Niantic Labs, выпускает гениальную вирусную игрушку, новомодной технологии дополнительной реальности.
Стоит вам скачать приложение, и дать ей соответствущие права (доступ к камере, микрофону, гироскопу, GPS, подключаемым устройствам, в том числе — носителям USB и тд), и ваш телефон тут же завибрирует, сообщая о нахождении первых трех покемонов! (Первая тройка всегда появляется сразу и поблизости).
Игра потребует заснять их со всех сторон, счастливо наградив вас первым успехом. А заодно получив фото помещения где вы находитесь, включая координаты и угол наклона телефона.
Поздравляю вас! Вы только что провели съемку вашей квартиры! Дальше объяснять?
Кстати, устанавливая игру, вы принимаете условия оферты. А она — не простая. Niantic вас официально предупреждает: «Мы сотрудничаем с государственными структурами и частными компаниями. Мы можем раскрыть перед ними любую информацию о вас или вашем ребенке...». Но кто же это читает?
А еще там есть пункт 6: «наша программа не имеет возможности выполнять запрос вашего браузера „Do not track“ -»Не следи за мной". Другими словами — следили и будут следить.
Итак, помимо добровольного и радостного картографирования всего и вся, открываются еще забавные возможности.
Например, захочется сами_знаете_кому узнать — что сейчас делается в здании, скажем, ГосДумы? И у десятков депутатов, уборщиц, журналистов — завибрируют телефоны: «Пикачу рядом!!!». И счастливые граждане извлекут свои смартфоны, активируя камеры, микрофоны, GPS, гироскопы… И закрутятся на месте, глядя в экран и нагружая каналы связи терабайтами видеопотка…
Бинго! Мир снова изменился, мир стал другим. Добро пожаловать в новую эру.

 , , , ,

Promusik
()

Стеганография в социальных сетях и прочих подобных публичных местах

Форум — Talks

После прочтения очередной новости про наказания для операторов мессенджеров у меня возникла идея (мне самому это, конечно не нужно, просто вольная фантазия на заданную тематику).

Ведь есть альтернатива использованию всяких Telegram, I2P и подобного.

1) Шифруем сообщение любыми средствами, переводим в base64, отправляем личным сообщением Facebook, ВКонтакте или любой другой соцсети. Ну а что, правилами же не запрещено, если второй собеседник не против, чтобы я слал ему бессмысленный набор букв (если против, то это уже спам будет). Разумеется, не обязательно это делать ручками, можно использовать специальный клиент, который будет логинится через API соцсети, но при получении и при отправке сообщений шифровать/дешифровать текст.

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

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

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

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

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

 , ,

KivApple
()

[хочется странного] создание SFX-архива для оффтопика под GNU/Linux

Форум — General

сабж

Такое бывает? Желательно без wine.
Было обрадовался, обнаружив, что rar и p7zip это умеют, но оказалось, что они делают архивы, распаковывающиеся под GNU/Linux (интересно, кому это может быть нужно?), а не под оффтопиком.

 

sedogrep
()

бот для телеграм

Форум — Development

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

 , , ,

gssomi
()

Линукс для людей (и не только) - тюнинг Wine

Форум — Desktop

Привет, друзья! В этом треде я соберу полезные советы при работе с Wine! Добавляйте своих советы в комментарии!

1). Если ваша программа перестала работать

На форуме часто спрашивают: «работа-ло-работало, и вдруг всё перестало, что делать?». Отвечают: «это регрессия вткатись на ту версию, в которой работало», «Но я не обновлялся!»

Решение: откройте консоль и наберите

cd ~/
mv .wine wine-oldprefix
WINEARCH=win32 winecfg

Вы создадите новый Wine Prefix, в который приложение можно установить заново! В случае неудачи, вы можете вернуть старый вайн префикс! В случае успеха - удалить старый префикс

TODO: грамотно стереть старые пункты главного меню, и вернуть в случае возврата

2). Ваша программа не работала изначально

Поищите информацию о ней на сайте http://appdb.winehq.org/. Возможно программа работает, но нуждается в дополнительной настройке! Например, копирование файла DLL из C:\WINDOWS\Systtem32 настоящей Windows XP, и прописывание его в winecfg как Native. Установка noCD. Редактирование конфига программы. На AppDB должна быть инструкция!

Рейтинги программ на AppDB:

Platimum: работает без дополнительной настройки
Gold: работает либо после минимального допиливания, либо не работает незначительная часть программы (проде программы активации, лол)
Silver: Работает с проблемами
Bronze: Не работает, но полезный результат может быть, если помучить приложение (и себя)
Grabage: Не работает (или работает только бесполезная часть)

3). Ключ реестра UseGLSL = disabled

В OpenGL 2.0 появился шейдерный язык GLSL. В Direct3D 8 появился шейдерный язык HLSL. Тулкит NVIDIA Cg умеет компилировать шейдеры как в собственном формате, так и в этих двух. Если вы отключите GLSL в Wine, то будет использоваться NVIDIA Cg! Это даёт увеличение производительности игр, например StarCraft 2 выдаёт больше FPS на 30%.

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

Чтобы отключить GLSL, запустите программу wine regedit, найдите папку HKEY_CURRENT_USER\Software\Wine\Direct3D\ (возможно, папку Direct3D придётся создать) и добавьте «Строковый ключ» UseGLSL со значением disabled. Данные чувствительны к регистру, обратите внимание! В случае успеха, при запуске wine из консоли появится сообщение:

err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks

4). Winetricks

[url=]https://wiki.winehq.org/Winetricks]Winetricks это shell-скрипт, упрощающий типовые задачи, необходимые для настройки программ. Запустите winetricks --gui, чтобы увидеть список программ, устанавливаемых в 1 клик! На странице игры на AppDB пишут, что опенсорсные реализации Direct3D 9 не полны, и нужен проприетарный? И там же - инструкция: winetricks directx9 На странице офисного приложения пишут, что необходим .NET 3.5? И там же - инструкция: winetricks dotnet35sp1

Кстати: winetricks glsl=disabled

5). Платный Wine

Компания Codeweavers выпускает платную версию Wine под названием Crossover. В нём гарантируется работа примерно 100 программ - а если что-то не работает, вам обязаны починить. Эти программы устанавливаются «в один клик», в то время как в Wine может понадобиться ручная работа. В Crossover WineTricks заменён на Crossover Tie, а также наболее удобную графическую оболочку.

В Crossover есть отличия от Wine - в настоящий момент это патчи CSMT. Они создают отдельный тред для Direct3D, что увеличивает производительность некоторых игр до 100%.

Несколько месяцев назад, CSMT был добавлен и в бесплатный Wine - однако каждый новый релиз мы узнаём, что добавлена новая порция CSMT (а в предыдущий раз не все из 200 патчей были приняты).

В прошлые годы такими изменениями были патчи DirectWrite (2012) и поддержка Direct3D 9 (2008). Когда пришла пора добавить их в Wine, добавляли порциями, и растянулось надолго.

Стоимость Crossover в год: 60 евро. Если не продлять, работа программ сохраняется - блокируются только обновления. Триал демо-версии - 15 дней. Сайт: https://codeweavers.com/

6). Wine Staging

Wine с экспериментальными патчами. Если в платном упор делается на стабильность, то в Wine Staging - на самые новые изменения. То есть он даже круче, чем платный Wine!

Список изменений:

  • CSMT (Commandstream multithreading) for better graphic performance
  • CUDA / PhysX / NVENC Support for NVIDIA graphic cards
  • DXVA2 GPU video decoding (experimental)
  • EAX 1 support
  • Fixes for various upstream regressions
  • GTK 3 theming support
  • Improved GPU detection
  • Loading of .NET CLI images without entry point
  • Named Pipe message mode support (Linux kernel >= 3.4 only)
  • Performance improvements for IO-heavy programs and memory allocation functions
  • S3 texture compression (DXTn) support
  • Support for installing MSU files
  • Various improvements to d3dx9
  • Various speed improvements (shared memory, RT priority)
  • Windows ACL support

Сайт: https://www.wine-staging.com/ Существуют готовые сборки.

9). Gallium Nine

Открытую реализацию Direct3D 9, созданную в рамках проекта Wine, научили работать аппаратно. Раньше он умел работать только как транслятор поверх аппаратного OpenGL.

Подробнее: http://www.gearsongallium.com/?p=1619

 , , линукс для людей

ZenitharChampion
()

Занимательная археология

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

Это ноутбук Fujitsu-Siemens Esprimo Mobile V5535.

На нём достаточно непростая видеокарта SiS 671, и я хочу рассказать, как заставить её работать под линуксом.

Из-за малого количества оперативной памяти, я выбрал Xubuntu 12.04. Теперь нам потребуются дрова на неё. Их можно скачать отсюда (нет, это не известный футболист, просто тёзка). Распаковываем скачаный архив, копируем *.so *.la в директорию /usr/lib/xorg/modules/drivers, xorg.conf в /etc/X11, после чего

sudo service lightdm restart
(в случае с просто Ubuntu gdm).

Не забываем настроить VLC:

In VLC select Tools/Preferences/Video/output X11 video output (XCB) Close and restart VLC.

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

Сломанный слешскрин восстановим по рецепту, только подгоним параметры под себя и создадим некоторые отсутствующие файлы.

Чтобы было красиво, дополнительно установим gtk2-engines-xfce и xfwm4-themes, это даст больший выбор тем оформления.

Это всё, что я хотел сказать, надеюсь, кому-то это поможет.

Перемещено subwoofer из workplaces

>>> Просмотр (1280x800, 137 Kb)

 , ,

Vsevolod-linuxoid
()

Написал небольшую книгу для C/C++ программистов

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

Здравствуйте. Меня зовут Андрей Карпов. Сфера моих интересов - язык C/C++ и продвижение методологии статического анализа кода. На протяжении пяти лет я являюсь Microsoft MVP в номинации Visual C++. Основная цель моих статей и работы, сделать код программ немножко безопасней и качественней. Буду рад, если эта мини-книга научит вас писать более надежный код и предостережет от некоторых типовых ошибок. Немало полезного здесь можно будет почерпнуть и тем, кто занимается написанием стандартов кодирования для своих компаний.

Немного истории. Не так давно я создал ресурс, на котором делился различными полезными советами по программированию на языке С++. Ресурс не собрал ожидаемое количество подписчиков, поэтому я не вижу смысла приводить здесь на него ссылку. Сайт просуществует какое-то время, после чего уйдет в небытие. А вот советы достойны сохранения. Поэтому я доработал, пополнил эти советы и объединил их в единый текст. Желаю приятного чтения.

UPD: PDF-версия: https://yadi.sk/i/RCHauHFBr2cSs

P.S. Пользуясь случаем приглашаю всех желающих последовать за мной в Twitter: @Code_Analysis.

>>> Главный вопрос программирования, рефакторинга и всего такого

 , , , ,

Andrey_Karpov_2009
()

Написание свободной(Free as in Freedom) книги-самоучителя по программированию: планы, цели, задачи

Форум — Development

Итак, я решил написать(или как вариант, собрать из кусочков) книгу-самоучилель по программированию, в которой бы не было глупых и нелепых ограничений на распространение. Однако копилефт я все же считаю приемлемым в данном случае. Общественным достоянием это не будет т.к. вполне могут найтись желающие использовать результат в своих проприетарных книгах, а проприетарные книги — плохо. Лицензия самого текста книги-учебника будет или Creative Commons Attribution-ShareAlike (что позволит без каких-либо проблем переиспользовать текст из википедии) или что-то вроде GNU Free Documentation License (без неизменяемых разделов естественно).

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

Теперь к теме того, на кого книга ориентирована, какие начальные знания предполагаются, чему книга будет учить, какой первый ЯП взять и каков будет авторский самысел: С этим моментом я пока что не определился окончательно, и тут есть что обсудить. В частности, я не вижу особого смысла объяснять какие-то базовые понятия комбинаторики, об этом можно доступным языком прочитать из школьных учебников. Системы счисления(СС), перевод из одной СС в другую - вот это еще можно. One's и two's complement представления знаковых чисел — про это тоже можно написать. Если же человек не понимает комбинаторику, он ее быстро поймет на примере кода, который будет достаточно наглядно это показывать, и который всенепременно будет.
Пока что в качестве первого языка я склоняюсь к Си, и тому есть причины. Все прочие распространенные языки (кроме ассемблера, хотя его трудно назвать распространенным) не настолько близки к аппаратному уровню. Про нужность понимания на низком уровне написано тут http://russian.joelonsoftware.com/Articles/BacktoBasics.html https://habrahabr.ru/company/piter/blog/271347/ , не вижу смысла повторяться. Приведу лишь цитату:

«Просто плохой воркшоп попался», — скажете вы. Но на этом примере я хочу подчеркнуть более масштабную проблему: не изучив для начала C, программист оказывается лишен необходимых орудий, позволяющих понять, что именно происходит в используемой системе. Если вы — умный и пытливый питонщик, то вскоре докопаетесь до плотных пород языка C. Под этими горизонтами, скажут вам, «бойся драконов, костей и отладчиков». Соответственно, если вы не будете достаточно отважны и не проигнорируете предупреждений «да не берись ты за этот C», вы никогда не исследуете глубин, на которые можно забраться просто из любопытства.

Притом еще один важный момент: Си будет изучаться параллельно с ассемблером. Если речь идет об изучении ассемблера, необходимо четко зафиксировать то, на какой архитектуре это все происходит и в какой ОС. Так вот, ОС будет GNU/Linux а архитектура x86-64. Будут постоянно проводиться параллели между тем, что из себя представляет код на Си в текстовом виде, и тем, в какой текст на ассемблере его превращает компилятор. В связи с этим, первым делом будет рассказано о goto и конструкции if(условие) goto метка;. Про конструкции вида

if(условие)
{
  что-то_делаем;
}
else
{
  что-то_другое_делаем;
}
Будет рассказано немного позже, притом это будет рассказано и словами, и через написание эквивалентного кода через if(условие) goto метка;. Циклы, for(){} while{}, do{}while(), конструкция switch-case и break continue внутри них будут так же объясняться через все тот же if(условие) goto метка; притом будет делаться явный акцент на том, что намного лучше использовать нормальные циклы, чем лепить всюду этот условный goto. Кроме того, будет так же рассказано про Labels as Values. Почему так важна эта странная штука, if(условие) goto метка;? Потому что она имеет наипрямейшее отношение к тому, как работают ЭВМ, а всякие циклы СКРЫВАЮТ это. Рекурсия в Си будет объясняться только после того, как будет объяснено, что такое стекфрейм и соглашения вызова, будет сказано про оптимизацию хвостовой рекурсии, и о проблеме забивания стека, если такая оптимизация не происходит, притом это будет наглядно показано в ассемблере. Учиться отлаживать код надо будет тоже «с пеленок», притом отлаживать и ассемблер, и всякие там Си. Будет и про асм-вставки в Си, clobber list. В качестве ассемблера будет рассматриваться GAS, а никакой не NASM т.к. GCC умеет выплевывать ассемблер именно в GAS синтаксисе. Насчет выбора Intel или AT&T синтаксиса - тут я склонюсь пожалуй к тому, что надо ЗНАТЬ И УМЕТЬ ПОНИМАТЬ ОБА. Кроме того, GAS давно уже умеет в оба синтаксиса, так что проблем с этим не будет. Единственная проблема с GAS в том, что это однопроходной ассемблер, так что можно освоить и какой-нибудь NASM, YASM.

Первые хеллоуворды будут написаны вообще в особом стиле, без использования printf() и вообще без библиотеки Си; Будут использованы куски на ассемблере, которые делают системный вызов write и read, и с ними можно(нужно) будет линковаться, чтоб что-то вывести на экран. Будет рассказано и про printf естественно, но только когда будет совершенно четко ясно, что такое вообще va_list. Будет куча отсылок к драфту стандарта Си (недрафт почему-то платный). Будет так же рассказано про устройство ОС. В конце скорее всего будет дано задание сделать свою игрушечную ОС так что предполагается что человек к тому моменту должен уже отлично понимать всякие там связные списки, графы, очереди, спинлоки-аллокаторы свои уметь делать на асме при желании. Алгоритмы сортировки, обхода графов, хеш-таблицы, все это будет объяснено на языке Си, и плюсов вообще касаться я не буду.

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

Кроме того, после моей книги предполагается, что человек должен уметь заниматься такими ненужными (в GNU/Linux) на первый взгляд вещами, как крякинг, реверсинг, исправление ошибок в бинарниках, не обладая исходным текстом. Восстановление логики работы программы по дизасму. Ну и программирование в машинных кодах (без ассемблера, одним HEX редактором).

Как-то уж слишком дофига, не находите? Может быть не надо так глубоко во все это нырять? Жду предложений и критики по поводу того, что нужно, а чего не нужно писать. Возможно что я слишком много хочу.

cast ASM be_nt_all mister_VA

UPD: Программирование и отладка на C/ASM - Первые программы. Знакомство с C и ассемблером. Компиляция, линковка, код возврата. Вывод текста.

 , , ,

SZT
()

Поиск по Гугл.Ком, а не Ру. В хроме, из омнибокса

Форум — Web-development

Вопрос можно наполовину отнести к веб-разработке, а наполовину к десктопу. Пока что разместил тут.

Итак, сам вопрос.

Как сделать так, чтобы Хром, если искать прямо из омнибокса (то есть по-русски говоря из строки поиска), выдавал мне результаты из .COM, а не .RU? Например, я в омнибоксе ввожу запрос: head import. Нажимаю Enter и получаю:

https://www.google.ru/search?q=import+head ...

А должно быть вот так:

https://www.google.com/search?q=import+head ...

Реально, достало. Если я ищу что-то в поисковике, 100% из 100, что требуемая мне информация будет размещена на англо/американских сайтах, и написана по-английски. В принципе методы борьбы с этим есть, но они у меня все работали как-то через раз, а потом и вовсе переставали работать. Вот и сегодня, обнаружив по запросу import head на третьей позиции ссылку на Хабр, а в шестой на Хедхантер, я понял что дальше это терпеть нельзя.

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

 , , , ,

Deleted
()

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
()

10 причин почему программист на С++ может выбить много денег

Форум — Development

Список в конце поста написан Лавсаном 2 года назад. (2011-03-23 19:56:00) (источник)
Надеюсь, автор не подаст жалобу в Роспатент за перепечатку :-)
Кстати, sudo cast lovesan.

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

Временное резюме: С++ всё еще актуален по историческим причинам. Еще есть мобилки (sudo cast mono), гиперкластеры для шиндовс 3.11 (sudo cast vromanov) и базы данных. Т.к. он актуален, но не предназначен ни для чего (см. выводы в конце списка) новых специалистов по нему должно быть мало. Маленькая конкуренция на огромной области применения — огромное лавэ $$$. Вот это и есть истинная причина использовать кресты — возможность срубить €€€.

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

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

Вот этот список:

  1. Вырвиглазный синтаксис и контекстно-зависимая грамматика
    • медленная компиляция
    • частые «internal error» в компиляторах
    • код плохо читается и его сложно поддерживать
    • разбор кода различными инструментами, вроде IDE, и его генерация - сильно затруднены
  2. ручное управление памятью
    • неудобства при работе с динамической памятью
    • утечки памяти
    • висячие ссылки
    • сегфолты
    • стандартные средства, как то malloc/new, работают медленно
    • фрагментация кучи
    • велосипедные аллокаторы на каждом шагу
      • которые далеко не факт что эффективнее malloc/new

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

    • отладка затруднена
    • написание GC, по факту, невозможно, отчасти из-за (5), (7) и (8)
  3. Никакого ABI
  4. Нестандартизированный и непредсказумый name mangling
  5. Дублирование функционала Си
    • сами фичи из Си никуда не деваются при этом
      • отчасти из-за того, что по функционалу превосходят аналоги из C++

    • запутывает новичков
    • malloc - new/new[], free - delete/delete[]
    • препроцессор - шаблоны
    • указатели - ссылки
      • ссылка не может быть NULL, что способствует появлению висячих ссылок и сегфолтов

    • структуры - классы
    • stdio - iostream
  6. Стандартная библиотека убога
    • Отсутствует даже такой функционал, как вменяемая работа со строками и многомерные массивы
      • Юникод?

  7. Слабая типизация
    • способствует ошибкам
    • затрудняет отладку
    • const не дает абсолютно никаких гарантий
    • при этом система типов невероятно переусложенена
      • в основном из-за пунктов (2), (5) и (9)
      • медленная компиляция
      • частые внутренние ошибки в компиляторах

  8. объектая система убога
    • практически никакой интроспекции
      • отладка затруднена
    • передача объектов по значению
      • понятие идентичности объекта теряет смысл
      • добавляет сложностей в управлении памятью
      • добавляет сложностей при отладке
      • используется часто, по причине (2)
        • перерасход по памяти
        • медленная работа

    • множественное наследование неудобно в использовании
      • проблема ромба по дефолту не разрешается никак

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

    • деструктор можно вызывать до выхода из блока кода, или до delete
      • гарантированная утечка ресурсов/сегфлот
      • это не предотвратить никак, деструктор обязан быть public

    • одиночная диспетчеризация
      • виртуальные методы в конструкторах не работают
      • реализована убого
        • pure virtual function call
        • сложности в случае с множественным наследованием
        • деструкторы обязаны быть виртуальными
          • по дефолту - не виртуальные

        • никаких интерфейсов, только классы

    • порядок инициализации статических членов классов не определен
    • private, public и protected не дают никаких гарантий сокрытия данных
      • к инкапсуляции же не относятся совершенно никак

    • отсутствие «свойств»
      • вынуждает городить getter'ы и setter'ы
        • раздувание кода
        • размывание интерфейса класса

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

    • нарушают инкапсуляцию
      • обязаны содержать реализацию в заголовочных файлах

    • позволяют генерировать некорректный код
  10. исключения
    • отсутствие finally/unwind-protect
      • заставляет городить классы ради одних деструкторов
        • раздувание кода
        • медленная компиляция
        • медленная работа

    • конфликтуют с другими возможностями языка
      • конструкторы/деструкторы
      • ручное управление памятью

    • работают медленно
    • малофункциональны (ср. CL condition system)

По причинам 3, 4, 5, 9 и 10 C++ совершенно неприменим для системного и низкоуровневого программирования. А по причинами 1, 2, 5, 6, 7, 8, и, опять же, 9 и 10 - и для прикладного.

У C++ нет области применения.

stevejobs
()