I've been looking over the supported protocols in IP and noticed the following protocols:
NVP http://www.ietf.org/rfc/rfc741.txt
SCTP
I've used and been interested in VoIP for several years. It was really neat to see a precursor implemented in the 70's.
I had seen SCTP mentioned here and there but never really looked into it.
Here's a great overview: http://www.isoc.org/briefings/017/
Looks like it will become a widely used protocol at some point.
Learning about this stuff reminds me of when I was learning how to use DOS in the early nineties. I thought I was sooo cool because I was navigating directories and programming batch files. I later got into linux and read about it's background and history. "You mean UNIX has been around for 30 years and I had no idea that my beloved DOS was a disgrace?"
Tuesday, November 22, 2011
Saturday, February 26, 2011
USU VPN Linux Client
I needed to connect to the Utah State University Virtual Private Network. They had a page about connecting with linux, but it didn't work for me. I ended up writing a simple script to configure, start, and stop the vpn. You can find it here:
https://github.com/wberrier/usu_vpn
It works for me on Ubuntu 10.10, as long as I installed an updated openswan (as noted in the README).
https://github.com/wberrier/usu_vpn
It works for me on Ubuntu 10.10, as long as I installed an updated openswan (as noted in the README).
Tuesday, September 1, 2009
Qt and Threads
Multithreaded programming is fun, isn't it?
I'm writing a thin Qt wrapper around OpenAMQ so that we can encapsulate a connection in a separate thread without blocking the event loop in the main application thread.
Some guys at work have developed a few nifty tricks to make threaded programming in Qt easy... well, easier... actually, much easier. But, I was still having some problems (which were mainly caused by some weirdness and wrong documentation in the OpenAMQ client library, but that's a different story).
Other than better understanding how QCoreApplication and QThread event loops interact, here's a lesson I learned:
Don't call deleteLater() within a class that inherits from QThread. Reason being is that you need to call quit() before the QThread object is deleted, and once you do that, the event loop in QThread stops. Since your event loop in the QThread object has stopped, the deleteLater will never get processed.
This all comes down to: using deleteLater in this scenario will never call your destructor.
Lesson learned. Check.
I'm writing a thin Qt wrapper around OpenAMQ so that we can encapsulate a connection in a separate thread without blocking the event loop in the main application thread.
Some guys at work have developed a few nifty tricks to make threaded programming in Qt easy... well, easier... actually, much easier. But, I was still having some problems (which were mainly caused by some weirdness and wrong documentation in the OpenAMQ client library, but that's a different story).
Other than better understanding how QCoreApplication and QThread event loops interact, here's a lesson I learned:
Don't call deleteLater() within a class that inherits from QThread. Reason being is that you need to call quit() before the QThread object is deleted, and once you do that, the event loop in QThread stops. Since your event loop in the QThread object has stopped, the deleteLater will never get processed.
This all comes down to: using deleteLater in this scenario will never call your destructor.
Lesson learned. Check.
Wednesday, November 19, 2008
svn and tons of ignores
I never realized what a pain it was to maintain svn:ignore properties until I started using git (which makes it really easy to collect cruft metadata after a build).
After some searching on the web, I found this script:
That coupled with:
really saved me a lot of work.
After some searching on the web, I found this script:
#!/bin/bash
# svn-ignore - tell Subversion to ignore a file in certain operations.
# See: http://svn-ignore.notlong.com [svnbook.red-bean.com]
test -z "$1" && echo "Usage: $0 FILENAME" && exit -1
for fullname in "$@"
do
dirname=$(dirname "$fullname")
filename=$(basename "$fullname")
(svn propget svn:ignore "$dirname" | egrep -v '^$';
echo "$filename") >/tmp/svn-ignore.$$
svn propset svn:ignore -F /tmp/svn-ignore.$$ "$dirname"
rm /tmp/svn-ignore.$$
done
That coupled with:
for i in `svn status` ; do if [ $i != "?" ]; then echo $i ; svn-ignore $i ; fi ; done
really saved me a lot of work.
Monday, August 4, 2008
A New Adventure
Some may have noticed that I haven't been around the Mono irc channels lately. I recently started working at Applied Signal Technology in Salt Lake City on July 7th.
One project I work on is an embedded board with some Xilinx FPGAs, one of which has an embedded ppc processor. It runs embedded linux and does signal processing in the FPGA. The kernel and embedded linux has been a long time favorite of mine.
The other project is a state-of-health hardware and environment monitoring system written in C++/QT. Having been using Python for monobuild and been in the Gnome/Mono circle for a few years, it has been quite the shift to use C++. I found an interesting white paper comparing C++/qt and Java, but have not formalized any opinions yet. Comments?
I wanted to give an update on my disappearance as well as express my graditude to Novell, my fellow co-workers, and the Mono community. It was a great 3 years and an awesome experience. Thanks especially to Andrew and Marc to taking over the build and release processes. We spent my last week or two at Novell transitioning things over and I've also spent some time since then helping them out. I'm fully confident they will do a superb job with Mono 2.0.
Good luck to everyone with the upcoming release. I wish y'all and the Mono project the best.
One project I work on is an embedded board with some Xilinx FPGAs, one of which has an embedded ppc processor. It runs embedded linux and does signal processing in the FPGA. The kernel and embedded linux has been a long time favorite of mine.
The other project is a state-of-health hardware and environment monitoring system written in C++/QT. Having been using Python for monobuild and been in the Gnome/Mono circle for a few years, it has been quite the shift to use C++. I found an interesting white paper comparing C++/qt and Java, but have not formalized any opinions yet. Comments?
I wanted to give an update on my disappearance as well as express my graditude to Novell, my fellow co-workers, and the Mono community. It was a great 3 years and an awesome experience. Thanks especially to Andrew and Marc to taking over the build and release processes. We spent my last week or two at Novell transitioning things over and I've also spent some time since then helping them out. I'm fully confident they will do a superb job with Mono 2.0.
Good luck to everyone with the upcoming release. I wish y'all and the Mono project the best.
Thursday, April 3, 2008
gvfs
I was checking out the openSUSE 11.0 Gnome LiveCD to gather some information about a Mono bug, and accidentally discovered gvfs.
I guess it's a replacement for gnome-vfs. From a quick glance, nautilus seems pretty much the same to me as when it used gnome-vfs. But, low and behold, when I opened up an sftp:// uri in nautilus, that 'share' was available via fuse in /home/linux/.gvfs!!! How cool is that??
This is probably old news, but I'm pretty excited about this. I guess there'll also be a kio interface. It seems gvfs has some really great potential to bridge the vfs gap.
Great work!
I guess it's a replacement for gnome-vfs. From a quick glance, nautilus seems pretty much the same to me as when it used gnome-vfs. But, low and behold, when I opened up an sftp:// uri in nautilus, that 'share' was available via fuse in /home/linux/.gvfs!!! How cool is that??
This is probably old news, but I'm pretty excited about this. I guess there'll also be a kio interface. It seems gvfs has some really great potential to bridge the vfs gap.
Great work!
Wednesday, April 2, 2008
Gmail and IMAP
I've been using google hosted for my personal email for some time now. Cheryl was using their web client and I was fetching all my mail over pop to a local dovecot server.
After I heard they were going to support IMAP I decided that maybe I will finally migrate all my emails (back to 1996) to the google servers.
I noticed that messages copied via imap had incorrect dates when viewed from the web client. That hindered my decision for some time, but Andrew mentioned that they were going to eventually fix that. The dates still appear correctly in imap cilents, so I wasn't too worried. I'll mostly use an imap client, but it will be nice to be able to check and send mail from a web client.
(When hosting my own mail with dovecot, I had squirrelmail set up, but my mail was often rejected because it was sent from a dynamic ip. The unreleased squirrelmail beta had the option of configuring one authenticated account for outbound smtp, but using that feature with gmail was a little clunky because it seemed the mails weren't masqueraded properly.)
One of the things I really like about using gmail over imap is the ability to tag spam by moving it to the [Gmail]/spam folder. I had pretty good luck with spamassassin and although it was fun getting to work, I had some false positives and decided I didn't really want to think about spam any more.
The last of my concerns were answered by this help thread:
http://mail.google.com/support/bin/answer.py?answer=77657
I just hope I don't start deleting messages while using other email servers and expect them to be in my 'All Mail' folder :)
The performance is ok, but not as good as using my own dovecot server serving one account. But since I get the above features and I don't have to worry about backups or my computer going down, that's something I'm willing to live with.
Update:
Some people have asked how I did the actual migration. I configured two imap servers in Evolution and manually copied messages/folders from one account to the other. This took several hours of babysitting the process for roughly 250MB of mail.
It may be worth looking into imapsync.
Update:
Andrew sent me this: google-email-uploader
After I heard they were going to support IMAP I decided that maybe I will finally migrate all my emails (back to 1996) to the google servers.
I noticed that messages copied via imap had incorrect dates when viewed from the web client. That hindered my decision for some time, but Andrew mentioned that they were going to eventually fix that. The dates still appear correctly in imap cilents, so I wasn't too worried. I'll mostly use an imap client, but it will be nice to be able to check and send mail from a web client.
(When hosting my own mail with dovecot, I had squirrelmail set up, but my mail was often rejected because it was sent from a dynamic ip. The unreleased squirrelmail beta had the option of configuring one authenticated account for outbound smtp, but using that feature with gmail was a little clunky because it seemed the mails weren't masqueraded properly.)
One of the things I really like about using gmail over imap is the ability to tag spam by moving it to the [Gmail]/spam folder. I had pretty good luck with spamassassin and although it was fun getting to work, I had some false positives and decided I didn't really want to think about spam any more.
The last of my concerns were answered by this help thread:
http://mail.google.com/support/bin/answer.py?answer=77657
I just hope I don't start deleting messages while using other email servers and expect them to be in my 'All Mail' folder :)
The performance is ok, but not as good as using my own dovecot server serving one account. But since I get the above features and I don't have to worry about backups or my computer going down, that's something I'm willing to live with.
Update:
Some people have asked how I did the actual migration. I configured two imap servers in Evolution and manually copied messages/folders from one account to the other. This took several hours of babysitting the process for roughly 250MB of mail.
It may be worth looking into imapsync.
Update:
Andrew sent me this: google-email-uploader
Subscribe to:
Posts (Atom)
