Two ambitious open-source projects tackling the same fundamental problem: how do you coordinate multiple AI coding agents to work together effectively?
| Aspect | Gas Town | Swarm-Tools |
|---|---|---|
| Author | Steve Yegge | Joel Hooks |
| Language | Go | TypeScript/Bun |
Two ambitious open-source projects tackling the same fundamental problem: how do you coordinate multiple AI coding agents to work together effectively?
| Aspect | Gas Town | Swarm-Tools |
|---|---|---|
| Author | Steve Yegge | Joel Hooks |
| Language | Go | TypeScript/Bun |
| # Working with multiple stocks | |
| """ | |
| SPY is used for reference - it's the market | |
| Normalize by the first day's price to plot on "equal footing" | |
| """ | |
| import os | |
| import pandas as pd | |
| import matplotlib.pyplot as plt |
Ideas are cheap. Make a prototype, sketch a CLI session, draw a wireframe. Discuss around concrete examples, not hand-waving abstractions. Don't say you did something, provide a URL that proves it.
Nothing is real until it's being used by a real user. This doesn't mean you make a prototype in the morning and blog about it in the evening. It means you find one person you believe your product will help and try to get them to use it.
| require 'right_aws' | |
| s3_credentials = { | |
| :source_key => "...", | |
| :source_secret => "...", | |
| :source_bucket => "...", | |
| :destination_key => "...", | |
| :destination_secret => "...", | |
| :destination_bucket => "..." | |
| } |
| #!/usr/bin/python | |
| """ | |
| S3 to Rackspace Cloud Files Migration | |
| This script will copy the contents of a S3 | |
| bucket to to a Rackspace Cloud Files container. | |
| Depends on the boto and python_cloudfiles python libraries. |
| if Rails.env.production? | |
| PAYPAL_ACCOUNT = 'production@gmail.com' | |
| else | |
| PAYPAL_ACCOUNT = 'development@gmail.com' | |
| ActiveMerchant::Billing::Base.mode = :test | |
| end |
| class IndexUsersEmails < ActiveRecord::Migration | |
| def self.up | |
| execute "END" | |
| add_pg_index :users, :email, :lock => false | |
| execute "BEGIN" | |
| end | |
| end |
| (function(j,q,u,e,r,y,R,o,x){try{o=jQuery;if(o&&(!R||(R&&o.fn.jquery==R))){x=true}}catch(er){}if(!x||(R&&o.fn.jquery!=R)){(q=j.createElement(q)).type='text/javascript';if(r){q.async=true}q.src='//ajax.googleapis.com/ajax/libs/jquery/'+(R||1)+'/jquery.min.js';u=j.getElementsByTagName(u)[0];q.onload=q.onreadystatechange=(function(){if(!e&&(!this.readyState||this.readyState=='loaded'||this.readyState=='complete')){e=true;x=jQuery;jQuery.noConflict(true)(function(){y(x)});q.onload=q.onreadystatechange=null;u.removeChild(q)}});u.appendChild(q)}else{y(o)}})(document,'script','head',false,false,(function($){$(function(){ | |
| /* code goes here */ | |
| console.log($.fn.jquery); | |
| })})); | |
| // readable: | |
| (function (j, q, u, e, r, y, R, o, x ) { | |
| // IE8 undefined crash fix | |
| try { |
| require "open-uri" | |
| require "active_support/base64" | |
| class Mixpanel | |
| def initialize(token, clock=Time.now) | |
| @auth_token = token | |
| @clock = clock | |
| end | |
| def event(name, properties={}) |
| #Deploy and rollback on Heroku in staging and production | |
| task :deploy_staging => ['deploy:set_staging_app', 'deploy:push', 'deploy:restart', 'deploy:tag'] | |
| task :deploy_production => ['deploy:set_production_app', 'deploy:push', 'deploy:restart', 'deploy:tag'] | |
| namespace :deploy do | |
| PRODUCTION_APP = 'YOUR_PRODUCTION_APP_NAME_ON_HEROKU' | |
| STAGING_APP = 'YOUR_STAGING_APP_NAME_ON_HEROKU' | |
| task :staging_migrations => [:set_staging_app, :push, :off, :migrate, :restart, :on, :tag] | |
| task :staging_rollback => [:set_staging_app, :off, :push_previous, :restart, :on] |