• Shortcuts : 'n' next unread feed - 'p' previous unread feed • Styles : 1 2
aA :  -   + pdf Infos Unsubscribe

» Publishers, Monetize your RSS feeds with FeedShow:  More infos  (Show/Hide Ads)


Date: Monday, 20 May 2013 17:29

Nearly six years ago, I set up a personal Jabber server using ejabberd.  This setup survived the server migration to Ubuntu 8.04 and 10.04.  This past weekend, I attempted to migrate that to a server running 12.04 and all I could get out of it was an erlang crash dump.

A quick scan for successors turned up prosody. Configuration was as simple as adding a VirtualHost and setting allow_registration to true.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Friday, 29 Mar 2013 19:03

It didn’t take long for me to outgrow using a shell script for deployment.  The new chef solo recipes are considerably more verbose, but can be updated and rerun many times.

My usage is undoubtedly more idiomatic Ruby than idiomatic Chef, and I’m not tapping into the vast Chef ecosystem, but I can now provision a new virtual machine for running tests in under 3 minutes.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Wednesday, 27 Mar 2013 15:07
Yesterday, I used vagrant for the first time.  Within a few hours, I had a reproducible bootstrap that can run my Agile Web Development with Rails tests.  For the short term, this is useful for regression testing the Installation chapter.  Longer term, hopefully it will make it easier for the rails-core team to reproduce problems.
Author: "--"
Send by mail Print  Save  Delicious 
Date: Thursday, 21 Mar 2013 13:10

Background: I maintain a scenario that I test against multiple versions of Rails and multiple versions of Ruby.  I primarily develop on Ubuntu, but I bought a new Mac Mini because some of my readers were having installation problems on Snow Lion and my previous mac min can’t install Snow Lion.

Armed with my new Mac Mini, I set off to to repeat my testing of various versions of Rails and Ruby.  Whereas I have been using, and happy with, RVM on Ubuntu for dealing with Ruby versions; I decided to try rbenv/ruby-build.  What I started with was a new machine, a full installation of XCode, the Command Line utilities, and Homebrew.

Keeping my build recipies up to date involves rvm get stable for rvm, and brew update followed by brew upgrade ruby-build' if `brew outdated`.include? 'ruby-build' for rbenv.

Changing to the latest version of 1.9.3 using rvm is accomplished with rvm use 1.9.3.  If the latest version isn’t installed, this will fail, and rvm install 1.9.3 will do the dirty deed.  For rbenv, one needs to first get a list of versions using rbenv install --list, select ones starting with 1.9.3, sort the list numerically by the last digits of the string, and select the largest result.

Building the latest 2.1.0 can be done with rvm install ruby-trunk-nxxx where the -n is optional but useful for tracking multiple “latest” versions.  I use the subversion revision number for xxx.

Building the latest 2.1.0 is where this all goes downhill with rbenv on Mac OS X 1.8.3.  There is a recipe for 2.1.0-dev.  It automatically downloads and builds openssl to workaround a problem if it detects has_broken_mac_openssl.  I like that in a ruby build tool.

Unfortunately, building Ruby 2.1.0 doesn’t work with Apple’s provided version of autoconf, nor does ruby-build automatically know where homebrew puts its version of autoconf.  Adding /usr/local/opt/autoconf/bin explicitly to the PATH allows me to build exactly one version of 2.1.0-dev.  Fortunately, I can rename that directory to add a -rxxx.  Unfortunately, the shims have hardcoded paths in the shebang lines.  Fortunately, a symbolic link compensates for that.  This does mean that in the infrequent event that I want to go back to a prior build of 2.1.0 I need to remember to update the symbolic link too, but I can live with that.

Determining when the previously build “latest” 2.1.0 is no longer current is a matter of finding out where the git checkout of the ruby repository was done to.  For rvm, this is $rvm_path/repos/ruby.  For rbenv, the default is to throw this away, but this default can be overridden using the --keep option, in which case it is saved to $RBENV_ROOT/sources/2.1.0-dev/ruby-2.1.0-dev.  If a git pull in those directories comes up with Already up-to-date., you are golden.  If not, time to rebuild.

