Monday, July 27, 2015

Forwarding HTML e-mails on Android

I was looking at blogging platforms again.  A big feature for me that used to be very hard to find is now supported by all of the major blogging platforms I looked at: the ability to post via e-mail.  Even better, also formerly elusive, is the ability to change the e-mail address used to post the messages, in case the old address got hacked or whatever.  They all had that as well.  However, I'm finding it difficult to post HTML e-mails to the blogs from my Android phone and have them show up properly.

The native clients I'm using are K-9 Mail, Google Inbox, and Gmail.  When I get an HTML e-mail that I want to post to my blog, I forward it.  Currently, I'm using Blogger for this since that workflow seems to reliably get the HTML up on my blog without any massaging on my part.  I tried posting an HTML e-mail to WordPress in this manner, by forwarding it with Inbox, and the post was empty.  I tried it with Gmail and got the same result.  However, when I post using Gmail on a Web browser -- both Chrome for desktop and Chrome for mobile -- the message appear properly on WordPress.

I'm guessing that the native clients are not actually sending the message's assets (images, at least), but only the IMG tags, leaving it up to the recipient's client to load the assets.

My first question is, is this guess correct?  My second question is, why do native clients behave this way?  Is it a question of bandwidth, i.e., the cost of sending the assets themselves versus sending the IMG tags?  My third question is, how can I get around this with a native Android client?  Now that I know I can do this with Gmail on mobile Chrome, no problem, but it would still be nice to be able to do this offline.

Update

To elaborate, when I use Inbox from desktop Chrome, forwarding the message as-is to both Tumblr and WordPress produces an empty message.  Blogger posts the message in full.  Only when I remove the delimiter between the forwarded message and the body of the message do WordPress and Tumblr post the message.  Even then, Tumblr seems to filter out all of the HTML assets; WordPress posts the message fully and intact.

Thursday, April 3, 2014

Google Chrome and your local hosts file; Squid proxy for Mac

I was trying to alter my hosts file in order to block Faceb**k[1][2] and other annoying things that Ghostery told me were constantly loading on websites.  I looked up tips on how to do so and was surprised to see that what works on most browsers does not work on Google Chrome.  Here's an excerpt from How-To Geek:
When [we] tested it, Chrome did not use the hosts file in any operating system but we were able to block Facebook in Chrome by adding www.facebook.com.
Weird.  I did go to my Mac's System Preferences -> Network -> Proxies, selected Auto Proxy Discovery, and that seemed to make Google Chrome observe the /etc/hosts file.

There might have been more at work there, but I didn't want to mess with it further.  Instead, I decided it was time to install my own Squid proxy.  Of course, I wanted to see if someone had already made this less painful.  :-)  And voila:


A Squid wrapper for Mac.  It installs and configures Squid, giving you a nice GUI to configure basic options.  It is designed to be a personal proxy, running on your local box, but you can configure it to accept connects from other computers, a subnet, etc.

Side note, it was unfortunate that the URL filtering on my router wasn't very smart or else I would have used that instead.

Update:

I set Squid up as a transparent proxy, meaning basically that it requires no configuration by the clients, and that all HTTP traffic will go through Squid by default.  The problem is with HTTPS.  Using HTTPS with a transparent proxy appears to work with Google Chrome, which seems to delegate all proxy settings to the system, but it does not work with Firefox.  With Firefox, HTTP did work, but HTTPS did not.  Only when manually setting Firefox to use Squid as an HTTPS proxy did HTTPS proxying work.

Update:

When trying to accomplish the same thing on my Ubuntu box, this is how I got Chrome to respect Squid:

http://askubuntu.com/questions/66554/why-is-google-chrome-ignoring-my-proxy-settings


References

Problems running current version of Android SDK (22.6) on Mac OS 10.6.8

More evidence that my trusty 2006 Mac Pro, while still very capable, is becoming obsolete, seemingly thanks to Apple's rigid upgrade/obsolescence policies.

