June 19, 2025
I did testing and solved bugs but forgot to devlog before...
Solving more on the go
Completed ! Since SOM was down multiple times, I spent my time improvising it a lot.
It's working now with lots of features:
- Storing & caching leaderboard data
- Refetching functionality
- Pagination
- Link to all user profiles
- My Github
Since SOM was down, I made it to load the users & display them. Also got the scrolling feature and some default setback in case SOM's down again.
Here's a video for reference !!
Basic working is set with avatars loading and threaded work to get them on the screen :)
I am scared !! Written more than 5000 lines of code & still project is far from complete !!
Just 7 more days in SOM & i don't know what to do so that this fastens up. Why will people vote a backed ?? I need to do this asap so that frontend comes into play and people actually see what I did
TreeWalker also done along with it's algos and methods,stuff , just a few more hours and i can focus my mind on HTML :)
BTW, my eyes can't bear more screening, going for a sleep !!
NodeIterator class is complete mostly, now I amma go for the TreeWalker :)
Completed with the Range
class fully & now stepping my foot into the Traversal classes. Writing algos for Range was quite a head-ache, got my github commits pushed and now let's conquer the rest !!
Initiating this project ! Worked on it a few days ago but abandoned because logging issues but now it got resolved so reinstating this !!
Ye boi, let's get a vote leaderboard.
Worked on the Range class and defined lots of algo functions for it !
It's quite lengthy so devlogging it in 2 portions.
Btw the fun has begun and I am feeling that DOM is about to be over !!!!!!!!
Just completed StaticRange & AbstractRange with their algos (check my github commits if u want more details) ! Let's conquer Range next !
Killing with the coding vibes rn !!
Speed race, just completed with Comment, CDataSection, Text, ProcessingInstruction, etc... along with covering the algo's in their respective scopes :)
Less go complete this DOM today boi ! Just 9 days left
I am done for now, going to sleep so logging !! I did Attr class and wrote some algo !
Good night :)
Yo ! Element class complete except some small bits dependent on future. I put them in TODO ! So less go grind this DOM :)
I am actually scared whether I'll be able to complete this before SOM ends, let's try my best
Wrote a good amount of algos for the Element class !
Less go and grind this moreeeeeeeee
Finally a good grind after so many days !
Completed working on Document, ShadowRoot, DocumentType, DocumentFragment, etc.. and also chopped off some algos from the TODO list ! Gonna get this DOM done asap !
CRAVING FOR HTML PART :)
Bugzzzzzzz ! Lots and lots of bugs, solved some and going to grind for more :)
Didn't do much, just working on Document ! Logging to get stickerrrrrrrrr !!
nice showcase :)
Worked on Document and even working now... I am just logging to get stickerssssssss
Except for some bits which will be done after HTML, everything is done in Node class and now i will be focusing on Document at the fastest pace !!
Btw, a normalize method is troubling me, but i'll sort it out soonn ! Currently I will stash it in my TODO :)
Almost done with the Node class, just some bits left ! Will do it in some time !!
Btw, after declaring a lot of more stuff, this looks far more easy !!
Major portion of Node class is complete cause I had to do some changes and complete some stuff !!
Now, I will reach college and complete the checking of every method cause it's very big and errors are possible, alongside optimizing using const, and using reference wherever possible !!! :)
Locating namespace done boi !!
Conquering each algo one at a time !! Btw wohoooo 100 hours compelete :)
Wrote extra functions for ease such as checkancestor, checkdescendant, etc..
Also, got 90% done with the compareDocument one !
This per function is taking long.... i need to get this DOM done asap else I won't be able to complete browser before SOM
After so long, I checked off something off the TODO list rather than adding to it !!
So nodequals algo is complete (previous devlog didn't cover it's full version).
So let's go conquer the next stuff
How does this nodequals sound to u ?? Logging to get my sticker locked in !!
The normalize and cloneNode functions sucked all the energy from me & they still ain't complete !
Let's conquer them boi !!
Wohoo ! It synced idk how but my hours are somehow back ! So logging it, I worked on Node class, also making it abstract and improvising it's methods !!
I re-targeted the mixin classes because they lacked optimization and also parentNode was a bit incomplete.
Now moving onto writing the algos that I skipped for Node, Document, etc...
Completed working on Mixin classes ! ChildNode, ParentNode, Slottables, etc..
Now going to sleep, will complete this DOM tmrw ! I am done with this, i expected this to take max 30 hours but this has gone 93 and counting..
I'll try to wrap this up fast ( longer cause it's the foundation ), and move to HTML parser and release 1st ship ! But if we get time, we can go for CSS tooooooo
Couldn't find a non-recursive good implementation of pre-order DFS that actually suited my project ! So wrote one myself :)
It's a leaderboard to show maximum number of votes !! Ship certification occurs based on vote count & this helps you find how many people are ahead of you in the queue.
Now going furious code mode ! 12 hour straight grind :)
What i did in this 24 mins ? I worked on the standard and got some mixin work to do. Mixin means 2-3 classes sharing some methods, attrs, etc..
Did some of it, now next one is a bigggggg task as almost 80% of DOM will be complete in the next 12 hours
Initiated the project with this image depicting the rotated lives of the western upside down island !!
Also, got the website up and running with a basic story along with explorpheus !!
WEBSITE FOR Survey expedition on SOM website !!! An island for SOM grand survey expedition ! It depicts the life of people living in the western upside down island where gravity defies the laws of physics. It all started with a small mistake cursing the generations for years. Go visit it to know more !!
This project ain't easy ! I spent time with mutation algos but then I felt it's incomplete so I went to code the next part and now that feels incomplete !!
I don't know ! My code efficiency is so low rn. I once did more than 10-12 hours in a day but now It's so less. Hope I get to track again :)
Wrote some mutation algo's for pre-insert validation, insertion, etc..
Will go forward with more algos after a short break.
Got this delayed due to #code-quest ysws !
Btw completed AbortSignal, Controller & stuff. Now moving on to the conceptual part in the DOM standard along with getting DOM done before i hit the 24 hour clock.
Btw, 2 bad stuff:
1) I am inconsistent, which I won't be now
2) There is nothing to show except code lines, so I am gonna fasten this up so I reach UI part asap
Up and running on itch with the new yellow clothes !!
It's complete now with the sliding animation and sound on the shop page. Also, I have settled with logs storage,etc..
Here's a snippet
Changed some design & added the buy/select option.
Now I will work on storing & changing the logs collected.
Got the store running !
Will get the lock, unlock feature to buy using logs.
Also, I want to do the slide feature too
I am adding a shop so that players can buy skins/clothes for the lumberjack guy ! Here's the green one & I have added the shop button tooo
YO ! I did not think it would take that long but I have completed, verified & am done with EventTargets and so many algos of it. Firing events, dispatching them, invoking them, and what not !!
AbortSignal & AbortController are left which I'll do tmrw in bus. Only 2.5 hours left for me to sleep. Byeee
I changed some functions, set all small functions to be inline. Also, specifically worked on docs for Event, CustomEvent classes defining each attribute & method.
Now let's do the same for EventTarget, AbortSignal, AbortController, etc..
Next devlog will come after they all are done, checked & well-documented.
I have done quite a bit here ! Like removing unnecessary overhead from the unique_ptr usage.
Also, worked on optimization like removing EventInit struct & using values directly, using references rather than copying stuff on function calls, decreased usage of std::optional keywords.
Did some organization too btw !!
Save your princess at the top of the platform. But it ain't that easy, the keystrokes are limited !! You got limited key presses & need to save ur princess before they drain out !!
Compiled & Released the versions for Windows, Linux, Web + Android !
Mac version is v1.0 because I don't have a Mac currently to compile the new version :)
Btw, Bug also fixed and all releases published on github.com and itch.io
Wrote the same functionality for the web version too ! Also fixed a bug where the background was ill & handled the drag functionality for finger touch too so that android users can also use it.
Now I just caught a small bug where music doesn't play when exited using Esc ! Hardly difficult, coming back in 5 :)
Fixed a bug where Sound/Mute button didn't toggle when volume dragged and increased !
It's done now and moving onto the next stuff
Sound is completed for the gameplay page too and also added the hand cursor for dragging.
Vertical slider added & it's working on all pages ! Just the gameplay page left as it's coordinates vary.
Will be done with it in a few minutes too.
The volume slider is now draggable & complete ! I am now moving onto adding it vertically for other pages too !!
Completed sound work ! It works perfectly adjusting the volume.
Just a small thing left, when clicked on mute, circle doesn't reset ! Also different direction sound for info and credits page is required rn !
I added this functionality to allow changing the volume in the game.
It's not complete but the gui changes when hovered.
Fixed 2 bugs I found while playing !
1) Sound when muted/unmuted started from beginning so I turned it to set volume to 0 or 100 based on clicks
2) Loading page added for name input because it seemed like game froze earlier
I have setup license and spent time checking the events class along with testing some stuff ! I was quite confused whether i should use smart pointers or go with raw pointers and that led me to some research and yup here i am ! Next i'll just go through every part of the DOM specification, complete what isn't done and check alongside with comments !
Crazy grind starts now ! I am done with this taking so long and will now work furiously.
Reason for delayed devlog : I had guests at home so 5 days I barely did any coding so spent time on research !! Btw drone on the shop is crazyyyyy
Reading the Events section now ! Bugs have been resolved & all unicode characters are now perfectly handled thanks to iterators & utfcpp library !
Also added comments to the algos to make my life easier !
Just fixed it all & also a bug I accidently stepped on !
Normally, whitespace is just the space character but when we talk officially, it includes the TAB space, LineFeed , FF, CrossFeed and the normal space ! So I needed to detect the others as well while coding the ParseOrderedSet func.
I am frustated !
Yes I am !! I spent this time trying to change some functions according to the u32string in c++ so that my internal browser is compatible with all languages ! But realized that it can't be effectively printed or even doing operations is one hell of a job.
After draining almost all my energy, I came across this library named utf8.h which saved me & because it got a lot of functions and stuff to handle unicode characters as well !
What was the problem ?? A unicode character like ð–¹¾ takes 4 bytes and when we store it in a string, c++ will consider it 4 different characters and in for loops or printing, the original character get's lost ! Also the length of this string is 4 not 1.
That's when utf8 library comes & saves with it's functions & stuff for length, iteration, next, back and what not !!
And now I am moving to implement it in my algos.cpp
Wrote some algos for validating names for attributes, element, namespace prefix, doctype names, etc.. Now I can peacefully move on to the next Events section.
I wrote some code for events in the past, let's optimize it a bit & continue grinding algos :)
Completed text, CharacterData and what not ! I NEED SOME UI BUT CAN'T :)
So moving onto the algorithms part ! Basically, I wrote lots of classes and I skipped some of the common functionalities listed separate in the documentation so that I can write all functions together in alogs.cpp !
Btw, I am confused whether I should write my own set implementation cause the <set> library provides ascending/descending order and not the order in which items came ! Let's see
Completed working on DocumentFragments, Types, DOMImplementation and even Elements !
Moving onto the rest, Text, CharacterData, Comments (yes these are what we write in html) !!
Let's write their cpp code now :)
Amazing fact I found !!
While writing the DOM implementation i found the piece of code responsible for displaying an html page even when we don't add <html>, <head>,<title>, <body> tags.
It automatically adds them internally and that happens cause of this function :)
Just Completed the Document
class & now moving to the rest.
Seriously, my brain is not braining ! This project being pure backend for a loooong time is tiring me out but let's do it :)
And, sorry ! I have just lines of code to show
After a long time on other projects, I am back.
Just completed major portion of the Node
class & now focusing on Document
class.
Btw, I have changed my approach and set all algos in a separate file in-order to reduce TODO tasks.
Also, I reorganized the files for better structure :)
Since last ship, support for Android ( through web ), web & Mac has been released ! Let's go for another ship !!
Android & Mac version released !!! Yup now we got all platforms covered Windows, Linux, Mac, Web & Android (on web too).
For online play & Android: https://yogya-chugh.itch.io/timberly
For downloads: https://github.com/YogyaChugh/Timberly/releases/tag/v1.0
Majorly I did virtual keyboard on the screen and changed the game events to accept left and right clicks ! On desktop, it's left and right arrow keys but on android, it can be taps on the left/right of the screen.
Apart from the thousand stuff i changed, there was one issue of double clicks which ChatGpt helped me find & then i fixed it myself !! Do check it out !!
YO! The Android one started working. I was about to sleep when I wanted to give it one last look and found the bugs. Except 1-2 issues everything works great ! I'll fix them asap
Completed the Android reqs and created the web package but the issue persists in recognizing the fingerdown event on android #pygame.
Taking a break, will try with a fresh mind !! Btw, Windows, Linux & Web work. Mac version is compiled too, just doing some testing and then upload !!
On-screen keyboard so Android users can also play it in the web !! How does it look ??
Just some more events addition & swipe detection, then we can go for android too :)
Got some server bugs for webplay but they are resolved now ! live on itch.io
Spent hours trying to get the bug fixed as well as getting the game on pygbag so that it's playable on web ! it's successfull now !
It's time !!
After spending time on fixing last minute bugs, building executables for Windows & Linux, uploading it on itch.io at https://yogya-chugh.itch.io/timberly, publishing release on github, giving emscripten a try for web-play and testing, I am ready to ship.
Hopefully, the Mac version will be released by this evening.
Lol silly bug ! I was using a function as variable which is now fixed ! Hopefully, compiling for all platforms, Windows, Mac and Linux
It is officially released now ! Just doing some changes to credits website and shipping it !!
Credits page !! How does it look ??
Here's the guide that i created ! It's functional and gives the user proper knowledge on how to play.
It is an interactive tutorial allowing them to understand the game properly !
Here's a snippet of what it looks like !!
How's the How to Play ? page !! I am now thinking about a guide maybe so new players have ease knowing the game !!
Leaderboard errors !! Bro this took the whole energy out of me.
But they are solved and the leaderboard is correctly ordering the scores as well as the display and requests are now thread-supported so no lagss !!!!
Just a small glimpse of the game here !!
Btw, I was about to finish when I realized that the section How to Play was needed as well as the Credits section needed to be introduced.
So, diving into it now !!
Changed orientation along with sound addition ! Some parts for music and sounds are left but good portion is done !!
Now it waits for the user to press key instead of starting the match immediately !! I also forgot about music which I'll target now.
Yo ! You don't need to wait like this guy in the image because it is now complete ! Yeah, I need to add instructions for new users and rest is done !!
Woah, finally major portion is done !! High score updation, leaderboard, server bugs, Loading animations and what not. Just completed and going for the final bits now, such as credits to resource owners, log flying animation, logo, etc.
Btw, how does this leaderboard look to you ?? (It's reverse ik, it's corrected now !)
Some minor tweeks in the main page and a lot of time spent on error logging in case of internet issues as well as updating score on the server without issues !!
Now just getting the UI for the leaderboard done !
How does the name input look like ?? Just completed the name input interface as well as the backend to connect it to server. Local cache management is also done !!
Server running on pythonanywhere ! Going for the application UI now !
Leaderboard server complete ! FastApi on the go !! Now diving into inputting username and display along with log info incase no internet or server down.
Did I rock the main menu?? ye boi !! Just got through the main menu design, just some final bits and I can move on to the server development for leaderboard
My brand ambassador is smiling ! Why aren't you ?? Just completed some more logic code and hopped onto designs
How well these improvements sound ??? Going for the main menu now !
This way of showing score looks more neat now !
Working logic on the go ! Btw, I wanted to share this, some of the images such as background, lumberjack, some icons, etc.. are generated by Chatgpt but because all code is written by self and other assets, fonts are not ai-generated. AI stuff is only accounting for less than 15% of the project. Therefore, not putting the using AI flag !
Main Game interface ready ! How does it look ??
This man looks handsome. Lol, the main character is generated ! Chopping through the woods
Initiated the game ! Gathered the resources and finalized on the basic logic for the game ! How's the background btw ?
Timberly ! Chop trees & prevent the lumberjack guy from getting squished by the falling branches. Compete with players online using the leaderboard. Simple but really fun !! Web-play available at https://yogya-chugh.itch.io/timberly Don't know how to play ?? Don't worry, it has an interactive guide that will teach you how to play in easy steps. # Only the quickest lumberjack survives! # Cross-platform
Linux Version just got released ! Wohooooo !
Just published the First Release on Github ! Here are the features involved: The first official complete release with GUI + Backend ! It involves the following features:
- 2 Click website downloading
- Offline launching of sites
- History Maintenance to revisit downloads
- Multiple settings control, allowing full access
- Thread Limiting to allow both high/low functionality pc's
- Storage Access for sites
- Visible logs to monitor downloads
- Easy pause/resume even after closing/re-opening app
- Later revisiting of settings for any website downloaded
- Easy cancellation & deletion on a click
- In-app control of opened sites
- Credits Page (Both owner & indirect helpers)
- Custom Mouse cursors for elegant feel
- Purple spider themed assets for giving scraper vibes
These functionalities account for the beautiful Webber application ! Currently, windows version only but Linux and Mac coming soooon...
Got fever and had to leave screening for quite a few days now ! Back to grinding through code ! Fingers crossed, I'll get it shipped today !!
How does this credits page look like ? I find it passing !
In the clouds rn after just doing some final stuff like alignment and extra info for users because I just compiled it for Windows. It's a success ! Just going to get done with Linux & Max versions and hop onto the ship certifications !
Was just about to get done with the compilation when I got some bugs such as path issues cause some characters supported by browser aren't done locally by folders as names ! Also, adding another feature allowing user to restrict number of threads on a system was quite needed. Just finalizing with some bits and tests and I hope it might be all !!
It is completed ! Yup it is ! Just finalized with small bits like implementing check for essential assets, folders, etc.. to prevent crash, resolve last minute bugs, improvise logging, add credits to all people involved directly/indirectly, adding my own mention, as well as completely getting rid of the system crash issue !!
Balle Balle ! It's working flawlessly and I just pushed Version 1 to Github. Just going to do some final bits (approx 10 hours) so that it turns from a project to a good product. Tonight it's gonna get shipped !
YES ! YES ! YES ! I found the problem. Since i have rarely ever used pygame I was doing the biggest mistake which was to display even static stuff every 60th of a second which I have now changed. It doesn't lag and it's working great. Just doing this overall structural changes gave birth to some bugs which I'll be fixing, I guess hardly 2 more hours and bugs would be resolved, rest 2-3 more features and we could move on to shipping this project.
Going through the toughest decision cause the UI lags ! Both Pygame and the subprocesses make the system to crash. But I noticed that Pygame is the one responsible cause the subprocess runs on console. Will try going for console based UI + subprocess tmrw !!
Spent a good amount of time finalizing stuff to ship ! But stumbled upon a thing, whenever i download a website the gui becomes laggy because the threads are somehow related to the main gui thread causing the fps to drop. Therefore, spent some good time and moving on to a different approach of shifting the downloading,etc.. onto a subprocess ! Hope to get it done by today !! :)
TADA ! Launching on the go ! It's working !
Fixed lots of bugs & also improvised the downloading page along with implementation of pause and cancel backend !
Front Page Improvised ! Added page for log checking and other controls ! Also, connected the backend and frontend.
In love with this Settings Interface ! Mixed my idea with Chatgpt's image generation with my code. ( ChatGpt only created image not code for the interface !)
Speedy BOI ! At once, it took 10 minutes to scrape summer.hackclub.com even at the lowest settings but I have got it shrinked to around 1.5 minutes using threading and better organization. #LESSON LEARNED - Planning carefully at beginning can help a lot :)
A lot of times, a simpler approach is faaar better than complex & lengthy codes. That's what happenned with me and I switched from changing the file contents on every thread while maintaining integrity to storing them at one place and switch at last ! #FASTER DOWNLOADING
Am I rocking with the UI ?? Here's another one ! The Downloads Page
User Interface on the Rocks !
What do you think about it ??
Hurray ! Timings in SOM as well as my errors are now fixed
After literally questioning my existence a million times, I finally solved all the bugs. This new approach is fast, really lightening fast but the errors I encountered for it to implement were real pain.
A simple error like not assigning the replaced value back to itself & even difficult ones like the file erasing itself !
Let's go for some testing now !
Best Time Ever Spent !
<br>
I completely changed my way of fetching urls and optimized my code by running on multiple threads.
Here's all I did:-
1) Used yield
rather than return
2) Stopped spending resources on unnecessary checks
3) Implemented simple caching
4) Improvised logging #helpsindebugging
5) Solved like a million bugs
<hr>
Next Mission: Have the UI built & also support for Windows XP (just giving it a try)
Changes input to settings.json so as to allow multiple settings by user.
Also, Found a major bug which if resolved can increase scrape speed by 10x !
Every URL being scraped doesn't call it's children URLs immediately on a separate thread but rather spends time finding each child and then calling them afterwards which leads to unnecessary wait. Also in multiple instances, yield
in python would server better instead of return
.
Off to solving it !
PS: Attached an image of www.google.com
scraped !
Refined the project more and solved some logical errors (toughest) !
Tested and now anyone can go to my github and by following the instructions, can use Webber.
(Application coming soon....)
It's working !
Yep ! Just completed the main functionality with proper scraping capabilities ! Just enter a url and it scrapes it fully based on the settings you provide.
Solved like a million bugs, altered my approach and used object-oriented programming for better organisation along with making use of threads to fasten the process !
TODO: Add best UI (Currently, console only), fasten the scraping using yield
and implement caching.
PS: Attached a video showcasing website scraping for www.example.com
along with running SUMMER OF MAKING
website offline at end !
print(Hello world)
Started with basic fetching techniques using python's library urllib, got threads and tested out my own website which worked perfect. Attached SS for example.com.<br>
Next step is to arrange everything in classes and functions, support better threading and improvise altering URLs.
Cross-platform Software to download #scrape websites locally so you don't have to stay online all the time.<br> Best for reading documentations and stuff when you don't have internet for long !<br> Going for a vacation and unsure about the internet ?? Just download (scrape) static/dynamic websites that don't belong on continuous server requests and you are good to go !!!
TOOO MUCH BACKEND !
I hope getting on frontend soon ! Going again through the roots and diving into NodeList, HTMLCollection and Nodes in particular again.
Just updating my 10 hours (approx.) !<br>
Alterations in
AbortSignal
andAbortController
along with some more stuff implemented !<br>
Completing my goals ! #ENDING-BACKLOGS
Yes ! Yes ! Yes!
After a whole eternity, I have fixed the bugs. Finally, updated the structure of the DOM part of the project and completed the bug fixes.
Couldn't complete the set goal but set to achieve it now.
Just Finished declaring important stuff like events, document, ranges, nodes, elements, etc... Had to read lengthy amounts of DOM specification !
Now, I will be targeting each one by one and define each properly.
>Next Target: Completing DOM Implementation by day after tomorrow, max !
Read & Implemented some parts of the Events in DOM !
Just for example, we do .addEventListener()
in JS, it's basically a function of the Document Object Model and that's what I researched about and worked a bit today.
So, what happens is that there is a text, image, etc.. and everything is an EventTarget
which has a list of event listeners which we add using .addEventListener()
in JS. Also, there is an Event
which it waits to happen.
Logging off for today but tomorrow full heavy grind to get this Event as well as some Node
( Everything like image, text, video, etc.. is a Node) parts complete !
Initiated the project starting from the basics of the web ! #DOM
DOM (Document Object Model) is a tree data structure which stores the HTML when it is processed (parsed) by your browser (Chrome, Brave, etc..) ! It follows some guidelines as mentioned at https://dom.spec.whatwg.org/ !
Following the DOM STANDARD, I have created Event
class with its functionalities and worked on Nodes too !
As in the image shown, the HTML is parsed/processed to look like the tree !
You can check it out for your code at https://bioub.github.io/dom-visualizer/ ! It's not mine, just for representing how it will look after DOM part is complete.
Browser ! Yup a fully fledged browser like Chrome, FireFox, etc.. I am building it from scratch building the DOM, HTML Parser, CSS Parser, rendering engine & what not !! It follows a lot of standards & is meant to completely abide by browser rules. What are you waiting for ? Try it out (when complete :) ) Btw, there is a special feature I will be adding after the above goals are complete: Customizing ability: What ? It means you can merge websites freely for ur local computer like taking a video component out of a website and merging it with a note-taking website to create ur own local website. And what's more amazing, the components still work as usual ! It's an idea & i'll implement it !!
This was widely regarded as a great move by everyone.