Merging modern software development with electrons and metal
Random header image... Refresh for more!

Posts from — April 2016

The End of WiMax: What I Did

Since Sprint turned off WiMax last November, I had to make a change.  LTE was one choice.  I’ve done some LTE testing; with newer MiFi units such as the ZTE Z915 device it can be faster than DSL with excellent voice quality for VoIP.

But LTE performance is still much more variable than DSL or Cable Internet, while the cost is comparable to DSL/Cable, and more than WiMax.  With WiMax, I could go cheap, fast, and limited (10G for ~$20/month) with FreedomPop or cheap, slow, and unlimited with Clear (~$35/month).  Average LTE rates are around $40/month for 5GB at decent speeds.

My choice is LMI.net’s PHLO+, which is around $51-$55/month (including all the annoying taxes) for unlimited DSL as fast as you can get, and an analog phone line (I didn’t want the analog phone line, because it’s the reason for all the taxes, but I didn’t have a choice).  It is very similar to Sonic.net’s Fusion service, but since I had already had good experiences with LMI as a previous DSL customer I went with LMI.

I also liked that LMI was open to bringing or buying your own modem, while Sonic emphasizes rental.  So after discussing which modems LMI preferred, I bought a Smart RG SR510N for ~$20 from eBay.  The Smart RG  has worked perfectly so far.  I highly recommend both companies; Sonic does have its advantages, such as more service options (FTTN, FTTH).

My peak speeds are about 18Mbps down and 1.25Mbps or so up using my favorite speed test from DSLReports.

Since PHLO+ comes with a full featured POTS phone line, I bought a ObiLine for my Obi 202.  Some people complain about echoing on the ObiLine; I have noticed occasional echoing but overall the quality has been acceptable.  However, I found I didn’t like how it handles incoming calls forwarded from Google Voice.  (To be fair, I haven’t tried much troubleshooting on these issues, but since I’m happy with my setup, that’s a low priority).

Some other service changes from my last update:

  • I dropped Anveo.  Anveo still has excellent rates for E911 service and unlimited person DID (incoming phone numbers), but I wanted CNAM and didn’t care about Anveo’s features such as advanced call flow.
  • I ported the Anveo number to Ring.to, which was quick, easy, and free.  I’m not using that number a lot, but I value it so it’s a good match for Ring.to with their new usage restrictions (but since Ring.to is free, no complaints from me).
  • I dropped VestaLink after my contract ran out.  VL did work well for me, and since they offered a great deal for a 2-year pre-pay I thought about renewing, but I don’t need it now, and it’s hard to commit to 2 years to a company that isn’t actively looking for new customers.
  • I added CallCentric’s free New York DID, which includes CNAM (Caller ID name lookup).  It’s working well so far, and I’m fine with paying $1.50/month to CC for E911 service.
  • I played around a bit with VoIP.ms; right now I’m not actively using it, but there’s a good chance I will in the future.  I also thought about trying out CircleNet, but decided against it because they don’t offer California DIDs.

So my current Obi 202 setup is:

  • Callcentric DID for primary incoming calls.  Both Google Voice and Ring.to forward to CallCentric, which provides CNAM.
  • Google Voice is the primary line for outgoing calls.
  • Localphone is the backup line for outgoing calls (so I have two outgoing lines).
  • The Obiline (LMI analog line) is used for 911, and backup.
  • One Service Provider is currently empty; I might put VoIP.ms back in here.

The system is working well enough, but my “I’ll do it someday list” includes:

  • Different ring tones for different incoming lines.
  • Automatic switch over (ring on one phone first, switch to second if first line is busy).
  • Maybe add a PBX such as Asterisk.

I know it’s not that hard to do these things, but they just aren’t a high priority.

 

April 29, 2016   3 Comments

Reactive Reading

I’ve managed to do a bit of professional reading in the recent past, from process to PLC to mind-blowingly functional.

Business Process Books

I read one business book, Profit Beyond Measure by Johnson and Broms.  They use the Toyota Production System and Scania’s modular design process to examine how to manage by means (MBM), instead of manage by results (MBR).

