Running Eclipse Che Easily on Fedora 25

Running Fedora 25 and want to give Eclipse Che a test spin? It’s far easier than you may think.

  1. Install Docker
  2. Install Che
  3. Run Che

The steps are simple but quite important they are followed closely. Best to always follow the official process, right? In that spirit, the instructions for getting Docker running on Fedora were quite straightforward. Use those to make sure you’re running Docker smoothly.

As advertised on its homepage, getting Che installed is as simple as a single command: docker run eclipse/che start

Next comes the simple but tricky part. On Fedora 25 I figured out that I couldn’t use the shortened Docker command – I needed to run the full explicit one specifying paths. I didn’t want to have to remember this, and I also wanted to make sure Docker was running whenever I needed to run Che, so I created the following bash alias to use:

alias che='sudo systemctl start docker && sudo docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v /home/ennenine/Development:/data eclipse/che start'

Now whenever I want to spin up Che and start working, I simply have to type che into the nearest terminal.

Fixing Elementary OS Slow Boots

For the past 6 months or so I’ve been running Elementary OS Loki on a 2015 Macbook Pro. Recently I noticed my laptop intermittently booting more and more slowly. With some downtime today I did some searching and found a few solutions that helped me get everything back to normal.

The first thing I did was clean up my /etc/xdg/autostart folder. I found this article with others reporting similar slow boot issues. I opted for moving the files to my home folder in case I needed them back. At one point I had installed a cpu indicator that I later removed that looks like it left an entry behind I so cleaned that up also:

I then realized that a screen reader (Gnome Orca) was being loaded that I didn’t need so I decided to clean that up as well:

That made a huge difference to the speed my desktop loaded after logging in but I still had some issues getting to the login screen quickly in the first place. I found this cool trick on the Elementary Stack Exchange:

That creates a file that you can view with Firefox showing you what is happening during boot and how much time it’s all taking.

boot activity

Right away you can see that docker.service and rc-local.service are taking significantly longer than anything else. What’s more interesting is that I’m no longer running docker. That was an easy one to identify and fix:

When I looked at what was in /etc/rc.local I noticed only one thing: powertop --auto-tune

I haven’t been thrilled with my power handling to begin with so I commented that out until I can spend more time digging in to that and getting it running more smoothly.

Now things are running great, and I notice even going in and out of sleep (closing the lid) works better!

Hiding Application Icons in Wingpanel on Elementary

Elementary OS Loki looks beautiful, though I do find myself annoyed with the extra application icons that show up in wingpanel in the upper-right of the screen:

Before

In order to get rid of them you need to edit ayatana.blacklist to include the Id of the applications you want to restrict from showing up there. To start with, take a look at what is already in yout blacklist. To see its contents run the following Terminal command:

Mine originally looked like this:

Next, we’ll find the Id of applications you want to restrict. Be sure they are not already running. We’re going to start dbus-monitor and launch our apps, watching for when they register with dbus. Because there is a lot of text output, save it to a file you can search afterwards.

In the Terminal enter the following command:

This will create a text file called dbus-monitor.txt and stream all of the output from the dbus-monitor command in to it.

Next, launch your application. When it is finished launching, go back to the terminal and type control-c to cancel the dbus-monitor command. Then launch a text editor and load the dbus-monitor.txt file.

Search for string "Id". The first result that comes up should be the entry for your application. In this case, you can see from the screenshot that the Id for the OwnCloud sync client I launched is ownCloud. The Id is case sensitive so be sure to pay close attention.

dbus-monitor.txt

Edit your ayatana.blacklist and place the Id values for any applications you want to restrict in a new line of the file. I added an entry for the OwnCloud sync client and f.lux so now my file looks like this:

Save the file, and log out. Next time you log in your restricted applications will no longer be displayed in wingpanel. Sometimes it takes a few trials to get this right as there may be a few different Ids in use by the application. If it doesn’t work, try searching the dbus-monitor.txt file again and see if there are other Id values you could try.

After

A Tale of Two Communities

A few quick important notes before I begin.

  1. I am a huge fan, supporter, and fervent believer in open source. It is not “the only way” but I do firmly believe it is a necessary and good way.
  2. I am intentionally not mentioning any specific people, companies, events or communities in this post despite how obvious it may be to some people who know me.
  3. The intention of this is to draw attention to the impact attitudes can have on a community. Furthermore, it is a focus on the human aspect of these communities, not evaluations of products they produce in any way.
  4. These are personal beliefs and statements about how I will be conducting my personal time and affairs. It is also very tied to my personal experience, which may or may not be the experience others have had.

Over the years I have been involved in a number of technical communities; student groups, meetups, open source projects, etc. Each one has its own unique culture. Each one has strengths and weaknesses. Even when communities struggle with attendance, or volunteers, or conflicts whether they be internal or external, they all have something special that their constituents value and share. That is something that should not be forgotten or diminished. It is something foundational that makes it all possible.

One of the communities I have been involved in, I’ll refer to it as Community A, had some profound impact on my life. It helped me take a few successful leaps of faith in my life. It helped me transition my career, allowed me to grow. It gave me the opportunity to experience a wide variety of people and places, literally all over the world. It has also caused me profound internal conflict, especially over the past few years.

