See https://alexbarry.net for projects I’m working on, and contact info.

Also check out github.com/alexbarry

  • 1 Post
  • 13 Comments
Joined 1Y ago
cake
Cake day: Jul 03, 2023

help-circle
rss

I don’t think it’s only you. I remember him saying (and even tweeting) that 2015 will be the last FPTP election if the liberals were elected. I was younger at the time but I remember a lot of people reluctantly voted for him instead of the NDP just to finally end FPTP and be able to choose the NDP as their first choice in the next election (but still choose the liberals as their second choice, to keep the conservatives out). Further reading for anyone interested: https://en.wikipedia.org/wiki/Vote_splitting

Then they won, claimed that they couldn’t find an alternative that everyone liked, and apparently that was it.

My understanding is that many people would have been happy with “anything” besides FPTP, but weren’t able to agree on their first choice? …surely it’s not that ironic? Or maybe there’s more to it than that?

Anyway overall the liberals may have still been the best choice… but this wasn’t some minor promise that he made. I think this is what was most important to a lot of people. Err… I think? No one seems to talk about it now.

edit1: added link to tweet

edit2: This article seems to summarize the timeline: https://globalnews.ca/news/3102270/justin-trudeau-liberals-electoral-reform-changing-promises/

edit3: this seems more helpful: https://en.wikipedia.org/wiki/Elections_in_Canada#2015_federal_election


Message me on matrix in #alexgames:matrix.org if anyone wants to try playing a multiplayer game together :)

(I’m not actually very good at chess or go)


AlexGames: simple Lua games in a browser with multiplayer support, self hosting friendly.
**TL;DR**: try my Lua web games here, see github for self-hosting instructions: https://alexbarry.github.io/AlexGames Hi all, here's a hobby project I've been working on: I wrote a bunch of simple Lua games, compiled the Lua interpreter to web assembly, and defined a simple API to draw on a canvas and handle input. It all builds to static HTML/JS/WASM, except a few hundred lines of python for a websocket server for multiplayer. I recently added some dockerfiles so I think it should be easy to self host. Here is the web version on github pages: https://alexbarry.github.io/AlexGames/ , and the [source on github](https://github.com/alexbarry/AlexGames) (self-hosting instructions in the README). I'll list some of the games: * **local/network multiplayer**: chess, go, checkers, backgammon, gomoku * **single player or network multiplayer**: minesweeper * **single player only**: solitaire, "word mastermind"[1], "endless runner", "fluid mix", "spider swing", "thrust" [1]: it may not technically be multiplayer, but my partner and I enjoy picking our own hidden word and sharing the puzzle state as a URL or just passing a phone to each other. Part of my motivation is to avoid ads on mobile games, and to be able to play different multiplayer web games with friends without having to get them to make an account and all that (just share the generated URL, it contains a multiplayer session ID). I also like the idea of having my own private web games server, and not having to be reliant on some service that might eventually get enshittified. I figure that if I can throw together a similar game in a few hundred lines of Lua, then no one should have to deal with full screen ads or pay ~$10 to play them. Especially since most mobile games that I like are simple and I only play them for a few minutes at a time, maybe only a few times per week. Self hosting isn't necessary to try it out, but without SSL it should just be a simple one-line command to host the HTTP and websocket server with docker compose. For SSL support it is a few more steps, I added steps to the README: one command to build the static HTML (so you can copy it to your web hosting server, which should already take care of SSL), and another to host the websocket server, which can have your SSL certs passed as parameters. But you don't strictly need the websocket server, it should just fail to connect after a few seconds and then you can play the games without network multiplayer. You can even use my websocket server and your own static HTML, just add `&ws_server=wss://alexbarry.net:55433` as a URL parameter to your own URL. I haven't self hosted much on my public server, so I'd love to hear feedback on how to better handle SSL certs. Ideally you could just choose to not use SSL for your websocket server, but firefox at least prevents you from connecting to a websocket server without SSL if you're using SSL to visit the page itself on the same server. (On a local network without SSL it's fine, though) Some features that I'm proud of: * the **network multiplayer** works pretty well, I'm pleased with **websockets** (previously I was hoping to get WebRTC working but I didn't have much luck). On the wxWidgets and Android prototypes I had a normal socket server working too, but I've focused on the web version since it's good enough * an **English dictionary for word puzzle games**. (aside: loading ~220k English words as javascript strings and a javascript array took like 12 MB of browser memory or more, but I got it down to ~6 MB by moving the dictionary to C managed memory) * **state sharing via URL**: for most games I serialize the state and then you can export it as a base 64 string in a URL. This is useful to keep playing on a different device, send a puzzle that you liked to a friend, or for "word mastermind", to choose your own word and get your friend to guess it. * **built in autosave, undo/redo, and browsing previous saved states**. I used the same code to render state previews that I wrote to render the games for normal play, so all a game has to do is implement state serialization, implement a few APIs to get that state, and call "save_state" whenever the player makes a useful move. Then games can simply call a few lines to add an "undo" and "redo" button, and those can call a one line function to fetch the previous or next state. (I'd like to add a full history tree at some point, but for now if you undo many times and make a new move, you lose the moves that you un-did ("undo-ed"?)) * **playing arbitrary games as zips of Lua files**. While the self hosting community might not need this much (since they can just add their own games to the source and rebuild), I figured many people might be interested in writing a game without having to build and host my project. So I added support for unzipping bundles of Lua source files and storing them in the built in emscripten filesystem in the browser. I added an example game and an API reference, see the "Options" menu and the "Upload Game Bundle" section. Let me know what you think! I'd love to hear feedback, or get new game contributions or bug fixes / features.
fedilink