I was taking an online Android course through O'Reilly School of Technology, and have been doing all of my Android development there for the last several months.  My course ended, and I was anxious to use what I learned for other projects and to give Android Studio a try.  (O'Reilly's Android 1 course used Eclipse.)  Much to my dismay, it appears that Android SDK 22.6 doesn't play well with Mac OS 10.6.8.  I think the first problem I ran into was when I dusted off my local Eclipse and updated to the current version of the SDK.  That didn't work.  I had to manually upgrade it.  I finally got it installed, downloaded my O'Reilly projects and was going to ensure they ran locally.  The emulator never started up[1].  After many tweaks and restarts, installing the Android ADT bundle, etc., I gave up and tried Genymotion.  That didn't work either.  :-)  It seems ominous that a show-stopper such as this has existed as a reported bug[2] for three weeks.

I followed the instructions[3] from Stackoverflow to sneakily download an older version of the Android SDK tools (22.3), and then copy its /tools directory over the /tools directory in the ADT SDK bundle, i.e., ~/Downloads/adt-bundle-mac-x86_64-20140321/sdk/tools .

The good news for me is that I have a couple old Android devices I can use to run my apps on instead of using an emulator, but it's still frustrating to be unable to use the entire set of the current version of the development tools.

Reference


  1. https://stackoverflow.com/questions/22709471/bus-error-when-running-android-emulator - The question in Stackoverflow that describes the problem I was having with the Android emulator
  2. https://code.google.com/p/android/issues/detail?id=67036 - The relevant issue in Google Code for the Android Open Source Project
  3. https://stackoverflow.com/questions/9555337/how-to-downgrade-my-sdk-version#comment19794463_11514698 - The comment in Stackoverflow that allowed me to download an older version of the SDK tools.

Tuesday, February 18, 2014

Using Bundler to set up Ruby and Rubygems to work like Node.js and NPM

I was so excited by reading Development Seed's post about using Jekyll and prose.io to create sites without resorting to content management systems that I jumped into Ruby.  I was slowed when I dug my heels in and refused to "sudo gem install" anything, and tried to figure out how to use some keywords I'd heard -- "rvm", "Bundler" -- to do things the right way and install my project's gems locally, within the project itself.  After only a brief period of frustration, the clouds parted, and I found this:

http://ryan.mcgeary.org/2011/02/09/vendor-everything-still-applies/

So far, so good.  Thanks, Ryan!

- Also, a rbenv plug-in for making Bundler more convenient.

Thursday, January 2, 2014

Keybindings in Openbox

When I log into XFCE on my work desktop remotely using NoMachine's NX client, the "p" button stopped working.  Instead of messing with my XFCE settings, I tried logging into LXDE.  The "p" button worked.

Then I needed to remap the keyboard shortcuts for switching/cycling through windows.  I'm using a Mac Pro at home, and left Command-Tab alone.  Instead, I wanted my keyboard's control + tab keys to cycle through windows.  In XFCE, I would have gone to the window manager settings in the main settings dialog.  However, it looks like I had to manually edit Openbox's keyboard mappings in an XML file.

I ran xev in the X session to find out which key was being pressed.  It said Control_L and Tab were being pressed.  When I edited the /.config/openbox/lxde-rc.xml file from:

   1:  <!-- Keybindings for window switching -->
   2:  <keybind key="A-Tab">
   3:    <action name="NextWindow"/>
   4:  </keybind>
...to:
   1:  <!-- Keybindings for window switching -->
   2:  <keybind key="Control_L-Tab">
   3:    <action name="NextWindow"/>
   4:  </keybind>
...it didn't work.  I didn't care if it was the left or right Control key, so I just changed it to:
   1:  <!-- Keybindings for window switching -->
   2:  <keybind key="C-Tab">
   3:    <action name="NextWindow"/>
   4:  </keybind>
Then I typed openbox --reconfigure to reload the settings without restarting Openbox, and it worked as expected.

References:


- http://openbox.org/wiki/Help:Bindings
- http://superuser.com/questions/248517/show-keys-pressed-in-linux
- http://linux.die.net/man/1/xev

Thursday, December 26, 2013

