Sunday, November 20, 2016

Steps Backwards for FOSS Adoption And How To Ensure FOSS Continues To Move Forward

By now the news of Munich Germany, and Brazil possibly deciding to go back to Windows as their desktop solution provider has made its way around. I want to make the following points as to why this is. Despite much speculation as to Microsoft being involved in the politics of this, which they are, its not the main reason, and ultimately it's caused by issues with FOSS software. I will clarify this statements but I first I will list why Munich and Brazil have decided to look into making the switch back.

Both gave the following reasons and I will expand on them further after I point them out.

1. Lack of, or non existent collaboration tools needed for effective work flow in large organizations.
2. Insufficient communication tools, for email, instant messaging, and social networks.
3. Inconsistent desktop experiences and at times changes that interrupt a users work flow.
4. Incompatibility issues with LibreOffice and MS Office, mostly between Calc and Excel.

Okay lets make it clear that neither Munich or Brazil have decided to make the switch yet but they are certainly considering it. With the main issue being collaboration tools and services lets look at how Microsoft really does give a better solution and how FOSS needs to step up to the plate and provide better solutions.

Microsoft does not have a single solution, but instead provides different products that work with each to provide a suite of products and features that can cover the needs of a business or organization as needed. These are;

Exchange Server that can allows both individual and group email accounts
Office Standard, Professional and 365 suites that include Outlook email client
Skype for Business (with VOIP capability)
Sharepoint
Dynamics 365 (Not to be confused with Office 365) for social networking solutions
Integrated networking system to support all of the above
Other solutions and features to numerous to list.

FOSS' best collaboration system right now is Kolab and lets be honest it's not nearly as robust as what Microsoft offers. While Microsoft integrates their solutions and services so that they all work together, nearly seamlessly, FOSS requires different applications developed under different projects, often with a singular objective that doesn't include cooperation with other applications for the purpose of integrating with other FOSS business orientated software. While LibreOffice is a great package it lacks in many ways to Microsoft Office, especially in built collaboration features.

While many things in the communications complaint are also fall into collaboration, they are simply a category of their own. Starting with email. I won't be discussing the multiple servers available here, instead in this context I will focus on the three most used clients available in FOSS.

Thunderbird - The most widely used email client in the FOSS world, its popular, functional and with plugins extremely customizable. The major fallback, its very hard to get it to work with an exchange server. Honestly, I'm not sure its even possible anymore. However its also a multi-platform package with versions for Mac, Nix systems (BSD, Linux etcetera.) In all honesty, even though I use it myself, it does have some issues, though recent releases have made massive improvements in functionality. Would I use it as a my main email client in a large scale environment? Probably not, but its well suited to being a personal one. There is a plugin available Thunderbird to allow it to connect with a Kolab server but how functional it is I honestly couldn't tell you.

Kmail / KDE PIM - Okay this is a mixed bag here. No longer plays well with GTK due to the newer Plasma system in KDE. While absolutely a joy to use in KDE it just doesn't play as well with GTK based Desktop Environments. It does have the cleanest, most user friendly interface of the three clients being discussed. However forget about interfacing with an Exchange server. If you are using Kolab its the best client you can use. Kolab was made (literally) for KDE and Kmail is at its best when using a Kolab server.

Kolab also works very well with the Calligra Office suite for KDE. However, Calligra is not compatible with Microsoft Office. While it can read Microsoft Office files, it will not save in Microsoft Office format so it hasn't gotten wide adoption and mostly likely never will. Its really a shame to, as Calligra, KDE PIM and Kolab would be a formidable competitor to Microsoft's products if they did.

On that note Kolab, in and of itself does not provide an email server. Instead, it uses any of a number email server systems available in the FOSS community. While this allows Administrators to select a solution that best fits their needs, it creates a major support challenge.

Evolution - This email client is made for business use. It will work with Exchange's email, calendar scheduling, task management and contact functions. Forget about anything else though, like Enterprise Vault and other Add On options for Outlook. It does however, have the ability to import OSTs and PST files. It should be stated that organizations using Enterprise Vault no longer have PST files, that becomes a major issue in the corporate world as many companies are turning to Enterprise Vault as the email storage compliance option required under the Sarbanes Oxley Act here in the United States. Many countries throughout the world have similar, and sometimes even stricter regulations. While Evolution is still under development its not seen major changes in some time. Its interface is clunky in my opinion but its functionality is still top notch. With that being said, sadly its fallen behind in ability to work in large scale environments because of changes in how email is handled and stored within them.

