Welcome! Log In Create A New Profile

Advanced

I'm sitting at the TV with the button thingy. Now what?

Posted by Anonymous User 
Anonymous User
I'm sitting at the TV with the button thingy. Now what?
December 11, 2007 07:13PM
I am hoping this title will help you understand just how much I don't understand when it comes to programming. I was expecting a download here button and then everything would work. I have a feeling this will not be the case. Now one of the titles in this section of the forum says "Live CD," and the only thing I can think of is the "Red Hot Chile Peppers." Are they into Repraping now?

Anyway if you think you can help edjumicate me. Please point me to the correct thread.

Thanks,
Jim
Re: I'm sitting at the TV with the button thingy. Now what?
December 11, 2007 08:57PM
What type of computer do you use? Linux, Mac, Windows?

Have any experience compiling Java programs?

Know how to download from subversion, SVN?

To develop on the project, I assume most are using Linux. The LiveCD is a bootable cd-rom you can download to start Linux up on your computer without having to install Linux on your hard disk.

Here is where most start on Linux:
[reprap.org]
Anonymous User
Re: I'm sitting at the TV with the button thingy. Now what?
December 11, 2007 09:48PM
RoundSparrow Wrote:
-------------------------------------------------------
> What type of computer do you use? Linux, Mac,
> Windows?

Windows XP
>
> Have any experience compiling Java programs?

I drink coffee if that is what your asking. No.
>
> Know how to download from subversion, SVN?

I don't know what subversion is.
>
> To develop on the project, I assume most are using
> Linux. The LiveCD is a bootable cd-rom you can
> download to start Linux up on your computer
> without having to install Linux on your hard
> disk.

I almost understood you that time. Since it is a CD, where di I get it or are you saying it is not a CD and I can download it?
>
> Here is where most start on Linux:
> [reprap.org]
> e2

I'll look into this.
Thanks,
Jim
Re: I'm sitting at the TV with the button thingy. Now what?
December 12, 2007 12:21AM
We should have the Live CD on bits from bytes for download tomorrow/ next few days if that helps, it will be the first thing in Software section, I'm with you on Java etc except I only drink Tea!


Ian
[www.bitsfrombytes.com]
Re: I'm sitting at the TV with the button thingy. Now what?
December 12, 2007 01:23AM
Cheap! Wrote:
> > What type of computer do you use? Linux, Mac,
> > Windows?
>
> Windows XP


No real reason you have to learn Linux right from the get go. RepRap project is trying to support Windows too.

Review this:
[reprap.org]

However, the newest RepRap software isn't as easy to download, you have to download the latest version using developer tools (Subversion client software).


> > Have any experience compiling Java programs?
>
> I drink coffee if that is what your asking. No.


The RepRapMicrosoftSoftware wiki page I posted explains you need to setup Java development environment (JDK). Start there.


> > Know how to download from subversion, SVN?
>
> I don't know what subversion is.


Subversion is a tool software developers (and others) use to manage project files. For your purposes, it is a tool to download files. The windows client I suggest can be downloaded and installed here:

[tortoisesvn.tigris.org]

There are plenty of tutorials on the internet on working with the basics. You don't have to use the command line, you can use graphical interface with Windows. Where to connect to is explained here:

[reprap.org]



> >
> > To develop on the project, I assume most are
> using
> > Linux. The LiveCD is a bootable cd-rom you can
> > download to start Linux up on your computer
> > without having to install Linux on your hard
> > disk.
>
> I almost understood you that time. Since it is a
> CD, where di I get it or are you saying it is not
> a CD and I can download it?

You download the CD image called an "ISO" file and burn it with a cd-recorder on your computer. This most common way to get any linux these days.


// Stephen Gutknecht
Re: I'm sitting at the TV with the button thingy. Now what?
December 12, 2007 01:34PM
Its for persons just like yourself that I created the LiveCD so you'll make a good crash-test dummy, congratulations!

The whole point of a LiveCD is that its something you plug into your computer, boot off it and it just works. If you click the install icon it will put it all on your computer but otherwise when you take the cd out and reboot everything will be back to normal.

I've just installed the LiveCD on my parents new computer but I'd suggest you don't install it unless you actually want to get into Linux as well as Reprap.

