HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
tony
.dot-config
HISTORICAL RECORD2015–2020
tony / .dot-config · Not publicly available

.dot-config

Discover this repository through its Hacker News conversations.

2Distinct people
9Mentions
1Explicit recommenders
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A public description has not been verified.

Where it is used

No documented product use has been verified yet.

What people are saying

I love wrapping my brain around large codebases in my spare time. I wrote an application for help me download source code repositories in git, svn and mercurial and keep them…

git-pull used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year9 dated mentions

Observed mentions: 2015-06-28 02:58:36 UTC to 2020-10-28 14:37:33 UTC.

01232015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC303
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC202
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC202

What Hacker News says

9 sources
C++ build systems will be your main blocker, as they're languages in themselves. Autotools, CMake, configuring Visual Studio/etc. Easy tasks: - Challenge yourself by cloning projects reading their README and compiling/running them [1] - Port projects to other platforms (e.g. Windows-only game examples to Linux/Mac/FreeBSD) [2] Codebases I've studied [3]: sdl/graphic widgets: openttd, aseprite, nanogui(-sdl) runtime / abstraction: v8, node, protobuf, skia templates / language integration: pybind11, boost-python wrapping C: libsdl2pp (SDL2 wrapper) small: tmux-mem-cpu-load, uMario_Jakowski huge: blender Architecture / theory: https://aosabook.org/en/wesnoth.html, https://aosabook.org/en/audacity.html, https://aosabook.org/en/cmake.html, https://www.aosabook.org/en/llvm.html Books: Scott Meyers C++ books [1] It's C, but to push myself to gro
Read the rest
In Ask HN: Good C++ code bases to read?
I believe one reason buying books is so popular is the reader leans the direction of being spoon fed. How many times have we picked up books and never actually read em? My anecdote, since I already had projects in mind and just wanted to synthesize how things were glued together A to Z: I went to SourceForge/GitHub/BitBucket and cloned repos for projects for the language of choice, build them, run the tests. Also, https://github.com/search and lookup stuff of similar topic / using the same libraries (words like MIT, ISC, Apache 2, BSD are a good sign). Then check if it's permissively licensed. Also, in the end, you likely won't ever end up forking or copying. You're just getting the knowledge of how it's glued, and probably will wire stuff in uniquely for your case. Building these projects in itself teaches the ropes of getting an environ
Read the rest
ment setup (googling build errors, checking issue tracker), dependencies, test suites, and building a production-ready package. I kept the best projects I found at https://github.com/tony/.dot-config/blob/master/.vcspull.yam.... Purely for studying the source of. Python : Flask, Werkzeug, Django, SQLAlchemy JS : Express, Backbone, blog posts by Addy Osmani and JS enterprise architecture and Derick Bailey on Marionette (but i don't think the backbone would be as relevant today, it def paved the way to modern frontend we see today) C++ : OpenTTD In the end, there weren't many books I found espoused building projects. I already had an idea of what to build - I just needed enough to "ramp up", but if you want books: JavaScript Patterns: Build Better Applications with Coding and Design Patterns Examples applied directly to the task at hand. All about scoping. A python book, that hits different areas than this JS book would be The Hitchhiker's Guide to Python: https://docs.python-guide.org/ C++: Scott Meyer books are great General programming: Code Complete
In Ask HN: What are some books where the reader learns by building projects?
1. Clone the source 2. Try to build it 3. If there are tests, try to run them Just from doing this many times over, I learned a lot about programming. Also fork the repo, then do `git clone <url>` for the original repo, `cd repo`, then do `git remote add yourusername <yourgithubforkurl>` To ease the above process, I created vcspull: https://vcspull.git-pull.com Here is an example of my vcspull file: https://github.com/tony/.dot-config/blob/master/.vcspull.yam... This also helps studying, read code, and also do open source in general since it's easy to setup the original repo and the fork. For generic open source: Download source, check README.md/rst to see if they are testing/development instructions. Check .travis.yml commands, those are showing what packages/steps are taken to build and probably test the code If it's node: do `npm insta
Read the rest
ll` and check the "scripts" in the package.json. Those commands can be run like "npm run <task>" If it has CMakeLists.txt, it uses CMake. Download and install cmake, then do `cmake .`. cmake will let you know if you're missing libraries and those are easy to google package names for. Then `make && [sudo] make install` If it has Makefile.am/autogen.sh... download and install autotools/autoconf/automake. Run `./autogen.sh`, then `./configure` (google for package names of any libraries that show missing headers, .h, or symbols). Then `make && [sudo] make install` If it is python, and there's a Pipfile, download and install pipenv. Then do `pipenv install .`. If it has requirements.txt, `pip install -r requirements.txt` Carried foreward, if the project has anything resembling a package manifest (e.g. Gemfile, composer.json) google them to find the appropriate package manager for your OS. That gets you 75%-100% of the way to running locally a lot of the time. For the more complex projects, they typically have dedicated setup instructions and sometimes very detailed overviews (e.g. https://github.com/OpenTTD/OpenTTD/blob/master/docs/Readme_W..., https://devguide.python.org/setup/, https://www.kernel.org/doc/html/latest/process/index.html) Reading the source of your favorite interpreted programming language can be rewarded, e.g. https://github.com/python/cpython
In Ask HN: How do you read and understand an open-source project?
> it has no opinion on workflows Oh really? Staged/Unstaged + Commit + Push to remote+branch. Branches (I suppose you could chuck everything in master), and opt-in or out of tagging. Maybe users will keep their own remote repositories ("forks")? Even then, it's still pulling in code with the same history that's going to get reconciled via a merge or rebase. Whether it's "forked" to their own repo or in a branch of the "main" repo, it's all the same in the end. > there's a need for a tool that will automate and enforce git workflows There's easy, light-weight branching baked right into git. They scale locally, remotely, and also work with different user's remotes. You can also merge branches into branches. You can pull --rebase them as well. > there's a need for a tool that will automate and enforce git workflows. Beyond branches and remot
Read the rest
es? > I wrote a hacky 'git sync' script at an old company and it achieved what sending a bunch of developers on a course about git did not (it sped up the workflow and cut down on git errors). Checking out branches and git add/status/diff/commit/push is that time consuming not only would you need to create a shortcut, other devs would opt-in to it? I use shortcuts for various things in my shell. I have a .gitconfig in my dot-config files (https://github.com/tony/.dot-config). Personal tweaks for coloring and editor settings, a global gitignore. I'm the kind of a guy who picks up shell plugins for fun to try them, but I know that pushing a tool on top of a VCS on colleagues won't go over well. What did `git sync` do?
In Git Town – A high-level command line interface for Git
I like doing a fresh install of Linux/BSD/macOS every 3-6 months. My tools/flow are opinionated, but outlined below: For configs / dotfiles: https://pypi.python.org/pypi/dotfiles I keep my personal config @ https://github.com/tony/.dot-config if you want to glance or copy/paste from it (MIT-licensed). Another trick is partitioning. Keep media files in a separate partition. Also great if you dual boot. rsync + ssh for copying files from other machines: http://troy.jdmz.net/rsync/index.html I use vcspull (http://vcspull.git-pull.com), an app I wrote, to re-clone my projects to the same familiar directories. Keep books on Kindle. Have your own personal self-hosted git with gogs (https://github.com/gogits/gogs). You'll need at least the 10/hr DigitalOcean account though, or else compiling will fail due to memory limitations. I use digital oce
Read the rest
an extensively to host old old projects on the cheap. Its like what dreamhost used to be in 2006.
In Ask HN: What's your backup setup?
I'll bite, but I actually authored two tools I use to manage personal / open source projects. So while I can't fit your question exactly, I'll share what's worked well for me over the past years. Break your project out into open source components. This gives the community a library, which makes it possible (but not guaranteed) to share responsibility to it. It also keeps things fresh, you can keep the core of your personal project closed, so there is less moving parts to track, and hopefully less dead code on it. I’ve many “personal projects” end up getting mothballed amounting to time wasted due to me just chucking all my code in one repo and not breaking out components / pulling in the right libs when I could. I've participated on a lot of open source projects over the years, so I’ve developed a workflow to organize the minutiae. Ther
Read the rest
e are times where I won’t re-open a project for a few months, so I need to be able to “snap back into” a familiar environment. - tmuxp [1], a session manager for tmux. It allows using a .tmuxp.yaml file [2] to load a project workspace in combination with a bootstrap file [3] to automatically launch a tmux environment with tests, documentation, etc. I mimic this workflow in all my other projects. It has worked for me across OS X, Linux, FreeBSD. On local and ssh machines. No IDE required. Passively, another thing I do is document very well. If its python, I keep docstrings, autodoc for API generation and sphinx everywhere. Even personal projects I do at work have sphinx docs for other developers to peruse. I’m consciously doing everything possible to be helpful to other programmers on the project. Give them API docs, examples, as much as you can. - vcspull [4] is a tool I use to declaratively manage projects in a yaml file [5]. When I want to update I just type ‘vcspull project1 project2 project3’. What’s nice is being able to pattern match projects I have, ‘vcspull django-\*’ to grab django extensions. On projects I patch, I add my fork as a remote to keep it in sync. So the above are my taste. YMMV. Here are some other things: For C/C++ projects / libs, stuff like CMake [6] for build systems is great. Gets me a build that finds libs on OS X, FreeBSD and Linux. I’ve ported windows only projects in SDL2 to work across all 3 easily thanks to it. There are other mindset things, try to strike a balance between being opinionated in your own flow (as I am), because you’re going to have another person who swears to Eclipse, then another one to Atom, you can’t make everyone happy. Invest in things universally helpful (api documentation, tests, linting), they end up helping you in the end no matter where your project ends up: Even if you wrote stuff, if you don’t document, you’ll be at a loss when you wrote stuff a year ago “Did I really write that”? With other developers, they can't read your mind, they keep into the grind faster when you explained what your project does and what your code quality / expectations are. [1] https://github.com/tony/tmuxp [2] https://github.com/tony/tmuxp/blob/master/.tmuxp.yaml [3] https://github.com/tony/tmuxp/blob/master/bootstrap_env.py [4] https://github.com/tony/vcspull [5] https://github.com/tony/.dot-config/blob/master/.vcspull.yam...
In Ask HN: How do you manage your personal software projects?
I've probably spent hundreds of hours across all my configs over the years. In the old days, I'd rsync config files manually. Having frustrating times where I had to start everything over again. I have a lot to say on the subject. 1. Like other users here, git is a great way version your files. Not just that, it handles the issue you have with keeping the configs of various systems in sync. 1b. It doesn't have to be GitHub, but understand pushing to some remote gives you a backup, and a way to keep the latest configs you have in sync across multiple machines. 2. As a rule of thumb, the more POSIX compliant you are, the more cross-compatible your dot-configs will be. In my case, a great deal of my config works superbly across Ubuntu, FreeBSD and OS X with no modification whatsoever. 3. dotfiles (https://pypi.python.org/pypi/dotfiles) is ve
Read the rest
ry helpful for building those initial symlinks. 4. Tangentially related is PATH's. Definitely be sure you're not accidentally appending multiple one's over again or omitting ones you want to search. For this, I recommend a pathappend function like one used at http://superuser.com/a/753948. 5. As for managing vim / neovim, I'm coming to the realization the amount of time I've spent trying to configure completion / fix tiny things over the years probably makes me lose the net benefit vim has given me. Too bad there is no intellij for the CLI. In any event, I keep a vim config at https://github.com/tony/vim-config which I document extensively. It has quite a lot of bells and whistles, but lazy loads and checks the system before installing certain plugins. It should work with neovim too. I keep my central dot-configs (along with its submodules) at https://github.com/tony/.dot-config. Its permissively licensed, so feel free to copy whatever you'd like.
In Ask HN: What do you use to manage dotfiles?
I'm studying FreeBSD, C, C++, SDL2 and CMake. I'd love to highlight some of the open source projects I pitched in with as well as some of my own: - aseprite (http://www.aseprite.org/) is a cross-platform animated sprite editor by David Capello. I got FreeBSD support working [1] and added a shortcut to center the canvas [2]. This was my first C++ commit. If you like retro game art, definitely stop by and check it out. It's GPLv3 and you can build it for free, check out their [github](https://github.com/aseprite/aseprite/). - uMario (https://github.com/jakowskidev/uMario_Jakowski) is an NES Mario clone in C++ and SDL2. Check out the youtube video [3]. I got it building on Linux, FreeBSD and OS X [4] - Then a couple of tiny C projects with CMake that are sort of boilerplate ATM, but they're my first C programs. The cool thing is they use pe
Read the rest
rmissive licensed libraries and build across platforms since they use CMake. https://github.com/tony/sdl2-playproject / https://github.com/tony/reST-lex-byacc / https://github.com/tony/ncurses-example. On that front, I'm reading a book called "Compiler Design Using FLEX and YACC" by Vinu V. Das, which has been going good. As well as Lazy Foo's SDL tutorial (http://lazyfoo.net/tutorials/SDL/). - Another thing to mention is automatically rebuilding / reloading scripts when a file is saved. I started using entr(1) for that, http://entrproject.org/. Previously on projects like tmuxp and vcspull I've used sniffer (and looked into watchman) but have found this works best cross-platform. FreeBSD has file watching a bit trickier since we don't have inotify or fsevents. - On the dot-config front (https://github.com/tony/.dot-config / https://github.com/tony/vim-config) got virtualenv + python 3 + vim working together [5], as well as neovim fully compatible with my standard vim-config. I'm now using neovim full time and all my plugins without any problems. They loads asynchronously with NeoBundleLazy and the autocompletion is async thanks to Shougu's deoplete.nvim [6]. [1] https://github.com/aseprite/aseprite/pull/893 [2] https://github.com/aseprite/aseprite/pull/892 [3] https://www.youtube.com/watch?v=jya5He7KFsE [4] https://github.com/jakowskidev/uMario_Jakowski/pull/1 [5] https://github.com/klen/python-mode/pull/609 (https://github.com/klen/python-mode/compare/develop...tony:p...) [6] https://github.com/Shougo/deoplete.nvim
In Ask HN: What are you currently building?
git-pull·Jun 28, 2015Recommendation phrase
I love wrapping my brain around large codebases in my spare time. I wrote an application for help me download source code repositories in git, svn and mercurial and keep them in sync: http://vcspull.readthedocs.org/en/latest/ I keep the applications I want to study in a YAML file (https://github.com/tony/.dot-config/blob/master/.vcspull.yam...) and type "vcspull" to get the latest changes. You can read my ~/.vcspull.yaml to see some of the projects I look over by programming language. You can setup your config anyway you want (perhaps you wanted to study programming languages implementations, so have ~/work/langs and cpython, lua, ruby, etc. inside it.
In Ask HN: How do you familiarize yourself with a new codebase?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.