WordBash

The WordPress clone written in GNU Bash

header image

Performance

Posted on Feb 1, 2014 4:35PM

This post addresses Bash performance by demonstrating code to accomplish three things:

I think you will find it enlightening (well, I did).

Stripping HTML Tags

Stripping tags is straight forward and uses a single state flag:

bash code

# strip tags

 

st() {

    n=${#data}

    t=0

    r=

    for (( i=0; i<$n; i++ )); do

        if [[ ${data:$i:1} == ">" ]]; then t=0; continue; fi

        if [[ $t == 1 ]]; then continue; fi

        if [[ ${data:$i:1} == "<" ]]; then t=1; continue; fi

        r+=${data:$i:1}

    done

    data=$r

}

That, though, only demonstrates that expanding a string one character at a time is slow. Sometimes case is used for parsing data, so let's give it a try:

Continue reading →

Not Finished

Posted on Feb 2, 2014 4:35PM
WordBash development has been paused. I just wanted to demonstrate that a web application like a blog can be created as a shell script.

WordBash is not finished. At this stage, WordBash is what I call proven concept. Since you are seeing and interacting with software that is almost identical to WordPress, I consider this proof that WordBash is a working web application. However, not all WordPress features are implemented.

The current Object Oriented approach, as I have implemented it, is as valid as any "real" paradigm (and in fact shows that "real" classes and objects can just add bloat and why I am calling WordBash non-paradigm code), and that may not change much, but WordBash will end up with architectural changes if I continue development.

WordBash has had only about eight months of development—with several months of gaps—and there are bound to be one or two things wrong that could completely mess things up. I wrote this code to learn Bash.

Many of modern programming's fancy methodologies and paradigms can be implemented in shell script. So too can they be implemented in machine language, as that is in reality all that exists anyway (if you heard this from me first, you should not have heard this from me first).

Except that, as I am trying to demonstrate with WordBash, these methodologies and paradigms are not always necessary.

Continue reading →

Category: default | comments closed
0m0.031s 0m0.013s 0m0.006s 0m0.003s