Rebuilding with rvm will make use of what I already have.  Rebuilding with rbenv will fail unless I first erase the $RBENV_ROOT/sources directory, after which point it will do a full download of both openssl and a full (albeit shallow) git clone of ruby.

Just when I think I am done, I find out that what works using foreground login sessions via ssh doesn’t work via background sessions like cron or Apache CGI.  Symptoms are that ruby-build downloads and builds openssl, downloads and builds ruby, then complains with: The Ruby openssl extension was not compiled. Missing the OpenSSL lib?.  This took a while to isolate building Ruby 2.1.0 takes a while even with modern hardware.  Ultimately, I determine that the build only succeeds if /usr/sbin is in my PATH.  This makes no sense at all to me, but it works.  Moving on...

At this point, I have everything working, but it certainly isn’t pretty.  Time to refactor.

One way to approach this is to move all of this logic to a rbenv plugin.  rbenv whatis is a step in this direction.

A better approach would be to first see which parts of this I could either motivate to get fixed in rbenv itself, perhaps even contributing code myself.  The first step is to start a dialog with the developers, but alas I can find no IRC channel or mailing list.  I see that others have resorted to using the issue tracker for this, but that doesn’t seem quite appropriate for this grab bag of small issues and WIBNIs I have at this point.

A prioritized wish list to start with:

  • If a source is already downloaded or cloned, use it.
  • Allow me to provide an additional revision number when building 2.1.0-dev.  Either that or automatically do this for me.
  • If homebrew has installed a later version of autoconf, use it in preference to the Apple provided version.
  • Figure out what is needed in /usr/sbin and either avoid it or make sure that it is found.

It is indeed possible that I overlooked something and/or one or more of these are user errors on my part.  If so, pointers would be welcome.

Whatever is not done, I can put into a rbenv get or equivalent command which does whatever is necessary under the covers to switch to the specified version, including build it if necessary.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Friday, 08 Mar 2013 18:54

Five years ago today, I bought a mac mini to do book development.  On Wednesday, I bought a new mac mini simply because I’m told that Mountain Lion won’t install on a vintage 2008 mac mini, and because my readers have had problems on Mac OS X 10.8.

Overall, I have continued to be unimpressed, and can’t help but wonder why my open source friends seem attracted to this system.  Even after downloading Xcode command line utilities, I kept encountering messages like “can’t find C compiler” and “C compiler cannot create executables”.  Configure is something I haven’t run (at least not directly) for years, and my primary operating system is Ubuntu.

Apache no longer is something you can launch from the settings.  System Ruby is still at 1.8.7.  You need to upgrade openssl simply to install Ruby 2.0.

That being said, I’m impressed by the folks behind RVM and RailsInstaller who are doing their darnest to make this something that people don’t need to concern themselves with.

Author: "--"
Send by mail Print  Save  Delicious 
Plex   New window
Date: Wednesday, 30 Jan 2013 18:12

Scott Hanselman: Plex is the media center software ecosystem I’ve been waiting for

Unhappy with Time Warner Cable, I’ve been exploring netflix, dish, sling, roku, samsung, ffmpeg, handbrake, and cclive.  Next up, some form of video capture device... at the moment I’m leaning towards Hauppauge.

I’m not quite prepared to declare Plex as the centerpiece of my home media center, but it certainly has become a key component.

Unlike Scott, I didn’t go with a dedicated NAS box.  Installation of a Plex Media Server on Ubuntu is a snap (though a workaround is needed if you happen to make use of an apt cacher).

Obligatory Cable Guy reference.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Saturday, 22 Dec 2012 13:47

Mike Amundsen: I have the even greater privilege of working with Leonard and Sam on a new book - “RESTful Web APIs”. It’s scheduled for completion by the end of Q1 2013 and should be available soon after.

