tl;dr I want Google Keep extended with WikiWords and file storage.

I’ve toured all the note-taking apps: Evernote, Simplenote, OneNote, Google Keep… and I’ve found them all wanting. These past few months I’ve gone back and forth between Keep and Tiddlywiki trying to figure out exactly what I want I think I finally realized what I want:

  • The speed of Google Keep when it comes to creating and saving new notes.
  • The speed of Pinboard when it comes to tagging.
  • The formatting facilities of Simplenote, which uses markdown. The version control is also nice.
  • The file attachment ease of OneNote when it comes to binary blobs. You can put anything in those notes.
  • For images… well, pretty much everything sucks, but I guess WordPress is a good starting point.
  • The interlinking ease of Tiddlywiki. WikiWords kick ass.
  • The ubiquity of Keep. It’s on your phone, your desktop, your tablet. Which goes back to it being fast.

Reading through this and apparently no one makes a version of Keep that has better text formatting, lets you attach images and decide where they’ll appear, while letting you travel from note to note via tags or WikiWords so you can remember the flow of though that led to that thought sequence.

Paper does not work for having to remember related thought separated by time and space. Plus writing for more than five minutes annoys me.

They say most programming projects start from a developer scratching their own itch. I guess it’s true.

A Debian Wifi Router: THE REBOOT

Just like a Hollywood movie, it’s time to do a reboot. Fucking around with the networking stack after every reboot got old real fast. But this time around it looks like the remake is actually better than the original.

The router is still my trusty Thinkpad T60. Other than a couple of scares because of its age it still works! Just need to replace the CPU fan sooner rather than later.

Sources for this were:

Yes, this writing assumes you know what you’re doing on the command line.

Install Operating System

Whatever your version of Debian is, make sure that it’s up to date and that you install the stuff you’ll need:

# aptitude install hostapd rfkill dnsmasq fail2ban

Switched away from BIND and ISC-DHCP because they’re a pain in the ass to deal with. Maybe in the future I’ll use them again, but for the time being… this will do the trick.

Something I keep doing and forgetting to document is changing sshd port from 22 to something else and switching from password authentication to key-based authentication. Fail2ban is useful in blocking people trying to force their way in.

Networking

I had to add both wlan0 and wlan1 manually. Why? Dunno. I suppose they only get added automatically when you’re installing Xorg, which I’m not. Here’s my /etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# Intel PRO/Wireless 3945ABG (Golan) Rev 02
#auto wlan0
#allow-hotplug wlan0
#iface wlan0 inet dhcp

# Qualcomm Atheros AR922X Wireless Network Adapter (rev 01)
auto wlan1
allow-hotplug wlan1
iface wlan1 inet static
    address 192.168.1.1
    netmask 255.255.255.0

iptables

Edit /etc/sysctl.conf and uncomment the line for ipv4 packet forwarding:

net.ipv4.ip_forward=1

Create /etc/network/if-pre-up.d/iptables with the following contents:

#!/bin/sh
/sbin/iptables-restore < /etc/network/iptables

Change permissions and make executable:

# sudo chown root /etc/network/if-pre-up.d/iptables
# chmod 755 /etc/network/if-pre-up.d/iptables

Create /etc/network/iptables and put the following in it:

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# eth0 is WAN interface
-A POSTROUTING -o eth0 -j MASQUERADE

COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

# Forward traffic from wlan0 (LAN) to eth0(WAN)
-A FORWARD -i wlan0 -o eth0 -j ACCEPT

# Service rules
-A INPUT -j ACCEPT

# Forwarding rules
-A FORWARD -j ACCEPT

COMMIT

This part remains unchanged from my the initial post. If you want it to do a more thorough job of filtering packets the Ars post is a good place to start.

dnsmasq

Edit /etc/dnsmasq.d/local.conf:

# If you don't want dnsmasq to read /etc/resolv.conf or any other
# file, getting its servers from this file instead (see below), then
# uncomment this.
no-resolv

# Never forward addresses in the non-routed address spaces.
bogus-priv

# If you want dnsmasq to listen for DHCP and DNS requests only on
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.
interface=wlan1

