LINUX.ORG.RU

32
Всего сообщений: 1638

Программирование на языке Арнольда Шварценеггера в Linux

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

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

Кратко о моем рабочем окружении: Fedora 22 Workstation, GNOME 3.16 (тема GTK+ - Ceti-2, иконки - Vertex), Sublime Text 2 (пока только в Sublime Text есть поддержка подсветки синтаксиса ArnoldC), OpenJDK 1.8.0.

>>> Подробности и примеры кода

>>> Видеодемонстрация

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

 , ,

PaulCarroty ()

Отладка графики на Arm/Mali

на скриншоте (сделан на основной системе):

  • Mali Graphics Debugger (на основе Eclipse)- захват GLES2 draws и фрейма тестового приложения openglunderqml из Qt 5.2. соединяется по TCP/IP с пытаемой системой (linux/arm(тут) или android/arm);
  • в правой части проброшенный по VNC десктоп arm/mali системы (cubiboard2/cubian):
    • само приложение opengleunderqml на Qt 5.2/GLES2 (отсутвует текст в QML компоненте);
    • в нижнем терминале - информация о EGL/GLES2 драйвере чипа Male 400 MP (в составе Allwinner A20/Cubieboard2);
    • также запущен демон для дебаггера и подменяемые EGL/GLES1/GLES2 библиотеки, из которых он и получает графические данные и переселает основному приложению;

по Mali Graphics Debugger - обычный дебаггер;) много закидывает в /tmp (несколько гигабайт за пару десятков минут). кроме того, идущие с ним либы для перехвата EGL/GLES вызовов есть только для fbdev (а драйвера у меня стоят для x11 - физически это разные библиотеки) - впрочем, они работают. когда будет время для дальнейших экспериментов - попробую собрать qt только под fbdev(без Х11) - думаю, такая система в качестве только отладочной будет вполне работоспособна.

и да - это определённое завершения моих экспериментов над cubiboard2, начатое тут - изменения следующие: дистрибутив сменен с федоры 19 на cubian (на базе debian wheezy) - он сразу идёт со всеми проприетарными драйврами и не имеет проблем с определением мониторов, подключенных по hdmi>dvi (также обновляется и для 1й cubieboard). VLC осилил фльмы в уже нормальном качестве: 1248x528 в H264 - MPEG-4 AVC (part 10) (avc1) - что уже намного лучше полного отсутсвия изображения ранее.

>>> Просмотр (3000x1080, 829 Kb)

 , , , ,

azazello ()

Мы гоняем LDA

Делаю эксперименты по LDA на 20 newsgroups с помощью Mallet.

На сцене присутствуют два xfce4-terminal, thunar и ristretto. Из задника смотрит коала, похожая на Озила.

Содержимое приложений обрамлялось в плоть и кожу Clearlooks-Phenix. Иконки - elementary, допиленные для дистрибутива/xfce.

От ШГ пострадали Droid Sans 9 и DejaVu Sans Mono 8 при н.у. 107 dpi под воздействием infinality-патчей.

Система - Xubuntu 13.10.

При снятии скриншота ни одно животное не пострадало.

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

 , , ,

uGin ()

СейсмоАд

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

Слева направо:

  • Эмулятор сейсмического регистратора. Транслирует данные по UDP — полностью аналогично настоящему (железному) собрату, коих используется по несколько на объект. Был создан для отладки разных элементов системы.
  • Управляющая программа. Точнее, простенький GUI, основанный на библиотеке, которую я сделал для управляющей программы. Принимает данные от регистраторов по UDP, делает комплекс обработки (начиная интегрированием для получения скорости и смещения и кончая детектированием землетрясений и определением их параметров), а также выступает в качестве TCP-сервера для трансляции полученных графиков на автоматизированные рабочие места (АРМ) и в архив (в самописный бинарный лог, сделать который меня сподвигнули mashina и vmx).
  • Приёмщик трансляции. Сделанная на коленке программа для проверки правильности TCP-трансляции из управляющей программы.

Всё это написано на Qt/C++. Qt глубоко въелся в мою натуру. И не надо кидаться в меня камнями по поводу его использования вне иксов, там очень удобно работать с сокетами и базами данных, а сигналы-слоты отлично дополняют всё это — что позволяет с лёгкостью и удовольствием писать в том числе и всяческие демоны. А GUI на АРМах, кстати, на node.js.

