News

 Subscribe Add to Technorati Favorites

 

 

 

 


 

 

Search My Blog:

 

 

My Stats

  • Posts - 468
  • Comments - 242
  • Trackbacks - 265

Twitter












Tag Cloud


Recent Comments


Recent Posts


Archives


Post Categories


Blogs


Miscellanous


Noteworthy Stuff


Popular Posts


October 2005 Entries

EDI AS2 Connector screencast


My co-worker James put together this great screencast (WMV or Flash) about the IP*Works! EDI AS2 Connector application.  This is an eBusinessReady certified .net web app that makes it really easy to get setup and transact with your trading partner.

Technorati tags:    

posted @ Friday, October 28, 2005 11:35 AM | Feedback (1) |


Integrate your applications with QuickBooks


The beta is out for version 4 of the IBiz Integrator for QuickBooks.

New features for this version:

  • QuickBooks Merchant Services
  • Payroll capabilites
  • Enhanced support for international QuickBooks versions
  • High-performance batch processing
  • Linked transactions

Here is a list of component included in the toolkit.

posted @ Friday, October 28, 2005 11:02 AM | Feedback (0) |


IPWorks LDAP auth tutorial - classic ASP version


This article on ASP Alliance explains how to use the IP*Works! .Net LDAP component in an ASP.Net web application. A lot of people have emailed me asking about how to do this in classic ASP. For those people, here is the same information told from the perspective of the classic ASP developer, using the Ldap component from IPWorks ASP Edition.

posted @ Friday, October 28, 2005 10:41 AM | Feedback (1) |


Adding multi-user chat capability to my custom jabber client


Adding multi-user chat to my jabber app The XMPP component provides extensibility by providing the developer with the capability of sending custom commands as well as overseeing all incoming messages so that you can add custom handlers for them. For example, there is a jabber extension proposal to provide a means for multi-user chat capabilities. Multi-user chat for Jabber is defined in JEP-0045.

To add chat capabilities to my own jabber client is fairly simple and straight-forward. First, I added functions to send custom commands to the server for joining and leaving chat rooms:

    Private Sub JoinRoom(ByVal groupname As String, ByVal conference As String)
Try Xmpps1.SendCommand("<PRESENCE to='" + groupname + "@" + conference + "/" + Xmpps1.User + "' from='" + Xmpps1.User + "@" + Xmpps1.Config("Domain") + "' />")
Catch ex1 As Exception
MessageBox.Show(ex1.Message)
End Try End Sub Private Sub LeaveRoom(ByVal roomname As String, ByVal conference As String)
Try Xmpps1.SendCommand("<PRESENCE to='" + roomname + "@" + conference + "/" + Xmpps1.User + "' from='" + Xmpps1.User + "@" + Xmpps1.Config("Domain") + "' type="unavailable" />")
Catch ex1 As Exception
MessageBox.Show(ex1.Message)
End Try End Sub

And another for sending an invitation request to a room (In the JEP, invitations are sent through the room itself so that the server can administer access rights and such):

    Private Sub InviteUser(ByVal invitee As String, ByVal roomname As String, ByVal conference As String)
