setInterval does not work

SineCosine

I'm still looking for my Tangent
Reaction score
77
Umm..
I tried to do this:

Code:
//Some other function
document.body.setAttribute('onKeyPress', 'CHAR_KEY(event)');
//End of some other function


                function CHAR_KEY (e) {
                    var ARROW_KEY;

                    if(window.event) {
                        ARROW_KEY = String.fromCharCode(e.keyCode).toUpperCase();
                    } else if(e.which) {
                        ARROW_KEY = String.fromCharCode(e.which).toUpperCase();
                    }
                    try {
                    if (ARROW_KEY == ARROW_UP) {
                        document.body.setAttribute('onKeyPress', '');
                        CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_UP);', MOVE_DElAY);
                    } else if (ARROW_KEY == ARROW_LEFT) {
                        document.body.setAttribute('onKeyPress', '');
                        CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_LEFT);', MOVE_DElAY);
                    } else if (ARROW_KEY == ARROW_DOWN) {
                        document.body.setAttribute('onKeyPress', '');
                        CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_DOWN);', MOVE_DElAY);
                    } else if (ARROW_KEY == ARROW_RIGHT) {
                        document.body.setAttribute('onKeyPress', '');
                        CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_RIGHT);', MOVE_DElAY);
                    }

                    } catch(err) {
                        alert(err.description);
                    }
                }

setInterval causes an error to pop-up on the very first try.
Am I doing something wrong?

Also, it isn't my variables that are wrong.
I'll post up the entire thing just in case, though..

