Goodbye Elastix – we will miss you

Last week marked a sad point in the history of Open Source, the highly acclaimed and established Asterisk distribution was taken down from the Internet, leaving all of its users, followers, eco-system, resellers, integrators and more with a gigantic void to be filled.

While the void will be filled at some point, I can’t but help but observe the joy and cheerfulness of the proprietary telecommunications industry, as 3CX had rapidly taken over the Elastix business in such brutal manner. According to the various discussions in the Open Source community, the entire thing was cause by, a so called “violation of copyright” or “violation of IP” of some sort, within the Open Source communities. In the past, as far as I know, when various distributions or projects violated each other’s copyright, they would notify one another – and would ask to rectify the situation. Apparently, this hadn’t happened here – or if it happened, it wasn’t published in an open manner – as you would expect.

One of the things that the community started shouting was: “Elastix had been trixboxed”. Honestly, I don’t see the similarity between the two cases. When fonality acquired trixbox, they had a clear indication of where they are going. This is not 3CX acquired Elastix, this is 3CX obliterated Elastix. This is something completely different – and with major personas in the open source community indicating that a certain, well known and renowned, Open Source persona was involved in this happening, I can only be highly offended by the everlasting stench of people’s own ambition and personal hatred towards things that are not their own.

I admit it, I never really used Elastix in my projects, I found it to be bloated, inflated with software that shouldn’t be there, too slow for my taste and with a lack of proper project leadership, patches went in and out like crazy. Yet, I can’t argue with their success and the acceptance of the product around the world. I remember being at VoIP2Today in Madrid only a few weeks ago, and there were Elastix boxes sitting on tables. Yes, Elastix wasn’t my first choice for an Office PBX, but yes, they were a choice – the idea of a commercial company coming in and removing that choice off the table – is just annoying and troubling at the same time.

My hope is that some Elastix developers will simply post the entire source code to Github or some other public repository, slapping a BSD/MIT license on their work – telling the world: “Here is our creation, the proprietary daemons decided it should die – but no one can kill an idea!” – and Elastix will keep on living in the Open Source like other projects. If the world will forget it, then so be its fate – but if the world needs it, let the world take it in two hands and raise it up to the sky and say: “You shall not die!”

 

Python should be the first language you learn!

For the better part of the past 15 years, I’ve been a PHP developer. Really, I’ve developed everything in PHP, ranging from server side services, web services, backends – you name it, I’ve probably done it with PHP. Don’t get me wrong, I love PHP and it will always remain my language of choice for doing things really fast.

However, for the past year I’ve been increasingly developing with Python. I’ve always dabbled with Python, but never really had the chance to truly get down and dirty with it. Due to a couple of projects during the past year, specifically ones that involve Google AppEngine, I’ve had to sharpen my Python skills and get to a point where I can develop with the same agility that I have with PHP. Honestly, it wasn’t simple – sometimes I truly wanted to strangle someone with various errors a framework can spit at you. However, once you get around to reading the various cryptic messages Python may spit at you, getting around it and working with it is truly a delight.

So, why do I think Python should be the first language one learns? so here are my thoughts:

I started my coding days with BASIC, to be more accurate GW-BASIC (yes, I am that old). From that I moved to Pascal (Turbo Pascal to be more accurate), then C, then C++, C++ Builder, Visual C++ (yes, I did MFC at some point in my life as well). I then decided that my life is in the open source world – and thus, the track then went to PERL, JAVA and of course PHP. Honestly, somewhere around 2005, the mixture of C, JAVA and PHP truly gave me all the power I needed to do my job – so, I didn’t really find the time to learn a new language.

Then, about a year ago, I decided it’s high time to learn something new – specifically, I became increasingly interested in the Google AppEngine platform. Yes, I’ve been using Google Compute and other cloud platfroms for a few years now, I’ve used most of Amazon’s services, ranging from EC2 up to RedShift and their hosted Hadoop clusters. But when Google AppEngine came out, it only had Python, Java and GO to work with. Java is the least favorite language in my tool box – honestly, I hate it. I’ve never coded in GO, and didn’t really feel like starting out with it. And Python, well, I dabbled with it – but can’t say I’ve done something too serious with it. In 2014, Google added PHP support to Google AppEngine. Damn, that sounds cool – let’s play around with that. So, I built a few applications atop of AppEngine and the PHP SDK. I rapidly realized that while the PHP SDK gives you some power, Python is the more natural choice for AppEngine. So, I more or less sat my ass down for 3 days and decided to teach myself proper Python.