# Uncomment this to enable the integrated DHCP server, you need
# to supply the range of addresses available for lease and optionally
# a lease time. If you have more than one network, you will need to
# repeat this for each network on which you want to supply DHCP
# service.
dhcp-range=192.168.1.1,192.168.1.100,24h

# Set nameservers to use
server=192.168.1.1
server=8.8.8.8
server=8.8.4.4
server=208.67.220.220

Then restart the service with # service dnsmasq restart.

Much, much simpler than trying to configure both BIND and ISC-DHCP just for local networking. The options I included are pretty self-explanatory. If you're going to be assigning IP addresses on more interfaces, make sure to add them.

hostapd

The great big bad. If your card doesn't support Master mode, just stop trying now and go get yourself a plain old router.

For me these are the settings that work on my Atheros card. You will need to figure out what settings work on your own based on your hardware; you can query its capabilities with iw.

Edit /etc/hostapd/hostapd.conf:

# the interface used by the AP
interface=wlan1
# a means 5GHz, g means 2.4GHz
hw_mode=g
# the channel to use. Using 0 will make the AP use ACS to search for the channel with least interference
channel=0
# limit the frequencies used to those allowed in the country
ieee80211d=1
# the country code
country_code=US
# ieee80211n: Whether IEEE 802.11n (HT) is enabled
ieee80211n=1
# QoS support
wmm_enabled=1

# SSID (name of the AP)
ssid=SSID
# 1=wpa, 2=wep, 3=both
auth_algs=1
# WPA2 only
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP TKIP
rsn_pairwise=CCMP
wpa_passphrase=KEY

I tried using hw_mode=a but then OSX and iOS devices have a hard time connecting and staying connected to the network, so I switched bands to 2.4GHz. It's slower but far more stable. You'll want to configure the ht_capab command to better make use of your NIC.

After this is done, edit /etc/default/hostapd, and change the DAEMON_CONF line to match the location of the hostapd config file:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Make sure to test out the configuration file by actually running hostapd and making sure it runs:

# hostapd /etc/hostapd/hostapd.conf

If you run into issues here you'll have to determine where the issue is coming from:

  • Network card driver
  • Hostapd configuration

In that case run hostapd with one of the debug switches (hostapd -d /etc/hostapd/hostapd.conf) to figure this out. For maximum driver support the best option is to use Atheros-based cards using the ath5k, ath9k and ath10k drivers. Various cards from other suppliers will work, but will require fiddling with the configuration. They're worth a shot if you need to share Internet access with others around you quickly.

Reboot

Yes, you'll actually want to reboot at this point. Why? Because the point of a router is that when you turn it on everything works automatically, without you having to manually start a service. So reboot, and check that

  • All services come up by themselves
  • You're able to have the system act as a router
  • You're not having latency/DNS/throughput anomalies

That's pretty much it. It's a better setup than the first one and it's much easier to control with much less software installed.

Oh Google

I guess Google’s reputation is going down the drain.

Today there was this: Google employee’s anti-diversity manifesto goes “internally viral” at the company . The twitter comments for that Motherboard post on twitter are quite something.

I won’t link to any reddit posts. They’re always a toxic dumpster as it is.

Then today browsing my RSS feeds I found this: Google Introduces “Invisible” Gmail Messages!. I’ve noticed this myself.

So now in addition to being misogynists, they’re ableists (I hate using this term, but it’s true) and if a white male developer in his 20s thinks it’s not worth his time to fix these things… they’ll never be fixed.

A path ahead

I’m stuck in a rut. I thought it would take me longer to get to this point, but looks like that is not the case. I realized this fact after reading this article.

I have two jobs and both of them share


Started writing this, then I got fired from one of them. They would rather keep a bad white employee than a good brown one. You do you, Bite Squad.

I’ll tell you all stories of my adventures there.

Geany on Windows 10

Just don’t use it. Use anything else, but don’t use it on Windows.

Failed software from failed developers. It will waste at least an hour of your life and you still won’t get it to run after testing all compatibility modes.

I tried all versions and could not get it to save files. Even running it from command line with switches failed to provide anything useful. It fails silently, with no recourse.

These devs probably all think systemd is a good idea.

HTTPS

I done went and got SSL on this here site by way of Let’s Encrypt. It was pretty easy.

