tag:blogger.com,1999:blog-354430242024-03-13T17:10:30.355-05:00SciLINC Dev... progress, issues and development notes on the Scientific Literature Indexing on Networked Computers (SciLINC) projectRon Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.comBlogger48125tag:blogger.com,1999:blog-35443024.post-76073361210027129542007-05-21T09:39:00.000-05:002007-05-21T11:04:48.298-05:00Problems changing a BOINC server's nameThe following email summarizes a problem that we had when we changed our server's name to make it available outside our firewall.<br /><blockquote>Solution found:<br /><blockquote>I wrote:<br /><br />Okay we changed the name of our server from an internal name to an external one that can be accessed across the Internet. My problem is that bin/start reports:<br /><br />Entering ENABLED mode<br />Starting daemons<br /><br />And nothing happens. "ps aux|grep feeder" only reports the grep instance.<br /><br />I have changed the server name in the mysql.user table, in /etc/sysconfig/network, in config.xml and I'm sure a few other locations. Restarted the machine, etc. I also verified the permissions on the new log_... and pid_... folders.</blockquote>Found the problem. The 'stop_daemons' file was not being deleted by bin/start. I did not realize that the config.xml host setting should only be 'www'. Not the FQDN.<br /><br />The config host has to match the localhost name that is internal to bin/start. This is *not* the same as what is returned by 'hostname'.<br /><br />This took awhile to find, because no log files were being generated, neither did start report any errors. I only saw it by running feeder under gdb, where the output apparently goes to stdout/stderr instead of (or in addition to) the log file.<br /><br />--<br />Ron Parker</blockquote><span style="font-weight: bold;">UPDATE:</span><br />One additional file that needed changed in the SciLINC project directory was <code>html/user/schedulers.txt</code>.<br /><br />It is also necessary to update the <code>app_version</code> table. The path to the application files on the server is hard coded in the XML data fields of this table. Running <code>bin/update_versions</code> will update it, but it may be necessary to first delete the rows that refer to the old server.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com6tag:blogger.com,1999:blog-35443024.post-18331681840823691842007-01-19T07:40:00.000-06:002007-01-19T08:34:47.596-06:00Visual Studio 2005 missing Msi.lib<strong>Visual Studio 2005</strong> only installs msi.lib for the AMD-64 platform. Installing the latest <strong>Platform SDK</strong>, PSDK will install it for x86, IA-64 and AMD-64. As of this post, <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB"><strong>Microsoft Platform SDK for Windows Server 2003 R2</strong></a> was the most recent version. That page should say whether or not there is a more recent version.<br /><br />Once it is installed, you have to tell <strong>Visual Studio</strong> where to find the <strong>PSDK</strong> files. The file path settings are part of the <strong>Visual Studio</strong> options which are accessed from the <strong><span style="font-size:0;">ToolsOptions.</span>..</strong> menu item.<br /><br />Under <strong>Projects and Solutions</strong>, select <strong>VC++ Directories</strong>. Then, pick each item under <strong>Show directories for </strong>looking for paths have PlatformSDK in them. Insert an entry just before it that refers to the same subdirectory under <code>$(ProgramFiles)\Microsoft Platform SDK for Windows Server 2003 R2</code>.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm1.static.flickr.com/165/362513179_5a38b10a18_o_d.jpg"><img style="CURSOR: pointer" alt="Visual Studio Options" src="http://farm1.static.flickr.com/165/362513179_5a38b10a18_o_d.jpg" width="310" border="0" /></a><br /><br />The up- and down-arrow buttons may be used to move the new entry to the right place in the list.<br /><br />Now, <strong>Rebuild </strong>any solution that needs the msi.lib library.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com1tag:blogger.com,1999:blog-35443024.post-68931535847500893292007-01-16T10:20:00.000-06:002007-01-16T10:32:00.381-06:00Importing Python Subversion Archive into GitWhile it is not well advertised, it is possible to download a snapshot of the <span style="font-weight: bold;">Python </span>Subversion repository via <code>rsync</code>.<br /><pre>rsync -avP svn.python.org::ftp/pub/svn.python.org/snapshots/projects-svn-tarball.tar.bz2 .</pre>Note: I discovered later that it can be downloaded by browser as well, <a href="http://svn.python.org/snapshots">http://svn.python.org/snapshots</a>.<br /><br />Once the file is downloaded expand it:<br /><pre>bunzip2 projects-svn-tarballs.tar.bz2|tar xf -</pre>Then use <code>git-svnimport<code> to create the baseline git repository:<br /></code></code><pre>git-svnimport -v -C python.git -T python/trunk -t python/tags -b python/branches file://`pwd`/projects</pre>Following this the archive may be brought up to date and kept upto date using:<br /><pre>git-svnimport -v -C python.git -T python/trunk -t python/tags -b python/branches http://svn.python.org/projects</pre>Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-69040652091036335082007-01-11T13:48:00.000-06:002007-01-11T15:53:29.306-06:00Importing SourceForge Subversion Projects into GitAt least for the initial import it is faster to <a href="https://sourceforge.net/docs/E09#16">create a local mirror of the desired repository using rsync</a>. Taking the Simplified Wrapper and Interface Generator project, SWIG, as an example:<br /><br /><pre>rsync -avz rsync://swig.svn.sourceforge.net/svn/swig/* swig.svn</pre>Made a copy of the <strong>Subversion</strong> SWIG repository in about 10 minutes.<br /><br />(On <strong>CentOS 4</strong>, I had to upgrade svn from the source to be able to access this mirror. I installed the <strong>RHEL4</strong> RPMs that were pointed to on <a href="http://subversion.tigris.org/project_packages.html">the Subversion download page</a>. I needed the <code>apr</code>, <code>apr-util</code>, <code>subversion</code> and <code>subversion-perl</code> packages.)<br /><br />Then I was able to import this into a git repository using:<br /><br /><pre>git-svnimport -C swig.git \<br /> file://`pwd`/swig.svn</pre>This took about 13 minutes.<br /><br />After importing a new repository, repacking recommended:<br /><br /><pre>cd swig.git<br />git repack -a -d</pre>This reduces the amount of space the repository requires. It can be significant on a large or active repository.<br /><br />Future updates can then be done fairly effeciently from within the <code>swig.git</code> subdirectory with:<br /><pre>git-svnimport -C . <a href="https://svn.sourceforge.net/svnroot/swig">https://svn.sourceforge.net/svnroot/swig</a></pre>Because it is no longer needed, the swig.svn directory can now be deleted.<br /><br /><strong>Just some statistics</strong><br />While the rsync'd Subversion repository took up 238MiB, the git repository only used 63MiB. Most of this is the working copy of the code. The actual repository <code>swig.git/.git</code> only occupied 25MiB. (Barely a tenth of what Subversion required.)<br /><br /><strong>Alternatives</strong><br />While I could have run <code>git-svnimport</code> directly against the remote repository, this would have taken about 32 hours. Even using <code>svm</code> or <code>SVN::Mirror</code> in place of <code>rsync</code> would have required around 10 hours.<br /><br />If you can use <code>rsync</code> or another tool to make a local copy of the repository, the import will run much more quickly.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-76762548495006548672007-01-09T13:30:00.000-06:002007-03-24T07:24:39.979-05:00Fixing Synergy Shift BehaviorWhen running the <a href="http://synergy2.sourceforge.net/">Synergy</a> client on CentOS with a Window machine operating as the server, I had problems with the behavior of the <tt>[Shift]</tt> key. There was a delay from when <tt>[Shift]</tt> was pressed until it took effect and often the left <tt>[Shift]</tt> key would not take effect at all.<br /><br />This was corrected by downloading, building and installing the latest source RPM from <a href="http://sourceforge.net/project/showfiles.php?group_id=59275">the Synergy site</a>. You may have as much luck with the binary RPM. I just didn't try it.<br /><br />Update: Fixed typoRon Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-33996109985306841732006-12-19T14:22:00.000-06:002006-12-19T14:43:15.204-06:00BOINC and Tagging?Following <a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html">yesterday's conference</a>, I couldn't help but keep coming back to the idea of tagging. Yes, I really do mean the popular concept of tagging used on so many social web sites like <a href="http://del.icio.us">del.icio.us</a> and <a href="http://www.myspace.com/"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">MySpace</span></a>.<br /><br />Why tagging? It's popular and it could provide a possible answer to some of the problems discussed yesterday.<br /><br /><span style="font-weight: bold;">Finding Projects</span><br />If projects had various tags, a user could choose to subscribe to or ignore projects based on different tags they were labelled with. These tags could used by the account managers and other sites. Then as projects appeared and disappeared they could automatically be added to your client, if you chose to do so.<br /><br /><span style="font-weight: bold;">User Visibility</span><br />One of the questions yesterday had to do with retaining people and them being able to see where they sat in the <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">BOINC</span> world. Were they advancing or falling in the listings? Did their contributions matter?<br /><br />What if users tagged themselves? Say I tagged myself with: Male, USA, Single-Computer, Linux, Missouri, <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">MoBot</span>. Then I could see how I placed within each of those tags. I may not show up on the overall <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">CPDN</span> list, but I might under Single-Computer+Linux+Missouri for example.<br /><br />Well, good or bad, those were some of my thoughts.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-91163468041085142382006-12-19T11:45:00.000-06:002006-12-19T14:11:00.878-06:00BOINC Conference SummaryHere is a "brief" summary of the BOINC conference that was held online, December 18th. It took place over <a href="http://www.skype.com/">Skype</a> with people from all over the world. At times the connections were a little week (at least on my end), but it was a very worthwhile couple of hours.<br /><br />This comes from my quickly scribbled notes. Nothing is a direct quote (unless my hand and memory got lucky) and I am sure there are many errors. I may have even missed a question or two.<br /><br />If you want the definitive source, get the mp3. It should be available shortly from the <a href="http://www.boincuk.com/">BOINC UK site</a>.<br /><br />The questions mostly broke down into two basic categories. Those about <a href="http://boinc.berkeley.edu/">BOINC</a> in general and those specifically related to <a href="http://setiathome.ssl.berkeley.edu/">SETI@home</a>.<br /><br /><span style="font-weight: bold;font-size:130%;" >General Question</span><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#wish">If you had one wish what would it be?</a><br /><br /><span style="font-size:130%;"><span style="font-weight: bold;">BOINC Questions</span></span><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#vanilla">With all of the optimized BOINC clients available why do we still need the "vanilla" client?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#cpdn">How can we resolve issues with large workunits?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#subgroups">Have you considered subteams or a way to give users more visibility?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#scalability">What scalability issues are there as the number of projects continues to grow?<br /></a><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#gpus">What is the status of using GPUs for computation?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#clients">Question about clients and credits.</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#media">What do you see as the relationship between BOINC and the media?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#sandboxing">What about sandboxing?</a><br /><br /><span style="font-size:130%;"><span style="font-weight: bold;">SETI@home Questions</span></span><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#recorder">What is the status of the Southern Hemisphere data recorder?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#cost">What does a data recorder cost?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#Arecibo">What it the likelihood of Arecibo shutting down?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#optical">What is the status of optical SETI work?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#coverage">What percentage of stars have been listened to?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#leakage">What about picking up leakage of TV, radio, and other broadcasts?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#astropulse">What is the projected rollout date for astropulse?</a><br /><a href="http://scilincdev.blogspot.com/2006/12/boinc-conference-summary.html#vla">What about VLA data?</a><br /><br /><a name="vanilla"><span style="font-weight: bold;">Q.</span></a> With all of the optimized BOINC clients available why do we still need the "vanilla" client?<br /><br /><span style="font-weight: bold;">A.</span> The optimized client was a kludge for the older version of SETI so that users would get the "correct" amount of credit. Now that SETI has moved to flops based computation there is no need for the optimized client.<br /><br />Now, if you are actually talking about optimized applications (projects) as opposed to the BOINC client software that coordinates fetching workunits and running the projects on your local machine, they help. But, the issue is that there are two many distinct architectures and sub-architectures to properly test all of them.<br /><br /><a name="cpdn"><span style="font-weight: bold;">Q.</span></a> Due to the size of the <a href="http://www.climateprediction.net/">Climate Prediction</a> work units, many users simply crash and are never heard from again. How can we resolve this? Perhaps with popups and other messages? --- Mo (Maureen?)<br /><br /><span style="font-weight: bold;">A.</span> We support <a href="http://boinc.berkeley.edu/trickle.php">trickle messages</a> that can update the user as they continue to work on very large work units. Climate Prediction could do a bit of work to provide screensaver updates through using these trickle messages.<br /><br />While some would like popup messages that let them know when something goes awry or needs attention, others would see this as intrusive. --- <a href="http://boinc.berkeley.edu/anderson/">Dr. David Anderson</a><br /><br /><a name="recorder"><span style="font-weight: bold;">Q.</span></a> What is the status of the Southern Hemisphere data recorder for SETI at the <a href="http://www.parkes.atnf.csiro.au/">Parkes Observatory</a>? --- Mark (Ohio, USA)<br /><br /><span style="font-weight: bold;">A.</span> With the threatened shut down of <a href="http://www.naic.edu/">the Arecibo telescope</a> in 5 years we have to focus there and consider the possible transfer of equipment after that. --- <a href="http://setiathome.berkeley.edu/%7Ekorpela/">Dr. Eric Korpela</a><br /><br /><a name="cost"><span style="font-weight: bold;">Q2.</span></a> What does a recorder cost? --- Mike<br /><br /><span style="font-weight: bold;">A2.</span> It depends upon the donations of equipment, but even with the donations received, the original recorder cost around $300,000 (US). --- Eric<br /><br /><a name="Arecibo"><span style="font-weight: bold;">Q3.</span></a> What is the likelihood of Arecibo shutting down? --- Mike<br /><br /><span style="font-weight: bold;">A3.</span> The problem is that there are <a href="http://topuertorico.org/government.shtml">no congressmen with voting power</a> for Arecibo. It is in Puerto Rico and this is really a political financial decision. --- Eric<br /><br /><a name="optical"><span style="font-weight: bold;">Q.</span></a> What about <a href="http://seti.ssl.berkeley.edu/opticalseti/">Optical SETI</a> work? --- Tiare (Chile)<br /><br /><span style="font-weight: bold;">A.</span> The optical work we are doing is relatively primitive compared to the radio work. It would be highly unlikely for each of our three sensors to receive a flash, although it has been guessed that a laser pulse directed at us from extraterrestrial sources could give a pulse at all three wavelengths. --- Eric<br /><br /><a name="wish"><span style="font-weight: bold;">Q.</span></a> If you had one wish what would it be?<br /><br /><span style="font-weight: bold;">A.</span> <span style="font-style: italic;">Something indistinct about Microsoft. --- David</span><br />Better hardware --- ???<br />A verifiable contact --- Eric<br />Accurate benchmarking --- David<br /><br /><a name="subgroups"><span style="font-weight: bold;">Q.</span></a> Have you considered subgroups within teams so that users would have a better chance of seeing themselves showing up on a top 10?<br /><br /><span style="font-weight: bold;">A.</span> We thought that if the servers generated sufficiently refined lists based upon data available to them that this would happen automatically. So far, it has not.<br /><br /><a name="coverage"><span style="font-weight: bold;">Q.</span></a> What percentage of stars have been listened to? --- John (USA)<br /><br /><span style="font-weight: bold;">A.</span> Arecibo has had pretty good coverage, but it only sees about 25% of the sky. <a href="http://setiathome.berkeley.edu/sah_plans.php#recorder">Multi-beam</a> is 30%(?) more sensitive and allows us to listen to sources that are 5 times more distant. We have also done some targeting with high bandwidth, but it is a tradeoff, bandwidth vs. coverage. We can listen to a lot on a few frequencies, or listen to a few things on a lot of frequencies.<br /><br />When you look at all three, bandwidth, distances and sky coverage, we have had relatively little overall coverage. --- Eric<br /><br /><a name="leakage"><span style="font-weight: bold;">Q.</span></a> What about picking up leakage of TV, radio, and other broadcasts?<br /><br /><span style="font-weight: bold;">A.</span> Omnidirectional signals like those do not go very far. Even with a directed beam we can only reach about 50(?) lightyears with broadcasts of our own, say from Arecibo.<br /><br /><a name="scalability"><span style="font-weight: bold;">Q.</span></a> It seems the number of projects is growing rapidly. What are the limitations of BOINC as this continues? --- Maureen<br /><br /><span style="font-weight: bold;">A.</span> Since the BOINC project does not supply centralized servers,there are really no limits with respect to that. It is more a problem in terms of project discovery. <a href="http://boinc.berkeley.edu/acct_mgrs.php">BOINC account managers</a> are one solution to that problem. BOINC mutual funds may be another.<br /><br />BOINC mutual funds would be where an individual could say they are interested in computing for cancer research, but they don't want to have to keep track of cancer research projects as they come and go, so they subscribe to a "cancer research mutual fund" that would keep track of these things for them. Essentially this would be using intermediaries like the American Cancer Society to keep track of these things. --- David<br /><br /><a name="gpus"><span style="font-weight: bold;">Q.</span></a> <a href="http://ati.amd.com/">ATI</a> has expressed interest in working with BOINC on producing GPU accelerated interfaces and <a href="http://folding.stanford.edu/">Folding@Home</a> has had success with a similar initiative. What is the status or progress in this area? --- Ron (Missouri, USA)<br /><br /><span style="font-weight: bold;">A.</span> We tried doing some work with the <a href="http://www.nvidia.com/">NVIDIA</a> GPUs but the architecture was not really conducive to integrating with them. It is our understanding that ATI may have a more accessible architecture, but so far no projects have bit on the offer to work with them.<br /><br />We are looking at using the <a href="http://en.wikipedia.org/wiki/Cell_%28microprocessor%29">Cell Processor</a> in the <a href="http://www.us.playstation.com/PS3">PlayStation® 3</a>. It may be much better. It is several times faster than a GPU and about 50x faster than a standard processor. It also give much better computational power per Watt of electricity making it more environmentally friendly. --- David<br /><br />I have not given up on GPUs. If there are any GPU programmers out there that are interesting in helping out on SETI@home, I would be very interested to hear from them. --- Eric<br /><br /><a name="clients"><span style="font-weight: bold;">Q.</span></a> <span style="font-style: italic;">Indistinct</span> --- Tiare (Chile)<br /><br /><span style="font-weight: bold;">A.</span> We have created a new simple GUI in cooperation with the <a href="http://www.worldcommunitygrid.org/">Community Grid</a>. It will make the <a href="http://boinc.berkeley.edu/project_skin.php">BOINC client skinnable</a>. We are also looking at a unified credit system that would allow us to grant credit for donated storage space as well as for donated CPU time. We would like to retain a single credit scoring system. But, benchmarking this is difficult. --- David<br /><br /><a name="astropulse"><span style="font-weight: bold;">Q.</span></a> What is the projected rollout date for <a href="http://setiathome.berkeley.edu/beta/">AstroPulse</a>? --- Derek (Guam)<br /><br /><span style="font-style: italic;">AstroPulse is a long promised set of work units for SETI@home. According to a previous interview there had been a grad. student that was supposed to be working on it, but he found it more interesting to work on other things, so the effort that was put forth never came to fruition.<br /></span><br /><span style="font-weight: bold;">A.</span> We have a new grad. student working on it. Hopefully it will be in beta next month or so. That would be nice, since he will have some time off of class then. --- Eric<br /><br /><a name="media"><span style="font-weight: bold;">Q.</span></a> When the <a href="http://bbc.co.uk/">BBC</a> did its documentary on <a href="http://www.climateprediction.net/">Climate Prediction.Net</a> it greatly enhanced the participation in the project. What do you see as the relationship between BOINC and the media? --- Maureen<br /><br /><span style="font-weight: bold;">A.</span> Media coverage helps greatly. But many of those participants did not stick around long, for reasons we've already discussed. --- David<br /><br /><a name="sandboxing"><span style="font-weight: bold;">Q.</span></a> <span style="font-style: italic;">Indistinct question about Sandboxing? --- Ian</span><br /><br /><span style="font-weight: bold;">A.</span> We are using user-account based sandboxing and we recommend that the application runs as a limited user. We have this setup on the Mac already. It works with a little help on Linux as well. The problem (as usual) is Windows. Although we expect to have a Windows version of sandboxing available in about 2-3 month. --- David<br /><br /><a name="vla"><span style="font-weight: bold;">Q.</span></a> <span style="font-style: italic;">Something about <a href="http://www.vla.nrao.edu/">VLA</a> usage? --- Derek</span><span style="font-style: italic;"> (Guam)</span><br /><br /><span style="font-weight: bold;">A.</span> None currently. <span style="font-style: italic;">Allen(?) telescope </span>is expanding to 45 dishes. <span style="font-style: italic;">[Garbled]</span> needs more dishes, less than 45 does not provide what we need. Originally <span style="font-style: italic;">[garbled]</span> was supposed to have around 200 telescopes, but due to cutbacks this has not happened. --- Eric<br /><br />Well that's all I have from my notes, and a little memory thrown in.<br /><br />I'd like to thank Mike and all those that arranged the conference and David and Eric for taking time out to answer our questions.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com1tag:blogger.com,1999:blog-35443024.post-4415618756867186632006-12-18T17:51:00.000-06:002006-12-19T09:22:55.924-06:00Visual SourceSafe 2005 on LinuxGetting <span style="font-weight: bold;">Visual SourceSafe 2005</span> working on <span style="font-weight: bold;">Linux</span> was a little tricky. It required a lot of experimentation, and I did not keep exact notes. So, this is just a rough outline of how I got it working.<br /><br />Start by getting the latest version of <a href="http://www.winehq.com/site/git"><code>wine</code> from git</a>. When you <code>configure</code> it, install any missing dependencies and reconfigure. Then, build and install it.<br /><br />Install <a href="http://www.tatanka.com.br/ies4linux/page/Main_Page"><span style="font-weight: bold;">ies4linux</span></a>. Only <span style="font-weight: bold;">Internet Explorer 6</span> is required. I used a base directory of <code>$HOME/.wine</code> when I ran the installation script:<br /><pre>./ies4linux --basedir $HOME/.wine</pre>Then, I moved all of the contents of <code>$HOME/.wine/ie6</code> into <code>$HOME/.wine</code> and deleted the <code>ie6</code> subdirectory. If you plan on using the desktop icon, you will need to edit it to match the modified path.<br /><br />Run <code>winecfg</code> and change the <span style="font-weight: bold;">Windows Version</span> setting to <span style="font-weight: bold;">Windows 2000</span>.<br /><br />The <a style="font-weight: bold;" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en">Microsoft .NET Framework Version 2.0</a> must also be installed. However, the installation procedure does not appear to work under <code>wine</code>.<br /><br />So, run <code>cabextract</code> on the download and then run it on the <code>netfx.msi</code>. This extracts a lot of files with really long names. Look at the file whose name contains <code>_INF_</code>. In my case this was <pre>FL_NETFXUSA_INF_92947_____X86.3643236F_FC70_11D3_A536_0090278A1BB8.</pre> It contains a list of files and target directories.<br /><br />Some of the target directories will exist in <code>.wine/drive_c,</code> others will need to be created.<br /><br />Then, you have to find the files listed for installation into those directories. They will not appear under in the extraction directory with the names shown in the info file. Rather, they will appear with a name like the <code>FL_NETFXUSA_INF_...</code> file shown above.<br /><br />Using it as an example, the short name would be <code>netfxusa.inf</code>. Simply copy those files into the appropriate target directory under the shorter name.<br /><br />When I did this, at least one file was specified to be copied into two different directories.<br /><br /><span style="font-weight: bold;">Visual SourceSafe</span> requires some fonts that are not normally installed for <code>wine</code>. I suspect it really needs <span style="font-weight: bold;">Tahoma</span>, I didn't try to narrow it down, I just copied my <code>Windows\Fonts</code> directory from my <span style="font-weight: bold;">XP</span> partition into the <code>.wine/drive_c/windows/fonts</code> subdirectory.<br /><br />Copy the <code>Program Files</code> subdirectory from the VSS installation CD into the <code>wine/drive_c</code> directory. Then, run <pre>wine $HOME/.wine/drive_c/Program\ Files/Microsoft\ Visual\ SourceSafe/ssexp.exe</pre>If everything goes well, <span style="font-weight: bold;">Visual SourceSafe</span> should display with some minor toolbar and menu issues. If you don't see a menu, pass your mouse over where it should be and the top-level items will appear.<br /><br />You might want to copy that command into a script file or create a launcher for it instead of having to type that command every time.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-20069242093175774012006-12-14T14:08:00.000-06:002006-12-14T14:22:50.588-06:00BOINC Server Shared Memory ErrorWhen I first installed uppercase as a demo project on a BOINC server, I got the following message in my client messages window:<br /><pre>Message from server: Project encountered internal error: shared memory</pre>Looking at the cgi.log on the server showed:<br /><pre>Can't attach shmem: -146 (feeder not running?)</pre>Running <code>bin/status</code> also showed that <span style="font-weight: bold;">BOINC</span> was enabled, the daemons were running and also enabled (disabled=no).<br /><br />The first hint came from Nicolas Alvarez:<br /><blockquote>Maybe the shared memory block is owned by your user instead of boinc user as well. You should stop and restart server from the correct user.<br /><pre>$ ps aux | grep feeder</pre>See what user owns the feeder process.</blockquote>That was my exact problem. Then I got a more elaborate response from Eric Myers:<br /><blockquote>The feeder has to be able to talk to the scheduler via shared memory. There are several ways to do this. I have<br /><pre>chgrp apache bin/feeder<br />chmod g+s bin/feeder</pre>so that it runs as group <code>apache</code>, and thus can share memory with the scheduler cgi when it's started by apache.<br /><br />Another way to do this (which I don't like as much, but works) is to make the <code>feeder</code> group '<code>boinc</code>' and add the <code>apache</code> user to that group.<br /><br />Either way, the <code>feeder</code> (which always runs) needs to share permissions with the scheduler (<code>cgi-bin/cgi</code> - confusing name) so they can share memory.<br /></blockquote>Well, that pretty well summed up the problem.<br /><br />I had already configured <code>apache</code> to be a member of my <code>boinc</code> group and just needed to make sure that <code>feeder</code> was also running as the <code>boinc</code> group.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com1tag:blogger.com,1999:blog-35443024.post-4197847648534565652006-12-07T15:39:00.000-06:002006-12-07T15:59:37.772-06:00Running libtool'd Binaries in GDB or DDDWhen I started <code>gdb</code> or <code>ddd</code> on my program I got a message that said:<br /><pre>GNU gdb Red Hat Linux (6.3.0.0-1.132.EL4rh)<br />Copyright 2004 Free Software Foundation, Inc.<br />GDB is free software, covered by the GNU General Public License, and you are<br />welcome to change it and/or distribute copies of it under certain conditions.<br />Type "show copying" to see the conditions.<br />There is absolutely no warranty for GDB. Type "show warranty" for details.<br /><b>This GDB was configured as "i386-redhat-linux-gnu"..."program": not in executable format: File format not recognized</b></pre>After trying some different tools and things on my own, I searched Google. It gave me two hits on the entire web with my search phrase. The first was <a href="http://www.root.cz/clanky/programovani-pod-linuxem-libtool-2/">Programování pod Linuxem pro všechny (7)</a>, unfortunately that page is in Czech.<br /><br />But, having a rather bizarre gift for languages, I read what of it I could. It turns out that the problem happens when a program is built with <code>libtool</code>. The solution is, instead of running<br /><pre>gdb program</pre>run,<br /><pre>libtool --mode=execute gdb program</pre>very simple, very easy.<br /><br />And... Oh, yeah this works for starting <code>ddd</code> with <code>program</code> as well.<br /><br />The problem is not specific to the platform, but for the sake of the search engines, this was on CentOS-4, an RHEL4 clone, using gcc 3.4.6 20060404 (Red Hat 3.4.6-3).Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com2tag:blogger.com,1999:blog-35443024.post-25564807198716534832006-12-07T13:51:00.000-06:002006-12-07T14:07:53.987-06:00Viewing JPEG2000 Images in LinuxWhile the installation is not automated, there is a <a href="http://linuxj2k.org/"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">JPEG</span>2000 Linux Browser <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">Plugin</span></a>. It should work in any Mozilla-based browser running on 32-bit Intel. This would include at least <a href="http://browser.netscape.com/">Netscape</a>, <a href="http://www.mozilla.org/products/mozilla1.x/">Mozilla</a>, <a href="http://www.mozilla.org/projects/seamonkey/"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">SeaMonkey</span></a>, <a href="http://www.mozilla.com/firefox/"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">Firefox</span></a> and <a href="http://www.flock.com/">Flock</a>.<br /><br />I went to <a href="http://linuxj2k.org/modules.php?op=modload&name=Downloads&file=index">the downloads page</a> and picked <a href="http://linuxj2k.org/modules.php?op=modload&name=Downloads&amp;amp;amp;amp;file=index&req=viewdownload&cid=2">binary release</a>. From there I selected the <span class="pn-normal"><a class="pn-title" href="http://linuxj2k.org/modules.php?op=modload&name=Downloads&amp;file=index&req=getit&lid=7"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">npjp</span>2_<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5">linux</span>_<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6">glibc</span>2.1_jasper_<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7">pthread</span></a> link. This downloads a zip file. When you unpack it, it contains a <code>LICENSE</code> file and a <code><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8">npjp</span>2.so</code> file.<br /><br />Copy <code><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9">npjp</span>2.so</code> to your <code>~/.mozilla/plugins</code> <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_10">directory</span>. Close all tabs and windows in your browser, then restart it.<br /><br />At this point, you should be able to view JP2000 files in the browser. The same site that provides the <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11">plugin</span> has a <a href="http://linuxj2k.org/modules.php?op=modload&name=test_plugin&file=index">test page</a>. I was also able to use <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12">Firefox</span> to view <code>.JP2</code> files on my local drive.<br /></span>Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-15799762368914949192006-12-01T10:00:00.000-06:002006-12-01T10:27:38.420-06:00Correcting delete errorsWhen I initially created a simple BOINC test server and project, I had the permissions set incorrectly on the <code>projects/<em>PROJECT_NAME</em>/upload</code> directory. This resulted in a number of "delete file" errors from <code>file_deleter</code>. This is easily corrected.<br /><br />Edit <code>config.xml</code> so that the <code>file_deleter</code> line contains the <code>-retry_error</code> switch, for example:<br /><pre>file_deleter -d 3 -retry_error</pre>Then a simple:<pre>$ bin/stop && bin/start</pre>will restart the file deleter and it will retry the files that previously generated errors.<br /><br />When I did this the size of the <code>upload</code> directory dropped in half.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-56266775726141458582006-11-27T15:26:00.000-06:002006-11-27T15:52:01.996-06:00Virtual Desktop Size in RHEL5 Beta 1I had trouble getting the virtual screen size in <span style="font-weight: bold;">RHEL5 Beta </span>1 to match my monitor's native resolution. It is an <a href="http://h10010.www1.hp.com/wwpc/us/en/sm/WF04a/382087-64283-444767-72270-444767.html">HP L1706</a> attached to a <a href="http://h10010.www1.hp.com/wwpc/ca/en/sm/WF04a/12132708-12132884-12132884-12132884-12133128.html">dc5100 SFF</a>.<br /><br /><span style="font-weight: bold;">RHEL</span> defaulted to 1600x1280 (or so) and the LCD's native resolution is 1280x1024 @ 60Hz. This resulted in the display panning around the virtual desktop when the mouse reached a screen edge. It also caused the menu and task bars to not always be available on screen, since they were at the edges of the virtual desktop.<br /><br />Unfortunately the settings from <span style="font-weight: bold;">System-->Administration-->Display</span>, <code>system-<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">config</span>-display</code>, did not correct this. <span style="font-weight: bold;">X</span> reverted to the larger size.<br /><br />I tried to use<br /><pre>system-<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">config</span>-display --set-resolution 1280 1024</pre>This sets the <code>Virtual</code> setting, but <code>/var/log/Xorg.0.log</code> told me there was no matching mode. Well, <code>system-<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">config</span>-display</code> has no command line switch for setting the mode(s).<br /><br />So, I manually edited <code>/etc/X11/<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">xorg</span>.<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">conf</span></code> to contain:<br /><pre><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5">SubSection</span> "Display"<br /> Virtual 1280 1024<br /> Modes "1280x1024x60"<br /><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6">EndSubSection</span></pre>in the <code>Screen</code> section.<br /><br />This produced the desired effect, running the monitor at its recommended settings and setting the virtual desktop size to match it.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-5799958850518181542006-11-22T11:10:00.000-06:002006-11-22T11:08:48.001-06:00Building BOINC Samples on CentOSWhy am I blogging this? Because I initially (and repeatedly) missed the "documentation" at the top of <code>Makefile</code>.<br /><br />Previously, I was editing the makefile to be more "portable". Only, those edits did not link against the static version of <code>libstd++</code>, which is the prefered way of linking applications that will be pushed down to the client. Doing so avoids runtime issues with missing or mismatched library versions.<br /><br />But first, you need to <a href="http://scilincdev.blogspot.com/2006/11/building-boinc-client-on-centos-4_22.html">build the <span style="font-weight: bold;">BOINC</span> client software</a>. Then, as mentioned above, some of the examples like <code>uppercase</code> require a link to the static version of <code>libstdc++.a</code>. The makefiles for those projects contain:<br /><pre># Do this first:<br /># ln -s `g++ -print-file-name=libstdc++.a`<br /># This creates a symbolic link to the C++ library,<br /># which is linked statically</pre>So, just do:<br /><pre>ln -s `g++ -print-file-name=libstdc++.a`<br />make</pre>to get them going.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-29341837882128095472006-11-22T09:21:00.000-06:002007-05-29T17:02:48.306-05:00Building the BOINC Client on CentOS-4<span style="font-weight: bold;">UPDATE:</span> <a href="#update">Fixed directions on adding lines to <code>curl-local.spec</code></a>.<br /><br />Both <span style="font-weight: bold;">Red Hat Enterprise Linux 4</span> and its clone, <span style="font-weight: bold;">CentOS-4</span>, need some updated packages to build the <span style="font-weight: bold;">BOINC client</span> out of the box. For example, they both ship <span style="font-weight: bold;">libcurl</span> 7.12.1 and <span style="font-weight: bold;">BOINC</span> requires 7.15.5 or better. They already ship RPMs for the older version, we just need to create an RPM for the newer version.<br /><br />The only instructions that should be CentOS specific are related to retrieving the source RPM files. For <span style="font-weight: bold;">Red Hat</span>, you might try:<br /><pre>$ sudo up2date --get-source <span style="font-family:mon;"><span style="font-style: italic;"><package-name></package-name></span></span><span style="font-style: italic;"></span></pre>On <span style="font-weight: bold;">CentOS</span>:<br /><pre>$ wget ftp://rpmfind.net/linux/redhat/updates/enterprise/4AS/en/os/SRPMS/curl-$(yum -C list|grep curl-devel|awk '{print $2}').src.rpm</pre>will work. This calls <code>yum</code> (which does not exist in <span style="font-weight: bold;">RHEL4</span>) to find out what the current version of <code>curl-devel</code> is. Then <code>awk</code> spits out only the version information and the whole thing is plopped down into the middle of the URL passed to <code>wget</code>, which retrieves the file.<br /><br />Once retrieved:<br /><pre>sudo rpm -Uhv curl*.src.rpm</pre>will install the source and files necessary to build an RPM. Following that, everything should be available under <code>/usr/src/redhat</code>.<br /><br />Let's change to that directory to update and build <span style="font-weight: bold;">cURL</span>.<br /><pre>cd /usr/src/redhat</pre>The latest released version of <span style="font-weight: bold;">cURL</span> is always available from <a href="http://curl.haxx.se/">http://curl.haxx.se</a>. They are very proactive in supporting the package, issuing updates, and fixing any security related bugs that are found.<br /><br />If you are going to locally compile and install software on a machine, I highly recommend creating an account at <a href="http://freshmeat.net/">freshmeat.net</a> and subscribing to get announcements for updates to that project. This includes security fixes. I would also recommend subscribing to the <span style="font-weight: bold;">CentOS</span> or <span style="font-weight: bold;">RHEL</span> announcement mailing list.<br /><br />First, we have packages such as <span style="font-weight: bold;">PHP</span> that depend upon the libcurl version 3 <abbr title="Application Binary Interface">ABI</abbr>, so we need to arrange to have both the old version, and the new version installed. Start by:<br /><pre>cd SPECS</pre>Then, either get the spec files from <a href="http://inthefaith.net/mobot/compat-curl-local.spec">compat-curl-local.spec</a> and <a href="http://inthefaith.net/mobot/curl-local.spec">curl-local.spec</a>, saving them into the SPECS directory or create them afther this fashion:<br /><pre>sudo cp curl.spec compat-curl-local.spec</pre>Then,<br /><ol><li>Edit <code>compat-curl-local.spec</code>:</li><li>Change the <code>Name:</code> to <code>compat-curl</code></li><li>Append <code>.local.1</code> to the <code>Release:</code> line</li><li>Change the <code>Source:</code> line to reference <code>curl-</code> instead of <code>%{name}</code>.</li><li>Add<code> -n curl-%{version}</code> to the end of the <code>%setup</code> line.</li><li>Save it.</li></ol>Then,<pre>sudo rpmbuild -ba compat-curl-local.spec</pre>Running:<br /><pre>sudo wget -P ../SOURCES http://curl.haxx.se/download/curl-7.16.0.tar.bz2</pre>will place the latest (as of this writing) released source into the <code>../SOURCES</code> subdirectory.<br /><pre>sudo cp curl.spec curl-local.spec<br />sudo <<span style="font-style: italic;">your-favorite-editor</span>> curl-local.spec</pre>Change <code>Version:</code> to <code>7.16.0</code><br />Change <code>Release:</code> string to <code>0.rhel4.local.1</code><br /><a name="update"></a>Add a <span style="font-family:monospace;">Prefix: /usr </span>line near the top of the file. This makes the package relocatable.<br />Delete all patches except #<code>1</code> and renumber it to <code>0</code>.<br />After <code>%setup</code> remove all <code>%patch</code> lines greater than <code>0</code>.<br />Under <code>%files</code> add:<br /><pre>%{_libdir}/pkgconfig/libcurl.pc</pre>This will make sure that any version 7.16.0 that is released by Red Hat will replace our local one. Yet, it will also guarantee that no 7.x versions less than that will overwrite our local one.<br /><br />Then,<br /><pre>sudo rpmbuild -ba curl-local.spec</pre>When this is done, it's time to install:<br /><pre>sudo rpm --force -Uhv ../RPMS/i386/compat-curl-7.*.local.1.i386.rpm<br />sudo rpm --force -Uhv ../RPMS/i386/compat-curl-devel-7.*.local.1.i386.rpm<br />sudo rpm -e curl curl-devel<br />sudo rpm -Uhv --prefix=/usr/local ../RPMS/i386/curl-7.16.0-0.rhel4.local.1.i386.rpm<br />sudo rpm -Uhv --prefix=/usr/local ../RPMS/i386/curl-devel-7.16.0-0.rhel4.local.1.i386.rpm</pre>We first force the installation of our new <code>compat-</code> RPMs, because they will conflict with the originals. (The supply the same files under a different name. The name change is necessary so that our newer version does not result in an upgrade removing the old ABI version 3 files entirely.) Once those are in place we remove (erase) the original packages to make way for the new ones. Then we load our new local versions prefixing them into the <code>/usr/local</code> hierarchy to avoid interfering with the old files.<br /><br />Once the updated <span style="font-weight: bold;">cURL</span> is in place we need the <span style="font-weight: bold;">OpenGL</span> and <span style="font-weight: bold;">JPEG</span> development libraries.<br /><pre>sudo up2date xorg-x11-devel freeglut-devel libjpeg-devel</pre>Another fairly large component that we need are the <a href="http://www.wxwidgets.org/">wxWidgets</a>. We get these from building a spec file that is part of the <a href="http://rpmforge.net/">RPMforge</a> project. I could not find the corresponding binary RPM for <span style="font-weight: bold;">RHEL4</span>.<br /><pre>cd /usr/src/redhat/SPECS<br />sudo wget http://svn.rpmforge.net/svn/branches/rpms/matthias/wxGTK/wxGTK.spec<br />sudo wget -P ../SOURCES http://downloads.sourceforge.net/wxwindows/wxGTK-2.6.2.tar.bz2<br />sudo up2date gtk2-devel SDL-devel libgnomeprintui22-devel libpng-devel libtiff-devel<br />sudo rpmbuild -ba --define 'dist el4' wxGTK.spec<br />cd ../RPMS/<<span style="font-style: italic;">architecture</span>><br />sudo rpm -Uhv wxGTK-2.6.* wxGTK-gl-2.6* wxGTK-devel-2.6.*</pre>For most, <code><<span style="font-style: italic;">architecture</span>></code> is going to be i386.<br /><pre>cd ~/src/boinc<br />./configure --enable-unicode<br />make</pre>I have to commend the guys working on BOINC, especially <a href="http://www.romwnet.org/">Rom Walton</a>. Prior to revision 1.20 of <code>clientgui/SkinManager.cpp</code> this would blow up compiling for UNICODE due to some character width mismatch errors. I sent in <a href="http://setiathome.berkeley.edu/cgi-bin/cvsweb.cgi/boinc/clientgui/SkinManager.cpp.diff?r1=text&tr1=1.19&amp;amp;amp;amp;amp;amp;amp;amp;r2=text&tr2=1.20">a patch</a> and the very next day it was already in their CVS repository.<br /><br />That's like a breath of fresh air in FOSS development. Too many projects make it difficult to get your patches accepted into the mainstream. It shouldn't be that way.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com6tag:blogger.com,1999:blog-35443024.post-3962173283402758772006-11-21T13:58:00.000-06:002006-11-21T14:05:00.542-06:00Installing the BOINC Server SoftwareThis explains the process of installing the actual <span style="font-weight: bold;">BOINC</span> server software on a machine and setting up a skeleton project.<br /><h2> Development Tools </h2> If you have previously followed the guide on <a href="http://docs.google.com/View?docid=dhnggrkv_44cg2czq" title="Linux BOINC Server CentOS-4 Installation">installing CentOS-4 for a BOINC Server</a>, you will need to add the development tools required to compile <span style="font-weight: bold;">BOINC</span>. This may be done by going to <span style="font-weight: bold;">Applications-->System Settings-->Add/Remove Applications</span>. Then, scroll down, check <span style="font-weight: bold;">Development Tools</span> and click <span style="font-weight: bold;">Update</span>. You may be prompted to insert a CentOS CD, insert either the CD (or DVD, if you have it) and continue on.<br /><br />After installing the development tools, it is a good idea to apply any available updates. Right-click on the <span style="font-weight: bold;">Update Notification Icon</span> and select <span style="font-weight: bold;">Check for updates</span>. If there are updates, apply all of them even the ones that are normally flagged to be skipped.<br /><h2> Accounts and Permissions</h2>Since it is really too long for ablog post, read the rest of <a href="http://docs.google.com/View?docid=dhnggrkv_90drqjfq">this document online at Google Documents and Spreadsheets</a>.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-88028918576447416262006-11-19T18:09:00.000-06:002006-11-28T13:07:36.111-06:00Running a BOINC Server on SELinux<span style="font-style: italic;">This is a shortened excerpt of one version of <a href="http://docs.google.com/View?docid=dhnggrkv_90drqjfq" title="Installing the BOINC Server Software">a much longer document</a>. It has enough use on its own than I am posting it here separately.<br /><br /></span>In my previous post on <a href="http://scilincdev.blogspot.com/2006/11/creating-users-and-groups-for-boinc.html">Creating Users and Groups for a BOINC Server</a>, I explained how to create the <code>boinc</code> user and group. Here I explain how to grant the appropriate permissions to allow a project to operate without disabling or crippling <span style="font-weight: bold;">SELinux</span>.<br /><br />After you have used <a href="http://boinc.berkeley.edu/make_project.php"><code>make_project</code></a> to create the basic files for a project, you need to change some of the permissions.<br /><br />Assuming you have done as shown on <a href="http://boinc.berkeley.edu/make_project.php">The make_project script page</a> and that you created a <code>cplan</code> project in the <code>projects</code> directory inside of your home directory as explained there, you will need to grant read permission to your home directory. You can do this with<br /><pre>$ sudo chmod 755 ~</pre>That will allow the <span style="font-weight: bold;">Apache</span> webserver to access files hosted in your home directory. Then we need to grant the <code>boinc</code> group access to the new files in the project.<br /><pre>$ sudo chgrp -R boinc ~/projects/cplan/html<br /></pre>Without <span style="font-weight: bold;">SELinux</span> running this would be sufficient to allow access to the project. However, if you have <span style="font-weight: bold;">SELinux</span> enabled, a few more steps are necessary. If you loaded your project into one of the system web server directories instead of creating them within a user's directory, you should replace <code>httpd_user_content_t</code> with <code>httpd_sys_content_t</code> in the following instructions.<br /><pre>$ sudo chcon -R -h -t httpd_user_content_t ~/projects/cplan/html<br />$ sudo chcon -h -t httpd_user_content_t ~/projects/cplan<br />$ sudo chcon -h -t httpd_user_content_t ~/projects/cplan/config.xml<br />$ sudo chcon -R -h -t httpd_user_script_exec_t ~/projects/cplan/cgi-bin<br /></pre>The <code>chcon</code> command changes the <span style="font-weight: bold;">SELinux</span> context that is assigned to an object. In this case were are changing the <span style="font-style: italic;">type</span> of the object to indicate that it is for use by <code>httpd</code>, but resides in a user's directory. The first command recursively gives permission to the <code>html</code> directory. The second gives permission to be able to see <code>config.xml</code> in the directory and the third grants access to the configuration file itself. The last line indicates that scripts should be allowed to run in the <code>cgi-bin</code> directory.<br /><br />You still have the details of writing your project and configuring <span style="font-weight: bold;">Apache</span> to serve it, but hopefully this post has helped with any <span style="font-weight: bold;">SELinux</span> issues you may have had.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-59857122307598705042006-11-19T17:49:00.000-06:002006-11-19T18:03:56.817-06:00Creating Users and Groups for a BOINC ServerThe BOINC <a href="http://boinc.berkeley.edu/groups.php">Groups and permissions</a> page covers most of what you need to know in order to set this up. But, I present this from the perspective of running a CentOS-4 server using graphical tools and performing these operations before the project is actually created.<br /><br />Run Applications-->System Settings-->Users and Groups. Start by adding a user and group, both named "boinc". The following steps will create both at one time.<br /><ol><li>Click Add User.</li><li>Enter a user name, I used "boinc".</li><li>Enter a "Full Name", try "BOINC Server".</li><li>Enter a password and confirm it.</li><li>Set Login Shell to /sbin/nologin.</li><li>Uncheck Create home directory.<br /></li><li>Check Create a private group for the user.</li><li>Click OK.<br /></li></ol>Now lets add the "apache" user to the "boinc" group.<br /><ol><li>Click the Groups tab.</li><li>Double-click the "boinc" group.</li><li>Click the Group Users tab.</li><li>Check the box next to "apache".</li><li>Click OK.</li></ol>That's all there is to it. Now you have a boinc user, a boinc group and apache has access to all files that belong to the boinc group.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-4849763557950104862006-11-19T17:44:00.000-06:002006-11-19T18:45:12.131-06:00Linux BOINC Server CentOS-4 InstallationThis explains the process that was used to install <a href="http://www.centos.org/" title="CentOS 4 Linux Distribution">CentOS 4</a> onto the workstation that is used as a BOINC server for SciLINC development. There may be subtle differences in the installation as described here and the installation as it may be seen if run again later. This may be due to differences in a pristine install and a re-install, it may also be due to the slightly modified installation procedure that was required to obtain the screen shots for this document. The most up to date version of <a href="http://docs.google.com/View?docid=dhnggrkv_44cg2czq" title="Read this document online">this document is published online</a>.<br /><br />The original plan was to install <a href="http://fedoraproject.org/" title="The FedoraProject Community Wiki">Fedora Core</a> because it is sponsored by <a href="http://www.redhat.com/" title="Red Hat">Red Hat</a> and ultimately its content feeds into the next official Red Hat Enterprise Linux, <a href="http://www.redhat.com/rhel/" title="RHEL">RHEL</a>. The (possibly incomplete) document covering that is "<a href="http://docs.google.com/View?docid=dhnggrkv_1dxvf95" title="Fedora Instructions">Linux BOINC Server Fedora Core 6 Installation</a>." These plans were changed for two reasons. One, the rate of change on the recently released Fedora Core 6 is too high to make it worth tracking for a test server deployment. And two, we discovered CentOS 4, the Community ENTerprise Operating System. This is a distribution that is built directly from the publicly available source RPMs for RHEL 4. The project's web site describes it this way:<br /><blockquote>CentOS is an Enterprise-class Linux Distribution derived from sources freely provided to the public by a prominent North American Enterprise Linux vendor. CentOS conforms fully with the upstream vendors <span style="font-style: italic;">[sic]</span> redistribution policy and aims to be 100% binary compatible. (CentOS mainly changes packages to remove upstream vendor branding and artwork.) CentOS is free.</blockquote>In essence CentOS is a synthesis of Red Hat Enterprise Linux WS, ES and AS. The administrator is free to pick and choose from among the components offered by these various versions. In that sense it is suitable for desktop, workstation, and server usage.<br /><br />Since it is really too long for a blog post, read the rest of <a href="http://docs.google.com/View?docid=dhnggrkv_44cg2czq">this document online at Google Documents and Spreadsheets</a>.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-1163605244265828592006-11-15T09:40:00.000-06:002006-11-15T10:15:45.910-06:00Linux BOINC Server Fedora Core 6 InstallationThis document explains the process that was used to install <a href="http://fedora.redhat.com" title="Red Hat's Fedora Site">Fedora Core 6</a>, FC6, onto the workstation that is used as a BOINC server for SciLINC development. FC6 is also referred to by the code name, "Zod".<br /><br />...<br /><br />Fedora Core actually has two separate meanings. The first is in reference to the operating system itself. The second is a reference to the Fedora Core repository. The Core repository contains a set of relatively tightly managed and non-overlapping applications that may be used to configure a server, a knowledge worker desktop or a developer workstation.<br /><br />Where Fedora Core has overlapping functionality is usually a matter of widely accepted "standard" packages that provide the same functionality. The vim and emacs editors are examples of this. Also, Fedora supports both the GNOME and KDE desktops. Each desktop may have some programs with similar purposes that are better integrated into its environment. The firefox and konqueror web browsers would fall into this category.<br /><br />Since it is really too long for a blog post, read the rest of <a href="http://docs.google.com/View?docid=dhnggrkv_1dxvf95">this document online at Google Documents and Spreadsheets</a>.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-1162915952193711412006-11-07T10:12:00.000-06:002006-11-07T10:13:24.803-06:00Configuring Xen Domain 0 Memory Allocation at Boot TimeAccording to <a href="http://www.cl.cam.ac.uk/research/srg/netos/xen/readmes/user/user.html#SECTION02151000000000000000">the GRUB Configuration section of the Xen User Guide</a> the memory allocation of the host operating system may be set in the <code>grub.conf</code> file as follows:<br /><pre>title Xen 3.0 / XenLinux 2.6<br />kernel /boot/xen-3.0.gz dom0_mem=262144<br />module /boot/vmlinuz-2.6-xen0 root=/dev/sda4 ro console=tty0</pre>"The kernel line tells GRUB where to find Xen itself and what boot parameters should be passed to it (in this case, setting the domain 0 memory allocation in kilobytes and the settings for the serial port)."Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com1tag:blogger.com,1999:blog-35443024.post-1162851592691192422006-11-06T16:05:00.000-06:002006-11-06T16:19:52.700-06:00Setting up Completely Passwordless Bi-Directional SSHIf you have two machines and you want to be able to <code>ssh</code> from "local" to "remote" without using a password at all, do the following, where <code>$local</code> is a command-prompt on the local machine and <code>$remote</code> is a prompt on the remote machine. Replace the words <code>REMOTE</code> and <code>LOCAL</code> with the actual network names of the machines:<br /><pre>$local ssh-keygen -t dsa<br />$local scp ~/.ssh/id_dsa.pub REMOTE:.<br />$remote cat ~/id_dsa.pub >>~/.ssh/authorized_keys<br />$remote ssh-keygen -t dsa<br />$local scp REMOTE:.ssh/id_dsa.pub .<br />$local cat ~/id_dsa.pub >>~/.ssh/authorized_keys<br /></pre>At this point you should be able to:<br /><pre>$local ssh REMOTE</pre>without a password, you may be prompted to accept the fingerprint of the other machine. Do so. Then in the remote shell:<br /><pre>$remote ssh LOCAL</pre>This may also generate a fingerprint-acceptance message. Just accept it.<br /><br />You can also delete the id_dsa.pub files in the login directory of each machine. Do <em>not</em> copy the <code>id_dsa</code> (without the <code>.pub</code> extension) this is your private key and the connection is only as secure as that file. If someone has the file, they can impersonate you. This is also why <a href="http://www.gatsby.ucl.ac.uk/%7Eiam23/compnotes/passwordless_ssh.html">some people recommend supplying a passphrase when running <code>ssh-keygen</code></a> and then using <code>ssh-agent</code> provide similar behavior, but with the need to enter your passphrase once per session.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-1162850707508936932006-11-06T15:38:00.000-06:002006-11-14T10:59:56.926-06:00Controlling Two Computers with One Keyboard and MouseThe <a href="http://x2x.dottedmag.net">x2x</a> program allows the keyboard and mouse on one X display to be used to control another X display. It also shares X clipboards between the displays. Basically this allows you to have two machines sitting side-by-side and use a single keyboard an mouse on them.<br /><br />I choose to use <a href="http://x2x.dottedmag.net/trac/do/wiki/SshTunneling">ssh tunneling</a> as the authentication mechanism between them. The first step is to <a href="http://scilincdev.blogspot.com/2006/11/setting-up-completely-passwordless-bi.html">setup passwordless ssh in both directions</a> between the two machines. Then, I copied one of the quick-launch buttons on the GNOME menu bar to the menu bar by control-dragging it and edited the copy to have the following settings:<br /><dl><dt><strong>Type:</strong></dt><dd><code>Application</code></dd><br /><dt><strong>Name:</strong></dt><dd><code>x2x</code></dd><br /><dt><strong>Command:</strong></dt><dd><code>ssh OTHER_MACHINE_NAME DISPLAY=:0.0 ssh -X THIS_MACHINE_NAME x2x -from :0 -east&</code></dd><br /><dt><strong>Comment:</strong></dt><dd><code>Control the other display with this mouse and keyboard</code></dd><br /></dl>Clicking the launcher will then run x2x and allow the mouse and keyboard to control the other machine. I used the <code>-east</code> command-line switch because my "other" machine sets to the right of "this" machine. So when I move the mouse off of the "this" screen to the east, right, it appears on the "other" screen and vice-versa.<br /><br /><span style="font-weight: bold;">UPDATE</span>: If this is run more than once, there will be multiple instances of ssh running on the remote machine. This can happen if the connection is lost for some reason and then reestablished. (Changing the remote machines firewall settings will do this.)<br /><br />A simple workaround is to <code>kill</code> or <code>killall</code> the ssh session(s) on the remote machine and then rerun this again. Before doing a <code>killall ssh</code> on remote, manually close any local ssh connections to the remote machine to avoid losing any unsaved data.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-1162843076831880022006-11-06T13:50:00.000-06:002006-11-06T13:57:56.880-06:00BOINC Stable Tag is Only for the Client<div xmlns="http://www.w3.org/1999/xhtml">At last, David Anderson clarifies the "stable" tag for BOINC's CVS repository:<blockquote cite="http://www.ssl.berkeley.edu/pipermail/boinc_dev/2006-November/006484.html">The "stable" tag applies only to the core client and Manager, NOT to the server software, API, PHP, etc. If you check out server software with the "stable" tag you'll get an old version, with lots of bugs. The most reliable server and API software is always the current version. Sorry we didn't make this clear before; I changed http://boinc.berkeley.edu/source_code.php to say this. </blockquote><p class="citation"><cite cite="http://www.ssl.berkeley.edu/pipermail/boinc_dev/2006-November/006484.html"><a href="http://www.ssl.berkeley.edu/pipermail/boinc_dev/2006-November/006484.html">[boinc_dev] "stable" tag applies ONLY to client software (core client and Manager)</a></cite></p> <p/><p/></div>Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com0tag:blogger.com,1999:blog-35443024.post-1162416219101162522006-11-01T15:13:00.000-06:002006-11-01T15:47:34.566-06:00HP dc5100 Audio Problems in LinuxAfter installing Fedora Core 6 Linux on an HP dc5100 SFF (small form factor) machine with an "Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)", I had a number of problems.<br /><ul><li>The system beep always went through the on-board speaker.</li><li>Mute did not work.</li><li>The head phone jack did not disable the sound playing on the built-in speaker.</li></ul><h2>Headphone Jack</h2>Getting the head phone jack working was the easiest. Although finding out how to do this was not.<br /><br /><ol><li>Open Volume Control, this is found under System|Preferences in GNOME.</li><li>Select Edit|Preferences.<br /></li><li>Check the "Headphone Jack Sense" button.<br /></li><li>While you're there you might as well check "Line Jack Sense" button as well.</li></ol><br />This will add some entries to the "Switches" tab, or add the tab if it did not already exist.<br /><br />Next<br /><ul><li>Check the "Headphone Jack Sense" and "Line Jack Sense" buttons on the "Switches" tab.</li></ul>This will enable the detection of a headset or line device and automatically disable the built in speaker.<h2>System Beep</h2>It also turned out to be easy to disable the system beep.<br /><ol><li>Open the Sound Preferences applet under System|Preferences|Sound.<br /></li><li>Select the "System Beep" tab.<br /></li><li>Uncheck "Enable system beep".<br /></li><li>Optionally check "Visual system beep" and "Flash window titlebar" or "Flash entire screen". </li></ol>I prefer entire screen. That way if I am on a different virtual desktop, I still see the flash. Because I have "Desktop Effects" enabled I do not get a flash, I get a reverse flash. The entire screen dims.Ron Parkerhttp://www.blogger.com/profile/10457410498690834319noreply@blogger.com2