palpatine
json_test_data
palpatine | json_test_data | |
---|---|---|
17 | 25 | |
16 | 9 | |
- | - | |
10.0 | 0.0 | |
over 1 year ago | about 2 years ago | |
C++ | ||
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
palpatine
-
December goals
I have been working on building my static site generator palpatine for the last two months. However, I have not had the chance yet to package it up to create my first release yet. When I attempted to package it up a few days ago, I ended up with a lot of errors and bugs that would require lots of time to debug. I plan on sitting with it next week again.
-
Makefiles can be helpful in your CI Workflow
While developing palpatine, I used Makefile to automate the process of building and running the project.
-
The perfect open-sourcer does not exist
One of the personal projects I love developing is palpatine. I blogged about it here and I am constantly adding new features to it! So far it has reached 5 starts and keeps growing with the help of the open-source community.
-
C++ unit testing with Catch2 🧪👨🔬
Writing unit tests for my static site generator - palpatine, taught me an entirely new testing framework called Catch2. For my Hacktoberfest pull request this year I had done a unit testing contribution for a repository and I am currently working on building a microservice for my cloud computing class which requires us to use Jest for JavaScript unit testing. So, I can say that I have some experience with unit testing and continuing to develop my skills in it.
-
Static analysis tooling with CMake
See the directory called cmake in the root directory of palpatine. Having cmake modules within the directory cmake is commonly used, the purpose of doing is to include() custom CMake functions to be used later in the project.
-
Easter eggs in Hacktoberfest 🪺
I have been developing a CLI tool called palpatine for a while now. It is a static site generator (SSG) written in C++ and still under development, ready for the support of the community in GitHub. This Hacktoberfest, I experienced the role of a contributor in open source but in the next Hacktoberfest, I will be participating as a maintainer of palpatine!
-
Unit testing like a Hacker
Ensuring everything is working as intended makes sense in principle, for example, I currently am developing a static site generator in cpp, palpatine, and as I develop it I stress about writing unit tests for it. Soon enough whenever a bug occurs I will be writing unit tests before debugging it. While writing unit tests though, I need to keep in mind that they won't stick around forever, my ssg tool is rapidly evolving; refactoring, adding new features, fixing bugs and shipping new releases day by day. That said, the unit tests will be obsolete soon enough and I might end up spending more time maintaining unit tests than actually developing the tool. Thus my philosophy at writing unit tests is to write them when they are actually needed, maybe when the consequences of breaking the code are high or when they are solving a specific problem.
-
A good code thief
While developing palpatine, I found myself browsing through the internet and getting inspired by how other static site generators (SSG) tackled my problems (i.e. supporting md files, stylesheets, exception handling). During this process, it was obvious to me that JavaScript dominated the field of static site generators, as almost all the options I looked at, were Javascript-based. Some of the interesting ones I found were: Docusaurus, Gatsby, Jekyll and Eleventy. They all have their unique features, competing with all other SSGs, and are constantly being maintained by the community in GitHub. Docusaurus has a showcase page where you can see how other serious projects are using their tool, such as Jest website built with Docusaurus, it is inspiring when you see their pages professionally done. So I initially read their documentation on how to get started, very straightforward, and within minutes I was able to set up my docusaurus site! Key features to note are: easy to use, beautiful themes, precise documentation and customizable.
-
palpatine on time machine
I ended up with new file FileHandler.h with the base class Handler and the classes MarkdownHandler , TextHandler which inherits the base class. They have virtual functions that are overridden in the derived classes, so that I can use the concept of polymorphism respectively.
-
Implementing Difficult Features While Learning New Things in C++
To add a new feature to palpatine which is an awesome static site generator written in C++ by Batuhan, I started by filing an issue. While I worked on his repo for adding this new feature, he worked on mine to add the same feature. Here are the detailed instructions for this week's lab. Batuhan also worked on my repo for adding the –config feature for my static site generator, rwar, written in Python. These are awesome repos to check out!
json_test_data
-
3rd Edition of Programming: Principles and Practice Using C++ by Stroustrup
>Maybe take a shot at parsing JSON in C++ and see if the nostalgia survives the process.
I have used this library in the past and was actually pretty easy
https://github.com/nlohmann/json
-
Sane C++ Libraries
https://github.com/nlohmann/json
I used this for JSON last time I wrote any C++ a few years ago and it still seems popular. It seemed sane enough to me.
-
Experience using crow as web server
On the other hand, I'd like to bring in the json library of my choice, e.g. https://github.com/nlohmann/json or https://github.com/danielaparker/jsoncons. So I'd prefer the web server library provides as little as possible in the way of Json support, and certainly doesn't get in the way of using my library of choice. Similarly, I'd like to use my choice of automatic object serialization.
- [Cpp] Raccomandazioni moderne di biblioteca di serializzazione JSON C ++
-
What are some C++ projects with high quality code that I can read through?
I find openMVG very decent, FTXUI might be a good one and nlohmann's json library is also pretty nice. I don't really know of any project that strictly adheres to the core guidelines, except maybe for some of Jason Turner's (sample) projects.
-
Collecting the best C++ practices
JSON for Modern C++. Intuitive syntax. Trivial integration. Serious testing. Memory efficiency. Speed.
-
C++ Is Incredible
Please provide us an example of this one minute process you talk about for an example project of opening a JSON file, writing to it and closing it with a library like `nlohmann`s.
-
Save data question
Use a small library like this: https://github.com/nlohmann/json
- Good repos for beginners to browse that follow best modern C++ practices (including testing, static analysis etc...)
-
palpatine supports config file in JSON format
I worked on my partner’s static site generator, rwar, to implement this feature and she worked on my static site generator – palpatine. I was easily able to do this in rwar which is written in Python. However, I realized that this feature was much harder to implement on palpatine which is written in C++. Samina reached out multiple times seeking help for the broken Cmake configurations and for helping in integrating the nlohmann/json library.
What are some alternatives?
vscode-pets - Adds playful pets 🦀🐱🐶 in your VS Code window
tomlplusplus - Header-only TOML config file parser and serializer for C++17.
cve-bin-tool - The CVE Binary Tool helps you determine if your system includes known vulnerabilities. You can scan binaries for over 200 common, vulnerable components (openssl, libpng, libxml2, expat and others), or if you know the components used, you can get a list of known vulnerabilities associated with an SBOM or a list of components and versions.
Telegram-web-z - Telegram Web Z, GPL v3
rwar - rwar - A simple bare-bones Static Site Generator (SSG) with minimal features. An SSG allows a user to generate a complete HTML website from raw data and files, without having to write out the HTML. Rwar is a command line tool that takes .txt files as input and generates .html files as output.
PHP CPP - Library to build PHP extensions with C++
termcolor - Termcolor is a header-only C++ library for printing colored messages to the terminal. Written just for fun with a help of the Force.
webminidisc - Upload your Music to NetMD MiniDisc devices thanks to WebUSB and WASM
argparse - Argument Parser for Modern C++
phptdlib - PHP Extension for tdlib/td written with PHP-CPP
topics-in-open-source-2022 - OSD600/DPS909 Topics in Open Source 2022
serializer - A single header standard C++ serialization framework.