As I became more involved in the community and the companies supporting it I became exposed to some challenging situations:

  • Being told upon starting a job at one of the prominent companies that I should be prepared to take my clients to strip clubs, and later watching it actually happen as part of conference culture, even part of sales expense accounts.
  • Watching misogynistic attitudes and blatant disrepect and bias from senior executives, including C-level.
  • Watching questionable office behavior and fear of nepotism-based justification.
  • Arguments between companies that can only be described as religious-style battles (in public and at conferences) based over who was right without asking end users what they desired or experienced.
  • Being made to feel uncomfortable and have my intentions challenged when I maintained friendly and cordial professional relationships with people from other companies who were all members of the same open source community.
  • Having my employer make an official press release—picked up by official news sources and republished—right after a round of funding about going to an upcoming conference with loads of cash to throw epic parties including references to drugs and strip clubs, apparently as a joke. Clients called me asking what was going on and making it known that this behavior could strain and threaten our professional relationship. C-level execs delayed for quite some time to offer a public clarification, and completely refused to issue an apology. My immediate superviors were concerned by my anger and embarrassment, but senior executives wanted lists of everyone who had issues with this and told us to stop making an issue out of it.
  • Witnessing in the community, personally and through observation of others, numerous accounts of rude, attacking, and destructive behavior towards volunteers looking to contribute or newbies asking honest questions. In some cases this was dealt with, but even in those scenarios it would go on literally for years.
  • Witnessing numerous accounts of “brogrammer”-style attitudes that either you are a hardcore developer or are dumb.
  • Watching prominent community members promote foul and offensive ideals during official conference sessions.

As I make that list, I’m alarmed by the size of it. Frankly, I’m a bit ashamed I waited so long to make a stance after I see it all compiled together. I was not forced to do things I did not want to, and in some cases I even laughed at some of the jokes. In hindsight I wish I had not. I’ve made mistakes that I can not change, but what I can do is focus on what I do moving forward and what I choose to support.

In contrast, Community B feels entirely different. There are similarities amongst individuals in both A and B. Both communities contain wonderfully loving and inclusive people. Passion for the larger mission are present in both places. However, in Community B this seems to be the norm. When you look at the makeup of the community, Community B includes a far wider and diverse makeup; developers, users, designers, business owners, passions in just about every aspect of life. Community A has that, but Community B is that. Community A even has a large representation of these people. The unfortunate part is that it also has another part that rears its head into the mainstream makes me feel as if I simply cannot be a personal participant.

Additionally, there appears to be a distinct compassion for not leaving people behind in Community B. At first glance this appears that it could be a technological handicap, but somehow they’ve turned it into a pragmatic strength and have some staggering stats to prove it.

If there is one way I could sum up a generalization of the two communities, it would be this:

Community A is primarily focused on building a tool. Community B is interested in using the tool they are building to achieve a series of other things out in the world.

The products of these two attitudes came in stark contrast to me recently:

  • Organizers of Community A included a female-objectifying magazine associated with pornography as official conference swag handed out to everyone (Playboy). I want to give credit that an apology was issued, but let me be clear that this does not erase or negate this extremely distasteful and official decision. These organizers only found issue after an outcry against them.
  • I personally observed a company prominent in both communities chose to react to a (potentially legitimate) disagreement by attempting to rally anger and protest against the facilitators in the midst of an event in Community B and then cried foul when they were banned from the event for inappropriate behavior. I then saw numerous members of Community A actively promoting and justifying the company’s misbehavior by saying someone else acted poorly as well.

I am a father of three children. All three of my children, two girls and one boy, are very interested and proud of my professional and personal involvements. They want to be involved and learn what I do. I want to teach them the values of volunteering and believing in things greater than yourself. I want them to learn compassion and empathy.

How on earth can I teach them these things safely, productively, and successfully in Community A where such hostility, toxicity, and misogyny are so prevalent?

This really caused me great grief and anxiety as I know numerous admirable people and efforts in Community A that I think very highly of. What I needed to realize was that it wasn’t about them being part of Community A, it was about everything else that came along with Community A. Over the weekend I realized a simple but intensely black and white fact: I would absolutely not take anyone in my family with me to an event for Community A, while I would happily (and sincerely hope to) take them to numerous events for Community B.

If you are a community builder or even just a community member in any project, I encourage you to remember this comparison. Whether or not you agree with my assessment is irrelevant. It is my experience and not for anyone to say whether or not I experienced those things. I offer this as an encouragement to communities to consider what is accepted, promoted as well as what is abolished and never permitted to grow. Situations like these don’t just spring up overnight they take a long time to grow and spread. Not everyone will agree with each other so it is vital to a vibrant community to have respect and compassion as primary values.

Earlier today, after almost 9 years of official involvement, I deleted my Community A account and performed an extreme purge of my Twitter list. I realized I had been avoiding Twitter for quite some time and so much of my feed was filled with negative and sarcastic rhetoric. When you’re surrounded by that you start to think it’s normal and even start to participate in it. I can’t let that continue for me, life is simply too short.