In MBR, management sets financial targets such as profit margins, sales level, or market share.  In the MBM approach, management focuses on the process (how) the company achieves its result, for example, how work flows through from customer order to customer delivery (and payment!).

Three Fun, Mind Blowing MEAPs

I skimmed three MEAPs.  A MEAP means you get to download and read the book while it is being written.  Since I still like dead tree books, I paid a little bit extra so when the books are finished, I will get real books hot off the presses.  I thought all three books were good, maybe excellent.  My selections were:

  • Grokking Functional Programming (Grokking FP) by Aslam Kahn is an introductory book on functional programming.  The goal is to introduce the fundamentals of functional programming in an easy manner, without any scary mathematics, and then to get you to truly understand (“grok”) how to approach programming challenges in the functional way.  The book is filled with examples and exercises, since you don’t really understand a method until you do it yourself.
  • Functional Reactive Programming (FRP) by Blackheath and Jones.  FRP uses cells (representing values over time) and streams (actions/events over time) to handle dependencies.  Since you declare what depends on what, when something happens (such as a new event), the FRP system knows how to update everything that depends on that change in the proper order.  Think of how a spreadsheet updates itself when you change a value.  FRP is a good match for event-based systems such as GUIs, but not so good when you need actions to happen in a predictable sequence (especially hard real time systems).
  • Reactive Extensions In Action by Tamir Dresher.  Reaction Extensions (Rx) is described as “observables + LINQ + schedulers” and has many (but not all) of the features of a Functional Reactive Programming library.  Originally written in .NET by Microsoft, Rx has been ported to at least 13 languages (including JavaScript, C++, Ruby, and Python) and is used extensively outside of Microsoft.

I found FRP to be very interesting, but I don’t see an immediate need for it right now.

I do plan on going back through Grokking FP and doing all examples because although I am somewhat familiar with a lot of functional ideas, I do not yet think in functional way — I haven’t grokked it yet.

I am also planning on going through Rx In Action in depth, because I think it may be a good way to re-factor one of my programs at work that has significant event handling.  I’m interested in Rx because I like its:

  1. Support for handling events as streams (like FRP)
  2. Support for event timeouts
  3. Support for propagating errors that occur in event handlers
  4. .NET support (I like to program in C#)
  5. Better support for sequences (which I need)
  6. Concurrency control with schedulers
  7. The ReactiveUI GUI library

Functional programming is hot right now because some of its features (such as immutable types) can make parallel programming significantly easier.  I do think automation programmers should learn it (I can wholeheartedly recommend Grokking FP) because it will truly expand your mind, and FP is becoming more popular.

Programmable Logic Controller (PLC) News

On the PLC side, I have decided to skim through Programmable Logic Controllers: An Emphasis On Design And Application by Kelvin Erickson.  I started trying to read it thoroughly, but haven’t made much progress so I am changing my approach to skimming.

Based on a reader recommendation, I just bought Progammable Logic Controllers: A Practical Approach to IEC 61131-3 Using CoDeSys by Dag Hanssen.  I plan on skimming it next, and then will share my findings.

Both appear to be well written, both are a bit pricey, both were written by professors, and both are introductory books.

The contrast with mainstream programming books is fun:

  • My three Manning books (print and ebook) cost the same as PLCs by Hanssen.  I paid $70 to Manning with a 50% discount (you can get that by signing up with Manning and being patient).  I paid $70 for PLCs by Hanssen (new, with $9 Alibris discount; list price is $120), and $50 for PLCs by Erickson (first edition, used; list price for current version (Third Edition) is $85).
  • The MEAPs are well written, advanced books covering cutting edge topics.  The PLC books are good, too, but they are introductory textbooks.
  • The MEAPs were written by developers who use these tools in their day to day jobs.  The PLC books were written by professors.

So I haven’t found an advanced PLC programming book yet, however, there is good news: Frank Lamb, proprietor of the Automation Primer blog and author of Industrial Automation: Hands On, has announced that he has started writing one.

April 19, 2016   No Comments