Code:
<html>
    <head>
        <title>Pump-Quest v0.1</title>
        <comment>Misc Constants</comment>
            <script type="text/javascript">
                //globals
                var TILE_DIMENSION = 32; //In pixels
                var MOVE_DELAY = 31; //In milliseconds, 31milliseconds == 0.03125seconds

                var MAX_X = 20;
                var MAX_Y = 15;

                var PIXEL_MAX_X = MAX_X * TILE_DIMENSION;
                var PIXEL_MAX_Y = MAX_Y * TILE_DIMENSION;
            </script>

            <script type="text/javascript">
                function main () {
                    //This is to ensure CHAR_INIT runs smoothly
                    CHAR_X = 3;
                    CHAR_Y = 4;
                    CHAR_F = CHAR_UP;
                    CHAR_INIT();
                }

            </script>
        <comment>Map</comment>
            <script type="text/javascript">
                //globals
                var GROUND_INDEX = 1;
                var SOLID_INDEX = 2;
                var AIR_INDEX = 3;

            </script>

        <comment>Character</comment>
            <script type="text/javascript">
                //globals
                var CHAR_X;
                var CHAR_Y;
                var CHAR_F;
                var CHAR_SPRITE = []; //3-D Array Facing-X-Y, Object
                var CHAR_CURRENT_SPRITE;
                var CHAR; //Div-Object of Char

                var CHAR_MAX_FRAME = 4;
                var CHAR_FRAME = CHAR_MAX_FRAME;
                var CHAR_MOVE_TIMER;
                var PIXEL_MOVE_PER_TICK = TILE_DIMENSION / CHAR_MAX_FRAME;

                var CHAR_UP = 1;
                var CHAR_LEFT = 2;
                var CHAR_DOWN = 3;
                var CHAR_RIGHT = 4;

                var ARROW_UP = 'W';
                var ARROW_LEFT = 'A';
                var ARROW_DOWN = 'S';
                var ARROW_RIGHT = 'D';

                var NULL;
            </script>

            <script type="text/javascript">
                function CHAR_INIT () {
                    CHAR_SPRITE[10*CHAR_UP + 1] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_UP + 1].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_12.png';
                    CHAR_SPRITE[10*CHAR_UP + 2] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_UP + 2].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_11.png';
                    CHAR_SPRITE[10*CHAR_UP + 3] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_UP + 3].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_10.png';
                    CHAR_SPRITE[10*CHAR_UP + 4] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_UP + 4].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_11.png';

                    CHAR_SPRITE[10*CHAR_LEFT + 1] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_LEFT + 1].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_03.png';
                    CHAR_SPRITE[10*CHAR_LEFT + 2] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_LEFT + 2].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_02.png';
                    CHAR_SPRITE[10*CHAR_LEFT + 3] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_LEFT + 3].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_01.png';
                    CHAR_SPRITE[10*CHAR_LEFT + 4] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_LEFT + 4].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_02.png';

                    CHAR_SPRITE[10*CHAR_DOWN + 1] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_DOWN + 1].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_06.png';
                    CHAR_SPRITE[10*CHAR_DOWN + 2] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_DOWN + 2].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_05.png';
                    CHAR_SPRITE[10*CHAR_DOWN + 3] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_DOWN + 3].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_04.png';
                    CHAR_SPRITE[10*CHAR_DOWN + 4] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_DOWN + 4].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_05.png';

                    CHAR_SPRITE[10*CHAR_RIGHT + 1] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_RIGHT + 1].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_09.png';
                    CHAR_SPRITE[10*CHAR_RIGHT + 2] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_RIGHT + 2].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_08.png';
                    CHAR_SPRITE[10*CHAR_RIGHT + 3] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_RIGHT + 3].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_07.png';
                    CHAR_SPRITE[10*CHAR_RIGHT + 4] = new Image(TILE_DIMENSION, TILE_DIMENSION);
                    CHAR_SPRITE[10*CHAR_RIGHT + 4].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_08.png';


                    CHAR = document.createElement('div');

                    CHAR.style.position = 'absolute';
                    CHAR.style.width = TILE_DIMENSION;
                    CHAR.style.height = TILE_DIMENSION;
                    CHAR.style.top = PIXEL_MAX_Y - (CHAR_Y * TILE_DIMENSION);
                    CHAR.style.left = CHAR_X * TILE_DIMENSION;
                    CHAR.style.zIndex = SOLID_INDEX;
                    CHAR_CURRENT_SPRITE = CHAR_SPRITE[10*CHAR_F + 4];
                    CHAR.appendChild(CHAR_CURRENT_SPRITE);

                    document.body.appendChild(CHAR);
                    document.body.setAttribute('onkeypress', 'CHAR_KEY(event)');

                }

                function CHAR_MOVE(Direction) {
                    if (CHAR_FRAME == CHAR_MAX_FRAME) {
                        if (Direction == ARROW_UP) {
                            CHAR_Y = CHAR_Y + 1;
                        } else if (Direction == ARROW_LEFT) {
                            CHAR_X = CHAR_X - 1;
                        } else if (Direction == ARROW_DOWN) {
                            CHAR_Y = CHAR_Y - 1;
                        } else if (Direction == ARROW_RIGHT) {
                            CHAR_X = CHAR_X + 1;
                        }
                    }

                    if (CHAR_FRAME != 0) {
                        if (Direction == ARROW_UP) {
                            CHAR.style.top = parseInt(CHAR.style.top) - PIXEL_MOVE_PER_TICK;
                        } else if (Direction == ARROW_LEFT) {
                            CHAR.style.left = parseInt(CHAR.style.left) - PIXEL_MOVE_PER_TICK;
                        } else if (Direction == ARROW_DOWN) {
                            CHAR.style.top = parseInt(CHAR.style.top) + PIXEL_MOVE_PER_TICK;
                        } else if (Direction == ARROW_RIGHT) {
                            CHAR.style.left = parseInt(CHAR.style.left) + PIXEL_MOVE_PER_TICK;
                        }

                        CHAR_FRAME = CHAR_FRAME - 1;
                    }

                    if (CHAR_FRAME == 0) {
                        CHAR.style.top = PIXEL_MAX_Y - (CHAR_Y * TILE_DIMENSION);
                        CHAR.style.left = CHAR_X * TILE_DIMENSION;
                        CHAR_FRAME = CHAR_MAX_FRAME;

                        clearInterval(CHAR_MOVE_TIMER);
                        CHAR_MOVE_TIMER = NULL;
                        document.body.setAttribute('onKeyPress', 'CHAR_KEY(event)');
                    }
                }

                function CHAR_KEY (e) {
                    var ARROW_KEY;

                    if(window.event) {
                        ARROW_KEY = String.fromCharCode(e.keyCode).toUpperCase();
                    } else if(e.which) {
                        ARROW_KEY = String.fromCharCode(e.which).toUpperCase();
                    }
                    try {
                    if (ARROW_KEY == ARROW_UP) {
                        document.body.setAttribute('onKeyPress', '');
                        CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_UP);', MOVE_DElAY);
                    } else if (ARROW_KEY == ARROW_LEFT) {
                        document.body.setAttribute('onKeyPress', '');
                        CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_LEFT);', MOVE_DElAY);
                    } else if (ARROW_KEY == ARROW_DOWN) {
                        document.body.setAttribute('onKeyPress', '');
                        CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_DOWN);', MOVE_DElAY);
                    } else if (ARROW_KEY == ARROW_RIGHT) {
                        document.body.setAttribute('onKeyPress', '');
                        CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_RIGHT);', MOVE_DElAY);
                    }

                    } catch(err) {
                        alert(err.description);
                    }
                }

            </script>
        <comment>NPC</comment>

        <comment>Menu</comment>
    </head>

    <body onload="main()">


    </body>