Took me about 3-4 days to get around the quirks of AppEngine and how to get it up and running using PyCharm (if you use Python, by far the best IDE I’ve seen). Then building up my first application, then migrating an existing application (a fairly big one), from PHP to Python on AppEngine. I then rapidly moved along to using easy_install, pip and the other Python tools that make life so easy for developers – honestly, right now, I can’t figure out why use anything else other than Python for shell environment tools. But, regardless of that, I honestly think Python is the first language you should teach students, not C/C++, not JAVA, not Ruby and surely not PHP (and I’m a huge PHP advocate).

Why do I say this? here are my main reasons:

  1. Python is objected oriented from the ground up, which means, that teaching object oriented programming using Python is easy and straight forward for new comers.
  2. Python is strong typed, which means that syntactical issues are dealt harshly – promoting proper usage of syntax, indentation, capitalization, variable handling – all the nice things that make good code – readable code.
  3. Python’s physical typing construct, where blocks of code must be tabulated in specific manner in order to make the code work in specific manner – is GENIUS. I’m very much a “Source Code Nazi” (Imagine that coming from a Jew, right?). For me, indentation, proper loop blocks, proper case blocks, making sure things are wrapped really tight without too many white spaces – this is what makes code look nice.
  4. Python is interpreted, not compiled – but yet, it is strong enough to hold the most complex multi-threaded of tasks.

In other words, if you take the above and teach to a new developer, someone who writes code for the first time in his life – your result will be a developer, that may not dish the best code at first (after all, a beginner), but it will be readable, manageable and maintainable. Python automatically promotes these by its structure, by its rigidness and by its agility at the same time.

As part of my academic studies, I’ve studied education and how to teach computer science to high school students. I’ve learned that you should start with Pascal or C, then move to Object Oriented, then move to more advanced stuff. I have one thing to say: BULLSHIT! Honestly, the first thing you need to teach is Python, after Python, the rest are just syntax. Nothing more, nothing less – pure, simple, straight forward syntax.

Would love to hear your opinion on this one…

Hyper Engagement – Enabled!

So, it has now been 2 months, since I started my own little social experiment. Early November, I decided to silence down all my mobile device notifications and mute any “distracting interaction” I could find. No, I didn’t silence off my mobile phone completely – it will just make it useless, but I didn’t make it as less intrusive as possible.

So, about 3 weeks ago I decided that it’s high time, to put my trusty Lenovo X1 Carbon Touch to its final resting place. I was contemplating what notebook should I get. My gut feeling told me: “Time for another Lenovo”. But, somewhere in the back of my head was this ever annoying question: “Is a Mac truly better?”. So, in a spur of the moment, I decided to buy a Mac. Because I am what you would define as a power user, I decided to get the most bang out of eace one of my spent dollars.

So, now I’m closing a month with my Mac and combined with my “Hyper – Not!” regime, I started a fairly lengthy road of re-getting used to using a Mac. Have to admit, El-Crapitan has its quirks. Who am I kidding, compared to previous versions, El-Crapitan is somewhat annoying. However, after getting used to its little quirks and kinks, when you combine the Good of the Mac and “Hyper -Not!” – I managed to reach at least a 40% increase in my productivity.

Time that used to be spent on waiting for things to launch properly and setting up on my Lenovo, just cut by almost 70%. Issues of the machine halting on me or requiring a reboot – gone. Issues that required me to go into Task Manager and seek a process to kill – gone!

In other words, I spend far less time on BS and more time on actual work that needs to be done. Previously, I was able to focus on 2 projects – tops. Today, I’m able to focus on 5 different projects and be involved with 2 more. Is it purely to moving to a Mac? I doubt it. Is it purely related to my “Hyper – Not!” regime, i doubt it as well. It must be a combination of the two. How long will I be able to keep this up? donno, I’ll keep you all updated on my findings.

 

Astricon 2015 Personal Wrap Up

Astricon 2015 is now over, honestly, it flew passed us really fast – at least for me it did. I will refrain from talking about the location of it – as it is more of less a geek’s paradise when it comes to movies and amusement parks. But putting that aside, let’s talk about Astricon itself.

As I see it, Astricon 2015 had distinctively two shining stars – from what I managed to collect. The first one is WebRTC, as it was definitely the talk of the corridors and within the DevCon. Be it a WebRTC controller Lego Puppy, or a connected Tooth Brush – WebRTC is definitely an exciting thing. With the growing popularity of Respoke.io among developers and its inherent connection to Asterisk – I’m confident we’re going to hear more about Respoke in the coming year.