If your email server is not a Exchange based system that uses additional add ons, then it does very well, but if it is you are using Exchange and require several add ons you are going to experience issues, simply because those additional functions being used are not available to Evolution. This is due to these additional functions are not Microsoft products and are third party instead. Simply stated, because FOSS based Desktops have such a small market share these solution providers will continue to focus on Windows and Apple based systems.

Instant Messaging in FOSS is, at best, a total chaotic mess. This is one of the few things where Microsoft got it right from the very beginning.

When Microsoft first released Lync, now Skype For Business, I was extremely impressed. Initially developed for Intranet communications it worked as intended from the start. Later VOIP function was added and Lync became one of the most powerful office tools. As Microsoft added more features Lync became one of the most powerful collaboration tools available. With virtual whiteboards, meeting rooms (which allowed video from participants) and file sharing with other Lync users, having the option to share with only one, or a selection of participants, and of course all participants. Microsoft has fairly recently purchased Skype and is now merging Lync into Skype, creating Skype For Business. This is actually one of the smartest and most successful solutions from Microsoft and I am amazed that nowhere in FOSS has anyone bothered to develop anything as solution. Linphone is the closest thing out there. While offering many of the same solutions it has limitations as well. Read the Linphone User's Guide for details. Skype For Business works with Exchange for contacts and scheduling meetings. While Linphone has those abilities they don't function in the same way.

Now before I get a bunch of email and comments stating or asking "What about name your favorite FOSS instant messenger client here." we need to be realistic. While Pidgin and other Instant Messenger applications are out there, they just aren't as robust and as capable as Skype For Business is. The VOIP in Skype For Business (which isn't fully supported in Pidgin) is well integrated and works with very few problems. The only thing it really isn't useful for is call centers. Its not built for, and doesn't work well, in that capacity. However, I would not be surprised if Microsoft eventually adds that ability. However, as a centralized business communications solution there is nothing in FOSS that can touch it. Yes that needs to change. Also Skype For Business integrates with Exchange for its contact list. Yeah I don't think Pidgin can do that in the same way. Though it will use all contacts from all the IM services you log into, its really not the same thing as certain functions in Skype For Business don't translate well to Pidgin or any other Instant Messaging client available to FOSS. While I'm at it, I want to mention the face instant messaging has changed considerably since ICQ and Yahoo first introduced it. Pidgin is very much behind the times with that. Most chats are no longer being conducted over a standalone application, instead Facebook chat is handled directly in the web interface on Facebook itself. Yes I know there is a Facebook plugin for Pidgin and if it didn't stop working or wig out every time there was an update to Pidgin, or the plugin itself it would be great. Yes this is a major issue for FOSS.

Inconsistency in desktops stems not from FOSS having so many different Desktop Environments and options. (to compiz, or not to compiz) That is easily mitigated by having the organization select, and enforce the use of, a single Desktop Environment within said organization.

FOSS isn't alone in this. Even Windows can modified in ways that drive support technicians nuts. I should know, right now I am making my living as a Desktop Support Technician. The main difference is, the Windows interface can only be modified so many ways (thankfully) but a FOSS Desktop, thtat's a whole situation altogether. While many things can be done to limit what a user can do to modify their desktop, Administrators often fail to do so. If a user happen to have Elevated rights for whatever reason then all bets are off. (sudo apt-get install ring a bell?) Anybody who has enough knowledge, and the right permissions to do so, can make support a nightmare for technicians. I have actually figured out a solution to this and I am sure its already been implemented somewhere, but the difference is my solution actually has an additional method to keep the above scenario from happening. That however, is for another discussion.

The second part of the third issue is when developers add a major change to the Desktop Environment and it no longer functions exactly the same way or function has been deprecated or the method for using it has radically changed. Trust me users will raise bloody hell when that happens Desktop Support Technicians deal with that a lot. Though its usually not something in Windows but a radical change in a application. In FOSS though features are constantly deprecated, changed and added to every Desktop Environment. While most rarely impact a users workflow, when they do, the poor technician dealing with it will believe Armageddon has arrived.

The last issue is one the community as a whole needs to get on board to resolve. This is an issue with OpenOffice and LibreOffice as a whole. It needs to be said that the Open Document Foundation has made great strides in resolving many of document compatibility issues between LibreOffice and Microsoft Office. The real issue is that they are also trying to get new features added while improving current ones as well. Its a tall order and there is just not enough developers to do all of it. So while its slowly happening, its in small improvements. Even when we get a major release where most of these changes actually take effect, its slow compared to development at Microsoft.

