Posts tagged: Programming

Custom Communication Apps

My brother and business partner Gabe will be helping to lead a discussion on FreeSWITCH and Asterisk at the the Utah Open Source Conference tomorrow.

Gabe is the CTO of our small startup company (Izeni), and our team has built, and continues to build, some pretty cool projects based on these (and other) open source telephony technologies.

Some of the recent FreeSWITCH customization projects we’ve built for our clients include a custom call center that can handle up to 100 concurrent agents on commodity hardware, and a distributed SIP load tester that’s capable of pushing thousands of concurrent SIP calls (suitable for stress testing extremely large telephony infrastructures).

But those are just 2 examples of the many ways a company can customize a free software phone switch to enhance their current products or services with open source telephony. Whether you need a hosted IVR (Interactive Voice Response) solution, or just some method to bridge phone calls, record calls, make outbound calls, etc; FreeSWITCH and Asterisk are up to the task.

Anyway, if you’re in Utah and are interested in learning more about Open Source telephony, you should come by tomorrow to check out the discussion. You can also can review the (expansive) FreeSWITCH and Asterisk feature sets. And if you need some phone-related development done for your company, that kind of work is highly specialized, easy to outsource, and right up our alley. We’d love to help!

Along those same lines is something that’s been on my mind lately: I’d be interested in starting a Utah FreeSWITCH Users Group, originally meeting in only in Utah Valley, but hopefully spreading as the FreeSWITCH project comes into more common usage. If you’re local and would be interesting in participating (or leading), please let me know.

And if you think of some way you’d like to have your product interact with phones, text messages, even IM –that’s just what we do. We’d love to help you work through it –even if it’s just to help you see what’s possible.

If you liked this post, you may want to subscribe to my RSS feed. Thanks for visiting!

Got Contract Work?

Gabe and I want to be sure that our start up company, Izeni, has a cash runway that’s long enough to ensure that we can have a proper lift off. To that end we’ve been doing some consulting and contract work (mostly low-hanging fruit) to slow our burn rate, and it’s worked fairly well because we’re in bootstrapping mode and our expenses are relativity low. So, although we’ve never really sought contract work, we do like it; and I thought I’d do a quick post officially soliciting it.

So without further ado, Izeni will be accepting all kinds of technical consulting and contract work. Our specialities are Python coding; website development (particularly using the Django framework); Linux systems administration (Apache, *SQL, Postfix, Mailman, IPtables, Samba, Bash, etc.); and VoIP-based telephony (Asterisk and Freeswitch).

We can also do general computer and network support, online marketing, and a myriad of other technical and business odds and ends.  :)

Izeni is based out of Utah, but we can also telecommute.

Please let me know if you have any contracting and consulting opportunities or know of any companies looking for web guys, programmers, or other technical contractors. Otherwise, feel free to repost this (pass the word along), or just keep us in mind.

Utah Mobile Developers First Meeting is Tonight

Don’t forget about the inaugural meeting of Utah Mobile Developers Group tonight.  They’ll be discussing both iPhone and Android development and handing out some O’Reilly iPhone books.

I have a feeling that this group is going to be awesome. At least it will be for me; it’s right up the alley of what my new business will be doing. Here’s UMDG’s mission statement:

The mission of the UMDG is provide development-level education and networking around mobile applications. This includes device-specific apps, client-server apps and web-only apps formatted for use on mobile devices. We will cover all mobile devices for which there is interest, including iPhone, Android, Blackberry, Windows Mobile, J2ME and more.

By the way, they’re looking for sponsors. I pledge to be one once we’re actually profitable.

Utah Mobile Developers Group

I’m way excited about the Utah Mobile Developers user group that is forming. Their first activity is on the schedule for Wednesday, October 29 and will discuss both iPhone and Android development. Here’s the agenda and RVSP:

6:00pm Doors open, pizza, networking
6:30 Opening, recognize sponsors, review agenda, review door prizes
6:40 Presentation 1 – iPhone Development
7:40 Presentation 2 – Android (Google Phone) Development
8:40 Door prizes
9:00 Meeting over
Afterward – trip to someplace local for pie, drinks, fries, whatever

Please rsvp by sending an email to glen@glenlewis.com.

I’ve already added it to the Utah Tech Events Calendar. If you’re a nerdy Utahn who loves mobile phones you should come. This is going to be an area of explosive growth and opportunity.

For those who didn’t know, I’m working on a tech business that’s very mobile-phone related, so I’m very excited to see this group forming in Utah.

Math Puzzle: Enumerating Combinatorial Result Sets