From your post it sounds like you aren't interested in the programming side of things. Thats cool, find something that interests you and get involved. My day job is making weird pieces of software play nice with each other which is why I have the skillset and motivation to create the LiveCD.

If you're interested in the concepts and the actual building of the thing then just boot off the CD anytime you want to use the reprap controller program or design your own objects with Art Of Illusion (if you're going to design anything fancy in AoI running it from the LiveCD you'll want lots of RAM). Add in a USB keydrive to save anything to and you don't have to change your current computer setup at all unless you want to.

Currently the LiveCD doesn't include some of the other developer tools needed to design new circuit boards etc. but that will come with time.

Probably the best thing to do is wait a few days till the LiveCD is up on the bitsfrombytes.com website (unless you're comfortable enough with file sharing software that you feel up to downloading a torrent version of the LiveCD) and spend the time looking over the blogs, wikis, forums etc. of all your fellow reprappers and figure out where you want to go and give us feedback on how we can make the journey smoother.

Eventually I hope the LiveCD will be phased out in the main except as a known good state against which to test any issues people are having but currently its also a good way to bundle the software as its all a bit of a mess at the moment.

Everybody seems more concerned with getting something working before they tidy it up and make it easy for mere mortals to use. Which makes sense I suppose. Theres not much point in having something that everyone can use if it doesn't do anything properly. However, if you mention something that trips you up it (normally) gets noticed and fixed for the next person.
How my heart goes out to Cheap.

I love the idea of RepRap, it is the exact complement to the CNC-machining, which I have been doing from grass roots for some time. But, and it's a big but, your explanations-and-all come across to me as somewhat aimed at Java-familiar, Linux experts. Which I am not.

Reading the section on the Motor-controller, testing appears to be something along the lines of 'poke this, -v -t -w -xyz...' One can only assume the guy who wrote it knew his dooberry inside out but I'm blowed if it made an ounce of sense to me.

Of course it would be better if I had the program running: I downloaded all the bits the other week while at my son's house. (He is a programmer, makes his living at it even) There was now way on earth he could get the dratted thing to work/run/execute so after a few hours we gave up.

Maybe I could build the electronics boards while waiting for an improved release of the windoze version? I could if there were any circuit diagrams: Kikad track layouts, my friends, are Not circuit diagrams.

To be truly open source, surely you need to open your doors somewhat and let poor old Joe Public come in and give him enough to begin to understand how the thing works. He might even have some useful ideas to offer.

Sorry to 'rant on' but like, I suspect, Cheap, I am terribly frustrated at being unable to get started.

Regards,
Geoff Probert
(a British expat in Taiwan)
Re: I'm sitting at the TV with the button thingy. Now what?
December 20, 2007 10:55AM
Geoff,
I am working on making a windows installer.. Your last post is an inspiration for myself to get one working that is supper easy which has been on Zach's and my list of things that need to get done.. as for now we do have a live cd you can download that will boot from your cd rom drive on your computer that is all setup except for the serial settings there is little to set up.. Or if you want to install ubuntu linux on a pc then Johnathan has made a script that will set up and install everything you need to run the software..

what ever wasy you take I can help you get started and provide a direction...

Bruce Wattendorf
Re: I'm sitting at the TV with the button thingy. Now what?
December 20, 2007 11:21AM
I got the host program to work in Windows. Damned if I can remember everything I needed to do to get it to work, though. I should've documented it.

I remember following the instructions here: [reprap.org] ...but running into problems with the 3D and serial libraries.

I've also noticed that I have to fiddle with it every time I get a new Java runtime, copying a bunch of files into the new "ext" folder.
Re: I'm sitting at the TV with the button thingy. Now what?
December 20, 2007 01:35PM
Geoff,
The project IS completely open source. All the source code, Kikad schematics, AOI 3D models, etc. are in the Sourceforge SVN repository here: [reprap.svn.sourceforge.net]


[www.hydraraptor.blogspot.com]
Easier installation is on the way...
December 25, 2007 01:12AM
brucew wrote:

> I am working on making a windows installer..

Good! Using NSIS? I've been meaning to look at that, but not got to it.
If you want to work together on the Windows installer stuff, let me know.

> Or if you want to install ubuntu linux on a pc then
> Johnathan has made a script that will set up and
> install everything you need to run the software..

That was intended more for a host code development setup than for beginners use, but yes, it could be used that way if necessary!

I'm also working on .deb package files, which will make Linux installs very easy.

Today for the first time I was able to do a fresh Linux install, add a one line text file pointing to a little test repository (where I had put my .deb files), and then do just one command:

apt-get install reprap-host

and ... it correctly installed everything needed to run the Reprap host code... Java, the libs, and the reprap code. It even made an appropriate menu entry for it, complete with pretty little icon! Not bad.

More testing and considerable cleanup work is needed before I can release this, but it's looking good so far. Obviously, one day, these .deb packages can be incorporated into LiveCD setups, too.

Also, as a possibly-useful alternate way forward, WUBI is a very simple way to add Linux to a Windows machine. For some folks, that could be a good bridge between the two worlds. download and run a smallish .exe, type in a desired username and password, click Install, it downloads the ISO it needs and creates virtual disks etc etc. Reboot, and you get a little Windows/Ubuntu menu... select Ubuntu and you boot into Linux! See [wubi-installer.org] . I'm typing this from just such a test installation.

Lastly, as I am becoming well known for saying: Reprap is (still) a research project! Expecting everything to "just work" and "be friendly for total beginners" at this stage is probably going to lead to disappointment and frustration. Making this fact generally clearer to all would, IMO, help reduce the kind of frustrated posts like Geoff's. That doesn't mean we shouldn't work on easier installs (quite the reverse -- I'm working on just that!)... it means we should set expectations better for newcomers.