</html>
 

UndeadDragon

Super Moderator
Reaction score
447
What error does it give you?
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
The alert that 'catches' the error is blank xD
Anyways, I solved it.

Apparently, you can't do something like this:
Code:
function Blah () {
    var Interval = 31;

    setInterval('alert(\'Hello\');', Interval);
}

You can't use a variable as an interval amount =/
Or at least, I can't
I had to do this:
Code:
function Blah () {
    setInterval('alert(\'Hello\');', 31);
}

To get it working.
Thanks anyways =x
 

celerisk

When Zerg floweth, life is good
Reaction score
62
You can't use a variable as an interval amount

Works just fine actually.


However...

Your variable declaration:
var MOVE_DELAY = 31;
When you used it:
CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_UP);', MOVE_DElAY);

Notice the difference?
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
Holy **** ._.
Argh, I hate typos T.T

Thanks, celerisk, you're like a savior.

Umm..
Since that's solved..

Here's another question =x
Code:
            function main () {
                var WINDOW = window.open('about:blank');
                WINDOW.document.body.style.backgroundColor = 'green';
                WINDOW.alert(WINDOW.document.body.style.backgroundColor);
            }

What it does:
01) New window is opened
02) An alert pops up with the message 'green'

However, this is what it is supposed to do:
01) New window is opened
02) Background color for the opened window changes to green
03) An alert pops up with the message 'green'

I can't seem to change the background color of the opened window ._.

[EDIT]
Also..
Code:
<script type = "text/javascript">
    //globals
    var INTEGER;
</script>

            function main () {
                var WINDOW = window.open('about:blank');
                WINDOW.alert = function () { 
                                               self.parent.INTEGER = self.parent.INTEGER + 1; 
                                           };
                WINDOW.alert('blah blah blah');
            }

If the window attempts to pop-up an alert.
No alert should appear and the value of INTEGER becomes (INTEGER + 1).

Is it possible to do something like this? =x

[EDIT=2]
Omfg,
self.parent.INTEGER = self.parent.INTEGER + 1;

WORKS!
Wow, I just discovered something on my own =x
 

UndeadDragon

Super Moderator
Reaction score
447
I'm guessing its because you are opening 'about:blank' and you cant change the background colour of it.
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
Okay =x
So..
I can't change the background color of a page if it does not have a style sheet?

But I can do this:
Code:
function something () {
    var NewDiv = document.createElement('div');
    
    NewDiv.style.position = 'absolute';
    NewDiv.style.width = 640;
    NewDiv.style.height = 480;
    
    NewDiv.style.backgroundColor = 'black';

    document.body.appendChild(NewDiv);
}
Originally, the NewDiv created has no style properties.
So..

Why shouldn't the new window that has no style properties process the code that sets its background color?
 

celerisk