Not so easy was the run up to get it installed:

  • Update Debian with latest packages
  • Realize Debian is now on oldstable (jessie)
  • Update Debian to stable (squeeze)
  • BREAK EVERYTHING
  • Kinda-sorta fix it (aptitute still suicides on forking)
  • Run $ sudo certbot --nginx and marvel at how far we’ve come along

The last time I tries setting up SSL was a total pain in the ass, and it only got me a self-signed certificate that all of the browsers kept complaining about.

Yay for one thing taken off the bucket list. As an aside, I changed the permalink structure cos long URLs that use a date/time format are annoying and hard to remember. I got the idea for switching from here. I hear it plays hell with your SEO but I don’t particularly care about it here. Everyday at work I suffer from URLs that mean one thing for one person but something entirely different for someone else depending what they are doing.

Annoying as fuck, let me tell you.

Now I just need to figure out a plugin that will let me type stuff into the WP editor in markdown/commonmark, and not make the plugins kill themselves.

Let’s give it a shot

Many times over the years we’ve heard Windows users say they wish that third-party apps could update with Windows Update; that’s more or less what the Windows Store offers.

Source: Even if you hate the idea, Windows users should want Windows 10 S to succeed | Ars Technica

I’d be willing to give it a shot. I’ve seen others bitch about these things but the reality is that trying to keep apps updated on their own is a total pain in the ass, requiring the perennial use of batch scripts, or things more recent like ninite.com. I love ninite.com but its functionality is something that should not be needed at all.

Hell, even Linux has the equivalent of an app store. It’s just call a package manager. If Microsoft enabled a powershell interface the the Windows Store then it’s going to be really damn useful for sysadmins.

Heading towards el barranco

The government of Mexico has a new problem on its hands: what to do with the burgeoning ranks of state governors, current or former, that are facing prosecution for fraud or corruption. It’s a particularly sensitive problem given that most of the suspects belong to the governing political party, the Institutional Revolutionary Party (PRI), which ruled Mexico uninterruptedly from 1929 to 2000. It returned to power in December 2012 with the election of Enrique Peña Nieto. And it clearly hasn’t changed its ways.

Source: Mexico’s Economy Is Being Plundered Dry | naked capitalism

Loopdedoop

Now that I’m actually working at two separate “office” jobs, I’ve noticed one thing.

Nobody wants to train you anymore, for anything at all. No matter how easy or complicated the job is, no matter how many issues might be prevented by spending an extra few hours of learning (and this goes for both employees and customers), no one wants to do it.

This is why you see jobs with insane requirements like:

  • Fresh off school
  • 4 year college degree
  • 8 years of direct experience related to the job
  • To live and die by the company

They want people who already know how to do the job so they don’t have to spend money training them.

That’s before we even bring out non-legal issues like transportation, demeanor, clothing… and legal ones, like religion, race, and country of origin. Yes, companies will _never_ admit it but sometimes they don’t hire someone because they happen to be the wrong skin color for the company, whatever the reason

So on the training front it usually becomes the issue of having someone formally take charge of the training process. A lot of companies don’t do this. If there is a knowledge base that new employees can refer to, sure, but if the knowledge is locked away inside of people’s brains or in documents they won’t have access to.

This is what I’m dealing with now, and it sucks. It leaves everyone in a bad place. A lot of people have ideas on how to fix it, but until the actual company decision-makers actually change nothing will come of it.

After a while you just figure out how to do the job, this is forgotten, then the cycle starts over elsewhere.

Annoyances

“Can I get someone who speaks English?”
I do believe I am speaking in English. What can I do for you?

Just because you’re calling customer service doesn’t mean I’m outside the US.

“I want to speak with a manager”
Sure thing. Can I have your order so I can tell my manager what you’re calling about?
“No I want a manager now because I don’t want to talk to you”
Unless I obtain this information I cannot transfer you to a manager. Anything else?

Give me something so I can help you. Otherwise I’ll tell you to fuck off.

“I want a cut”
We all want things. Do one more order and you’ll get your cut.
“NO I WANT A CUT NOW”
You already accepted the order. Finish it and you get cut. Otherwise you get written up.

These people are the ones doing the work, but really, most of them are idiots.