My sense is that there are three general areas of knowledge involved in this project: software, electronics, and mechanics. If you have some decent background experience in any two of the three, or a LOT of background in one of the three, you'll probably manage fine. If you lack background in any of them... please wait a few months before getting seriously involved, just read and learn and ask questions for now.

Jonathan



Jonathan
Re: Easier installation is on the way...
December 25, 2007 10:19AM
Jonathan,
I have been looking into using cygwin that is what the Adruino group has been using for their system. But I think NSIS might be a easier solution. since we have the software working on Windows already it is just a little work..

I would love to work together on this..

your .deb package sounds great and i think it will be great to get Linux install easy then to move on I will start to look into NSIS for Windows..


Happy Holidays

Bruce W
Re: I'm sitting at the TV with the button thingy. Now what?
December 28, 2007 06:45PM
Jonathan,
Do you know of a way to find the JRE folder in windows from NSIS and then install the rxtx files that is where I am left trying to get to work I also wonder if it is possible to install the jre files to the java program folder instead of running the java jre installer. if that is possable then we could install the files with the java 3d and rxtx files added..

Bruce Wattendorf
Re: I'm sitting at the TV with the button thingy. Now what?
December 28, 2007 07:05PM
How about using [launch4j.sourceforge.net]
or [jsmooth.sourceforge.net]

and create a .exe file the only issue i see is the java 3d and rxtx again but i think launch4j might be able to do this..

Bruce
Re: I'm sitting at the TV with the button thingy. Now what?
December 28, 2007 07:30PM
if you could include the java3d and rxtx inside the actual exe somehow that would be amazing!!
Re: I'm sitting at the TV with the button thingy. Now what?
December 29, 2007 12:05PM
Bruce: I know how to arrange that we always install the libs at a fixed location,
I've done it in the Linux deb packages. We should go the same way for Windows IMO, it avoids this "find out the JAVA_HOME dir" issue, which is awkward because it changes when you update Java, requiring a reinstall of the libs if you install them under it!

I may have an Windows-based setup that demonstrates my newer approach later today, stay tuned :-) It will make Windows packaging easier, if it works.

Zach: Yes, for Windows the idea is a single .exe that installs the Java3D, j3d.org and reprap host code in one go. It's looking very doable, especially if my changes for the deb packaging in Linux "translate" smoothly to Windows, which I think they should, I just haven't tested that yet.

Jonathan



Jonathan
Re: I'm sitting at the TV with the button thingy. Now what?
December 29, 2007 11:06PM
sweeet! this is fantastic news guys.

