Skip to content

Instantly share code, notes, and snippets.

View mackuba's full-sized avatar
🦋
Building things for Bluesky with ATProto

Kuba Suder mackuba

🦋
Building things for Bluesky with ATProto
View GitHub Profile
@mackuba
mackuba / bsky-hashtags.json
Last active February 14, 2025 06:01
Statistics of most popular hashtags on Bluesky in the last 30 days (2.6% of all posts include a hashtag)
{
"#art": 31687,
"#furryart": 21517,
"#furry": 20375,
"#nsfw": 12831,
"#1": 4572,
"#ListenToBlackVoices": 4341,
"#fursuit": 3950,
"#FogosPT": 3921,
"#ttrpg": 3378,
@mackuba
mackuba / bluesky_loader.rb
Last active July 3, 2023 23:01
Ruby script which loads posts from your Bluesky home feed and saves them to a local file
#!/usr/bin/env ruby
# Created by Kuba Suder on 25/04/2023
# Licensed under WTFPL License
require 'json'
require 'net/http'
require 'open-uri'
require 'set'
require 'time'
@mackuba
mackuba / Bluesky.swift
Created April 24, 2023 14:58
Basic Swift code to log in and send a post to Bluesky
//
// Bluesky.swift
// Created by Kuba Suder on 24/04/2023.
// Licensed under WTFPL License
//
import Foundation
struct LoginData: Encodable {
let identifier: String
@mackuba
mackuba / core_data_wwdc.json
Last active May 5, 2024 16:03
List of all WWDC talks about Core Data since 2010
[
{
"id": "wwdc2010-118",
"title": "Mastering Core Data",
"description": "Core Data contains a vast set of advanced features to help you better manage your data and evolve your application over time. Master the techniques for working with data in your application, from being more efficient to doing more in the database and changing how you store your data over time. Take your Core Data knowledge to the next level.",
"links": [
[
"HD",
"https://developer.apple.com/devcenter/download.action?path=/videos/wwdc_2010__hd/session_118__mastering_core_data.mov"
],
@mackuba
mackuba / creating_toolbar_buttons.md
Last active January 16, 2025 12:57
How to create toolbar buttons in AppKit

Creating toolbar buttons

Recently I was writing a post about NSButton styles on my blog, and when I got to the part about toolbar buttons (Textured Rounded), I realized that I actually had no idea how to create a toolbar in AppKit, so I had to do some research first. I found some help in this sample project from Apple and this project on GitHub, and then I did some experiments with different combinations of things to see what works where.

This could probably be a whole separate blog post on its own (and maybe I'll make this into one), but for now I've put it here to not make that main article even longer.

Here's what I've found:

There are a few different kinds of buttons you can put in the toolbar:

@mackuba
mackuba / download_wwdc.rb
Last active January 21, 2024 13:36
Script for downloading all WWDC videos from a JSON feed
#!/usr/bin/env ruby
# 06/2021: https://devimages-cdn.apple.com/wwdc-services/pb9e2d31/0CF104D6-F0B3-4AE8-B9F0-6F2D9F54A502/contents.json
# 11/2020: https://devimages-cdn.apple.com/wwdc-services/n233a99f/5D23F1E9-9551-4768-ACF3-E3920F9C572D/contents.json
# 5/2019: https://devimages-cdn.apple.com/wwdc-services/j06970e2/296E57DA-8CE8-4526-9A3E-F0D0E8BD6543/contents.json
# 8/2017: https://devimages-cdn.apple.com/wwdc-services/h8a19f8f/049CCC2F-0D8A-4F7D-BAB9-2D8F5BAA7030/contents.json
# 5/2016: http://devimages.apple.com.edgekey.net/wwdc-services/g7tk3guq/xhgbpyutb6wvn2xcrbcz/videos.json
require 'fileutils'
require 'json'
@mackuba
mackuba / fix_deezer.sh
Created November 2, 2020 14:39
Script to hide cookier banner in Deezer's Electron app
#!/bin/bash
set -e
set -x
ARCHIVE="app.asar"
WORKDIR="deezer_unpacked"
TMPFILE="/tmp/deezerupdate.txt"
cd /Applications/Deezer.app/Contents/Resources/
@mackuba
mackuba / note_compiler.rb
Created June 6, 2020 00:55
Code for formatting hand-written plain text notes into formatted HTML
class NoteCompiler
def build(text, info)
note = NoteContent.new(text, info)
note.compile_html
end
class NoteContent
def initialize(text, info)
@text = text
@info = info
@mackuba
mackuba / log-exclude-bots.rb
Last active September 29, 2020 17:40
Scripts for processing Nginx logs for Piwik
#!/usr/bin/env ruby
require 'optparse'
require 'set'
$buffer = []
$current_day = nil
$validated = Set.new
$invert = false