Jump to content


surferpup's Content

There have been 285 items by surferpup (Search limited from 10-February 22)


By content type

See this member's


Sort by                Order  

#165356 Strengthening Password Server Security

Posted by surferpup on 19 February 2014 - 01:17 AM in Ask a Pro

I think it has been fairly well established that there is no such thing as security in ComputerCraft. Every system proposed thus far as workable in ComputerCraft presently can be defeated. Certainly some are more difficult to defeat than others, but all are vulnerable.

Edit: NINJA'd by Bomb Bloke (That dude types so dang fast!!!)



#165302 Rednet Issues

Posted by surferpup on 18 February 2014 - 04:48 PM in Ask a Pro

View PostMKlegoman357, on 18 February 2014 - 01:24 PM, said:

Also, you set rs output to true and then immidiately to false. I don't think there will be a rs pulse when you toggle it that fast. If I am correct then a simple sleep for about 0.1 second between the rs functions should be ok.

I think you have to have the sleep be at the very least 0.08 seconds for a pulse. If anyone knows better, please advise.



#165300 Terminal Lock Admin Bypass Not Working

Posted by surferpup on 18 February 2014 - 04:44 PM in Ask a Pro

Also, in the future, please learn how to use code tags when you post your code in this forum, so that your code looks like this:

while true do
  --Golly, here is my code
end

To do so, simply type [code] at the start of your code, and [/code] at the end of your code (note the use of square brackets). This makes it much easier for us to help you resolve your issues (following good indenting rules is also helpful both for you and for us :) )



#165289 Graffiti v1.7.2 - The first IDE for GUIs

Posted by surferpup on 18 February 2014 - 03:03 PM in Programs

Very cool. Nice IDEa.



#165250 Terminal Lock Admin Bypass Not Working

Posted by surferpup on 18 February 2014 - 11:00 AM in Ask a Pro

Other than your logic, the reason the current program fails is that in the else block of your check password section, you have transposed a variable. You wrote:

term.setTextColour(c_irc)

The correct variable is c_icr not c_irc.

I also agree with what Bomb Bloke and Lyqyd have suggested.



#165240 Break requiring infinite ends?

Posted by surferpup on 18 February 2014 - 01:43 AM in Ask a Pro

View PostCometWolf, on 18 February 2014 - 12:10 AM, said:

Why an i qouted in this?

Because you are awesome. :D

I am just correcting any misconception that a do ... break ... end will work anywhere -- break will only work in a loop.



#165230 How to Exit from a While Loop

Posted by surferpup on 17 February 2014 - 11:12 PM in Tutorials

View Posttheoriginalbit, on 17 February 2014 - 11:08 PM, said:

it stands for Programming in Lua. I myself learnt Lua with the combination of the PIL and a few lua-users.org tutorials.

Ahh. I am well-familiar with the work, not with the acronym. I have spent and continue to spend hours scouring the PIL. I also have spent a good amount of time reading posts, answers to posts and tutorials on this site, as well as in the CC Wiki.

My hope is that by referencing an already-existent tutorial, it will help the new member realize the kinds of resources that are available. One can always hope.



#165228 How to Exit from a While Loop

Posted by surferpup on 17 February 2014 - 11:02 PM in Tutorials

View Posttheoriginalbit, on 17 February 2014 - 10:55 PM, said:

Okay firstly I want to say that if my reply came of as hostile it was not my intention.

Fair enough.

View Posttheoriginalbit, on 17 February 2014 - 10:55 PM, said:

It was my intention however to alert you to the fact that while your tutorials are good — for the most part, a few tweaks here and there never go astray

I agree that there is always room for improvement and welcome constructive criticism. You will note that I addressed Bomb Bloke's concern, and I am taking the time to address your concerns.

View Posttheoriginalbit, on 17 February 2014 - 10:55 PM, said:

— it is a general rule of the entire ComputerCraft forum that the threads be ComputerCraft related; in my several years on these forums I have seen many a tutorial locked or deleted due to the fact that it was either non-informative or was not ComputerCraft specific where something like the PIL or the likes would have sufficed as opposed to a tutorial.

