CS Student @realLasustech | Young builder shipping real tools. Learning in public. 🇳🇬💻

Lagos, Nigeria
Day 69 Late night coding. Started DevLens's vault command (raw files + JSON index). Realized shutil.copy2 natively preserves metadata, saving me from manual timestamp logic! Parsers wired, finishing logic tomorrow. #CS50P #Python #100DaysOfCode #DevTools
1
3
26
Day 68 Started the vault command for DevLens today! Used Path.home() to dynamically create a hidden .devlens folder for local snippet storage. The foundation is set! Might not post tomorrow due to an event, but we'll see how things go. 🗂️ #CS50P #Python #100DaysOfCode #DevTools
2
38
Day 67 🐍 Power was out all day, so I focused on polishing DevLens's scan command. Fixed a Windows UTF-8 crash and chose raw ANSI codes for a zero-dependency UI + health bar. Tomorrow: building vault from scratch! 🔨 #CS50P #Python #100DaysOfCode #DevTools
1
3
55
Day 66 🐍 DevLens's scan command is feature-complete. Added the last two pieces today: a project structure check (README, requirements.txt) and a health score that combines everything scan finds, structure, code quality, security, testing, into one 0-100 number.
2
23
Caught and fixed a bug from last session too: the security detector was flagging its own word list as a "hardcoded secret."
1
8
Found a hidden syntax error in my tests today. Watching my code handle my mistake taught me more about failure paths than building the feature did. Next: building vault, DevLens's personal code snippet library. #CS50P #Python #100DaysOfCode #PythonTips #DevTools
1
10
Day 65 🐍 Felt foggy and not at my best today, but still showed up and shipped something. Added project structure checking to DevLens. #CS50P #Python #100DaysOfCode #BuildInPublic
6
7
69
There’s still a lot I want to clean up and improve in DevLens, but I’m treating this as a CS50P final project first. Once I submit, I can come back and properly scale it.
2
Also wrote the full set of tests for it (perfect case, each missing item, tests as a file, everything missing). Next up: health score.
2
Now checks for the three things almost every Python project should have: README.md requirements.txt a real tests/ folder If any are missing, DevLens reports them. Might add more later (pyproject.toml, .gitignore…), but these three are the baseline for now.
1
11
Day 64 🐍 Redesigned how DevLens displays function and class names in scan reports. Short lists print inline on one line, longer ones stay one-per-line with bullets, decided by comparing total combined name length against a threshold instead of just counting items. #DevTools
3
2
53
Ran an automated code review at the end and found a real bug: an invalid Python file would crash the entire scan. Fixed it with a try/except around parsing, logged the review's other suggestions to revisit later instead of fixing everything at once. #CS50P #Python #100DaysOfCode
3
Also added detect_long_functions(), flagging functions over 20 lines using ast's line number tracking, tested and wired into the report. #PythonTips #TDD
4
Learned something interesting: Python's ast module strips comments before parsing, making it useless for TODO detection. Simple text scanning remains the best approach, despite potential false positives.
1
19
Day 63 🐍 Added TODO detection to DevLens today. detect_todos() scans a file for real # TODO comments. #CS50P #Python #100DaysOfCode #BuildInPublic #DevTools
4
3
114
Hit a real bug: first version flagged "TODO" anywhere in a line, including inside strings and print statements, not just actual comments. Fixed it with line.split("#", 1), splitting into "before #" and "after #" so it only checks the actual comment. #PythonTips
6
Wrote 3 tests: a real TODO, a false positive without a #, and a file with no TODOs. Also finally got DevLens into its own git repo, separate from my general Python practice. Next: packing short function/class names onto one line instead of one-per-line. #TDD
1
17
Day 62 🐍 No coding today, had other commitments to attend to. Tomorrow: add new features to DevLens and finish the cleanup on the scan output. #CS50P #Python #BuildInPublic
1
4
347
Day 61 🐍 Today's focus was polishing DevLens's scan output. Went from a flat, noisy list to a proper tree-style report using ├─ and └─ connectors, same style tools like tree use.
2
5
61
Next problem: files with a lot of functions or classes dump every name onto one line, unreadable. Working out a design where names print one per line, capped at 10 with "...and X more" if there's overflow. #CS50P #Python #100DaysOfCode #BuildInPublic #CodeNewbie #DevTools
15
Learned how to build that: collect sections into a list first, then use enumerate() to check which item is last (i == len(details) - 1) so it gets the closing connector instead of a branch one. Also picked up conditional expressions (x if condition else y) for that check.
1
22