Gundy Dot Org |
This is where I, Gabriel Gunderson, talk about things that interest me. Topics often include: family, life, work and technology. I'm available for contract work. I specialize in Linux, PostgreSQL, FreeSWITCH, Python, Django, Twisted and anything else apt-get brings. |
SOPA is broken… So is the Izeni site :/ Better click on over there and check it out soon; it will self-heal at the end of the day. Code is available for the next time we have to pull stunts like this. It takes the form of Django middleware.
Don’t you think if the school is going to give email addresses to our kids that they should also help them identify lame emails before they hit SEND?
This was from my son. It can only improve from here.
Looking at this picture, how do you know for sure that AT&T is my cell provider?
I just thought this was a cool note on the last release of PySide, 1.0.9:
The PySide project is developed in the open, with all facilities you’d expect from any modern OSS project such as all code in a git repository [1], an open Bugzilla [2] for reporting bugs, and an open design process [3]. We welcome any contribution without requiring a transfer of copyright.
They should also mention that it’s under the LGPL, but still, that’s a good stance.
Now, the real questions is, will there be a Windows installer for this version? With 1.0.8, we were not so lucky.
Ha! I just pulled ahead of some sucker who’s now officially the worst dad in the world. That’s the power of homemade pizza.
Anonymous asked: Gabe, my brother Dave often tells people to "Ask me anything." Were you inspired by him at all in naming this "Ask me Anything"?
I’ve thought of a number of ways to answer this, but perhaps the most efficient way for you to find out would be to ask your brother, Dave.
I don’t know why I think this is so funny. I hope my employees think it’s funny too! (You kinda need to know vim to get it. It doesn’t hurt to know Jordan too!)
That was fun. Let’s do it again next year!
Fall colors behind my house.
Hmmm… strange letter in my inbox.
I recently spoke with an intelligent man who’s been in the tech scene for more than 15 years. He had a desire to learn Linux and knew that he could ‘easily’ do so. He just hadn’t taken the plunge (for whatever reason). I’m writing a step-by-step guide on how to install a Linux server to show how easy it is. This is not for the Linux user —it’s for the Windows user who’s not yet taken that step into the dark ;)
Update: I just got off the phone with another guy who’s been developing code in the Windows world for 2 decades (C, VB6, VB.NET) and who has never installed Linux. They really are out there ;)
We’ll touch on each step of the install and what you can expect as you go along. We’ll also show the screens as we move along to make sure we’re on the same page.
In this case, we’re going to use Ubuntu Linux 11.4. You might choose a different server if you are going to support this in a production environment; one that has a longer support cycle. Consider Ubuntu LTS, CentOS or Debian Stable.
(Linux pro… really, there is nothing to see here… move along.)
One more thing… if you use this, please leave a comment. Nothing would make me happier than hearing back from someone who gave Linux a try because of this post :)
Let’s get started… So, you’ll need to make a CD from an ISO to get started. If you haven’t burned an ISO to disk before, take a minute to google it. It’s a bit of a pain on Windows, but it can be done after downloading and installing the right software.
Where you download the ISO you’ll be using depends on the Linux distribution that you choose to test drive. Anyway, download it (expect it to be between 400 and 600 MBs), burn it to disk, pop it in your server and configure your BIOS to boot from disk. When you do, you’ll see this Language screen. This is the language of the installation, not the language that is installed on the server; that will come later. Anyway, pick your language.

You have a number of options here. Usually, you’ll just go with the first one, Install Ubuntu Server. The other options are pretty useful, but they’re not needed to get the installation done.

This time, as you choose a Language, you’re choosing the language that you’ll install on the system.

And now, pick your location… see, easy stuff here!

There are lots and lots of different keyboards out there. Take a minute and help the installer know how to interface with your keyboard. I know what kind of keyboard I have, so I don’t choose the ‘detect’ option.

Once you’ve decided to select your keyboard from the list, finish the first part of the process by choosing the keyboard’s country.

Once you select a layout for a country, you’ll have an option to get more specific. If you don’t know what to choose, you might just try the first selection. Otherwise, you might want to go back two steps and choose the ‘detect’ option and let it walk you through it.