Xmpps1.SendCommand("<MESSAGE to='" + roomname + "@" + conference + "' from='" + Xmpps1.User + "@" + Xmpps1.Config("Domain") + "'><X xmlns="http://jabber.org/protocol/muc#user"><INVITE to='" + invitee + "'><REASON>You've been invited to chat!</REASON></INVITE></X></MESSAGE>")
End Sub

At this point I could successfully create/join a chat room, invite a buddy to join the chat room, and leave the chat room. Next issue: sending and receiving messages.

To send a message to the room, I need to do more than just specify the recipient of my message as the room itself. I also need to set the MessageType property of teh XMPP component to be a "GroupChat" message. No big deal. I use the same SendMessage function as before to handle the sending, except I added a parameter to it where I could specify the messagetype.

SendMessage(XmppsMessageTypes.mtGroupChat)

Now this is the same SendMessage function except for three changes:

  • I now set the XMPP MessageType to the parameter value.
  • If the outgoing message is going to a chat room, I specify the jabberid to send to with group chat service name appended, ie: "chatroomname@conference.server".
  • I dont add the outgoing data to my conversation history textbox if it is a GroupChat message (because the group itself is going to echo what I send to it).

Next issue: All the messages coming from people in the chat room show up in my client as being from the chat room itself, rather than from those buddies. This is because the messages are from the chat room itself. :) However the server does send the nickname of the buddy who initiated the message in the place of the resource. To accomodate for this, I modified my MessageIn event slightly to check to see if the Domain is my conference service. If it is, and a resource is specified, then I know this is a message from a member of the chat room: Dim nick As String = e.From If e.Domain.Equals("conference.testboy") And Not e.Resource.Equals("") Then nick = e.Resource If i > 0 Then 'add the message to an existing chat tab w/o changing focus NewMessage(i, nick, e.MessageText) Else 'create a new chat tab, don't change focus NewMessage(-1, nick, e.MessageText) End If

Thats it, I can now create/join rooms, invite users, and converse back and forth. Now I need to add the ability to accept invitations from other users. To do this I can add code to either the PITrail event or the MessageIn event where I can look for the invite element being sent in the body of the message and act accordingly. If I see this invite element defined in the message coming in, I can look for the from tag to see who has invited me and to what room. Now if I want to accept the invitation I can use the same JoinRoom function that I showed previously:

    Dim prompt As String = inviter + " has invited you to join the chat room """ + roomname + ".  Do you wish to accept?"     If MessageBox.Show(prompt, "Chat Invitation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes Then         JoinRoom(roomname, conference)     Else         DeclineInvitation(roomname, conference)     End If

posted @ Thursday, October 27, 2005 2:07 PM | Feedback (2) |


Sending email w/ IPWorks


If you're using IPWorks for sending email, here are a few things to be aware of:

1.  If you do need to send email with IPWorks, I generally I recommend using the HTMLMailer component for sending email because it has the most comprehensive functionality out of all the IPWorks email components. You can easily add attachments to an outgoing email by using the AddAttachment method. You can easily add an HTML part to your message by setting the MessageHTML property - or you can just send a plain text message simply by setting the MessageText property.

2.  If you tell the component to send a message, and the component is not already connected to the mail server, it will automatically connect, send, and then disconnect.  Why is this important?  Because I see a lot of people mistakenly putting the call to the Send() method in a loop without first calling the Connect() method to connect to the mail.  This of course has the effect of the component reconnecting over and over again!  Bad!

If the component IS already connected to the server when you call the Send method, then it will simply send the message and your connection is kept open. For this reason, be sure to explicitly call the Connect method of the HTMLMailer component to connect to the server prior to entering the send loop if you plan on sending multiple messages consecutively.

3.  Emails could be sent through your own mail server, or you can send each mail directly to the mail server of the recipient. Of course if all of the recipients are served by your own mail server, this choice doesn't apply!

If you choose to send each email directly to the recipients mail server, first discover the server for each of your recipients. You can do this by sending an MX record DNS request for the hostname of the recipient email address (The IPWorks MX component does this for you, or you can use the IPWorks DNS component which supports MX as well as many other DNS record types. The trial installation includes samples for both of these components). Then group outbound recipients by mail server so that if you have multiple recipients being served by the same mail server you can take care of them at the same time. Then when you process your list follow the same advice in #2 above and explicitly connect to each server so that you don't disconnect in between multiple sends to the same server.

posted @ Thursday, October 27, 2005 12:33 PM | Feedback (0) |


IPWorks PHP Extensions for *nix


This is cool! All of the Unix Editions of IP*Works! now include extensions for php development! Read about and/or download the Unix Editions. I'm particularly interested in what people have to say about this, especially from php and OSX developers.

posted @ Thursday, October 27, 2005 10:01 AM | Feedback (0) |


Identifying Active Directory


When you connect to a directory server, you can do a DSE search to determine if it is an AD server or not. If the supportedCapabilities attribute contains the value "1.2.840.113556.1.4.800", you know it is AD.

How do you perform a root DSE search using the IP*Works! Ldap component? This is discussed in an LDAP tutorial on the nsoftware website. Basically its just a search in which the DN is blank, the search filter is "objectClass=*", and you have a base level search scope.

posted @ Thursday, October 27, 2005 9:56 AM | Feedback (0) |


EDI AS2 Connector


/n software has made available in PRERELEASE form the IP*Works! EDI AS2 Connector. It is completely free for 1 trading partner.

The software itself is a .Net application with an embedded web server, which allows you to configure trading partners to exchange EDI documents with over AS2.

Technorati tag:
Technorati tag:

UpdateEDI AS2 Connector screencast (WMV or Flash)

posted @ Wednesday, October 26, 2005 3:01 PM | Feedback (0) |


Did you fall asleep at PDC? Miss some sessions you wanted to be a part of?


Hundreds of hours of PDC 2005 videos.

posted @ Tuesday, October 25, 2005 6:32 AM | Feedback (0) |


Halloween Doggies


If you like dogs, take a look at these rat terriers dressed in Halloween costumes.

posted @ Monday, October 24, 2005 7:12 PM | Feedback (0) |


MS WSYP: We Share Your Pain


A must watch video introduction to WSYP.

posted @ Monday, October 24, 2005 7:23 AM | Feedback (0) |


This is great: Joel On Web 2.0 and the like


Joel Spolsky rants about some of the technobabble that has become somewhat overutilized and annoying lately. Web 3.14 blah blah.

While I enjoy listening to the InfoTalk series of podcasts from Podtech.net, it does become annoying when John Furrier says "web 2.0" about every 5 minutes.

posted @ Friday, October 21, 2005 8:11 AM | Feedback (2) |


New iPod! Wow, look at this innovation leader! </sarcasm>


The new iPod now has a color screen and will play videos and photos - not just audio. Wow...the iPod is one step closer to becoming a Pocket PC!

Loooooooooong way to go, though.

posted @ Wednesday, October 12, 2005 1:51 PM | Feedback (0) |


Gada be metasearch


Chris Pirillo announces his new gada.be search aggregator.

Unique twist in implementation, very slick interface. Sweet.

Technorati tag:

posted @ Monday, October 10, 2005 12:38 PM | Feedback (4) |


My ultimate tool list


Here are some ultimate tools that Scott Hanselman missed:

For developers:

  • Ethereal, the network sinffer.
  • Secure Tunnel, add SSL to any insecure server, very useful for logging and debugging tcp apps.
  • REST. Ok, so its not an application. But its still a useful tool. :)

