ImapBack:
ImapBack makes a complete copy of your emails, on any IMAP server, from Gmail to Google Apps, to your own custom IMAP server located anywhere in the world! These backups can be stored on another IMAP server, on our servers, or on your local hard drive. You can schedule any interval of backups (Daily, Hourly, Weekly, Monthly) as well as creating a backup on-demand.
On a related note, if you need an easy way to view and control IMAP access control, check out my IMAP ACL Manager application.
Technorati Tags:
IMAP,
Backup
No, lostphonebook.com doesn’t exist. But I was thinking of buying it, and putting up a little mock “lost” flyer, complaining that I have lost my phonebook. The flyer would ask that if you have found a “lost” phonebook in your driveway or yard, that you simply return it to its owner.
Then of course, I would proceed to offer my address by asking you for your zip code, and what type of phonebook you found. The website would look for the closet phonebook publisher (ie, AT&T publishes “The Real Yellow Pages”) to your zip code and provide directions to that location, asking you to simply deposit said phonebook in their driveway or yard.
I would love nothing more than to see the front of the AT&T Raleigh offices littered with so many useless phonebooks that workers couldn’t even get through the front door.
Technorati Tags:
Phonebooks
My friend Julie told me about
Pandora Radio a while back, but I never got around to checking it out. Well, I finally did today, and she is right about it. Its awesome! Pandora allows you to custom make your own radio station, playing the music you request and other music similar to it. You can also share your station, and listen to the shared stations of other members and friends. In my case, just what the doctor ordered for a Sunday morning of background music while doing some chores around house.
If you’re reading this (and you’re not just one of my friends or acquaintances who is stalking me), you know you’ve done it. Yep, you know you have. You’ve spoken to someone or written to someone in various computer languages. It just happened here at /n software in an IM conversation between two of my co-workers, James and Tom. James is trying to get a group of people together to see the Pink Floyd Experience. James IM’d Tom in RSBScript (For you nerds that don’t know, RSBScript is an xml-based language used to help create and consume web services with RSSBus):
<rsb:equals attr="Tom.isGoingToFloyd" value="true">
<rsb:else>
<rsb:unset item="Tom" />
</rsb:else>
</rsb:equals>
Translated into C#, this says:
if (Tom.IsGoingToFloyd())
{
}
else {
Tom.Dispose();
}
Only a true nerd could appreciate something like this, so naturally I laughed. :)
The first example of this extremely nerdy yet all too common act I can think of was a silly one that my friend Todd signed in my yearbook in high school (yep, we were nerds then too). Todd and I we were in AP Computer Science together, where Pascal (no, not even turbo pascal, the use of which actually lost me points on my final project!) was taught. Before you read this, know that me, Todd, and Luther used to all be best friends. Todd and Dana were a bit of an item, me and Aimee were dating, and Rose was this strange girl who seemed to be obsessed with Todd, and poor Luther had no women in sight. Here’s what Todd wrote (warning: do not read unless you are prepared for some serious high level nerdiness):
Lance; {Crackers is what we used to call you }
program TheEndOfTheYear (var Dana, Aimee:Babes; Lance, Stodd:Studs);
type funtype:char;
var Luther:needsagirl;
begin
{ //ok, this part was random stuff that Todd wrote, which I'll skip }
Girls:=0;
Luther:=Girls;
Joy := plenty;
Todd + Lance := Joy;
repeat
Kiss(Lance, Aimee);
Kiss(Todd, Dana);
until (Death or ExtremeHappiness);
for Counter := head to toe do
LoveYourWoman;
while Rose = Alive do
HitAndKick(manytimes);
end.
Yes, I am aware of the nerdiness level. No, I am not ashamed. Pascal Lance out. (:P Tom)
Update: deadline pushed back (another week?) for the scripting contest.
In case you missed it, the guys over at the PowerScripting Podcast are hosting a scripting contest. Hurry though, the deadline is Sunday! They’re giving away free licenses of NetCmdlets and PrimalScript 2007.
This incomplete tutorial gets a person started, but then bails on the second half of the process of configuring actual users. Instead it points you to the man page, which is basically useless and conflicts with directions mentioned in the snmp.conf man page! Ugh!
This page is a little bit better, it helps me get an authNoPriv user up and going.
From there, I was able to add my authPriv users too:
- As described in the first tutorial mentioned above, run snmpconf –g basic_setup and then copy over the conf file.
- net-snmp-config –create-snmpv3-user –a “auth_password” –X DES -x “des_password” desuser
- net-snmp-config –create-snmpv3-user –a “auth_password” –X AES –x “aes_password” aesuser
Technorati Tags:
net-snmp,
snmpv3
On last week’s PowerScripting Podcast, Jonathan Walz and Hal Rottenberg interview /n software’s Eric Madariaga about NetCmdlets and PowerShellToys (PowerShellASP).
My favorite part was when Hal was shocked to hear that a telnet cmdlet was added to the v2 beta. Hahaha. I completely agree – who uses telnet anymore? But that was actually the biggest request we got from people who were using v1 of NetCmdlets! We already had cmdlets for executing commands over ssh…but people really wanted telnet. This shows you how many sys admins are still using this older means of working remotely. Jonathan was under the impression that telnet isn’t included on Vista – he’s correct that it is not installed by default, but you can install it from the Windows Features Control Panel tool.
Hal asked Eric how the PowerShell server managed the keys that are used for its SSH authentication. The answer is that it doesn’t. The PowerShell server only supports user/password authentication, not public key authentication. If the demand is there, public key authentication can be added pretty easily (we already have this technology implemented in our IP*Works! SSH developer toolkit). With PowerShell Server, you point it to a Windows user group that is allowed to authenticate, and when you connect to it you use that user/password. I’ve been meaning to do a blog post comparing remoting through WinRM (what PowerShell 2 uses) with remoting through the NetCmdlets PowerShell Server, but I haven’t gotten around to it. Long story short? PowerShell Server is SIMPLE.
Eric mentioned the fact that Sapien has integrated PowerShellASP support into PrimalScript, which is awesome. PrimalScript is a fabulous editor.
Also mentioned in the interview:
- PoshBoard, which is an awesome PowerShell dashboard that Hal told me about a while ago. The developer, Antoine Habert, contacted me about integrating PowerShellASP with it. Lots of really cool potential here.
- On the NetCmdlets road-map: SharePoint cmdlets, EC2 and SimpleDb cmdlets, BizTalk cmdlets, Shipping (FedEx, UPS, USPS) cmdlets.
- Free hobbyist license of NetCmdlets.
- The famous PowerShell stickers. There’s a “PowerShell Driven” Flickr group where you can upload a picture of your car (or laptop, or whatever else) sporting your new PowerShell sticker!
- /n software doesn’t have a NetCmdlets blog. At least not an official one. :)
I hate when people send me an email with a .rar (or similar non-.zip) attachment. I realize that rar has some special features that set it apart - but those features are not really very important when you're just talking about sending me a small non-commercial c# project in an email.
I think I will create my own custom compressed archival format, and start sending out .lnc files (which doesn't stand for "lance", but something creative that implies its the worst compression format ever, like "loco nasty compression" or "like...not compressed" or "lame non-zip creation") instead of .rar or .zip. Then everyone who wants to open one of my email attachments will have to download and install my software.
And when someone replies back to me and says - "Can you send me a zip instead of an lnc?" I'll just be like "What?? You're still using zip? Ugh. Dude download WinLNC already, its 2008. I sure hope you're not using that 'compressed folders' crap that is built into Windows like all the other Microsoft sheep." Then I'll post information on the WinLNC website about buying the WinLNC subscription package, and false testimonials from all my "customers" raving about how WinLNC is soooo much better than all the other available tools. Then I'll upload the free trial version to download.com and similar sites and write a script that automatically passes through anonymizing proxies and downloads my software once every 5 minutes.
Before my PowerShell friends think they're immune, soon to follow will be the read-lnc and write-lnc cmdlets.
Are you thinking the same thing I'm thinking, Pinky? I'm going to take over the world [of compressed archives]!
On the home front:
I’m planning on trying some triathlon events, although I really would prefer to try some adventure racing instead. First I’m going to start with a tiny little super sprint triathlon, where the distances are very short. First I have to wait for my ankle to get healed though, but the swimming part will be the only tough leg for me so I can train for that even with the injury (for those who don’t know, I took a bad sprain playing volleyball about 5 weeks ago). I’m also planning on my first half marathon in November. I need to get to work training for this one ASAP if I am going to make it. I’m sure that I’m out of shape since I haven’t done any running in the last 5 weeks. For now swimming and mountain biking will be the bulk of my exercise. Got any good advice for me?
I have recently enjoyed live performances of Iris Dement, The Bowerbirds, and Tom Petty. I love live music! We also went to see Dave Attell, who was absolutely freakin’ hilarious! I went to all of these with someone I met recently, and I’m having a blast spending time with her. Her music taste is much like mine (which is not exactly common), and we get along great.
My friends keep making fun of me because I have it in my head that I want to buy a 2009 Toyota Prius. I don’t think the Prius body style is as lame as they say, but for all that mpg I don’t really care either. Right now I drive a 2002 F-150 gas guzzler, which has its uses of course…but also has its hefty gas price tag. Maybe I’ll keep it too and just park it most of the time. Maybe whatever gas money I save on a new hybrid I can throw into buying a boat! Thats not exactly a step in the carbon-neutral direction, huh? Everytime I drive over the lakes around the area I am so completely jealous of those people I see riding their waverunners, skiing, wakeboarding, etc. I want to get out there, but a ski boat is a big chunk of money to drop. Is it worth it?
Its almost time to go white water rafting! Can't wait for that! :P Then I want to learn how to do some river kayaking.
From the work front:
What have I been doing at work lately? I’ve been spending a lot of time at work playing with SharePoint, the PowerShellToys’ PowerShellASP which lets you create ASP.NET apps with PowerShell script, and I set myself up with a brand new openSUSE 11 (this is a great distro) machine where I’ve been spending a lot of time in MonoDevelop.
Speaking of PowerShell and ASP.NET – check out PoshBoard [at CodePlex], Antoine Habert’s PowerShell driven ajax portal. Antoine has a nice little video on his blog.
/n software has also made a small flurry of new announcements over the past week or so.
- New release – IP*Works! EDI/AS2 V8. Another fresh round of Drummond cert tests are complete. On top of the insanely popular AS2 components, we’ve added OFTP, FTPS, and a new java GISB component. A new AS2 Connector application is coming out of the pipeline soon too!
- New release – Paymentech Integrator v5. Paymentech Integrator is probably my personal favorite of all of our credit card processing components. With PABP/CISP compliance being so important, this new release has been highly anticipated. This release adds Canadian Debit and Health Care/FSA support.
- New beta – UPS Integrator. Unlike the other /n software shipping integrators (FedEx and USPS), this one does NOT include the ability to generate shipping labels. While the technology is there, unfortunately UPS licensing restrictions will not allow us to release a component that generates UPS shipping labels, but we are trying to work with them to change this. If this is something you’re looking for, do contact me so that I can get your comments passed on to the right people at UPS!
- New beta – SharePoint Workflow Extensions. The toolkit includes SharePoint Activities for Internet communications, namely FTP (ssl & ssh), RSS, email, sexec, SMPP (sms messaging), SNPP (paging), and XMPP (jabber).
In the past I gave examples of using the get-ftp and send-ftp cmdlets for PowerShell, but recently a user pointed out that I didn’t show any examples of public key authentication using the cmdlets.
Of course the –ssh flag tells the get-ftp and send-ftp cmdlets to use SSH (instead of plain text FTP, or an SSL connection which is turned on with the –ssl flag). For SSH connections, the AuthMode parameter determines what type of SSH authentication to perform – in this case that will be “publickey”. The “Cert” parameters (-CertStoreType, –CertStore, –CertPassword, and –CertSubject) are used to point to the specific private key you’d like to use for authentication. If you’re using a pem key, –CertStoreType will be “pemkey”. Use –CertStore to point to the actual file itself, and –CertPassword will be the password required to open the file. -CertSubject is used to refer to the specific certificate in the file – or just use “*” to pick the first (or only) certificate in the file.
get-ftp -server 10.0.1.159 -user lancer -ssh -AuthMode publickey -CertStoreType pemkey -CertStore C:\id_rsa -CertPassword (read-host -assecurestring "Enter Password") -CertSubject "*"
I uploaded a new version of the IMAP Access Control List Manager today. This new version adds support for SSL/TLS implicit and explicit connections, CRAM-MD5 and NTLM authentication, an IMAP communication log, and a few other minor and cosmetic changes.
Technorati Tags:
IMAP,
IMAP ACL,
ACL
I got a free version of SlickEdit in return for blogging about the experience. So here is my feedback, good and bad.
Good: First thing I noticed when I installed it: this is not your ordinary text editor. I've been using UltraEdit for several years now, and I like it. UltraEdit has some developer-centric capabilities, but they are not integrated tightly into the product as is the case with SlickEdit. For example, SlickEdit will automatically expand if and for statements, and try blocks, although I didn't see a way to have it automatically generate the finally clause. Honestly, despite any negative criticism that I have of SlickEdit, I think that this is the kind of application that has so many features that in order to properly appreciate them you must use it for a long time, so I plan to revisit this evaluation in the future.
Good: Ctrl-F worked for find, but I'm used to F3 doing the "Find Next" (From Visual Studio and Ultra Edit). A quick look in the Options menu allowed me to change my keyboard emulation from CUA () to Visual Studio Defaults. Problem solved. Very nice.
Annoying: The next thing that came up, when I hit ctrl-N to open a new page, instead of just giving me a new untitled page, it gives me a window in which I have to choose the type of file I want to create. Its default is "automatic", which gives me what I want but still requires me to click an "OK" button. I'd rather eliminate this step and have it figure this out the file type on its own after I do a save-as and assign it an extension.
Annoying: I created two unsaved files containing some xml, and when to compare them to find out the difference(s) in the two files. I found a "File Difference" option under the Tools menu. It gives me a dialog with two file path inputs, both empty. I would expect the two most recently edited/opened files to be pre-populated there as they are with UltraEdit. I thought this was going to be a lot of extra clicks but then I saw the little "B" button next to the two path inputs that allowed me to choose the "buffers" (the files I had open in the editor). Only like 6 extra clicks. Not so bad, but could have been smarter.
Annoying: I wish it had asked me during the install process if I'd like to update my file associations. Instead I have to go searching around in the menus for it.
Good: The code navigation feature is sooooo useful. If you are editing code, and you want to see the definition of a particular call, just hit ctrl-. and SlickEdit will jump to the definition. I use this fairly often.
Good: Built in backup history allows you to view previous versions, and even merge and diff different versions. Awesome!
Overall, I'd have to say this is a great app. Incredibly powerful. I will post more details about this later, as I continue to compare with UltraEdit.
Now Playing: Bob Marley & the Wailers - Exodus
Technorati Tags:
SlickEdit
I checked out a few applications that claimed to be able to convert Audible's crappy DRM'd .aa files to .mp3. All of them failed (for me at least), except one: Total Audio Converter from coolutils.com. For a well spent $19.99 I am now able to automatically convert my Audible downloads to a format (mp3) in which they will work on my cell phone and my mp3 player, neither of which are otherwise supported by Audible. Woohoo!
Now if only Amazon would provide direct MP3 downloads for Audible books (where possible).
I have the output folder for Total Audio Converter set to a Live Mesh folder, so that I can have access to my books both on my laptop at home and on my desktop at work. And my friend Eric pointed out that Total Audio Converter supports command options, so I can completely automate the whole process from the point of downloading from Audible! All I'll have to do is start the Audible download and voila!
Update: I amm using Audible Download Manager 6.5, and Audible Manager 5.1.0.2.
/n software walks away from Tech Ed this year with the Best of Tech Ed 2008: Software Components & Middleware, given for the Red Carpet Subscription. Woo!
Red Carpet Subscriptions give you everything you need in one package - components for every major protocol from FTP to IMAP to SNMP, SSL and SSH security, S/MIME encryption, Digital Certificates, Credit Card Processing, ZIP compression, Instant Messaging, Shipping and Tracking, and e-business (EDI) transactions.
Windows IT Pro lists all the winners on their website.
Unfortunately I missed TechEd this year. While my co-workers were there having a good time, I was at my desk working hard. But the good news is that there are lots of new version upgrades on the way soon!
I still haven't found a very convenient way to listen to Audible books. I don't want to go out and buy a new phone or a new mp3 player just so that it will work with Audible's unnecessary restrictions. Burning to CD's is a bad option because at a minimum of 14+ cd's per book, its just wasteful. CDRW's are out because the cd player in my car can't read them. Audible's software players are decent, but they are only supported on the desktop (I don't want to listen to books on my desktop) and specific devices. I tried it for a while on a Pocket PC device that I had access to through work, and while it was fine for in the car it was too large and bulky to take running with me. So finally I started burning the books to a set of CDRW's (which I repeatedly use just for this purpose), then I rip each of those cd's one by one, and finally I move the resulting mp3's onto my phone (for in the car) or my mp3 player (for when I go running). Pain. In. The. Butt.
So recently I tried Audible Air, Audible's java player app for mobile phones. It isn't supported on my phone, unfortunately. So I emailed them and got a very detailed and polite response about why Audible Air won't work on my phone (the device manufacturer has to update the firmware so that it can understand the DRM blah blah blah). BS!
Then I saw a post on Boing Boing about how Amazon (Amazon purchased Audible early this year) said that it would not remove the DRM from Audible's audio books unless customers complained enough. So, if you're an Audible customer (or would like to be in the future), I hope you'll take a moment to email them and share your frustration about DRM. Here is the email I sent to audible@custhelp.com:
I hope you'll also pass along these comments about your DRM, so that things can change. I read that Amazon plans to keep the Audible DRM unless customers complain enough. Well, here is my argument against DRM:
You said - "The encryption is required by the publishers to insure the security of their book files..." While this may have been true at one time, I believe this statement is now incorrect. Random House nows allows its online retailers to sell audio books without DRM (see the following letter from Random House: http://craphound.com/DRMLetter22108.pdf). According to one well known author/blogger (Cory Doctorow, http://www.boingboing.net/2008/02/21/random-house-audio-a.html) who ran into this problem, it is Audible itself who is placing this restriction. Even authors who WANT their books to be without DRM cannot do so if they desire to distribute their books through Audible (there is a well known author/blogger who has had this problem in the past).
Random House is smart enough to know that pirated copies of audio books, just like music, will exist no matter what. Amazon and Audible are smart enough to know this as well, or at least they should be. Right now, even with your DRM, I could (if I wanted to, which I don't) burn a copy of a book to a CDRW, rip the cd's to mp3's, and distribute those mp3s illegally. I could even merge them together into one large mp3 if I wanted. DRM doesn't stop the kind of people who do this - all it does it inconvenience good customers who just want to listen to good audio books on their devices or in their cars without having to burn 22 cds. As it is now, in order to listen to books the way I want to, I have to burn to a CDRW, rip the cd's to mp3's and manually copy those mp3's onto my SD card for my mobile device. Talk about a painful process. All so that Audible and publishers can accomplish what? Nothing.
Then there's the issue of Audible wasting time and money struggling to keep ahead of software applications that can convert from .aa to .mp3. Even more time and money is wasted trying to "support" x device. You would already support my device if you just gave me mp3s instead of a DRM mess.
What keeps me from buying more audio books from Audible? What keeps me from buying a Kindle from Amazon? DRM, and only DRM. I already canceled my Audible membership once out of frustration over this. I signed up again after Amazon bought Audible hoping that things would change. I hope I'm not wrong, and I hope it happens sooner than later.
Technorati Tags:
Amazon,
Audible,
DRM,
.aa,
.mp3
A customer was having a problem receiving an SNMP trap with a 64 bit timestamp in it. In order to test, I wanted to send the exact same trap the customer was sending, using the basic UDPPort component of IP*Works! INSTEAD of the SendTrap or SendSecureTrap methods that are included in IPWorks SSNMP's SNMPAgent component. It turns out WireShark gives me an extremely easy way to do this in my code.
I opened the Wireshark cap file sent to me by the customer, which only included the SNMP trap (important, but I could have filtered it myself). I right clicked on the SNMP trap and chose "Follow UDP Stream". Since the sniff only included the single UDP packet, this displays the UDP payload that makes up the trap. Then I noticed "C Arrays" in the format options for viewing the data. Clicking this displayed the data in a c byte array instead of the raw bytes. Very handy for copying and pasting right over to my own C# code!
Now to send this exact trap, all I need to do is:
1: nsoftware.IPWorks.Udpport agent = new Udpport();
2: agent.LocalPort = 0;
3: agent.RemoteHost = "255.255.255.255";
4: agent.RemotePort = remoteport; //trap port
5: agent.Active = true;
6: byte[] mytrap = new byte[] {
7: 0x30, 0x6f, 0x02, 0x01, 0x00, 0x04, 0x06, 0x70,
8: 0x75, 0x62, 0x6c, 0x69, 0x63, 0xa4, ... etc ... };
9: agent.DataToSendB = mytrap;
Recently, several people have asked me the same question: How do I zip from a memory stream to a memory stream?
With the Zip component that comes in IPWorks Zip, you can zip from any kind of file or stream to any kind of stream or file. There is one trick to going from memory stream to memory stream though - and that is keeping the stream open after compressing.
By default, the component will automatically close an input stream after it compresses from it. But we added a config setting that you can use to turn this off and manually close the stream yourself after you're really done with it (after the extraction or whatever other plans you have for the stream after compression).
The compression:
1: MemoryStream file1 = new MemoryStream(GetBytes("This is test 1")); 2: MemoryStream file2 = new MemoryStream(GetBytes("This is test 2")); 3: MemoryStream myStream = new MemoryStream();
4:
5: Zip zip = new Zip();
6: zip.SetArchiveOutputStream(myStream);
7: zip.Files.Add(new ZIPFile("test.txt", file1InputStream)); 8: zip.Files.Add(new ZIPFile("test2.txt", file2InputStream)); 9: //config the component to keep the stream open
10: zip.Config("CloseStreamAfterCompress=false"); 11: zip.Compress();
Now I can get onto whatever business I have with the compressed stream. If I want to extract an already compressed stream, its just as easy:
1: //make sure I'm at the beginning of the compressed data:
2: myStream.Seek(0, SeekOrigin.Begin);
3:
4: zip = new Zip();
5: zip.ExtractToPath = "..\\myextractedfiles\\";
6: zip.SetArchiveInputStream(myStream);
7: zip.ExtractAll();
8: myStream.Close();
Hope this helps!
Technorati Tags:
IPWorksZip,
Zip
I don't often link to blogs just for the sake of it, but this one is so funny that I just can't help it. I hear he just got a book deal too. And yesterdays post was hilarious. Stuff White People Like.
Now Playing: O.A.R. - Heard The World (Album Version)