Wednesday, October 14, 2015

Starting a .NET User Group

In February of this year I took a new job and we moved to Duluth, MN to be closer to my wife's family.  One of the things that I'd  noted while researching the area, was the presence of a well established meetup surrounding web development.  I saw they had monthly meetings and a surprisingly a large number of members for the size of the local area.  I also noted the absence of any formal meetup centered around the .NET technology stack.  Having served for a short period on the board of the North Houston .NET User Group, I felt that the community could benefit from a similar organization.

At work I'd mentioned to a coworker the desire to start a .NET user group in the local area.  I was directed toward another co-worker who was also wanting to formalize a group around .NET.  After a few months of throwing ideas back and forth, we finally decided that the best way to get it off the ground was to set a date and have a meeting.

I tasked myself with setting up a basic web-site http://www.duluthdnug.org/, and putting our information out at http://www.meetup.com/Duluth-NET-User-Group/.  It feels mildly redundant to do both, but we figured having a website couldn't hurt when it comes to the matter of obtaining sponsors.  I did some research and found http://www.ineta.org/ which "maintained" a listing of .NET user groups.  I say "maintained" because upon submitting our user group for listing, I was notified that INETA is dissolving.  Bummer!  Next step was to submit information about our group to all the companies I could find online that offer user group sponsorship, Jetbrains, APress, elastic, etc.  Our workplace was gracious enough to provide a conference room for the meetup.  With all that in place our group is official as it gets!

We are headed into our third meeting next month.  Our first meeting had 6 people, our second had 10 and now the total group membership is 24 members.  We look forward to growing the group within the next year!

Tuesday, October 6, 2015

Raspberry Pi Adventure - Setting up Icecast & Darkice

Recently I've had the privileged of helping a friend setup a Raspberry Pi for the purpose of streaming audio.  I haven't dabbled in the Linux world in a while, but I was quickly drawn in by all the fun typing at the terminal. 

Linux is very flexible, but not without challenges.  I had been told that Darkice and IceCast2 would give me audio streaming capabilities we were after.  The plan was simple, fire up the Raspberry Pi, terminal into it, install darkice and icecast2 configure them and get some sleep.  

My sleep routine was destroyed by this project :)  I didn't fully comprehend how difficult it would be to get into the Raspberry Pi.  I started by taking the SD card out, finding the file /etc/network/interfaces and setting a static ip for the network card.  Then I ran a network cable between the Pi and my PC's network card.  Using Putty,  I logged into the Pi.  Then I realized that I needed an internet connection. :p Thankfully the Pi had a USB WiFi  adapter.  Diving back into /etc/network/interfaces I followed the instructions here to setup the wireless connection.  

Once I was on the wireless network, I logged into the router to determine the ip of my device.  Once I had that I was able to use Putty once again to log back into the Pi.  By this point I was craving a GUI.  Typing sudo apt-get install xrdp gave me a Pi side service I could use with a remote desktop client to login and see the Raspbian Desktop.  

From that point I was able to install the apps I needed to get thing working.  So, once more sudo apt-get install darkiceicecast2.  After starting darkice, I was confronted with an error.  

DarkIce: AudioSource.cpp:122: trying to open ALSA DSP device without support
compiledhw:1,0 [0]
After some searching for this error, I was drawn to the following post.  DarkIce needed compiled with ALSA DSP support.  So after carefully following the article, on the second try I was able to get everything to work.  Note: if you are following this guide, you still have to use common sense.  For example package names may not be exactly the same as what is in the guide.  

All said, after a few false starts it turns it wasn't hard at all to set this up on the Pi.  Just very time consuming :)




Inline image 2