LTSP and NX

I am having a tough time getting an answer so don't feel obliged to answer. On various forums and telephone calls I am getting nowhere and now I am appealing to the forum for understanding and guidance.
Linux and Unix serves X desktops in various ways to remote (non console users). Over the last few years there has been increase emphasis to use Linux in exactly the same way Microsoft does via the Terminal Server feature of Microsoft's Server Product. When turn on in Microsoft, ANY user with XP can open the Remote Desktop client and login where the user gets a "desktop" on that server. And ALL useful work, like running Open Office, for that user is performed on the server (the users machine merely acts like a "dumb" terminal)
In Linux, XDMCP allows a Linux box to act as a server where LAN clients can get a desktop using X on their machines and they, too, get a desktop to do useful work in, like running Open Office.
I am wondering if anyone knows of or has heard of a MAC Server user doing a similar setup using MAC Server to accomodate users this same way. (Heavens, I hope I not treading on something that MAC strictly forbids, because I CANNOT find ANY literature on this; yet it seems so straight-forward.)
If anyone knows of something or knows of a project or ...
Thanks in advance...George

While not as intituative is you can use the OSXVnc product from redstonesoftware.com (http://www.redstonesoftware.com/vnc.html) and they are a standard implementation of the VNC protocol with some wonderfully Mac slants.
Upon instllation and launching any Fast-User switching done can remotely use that session. So it would act close to your description of a Terminal Server.
However it has some VERY short short-comings. First, you may have noticed that I said that once you have fast-user switched and that is true. If you first cannot login to the console (be physically at the Mac) then this all goes to pot. I have used it this way to share the server with co-workers for over a year now and it works just about perfectly with this caveat. What I have done is setup 2 VNC servers, one on the default port and one that each session will get to use. We connect via the default, fast switch into our user then disconnect and connect to our session. If you cannot rus IMPLICITLY your user/users then this is NOT an option as their VNC does not tell you when someone is connected etc (not yet, anyhow).
And now to the really bad news. I don't think there is anything that comes close to what you would like to see. I do agree and desire what you are thinking of but it does not exist (that I can tell) just yet.
Peter
PowerMac G5 Dual 2.5Ghz   Mac OS X (10.4.5)   Server

Similar Messages

  • LabVIEW license for terminal servers and thin clients (e.g. LTSP)

    Does NI plan to provide a license agreement for terminal servers and thin
    clients?
    I've been told to purchase a multi-seat license. That doesn't make much
    sense since the thin clients won't be accessing DAQ hardware. They're
    just used for developing the LV source.
    Comments/suggestions?

    On Thu, 04 Nov 2004 13:43:58 -0600, jbrohan wrote:
    > As far as I know it's the capability to edit the source code that NI has
    Yes, this is a very good point. Quite a unique situation when compared to
    text based languages. Keep in mind I certainly don't mind paying for that
    but I see no need to pay for much of the other features - like running it.
    This is certainly one of the other features you pay for with LV. Since
    we never plan to run the app on the thin client, why pay for that
    feature?
    What we do is crank out source code on the thin clients. We then send the
    source code to this wireless mobile DAQ station running WindowsXP. From
    there we can roll it up to our clients' target systems. That machine is
    used for debugging then compilin
    g so it has its own LV Prof Dev license
    installed on it. Also, it can be operated locally or remotely via remote
    desktop (one user at a time).
    I know it may sound strange but it works great. And as the NI Software
    License Agreement(NISLA) specifies, we have separate licenses on all
    machines that load LV into local memory. The thin clients load nothing
    into local memory, hence no need for a separate license.
    > I express myself clearly in the hope of guidance. I am a one man shop
    Yes, this is understandable. Installing one license on multiple machines
    is a big no-no. However, that is not what I'm trying to do. Take a peek
    at the "Grant of License" and "Single Seat License" sections of the NISLA.
    > You say "That doesn't make much sense since ..." One of my clients has a
    Ha! How about this scenario: As wireless hardware (bluetooth, wifi)
    becomes more common, perhaps NI will have a peer scanner on all PCs with
    LV installed. That way if you get within 100 feet of a P
    C with the same
    LV serial number, you get locked out and it sends a small message to the
    NI batcave.
    Thanks for the response. I'm hoping NI chimes in soon.

  • How to upgrade to latest version on Ubuntu 10.10 LTSP server

    I run Ubuntu 10.10 LTSP server/client network and DO NOT want to upgrade Ubuntu... too much trouble, nobody can guarantee it will not hammer my LTSP install and besides, Unity is awful. I need newer Firefox due to some frequently used web pages, so I need an install procedure that will not hammer anything. It's a mission critical user environment. If anybody has positive experience with Firefox upgrade in similar environment please advise.

    Hello InterpreDemon,
    Thank you for contacting Mozilla Support. Since this is an out of date version of Ubuntu it may be hard to get assistance with this question. Have you attempted to install the current Linux version of Firefox?
    https://help.ubuntu.com/community/FirefoxNewVersion/MozillaBuilds
    Please let us know if you're successful.
    Cheers,
    Patrick

  • LTSP on Solaris 10: Kindly help

    Hi all,
    Is LTSP configuration possible on Solaris10? I have many old desktop machines which i would to use it as dumb terminals and configure the solaris server for LTSP. I have tested LTSP on Ubuntu 8.04 and it works.
    Kindly help
    Avinash

    I stumbled down the LTSP / dedicated X terminal route for years on Solaris, then Mandrake, Ubuntu and back to Solaris.
    In the end, I settled on Sun Ray appliances for a few reasons.
    * Lower per unit cost than LTSP/X machines. I picked up a batch of Sun Ray DTU appliaces for $6 each.
    * Much less bandwidth needed: no boot image and better image compression.
    * Automatic sound support. No configuration voodoo needed.
    * Much better responsiveness. It feels like a local machine for anything but games, video, etc.
    * Lower maintenance. Once set up on the server, just plug in and go. Zero appliance configuration.
    * Stupid simple multihead support.
    * Persistent mobile sessions. No need to log in and out.
    You may want to look at using Sun Ray terminals instead of old PC boxes.

  • Slow Swing on LTSP

    hi,
    I have a swing application OK.
    But on LTSP (http://www.ltsp.org) / Gnome it is very slow.
    Is there an explication / solution ?
    Thanks.

    I have successfully run a medium-size (20,000 lines) application on a Pentium 100 MHz / 48 MB RAM / Windows 98 system. It took five minutes to load and was slightly sluggish after beginning to run, but it did run. I'd suggest setting your minimum requirements slightly higher however. :)

  • Sun Ray Software 5 and Sun Ray Soft Client 1.0 Early Access 1 (EA1) is live

    Sun Ray Software 5 and Sun Ray Soft Client 1.0 Early Access 1 (EA1) is live!
    o Sun Ray Software 5 and Sun Ray Soft Client 1.0 EA1 download link
    -> https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=SRS-5-EA1-SP-LX-G-B@CDS-CDS_SMI] .
    o Supporting documentation is available on the [Sun Ray Software Information Center|http://wikis.sun.com/display/SRS5/Home] providing installation, configuration and administration in a topic-based, wiki format.
    o Technical support is available at [Sun Ray Online Forum|http://forums.sun.com/forum.jspa?forumID=875] .
    o [Feedback Survey|http://www.surveymonkey.com/s.aspx?sm=RmabpiADfPy90BMFIJQPXQ_3d_3d]
    -Sunil

    Anyone know when SRSS5 (4.2?) is coming out? Funny I came across SRSS5 today, as just this morning we began research in what it would take to move to LTSP. We have entire departments running off SRSS4.1 on RHEL5. This has been a pretty good solution but Sun insists on keeping SRSS for Linux a poor product when compared to it on Solaris. Things like sound, USB thumb drives, etc are implemented TERRIBLY on their linux software (if at all).
    I'd be willing to give SRSS5 a shot if it became available soon. Even a time frame (like end of 2009, spring 2010, etc) would help.

  • A problem with Threads and loops.

    Hi, I have some code that needs to be constantly running, like while(true)
          //code here
    }However, the code just checks to see if the user has input anything (and then if the user has, it goes to do some other stuff) so I don't need it constantly running and hogging up 98% of the CPU. So I made my class (which has the method that needs to be looped, call it ClassA) implement Runnable. Then I just added the method which needed to be looped into the public void run()
    I have another class which creates an instance of the above class (call it ClassB), and the main(String[] args) is in there.
    public static void main(String[] args)
              ClassA test = new ClassA();
              Thread thread = new Thread(test.getInstanceOfClassA());
              thread.start();
              while(true)
                           //I do not know what to put here
                   try
                        thread.sleep(100);
                   catch(InterruptedException iex)
         }However, the thread only calls run() once,(duh...) but I can't think of away to get it to run - sleep - run -sleep forever. Can someone help me?

    Hi, I have some code that needs to be constantly
    running, like while(true)
    //code here
    }However, the code just checks to see if the user has
    input anything (and then if the user has, it goes to
    do some other stuff) so I don't need it constantly
    running and hogging up 98% of the CPU. Where does the user input come from. Are you reading from an InputStream? If so, then your loop will be blocked anyway when reading from the InputStream until data is available. During that time, the loop will not consume processor cycles.
    public static void main(String[] args)
              ClassA test = new ClassA();
    Thread thread = new Thread(test.getInstanceOfClassA());I have never seen this idiom. If ClassA instanceof Runnable, you simply write new Thread(test).
              thread.start();
              while(true)
    //I do not know what to put
    do not know what to put here
                   try
                        thread.sleep(100);
                   catch(InterruptedException iex)
         }However, the thread only calls run() once,(duh...)Yeah, why would you want to call it more than once given that you have an infinite loop in ClassA.run()?
    Harald.
    Java Text Crunching: http://www.ebi.ac.uk/Rebholz-srv/whatizit/software

  • A problem with Threads and MMapi

    I am tring to execute a class based on Game canvas.
    The problem begin when I try to Play both a MIDI tone and to run an infinit Thread loop.
    The MIDI tone "Stammers".
    How to over come the problem?
    Thanks in advance
    Kobi
    See Code example below:
    import java.io.IOException;
    import java.io.InputStream;
    import javax.microedition.lcdui.Graphics;
    import javax.microedition.lcdui.Image;
    import javax.microedition.lcdui.game.GameCanvas;
    import javax.microedition.media.Manager;
    import javax.microedition.media.MediaException;
    import javax.microedition.media.Player;
    public class MainScreenCanvas extends GameCanvas implements Runnable {
         private MainMIDlet parent;
         private boolean mTrucking = false;
         Image imgBackgound = null;
         int imgBackgoundX = 0, imgBackgoundY = 0;
         Player player;
         public MainScreenCanvas(MainMIDlet parent)
              super(true);
              this.parent = parent;
              try
                   imgBackgound = Image.createImage("/images/area03_bkg0.png");
                   imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
                   imgBackgoundY = this.getHeight() - imgBackgound.getHeight();
              catch(Exception e)
                   System.out.println(e.getMessage());
          * starts thread
         public void start()
              mTrucking = true;
              Thread t = new Thread(this);
              t.start();
          * stops thread
         public void stop()
              mTrucking = false;
         public void play()
              try
                   InputStream is = getClass().getResourceAsStream("/sounds/scale.mid");
                   player = Manager.createPlayer(is, "audio/midi");
                   player.setLoopCount(-1);
                   player.prefetch();
                   player.start();
              catch(Exception e)
                   System.out.println(e.getMessage());
         public void run()
              Graphics g = getGraphics();
              play();
              while (true)
                   tick();
                   input();
                   render(g);
          * responsible for object movements
         private void tick()
          * response to key input
         private void input()
              int keyStates = getKeyStates();
              if ((keyStates & LEFT_PRESSED) != 0)
                   imgBackgoundX++;
                   if (imgBackgoundX > 0)
                        imgBackgoundX = 0;
              if ((keyStates & RIGHT_PRESSED) != 0)
                   imgBackgoundX--;
                   if (imgBackgoundX < this.getWidth() - imgBackgound.getWidth())
                        imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
          * Responsible for the drawing
          * @param g
         private void render(Graphics g)
              g.drawImage(imgBackgound, imgBackgoundX, imgBackgoundY, Graphics.TOP | Graphics.LEFT);
              this.flushGraphics();
    }

    You can also try to provide a greater Priority to your player thread so that it gains the CPU time when ever it needs it and don't harm the playback.
    However a loop in a Thread and that to an infinite loop is one kind of very bad programming, 'cuz the loop eats up most of your CPU time which in turn adds up more delays of the execution of other tasks (just as in your case it is the playback). By witting codes bit efficiently and planning out the architectural execution flow of the app before start writing the code helps solve these kind of issues.
    You can go through [this simple tutorial|http://oreilly.com/catalog/expjava/excerpt/index.html] about Basics of Java and Threads to know more about threads.
    Regds,
    SD
    N.B. And yes there are more articles and tutorials available but much of them targets the Java SE / EE, but if you want to read them here is [another great one straight from SUN|http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html] .
    Edited by: find_suvro@SDN on 7 Nov, 2008 12:00 PM

  • Problem with Threads and a static variable

    I have a problem with the code below. I am yet to make sure that I understand the problem. Correct me if I am wrong please.
    Code functionality:
    A timer calls SetState every second. It sets the state and sets boolean variable "changed" to true. Then notifies a main process thread to check if the state changed to send a message.
    The problem as far I understand is:
    Assume the timer Thread calls SetState twice before the main process Thread runs. As a result, "changed" is set to true twice. However, since the main process is blocked twice during the two calls to SetState, when it runs it would have the two SetState timer threads blocked on its synchronized body. It will pass the first one, send the message and set "changed" to false since it was true. Now, it will pass the second thread, but here is the problem, "changed" is already set to false. As a result, it won't send the message even though it is supposed to.
    Would you please let me know if my understanding is correct? If so, what would you propose to resolve the problem? Should I call wait some other or should I notify in a different way?
    Thanks,
    B.D.
    Code:
    private static volatile boolean bChanged = false;
    private static Thread objMainProcess;
       protected static void Init(){
            objMainProcess = new Thread() {
                public void run() {
                    while( objMainProcess == Thread.currentThread() ) {
                       GetState();
            objMainProcess.setDaemon( true );
            objMainProcess.start();
        public static void initStatusTimer(){
            if(objTimer == null)
                 objTimer = new javax.swing.Timer( 1000, new java.awt.event.ActionListener(){
                    public void actionPerformed( java.awt.event.ActionEvent evt){
                              SetState();
        private static void SetState(){
            if( objMainProcess == null ) return;
            synchronized( objMainProcess ) {
                bChanged = true;
                try{
                    objMainProcess.notify();
                }catch( IllegalMonitorStateException e ) {}
        private static boolean GetState() {
            if( objMainProcess == null ) return false;
            synchronized( objMainProcess ) {
                if( bChanged) {
                    SendMessage();
                    bChanged = false;
                    return true;
                try {
                    objMainProcess.wait();
                }catch( InterruptedException e ) {}
                return false;
        }

    Thanks DrClap for your reply. Everything you said is right. It is not easy to make them alternate since SetState() could be called from different places where the state could be anything else but a status message. Like a GREETING message for example. It is a handshaking message but not a status message.
    Again as you said, There is a reason I can't call sendMessage() inside setState().
    The only way I was able to do it is by having a counter of the number of notifies that have been called. Every time notify() is called a counter is incremented. Now instead of just checking if "changed" flag is true, I also check if notify counter is greater than zero. If both true, I send the message. If "changed" flag is false, I check again if the notify counter is greater than zero, I send the message. This way it works, but it is kind of a patch than a good design fix. I am yet to find a good solution.
    Thanks,
    B.D.

  • Problem with Threads and "plase wait..."-Window

    Hi everyone,
    I have a problem that I'm not able to solve in any way... I have a time-consuming task (a file decryption) which I execute in a separate thread; I've used the SwingWorker class, like suggested by sun-tutorial, and it works right. The problem is that I have to wait that the decryption have finished before continuing with program-execution. Therefore I would like to display a "please wait"-window while the task runs. I've tryed all the possible ways I know but the problem is always the same: the waitWindow is displayed empty, the bounds are painted but the contents no; it's only painted when the decrypt-task has finished. Please help me, I have no more resources....
    decrypt-file code:
    public class DecryptFile {
      private String cryptedFileNameAndPath;
      private ByteArrayInputStream resultStream = null;
      // need for progress
      private int lengthOfTask;
      private int current = -1;
      private String statMessage;
      public DecryptFile(String encZipFileNameAndPath) {
        cryptedFileNameAndPath = encZipFileNameAndPath;
        //Compute length of task...
        // 0 for indeterminate
        lengthOfTask = 0;
      public ByteArrayInputStream getDecryptedInputStream() {
        return this.resultStream;
       * Called from ProgressBarDemo to start the task.
      public void go() {
        current = -1;
        final SwingWorker worker = new SwingWorker() {
          public Object construct() {
            return new ActualTask();
        worker.start();
       * Called from ProgressBarDemo to find out how much work needs
       * to be done.
      public int getLengthOfTask() {
        return lengthOfTask;
       * Called from ProgressBarDemo to find out how much has been done.
      public int getCurrent() {
        return current;
      public void stop() {
        current = lengthOfTask;
       * Called from ProgressBarDemo to find out if the task has completed.
      public boolean done() {
        if (current >= lengthOfTask)
          return true;
        else
          return false;
      public String getMessage() {
        return statMessage;
       * The actual long running task.  This runs in a SwingWorker thread.
      class ActualTask {
        ActualTask () {
          current = -1;
          statMessage = "";
          resultStream = AIUtil.getInputStreamFromEncZip(cryptedFileNameAndPath); //here the decryption happens
          current = 0;
          statMessage = "";
      }The code that calls decryption and displays waitWindow
          final WaitSplash wS = new WaitSplash("Please wait...");
          final DecryptFile cryptedTemplate = new DecryptFile (this.templateFile);
          cryptedTemplate.go();
          while (! cryptedTemplate.done()) {
            try {
              wait();
            } catch (Exception e) { }
          this.templateInputStream = cryptedTemplate.getDecryptedInputStream();
          wS.close();Thanks, thanks, thanks in advance!
    Edoardo

    Maybe you can try setting the priority of the long-running thread to be lower? so that the UI will be more responsive...

  • Problem with threads and graphics

    I have a thread that chooses paths for a Travelling salesman problem, it then calls a TSPdraw class and passes it the path, which the class then draws. the problem is when i have two threads it creates two windows but only draws a path in one of them. any ideas where i`m going wrong

    Are you using swing components? Swing isn't threadsafe. If you have multiple threads that want to update your UI you need to use the SwingUtilities.invokeLater(...)or invokeAndWait(...). There is a page in the swing tutorial about this at: http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html

  • Problem with threads and ProgressMonitor

    Dear Friends:
    I have a little problem with a thread and a ProgressMonitor. I have a long time process that runs in a thread (the thread is in an separate class). The thread has a ProgressMonitor that works fine and shows the tasks progress.
    But I need deactivate the main class(the main class is the user interface) until the thread ends.
    I use something like this:
    LongTask myTask=new LongTask();
    myTask.start();
    myTask.join();
    Now, the main class waits for the task to end, but the progress monitor don`t works fine: it shows only the dialog but not the progress bar.
    What's wrong?

    Is the dialog a modal dialog? This can block other UI updates.
    In general, you should make sure that it isn't modal, and that your workThread has a fairly low priority so that the UI can do its updating

  • Problem with threads and/or memory

    I'm developing an application where there are 3 threads. One of them sends a request to the other, and if the 2nd can't answer it, it sends it to the 3rd (similar to CPU -> CACHE -> MEMORY). When i run the program with 1000-10.000 requests, no problem occurs. When i run it with 300.000-1.000.000 requests, it sometimes hangs. Is this a problem with the garbage collector, or should it be related to the threads mecanism.
    (note: eache thread is in execution using a finite state machine)

    i had been running the program inside Netbeans.
    Running the jar using the command line outside
    Netbeans i have no more problems... Does Netbeans use
    it's own JVM?Depends how you set it up, but look under the options. There are settings for the compiler and jvm that it uses.

  • Null And " "

    What is the difference between these two lines of codes?
    String currentFile = null;
    String currentFile = "";
    Edited by: AMARSHI on Jul 10, 2008 7:07 AM

    The reference variable itself, takes up the same amount of space, of course, as all references are the same size. Now, the object on the heap is a different story. With null there isn't one, of course (or if there is there is only one for the entire VM), and for the second a String object will be created in the String pool (once again, only one for the entire VM that every = "" assignment will use). But really, what difference does it make? If there is a difference, it is on the order of a few bytes (at max) for the entire VM, and if this is a concern, your probably doing something else greviously wrong. This miniscule difference should not concern you.
    Edit: And "nulling" variables to "save" memory is also not something you should be concerned with. Either the variable will go out of scope and the object garbage collected anyway, or it's in constant use and so will not be taking up any extraneous heap space. If one of those is not the case, you are, once again, doing something greviously wrong.

  • And/or if statement in rtf templates.

    Hi all,
    I'm using XML Publisher 4.5.
    I have created a word template file (rtf) for my reports. I need to be able to show some content in the template file by using and and/or if statement.
    fx. <?if:doc_type='STANDARD'?> OR <?if:doc_type='DEFAULT'?>
    How can I do this?
    In advance thank you.
    Best regards
    Kenneth

    Hi D,
    Thank you for your answer.
    I have seriously thought about that solution; but I don't think it's a smart way to do it.
    If i do it like that, i need to copy the whole table and paste it inside the if statements.
    I have two xml elements that I need to make the decisions on. POH_PO_TYPE & CP_RELEASE_NUM.
    POH_PO_TYPE can be: STANDARD, RELEASE or BLANKET.
    CP_RELEASE_NUM can be: '' or N
    If POH_PO_TYPE is RELEASE AND CP_RELEASE_NUM is not ''
    OR POH_PO_TYPE is STANDARD
    OR POH_PO_TYPE is BLANKET AND CP_RELEASE_NUM is ''
    THEN show table (which contains the whole PO).
    It shall show the content of the PO in any of these cases.
    BR Kenneth

Maybe you are looking for

  • Is it possible AT ALL to make fglrx work with the ATI RV505?!

    I have an ATI X1550 graphics card based on the chipset in the topic subject... I wish my PC wasn't half-height, so I could go get a real graphics card.... but I have what I have for now, and I guess I should settle for it. So, the problem in question

  • Problem Connecting

    I have Oracle8i installed on Windows 2K and can connect to the database by using SYSTEM, ANYPASSWORD and ODBC:POLITE as the Host String. When I installed Forms6i, I have problem connecting to the database. Can any body help! Thanks, Sunny null

  • Sound is distorted when browser is downloading

    Hi, I just bought a new HP 15 notebook PC , windows 8.1. It's working well except for one thing. When I'm viewing a video in youtube, the sound gets distoted as long as the video is downloading. Once the download is complete it's fine. This also happ

  • Photoshop Menus/Options not displaying correctly

    I've just installed photoshop cs6 and many of the options are not displaying correctly.  I've included two screenshots as examples. I'm running Windows 7 64 bit and Nvidia GeForce GT330M graphics.  I've updated the graphics driver to the latest versi

  • Endnote bibliography transfer from word to page not aligned?

    I have a word document with endnote bibliography that I need to transfer to my page document which also has its own bibliography. Somehow, after I copy and paste the content from word to page, the bibliography is not coordinate. It became two separat