Warning: Big-time nerder alert! If you find overt nerdyness offensive, zone out now or just click right on through.

I’m neither a computer scientist not a mathematician (and it probably shows), but I’m curious enough to poke around a bit. Lately I’ve been having fun with combinatorics.

One of the programs I often write as I’m learning a new programming language is a cryptogram maker. A cryptogram is basically it a word puzzle where each letter of a piece of text has been replaced by another letter according to a randomized substitution cipher. Here’s an example:

BEFORE: The quick brown fox jumped over the lazy dogs.
AFTER : QGF JKHDY ZESRP WSV CKUIFN SOFE QGF BMXL NSTA.
LETTER : ABCDEFGHIJKLMNOPQRSTUVWXYZ
CYPHER : MZDNFWTGHCYBUPSIJEAQKORVLX

Anyway, I’ve long known the total number of possible cypher keys (supposing that any letter can be replaced with itself), but I’ve spent several boring church meetings thinking about another simple combinatorics problem. Of course, it’s probably pretty basic to one who has studied combinatorics, but I’ll put it to you just the same.

The question was:

How do I process any given cypher key so that an ordered ’solution number’ can be derived from it (or vice versa) without iterating through the possible cyphers (or solutions).

After having the answer suddenly dawn on me the other night, I now put you to the test. And to make it only slightly more interesting, the first person to comment with the answers and an accurately described algorithm (complete with the basic math behind it) wins a whopping $5 cash prize mailable by me. Note that just writing a script to cycle through does not count because the whole point is not to iterate through all the cyphers. Also, I shrunk the alphabet to make it nicer on you. :)

Solution Number Cypher
1 ABCDEFGHIJ
2 ABCDEFGHJI
3 ABCDEFGIHJ
4 ABCDEFGIJH
5 ABCDEFGJHI
6 ABCDEFGJIH
7 ABCDEFHGIJ
? HDICAGEJFB
3096542 ?
? JIHGFEDCBA

Show your logic!  (Hint you can easily do the math on half a sheet of paper once you know the algorithm.)


Aside: This is not a particularly problematic problem (since I really had no need for a solution), but the math is fun just the same. I tried to think of a story problem that would make the math more compelling and less numerically intensive (without truncating the alphabet), but I sort of got bored of writing it. Maybe I’ll share what I came up with later.

AgoraCart 5.0 is Released

Congrats to “Mr. E” and KFactor Technologies on the recent 5.0 release of their popular open-source flagship product, AgoraCart. AgoraCart is a secure e-commerce solution written in Perl and included in CPanel. This new version has a lot of new features and is going to get some massive distribution, but you don’t need to wait for CPanel to pick it up to get yours. :)

Ian Robertson at UJUG

Ian Roberson will present on Jamon, a text template engine for Java, tonight at the Utah Java User Group (UJUG).  The meeting starts at 6, but Ian’s presentation isn’t until 7.

Ian is one of my Overstock.com colleagues.  He’s very smart and real approachable.  If you’re in Utah and into Java, you should check this guy out.

More meeting info at UJUG.

Improving Cinemax, the Netflix Recommendation Engine

I’ve been fascinated with Netflix ever since I did a giant research paper about the company for my senior project for business management.  Particularly fascinating to me were the technologies Netflix uses to estimate demand and the Netflix Recommendation Engine (Cinemax), which I have posted about previously.

Well now it looks like Netflix has placed a bounty on an algorithm to make the Recommendation Engine even better.  My friend Peter Abilla indicates he might give it a try. He’s also posted about the rules and the $1 million dollar prize. I wish I had more time because this is one problem I would love to help solve. (I’m pretty nerdy like that.) Plus it would be cool to have a million bucks.  :)

One thing I would recommend (kind of unrelated to the algorithm) is to allow users to rate movies with half, or even quarter starts.  More precise input means better output, and I know I’ve had to round many times when I thought a movie deserved 3 and a half stars, etc.

Netflix has already unknowingly taken some of the advice my group suggested in the paper.  We should have sent it Reed Hastings so we could claim credit for some of them.  :)  On a side note, if you have some free time and enjoy investigating companies and writing about them, there’s a pretty good opportunity for authorship at Startup Review. It’s a non-paid position, but you’d have an automatic audience.  (Their readership numbers are pretty darn good.)

Google Summer of Code 2006

Google’s Summer of Code is a great opportunity for IT and CS students to learn new skills, improve their resume, and make a little money during the summer. Plus, it offers students an opportunity to work with some really big-name open source software organizations.

Google is not taking applications yet, but it should be really soon, so keep an eye out.