Make no mistake, besides Windows itself, Microsoft Office is the most important software package they develop. So they improve and add features constantly. During the life cycle of whatever version of Office in question these get deployed as updates and service packs for Office. In some cases these include updates to document formatting methods in the XML code Microsoft uses. The Open Document Foundation is then forced to back track to make changes to keep up with these new formatting procedures. Its a vicious cycle really and it slows down the overall development of LibreOffice. Especially when the changes are radical. Not to mention the Open Document Foundation must also make changes when the Open Document standards also get updated. This is why LibreOffice developers stick to the core programs of Base, Calc, Draw, Impress, Math and Writer. Developing other programs like an email client would be a nightmare for them. Yet realistically LibreOffice needs to have more programs added to its list to truly compete with Microsoft Office. I'll discuss that a little later on.

So where should the FOSS begin to address the issues I brought up? Well simply put its time for us to look at building a new collaboration server system, and while Kolab has already laid the groundwork it has two main issues that make it incompatible to this scenario. Its an incomplete system and to KDE centric.

Now I'm not putting Kolab down, it was made for KDE and Calligra, in that capacity its great while providing a solution that is badly needed. However, since we need something that is a lot more inclusive and also works with LibreOffice, as well as other office solutions. As it is right now Kolab would require massive rewrites in the code to meet that need. It does provide a solid foundation to work off of. We also need to look at Microsoft's methodology in server integration. Their modular system actually provides a solid system for deployment and allows for development teams to work on.

If Canonical, Red Hat, SUSE and Google would work together and layout some standards and protocols FOSS developers can build on then a core server package could be developed. Even if they don't the FOSS community could discuss it and come up with them. Either way that has to be done before we can move forward.

The server itself should take a modular approach as well using the following ideas. This is my opinion but I believe this is the best approach;

A core server system that handles all protocols and information transfers between other modules and applications that access them. This will allow for Acentralized information sources and data bases. We can use the latest in data base and server technology as it will be built from the ground up. Improving reliability and compliance for Corporate data storage. The following modules will need to be developed once the core system is ready:

     1.) Email Server, to include;
          a.) Organization Contact management
          b.) Schedule management
          c.) To Do List management
          d.) Web access to email

     2.) Sharepoint like services

     3.) Skype For Business like services

     4.) InfoPath Forms like services

     5.) Corporate Social Networking services

     6.) Cloud Services

These are the core services of Microsoft server systems, not including domain control, which is already well implemented in Samba and *NIX domain control systems. We don't need to reinvent the wheel but we do need to work with them.

Once the core server and the add on modules are developed FOSS can provide the same solutions that Microsoft does and increase our ability to keep and grow the desktop implementation of FOSS desktop systems in corporate and other organizations. Once we solve the collaboration, communication and storage issues with this outline we will have changed, and leveled the playing field. This is, in my opinion, an absolute must to make FOSS a truly viable across the board solution.

The next issue is the client - desktop software. The following chart shows the current status of available software for Microsoft Office, LibreOffice, Calligra and available FOSS applications.

Application Type                                 MS Office                 LibreOffice     Calligra Suite       FOSS Applications
Data Base                                            Access                        Base               Kexi
Desktop Publishing / Page Layout      Publisher                                                                        Scribus, LaTex
Diagrams and Charts                           Visio                                                 Flow                     Dia
Email                                                   Outlook                                            Kmail                    Evolution, Thunderbird
Formula                                                                                  Math
Graphics Design / Editing                                                      Draw             Karbon
Mind Mapping                                                                                             Braindump             VYM, FreeMind
Note Keeping                                      OneNote                                                                         Gnote, Basket, Tomboy
Presentation                                        Power Point                Impress         Stage
Project Management                           Project                                              Plan                       Planner
Spreadsheet                                         Excel                          Calc              Sheets
VOIP / Instant Messaging                  Skype For Business                                                        Linphone
Word Processing                                 Word                          Writer            Words

While FOSS software covers everything Microsoft Office offers, its scattered, chaotic and most certainly not integrated with each other. LibreOffice is the biggest contender for being able to provide office application solutions but it only provides the basic applications needed and doesn't easily work well with outside applications. Calligra provides more applications but since it cannot save a file in Microsoft formats it's not likely to be considered a usable business solution for corporations and government organizations.