На серверах и АРМах после моего настойчивого воздействия на заказчика получилось поставить Debian Wheezy. А не провоздействовал бы — пришлось бы оставить винду: начиная семёркой и кончая Server 2012. Они там почему-то очень боятся *nix — его можно встретить только на самых важных узлах системы (и там, насколько я понял, обычно QNX). И это-то на одном из крупнейших нефтепроводов в России…

Arch Linux. Plasma: Produkt; KWin/Qt: QtCurve (Numix); цвета Numix; шрифты Droid.

Ах да, на обоях стоит стандартный KDE-шный орнамент «Французский узор». Отлично подходит к тёмной теме и тёмному ушатанному Thinkpad'у T400, на котором всё это крутится. Скриншот рабочего стола: тыц.

>>> Просмотр (1440x900, 342 Kb)

 , , ,

Obey-Kun ()

Призрак прошлого

Лет 10 назад в качестве самообразования написал я велосипед - менеджер иконок xtdesktop. Иконок было 3 типа - program, mountpoint, plugin, к каждой иконке про правому клику было меню с доп.командами, иконки были таскательны и использовали XShape для красоты.

Несмотря на массу недостатков, проект зажил. Сам я его использовал очень немного, но был пакет для него в Debian и Sisyphus; DSL и Buffalo использовали его по-умолчанию. В Buffalo даже вносили свои изменения. но не делились исходниками. В галерее на LOR есть скрин и несколько упоминаний про xtdesktop, на distrowatch есть пара скриншотов.
Постепенно интерес и необходимость пропали, и про программу я забыл.

И на днях через третьи руки доходит до меня письмо - паренек пишет, мол такое дело, использую регулярно, в т.ч. вместо коньков, но с последними иксами перестало работать. Оказывается, кто-то где-то это еще использует :) Скриншот с ноута.

>>> Просмотр (1024x768, 60 Kb)

 ,

scott_tiger ()

Набросок на ночь глядя

Вспомнилось детство с G-BASIC'ом на никому не известной LIKO. Вот так и появляются недокодеры :)

>>> Просмотр (1600x900, 419 Kb)

 ,

ishido ()

KDE 4 - Gentoo

KDE 4
тема bespin
обоина из дефолтных
тема GTK - Orta
делаю новую софтину

>>> Просмотр (1440x900, 674 Kb)

 , ,

pashazz ()

BlackBerry Native SDK(qnx) под линуксом

существует такой странный зверь, как планшет BlackBerry Playbook и BlackBerry Tablet OS, которая являет из себя старый-добрый QNX+ навёрнутый сверху UI (в версии 1.0 - без характерных ежевичных сервисов впрочем). В связи с тем, что скоро буду обладателем сего устройства - решил глянуть - как обстоят дела с программированием под него.
собственно - есть целых 4(!) варианта разработки приложений на любой вкус:
- BlackBerry Runtime for Android Apps ( java/соответсвует 2.3)
- BlackBerry Native SDK for Tablet OS (собственно - QNX/C/C++)
- BlackBerry Tablet OS SDK for Adobe AIR
- BlackBerry WebWorks SDK for Tablet OS

я более заинтересовался вариантом QNX/C++ -
Native SDK(уже 2.0 бета) + эмулятор представлены на скриншоте. Eclipse (т.к. QNX была одна из основных разработчиков его и(особенно) CDT - то вполне ожидаемо) со специфическими qnx-рюшечками (показана отдельная перспектива - QNX system information - весьма детальная информация о процессе и памяти, но есть и прочие мелкие отличия от обычного eclipse/cdt),

правее - эмулятор QNX (поставляется в виде готовой VmWare машины/qnx собрана под x86). он стратует очень медленно, как для vmware (несколько минут), ну и кириллицу отображает нормально :) также, Blackberry на гит-хабе завело секцию с OSS для Tablet OS, включая OpenAL, SDL, OGG, OpenTTD, DoxBox и Qt4 (в тему лоровской новости - последнюю собрал, но пока не завёл на устройстве) :)

справа внизу(это кусок более раннего скриншота) - полное(!) сообщение об ошибке - видно - что система в интенсивной разработке и до читабельных сообщений ещё руки не дошли ;)

резюмируя - в целом - разработка выглядит вполне привычно для тех, кто видел Eclipse/CDT, документация на веб-сайте очень хорошего уровня (но её надо читать!), в версии 2.0 NSDK есть несколько приятных улучшений usability, но есть моменты и от корпоративного BB, от которых волосы встают дыбом - нужно получить сертификат(через формы - в течение 2х часов высылают), чтобы запустить даже HelloWorld на эмуляторе (error 8 выше - отсутсвие этого самого сертификата)!

