| JezUK Ltd - The Coffee Grounds - December 2004 |
| << November 2004 | January 2005 >> |
When dialling a call, the CTC dialler will first raise an OffHook event, followed by one or more DestSeized events. The documentation makes no mention of this, so I thought it worth noting. All the calls I made fired two DestSeized events, but I suspect that if the call was redirected, or you had an especially chatty switch, you might see three or four.
Having to fill in some forms for the ACCU conference including a little bio. Curses! I've agonised over this before and am not finding it any easier this time round. I scanned through the bios for last years speakers, but it doesn't help much. The vast majority of them have written books, served as editors or columnists for various magazines, or sit on standards committees. Here's a short one
Alex Martelli is the editor of the best-selling "Python Cookbook" and "Python in a Nutshell", and the most prolific answerer of questions of all time on comp.lang.python.No mucking around there - Hi, I'm Alex. I know of what I speak. He does too. Here's a longer one
Nicolai Josuttis is an independent systems architect, author, and consultant. He designs mid-sized and large software systems for the telecommunication, traffic, finance, and manufacturing industries. He is well known both in the C++ Community and to attendees at ACCU Conferences. He not only speaks and writes with authority about C++ (being the author of 'The C++ Standard Library') but is also an innovative presenter. He has also written other books and articles about object-oriented software development and programming in general. He is a partner at System Bauhaus, a German group of recognized object-oriented system development experts.Hi, I'm Nico. I wrote that book everyone refers to all the time. I know what I'm talking about.
I've co-written one rather minor article and no books. I am not generally recognised, let alone as an expert in anything. As a starting point, that gives me
Jez Higgins is an independent programmer.which is perhaps a little short. After much piddling around I've arrived at
Hi, I'm Jez Higgins, an independent programmer of 10 years standing. I work primarily in C++ and Java, with a fair sprinkling of XML and text processing. Fundamentally lazy, I'm interested in anything that means more work for less effort. Currently, that includes library use and extension, unit testing, and automated build procedures. I do not have a book in preparation.Any good?
:D [added 30th Dec 2004]
[added 2nd Jan 2005]
[Add a comment]
Spent an hour and implemented predicates. Expressions like that above now execute - it's now sufficiently complete to do useful work. Only took about 10 lines, so feeling slightly smug.
Things remaining to do include functions, some axes, variable binding, some types of expression (unions, relational expressions), and one or two other things. Not long now though :)
Despite raising seperate events for engaged phones, unobtainable numbers and "invalid" numbers, the CTC control does not raise an event if the call is not answered. Instead, when it gives up, it raises a TpDisconnect event. Detecting an unanswered call has to be inferred by the absense of an OpAnswered event (triggered when the other party picks up) between call the MakeCall method and TpDisconnect event.
Before you can do any work with the CT Connect control you have to connect to the switch using the StartMonitoring method. Prior to calling it, you set up various parameters like the hostname and so on. You also set the Id of the TelSet you want to monitor. Note that monitoring a TelSet does not secure exclusive use of that TelSet. It's perfectly possible for several applications to monitor and control the same TelSet. There's no way to tell if any other applications are monitoring the TelSet you're interested. This may or may not be problem :)
Prompted by an email from my occasional correspondent Terris and by a frankly bizarre day at work where I was required to attend but not actually do anything, I've checked in a fairly monster set of new XPath code over the past couple of days.
Get this
DOM::Document<std::string> document = getDocument();
XPath parser;
XPathExpressionPtr xpath = parser.compile("/one/two/three");
XPathValuePtr result = xpath->evaluate(document);
std::cout << "Selected " << result->asNodeSet().size() << " nodes.\n";
DOM::Node<std::string> n = result->asNodeSet()[0];
OK, it looks a little wordy, but it works. An XPath expression compiled and executed. Yes!
Stuff that's in: easy memory management stuff, namespaces, all the node tests, the . and .. abbreviations.
Stuff that's not in yet: predicates, variable binding, custom functions binding, some of the axes. I know predicates sounds like a fairly catestrophic ommission, but I think it'll actually be pretty easy to implement. Ask me next week :))
If you want to pull it from cvs, you need to the xpath_dev_sandbox module.
[Add a comment]
| << November 2004 | January 2005 >> |