Referring to the chart above we need, first and foremost a business class email client that is built on LibreOffice or can interact with LibreOffice applications. While the former is preferred its the latter we will most likely have to focus on. While Thunderbird is a powerful email client its not particularly business orientated. Here I think Evolution provides the best answer. By updating it to a bit more modern interface and expanding its plugins and options. We don't have to reinvent the wheel, so to speak. The only other thing I want added to it is a system tray Icon like Fire Tray gives to Thunderbird. There used to be one but its no longer functional. Nitpicking a bit but I feel that is an important feature.

Linphone has all the features needed to replace Skype For Business. It will need to be able use the shared contacts data base and instant messaging  service our theoretical server will provide and also integrate with LibreOffice and the email client chosen for use. Adding these features may require a fork of Linphone, or we can work with the current developers to get those features added. Like anything else in this list, its fully dependent on whether we can get the various projects involved to collaborate their efforts.

Project management is important for organizations. Good and effective project planning and management software is a vital tool. What has always escaped me is why such applications are not designed to be collaborative, when it makes absolute sense for them to be so. While I'm not sure on this I do believe Calligra Plan does have that ability through Kolab. If anyone does know for sure on this please let me know.

Let me state my reasoning here. First off Let's keep this simple. Projects are huge undertakings in a corporate environment. It simply makes sense that Project Managers and Coordinators should be able to send updates and project completion levels through the software to the master data base file for the project. The top level Project Manager can accept, reject and modify them before they get committed. It allows for more efficiency and saves a lot work in the long run.

So with that in mind we have a couple of issues. None of the GTK based project management applications are in actual active development at the moment. Planner gets minor updates to keep it working but the reality is the only FOSS project management application in steady development is Calligra Plan. While there are several SAaS type Project managers out there and some FOSS based as well being worked on, none are truly compatible to the needs of this undertaking.

However, this gives us a unique opportunity in that Planner can be forked, updated and modified to work with LibreOffice and a data base that plugs in to our core server system, allowing it access to other data base information. Contacts, forms and other documents. So despite its lack of current development I believe Planner is the best option. It can be forked and features added to meet the needs I have already set forth. Like any of the office software it can be stand alone or work with the proposed server.

Okay in the Diagramming category we have Dia. Which is an excellent and robust tool. It's not in the categories of what I would call intuitive or user friendly. It is something that takes time to master. Dia is designed for complex diagrams and charts. You can even create programs with it using UML. That's way more function than the average office suite or general end user needs. So in this case, I say we start from scratch. We certainly can make it compatible with Dia but make it with a friendlier less complex user interface. In general we need to worry about making organizational charts and basic work flow diagrams. Occasionally a flow chart. Nothing overly elaborate or complicated. Dia has some CAD like abilities, which is great for some, but for most its way over the top. I mean I can make an entire schematic diagram with Dia. That's a bit more raw power than an office manager making a organizational chart needs.

In the Desktop  Publishing category FOSS has Scribus and it's an extremely powerful application for page layouts and desktop publishing. While there are other Desktop Publishing applications in FOSS Scribus is the one that can actually perform as well as Microsoft Publisher. It's very user friendly and unlike most other Page Layout applications in FOSS you can edit text with it. However, its a KDE/QT based application and there is no GTK equivalent. So like our diagramming application this is another one that needs to be built from scratch.

Note taking applications abound and all are useful. However OneNote does work in a unique way. This doesn't mean we should expect any note keeping application to look and operate like OneNote does. We do need to improve on how FOSS based note taking applications store, manage and present those notes. Tomboy has a good interface and though Tomboy won't exactly meet the needs of this idea, it doesn't mean we can't create one that has similar look and feel. Again it has to be able to interact with all the other applications, including LibreOffice.

Here is one area where FOSS is a few steps ahead of Microsoft, Mind Mapping. Braindump is included in the Calligra Suite already, with VYM and FreeMind being available.

From Wikipedia: "A mind map is a diagram used to visually organize information. A mind map is hierarchical and shows relationships among pieces of the whole. It is often created around a single concept, drawn as an image in the center of a blank page, to which associated representations of ideas such as images, words and parts of words are added. Major ideas are connected directly to the central concept, and other ideas branch out from those."

Not everyone will use mind mapping tools but they are powerful and allow for following creative flow. When properly used they organize the work flow process from concept to  creation and allow for additional ides to be associated for future updates or related projects.

Now that I have discussed all the Applications not currently available in LibreOffice when compared to Microsoft Office and in one case Calligra Suite what next needs to be considered is the interface appearance. Ideally we want them to have a standardized interface so that the end user experience is improved overall and the learning curve for the entire suite is reduced. Similar look, feel and procedure also brings a more professional polish to the overall suite of proposed applications. Ideally we should use the current interface design of LibreOffice, however if that is not possible we can change the Interface of the LibreOffice applications if need be.