PS: позавчера анонсировали официально вторую версию tabletOS (OS2 у них в разговорном режиме), и в эмуляторе уже она, но без приложений ;)

>>> Просмотр (2049x1152, 389 Kb)

 

azazello ()

Реверс-инжиниринг

От нечего делать решил запостить сюда скриншот своей рабочей системы.
Живу я в Gentoo, мой WM - awesome. Очень удобно и быстро, для ноутбука.
Темы самописные. IDA Pro тоже подогнал под цветовую гамму.
Из рабочих иструментов:

irssi: http://ompldr.org/vOTE0Mw
vim: http://ompldr.org/vOTE0NQ
opera : http://ompldr.org/vOTE0OA (просто дикое количество вкладок)
mc: http://ompldr.org/vOTE0aA
evince: http://ompldr.org/vOTE0ZQ (чтение документации - ключ к успеху)
deadbeef: http://ompldr.org/vOTE0Yw (иногда органная музыка, иногда рок, иногда drum`n`bass, сейчас радио promodj)

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

 , , , ,

XVilka ()

Модифицированная lxpanel + апплет globalmenu

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

Список фич, по сравнению с оригинальной панелью задач:

Новые режимы. Оригинальная LXPanel Taskbar имеет два режима отображения окон: классический и группировка окон одного приложения одну кнопку с выпадающим списком. Данный форк добавляет еще два: группировка окон одного приложения рядом на панели, но без слияния в одну кнопку, и режим отображения только кнопки для активного окна. В режиме отображения активного окна обычное поведение левой кнопки мыши (свернуть/восстановить) теряет смысл, поэтому щелчок левой кнопкой мыши открывает теперь контекстное меню окна (аналогично правому).

Улучшение режима группировки. В режиме группировки окна, относящиеся к одному приложению, группируются, только когда таких окон несколько. Если приожение имеет едиснтвенное окно, оно остаётся на панели «как есть», без группы. Такое поведение может вызывать недобства в работе, т.к. не позволяет выработать автоматизм при взаимодействии с панелью: часть объектов панели при щелчке левой кнопкой мыши показывает выпадающее меню, а часть - выполняет переключение на другое окно. Чтобы улучшить ситуацию, была добавлена опция создания групп и для одиночных окон тоже: теперь любой объект панели задач ведет себя одинаковым, предсказуемым образом.

Возможность отключить отображение иконок окон. В LXPanel Taskbar присутствовала возможность отображать иконки с заголовками или только иконки. Этот патч добавляет возможность отображать только заголовки, без иконок.

Закрытие окон в один клик. Добавлена возможность отображать на панели кнопки закрытия окон. Это может быть удобно, например, если ваш оконный менеджер настроен не отображать заголовки окон.

Доступ к контектному меню настройки LXPanel. Поскольку панель задач перехватывает щелчок ПКМ, вызывать её настройки было раньше достаточно не удобно: необходимо щелкнуть по любому другому апплету, который отображает контестное меню панели по ПКМ, открыть общие натсройки панели, а затем оттуда открыть настройки апплета панели задач. Сейчас контекстное меню LXPanel отображается при щелчке ПКМ по панели задач, если при этом удерживать клавишу CTRL.

Внутренние доработки в «ядре» панели. В диалогах конфигурации апплетов добавлена возможность использовать выпадающие списки. В API icon-grid добавлена функция для позиционирования одного элемента после другого.

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

На скриншоте на панели видны следующие апплеты:

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

Больше подробностей о новом таскбаре и исходники можно найти вот тут.

>>> Просмотр (1280x1024, 385 Kb)

 ,

geekless ()

Модифицированная LXPanel

На скрине пропатченная LXPanel, над которой я сейчас работаю. Решил немного доделать Taskbar для неё:

Во-первых, добавить режим «Отображать только кнопку активного окна». Мне все названия окон видеть не нужно, зато видеть полное название активного кона - желательно. А когда кнопок несколько, оно может не уместиться целиком на кнопку.

Во-вторых, добавить непосредственно на сами кнопки окон мелкие кнопки для закрытия окна (и возможно, для сворачивания-разворачивания). Получается довольно симпатично - в уже привычном всем стиле табов браузера/терминала/whatever.

