Technical Museum
All Hardware Maps ML & AI Music Social Tools Writing Apps & Games
Deciduous
Decision graph CLI for tracing how software decisions evolve
Rust SQLite HTML/JS
Deciduous Archaeology Demo
Demonstrations of decision archaeology on React and stacked git workflows
Rust React Git
Phish Explorer
Jam analytics dashboard for Phish 3.0 era
Elixir Phoenix LiveView D3.js
Local LLM on MacBook
4-bit quantization, safetensors, and Bumblebee + EMLX for Apple Silicon
Elixir Rust Python
A Bot that posts like me
Porting the posting bot to Elixir using local LLM work
Elixir Bumblebee EMLX
Receipt Printer Software Suite
A complete software suite for thermal receipt printers
Elixir Python
Role Call
TV writer overlap explorer
Elixir Phoenix LiveView
Fill Your Sky
Interactive map of 418+ Bluesky communities with 545K+ people
Elixir Phoenix LiveView D3.js
Code Mirror
A live code mirror experiment
Elixir Phoenix LiveView
Pocket Pnin
A local LLM running on my iPhone, coming to the App Store for free
Swift MLX
NYC Census Maps
Interactive census and PLUTO data visualization for New York City
Elixir Phoenix LiveView Leaflet.js
MTA Bus Tracker
Real-time MTA bus and train tracking on an interactive map
Elixir Phoenix LiveView Leaflet.js
Concert GIF Maker
Extract GIFs from concert videos with a retro Mac interface
Elixir Phoenix LiveView FFmpeg
Send a VERY direct message, to my receipt printer
A social project where friends send photos that print on my receipt printer
Elixir Phoenix LiveView
Archive TV
A real over-the-air TV channel from magnetic media archives
Elixir FFmpeg
Losselot
Neural network loss function explorer
Python
Todoinksies
A personal todo app
Elixir Phoenix LiveView
Ormery
An ORM written in Temper
Temper
Collage Maker
Upload photos and arrange them into grid collages
Elixir Phoenix LiveView
GenStage Tutorial 2025
A modern GenStage tutorial for the Elixir ecosystem
Elixir GenStage
Temper Rust Bug
Found a bug in the Temper compiler and built a demo repo
Temper Rust
300+ Years of Tree Law
A blog post that became its own LiveView application
Elixir Phoenix LiveView
HEEx in Other Languages
Experiments porting Phoenix HEEx templates to Rust, Lua, C#, Java, Python, and JS
Temper Rust Lua
Live Draft LSP
Live-stream blog drafts from Zed to Phoenix via a custom LSP
Rust Elixir Zed
Bluesky Hoover Apps
Various apps that vacuum up and process the Bluesky firehose
Elixir Phoenix LiveView
Bobby Posts Bot
A bot that posts like me, in Python
Python
Photo Booth Receipt Printer
A portable photo booth that prints on receipt paper
Python Elixir
Nathan For Us
A Nathan For You social network with video search and GIF creation
Elixir Phoenix LiveView FFmpeg
Browser History Roast MCP
An MCP server that roasts you based on your browser history
Python MCP
GenStage Tutorial (Original)
The original GenStage tutorial
Elixir GenStage
Bluesky Firehose Toys
Real-time firehose visualizations: emoji streams, jetstream comparisons, and more
Elixir Phoenix LiveView WebSocket
31 exhibits Apps & Games
MY FAV
LEICA SHOTS
Work Log — Recent Commits
+1543-0 notactuallytreyanastasio/decidulixir/main Mar 01 19:07
5a9dbd4 feat: Goal 1 - core types, Ecto schemas, and database migrations Add the foundational data layer for Decidulixir, porting the Rust deciduous schema to Elixir/Ecto with PostgreSQL improvements. Schemas (10): - Types: NodeType, NodeStatus, EdgeType enums with cast functions - Graph.Node: decision nodes with UUID change_id, jsonb metadata - Graph.Edge: typed edges with self-link prevention, unique constraints - Graph.Context: contextual info attached to nodes - Graph.Session / SessionNode: session tracking - Graph.Theme / NodeTheme: tagging system - Graph.Document: file attachments with content-hash dedup - CommandLog: CLI command history - GitHub.IssueCache: cached issue data - QA.Interaction: Q&A conversation history Migrations (5): all tables with proper indexes and FK constraints Key improvements over Rust: - metadata_json as native PostgreSQL jsonb (queryable) - Proper utc_datetime timestamps instead of text - UUID type for change_id - FK cascade deletes on edges and join tables Also includes 9 CACHE spec documents mapping each of the 9 rewrite goals from Rust source to Elixir module structure. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
108f052 fix: address PR #1 review - rename schemas, tables, and cleanup - Extract ChangesetHelpers for shared UUID/timestamp generation - Remove types.ex (inline enums in schemas), context.ex, theme.ex, node_theme.ex - Rename tables: graph_nodes, graph_edges, graph_documents, graph_commands, conversation_node_sets, conversation_node_set_nodes, github_issues, questions_and_answers - Rename modules: Edge→GraphEdge, Document→GraphDocument, Session→ConversationNodeSet, SessionNode→NodeConversationNodeSet, IssueCache→Issue, Interaction→QuestionAndAnswer - Add storage_backend field to GraphDocument (local/s3) - Rename metadata_json→metadata on Node - Move CACHE_* files to priv/static/claude_docs/ (gitignored) - Rewrite all 5 migrations with new table names - Update all tests: 59 tests, 0 failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+717-1234 notactuallytreyanastasio/decidulixir/goal-1-core-types-schema Mar 01 18:48
3ec3340 fix: address PR #1 review - rename schemas, tables, and cleanup - Extract ChangesetHelpers for shared UUID/timestamp generation - Remove types.ex (inline enums in schemas), context.ex, theme.ex, node_theme.ex - Rename tables: graph_nodes, graph_edges, graph_documents, graph_commands, conversation_node_sets, conversation_node_set_nodes, github_issues, questions_and_answers - Rename modules: Edge→GraphEdge, Document→GraphDocument, Session→ConversationNodeSet, SessionNode→NodeConversationNodeSet, IssueCache→Issue, Interaction→QuestionAndAnswer - Add storage_backend field to GraphDocument (local/s3) - Rename metadata_json→metadata on Node - Move CACHE_* files to priv/static/claude_docs/ (gitignored) - Rewrite all 5 migrations with new table names - Update all tests: 59 tests, 0 failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+1325-30 notactuallytreyanastasio/eclipse/main Mar 01 02:18
5478cf2 refactor: use Phoenix.PubSub for timer messaging Replaces direct process messaging (Process.send_after) with Phoenix.PubSub for cleaner architecture and better ownership semantics. Changes: - Each LiveView session gets unique session ID on mount - Subscribes to session-scoped PubSub topics for timers (game:{session_id}:gravity, :scanner, :move) - Timers now broadcast to topics instead of sending direct messages - Maintains backward compatibility with tests (handles both old :atom messages and new PubSub messages) - Cleaner separation of concerns and more testable Benefits: - Better ownership semantics - each session owns its topics - More decoupled from LiveView process internals - Easier to test timer behavior - Follows Phoenix architectural patterns Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
291c00f feat: add horizontal movement acceleration for pieces Implements Lumines-style acceleration where holding left/right causes the piece to move faster and faster. The piece starts at 150ms intervals and accelerates to 30ms (very fast) as the key continues to be held. Technical details: - Tracks held keys in MapSet to handle multiple simultaneous keys - Uses repeating timer that decreases interval on each tick - Accelerates by 15ms per tick (configurable via @move_acceleration) - Resets acceleration when keys are released - Adds keyup event handling to detect key releases Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
95324c8 deciduous updates
+3541-1100 notactuallytreyanastasio/eclipse/main Mar 01 01:52
0c1f3f9 full-page background cohesion: hide navbar, match game bg body:has(#eclipse-game) hides the Phoenix navbar, removes main padding and max-width constraints, and sets body background to --gb-lightest. The game page now feels like a full-screen DMG experience. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ec91dce apply gravity on piece lock so floating tiles settle immediately Board.apply_gravity() now runs inside lock_piece/1 after place_piece, before find_matches. Tiles never float after a piece lands — they settle to fill gaps from previous clears in the same frame. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
a400a2e add 38 LiveView integration tests for real game play scenarios Tests exercise actual LiveView process messaging — gravity ticks, scanner sweeps, hard drops, chain reactions, game over, restart, level-up, and score accumulation. Uses :sys.replace_state to inject controlled game state without modifying app code. No app code changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4e6eab5 codify rebase-only rule: no merge commits, linear history always Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
af9936f codify deciduous rules: subagents must log from their own branch Subagents in git worktrees MUST log to deciduous themselves — the main session can't do it retroactively because branch tagging will be wrong. Also strengthened the immediate-after-commit rule. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
62ec413 rewrite CLAUDE.md: add type-first design philosophy, tighten prose Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
79b8a71 add CI workflow, dialyxir, wire dialyzer into make quality Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
b5ae501 more deciduous history
0db05fc rename Illuminates -> Eclipse, restructure game modules Illuminates -> Eclipse, IlluminatesWeb -> EclipseWeb throughout. Game modules move from Illuminates.Eclipse.* to Eclipse.Game.* with Game (engine) -> Eclipse.Game.Engine. EclipseLive -> GameLive. All 59 tests pass, credo clean. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5511790 add claude improvements, update README.md to reflect
09833e0 get the final stuff for v1 of the game right
cfd64b5 feat: add level progress counter to HUD Added a "PROGRESS XX/50" indicator to the game HUD showing how many squares have been cleared toward the next level. Progress resets to 0 when leveling up. The counter displays as "PROGRESS 00/50" to "PROGRESS 49/50" using the same monospace formatting as the score and level displays. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
3c6e9a6 fix: prevent empty board bonus in score accumulation test Fixed test case to match the pattern used in other scoring tests: add non-marked tiles to avoid triggering the 10,000-point empty board bonus. The test verifies basic score accumulation, not bonus scoring. Also refactored bonus scoring logic to use cond instead of nested ifs, which eliminates dialyzer pattern match warnings and makes the mutual exclusivity of bonuses more explicit. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
9528026 extract function components into GameComponents module Moves game_board, game_hud, queue_panel, game_controls, start_overlay, and game_over_overlay into EclipseWeb.GameComponents as function components with typed attrs. GameLive render is now a clean composition of components. All 111 tests pass unchanged. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+649-111 notactuallytreyanastasio/archive_tv_downloader/main Feb 28 20:12
1629901 Add Rename button for downloaded files
4340046 Complete comprehensive README with full feature documentation
173285d Add production-ready GitHub Actions workflow for cross-platform builds and releases
+382-60 notactuallytreyanastasio/ai_opinionated_phx_new/main Feb 28 14:44
22a7492 readme updates
+135-0 notactuallytreyanastasio/ormery-py-app/main Feb 26 06:01
e8236ca Add README with ORMery usage documentation and code samples
+198-0 notactuallytreyanastasio/ormery-lua-app/main Feb 26 05:56
db4c17e Add README with ORMery usage documentation and code samples
+175-0 notactuallytreyanastasio/ormery-java-app/main Feb 26 05:55
6ca9cdf Add README with ORMery usage documentation and code samples
+10246-3 notactuallytreyanastasio/ormery/main Feb 25 22:52
04edde5 Embed secure-composition library in src/ for Temper compatibility Temper doesn't support cross-library imports yet, so secure-composition must be embedded as a subdirectory within src/ (same-library submodule). Changes: - Move secure-composition/ to src/secure-composition/ - Update imports to ./secure-composition/sql and ./secure-composition/html - Remove dependencies config (not needed for embedded modules) Build output now includes both ormery/ and secure-composition/ directories, ensuring all target language repos (JS, Python, C#, Rust, Java, Lua) get the full secure-composition library when the CI pipeline publishes. All 87 tests passing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
7550780 Fix secure-composition imports to target specific files Temper requires imports to target specific .temper.md files within subdirectories rather than directory-level imports. Updated: - ormery.temper.md: Import sql/SqlBuilder from sql/builder.temper.md and SqlFragment from sql/model.temper.md - syntax-highlighter.temper.md: Import html/SafeHtml from html/safe-html.temper.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+3-4844 notactuallytreyanastasio/ormery/main Feb 25 20:21
5087716 Replace duplicate implementations with secure-composition library - Remove local src/sql/, src/html/, src/core/, src/url/ directories - Update imports in src/ormery.temper.md and src/syntax-highlighter.temper.md - Point to ../secure-composition/src/sql and ../secure-composition/src/html - Fixes CI build failures ("No member appendSafe in SqlBuilder") - All 87 tests passing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+171-20 notactuallytreyanastasio/ormery/main Feb 25 18:44
931d04d Remove appendSafe from public API to eliminate SQL injection vector SECURITY FIX: Removed public appendSafe() method from all builder classes (SqlBuilder, Collector, ContextualAutoescapingAccumulator) to prevent SQL injection and XSS attacks. Changes: - SqlBuilder.appendSafe() removed - forces use of typed methods - Refactored safeSql() to create SqlFragments directly - Updated internal appendList to use buffer.add() directly - Made collector appendSafe private (appendFixed/appendKnownSafe) - Updated README and added SECURITY-IMPROVEMENTS.md documentation Before: External code could bypass escaping via appendSafe(userInput) After: All external code must use typed, escaped methods (appendString, appendInt32, etc.) This eliminates the primary SQL injection attack vector identified in semgrep rules CWE-89. All generated target languages (JS, Python, Java, C#, Rust, Lua) will be updated when published to child repos. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+34-20 notactuallytreyanastasio/read_my_receipts/main Feb 25 13:20
d695f7d continuous error log: no paper cut, no header for text prints Text endpoint now prints as one long continuous log — no header/dividers, no paper cut. Just the content followed by 3 blank lines of spacing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+153-9 notactuallytreyanastasio/read_my_receipts/main Feb 25 13:10
c4b28ef add text printing endpoint with Elixir error filtering New POST /print/text?source= endpoint accepts plain text for receipt printing. Elixir/Phoenix sources are filtered to only print [error] blocks. Text is wrapped in receipt-style formatting with headers and dividers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+807-1094 notactuallytreyanastasio/blog/main Feb 25 06:56
0d5f530 improve: refactor MarkdownEditorLive with tests, extract pure functions, remove inline CSS - Extract BlogWeb.MarkdownEditor.Formatter with pure functions for all markdown formatting operations (split_text, apply_format, to_html) - Remove ~420 lines of duplicated handle_format/7 from both LiveView and Component, replaced with shared Formatter module - Fix bug: LiveView used EarmarkParser (not a dependency) instead of MDEx - Replace rescue blocks with proper {:ok, _}/{:error, _} pattern matching - Remove inline CSS styles, add .markdown-editor-window/.markdown-editor-content classes - Add @moduledoc to both LiveView and Component (Credo strict compliance) - Extract toolbar/cheatsheet into function components in the Component - Initialize all assigns in mount/3 to avoid potential KeyError - Add 35 unit tests for Formatter (split, format with/without selection, composition) - Add 8 integration tests for MarkdownEditorLive (mount, events, handle_info) - Zero Credo issues in strict mode across all 3 files Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+14-4 notactuallytreyanastasio/blog/feature/work-log Feb 25 06:51
71dc1a3 Separate commit messages clearly with dividers Each commit now shows SHA and message on separate indented lines with blank line spacing between commits. Dashed divider line between push event entries for clear visual separation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+53-152 notactuallytreyanastasio/blog/feature/work-log Feb 25 06:51
62be7c1 Condensed layout: one line per push, full commit messages below Push header on single line: SHA +N/-N repo/branch date. Commit messages rendered with pre-wrap for full multi-line display. Added debug logging to diagnose missing commit messages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+33-32 notactuallytreyanastasio/blog/feature/work-log Feb 25 06:51
0cbdbe1 Fix missing commit messages, filter empty diffs The GitHub Events API returns commits: null, so commit messages were always empty. Now fetches commits from the Compare API instead, which has full commit data including messages. Also filters out push events with +0/-0 diffs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+29-17 notactuallytreyanastasio/blog/feature/work-log Feb 25 06:51
a869954 Make poller and mount crash-resistant Poller rescues errors during poll to avoid GenServer crash. LiveView mount catches :exit if poller isn't running yet. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+25-28 notactuallytreyanastasio/blog/feature/work-log Feb 25 06:51
ae12abd Use {:ok, _}/{:error, _} patterns instead of rescue Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+253-94 notactuallytreyanastasio/blog/feature/work-log Feb 25 06:51
ae794fb Store work log commits in Postgres, add window to terminal desktop - Migration creates work_log_commits table with unique SHA index - WorkLogCommit schema + WorkLog context for DB reads/writes - Poller writes to DB via compare API, reads from DB - Work Log window on terminal_live desktop (centered, draggable) - Desktop icon for Work Log, Leica icon moved to bottom - Standalone /work-log page reads from same DB Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
+488-42 notactuallytreyanastasio/blog/main Feb 25 06:51
a868617 Merge branch 'main' of github.com:notactuallytreyanastasio/blog
3f4ea06 add work log stuff
4dc1591 Merge branch 'main' of github.com:notactuallytreyanastasio/blog # Conflicts: # .deciduous/deciduous.db
ebead4b update deciduous db
4c3fef6 add improve elixir command
f5826d0 remove links I want gone, remove experiment code
22 pushes github.com/notactuallytreyanastasio
phangraphs — Phish 3.0 Jam Analytics
phangraphs
What's Going Through Your Mind
.500
BATTING AVG
8 JC · 16× played
Avg 16.6m · Peak 42:40 · 🎧 11/16
Longest: 42:40
2025-06-24 · Petersen Events Center
Most Loved: 18 likes
2024-12-31 · Madison Square Garden
📊 88% Set 2 · 7/8 JCs from Set 2
Last: 2026-01-29 (31d ago) · avg every 36d
Best year: 2024 — 4/5 JC
"Debut. Features Billy Strings on guitar and added vocals (and a nice jam, too)."
TAP TO SEE AND PLAY JAMS
What's Going Through Your Mind .500
TAP TO FLIP BACK
8 jams
2024-08-07 10:29
Van Andel Arena · Grand Rapids, MI
Debut. Features Billy Strings on guitar and added vocals (and a nice jam, too).
2024-08-15 23:05
The Woodlands · Dover, DE
Nothing green here. With Trey back on lead vocals, a great version of the song breaks from what already seems like a signature lick to spark a huge jam. About seven minutes in, sound swells to inform that patterned bounce, and then the effects kick in, with Page laying heavy on his synths. Play coasts before, as one, the four become more active, propelling the play. Trey shears blocks of sound, an impossibly cool pattern, one that, on Fish's back beat, builds to a thrilling conclusion.
2024-08-31 16:34
Dick's Sporting Goods Park · Commerce City, CO
Question isn't when, but if "WGTYM?" won't jam. Seems improbable, given Trey's line from the vocal section is, like a drug, seemingly designed to bring the band back for more. Impressive, extended, synth-heavy improv runs to break for a very notable -> into "Crosseyed."
2024-12-31 17:14
Madison Square Garden · New York, NY
The centerpiece of the NYE '24 extravaganza with additional backing vocals, the jam takes a drastic turn into EDM, a genre heretofore unexplored on the Phish stage, and is interspersed with vocal quotes from several other Phish tunes (see setlist notes) before finally crashing -> into "CDT".
2025-02-01 ?
Moon Palace · Quintana Roo, Cancun, Mexico
The first post-EDM version of "WGTYM" is a distinctly slower version of the song. However, the jamming out of the song remains top-notch. Fish takes the reins initially leading a driving, percussive jam. This later gives way to a feel-good explosion of jubilant play that evokes Phish on a beach. The band eventually winds its way back to the "Mind, mind, mind," refrain.
2025-06-24 42:40
Petersen Events Center · Pittsburgh, PA
-> from a fun "YEM". Given how strong its jamming was from the first few versions played, it may have seemed inevitable a HUGE version would appear. This 40 minute masterpiece is just that. Moving from section to section with deftness and poise. Clearly, the band feels comfortable jamming this song, and this may be the cream of the "WGTYM" crop. Must-hear.
2025-07-18 28:07
United Center · Chicago, IL
Though Trey hints early on that the answer to the question may be that there is "nobody home", there's actually plenty to discover in this wide ranging version that finds the band locking on to a handful of memorable progressions, moving seamlessly between sections, and soaring over peaks before accelerating through groove laden depths to deliver a sustained and fiercely rocking finale that eventually finds itself becoming suddenly "Crosseyed".
2025-09-14 17:34
Coca-Cola Amphitheater · Birmingham, AL
> from a AWOH. Patient, rhythmic, and hypnotic; the band takes an approach here that, while it feels familiar, is interpreted through the fresh lens of the past handful of years' inventive play and that occupies a space halfway between aggression and ambience. Fans of peak free exploration will want to seek out this version.
phangraphs Phish 3.0 Jam Analytics
AIM Chat - Terminal
Online (0)
jeff 02:52 AM
What is up y'all
jeff 03:44 AM
Thanks for visiting my website
jeff 03:51 AM
Trying from mobile let’s see what’s up
Uechi Nerd 03:54 AM
Hi, greetings from Planet Crackpot!
jeff 03:55 AM
oh man what's up
jeff 03:56 AM
Hey everyone
Uechi Nerd 03:56 AM
winding down with a beer or three
Uechi Nerd 03:57 AM
desktop version
Uechi Nerd 04:01 AM
Disappointed that War does not lead to actual combined-arms conflict.
jeff 04:01 AM
that would be hard to conjure
jeff 04:02 AM
I am so excited that this works and is a successful combination of windows and old apple lol
Uechi Nerd 04:02 AM
Probably for the best, actually. That shit is very very messy.
Uechi Nerd 04:02 AM
I am intrigued and happy it works!
Uechi Nerd 04:03 AM
I respect the wizardry.
Visitor7804 04:05 AM
this is delightful.
jeff 04:06 AM
hell yeah visitor 7804, this is livin' brother
guy4get 04:07 AM
i've never felt so alive
EarlofVincent 04:09 AM
Commencing experiment in 3....2....
jeff 04:14 AM
1
leah 04:16 AM
hi!
leah 04:16 AM
this is lovely
jeff 04:21 AM
hi! lol I was just like what if I combined Mac and windows and added a flower tree of life and called it my homepage and then smoked some weed and made it happen in an empty mall in Connecticut
B. Droptables 10:51 AM
Always cool to play with your toys.
Visitor1128 08:47 AM
yo!
Visitor1128 08:48 AM
i can barely work my phone. what am i doing here?
jeff 09:04 AM
the phone is not optimized yet but it "kind of works" I am sorry lol
jeff 09:04 AM
you have to pick a username, then it goes to the chat, then if you hit the bottom tabs it'll let you go to the app sections.
Bobdawg 04:43 AM
Hi everybody this is my blog I hope you enjoy it I did some more changes and anyone can write a post here now for me.
dinkleberg 01:45 AM
ALL HAIL TREE OF LIFE
jeff 08:55 PM
hi Hacker News
jeff 04:28 PM
hey there I am not really Jeff
Mal Function 05:34 PM
Hey! Please reveal... how exactly do I actually use losselot on my Mac? I've run the git clone commend in Terminal.app and seem successfully to have installed into a new <losselot> sub-folder in my home folder but now???