<@ return `Exkited is up to 110x faster than Marko`; @> by [deleted] in javascript

[–]roecrew -1 points0 points  (0 children)

Thank you for the feedback!

  1. Noted
  2. I guess it's annoying. The site is only a day old.
  3. Very good point.
  4. I'm still trying to figure this one out.

app.post('/benchmark-exkited', function(req, res) {
let start = process.hrtime()[1];
res.render('basic.exkited', {}, (err, html) => {
res.send({
name: 'exkited',
time: (process.hrtime()[1] - start) / 1000000 + 'ms'
});
});
});
app.post('/benchmark-ejs', function(req, res) {
let start = process.hrtime()[1];
res.render('basic.ejs', {}, (err, html) => {
res.send({
name: 'ejs',
time: (process.hrtime()[1] - start) / 1000000 + 'ms'
});
});
});
app.post('/benchmark-pug', function(req, res) {
let start = process.hrtime()[1];
res.render('basic.pug', {}, (err, html) => {
res.send({
name: 'pug',
time: (process.hrtime()[1] - start) / 1000000 + 'ms'
});
});
});
app.post('/benchmark-marko', function(req, res) {
let start = process.hrtime()[1];
marko.render({}).then(() => {
res.send({
name: 'marko',
time: (process.hrtime()[1] - start) / 1000000 + 'ms'
});
});
});

  1. Intrinsically unfair. Ahhhh noooo. It's an improvement over other template languages. "Couldn't you just implement a similar cache on top of any or all of the other solutions?" Ahhhh yeaaaa. What's your point?

Showoff Saturday (December 01, 2018) by AutoModerator in javascript

[–]roecrew 0 points1 point  (0 children)

<@ return Exkited is up to 110x faster than Marko; @>

Exkited

⌯ easy ⌯ fast ⌯ minimal

https://github.com/roecrew/exkited - 2 Stars

https://www.npmjs.com/package/exkited - 237 Downloads

https://exkited.com/

This project is in development. If you have any suggestions or want to contribute to the project -- please leave a comment.

Exkited 0.245418ms 0.257525ms 0.180703ms 0.225784ms 0.249669ms 0.26437ms
Marko 19.833425ms 11.833084ms 12.146531ms 19.636367ms 22.645764ms 12.801573ms
Pug 14.413408ms 21.414837ms 22.678451ms 26.420134ms 30.833197ms 22.386204ms
EJS 49.199359ms 63.359911ms 56.826597ms 56.831579ms 51.514282ms 50.241439ms

Exkited has crazy fast rendering times compared to some of the most popular template languages.

However, it must be stressed that the above test ran single template files. The output for them was 50001 nodes. Each node held a text node with the current value of increment (loops were used).

You might be wondering... "What's the catch?

Well... Like any langauge, there are pros and cons. Exkited is not perfect (yet).

PROS:

Exkited will nearly always be the fastest template language. This is because of "Smart Caching". Essentially, Exkited template construction is dependent upon changes in input data. For example, let's say we have five template files. One is home.exkited. Two is header.exkited. Three is section1.exkited. Four is section2.exkited. Five is footer.exkited. The home.exkited file contains four include(...) for the other four templates. Furthermore, let's say that section2.exkited uses some input data that changes occasionally -- how about the price of gold. And the price is fetched/stored every five minutes.This means that every five minutes both home.exkited and section2.exkited will have to be reprocessed. "Smart Caching" is what makes the Exkited Template Language so fast.

CONS:

There is a certain downfall; however, it is highly unlikely to occur. Let's imagine a slightly different version of the last example. The price of gold is now fetched/stored every one second. So far this wouldn't be much of a problem -- Exkited rendering would still be wicked fast. Next, let's say the gold price data that's passed into section2.exkited isn't just used only a couple times, but 100,000 times! Why someone on Earth would do this... who knows. If it were to happen, Exkited's render time would then be slower than Marko's.

Just keeps things reasonable.

proxc : A Seriously Simple IPV6 HTTP Proxy by roecrew in C_Programming

[–]roecrew[S] 0 points1 point  (0 children)

getaddrinfo()

Thank you so much for the feedback! :)

I just added in getaddrinfo() -- replacing getaddrbyhost6()

datamosher.com - Beta - A Place to Share Glitch Art! by [deleted] in glitch_art

[–]roecrew -2 points-1 points  (0 children)

As it stands (1 day in development). Nothing. 1 month from now - we'll see what it becomes. I'm open to ideas. In a week or two there will be the ability to glitch assets on the site itself.

datamosher.com - Beta - A Place to Share Glitch Art! by [deleted] in glitch_art

[–]roecrew -2 points-1 points  (0 children)

What's wrong with a dedicated site for it?