For everyone:

  • Windows Remote Desktop. Yeah, I know - but it is very useful.
  • Camtasia Studio, good for recording video & audio from your desktop.
  • Bloglines, etc., for reading and searching blogs of course.
  • VS.Net Command Prompt. Yep.
  • Email Templates. Scriptable email time-saver.
  • UltraEdit. Text Editor, and so much more.
  • SpyBot S&D, how could anyone leave this off an ultimate tool list?

posted @ Thursday, October 06, 2005 8:25 PM | Feedback (0) |


World-wide "Thanks to the Delphi R&D, QA, and Doc Teams" Day


Thanks Borland! Thanks Delphi team! As a component vendor company with a variety of Delphi toolkits, /n software has been working with Delphi for as long as I can remember. Borland always puts out rock solid tools that are fast, powerful, and extremely productive!

posted @ Thursday, October 06, 2005 2:57 PM | Feedback (0) |


Findory API


The Findory API. Neat.

posted @ Thursday, October 06, 2005 9:19 AM | Feedback (0) |


NerdTV Feed


Dave points out that there is a podcast feed for NerdTV. PPR subscribed. Unfortunately the feed only contains one item at a time. I'll have to download the old episodes manually.

Technorati tag:

posted @ Thursday, October 06, 2005 8:56 AM | Feedback (0) |


Desktop vs Online Aggregators


