├── Readme.md ├── grapher.rb └── random_list_of_dates /Readme.md: -------------------------------------------------------------------------------- 1 | this repo is just to try and fake out that graph on the github profile page 2 | -------------------------------------------------------------------------------- /grapher.rb: -------------------------------------------------------------------------------- 1 | require 'date' 2 | 3 | # █████████████████████████ 4 | # █ ███ █ █ ████ ████ 5 | # █ ███ ███ ███ ████ ████ 6 | # █ █ █ ███ ███ ████ ████ 7 | # █ █ █ ███ ███ ████ ████ 8 | # █ █ █ █ █ 9 | # █████████████████████████ 10 | 11 | PATTERN = <<-EOF.split("\n").map{|line| line.split(//)}.transpose.map(&:join).join 12 | XXXXXXXXXXXXXXXXXXXXXXXXX 13 | X XXX X X XXXX XXXX 14 | X XXX XXX XXX XXXX XXXX 15 | X X X XXX XXX XXXX XXXX 16 | X X X XXX XXX XXXX XXXX 17 | X X X X X 18 | XXXXXXXXXXXXXXXXXXXXXXXXX 19 | EOF 20 | 21 | MASK = PATTERN.split(//).map{|c| c == 'X'} 22 | 23 | DAYSTART = Date.new(2021,9,19) 24 | raise unless DAYSTART.wday == 0 # 25 | DAYEND = DAYSTART + (PATTERN.size*8) 26 | 27 | 28 | # def test_pattern 29 | # (0..6).map{|n| (PATTERN.split(//)*3).each_with_index{|c,i| print c if i%7==n}; print "\n"} 30 | # end 31 | 32 | dates = DAYSTART.upto( DAYEND ).to_a 33 | 34 | def on?(date) 35 | delta = (date - DAYSTART).to_i 36 | MASK[ delta % MASK.size ] 37 | end 38 | 39 | commit_dates = [] 40 | dates.each do |date| 41 | if on?(date) 42 | 22.times{|i| commit_dates << date.to_time + i*3600} 43 | end 44 | end 45 | 46 | str_commit_dates = commit_dates.map(&:to_s) 47 | 48 | commit_dates.each do |date| 49 | puts date 50 | File.open('random_list_of_dates', 'w') { |f| f << str_commit_dates.shuffle.first(12).join("\n") } 51 | `GIT_AUTHOR_DATE="#{date}" GIT_COMMITTER_DATE="#{date}" git commit -am "#{date}"` 52 | end 53 | 54 | -------------------------------------------------------------------------------- /random_list_of_dates: -------------------------------------------------------------------------------- 1 | 2023-12-16 10:00:00 -0800 2 | 2023-06-26 20:00:00 -0700 3 | 2023-06-28 18:00:00 -0700 4 | 2023-03-26 16:00:00 -0700 5 | 2025-01-08 18:00:00 -0800 6 | 2023-11-09 19:00:00 -0800 7 | 2021-10-23 13:00:00 -0700 8 | 2024-12-31 03:00:00 -0800 9 | 2021-12-14 01:00:00 -0800 10 | 2024-01-21 01:00:00 -0800 11 | 2025-03-01 05:00:00 -0800 12 | 2023-02-02 04:00:00 -0800 --------------------------------------------------------------------------------