is there any way we can have that fixed location in the install directory itself? ie, reprap installs itself into reprap-1.0-foo and then the libraries are located in reprap-1.0-foo/lib/rxtx and reprap-1.0-foo/lib/java3d.

the main reason being that since we include the libraries, we'll be in charge of doing upgrades to the libraries, and if someone installs reprap 0.9 which has version X of rxtx and then they also install reprap 1.0 which has version Y of rxtx, then they will both use the proper versions of rxtx.

this would be really awesome because then we know for sure that they are using the proper versions of the library every single time, and it makes it so much easier for us as developers because we can wait to upgrade the libraries ourself until we *know* they work with RepRap.

cheers!
Re: I'm sitting at the TV with the button thingy. Now what?
December 29, 2007 11:53PM
I fully agree that would be killer.

Bruce
Handling library backwards incompatibility
December 30, 2007 12:43AM
ZachHoeken Wrote:

> is there any way we can have that fixed location
> in the install directory itself?

?? It seems to me this makes a complete mockery of
the whole idea of having shared libraries?? No-one
shares anything, every program carries a copy of
every little piece of library code it needs with it?
Might as well just statically link them all in,
if you're going to do that -- copy all the code
into your tree and make one large .jar file!!

I know Java's approach to libraries seems a bit weak,
but I can't think of another modern language base that
generally does what you are suggesting; Perl? Python?
Can you show me an example of a well known current
programming approach that commonly installs libraries
the way you are suggesting?

Or, in the 2+ years of this project, have any of
the libraries it uses broken backwards compatibility?
And if so, how did they handle the transition?

I think when we switched from javax.comm to gnu,io
(from one set of comms libs to another) it just took
editing 3 lines in one file, and both libs happily
coexisted on our machines (in the same directory)
if we wanted them to.

Are you sure your approach solves a real issue?

> the main reason being that since we include the
> libraries, we'll be in charge of doing upgrades to
> the libraries, and if someone installs reprap 0.9
> which has version X of rxtx and then they also
> install reprap 1.0 which has version Y of rxtx,
> then they will both use the proper versions of
> rxtx.

In general, libraries don't change their defined
interface so as to break backwards compatibility;
when they do, they do so in a way that allows new
and old versions to coexist. How does your proposal
add anything useful in this situation?

If RXTX changed incompatibly (which is very unlikely
since it implements a defined existing interface!),
the conventional approach would surely be to install
the new version as (for example) librxtxSerial2.dll
and have the corresponding RXTXComm2.jar load that.
Then apps needing the new library put that .jar in
their classpath.

That's just the boring normal approach to dealing
with the (unusual and infrequent) need to break
backward compatibility in a library API, isn't it?

(Aside: In the Java world, you could also handle it
by defining the new incompatible version to have
a different hierarchy, say gnu.newio.* rather than
gnu.io.*, then change your import statement if you
need the new version?)

> this would be really awesome because then we know
> for sure that they are using the proper versions
> of the library every single time,