Again, unless you have an unusual keyboard, you’ll likely pick the first option.
Once you’ve made your selection, the system does a bit of work: it detects hardware, loads additional components and sets up the temporary network configuration for the install (using DHCP). A network connection is needed for installing list of available applications and for various other installation steps.

It’s time to choose a hostname. Follow the text on the screen or choose something that matches your existing network. Once this is done, it will try to use some sort of GEOIP to get the timezone you’re in.

Confirm or change the timezone info. At this point it does some more churning in the background… more detecting hardware, setting up disk partitioner. CAUTION, moving past this point will potentially wipe any/all the data from any/all disks attached to this server. Stop now if you’re not sure you want to go ahead.

I’ll Usually choose the Guided- Entire disk without LVM. LVM is great, but let’s not complicate thing during this first install.

Now select the disk that you are going to use for the installation. Remember, this will wipe all of the data on that drive. Here the drive is a VBOX HARDDISK because I’m using Virtualbox for this demo and the disk is virtual.

This screen will confirm whether you really want to erase the data on those selected partitions.
If you choose ‘YES’ the system will create the new partitions, install the base system, install core packages and a bunch of other stuff. This step can take a little time.

Now you need to add a user to the system. This user will be the administrator (and is usually you). Type out the full name of that user.

In addition to full names, user have usernames. They are usually shorter, they don’t contain spaces and start with lowercase letters. This is what you will use to log in to the system.

Now, time to pick a password. Pick a good one. Anyone who can guess this, has full control of your system.

Now confirm that password.

If you really want to keep things secure, you could encrypt your home directory. We’re not going to do that because it adds a little bit of complexity that we don’t want to deal with at this time. Select ‘No’ and move along.
After this screen, the system will configure apt-get (the tool used to install new software packages). This doesn’t take too long.

Updating software packages require access to the Internet. If you have a proxy server that might be blocking that access, you have a chance to enter that here. Also, if you were doing lots of install, it could be a little quicker as the package lists and the actual software packages might be cached by the proxy. If you don’t have a proxy (most people don’t), just skip this step.
Once you don’t that, the system scans online “repos” getting lists of packages that are available to install.
It now selects and installs the default software —this takes a while.

Choose the update strategy that you’re interested in. I’d leave it how it is this time. It will be better for you to install those things manually.

Now, you have to choose the optional software package that you want installed. At the very least, I’d install OpenSSH server. This will allow you to get into your system remotely.
It now gets all the files needed to install your custom selection, un-packages them, prepares them to be installed, and finally, installs and configures them. This also takes a bit of time.

Now it’s time to install a bootloader. This will be a little strange to those coming from the Windows world (as you don’t usually interface with Windows bootloader). This is the thing that boots your OS. You can usually accept the default values.

Once you’ve done that, the system will take some time to setup users and do a buch of other stuff wherein it actually finishes the installation.

When you log in the first time (using the username and password you provided during the install), you get a screen like the one above. You can see what networks are configured and what the basic state of your server is. Congratulations, if you made it this far, you’ve installed a Linux Server :) Cake, right?

