{"id":13715249,"url":"https://github.com/rafael-santiago/codeometer","last_synced_at":"2025-10-17T20:09:02.727Z","repository":{"id":80005624,"uuid":"276705685","full_name":"rafael-santiago/codeometer","owner":"rafael-santiago","description":"OK. Now let's talk about how much you have been walking or still how high you have been climbing in terms of code...","archived":false,"fork":false,"pushed_at":"2020-07-16T14:52:19.000Z","size":2569,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-05T06:31:58.811Z","etag":null,"topics":["ego-killer","golang","just-for-fun","self-hosted","silly-project"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rafael-santiago.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-02T17:18:53.000Z","updated_at":"2024-04-29T06:51:01.000Z","dependencies_parsed_at":"2023-06-26T01:12:13.172Z","dependency_job_id":null,"html_url":"https://github.com/rafael-santiago/codeometer","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rafael-santiago/codeometer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafael-santiago%2Fcodeometer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafael-santiago%2Fcodeometer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafael-santiago%2Fcodeometer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafael-santiago%2Fcodeometer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rafael-santiago","download_url":"https://codeload.github.com/rafael-santiago/codeometer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafael-santiago%2Fcodeometer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001286,"owners_count":26083058,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ego-killer","golang","just-for-fun","self-hosted","silly-project"],"created_at":"2024-08-03T00:00:56.524Z","updated_at":"2025-10-09T11:09:11.661Z","avatar_url":"https://github.com/rafael-santiago.png","language":"Go","readme":"C o d e o m e t e r  -  the programmers' beloved ego killer\n-----------------------------------------------------------\n\nCode o'what?!\n-------------\n\nHave you ever thought about your code in terms of distance magnitudes?\n\nThis is what this silly tool is about. Codeometer gives you the chance of knowing how much you already walked with your\ncoding skills. Depending on the given distance you can realize that you need to wake up a little and really stroll out\nthere or you can just discover that you still need to code a little more before thinking you are all that out there....\nyou know... an empirical way of disabling your '--cocky-mode'... ;)\n\nOf course, quantity does not mean quality, but you have known at least one programmer that likes to talk things like:\n\n                                                      ,  #\n                                                      ########Y\n                                                      ###########W\n                                                       I##############\n             ####WMV+                                     ,##########\n           #############W                                t#########Y\n         =#######=   B#####                         iB################   '- Oh! Gosh! Today a have been coding a LOT!'\n        ############    R###                       ################\n      ################W   ###                R#####################         '- A have written much code during all my\n    t###################t ####                  ###########  #####t                       programmer life...'\n   #######X i#################              ##############    ####\n W#######.  ##    :###########              +############R\nV##. ###V  ###################          i################           '- This software project is really huge, I have been\n###  ###   ##   W#############t     R####################t                                evolving it during years...'\nM##I ##   Y##     ###################################  ###\n,###      ###  :###Y;################################  ###       '- No one can figure out this software project alone.\n ####R    ######    .################################  #Y    It is so big! But I am the one. I have written all this sh*t.\n         ######B####################################                              You just name it. I created it.'\n        +#######X    M############################=\n        ######    ###############################                       '- I have been running a marathon as coder.'\n        #####     V############################i\n         B###      ###########################\n           +#        ########################\n                   =##Mi  i##################              ,###W\n                              ###############W          R#######R\n                                 .#####,  ################V:;IW#R\n                                  ###I     ###BIiY##  ##\n                                ####                 =#\n                                ####\n                                 ##\n                                  #\n                              ##. #\n                               ,###\n                            II=  ##\n                           X#######\n                                ####V,\n                                # ###\n                                Y= .#;\n\nOK. Let's see how much this 'a lot', 'big', 'huge' and 'marathon' means in real world terms.\n\nI do not want to depress you, REALLY. It is only about having fun and laughing at ourselves a little. It is always healthy.\n\nCalm down, slaughter your ego (killing it is never enough) and have fun! :)\n\nHow many kilometers has codeometer?\n-----------------------------------\n\nOnly considering implementation and test files (v1), codeometer says that itself has about 6.83 km.\n\nWhat are the supported platform?\n--------------------------------\n\nUntil now I have written codeometer thinking about Linux, FreeBSD and Windows. Anyway is pretty simple make it run\non other platforms.\n\nHow can I get the sources files?\n--------------------------------\n\nThe easiest way is as follows:\n\n    cockyDevel@RedBarn:~/src# git clone https://github.com/rafael-santiago/codeometer\n    cockyDevel@RedBarn:~/src# _\n\nDone!\n\nHow can I build codeometer?\n---------------------------\n\nCodeometer is a Golang project. The easiest way is as follows:\n\n    cockyDevel@RedBarn:~/src# cd codeometer/src\n    cockyDevel@RedBarn:~/src/codeometer/src# go build\n    cockyDevel@RedBarn:~/src/codeometer/src# _\n\nIf you want a more robust build with an installer and stuff. You need to install my build system called Hefesto. Hefesto is\navailable at \u003chttps://github.com/rafael-santiago/hefesto\u003e. After following the steps to put Hefesto working on your system,\ndo the following:\n\n    cockyDevel@RedBarn:~/src# git clone https://github.com/rafael-santiago/helios\n    cockyDevel@RedBarn:~/src# cd helios\n    cockyDevel@RedBarn:~/src/helios# hefesto --install=go-toolset,go-dep-scanner\n    cockyDevel@RedBarn:~/src/helios# cd ..\n    cockyDevel@RedBarn:~/src# rm -rf helios\n    cockyDevel@RedBarn:~/src# git clone https://github.com/rafael-santiago/codeometer\n    cockyDevel@RedBarn:~/src# cd codeometer/src\n    cockyDevel@RedBarn:~/src/codeometer/src# hefesto\n    cockyDevel@RedBarn:~/src/codeometer/src# _\n\nOnce built, you can install codeometer by running the install build sub-task:\n\n    cockyDevel@RedBarn:~/src/codeometer/src# hefesto --install\n    cockyDevel@RedBarn:~/src/codeometer/src# _\n\nOn Windows it is installed in C:\\codeometer and the application is exported, you will be able to access it from anywhere on\ncommand prompt. On Linux and FreeBSD codeometer is installed in /usr/local/share and /usr/local/bin, you also have a man\npage.\n\nIf you want to uninstall it:\n\n    cockyDevel@RedBarn:~/src/codeometer/src# hefesto --uninstall\n    cockyDevel@RedBarn:~/src/codeometer/src# _\n\nIf you have intentions of running a secure codeometer webserver, you can make its certificate by running the make-cert build\nsub-task:\n\n    cockyDevel@RedBarn:~/src/codeometer/src# hefesto --make-cert --server-crt=RedBard.crt --server-key=RedBarn.key\n    cockyDevel@RedBarn:~/src/codeometer/src# _\n\nHow can I  use codeometer?\n--------------------------\n\nYou can use codeometer as a good and old command line tool or you can use it from your web browser.\n\nIn order to use codeometer from your command line you need to run the measure command. By default this command only expects\na file or directory path or still a url to a git repo.\n\n    cockyDevel@RedBarn:~/src# codeometer measure --src=https://github.com/you/your-project\n    cockyDevel@RedBarn:~/src# _\n\nThe command measure also accepts the options: --exts, --font-size, --measures, --stats-per-file, --estimatives, --async,\n--loaders-nr and --subtask-timeout.\n\nThe option --exts is where you specify which file extensions are relevant (considered as code):\n\n    cockyDevel@RedBarn:~/src# codeometer measure --src=https://github.com/you/your-cpp-project --exts=.cpp,.hpp,c,h\n    cockyDevel@RedBarn:~/src# _\n\nWhen --exts is not passed, all files will be relevant.\n\nThe option --font-size is the option that specifies the font size of your code. There are two: '10px' and '12px' (the default):\n\n    cockyDevel@RedBarn:~/src# codeometer measure --src=https://github.com/you/your-cpp-project --font-size=10px\n    cockyDevel@RedBarn:~/src# _\n\nThe option --measures specifies which real world unit of measurement will be considered by the tool. It accepts a list that\ncould be contains: 'km', 'mi', 'm', 'mm'. When --measures is not passed, only kilometer measure is considered:\n\n    cockyDevel@RedBarn:~/src# codeometer measure --src=https://github.com/you/your-go-project --measures=km,mi,m,mm\n    cockyDevel@RedBarn:~/src# _\n\nThe option --stats-per-file when passed makes codeometer to include a measurement report for each relevant found file.\nBy default this individual report is disabled:\n\n    cockyDevel@RedBarn:~/src# codeometer measure --src=https://github.com/you/your-go-project --stats-per-file\n    cockyDevel@RedBarn:~/src# _\n\nThe option --estimatives asks codeometer to include estimatives of the measured code against the measures of famous monuments\nand places. By default this estimative is not included:\n\n    cockyDevel@RedBarn:~/src# codeometer measure --src=https://github.com/you/your-go-project --estimatives\n    cockyDevel@RedBarn:~/src# _\n\nThe option --async asks codeometer to use a more concurrent code scanning. By default the code scanning is synchronous (one\nfile at a time). The option --loaders-nr works together with --async. With --loaders-nr you can indicate how many concurrent\nscans will be allowed by recursion (the default is 20):\n\n    cockyDevel@RedBarn:~/src# codeometer measure --src=https://github.com/you/your-go-project --loaders-nr=10 --async\n    cockyDevel@RedBarn:~/src# _\n\nIf you have been facing errors when running codeometer with --async option, try to decrease the loaders number with\n--loader-nr.\n\nThe option --subtask-timeout defines the maximum duration time of a subtask executed by codeometer. Until now it is used to\navoid git cloning operations being run \"forever\". When not specified the default timeout is 10 minutes. The format of duration\ntime is a positive number followed by one of the following valid time units: ns, ms, s, m, h. If we want a timeout of one hour\nand a half:\n\n    cockyDevel@RedBarn:~/src# codeometer measure --src=https://github.com/you/your-go-project --subtask-timeout=1h30m\n    cockyDevel@RedBarn:~/src# _\n\nNow you know all aspects about the measure command.\n\nIf you want to use codeometer as a web tool you should use httpd command. This is the easiest way of running it:\n\n    cockyDevel@RedBarn:~/src# codeometer httpd --peer-addr=127.0.0.1:8080\n    cockyDevel@RedBarn:~/src# _\n\nNow, all you should do is to access from your browser the address \u003chttp://127.0.0.1:8080/codeometer\u003e.\n\nWhen you specify the loopback address, only you will be able to access the server. If you want more users accessing it\nbesides you, inform in --peer-addr your network address.\n\nWhat about a secure server? If you want it, you need to specify the certificate and key file paths with the --cert and\n--key options repectively:\n\n    cockyDevel@RedBarn:~/src# codeometer httpd --peer-addr=RedBarn:8080 --cert=RedBarn.crt --key=RedBarn.key\n    cockyDevel@RedBarn:~/src# _\n\nThe httpd command also supports the --async, --loaders-nr and --subtask-timeout.\n\nAt server-side, type CTRL + c or send a SIGTERM or SIGINT to codemometer' process thus you will gracefully exit its web server.\n\nNow you know the entire tool. If in the future you want to a quick help give it codeometer help command a try:\n\n    cockyDevel@RedBarn:~/src# codeometer help measure\n    cockyDevel@RedBarn:~/src# codeometer help httpd\n\nIn order to read the manual:\n\n    cockyDevel@RedBarn:~/src# codeometer man\n    cockyDevel@RedBarn:~/src# _\n\nThat's it. I hope you like codeometer. Enjoy!\n","funding_links":[],"categories":["Golang"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafael-santiago%2Fcodeometer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frafael-santiago%2Fcodeometer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafael-santiago%2Fcodeometer/lists"}