Первая доработка тривиальна, с ней проблем не возникло. Результат можно увидеть здесь. А вот кнопки закрытия пока не работают. Дело в том, что плашка для окна рисуется при помощи GtkToggleButton. GtkToggleButton является контейнером, в него, например, можно добавить иконку и label. Но попытка добавить в него вложенную кнопку приводит к тому, что эта вложенная кнопка не работает. Пляски с Event Box и прочими костылями пока не помогли. Видимо, придётся переделывать весь таскбар, выкинув из него GtkToggleButton-ы полностью.

Так что если кто-нибудь знает, как можно малой кровью заставить работать кнопку-в-кнопке, пишите в комментах. Функция task_build_gui в файле src/plugins/taskbar.c (версия программы - 0.5.6) - это если у кого-то возникнет желание покопаться, копать можно оттуда.

В-третьих, режим отображения «только иконки, без подписей» у этой панели есть, а вот обратный надо будет сделать. Мне нужно видеть только название окна, а иконка не нужна. :)

Почему именно эту панель взял на опыты: простые и понятные исходники + низкие системные требования. При этом, уже довольно функциональна, надо только чуток допилить, и станет идеальна.

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

Также думаю покопаться в исходниках globalmenu на предмет, можно ли его оформить как плагин к LXPanel. Собственно, ради использования вместе с ним, этот патч и пишется. Будет одна удобная панель с меню активного окна, его заголовокм и кнопкой закрытия + трей.

P.S.

Пилю всё это на свежеустановленной Генте, т.к. решил окончательно мигрировать с Арча. Ну а это, в свою очередь, послужило толчком окончательно порвать с gnome и запилить раз и навсегда десктоп, удобный лично для меня и не зависящий от идиотизма гноморазрабов.

>>> Просмотр (1280x1024, 194 Kb)

 , ,

geekless ()

Весна, j2me, fedora :)

Вспоминаем j2me. OS-Fedora14, GNOME, Netbeans + стандартный эмулятор телефона из WTK. Тема: gtk2 -MurrinaRedmond, иконки -Elementary, metacity - Equinox Evolution Rounded, шрифты - Ubuntu + Courier New. В трее прячутся Gnote, audacious, opera, pidgin. Может и дефолт, но удобно. Да, кстати, никто не подскажет легкую библиотеку UI для J2ME?

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

 , , ,

int18h ()

Мое рабочее место

Собственно, вот :) (фотка двухлетней давности)

>>> Просмотр (1280x960, 587 Kb)

 , ,

Minoru ()

Arch и usb дрова на ruby,

Arch с Xfce 4.6.2 на Thinkpad X61. На Xfce перешёл с KDE3 и его предков, после того как увидел первый релиз KDE4 с плазмой. С момента покупки на ноуте стояла Убунта и все кнопочки и докинг работали «из коробки», но потом начал замечать, что с каждой версией, все больше и больше для ноута приходилось настраивать вручную и постоянно что-то в системы меняли(HAL, device kit). Решил настроить все один раз и навсегда на Арче. Пока вполне доволен конфигурацией.

На скрине пилю драйвер для розового девайса. Это мой эксперимент по написанию драйвера с помощью libusb и ruby. Пока что с него переключаю музыку в mpd, но в планах gateway в jabber.

Ссылка на PNG: http://img715.imageshack.us/img715/8007/screensf.png.

>>> Просмотр (1024x2304, 687 Kb)

 , , , , ,

stas2k ()

День заканчивается с Лора

