Recently in neverblock Category

Everybody Should go to UTOSC -- 2008

| | Comments (0) | TrackBacks (0)

This year I'm not going to be able to make it to the Utah Open Source Conference. This makes me sad. So to get everyone excited. I'm FINALLY blogging about the videos which were taken of my presentation at last year's event.

You can watch an interview which I gave for OpensourceTV here:

The first part of my presentation on Virtualization here:

and the second part here:

Powerful Presentations

| | Comments (0) | TrackBacks (0)

I'm doing a presentation for ALE Central this Thursday

Here's the blurb

In our professional lives we often spend a great deal of time in one sort of presentation or another. A PowerPoint slide show for work, a story to our children at bedtime, "selling" your boss on your next big idea, or simply "selling" yourself as an entrepreneur.

A properly created presentation can be extremely powerful. It can mean the difference between getting that new contract with the Johnson firm and spending the next four months trying to find new customers. Perhaps your sub-par presentation is all that's keeping your small business from catching the eye of some big venture capital firm.

Presentations are a big part of being involved in the Open Source movement. Conferences, user group meetings, etc. Being a proponent of open source gives us quite a few opportunities to present.

Come an learn how a proper presentation is more than "not putting everybody to sleep". We will cover everything from preparation to handouts, PowerPoint decks to no slides whatsoever, handing "that guy in the second row" to "Wowing the room. You might even learn what a "bathroom review" is.

I promise you won't be disappointed.

And here's the important stuff

Date and Time

Thurs April 17th 7:30pm to ~9:30pm

Location

Gambrell Hall Classroom 1C

Emory University School of Law
1301 Clifton Road
Atlanta, GA 30322

I've just racked and installed my newest toy at the datacenter: a Cisco Catalyst 4948 switch .

Prior to working here I have never had the experience of working with a Cisco switch other than to plug myself into it and run on the network it provides.

I'm keeping this log to document how I've set up my switch.

Let's start out with what I've done up to this point.

Using Virt-clone

| | Comments (0) | TrackBacks (0)
Using the libvirt tool virt-clone is pretty simple to make a new guest image.

virt-clone -o ORIGINAL_GUEST -n NEW_GUEST_NAME -f /new/guest/disk/file
There's not much more to it.  Virt-clone takes care of all the unique stuff (uuid, mac address, etc).

I am a genious (SIC)

| | Comments (0) | TrackBacks (0)
I have two Debian servers, One is the old one, running on hardware that dell is no longer supporting (without us shelling out again) in a couple months. The other -- the new one-- is a virtual instance I have just installed on top of Citrix XenServer. Both are running Debian 4.0 "Etch". 

The application we have running on the old server has quite a few dependencies, and the Operating system hasn't been re-installed in quite some time. As a matter of fact, it is running an image which was based off an image which was based off an image.  In other words, I needed a quick and dirty way of installing all the packages which are needed on the new server, without using the old image.

Here's what I did:

First, on both servers I made a list of the packages which were installed. I did this by running the command:
root@oldhost # dpkg -l > packages.old
and on the new server:
root@newserver # dpkg -l > packages.new
I then combined the lists using text tools such as 'cat' 'sort' 'uniq' etc...
Then I used vimdiff to find the differences between the two servers and make choices as to which packages I wanted installed.  All in all I ended up with a third list which was my cleaned list of packages.

After copying the clean list to the new server, I ran this command:
perl-01:/tmp# for i in `cat packages.final` ; do dpkg -l $i &>/dev/null && echo "found package: $i, doing nothing" || apt-get install $i; done

This command will install a package if it's not currently on the system, and output "found package $foo, doing nothing" if it is already installed. You have only to sit at the prompt and answer any of the dpkg-configure questions which may pop up.

Cool, no?

Asterisk Queues

| | Comments (0) | TrackBacks (0)

I've been busy lately working on a rather big Asterisk installation.

One of the bigger problems we've wanted to solve was our queue management.

Here's the beginnings of a queue log in/out macro I've been fiddling with.

oh, and a super-big thanks goes to Jared Smith, for the basis of what I've done here.