“Your menu is out of date and all the prices are wrong”
I can fix the prices on this order, have you sent your menu in?
“WE DON’T HAVE TIME FOR THAT”
Do. Not. Yell. At. Me.

There’s a reason why people don’t order from you anymore, dear restaurant owner.

Not getting paid enough for this

At work we use the G Suite for most everything and it works okay — for the most part. The problem is that we’re starting to have so much documentation that is just frozen in a spreadsheet or document that is just… out of sight, where no one pays it attention ever again.

I’m having a devil of a time convincing someone, anyone that having something other than the mess of documents we have shared between all of us is something worth having. Our current system simply doesn’t allow for detailed notes to be kept on all the parties involved for what we do: The sellers, the customers, the employees, so we end up just having the knowledge be stored on someone’s mind, where it can’t be efficiently shared.

And when that person leaves the knowledge is lost.

So now I’m wracking my brains to figure something out that we can all share because what we currently have is simply not working. A wiki is starting to look like the best idea but I can’t simply go and run it off a server somewhere. I want it to be at least be allowed, because I don’t want to lose my job trying to improve the company. It is confidential information, after all.

I’ve seen people lose their jobs for less than that.

Who’d have thought? 

@morganmpage: Ten years ago I would not have predicted that geek culture would plunge the world into political chaos.

I stopped feeling like one of these people long ago… Not because I grew out of gaming culture, but because I noticed those tendencies and could not put a name to them.

That and the simple lack of available time for gaming. Work is how you afford to have gaming time. The entire thread is so worth consideration. 

Coincidence: Software development

This post has been doing the rounds lately. I didn’t pay it much mind, filing it under “at last one developer sees the wrong of his ways.”

I read this, by Cory Doctorow, a few days later. It’s fiction but you betcha something like this will happen. It already may have but if so it has been kept quiet.

Then I found this article on Business Insider.

So yeah, software developers are definitely making the world a worse place and no amount of ethics will fix it. What a developer in the US doesn’t want to do, the company will find someone in Asia or Eastern Europe to write. Market dynamics as applied to ethics.

IoT, anyone?

Extra! Extra! Fake news are real! Extra

In addition to doing more to weed out lies and false propaganda, Facebook could tweak its algorithm so that it does less to reinforce users’ existing beliefs, and more to present factual information. This may seem difficult, but perhaps the Silicon Valley billionaires who helped create this problem should take it on before setting out to colonize Mars.

Source: Mark Zuckerberg Is in Denial – The New York Times

El Zuckerberto wants all the money he can have so he can be on the third ship to Mars. The first one made it there, the second one brought all the toys, and the third is for the rich people who want off the planet.

At least on twitter it’s easy to look up and see what the others are talking about, even while mired in abuse.

My job is managing being interrupted

Last year I turned off all my notifications. I stopped booking meetings. I started living asynchronously.

Source: Live asynchronously.

My job (and that of my coworkers) is being constantly stopped from finishing the task we are working on. I’m told that I’m really, really good at it, but I only got that way by working in the kitchen, where the job is, again, being interrupted.

But the cognitive load is immense, and intense. I often get home feeling more tired from working at the office job for 6 hours than from working in the kitchen for 12 hours.

And no, I don’t get breaks at either job unless it’s slow.

You’re just having a taco de ojo at this point

Services like Tinder and Hinge are no longer shiny new toys, and some users are starting to find them more frustrating than fun.

Source: The Rise of Dating-App Fatigue – The Atlantic

In my case it’s not app fatigue, it’s more of a life fatigue. My work schedule doesn’t help any, as the kind of gal I like usually has a work schedule that is exactly opposite mine.

It is one of the things that killed my last relationship, after all. The upkeep is just so, so hard.

Someone get me her book?

Since we seem to agree on the fact that Trump is a garbage monster, there’s no need to even go there. Instead, let’s talk about Hillary. First, allow me to reframe your assertion that she is monumentally corrupt. No, no. The system is monumentally corrupt, and Hillary is masterful at gaming it. I respect that. I don’t see it as a character flaw, because despite what Fox News would have you believe, Hillary really does have a conscience. She is a dyed-in-the-wool progressive who still manages to get shit done in this grotesque plutocracy of ours.

Source: Dear Coquette

Coquette is the best.