For server side services there are a bevy of FOSS servers to supply the needs listed. The biggest issue is that they work through the core application to unify and allow shared access to shared data bases. One other thing is many Desktop Environments allow their calendars to also utilize calendar data bases like Google Calendar and we to should allow them to access the servers calendar and scheduling data bases as well.

Seriously FOSS is in a position to build and offer the solutions corporations and organizations need, problem is taking the pieces and putting them together. Not looking to reinvent the wheel, just want to see the engine built to turn the wheels we need. Of course it won't happen overnight and many things need to be decided and agreed upon before development can start. (Buy stock in Aspirin now.) However once it gets past committee and the work starts I expect it will move rather quickly. And keep in mind all of the above is nothing more than suggestions on my part. However, if were ever going to get FOSS desktops to be taken as a viable solution versus Windows 7 and 10, its time to get serious and provide a more complete package of applications and services.

The last thing we need to discuss is the state of FOSS Desktops. One of the biggest problems with them is use of experimental features. Gnome 3 and KDE Plasma are prime examples but lets not forget Enlightenment and others as well.

For a list of Desktop Environments and their histories Linux.com has a good article here that goes into some details of each they list. Though it's certainly not a complete list it does cover the basic different types.

I am not for a single desktop solution for FOSS systems, I am however for the development of a professional looking Desktop Environment more focused on functionality and stability. In other words one that is designed for use in a large organizations, like corporate and government.

While I am no where near a Windows 10 fan, because I know how it works, how it interacts with Microsoft and that its quickly turning every device its installed on into a Software As a Service model for the Operating System itself, there are few things in its arsenal that make total sense.

Mode switching for device types. Windows 10 has three modes, Standard Desktop, Touchscreen and Hybrid. Standard Desktop mode for desktops and laptops that use a standard screen and input devices. (Mouse and keyboard.) Touchscreen mode for tablets and other mobile devices. Hybrid for devices that have touchscreens but also use a keyboard and mouse. The hybrid mode has a lot of options depending on the device itself. While the touchscreen is always on it can switch to tablet mode if the keyboard is removable or like the Lenova Yoga can be folded back. Some devices let you swing the screen 180 degrees so it folds over the keyboard. In any event where Windows knows you won't be using the keyboard it switches to touchscreen mode. If the device is capable of relaying orientation of the screen (and most are now) Windows will automatically switch between portrait and landscape views automatically if configured to do so. Currently, to my knowledge, no FOSS desktop is doing this yet.

FOSS needs a desktop environment developed that focuses on reliability, stability while having features for today's technology and allowing for future technologies. The nice thing is it can be done with currently available Desktop Environments or built from scratch utilizing some of the best features of each. First and foremost a more polished professional icon set really needs to created and many applications need to be brought into Open Desktop compliance so they use that icon set. Easier said than done in some cases, but not impossible.

I'm going to leave this idea list open ended because I know I haven't covered everything. While I targeted the main issues affecting the adoption of FOSS solutions and why we're looking on a setback of those we do have out there. There is always room for improvements and more ideas.

Overall my purpose in writing this was to start the discussion of how we can make FOSS based adoption more appealable to organizations looking for solutions outside of Microsoft. See FOSS already has the solutions available but its not simple to incorporate them into a single cohesive system that shares data and uses a standard interface. However, there is no reason why it can't be developed if we work with those who have the solutions available to come together to make it happen.

Monday, July 4, 2016

Returning to Debian

I'm a Linux user, everyone and their immediate families all know this by now. So fair warning, technospeak ahead:

A few months ago I stopped using Ubuntu and Ubuntu derivatives based on some things that Canonical had done. The first and the one that honestly made me first look for an alternative was what they had done to Jonathon Riddle. Though I never met the man he and I have had email exchanges and I have a lot of respect for his work in KDE. I may no longer use KDE myself I feel his forced removal from the Kubuntu project was wrong and extremely politically motivated.

The forcing of needing Mir just to run certain applications, like Synaptic Package Manager in root mode, and gedit made me realize that it is most definitely not in my best interest to continue using Ubuntu or any Ubuntu based Distribution if the tools I use, want and really need won't work for me because I use a desktop other than Unity.

Canonical does not seem to have the best interests of the Linux community as a whole in mind and are pushing an agenda more than a product. The main point of Linux and Open Source Software as a whole, is the freedom to make choices.