To clarify on this: even the people who use gibberish as their password and don’t store it and rely on password resets via email are actually somewhat safe if their email is also highly safe. Maybe their password strategy for CRA implies they don’t take their email password security seriously either… but still, my point is just that “at least as secure as your email” can be an incredibly high bar if you do it right


Yes but you’re free to use an email provider which also supports security keys, which gmail and proton mail* do. I understand that the CRA needs to accommodate the average person who doesn’t care about security, but I think everyone in this thread appreciates when they also cater to people who care deeply about security and are willing to use strong unique passwords in a password manager and security keys or at least TOTP.

  • it seems like they require keeping TOTP enabled because their mobile apps don’t support security keys. Meh.

This may sound like a wild fantasy to some, but the US IRS seems to have some partnership with ID.me which supports security keys. But I’m impressed that the CRA supports TOTP before major banks so maybe this could happen.

Granted they also have separate logins for state income tax and California is… well let me just say that I’m grateful that the CRA doesn’t force you to reset your password every 4ish months. (California state income tax (FTB?) does).


Ah, I hadn’t heard of the SSL issue, thanks for sharing!

I’ve noticed that Tangerine only allows for a 6 digit pin, but I think they might also allow for a security question and SMS 2FA? I started signing up with them and gave up when they required a Canadian cell number (I hadn’t yet switched due to high costs, but recently they’ve become surprisingly reasonable—ignoring roaming) and I saw the 6 digit pin password requirement.

I think it was also BMO that a friend told me required a maximum 8 character password until very recently?

Anyway overall, thanks for reassuring my suspicion: I should just pick one of the banks and not let “perfect” (or even “decent”) be the enemy of “almost adequate but not great”.


