This media is not supported in your browser
VIEW IN TELEGRAM
Feb 23th timelapse of the live coding.
GDB really helps when you know what to do in it.
GDB really helps when you know what to do in it.
In today's live coding session, you'll find me typing this:
git commit -am 'tests added; so I have purpose in life now'
git commit -am 'tests added; so I have purpose in life now'
Web++: A C++ Web Framework
In today's live coding session, you'll find me typing this: git commit -am 'tests added; so I have purpose in life now'
You'll also see this:
git commit -am 'tests are fixed now, I have nothing to live for'
git commit -am 'tests are fixed now, I have nothing to live for'
LiveCoding-webpp-2020-Feb-24.7z
524.7 KB
Feb 24th Live coding session.
LiveCoding-webpp-2020-Feb-25.7z
728.1 KB
Feb 25th Live coding session.
I have definitely messed up something along the way!
I have definitely messed up something along the way!
Web++: A C++ Web Framework
Got my first run! Yay!
After 11 months, it must sound sweet!
Simple "Hello world" CGI benchmark on my machine:
ab -n 50000 -c 1000 http://localhost/cgi-bin/two
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Completed 20000 requests
Completed 25000 requests
Completed 30000 requests
Completed 35000 requests
Completed 40000 requests
Completed 45000 requests
Completed 50000 requests
Finished 50000 requests
Server Software: Apache/2.4.41
Server Hostname: localhost
Server Port: 80
Document Path: /cgi-bin/two
Document Length: 12 bytes
Concurrency Level: 1000
Time taken for tests: 59.675 seconds
Complete requests: 50000
Failed requests: 250
(Connect: 0, Receive: 0, Length: 250, Exceptions: 0)
Total transferred: 8074530 bytes
HTML transferred: 597000 bytes
Requests per second: 837.87 [#/sec] (mean)
Time per request: 1193.506 [ms] (mean)
Time per request: 1.194 [ms] (mean, across all concurrent requests)
Transfer rate: 132.14 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 30.0 0 1026
Processing: 40 670 4131.5 335 59629
Waiting: 0 381 1911.9 302 59583
Total: 40 672 4134.3 335 59668
Percentage of the requests served within a certain time (ms)
50% 335
66% 365
75% 388
80% 404
90% 453
95% 507
98% 584
99% 670
100% 59668 (longest request)
Simple "Hello World" CGI benchmark of the @webpp framework:
ab -n 50000 -c 1000 http://localhost/cgi-bin/webpp_helloworld
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Completed 20000 requests
Completed 25000 requests
Completed 30000 requests
Completed 35000 requests
Completed 40000 requests
Completed 45000 requests
Completed 50000 requests
Finished 50000 requests
Server Software: Apache/2.4.41
Server Hostname: localhost
Server Port: 80
Document Path: /cgi-bin/webpp_helloworld
Document Length: 19 bytes
Concurrency Level: 1000
Time taken for tests: 53.139 seconds
Complete requests: 50000
Failed requests: 218
(Connect: 0, Receive: 0, Length: 218, Exceptions: 0)
Total transferred: 9906618 bytes
HTML transferred: 945858 bytes
Requests per second: 940.93 [#/sec] (mean)
Time per request: 1062.781 [ms] (mean)
Time per request: 1.063 [ms] (mean, across all concurrent requests)
Transfer rate: 182.06 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 8 86.4 0 3200
Processing: 19 699 3602.3 385 53114
Waiting: 0 442 973.2 350 26850
Total: 24 707 3604.3 386 53134
Percentage of the requests served within a certain time (ms)
50% 386
66% 438
75% 476
80% 503
90% 612
95% 818
98% 1334
99% 1702
100% 53134 (longest request)
I don't like to code for others; because those whom I worked for so far, didn't get how much time and effort I put into the code. They never understood how much it worth. That's why I stopped working for others, and now, I'm coding the foundation of my own dreams. The one single building block that will hold almost all of my ideas together; a framework in a language that can glue everything I'll write together.
I have so many ideas, but if I spend coding one of them, it'll take so much out of me because those ideas need updates; and other frameworks gets updated frequently. At least now, when I update my framework, I know I'll get all the cool things I want for all of those ideas all together.
I'm designing it in a way that I don't have to do it again for another project. I just have to re-use it.
.
.
Oh bwt, the blue light on the picture is natural, guess how I did it?! 😊
.
.
#coding #code #programming #idea #development #developer #dev #tech #technology #techie #cpp #web #webdev #devlife #techlife #job
https://www.instagram.com/p/B9KeI6EAFZ8/?igshid=8lzj57keiocy
I have so many ideas, but if I spend coding one of them, it'll take so much out of me because those ideas need updates; and other frameworks gets updated frequently. At least now, when I update my framework, I know I'll get all the cool things I want for all of those ideas all together.
I'm designing it in a way that I don't have to do it again for another project. I just have to re-use it.
.
.
Oh bwt, the blue light on the picture is natural, guess how I did it?! 😊
.
.
#coding #code #programming #idea #development #developer #dev #tech #technology #techie #cpp #web #webdev #devlife #techlife #job
https://www.instagram.com/p/B9KeI6EAFZ8/?igshid=8lzj57keiocy
Instagram
The moisrex
I don't like to code for others; because those whom I worked for so far, didn't get how much time and effort I put into the code. They never understood how much it worth. That's why I stopped working for others, and now, I'm coding the foundation of my own…
I'm learning these days if you wonder; implemented an async daytime porotocol with help of Boost.Asio library.
It sure will help to implement the FCGI protocol in the project.
It might even be the base of the Self-Hosted interface too; but before implementing that, I have to make sure I understand HTTP 2.0 before implementing something that would require even more change when I felt the need for implementing HTTP 2.0 protocol.
But of course, you sure can use FCGI and CGI protocol to have Nginx or apache do the hard work of doing all the HTTP 2.0 protocol stuff.
It sure will help to implement the FCGI protocol in the project.
It might even be the base of the Self-Hosted interface too; but before implementing that, I have to make sure I understand HTTP 2.0 before implementing something that would require even more change when I felt the need for implementing HTTP 2.0 protocol.
But of course, you sure can use FCGI and CGI protocol to have Nginx or apache do the hard work of doing all the HTTP 2.0 protocol stuff.
LetsEncrypt will be revoking 3,048,289 TLS certificates tomorrow. To find out if your site is affected and what to do, see https://community.letsencrypt.org/t/revoking-certain-certificates-on-march-4/114864
Let's Encrypt Community Support
Revoking certain certificates on March 4
[Update 2020-03-05: The most up-to-date summary is at 2020.02.29 CAA Rechecking Bug] Due to the 2020.02.29 CAA Rechecking Bug, we unfortunately need to revoke many Let’s Encrypt TLS/SSL certificates. We’re e-mailing affected subscribers for whom we have…
I had a very discussion with one of my friends years ago about if human decisions were binary or not.
If you break down every decision into smaller decisions, then you'll get to a point that a decision in that situation is good and the other one is bad; so we decided at last.
But the problem is that we are not able to decide things in binary; we decide thousands of decisions at once. We set goals; hopefully those goals have logical reasons.
For example, when I decided to make this framework, I also chose to thousands of other smaller decisions at once. And that's not the end; now I have to make millions of more decisions when they come along the way; for example when to code, which algorithms to choose and many more decisions.
But the good thing now is that these decisions are easier to make because they have a more clear goal.
I see young people with no goals. (Making money is not a goal, it's a tool. Contact me for more info about why!)
Goals require decisions, decisions require decisions until they become so clear and small that you can (probably physically) do it just now.
So a decision is not just a decision, it's the combination of millions of decisions that you have to make in the future.
So choose carefully, and choose something that worth it. More than 95 percents of you don't have a goal, or even if you do, it's not worth it, and even if you have, you probably don't know why it worth it. Knowing the reason is even more important than achieving the goal.
If you break down every decision into smaller decisions, then you'll get to a point that a decision in that situation is good and the other one is bad; so we decided at last.
But the problem is that we are not able to decide things in binary; we decide thousands of decisions at once. We set goals; hopefully those goals have logical reasons.
For example, when I decided to make this framework, I also chose to thousands of other smaller decisions at once. And that's not the end; now I have to make millions of more decisions when they come along the way; for example when to code, which algorithms to choose and many more decisions.
But the good thing now is that these decisions are easier to make because they have a more clear goal.
I see young people with no goals. (Making money is not a goal, it's a tool. Contact me for more info about why!)
Goals require decisions, decisions require decisions until they become so clear and small that you can (probably physically) do it just now.
So a decision is not just a decision, it's the combination of millions of decisions that you have to make in the future.
So choose carefully, and choose something that worth it. More than 95 percents of you don't have a goal, or even if you do, it's not worth it, and even if you have, you probably don't know why it worth it. Knowing the reason is even more important than achieving the goal.
Testing and benchmarking performance in C++ is like testing your javascript code in different browsers except you don't have different browsers, you have different hardware and different operating systems and different implementations of different algorithms and libraries.
So many things to consider!
t.me/webpp
So many things to consider!
t.me/webpp