Pull to refresh

Python. Плазма-змей

Reading time 4 min
Views 3K
Python *

KDE4


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

Теперь серьезно — ключевая технология нового KDE — Plasma. Таким образом, чтобы в KDE было жить хорошо, надо создавать плазмоиды. Спасибо C и C++ за работу ядра, X сервера и KDE, а мы, поколение web-разработчиков, да и вообще людей привыкших к простоте, вполне можем обжить систему используя более знакомые нам языки, к примеру Python, который, как известно, поставляется с батарейками.

Хмм, а может и мне вывести карму на панель?
Total votes 50: ↑46 and ↓4 +42
Comments 22

KDE4 Plasma Desktop. Простой плазмоид своими руками

Reading time 7 min
Views 2.5K
Lumber room
imageНачиная с версии 4.x, на смену проверенных с годами, но морально устаревших (по этому поводу, конечно, мнения могут и разделиться) KDesktop, Kicker и SuperKaramba в KDE пришел Plasma Desktop. Этот фреймворк представляет рабочий стол (по крайней мере, его видимую часть), как совокупность виджетов или плазмоидов. Обзаведясь в один прекрасный момент некоторым количеством свободного времени, я решил немного разобраться с Plasma SDK, реализовав функцию, которой на тот момент мне действительно не хватало в составе моего рабочего стола. А функция эта — возможность без привлечения дополнительных приложений отправлять записи в LiveJournal. То есть этакий миниклиент, встроенный прямо в десктоп. «Было бы здорово», — подумал я и принялся ворошить интересующую предметную область.

Для того, чтобы осуществить все, что описано далее, в системе должны присутствовать, собственно, KDE4, а также следующие установленные пакеты: kdesdk, kdebase-devel, kdelibs-devel, cmake. В зависимости от дистрибутива, пакеты могут иметь немного другие названия (я привожу имена для Fedora Core), но общий смысл, думаю, ясен.

Читать дальше →
Total votes 21: ↑17 and ↓4 +13
Comments 6

KDE умер, да здравствует KDE

Reading time 2 min
Views 3.7K
Desktop environments *
Да именно так. Умер K Desktop Environment, теперь KDE не расшифровывается никак и означает не десктопное окружение, а сообщество людей.
Эта новость почему-то прошла мимо (хотя ей уже пара дней).
Скандалы, интриги, расследования
Total votes 64: ↑50 and ↓14 +36
Comments 140

KDE4 Plasma Desktop. Создание плазмоида

Reading time 10 min
Views 9.6K
Python *
Plasma
Плазмоид (plasmoid) — это виджет рабочего стола в KDE4 Desktop. Любой видимый элемент управления на рабочем столе является плазмоидом, будь то часы, системный трей, монитор загруженности процессора или окошко с прогнозом погоды.

Этот урок описывает создание плазмоида, умеющего делать запросы к некоему серверу и показывать полученный результат. Так как сервер требует авторизации пользователя, будет разобран процесс хранения данных учетной записи пользователя в KWallet. Язык разработки: Python.
Читать дальше →
Total votes 66: ↑59 and ↓7 +52
Comments 20

Приятная мелочь для хабрачеловека

Reading time 1 min
Views 355
Lumber room
Раз уж так получилось, что я начал свое существование на Хабре именно с топика о том, как создать плазмоид, то было довольно странно, если бы я в итоге в качестве логического развития той статьи не написал бы это. И вот, наконец, все получилось. И не что-нибудь, а Хабраплазмоид, отражающий карму и рейтинг выбранного пользователя! :)

image

Читать дальше →
Total votes 41: ↑26 and ↓15 +11
Comments 6

Проект KDE объявил конкурс по разработке виджетов на языке Javascript

Reading time 2 min
Views 825
Desktop environments *
Проект KDE объявил конкурс Plasma Javascript Jam Session. Участникам предлагается создать наиболее оригинальный и интересный плазмоид для рабочего стола, написанный с использованием Plasma JavaScript API. Работы можно отправить на email javascriptjam@kde.org до 31 марта 2010 года, после чего 2 апреля работы будут размещены на сайте kde-look.org, а 9 апреля будут объявлены победители.

Код всех конкурсных работ должен распространяться под свободными лицензиями, совместимыми с основной кодовой базой KDE. Возможно использование сторонних JavaScript библиотек и движков для обработки данных, однако сама работа должна быть полностью создана самостоятельно, без копирования кода из других плазмоидов. В конкурсе могут участвовать как частные лица, так и команды разработчиков, но от каждого участника/команды принимается только один плазмоид.
Читать дальше →
Total votes 14: ↑10 and ↓4 +6
Comments 1

Потенциальный апдейт Maemo5 с Qt 4.7?

Reading time 2 min
Views 433
Smartphones
Пока это звучит довольно интересно и обещающе. Но прежде, чем описать, хочу заметить, что Нокия часто обещала много, но не всегда(особенно не всегда во время) мы получали именно то, что было обещано. Кстати в статье так и написано:

«“potential” means it might or might not happen and we have no clue if and when»
«Потенциальный(апдейт) значит — это может случится, а может и нет, у нас нет представления будет ли он и если будет, то когда » (вольный перевод)