I hope the tutorial is informative -- I realize it only addresses a Lua question -- hence the Lua tag. What is a PIL?

View Posttheoriginalbit, on 17 February 2014 - 10:55 PM, said:

Secondly I would also like to say that if you expect new users to actually find this tutorial via the search feature you may want to reassess your view/opinion of the ComputerCraft demographic, I'm almost positive that a lot of users are unaware there's a search, let alone thinking of using it! :P

At least I can just copy/paste the link to this when answering the exiting from while question, rather than constantly having to pump out a new answer.



#165226 ComputerCraft emulator?

Posted by surferpup on 17 February 2014 - 10:51 PM in General

Thank you.



#165225 How to Exit from a While Loop

Posted by surferpup on 17 February 2014 - 10:45 PM in Tutorials

View Posttheoriginalbit, on 17 February 2014 - 10:24 PM, said:

where are you getting this information, all I see is information stating that it is ComputerCraft only and at least for now we will not be doing any tutorials on Lua specifics.

I apologize. While it did not say specifically on beginning Lua, Lyqyd pointed out: "We've had many new members come through and ask questions, many of them repeats of similar questions that have been asked many times." In reading his post, I interpreted it as a request for a higher quality of tutorials addressing his concern (to lower signal to noise" ratio), as well as on specific topics. There are dozens of questions on Beginning Lua, so I wrote a tutorial on that, explaining the basics of Lua control structures and many of the important key words. In addition to beginning Lua, I have addressed his request for Redstone Basics, and I have almost completed a thorough treatment of Monitor Buttons and Touch Screen Controls.

There is nothing wrong with this tutorial I presented. It answers the question thoroughly, with some thought given to coding practices and an explanation of why things work the way they work. Though I felt it unnecessary, I did include the "return" functionality pointed out by Bomb Bloke. It also answers a question that has come up repeatedly. A search of "exit from while" or "exiting a while" loop will reveal this tutorial, and answer a user question. Since it is properly answering legitimate new member questions, I felt it was appropriate to write.

I am, quite frankly, surprised at your opposition. Has this somehow violated any of the forum guidelines I have read? The tutorial itself is certainly of high enough quality to be posted in the tutorial section, and on a subject which affects many of the new members. If you feel the quality is poor or the tutorial is inappropriate, then feel free to petition to have it removed. It certainly is not written to create controversy, only to help.



#165222 ComputerCraft emulator?

Posted by surferpup on 17 February 2014 - 10:23 PM in General

I checked Mimic out - where are the install instructions for OS X?



#165221 Trying to make a woodchopper program but Im very new to programming

Posted by surferpup on 17 February 2014 - 10:04 PM in Ask a Pro

Bomb Bloke is correct. No matter how it is done, attempting to use invCount(i) = someVariable will never work, as you are attempting to assign the outcome of a function ( a no-no). My example accomplished what I saw as your intent -- which was to use a table.



#165220 How to Exit from a While Loop

Posted by surferpup on 17 February 2014 - 10:01 PM in Tutorials

View Posttheoriginalbit, on 17 February 2014 - 09:33 PM, said:

I feel like I should point out to you that the Tutorials section is intended for ComputerCraft specific tutorials not Lua tutorials, there are lots of tutorials out there already for Lua specific information.

Given the number of times I have seen this question come up in the Ask-a-Pro, I thought it warranted. Also, the Ask-a-Pro Renewal Project requested good tutorials on beginning Lua.

View PostBomb Bloke, on 17 February 2014 - 09:16 PM, said:

There's another method I feel's worth touching on - "return".

True, I mention it in the Lua Basics: Using break to Exit Loops. I just thought that given the way I see the question continue to arise, this pretty much covers it. I will amend to point this out as well.



#165211 Looking for help with a Project.

Posted by surferpup on 17 February 2014 - 07:16 PM in Ask a Pro

Here is how you get energy stored from a redstone energy cell. I assume you have a computer and that the Redstone Energy Cell is on its left side.

energyCell = peripheral.wrap("left")
local energy = energyCell.getEnergyStored()
print ("Energy Stored: "..tostring(energy))

There are several methods available to you when you peripheral.wrap a Redstone Enrgy Cell. They include:
  • setEnergyReceive()
  • setEnergySend()
  • getEnergyReceive()
  • getEnergySend()
  • getActivationEnergy()
  • getLatency()
  • getMinEnergyReceived()
  • getMaxEnergyReceived()
  • getMaxEnergyStored()
  • getEnergyStored()
  • getPowerProvider()
I have no idea what all of the methods do. You can experiment with that yourself. :)