While I’m formally on this project, I’m not planning on doing any writing beyond possibly an introduction.  As Mike put it, this book isn’t merely a 2nd edition, but rather more of a “follow-up” seven years on.  I’m very much looking forward to seeing where Mike can help Leonard take this work.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Wednesday, 19 Dec 2012 11:33

Google has reported feedvalidator.org as being hacked, and people are tweeting and emailing me.

I’ve looked at the markup being returned and it looks clean to me.  The .htaccess file looks fine.  A git status command shows that none of the files on the server have been modified.

Can somebody identify what is causing Google to be concerned?

Author: "--"
Send by mail Print  Save  Delicious 
Date: Thursday, 13 Dec 2012 15:54

Peter Linss: I really want to see the TAG be more involved with the rest of the working groups at the W3C

I’ll come out and say it.  I’m a skeptic.  Each of the nominees are good people.

I’ll note that the three out of the four of the “TAG reformists” statements do NOT list getting involved with the rest of the working groups at the W3C as a goal: Alex Russell, Marcos Cáceres, Anne van Kesteren, and Yehuda Katz.

And outside of Anne, none of them have significantly been involved in the HTML WG.  As to Anne, I don’t see being on the TAG as resolving his concern.

What am I missing?

Author: "--"
Send by mail Print  Save  Delicious 
Date: Wednesday, 05 Dec 2012 16:54

It started with two notifications we received via postal mail.  First Time Warner was going to start charging us rent for an outdated cable modem.  Second they were going to drop a number of cable channels, but if I acted now, I could request a digital adapter which would allow me to watch these channels on exactly one TV.

So I did some research and purchased a DOCSIS 3.0 compatible modem that can do IP V6, figuring that would future proof me for a while, and connected it up.  I actually managed to get an IP address assigned, but everything I tried after that was redirected to a site saying that I needed to be “provisioned” and to call a number.  Upon calling that number, I got connected with a person whose sole purpose seemed to be to upsell me to a higher plan.  After I politely but firmly refused, I was transferred and placed on hold for about 30 minutes.  The woman that tried to help me get connected couldn’t get it to work so she transferred me to level 3.  Another 5 minutes later, a gentleman picked up and also had trouble.  It took him about 30 minutes to get it to work — apparently they didn’t give him instructions on how to deal with DOCSIS 3.0 modems despite my picking one of the options on the list they provided to me.  But he was pleasant and apologetic throughout, and eventually did manage to get it working.

The next day I drove 15 minutes to stand in a 20 minute line to do what amounted to a 60 second transaction: here’s a box, here’s a receipt.  Thank you and goodbye.

As to the dropped channels... I dutifully filled out an online form requesting a digital adapter, and got first a confirmation and subsequently a notification that the order was “complete”... where the latter merely indicated that something would be shipping in 3-5 business days, giving me a confirmation number.  That was 18 November.

The box never showed up.

Yesterday, the channels went dark, and I went online.  After using Chrome to override my User Agent so that I could make use of their chat system, I waited over 20 minutes for a representative.  After checking, he said that there was nothing he could do for me, and gave me a number I could call.  I called that number and was told that the wait time would be more than 30 minutes.  As the chat window was still open, I asked if there was anything else I could do.  He said call back late in the evening when the wait times would be less.  I was not happy and closed the chat window.  I was then presented with a survey, in which I responded that the person was not able to solve my problem and that I was not happy.

I tweeted to TWCableHelp and got no response a DM five hours later asking me for my phone number.  Before I went to bed, I sent an email.  When I woke up I got a response indicating that the email had been forwarded to “our regional contacts”, who would be contacting me.  They have not.

I called again, and was told that there would be a 20 to 25 minute wait time.  It was closer to 30.  I was told that another digital adapter had been placed on order.  I asked for a confirmation number, and was told that she didn’t have one.  I asked for an email, and she said that one would be sent within 48 hours.  I was given a case number.  And that was all she could do for me.

At this point, I have nobody I can contact, no tracking number, and no confidence that this time will turn out any different.  And a number of black channels.