Работа над самим апдейтом идет, но они, как описанно выше, называют его потенциальным. Как они заявляют, будет много спецефических багфиксов, но так же будут и новые фичи, так как маймо перейдет на 4.7-fremantle (4.7 — это о версии кьюти, а fremantle — кодовое имя маймо5). Так как N900 не поддерживает мультитач, то в Qt 4.6 просто по дефолту отключили QGesture, в то время как в 4.7 они просто добавили поддержку gestures для однотачного экрана, к примеру нажать, а потом нажать-и-держать (как я понял из статьи именно оба действия расматриваются как одно, иначе ничего нового в этом нет, так как обычное нажатие и нажать-и-держать работают по-отдельности уже давно). И как они обещают, это делает «дружелюбный UI, более дружелюбным» (что они этим имеели ввиду =) ). Так же новшество в Qt Mobility’s Bearer Management (как уже всплывало на ТМО, следующий апдейт как раз должен принести Qt Mobility на Maemo5), которое по их описанию, дает возможность отключить внутреннию функцию кьюти «автоподключения если оффлайн» через MaemoInternetConnectivity::setAutoConnectEnabled(). Ну и в довершение, многие новые возможности Qt 4.7 будут работать на N900, особенно (как они это подчеркивают) интересным является — QtDeclarative( тут пару видео, и описание на англиском, что это такое)

Эксперементальные Qt 4.7 пакеты можно найти в extras-devel репозиториях. Пользователи Scratchbox SDK могут установить их запустив fakeroot и выполнив apt-get install libqt4-experimental-dev.
Все баги шлиет на bugreports.qt.nokia.com.

Я конечно жду и рад апдейтам, но все больше и больше мне нравятся независимые проэкты на N900, к примеру андройд с каждым днем работает лучше и лучше, добавляются поддержки из коробки железа(колонки, наушники, синизуб и многое другое). Так же я давно нашел KDE Mobile Plasma для N900, и пытался выйти на связь с человеком, который сделал это, но он видимо пропал, а на днях прочел новость о работе над плазмой для N900 (по ссылке есть видео).
Total votes 8: ↑4 and ↓4 0
Comments 11

История, часть 2. Становление глобального бренда: LG с 1980 по 1995 год

Reading time 4 min
Views 7.1K
LG Electronics corporate blog
Вступление

Привет, Хабр! Здравствуйте, друзья!

Как и обещали, вторая часть нашей истории*.

* первую часть можно найти здесь:

image
Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Comments 3

DataEngine и Python2 или Как я писал свой виджет

Reading time 4 min
Views 4K
Website development *Python *

Вместо предисловия


Посидев немного в awesome, я решил вернуться на более привычные, обвешанные множеством нужных и не очень плюшек, кеды (KDE4). Через некоторое время, я решил убрать страшненький самописный виджет карамбы (SuperKaramba) и заменить его более элегантным и простым виджетом плазмы. Требования к нему были простые: это должен быть простенький виджет на панели, который бы отображал в виде текста всю основную (вернее, востребованную мной) информацию. Порыскав по kde-look.org, я нашел один виджет, который устраивал меня в достаточной мере. Однако, мне нужны были некоторые дополнительные функции, которые не были реализованы в этом виджете. Также, автор не предусмотрел возможность легкой конфигурации виджета, и для его настройки приходилось лезть в исходный скрипт, написанный на JavaScript.
Через несколько итераций настройки уже имеющегося виджета, ввиду отсутствия у меня каких либо представлений о JS, я решил написать свой виджет. Из языков программирования был выбран Python2, в котором я более-менее смыслю. Сказано — сделано. За вечер я написал первую версию виджета, вполне работоспособную. Позже, при тестировании обнаружилось, что он имеет неприятную особенность подвисать во время обновления. Во-первых, это было связано с тем, что все поля обновлялись одновременно. А во-вторых, и это, пожалуй, самое главное — для парсинга файлов с данными (среди них /proc/stat и файл, в котором содержится информация о переданном/полученном трафике) нужна некоторая задержка. Если выставить на них по 0.2 секунды, то в итоге виджет подвисает почти на 0.5 секунд, что заметно даже невооруженным глазом.
Тогда мной была предпринята попытка переписать код, включив DataEngine, который я подсмотрел в исходном виджете. Ниже пойдет речь об использовании этого модуля в Python2.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Comments 2

DataEngine и Python2: Создание нового DataEngine

Reading time 4 min
Views 2.9K
Website development *Python *
Первую мою небольшую заметку по DataEngine можно найти здесь. Вообще, я не планировал продолжать эту тему. Но в процессе разработки было решено включить набор новых меток, например: загрузка GPU, температура GPU, температура HDD. В процессе реализации я столкнулся с некоторыми трудностями («плазма падает» ©), а в процессе поиска выхода из ситуации было решено создать новый DataEngine с блэкджеком и блудницами.
Для тех, кто что то пропустил. DataEngine — это специальный класс (plasmascript.DataEngine) в модуле PyKDE4. По сути — список словарей, каждый словарик при обращении к нему выдает какую то полезную информацию. Пожалуй, самые ходовые «словари» — systemmonitor и time, назначение обоих очевидно. Меня терзают смутные сомнения, что половина KDE4 так или иначе завязаны на работу этих самых DataEngine. Цель данного топика — создать свой DataEngine с нужными нам словарями.
Кого заинтересовало, прошу под хабракат.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Comments 1

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

