home

potential projects for apprentices and I to work on

Or should that be "apprentices and me"?

Update: April 3, 2019. GitHub, etc. and the "quick / positive email check" are still high on my list. After that, I add newer stuff.

GitHub and / or other library tasks

If just one apprentice were interested in my various projects, I might be motivated to put more or most or almost all of what I do on GitHub. I wouldn't mind if an apprentice would look into some of the nitpicky features of version control. The XKCD commentary on Git is largely true given a bit of professional experience with it.

More broadly, it would be great if an apprentice would do more general library tasks--keeping track of stuff, commenting, organizing, and whatnot.

This is of course in addition to helping with dev, or largely doing the dev.

quick / positive email check

This checks GMail and outputs a count of unread messages. The purposes of this is that even to this day, it's hard to be sure on a phone when a new email has come in. I'm almost certain I still have this ambiguity in Android 8.1.0. Swiping down in the GMail app is not at all definitive, and the phone seems to be erratic at giving GMail notifications.

I use it myself all the time--sometimes 20 times a day.

You can run the check for yourself, but, if I were you, I'd have a lot of questions before "signing up." Answering those questions is one possible task for an apprentice.

Here are some other possible tasks:

quotas

The qutoas are necessary in part because I found it way too easy during development to go into an infinite loop. If it happens during development, it might happen live. I'd like to adjust the quotas a number of ways, though. For one, I did all sorts of machinations in the JavaScript to account for how many accesses a user needs when getting OAUTH. I now tend to think all that should be done on the server side, and the JS should be simplified. Also, the quotas should be both absolute and by session and by pre-session where apt.

privacy

I've already done encryption, and the server does not keep enough data to access a user's account. That's a start but not enough, I don't think, for others to use it.

It should be possible to do the same thing via client-side JS. That would probably be necessary for anyone to use it. It's worth looking into.

Is there another option besides metadata permission? I really doubt "label" permission is enough, but I'm not certain.

If the check must be done on the server-side, we should have a very convincing way for users to see the running source code, to demonstrate that we're not keeping any data, and we're only looking at the count.

April 3, 2019 batch

live weather data

Over a year ago, I wrote a little application to process APRS weather data. I added the "lum" column from "raw" APRS data very recently. I'd like (someone) to rearrange and modify the columns. For those interested, I'll give the links on how to decode / find all the data.

ticket sales / tour map, etc.

Last year I used a feature "email me when tickets are on sale." It either didn't work or the email went to spam, and I didn't think to look until it was too late. So this year I got OCD and wrote my own script to scrape the site and tell me when tickets are on sale. The tickets have since gone on sale--my application worked perfectly--but it could use some refinements for next year.

Also, it would not be hard to do better tour lookups and provide a better service than the official site does. There are some things about this that I won't discuss on a public web site.

auto-processing sealed indictment tables

I'm creating the tables by hand. That should be automated. I have a new batch of data from March 31, 2019 that I haven't posted yet.

WikiLeaks downloads

I learned some useful stuff on how to download WikiLeaks emails that should be published much more conveniently than it is. I conveniently located that stuff within the 3GB ZIP file, which is kinda stupid in hindsight.

I shut the torrent off days after I posted it. That's a whole 'nother issue to solve. I need to change that page.

to do list

I want to create my own to do list app. It would combine features of a calendar and a list. First I want it to show me the ranges of dates during which I have to act upon certain bills--transfer from savings to checking, withdraw cash, confirm that I've paid it, etc.

extract (YouTube) links from emails and create playlists / organize the info

Sometimes people send me lots of emails with YouTube links. I'd like something to extract the links and create a YouTube playlist. Next I'd like something to organize videos.

posted Feb 25, 2019

IPv6 (128 bit) processing

During some other projects, which I will hopefully, eventually list, I noticed that there weren't a lot of examples for 128 bit IP address processing. I've cobbled together some code that could be unified as a solution to a number of related problems.

For example, PHP handles 128 bit addresses to a degree, but I'm pretty sure it (v 7.2) has no native "big int" processing. You can't easily compare IP ranges in PHP: "Is this address within this range?" is hard to do. Then there is going from CIDR references to ranges, etc. You can't break the address down into 2 X 64 bits because it seems that PHP doesn't "do" unsigned versus signed. (That needs some confirmation.) So I finally broke addresses in to 4 X 32 bits. I've written the code for comparisons and storage in MongoDB.

"Whois?" processing

Along the same lines, I wrote code to process the results from a number of "Whois" registries around the world: ARIN, RIPE, APNIC, AfriNIC, etc. One goal was to find the originating country of a given IP address.

web server access log processing

Here is some of what I've done, but that's behind. Beyond that, I identified how many hits are me: quite a few. The next step is to identify hackers.

There is a question, of course, about what already exists as open source. Ideally I'd like to do quite a bit of processing around this.

parallel processing in PHP

My original web server access log script took something like 60 - 90 seconds to run, so I started looking into parallel processing in PHP. It was surprisingly difficult: it seems very hard to get background shells to work. (Come to think of it, I didn't try "fork" / pcntl_fork(). I should probably do that, or an apprentice.) "The web" kept talking about Gearman, so I tried it. I believe I have it working, but there were a number of non-obvious elements that deserve a "how to" writeup.

I'm curious if hyperthreading is useful or not in this context. Or does it slow things down?

file sharing peer analysis

Related to a bunch of these is my project to keep track of my file sharing throughput and what country my peers were coming from. I more-or-less exclusively share Ubuntu installs, which are of course free and open source.

Amazon Web Services EC2 and other how-tos

You're welcome to see what's out there, but I think EC2 setup needs some how-tos. I've been thinking about this for years, but I add it next because a potential apprentice has an S3 account, which means he has access to all the AW Services.

Stratego

I wrote the JavaScript rules and movements of Stratego in about 2011. I'd like to write a system to allow people to play remotely.

Such a thing may well exist, but is it full of ads and open source?

a mini CMS

I'll elaborate later.

page history

  1. 02/26 9:59pm - Stratego and mini CMS added
  2. 8:42pm - added AWS EC2 how to idea
  3. 6:06pm - starting to write about 128 bit IPs and beyond. Uploading through peer analysis around 6:21pm
  4. 2019/02/25 4:59pm EST (GMT -5 / New York / Atlanta) - page ready for first post

HTML5 valid