Thanks, I suspected this (I only see “authenticator app” when I log in on a new device or periodically, but I wasn’t sure.

Related: for finance related services like Questrade, I’ve stored my TOTP keys on a U2F key, Yubico in my case. Besides the hassle of managing physical keys, is there any drawback to this approach? I’m slightly worried I’ll lose all my keys in a house fire or something, but I assume there’s a recovery option.


Unfortunately I think this is the norm with big banks in Canada, and it is similar to a credit union in the US from when I briefly lived there. Security seems to be a second priority to people losing access (presumably only briefly, since they have brick and mortar locations everywhere).

Wealthsimple and Questrade seem to support TOTP but I’m not sure if you can still bypass it with SMS. I don’t think so but I haven’t dug into it.

I’ve used CIBC before and they also seem to require keeping SMS 2FA enabled. Also they send me fraud alerts over SMS, “respond Y to authorize this suspicious transaction”, and I’m dreading the day where I have to enable roaming while travelling just to send a text. They send push notifications through the app to login on a new device though, so maybe in 10 years they’ll do it for transaction approval too.

Also aside about TD: is there really no way to download a CSV file of all your transactions? My partner uses them and I think we were limited to 18 months, and may have even had to download each much separately (luckily I can use use a program like cat to workaround this, but that seems like a pain for most people). CIBC has irritated me in a lot of ways but I think I can download transactions from back to 2012 when I first opened my credit card, maybe earlier.

Do you or anyone know about other big banks? My partner and I are looking into a joint account and I want to be able to download all transactions to CSV. Ideally we could get TOTP only (no SMS 2FA) but I’m not counting on it.


Thanks, I edited my comment. No idea how I missed that it was 30 seconds for all this time. It looks like my own TOTP codes are even 30 seconds so I don’t know what I was thinking.


It looks like you may be able to disable SMS 2FA entirely? It’s unclear to me (edit: if this is a viable option):

Can I stop getting Short Messaging Service (SMS) messages for CRA’s Multi-factor authentication?

Yes. You can text “STOP” to 27223 or reply “STOP” to the message containing your one-time passcode to stop receiving SMS messages to that telephone number in the future. However, it is important to note that CRA’s Multi-factor authentication (MFA) service is mandatory and a passcode is required to sign in to the CRA’s sign-in services. Texting “STOP” will prevent your telephone from receiving an SMS message with your passcode in the future. Without the passcode, you will be unable to access the CRA sign-in services using this option and will need to choose an alternate MFA option to use. This option applies only to Canadian telephone numbers.

I’ll probably leave it enabled anyway just in case (given that I only log in to CRA once per year or so), but I applaud the potential of relying on TOTP only, and not allowing SMS 2FA as a “back door”.


Also big pro is that they allow third party TOTP apps instead of making their own like TD and even Steam (bundling it into their main app).


Not OP but I wanted to read more (edit: about CRA’s approach to TOTP, before getting the chance to try it myself), I searched and found this: https://www.canada.ca/en/revenue-agency/services/e-services/cra-login-services/multi-factor-authentication-access-cra-login-services.html#toc3

What is a third-party authenticator app?

A third-party authenticator app can be installed on an app enabled mobile or desktop device to be used for MFA. The app store offers many free third-party authenticator app options to choose from. Users will need to download an app that is compatible with the CRA sign-in services.

Using the app, the user scans a QR code with a mobile device when prompted. If unable to scan the QR code the user can manually enter the setup key the CRA provides into the app. The app will now be set up and the user will not have to complete this step again.

The app will then generate a 6 digit Time-Based One-Time Passcode (TOTP). When signing in to the CRA sign-in services users will be required to enter a one-time passcode provided by the app. For security, the app will generate a new TOTP every 30 seconds.

Edit: This is awesome, I’m so glad I can switch away from SMS 2FA on yet another service (and such an important one). But I am curious about a few things, see below.

Some thoughts:

  • (edit: my bad, I thought 60 seconds was more common but I checked my other TOTP and they seem to be 30 seconds) why is it 30 seconds instead of 60 seconds? I’m pretty sure every other TOTP I’ve seen is 60 seconds. What is the benefit of this? Someone has 30 fewer seconds to read the code over your shoulder and log in on their device?
  • TD offers a passcode generator app, but it seems like you can’t disable SMS 2FA, so if you’re worried about SIM jacking then you are out of luck. Presumably they’re worried about people losing their device with the TOTP secret, but I usually back that up on multiple devices and have recovery codes. I think all the big banks are similar. Edit: I’m curious to know what CRA does, but I’m away from my PC right now.
  • nit: the previous login requires you to re enter the code from SMS 2FA or the grid thing every 8 hours I believe. But most other services seem to let you persist a cookie on the device for 30 days or so, presumably because cookie theft isn’t a huge risk, and because entering your password alone is enough to prevent other people with access to your computer from accessing your sensitive CRA account

Anyway, sorry for the negativity. This is a great step and I shouldn’t focus on negative things. I just hate how accounts I don’t care much about like Facebook (and formerly Runescape) accounts seem to be more secure from malicious logins than my bank and possibly CRA accounts.


My raspberrypi works great as a backup git server, as long as it doesn’t fall off my table and get stepped on or rolled over by my chair. I also host a few static webpages on it for cooking recipes.

It actually has better uptime than my desktop, which I occasionally boot into windows when I (rarely!) encounter a steam game that doesn’t work well on Linux.

It does not work well as a DLNA server though, though it seems to manage lower resolution videos okay. I think I tried both tried reading videos from the SD card, and a USB external hard drive.