This process has turned a fairly complacent Time Warner customer into one that is actively seeking alternatives.  In looking around, I see plenty of promo offers of more service than I have (basic cable and basic internet) for considerably less than I am currently paying.  I am OK with waiting an hour or more for an answer, but I am not OK with having to be on hold for that entire time.  And I’m definitely not OK with renting a separate box per device simply to get access.

So I am beginning my research: starting with looking for alternatives to cable TV.  What I want is a single plan that allows me to watch whatever I want wherever I want.  I am OK with upgrading my devices as long as we are talking about a purchase not a lease.

Any pointers people might leave in comments would be appreciated.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Friday, 09 Nov 2012 11:58

I see that Henri Sivonen is once again being snarky without backing his position.  I’ll state my position, namely that something like the polyglot specification needs to exist, and why I believe that to be the case.

The short version is that I have developed a library that I believe to be polyglot compatible, and by that I mean that if there are differences between what this library does and what polyglot specifies that one or both should be corrected to bring them into compliance.

I didn’t write this library simply because I am loonie, but very much to solve a real problem.

The problem is that HTML source files exist that contain artifacts like consecutive <td> elements; people process such documents using tools such as anolis; and such libraries often depend on — for good reasons — libraries such as libxml2 which do an imperfect job of parsing HTML correctly.  The output produced by such tools when combined with such libraries are incorrect.

Note that I stop well short of recommending that others serve their content as application/xhtml+xml.  Or that tools should halt and catch fire if they are presented with incorrect input.  In fact, I would even be willing to say that in general people SHOULD NOT do either of these things.

Now that I have provided instance proofs of the problem and the solution, I’ll proceed with the longer answer.  I will start by noting that Postel’s law has two halves, and while the HTML WG has focused heavily on the second half of that law, the story should not stop there.

To get HTML right involves a number of details that people often get wrong.  Details such as encoding and escaping.  Details that have consequences such as XSS vulnerabilities when the scenario involves integrating content from untrusted sources.  Scenarios which include comments on blogs or feed aggregators.  Scenarios that lead people to write sanitizers and employ the use of imperfect HTML parsers.

It is well and good that Henri maintains — on a best effort basis only — a superior parser for exactly one programming language.  Advertising this library more won’t solve the problem for people who code in languages such as C#, Perl, PHP, Python, or Ruby.  Fundamentally, a tools will save us response is not an adequate response when the problem is imperfect tools.

This problem that needs to be addressed is very much the flip side, and complement to, the parsing problem that HTML5 has competently solved.  Given a handful of browser vendors and an uncountable number of imperfect documents, it very much make sense for the browser vendors to get together and agree on how to handle error recovery.  By the very same token, it makes sense for authors who may produce a handful of pages to be processed by an uncountable number of imperfect tools to agree on restrictions that may go well beyond the minimal logical consequences from normative text elsewhere if those restrictions increase the odds of the document produced being correctly processed.

Yes, it would be great if this weren’t necessary and all tools were perfect.  Similarly, it would be great if browser vendors didn’t have to agree on error recovery as this makes the creation of streaming parsers more difficult.  The point is that while both would be great, neither will happen, at least not any time soon.

These restrictions may indeed go beyond “always explicitly close all elements” and “always quote all attribute values”.  It may include such statements as “always use UTF-8”.

Such restrictions are not a bad thing.  In fact, such restrictions are very much a good thing.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 09 Oct 2012 18:35

Doug Sheppers: WebPlatform.org will have accurate, up-to-date, comprehensive references and tutorials for every part of client-side development and design, with quirks and bugs revealed and explained. It will have in-depth indicators of browser support and interoperability, with links to tests for specific features. It will feature discussions and script libraries for cutting-edge features at various states of implementation or standardization, with the opportunity to give feedback into the process before the features are locked down. It will have features to let you experiment with and share code snippets, examples, and solutions. It will have an API to access the structured information for easy reuse. It will have resources for teachers to help them train their students with critical skills. It will have information you just can’t get anywhere else, and it will have it all in one place.

