Expertise

Consulting CTO, Cloud Architect and GM providing solutions for startups on building teams, products and companies. Cloud expert with approximately 20 years experiences with Unix, Linux, automation, Python and Distributed Computing at scale. Strong statistical and mathematical modeling skills, with an emphasis on modern machine learning, AI and Deep Learning.

Publications

Riak as the Backbone of a Global Social Network - Building a globally distributed social network built using Erlang, Riak and AWS used by the largest sport’s teams on earth.
Python For Unix and Linux Systems Administration: O'Reilly - Python is an ideal language for solving problems, especially for Linux and Unix
SNMP Primer for OSX Leopard - An article on Understanding, Configuring, and Customizing SNMP on OS X Leopard that might change the way you think about your Mac.
Integrating OS X With OpenLDAP/Samba, Part 1 - Configuring Your Mac To Work With Linux Samba and LDAP Servers
Integrating OS X With OpenLDAP/Samba, Part 3 - Configuring Your Mac To Work With Linux Samba and LDAP Servers
Writing clean, testable, high quality code in Python - Catastrophically bad code can be written in any language, including the elegant and powerful Python language. In this article, we explore how thinking about testing actually produces dramatically different Python code. Lastly, we learn how to measure scientifically the difference.
Porting Perl To Python - Porting legacy Perl to Python can be a daunting task. In this article, learn some of the theory behind dealing with legacy code, including what not to do.
Continuous integration with Buildbot - The days of cowboy coding are long gone at most organizations, replaced by a renewed interest in generating quality software. Continuous integration (CI) testing is a vital component in the practice of agile programming techniques that lead to high-quality software. Learn the theory and practice of CI testing by exploring Buildbot, an open source CI system written in Python.
Multiprocessing with Python - Learn to scale your UNIX® Python applications to multiple cores by using the multiprocessing module which is built into Python 2.6. Multiprocessing mimics parts of the threading API in Python to give the developer a high level of control over flocks of processes, but also incorporates many additional features unique to processes.
Functional Web Testing in Python - If you are entering into the cloud, testing becomes even more critical for your applications to be reliable. Learn to master automated, functional testing using the open source tools, Selenium, Windmill, and twill. The techniques covered in this article work on Google App Engine, blogging software, or your own home grown application.
Using SQLAlchemy - SQLAlchemy is a next-generation Python Object Relational mapper. Learn how to use the new 0.5 API, work with third-party components, and a build a basic Web application.
Python and LDAP - At some point in their careers, most systems administrators need to interact with an LDAP server. This article shows how LDAP can be used for Apache authentication, as well as how to perform CRUD, or Create, Read, Update, and Delete operations on an OpenLDAP database, using the Python module python-ldap.
Writing plug-ins in Python - Learn how to extend your Python command-line tools by writing plug-ins.
Connecting Apple's iPhone to Google's cloud computing offerings - Cloud computing and software development for handheld devices are two very hot technologies that are increasingly being combined to create hybrid solutions. With this article, learn how to connect Google App Engine, Google’s cloud computing offering, with the iPhone, Apple’s mobile platform. You’ll also see how to use the open source library, TouchEngine, to dynamically control application data on the iPhone by connecting to the App Engine cloud and caching that data for offline use.
From scripting to object-oriented Python programming - Often it is difficult to make the transition from procedural scripting to object-oriented programming. This article explores how to reuse knowledge from PHP, Bash, or Python scripting to transition to object-oriented programming in Python. The article also briefly touches on the appropriate use of functional programming.
Practical threaded programming with Python - Threaded programming in Python can be done with a minimal amount of complexity by combining threads with Queues. This article explores using threads and queues together to create simple yet effective patterns for solving problems that require concurrency.
Example-driven ZODB - Relational databases are not the only solution available for Python programmers in the enterprise. Often an object database can be a more natural fit for solving certain problems. This article discusses ZODB, a scalable and redundant object database that specializes in storing extensible objects, without the natural Object-relational impedance mismatch that can occur by attempting to make an Object Oriented Language and a Relational Query System map objects to relations.
Using Python to create UNIX command line tools - If you work in IT, as a UNIX® Sysadmin, a software developer, or even a manager, there a few skills that will set you apart from the crowd. Do you fully understand the OSI model? Are you comfortable with subnetting? Do you understand UNIX permissions? Let me add to this list the humble command line tool. By the end of this article, anyone involved in IT at any capacity should be able to create at least a simple command line tool.
Using Net-SNMP and IPython - Data centers and production facilities are embracing Simple Network Management Protocol (SNMP) as a way to get a handle on dense and complex infrastructures. The Net-SNMP library now has Python™ bindings, and it is an excellent choice to write custom code to manage a data center or supplement full-blown Network Management Systems (NMS). Due to the complexity of SNMP, using an interactive tool like IPython can make all the difference. In this article, learn how to use Net-SNMP, Python, and the IPython shell to interactively explore and manage a network.
Getting Started with the Google App Engine - First ‘unofficial’ article ever published on Google App Engine.
Discover the Power of Open Directory: Part 1 - First technical article published on Open Directory. Includes instructions on using Open Directory with Mac, Linux, and Windows shared home directories.
Discover the Power of Open Directory: Part 2 - First technical article published on Open Directory. Includes instructions on using Open Directory with Mac, Linux, and Windows shared home directories.
Discover the Power of Open Directory: Part 3 - First technical article published on Open Directory. Includes instructions on using Open Directory with Mac, Linux, and Windows shared home directories.
Using Python and AppleScript Together - An article about using Applescript and Python via an bridge library called appscript.
Solve cloud-related Big Data problems with MapReduce - At times, you need to be able to access more physical and virtual resources to achieve complex compute-intensive results, but setting up a grid system within an organization can face resource, logistical, and technical hurdles; even some political ones. Cloud computing comes to the rescue in this case. It also combines perfectly with the MapReduce function for handling lots of Big Data computations by making it both transparent and irrelevant where two numbers get added together. The author demonstrates why cloud computing and MapReduce are helpful in solving Big Data problems.
Cloud Business Analytics - Find patterns in multitudes of cloud business analytics data.
Parsing Log Files with F#, MapReduce and Windows Azure - In this article, I hope to share some of my excitement about F#, Windows Azure and MapReduce. I’ll pull together all of the ideas to show how you can use F# and the MapReduce algorithm to parse log files on Windows Azure. First, I’ll cover some prototyping techniques to make MapReduce programming less complex; then, I’ll take the results … to the cloud.
Use Node.js as a full cloud environment development stack - Explore Node.js, an event-driven I/O framework for the version 8 JavaScript™ engine on UNIX®-like platforms designed for writing scalable network programs such as web servers. This article examines the framework, the ecosystem surrounding it (including cloud offerings), and wraps up with a comprehensive example of how to build a chat server in Node.js.
Python Greedy Coin Algorithm - Given an arbitrary amount of change, say 1.34, determine the correct amount of change to give using a greedy match, which uses the highest coins first. With US coins, 25,10, 5,1, greedy match will lead to the lowest coins possible.
Learning Erlang, a UNIX developer's perspective - Erlang is destined for great things in the age of multi-core, due to its unique process loving architecture and functional nature. In this article, you can learn the basics about programming in Erlang.
Linear optimization in Python - Explore ways to model optimization applications in Python using Python Optimization Modeling Objects (Pyomo), an open source tool. You can use Pyomo to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. This article series shows how to leverage Pyomo’s ability to integrate with Python to model optimization applications. This first article covers the basics. Part 2 shows how to add more tools and build a scalable architecture. Part 3 presents some hands-on examples of investment analysis and statistical analysis using IPython and pandas.
Linear optimization in Python, Part 2: Build a scalable architecture in the cloud - Build a scalable architecture in the cloud Combining Pyomo, RabbitMQ, and Tornado