If this was helpful to you, please vote my response up.



#165204 Can Someone help me?

Posted by surferpup on 17 February 2014 - 06:42 PM in Ask a Pro

  • indent your code so it makes sense. Your code is unreadable when you don't -- especially for purposes of a tutorial.
  • use elseif in your chains of if statements.
  • what is your function user.input() -- it does not exist in your code. I assume it is supposed to be a read(). I have changed it to get your code to work.
  • line 123 -- spelled Cursor wrong. Should be term.setCursorPos(1,1)
With that, I can get your code to run. What you are trying to do is beyond me.

Corrected Code:



#165201 Break requiring infinite ends?

Posted by surferpup on 17 February 2014 - 05:57 PM in Ask a Pro

View Postawsmazinggenius, on 14 February 2014 - 09:09 AM, said:

I think you can do this to get a break anywhere (I'm going off the fact that you can do this for returns):
do break end

View PostCometWolf, on 14 February 2014 - 03:53 PM, said:

This works, but what the hell is the point? lol

Actually, do ... break ... end does not work anywhere, only in loops.



#165198 Trying to make a woodchopper program but Im very new to programming

Posted by surferpup on 17 February 2014 - 05:49 PM in Ask a Pro

local invCount = {}
for i = 1,11 do
  invCount[i] = turtle.getItemCount(i)
end

This will store the number of items in slots 1-11 in your turtle inventory into a table named invCount, such that:

invCount[1] = count of items in slot 1
invCount[2] = count of items in slot 2
... and so on.

If a slot is empty, it will return a 0 for the count.



#165197 Skynet database, Missile Defence System. LOAD, Launch on Detection.

Posted by surferpup on 17 February 2014 - 05:17 PM in Ask a Pro

View Postburnin_aura, on 16 February 2014 - 12:48 AM, said:

yeah, i designed the base again. this time a clean world for testing. im still working on it ill get back to you when i know more.

upload the code your using, i might have some errors, now the error lies in the master launch pc where it ignores the signal by not showing indicators of it receiving everything i used the code from that site i uploaded it to.

At this point I am completely confused about the state of your project and what you want me to help you with. I have already told you the changes I made to your code, and I am not sure what your problem is. Do you want me to re-post the exact code that I am using? I have used the exact code you posted with only modifications to the computer IDs and a substitute icbm.launch function -- which I have already documented for you. My code works.

What is it that you need?



#165183 Redirect Program to External Computer+Monitor

Posted by surferpup on 17 February 2014 - 03:21 PM in Ask a Pro

I am told that awsmazinggenius has an API/OS that allows you to basically send and display on remote monitors. AwsmazingOS and GeniusStream are what I think he calls them.



#165176 How to Exit from a While Loop

Posted by surferpup on 17 February 2014 - 01:59 PM in Tutorials

This very short tutorial came about from a recent question by NMetallic123.

As you may be aware, a while loop has the structure:

while < some condition is true > do
  --various statements
end

The logic of a while loop can be stated as:
  • Test if a condition is logically true. If it is:
    • do various statements until you encounter the end of this block (the end statement of the while ... do).
    • Jump back up to the beginning of this block (the while statement)
  • If the condition is not logically true, jump to the end of the while block and continue with the rest of the program.
A while statement will not execute if the condition evaluates as false at the beginning of the loop.

There are two basic approaches to exiting a while loop. -- an exit condition in the while statement itself, or a break condition within the while loop's execution block. Let's try this out using key press events. We will exit if the user presses the "q" key.

Method One: Using an exitCondition within the while statement

local exitConditionVariable = false
while not exitConditionVariable do
  print ("Waiting for a key press...")
  local _,key = os.pullEvent("key")
  if key == keys.q then
	exitConditionVariable = true
  end
  print ("Hello from inside of the while loop")
end
print ("Done")

Method Two: Using an break statement inside of the while loop

The second way is to break out of a while loop when a condition occurs. This does not rely on variables external to the while loop. The break statement will move the program execution counter to one statement past the end statement of the while loop.

while true do -- do this forever
  print ("Waiting for a key press...")
  local _,key = os.pullEvent("key")
  if key == keys.q then
	break -- will exit the while loop
  end
  print ("Hello from inside of the while loop")
end
print ("Done")

A break statement is immediate. If you try these two versions out, you will find that the print statement print ("Hello from inside of the while loop") will execute one more time in the first example because the while loop will continue to finish execution of all the statements in the while loop before the while condition is tested again. In the break example, when the condition is satisfied, the while loop terminates immediately before printing "Hello from inside of the while loop".

Both are legitimate programming techniques which are used depending on what you as the programmer wish to accomplish.

A Note on the use of NOT

Using Return to Exit a While Loop

Additional tutorials that may be helpful if you had this question:




#165169 Probably just a basic question

Posted by surferpup on 17 February 2014 - 01:18 PM in Ask a Pro

There are two basic approaches -- an exit condition in the while statement itself, or a break condition within the while loop's execution block. Tjakka5 gave you an exit condition within the while statement. It relied on a variable external to the scope of the while loop. Let's try this out using key press events. We will exit if the user presses the "q" key.

local exitConditionVariable = false
while not exitConditionVariable do
  print ("Waiting for a key press...")
  local _,key = os.pullEvent("key")
  if key == keys.q then
	exitConditionVariable = true
  end
  print ("Hello from inside of the while loop")
end
print ("Done")

The second way is to break out of a while loop when a condition occurs. This does not rely on variables external to the while loop. The break statement will move the program execution counter to one statement past the end statement of the while loop.

while true do -- do this forever
  print ("Waiting for a key press...")
  local _,key = os.pullEvent("key")
  if key == keys.q then
	break -- will exit the while loop
  end
  print ("Hello from inside of the while loop")
end
print ("Done")

A break statement is immediate. If you try these two versions out, you will find that the print statement print ("Hello from inside of the while loop") will execute one more time in the first example because the while loop will continue to finish execution of all the statements in the while loop before the while condition is tested again. In the break example, when the condition is satisfied, the while loop terminates immediately before printing "Hello from inside of the while loop".

Both are legitimate programming techniques which are used depending on what you as the programmer wish to accomplish.

A Note on the use of NOT



#165166 The Complete Monitor Buttons and Control Tutorial Part III

Posted by surferpup on 17 February 2014 - 12:19 PM in Tutorials

View PostMolinko, on 17 February 2014 - 02:51 AM, said:

If I may make a small suggestion for the initializing of button colors..Just because it can be lengthy as well...
You could change it so when inputting the color instead of colors.red the use can just choose his/her color like so 'white' .

I think that is an excellent suggestion for programming, especially if one is to turn this into an API. However, I can only focus on so many things when writing a tutorial to members and guests each of whom starts with whatever level of expertise they bring to the tutorial. This would be a good subject for a colors tutorial -- tips and tricks on handling colors in your programs.

Some people institute a color table or enumerator in their programs and use the string names of a color (i.e. "white") as key values. Others write out the full colors API call. Some would find your suggestion useful. I think what I will do is point out -- through this reply -- that you have an excellent idea, and I certainly encourage people to give your idea a try as they develop their skills in Lua. Thank you for the comment.



#165123 The Complete Monitor Buttons and Control Tutorial Part II

Posted by surferpup on 17 February 2014 - 12:20 AM in Tutorials

Part III posted today here.



#165122 The Complete Monitor Buttons and Control Tutorial Part I

Posted by surferpup on 17 February 2014 - 12:20 AM in Tutorials

Part III posted today here.



#165119 Ask A Pro Renewal Project (and How You Can Help!)

Posted by surferpup on 16 February 2014 - 11:14 PM in Ask a Pro

Just added Part III -- Monitor Touch and Other Events of the Complete Monitor Buttons and Control Tutorial.