# Jamie "Dubs" Wilkinson: all blog posts Jamie Wilkinson is an Emmy Award-winning software developer and entrepreneur in New York City. Co-founder of Know Your Meme, VHX and FAT Lab, now co-founder and CTO of Glif. Site index: https://jamiedubs.com/llms.txt --- # git-friendly 1.2.0 Date: 2026-10-18 URL: https://jamiedubs.com/blog/git-friendly-1-2-0/ git-friendly is still just five simple shell scripts: pull, push, branch, merge, and stash. It’s had some updates over the years. Here are some highlights: pull knows about uv, Bun, and pnpm, alongside npm, Yarn, Bundler, and Composer. It picks the tool from your project’s files. pull and merge let Git handle stashing. If a rebase hits a conflict, tracked edits stay shelved until you finish it. Untracked files stay put, and failed branch switches stop the merge. Install with Homebrew on macOS or Linux: brew install git-friendly/git-friendly/git-friendly branch lists recent branches with their upstream and last commit, and can delete several at once. Bash and Zsh both work; the scripts run in Bash. Tests cover all five commands on macOS and Linux. GitHub Actions checks changes, and releases update the Homebrew formula automatically. The old tap still works. If you’re using it, say hi. I’m curious who’s out there. Thanks to Artem Sapegin and all the other contributors!!! --- # scapectl, the headset app Fractal should have made Date: 2026-10-12 URL: https://jamiedubs.com/blog/scapectl/ I bought a pair of Fractal Design Scape wireless headphones, couldn’t get my Mac to switch its audio over when I put them on, and returned them. My friend Charlie Tran was more determined than me. He reverse-engineered the headset’s USB HID protocol and built scapectl, a menu-bar app and CLI that does what Fractal’s own app does, plus the thing I wanted. So I bought another pair, and here we are. Fractal’s official app is a browser-based web app, and it looks like this a lot: scapectl puts battery, firmware, EQ slot, mic mute and more in your menu bar, and runs your own scripts on 12 headset events, with the headset’s state in environment variables. The killer use: switch your Mac’s audio output to the headset the moment it powers on. brew tap charlietran/scapectl https://github.com/charlietran/scapectl brew install --cask scapectl Since then I’ve sent Charlie a handful of patches: The Homebrew cask, and a cleanup so it installs without warnings Light and dark app icons Cooldowns per event, so one script can handle several events EQ data for your scripts, plus make dev to build and relaunch the app locally Still in review: tray icons that show the headset’s state My favorite is the EQ one. Change EQ presets on the headset and you get a notification with the curve drawn in it: That’s a rinky-dink renderer in my gist, along with my config and a few other ways to do notifications. scapectl hands your scripts the data and stays out of the drawing business, which I think is right. The tray icon PR changes the menu-bar icon with the headset: no dongle, off, connected and muted. There’s a temporary menu to try three designs, so go vote for your favorite: Caveats: it isn’t notarized (the Homebrew cask handles that for you), it needs Input Monitoring permission, and it can’t run at the same time as Fractal’s app, since they fight over the same USB stream. Thanks Charlie, for building the app I gave up on. --- # Open Opal brings my discontinued webcam back Date: 2026-10-12 URL: https://jamiedubs.com/blog/open-opal/ Opal discontinued the C1 webcam and its Composer software, which left a very nice camera sitting on my monitor with nothing to talk to. Alistair Smith fixed that with Open Opal, a native macOS app that drives the camera directly over USB. The C1 is built on Luxonis’ open DepthAI platform, so it turns out you can just do that. I wanted my camera back, so I jumped in. Eight of my pull requests landed in the first week of October: Support first-generation C1s with the older Sony IMX378 sensor, which is what mine has. It boots the camera’s software into RAM only, so a power cycle puts it back to stock. A menu-bar dropdown like Composer’s, which you can tear off into its own window and dock again “Follow face” autofocus, with near and far limits so it stops hunting between you and the wall behind you Custom tuning files for the sensor and lens A virtual camera fix so its frames match the 1080p format it tells video apps to expect Readable sensor names (“Sony IMX582 (48MP)” instead of “LCM48”) CI builds and no more searching your Wi-Fi for a camera that only speaks USB Most of the time I want the menu-bar version. The floating window is great when I’m debugging next to Photo Booth. To build it yourself you need an Apple silicon Mac on macOS 26 and Xcode 26: brew install cmake ninja xcodegen ./scripts/bootstrap.sh ./scripts/fetch-models.sh xcodegen generate More is coming in my fork: filters, better background mattes, frame rendering and more camera tuning. Thanks Alistair, for not letting a good camera go to the landfill. --- # linctl, a Linear CLI that agents like too Date: 2026-10-12 URL: https://jamiedubs.com/blog/linctl/ linctl is Kyle Wild’s command-line tool for Linear. Issues, projects, teams, comments, labels and attachments, with --json on every read so Claude Code and friends can drive it without a plugin. I’ve been living in it for a year and it deserves more users. brew tap dorkitude/linctl brew install linctl linctl auth linctl issue list --assignee me Things I like: linctl graphql is a raw escape hatch that reuses your login. Anything the API can do, you can do from a shell. linctl mcp builds a set of agent tools from Linear’s API schema, so an agent gets the whole API without anyone hand-writing tools. Issue relations: blocks, blocked by, related, duplicate. issue get --download-attachments pulls the screenshots down with the ticket. My first patch, last October, was a way to attach a GitHub pull request to an issue, for when I forgot the magic branch name: linctl issue attach LIN-123 --pr 456 My newest one lets you paste a Linear URL anywhere an issue, project or team id goes, and resolves GitHub pull request links to their Linear issue. I copy Linear URLs all day and expect them to just work: linctl issue show https://linear.app/hackers/issue/HTP-123/pool-on-the-roof-is-leaking That one is still an open pull request as of writing, so you’ll need my branch for now. Caveats: by default it hides completed issues and anything older than six months, which surprised me once. The Homebrew formula sometimes lags the latest tag a little. Thanks Kyle, and thanks Charlie Tran for merging that first patch into his fork while it waited. --- # gh-network: find the fork that kept going Date: 2026-10-12 URL: https://jamiedubs.com/blog/gh-network/ These days I run into more “abandoned, but carried on in a fork” repos than ever, and GitHub makes the fork that kept going hard to find. The Forks page is a list that doesn’t tell you much about which forks have real work in them. The Network page is a mess of indecipherable lines you have to pan around, and it hasn’t changed since GitHub launched over a decade ago. So I made gh network, an extension for the GitHub CLI that finds the most active fork of a project. gh extension install jamiew/gh-network gh network hammem/monarchmoney Here’s what the monarchmoney Python library’s network really looks like. 153 forks, about a third of them with commits of their own, and one clear winner: bradleyseanf/monarchmoneycommunity, with 157 stars, 35 forks of its own and a release three weeks ago. You’d never find it from the original repo. Each fork’s life, from creation to its last commit of its own: the original stops in late 2025, and bradleyseanf, keithah and bbrents keep going. How much work each fork has of its own versus how recently it had any, so the forks worth a look sit alone in the top right. For fun, the fork tree with distance from the center as time: everything outside the dashed circle had commits after the original’s last one. How it works: Walks every fork, including forks of forks Compares each fork with the repo it came from, on every recent branch, so side-branch work counts too Ranks forks by stars, forks, recent commits, releases and open issues Reads the original’s README and description for “use X instead” links, and checks same-named repos for the original’s first commit. That catches successors GitHub doesn’t count as forks, like Diegovsky/riff for spot I started this wondering if there was a better-maintained Requestrr fork. (There isn’t — thomst08’s is still the one.) Then I tested it on 14 repos where we already know which fork took over, against GitHub’s own forks page and Fork Finder, the best existing tool I found:   GitHub’s forks page Fork Finder gh network Put the right fork first (9 repos) 3 6 9 Found a successor that isn’t a fork (5 repos) 0 0 4 The one it misses is Atom → Pulsar. Pulsar re-uploaded the code under a new name, and Atom’s README never mentions it. Some things you still have to hear about from a friend. The test repos are in eval/cases.json if you want to throw your own tool at them. Other tools worth a look: useful-forks, active-forks, Lovely Forks and Krzysztof Kowalczyk’s script. Shoutout to everyone keeping other people’s projects alive in forks <3 This post also on: X/Twitter Bluesky LinkedIn --- # A server-side video renderer for p5.js Date: 2026-09-25 URL: https://jamiedubs.com/blog/p5js-render/ I built a modern server-side video renderer for p5.js sketches. It’s called p5js-render. Point it at a sketch and it spits out an MP4, WebM or GIF. Under the hood it runs your sketch in headless Chromium with Playwright, steps a virtual clock one frame at a time, seeds random() and noise(), and pipes the frames into ffmpeg. Every frame gets drawn exactly once, in order, so the same sketch and seed always make the same video. No dropped frames when your laptop fans spin up, and trails, particle systems and simulations come out exactly like they look live. pnpm render cube-wave # output/cube-wave.mp4 pnpm render cube-wave --debug # with a debug HUD The example sketches are homages to some of my favorite generative and computational artists. Moire orbit, inspired by Bridget Riley and Ryoji Ikeda’s op art and minimalism: Cube wave, after Dave Whyte (Bees & Bombs): Drift squares, after Georg Nees’s Schotter (1968): Dot lattice, after Etienne Jacob and Dave Whyte again: There are more in the gallery, including nods to Tyler Hobbs, Vera Molnár and the Unknown Pleasures cover. The demo site also has examples of generating sprite sheets and making simple timeline-scrubber UIs: drag any film strip to scrub through a render frame by frame. Source code is on GitHub. Hope it’s useful for others! Shoutout to all the p5.js, generative and computational artists and hackers out there <3 This post also on: X/Twitter Bluesky --- # Beszel for simple server monitoring Date: 2026-09-20 URL: https://jamiedubs.com/blog/beszel-for-simple-server-monitoring/ I recently installed Beszel for load monitoring on the homelab. Much simpler, super lightweight, great UI. It does Docker container-specific stats out of the box, plus plenty of other metrics like temperatures, GPU usage and disk health. Previously I’ve tried fancy Grafana + Prometheus setups (complicated, high load), Netdata (complicated, high load), and Munin (super simple but old and fugly). 10/10 happy with this one so far! P.S. I also tried out a bunch of Docker container monitoring TUIs (clockwise from top left): dry, lazydocker, ctop, and oxker. --- # An unofficial iOS app for The Lot Radio Date: 2026-05-03 URL: https://jamiedubs.com/blog/thelot-radio-ios-app/ The Lot Radio is NYC’s premiere independent radio station — a non-profit broadcasting out of a repurposed shipping container in Greenpoint since 2016. Incredible DJs, all over the map musically, the kind of place where you discover new artists every time you tune in. If you don’t know it: fix that. The official iOS app exists but was missing a bunch of things I wanted, so I built my own. github.com/jamiew/thelot-ios — open source, MIT, on TestFlight via GitHub releases. UPDATE: The repo is private for now. If you want to try the app or see the code, get in touch. Stuff it does that I wanted Background audio — keeps playing when you lock your phone or switch apps Audio-only mode — kill the video to save battery, the music’s the point anyway Schedule — Today / Tomorrow / Week with show details, tap through to who’s on Chat — Discord chat embedded in-app so you can talk to other listeners without bouncing to a browser Chromecast — cast to speakers or screens (this one was annoying to get working with Livepeer’s HLS, more on that below) AirPlay — obvious but the official app doesn’t do it cleanly Lock-screen / Control Center controls — play/pause + show info on the lock screen Siri Shortcuts — “Hey Siri, play The Lot Radio” Auto-play on launch — toggleable, but on by default since that’s why you opened the app iPad + macOS — Split View, Stage Manager, runs on Apple Silicon Macs via “Designed for iPad” Dark / light / system theme Full-screen landscape for video Tech notes SwiftUI, single shared AVPlayer for both audio and video so the stream doesn’t double up when you switch tabs. Google Cast SDK via SPM (the SRGSSR fork) — the Cast Default Receiver can’t handle Livepeer’s master HLS playlist, so the app parses it and sends a single variant URL to the receiver instead. Avoids needing a custom receiver, which would mean Google’s $5 fee and a registration process. Public service config (Google Calendar key, Discord widget key) is checked in — same keys are already exposed on thelotradio.com, no secrets there. Caveats Not affiliated with The Lot Radio. All content belongs to the station and the DJs. If you like the app, donate to The Lot — they’re listener-supported and the whole thing only exists because of that. PRs welcome at jamiew/thelot-ios. The code is private for now; contact me if you want in. --- # A Discord bot for the Apocalypse Early Warning System Date: 2026-05-02 URL: https://jamiedubs.com/blog/apocalypse-ews-discord-bot/ A Discord bot that mirrors Kyle McDonald’s Apocalypse Early Warning System — pings you when the alert level changes. Web app for monitoring an FAA-derived business-jet cohort against a rolling 24-hour baseline. The dashboard (ews.kylemcdonald.net, source) does all the work — pulls live ADS-B data, compares against a rolling baseline, and posts an emergency level from 1 to 5. Kyle also runs a Telegram channel and an RSS feed. I just wanted the same alerts in Discord. Install Add to a server Add to your account (works in DMs from anywhere) Commands: /subscribe, /unsubscribe, /status, /help. Or just @-mention it. How it works Polls the RSS feed every 30 minutes and announces every level transition (Notice → Elevated → Warning → Attention, plus stand-downs). Most days the level stays at 1 and you hear nothing. Built with bun, discord.js, and bun:sqlite. Source: github.com/jamiew/apocalypse-ews-discord. --- # NYC derelict/abandoned bike complaints Date: 2026-04-20 URL: https://jamiedubs.com/blog/nyc-derelict-abandoned-bike-complaints/ I spotted a bike in Brooklyn with a yellow DSNY “derelict bicycle” sticker on it, the kind that says “this will be removed in 7 days.” I’ve lived in NYC for years but never actually seen one of these in the wild before! So I got curious: how often does this actually happen? How many bikes get reported as derelict or abandoned? What happens to them? How many bikes get removed? Short answer: not many. Complaints about abandoned bikes grew from 88 in 2010 to an all-time peak of 2,588 in 2018, dipped during COVID, and have rebounded to roughly that level: 2,508 in 2024, 2,108 in 2025. From 2021 onward, the removal rate hovers around 8-11%. Pre-2021 removal data is basically empty, so I assume DSNY just wasn’t logging it. But there’s a couple records, so maybe they weren’t actually removing anything until 2021? Note that this 8-11% removal rate number is just “# removals divided by # complaints”, and doesn’t de-duplicate repeat complaints about the same bike. There’s no unique bike ID in the data, so I tried deduplicating by address. Roughly a third of complaints are duplicates. One address in Bay Ridge (2030 76th Street) generated 122 complaints in 3.5 months on a bike DSNY kept saying didn’t meet the criteria. Both numbers are imperfect — naive over-counts repeat reports, dedup-by-address under-counts because the same rack hosts different bikes over the years - so I think the truth is somewhere in between. What makes a bike “abandoned”? The dominant outcome is the orange block: 37-44% of complaints close as “did not meet criteria.” The bike just isn’t broken enough by DSNY’s standards. Another 25-30% close as “no condition found” — which I think means DSNY showed up and the bike wasn’t there. DSNY’s program runs under Local Law 55, and their definition of “unusable” requires two or more of these: Appears crushed or unusable Missing parts essential to operation (handlebars, pedals, rear wheel, chain) Damaged handlebars/pedals or bent forks, frames, or rims 50%+ rusted, including the chain locking it up The bar for removal is surprisingly high. Missing a seat alone doesn’t count, maybe because some people remove their seats to prevent theft. There’s a reddit thread suggesting that ‘missing pedals’ are an unstated criteria for derelictness. Anecdotally, some folks have told me they’ve spent months going back and forth with DSNY on bikes missing wheels and handlebars and eventually gave up. Notably DSNY will never remove ghost bikes placed as memorials — hell yeah <3 Data and code I did this analysis using Claude, pulling the NYC 311 data via the Socrata API and made the charts. The 311 dataset was split in late 2025 into a 2010-2019 archive (76ig-c548) and a 2020-present live dataset (erm2-nwe9). The complaint type was renamed from “Derelict Bicycle” to “Abandoned Bike” in 2021, so query both: $where=complaint_type IN ('Derelict Bicycle', 'Abandoned Bike') Public data, no API key needed. Full script below (also on GitHub): Thanks to Patrick Cleary, Zack Youngren, Paco, and Paul Schreiber via the TABK group chat for the discussion that made this way more interesting than just “here’s a chart.” --- # BUY NOW - BeOS screensaver for macOS Date: 2025-11-15 URL: https://jamiedubs.com/blog/buy-now-screensaver-for-macos/ This is a recreation of the famous BeOS “BUY NOW” screensaver for macOS. It has a dark blue background and white text. Download on GitHub Original screensaver by Ficus Kirkpatrick Shoutout to Toastycode who made a Mac version of this previously. In 1995 BeOS shipped with pervasive multithreading, symmetric multiprocessing, and a 64-bit filesystem. --- # How to disable Siri reply suggestions in Messages on macOS Date: 2025-09-10 URL: https://jamiedubs.com/blog/how-to-disable-siri-auto-replies-in-macos-messages/ I hate these Siri suggested replies in the Messages app in macOS 15+ (Sequioa). This post has a fix that actually works. To disable these annoying auto-replies, go to System Settings > Keyboard > Input Sources > Text Input and disable “Suggested Replies” The suggestions are mediocre at best, but more annoyingly, they steal keyboard focus and I have to press “esc” a couple times to actually start typing. There’s a bunch of Apple support threads and this reddit thread but instructions were incorrect, so here we are! Good luck --- # Computers controlling web browsers Date: 2025-04-01 URL: https://jamiedubs.com/blog/computers-controlling-web-browsers/ Amazon launched Nova Act yesterday, which is their “control a web browser with an LLM” solution. This is comparable to GPT Operator, Claude Computer Use and Open Interpreter (the last is my favorite, and open-source) I don’t get too excited about these anymore. They make for really fun one-off demos, but for repeated tasks they’re slow, unreliable, fall out-of-date, and get blocked by captchas and other anti-bot tech. I’ve worked with tons of web browser automation tools via LLMs, via code, for testing my apps, for scraping other websites, you name it. Playwright, Puppeteer, Rabbit r1 (lol), plus hosted solutions like BrowserBase, Checkly, and Anon (the last is my favorite) My money says websites that want to be accessed by agents/LLMs will expose APIs or add accessibility flags that make using a full-blown web browser unnecessary. Web browsers are kind of bloated and meant for humans. APIs are good clean machine interfaces for machines. Websites that don’t want to be controlled by agents have already implemented aggressive anti-bot tech and don’t have an API for a reason. Ticketmaster etc. Every website backed by Cloudflare will eventually serve you a captcha. Hosted browser services use all kinds of tricks to get around this: fingerprint spoofing, residential proxies, captcha farming, faux clicks, etc. These the same tactics employed by spammers. This is a tough problem. So I think these headed- and headless browser solutions will work well as a sort of stop-gap for sites without APIs that don’t mind bots visiting, but I’m not expecting much more than that. It’s just way faster to control Spotify using API calls than via any of their user interfaces. I’m still gonna follow along with computer-use developments, but I rate it “idk, depends on what you’re doing” for now This post also on: Twitter/X Bluesky Farcaster --- # AI-assisted code tools of the now Date: 2025-03-27 URL: https://jamiedubs.com/blog/ai-code-tools-power-summary-stack-rank/ By request, here is my list of AI app development tools that I’ve used and recommend you check out, as of March 2025. It’s grouped by amount of code and roughly stack-ranked by quality and ease-of-use. low-code: Lovable, Bolt, Vercel v0 mid-code: Val.town, Replit full-code: Cline, Claude Code, Windsurf, Cursor, Aider the low/mid-zone is the most vibe-codey, by the “never look at the code, use voice dictation, wear sunglasses” definition of vibecode. this is simonw’s interpretation of the og Karpathy. I’m not including no-code things like Glif, GPTs, n8n or various mixed-agent-builder platforms etc which are a different post. if you want to make a simple little web app and haven’t tried Lovable or Bolt recently I’d strongly recommend checking those out. Build via chat, don’t need to look at the code if you don’t want to, and really consistent. They both integrate tightly with Supabase for database, authentication and asset storage, and work well. Configuring your app via chat with inline “Login to Supabase” buttons is cool. Vercel v0 does similar but a bit more work to configure atm Valtown is the “mid-code” part of the spectrum. You’re looking at code, but the AI assistant Townie is probably doing a lot of the work for you. I looooove Valtown. it’s friendly, super easy to use and debug, fun to find and remix other people’s projects, and the team is great. The new multi-file Valtown Projects feature lets you build ‘real’ apps. They also natively support databases, assets/blobs, and even email send and receive. The only negative (and for me this is nbd) is that it only supports Deno-flavored js/ts Replit is a full notch more code-heavy than Valtown. it’s reliable and can run code in any language, but it is also a lot more complicated to use and debug. maybe more suitable for ‘serious’ projects but I still prefer Valtown if I can. The “full-code” side of the spectrum is Claude Code, Cline/Roocode, Windsurf/Cursor, aider. Much has been written about this elsewhere. My tldr: Cline is maybe most approachable since you can use it in VScode, which you probably already have installed, but it’s also fast & loose with context tokens and can run up $ bills quite quickly. Claude Code is dope, really nice TUI, some quirks but smart overall. Windsurf and Cursor are maybe the most friendly for developers who want a more curated experience, and Windsurf is much better than Cursor imho. In both cases the built-in browsing and docs tools are great. they all support MCP servers too. Aider is the most hardcore, super powerful, much more involved but produces amazing results if you know what you’re doing. FWIW I find these tools really take 2-3 hours to properly learn and would recommend you bucket accordingly. takes 10-15 mins to get setup, first hour kind of like eh, second hour is actively productive. Lastly, everything in this post will be out-of-date as soon as I press publish. generative AI is nuts rn --- # LLM plugins and the state of MCP Date: 2025-03-21 URL: https://jamiedubs.com/blog/llm-plugins-and-the-state-of-mcp/ Lots of hype and debunking around MCP (Model Context Protocol) flying around lately. I’ve been working with it since launch and believe all of these are true: MCP is complex, overengineered, hard to host in cloud, security model is nonexistent, weird naming, registries are messy, community is messy. All of that is rapidly improving, especially the technical shortcomings1 2, but out of the gate it has some serious issues. MCP is also by far the best current solution for “LLM plugins” or “SDK but for LLMs”. Everything else is either proprietary or involves us all writing the same code over and over. Why would we all write and debug and maintain the same approximate API-calling implementations? This is why SDKs exist too. Most platforms w/ a serious API publish an OpenAPI spec and SDKs in popular languages like typescript, python, etc. I think we’ll all also publish an MCP server that lets you use the API via LLM right away too. These SDKs and servers could just be generated from the spec and an llms-full.txt. I’m willing to bet the LLM plugins (the MCP servers) will quickly become the most popular way to interact with those APIs. Lastly: MCP servers aren’t restricted to HTTP APIs. Desktop apps (and maybe even mobile apps) can expose tools to LLMs, like we’re seeing with Blender MCP and Ableton Live MCP. The tool-use-centric paradigm for LLMs is incredibly powerful, and made even more powerful when run through battle-tested expert systems. Instead of doing a one-shot “make me a 3D model of pikachu with a sword,” I can have an interactive chat with Blender and work incrementally and within the well-defined rules of a domain-specific piece of software. In the same way that it doesn’t make sense for all of us to reimplement the same API-calling code over and over, it makes sense to leverage the years of work that have gone into existing creative software. Eventually I imagine you’ll see an LLM built-in to pretty much every piece of software, cloud or local, since it makes every app so much more approachable and more powerful. It’s just tools all the way down. Stateless MCPs using normal streaming HTTP: https://github.com/modelcontextprotocol/specification/pull/206 ↩ OAuth in MCP: https://spec.modelcontextprotocol.io/specification/draft/basic/authorization/ ↩ --- # The Demo Rules Date: 2023-10-11 URL: https://jamiedubs.com/blog/def-demo-rules/ I love demos. These are the rules we used for the bi-weekly demo sessions at DEF. “A safe space to show off your projects.” These aren’t for everyone, but this is a good starting point for running a good demo session: The Demo Rules 15 mins per slot: 10 mins for demo, 5 mins for Q&A, YMMV Bugs and issues are expected. If we do a demo session without glitches, we have failed. If a presenter is having issues or app is being slow, we don’t complain, we wait patiently. If someone bravely shares their whole screen and receives a sensitive notification, you must close your eyes and pretend it didn’t happen. Moderator will read the chat and pass along questions & praise and especially praise. Free scope creep, all you can eat! Bonus Turn on your video if you’re willing. Otherwise we are all just random usernames on the Internet Demos are default-private. Please don’t post other people’s work on social media w/o permission. we post a few screenshots in #mouths-only-sidechat but if you’d prefer we didn’t do that, just say so. sometimes Varley edits together recap videos, but we will always ask if you’re cool sharing --- # How to be a Helium price oracle Date: 2021-11-22 URL: https://jamiedubs.com/blog/how-to-be-an-hnt-price-oracle/ The Helium Network Wants YOU To Submit HNT Prices Regularly (It’s Easier Than You Think) Background The first rule of being an oracle is that you don’t talk about being an oracle. The second rule of being an oracle is to submit HNT prices early and often. Daily at a minimum; hourly would be great. Prices are reset every 30 blocks (30 minutes), and a majority of oracles must vote within a rolling 24 hour period for a price to be set. Otherwise we end up with stale pricing data and flat spots, like this nonsense: Here’s what it looks like when the number of voting oracles falls below a majority, represented by the the dashed threshold line (data & graph from DeWi ETL) Read more about oracles on docs.helium.com and then check out all the sick charts of oracles (allegedly) submitting prices on the DeWi ETL Oracles dashboard Setup You’ll need to be comfortable with the commandline, and ideally have a dedicated server you can setup to automatically submit prices on a regular basis. Update: don’t use a Raspberry Pi, helium-wallet-rs doesn’t build on ARM. Download and install the commandline helium-wallet Create a fresh mainnet wallet helium-wallet create basic Password: [unique long top secret password] Confirm: [unique long top secret password] Backup that new wallet.key keyfile somewhere super duper safe Send the wallet address to your top secret handler. I don’t know who this is, don’t ask. Submit prices Helium has made this very easy. Thank you Louis. You don’t even need to look up the HNT price – you can use helium-wallet to automatically fetch and submit the latest price from Coingecko, Bilaxy or Binance: helium-wallet oracle report --block auto --price coingecko --commit This assumes the wallet.key is in the same directory. Use -f ~/path/to/oracle-wallet.key otherwise. Lastly, setup a script to automatically submit prices on a regular basis. You can use the HELIUM_WALLET_PASSWORD environment variable to automatically enter your wallet password; keep this safe. Here is a basic shell script: #!/bin/bash export HELIUM_WALLET_PASSWORD="[unique long top secret password]" keyfile="$HOME/path/to/oracle-wallet.key" source="coingecko" # bilaxy, binance # Try three times before giving up # Sometimes Coingecko is tired n=0 until [ "$n" -ge 2 ]; do echo "attempt $n ..." $HOME/bin/helium-wallet -f "$keyfile" oracle report --block auto --price "$source" --commit 2>&1 && break n=$((n+1)) sleep 5 done Then throw it in your crontab (crontab -e): # Submit HNT prices hourly @hourly /home/pi/bin/helium-oracle-submit | grep -v "timed out" >/dev/null You did it Please contact me (email and Discord username are on jamiedubs.com) and we’ll see about getting you added to the official list. And remember, if you stop submitting prices, you bring great shame on your family! Thank you for your service --- # Go pitch yourself Date: 2021-10-27 URL: https://jamiedubs.com/blog/go-pitch-yourself/ If I’m going to be pitching an idea to other people, I think it’s important to practice saying it out loud. So, even though I hate the sound of my own voice, I pitch it to myself. I go get a coffee, fire up Voice Memos on my phone, and walk around the city explaining my idea as succinctly as possible. Then I listen back to it, cringe horrifically, and do it again. While developing an idea, I usually start with notes or writing or slides. But if I’m ever going to be presenting or explaining it out loud, I need to practice it out loud. Reading it in my head is not the same. Some words look good on paper but don’t translate well to speech; some turns of phrase are impossible to remember on the spot. On the first listen-through, I try to just eliminate the uhms and ahhs. These are a sign that I am not confident in what I am saying, and I usually just cut whatever made me pause. On the second, third, and fourth passes, I ask: am I rambling? Where should I be pausing and waiting for a reaction? Did I say the same thing twice, just in different ways? Am I talking too fast? (I am always talking too fast; I have never thought I was talking too slowly) When I did college radio I recorded all my shows and forced myself to listen back through them. The music selection was stellar, naturally. The mixing was decent. The mic breaks were painful. I would awkwardly back-ID tracks, sloppily interview guests, make terrible jokes, and otherwise embarass myself on air. I hated every second of listening to myself, but I got better every week. Clearer, more succinct, better mic handling, better corraling of guests, better timing with the sound effects, background music at just the right level. I started doing this “pitch myself” idea based on a suggestion from Diana Kimball Berlin, who would wear a lapel mic and record her talks, so she could post them on SoundCloud. I just started recording the practice talks too. --- # Hacking PartyBid to bid on unsupported Foundation Collections Date: 2021-10-07 URL: https://jamiedubs.com/blog/how-to-partybid-on-a-foundation-collection-piece/ So you want to partybid on something in the cool new Foundation Collections, but the PartyBid frontend doesn’t support it? And the auction is over in 12 hours you say? You’re in luck, we just hacked our way through this today, lofi permissionless blockchain-style! Using a contract deployed via Etherscan and a custom lil’ web frontend, DefMicroParty pooled ~6 ETH and is now the proud owner of Jen Stark’s beautiful Microcosm #22 I wrote up this HOWTO for Sirsu but thought it might be helpful for everyone else trying to do this <3 You’ll need to do a few things, and some technical savvy is required: Dig up the NFT contract address, token ID and auction ID Deploy a PartyBid contract instance using Etherscan Deploy your own version of the custom web frontend – UPDATE: thanks to SteveK, the partybid.app frontend now supports custom contracts If you’re into this or have any questions, feel free to join us on the new Definitely Crypto discord server – “a place for friends” (and hackers, designers, writers, musicians, businesspeoples, activists, lawyers, vandals and anyone else who likes making stuff and having fun) Deploy a PartyBid contract instance Choose an artwork, fund your wallet and rally your posse For Sirsu this is https://foundation.app/@yatreda/taitu/10 (awesome piece) Find the piece you want on Foundation and copy its custom contract URL: in this case: 0x814A056F1607C7F43285a1a1de43755Ed3b26eE7 Look up the tokenID – this is generally in the link from Foundation too %%!Screen Shot 2021-10-07 at 17-17-00 Kingdoms of Ethiopia (TAITU) Token Tracker Etherscan.png %% Ours is 10 Look up the Foundation auction ID for that specific token I visit the Foundation Market contract on Etherscan to look this up: 0xcDA72070E455bb31C7690a170224Ce43623d0B6f https://etherscan.io/address/0xcda72070e455bb31c7690a170224ce43623d0b6f#readProxyContract Use the getReserveAuctionIdFor function and put in your NFT contract from step 2 and your token ID from step 3 %%!Screen Shot 2021-10-07 at 17-22-30 Foundation Market 0xcDA72070E455bb31C7690a170224Ce43623d0B6f.png %% Ours is 97237 Now you have your arguments for the startParty contract call: _marketWrapper (address): 0x96e5b0519983f2f984324b926e6d28C3A4Eb92A1 _nftContract (address) 0x814A056F1607C7F43285a1a1de43755Ed3b26eE7 _tokenId (uint256) 10 _auctionId (uint256) 97237 _splitRecipient (address) 0x0000000000000000000000000000000000000000 _splitBasisPoints (uint256) 0 _name (string): WhateverYouWant _symbol (string): WHATEVERUWANT Time to deploy a PartyBid instance! Visit the PartyBidFactory contract on Etherscan: https://etherscan.io/address/0xAba3506DDF718278632B245ad0d86BB81070BA47#code Fill in the values you dug up: %%!Screen Shot 2021-10-07 at 17-24-49 PartyBidFactory 0xAba3506DDF718278632B245ad0d86BB81070BA47.png %% Write contact and hold onto your butts! Deploy the lofi custom frontend UPDATE: thanks to SteveK, the partybid.app frontend now supports custom contracts and this is no longer necessary. Once deployed, you will want to contribute funds. Unfortunately the partybid.app UI does not currently support this. You’ll need to deploy a copy of a custom web3 frontend that Shahruz wrote in like 30 minutes: https://github.com/shahruz/defparty The fastest ways to deploy this are setting it up on Vercel or Netlify. This is more involved and a little bit beyond the scope of this guide, but you can check those sites for getting-started guides. Both are relatively easy if you’ve built a web app before, but grab a friend if that’s new territory for you. The frontend we used to win Microcosmos #22 is here as an example: https://defparty.netlify.app/ You will need to edit this file to put in your contract address, your own Infura key, plus links to your own relevant things so folks don’t think they’re on a completely sketchy website: https://github.com/shahruz/defparty/blob/main/src/pages/index.tsx We’re planning to clean this up and move some things to ENV vars, which would graduate this from dirtstyle to double dirtstyle Big thank you to Steve Klebenoff, Shahruz, Matt Lehrer, everyone in Definitely Crypto, everyone else who participated in this PartyBid, and especially Jen Stark for the beautiful work! --- # Breaking down the Songcamp $ELEKTRA crowdfund Date: 2021-07-13 URL: https://jamiedubs.com/blog/breaking-down-songcamp-elektra-crowdfund/ I backed the Songcamp art collective’s new Elektra crowdfund on Mirror this morning. Pretty cool use of multiple crowdfunding and community-building mechanics, and the project itself is very stylish and narrative-heavy. Kind of like an ARG, kind of like a DAO, kind of something else? The crowdfund used Mirror’s Editions feature to offer 3 different tiers of rewards, at 0.1 ETH, 0.3 ETH and 1 ETH. Per typical Mirror crowdfund, backers receive both a ticket-NFT and $ELEKTRA governance tokens proportional to their contribution. But this is also the first crowdfund using Mirror’s new Podium feature, which gives special NFTs to the top 3 bidders: Ticket-NFT itself is a cool Top Shot-style 3D hologram video: Then all NFT owners can immediately join a community Discord server by visiting a slick “Portal to Elektra” landing page: After authenticating your NFT ownership with their Collab.land bot, the story begins… Some more highlights from their crowdfund pitch: On Elektra, music is energy. Music is the fuel, electricity, and light of the world. Centuries ago, Elektra had a thriving civilization with a deep rooted sense of value towards art. But soon, motives around greed and self-interest took over, and the music that powered this world was lost. Your mission is to travel to Elektra, and help us collectively revive, restore and reignite this once beautiful world back to health. Will you accept your mission? The team is significant: The Songcamp Elektra project is made up of ~42 artists, devs, project ops and strategists working together to bring this world to life. This crowdfund intends to raise the funds that will enable us to do just that. And props for disclosing how you plan to use the funds: We will use 90% of the amount raised to put towards the Elektra project. These funds will go toward the core team of project managers, web developers, artists and strategists working directly on the project. Other costs include transaction fees on the Ethereum blockchain, web hosting and file storage. We intend to save a portion of these funds to act as the seed money in standing up the ElektraDAO once this initial phase of the project is complete (more on that below). The remaining 10% will go directly to the artists who created the Portal Ticket visuals. --- # PartyDAO is what startups will look like in the future Date: 2021-06-02 URL: https://jamiedubs.com/blog/partydao-what-startups-will-look-like-in-future/ There was a livestreamed design session for PartyDAO on Monday, which was a lot of fun to watch. There’s a public Figma board you can dig through to see. The group is building PartyBid, an app for collectively bidding on NFTs a la PleasrDAO. It has been amazing watching this team assemble and start building over the last few weeks, and I believe it is a repeatable model we will see more and more often. Their speed and quality has been comparable to a tight-knit, VC-backed startup, but it is definitively not that. The project started when Denis Nazarov posted an idea on Twitter: “wouldn’t it be cool if you could deploy an automatic DAO to bid on an NFT auction?”(1) A group of people spontaneously organized, raised money from whoever would contribute(2), and are now bringing open-source software to life. It’s only been a month since that first tweet. I believe PartyDAO is a sneak preview of what many startups will look like in the future. Spontaneously organized, cooperatively-owned, and funded by community tokens and crowdfunding. Unlike most DAOs, which generally just collect and distribute money, PartyDAO is actively building and shipping software. Unlike most open-source projects, they have a meaningful budget and a path towards future financing. They are open-source not necessarily because of their belief in contributing to the public good, but because it is also an excellent marketing and recruitment strategy. They are cooperatively-organized not just because it is more fair and inclusive, but because it is less work, and everyone understands the benefits of skin in the game. The morally superior path provides practical benefits. Building stuff is fun, building stuff with friends is even better. Getting paid to build stuff with friends, all open-source, no bosses, and you’ve got a legitimate ownership stake in what you’re building? That’s another level. For more background on PartyDAO, check out my previous post Thanks to Diana Kimball, Chris Kurdziel and Denis Nazarov for their feedback --- # How to submit a Helium hotspot manufacturer application Date: 2021-06-01 URL: https://jamiedubs.com/blog/how-to-submit-helium-manufacturer-application/ We use GitHub to manage the Helium Improvement Proposal process, which includes the hotspot manufacturer approval process (aka HIP19, adopted Nov 2020) This guide is meant to help folks who are new to GitHub submit a new manufacturer application, no command-line magic required. You will be using the github.com website to copy a TEMPLATE file, paste in your document, and submit a pull request to either the helium/hip repository (for HIPs) or the dewi-alliance/hotspot-manufacturers repository (if you want to build Helium hotspots) From there the community and MOC (Manufacturing Oversight Committee) will post comments or contact you with any further questions. New applications are also generally shared in the #hip-19-third-party-manufacturers channel on the Helium Discord server. It is assumed you’ve already created a GitHub account Go to github.com/dewi-alliance/hotspot-manufacturers and fork the relevant TEMPLATE file: If you’re submitting a manufactuer application, use the file TEMPLATE.md If you’re submitting a normal HIP, use the file 0000-template.md from helium/HIP Click the tiny “Edit” icon on the right to start editing your own copy Edit and submit the document, which is formatted with markdown I recommend copying this template into a text editor (preferably with markdown support), editing there, then just pasting it back in here when you’re ready. Before you press save, remember to rename the file from TEMPLATE.md to your-company-name.md. It must have an .md suffix, no spaces, and all lowercase or it will be rejected. Add a commit message too. It’s good etiquette. You are now about to submit your first GitHub pull request, congrats! Just press “create pull request” GitHub also has some good tutorials: Mastering Markdown, Creating A Pull Request How to get your “rendered view” link It’s also good etiquette to post a direct link to the .md file you just created, which makes it easier to read. You’ll notice the “Rendered view: …” links that are included in the description or first comment of a new PR, like this: In order to always show the latest version, you need to link to the file inside your fork. First, go to your fork: Then navigate to your file, usually inside the 0019-third-party-manufacturers directory: Right click and copy, then paste into your GitHub PR. It should contain your username (e.g. jamiew/HIP) and should not contain a long commit hash like f38fkajsdi3478fhkjasdflhjk3… the latter means you’re linking directly to the file at that specific commit, rather than the latest version. Now when you make updates to your HIP, folks who click the rendered link will always see your latest version! tags: Helium HIPs Governance --- # A brief history of PartyDAO Date: 2021-05-29 URL: https://jamiedubs.com/blog/a-brief-history-of-partydao/ the project starts with a tweet from Denis Nazarov that Anish Agnihotri builds over the weekend. there’s lots of interest, it feels worth pursuing further! Folks are even willing to put in some money to see it come to life instead of a Kickstarter campaign, which can take weeks to put together, Denis uses Mirror to crowdfund 25 ETH in a matter of hours ($60k-ish) Denis transfers control of the assets to a multi-sig wallet, to be managed by the backers of the crowdfund a Discord server is created to organize further So a week after the initial concept, the startup has closed their seed round. Platforms like Mirror (for crowdfunding) and Snapshot and Boardroom (for governance) combine beautifully with GitHub, Figma, Discord and other pieces of the modern product development stack. They are all remote, async, and open-source/”work in public”-friendly. Next up: one of the PartyDAO members volunteers to manage the project (John Palmer aka jpalmz) along with other backers, he drafts a short project overview and draft budget the plan and budget are voted on and approved by the other backers using Snapshot folks apply for the various jobs – design, frontend dev, solidity dev, security review, etc. This is all done asyncronously, via Discord team members were unanimously approved in another vote, and work begins So less than a month later, PartyDAO is a brand new, cooperatively-owned, collectively-governed startup. There’s a team, there’s money in the bank, and the development engines are firing on all cylinders. The code is all open-source, the process is all open to the public. The team is doing livestreams and recording a podcast. I am impressed. In particular, John Palmer has been an excellent organizer and communicator for the project. Among other duties he’s been sharing weekly updates that are dramatically better than what I’ve seen at both venture-backed startups and comparable open-source projects. His What is PartyDAO post does a great job capturing what is special about this group: PartyDAO has two primary mandates. Ship PartyBid, a product for collective bidding on NFTs Build PartyDAO itself into a long-lasting organization that can fund its own continued existence PartyDAO is different from many DAOs that have come before it. To date, DAOs have mostly been synonymous with a treasury of funds + group voting on where to send those funds. PartyDAO aims to be something more fun: we are a fully decentralized organization that actually ships products. PartyDAO by @jpalmz on party.mirror.xyz Time to ship --- # HIP News March 2021 - consensus rewards, light gateways, new manufacturers Date: 2021-03-30 URL: https://jamiedubs.com/blog/hip-news-march-2021/ It’s March 30, 2021 and here’s what’s you missed in Helium Improvement Proposals (HIPs) For new readers: Helium is a open-source, p2p wireless network for IoT devices. HIPs are the community-led process to suggest and implement changes to the blockchain. I’m jamiedubs#1105, a board member at the non-profit DeWi, where I help manage the HIP process and host our monthly community calls. PSA: we’re also giving out $10M in grants to Helium-related projects. Accepted HIP changes this month: Merged for discussion – HIP28: Consensus Reward Adjustments by @PaulVMo Issue #140. Attempts to address consensus group earning less than the 6% target due to election times, and reallocates any unearned consensus rewards to the PoC pool rather than being shared with Security Token holders. New Discord channel for discussion: #hip-28- Merged light gateway amendment to HIP19 (3rd-party manufacturer guidelines) by @coco (Helium Inc) – PR #132 - adds considerations for light gateways, including same ECC chip requirement as full gateways. I believe this was a low-impact/non-substantive amendment that does not necessarily require full HIP review, but we gave it one anyway. There were no objections or concerns raised. AFAIK light gateway manufacturers are already all aware and have been actively installing ECC chips. We also received three new HIP19 manufacturer applications: HeNet BV/LongAP – 2021-03-16 – In Discussion Smart Mimic – 2021-03-25 – In Discussion Browan – 2021-03-26 – In Discussion Housekeeping: Requested changes to HIP draft for [[on-chain voting]] by @maco2035 – needs basic spelling & grammar edits before we should merge. There are substantive notes in the thread as well. Quite old at this point, in part due to a lack of feedback and followup from your humble HIP Editor (me). Let me know if this is still of-interest to folks and will be revised, or if we should close. https://github.com/helium/HIP/pull/127 Closed older HIP draft about validators by @cvolkernik – PR #128 – revision of his earlier HIP around moving consensus to validators, which was approved in alternate proposal HIP25. This revision contemplates additional validator mechanisms like delegation, slashing et al but should be revised in light of validator changes and then proposed as a new, clean HIP, or as an amendment to HIP25. Please check out the Helium discord for further discussion, particularly #helium-improvement-proposals and the dedicated per-HIP channels. --- # Coldie auctions and NFT auction design Date: 2021-03-24 URL: https://jamiedubs.com/blog/coldie-auctions-and-nft-auction-design/ I’ve heard the term “Coldie auction” mentioned in cryptoland a few times, but I didn’t know much about its history. I know it best as the auction model used by Foundation, but it dates back to a manual process run by the artist Coldie, who has been selling cryptoart NFTs since 2018. Their preferred platform SuperRare added native support for this style of auction in late 2020. The basic mechanics: 24-hour timed reserve auction Auction begins when first bid is placed In Coldie’s original model, any bid reset the 24 hour clock. On Foundation, if a bid is placed in the last 15 minutes, the auction is extended by another 15 minutes I believe this would be taxonomized as a timed reserve auction with bid-extension ? I’m not an auctionologist, but I do know that constraints breed creativity, and I am a sucker for overanalyzing game designs. https://twitter.com/Coldie/status/1365737081012580353 On Rarible, OpenSea and a few other NFT marketplaces, auctions are often open-ended: buyers place bids, and the auction ends whenever the owner accepts a bid. The winning bid doesn’t even need to be the highest bid! Zora has expanded on that by adding sell-on shares, which allows a bidder to offer a % of the first secondary sale along with their bid. This provides a financial mechanic that (hypothetically) increases the value of the bid, but the Zora team also recognize the social motivations that go along with explicitly choosing a buyer: The identity of the bidder is a meaningful factor that gets taken into account by the owner when assessing bids. There is a wide range of cultural, reputational and identity factors that change the context and provenance of a token and therefore impact value. Who you sell to matters. Using more traditional English-style “highest bidder wins” auctions with a time limit makes sense. It removes the flexibility of the choose-the-buyer mechanic, but it helps everyone manage expectations, creates some time-based hype pressure, and it’s less work and cognitive overhead for the seller. Reseting the clock on new bids (extended bidding) adds an element of surprise and delight, and counteracts last-minute bid sniping, where buyers try to sneak in a high bid in the last seconds of an auction. Bid sniping is nothing new, but it is especially complex on Ethereum and other blockchains. The gas fee auctions and inconsistent block formation make timing a bid unreliable. Extending the bid window ensures the seller will get the maximum amount that bidders are willing to pay, and not just the last bid that snuck in. Excerpted from “A Look at the Game Theory of Online Auctions”, O’Regan 20051 I assume Coldie’s original “each bid extends by 24 hours” choice was in part because there weren’t nearly as many NFT bidders out there as there are today, so letting an auction extend for another day made sense. Foundation using a 15-minute bid extension creates a “nail-biter finish” which I think was beautifully captured by the Nyan Cat auction livestream, in which PRguitarman and the Foundation staff were streaming for hours longer than they expected and freaking out as each new bid reset the clock: Coldie was running this all manually, which I imagine was a lot of work. In Dec 2020, SuperRare namechecks Coldie while announcing their support for timed reserve auctions, which is one of the first mentions of “Coldie auction” I could find on Google DuckDuckGo. The new Reserve Auction system is partly inspired by the “Coldie Method,” pioneered by artist Coldie in which a reserve price triggers a 24 hour auction, which can be extended by bids near the end of the auction. (Those that are technically-minded might even find a Coldie reference on-chain somewhere in the smart contracts 😎). And the artist seemed grateful for it! Now I wont have to set an alarm for the middle of the night like I used to when doing manual Coldie Method auctions to accept a bid at the correct time! https://twitter.com/Coldie/status/1336188554750304256 Lastly, using hours and minutes in a crypto auction is inherently problematic. Blockchains operate on blocks not clocks, and smart contracts have no knowledge of time. But telling people “auction ends at block #1,275,246” instead of “auction ends in 24 hours” doesn’t exactly roll off the tongue. Happy bidding! Thanks for Denis Nazarov for feedback on this post, and for introducing me to the term originally. --- # How to directly interact with an NFT smart contract using Etherscan Date: 2021-03-18 URL: https://jamiedubs.com/blog/how-to-directly-interact-with-an-nft-smart-contract/ Want to better understand what’s happening under the hood with an Ethereum NFT? Here’s how to read your artwork’s metadata files and asset URLs directly from the blockchain using Etherscan. First, find your NFT’s contract address (0xff..33) and tokenID (e.g. 420). On OpenSea this is pretty easy: On Foundation they link directly to the Etherscan page for the associated contract and tokenID: Next, punch your contract address into Etherscan and click “Contract” Peruse the code, nod thoughtfully to yourself, then switch to the “Read contract” tab. These are all of the methods this smart contract exposes publicly: For NFT metadata we want the tokenURI method. Punch in your tokenID and press “Query”: Congrats, you just queried data out of the Ethereum blockchain! With Ethereum you have to pay to write data (that’s the gas fee), but read operations are free. That URL links to the the ERC-721 metadata for the NFT, which is usually stored as JSON: This particular NFT’s metadata is hosted at https://api.artblocks.io/token/20000093 and the image is https://api.artblocks.io/image/20000093. Usually these are links to a distributed storage system like IPFS. For more about see my post [[IPFS and distributed storage for cryptoartists]] Artblocks’ metadata includes a lot of fields, like copyright, aspect ratio, and more. Most NFT metadata is pretty thin and just includes image. Confusingly that is usually a link to a video, not an image, but here we are. Using this Etherscan web interface, you are directly interacting with the Ethereum blockchain. This is exactly the same thing that all the NFT marketplace sites you’re browsing are doing–they’re all pulling data from the same public blockchain, like a giant shared database. When people get hype about web3, this is why. You can login to another site and all your data just comes with you. No more vendor lock. Note that this won’t work out-of-the-box with every contract. Developers have published and verified the source code of their contract for Etherscan’s contract interface to work with it. Some other important methods are symbol, tokenSupply, and transfer/safeTransfer, which are part of the ERC-20 and ERC-721 standards. A dumb fun fact you can share at parties: tokenURI is actually an optional field, meaning images and assets aren’t built-in to the idea of an NFT at all. Enjoy! --- # Anti-network effects Date: 2021-03-10 URL: https://jamiedubs.com/blog/anti-network-effects/ Back in January Tushar Jain from Multicoin Capital tweeted about [[anti-network effects]], a term I hadn’t really heard before: Growth is religion in startupland, and it’s rare that more users is actually a problem. If anything that usually just means scaling & capacity issues, which is a [[money problem]] – “where the heck am I going to store all this money?” But in the real world this kind of anti-network effect is nothing new. Every time I go to a bar or nightclub I am walking a beautiful chicken-and-egg tightrope: Basically what I’m trying to say is that the [[Ethereum]] club is too poppin. I heard they’re expanding the club, but that takes a minute. Meanwhile I’ve got people sweating on me and bumping my drink, so I’m actively checking out other spots. Ethereum is New York’s hottest nightclub, but it’s not the only nightclub. --- # Underground infrastructure, or, how to rent your Plex server for fun & profit Date: 2021-03-09 URL: https://jamiedubs.com/blog/underground-infrastructure/ I run a [[Plex]] home media center that stores all my very legally-acquired movies & TV shows and streams. My current stack is a mid-power NUC, a 4-bay Synology NAS, and a Chromecast Ultra on the TV, usually controlled by an iPhone. One of Plex’s most interesting features is being able share your server with other Plex users. My friends & family just need to sign up for a free Plex account, add me as a friend, and can then stream anything from my library. Or at least as much as my limited cable Internet upload bandwidth allows (sorry) Last year I discovered there is an entire marketplace for renting out access to large Plex setups – r/plexshares. Pricing generally starts at about $5/month for access to libraries with tens of thousands of movies and TV shows. Some of these are multi-region setups with failovers and off-cloud backups. This is some webscale-level devops work. There’s two major business models: P4S, where you just pay $5/month for access, vs. S4S where you give access to your library in exchange for access to theirs. The latter is more popular on r/SharePLEX, but that subreddit is only 10% the size of the pay-for-access subreddit, which says something. Customer support is often handled on well-run Discord servers. Members can chat with each other about what’s worth watching. The support tickets are often just requests for new movies or shows. The experience is excellent. For contrast: Netflix costs me $12/month and has 4-5k titles, which is a fraction of what’s available on a good r/plexshares server. So while there’s obviously a bang-for-the-buck benefit, I think it goes deeper than that: There are tons of wonderful movies that are not available on any of the major streaming services. Worse, it might be on the service, but not available in your region. It’s extremely convenient having everything accessible inside one app. Figuring out which streaming service has a particular title is a pain in the neck. Plex’s apps are better than most. They’re available on almost every platform, they’re well-designed, and they’re essentially free. Their paid Plex Pass offering is $5/month and provides advanced features that most folks don’t really need. The social experience of a Plexshare is great. Being on a Discord server with other movie buffs is great. Having a direct communcation channel with staff is great. It has vibes of supporting a local business where you know the owner. Interestingly, these networks operate openly on reddit, and not on .onion darknet markets. I’m unclear on the legality of these setups, particularly e.g. if the server operators are in a copyvio-friendly jurisdiction like Sweden or New Zealand. How culpable is the end-user for streaming pirated content? Is it better or worse that they paid for access? I’ve also heard there is a similar underground economy for [[Parsec]]-based [[cloud gaming]]. Got a beefy gaming rig that mostly sits idle, and crypto mining isn’t ROI positive? Just rent it out for others to play your games! Parsec’s latency is excellent, and all but the most twitchy multiplayer games are playable at high-res. GeForceNow and Shadow.tech are solid, legitimate options for cloud gaming, but not all games are allowed, and you have to actually buy the games. Wouldn’t it be nice to just pay per-minute for a machine that’s fully loaded with AAA titles? Lastly, there’s some comparisons and contrasts to draw with private torrent trackers. Eleet music trackers like oink.fm, what.cd and waffles.fm were all strict about ratio and the importance of participants contributing back to the illicit public good. To keep downloading, you needed to seed popular torrents or upload desirable content. Sometimes you could just pay cash to boost your ratio, but usually you had to earn your keep. Plexshares, by contrast, is dominated by more traditional $5-10/month P4S setups. It’s a different product for sure, but I can’t help but notice the Internet professionalizing more and more every year, even in the dark spaces. Thanks to ChrisK for feedback on this post. Follow-ups: [[crypto]] for censorship-resistant underground rental markets like this :sweat_smile: what other niche services exist, besides mediacenters and cloud gaming? p2p live TV streaming resyndication idea (e.g. competing with SnapStream) --- # DeWi grants and Helium 5G Date: 2021-02-24 URL: https://jamiedubs.com/blog/dewi-grants-and-helium-5g/ In May I joined the board of DeWi, a non-profit associated with the Helium p2p wireless network. So far our work has been primarily focused on establishing community governance of the network, via new monthly community calls and the Helium Improvement Proposals (HIP) process. This week we had two big announcements: a multi-million dollar community devgrants program, and the announcement of our first grant, which will add 5G and LTE support to the Helium protocol. On Monday we wrote about the new DeWi grants program, to which we’re committing 1M HNT. That’s approximately $3.5M depending on the day’s token price. Practically speaking we are funding projects that improve Helium, but the big-picture goal is to get more developers involved, particularly in blockchain and protocol development. Currently almost all of Helium’s core developers are employees of Helium Inc. – which is normal and totally expected – but the next milestone in our progressive decentralization journey will be adding at least one independent developer to the core team. During our monthly community call yesterday we announced that our first grant is going to FreedomFi, a company building open-source, commodity-hardware LTE and 5G small cell systems. Their approach is similar to how Helium Inc built out the initial LoRaWAN network: ~$400 hotspots that everyday people can plug in, put by their window, and earn money for providing coverage. FreedomFi’s new HIP27 proposal outlines the technical and economic changes needed to add 5G and LTE support to the Helium protocol and allow us to start deploying a community-owned 5G network around the world. While on the surface Helium appears to be an IoT-specific network, it is actually a protocol for building wireless networks of all shapes and sizes: 3G, LTE, 5G, wifi, LoRaWAN, you name it. FreedomFi’s team is stocked with open-source and telecom-industry veterans, and the FCC’s authorization of [Citizens Broadband Radio Service (CBRS)] in Jan 2020 opened up this space to new players like us. I believe what we are building here will become a major community-owned telco that competes with AT&T, Verizon and other massive companies around the world. The Helium project is especially exciting for me as a former owner of La Fonera routers and a participant in community wireless projects like NYCMesh and The Things Network . One of the best things about those projects is that they are open-source, staffed by volunteers and generally funded by donations. Unfortunately I think that reliance on altruism is also their greatest weakness. Helium’s blockchain provides a clear financial incentive for everyday people to build out the network. The crypto reward system is clever, fair and motivating, and solves for the “chicken and egg” problem of wireless infrastructure deployment. The proof is in the pudding: more than 20k hotspots have been deployed in less than a year and there’s a multi-month waiting list for new hotspots, which in turn is attracting new hardware manufacturers. We’re looking to fund more software, data analysis, and educational projects, both small and large. I’m personally interested in: tools for connecting Helium to other projects, like wrapped-HNT and Rosetta integration end-user usability improvements like web wallets and a better Ledger app more data analysis of the network work, building on top of the the public DeWi ETL instance that we launched a few months ago We are open to other ideas too. Submit your proposals here or hit me up in the #dewi in the Helium Discord . --- # No compensation is worth the feeling of shame Date: 2021-01-29 URL: https://jamiedubs.com/blog/no-compensation-is-worth-the-feeling-of-shame/ I’m (finally) reading Skin in the Game by Nassim Nicholas Talib. The chapter on “Equality in Uncertainty” felt particularlty relevant to a post I saw this morning: Sometimes I would offer something for sale for, say, $5, but communicated with the client through a salesperson, and the salesperson would come back with an “improvement,” of $5.10. Something never felt right about the extra ten cents. It was, simply, not a sustainable way of doing business. What if the customer subsequently discovered that my initial offer was $5? No compensation is worth the feeling of shame. The overcharge falls in the same category as the act of “stuffing” people with bad merchandise. This hit me hard: “no compensation is worth the feeling of shame.” I’ve been in many executive meetings where people are trial-ballooning exploitive ideas and seeing what they might be able to get away with. They were usually pretty small: quietly removing some features from a particular paid plan, or deleting embarassing old blog posts. Sometimes they were egregious. One that will always bother me is when companies intentionally don’t explain how employee stock options work. Investors and executives know full-well that they’ll claw back 90% of those options when employees realize they have to buy the options upfront. Sometimes I objected in these meetings, but not always. The point Mr. Talib is trying to make is that we should always behave ethically, even when it’s not necessary. I’m reminded of Steve Jobs’s anecdote about his father spending as much time sanding the back of a piece of a furniture as the front. The ideal busines relationship would be one where everyone has perfectly shared information and aligned incentives, but those situations are rare. We should not overchage customers just because we can get away with it. We should act as if one day all of our emails and DMs will be public. We should pay people like they’ll eventually see everyone else’s salaries. And – most difficultly – we should speak up when we hear friends or coworkers trying to sneak one in. I think positive, moral behavior is contagious. Related is a comment from venture capitalist Chamath Palihapitiya this morning about passing on Robinhood: https://twitter.com/chamath/status/1354947541125611526 I’m not sure why you’d take a 2nd and 3rd meeting with a company that you thought lacked integrity, and I don’t know how much of this is posturing-in-hindsight. I’ll give Mr. Palihapitiya the benefit of the doubt. I applaud him passing on this particular money-making opportunity. Takeaways: ethics are in, pass it on play for the long-game behave like everyone will one day read your private emails --- # In defense of cryptoart Date: 2021-01-21 URL: https://jamiedubs.com/blog/cryptoart-and-climate-change/ Dr. Memo Akten recently published a scathing analysis of the carbon cost of cryptoart and non-fungible tokens (NFTs). By his math a single NFT sale requires about 340 kWh, which is equivalent to a European’s electricity usage for a month, or about a 2-hour roundtrip flight. Some people dispute the specifics of Dr. Atken’s numbers, but it is directionally correct. Today, Bitcoin and Ethereum are extremely energy-intensive and wasteful, by design. Because of this, Dr. Atken suggests artists should boycott those blockchains until they improve. Ethereum is the dominant platform for NFTs and so this essentially means a boycott of NFTs and cryptoart as a whole. I believe these carbon costs are short-term and outweighed by the long-term benefits of blockchains and the burgeoning ownership economy. Additionally, the systems are open-source and benefit from community participation today, and not after the waste issues are fixed. I encourage Dr. Akten and anyone reading this to reconsider their boycotts for a few reasons: The high carbon costs of NFTs will decline dramatically. As Dr. Atken mentions, the carbon footprint of Ethereum will drop by multiple orders of magnitude as Proof-of-Stake and Eth2 roll out over the next year or two. This upgrade has been in-development for 5+ years. I wish I could share similar timelines for the electrification of our cars and shipping fleets, which represent 30% of US carbon emissions[1] These projects are open-source and community-driven, and need smart people who want to make them better. This means folks just like Dr. Atken, who is both technically-adept and cares about building ethical systems. Many artists I’ve spoken with are citing Dr. Atken’s analysis as the reason they are not participating in cryptoart at all. If you see the potential of crypto but are trying to minimize your carbon footprint, you can help lobby for efficiency upgrades like lazy minting, or encourage your fellow artists and collectors to adopt Proof-of-Stake blockchains like Solana, Algorand, Flow and others. Opting-out only serves to reinforce the status quo and cement the priorities of incumbents. Helping artists earn a living, and creating new models for supporting the arts. Given the limited options for artists to make money, boycotting cryptoart feels shortsighted. Besides the short-term money-making opportunities, art is particularly well-suited to experimentation with new models around patronage, copyright and ownership. Crypto is also dominated by financial applications, and would benefit from the participation of artists and creatives; conversely, artists benefit from easy access to these alternative financial markets. Investing in systems that decentralize power. I believe crypto is inherently anti-corporate and represents one of the most signficant redistributions of control since the advent of the Internet. Bitcoin and Ethereum have proven to be robust financial systems that exist independently of any government or corporation. DeFi is a thriving alternative system for lending and borrowing money, divorced from banks and credit agencies. Replacing corporate monopolies–many of which are deeply complicit in creating the climate crisis–is worth the temporararily carbon costs. I have many other blockchain shortcomings to mention: claiming a free NFT cost me $30 in gas fees; the transaction speeds are hilariously slow; explaining the benefits of crypto to a layperson is nearly impossible; the tools for both users and developers are lackluster; there are tons of scams and shiesters in the space; I can continue. If blockchains were perfect, everyone would be using them already. For those who can contribute to making them into better systems, I’d encourage you to do so. [1] US EPA, sources of US greenhouse gas emissions https://www.epa.gov/ghgemissions/sources-greenhouse-gas-emissions --- # Live from FAT Gold (Thursday) Date: 2013-04-04 URL: https://jamiedubs.com/blog/live-from-fat-gold-thursday/ Turn on, tune in, talk some shit. (we’re on Twitter too: @fffffat) Livestream 1 Livestream 2 On tonight’s menu… 5-7 PM EST: Online: F.A.T. Public Access: “Graffiti Shit Talk” with KATSU and Mike Baca 7-9 PM EST: Panel: “Artists as Hackers” with Aram Bartholl, Tobias Leingruber, James Powderly, Evan Roth, Addie Wagenknecht, moderated by Christiane Paul 9-9:30 PM EST: Performance/Lecture: “Who Let Who Let the Dogs Out? Out” with Ben Sisto 9:30 PM-10:30 PM EST: Online: F.A.T. Public Access: “Technical Support Call-in Show” with Marko Tandefelt 11 PM EST: Event: Midnight Movies For the fullly enhanced shit talking experience, join #fatlab IRC chat This post also on: fffff.at (April 4, 2013) --- # ScratchML Data Spec Date: 2012-01-31 URL: https://jamiedubs.com/blog/scratchml-data-spec/ ScratchML, like GML, is an XML-based format for storing information about the position of the record and crossfader during a scratch performance. This is a “beta” release of the .SML file format, with sample data for 1 turntable and 1 crossfader. The format is designed to accomodate multiple turntables and crossfaders and a wide variety of data capture techniques, but we’ve only field-tested it against the basic 1 deck + 1 mixer scratch setup, which is what we were working with this weekend. The two most important fields are: <turntable> — stores data about the playback position on the record as a consistently sampled stream of floats, with <samplerate> samples per second. <fader> — stores data for crossfader movements, ranging from 0 (full-left) to 1 (full-right). This data is stored only when the fader actually moves, and is stored as <p> (position) and <t> (time) tuplets. Sample data produced by LM4K, mostly baby scratches and flares: XML / JSON Spec + commentary: ScratchML r6 beta spec: The ScratchML.com database can also automatically convert from XML to JSON for use in javascript visualizations. Change the .xml file extension to .json, and optionally pass a JSONp ?callback= parameter, like this. During Art Hack Day we converted SML to OSC and broadcast it over the wifi for realtime visualizations — more info to come about that. A raw .sml file, from the Art Hack Day photo set. This post also on: fffff.at (January 31, 2012) --- # Scratch Markup Language (.sml) Date: 2012-01-30 URL: https://jamiedubs.com/blog/scratch-markup-language-sml/ SML (Scratch Markup Language) is a new file format for recording and replaying turntablism. We’ve developed open-source tools for accurately capturing the record and crossfader movements of a scratch DJ, allowing us to analyze, transcribe, and recreate scratch performances. We want to do for turntablism what Graffiti Markup Language has done for tagging — especially teaching giant robot arms how to scratch. At Art Hack Day we collaborated with other artists and programmers to develop the first prototypes of ScratchML. We used timecode vinyl to capture record movements ($10) and a hacked VCA fader + Arduino to record the crossfader ($30). Scratch data was saved to disk as .sml and broadcast as OSC, which allowed other Art Hack Day participants to build visualizations based on what the DJ was scratching during the exhibition. The apps ranged from spinning-vinyl animations and TTM transcriptions to insane exploding 3D pizzas and a side-scrolling videogame shooter controlled by scratches. Our goal is to make capturing, replaying, and sharing a scratch performance accurate and easy. SML files can be freely uploaded and downloaded from the ScratchML.com database. We’re particularly looking forward to improving the experience of learning how to scratch — e.g. by building apps that show you just how accurate your autobahn scratches actually are. Throughout the week here on FAT we’ll be publishing ScratchML projects created during Art Hack Day, data specs, source code, hardware modification details and more. Want to get involved? Join the ScratchML mailing list, follow us on GitHub, or email me with any questions. More info to come at scratchML.com More photos here This post also on: fffff.at (January 30, 2012) --- # FAT vs. Art Hack Day Date: 2012-01-25 URL: https://jamiedubs.com/blog/fat-vs-art-hack-day/ Kyle McDonald and I will be developing a new project at the upcoming Art Hack Day in Brooklyn, which culminates in a public art exhibition at 319 Scholes on Saturday, 1/28 at 7pm. Internet, you are invited to attend. There will be art, technology, free beer (as in beer) and free source code (as in speech). and $3 beers. The source code remains free. Over the next few days Kyle and I will be working on the first prototypes of Scratch Markup Language, an open-source system for capturing, describing and digitizing turntablism. Want to get involved? Sign up for the ScratchML mailing list, follow @scratchML on GitHub or join #fatlab IRC and ping @jamiew This post also on: fffff.at (January 25, 2012) --- # Jdubs Video Xmix 2011 Date: 2012-01-02 URL: https://jamiedubs.com/blog/jdubs-video-xmix-2011/ My first music videos-only mixtape. Some of my favorites from this year (18 videos, 1 short film). Made with VHX. For maximum effect click & watch full-browser. Embed code: Playlist: This post also on: fffff.at (January 2, 2012) --- # Occupy Stats Date: 2011-10-24 URL: https://jamiedubs.com/blog/occupy-stats/ Check out our new stats page and see the over 500 websites that have installed the Occupy Internet widget and the # of hits and unique visitors they’ve generated to date. http://occupyinter.net/stats Coming in strong at #1 is tepco.researchlab.jp by Tokyo F.A.T., a protest of the Japanese power company’s wikipedia page — over 150k unique visitors in the last 72 hours. This post also on: fffff.at (October 24, 2011) --- # git-friendly: pimp your git workflow Date: 2011-09-26 URL: https://jamiedubs.com/blog/git-friendly-pimp-your-git-workflow/ git-friendly is a collection of shell scripts for automating common git actions: push, pull, branch, merge. I got tired of typing 3 or 4 commands to do such basic stuff, and now my life is awesome. push also copies a GitHub compare URL to your clipboard for easy pasting (!) pull will run commands like “bundle install” or “npm install” after finishing branch will track remote branches if available relevant commands stash & pop local changes as needed less time fighting git = more time actually doing work Check out the code and docs on GitHub To install, just copy/paste: bash < <( curl https://github.com/jamiew/git-friendly/raw/master/install.sh) Now get back to work: Just listen to what everyone is saying! “Amazeballs.” –@paul_irish “Don’t let git PUSH you around. git git friendly!” –Max Salzberg, Diaspora* “I am putting the fucking ‘technology’ back in Free Art & Technology” –yours truly This post also on: fffff.at (September 26, 2011) --- # Show me videos non-stop Date: 2011-09-15 URL: https://jamiedubs.com/blog/showmenonstop/ Type anything in the box for a continuous, full-browser stream of videos. Get as specific as you want, e.g. dogs welcoming soldiers home. I made this along with Chad Pugh and Casey Pugh at the 24 hour hackday.tv event this weekend. The app is just HTML & javascript using a customized VHX embed player — one with no play/pause button, cuz this is nonstop. » Click here for source code. See also: Music Video Genome — Pandora for music videos, powered by Last.fm + VHX This post also on: fffff.at (September 15, 2011) --- # Google’s Official List of Bad Words Date: 2011-07-28 URL: https://jamiedubs.com/blog/googles-official-list-of-bad-words/ If you type “fuck” or “shit” into Google’s new What Do You Love? service you are adorably redirected to “kittens” instead. I dug through their source code and extracted Google’s complete list of unspeakables, embedded below. Related: FUCK GOOGLE This post also on: fffff.at (July 28, 2011) --- # 3D or Bust Date: 2011-06-30 URL: https://jamiedubs.com/blog/3d-or-bust/ I’m honored to have my head 3D-scanned and printed out by MakerBot artist-in-residence Jonathan Monaghan as part of the “New York Notables” project . The collected mini-busts will be on display Thursday, June 30th 2011 at MakerBot HQ from 7-10PM (tonight!) at the BotCave. You can download a 3D model of my head from Thingiverse, as well as my fellow FATTIES Becky Stern and Chris “moot” Poole. Collect them all! This post also on: fffff.at (June 30, 2011) --- # FAT Lab Bumpers Date: 2011-05-03 URL: https://jamiedubs.com/blog/fat-lab-bumpers/ “Release early, often & with copyright infringement” Download (848×480, 627KB) –or– on Vimeo Jingle by Mike Rugnetta Motion graphics by Evan Roth Download (1280×720, 2.4MB) –or– on Vimeo Jingle by Mike Rugnetta Motion graphics by Geraldine Juarez Bonus Materials: Bumper #2 with alternate audio: Download (1280×720, 2.7MB) More bumper B-sides available here All of Mike’s “NBC vs. FAT” jingles… over 20 of them!: click here FAT Lab logos available here + vector versions by LM4K: .ai,.pdf The FAT Lab peacock, from the fffff.at logo gallery. This post also on: fffff.at (May 3, 2011) --- # “INTERNET FAME EASY AS 123” Date: 2011-01-26 URL: https://jamiedubs.com/blog/internet-fame-easy-as-123/ The talk I gave at Vimeo Festival in NYC (16 minutes — available here). Lessons learned from creating & publishing projects with FAT Lab, studying viral media with Know Your Meme and winning an Emmy with Star Wars Uncut. For more info about my work check out jamiedubs.com or @jamiew This post also on: fffff.at (January 26, 2011) --- # Blah Blah Blah Date: 2011-01-09 URL: https://jamiedubs.com/blog/blah-blah-blah/ Go to 3fram.es BLAH BLAH BLAH Post your URL to get added (or tweet @jamiew) Update (1/9/11 2:20pm PST): Update: (1/9/11 5:45pm PST): Update: (1/9/11 11:45pm PST): Even more… (1/11/11 2:18pm): Mike Rugnetta made the GIF that inspired all of this nonsense. Aaron Meyers is the man responsible for 3fram.es. For more fffffat projects like this click here. This post also on: fffff.at (January 9, 2011) --- # Animated FAT Portraits Date: 2010-11-24 URL: https://jamiedubs.com/blog/animated-fatframes-gif/ Made with 3fram.es by Aaron Meyers Some fellows not pictured… add yours in the comments This post also on: fffff.at (November 24, 2010) --- # GML Syntax Validator Date: 2010-09-02 URL: https://jamiedubs.com/blog/gml-syntax-validator/ Yesterday we announced the GML 1.0 spec, a canonical reference for what constitutes Graffiti Markup Language. Today I’m pleased to announce the GML Syntax Validator, a tool to help developers working on new GML applications debug & optimize their Graffiti Markup Language files. Just say “NO!” to bad GML. A “Validate This” button is now available in the sidebar of every 000000book tag page, or you can upload GML directly via file, form, or a simple API. Check out some example usage. This is a beta release and bugs/feedback are much appreciated — please email me & Evan or hit up your friendly neighborhood GML mailing list What does it validate? overall document syntax (valid XML) presence of all required GML tags (bottom of the page – drawing, stroke, tag, pt, x/y) verifies point data falls between 0.0 and 1.0 values client description (info about your app) your <environment> description (e.g. <up> vector & <screenBounds>, since all screens are different) recommendations — e.g. adding a consistent value, like an iPhone UUID or hashed computer MAC address. This allows users to enable 00000book [device pairing](https://fffff.at/000000book-more-tags-in-more-places) for tags uploaded from your app ![Speaks GML badge](/images/blog/gml-syntax-validator/speaks-gml.png) *The Speaks GML badge, for apps that read and write .gml files.* This post also on: fffff.at (September 2, 2010) --- # 000000book 1.2: More Tags In More Places Date: 2010-08-31 URL: https://jamiedubs.com/blog/000000book-more-tags-in-more-places/ We’re proud to present the latest version of 000000book.com (Blackbook), the open database for storing & downloading Graffiti Markup Language files. 000000book lets you upload your own GML tag data, browse others, and download any tag’s GML for playback in desktop apps like Graffiti Analysis 3.0 and web apps like Canvasplayer. Software developers can easily upload tags from their own graffiti applications using 000000book’s RESTful API, for which no signup or authentication is required. For more info check out our intro to 000000book and API docs. This release incorporates contributions from over a dozen members of the graffiti-hacking community, and GML-compatible applications are now available for tools like markers, lasers & eyetrackers, devices like the iPhone, iPad & Android phone, and bad-ass hardware like 6-axis CNC mills, automated paintball guns, and giant robot arms. We are not joking. Lifecycle of a digitized graffiti tag 000000book website updates Mobile device pairing – enter your iPhone, iPad or Android handset’s unique ID to automatically have your tags attached to your 000000book account – check out your settings page. GML image generators – no more ugly missing thumbnails! Apps can attach a custom image when uploading their GML tag data (e.g. FatTag Deluxe), but now 000book will create a thumbnail for those who don’t. Powered by the mighty GMLImageRenderer by Muharrem Yildirim (Python) – thank you! Multiple tag players – in addition to the Flash GML Player by Todd Vanderlin we’ve also integrated Canvasplayer, a simple HTML5 GML playback demo made using Processing.js. We’d like to add your apps too! Please get in touch if you are making something embeddable on a webpage. 000000book API updates Search tags by keywords – looking for all “katsu” tags? No problem. This powers Graffiti Analysis 3.0’s new “RSS tag feed” feature and is based on work by ps / TPOLM GML syntax validations – why did that tag upload fail? Now you’ll know! 000book will return errors, warnings & recommendations when uploading GML via the 000book API — interactive debugger coming soon. Post-upload redirect options – after uploading a tag you can choose to send the user to a custom URL, back where they came from, or to the previous page (via HTTP_REFERRER) Check out the API Docs for more info. Get Involved Writers – download DustTag or FatTag Deluxe (iPhone) or TouchTag (Android) and start uploading! Hackers – get on the GML mailing list and tell us about your projects! Questions & complaints always welcome Our IRC chat – irc://irc.freenode.net/#fatlab Organic, locally grown & 100% open-source This post also on: fffff.at (August 31, 2010) --- # Jdubs Summer Mixtape 2010 Date: 2010-08-04 URL: https://jamiedubs.com/blog/jdubs-summer-mixtape-2010/ click to play Listen online here (Muxtape mode) Download MP3s (116MB .zip) Selected tracks from albums & mixtapes I have been enjoying this season. 01 – Intro – “FAT vs. NBC 6b” by Mike Rugnetta (unreleased) 02 – Javelin – C Town (No Mas) 03 – The Asteroids Galaxy – Lady Jesus (Fruit) 04 – Sporto Kantes – Lee (2nd Round) 05 – M.I.A. – It Takes A Muscle (Maya) 06 – MIDIMarc- Machine Gun Funk (mixtape) 07 – Wax Tailor – Until Heaven Stops The Rain Instrumental (In The Mood For Life) 08 – Lissie – Pursuit of Happiness (live Kid Cudi Cover – YouTube) 09 – Kid Cudi – ’09 Freestyle (mixtape) 10 – Thirstin Howl III – Walk The Walk, Spit The Spit, Part 2 (Skilligan’s Island) 11 – Pharcyde – Runnin (Rmxxology) 12 – Wu-Tang Clan vs. The Beatles – Uh Huh (mixtape) 13 – Lazerproof – Independent Kill (mixtape) 14 – Paul Wall – Round Here (Heart of a Champion) 15 – Boy 8-Bit – Cricket Scores (Suspense is Killing Me) 16 – Hot Chip – I Feel Better (One Life Stand) 17 – 50 Cent – Life’s On The Line Instrumental (Power of the Dollar) 19 – Francis & the Lights – It’ll Be Better (It’ll Be Better from CANTORA) 20 – Outro – ODB Schoolteachers « previous mix: Theo – next mix: ??? » This post also on: fffff.at (August 4, 2010) --- # Google Alarm on CNN Date: 2010-08-03 URL: https://jamiedubs.com/blog/google-alarm-on-cnn/ Click here to watch on Vimeo Download/read more about Google Alarm: fffff.at/google-alarm. For more FAT browser add-on projects visit ARTZILLA and follow @artzillaorg Additional Google Alarm press: NPR interview — APM Marketplace — more… This post also on: fffff.at (August 3, 2010) --- # Quotable Kanye – Twitter Edition Date: 2010-07-30 URL: https://jamiedubs.com/blog/quotable-kanye-twitter-edition/ We’ve updated The Quotable Kanye with some choice @KanyeWest tweets, adding to selections from his infamous ALLCAPS blog rants. Welcome to Twitter Mr. West! A Quotable Kanye API is also available: TXT / XML / JSON Source code is available here More from the archives… FAT Kanye Week This post also on: fffff.at (July 30, 2010) --- # Google Alarm Date: 2010-07-27 URL: https://jamiedubs.com/blog/google-alarm/ Google is collecting a lot of data about how we use the web. The new Google Alarm Firefox addon visually & audibly alerts you whenever your personal information is being sent to Google servers. Click here to install: No-sound version (workplace-friendly) is also available: click to install Chrome extension now available (beta): click to install No sound version: click to install Even outside Gmail and YouTube you are constantly sending Google your information through their vast network of “tracking bugs”: Google Analytics, Google AdSense, YouTube embeds, API calls… all of this data can be used to monitor & track your personal web browsing habits. Google Alarm shows notifications, plays sound effects and keeps running stats about the % of websites you’ve visit with Google bugs present. Stay alert – install Google Alarm today. Screenshots: Click here for more images. Source code: http://github.com/jamiew/google-alarm (MIT licensed) More information on jamiedubs.com. Originally developed during FUCK GOOGLE @ Transmediale 2010. Thanks to Evan Roth, Tobias Leingruber and Aram Bartholl for advice & assistance. For more of our creative browser addon work check out ARTZILLA. The fake Google Street View car FAT Lab drove around Berlin during FUCK GOOGLE week at transmediale 2010, the week Google Alarm was written. From the fffff.at photo galleries. This post also on: fffff.at (July 27, 2010) --- # #000000book, the GML database Date: 2010-01-14 URL: https://jamiedubs.com/blog/000000book-the-gml-database/ 000000book.com (“Blackbook”) is a new website for archiving and sharing motion-captured graffiti tags. Tags are saved as Graffiti Markup Language (GML) files, which can be created with freely available software like Graffiti Analysis, Laser Tag, and with our two new iPhone apps, DustTag and FatTag Deluxe: Katsu Edition. Anyone can easily upload GML to #000000book through our open API, and the aforementioned iPhone apps have 000000book.com upload built-in — download the app, start tagging, tap ‘upload’, and see your work immediately featured on the frontpage. By registering on #000000book you can link your iPhone (or any other device) and your uploads will be automatically added to your account. While browsing the site you can also mark tags as ‘favorites,’ and leave comments/talk shit. And each user has a profile page that shows off their bling: For example: Tempt1 uploads tags from his EyeWriter in LA, and Katsu and AVONE have been uploading some dope tags from their phones: Image lost: upload.jpg (Katsu vs. James Cameron, from 000000book.com) Katsu vs. James Cameron, created with FatTag Deluxe Programmers & artists can then download your GML data and render the tags in any conceivable way, shape, or form. Since our launch last week we’ve already seen a number of amazing GML-based projects: Robotagger draws graffiti tags with an 8-foot robotic arm (seriously) Baybayin Motion Analysis uses GML to capture & study a pre-Filipino writing system Experimental Flash 3D Renderer (Flash) by Ben Hopkins (Kode80) GML particle system rendering (Flash) by DIZGID Developers: we’re compiling API documentation to get you started pulling in GML and/or uploading your own data, as well as sample drawing code for Flash, C++, Javascript and more. Discussion & brainstorming is happening on our mailing list and in #fatlab IRC Make sure to submit any applications you create — if it runs inside a web browser (e.g. Flash, Javascript or Processing) it can even be used by #000000book visitors to preview tags! From a tag on the wall to a GML file to the browser. From the fffff.at photo galleries. This post also on: fffff.at (January 14, 2010) --- # Canvasplayer: Draw GML with Javascript Date: 2010-01-11 URL: https://jamiedubs.com/blog/canvasplayer-draw-gml-with-javascript/ Canvasplayer is a lightweight Javascript-based Graffiti Markup Language (GML) player built with Processing.js, HTML5 canvas, and JSON callbacks. A simple example of pimping “GSON” data from the #000000book GML database — no fancy XML parsers required. Demo: jamiedubs.com/canvasplayer Code: github.com/jamiew/canvasplayer Interested in working with GML? We’re coordinating via #fatlab IRC and a newly created GML mailing list. GML Webring: intro / recent projects / GML spec / data (#000000book) This post also on: fffff.at (January 11, 2010) --- # Jamie Dubs XMIX 2009 Date: 2009-12-28 URL: https://jamiedubs.com/blog/jamie-dubs-xmix-2009/ Some of my favorite music from 2009. Congrats to Tracky Birthday on the birth of his new son. Thx to Evan for turning me onto Kid Cudi. Thx to my beautiful new wife Ireneface for Hooded Figures –their singer is only 10 years old! And thx to Blakroc, who help prove my theory that all rock bands secretly wish to be the backing band for sick rappers. Listen online: https://fffff.at/fuckflickr/jdubs-XMIX09/ Download MP3s (86MB .zip): https://fffff.at/2009mixes/jamie-dubs-XMIX-2009.zip Track listing: We Got The Internet Goin’ Nuts (Sample) Brother Ali – The Preacher MF DOOM – That’s That Lupus – After Tears (Interlude) Blakroc – Telling Me Things (ft. RZA) Virtu-oso – The Truth (Action Movie) KiD CuDi – CuDi Get Machinedrum – Para Did Dj Mehdi – Lucky Boy ft. Fafi Tracky Birthday – Websiiite (with Dragan Espenschied) Jay-Z – Off That (ft. Drake) DJad – J((-1×5)+2×3)[(D3÷(9÷3)]+(L-O-L)+O= JxAxD = JAD Virtu-oso – The Cowboy (ft. Infinite Livez) MF DOOM – Rap Ambush Clark – Growls Garden Hercules and Love Affair – Blind Tracky Birthday – Good Bye (with Roglok & Vernon) Notorious B.I.G. vs. Miley Cyrus – Party and Bullshit (in the USA) Virtu-oso – Missing Reels Clip Hooded Figures – Comes A Time This post also on: fffff.at (December 28, 2009) --- # Kanye Webst Roundup Date: 2009-05-18 URL: https://jamiedubs.com/blog/kanye-webst-roundup/ We’d like to thank everyone that participated, published and put up with our week of Kanye Webst. We know there are more important issues going on the world so thanks for indulging with us in seven days of hip-hop, caps lock, source code and popular culture. The week produced 12 new projects, 5 sets of source code, 81 comments and 27 user uploaded images. Kanye Webst Week has been the biggest traffic week in FAT history to date! Over 70,000 visits: Digg: 680 diggs, 148 votes [frontpaged] (+3) Reddit: 70 upvotes & 15 comments across 7 stories: 1, 2, 3, 4, 5, 6, 7 Twitter: 300+ mentions Some of our projects were frontpaged on Digg, Gizmodo, Gawker, PSFK, todayandtomorrow.net, BuzzFeed, Rhizome, urlesque, A-Trak’s blog, Village Voice, National Post, and ANIMAL among many others (thanks for the love). Pretty much everyone but the man himself, which leaves us asking only one question… WHERE ARE YOU YEEZY?!??!??!! FOR REAL, CAN WE GET SOME BLOG LOVE?!??!??!??!?!?! To relive Kanye Webst Week again and again go to: https://fffff.at/tag/kanyewebst This post also on: fffff.at (May 18, 2009) --- # KANYE RANT DETECTOR Date: 2009-05-14 URL: https://jamiedubs.com/blog/kanye-rant-detector/ ADVANCED FAT LAB TECHNOLOGY DETECTS KANYE BLOG RANTS AND ALERTS TO TWITTER IN REAL-TIME. STAY ALERT. STAY SAFE. SUBSCRIBE TO THE KANYE RANT DETECTION SYSTEM → SOURCE CODE (RUBY+MECHANIZE) BY JAMIE WILKINSON & EVAN ROTH Help essay Without daily intriguing Help essay , life in company will be principally just hard. From the fffff.at Kanye Webst gallery. This post also on: fffff.at (May 14, 2009) --- # QUOTABLE KANYE Date: 2009-05-12 URL: https://jamiedubs.com/blog/quotable-kanye/ UPDATE: NOW FEATURING AN API → TEXT, XML, & JSON THE QUOTABLE KANYE… RANDOM YEEZY WISDOM ON EVERY PAGE LOAD!! A JDUBS & IRENEFACE PRODUCTION STAY TUNED TO FAT LAB KANYE WEEK FOR ADDITIONAL KANYE RANT TECHNOLOGY This post also on: fffff.at (May 12, 2009) --- # Invasion of the IRC robots Date: 2009-05-04 URL: https://jamiedubs.com/blog/invasion-of-the-irc-robots/ __ _ _ _ / _|__ _| |_ | |__ _| |__ | _/ _` | _| | / _` | '_ \ |_| \__,_|\__| |_\__,_|_.__/ I have recently constructed the first Fatbot to do our bidding. If you say one of several keywords in the #FATLAB IRC channel the fatbot will look up some information for you. Fatbot currently responds to: !meme — auto-generate an internet catchphrase from Automeme API !swineflu — print latest stats from the CDC. Ex. 1: <jamiew> !swineflu <fatbot> U.S. Human Cases of H1N1 Flu Infection: 226 cases, 1 death -- http://www.cdc.gov/h1n1flu/ <jamiew> !meme <fatbot> YOU HAVE NO CHANCE TO GET LAID, MAKE YOUR TIME fatbot was made with ruby & isaac. This post also on: fffff.at (May 4, 2009) --- # Fuck Twitter, We’re Out Date: 2009-05-01 URL: https://jamiedubs.com/blog/fuck-twitter-were-out/ The information superhighway was not meant to be controlled by any one company. FuckTwitter is the latest part of the F.A.T. Lab’s ongoing efforts to cloud off the grid — Fuck 2.0, host your own. Do you know what Big Web2.0 is doing with your data? AOL Hometown suddenly closed up shop, without warning all the people who had websites there Facebook wants to own anything you post, ever even friggin’ Geocities is going offline … who can you trust these days? That’s right. Nobody. You can use our install, you can install your own, and with federation technology we can even mesh our installs together like a friggin open-source Voltron You can also enable automatic crossposting to a regular ol’ twitter.com account… you know, 4 the famo FuckTwitter is powered by the open-source laconica microblogger — our fork is on github. This post also on: fffff.at (May 1, 2009) --- # HACKER WAR – FAT Lab vs. NYC Resistor Date: 2009-02-17 URL: https://jamiedubs.com/blog/hacker-war-fat-lab-vs-nyc-resistor/ Saddle up ffffatties, the hackers of NYC Resistor have challenged us to a one month Internet fame-off and it’s on. They don’t know who they’re messing with! Feb 15th – March 15th — website hits, YouTube views, Twitter followers, Facebook fans, RSS subscribers… whoever posts the biggest gains wins. Grading will be conducted by Internet Famous Class technology. Official war page w/ preliminary stats is available here. Join up with the FAT Army and help us go big: sign up for our new Facebook group follow twitter.com/fffffat to receive frontline dispatches (also Tobi, Aram, Becky, and myself) prepare to have your face melted by an amazing slew of new projects this month from the FAT tell your friends It’s go time baby! Scheme in the comments This post also on: fffff.at (February 17, 2009) --- # Firefox Art panel at ROFLTHING NYC Date: 2009-01-23 URL: https://jamiedubs.com/blog/firefox-art-panel-at-roflthing-nyc/ I’ll be moderating a panel at the ROFLCON NYC event this Saturday (Jan. 24th) with fffffellow ffffatties Steve Lambert and Tobi Leingruber (@ 2:45pm; just before Bre Pettis among others) We will be talking about Firefox-based art projects like Add-Art, China Channel, Tourettes Machine, and how to win the internet We’ll also present Artzilla, our new repository for Firefox add-on projects usually denied from listing on the addons.mozilla.org universe for being *cough* “useless art.” New York City ROFLThing *When:* January 24th, 2009 *Where:* Santos Party House (96 Lafayette Street, Manhattan, NY) Featuring Alexis Ohanian (Reddit), Charlie Todd (Improv Everywhere), the creator of Comic Sans, the founder of 4chan, Bre Pettis and a host of others to be announced. reblogged from jamiedubs.com This post also on: fffff.at (January 23, 2009) --- # Obama Wikipedia page edits Date: 2008-11-07 URL: https://jamiedubs.com/blog/visualizing-obama-wikipedia-page-edits/ A visualization of people who’ve contributed to the Barack Obama page on Wikipedia. Users who edit a lot drift toward the center. Best watched full screen in HD! Visualized using code_swarm (Processing) and my new Wikipedia page history parser Wikiswarm (Ruby). Code and instructions on how to make your own visualizations can be found in the README or on jamiedubs.com Music is from DJ Z-Trip’s Obama Mix. This post also on: fffff.at (November 7, 2008) --- # Zombie Nation Date: 2008-10-16 URL: https://jamiedubs.com/blog/zombie-nation/ John McCain: Jamie Dubs: Xelia: fokiesd: Joe: I’m archiving any and all photos at fffff.at/fuckflickr/zombie-nation. Do the zombie shuffle and leave a comment! This post also on: fffff.at (October 16, 2008) --- # Oprah’s Linux Club Date: 2008-10-04 URL: https://jamiedubs.com/blog/oprahs-linux-club/ Join me and Steve Lambert this afternoon for the inaugural Oprah’s Linux Club. All manner of experience levels welcome. And, of course, free Chevy Tahoes under every seat! 3 – 6pm this afternoon (Oct. 4th) at Eyebeam, 540 W. 21st St reblogged from jamiedubs.com This post also on: fffff.at (October 4, 2008) --- # Scratch my Internet memes Date: 2008-09-15 URL: https://jamiedubs.com/blog/scratch-my-internet-memes/ A demonstration of the new Meme Breaks 1.0 scratch record. Instrumental: Black Star, “Respiration” from jamiew on Vimeo Meme Breaks 1.0 The Internet’s most famous audio samples, now in DJ-friendly format. » Download MP3 in this volume: Will It Blend? All Your Base Are Belong to Us Rickroll Corey Delaney & his famous glasses Grape Lady Peanut Butter Jelly Time Don’t Tase Me Bro Combo Breaker Dramatic Chipmunk Angry German Kid It’s Over 9000 Snakes On A Plane 300/This is Sparta Fall of Edgar Leeroy Jenkins More info: jamiedubs.com/meme-breaks This post also on: fffff.at (September 15, 2008) --- # ASCIIROLL Date: 2008-09-15 URL: https://jamiedubs.com/blog/asciiroll/ ....,.,,,:,,..,,,,....,,,,,:::::;;;;;:::,,,,.....,,,::;:;;;;;::::::::,,,,,:::::::::: .. .....,,.,,,,,,,.. . ..,,,,,,,,::,,.. ........... . ....,::,..,,,,...,,,:;;;::;::;;;;;:::::,,....,,..,,,::::,:,,::::::,,,,:::::::::: . .....,,,........,:::;;;:;;::::;r;:::,,,,:,:..,,..,:,::::,,,:::,,,,,,,,:::,,,,,,, ,,.......,,,.........,:::::;:::;:;;rrsX332i:,,,,,,,.,,,,:;;::,,,:::;;;::::,,,,,,,,,, ::,..,,.,:,.........,,,,,,::::;;s2XAA#@@@@@BGS;,,,,::::::;:,,,,,:;;;;;::::,,,,,:,,,, ,,...,,.,:. .,,,,,,,,,,,:::::5#@@#@MH##MM#@B;.,,..,,::;::,::::;;;;;::::,,,,,,,,,, ,:,. .... ...,,,,,,,,,,,:::;;2B#@####@@@@@@@Mr,:....,,:::,,:::;;;;;;;::::,:,,.... ,,,.. ..,..,,,,,,,,,,::::,::;:;XBHBAHA3X2iSG#@@i,:::::,,:;:,,::;;;;;;;;;:::,,,..... ,,,,,, ,,,,,,,,,,,,,,,,,:::;;;riSir;;;:;::,:SM@i,:;;;;:,::,::;;;;:;;;;;;:::,.....,, ,,,,,,...,:,,,,,,,,,,,,,,,,:::sH5rsrr;;rrr;;:rG#5,:;;;;;::::;;;;;;;;;;;;;;:,....,,,: ,,,,,,,,,,,,,,,,,,,,,,,,,,,,..rBSs52isssr;;;;shBi:;;;;;;;;;;;;;;;;;;;;;;;;:,..,...,, ,,,,,,,,,,,,,,,,,,,,,,,,,...,,:2iShAG95i3&3Ssr3H;::;;;;;;;;;;;;;;;;;;;;;;;,,,::,,,,, ,,,,,,,,,,,,,,,,,,,,,,,....,:,.;;23XX92rs5XSrrXX,:;;;;;;;;;:;:;;;;;;;;;:;:,:::::,,,, ,,,,,,,,,,,,,,,,,,,,,,.. ...,s,,i5ii2Sr;rsrrrii;:;;;;;;;;;::;;;;;;;;;:::,,,,,::,,,, ,,,,,,,,,,,,,,,,........ .....2r;52XX32isir;rrss;;;;;;;;;;;;;;;;;;;;;;:,,::,,,,::::: .,::,,::,,,,,,.. ...,,,,,:r;S22SSsrrrrrrrs;:::;;;;;;;;;;;;;;:,,,,,,,,,,,,,,::,, ,,,,,,::,,:,:,,,,.,,,,,,,:::::::;S229&322Xirsr;,,::;;;;;;;;;;;;;:,,,,,,,...,,:;;:,,. ,,,,,,,,::::::,:::::::::::::;:;::sX23hX2Xirss::;;;;;;;;;;;;;;;;;;;;;r;;::::;;;;;;;;: ,,,,,,,,,::::::::::::,,,,:::::::,:S5S5iirrrsir:,:::;:;;;;;;;;;;;;;;;;;;::::;;;;;;;;: ,:,,,,::::::::,:,,,,,,,,,,::::::::rs55ir;rrsirA2, .,,::;;;;;;;;r;;;;;;;;;:::;;;;;;;: .,,,,,::,:::::,... ....,,..,,:iX252Ssrrsi:M@#2r:,,,,::::;;;;;:,,,,,,....,,:::,,. ,:::::::::::::,,........ .;;ir,SAGhGA9irsSr,3@@@@@@#&5sr;:::::;::,,,,,. ....,,.,.. ,::,,,::::::::,,,,,,. .,:;5B##@i,sX;;rr5XX2i,.5@@@@@@@@@@@@@H2r:::::,,,,.....,:,,,,, :;::::::::,::,,,,,..,:sX#@@@@@@r,.;i22iXAXr:.:G@##@@@@@@@@@@@@@@5,:;::::,,,,,,:,,,,, :::::::::,,,:,.,,:;ih#@@@@@@@@#;;:;Xh3SSi;,,,2@#MM##@####@@@@@@@@r,;;;;;;::::;:::::: ,::::::::,,,:,..:2@@@@@@@@#@@@@r,,;23XSr,.,:h@@####@##M##M####@@@3,,::;;::,:,,,,,.,, :::::::::,,,:,,.:M@@@##M####@@@#BB3X33SsXXSh@@####M##MM####M##M#@#,,:::::::,,.,,..., :::::::::,,,,,..r@@@#MMM#####@@@@@HS23ii&AA#@#######MM#####M####@@r.:::::::,,,,,,.., ::::::::::,::::.S@@##########@@@@@MXS22Xh9&##############@#M##@#@@9.,:;;::,,,.,,,... ;;:::::::::::;:.5@@#############@@#2;;X9GGA##MMMMMM#############@@#:,:;;:::::,,:,... ;:::;;::::::::,.X@@#############@@@2::XG39A###MMMMM########@@@@##@@i,::;;::::,,:,.., ;:::;:::::::::.:A################@@X,,X&39M###M##########M#@@@@#@@@h,::::,,,,.... ;;;;;:::::::::,r@@@####@##########@&,;X&hG####MAGB@@##@###M#@@@@#@@#:.:;;:::,,,,,... ;:;;;;:::::::,.s@@#####@#########@@@25&AAA#####hrsB@@@@#@MM@@@@@##@@#s,,,,,,...,,... ;;;;;::::::::,.5@@###@#@@########@@@&9A&&H####@#Xs5H##@@@##@@##@@#@@@@A:.......,.... ;;;;;::::::::. 2@######@@#@#######@@29Ah&BMM###G5s;;;;iH@@#@@@@@####@@@@r..,,,,::,,, ;;;;:::::::::. 2@@##@###@#########@#3hA&AM###MA5iisir;;X@##@@@@@@#@@@@@@@,.,:,,:,,,, :;;;;::::::::. 3@@hXM@#@@@@#######@#99GGAH##M##h5SSSisrSB@@@@@@@@@@@@@@@2...,....... ;;;;;::::::::.,A@3riH@@@#@@####@##@#XhAAHB@@#@@B2555isrr2@@@@@@@@@@@@@@X .,,.,,,... ;;;;;;::::,::,s@@5iiSG@@@#@@@#####@@3hAABB@@@@@#G2iSirrrsH#######@@##@@B: ,::,,,:,.. ;;;;;:::::::,:BG:;;rrsA@@@@@@#####@@23AHMM@@@@@@@@@Mhir;sH###M#######@@@M,.,:,,::,,, ;;;;;:::::::,,i,:rr;r;sH@@@@@@@@@#@@XGBMM#@@@@@@@@@@@&253############@@@@s.,::,::::: ;;;;;:::::::,.ri2X5rrrrB@@@@@@@@@#@@3&BBM#@@@@@@@@@@@@@@@@############@@@r.:::,::::: ;;;;;:::::::..&G3hXiss;h@@@@@@@@@@@#2ABB#@@@@#@@@@@@@@@@@@#HHB#########@&..,,,,,:::: ;;;;;:::::::.:@H53XSrr;A@@@@@@@@@@@#2AM#M##@##@@@@@@@@@@@@#&&B#@@@@#@@@&:.,::::::::: ;;;;;:::::::..532B&95SA@@@@@@@@@@@@#X#@#M#@##M#@@@@#HB#@@@@@@@@@@@@@BX;,,:;;;::;;::: ;;;;;::::::::,.;A@@@@@@@@@@@@@@@@@@M2#@MB#@@##@@@@@#HH@@@@@@5:;;;:,.. ,;;;;;;;;r;;; ;;;;;:::::,,,,. s#MXs;:G@@@@@@@@@@@BXM##M#@@###@@@@@@@@@@@@@; ..,:;;;;;;;;;;;;; ;;;;:::::,. 9@@@@@@@@@@@H3#@@@@@@##@@@@@####@@@@@5,,,::::::;;;;:::::::::: ;;;;;::::,. ... ..,#@@@@@@@@@@@B5B##AB@@###@@@@#######@@A::;;;;;;;;;;::::::::::: ;;;;:::::,,..,.,,::::.:@@@#@@#@@@@@H5&&2sS########@#@####@@@@i,:;;;;;;;;;::::::;:::: ;;;;;:::::,,,,,::::::,s@@@@@@@@@@@@A2Gh923#@#########@@##@@@@A,:;;;;;;;;;;::;;;;:::: ;;;;;;;;;;::::::;;;;:,G@@#@@@@@@@@@B2A&hXh#@######@@#######@@A:,;;;;;;;;;;;;;;;;;::: ;;;;;;;;;;;::;:;;;;;::&@@@@@@@@@@@@BXH&h23M@@######H########@#;:;;;;;;;;;;;;;;;;;::: ;;;;;;;;;;;;;;:::;;;::G@@#@@##@@@@@&3#&32XH@###M##irB@@#####@@r:;;;;;;;;;:;;;;::;::: ;;;;;;;;;;;::::::;;;::H@##@@#@@@@@@A9HG92XH@#####@H#@@@###@#@@i,:;;;;;;;;;;;;;;;;;:: ;;;;;;;;;;:;;:::::::,:B@@#@@#@@#@@@H3h&&X2h#@####@@@@###@@@@@@X::;;;;;;;;;;;;:::;::: ;;;;;;;;;::::::::;;:,:M@@@@##@@@@@@HX3hhX5X#@###########@@##@@A::;;;;;;;;;;;;::::::: ;;;;;;;;;::::::::;;:,;M@@@@@@@@@@@@AX33XX23#@###############@@@r:;;;;;;;;:;;;;;;;;:: ;;;;;;;;;::::::::;::,:M##@@@@@@@@@@G22X3X2X#@@@##############@@i,:;;;;;;;;;;;;;;;;;: ;;;;;;;;;::::::::;::,;#@@@@@@@@@@@@&2523322B@#@##############@@5,:;;;;;;;;;;;;;;;;;; ;;;;;;;;:::::::::::;,r#@@@@@@@@@@@@&2S52X22H@@@@###########@#@@X::;;;;;;;;;;;;;;;;;; ;;;;;;;;;:::::::::;;,r@@#@@@@@@@@@@&2555552B@#@@#############@@h::;;;;;;;;;;;;;;;;;; ;;;;;;;;;;:::::::;;;,S@@#@@@@@@@@@@&SS522i5#@##@###@@@@##@####@B;:;;;;;;;;;;;;;;;;;; ;;;;;;;;;;::::::;;;:,9@#@@@@@@@@@@@&iiS22S5M@#@####@@@######@@@X::;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;:,5@##@@@@@@@@@@A25222SX@@#@@##########@@@@@i,:;;;;;;;;;;;;;;;;;; :::::::::::::::::::::iH######@@@@@HXiiisrs9###############MAG5r::::::::::::::::::::: Restored in 2026 from the Wayback Machine. Original post date is approximate. --- # 36 Desktop Player Date: 2008-08-29 URL: https://jamiedubs.com/blog/36-desktop-player/ Enjoy Theo’s 36 M@fia Player without a web browser. → Download 36.app (Mac-only) Made with Fluid; Windows & Linux coming soon via Mozilla Prism This post also on: fffff.at (August 29, 2008) --- # Powderly discusses his detainment & interrogation Date: 2008-08-27 URL: https://jamiedubs.com/blog/powderly-discusses-his-detainment-interrogation/ via Rocketboom more at artnet, and the Brooklyn Paper This post also on: fffff.at (August 27, 2008) --- # Fix the new Facebook design Date: 2008-07-24 URL: https://jamiedubs.com/blog/fix-the-new-facebook-design/ I’m a fan of the new Facebook design. I had a few issues, though, so I made a Firefox extension to make it more readable (and remove all the ads). See the before and after screenshots below. » Click to install ‘Fix New Facebook’ (hassle-free!) Before The changes… After The extension is simply a compiled Greasemonkey userscript that adds a few CSS styles → fix-new-facebook.user.js originally posted on tramchase.com This post also on: fffff.at (July 24, 2008) --- # ROFLMAOBBQ Date: 2008-06-13 URL: https://jamiedubs.com/blog/roflmaobbq/ “when LOL just doesn’t cut it.” Printed on high-quality Apparelle Americaine, available in the FFFFF.AT T-shirt Shoppe This post also on: fffff.at (June 13, 2008) --- # Tonight! Serious Business Party + open bar Date: 2008-06-07 URL: https://jamiedubs.com/blog/tonight-serious-business-party-open-bar/ Another free dance party from FFFFF.AT DJ crew, this time a Saturday gig. Disco, boogie, funk, hip-hop, 9pm ’till late late late Open bar starting at 9pm, sponsored by Rocketboom & blip.tv (say ‘rocketboom’ or ‘blip’ at the door). Internet Week celebration, Brooklyn style. Savalas, 285 Bedford Ave [map] Williasmburg Brooklyntown USA DJs: Mike McGill Bennett4$enate Biedermann Jamie Dubs MP3s from our last jawn: fffff.at/audio/Savalas 05.29.08 This post also on: fffff.at (June 7, 2008) --- # Add-Art Rapstructions Date: 2008-06-04 URL: https://jamiedubs.com/blog/add-art-rapstructions/ Dudes. Steve’s giving out $100 to make a remix of his Add-Art screencast. Here’s mine. It only took me 10 minutes. Holy crap, if I win I’d be getting paid $600 per hour. Jamie Dubs – “Slambertcast” (3.1MB MP3) Audio file lost. It was at http://tramchase.com/audio/jdubs_slambertcast.mp3. This post also on: fffff.at (June 4, 2008) --- # Internet Famous Class Date: 2008-06-03 URL: https://jamiedubs.com/blog/internet-famous-class/ Image lost: famo-stacked.jpg Course Website: internetfamo.us/class Instructors: Jamie Wilkinson, James Powderly, Evan Roth Parsons: Fall 2007, Fall 2008 Just because a lot of people see your work doesn’t mean it’s good… but it does mean you’re famous — Internet Famous. This course dedicated to learning how to spread your work to the widest possible audience online. We are going to study the art and science of getting hits. Internet Famous is the first algorithmically graded class in the history of academics. Custom Famotron software determines each student’s grade based on a quantitative measurement of their web fame. Image lost: class-graph.png This post also on: fffff.at (June 3, 2008) --- # Andy, You Forgot The Rap Music Date: 2008-05-24 URL: https://jamiedubs.com/blog/andy-you-forgot-the-rap-music/ Update: there are more burger vids here A Warhol response video Eating A Hamburger (w/ Rap Music) from jamiew on Vimeo. Music: “Vibrationz” and “Beyondce” by Javelin This post also on: fffff.at (May 24, 2008) --- # It’s Fun To Do Bad Things Date: 2008-05-16 URL: https://jamiedubs.com/blog/its-fun-to-do-bad-things/ 7-year old Latarian Milton stole his grandma’s car and beat her up at Wal-Mart. Let us immortalize… BUY NOW This post also on: fffff.at (May 16, 2008) --- # Fuck Flickr, Yahoo is a narc Date: 2008-05-12 URL: https://jamiedubs.com/blog/fuck-flickr-yahoo-is-a-narc/ Shi Tao is serving a 10-year sentence in prison for writing articles calling for political reform in China. Yahoo helped put him there. FuckFlickr is open-source image gallery software that won’t narc you out. We created it as an alternative to hosting your photos on a certain Yahoo-owned photo sharing site. Download FuckFlickr 2.0 (PHP, 268kb .zip) Check out our install at fffff.at/fuckflickr. For the full feature list, installation instructions and development info click here. A big shoutout to Greg Leuch for serious code contributions to 2.0 — big plans for the future, too, like video support and Hydra-style federation. Oh, and version 2.0 has support for themes — drop yours in the comments. FREE SHI TAO (VIDEO) This post also on: fffff.at (May 12, 2008) --- # Disable Firefox addon compatibility checking Date: 2008-04-18 URL: https://jamiedubs.com/blog/how-to-disable-firefox-addon-compatibility-checking/ Rollin’ with the slick new Firefox 3 beta yet? Sadly when I fired it up it sez to me “some of your extensions are incompatible with this version of Firefox”. It’s full of shit. Here’s how to get around it: » click for full quality video Instructions (via): visit the URL “about:config” right-click -> New -> Boolean name: extensions.checkCompatibility value: false Restart Firefox ???? PROFIT! This post also on: fffff.at (April 18, 2008) --- # Serious Biz party this Thursday Date: 2008-03-24 URL: https://jamiedubs.com/blog/serious-biz-party-this-thursday/ Bear Stearns may be biting the dust… but SERIOUS BU$INESS always pays dividends. Dance party, this Thursday! March 27th, 2008 SAVALAS 285 Bedford Ave, just below Grand St. F R E E all night 10pm – ?? F.A.T. D.J. C.R.E.W. Bennett4Senate – Mike McGill – Alex Biederman – Jamie Dubs Try before you buy: More MP3s from the last show: fffff.at/audio Even more! fffff.at/serious-business This post also on: fffff.at (March 24, 2008) --- # fffff.at traffic visualization #1 Date: 2008-03-19 URL: https://jamiedubs.com/blog/fffffat-traffic-visualization-1/ A gl_tail visualization of the fffff.at traffic logs, at 2x realtime. Recorded March 12th, 2008 at 12:30pm. This post also on: fffff.at (March 19, 2008) --- # New shirts blur line between internets, IRL Date: 2008-03-18 URL: https://jamiedubs.com/blog/new-shirts-blur-line-between-internets-irl/ Fresh additions to the FAT TShirt Shoppe! Cheezburglar source code (SVG) ORLY? source code (SVG) Image lost: killin-it-oj.gif This post also on: fffff.at (March 18, 2008) --- # How to curate yourself past the Anti-Bornsky Date: 2008-03-15 URL: https://jamiedubs.com/blog/how-to-curate-yourself-past-the-anti-bornsky/ In the beginning, Borna curated himself into the New Museum Tobi-x responded w/ the Anti-Bornsky, a Greasemonkey which locks a browser to a select list of websites, to be used on the kiosks in the new show at Eyebeam… thx to yatta for the video. Now rockin’ it up on the new F.A.T. Channel on Vimeo. This post also on: fffff.at (March 15, 2008) --- # Mixtape: Jdubs Live & Dangerous 1-30-08 Date: 2008-02-26 URL: https://jamiedubs.com/blog/mixtape-jdubs-live-dangerous-savalas-1-30-08/ download free MP3 Image lost: savalas-livendangerous.png Audio file lost. It was at http://tramchase.com/audio/jdubs-savalas-1-31-08.mp3. My set from the $erious Bu$iness party last month @ Savalas in Williasmburg. Peep all the recordings from the crew, complete with disco lazers. Do not sleep on the serious.biz party coming up THIS THURSDAY Feb. 28th x-post from tramchase.com This post also on: fffff.at (February 26, 2008) --- # Serious Business in Crooklyn this Thursday Date: 2008-02-26 URL: https://jamiedubs.com/blog/erious-buiness-in-crooklyn-this-thursday/ It’s time for another night of SERIOUS BU$INESS. FAT DJs will be continuing our monthly get-together at Savalas in Williasmburg this Thursday, Feb. 28th, 10pm – ??? A night of voco-soul, boogie cruisers, street beat, and body disco selected and mixed for the dance floor. with yr DJs Alex Biederman Mike McGill Bennett4$enateJamie Dubs Thurs, Feb 28th @ Savalas 285 Bedford Ave (@ South 1st) 10pm-4am 20ish+ L train to Bedford Ave. F R E E A L L N I T E. TRY BEFORE YOU BUY MP3s from SERIOUS BIZ 1.31.08 MP3s from 1.4.08 This post also on: fffff.at (February 26, 2008) --- # A typical FAT image thread Date: 2008-02-15 URL: https://jamiedubs.com/blog/a-typical-fat-image-thread/ A simple team photo goes awry fi5e uploads a photo: Jdubs throws some D’s on it: Toby teleports the rest of the crew in: Theo runs it through the Nerd Detector: Hosted using FUCKFLICKR (public release coming soon) More ffff.at/people. This post also on: fffff.at (February 15, 2008) --- # Fatty terminal prompt Date: 2008-02-05 URL: https://jamiedubs.com/blog/fatty-terminal-prompt/ “Throw some D’s on that shell” Put it in your ~/.profile: export PS1="\[\e[31;1m\][\[\e[35;6m\]fffff.at \[\e[0m\]\w\[\e[31;1m\]]\[\e[32;1m\]$\[\e[32;0m\] " More on pimpin’ yr PS1 This post also on: fffff.at (February 5, 2008) --- # Powerpoint Album Date: 2008-01-27 URL: https://jamiedubs.com/blog/powerpoint-album/ The Power Point Album. This post also on: fffff.at (January 27, 2008) --- # Rickroll Database: never get rickroll’d again Date: 2008-01-23 URL: https://jamiedubs.com/blog/rickroll-database/ Have you or someone you love been rickroll’d? If not, check out this hot Lindsay Lohan vid. presenting the #1 weapon in the war on Rickrolls: THE RICKROLL DATABASE When used in conjunction with Firefox and AdBlockPlus you will never get rickroll’d again. User-vetted URLs comprise a dynamic AdBlock filter list of all known rolls, aka… THE RICKLIST: » subscribe now Submit URLs for known rickrolls; other anti-rickrollers can confirm or deny its rollitude. Crowdsourcing baby. Crowdsourcing. This post also on: fffff.at (January 23, 2008) --- # F.A.T. DJs in Brooklyn this Saturday Date: 2008-01-04 URL: https://jamiedubs.com/blog/fat-djs-in-brooklyn-this-saturday/ Drink cheap and party hard. $erious $ound, Saturday 1/5/2008 @ Savalas in Williamsburg DJs: Bennett4$enate, JDubs, Mike McGill, President Raygunn Try before you buy: fffff.at/music This post also on: fffff.at (January 4, 2008) --- # MEMES MOTHERFUCKER, DO YOU KNOW THEM? Date: 2007-12-21 URL: https://jamiedubs.com/blog/memes-motherfucker-do-you-know-them/ Lolruses, mudkips, shoops, ORLY? It’s scary Internets out there… we’re here to help. Know Your Meme: Rickroll w/ Prof. Jamie Dubs Part of a series of we’re airing over at Rocketboom, with some wiki-style documentation on knowyourmeme.com.Internet Famous-approved. Go forth for great justice. This post also on: fffff.at (December 21, 2007) --- # Jamie's PS1 collection, and how to customize your bash prompt Date: 2007-07-31 URL: https://jamiedubs.com/blog/ps1-collection-customize-your-bash-prompt/ Restored in 2026 from the Wayback Machine. This post still gets linked from Ask Ubuntu and friends, so here it is again, unedited. Tired of your dull bash prompt? Various bash prompts follow, for my reference and hopefully your inspiration. At the end I’ve compiled detailed docs on crafting your own sweet prompts. Introducing PS1 What’s your current prompt? echo $PS1 Try changing it: export PS1='lolcatz$ ' Add that to your .profile or .bashrc for long-lasting fun The Collection The Classic (blue): export PS1="[\u@\[\e[34;1m\]\H \[\e[0m\]\w]\$ " The Classic (green): export PS1="[\u@\[\e[32;1m\]\H \[\e[0m\]\w]\$ " The Classic (magenta): export PS1="[\u@\[\e[35;1m\]\H \[\e[0m\]\w]\$ " My old BeOS prompt: export PS1="\[\e[34;40m\]B\[\e[31;40m\]e \[\e[0m\]\[\e[37;40m\]\w\[\e[0m\]]\$ " Minimalist: export PS1="\h:\w]\$ " Solaris Remix (bold white): export PS1="[\[\e[28;1m\]\H \[\e[0m\]\w]\$ " Ubuntu Remix (green/pink): export PS1="\e[32;1m\]\u@\[\e[35;1m\]\H \[\e[0m\]\w]\$ " D-lux export PS1="\[\033[36m\][\t] \[\033[1;33m\]\u\[\033[0m\]@\h:\[\033[36m\][\w]:\[\033[0m\] " Prompt in the titlebar (works with rxvt & Terminal.app) export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] " Approval prompt (via Slashdot comment) (colored smileys depending on your success) export PS1="\[\e[01;32m\]\u@\h \[\e[01;34m\]\W \`if [ \$? = 0 ]; then echo -e '\e[01;32m:)'; else echo -e '\e[01;31m:('; fi\` \[\e[01;34m\]$\[\e[00m\] " Send me your pimp prompt and I’ll tack it on what what. The Manual Color escape code general syntax: \e[XX;YYm] XX = foreground color YY = background color, but really text styling Foreground colors 30 = black 31 = red 32 = green 33 = yellow 34 = blue 35 = magenta 36 = teal Background colors are 40, 41, 42, etc. Text styles: 0 = reset 1 = bold 4 = underline 5 = blink (!) 7 = invert background & foreground Reset to plain (always put at the end!): \[\e[0m\] Available variables: \u = your username \H = full hostname, e.g. bob.example.com \h = reduced hostname, e.g. bob \w = full working directory, e.g. /home/jamie/bin \W = basename of the working directory, e.g. bin \t = time in 24-hour format \# = command number \$ = root identifier; $ for regular users, # for root \T = time in 12-hour format \l = terminal device, e.g. tty4 \j = number of background/suspended processes References Daniel Robbins of Gentoo: Tip: prompt magic TLDP’s thorough Bash prompt HOWTO Custom bash prompts webapp — userfriendly site to generate the above codes --- # Jdubs’ Death Star Dance Party mixtape Date: 2007-03-03 URL: https://jamiedubs.com/blog/jdubs-death-star-dance-party-mixtape/ Image lost: 49t.jpg Jamie Dubs – Death Star Dance Party 2007/Nov/26 playlist/info download Audio file lost. It was at http://tramchase.com/audio/jdubs-death_star_dance_party.mp3. This post also on: fffff.at (March 3, 2007) --- # Internet Famous Date: 2007-01-27 URL: https://jamiedubs.com/blog/internet-famous/ Image lost: famo-stacked.jpg (INTERNET FAMOUS) Hits are the oil of the 21st century. How do you stack up? Image lost: class-graph.png Also: Internet Famous: the Class @ Parsons New School for Design This post also on: fffff.at (January 27, 2007) --- # Hello world Date: 2007-01-01 URL: https://jamiedubs.com/blog/hello-world/ Hello world.