С прошлого поста ( http://www.linux.org.ru/gallery/workplaces/5073665 ) мой рабочий стол претерпел изменения, а именно новые колонки yamaha(поскольку они мне достались без усилителя пришлось разворотить прошлые, зато наконец-то басы стали Ъ),также обзавелся нетбуком samsuka n150 держит 10 часов без вафли. Камеру держать так и не научился и руки по прежнему дрожат (не пью и не курю). Вот фото ( http://itmages.com/image/view/89331/67f80c1a ) крупнее.

>>> Просмотр (2592x1944, 190 Kb)

 , , , , , , , ,

kolicher ()

Рабочее место начинающего лиспового программиста

Собственно, old good Emacs+Slime. Используемый для работы лисп - последняя версия честно купленного (не мной) LispWorks энтерпрайз эдишн. WM - лисповый StumpWM, линукс - Arch. Мыло, джаббер, irc, словарь (через dictd), спеллчекер (flyspell через aspell) и переводчики (через гуглевского бота) - всё в Емаксе. Не в Емаксе только xterm и Firefox.

Работаю ремоутером дома на кухне, использую старый тошибовский ноутбук, поэтому экран такой маленький. Деятельность нашего стартапа лежит в разработке спец.железа для бирж и телекома (торги, передача сообщений за сотни наносекунд). Пишу, в основном, на Коммон Лиспе, но также на Cи (драйвера, юзерспейс) и ассемблере.

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

 ,

mv ()

Debian GNU/Linux squeeze/sid | i3

Мое рабочее окружение

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

 , , , , ,

Ignotus ()

Кеды на дебиане

Кеды, цветовая тема - немного перекрашенный Overstated, Ш везде DejaVu Sans, цветастая анимешная обоина и стандартные иконки. В geany открыта первая попытка написать что-то на C (собственно совсем первая, даже helloworld не писал).

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

>>> Просмотр (1680x1050, 649 Kb)

 , ,

Spectator ()

Дипломный девелопмент

Суть дипломной работы: разработка САПР (проектирование ЛВС) и реконфигурируемой имитационной моделирующей среды на ПЛИС, которая модельку обрабатывает и рассказывает САПРу, как идут дела. ПРОФИТ - адски, реактивно быстрый процесс моделирования. В целом же у подхода назначение более широкое, выходящее далеко за пределы моделирования, и вообще моделирование притянуто за уши:). Но диплом должен быть о чем-то конкретном, вот и остановились на моделировании ЛВС - достаточно просто и наглядно.

Сеть может проектироваться в много уровней, но в итоге вся реальная топология создается соединениями портов устройств (на скриншоте этого не видно, но внутри каждого устройства еще моделька его внутренностей с уходящими «наружу» соединениями). Когда все это дело еще и моделируется, можно наблюдать всякие таблицы и Qwt-шные графики, но ПЛИС на работе, так что программульку показываю в минимальном варианте.

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

Konsolька - только для скриншота, в жизни yakuake на всю правую половину экрана; Ш - дроид моно, 11. Амарок почти дефолтный, обычно естественно просто в трее висит. Кроме того в кадр почти не попали быдлоасечка aka kopete, kmail и firefox, но сриншот таки с ЛОРом.

K-нопки нет, Run command (Alt+F2) rocks! В панели задач можно наблюдать, как старательно ksnapshot сфоткал запускающегося себя, сцуко. Апплеты - мониторы трафика и ЦПУ. Нужны как минимум, чтобы следить за обновление мира. Эксперимент по засовыванию этого счастья в правую выпадающую панельку закончился ничем, за пару месяцев я банально затрахался возить мышом вправо, а хоткея на появление панельки не повесить (или я не прав?). Интересный баг в трее: стрелочка открытия/сокрытия иконок софтин не рисуется, но она там есть.

В целом DE весьма дефолтно, наверное. Ш - DejaVu Sans, тема плазмы - Elegance, стиль окошек - plastik, виджетов - QtCurve с легка подстроенным KlearLooks. И тут же вопрос: какого черта моя любимая Cleanlooks перестала работать в однокликовом режиме (настройка применяется только для долфина, во всем остальном окружении и софте приходится дваждыкликать)? Баг произошел после того, как ~/.kde4 был снесен, т.к. подзасрался он с версии 4.2 (на данный момент 4.4.4), несколько раз после обновления приходилось что-то вручную в конфигах писать. То есть на старом ~./kde4 с нынешней версией KDE Cleanlooks ведет себя хорошо, а в новом - как дилда.

На обоине какая-то трава с kde-looks. Голая обоина (~2Mb), сливная ручка присутствует, иконки на рабочем столе, естественно, тоже.

PS. Картинки устройств для САПРа были откуда то неподлинно скопированы, надеюсь, за мной еще не выехали.

PPS. Писалось на Qt4, на плюсах, т.к. ваять интерфейсы на gtk на си, мне не уперлось, другими кроссплатформенными тулкитами не интересовался. Про С+Python знаю, но ненавижу я пистон за его форматирование кода искаропки. Ну и вообще Qt мне несколько ближе, ибо KDEшник.

>>> Просмотр (1680x1050, 415 Kb)

 , ,

staseg ()

Быдлокожу игру

На скриншоте ubuntu 8.04, kde3, gvim и игрулька, которую я пишу. Это простой 2Д онлайн death match. На одной арене до 6 игроков (пока сделал только 4). Как доделаю - выложу. В gvim видно кусок исходника игры.

P.S. Кто может помочь с игровым сервером - оставьте пожалуйста свои координаты.

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

 , , ,

Esh ()