Synergy Stop Job Problem

On Linux I was plagued with a stop job on synergy.service for 90 seconds on every reboot/shutdown. To make it stop faster do this:

sudo systemctl edit --full synergy.service

Then add this line under [Service]

TimeoutSec=6

The Case For Negativity

One of the pillars of the scrum framework is transparency. When gathering in an organization to accomplish some goal, openness of that kind necessitates honesty. Honesty sometimes necessitates negativity.

From what I’ve observed, the pendulum has swung to positivity in the workplace to a fault. This is hurting our ability to be open. I understand the impetus to lean into a happy-go-lucky, “go team!”, “rah rah!” persistent attitude. It has several desirable affects from the perspective of an employer. It gives the appearance of a warm and caring environment where everyone belongs. At a surface level it is inclusive and inviting. My guess is that for most people this helps retain them at a company. A sense of belonging is a key grip to hold when work gets otherwise untenable. In the mind of the employee, the organization becomes a functional family that they chose and were accepted in to.

The downside is that the real work doesn’t happen where the sun shines.

Something that is so often and easily lost in an office is that work is dirty, hard, and frustrating. It hurts and takes it’s toll on you. And that’s OK! That’s what’s supposed to happen when you are creating something from nothing. Part of you is necessarily sacrificed. There is a real cost to how you spend your time. If that cost is not acknowledged, you are more apt to waste it creating something you don’t believe in.

This is where the illusion needs to be bolstered by delusion or it falls apart. How many people love their team/coworkers/environment far more than they care about the function of the organization they are a part of? I’d wager more than would be willing to admit to it. Things fall apart for those in the organization with duties that directly translate to the core mission of the organization – the morlocks that keep the machines running. For these people, glossing over the pain is unacceptable. Being critical, cynical, or blunt is essential to the success of producing anything of quality. I challenge you to name any worshiped captain of industry that didn’t embody these traits.

The Few

I have observed the Pareto Principle at work in most companies, especially larger ones. A majority of the work (or architectural direction, at a minimum) is the product of a few individuals. Again, via observation, I have found these people to trend negative in demeanor. Work isn’t fun. It’s challenging, but rewarding. In my mind there’s a segmentation of time well spent between fun/relaxing time and productive effort towards a goal. Both are necessary for a fulfilled life. Only one of them is necessary for creating almost anything tangible.

The success of your organization may hinge on a few people, but the success is shared. Give people a pass on coming off a bit surly if they are getting work done. Forcing a smile or exaggerated enthusiasm costs time and energy. Both are precious resources that need to be focused as best as possible, especially in today’s distraction heavy work environment. Swearing has been proven in studies to increase pain thresholds. It can be a tool to help tolerate frustration and difficult tasks.

Screw you then.

Does this mean that if you are productive you have license to be a complete jerk? No. There is the counterweight of respect to keep things orderly. But respect does not necessitate a smile or even any positivity at all. At work we’re all a team aiming at a goal. That’s bond enough.

Manjaro + Dotnet Core + Rider

I had a bit of trouble getting Rider set up initially to handle my dotnet core projects on Manjaro. Rider wouldn’t open the projects complaining about not being able to find SDKs like razor and web. My first stop was Settings->Build, Execution, Deployment->Toolset and Build. I messed around with those settings to no avail.

Here’s what did work. I added this to ~/.bashrc:

export MSBuildSDKsPath=/opt/dotnet/sdk/$(dotnet --version)/Sdks

I ended up with these settings in Rider:

Pointing to the MSBuild.dll within my dotnet installation seemed to be the kicker, over the one that came with mono. But I also changed my dotnet core executable path to /opt/dotnet/dotnet from /usr/bin/dotnet at the same time. Once I got it working, I didn’t want to mess with it anymore, so here it sits.

Conky

A reddit post clued me in to Conky, a system monitor that grafts on to your background wallpaper. I played around with a configuration, and I have something that I’m pretty happy with.

To install:

sudo apt-get install conky-all

Here’s my config. You can place this in the file ~/.conkyrc (you’ll have to create it).

use_xft yes
xftfont 123:size=8
xftalpha 0.1
update_interval 1
total_run_times 0

own_window yes
own_window_type conky
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_colour 000000
own_window_argb_visual yes
own_window_argb_value 0
own_window_class override

double_buffer yes
#minimum_size 250 5
#maximum_width 500
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color ffffff
default_shade_color red
default_outline_color green
alignment top_right
gap_x 0
gap_y 0
no_buffers yes
uppercase no
cpu_avg_samples 2
net_avg_samples 1
override_utf8_locale no
use_spacer no


minimum_size 0 0
TEXT
${voffset 1}${offset 12}${font Ubuntu:size=10}${color FF00AA}HD ${offset 9}$color${fs_used /} / ${fs_size /}${offset 30}${color FF00AA}RAM ${offset 9}$color$mem / $memmax${offset 30}${color FF00AA}CPU ${offset 9}$color${cpu cpu0}%

or for lighter backgrounds:

use_xft yes
xftfont 123:size=8
xftalpha 0.1
update_interval 1
total_run_times 0

own_window yes
own_window_type conky
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_colour 000000
own_window_argb_visual yes
own_window_argb_value 0
own_window_class override

double_buffer yes
#minimum_size 250 5
#maximum_width 500
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color 666666
default_shade_color red
default_outline_color green
alignment top_right
gap_x 0
gap_y 0
no_buffers yes
uppercase no
cpu_avg_samples 2
net_avg_samples 1
override_utf8_locale no
use_spacer no