But it doesn’t. Not yet.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 04 Sep 2012 23:10
Robin Berjon: Looking at it in terms of rebounds, plot twists, nurtured healing and abandonment, love and betrayal, strife, toil, stunning victories, dispersions and last minute rallies the only thing that distinguishes HTML’s history from a charts-topping teenage fantasy saga seems to be the lack of vampires. And even then, were vampires around I’m not sure we’d notice them for all the action.
Author: "--"
Send by mail Print  Save  Delicious 
Date: Saturday, 25 Aug 2012 19:32
Bill McCoy: EPUB in effect takes the Wild, Wild Web and tames it. EPUB for example requires use of the XML serialization of HTML5 (XHTML5), rather than “Tag Soup” aka “Street” HTML. This means that EPUB content, unlike arbitrary web pages, can be reliably created and manipulated with XML tool chains. EPUB defined Reading System conformance more tightly than HTML5 defines for browser User Agents, pinning down things that are under-specified in the union of W3C standards. [via Patrick Mueller]
Author: "--"
Send by mail Print  Save  Delicious 
Date: Monday, 16 Jul 2012 15:48

The interface is a bit low level, but workable:

require 'dbus' # gem install ruby-dbus
bus = DBus::SessionBus.instance
sm = bus.service('org.gnome.SessionManager').object('/org/gnome/SessionManager')
sm.introspect
sm.default_iface = 'org.gnome.SessionManager'
cookie = sm.Inhibit($0, 0, 'inhibiting', 4).first
at_exit { cookie = sm.Uninhibit(cookie) if sm.IsInhibited(4).first }

Note: the call to Uninhibit is optional — it will occur on process exit anyway.

Hat tip to JanuZ.

Author: "--"
Send by mail Print  Save  Delicious 
utf8mb4   New window
Date: Tuesday, 10 Jul 2012 17:55

Jacques Distler: Remarkably, even after a decade of such pain, Unicode is, in 2012, still “cutting edge.”

Ouch.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Saturday, 23 Jun 2012 22:45

I previously had installed Ubuntu 12.04 on a NetBook, and my overall impression was simply that it was more stable than its predecessor — particularly for Unity.

For the first time I tried it on a desktop, and to my surprise the following worked:

sudo apt-get install ruby1.9.3

And by worked, I mean not only did it install Ruby 1.9.3, but it made it (and gem, and irc) the default ruby.

For those that still use rvm, (many of the ‘cool kids’ have moved on to rbenv, I noticed a few niggles:

  • Don’t follow the instructions and specify --ruby or --rails. You will get a version of Ruby that can’t install gems. Simply omit that parameter.
  • Next set the ‘Run command as login shell’ checkbox.
  • Then run rvm requirements and install what it tells you to install.
  • Finally, run rvm install 1.9.3 to build the latest.

Personally, I follow that up with rvm --default system.  That means that while I have other Rubies available at my finger-tips, the one I generally use is the one provided with Ubuntu.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Thursday, 07 Jun 2012 12:33

Firefox 13 for developers: Support for -moz-border-radius*  and -moz-box-shadow has been removed. Authors should use unprefixed border-radius or box-shadow instead. See bug 693510

+1

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 29 May 2012 21:50
Dan Webb: The first thing that you might notice is that permalink URLs are now simpler: they no longer use the hashbang (#!). While hashbang-style URLs have a handful of limitations, our primary reason for this change is to improve initial page-load performance.
Author: "--"
Send by mail Print  Save  Delicious 
Date: Monday, 30 Apr 2012 01:33
W

chat implements a shared textarea field across multiple clients.  Demonstrates bi-directional communication.

diskusage is more typical of my usage.  The du command produces tabular output that the user may want to sort different ways and yet is may take considerable time to complete.

Author: "--"
Send by mail Print  Save  Delicious 
Next page
» You can also retrieve older items : Read
» © All content and copyrights belong to their respective authors.«
» © FeedShow - Online RSS Feeds Reader