[Looking for Charlie's main web site?]

Who owns who in the book publishing world: can't tell the players without a program!

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
Ever wondered who owns who in the book publishing world? It becomes important for those who run user groups, as most publishers have great programs to provide free review and giveaway copies of books for our groups. But how do you know whose program to go to to get a particular book? It's not as simple as it seems, since many imprints are actually subsidiaries of a larger publisher.

It's like they say in baseball: "you can't tell the players without a program!" :-)

So with that, I'd like to present my observation of who's who, using primarily the list of publishers listed in the Adobe UG program. It generally just lists the parent publishers, so this will help you know who to go to for particular books. (Authorized UG managers can see the list in the "third party program resources" page.)

Who's owned by who?

Again, as mine is a blog focused on ColdFusion, this list is also focused only on the publishers (and their imprints) that would be of interest to CFers. The publishers below sometimes have (many) more subsidiary imprints than those I list. Beyond that, though, these lists may still be incomplete for publishers we may be interested in, and I welcome feedback and corrections.

I've tried to get the information from the actual publishers sites themselves, and have offered a link where available. Another useful resource for this is a blog entry by Tim O'Reilly on the state of the computer book publishing industry. It had a little more detail in some areas, yet also didn't list all the publishers mentioned below.

  • Apress: Friends of Ed

  • Manning: none

  • McGraw Hill: Osborne and many others, but none in this space it seemed (from http://pubeasy.mcgraw-hill.com/pls/pubeasy/bepublist.publist_page)

  • O'Reilly: Pogue Press (O'Reilly source-- as it states, others listed there are distribution partners, not subsidiaries)

  • Packt: none

  • Pearson: Addison-Wesley , Adobe Press, Exam Cram, IBM Press, Macromedia Press, MySQL Press, New Riders, Novell Press, Peachpit Press, Prentice Hall, Que, Sams, Sun Microsystems Press (Pearson source), additional info from O'Reilly blog)

  • Wiley: Dummies, John Wiley, Sybex, Teach Yourself Visually, Wrox (Wiley source)

Hope that helps someone. And while it's accurate today (as far as I know), it could certainly become dated over time as transition in the industry continues, if you find this entry some months or years from now!

It's AttributeCollection, not AttributesCollection, ArgumentCollection, nor ArgumentsCollection!

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
By now I think most have heard of the new AttributeCollection option available for most tags in ColdFusion 8. It's a cool way to dynamically add attributes to a tag.

One problem, though, is that people seem to confuse its name. I've seen it referred to by different names both in current discussions and in older blog entries. Some of the confusion is understandable.

For the record, it's AttributeCollection, not any of the following:

  • ArgumentCollection: this is indeed a legitimate attribute for CFINVOKE, when calling a CFC method or UDF instance, or when used similarly calling an instance created by CFOBJECT or createObject.
  • ArgumentsCollection: well, this actually was the name of the attribute as of the Beta of CF 8. Ben wrote about it back then, so some confusion could stem simply from people seeing such older entries.
  • Arguments: Again, you may well see some blog entry or email list discussion mentioning this, because this what what the attribute was called in the Scorpio Alpha. There was a lot of discussion on blogs pleading that the attribute be named AttributeCollection instead. In fact, Damon Cooper wrote that there were "69 Beta forum message threads about the proper naming of attributeCollection" in his note on Engineering stats for CF8.
  • AttributesCollection: and ultimately, it was named AttributeCollection, but since it was for a while called ArgumentsCollection (with the s) it's understandable that some may made the final attribute name plural.

In case anyone's wondering, they may recognize AttributeCollection as not being new as of CF8. In fact, it's not. It was (us) used on the CFMODULE tag to pass in attributes to a custom tag (and also when calling a custom tag as CF_tagname).

For more on using the new attribute, as well as examples of its use, see the CF docs or blog entries by Ben Nadel and Brian Rinaldi. Those also explain where the tag cannot be used (just a small fraction of tags where it really wouldn't make sense, like CFIF, CFSET, and some others) and also how when you use it, you can't use any other attributes.

Hope that clarification above helps someone.

CF8 WACK Volume 2 Ship Date Announced at Amazon

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
I announced a few weeks ago that Volume 1 of Ben's CF8 Web App Construction Kit, which Ray and I co-authored, had finally arrived in physical form. Still, many kept asking, "so when's Volume 2 going to be available?" That day is now clear.

I got notice from Amazon today that it will be available November 21. Find out more about the book's contents, the several co-authors, or pre-order it, at:

CF8 WACK Volume 2

Free Tool Friday: Several free enterprise-class tools from Adventnet / ManageEngine

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
Back in August I provided news of several free Enterprise-class tools that CFers could use.

AdventNet ManageEngine and other tools

Today I'd like to offer still more, from yet another vendor: AdventNet, who have a line of tools led by their ManageEngine line, including tools for:

  • Network Monitoring
  • Application Monitoring
  • Password Management
  • Help Desk Management
  • Storage Management Software
  • Network Configuration Management
  • EventLog Analyzer
  • Wifi Manager
  • and much more

Some of these are useful on just a single computer, like the EventLog Analyzer, Wifi Manager, and Bandwidth Monitoring. Also, their application monitoring tools can be a great solution for those not yet doing any monitoring of their CF and other servers (yes, of course, there are many others out there that do that).

Their password management tool is to help multiple folks share passwords to central systems, a common need for groups of folks managing CF and other servers, and naturally their help desk and service center tools, among others, can also benefit a group of CF developers/admins.

SQL tools, for multiple database engines

Beyond the ManageEngine line there are several useful looking database tools in their SwisSQL line, including tools for:

  • Compare and Synchronize SQL Server
  • SQLOne Database Search Engine
  • Table and Data Migration
  • Oracle Migration
  • SQL Server Migration
  • and more

They have tools for SQL Server, Oracle, DB2, and Sybase, and some of their tools, like the multidatabase search engine and migration tools also support MySQL, Informix, and others.

Testing Tools

They also offer software testing tools, including load testing tools, and still more that I won't elaborate here.

Finding the Free Versions

Best of all, and the point of this entry, is that they offer free versions of nearly all these (and other) tools. And just as with the Quest tools I mentioned in the previous entry, these are not trials (though they offer them) but are really freeware editions. Yes, they may be limited in some way, but usually not in ways that will affect nearly all who would try to use them for evaluation or small-scale use.

You can find a list of all the freeware editions of their products here: http://www.adventnet.com/free-softwares-download.html . (And even though the ManageEngine and SwisQL tools have branded URLs, they all lead to the same adventnet.com site, and many of them are offered as freeware on this page.)

When you take a link for any of the products (using any of the links above), look for a link on each product page at the top right labeled "free edition/trial edition", where the link to the free edition will explain its limitations.

Certainly for CF developers who work alone or on small teams, you may find that all the free versions serve your needs just fine. Yes, there may well be open source solutions to each of the problems above, and I'm not discouraging their use.

It's just nice to see yet another company who makes enterprise-class software offering small-scale freeware versions for the kind of audience that seems typical of CF developers.

Certainly, as your needs grow, or for those in larger shops, the commercial versions of these tools then scale up to serve those larger needs. That's what they hope, of course. :-)

If anyone has used any of these tools, please share your experiences. So far I've used the Eventlog Analyzer and Wifi Manager and they were easy to install and use and were quite helpful. I look forward to exploring more of their tools.

"Free Tool Friday"?

Oh, and as for why I labeled this entry "Free Tool Friday", I hope to make this a regular kind of entry. In fact, I'd like to start talking about some of the individual tools that I mention above and in the previous entry, as well as others I have used or may find. It's always tough to set up a periodic contribution like that, meeting expectations, but let's see how I do. :-) If you want to tell me about other tools of this sort that you think others would appreciate, feel free.

CF8 Hidden Gem: New option to save java source for web service proxy--with createobject only

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
Have you ever wanted to see the Java source code for the proxy/stub that's created when you invoke a web service from Coldfusion? Well, here's a hidden gem in CF8 (one of dozens I discuss in my "hidden gems in cf8" talk) that does just this.

Curiously, it's only available when you invoke a web service using createObject(), not CFOBJECT or CFINVOKE.

It's enabled using the new ArgStruct argument that I discussed last month.

<cfscript>
wsargs = structnew();
wsargs.savejava="yes";

convert=createobject("webservice","http://www.webservicex.net/CurrencyConvertor.asmx?wsdl",wsargs);

writeoutput(convert.ConversionRate(FromCurrency='USD',ToCurrency='EUR'));
</cfscript>

You may wonder why you have to put it in this argStruct when it's the only key being put in the structure. That's just the way it is. Of course, I could have created the structure using the new implicit array creation syntax, as in:

wsargs = {savejava="yes"};

which replaces 2 lines with 1.

For those who don't care for CFSCRIPT

Of course, you don't need to use CFSCRIPT to use createObject, for those not comfortable with it. I could just as well have done it all in tags, as:

<cfset wsargs = structnew()>
<cfset wsargs.savejava="yes">

<cfset convert=createobject("webservice","http://www.webservicex.net/CurrencyConvertor.asmx?wsdl",wsargs)>

<cfoutput>var="#convert.ConversionRate(FromCurrency='USD',ToCurrency='EUR')#</cfoutput>

Where the Java source is placed

So where is the Java placed? In the same directory where the java proxy stubs have been placed since CF6: [coldfusion]/stubs/. In the case of the standalone version of CF8, that might be c:\coldfusion8\stubs.

Each invocation of a web service in CF (whether you use the saveJava option or not) will create a directory there, typically in a form like WS729914123 (one for each separate web service invoked by any CFML requests), and within the subdirectories of that directory you'll find class files reflecting the name of the called web service.

If you don't use the saveJava option, you'll see only class files. If you'll see corresponding .java source files for each.

Finally, note that the Java source files will be removed automatically if the web service is refreshed (manually or in the CF Admin) and you call it without the SaveJava option (which also means if you invoke it using CFOBJECT or CFINVOKE).

(*Update*: In the original entry, I said the source would be removed if you called the web service without the SaveJava option, but I should clarify that it's if you do that and you cause the web service to be refreshed, not just any call, since that would use the compiled result of the earlier call unless you told it to do otherwise.)

Still, for those who have long wished to better understand these Java proxy stubs, it's nice that we have the option to see the source if we want to.

Still more to come

There's still more power in CF8 for those that like to tinker with the java proxy/stub generation. More on that in a later entry.

My latest Adobe Devnet article on CF8 monitoring: Part 2, "Using the Server Monitor in production"

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
Some may be interested to learn that I've had another article published on the Adobe Devnet site yesterday: "ColdFusion 8 server monitoring - part 2: Using the Server Monitor in production".

This follows up the part 1, which focused on uses of the monitor in development. There will be 4 parts ultimately, all listed in the Developer Center, with the 3rd part discussing the alerts and snapshots features, and part 4 discussing the Multiserver Monitor, Admin API monitoring features, and various miscellaneous observations.

The CF8 monitor offers a lot more than many would think, and insight into certain inner workings of CF that we've just never had before. I try to highlight things that you may have missed if you've only glanced at it or attended brief overviews at conferences or user groups. I will likely to my own presentation on it in the future..

No one should read from this that I'm any less supportive of 3rd party tools like FusionReactor and SeeFusion. As I've stated before, there's clearly a place for those tools for shops not yet on CF8, and even once on CF8 I believe there are differences among all the tools that could warrant having more than one at once.

On the cover of the rolling stone...gonna buy 5 copies for my mother

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
Well, today I got to experience something I hadn't in 5 years: holding in my hands a book with my name on it. I've not talked about it much, but I'm privileged and honored to be one of the contributors to Ben's 3-part CF8 books (contributing to all 3).

Author copies of the first one arrived today, just as Ray announced also.

The first book is formally called, the Adobe ColdFusion 8 Web Application Construction Kit, Volume 1: Getting Started.

Look for the others (Volume 2: Application Development and Volume 3: Advanced Application Development) to come out in the future. Don't ask me when. I really have no idea.

Still other books in my past

What book did I do 5 years ago that I mention above? The ColdFusion MX Bible, which I did with Adam & David Churvis and Hal Helms. It came out in early 2003, just after the launch of CFMX 6. It got a lot of high praise and good ratings, due mostly to the efforts of "the Churvii" (the father and son Churvis team), who did most of the book.

Here's some trivia: in what other CF book was I a co-author? It's tricky, because if you follow the link for my name on the books above, it shows them only. But search for Charles Arehart instead. You'll see that I contributed to the original CF 4 for Dummies, with John Paul Ashenfelter and Alexis Gutzman. I did just one chapter (on CFMAIL), and as John will tell you, we both decried much of its content but the publisher and lead author were hard-pressed to get it out at the time (2000) and it went as is. The reviews suffered accordingly. I've never blogged my association with that book until now. Hopefully time has cast it to an abyss so there's no harm. :-)

That same year, I also contributed to Professional WAP, doing the chapter there on Wireless programming with CF. (With those multi-author Wrox books, I was listed first so many think I was the lead author, which was not the case.)

Like most, these books are a team effort

And so it was these CF8 books: I'm just one of many hands that make up each of the CF8 books.

But I do want to thank Ben for including me in the books this round. It's a great team of folks spread out over all the books, and I really am grateful for the opportunity to contribute.

Got Digital Voice (or some other cable/phone service) and having problems inside your house?

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
Jared Rypka-Hauer today wrote of a hassle he's experiencing with Comcast Digital Voice (their phone over cable service), and he asked if others had thoughts. I may well have an answer for him, or perhaps for others even with other similar phone-over-cable service providers. My wife and I were also suffering with it recently, until a rep found and fixed our problem--a hardware problem. Almost classic, from a geek perspective. :-) Perhaps you too may have it.

Did you previously have another phone over cable service before, like Comcast's "Digital Phone"?

The key question is whether you by any chance had the predecessor to Digital Voice, called Digital Phone (or perhaps any other phone-over-cable service that was like it rather than like Digital Voice, as I'll explain). If so, there may be a problem of something that was left behind in a switch to DV from DP, which could be conflicting with the new DV service. Removing that seems to have solved the problem for us.

Apologies to those who don't like wordy posts, but I want to explain things clearly for the benefit of others in the same boat.

DV service was bad for us--until this was fixed

My wife and I have been Digital Voice customers for about a year, and especially recently we grew VERY frustrated with it for some of the same reasons Jared describes, such as dropped calls, but also failed faxes, problems with the internet service, and even worse, we would occasionally lose all the phone service.

When we lost all phone service, if we connected a single phone to the digital modem (MTA) (inside the house, which feeds the phone line into a jack to serve the whole house), there was indeed signal. So they asserted it "must be something in our house", and they'd tell us to unplug all the phones in the house and wait a half hour, then reconnect. It would always work, but what a hassle! Kind of like a software provider pulling the old "reboot your computer" answer to a tech support question.

Naturally, my wife was fuming and investigating alternatives, when a couple weeks ago we had a rep come out to have a look (what to us was one last look) at things. What he found may well be the clue for Jared or others who had Digital Phone (or anything like it) before Digital Voice. And note that if we simply switched cable service providers, the problem may well have propagated into the new service (since the root cause wasn't the service to the house after all, but it also wasn't a problem inside the house).

What was Digital Phone? And what may be left behind from it?

Comcast's first step into cable-based phone service was Digital Phone. What's the difference? Well, those with the newer Digital Voice (DV) may have noticed that with it, the cable comes into the digital modem (or "MTA") which is inside your house, and out of that comes the phone signal via a normal phone wire that that's fed from the MTA into a normal wall phone jack somewhere nearby inside the house, and that then feeds the rest of the house its signal. There's no more need for any phone line to come into the house, so any outside wire like at the plain old telephone system (POTS) network interface device (or "NID") is disconnected. (picture)

But you may (as we) for a while have used Comcast Digital Phone (which came out before Comcast Digital Voice). And it's important to understand the difference, for this problem. DP worked in a way that was closer to the plain old telephone system (also referred to as POTS). The comcast coax cable from the street went first into a box that was on the OUTSIDE of the house (very much like the one used by the POTS, but a different one: picture). And out of that DP box came both the cable (which went on into the house like it had before installing DP) and also out of it came a phone line, which then was connected to the old phone system box/NID a few feet away, specifically to the phone jacks inside it that then fed phone signal into the house just as it always had in the POTS. (here's a picture)

When they switched us to Digital Voice last year, naturally that phone line into the house (through the POTS NID) was no longer needed, so whoever did the DV install of course removed the phone line going from the DP box into the NID to feed the house, and they set up the MTA inside the house, and so on as needed for the newer DV.

But here's the kicker and what the guy found 2 weeks ago: the DV installer had not only left the old DP box (outside, which he should have removed), but he also left the cable (coax) running through that outside DP box (updated info) and inside of it, it was going through a unit intended to take the DP phone signal out to feed it to the POTS phone box. Then the cable line went out of that box and on into the house. Most important, the rep pointed out that that unit inside the DP box was powered (they had tapped into the power line when they installed that DP box a couple years ago).

Power to the old DP box was interfering with the cable signal

Well, the problem was that the power to that box (and the unit inside through which the cable signal was passing) was directly interfering with the cable signal going out (which of course feeds the TV, phone/DV, and internet service). That would explain a lot of the problems we were having!

So he removed the old DP box (and its power line) updated: opened the old DP box and removed the powered unit inside of it, leaving the box but also disconnecting the power to it. More important he connected the cable inside the unit at that point (what went from the street, and what went into the house) so it was now uninterrupted. The signal is effectively "pure" going into the house, where it then goes to the MTA (the digital modem), and that (as for the last year) feeds the phone line, and the internet service and cable TV that are from there fed into the rest of the house.

So far all has been much better.

Your next steps

If you're not sure if this may be an issue for you (maybe someone had it setup even before you moved into a house in recent years), go out and check if there's a box outside your house on a wall near your phone box that looks like the old phone box. Or find where you cable comes into the house and see if it goes through some other box first, since they may have installed the DP box (or its equivalent) elsewhere outside your house and run a long line to the old phone box. Since that old phone line will likely have been removed, you may not see that.

If you have one of these boxes, and the cable goes into it and then out of it and on into your house, you may well have this problem. Another clue will be if you do (or don't) see a thick power cable feeding into the box. Since it's powered, you won't be able to open the DP box (well, you may find it has a "consumer" side that you can open, just like the old phone system NID, for you to test the phone line outside the house, but that won't show you the cable line to see if it's going through a powered unit as I described.)

But if you have something like this, call Comcast (or your provider, if in a situation like this) to have someone come out and confirm and if so remove it (which should be free, I'd think, especially if they offered the old service to you).

You may then enjoy DV, internet, and tv a whole lot more.

Could be a broader problem

Again, the problem may be generic to other cable systems (RoadRunner, Adephia, Time Warner, Cox, Charter) if they also have offered two generations of phone-over-cable service (or your house may have had it, even if from another provider, before you moved in).

Since setting up things like DV is mostly an "all inside" thing now, some installers may never even think to look at this potential problem. All they may do is unplug the old phone line going into the house and come in and setup the MTA and say, "enjoy". I wonder how many people could be suffering this problem and not know it.

Hope that helps someone.

Update

After writing the entry, I went out to take pictures of the units (which I've added as links above, keeping them rather hi-res to make them more legible). I realized I was mistaken when I said he had removed the old DP box. He had not. But what he did was remove the powered unit inside it and disconnected the power to it (he said) and left the box. I've corrected that above. The problem with this, though, for your diagnosis is that you have no way of knowing--if you do see that second box, the DP one--whether the cable line inside it is still going through the powered unit that should have been removed. You really have no choice, it seems, but to ask Comcast (or your provider) to come out and ocnfirm this, if you are having problems that seem otherwise unresolvable. Sorry for the confusion, but still, I hope it all helps someone.

Speaking at CFUnited Express Chicago, and I'll see you at Max

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
For those going to Max, or who will be in the Chicago area but not going to Max, note that there's the CFUnited Express event going on also in Chicago the day before Max, Sunday Sept 30th. It's a day-long conference (9-5) with several speakers, including myself, Ray Camden, Shlomy Gantz, and others. These Express events are much more intimate than CFUnited (or certainly Max), so it's a great way to meet other CF developers.

I'll be presenting two talks, both of which I've presented before (so well-practiced):

After that, of course, we'll enjoy the rest of the week at Max, and I'll hope to see you there! :-)

CF8 Hidden Gem: New ArgStruct argument for createObject with web services

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
Here's another hidden gem in CF8: did you know that there's a new optional "ArgStruct' argument for use with createObject(), when using it to invoke web services?

Following on my previous note about a new RefreshWSDL option in CF8 for CFINVOKE and CFOBJECT, I mentioned there that it was also an option in the createObject() function, but naturally it can't be passed as a tag attribute like with those above.

Instead, it's enabled using this new ArgStruct argument. Technically, it's not "named" ArgStruct but rather it's simply a new optional 3rd argument you can specify when invoking a web service (the term "argStruct" simply comes from the CF docs for the function, where it refers to it by that name. (While yo umay notice that the docs indicate this also allows setting a timeout for the web service invocation, note that that only times out the requesting of the WSDL, not subsequent method calls against the object.)

Anyway, in that structure you create, you simply define RefreshWSDL as a key within it, all of which is passed into the createObject() function as that 3rd argument:

<cfscript>
wsargs = structnew();
wsargs.refreshwsdl="yes";

somevar = createobject("webservice","http://[server]/[webserviceurl]",wsargs);
...
</cfscript>

Of course, you could just as easily do all the above in 3 CFSET tags. It doesn't matter. The key is the addition of the 3rd argument to the createObject(). And it doesn't matter at all what you call the structure (I named mine "wsargs").

Now, you may think this approach seems clumsy, and ask, "why didn't they just permit the refreshWSDL itself as a new argument on the createObject()?". It's a fair question.

But it turns out there's actually a little more to this new ArgStruct option, and it's different enough that I'll talk about it in a separate entry.

More Entries

Copyright ©2024 Charlie Arehart
Carehart Logo
BlogCFC was created by Raymond Camden. This blog is running version 5.005.
(Want to validate the html in this page?)

Managed Hosting Services provided by
Managed Dedicated Hosting