When Zerg floweth, life is good
Reaction score
62
" I can't change the background color of a page if it does not have a style sheet? "

You need a page with an actual document inside.


" document.body.appendChild(NewDiv); "

Do that to your new window.
Now that new window has a document, with body, you can work with.

"blank" is just that, blank.

Anything that isn't "nothing" should do.
window.document.write('<p>Hi</p>');
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
Thanks, celerisk!
Umm..

How about something like this..
Code:
function Blah () {
    var New_Window = window.open('http://google.com');

    New_Window.onload = function () { 
                          alert('loaded Google =x');
                        };
}

When New_Window finishes loading the page, I need it to call a function..
But I'm not having any luck so far =/
 

celerisk

When Zerg floweth, life is good
Reaction score
62
With a page that is your own, you can simply add the onload to that and have it call a function in the original window.

If you actually tried with Google and it didn't work... well, that's normal.
That would only work if both pages were from Google.
Or both from wherever, but the same domain.


May I be so bold as to ask what the heck you're trying to do here? :p


If all else fails, periodically check for the page to be there:
Code:
var w = window.open ...
setTimeout(
function()
{
    if (!w.document.body) // loaded?
    {
        setTimeout(this, 100); // not yet, try again "later"
    }
    else
    {
        // Do something here
    };
}, 200);
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
Well..
I've been playing around a lot with javascript and managed to get a working Pac-Man game running =x
(Well, without the ghosts, points system, lives and level 2 onwards.. but yea, it works nicely)

And all that playing around was to code an auto-tagger from scratch.
You helped me make one some time ago, remember?

I didn't feel nice, getting spoonfed =x
So, yea.

It's going well..
Except for these little bumps xD

Thanks celerisk, gonna' try it.

[EDIT]
Is there anything else besides 'alert', 'confirm' and 'prompt' that will spawn those error-message looking boxes?
Because those 'Post rate too high' messages don't get shutdown with:
Code:
                LOCAL_WINDOW.alert = function () { alert('not funny'); };
                LOCAL_WINDOW.confirm = function () { alert('not funny'); };
                LOCAL_WINDOW.prompt = function () { alert('not funny'); };

But if I do this:
Code:
                LOCAL_WINDOW.alert = function () { alert('not funny'); };
                LOCAL_WiNDOW.alert('roflbbqhawtsauce');

The result will be 'not funny'.
So I concluded that it isn't an alert, confirm or prompt that shows when I get the error message <.<

[EDIT=2]
Weird..
This isn't working right =x

Only 'lots' shows.
'stuff' and 'moar' never show up =/

I tried removing 'lots'.
Nothing still.
Code:
                setTimeout(function () {
                                alert('lots');
                                if (!LOCAL_WINDOW.document.body) {
                                    alert('stuff');
                                } else {
                                    alert('moar');
                                }
                            }, 4000);
 

celerisk

When Zerg floweth, life is good
Reaction score
62
So I concluded that it isn't an alert, confirm or prompt that shows when I get the error message

My guess is on "alert".
Being a native, it's rather hard to turn off.

window.alert = function ...
Will do for the current window.
Whether that change is actually global... no idea. Probably not.


As for your "edit 2":
Read the original one more time :p
Your local_window variable, of course, exists in the context this is running in? (Or is global?)
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
I see.
I'll forget about shutting it down for now, then =/

[EDIT]
I don't understand =x
Your local_window variable, of course, exists in the context this is running in? (Or is global?)

I don't see much difference between this:
Code:
setTimeout(
function()
{
    if (!w.document.body) // loaded?
    {
        setTimeout(this, 100); // not yet, try again "later"
    }
    else
    {
        // Do something here
    };
}, 200);

And this:
Code:
                setTimeout(function () {
                                alert('lots');
                                if (!LOCAL_WINDOW.document.body) {
                                    alert('stuff');
                                } else {
                                    alert('moar');
                                }
                            }, 4000);

Or is there something hideously wrong ? ._.

[EDIT=2]
The timer is running in LOCAL_WINDOW's opener.
Also, LOCAL_WINDOW is a global variable =x