See above, this is already handled by the normal
approach to naming libraries, isn't it? I could
make this clearer by explicitly adding each .jar
file we care about to the classpath, I suppose,
rather than using /*, if that would help...

> and it makes it
> so much easier for us as developers because we can
> wait to upgrade the libraries ourself until we
> *know* they work with RepRap.

Since (at least on Windows) we're defining the location
ourselves for now, we're the only people updating it
anyway, so we can choose when to switch to new versions
of anything that we have put there. Even without that,
we switch by deliberately linking to a different .jar
file from our script... when we choose to do so.

SUMMARY:

We *could* (I think) do as you suggest, but I think it
is counter to everything I have seen about library use
in the last couple of decades, and I'm not sure the
benefits you propose are real. Maybe I'm just too
Linuxian and insufficiently Windowsian to understand?

If you can show me a well-known cross-platform application
that does this with all its libraries, that might help
me "get it".

Jonathan



Jonathan
Re: I'm sitting at the TV with the button thingy. Now what?
December 30, 2007 03:07PM
personally i think that shared libraries are a relic of the past and something that causes much more pain than its worth. for example: the biggest problems you guys seem to be facing currently are where to install the libraries, worrying about them getting overwritten, and other things like that. as for perl, python, php... i've had my share of hair pulling trying to get libraries installed just to run a simple script. nice idea, poor implementation. you know what the road to hell is paved with dont you... i firmly believe its the wrong approach.

shared libraries come from an era when you cant include every bit of code you need because you didnt have the space. we now live in an era where a few extra megs of data is hardly worth noticing.

including all the extra non-standard java libraries we need means that everything is vastly simplified. i know you are very anal about certain things, but frankly: who cares? lets make this thing as easy as possible and if that means lumping all the libraries into one .jar file, then lets do it. stop looking at this from the perspective of a developer and look at it from the perspective of a user. whats the easiest way for them? they download 1 file, and run it. thats the easiest way.

as for a major project, well i am not familiar with the packaging methods of major projects, but i know that Arduino includes rxtx in their distribution, and processing includes tens or hundreds of libraries in their distribution (both major java apps). of course i'm sure you'll find something wrong with that, but those programs are some of the easiest programming oriented programs i've ever encountered. that ease of use is also one of the biggest reasons they are so popular... it just works.

part of making things *just work* is keeping control over things. when you use shared libraries, you lose control over which libraries are being used. you no longer know *exactly* which libraries are being used and that causes inconstancies to pop up. sure, RxTx wont intentionally break their interface.... but most bugs arent intentional. sometimes people make mistakes and if someone upgrades to a new rxtx version and it breaks things then they'll come crying to us. if we force them to use our version when they run RepRap, we'll never have that problem, EVER.

as for when have we had problems in RepRap with shared libraries? do you remember the problems we've had with telling people to install Java3D? its a nightmare. how about we have 1 smart person figure out the best way to install it, include that in a package that just works. yes, reprap is hard. but we dont need to make it hard when we can make it easy. it does a damn good job of being hard in the every day parts of operation.
Re: I'm sitting at the TV with the button thingy. Now what?
December 30, 2007 10:39PM
Amen Zach, Amen


Jay
Handling library backwards incompatibility
December 31, 2007 02:11PM
I'm less willing that you seem to be to throw away decades of software
engineering wisdom. I don't think (?) Java3D install issues relate to
having multiple copies of a library around... though I think whatever
that issue was was pretty much dealt with before I joined the project,
so you may well have better info on the details than I do.

The "where do we put the libraries" issue is (as far as I can see) a
Java-unique problem because Java doesn't define an absolute (i.e. a
non-JAVA_HOME-relative) library path that it will always search. Since
I'm more familiar with other languages, it's not all that surprising
that this is something requiring thought in dealing with, and I've
shared my questions and ideas with the team in the process of dealing
with it, rather than going solo. That doesn't make it a major obstacle,
nor a reason to avoid shared libraries.

> how about we have 1 smart person figure out the best way to install it,
> include that in a package that just works.

Well, not to claim that "I'm smart", but that *is* exactly what I am
trying to do, with Bruce (so two smart people?)! This discussion is about
an internal detail of that package, not about whether to do it at all!

I'm not really convinced by an example of apps that are niche, and from
a hardware community rather than from the mainstream open source software
community, personally. If the package I (and Bruce) end up with is a
single .exe that installs the Reprap host code and the three libraries (Java3D, j3d.org and RXTX) that it needs, and it "just works", then that will IMO be a *major* improvement over what we have now, no matter where it installs the libraries. I hope you agree with that assessment.

If others want to take that work and further "enhance" it based on their own
ideas about how bad libraries are, or other things, that's fine with me, the
installer will of course be GPLed or LGPLed just like our code. But at the
moment, I don't see value in an untried approach on the basis that you think
shared libraries are now somehow passe.

BTW, I have tested my "put the libs in %programfiles%\Reprap" idea here
yesterday, and it appears to work. Next logical step is a Windows installer
that works that way. Then a few people on the team need to test it
for us. Then, once we check we meet all relevant licencing requirements, we
can release it.

Jonathan



Jonathan
Re: Handling library backwards incompatibility
December 31, 2007 04:10PM
I have found in my research on this subject that Arduino has at least 5 libraries and they have changed from rev. to rev. of software. That is the reason I believe they use cgywin without it it would be a real pain to install.

We use 2 and one is java 3d which has a .exe installer that know where to install the libraries.
In looking at the Adruino site they have to use a Linux environment to run the software where as we know it will run in Linux, Windows and Os X

The Reprap software is just a little bit of a pain to install But it does work why reinvent the wheel and just use NIS like we know works and then get to the important stuff like printing and dialing in our machines..
As for the installer installing the libraries in the correct JVM is somewhat an issue we have now. What I have found is that in NIS we can write a script that will find the JVM that is now the "main JVM" if one is installed and then install the libraries there. Then if some body upgraded the JVM and is having trouble then they would have to reinstall the reprap software... which would check for the required libraries and then reinstall if not in the most current JVM..

I think this would be easier unless somebody is willing to or has knowledge of doing something better I have looked at Cygwin and there are not a lot of instructions and from looking at forums the Java people do not think Java is made for Cygwin..

One other option is to make the .jar file and libiaries into a .exe file there are differnt software for this. But I think we just need an installer our software works it is just a pain to install... and NIS which since I have not mentioned what NIS is (nis is an open source windows package install creation software)

oh and Jonathan I have found this on the NIS site it is a script to find the JVM I do not think it will find the current JVM ( I have not had the chance to run a test to see what it is finding in the registry)

# name the installer
outFile "installer.exe"

#default section start
section

# read the value from the registry into the $0 register
readRegStr $0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion

# print the results in a popup message box
messageBox MB_OK "version: $0"

# default section end
sectionEnd


Sorry I had to add the last script.

so in closing I think we are on the right track... but would like to commit before we spend a lot of time on this path..

Bruce Wattendorf
Re: Handling library backwards incompatibility
December 31, 2007 04:31PM
brucew wrote:

> The Reprap software is just a little bit of a pain
> to install But it does work why reinvent the wheel
> and just use NIS like we know works and then get
> to the important stuff like printing and dialing
> in our machines..

Yes. NSIS, not NIS :-)

> As for the installer installing the libraries in
> the correct JVM is somewhat an issue we have now.
> What I have found is that in NIS we can write a
> script that will find the JVM ...

I've just tested a way to avoid all that. The problem with doing
JVM location detection is that that location *changes* when the
user then updates their JVM after seeing a popup from the Sun Java
updater... and then the updated version can't see the libraries
installed under the older JVM. So that seems to me to create a
medium term support issue we should try to avoid... and I think
we can, and it will mean the Linux and Windows installs are
somewhat similar in approach, which is likely to be helpful
for anyone trying to support users on both platforms.

I hope to send you a demo .nsi file with my approach implemented
in it very soon, hopefully today or tomorrow...

> ... I have looked at Cygwin and there are not a
> lot of instructions and from looking at forums the
> Java people do not think Java is made for Cygwin..

No, that's not a good mix. We should avoid Cygwin for end
users; Reprap firmware developers who can't (or choose not
to) use Linux *may* use Cygwin for that aspect of things, but
that's completely separate from the host software installation.

> and NIS which since I have not
> mentioned what NIS is (nis is an open source
> windows package install creation software)

NSIS :-) NIS is Network Information Service, the (mostly
Unix-oriented) "yellow pages" directory system, a totally
different piece of software :-)

> # read the value from the registry into the $0 register
> readRegStr $0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion

Yes, but it's even better if we don't need it at all, and
can continue to "just work" even if someone uninstalls
(for example) Sun Java 5 and installs Java 6u3 in its
place. Or updates from 6u2 to 6u3, which may be even more
common a situation. Overall, I suspect this kind of change
is likely to be substantially more common than kind of
library version changes that break things and are done
(somehow) behind our back.

> so in closing I think we are on the right track...
> but would like to commit before we spend a lot of
> time on this path..

I hope a demo .nsi (based on your original 0.3) from me can provide
some level of "proof of concept" of what I am doing, then we can go
from there to make it prettier, add source code installation as an
option, etc. Like you, I think NSIS is the right general approach
to be taking for this installer. No need for Cygwin or for trying
to wrap the Java code into a .exe file as far as I can see.

Jonathan



Jonathan
Sorry, only registered users may post in this forum.

Click here to login