The second one, that is naturally closer to me, is ARI. I’ve seen several people do some really innovative stuff with ARI – and more specifically, PHPARI. I was surprised to learn of a content provider in the Philippines who is using PHPARI to drive over 1500 concurrent calls, topping a total of 5 Million minutes a month – using Asterisk 13 and PHPARI. Man, what a rush! – I started PHPARI about two years ago, I personally know of thousands of installations, but till today, no one really told me what kind of mileage they were getting from it. But learning that someone is packing a 1500 concurrent calls punch with PHPARI, I was ecstatic.

Then, slightly after learning that, I participated a panel with Matt Jordan and Gaston Draque – where we discussed the status of ARI and people had the chance to ask questions. Gaston came to me after the panel saying: “You know, we had a serious fight in the company if to use PHPARI or use GO programming language”. According to Gaston, currently, PHPARI is the most complete toolkit for ARI development – man what a rush. Gaston really knows what he’s doing, I’ve seen some of his work in the past – getting this from Gaston is a serious compliment.

When my wife learned that Astricon this year will be in Orlando, she said: “Take a day off and go have some fun”. So, initially, I was supposed to fly with Eric Klein only. However, we ended up 4 of us in Orlando – which was way more fun. So, for the last day and under the excellent orchestration of Eric, a trip to the Kennedy Space Center was arranged. A group of 21 Telephony geeks got on the bus and took a trip to the Kennedy Space center. Honestly, a highly motivating and inspiring place. Think about it, NASA sent people to the moon, with computer power that is far inferior to your everyday smart phone – simply amazing.

12141558_10153564121736265_7014870291634838053_n[1]

The trip lasted the entire day – we left the hotel at around 8:30, only to come back to the hotel at around 20:30 – a full day! Honestly, if you are going to Orlando, schedule a day trip to KSC – just to see the Apollo rocket in real life – your jaw will drop!

We finished the day back at the hotel, where the first lady of Asterisk joined us for dinner at Jake’s – which was an evening filled with laughter and jokes all around.

12144766_10206916717649129_5376531960455866432_n[1]

So, what’s next? I guess I need to start putting my ass to the chair and cranking up the speed on adding new features to PHPARI .Btw, if you want to help, I will would highly appreciate it – it a work of love, but sharing it around is even better.

Where will Asterisk be in your future?

A dear friend, the CEO of fone.do, Mr. Moshe Meir had written a blog post on the fone.do blog. The title is: “Is there a future for Asterisk?

I have a different take on the thing. I think that Moshe is simply asking the wrong question. He should be asking “What is the role of Asterisk in your future?”.

I know Moshe personally, and I’m shocked by the short sighting of his question. Asterisk was born, initially as a PBX – it has evolved to much more than that. Last year, in my presentation, I showed a slide of a large elephant, with various blind people feeling it around – trying to ascertain what an elephant is. Asterisk is that elephant, it will be what you want it to be. You want it to be a PBX, so be it. You want it to be a Video gateway, so be it. You want it to be a services control point for your OTT application, so be it. You decide!

As technologists and visionaries, it is our job to look ahead into the future and think: “What is the next step? where will we be in 5 years from now, in 7 years from now?” – that is called visionary, pioneering, disrupting and most importantly, exceptional. You want to know what the future of Asterisk will be? look at what you need, that is where it will go. Was always the case, and will always be the case.

Yes, I use Kamailio, OpenSIPS, FreeSwitch and other tools. Yes, I’ve used OpenRTC, EasyRTC, Kurento and others. Yes, we still use them and YES – WE USE ASTERISK, and we will most probably keep using Asterisk for our needs – where it fits the best and assumes the task to the best of its ability. This is why every year we come to Astricon, this is why every year we join the DevCon, this is why every year we make it our business to keep track of whats going on in the core. Moshe, you are forgetting, we are not drivers, we are mechanics – we build and fix things. Tony Stark in Iron Man 3 says: “I’m a mechanic” later on the child replies “You’re a mechanic, fix it” – here’s my challenge to you – “FIX IT!” – make it better, make it stronger, make it into the thing you love and want.

One more thing Moshe, and this is something for you to think about – when you write a blog post, on a blog that has no way of allowing its readers to comment or participate in any form, you should not write opinion posts. Opinions are meant for people who can interact and respond.

** EDIT: You can comment to this post via facebook, at: http://on.fb.me/1QQQ18Q