Latest reviews
Papa G’s in Portland is a nice little eatery near Ladd’s Addition. It’s a deli with a good sandwich selection, but it also offers entrees. We had the Southern Sampler and the Country Plate, and weren’t disappointed (check this pic from a blog for a preview of the menu). BBQ tofu is often not very interesting, but this was something else – the tofu was very flavorful, and the texture just right. The tempeh on the country plate was crisp and tasty. The veggies in both entrees were fresh and delicious. Try the house made ginger beer!
We got there at 7PM on a Sunday, and had no problem finding seating. I’m sure we’ll come back, and will update with additional findings. :)
If you’re not using a linter yet – it’s a little tool that highlights both programming errors and violations of best practices (if you want, it can do so as you write code). Some of the practices it flags are actually deep ideological divisions within the programming community around matters of stylistic preferences, and of course all linters are very configurable as a result.
eslint
is a linter for JavaScript (also known as ECMAScript, hence “es”). After using jshint
for a long time, I recently switched to babel-eslint
to get support for some of the ES7 features not yet understood by jshint
. I was impressed by how well thought-out the eslint
ecosystem is.
When you install the package, a little command line wizard helps you configure your rules, whether you’re writing JavaScript on the server or on the client. The linter not only points out violations of the configured rules, it also links to the extensive documentation for each rule on the eslint.org website.
As you read about the different rules, you can make a judgment call which ones are important to you. Or you can just follow someone else’s style guide, like Airbnb’s eslint config. While overly fussy linting rules may be frustrating at first, a good linter adjusted to your preferences will soon become your best friend.
In short, eslint
is a well-maintained package with a vibrant community of users. I highly recommend it.
The changelog is known primarily as a podcast for the open source community, but it also offers this newsletter that’s generated from GitHub repository data. Unlike its weekly newsletter, this one isn’t curated – it’s just a list of repos that have been “starred” a lot (similar to a “like” on Facebook), with an “all time” and “recently” division.
Yet, I still find myself looking at it more frequently than at other email newsletters or feeds – just because it often leads me to discover some major new open source release by a corporate player, or an interesting new project that is quickly gaining steam. The consistent format and brevity makes it easy to parse. Recommended if you like open source & serendipitous discovery.
Il Corvo serves handmade pasta between 11am and 3pm, Monday through Friday. I cannot think of a restaurant that consistently produces meals I love more. In terms of value (plates are $9 at the time of writing), there is no competition in Seattle. The pastas are simple and substitutions are not allowed except that a simple tomato sauce can always be substituted with any noodle.
Downsides include the very limited hours, relatively long lines (particularly before 1pm), a very informal lunch-counter atmosphere, and an increasingly large number of sometimes confused tourists who seem to have found about the place in guidebooks and who slow things down. Others seems to like the kale salad but it feels to me like a low-effort affair (I think it would be better if the leaves were hand-crushed). I skip it and order a second bowl of pasta to share.
Upsides include seasonable meals, handmade pasta with love by chef Mike Easton, and excellent bread. Wine is available as well. As a value, I don’t think you can do better for a meal in Seattle.
Alexander Wild is a very talented entomologist and photographer, whose photographs of insects – with special focus on ants – are an awe-inspiring and enlightening resource. Check out the galleries of farming ants, for example, to find photographs of ants tending to massive fungus gardens or to admire the precision of leafcutter ants at work.
We may experience ants as a pest in our dwellings, but these photos remind us that they are remarkably sophisticated evolved biological machines. There are useful captions, but you may want to turn to the writings of the likes of E. O. Wilson to dive deeper.
The photos in Alex’s galleries are copyrighted, and he takes his image use policy seriously. He has, however, contributed many images to the public domain as well, and some of his photography can be found can be found in Wikipedia articles as a result.
NodeSchool is both a series of face-to-face workshops in cities around the world and a set of interactive, open source programming exercises you can do at your own leisure. I haven’t attended the face-to-face workshops; they are typically free or low-cost, and the same exercises are used as part of the curriculum.
I’ve used several of the interactive workshops. They’re contributed by many folks from all over the world, and the pedagogical quality and attention to detail varies. Most of them use the workshopper framework. You work in your terminal, select an exercise from the menu, and then follow the instructions. Depending on the workshop, the scripts may do some things for you, like preparing a structure of files and working directories suitable for a given exercise. Occasionally you might run into a tutorial that’s out of date or simply doesn’t work.
These workshops may be of interest even if you don’t end up using Node.js: beyond Node, there are interactive workshops about other web technologies like React, WebGL, web audio and LESS, as well as NoSQL databases like MongoDB and CouchDB.
In many ways, NodeSchool represents the web at its best – a global community motivated by the joy of learning and sharing.
Mikeycal’s Blender Video Editing Tutorials are an amazing free resource to learn how to use Blender, a free and open source suite mostly used for 3D modeling and animation, to edit videos. Blender is very capable software, but it takes a while to master its idiosyncratic user interface. In his video series, Mikeycal walks you through how to set up your Blender workspace so that it’s basically just a video editor from your perspective, and explains how to cut, combine different audio tracks, manage transitions, etc.
As an absolute beginner in video editing who didn’t want to use closed source software, I found these tutorials invaluable for my Passionate Voices series of interviews. Mikeycal is a natural teacher – he repeats things, enunciates very clearly, shows/highlights the parts of the UI that matter, and so on. He moves at a good speed while referencing earlier lessons as appropriate. There’s really nothing more one could ask for, even from a paid resource – and this one’s completely free.
There are as many MP3 player apps as there are stars in the Milky Way (I am exaggerating a little bit!), but if you’re like me and you often work in a terminal, it’s nice to have an option that integrates seamlessly into your workflow. MOC is a console-based player with a Norton Commander style interface and the beautiful simplicity of early WinAmp releases. You navigate your filesystem on the left side and your playlist on the right. Instant addition of whole directories makes coming up with a quick mix for the afternoon effortless.
There are a few UI annoyances, the most notable of which I found to be the inability to enqueue files from the search result list which means that managing subsets of files is a bit of a pain. Fortunately, as of 2016, the project seems to be back in active development, although as an old-school project hosted on a Subversion server somewhere, patches take longer to make their way into the codebase than in typical GitHub/GitLab projects.
I use Twitter as a key complement to sites like Google News in ways I previously used RSS. On Twitter, I can get direct feeds from NGOs like Amnesty International, Oxfam, or the Southern Poverty Law Center, as well as notable individual experts in fields ranging from biology to arms control. As with Facebook, the main advantage is that everybody is there, and you get a direct, unmediated channel to them. If celebrity culture is your thing, Twitter is great for that, too.
But man, is it a limited platform! People post essays as a series of 140 character tweets, or as image attachments. The character limit also means that discussions are basically impossible, and if the subject is controversial, turn into contests of who can get a large number of likes on a pithy soundbite. That further reinforces political polarization and degrades discussion culture.
Because there’s no real community but just individual users, problems like harassment aren’t solved collectively, but in an arbitrary way based on who can get the attention of staff. Engagement of the company with its users is generally very limited and ineffective.
There are a few open alternatives out there, most notably the GNU Social community. They’re still lacking in usability and community size, and the decentralized approach with many different websites means they’re unlikely to ever have that same experience of being able to find anyone, or even having confidence that your choice of server will stay online. So for now, Twitter remains the service to beat, and is useful within its niche.
I’ve been a fan of Atom since its early releases. It’s a code editor, so if you never edit HTML, JavaScript, CSS, Python, R, or any other programming or markup language you probably have no use for it. But it does its job well.
Because Atom is built on the Chromium codebase and uses familiar standards like CoffeScript and LESS, it is easy to configure and extend for experienced web developers. For example, changing the color of a syntax highlighting rule is a matter of writing CSS (LESS).
The best part of Atom is also its biggest weakness: extensibility. Atom uses a package manager built on top of npm
, and it has a built-in directory of packages. Unfortunately, this makes for a somewhat nightmarish “preferences” dialog, where hunting for the right place to set a checkmark can be a frustrating exercise. Fortunately, Atom has a large userbase, and if you encounter a problem, there’s usually someone else who’s already run into it and found a solution or workaround.
I’ve not found the autocompletion features as useful as those in more mature IDEs, though the packages around this functionality are continuously improving, as well.