About 6 months ago, we launched a very interesting project. Now that it has been in production for awhile and been slammed with traffic, I feel obligated to let the world know about a particularly BADASS piece of technology that is out there — and not just the part that we built!
The Challenge:
Ever wanted to track your conversions from an offline marketing campaign? We were contracted to develop a system for making thousands of simultaneous inbound and outbound calls which are routed to end users’ phone lines, based on business rules. Users pick a custom 800 number from a pool. Then they use that number in their print ads or on their billboard. When the line picks up, it can run callers through a verbal survey and records their answers, routing them to certain reps based on those answers. Or the users can create custom menu systems (for example, press 5 for a Korean-speaking salesperson).
The Technology:
How to handle the load? After a ton of research, we eliminated Asterisk as a viable solution because it lacks cost-effective scalability. Asterisk can handle hundreds of simultaneous calls per server and, it functions as a fully-functional PBX. Impressive, but we needed something more. And it was then that we came across the open source telephony platform, FreeSWITCH. FreeSWITCH was originally developed from the Asterisk codebase by a splinter team that wanted to see exactly how much performance they could squeeze out. By rewriting the stack from scratch, they managed to get about TEN TIMES the performance. Yes, FreeSWITCH handles thousands of calls at one time.
The Result:
At this point, we contracted with a SIP trunking service (their service is awesome, but their support super-sucks, so I won’t mention any names) to provide VOIP service. We built in the ability to detect busy signals and answering machines. And then, after a tremendous amount of testing, the beast was born. The system is currently in place and tremendously reliable. In fact, in about 6 months of production use, the server has only crashed once.
If you would have asked me 5 years ago if such a system could be built, I would have probably looked confused and babbled semi-coherently about insane 7-figure budgets and 12-month development cycles. But having helped get this amazing system in place, I am a pleased to say that custom telephony solutions can be had for not much more than your typical social networking site. We truly achieve great things by standing on the shoulders of giants.
Next up … voice recognition. Oh yeah!
EDIT (03-22-10): I wasn’t sure if this client was keen on having me post up details of the technology that their app runs on, so I left their name out of the post. However, I just got permission to link to their app. I know this sound like advertising, but it isn’t at all … I’m just very proud of what we’ve accomplished. Call Tracking It’s free to give it a test.
We’re migrating and so is the rest of the development world.
So I bite my own tongue by saying this, but it’s true …
“jQuery is killing flash!”
jQuery is a lightweight JavaScript library that emphasizes interaction between JavaScript and HTML. It allows developers and artists to create animation and interactive features that previously “only” looked good in flash.
For example, a year ago topLingo handled ALL requests for eye candy such as homepage animations solely in Flash. But now, we’re about 80% converted to jQuery.
Why the transition?
Besides the obvious reason that we’re a “B2B” development firm who focuses less on eye candy and more on usability i.e. a group who would decline the opportunity to redevelop BritnaySpears.com, jQuery pros versus Flash are as follows:
Small size. Lightweight means fast web page loading times.
Free. Hundreds of previously produced animations, transitions, are easily accessible.
Easier to learn. Have you seen someone’s face when they launch Flash software for the first time? Eek!
Dull elements look better. Visually enhances non-exciting web elements. Boring forms are now slightly more exciting.
CMS synergy. In the example of a homepage flash animation, for the content manager to make updates it’s highly likely they’d have to produce a Flash .SWF file themselves or pay someone to do so. It’s much simpler to code the CMS for jQuery modifications where the content manager can simply change a line of text or upload an image … and BAM! The homepage animation changes! (Sidenote, and to be fair, this can also be done in flash but does take more development time/cost).
SEO, SEO, SEO. Text is text in a jQuery animation and the engines love it!
I may have figured out how Lala works their licensing mystery. When synching your music collection, the service somehow matches mp3 tags like artist, album, and song title. I think song length may also have something to do with it. If it finds an “approximate” match AND the song is licensed for Lala’s use, the song gets dropped into your online music collection. I bet this is somewhere in the FAQ on their web site, but I never read that nonsense … do you?
Why did I only find this out 6 months after I started using Lala? Very good question … glad I asked it. It takes forever to upload songs, so I only uploaded the first 20 gigs of my music collection. I never processed the whole collection because I have 500+ gigs of music. Because of how I originally converted all my CDs, my music collection is organized in an odd manner. It’s very complex, but let’s just say I uploaded the most mainstream music first. All my music matched and so I blissfully used Lala for 6 months. Now that I am so enamored of Lala, I’ve decided to upload the rest. Much of this current music that I am uploading is eclectic and indie. So it’s not really matching. See, I may be uploading a live or demo or rare version, and Lala mismatches it with the production studio version of the tune! If it doesn’t match, Lala omits it from the album entirely. This isn’t so bad, except you don’t know until you go to play an album and the last track isn’t there or track 5 is not what you’d expect or way too loud compared to the rest of the album. I’m obsessive about music and my spidey sense tingles when something is out of whack. However, I breathe deeply. count to 10, and then move on. Oh … the other issue is that on CDs with unnamed hidden tracks, I’ve edited out the silence and re-saved the track under a new name. Green Day’s “Dookie” has that with the “All By Myself” song. Lala doesn’t recognize this sort of thing. Bummer.
So consequently, my Lala collection is incomplete and mismatched. Probably 10% of my Lala collection is askew. I have an enormous quantity of weird music, however. So although my OCD has been tweaked a bit, I am willing to overlook the slight problems in favor of the enormous convenience. For the great majority of the population for whom Meatloaf’s “Bat Out Of Hell 2″ (you know “I’d do anything for love, but I won’t do that!” … you have it on your iPod and you LOVE it) is the weirdest thing in their iTunes, this won’t matter. All the Kanye West, Christina Aguilera, and Black Eyed Peas that you need is covered with Lala’s library. Enjoy it!
There’s a great music website called Lala which I have been using for about 6 months now. It allows you to upload your music collection and listen to it anywhere that you have a computer (or iPhone) and an internet connection. You can set up playlists and share them. And, of course, you can sort your music collection any way you want. [ Example: Show me just the Heavy Metal albums ... yay!] The web application is absolutely phenomenal. It’s drag & drop and very, very visual — a model of “complex simplicity”. It’s more or less a web-based iTunes before iTunes tried to do everything. I’ve stopped liking iTunes because it’s doing too much — Genius, video, and now Facebook integration … why oh why? Call me a curmudgeon, but I kinda tolerated it about 2 or 3 years ago when all it did was organize and play music. It did that well. Lala reminds me of the happy, friendly iTunes of 2006.
I’m not going to sit here and describe every aspect of Lala because honestly you should be using it right now. I have not a single complaint after 6 months of daily use. Normally I am very critical, but this just kicks ass. Seriously, stop reading this crappy blog post and just sign up at http://www.lala.com. Download the tiny desktop application. Pick three or four albums to upload. Although the upload process is automated, it takes a long time to upload all your albums (I have 180 gigs of music!!). So at first, limit yourself to those few albums. It took about a day to upload 9 gigs / 1800 songs, but it did all that nonsense in the background. Anyway, if you like it, then endure the lengthy upload for the rest of your music.
One of the coolest features that I cannot get over is that I can be listening to some ridiculously long playlist here at work. Then I turn off my computer at work, go home, boot up the home system (workaholics, unite!), and pick up the playlist right where I left off. It’s awesome. I giggle to myself every time I get to do that.
The big mystery that lingers over this whole utopian system is how Lala gets around licensing. Will the RIAA axe fall as heavily as it did with Pandora? — By the way, Pandora, awesome bounce-back. Y’all have a godlike CEO over there. – Apparently, Lala gets around licensing issues by comparing your music files with albums that they already have legally in their library. Then Lala uploads only the music that they don’t have. Yeah, I know, if you do the math, it doesn’t really add up. Shhhhh!
I’ve been using this FREE tool, DropBox, for about a year now (since they were in beta). I use it on a daily basis and, at this point, could not live without it. Whenever anything gets to that stage, I cannot help myself, I get a little excited about it, so bear with me.
DropBox is a web service for synching up files across one or more machines. At it’s simplest, it’s a web-based service for backing up files. There’s been tons of these services over the years (X-Drive, AllMyData, Mozy, and Box.net come to mind). But DropBox takes this to a whole new level by adding a program that runs on your desktop, PC or Mac. This creates a folder on your computer that is automatically synchronized with your web folder that is hosted by DropBox. The service even allows you to roll back to previous versions of your documents. Everything can be done from the web interface or, amazingly, right from the program that is running on your desktop. How many web services have that level of desktop accessibility? Only a handful.
Ok, cool, now you’ve got a backed-up versions of important files that you can access through the web from any computer. But if you add the desktop app to another PC, then you’ve got AUTOMATED synching going on 24/7. Next, you can set up a shared folder with any other DropBox user. You drop files into it and they show up in the user’s folder on their desktop. The other user even gets a popup alert after the synch completes. No more fooling around with FTP just to get somebody a file that is too big for email attachments. It’s also nice for dropping 500 megs of files into before I leave work, having them synch during the commute home, then having them all ready when I arrive home. Now I don’t have to shuffle through my man-purse for the USB memory stick, wait 10 min to copy files, work on files at home that night, and then forget the USB stick at home the next day .. ugh! I just work directly off of the files in my local DropBox folder all the time. Every PC I work has a copy.
DropBox has a couple of extremely minor issues. I have limited experience with the Mac client, but from the 10 minutes that I played with it, it does not seem as polished. However, with the rate at which DropBox is improving their features, I’m sure this will be addressed in short order. Also, I’ve experimented with running my huge Outlook PST file from DropBox to get automated Outlook backups. No dice. But that is really pushing the envelope and nobody provides a good system for that yet.
DropBox keeps their site and application VERY simple. Like crazy, google-level simple. That makes it easy for the rushed, imaptient crowd and the oft-ignored low-tech crowd like my parents (who absolutely love it). In fact, for a second, I just want to elaborate on my parents’ experience with DropBox. My mom uses it to synch files between her laptop at work and her laptop in the house. My dad, the single-finger typist, used to have a terrible time getting photos to me. He used to Kodak’s fairly complex photo-sharing service … a good service, but lacking in ease of use for non-tech-savvy peeps. Now we have a shared folder into which he can throw his photos and I get a little popup when they arrive OR even get updated. Smooth.
All this for free! It’s 3 gigs free, with paid options for up to 100 gigs … beautiful. I’ve been using the free version without issue.
Google announced their vaporware operating system Chrome OS. We do know that most of the apps and resource-intensive computing will be offloaded to the cloud. Beyond that small scrap of data, nobody knows anything and, more importantly, nobody has seen anything. Yet the pundits are already signing the death certificates of both Microsoft Windows (standard target) and the iPhone (mmm … yeah). These are the same experts (New York Times, jkontherun, TechCrunch, GigaOM, etc.) that keep telling us that Facebook is going to level Google. So the timeline that I’m getting is:
Facebook becomes the search engine of choice, forcing Google to make money elsewhere
Google becomes the operating system manufacturer for netbooks and smartphones
Somehow Google then makes the jump to becoming the OS of choice for all computers (can’t wait to edit HD video in the cloud)
Microsoft’s market share approaches zero and, in a desperate bid to make the payroll, they become an ebay power seller auctioning off vintage CDs of Windows 95, MS Works, and Microsoft BOB
Bonus: Chrome OS somehow knocks off the whole closed-architecture iPhone OS platform and everybody buys those wildly unsuccessful Android phones
Google is back on top and all things are again right in the tech food chain
The Windows death knell has been ringing for about 15 years now. Some Windows-killer is announced every six months. And what happens? Nothing. Big, bloated, unsexy Windows persists. About 18 months ago, the same characters from above let us know that Vista would to send Microsoft to the soup kitchen. Creative thinking had placed Windows itself as the ultimate Windows-killer. Hara-kiri. Didn’t happen.
I’m quite excited to see Chrome OS and play with it a bit. However, it’s unlikely to alter the tech landscape very much. Either way, this is solid marketing by Google’s PR department. It even got my lazy butt blogging about it.
Robust and Effecient Development Framework From Microsoft.
Over the last few years, web developers have migrated away from building simple web sites with an FAQ and a site map to constructing sophisticated web-based applications that have more in common with software programs like Outlook and Excel than they do with the less interactive brochure-style sites of 2001 and 2002. Remember the old days of calling up the Mountain Dew-swilling “webmaster” (usually between the hours of 3 pm and 11 pm) to add a few text lines to the “Front Page”? Just as the face of web development has grown into the modern Web 2.0 style, so have the tools and technologies evolved for the better.
“.NET” (pronounced “dot net”) is Microsoft’s all-encompassing term to describe both the development and runtime environments for this new breed of applications. The .NET moniker even extends to cover Microsoft’s associated server and database technologies.
Applications are programmed in Visual Studio .NET using one of the following languages, listed in (debatable) order of popularity; C# (pronounced “C sharp”), VB.NET, and J#.These applications are deployed within the .NET Framework which runs on servers and even on desktop computers. If you are using Internet Explorer 7, then you are likely viewing this document within the .NET 2.0 Framework. This Framework is invisible to the average user. And that is a very good thing.
Visual Studio .NET has become the de facto standard for unified web development, with one-stop construction, testing, and deployment of web apps. At it’s core, Visual Studio .NET automates much of the process of database architecture and backend coding and thereby greatly accelerates the time to launch industrial strength applications. Processes that used to take months now take weeks or even days due to an infinite number of shortcuts that break up the development process into modular building blocks of code.
Over a 2-year period, topLingo’s senior developers built a massively complicated project entirely in .NET for a financial institution.
Five years ago, this same project would have required two to three times as many developers and a dedicated testing team. Or to put it another way, without .NET, this same project would have taken two to three times as long to build with the same resources.
Microsoft’s .NET environment represents the sort of mature and efficient technology that dominates the backbone of web.
Primarily fueled by social sites like YouTube, Vimeo, Hulu and Veoh, video on the Internet has seen explosive growth in late 2006 and into 2007. Currently online video comes in several different formats and has several different delivery mechanisms
Formats and Delivery The most popular formats for Internet video today are Flash video (Adobe), Quicktime (Apple) and Windows Media Player (Microsoft). Internet video can be streamed, downloaded or put into an RSS feed, which makes it a video podcast.
Other Considerations Quality, frame rate and encoding are all technical considerations that need to be taken into account when creating video for the Internet. In addition, do you want your video playable on a video iPod? Would you like your video to go “viral”? For all the considerations, topLingo can help you think through the options. HD is also beoming highly popular and Vimeo is a leading the way.
topLingo Knows Online Video Online video is a hot topic among leading companies pushing the boundaries of web design and social media marketing. topLingo has the experience in video production and online media to make your Internet video experience a success.
What is Web 2.0? Talk to different people and you’re likely to get slightly different answers. Web 2.0 is a moniker given to a collection of technologies and ideas that are becoming increasingly popular among web developers and designers. Some better known examples of Web 2.0 technologies include: tagging, wikis, RSS and social networks
Web 2.0 also looks at the web as a platform for application development rather than individual web pages. A Web 2.0 website will often feature ways to actively interact with the content in a way that more closely resembles an application program than a traditional web page. Equally important are the social and participatory aspects of Web 2.0. Networks like MySpace, photo sharing sites like Flickr and the phenomenon of blogging all have user generated content and the sharing of that content as part of their DNA.
Beyond Web 2.0 lies the Semantic Web. Often confused with Web 2.0, the Semantic Web is really something different. At it’s core, the purpose of the Semantic Web is to make data more understandable by machines. When a machine can not just read but understand the meaning of data, it will be possible for web-based programs to carry out intelligent tasks that today cannot be accomplished without human intervention.
topLingo is currently recommending Web 2.0 technologies for many of our clients where it makes sense. A broker application for JP Morgan Chase recently developed by topLingo features extensive use of Web 2.0. Our own project management software is also Web 2.0 based.
Hyper Text Markup Language or More Simply The Base Language of the Net!
The fundamental building block of the web, HTML is a markup language designed to define the structure of text-based information. HTML itself is a series of descriptive tags that are associated with certain words or blocks of text. <p>, for example, is a tag that denotes a paragraph of text. Leading web firms like topLingo now use the latest version of HTML, called XHTML. To achieve a particular look or style for text like bold or underline, another language called CSS is used. CSS is an acronym for Cascading Style Sheets and can be included inside an XHTML document or in a separate document. XHTML and CSS work together to create the typical web pages you see today on the Internet.
topLingo uses XHTML and CSS on all our website projects, giving our customers clean, fast website code that is easy to update and manage. The way we use XHTML and CSS also usually improves SEO (search engine optimization) for our customers.
"Just a brief note to express my satisfaction with topLingo..." ZyXEL interviewed many firms when planning a complete overhaul of its large and outdated website. We've got a great many products that formerly had not been properly categorized, making visitors' searches nearly impossible.