{"id":43009292,"url":"https://github.com/darius/chispa","last_synced_at":"2026-01-31T05:07:26.450Z","repository":{"id":27779177,"uuid":"31267810","full_name":"darius/chispa","owner":"darius","description":"Indexed text search in \u003c500lines","archived":false,"fork":false,"pushed_at":"2015-03-15T04:04:34.000Z","size":8812,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-18T14:39:11.574Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-24T15:57:15.000Z","updated_at":"2024-03-04T21:46:28.000Z","dependencies_parsed_at":"2022-09-03T06:43:25.047Z","dependency_job_id":null,"html_url":"https://github.com/darius/chispa","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/darius/chispa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darius%2Fchispa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darius%2Fchispa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darius%2Fchispa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darius%2Fchispa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darius","download_url":"https://codeload.github.com/darius/chispa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darius%2Fchispa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28929865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T04:05:25.756Z","status":"ssl_error","status_checked_at":"2026-01-31T04:02:35.005Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-31T05:07:25.748Z","updated_at":"2026-01-31T05:07:26.445Z","avatar_url":"https://github.com/darius.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"*500 Lines or Less*\n===================\n\nThis is the source for the book *500 Lines or Less*, the fourth in the\n[Architecture of Open Source Applications](http://aosabook.org) series.  As\nwith other books in the series, all written material will be covered by the\nCreative Commons - Attribution license, and all code by the MIT License: please\nsee the [license description](LICENSE.md) for details.  In addition, all\nroyalties from paid-for versions will all go to Amnesty International.\n\nMission\n-------\n\nEvery architect studies family homes, apartments, schools, and other common\ntypes of buildings during her training.  Equally, every programmer ought to\nknow how a compiler turns text into instructions, how a spreadsheet updates\ncells, and how a browser decides what to put where when it renders a page.\nThis book's goal is to give readers that broad-ranging overview, and while\ndoing so, to help them understand how software designers think.\n\nContributions should not focus on the details of one algorithm or on the\nfeatures of a particular language.  Instead, they should discuss the decisions\nand tradeoffs software architects make when crafting an application:\n\n*   Why divide the application into these particular modules with these\n    particular interfaces?\n*   Why use inheritance here and composition there?\n*   Why multi-thread this but not that?\n*   When should the application allow for or rely on plugins, and how should\n    they be configured and loaded?\n\nContribution Guidelines\n-----------------------\n\nWriting for a book like this should be fun, so we're trying to keep process to\nminimum. Here is our basic set of procedural guidelines:\n\n1. When you start coding, try to submit one pull request early (e.g. somewhere\n   between 50-100 lines), so that we can catch any early problems that we never\n   thought about.\n\n2. After that first commit, feel free to submit pull requests as often or as\n   infrequently as you like.\n\n3. When you are done your \"first draft\" of your code, do let us know in the\n   commit message, or by emailing us directly (emails below). We'll assign a\n   reviewer or two to your work at that time.\n\nContributors\n------------\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eName\u003c/th\u003e\n    \u003cth\u003eAffiliation\u003c/th\u003e\n    \u003cth\u003eProject\u003c/th\u003e\n    \u003cth\u003eOnline\u003c/th\u003e\n    \u003cth\u003eGitHub\u003c/th\u003e\n    \u003cth\u003eEmail (if you choose)\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eMike DiBernardo\u003c/td\u003e\n    \u003ctd\u003efreelance\u003c/td\u003e\n    \u003ctd\u003eeditorial\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/mdibernardo\"\u003e@mdibernardo\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"http://mikedebo.ca\"\u003emikedebo.ca\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/MichaelDiBernardo\"\u003eMichaelDiBernardo\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003emikedebo@gmail.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eDustin Mitchell\u003c/td\u003e\n    \u003ctd\u003eMozilla\u003c/td\u003e\n    \u003ctd\u003ecluster\u003c/td\u003e\n    \u003ctd\u003e\u0026nbsp;\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/djmitche\"\u003edjmitche\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003edustin@mozila.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eAudrey Tang\u003c/td\u003e\n    \u003ctd\u003eg0v.tw, Socialtext, Apple\u003c/td\u003e\n    \u003ctd\u003espreadsheet\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/audreyt\"\u003e@audreyt\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/audreyt\"\u003eaudreyt\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eaudreyt@audreyt.org\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eGreg Wilson\u003c/td\u003e\n    \u003ctd\u003eMozilla\u003c/td\u003e\n    \u003ctd\u003eweb-server\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/gvwilson\"\u003e@gvwilson\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/gvwilson\"\u003egvwilson\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003egvwilson@third-bit.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eKresten Krab Thorup\u003c/td\u003e\n    \u003ctd\u003eTrifork\u003c/td\u003e\n    \u003ctd\u003etorrent client\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/drkrab\"\u003e@drkrab\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/krestenkrab\"\u003ekrestenkrab\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003ekrab@trifork.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eTaavi Burns\u003c/td\u003e\n    \u003ctd\u003ePoints.com\u003c/td\u003e\n    \u003ctd\u003edata-store\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/jaaaarel\"\u003e@jaaaarel\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/taavi\"\u003etaavi\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003etaavi.burns@points.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eKragen Javier Sitaker\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"http://canonical.org/\"\u003eCanonical Hackers\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003esearch-engine\u003c/td\u003e\n    \u003ctd\u003e@kragen\u003c/td\u003e\n    \u003ctd\u003e@kragen\u003c/td\u003e\n    \u003ctd\u003ekragen@canonical.org\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eGuido van Rossum\u003c/td\u003e\n    \u003ctd\u003eDropbox\u003c/td\u003e\n    \u003ctd\u003ecrawler\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/gvanrossum\"\u003e@gvanrossum\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/gvanrossum\"\u003egvanrossum\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eguido@python.org\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eErick Dransch\u003c/td\u003e\n    \u003ctd\u003eUpverter\u003c/td\u003e\n    \u003ctd\u003eModeller\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/ErickDransch\"\u003e@ErickDransch\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/EkkiD\"\u003eEkkiD\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eerick.dransch@upverter.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eSarah Mei\u003c/td\u003e\n    \u003ctd\u003eMinistry of Velocity\u003c/td\u003e\n    \u003ctd\u003etesting framework\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/sarahmei\"\u003e@sarahmei\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/sarahmei\"\u003esarahmei\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u0026nbsp;\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eLeah Hanson\u003c/td\u003e\n    \u003ctd\u003eGoogle\u003c/td\u003e\n    \u003ctd\u003estatic analysis\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/astrieanna\"\u003e@astrieanna\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/astrieanna\"\u003eastrieanna\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eleah.a.hanson@gmail.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eChristian Muise\u003c/td\u003e\n    \u003ctd\u003eUniversity of Melbourne\u003c/td\u003e\n    \u003ctd\u003eflow-shop\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/cjmuise\"\u003e@cjmuise\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/haz\"\u003ehaz\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003echristian.muise@gmail.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eCarlos Scheidegger\u003c/td\u003e\n    \u003ctd\u003eAT\u0026amp;T Research\u003c/td\u003e\n    \u003ctd\u003erasterizer\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/cjmuise\"\u003e@cscheid\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/cscheid\"\u003ecscheid\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003ecarlos.scheidegger@gmail.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eMarina Samuel\u003c/td\u003e\n    \u003ctd\u003eMozilla\u003c/td\u003e\n    \u003ctd\u003eocr\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"http://marinasamuel.com\"\u003ewww.marinasamuel.com\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/emtwos\"\u003e@emtwos\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/emtwo\"\u003eemtwo\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003emsamuel@mozilla.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eCate Huston\u003c/td\u003e\n    \u003ctd\u003eGoogle\u003c/td\u003e\n    \u003ctd\u003eImage Filter app\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"http://www.accidentallyincode.com/\"\u003ewww.accidentallyincode.com/\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/catehstn\"\u003e@catehstn\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/catehstn\"\u003ecatehstn\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003ecatehuston@gmail.com\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eYoav Rubin\u003c/td\u003e\n    \u003ctd\u003eMicrosoft\u003c/td\u003e\n    \u003ctd\u003eIn-memory functional database\u003c/td\u003e\n    \u003ctd\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"https://twitter.com/yoavrubin\"\u003e@yoavrubin\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/yoavrubin\"\u003eyoavrubin\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarius%2Fchispa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarius%2Fchispa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarius%2Fchispa/lists"}