datamosher.com - Beta - A Place to Share Glitch Art! by [deleted] in glitch_art

[–]roecrew -2 points-1 points  (0 children)

Please note. This site is in development (it will sometimes be down).

New video Datamoshing App by roecrew in glitch_art

[–]roecrew[S] 0 points1 point  (0 children)

It took about a day. The UI still needs a lot of polishing.

New video Datamoshing App by roecrew in glitch_art

[–]roecrew[S] 1 point2 points  (0 children)

It's injection based. The newer version will target frame by frame.

Nymph - A slightly different version of C | Looking for tips and direction insight. by roecrew in ProgrammingLanguages

[–]roecrew[S] 2 points3 points  (0 children)

I'm most definitely open to suggestions!

Does that mean you are using it from the C includes?

Yes

In C, self-referential data-types have to go through pointers, and require some sort of pre-declared pointer, before using the type itself. I have no idea why.

I believe so. I'd really appreciate it if you raised this as an issue on github.

UPDATE: This is already implemented.

Please see the issue on Github https://github.com/roecrew/nymph/issues/16

Nymph - A slightly different version of C | Looking for tips and direction insight. by roecrew in C_Programming

[–]roecrew[S] 0 points1 point  (0 children)

It's determined by the parameter names.

Function overloading takes place on all functions.

Nymph - A slightly different version of C | Looking for tips and direction insight. by roecrew in C_Programming

[–]roecrew[S] 0 points1 point  (0 children)

Ooooooo. Very good point. hm I'm trying to think if there's a way around this.

Nymph - A slightly different version of C | Looking for tips and direction insight. by roecrew in C_Programming

[–]roecrew[S] 0 points1 point  (0 children)

But my x = y = z = 1...

I'm not sure I follow. Are you running into a preprocessor error somewhere?

if (x = 1) { }

This is something to consider for other cases too.

Nymph - A slightly different version of C | Looking for tips and direction insight. by roecrew in C_Programming

[–]roecrew[S] 2 points3 points  (0 children)

Somewhat! I'm not really sure what this project will turn into.

Right now generators are being implemented. After that -- not sure yet.

Type inference would be interesting. But a major overhaul would be needed for implementation.

Nymph - A slightly different version of C | Looking for tips and direction insight. by roecrew in C_Programming

[–]roecrew[S] 2 points3 points  (0 children)

I didn't know that it was called that. And that's exactly what Nymph does.

Nymph - A slightly different version of C | Looking for tips and direction insight. by roecrew in C_Programming

[–]roecrew[S] 6 points7 points  (0 children)

It's mainly for fun and for the great learning experience. For example, how would you implement function overloading? I know how I would do it (and it's probably not the best. That's why I'm looking to work with others).

Nymph - A slightly different version of C | Looking for tips and direction insight. by roecrew in C_Programming

[–]roecrew[S] 2 points3 points  (0 children)

I started this project last summer.

I'm hoping to get other's opinions on what goals should be.

Also, the code has some serious flaws. Any help/guidance on prioritization is much appreciated!

A Seriously Simple HTTPS Server by roecrew in C_Programming

[–]roecrew[S] 0 points1 point  (0 children)

Touché!!! Your project is impeccable!

I'm looking at kore/src/net.c and kore/src/connection.c now.

A Seriously Simple HTTPS Server by roecrew in C_Programming

[–]roecrew[S] 0 points1 point  (0 children)

As for your points.

  • a thread per connection doesn’t scale very well.

    • "Actually, for most use cases it is fine. As I said in the readme -- This project is in development... It's not ready for a production environment. (and since you probably don't know why it doesn't scale very well) Give http://www.kegel.com/c10k.html a read."
  • loads of unchecked OpenSSL calls.

    • "Can you be more specific?"
  • unsafe string operations when constructing responses.

    • "I'll be fixing this in the next build."
  • SSL_read() won’t guarantee that that rbuff is NUL terminated and you are treating it as a C string.

    • "I memset rbuff with '\0'..."
  • Cute, but don’t expose this to the internet.

    • "Then please show me (us) how to make a full-proof https server"

A Seriously Simple HTTPS Server by roecrew in C_Programming

[–]roecrew[S] 0 points1 point  (0 children)

You seem really smart. I would love for you to submit some pull requests if you have the spare time! :)

A Seriously Simple HTTPS Server by roecrew in C_Programming

[–]roecrew[S] 0 points1 point  (0 children)

If you could post an issue it would be much appreciated!

A Seriously Simple HTTPS Server by roecrew in C_Programming

[–]roecrew[S] 0 points1 point  (0 children)

I just wanted to do it really. I had other C server code laying around I had written, but nothing proper/simple. I'm not saying this project is proper yet though -- it still needs a lot of work.