I just named it with a 'local' tag so that I would remember that I should use it for only one function.

[EDIT=3]
Well, I figured something out, but I ain't happy about it =/
The following will cause setTimeout to fail.
Code:
                LOCAL_WINDOW.document.body.appendChild(LOCAL_FORM);
                LOCAL_FORM.submit();
                setTimeout(function () {
                                alert('lots');
                                if (!LOCAL_WINDOW.document.body) {
                                    alert('stuff');
                                } else {
                                    alert('moar');
                                }
                            }, 4000);

The following will make it work.
Code:
                LOCAL_WINDOW.document.body.appendChild(LOCAL_FORM);
                //LOCAL_FORM.submit();
                setTimeout(function () {
                                alert('lots');
                                if (!LOCAL_WINDOW.document.body) {
                                    alert('stuff');
                                } else {
                                    alert('moar');
                                }
                            }, 4000);

As you can see..
Commenting that one line out 'fixes' things.
Any work arounds you can think of? o.0
 

celerisk

When Zerg floweth, life is good
Reaction score
62
Come to think of it, someone up here mentioned something interesting:
If you actually tried with Google and it didn't work... well, that's normal.
That would only work if both pages were from Google.
Or both from wherever, but the same domain.

My trust in that guy being nearly complete, I guess you have no access to someone else's "document", regardless of who opened it.



It should be possible though to abuse an iframe... not that I would recommend it.
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Popup test</title>
<script type="text/javascript">
function Done()
{
    document.getElementById('status').innerHTML = 'Done!';
}
function doit()
{
    var g = window.open('about:blank');
    g.document.write('<p>Some content</p>');
    var f = document.createElement('iframe');
    g.document.body.appendChild(f);
    f.style.width = '800px';
    f.style.height = '640px';
    document.getElementById('status').innerHTML = 'Busy...';
    if (f.attachEvent)
    {
            f.attachEvent('onload', function(){ Done(); });
    }
    else
    {
            f.onload = function(){ Done(); };
    }
    f.src = "http://www.google.com/";
    return false;
}
</script>
</head>
<body>
<form method="get" action="#" onsubmit="return false;">
<p>
<input type="button" value="Click" onclick="doit();" />
</p>
</form>
<pre id="status">&nbsp;</pre>
</body>
</html>

That should reasonably consistently call "Done()" once done loading.
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
Holy--
You, sir, are a God.

Works solid as far as I can see ._.
Those cbox thingies I wanna' spam use iframes, too >.>
Never knew what they were for.

So..
They're, like, for opening other web pages without having to navigate away from the page..
Sweet...

[EDIT]
My mind has been blown.
Wow.

But I don't understand this bit..
Code:
if (f.attachEvent)
    {
            f.attachEvent('onload', function(){ Done(); });
    }
    else
    {
            f.onload = function(){ Done(); };
    }

This is the heart of the example, I guess.
What is 'attachEvent' ?
 

celerisk

When Zerg floweth, life is good
Reaction score
62
On the day frames were invented, the Devil wept, overwhelmed by the sheer evilness he witnessed.


An iframe is basically a block that holds another complete page.

For the days you feel like seeing three different sites all on one page.
Unusable, unnavigable, pure unaltered evil.
Avoid at all costs. Unless, of course, you already sold your soul to some lesser demon, in which case it doesn't matter anymore.
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
I have already sold mine, then ._.
It's perfect for my needs!

Woo!!
In fact, I'm remaking the tagger from scratch to take advantage of this new-found knowledge, wahahahaha..
(Also, to clean up the ugly codes)

Still, I don't get what attachEvent is.
Is it like setAttribute?

Seems the same.
attachEvent('onload', function () { alert('la dee da'); });
setAttribute('onload', function () { alert('la dee da'); });
 

celerisk

When Zerg floweth, life is good
Reaction score
62
An attribute is just some value with a name of interest.
ref.text = 'Hello'
ref.question = 'How are you?'
ref.secret = 42
(With ref being a reference to some object or variable)

You can invent them as you need them.

