I have absolutely no stats to back this up--but having officially written documentation gives projects a really good 'feel', and makes it a lot simpler for users to get started (IMO).
1,217 karma · joined February 9, 2010
I have absolutely no stats to back this up--but having officially written documentation gives projects a really good 'feel', and makes it a lot simpler for users to get started (IMO).
Thanks for taking the time to check us out!
After all the feedback here, I realize how crazy it is to be returning a 404.
Thanks for checking us out, and thanks for the feedback!
Sorry for the confusion, but thanks again for the feedback. I greatly appreciate it.
Appreciate the feedback.
Basically, we'll only return a result if we have a caller ID in our cache. So, if you get a 404 (no output), then try again a few seconds later after we've had time to do the lookup via our backend.
Sorry about that! Realtime lookups are currently restricted to API key users only.
I hope this clears things up.
-----
Basically--we partner with telephone companies who colocate our equipment (servers, etc.) which we use to run our software. We purchase phone lines from these telcos (to support incoming calls), and then provide free services for public consumption to make money off the termination cost.
Imagine that you have a T-Mobile cell phone, and your friend has a Verizon cell phone. When your friend calls you, Verizon pays T-Mobile a small amount of money for every minute that your call lasts (this fee is to pay for the physical infrastructure that T-Mobile invests in--telephone polls, switches, service monitoring, etc.). That's why cell phone plans cost money and aren't free.
We operate the same way, except we partner with telephone companies (like T-Mobile in my example above), and split the termination fees with them.
So the more people use our services, the more we can profit from it.
Hopefully this clears it up. There's been a lot of discussion in the internet recently about traffic pumping and companies attempting to get fraudulent traffic to make money. We are by no means doing anything illegal or illegitimate here.
-----
Also: our motivation for building confnow is to basically to make conference calling as simple as humanly possible. I've personally used the other sites out there (namely: freeconferencecall.com), and nothing is more frustrating to me (as a user) to want to make a quick call and have to go through hoops (setting up accounts, waiting for verification, listening to ads, etc.) when you just want to get into a room as quick as possible and move on with your life.
We're not traffic pumping or anything--it's a legitimate conferencing service.
If you add a security pin, then after you enter your conference room number, it'll prompt you for the pin you entered (think of it like a conference room password).
Also: we're in the process of getting more numbers. :)
For instance, in both my professional and personal life, the most successful projects I've worked on with others have been those in which communication was primarily done through pull requests on Github, or IRC conversations late at night.
Maybe it is antisocial, but I just can't seem to function as well working in person with other people as I do on my own.
What sort of stuff do you do better around others? I'm genuinely interested.
1) Open a tmux split (vertical). 2) In the left tmux pane, open vim (and split horizontally). 3) On the right side, have my tests open and running via a watch command, eg: watch -n 10 "nosetests", or something similar.
I've been scaling mine around, and it's never taken more than a second or two. Although, maybe that would change if you are scaling up to hundreds of workers or something like that.
If you want to run a celery worker (including beat), you're looking at a total cost of 30$ per month. That's enough for most moderate traffic websites. :)
In the next part of the series I'm going to elaborate on their pricing in comparison to Rackspace for my work project. Heroku is actually significantly cheaper for us, considering we don't have to spin up additional instances for backups, load balancing, etc.
I've been meaning to try them for a while now, but just had the chance to purchase one a few weeks ago. So far, I'm loving it.
Among other things, here's what I enjoy presently:
* They sell large screen models (17.3", here). * The hardware is completely linux-compatible. I installed ubuntu fresh (just to check hardware compatibility out of the box), and had 0 issues getting __all__ hardware components working (primary SSD drive, wifi, nVidia card, webcam, mic, etc.) * Their laptop has a really sturdy feel to it and looks very 'clean'. They use beautiful metalic casing which makes it look really high-quality. * They have one of those really sturdy 'programmer' type keyboards that I love to type on. Big win. * Their hardware upgrade option are, in my opinion, excellent. I purchased a 120G SSD primary drive, and 8G of RAM, and this thing is insanely fast. I'm talking 2 second boot time, insta-opening of even large applications (K3B, I'm looking at you), and quiet operation.
Furthermore, their screens are absolutely beautiful. I'm not sure what distinguishes it from the $1,000 laptops you see around most stores, but the screen itself is top-notch.
As a side note, I use a laptop as my primary computing device--programming / movies / etc., and only run linux. I enjoy high-resolution laptops (like the one I purchased from system76), as I can have more vim-splits open :)
NOTE: I'm actually in the process of writing a full review on my blog about this laptop at some point in the near future.
I'm in a similar situation as you--my company does millions of calls per month (we're in the telecom industry in the US), and we use Django / python / Asterisk as our primary tools, along with OpenSIPs for routing SIP traffic.
I've been working extensively with this stuff for the past 3 years--I'd be happy to give you some help, or talk you through some design decisions.
If you want to get in touch, feel free to email me (or get me on gtalk): rdegges@gmail.com
Would be nice to talk to some other people in a similar industry, not too many telecom / web dudes around, afaik.
NOTE: We're a technical startup in the telecommunications industry. We build web-based telephony applications in addition to traditional phone-based applications.
1. python's syntax is extremely clear and easy to read / maintain. I can open any python project, and immediately find my way around with no prior knowledge. This makes working in teams especially easy, when you have numerous developers committing various bits of code to various parts of the product throughout the day.
2. In the past two years, the python community has put a great amount of emphasis on documentation for open source projects (using Sphinx), and as a result of this, many open source python packages now have excellent documentation that makes it really easy to start using third party libraries and feel secure in your choices. Just check out http://rtfd.org/ for examples (ReadTheDocs is a hosted open source documentation site, focusing on python).
3. Django is an excellent web framework, and has tons of reusable open source applications that you can use, which makes rapidly developing web applications easy. The Django app ecosystem has been growing at an insane rate over the past few years, and there are more than enough applications to solve most common patterns.
4. Tools like tox, nose, coverage.py, and others make testing in python simple. It also helps that Django encourages testing in a large way (providing a default tests.py module for each application, with example tests). Having such a large emphasis on testing, with such great tools, makes it easy to "Do The Right Thing" and build tests into your software.
5. There are excellent tools in python for performing complex tasks, like celery / redis for building distributed queue processing workers.
6. PyPY (an alternative python interpreter) has been showing immense promise with python speed improvements. PyPY can be used as a drop-in python replacement on any linux system, and yields immense performance improvements to even the simplest code.
7. The python community in general tends to be very friendly, supportive, and encouraging. There are a lot of popular figures in the python community, and the overall personality traits of leading python community figures tends to be humble, helpful, and encouraging. This has fostered a really excellent community focused around accomplishing things, and helping people out, which I think gives the language a good overall feel.
Just my two cents.
The main point I'm trying to make in the article is that "business guys", particularly the sort looking for technical co-founders, really need to teach themselves technical skills. In early stage companies (I probably should have made this more clean in my article), the business guys just aren't necessary. Any engineer can talk with his potential customers and get feedback. Any decent engineer can run A/B tests and improve their conversion rate. Any good engineer can make smart decisions based on their customer data and feedback, and become successful.
If you're a "business guy" and teach yourself technical skills, you're immediately more valuable. You can prototype basic features and get feedback. You have the technical understanding of your product to make informed customer decisions. You'll have the ability to spot problems early on, and make adjustments as needed to your product. Even if you're not necessarily a "good" programmer, you can still have much more of an impact with technical skills.
* puppet - managing server packages / infrastructure
* monit - monitoring server processes / fixing things
* django - primary web framework and ORM
* amazon mysql - it's hosted, and works via plug-ins with Django
* amazon s3 - storing static assets (images, css, javascript, etc.)
* amazon elastic load balancer - for scaling incoming HTTP requests across multiple web app servers
* amazon autoscale - for spinning up new web app servers to handle spikes in traffic
* rabbitmq - message queueing
* celery - processing async tasks in a robust fashion. must have
* memcahed - no explanation necessary
* git
* fabric for deploying software
* jenkins for testing / building software
* nginx for buffering elastic load balancing requests to web app servers