YAPC::NA 2014, Day One
YAPC (Yet Another Perl Conference) is an annual gathering of Perl developers (and non-developers) to talk about Perl: how to do it, how to get other people to do it, and how we will all be doing it next year (or decade, if all goes well). There are flavors of YAPC set in North America, Europe, etc.
I attended my first-ever starting in Orlando, FL today (which apparently makes me a VIP—Very Important Perl-user, as the community stands on its head the idea that the old fogies are the important people—it’s the new blood at the conference that gets them all excited).
In no particular order, here’s what I remember of my whirlwind tour of YAPC::NA, Day One.
We were welcomed by Chris Prather, and informed that the conference would be live-streamed on the “yapcna” YouTube channel. Those videos are already up here, so you can follow along or take a detour to the several talks I had to miss.
Dan Wright, treasurer for the Perl Foundation, gave an overview of that virtuous organization’s activities for the past year. Basically, they are the most visible philanthropic facet of the Perl community, giving grants to (among other things) support developers who are engaged in fundamental Perl …
conference perl
Liquid Galaxy engineer job opening
This position has been filled. See our active job listings here.
We are looking for a full-time, salaried engineer to help us further develop our software, infrastructure, and hardware integration for the Liquid Galaxy created by Google. Liquid Galaxy is an impressive panoramic system for Google Earth and other applications.
What is in it for you?
- Work from your home office, or from our offices in New York City or Tennessee (Tri-Cities area)
- Flexible full-time work hours
- Benefits including health insurance and 401(k) retirement savings plan
- Annual bonus opportunity
- Ability to move without being tied to your job location
What you will be doing:
- Develop new software involving panoramic video, Google Earth, content management, Interactive Spaces, and ROS (Robot Operating System)
- Improve the system with automation, monitoring, and customizing configurations to customers’ needs
- Provide remote and occasional on-site troubleshooting and support for Liquid Galaxy at customer locations
- Build tours and supporting tools for emerging markets
What you will need:
- Strong programming experience with Java, Python, C/C++, Ruby, Perl, and/or shell
- Experience with automation tools such as Chef, Ansible, Salt, and Puppet
- Linux system administration skills
- Sharp …
jobs-closed visionport
SELinux, PHP and FTP issues
Sometimes it feels like working with SELinux is much like playing Wack-A-Mole. You manage to squash a bug/issue and another one appears elsewhere.
A similar situation happened to one of our customers when he tried connecting via FTP from his PHP code (through Apache).
After much debugging and a lot more Google-ing it turned out it was just a matter of enabling the right SELinux boolean setting.
In order to verify that it really was SELinux fault, we usually keep an eye on the “/var/log/audit/audit.log” log file and then temporarily set SELinux to “Permissive” with:
setenforce 0
In our case things started working as expected so we knew that it was SELinux fault, though we had no “AVC (denial)” error in the audit.log file, neither in Enforce nor in Permissive.
When this kind of situations happens it’s usually a matter of finding which SELinux booleans needs to be toggled.
To discover which SELinux booleans is blocking the wanted behavior we need to temporarily disable the “dontaudit” setting by using:
semodule -DB
and then continue looking at the audit.log file. In our case we found that the interested setting was “httpd_can_network_connect”.
First we verified that it really was set …
apache redhat php selinux
DAD Trouble
I never thought I’d say it, but these days technology is simply moving too fast for DAD. It’s just the way it is. Of course it’s not DAD’s fault, it’s just the world doesn’t want to wait.
Before I get to that, I want to mention some trouble we’d recently started seeing with nginx failing to start on boot. It’s just been on our most recently obtained servers, both Debian-based (including Ubuntu) and RHEL-based installations. Some were Linode VM’s, others were bare metal hardware systems. After boot and once we got in to try and see what was happening, nginx would happily start manually. The only clue was one line that had been left in the error log:
2014/06/14 23:33:20 [emerg] 2221#0: bind() to [2607:f0d0:2001:103::8]:80 failed (99: Cannot assign requested address)
And it wasn’t just nginx; Apache httpd in one instance gave us similar trouble:
Starting httpd: (99)Cannot assign requested address: make_sock: could not bind to address [2600:3c00::f03c:91ff:fe73:687f]:80
no listening sockets available, shutting down
As an interim fix, since at the moment these systems only had one IPv6 each, we told nginx or httpd to listen on all addresses. But not liking to leave a mystery unsolved, …
apache ipv6 nginx sysadmin
Integrating Facebook SDK and HybridAuth PHP library
There are a few different libraries out there for integrating your site with Facebook and other social networking sites. I recently added “Login with Facebook” for a client to their PHP site utilizing the Facebook JavaScript SDK. The documentation on Facebook’s site is pretty good (although it could use a few more examples). Beyond just the login feature, this client also wanted to be able to offer a checkbox for “Post a message to Facebook about your order”. And the way they wanted it done required a PHP library to make calls to the Facebook Graph API directly.
I chose to use the HybridAuth PHP library which is a wrapper for integrating many different social networking sites using a plugin system (Facebook, Twitter, Google, other OpenID services, etc). Likewise, the docs for HybridAuth were sufficient to get the examples up and running for me. The problem was that none of the examples or documentation fit my scenario, where I already have the login set up and working with the JavaScript SDK but want to utilize the PHP library for posting to a user’s feed.
When attempting to connect to Facebook with HybridAuth it kept attempting to log the user in again. The main problem was that …
php social-networks
Android Developer Tools via Google Chrome
Recently I was working on a website on my Android phone, and I found myself needing Chrome’s Developer Tools. However, Developer Tools are not included in the Android version of Chrome for many reasons, including lack of screen real estate.
So, I looked around, and I found a solution: using a USB cable and ADB (Android Debug Bridge), you can do debugging on an Android device with Chrome’s Developer Tools from your desktop.
To show you exactly what I mean, here’s a short video demonstrating this:
So, how does one work this magic? There are several ways, but I’ll talk about the one that I used. For this method, you need to have Google Chrome version 31 or higher installed on both your Android device and your development machine.
First, you have to enable Android debugging on your device. From android.com:
- On most devices running Android 3.2 or older, you can find the option under Settings > Applications > Development.
- On Android 4.0 and newer, it’s in Settings > Developer options.
- Note: On Android 4.2 and newer, Developer options is hidden by default. To make it available, go to Settings > About phone and tap Build number seven times. Return to the previous screen …
android browsers tools
Why Can’t I Edit this Database Table? Don’t Forget the Client!
A client of mine recently informed me of an issue he’d been having for years, where he was unable to edit a specific table in his database. He uses Access to connect to a MySQL database via ODBC, and his database has a few dozen tables, all of which are editable except this one. He reports that, when trying to edit just this one table, putting the cursor into any of the fields and attempting to change any of the data is blocked. As he put it, “It’s like the keyboard won’t respond.”
We confirmed through conversation that the issue was not a MySQL permissions problem—not that I would have expected MySQL permissions to result in such client behavior. We also confirmed that, when using a different application to connect to MySQL with Perl’s DBI, the table was editable just as the rest of the database. At this point, I didn’t have any good suspects (as neither Access nor ODBC are my strong suit) and agreed to bring up the issue with the rest of the End Point engineering team.
After sending out a description of the problem, it wasn’t long before Josh Williams responded. He had seen this sort of behavior with Access before, where the client will lock out the table if the table does not …
database mysql
OpenWest Conference Recap
A few weeks ago, the Utah Open Source Foundation put on its seventh annual conference, known as OpenWest. Spencer Christensen already wrote about his experience at the conference. Family concerns kept me from attending much of it, so as time has permitted I’ve been reviewing some of the conference videos as they’ve come out. The schedule demonstrates a promising evolution as the conference expands and improves. The early years’ schedules always struck me as a bit heavy on front-end development and a limited set of currently popular technologies, and necessarily so given the smaller base of attendees and supporters. But recent years and increasing maturity have brought a very well-rounded conference. For this conference, tickets sold out.
This year’s keynotes included Utah’s enthusiastic Lieutenant Governor speaking on technology in the state, and though this is a regional conference with attendees from all over the western United States, the issues in question cross state lines as governments turn increasingly to technology, and infrastructure ties together even the very remote and rural areas that comprise much of the West. Cox’s video, available here, describes the growth of …
community conference