I went to Fedora and it actually worked great but I quickly realized that the reason I initially started using Ubuntu to begin with was that it had the largest selection of available software in the Open Source Community since it was Debian based and essentially was Debian to begin with only more up to date and less restrictive on non GPL licensed software.

My problem really was going back to using Debian as it was not exactly easy to install, as Debian's installer kept hicupping on the GRUB installation when I used the Live DVD image.

Had to go to the Internet install CD image to get that accomplished, after I installed the driver for my wireless card. The main reason I went with the non-free Live CD installer is the network device drivers on my Lenovo ThinPad were included but it failed to install GRUB and I can't boot my system without it. (GRUB is a boot loader that runs the initial startup for Linux systems.)

Finally I got Debian 8.3, Code Name Jessie, installed. Up and running I began to install the software I needed and updated it where I could. After I finally got the base packages installed I turned on Debian's backports repository and got a whole lot more of it updated, including the kernel.

The biggest issue with Debian is multi-media, as nearly none of the codecs meet with Debian's licensing requirements. Had to add a third party repository to get those, though I am happy to say I can once again watch movies and stream video from sites. That means I can watch all my television shows and DVDs as before. Though getting the system to do it wasn't pretty I did indeed accomplish the task.

I even got Compiz (Linux compositor and effects system) going so I have my virtual desktops available (a.k.a. the infamous desktop cube) as well as the Emerald Windows decorator so I don't have a bland and boring desktop to look at. (My biggest gripe about Windows 8 and 10 is the flat look they use. Absolutely hate it.)

Ah yes it took a whole lot of work and research to get Debian up and running the way I want it to and worth every bit of it. Viva La Linux.

Saturday, September 19, 2015

Online Python Learning Resources


https://www.codecademy.com/en/tracks/python

https://www.python.org/about/gettingstarted/

https://www.udacity.com/courses/all?technology=python

https://www.codementor.io/learn-python-online

https://wiki.python.org/moin/BeginnersGuide/Programmers

https://alison.com/courses/Introduction-to-Programming-with-Python

Friday, September 4, 2015

MATE Is Creating A Challenge With Porting GnoMenu

Well as the saying goes anything worth doing will not come without challenges. Case in point is bringing back the abilities of GnoMenu, which was originally made to work with Gnome 2 to MATE which is a continuation of the afore mentioned Gnome 2. Now oddly enough the challenge is caused by the deprecation of the one thing that caused the GnoMenu the most issues, Bonobo.

Bonobo was a component model for creating reusable software components and compound documents in GNOME 2. Bonobo was deprecated in both MATE and GNOME 3 (officially deprecated in GNOME 2.4) and MATE for the sake of backwards compatibility implemented their version of Bonobo which was a short lived stop gap to allow panel apps in MATE to continue functioning while the MATE developers to move the new D-BUS implementation via GSettings/DBUS. To understand how much this changes things you need to understand that syntax is vital in programming. The switch from Bonobo to DBUS changes not only the command and calls but the syntax as well. As an example here is piece of code used in MNWMenu.py that needs to redone to use Gsettings/DBUS:



import gtk
import pygtk
pygtk.require('2.0')
import commands
import sys
import gobject
try:
import mateapplet
except:
from gi.repository import MatePanelApplet as mateapplet
import os

if not os.path.exists(os.path.expanduser("~") + '/.mnwmenu') or not os.path.isdir(os.path.expanduser("~") + '/.mnwmenu'):
os.system('mkdir ~/.mnwmenu')


import gconf

Now here is an example of code that performs this same base function with the new syntax:

import gi
gi.require_version("Gtk", "2.0")

from gi.repository import Gtk
from gi.repository import MatePanelApplet

def applet_fill(applet):

    # you can use this path with gio/gsettings
    settings_path = applet.get_preferences_path()

    label = Gtk.Label("My MATE applet in Python")
    applet.add(label)
    applet.show_all()

def applet_factory(applet, iid, data):
    if iid != "TestApplet":
       return False

    applet_fill(applet)

    return True

MatePanelApplet.Applet.factory_main("TestAppletFactory", True,
                                    MatePanelApplet.Applet.__gtype__,
                                    applet_factory, None)

Though this is not a pure function to function or process to process example it shows how the syntax has changed. Not all syntax changes can be attributed to the change from Bonobo to D-BUS either as Python also has had some changes to its base syntax as well.