Reading time 6 min
Views 11K
Website development *C++ *

Dr.Konqi, мы с ним дружим, я его часто вижу %)

Вместо предисловия


Привет!
На хабре уже писали про то, что все плазмоиды нужно портировать на QML/JS, но я все равно продолжаю измываться над трупом CPP и пишу виджеты для плазмы на плюсах. Но, возможно, не все так плохо, %username%?

Для более простого примера написания плазмоида на C++ можно обратиться к этой статье. В настоящей же статье на голый виджет мы попробуем добавить немного фич (в порядке возрастания) — конфигурационный интерфейс, обработку некоторых событий и уведомления.
Если кого заинтересовало — продолжение ниже.
Читать дальше →
Total votes 32: ↑30 and ↓2 +28
Comments 7

Ваша основная среда рабочего стола в linux на 2016 год НЕ СЧИТАЯ серверов

Reading time 1 min
Views 17K
Desktop environments *
Recovery mode
Нашел пару опросов на эту тему за 2012 год, стало интересно как сейчас обстоят дела.

Заодно решил добавить возможность выбирать несколько, если на PC и ноутбуке они разные.
Читать дальше →
Total votes 22: ↑13 and ↓9 +4
Comments 60

The Data Structures of the Plasma Cash Blockchain's State

Reading time 7 min
Views 1.4K
Information Security *Cryptography *Programming *Cryptocurrencies
Tutorial


Hello, dear Habr users! This article is about Web 3.0 — the decentralized Internet. Web 3.0 introduces the concept of decentralization as the foundation of the modern Internet. Many computer systems and networks require security and decentralization features to meet their needs. A distributed registry using blockchain technology provides efficient solutions for decentralization.
Read more →
Total votes 9: ↑9 and ↓0 +9
Comments 0

Структуры данных состояния блокчейна Plasma Cash

Reading time 8 min
Views 1.2K
Information Security *Cryptography *Programming *Cryptocurrencies
Tutorial
Здравствуйте, уважаемые хабрапользователи! В этой статье речь идет о web 3.0 — интернете с децентрализацией. Web 3.0 вводит понятие децентрализации как основы для современного интернета, многие компьютерные системы и сети нуждаются в свойствах защищенности и децентрализации для своих нужд. Решение для децентрализации называется технологиями распределенного реестра или блокчейн.


Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Comments 0

Plasma Cash Chain как решение трилеммы масштабируемости в блокчейн

Reading time 12 min
Views 2K
Information Security *Cryptography *Programming *Cryptocurrencies
Tutorial
Добрый день, уважаемые читатели!

Данная статья посвящена Plasma Cash Chain и проливает свет на следующие темы:

  • трилемма масштабируемости и способы ее решения;
  • структуры данных чайлд чейна и их отображение в рутчейне;
  • реализация ввода в рутчейн;
  • реализация вывода из рутчейна.

Компания Opporty использовала язык программирования Javascript для реализации чайлдчейна, а также Solidity для рутчейна. Примеры кода приводятся на этих языках.


Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 14

2000000$ за найденную уязвимость

Reading time 7 min
Views 9.3K
ДОМ.РФ corporate blog Decentralized networks *Information Security *Solidity *Cryptocurrencies

Эксперт в области информационной безопасности Гехард Вагнер получил рекордное вознаграждение в размере 2000000$ от команды блокчейн проекта Polygon. Найденная исследователем уязвимость угрожала потерей 850000000$. Вознаграждение стало рекордным в истории DeFi. Гехард Вагнер обратил внимание на баунти-программу, которую Polygon запустил сентябре. Он отметил, что Polygon использует для защиты транзакций между своими сетями и Ethereum систему защиты Plasma, которую, по его мнению, сложно надежно реализовать. Вагнер подробно рассказал о том, как обнаружил уязвимость в «мосте» Plasma Bridge. С помощью ошибки в коде злоумышленник мог бы вывести сумму, в 223 раза превышающую первоначальную стоимость токенов. Внесение каждых $200 тыс. могло бы принести потенциальному хакеру $44,6 млн. В случае эксплуатации уязвимости потери протокола могли составить $850 млн. Вагнер предположил, что проблема возникла «из-за использования стороннего кода без его полного понимания».

Вагнер отметил, что ранее уже работал над системами защиты от мошенничества, в частности над «Плазмой» и знал основные сложности, с которыми сталкиваются разработчики. Поэтому сразу начал проверять опубликованные контракты, чтобы найти тот, который блокирует средства на L1, когда пользователи переводят средства в сеть Polygon и из нее. Он быстро нашел нужный контракт Deposit Manager Proxy, и на момент написания он содержал токены стоимостью около миллиарда долларов США.

Далее разберем найденную уязвимость.

Читать далее
Total votes 8: ↑8 and ↓0 +8
Comments 5