minimum_size 0 0
TEXT
${voffset 1}${offset 12}${font Ubuntu:size=10}${color FF00AA}HD ${offset 9}$color${fs_used /} / ${fs_size /}${offset 30}${color FF00AA}RAM ${offset 9}$color$mem / $memmax${offset 30}${color FF00AA}CPU ${offset 9}$color${cpu cpu0}%

Star Citizen Launcher Issue

I decided it was time to check out Star Citizen for Alpha 3.0. I created an account, paid my money, and downloaded the launcher. I was greeted with this:

Electron! Cool! OK, so what now? I googled around a bit and searched the forum to see if anyone else was experiencing this. Nope, just me.

I tried uninstalling/reinstalling and rebooting in various combinations. I tried it on another computer in my network and it worked normally.

What should have been obvious somehow wasn’t. I went to bed.

With a fresh mind I reviewed the evidence. The error was screaming the answer to me the whole time.

Failed to load resource: net::ERR_CONNECTION REFUSED http://localhost:9000/app/cig-launcher.js

  1. The launcher was trying to load a JavaScript file from localhost:9000.
  2. Chrome dev tools were open

All of a sudden it clicked – I’m in development mode! Doing node development on that machine I had set the environment variable NODE_ENV to Development. Removing that environment variable was the solution.

Synergy 2 Beta Quick Help

Synergy 2 Beta is cool, and a good direction for Synergy to go, but it is a Beta. These are some things I’ve learned along the way to help make things work properly.

On linux, you have to start the synergy service manually. Before I start Synergy, I usually run:

sudo pkill synergy
sudo pkill synergyd
/usr/bin/synergyd &

To check the error log, hit the tilde key.

On windows, restart the service (sometimes several times). I just right click on the taskbar, go to Task Manager, go to Services, find Synergy and restart it.

When all computers see each other, are green, but nothing works – hit F12 on the “server” computer. this forces it to be the server and seems to kick things working.

Bash Aliases

I don’t like typing “nautilus” to open the folder explorer from the terminal. Mac’s “open” command is shorter and makes sense to me. To get the same command in Ubuntu, we just have to add it to bash aliases.

Open up ~/.bash_aliases to be edited. I usually use nano.

nano ~/.bash_aliases

Add this line

alias open="nautilus"

When using the terminal, to open nautilus in the current folder, you can run this command

open . &


The “&” detaches the process from the terminal and is optional.

Doing It Right The First Time

Reflecting back, the only time I’ve ever done something right the first time is when it wasn’t my first time doing it.

As a contractor, I encounter eerily similar situations at most places I involve myself with. Even businesses not in the same industry. Most businesses are trying to solve similar problems across multiple domains with slight variances. This is exactly the reason learning design patterns is a good investment of your time.

If I’ve ever come into a new project and nailed it on the first try, it’s only because I recognized the similarities from a previous project, employed the things that worked, and avoided the things that didn’t.

From the perspective of full time employees, it’s a challenge to be allowed to fail a few times at one employer. A contractor can have a few “challenging” gigs and then stumble upon the perfect redemption project for a win. A full timer would have to get a rare blessing from above to rewrite something for the third time.

Build something small and scale it

The axiom “build something small and scale it” is a great strategy. The problem is knowing exactly how something will scale. Users have a way of turning your well thought out schema on it’s head. Still, something small is far easier to rewrite. Build something small, release something small, rewrite something small, release a rewrite of something small, and scale it is not as fluid off the tongue. It’s more accurate, though.

Cursor Jumping to Upper Right Corner – FIX

I had an issue that came about suddenly while working.  Every now and then my cursor would jump to the upper right corner and lock to the taskbar.  I couldn’t find any pattern to explain it.  I tried:

  • activating/deactivating the trackpad
  • swapping my mouse out
  • cleaning my touchscreen
  • rebooting
  • deactivating extensions

The issue persisted.  I noticed that my touchscreen wasn’t responding, so as a last step, I tried temporarily deactivating my touchscreen.  The problem then went away.  After a reboot, my touchscreen worked properly and the cursor no longer jumped.  I have no explanation as to why, but here is how:

xinput --list


That will give you a list of inputs with IDs. The touchscreen entry should be pretty obvious. Mine is ‘Synaptics Large Touch Screen’. Note the ID. It should be a single or two digit number.

xinput disable {#}


(Where {#} is the ID number from the list.

My VirtualBox Drive Was Too Small

I do this just about every time. I don’t allocate enough drive space that my virtualbox will need. Here’s how I fixed it this time.

I have a windows development box that I allocated 40gb to as a dynamic virtual disk. I chose the “.vmdk” format, which isn’t so straight forward to expand. Had I chosen VDI or VHD, I could have used the “VBoxManage modifyhd” command, but that was a no go. I ended up with this error:

VBoxManage modifyhd windows.dev.vmdk --resize 819290
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize medium operation for this format is not implemented yet!

 

What Did Work?
I created a new virtual disk (dynamic) at the size I wanted – 80gb. This time I chose VDI. Then I ran:

VBoxManage clonemedium windows.dev.vdmk windows.dev2.vdi --existing

 

After that completed successfully, I went back into the settings of my windows.dev virtualbox, removed the old hard drive, and changed the new one to SATA Port 0

I could then boot up to windows. The last step was to go into “Disk Management”, right click on the partitioned part of the drive, and select “Extend Volume” to add all the new space.