You see here, I’ve typed the command ‘ifconfig eth0’ to see what my 1st network interface looks like. There’s lot to learn from here. Have fun with it :)
Oh, when learning what’s next, Google is your friend!
So, if you don’t already know, this is the best source of info on Asterisk that’s out there. The book is solid gold. Anyone that’s comfortable with technical stuff (Linux, bash, vim etc.) should be able to get up and going with Asterisk using this killer resource. While I do a bunch of FreeSWITCH stuff these days, I still go to TFOT (the future of telephony) for general VoIP stuff from time to time.
As a bonus, Jared Smith is one of the co-authors. He’s a cool guy and a friend. Also, I think if you buy a book he get’s a gold star next to his name in the tech-geek’s hall-of-fame. So, do yourself a favor and get this book into your hands!
P.S. If you’re in the Provo Utah area, I have an extra copy if you like… let me know in the comments!
So, at work we build lots of custom telephony stuff based on FreeSWITCH. Sometimes, when the job is more than an application server (something like offering SIP services to hundreds or even thousands of customers), you need other systems to complement FreeSWITCH. Lately we’ve been using OpenSIPS to fill that gap. Setting up network and infrastructure to provide these types of services can be tricky and involved. Most people (well, Debian sysadmins) agree that installing software from .debs makes it a little nicer to work with; it allows them to focus on the more involved parts of the setup and configuration. Anyway, here is a build script (download a copy) to help you get started with OpenSIPS (commented for newbies)…
#!/bin/bash# We need subversion to check out the code.
sudo apt-get install subversion
# Check out the code at the latest branch.
svn co https://opensips.svn.sourceforge.net/svnroot/opensips/branches/1.7 \
opensips-1.7
# Now we need the basic tools we’ll need to build debs.
sudo apt-get -y install \
devscripts \
build-essential \
fakeroot
# Change directories to the newly checked out source code.
cd opensips-1.7/
# The build wants the ‘debian’ dir here in the root of the source.
ln -s packaging/debian debian
# We could have installed this before, but this way we’re clear about what
# these packages actually depend on.
sudo apt-get -y install \
bison \
dpatch \
flex \
libconfuse-dev \
libcurl4-gnutls-dev \
libdb-dev \
libexpat1-dev \
libgeoip-dev \
libjson0-dev \
libldap2-dev \
libmemcached-dev \
libmysqlclient15-dev \
libpcre3-dev \
libperl-dev \
libpq-dev \
libradiusclient-ng-dev \
libsnmp-dev \
libxml2-dev \
libxmlrpc-c3-dev \
unixodbc-dev \
xsltproc \
zlib1g-dev
# Now, we actually do the work of building… this might take a few mins.
debuild -i -us -uc -b
# Go back to the parent directory.
cd ..
# Let’s make a nice place to hold all of these shiny new .debs :)
mkdir opensips_debs
# And now move them into their new home.
mv opensips[_-]*.deb opensips_debs/
# If you’re happy with the build, you can clean this up (you might want to review them first).
rm opensips_1.7.0-1_amd64.build opensips_1.7.0-1_amd64.changes
You’ll need to configure the mail server as part of this setup. Default values are usually OK.
Also, this shouldn’t build your debs on the server that will run OpenSIPS. You don’t want all the extra packages that are required for building. So, build the .debs and then copy them to the server you’ll be using.
As always, I wouldn’t recommend running Ubuntu 11.4 on a production server —stick with the LTS versions :)
BTW, here are the packages you should end up with…
opensips_1.7.0-1_amd64.deb
opensips-dbhttp-module_1.7.0-1_amd64.deb
opensips-memcached-module_1.7.0-1_amd64.deb
opensips-snmpstats-module_1.7.0-1_amd64.deb
opensips-b2bua-module_1.7.0-1_amd64.deb
opensips-dialplan-module_1.7.0-1_amd64.deb
opensips-mysql-module_1.7.0-1_amd64.deb
opensips-unixodbc-module_1.7.0-1_amd64.deb
opensips-berkeley-module_1.7.0-1_amd64.deb
opensips-geoip-module_1.7.0-1_amd64.deb
opensips-perl-modules_1.7.0-1_amd64.deb
opensips-xmlrpc-module_1.7.0-1_amd64.deb
opensips-carrierroute-module_1.7.0-1_amd64.deb
opensips-identity-module_1.7.0-1_amd64.deb
opensips-postgres-module_1.7.0-1_amd64.deb
opensips-xmpp-module_1.7.0-1_amd64.deb
opensips-console_1.7.0-1_amd64.deb
opensips-jabber-module_1.7.0-1_amd64.deb
opensips-presence-modules_1.7.0-1_amd64.deb
opensips-cpl-module_1.7.0-1_amd64.deb
opensips-json-module_1.7.0-1_amd64.deb
opensips-radius-modules_1.7.0-1_amd64.deb
opensips-dbg_1.7.0-1_amd64.deb
opensips-ldap-modules_1.7.0-1_amd64.deb
opensips-regex-module_1.7.0-1_amd64.deb
Happy telephony hacking!
P.S. feel free to contact us if you think Izeni might be able to help you with your telephony needs.
UPDATE: Download the debs here if you like.
Android is just better looking than iOS.
View from my hotel #ClueCon