I added a discussion about properties and their usage; help me out to discuss this feature and see how this idea can help us write better application classes in this framework.
https://github.com/the-moisrex/webpp/discussions/11
https://github.com/the-moisrex/webpp/discussions/11
GitHub
Properties · Discussion #11 · the-moisrex/webpp
I updated the main Readme file and added a few description. I should've added a FAQ page but this way seems more eye-catching!
I hope it to help persuade some developers to come and help me out in the development process of this framework since I can't work on it for at least a few months.
I hope it to help persuade some developers to come and help me out in the development process of this framework since I can't work on it for at least a few months.
Web++: A C++ Web Framework
Photo
Even though I don't believe in luck, but wish me luck so I can continue working on this project so God willing someday all of us can use it together and add more value to our communities and make the world an easier place to live, all with the help of this little project of mine!
Thank you all for staying with me even though I wasn't able to work on it for such a long time.
I'm still not able to work on the project the way that I wanted to but I am trying my best to keep going even if I have to code on a handheld device!
Thank you all for staying with me even though I wasn't able to work on it for such a long time.
I'm still not able to work on the project the way that I wanted to but I am trying my best to keep going even if I have to code on a handheld device!
This media is not supported in your browser
VIEW IN TELEGRAM
Working as much as I can is the right of my project; doing any less is wronging my project in a way that making it up is just not possible. So I should code as much as I can so I won't be in debt to my own creation.
I'm deeply thinking of making a few DSLs (Domain Specific Language) in order to make development for the users easier.
DSL N. 1: VML (View Markup Language)
This one gets processed to a C++ file which will be run on the server. Based on it, you can design what gets sent to the client. It's modular and probably will look like Qt's QML but with some changes.
And the cool thing about this language is that there will be some output generators; meaning you can select which kinda output you want this language to have:
- HTML/CSS/JS
- QML
- VueJS
- ReactJS
- You can even make your own generator
This means you can design your UI once in this language and never not worry about the actual output generated.
Another feature that I'm thinking about is making sure the user can use C++ in the language.
And also make sure those codes can be chosen wheather you want to be run in the client or the server.
How we're gonna run C++ on client you ask? Well with WebAssembly of course.
Imagine this still psudo code:
Page {
Image {
// ...
server.onclick: {
// C++ code to run in server
// When the user clicks the img
}
client.onclick: {
// C++ wasm to run on client
}
}
}
What do you think?
I'd like to have a deep discussion about this before starting to code this idea! So help me out!
DSL N. 1: VML (View Markup Language)
This one gets processed to a C++ file which will be run on the server. Based on it, you can design what gets sent to the client. It's modular and probably will look like Qt's QML but with some changes.
And the cool thing about this language is that there will be some output generators; meaning you can select which kinda output you want this language to have:
- HTML/CSS/JS
- QML
- VueJS
- ReactJS
- You can even make your own generator
This means you can design your UI once in this language and never not worry about the actual output generated.
Another feature that I'm thinking about is making sure the user can use C++ in the language.
And also make sure those codes can be chosen wheather you want to be run in the client or the server.
How we're gonna run C++ on client you ask? Well with WebAssembly of course.
Imagine this still psudo code:
Page {
Image {
// ...
server.onclick: {
// C++ code to run in server
// When the user clicks the img
}
client.onclick: {
// C++ wasm to run on client
}
}
}
What do you think?
I'd like to have a deep discussion about this before starting to code this idea! So help me out!
Here's a link to this channel's reddit community:
https://www.reddit.com/r/webpp/
https://www.reddit.com/r/webpp/
reddit
webpp • r/webpp
C++ web development framework: https://github.com/the-moisrex/webpp
I would like to see is_specialization_of in the C++ Standard Library.
Just copy and pasted the implementation into the project.
Just copy and pasted the implementation into the project.
Media is too big
VIEW IN TELEGRAM
I love watching advance live coding sessions and I always learn something in those. I also like to make them as well but the work that has to be put into the converting, rendering, and sharing the final video is just takes too much sometimes.
Here's a timelapse of me dealing with Termux, clang, libc++, router and a few other things in the project.
Interestingly, the project currently compiles on clang 12.0.0 on Arch Linux, but for some reason, it doesn't compile on Termux with the same version of clang that works on Linux.
Here's the full video on YouTube.
Here's a timelapse of me dealing with Termux, clang, libc++, router and a few other things in the project.
Interestingly, the project currently compiles on clang 12.0.0 on Arch Linux, but for some reason, it doesn't compile on Termux with the same version of clang that works on Linux.
Here's the full video on YouTube.
Just a few examples of how I would like the database query builder to be used. I haven't started working on it, I just wrote a few pseudo-code examples to have a goal in mind.
It's a little looks like Laravel's QueryBuilder but with a few improvements. I guess PHP's limitations (things like operator overloading and such) would not let the PHP developers of Laravel to have such improvements.
But I am open to suggestions; I would love to have your opinions as well. Good or bad.
Thanks, y'all.
It's a little looks like Laravel's QueryBuilder but with a few improvements. I guess PHP's limitations (things like operator overloading and such) would not let the PHP developers of Laravel to have such improvements.
But I am open to suggestions; I would love to have your opinions as well. Good or bad.
Thanks, y'all.
You know, I just watched a movie which at the end it said the creation of the movie helped 15000 workers and thousands of working hours is spent.
That's amazingly scary. That so many people work this hard to just waste our time with something fictional and of almost no value.
And don't forget, lots of these workers are some of the most brilliant people in their jobs.
But instead of them gathering around and solve real issues, they prefer to entertain us for a couple of hours instead.
I guess forgetting mind-slavery is easier to get free of it; because freedom is costly, and keeping the freedom is even more.
Fighting so hard to win wars only to be beaten and chained by our own minds. We are indeed fascinating creatures!
That's amazingly scary. That so many people work this hard to just waste our time with something fictional and of almost no value.
And don't forget, lots of these workers are some of the most brilliant people in their jobs.
But instead of them gathering around and solve real issues, they prefer to entertain us for a couple of hours instead.
I guess forgetting mind-slavery is easier to get free of it; because freedom is costly, and keeping the freedom is even more.
Fighting so hard to win wars only to be beaten and chained by our own minds. We are indeed fascinating creatures!
Forwarded from Pavel Durov
The mind is our most powerful tool. There's nothing it can't do. According to numerous studies, it actively generates new ideas even when we rest or do nothing. Often we can come up with solutions to difficult problems simply after a full night's sleep.
Just as our physical state depends on what we feed to our bodies, our mental state depends on the quality of information we feed to our brain. If we nourish our brain with real-life data that allows it to solve fundamental problems, it will process this data in the background and come up with unexpected solutions.
It is unfortunate that most people prefer to feed their minds not with real-life facts that can let us change the world, but with random Netflix series or TikTok videos. On a deep level, our brain can't tell fiction from reality, so the abundance of digital entertainment keeps our subconscious mind busy producing solutions to problems that do not exist.
To be creative and productive, we must first clear from our minds the sticky mud of irrelevant content with which “recommendation algorithms” flood it on a daily basis. If we are to reclaim our creative freedom, we must first take back control of our minds.
Just as our physical state depends on what we feed to our bodies, our mental state depends on the quality of information we feed to our brain. If we nourish our brain with real-life data that allows it to solve fundamental problems, it will process this data in the background and come up with unexpected solutions.
It is unfortunate that most people prefer to feed their minds not with real-life facts that can let us change the world, but with random Netflix series or TikTok videos. On a deep level, our brain can't tell fiction from reality, so the abundance of digital entertainment keeps our subconscious mind busy producing solutions to problems that do not exist.
To be creative and productive, we must first clear from our minds the sticky mud of irrelevant content with which “recommendation algorithms” flood it on a daily basis. If we are to reclaim our creative freedom, we must first take back control of our minds.
Project is now updated to use CPM (CMake Package Manager) project to handle its dependencies.
This is still a challenge for me to include some libraries.
For example boost made me write this!
I still haven't figure out brotli for example but I'm working on it.
I just don't like Conan and others because they add a new setup step for the users of this library and that's not acceptable for me. I want my users to have to install the least amount of dependencies manually and Conan is in fact one of those things that the user has to install manually.
This is still a challenge for me to include some libraries.
For example boost made me write this!
I still haven't figure out brotli for example but I'm working on it.
I just don't like Conan and others because they add a new setup step for the users of this library and that's not acceptable for me. I want my users to have to install the least amount of dependencies manually and Conan is in fact one of those things that the user has to install manually.
I added a github page:
https://the-moisrex.github.io/webpp/
https://the-moisrex.github.io/webpp/
Why C++?
Even though C++ practically runs the web and you can see C++’s steps every step of the way that your request goes, from your browser to web servers, people still think that C++ is not a good language for web development. It may have been true for a long time; but in the modern C++, we think C++ is one of the best languages that can help you make the best websites and services.
C++ is good for web development because:
- It’s as fast as a language can get
- It doesn’t let you make stupid mistakes that a static analyzer can catch
- It can be run in unsafe environments since you don’t have to share your source codes
- Has access to every corner of the operating system
- Has access to hardwares like GPUs
- It can put life into the old codes
- You can run un-safe codes if your job depends on it :)
- Your web app doesn’t have be re-run every time a request comes, it can remember everything
- Your website can be used in small IoT devices
- You can share your website’s binaries and let the users run them in their own systems without sharing your sources
- It can run other languages; other languages use web servers that are written in C++ after all
I mean, C++ is already running the internet, it’s a shame not to take over the web services too :)
Even though C++ practically runs the web and you can see C++’s steps every step of the way that your request goes, from your browser to web servers, people still think that C++ is not a good language for web development. It may have been true for a long time; but in the modern C++, we think C++ is one of the best languages that can help you make the best websites and services.
C++ is good for web development because:
- It’s as fast as a language can get
- It doesn’t let you make stupid mistakes that a static analyzer can catch
- It can be run in unsafe environments since you don’t have to share your source codes
- Has access to every corner of the operating system
- Has access to hardwares like GPUs
- It can put life into the old codes
- You can run un-safe codes if your job depends on it :)
- Your web app doesn’t have be re-run every time a request comes, it can remember everything
- Your website can be used in small IoT devices
- You can share your website’s binaries and let the users run them in their own systems without sharing your sources
- It can run other languages; other languages use web servers that are written in C++ after all
I mean, C++ is already running the internet, it’s a shame not to take over the web services too :)
A few ideas about the recent Herb Sutter's talk about pattern matching.
I have a few ideas about "as operator" mostly:
1. as concept
2. as auto
3. as template
4. as value
1. as concept
I would like to be able to do this:
variant<int, string> obj;
auto i = obj as integral;
because in general coding, there are plenty of places where the variant's types are not trivial to retrieve and check.
2. as auto
for when we've already checked it with "is" operator and we don't need to repeat the type. Of course it would work only when there's one overload for as operator.
3. as templated type; Template parameter deduction
For example in a json parser that the object or array type is a template:
doc["obj"] as object
Instead of:
doc["obj"] as object<allocator_type>
4. as value
I'm not sure if it's already possible or not, but having an enum value or an index would help.
My tweets about this: https://twitter.com/the_moisrex/status/1455440196246425604?t=Tru-XKNsIZqM-gcvVYdRMw&s=19
I have a few ideas about "as operator" mostly:
1. as concept
2. as auto
3. as template
4. as value
1. as concept
I would like to be able to do this:
variant<int, string> obj;
auto i = obj as integral;
because in general coding, there are plenty of places where the variant's types are not trivial to retrieve and check.
2. as auto
for when we've already checked it with "is" operator and we don't need to repeat the type. Of course it would work only when there's one overload for as operator.
3. as templated type; Template parameter deduction
For example in a json parser that the object or array type is a template:
doc["obj"] as object
Instead of:
doc["obj"] as object<allocator_type>
4. as value
I'm not sure if it's already possible or not, but having an enum value or an index would help.
My tweets about this: https://twitter.com/the_moisrex/status/1455440196246425604?t=Tru-XKNsIZqM-gcvVYdRMw&s=19
Twitter
Mohammad Bahoosh
@herbsutter I love this; I just have a few ideas about "as operator" mostly: 1. as concept 2. as auto 3. as template 4. as value
RapidJSON Wrapper's basic functionality's tests are now passing.
As you can see in the screenshot, we now can do lots of cool stuff already.
You can follow the JSON wrapper state in these two issues:
RapidJSON Wrapper
JSON API
I'll be shifting my focus on other parts of the project now.
As you can see in the screenshot, we now can do lots of cool stuff already.
You can follow the JSON wrapper state in these two issues:
RapidJSON Wrapper
JSON API
I'll be shifting my focus on other parts of the project now.