Scott thinks that desktop aggregators have no future. I have to agree. I used to be a FeedDemon user. FeedDemon is a great piece of software, and Nick is smart enough to allow owners to install it on multiple machines - however I found it annoying having to maintain new and removed subscriptions between my work and home installations. Since FeedDemon was purchased by NewsGator I haven't tried the new beta's - for all I know they provide a method of synching subscriptions between installations now, I don't know....but in the meantime I've already switched over to Bloglines, and I love it.

I will say that being a FeedDemon user felt like I was using a piece of software that was really cared about and supported well. On the other hand, I made one feature suggestion to Bloglines (to allow me to specify my own title for a feed I add to my subscription list, since some of them are too long to display neatly in the Bloglines "My Feeds" list) and the response I got back was less than stellar. I was told to add the feed, then edit it to change the title. Duh, I already knew that but thanks for the news flash mister helpful Bloglines support personnel! Modifying your user interface to provide convenience to the user should be a high priority, but I'm not sure if it is at Bloglines after this experience.

Maybe I should take a look at some of the other online services like Findory. Maybe I will work out my own solution with the IP*Works! RSS component.

posted @ Thursday, October 06, 2005 8:43 AM | Feedback (2) |


Web Deployment Project for VS2005


Steve Smith points to a new "Web Deployment Project" addin for VS2005 that will apparently be included in VS2005 when it is released.

posted @ Wednesday, October 05, 2005 12:50 PM | Feedback (0) |


Infragistics is blogging


News from Devin Rader that Infragistics is blogging. Check our the Infragistics bloggers at http://blogs.infragistics.com (RSS).

posted @ Wednesday, October 05, 2005 7:48 AM | Feedback (0) |


Gmail: Customized From address implemented


What's New in Gmail? Lots! One of the features I (and lots of others apparently) requested is the ability to customize the FROM address used when I send email from my gmail inbox. This really expands the power of gmail, and allows me to use it to manage email from all of my domains.

Now I have configured all of my incoming mail in all of my personally owned domains to forward to my gmail account. I have defined gmail filters there to label and archive these incoming messages into different labels for each domain. This is great!

posted @ Wednesday, October 05, 2005 7:40 AM | Feedback (0) |


Browser PA


Daan from Matirsoft pointed me to their Browser PA product. Developed in .Net, this thing has so many features its amazing. While it won't tear me away from Bloglines, this is one neat and feature packed tool:

  • Multi-engine web search (including blog, print, and video searches)
  • Read RSS feeds
  • IE Favorites and History organizers (much better than the one that comes with IE)
  • System tools like IPConfig, DNS query, etc.
  • Explorer-style interfaces for folder browsing and tasks

posted @ Wednesday, October 05, 2005 6:44 AM | Feedback (0) |


.Net CF Developers: The real meaning of "Could not find resource assembly"


Straight from the .Net Compact Framework Team blog, what does Could not find resource assembly really mean?

Technorati tag:

posted @ Tuesday, October 04, 2005 2:51 PM | Feedback (0) |


Google Talk and IP*Works! - updated


I've updated the Jabber demo that was the result of this Create Your Own Jabber Client With IP*Works! tutorial, so that it now uses SSL so that it is compatible with Google Talk and other Jabber servers that support SSL and SASL/Plain authentication. Here is the updated demo.

If Microsoft supported Jabber on Messenger, I would not have to ask all my MSN contacts to move to Google Talk. Same for AIM. Oh well. See ya MSN. See ya AIM. No more multi-IM client on my machines!

Technorati tag:

Update:  No, you do not need to install IP*Works! SSL just to run this sample application.  If you want to open the project in Visual Studio and modify and rebuild it, then yes you will need to download IPWorks SSL in order to do so.

posted @ Monday, October 03, 2005 1:26 PM | Feedback (0) |


Hello, Mrs. Andersen. Record Company matrix of stupidity gets sued.


Recording Industry vs The People reports on Atlantic v. Andersen. Ms. Andersen sues RIAA.

posted @ Monday, October 03, 2005 11:46 AM | Feedback (7) |