wake the mac
Tuesday, May 11th, 2010MAC Address: 00:0a:95:b0:2f:e0
http://wiki.tcl.tk/15423
MAC Address: 00:0a:95:b0:2f:e0
http://wiki.tcl.tk/15423
The plist should go in /Library/LanchDaemons
see: http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/LaunchOnDemandDaemons.html
Turns out I might as well use svn+ssh which will just launch svnserve when needed via ssh.
Why not? Next question, what license? Since I have copyright on the whole thing, I can license as I like. Which means, might as well go with the GPL. But, it looks like there are some concern, so.
I am using ActiveMQ 5.x on my current project. Initial integration was quite easy. Getting a broker running and some messages going around between a few clients took several days, much of which had to do with groking Spring configuration rules. I have to say Spring is pretty nice. But the initial ease with which I had request/reply messages being dispatched to Competing Consumers belied the rapidly increasing complexity of the system. Since it was so easy to get three clients and two services running, we loosened our design and now have nine different services and five clients. Six queues have become something like 22. It is still invigorating to have the system work, but of course when it doesn’t work diagnoses is rather more challenging.
Initially global setting were enough for timeouts and prefetch and queue memory size, but no more. Now the work is in getting regression tests running. I should look at the test suite in ActiveMQ itself for ideas on setting up multiple machines for inter node tests.
Prefetch is one configuration item that needs to be per channel. CompetingConsumers need a prefetch of 1 to work. Most of the other channels should be between 10 an 1000 I would think.
Timeouts is another one to think about. You don’t want to long a timout, if the request is going to fail then better to get it over with so appropriate action can then be taken.
Today I am having trouble understanding the behavior of a topic with producer flow control. One producer is getting block due to a slow consumer, but killing the consumer does not seem to end the block and I don’t know if it is a bug or correct behavior, or if there is yet another configuration option to consider.
I have been working on a DARPA project for the last 6 months, and am really enjoying the work. We have a very cool client application that takes speech and sketch input and does semantic recognition. The client enables real-time collaborative editing.
[drew@g5]$ ./configure --prefix=/Users/drew/sandbox/netperf/install --enable-histogram --enable-unixdomain [drew@g5]$ make [drew@g5]$ make install [drew@g5]$ ./netserver -p 9999 -4 -v 1 [drew@g5]$ ./netperf -p 9999 -L localhost,inet
[drew@g5]$ ./configure --prefix=/Users/drew/sandbox/netperf/install --enable-unixdomain=yes
[drew@g5]$ ./netperf -f G -p 12865 -t STREAM_STREAM -d -- -s 100000 -S 100000
Search this page for Repton: http://query.nytimes.com/gst/fullpage.html?sec=health&res=9E0CE1D91F39F937A25751C1A964948260
I made the NYT in ‘82 and did not even know it. Thanks Google!
I need to set up my XP computer so I can just run it remotely from my Mac. Windows Remote Desktop. I’ve enabled it on the PC. Now what can I use as a client on my Mac? Microsoft has a free client.
Time to update.
done!
http://drewk.net/NetBeansProjects.zip
/*
* Writting a KML facility to help with FCS debugging.
*/
package gekml;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
/**
* < ?xml version="1.0" encoding="UTF-8"?>
*
*
*
* at the height of the underlying terrain.
*
*
* @author drew
* @author Andrew Kaluzniacki : drewk.net
* @copyright Andrew Kaluzniacki
*/
public class KmlFile {
private KmlFile() {
// empty
}
public static KmlFile create() {
return new KmlFile();
}
private ArrayList placemarkList = new ArrayList();
public void addPlacemark(double longitude, double latitude, String name, String description) {
placemarkList.add(new Placemark(longitude, latitude, 0, name, description));
}
public void saveAs(String filePath) {
FileOutputStream out = null;
try {
out = new FileOutputStream(filePath);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
throw new IllegalArgumentException(”SaveAs must have valid filePath:” + filePath);
}
PrintWriter pw = new PrintWriter(out);
pw.print(”< ?xml version=\"1.0\" encoding=\"UTF-8\"?>“);
pw.print(”
for (int i = 0; i < placemarkList.size(); i++) {
pw.print(((Placemark) placemarkList.get(i)).toXmlString());
}
pw.print(" “);
if (pw.checkError()) {
System.err.println(”Error in ” + pw.toString());
}
pw.close();
try {
out.close();
} catch (IOException ex) {
ex.printStackTrace();
throw new IllegalStateException(”Error in KmlFile::SaveAs()”);
} finally {
try {
out.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
——–
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
* Andrew Kaluzniacki
*
*/
/**
* Two key items:
* Placemarks - used to show aimpoints
* Polygon - used to show the target area
*
* Start:
* If I can just get plaecmarks working, I can fake target areas.
* The key is to get the addPlacemark(location, name)
*
*
* References:
* http://code.google.com/apis/kml/documentation/kml_tut.html#descriptive_html
*
*
*
* < ?xml version="1.0" encoding="UTF-8"?>
*
*
*
* at the height of the underlying terrain.
*
*
*
*
*/
package gekml;
/**
*
* @author drew
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Create a nice kml file
KmlFile kf = KmlFile.create();
// 32°25′34.65″N
// 106°40′13.68″W
kf.addPlacemark( -106.6253642521367, 32.35612182602554, “AndrewK”, “Is Success”);
kf.saveAs(”my.kml”);
}
}
——-
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package gekml;
/**
* *
*
* at the height of the underlying terrain.
*
*
* @author Andrew Kaluzniacki : drewk.net
* @copyright Andrew Kaluzniacki
*/
public class Placemark {
private double longitude;
private double latitude;
/** relative to ground - o is at ground level */
private double altitude;
private String name = “Untitled Placemark”;
private String description = “”;
Placemark(double longitude, double latitude, double altitude, String name, String description)
{
this.longitude = longitude;
this.latitude = latitude;
this.altitude = altitude;
if ( name != null ) {
this.name = name;
}
if ( description != null ) {
this.description = description;
}
}
/** Write to stream as xml
*
*/
String toXmlString() {
StringBuffer buf = new StringBuffer();
buf.append(”
buf.append(”
buf.append(”
buf.append(”
buf.append(”
buf.append(latitude).append(’,').append(altitude).append(”
buf.append(”
buf.append(”
return buf.toString();
}
}