reprogl

Форк
0
/
.todo2 
1033 строки · 30.0 Кб
1
{
2
  "title": "Reprogl tasks",
3
  "tasks": [
4
    {
5
      "text": "Remove fonts awesome #24",
6
      "priority": "high",
7
      "creation": 1686423384,
8
      "completion": 1687124096,
9
      "tasks": [
10
        {
11
          "text": "Glyphicons instead of FontsAwesome",
12
          "priority": "medium",
13
          "creation": 1686433321
14
        }
15
      ]
16
    },
17
    {
18
      "text": "Avatar generator #31",
19
      "priority": "high",
20
      "creation": 1686423877,
21
      "completion": 1687988349,
22
      "tasks": [
23
        {
24
          "text": "Use gravatar if picture exist",
25
          "priority": "medium",
26
          "creation": 1686423927,
27
          "completion": 1687961663
28
        },
29
        {
30
          "text": "Avatar compression",
31
          "priority": "medium",
32
          "creation": 1687968893
33
        }
34
      ]
35
    },
36
    {
37
      "text": "Images gallery in article #30",
38
      "priority": "medium",
39
      "creation": 1686424057,
40
      "completion": 1690540780
41
    },
42
    {
43
      "text": "Comments count in article list #29",
44
      "priority": "medium",
45
      "creation": 1686424087,
46
      "completion": 1686472608
47
    },
48
    {
49
      "text": "GTmetrix optimization #27",
50
      "priority": "high",
51
      "creation": 1686424120,
52
      "completion": 1690487577,
53
      "tasks": [
54
        {
55
          "text": "Использовать GPRS-троттлинг при загрузке",
56
          "priority": "medium",
57
          "creation": 1687596660
58
        },
59
        {
60
          "text": "Критические стили сразу в html",
61
          "priority": "medium",
62
          "creation": 1687596690,
63
          "tasks": [
64
            {
65
              "text": "https://web.dev/critical-rendering-path-adding-interactivity-with-javascript/",
66
              "priority": "medium",
67
              "creation": 1690117973
68
            },
69
            {
70
              "text": "https://web.dev/defer-non-critical-css/",
71
              "priority": "medium",
72
              "creation": 1690117987
73
            },
74
            {
75
              "text": "https://web.dev/extract-critical-css/",
76
              "priority": "medium",
77
              "creation": 1690118002
78
            }
79
          ]
80
        },
81
        {
82
          "text": "Сокращение цепочек отложенной загрузки (шрифты, фоны)",
83
          "priority": "medium",
84
          "creation": 1687596740,
85
          "completion": 1690462007
86
        },
87
        {
88
          "text": "remove Shuffle.js",
89
          "priority": "medium",
90
          "creation": 1688143411,
91
          "completion": 1688145692
92
        },
93
        {
94
          "text": "оптимизация стилей",
95
          "priority": "medium",
96
          "creation": 1689582219,
97
          "tasks": [
98
            {
99
              "text": "сборка foundation.css без ненужных стилей",
100
              "priority": "medium",
101
              "creation": 1689582284,
102
              "completion": 1690462033
103
            },
104
            {
105
              "text": "упорядочить и проредить размеры @media в CSS",
106
              "priority": "medium",
107
              "creation": 1689582357
108
            }
109
          ]
110
        }
111
      ]
112
    },
113
    {
114
      "text": "External library for cache #25",
115
      "priority": "high",
116
      "creation": 1686424143,
117
      "completion": 1687780776,
118
      "tasks": [
119
        {
120
          "text": "Сохранять Geolocation ID в трекинге",
121
          "priority": "medium",
122
          "creation": 1687082513,
123
          "completion": 1687774403
124
        },
125
        {
126
          "text": "Сохранять минимальный Recent Posts ID для сайдбара",
127
          "priority": "medium",
128
          "creation": 1687670277,
129
          "completion": 1687728195
130
        },
131
        {
132
          "text": "Clear cache by button",
133
          "priority": "medium",
134
          "creation": 1687774470
135
        }
136
      ]
137
    },
138
    {
139
      "text": "Use SVG images #24",
140
      "priority": "verylow",
141
      "creation": 1686424190,
142
      "completion": 1691321251,
143
      "tasks": [
144
        {
145
          "text": "use SVG symbols from sprites.svg",
146
          "priority": "medium",
147
          "creation": 1686424214,
148
          "completion": 1687124118
149
        },
150
        {
151
          "text": "replace logo to SVG",
152
          "priority": "medium",
153
          "creation": 1686424232,
154
          "tasks": [
155
            {
156
              "text": "https://svg-art.ru/?p=5",
157
              "priority": "low",
158
              "creation": 1691096694
159
            },
160
            {
161
              "text": "https://jenkov.com/tutorials/svg/svg-viewport-view-box.html",
162
              "priority": "low",
163
              "creation": 1691096752
164
            },
165
            {
166
              "text": "https://www.w3.org/TR/SVG/coords.html",
167
              "priority": "low",
168
              "creation": 1691140469
169
            }
170
          ]
171
        },
172
        {
173
          "text": "remove fontsawesome",
174
          "priority": "medium",
175
          "creation": 1686424267,
176
          "completion": 1687124126
177
        }
178
      ]
179
    },
180
    {
181
      "text": "ZIP bomb #22",
182
      "priority": "low",
183
      "creation": 1686424298
184
    },
185
    {
186
      "text": "Log to file (access, errors) #18",
187
      "priority": "low",
188
      "creation": 1686424324,
189
      "tasks": [
190
        {
191
          "text": "maybe use logrotate on production",
192
          "priority": "medium",
193
          "creation": 1686424345
194
        },
195
        {
196
          "text": "maybe use other logs system, with GUI, search etc.",
197
          "priority": "medium",
198
          "creation": 1688471622
199
        }
200
      ]
201
    },
202
    {
203
      "text": "Tracking #17",
204
      "priority": "low",
205
      "creation": 1686424373,
206
      "completion": 1721496271,
207
      "tasks": [
208
        {
209
          "text": "first step - implement tracking like the tracking system in the old blog",
210
          "priority": "medium",
211
          "creation": 1686424389,
212
          "completion": 1686424783
213
        },
214
        {
215
          "text": "after this - add geolocation",
216
          "priority": "medium",
217
          "creation": 1686424403,
218
          "completion": 1686954107
219
        },
220
        {
221
          "text": "page view counter by cron-task",
222
          "priority": "medium",
223
          "creation": 1686424416,
224
          "completion": 1686744221
225
        },
226
        {
227
          "text": "admin dashboard list for tracking",
228
          "priority": "medium",
229
          "creation": 1686424430,
230
          "completion": 1686601822
231
        },
232
        {
233
          "text": "bot detection",
234
          "priority": "medium",
235
          "creation": 1686466747,
236
          "completion": 1686666040
237
        },
238
        {
239
          "text": "Save method, caching only GET",
240
          "priority": "medium",
241
          "creation": 1686954076
242
        }
243
      ]
244
    },
245
    {
246
      "text": "IE and SVG use external source #16",
247
      "priority": "verylow",
248
      "creation": 1686424529,
249
      "completion": 1690980407,
250
      "tasks": [
251
        {
252
          "text": "https://css-tricks.com/svg-use-external-source/",
253
          "priority": "medium",
254
          "creation": 1686424547
255
        },
256
        {
257
          "text": "https://css-tricks.com/svg-use-with-external-reference-take-2/",
258
          "priority": "medium",
259
          "creation": 1686424562
260
        },
261
        {
262
          "text": "https://github.com/jonathantneal/svg4everybody",
263
          "priority": "medium",
264
          "creation": 1686424574
265
        }
266
      ]
267
    },
268
    {
269
      "text": "Using embedded templates #14",
270
      "priority": "medium",
271
      "creation": 1686424604,
272
      "completion": 1718022029
273
    },
274
    {
275
      "text": "Config refactoring #13",
276
      "priority": "high",
277
      "creation": 1686424646,
278
      "completion": 1687609017
279
    },
280
    {
281
      "text": "After new comment #12",
282
      "priority": "medium",
283
      "creation": 1686424677,
284
      "completion": 1688076899,
285
      "tasks": [
286
        {
287
          "text": "geolocation",
288
          "priority": "medium",
289
          "creation": 1686424694,
290
          "completion": 1687021550
291
        },
292
        {
293
          "text": "email",
294
          "priority": "medium",
295
          "creation": 1686424698
296
        },
297
        {
298
          "text": "telegram notification",
299
          "priority": "medium",
300
          "creation": 1686424710,
301
          "completion": 1686424726
302
        }
303
      ]
304
    },
305
    {
306
      "text": "Add telegram instant view",
307
      "priority": "verylow",
308
      "creation": 1686463040
309
    },
310
    {
311
      "text": "Remove old SyntaxHighlighter",
312
      "priority": "low",
313
      "creation": 1686463740,
314
      "completion": 1687097463
315
    },
316
    {
317
      "text": "Lists of most viewed articles on the statistics page",
318
      "priority": "medium",
319
      "creation": 1686466487,
320
      "completion": 1688938315
321
    },
322
    {
323
      "text": "Responsive images",
324
      "priority": "high",
325
      "creation": 1686470744,
326
      "completion": 1690025136,
327
      "tasks": [
328
        {
329
          "text": "https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images",
330
          "priority": "medium",
331
          "creation": 1686470769
332
        },
333
        {
334
          "text": "https://html.spec.whatwg.org/multipage/embedded-content.html#element-attrdef-img-srcset",
335
          "priority": "medium",
336
          "creation": 1686470781
337
        },
338
        {
339
          "text": "example: https://xeiaso.net/blog/site-update-v3",
340
          "priority": "low",
341
          "creation": 1687503586
342
        },
343
        {
344
          "text": "example: https://clivern.com/how-to-connect-arduino-with-a-raspberry-pi-over-a-serial-port/",
345
          "priority": "low",
346
          "creation": 1687622203
347
        },
348
        {
349
          "text": "Подготовка изображений из оригинального (при процессинге статьи)",
350
          "priority": "medium",
351
          "creation": 1687595434,
352
          "completion": 1689613628
353
        },
354
        {
355
          "text": "example: https://joppe.dev/2020/06/17/behaviour-driven-development-basics/",
356
          "priority": "low",
357
          "creation": 1687861534
358
        },
359
        {
360
          "text": "https://cloudfour.com/thinks/responsive-images-101-definitions/",
361
          "priority": "medium",
362
          "creation": 1689018647
363
        },
364
        {
365
          "text": "https://css-tricks.com/a-guide-to-the-responsive-images-syntax-in-html/",
366
          "priority": "medium",
367
          "creation": 1689065712
368
        },
369
        {
370
          "text": "http://www.useragentman.com/tests/html5ImageConverter/examples/dice-compare/drag-test.html",
371
          "priority": "medium",
372
          "creation": 1689098058
373
        },
374
        {
375
          "text": "Перенести фон сайдабара в стили страницы, учитывать media query",
376
          "priority": "medium",
377
          "creation": 1689101418,
378
          "completion": 1689769919,
379
          "tasks": [
380
            {
381
              "text": "синхронизировать фон сайдбара и картинку в записи",
382
              "priority": "medium",
383
              "creation": 1689316299
384
            },
385
            {
386
              "text": "Альтернативная картинка может быть больше",
387
              "priority": "medium",
388
              "creation": 1689613755
389
            }
390
          ]
391
        },
392
        {
393
          "text": "Optimization: https://kinsta.com/blog/optimize-images-for-web/",
394
          "priority": "verylow",
395
          "creation": 1689144065
396
        },
397
        {
398
          "text": "https://css-tricks.com/using-webp-images/",
399
          "priority": "medium",
400
          "creation": 1689529382
401
        },
402
        {
403
          "text": "Проверка веса альтернативных картинок, исходная может быть легче",
404
          "priority": "medium",
405
          "creation": 1689533411,
406
          "completion": 1689613555
407
        },
408
        {
409
          "text": "Optimization: https://www.freshleafmedia.co.uk/blog/automatically-find-best-image-compression",
410
          "priority": "verylow",
411
          "creation": 1689684050
412
        },
413
        {
414
          "text": "Трактор и face.jpg",
415
          "priority": "medium",
416
          "creation": 1690045109
417
        }
418
      ]
419
    },
420
    {
421
      "text": "500-е ошибки в телеграм-уведомлениях",
422
      "priority": "high",
423
      "creation": 1686479219,
424
      "completion": 1686763560
425
    },
426
    {
427
      "text": "Более светлый плейсхолдер в форме",
428
      "priority": "medium",
429
      "creation": 1686581926,
430
      "completion": 1686730632
431
    },
432
    {
433
      "text": "microformats",
434
      "priority": "low",
435
      "creation": 1686771422,
436
      "completion": 1719175149,
437
      "tasks": [
438
        {
439
          "text": "https://microformats.org/",
440
          "priority": "medium",
441
          "creation": 1686771515
442
        },
443
        {
444
          "text": "http://pin13.net/",
445
          "priority": "medium",
446
          "creation": 1686771529
447
        }
448
      ]
449
    },
450
    {
451
      "text": "Регистрация пользователей для комментариев",
452
      "priority": "high",
453
      "creation": 1686772368,
454
      "tasks": [
455
        {
456
          "text": "Через соц-сети и т.п.",
457
          "priority": "medium",
458
          "creation": 1686772409,
459
          "tasks": [
460
            {
461
              "text": "Yandex",
462
              "priority": "medium",
463
              "creation": 1722616679,
464
              "completion": 1725090773,
465
              "tasks": [
466
                {
467
                  "text": "https://yandex.ru/id/business",
468
                  "priority": "medium",
469
                  "creation": 1722616719
470
                },
471
                {
472
                  "text": "https://yandex.ru/dev/id/doc/ru/",
473
                  "priority": "medium",
474
                  "creation": 1722616732
475
                },
476
                {
477
                  "text": "https://github.com/rakeev/oauth2-yandex",
478
                  "priority": "low",
479
                  "creation": 1725168084
480
                }
481
              ]
482
            },
483
            {
484
              "text": "VK",
485
              "priority": "medium",
486
              "creation": 1722886491,
487
              "completion": 1725700036,
488
              "tasks": [
489
                {
490
                  "text": "https://dev.vk.com/ru/vkid",
491
                  "priority": "low",
492
                  "creation": 1725132927
493
                },
494
                {
495
                  "text": "https://id.vk.com/about/business/go/docs/ru/vkid/latest/vk-id/connection/start-integration/auth-without-sdk-web",
496
                  "priority": "low",
497
                  "creation": 1725133380
498
                },
499
                {
500
                  "text": "https://github.com/j4k/oauth2-vkontakte",
501
                  "priority": "low",
502
                  "creation": 1725168158
503
                }
504
              ]
505
            }
506
          ]
507
        },
508
        {
509
          "text": "Log in with OpenID",
510
          "priority": "medium",
511
          "creation": 1717673795
512
        },
513
        {
514
          "text": "Страница профиля",
515
          "priority": "medium",
516
          "creation": 1722579787,
517
          "tasks": [
518
            {
519
              "text": "Загрузка аватара",
520
              "priority": "medium",
521
              "creation": 1722579856,
522
              "tasks": [
523
                {
524
                  "text": "Avatar for techbot",
525
                  "priority": "medium",
526
                  "creation": 1723368044,
527
                  "completion": 1724496039,
528
                  "tasks": [
529
                    {
530
                      "text": "https://lexica.art/prompt/537c8c95-2bb5-4730-9cbc-fff04cc26aee",
531
                      "priority": "low",
532
                      "creation": 1723368066
533
                    },
534
                    {
535
                      "text": "https://lexica.art/prompt/50c096de-8ea3-4dc3-981a-67f1fff4d1fd",
536
                      "priority": "low",
537
                      "creation": 1723368445
538
                    }
539
                  ]
540
                },
541
                {
542
                  "text": "Бекап картинок",
543
                  "priority": "medium",
544
                  "creation": 1724496203
545
                }
546
              ]
547
            },
548
            {
549
              "text": "Емейл и подтверждение",
550
              "priority": "medium",
551
              "creation": 1722579887,
552
              "tasks": [
553
                {
554
                  "text": "Возможность отписаться от писем",
555
                  "priority": "medium",
556
                  "creation": 1724224680
557
                },
558
                {
559
                  "text": "Скрывать фейковый емейл",
560
                  "priority": "medium",
561
                  "creation": 1724267774
562
                }
563
              ]
564
            },
565
            {
566
              "text": "Сбросить пароль",
567
              "priority": "medium",
568
              "creation": 1722579923
569
            },
570
            {
571
              "text": "Обновить комментарии после редактирования профиля",
572
              "priority": "medium",
573
              "creation": 1724224640,
574
              "completion": 1724700260
575
            }
576
          ]
577
        },
578
        {
579
          "text": "Разделить админские права и обычных пользователей",
580
          "priority": "medium",
581
          "creation": 1722579824,
582
          "completion": 1725031341
583
        },
584
        {
585
          "text": "Аватар в сайдбаре навигации",
586
          "priority": "medium",
587
          "creation": 1722629150,
588
          "completion": 1724524471,
589
          "tasks": [
590
            {
591
              "text": "Проверить Gravatar, если аватара нет",
592
              "priority": "medium",
593
              "creation": 1722886402
594
            },
595
            {
596
              "text": "Учёт пола для аватара и в админке",
597
              "priority": "medium",
598
              "creation": 1723232746,
599
              "completion": 1723491203
600
            }
601
          ]
602
        },
603
        {
604
          "text": "Redirect to referer",
605
          "priority": "medium",
606
          "creation": 1723407736,
607
          "completion": 1723491219
608
        },
609
        {
610
          "text": "Страница пользователя",
611
          "priority": "medium",
612
          "creation": 1723528272,
613
          "tasks": [
614
            {
615
              "text": "Дата регистрации",
616
              "priority": "medium",
617
              "creation": 1723528301
618
            },
619
            {
620
              "text": "Список комментариев",
621
              "priority": "medium",
622
              "creation": 1723528312
623
            },
624
            {
625
              "text": "RSS комментариев пользователя",
626
              "priority": "medium",
627
              "creation": 1723528387
628
            }
629
          ]
630
        },
631
        {
632
          "text": "Форма регистрация",
633
          "priority": "medium",
634
          "creation": 1724694192,
635
          "tasks": [
636
            {
637
              "text": "Отправлять ссылку подтверждения на почту, создание пользователя после",
638
              "priority": "medium",
639
              "creation": 1724694249
640
            }
641
          ]
642
        }
643
      ]
644
    },
645
    {
646
      "text": "Default image for feeds (for example https://feedly.com)",
647
      "priority": "medium",
648
      "creation": 1686847532,
649
      "completion": 1717854684,
650
      "tasks": [
651
        {
652
          "text": "example: https://apps.timwhitlock.info/unicode/inspect?s=%E2%99%82",
653
          "priority": "low",
654
          "creation": 1687851554
655
        },
656
        {
657
          "text": "example: https://joppe.dev/2020/06/17/behaviour-driven-development-basics/",
658
          "priority": "low",
659
          "creation": 1687861639
660
        },
661
        {
662
          "text": "https://ogp.me/",
663
          "priority": "medium",
664
          "creation": 1691399050,
665
          "completion": 1692039269
666
        },
667
        {
668
          "text": "https://json-ld.org/",
669
          "priority": "medium",
670
          "creation": 1691400523
671
        },
672
        {
673
          "text": "https://okbinteractive.studio/en/insights/what-are-open-graph-metatags-and-how-to-use-them-in-web-pages",
674
          "priority": "medium",
675
          "creation": 1692028935,
676
          "completion": 1692039271
677
        },
678
        {
679
          "text": "https://www.rssboard.org/rss-specification#ltenclosuregtSubelementOfLtitemgt",
680
          "priority": "high",
681
          "creation": 1717519919
682
        },
683
        {
684
          "text": "example: https://sazak.io/rss.xml",
685
          "priority": "low",
686
          "creation": 1717519989
687
        },
688
        {
689
          "text": "Best practises https://kevincox.ca/2022/05/06/rss-feed-best-practices/",
690
          "priority": "medium",
691
          "creation": 1717850917
692
        }
693
      ]
694
    },
695
    {
696
      "text": "Использовать один docker-контейнер для приложения и nodejs",
697
      "priority": "high",
698
      "creation": 1687069175,
699
      "completion": 1687169518
700
    },
701
    {
702
      "text": "Graceful shutdown",
703
      "priority": "medium",
704
      "creation": 1687236055,
705
      "completion": 1717935837,
706
      "tasks": [
707
        {
708
          "text": "https://www.rudderstack.com/blog/implementing-graceful-shutdown-in-go/",
709
          "priority": "medium",
710
          "creation": 1687236073
711
        },
712
        {
713
          "text": "https://github.com/GolangLessons/sso/blob/main/cmd/sso/main.go",
714
          "priority": "medium",
715
          "creation": 1717673156
716
        },
717
        {
718
          "text": "https://github.com/mattermost/mattermost/blob/master/server/cmd/mattermost/commands/server.go",
719
          "priority": "medium",
720
          "creation": 1717673268
721
        }
722
      ]
723
    },
724
    {
725
      "text": "Проверить протухшие ссылки у комментаторов",
726
      "priority": "medium",
727
      "creation": 1687968750,
728
      "completion": 1689009802
729
    },
730
    {
731
      "text": "Use ETag for avatar",
732
      "priority": "high",
733
      "creation": 1688036716,
734
      "completion": 1688041076
735
    },
736
    {
737
      "text": "User authentication",
738
      "priority": "high",
739
      "creation": 1688249143,
740
      "completion": 1688919125,
741
      "tasks": [
742
        {
743
          "text": "login: https://colorlib.com/wp/cat/login-forms/",
744
          "priority": "low",
745
          "creation": 1688249245,
746
          "completion": 1688801221
747
        },
748
        {
749
          "text": "session by secure cookie",
750
          "priority": "medium",
751
          "creation": 1688278184,
752
          "completion": 1688591205,
753
          "tasks": [
754
            {
755
              "text": "Sign cookie value",
756
              "priority": "medium",
757
              "creation": 1688422511,
758
              "completion": 1688582013
759
            },
760
            {
761
              "text": "encrypt/decrypt value",
762
              "priority": "medium",
763
              "creation": 1688422544
764
            },
765
            {
766
              "text": "check session expiration",
767
              "priority": "medium",
768
              "creation": 1688582203,
769
              "completion": 1688585748
770
            }
771
          ]
772
        },
773
        {
774
          "text": "Login user",
775
          "priority": "medium",
776
          "creation": 1688422755,
777
          "tasks": [
778
            {
779
              "text": "Update last login and logins count",
780
              "priority": "medium",
781
              "creation": 1688422798,
782
              "completion": 1688552577
783
            },
784
            {
785
              "text": "flash message",
786
              "priority": "medium",
787
              "creation": 1688422875,
788
              "completion": 1688505709
789
            },
790
            {
791
              "text": "Success flash",
792
              "priority": "medium",
793
              "creation": 1688552607,
794
              "completion": 1688642371
795
            },
796
            {
797
              "text": "Redirect to referer",
798
              "priority": "medium",
799
              "creation": 1688801195,
800
              "completion": 1688919125
801
            }
802
          ]
803
        }
804
      ]
805
    },
806
    {
807
      "text": "Self-update",
808
      "priority": "verylow",
809
      "creation": 1716815729
810
    },
811
    {
812
      "text": "Add JSON-feed",
813
      "priority": "low",
814
      "creation": 1717520159
815
    },
816
    {
817
      "text": "Статические страницы в sitemap.xml",
818
      "priority": "medium",
819
      "creation": 1718047085,
820
      "completion": 1719737452
821
    },
822
    {
823
      "text": "About page",
824
      "priority": "medium",
825
      "creation": 1718173013,
826
      "completion": 1718918135,
827
      "tasks": [
828
        {
829
          "text": "parse markdown",
830
          "priority": "medium",
831
          "creation": 1718173041,
832
          "completion": 1718718031,
833
          "tasks": [
834
            {
835
              "text": "https://github.com/gomarkdown/markdown",
836
              "priority": "medium",
837
              "creation": 1718175469
838
            },
839
            {
840
              "text": "https://github.com/yuin/goldmark",
841
              "priority": "medium",
842
              "creation": 1718175485
843
            },
844
            {
845
              "text": "https://github.com/russross/blackfriday",
846
              "priority": "medium",
847
              "creation": 1718175501
848
            }
849
          ]
850
        },
851
        {
852
          "text": "add job history",
853
          "priority": "medium",
854
          "creation": 1718173054
855
        }
856
      ]
857
    },
858
    {
859
      "text": "Раздел проекты",
860
      "priority": "medium",
861
      "creation": 1719561865,
862
      "tasks": [
863
        {
864
          "text": "Список проектов",
865
          "priority": "medium",
866
          "creation": 1719561913
867
        },
868
        {
869
          "text": "Страницы проектов",
870
          "priority": "medium",
871
          "creation": 1719561925,
872
          "tasks": [
873
            {
874
              "text": "Markdown + meta-info",
875
              "priority": "medium",
876
              "creation": 1719561967
877
            },
878
            {
879
              "text": "golang import info (if necessary)",
880
              "priority": "medium",
881
              "creation": 1719562055
882
            },
883
            {
884
              "text": "golang doc generation (if necessary)",
885
              "priority": "medium",
886
              "creation": 1719562119
887
            }
888
          ]
889
        }
890
      ]
891
    },
892
    {
893
      "text": "Сгенерировать новые иконки, вроде apple-icon-72x72.png",
894
      "priority": "medium",
895
      "creation": 1720156455,
896
      "completion": 1720376414
897
    },
898
    {
899
      "text": "5 неудачных попыток ввода пароля и блокировка на полчаса",
900
      "priority": "medium",
901
      "creation": 1720600352
902
    },
903
    {
904
      "text": "New favicons",
905
      "priority": "medium",
906
      "creation": 1720767768,
907
      "tasks": [
908
        {
909
          "text": "Multiple sizes in .ico file",
910
          "priority": "medium",
911
          "creation": 1720767810
912
        },
913
        {
914
          "text": "https://stackoverflow.com/questions/9150691/how-to-have-multiple-favicon-sizes-yet-serve-only-a-16x16-by-default",
915
          "priority": "low",
916
          "creation": 1720767840
917
        },
918
        {
919
          "text": "https://jec.fish/blog/favicons-manifest",
920
          "priority": "low",
921
          "creation": 1720767857
922
        },
923
        {
924
          "text": "https://evilmartians.com/chronicles/how-to-favicon-in-2021-six-files-that-fit-most-needs",
925
          "priority": "low",
926
          "creation": 1720767875
927
        }
928
      ]
929
    },
930
    {
931
      "text": "Slow server processing",
932
      "priority": "medium",
933
      "creation": 1721379002,
934
      "completion": 1724483589,
935
      "tasks": [
936
        {
937
          "text": "https://docs.nginx.com/nginx/admin-guide/monitoring/logging/",
938
          "priority": "low",
939
          "creation": 1721416205
940
        },
941
        {
942
          "text": "https://nginx.org/en/docs/http/ngx_http_log_module.html",
943
          "priority": "low",
944
          "creation": 1721416242
945
        }
946
      ]
947
    },
948
    {
949
      "text": "handlers.AddCommentDummy for production environment (for testing purposes)",
950
      "priority": "medium",
951
      "creation": 1722926032
952
    },
953
    {
954
      "text": "Change project structure",
955
      "priority": "medium",
956
      "creation": 1722945494
957
    },
958
    {
959
      "text": "Replace router library to github.com/go-chi/chi",
960
      "priority": "medium",
961
      "creation": 1723123796,
962
      "completion": 1726084432
963
    },
964
    {
965
      "text": "месяцы на русском в статьях, статистике и т.п.",
966
      "priority": "medium",
967
      "creation": 1723749545,
968
      "completion": 1723882299
969
    },
970
    {
971
      "text": "Fix fonts for headers for MacOS/Windows",
972
      "priority": "medium",
973
      "creation": 1726248015,
974
      "completion": 1728066454,
975
      "tasks": [
976
        {
977
          "text": "https://www.cssfontstack.com",
978
          "priority": "low",
979
          "creation": 1728025755
980
        }
981
      ]
982
    },
983
    {
984
      "text": "Add webp for avatar",
985
      "priority": "medium",
986
      "creation": 1726304408,
987
      "tasks": [
988
        {
989
          "text": "Support webp for external user providers",
990
          "priority": "medium",
991
          "creation": 1726304442
992
        },
993
        {
994
          "text": "https://github.com/nickalie/go-webpbin",
995
          "priority": "low",
996
          "creation": 1726306865
997
        },
998
        {
999
          "text": "https://github.com/gen2brain/webp",
1000
          "priority": "low",
1001
          "creation": 1726306886
1002
        },
1003
        {
1004
          "text": "https://github.com/gen2brain/avif",
1005
          "priority": "low",
1006
          "creation": 1726306897
1007
        },
1008
        {
1009
          "text": "https://github.com/kolesa-team/go-webp",
1010
          "priority": "low",
1011
          "creation": 1726307124
1012
        }
1013
      ]
1014
    },
1015
    {
1016
      "text": "reduce CSS size",
1017
      "priority": "medium",
1018
      "creation": 1728148627,
1019
      "tasks": [
1020
        {
1021
          "text": "https://www.smashingmagazine.com/2021/08/refactoring-css-optimizing-size-performance-part3/",
1022
          "priority": "low",
1023
          "creation": 1728148649
1024
        },
1025
        {
1026
          "text": "https://prototyp.digital/blog/improving-css-performance-and-file-size-an-in-depth-guide",
1027
          "priority": "low",
1028
          "creation": 1728148661
1029
        }
1030
      ]
1031
    }
1032
  ]
1033
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.