I'm just learning Python and haven't written a program in years in any computer language. Beyond shell scripting and some HTML CSS stuff I really haven't kept up with it. Even with shell scripts like pygi-mate-convert.sh to help convert the Python code, because of the changes in the syntax structure, that are required, I quickly realized I am going to have rewrite nearly all of the modules from GnoMenu from scratch to comply with syntax structure and ensure that the proper commands and functions are used. I contacted Helder Fraga and unfortunately he no longer has any notes on GnoMenu, which means (drum roll please) I'm going to have to reverse engineer the GnoMenu code (which means creating lots of flow charts) so I can recreate the app.

You can bet you A$$ there will be follow ups to this Post.

Thursday, August 27, 2015

Notes For My Ultimate Linux Desktop System

Needs to be done
Based on Debian but separate like Ubuntu (but not Ubuntu based, though forking some of their applications and tools is always an option.)
Full emphasis on the MATE desktop and GTK3, porting programs from other Desktop Environments such as K3B and KDEConnect to GTK3. The Desktop needs to be simple to use but also allow more advanced and power users to have the control over their system and desktop that they desire.
Return GnoMenu (and rename it) to the desktop, porting from Python to GTK3 and cleaning up existing bugs. Add abilities to bring more menu layout functions and options. Should be able to work with mouse based and touch screen based systems allowing for themes to work with either or both.
Compiz and Emerald both need to be revived and Compiz needs to be forked from Canonicals current development branch. This includes returning the functions and plugins either modified or removed by Canonical to suit their Unity Desktop Environment. Integrate Compiz and Emerald into MATE to be the compositing system. Start adding Wayland support. Fix issues caused by the Unity support (possibly removing all Unity support code.)
Return full Eye Candy support and theming options. Not everyone likes the flat look being pushed on most Desktop Environments today. Users should always have the option to make their desktops look the way they want. MATE is capable of being modified in such a way when the right options are available.
Develop a ISO creation tool that allows people to create customized ISO images that is simple to use for novice and expert alike. Something like Systemback.
Things that should be done.
Finish the job of transporting Nautilus options and plugins that were available to Nautilus in Gnome 2 to Caja. While the main plugins have been done many other excellent ones have not.
Bring the options from third party tools used by MATE such as Touchpad Indicator and add them to the existing Control Center tools. (To me this is a no brainer and should have been done from the beginning. Many of these options should be native and not from third party add ons.) Consolidate the Control Center options, Emerald Theme Manager should be part of the Appearance control etcetera. Also many of the Control Center options are not properly catagorized. Case in point, Firewall Configuration (GUFW) belongs under Internet and Network not Other and Network Options under System should also be under Network, and part of the Network Settings under that. Gparted should be in Hardware not System, as examples.
Update Gkrellm and plugins specifically for MATE. Add true transparency and Wayland support. Update plugins, both built ins and add ons, to use newer tools and commands. Add support for new hardware and software. Allow horizontal placement. Add left and right click options to some of the modules (an example would be accessing the desktop calendar from the system time plugin, or accessing system power options from the battery monitor plugin.) Gkrellm itself should function as a extension of the system tray as well as a system stack monitor. Removes redundancy and declutters the desktop experience.

Monday, August 3, 2015

Emerald for Debian Jessie and LMDE 2 Betsy

In my post concerning how to Install Compiz on Jessie and LMDE Betsy I stated that Emerald Decorator would be my next target to get working. I am happy to say I have accomplished this and tested it. The dependency issue is fixed and it installs without any broken package issues. Its also the first deb file I have ever packaged, which is cool.

The deb file can be downloaded here.

Enjoy--


Tuesday, July 28, 2015

Has Your Network Manager Icon Disappeared?

A recent issue has reared up with the Network Manager Applet not loading in Debian and Ubuntu. AFAIK it effects Unity, MATE and Gnome and possibly other Desktop Environments. In all cases the solution is quick and simple.

In your startup add the following command:

dbus-launch nm-applet

Then logout out and log back in, or restart.

This appears to be caused by an update but I have no idea which update package is the culprit. I don't recall an update for Network Manager recently but then I just may not have noticed it.

Sunday, July 19, 2015

How I Got Compiz Working In Debian 8.1 Jessie

If you love having the desktop cube or other goodies in Linux via Compiz but use a Debian based distribution other than Ubuntu you have probably noticed that its is no longer in the repositories, including testing and SID. Well fear not you can now get it. I use Linux Mint Debian Edition which is based on Debian 8.1 Jessie release.

After trying several different methods to get it installed, including compiling the source code (epic failure) I did my usual investigation to determine what needed to be done to resolve this. To me Compiz is a vital component, effects aside I rely on the Desktop Cube. It organizes my work flow and allows me to perform operations with less clutter from having several things open at once.