Others are predefined:
.style.backgroundColor
.value (on some input element)
...


An event is used if you are waiting for something to happen.
.onload
.onclick
.onmouseover
and plenty others.

Unfortunately, while the DOM specification defines those,
some browsers still have their own idea on how to do things.
.attachEvent, .addListener, .onWhatever, ... so many ways, so little time.

Hence my recommendation to use a JavaScript library, like jQuery (the only one you're ever going to need), to keep the headaches to a minimum.


" Seems the same "

Until you try it. On more than one browser. :p
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Varine Varine:
    How can you tell the difference between real traffic and indexing or AI generation bots?
  • The Helper The Helper:
    The bots will show up as users online in the forum software but they do not show up in my stats tracking. I am sure there are bots in the stats but the way alot of the bots treat the site do not show up on the stats
  • Varine Varine:
    I want to build a filtration system for my 3d printer, and that shit is so much more complicated than I thought it would be
  • Varine Varine:
    Apparently ABS emits styrene particulates which can be like .2 micrometers, which idk if the VOC detectors I have can even catch that
  • Varine Varine:
    Anyway I need to get some of those sensors and two air pressure sensors installed before an after the filters, which I need to figure out how to calculate the necessary pressure for and I have yet to find anything that tells me how to actually do that, just the cfm ratings
  • Varine Varine:
    And then I have to set up an arduino board to read those sensors, which I also don't know very much about but I have a whole bunch of crash course things for that
  • Varine Varine:
    These sensors are also a lot more than I thought they would be. Like 5 to 10 each, idk why but I assumed they would be like 2 dollars
  • Varine Varine:
    Another issue I'm learning is that a lot of the air quality sensors don't work at very high ambient temperatures. I'm planning on heating this enclosure to like 60C or so, and that's the upper limit of their functionality
  • Varine Varine:
    Although I don't know if I need to actually actively heat it or just let the plate and hotend bring the ambient temp to whatever it will, but even then I need to figure out an exfiltration for hot air. I think I kind of know what to do but it's still fucking confusing
  • The Helper The Helper:
    Maybe you could find some of that information from AC tech - like how they detect freon and such
  • Varine Varine:
    That's mostly what I've been looking at
  • Varine Varine:
    I don't think I'm dealing with quite the same pressures though, at the very least its a significantly smaller system. For the time being I'm just going to put together a quick scrubby box though and hope it works good enough to not make my house toxic
  • Varine Varine:
    I mean I don't use this enough to pose any significant danger I don't think, but I would still rather not be throwing styrene all over the air
  • The Helper The Helper:
    New dessert added to recipes Southern Pecan Praline Cake https://www.thehelper.net/threads/recipe-southern-pecan-praline-cake.193555/
  • The Helper The Helper:
    Another bot invasion 493 members online most of them bots that do not show up on stats
  • Varine Varine:
    I'm looking at a solid 378 guests, but 3 members. Of which two are me and VSNES. The third is unlisted, which makes me think its a ghost.
    +1
  • The Helper The Helper:
    Some members choose invisibility mode
    +1
  • The Helper The Helper:
    I bitch about Xenforo sometimes but it really is full featured you just have to really know what you are doing to get the most out of it.
  • The Helper The Helper:
    It is just not easy to fix styles and customize but it definitely can be done
  • The Helper The Helper:
    I do know this - xenforo dropped the ball by not keeping the vbulletin reputation comments as a feature. The loss of the Reputation comments data when we switched to Xenforo really was the death knell for the site when it came to all the users that left. I know I missed it so much and I got way less interested in the site when that feature was gone and I run the site.
  • Blackveiled Blackveiled:
    People love rep, lol
    +1
  • The Helper The Helper:
    The recipe today is Sloppy Joe Casserole - one of my faves LOL https://www.thehelper.net/threads/sloppy-joe-casserole-with-manwich.193585/
  • The Helper The Helper:
    Decided to put up a healthier type recipe to mix it up - Honey Garlic Shrimp Stir-Fry https://www.thehelper.net/threads/recipe-honey-garlic-shrimp-stir-fry.193595/

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top