Android: Accessing shared preferences in Activity

I was getting this error when trying to access shared preferences in my main activity:

http://stackoverflow.com/questions/12201371/android-unable-to-start-activity-componentinfo

Moving getPreferences() to the onCreate() method solved the problem.  I'm guessing it's because I was trying to get the shared preferences before the activity was created.  (Hey, I'm new at this!)

Monday, October 28, 2013

Android ROMs

I'm flashing SuperJELLY on my HTC EVO 4G LTE right now.

I was running Paranoid Android for a few weeks, probably my fourth or fifth custom ROM on this device, and am switching back to a Sense-based ROM (or maybe stock-based ROM is more accurate) because there are some crucial features that just aren't supported at all or well on custom ROMs like Paranoid Android and Cyanogenmod.

GPS:
I've had significant GPS problems running anything other than a stock-based ROM.

4G/LTE and roaming:
I've never been able to get 4G data using a custom, non-stock ROM on this device using Sprint in Washington, DC.  Roaming seems to be much worse also.  Combine that with the fact that it doesn't automatically (as far as I can tell) update its preferred roaming list (PRL) makes it much worse than a Sense-based, stock-based ROM for data connectivity.

Camera:
The first couple non-stock ROMs I installed could barely use the camera at all.  The time between photos was seconds.

Contacts:
Two of the custom ROMs I installed could not load the contacts app without crashing.  The best explanation I found for this was that any significant number of contacts can be a problem for some ROMs.  Never had a problem with stock though.

These problems might entirely be HTC's fault for making it difficult for others to write code for their hardware.  However, that's just another reason to choose hardware whose philosophy fits yours.  Personally, I'd rather have a phone that is generic enough that it will run whatever I want to put on it, rather than having a camera chip that's so spiffy that anything but the stock ROM can barely use it effectively, much less take advantage of its spiffiness.

The take-away from this is that I'm going to hold my breath until my Sprint contract is up in February and then sign up for a no-contract plan with whomever is currently offering something like the MotoX or the next Nexus phone.

Anyone else have similarly frustrating experiences with custom ROMs on their new-ish HTC phone?

Friday, May 11, 2012

Proprietary NVIDIA drivers for Linux

One of my perennial occasions to POUND MY HEAD AGAINST A WALL is trying to wrestle with video issues on Linux.  This time around, I was trying to once and for all figure out why Kubuntu was doing such a poor job with giving me the available 3D & window compositing effects.  My mantra which was written on paper and hanging on my cube wall in front of my eyeballs for years at my old job was, "Never install proprietary video drivers!  Evar!!!1"  I wrote that after wasting probably a dozen hours trying to get my Ubuntu box to run as I thought it should.  This time, after trying XRender (which I don't understand), then switching back to OpenGL (which I don't understand), trying different NVIDIA drivers from the Ubuntu/Kubuntu repositories (I'm using 12.04), trying to tweak my xorg.conf, etc., I finally just went to NVIDIA's site and downloaded the latest driver, dated something like last week.  Of course, I installed it, rebooted it, now everything is great.


Sunday, April 8, 2012

Scripting Selenium / WebDriver with JavaScript

This is the example code I wanted to write using JavaScript:

http://code.google.com/p/selenium/wiki/GettingStarted

Here is where I looked for help when it wouldn't work[1]:

http://stackoverflow.com/questions/10057163/cant-run-java-example-for-selenium-webdriver

To save you the trouble: my Java is poor.  :-)  That's okay, because I'm not a Java programmer.  I do want to script Java[2], however, using JavaScript and Mozilla Rhino.  A prime candidate for learning how to do so (for me) is writing Selenium / WebDriver tests against their Java API.

I finally got the example code to work.  Here is the command line:

alis-mac-pro:selenium ali$ java -cp ".:/Users/ali/Downloads/selenium-2.20.0/*:/Users/ali/Downloads/selenium-2.20.0/libs/*:/Users/ali/Downloads/rhino1_7R3/*" org.mozilla.javascript.tools.shell.Main -f example.js 
Page title is: Cheese! - Google Search

That's my input, and the program's output.  And here is the example.js file that Rhino executed:


importClass(org.openqa.selenium.By);
importClass(org.openqa.selenium.WebDriver);
importClass(org.openqa.selenium.WebElement);
importClass(org.openqa.selenium.htmlunit.HtmlUnitDriver);

// Create a new instance of the html unit driver
// Notice that the remainder of the code relies on the interface, 
// not the implementation.
var driver = new HtmlUnitDriver();

// And now use this to visit Google
driver.get("http://www.google.com");

// Find the text input element by its name
var element = driver.findElement(By.name("q"));

// Enter something to search for
element.sendKeys("Cheese!");

// Now submit the form. WebDriver will find the form for us from the element
element.submit();

// Check the title of the page
print("Page title is: " + driver.getTitle());




[1] - (BTW, before this, I asked for help on irc.freenode.net on #selenium and on #java and got nearly zero response.  The response was useful, though, but without any follow-up, I was left high and dry.  Theoretically, IRC and other live communication channels are wonderful resources for support, but I find that the reality falls way short of that theory.  Maybe it's just my theory?)

[2] - http://www.mozilla.org/rhino/ScriptingJava.html

Thursday, March 22, 2012

Tweaking display set-up on Ubuntu

(Thank you very much, Shinobu!)

I was trying to switch to the Nvidia drivers for Ubuntu 10.04, but was running into the same problem that made me ditch the drivers in the first place: I couldn't get Nvidia's config tool to rotate one of my monitors and leave the other alone.

Thanks to http://zuttobenkyou.wordpress.com/2009/10/04/linux-nvidia-xinerama-guide-rotating-just-one-monitor-in-a-dual-head-setup/ , I was able to switch to Xinerama (an Xorg extension), and rotate one of my monitors.  It involved some manual editing of my /etc/X11/xorg.conf , but nothing too painful.

Here's my /etc/X11/xorg.conf :


# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 1.0  (buildd@yellow)  Fri Apr  9 11:51:21 UTC 2010

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 1024 100 
    Screen      1  "Screen1" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "1"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "DELL ST2420L"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
    Option         "Rotate" "Left" # for portrait mode
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL 1907FP"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
    #Option         "Rotate" "Left" # for portrait mode
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro FX 4600"
    BusID          "PCI:8:0:0"
    Screen          1
    Option         "RandRRotation" "on"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro FX 4600"
    BusID          "PCI:8:0:0"
    Screen          0
    Option         "RandRRotation" "on"
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "DFP-0: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "DFP-1: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option         "Composite" "Enable"
EndSection


I'm sure there's still some cruft in there, but oh well.

Thursday, March 1, 2012

Debugging Google Chrome / Chromium CPU Horror

I hated to admit that using Google Chrome was destroying my productivity on my Ubuntu workstation at work.  The CPU usage was absolutely horrible, and the average load on my machine was usually anywhere from 1.5 to 7.  I know!

My workstation was fairly beefy memory-wise and CPU-wise, and had plenty of disk space.  I disabled everything I could think of, enabled GPU rendering of things, disabled debugging, extensions, ETC. . . .

I exited Chrome and waited for the processes to die.  Usually, I just verify this happened by looking at top; since Chrome usually owns the top spots (no pun intended), I wait until top shows no chrome processes, then I restart it.  This time, I did ps for chrome and chromium processes.  TURNS OUT that after using the Profile Manager[1] extension, several chrome and chromium processes were starting up every time I logged in.  I verified this by looking at "~/.config/autostart", which showed several *.desktop files pointing to Google Chrome and Chromium profiles.

So far, the change is extremely significant.  I recorded no benchmarks along the way, so I am unsure of how much each of my changes improved performance.  However, it appears that all of the extra Chrome processes were what made the biggest difference.

Chalk up another win for blogging about anecdotal information that may or may not lead to misunderstandings about technology.  :-)  You're welcome!


-Ali


[1]  I started using Profile Manager because I wanted to run multiple Chrome sessions in isolation, depending on what I was working on.  For my day-to-day work, I use one profile.  For my volunteer work, which I associate with its own Google Apps account, I use another profile.  For my browser testing, I use another.  THE LIST GOES ON.

Wednesday, January 18, 2012

Fwd: Why is the Internet on strike today?



---------- Forwarded message ----------
From: Mozilla Firefox <mozilla@awesomeness.mozilla.org>
Date: Wed, Jan 18, 2012 at 08:21
Subject: Why is the Internet on strike today?


 
Trouble viewing? Read this in your browser.
Firefox & You
From Mozilla, a non-profit organization and developer of Firefox
 
 
Stop Censorship Today, Mozilla is joining the virtual strike against Internet censorship – along with others like Wikipedia and Google – to raise awareness of US Congress legislation that could fundamentally alter the Internet we know and love.

This harmful legislation, called the Stop Online Piracy Act (SOPA) in the House and the PROTECT IP Act (PIPA) in the Senate, will be voted on as early as January 24th in the Senate.

If you live in the US, there's still time to help stop these bills from becoming law. Please visit mozilla.org/sopa for information on the bill, and on ways you can reach out to your senators.

What makes this legislation so bad? Here's how it would change the Web:
  • Communication platforms – from YouTube to Facebook to Amazon – could be shut down if a single rights holder alleges a violation.
  • It would make the Web less stable and less secure.
  • Social networking sites, like Twitter or Facebook, could be forced to track and control user behavior, stunting innovation and undermining free expression.
  • Your Internet provider could be required to inspect all of your traffic and browsing.
Visit mozilla.org/sopa right now for information – and make your voice heard before it's too late.

Please join today's strike, and help protect the Internet.

Sincerely,

Jane & Winston
Editors



Help spread the word
Share on Facebook Share on Twitter
 
   
Thanks for Reading!

Monday, December 5, 2011

Google being evil?

Hi,

Right now we have a huge opportunity to deal a serious blow to one of
Washington's most powerful lobbies, the U.S. Chamber of Commerce. At
Google headquarters, employees are intensely debating whether Google
should quit the Chamber in the next few weeks. Google quitting would be a
huge blow to the Chamber's credibility.

I signed a petition to Google employees to ask them to stand up for us and
our democracy by quitting the U.S. Chamber of Commerce. Will you join me?

http://civic.moveon.org/googlechamber1/?r_by=33547-19148747-xF_2Wxx&rc=googlechamber1_letter.email.g0

Thanks!



Wednesday, November 23, 2011

Advice about who should use or not use Perl

From Learning Perl, 6th ed. (6):
If you're going to use a programming language for only a few minutes each week or month, you'd prefer one that is easier to learn, since you'll have forgotten nearly all of it from one use to the next.  Perl is for people who are programmers for at least twenty minutes a day, and probably most of that in Perl.
The highlights are mine.

I went to YAPC::NA 2011 and in my narrow slice of experience of the event and ancillary meetings (including Perl Mongers meetings), this quote from Learning Perl resonates with me.

Unfortunately (!), only jobs I've *applied* for would have me writing Perl everyday.  As it is, and has been for nearly a decade, as much as I've wanted Perl to be my job, it has been nearly none of it.  Thankfully, at least, my work now puts me back in front of actual code, so while it isn't Perl, it is something (Python and PHP).




  • Schwartz, Randal L.; Foy, Brian D.; Phoenix, Tom. Learning Perl. 6th ed.

Friday, October 14, 2011

Best way to aggregate content for reading offline

I started using Instapaper  a looooooooooo . . . ooooooooong time ago for aggregating things I wanted to read later.  However, less and less of the content I want to read is actually in the feed or article that I have at hand to forward to Instapaper (via my personal Instapaper e-mail address).  So what happens is that I go to my Instapaper feed, sync it to my Nook, for example, so I can read it offline, but when I sit down to read it, all I get are headlines and excerpts; all of the meat of the articles lay elsewhere on some network, so I still need a data connection in order to access it.  Mission failed.

So, it would be great to find a way to not only sync a given feed (or, like my Instapaper, a feed of feeds) with a device or offline app, but to spider that feed and keep all of the content together.

Surely this exists!  Or will I have to write it myself?

Wednesday, October 5, 2011

Ubuntu + x11vnc + TightVNC = happytime

In searching for the current best way to access remote X sessions, I tried out x11vnc and TightVNC -- not the native client, but the Java app, no less -- and was immensely pleased!  Just ran "x11vnc -display :0" on a remote console, and connected with TightVNC instantly.  No additional config.  The display was very smooth, and resolution was 1280 x 1024.

FYI, that was a password-less session, so if you want to secure it, gotta do a little better than that.  But with a simple SSH tunnel, should only involve another command on the remote shell, right?

Monday, September 12, 2011

Fwd: [Dclug] Fwd: Invitation to DCLUG Members



---------- Forwarded message ----------
Date: Sun, Sep 11, 2011 at 23:34
Subject: [Dclug] Fwd: Invitation to DCLUG Members


I am forwarding this announcement for a code sprint devoted to writing
tools that help government transparency. I have no connection to the
organizers, but I think it's a great idea. Even in the US, we have a
lot of data but not necessarily a resulting transparency, e.g. as it
relates to public finances (taxes, government contracts, etc). As a
result, people often have silly arguments about things that should be
easily verifiable facts, such as 'what is the effective taxation rate
for corporations of varying size in the US"; it's embarrassing when
various people make mutually exclusive claims on issues like that.

I don't know the scope of the event mentioned below, but I recommend
checking it out.


---------- Forwarded message ----------
Date: Sun, Sep 11, 2011 at 9:11 PM
Subject: Invitation to DCLUG Members



There is a competitive codeathon taking place on September 24/25 in
Moscow and Washington D.C. focusing on using open source technologies
and open data to address transparency challenges in the U.S. and
Russia.  We would like to extend a particular invitation to DCLUG
members to participate.  A brief statement about the event is below
and more information is available at www.code4country.org.  We hope to
see some of your members there and please do not hesitate to let me
know if you have any questions.


Urgent Call for Ideas -- and Programmers



Mark your calendars!  On September 24th and 25th an unprecedented
event is taking place: a codeathon bringing together programmers and
software engineers from both the U.S. and Russia to address challenges
of openness, transparency and accountability in both countries.



Code4Country is the first event of its kind--convened within the
framework of activities of the Bilateral Presidential Commission and
with support from civil society and the tech community. Code4Country
is about ordinary citizens working together across borders, and
building bridges between the U.S. and Russia by addressing common
challenges.



What are the obstacles to transparency in your city, region or
country? Is there a Web-based or mobile solution that could help? How
can ordinary citizens use new technologies to make their governments
more open? Please describe your ideas at www.code4country.org



This is also a call for programmers, designers, engineers, techies,
activists and digital diplomats to come out to American University on
September 24th and 25th. You will have the chance to work with coders
in D.C. and in Moscow to brainstorm, code, mash up data and win prizes
for apps that promote openness and make data accessible to the
community.  Register at www.code4country.org.

Thursday, July 7, 2011

Trouble getting Net::SFTP installed on Windows and Mac

So, in the spirit of proving that Perl is not a *nix programming language, I have been banging my head against the wall for days trying to get Net::SFTP installed on a variety of non-*nix platforms: Windows 7 + Strawberry Perl, Windows 7 + Cygwin, Mac OS 10.6. I run into countless dependency problems, some of which I was able to decipher and move through.

The latest is when I attempted to install Net::SFTP using perlbrew on my iMac at work. Math::GMP fails with "WARNING! No GMP libraries were detected!". Will look into that one and report back.

Sunday, June 26, 2011

At YAPC::NA::2011 in Asheville, NC!!!

Finally made it to the annual North American Perl conference! It was so close, I had to go. Drove to beautiful Asheville, North Carolina. Everything from Front Royal was scenic candy.

Looking forward to breakfast among the Perlers and genuflecting to Larry Wall at 10:25am tomorrow.