The problem in getting Compiz to work was the missing dependencies from the Debian Repositories so no matter what method I went with I would either get broken packages or outright failures in these attempts. That being said I went to one last (by last I mean it was my absolute final attempt) effort to install Compiz.

In a nutshell Compiz development is only being done by Canonical right now. Its an integral part of their Unity Desktop so they are actively developing it. However, as many have noted the version in Ubuntu 15.04 doesn't work with Debian 8.1. Well fear not because the version in the upcoming 15.10 release does. Wily Werewolf is the solution to our Compiz dilemma.

Add the following line to /etc/apt/sources.list

deb http://archive.ubuntu.com/ubuntu/ wily main universe

Update your sources, install Compiz, the plugins and ccsm then either remove, or comment out, the line.

I am currently using Compiz on my system.

For my next magic trick, Emerald Decorator.

Wednesday, February 25, 2015

Caffeine Plus returns manual toggling of screensaver / lock screen in Ubuntu and Kubuntu

I'm not going to reinvent the wheel and write a long winded blog here as its just best to send you to the Webupd8 Blog that has all the information you need and install instructions. I'll just say its good to have this function back.

Wednesday, November 12, 2014

Can't sleep and for once its because I'm in a good mood!

You know despite a few things that nearly ruined my entire Veterans Day there was one amazing bright spot that has had me smiling tonight. My son's class put on a show at the school he goes to. As a veteran I was proud to attend and my son was I happy I came. So I just want to share the moment.






My wall will never be the same again!

Monday, November 10, 2014

Firefox Developers Edition is available: How to install it on Linux.

I just downloaded and setup Firefox Developer Edition. Though I haven't delved into using it yet I really like the interface and features I have gleaned over so far. Its also HTML 5 compliant (very important.)

There is no deb or rpm file available yet but it runs out of the box once you unpack the tar file. To make it available as a global place the unpacked folder (you don't have to do this but I renamed the folder firefoxDM to differentiate the the two versions of Firefox) somewhere in your available executable paths. (I went with /usr/share/) I then used my menu editor to create the entry so it appeared in my menu. For me the full path to the executable is /usr/share/firefoxDM/firefox

I also grabbed a Icon to make the difference between the standard browser and the developer edition visibly apparent.


Yes its that simple to setup. Enjoy

Sunday, November 2, 2014

Hiding the Cashew

I use KDE but I am not, and never have been a fan of the Desktop Cashew. It's of no real use to me and I just don't like it on my desktop. Though I can't actually remove it I did learn how to hide it.



In the current version of KDE you can drag the Cashew to the bottom of the screen and place it underneath the panel. If you have a transparent, or semi-transparent, panel this may become slightly more annoying. However if you have a non transparent panel its a great way to hide the Desktop Cashew. So this is what my desktop looks like.


Yeah it works for me.

Sunday, October 26, 2014

I actually started off today with the intent of blogging about KDE features that are now working in Kubuntu 14.10 that didn't do so well in 14.04. Screenshots and all. The one I wanted to rave on the most was KDE Connect. However, despite having Android Jellybean, which has a built in screen shot feature, when I used the button combination my phone restarted instead. So I spent a good part of my afternoon in chat with a Samsung rep trying to get it fixed (After a factory reset we did.)

End result, no blog on KDE Connect or Cloud Storage Manager, as I have to work on getting my phone back to the way I had it. Thank God for Google settings backup services which had my app settings stored but I have to completely redo my layout to get it back to where I had it. What was the cause of the problem? An Android System update sitting in my queue waiting to install. Go figure.

Sunday, October 19, 2014

Getting Kolab on Ubuntu

These are the steps I needed to do to setup the Kolab Repositories for Ubuntu. Please note these are minor corrections that are listed from the Kolab Site:

For Ubuntu 14.04: Add the following lines to /etc/apt/sources.list;

deb http://obs.kolabsys.com/repositories/Kolab:/3.3/Ubuntu_14.04/ ./
deb http://obs.kolabsys.com/repositories/Kolab:/3.3:/Updates/Ubuntu_14.04/ ./

Get the gpg key:

gpg --keyserver pgp.mit.edu --search devel@lists.kolab.org

To import the key:

sudo bash
gpg --export --armor devel@lists.kolab.org | apt-key add -
exit

Put the following in /etc/apt/preferences.d/kolab:

Package: *
Pin: origin obs.kolabsys.com

Pin-Priority: 501

sudo apt-get update

aptitude install kolab

When asked to confirm that you want to install the package and its dependencies, press Enter.