Setup ruby on macOS without sudo and with the latest version!
It’s clear that using sudo to install gems is a bad idea. And you’re stuck with an older version of ruby and gem. But is it a lot of work to change your ways? I thought so. But it isn’t.
First I nuke my gems from orbit (it’s the only way to be sure). Some of the gems are default gems so we can’t uninstall them and you might see error messages for them.
for i in $(gem list | awk '{print $1}') ; do gem uninstall -a -I "$i" ; done
After this, gem list returns nothing, or just the default gems.
Then you can install rbenv, and a new version of ruby in its own little environment just for you, so no sudo:
brew install rbenv ruby-build
# Add rbenv to bash so that it loads every time you open a terminal
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile
# Install Ruby
rbenv install 2.3.1
rbenv global 2.3.1
ruby -v
Then you’re gem installing with no sudo 4eva. Of course you need to reinstall all the gems you’ve lost. I found it rather refreshing as I didn’t really know whether I still needed any of the ones I had installed!
At long last, Charles 4 has been released! Charles 1 was released in 2002, nearly 14 years ago. Since then we’ve been through Charles 2 and Charles 3, both big upgrades. But for the past 11 months we’ve been hard at work on the biggest upgrade we’ve ever made to Charles!
Charles 4 includes an upgrade to the latest and greatest HTTP standard, the latest and greatest IP standard, and the biggest UI update ever for Charles. It is also the first paid upgrade in Charles’s long history.
HTTP 2 is all around you. It’s sneaky and you might not have noticed. Both the client and server need to support HTTP 2, otherwise they will downgrade automatically to HTTP 1.1. So with Charles 3 you would just have seen HTTP 1.1 everywhere. No more! With Charles 4 you can now see HTTP 2 working, and you can use all of your familiar tools; Repeat, Breakpoints, and so on. You’ll spot HTTP 2 hosts in Charles as they use a different icon—with a lightning bolt!
IPv6 is also all around you! If you’re lucky enough to have an IPv6 network and ISP you can turn on “Prefer IPv6 addresses when connecting to dual-stack hosts” on the Options tab in the Proxy Settings. Then you’ll see IPv6 addresses being used in Charles. Feel the modern IP networking (first published in 1998) flow through you!
With Charles 4 we’ve also taken the opportunity to spruce up the look of Charles, starting with the familiar, enigmatic and much-loved app icon.
I’ll let that sit by itself for a moment.
Fear not! It’s still the Charles jug, we’re not crazy! It’s just had a big polish, and we think it’s more beautiful than ever! We hope you do too.
We’ve also designed a completely new custom set of icons, giving Charles a more unified and refined appearance. Thank you to the wonderful Wolfgang Bartelme for all of his painstaking work on these icons and on our beloved Charles Jug 4.0.
Finally we’ve improved the native platform stylings on Mac OS X (soon to be macOS) and Windows; we’ve reduced border chrome and tweaked most of the dialog layouts in the app so that Charles looks more modern than ever.
On Mac OS X we’re using the brand new VAqua library by the excellent Alan Snyder. VAqua provides better graphical accuracy and higher performance, especially on retina screens. The keenest eyes amongst you may also notice that Charles 4 now uses sub-pixel antialiasing! Zoom in to check it out. And on the latest versions of Mac OS X, Charles 4 uses the new San Francisco typeface. Finally, for my Charlesitans with dark menu bars—there’s a little something for you in Charles 4 too.
On Windows we’re using the latest version of JGoodies, with support for Windows 8 and Windows 10. No more will your menus be odd colours! We’ve also fixed the egregious aliased text that previously appeared whenever you looked at XML responses.
There are lots of other little changes and improvements in Charles 4. We’ll be documenting these and updating the website over the coming weeks. Reach out to us on Twitter @charlesproxy if you have any questions or comments!
This week we launched our Letterboxd iPhone app as a free download through Apple’s App Store. We’re ecstatic to put this app in your pocket (18,000 of you have grabbed it already!), and tremendously excited about how it will evolve the way we use Letterboxd. This was a monumental achievement for the team at HQ (particular hat tips to Grant, Ryan and Karl); the scope of the API + app development turned out to be comparable to the amount of work we did in 2011 while preparing our initial public beta.
The launch was covered by TechCrunch, IndieWire, The Next Web and many others, and the response from those who’ve installed it has been overwhelmingly positive. Today I’d like to share a little insight into the process and tell you about what we’ve built.
Process
After committing to build an iPhone app for Letterboxd, we first needed to add an API layer to our server infrastructure, to handle the transfer of data between external clients and the site. We’d piloted a small portion of the required work for Film Fest Buzz, and over the course of the past year we’ve built out the remainder of the API, which today comprises 40 individual endpoints.
The app’s interface represents an iOS-friendly take on the site’s aesthetic, and some parts of it may influence the future direction of the site. The majority of the app’s screens were designed in late 2014 — our prototype extended to 63 individual layouts, a large proportion of which have made it into the app we shipped this week.
API and iOS development was done concurrently for much of last year, and in November we invited Patron members to install and test an alpha version of the app. As always, we’re indebted to everyone who helped us to test the various builds over the past four months. (If you’ve been testing the app, please install the App Store version and we’ll get in touch when there are future betas to look at.)
What can it do?
Version 1.0 of the iPhone app supports:
Sign in and account creation (with 1Password support)
Browsing of popular, highly rated and most anticipated films
Film info including poster, trailer, cast, crew, studio and genre data, plus popular lists and reviews
Film actions: rate, like, mark as watched, add to watchlist, add/remove from a list
Logging of films with date, rating, review and tags (plus flags for spoilers and rewatches, and Facebook sharing if your account is connected via the site)
Viewing (and filtering) of your activity feed
Viewing and commenting on lists and reviews
Viewing of member profiles
Following and blocking of members
Searching for films, reviews, lists and people
Profile editing (including favorite films)
Reporting of content and members
What can’t it do (yet)?
Some items from our wishlist didn’t make it into the first version but will be added in future updates. These include:
More browsing options, including decade/year and genre
Sorting and visibility filters
List creation/deletion, editing and re-ordering
Availability on streaming services
Detail views for more screens (such as watched films and liked content)
Completion percentages for lists and cast/crew
And there’s some OS-level integrations we plan to add as well:
Notifications for follows, likes, comments, etc.
A URL scheme so the app is able to open relevant web links natively
3D Touch support
Reactions
We asked on Twitter and Facebook for your reactions to the app news, and boy did you come through with flying colors. The three recipients of a year’s Pro subscription are Jennifer MacDougall for this delightful depiction of app love, Pedro Strazza for Jonah Hill’s delayed fist pump, and poor Niall Murphy who expressed his disappointment on behalf of the entire Android community in a single word. (“[We]’ve never seen such devotion in a droid before.”)
SSL
The API requires all communication with our servers to be made over an SSL connection. Prior to the launch of the first alpha version last year, we also enabled SSL as an option for site traffic (try it). We intend this to become the only way to access the website as well.
What’s next
As alluded to above, we weren’t able to make this a dual release with an accompanying Android version. We’ll be putting some focus on the public API and Android next (we’ll let you know as soon as we have something to announce), along with more site and app improvements. And if you have any app feedback, we’d love to hear it through the usual channels.