; macros to do login and out of queues [macro-queueloginout] ; first argument is the queue to be added to, second(not yet implemented) is penality exten => s,1,Answer exten => s,n,Set(MYNUMB=${CUT(CHANNEL,-,1)}) exten => s,n,Set(MYNUMBCLEAN=${CUT(MYNUMB,/,2)}) exten => s,n,Set(OUR_QM_LIST=${QUEUE_MEMBER_LIST(${ARG1})}) ; assign member list to variable so it doesn't change exten => s,n,Set(CHANNEL_TO_MATCH=${CUT(CHANNEL,-,1)}) ; get rid of the unique identifier on the end exten => s,n,Set(X=1) ; initialize counter exten => s,n,While($[${EXISTS(${CUT(OUR_QM_LIST,\,,${X})})}]) ; while we still have a value (not-null), loop exten => s,n,Set(MATCHED=${IF($["${CUT(OUR_QM_LIST,\,,${X})"} = "${CHANNEL_TO_MATCH}"]?1:0)}) ; match against the channel exten => s,n,Exec(${IF($[${MATCHED}]?ExitWhile():NoOp())}) ; exit while on match exten => s,n,Set(X=$[${X} + 1]) ; increase the iterator exten => s,n,EndWhile() ; End of the loop exten => s,n,GotoIf($[${MATCHED}]?100,1:400,1) ;branch on match, 100 means yes 200 means no exten => 100,1,noop(yup) ; agent is already logged in, log em out exten => 100,n,RemoveQueueMember(${ARG1},Local/${MYNUMBCLEAN}@queueagents/n) exten => 100,n,playback(agent-loggedoff) exten => 100,n,Hangup exten => 400,1,noop(nope) ; agent is not logged in, log em in exten => 400,n,AddQueueMember(${ARG1},Local/${MYNUMBCLEAN}@queueagents/n,0) ; catch if queuemember breaks exten => 400,n,Execif($[ ${AQMSTATUS} = ADDED ],Playback,agent-loginok) exten => 400,n,Execif($[ ${AQMSTATUS} = NOSUCHQUEUE ],Playback,try-again) exten => 400,n,Hangup

It is still a work in progress, I'm hoping to get a penality overload built into the macro in the near future.

Oh, yeah! I almost forgot to show you how to use the macro in your dialplan:

exten => _77XX,1,Macro(queueloginout,${EXTEN})

This extension, anything in the 7700 range, will log the currently calling phone into the queue specified, numbered by the extension dialed. E.g. dial 7703 will log you into or out of queue 7703.

UPDATE 2007-05-10

I was fiddling with this, and realzed that only one agent could log in at a time.

Thanks again to Jared for discovering that adding four little quote marks makes it work correctly.

post above edited to show the new quotes.

making LS dark terminal friendly

| | Comments (0) | TrackBacks (0)

I've had problems with terminals being too dark lately, here's what I did to remedy that:

in ~/.bashrc:

LS_COLORS='no=00:fi=00:di=01;04;36:ln=00;36:pi=40;33:so=00;35:do=00;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=00;33:*.tgz=00;33:*.arj=00;33:*.taz=00;33:*.lzh=00;33:*.zip=00;33:*.z=00;33:*.Z=00;33:*.gz=00;33:*.bz2=00;33:*.deb=00;33:*.rpm=00;33:*.jar=00;33:*.jpg=00;35:*.jpeg=00;35:*.png=00;35:*.gif=00;35:*.bmp=00;35:*.pbm=00;35:*.pgm=00;35:*.ppm=00;35:*.tga=00;35:*.xbm=00;35:*.xpm=00;35:*.tif=00;35:*.tiff=00;35:*.mpg=00;35:*.mpeg=00;35:*.avi=00;35:*.fli=00;35:*.gl=00;35:*.dl=00;35:*.xcf=00;35:*.xwd=00;35:*.ogg=00;35:*.mp3=00;35:'; export LS_COLORS alias ls='ls -F --color=tty'

that is all

UTOSC

| | Comments (0) | TrackBacks (0)

Some news you all might be interested in...

There's a new conference getting started. The Utah Open Source Conference. And they're looking for your help.

From the blog entry:

Utah Open Source Conference 2007: The Convergence… September 6-8, 2007 - West Valley Cultural Celebration Center Call for Papers The Utah Open Source Conference is a gathering of prominent Utah computer experts and business people with a common goal of applying open source technologies to create real world solutions. This conference is looking for presenters who wish to share their experience and/or expertise with the community. Any subject associated with the implementation or use of open source technology is welcome, whether targeted at the business case, the geeks from the computer room, or anywhere in between. We are looking for innovations and solutions that can inspire and encourage others in their application of open source in the real world. Topic ideas include: * Business solutions (process, applications, infrastructure) * IT management and implementation * Web development * Language skills (Perl, Python, PHP, Ruby) * Emerging technologies Presentations should be prepared for a 90 minute class. All submissions are due by April 30, 2007. To submit papers for this conference please send an outline to participate@utos.org. Example Outline: Title: Leveraging Open Source for Billing Infrastructures Keywords: Open Source, Billing, Accounting, Finance, Postgres, Perl Audience: Businesses wishing to learn about a new open source billing system Overview: Billing is a basic need of every business, but accounting is missing from most programmer’s educations. Learn about available tools for the small business that have the right mix of accounting and geek. The Utah Open Source Conference is shaping up to be the key event for Utah Technology. Whether you are presenting, or simply attending, there will be something for everyone. Learn more at http://www.utosc.org. If you know anybody who would be interested in presenting, please forward this message.

If you'd like to participate, please drop them an email. I'll be there, (likely presenting on something.) :) So join me.

Full Rolling Boil

|

It's OUT! Software for Starving Students CD has been released.

Great collection of software that is designed to help those poor college students have a decent set of software tools. Please help seed the torrents. Last year NeverBlock had over 400GB of downloads from mirroring this cd. Help spread the love.