Gil's blog

My criticism of dotdrop, a dotfile management system

Submitted by gil on

Git, the command-line version control system, was initially released on April 7, 2005. Github launched to the public on April 10, 2008 and was the killer application that promoted Git beyond its initial audience of systems programmers. By 2010 it was clear to me that the industry was moving away from Subversion and Git was the new standard in version control. I took it upon myself to git with the times and learn it for myself. My learning project whose initial commit was on September 13, 2010 was a repository for my dotfiles and I've been using the same repo since then to manage my dotfiles. It was my first attempt at using Git and my first attempt at managing configuration in a rigorous way. Over the years I've hit several problems with my initial design and I've also learned a lot about configuration management and what is now called devops - a term whose first appearance on Hacker News was on September 3, 2010! I've wanted to replace my dotfiles setup for some time but have never really put it into action. Recently I discovered deadc0de6's dotdrop which seemed to be more or less what I was looking for: source-controlled, templated management of dotfiles. As I dug into the project I found several serious shortcomings with the code which I will explain in this blog post. The next blog post will describe the design of a not-yet-written system that incorporates what I feel are best practices for dotfile management that I hope to implement some day.

First, I want to applaud deadc0de6 for what they did right. Using a human-readable, declarative configuration to orchestrate the dotfile setup across all hosts is a good practice. YAML is a good fit for the heavily hierarchical configuration inherent to this domain and probably a better fit for the problem than the trendier TOML. Jinja2 is an excellent templating system flexible enough to find use outside of its original HTML templating purpose. Dotdrop's dotfile orchestration uses configuration profiles and inheritance to eliminate the repetitive configuration similarities between machines which is a good fit for the domain. I also like the author's suggestion to put dotdrop's upstream code directly in your dotfile repository as a git submodule. This is a sane way to pin the version of dotdrop and install it correctly and easily when setting up a new machine. It's also nice that dotdrop uses your machine's hostname as the default profile name although it would also be a nice enhancement to search for profiles that match your user and hostname.

There are also several design decisions that I don't agree with but I think that nothing in here is too serious that deadc0de6 coudn't release a workaround, even if it needs a compatibility-breaking dotdrop2 release. if these changes are made I would consider using dotdrop but otherwise I'm still planning on writing my own system at some point.

If you install dotdrop as a git submodule you have to use a dotdrop.sh driver script to set up the Python environment correctly. The driver script is a necessary workaround for the situation but the .sh suffix (to keep it from conflicting with the dotdrop submodule directory) seems like a hack. Couldn't you bundle a ~/dotfiles/bin or ~/bin along with your dotfiles and put the driver script in there along with any other shell scripts you might tote around with you? It would make sense to promote the practice of maintaining your own personal ~/bin in dotdrop's documentation.

The Python community has pushed virtualenvs for almost a decade now but the dotdrop documentation does not encourage their use with either of its installation methods. This is a big missed opportunity because dotdrop already requires a working directory to hold your dotfiles. It's the perfect place to stash a virtualenv and keep your dependencies isolated from the system Python. The current installation methods are not good Python practice.

Dotdrop lets you install dotfiles by placing a symlink in your home directory that points back to the dotfile kept under source control. I think this is a good practice: it's a good, easy-to-check way to see if a dotfile is managed by dotdrop. However, if your dotfile is a template the expanded dotfile must be written directly to its destination, there is no way to have dotdrop make a symlink. I think it would make sense to have dotdrop maintain a working directory for dotfiles and symlink into that working directory so all dotfiles, templated or not, can be visibly symlinked. I also think that in addition to using symlinks to identify managed dotfiles that all dotfiles should strongly be encouraged (possibly with a deploy-time check) to have a dotdrop-generated header that reminds readers that the file is managed by dotdrop and maybe lists some statistics like build date, git commit id and commit date. If a user insists on being able to review a dotfile before deploying it to their system there could be an optional way to disable symlinking and the deployment could be split into a second, independently run phase that does the copy of dotfiles out of the working directory.

Users that do not use symlinks in their dotdrop installations can use the dotdrop update command to install their updated dotfiles by copying them out of the dotdrop directory and into their proper location. However, if your dotfile is a template dotdrop will refuse to do this copy and ask you to edit the configuration file by hand. This is the opposite of what I would expect, I would want dotdrop to always copy and overwrite template-generated dotfiles. If dotdrop keeps a working directory for its dotfiles as described above the update command could always overwrite the dotfile as it is under dotdrop's control. Users who use symlinks to point into the working directory would instantly have the newly generated dotfile.

Finally, the template system's variable support is lacking. Variables must be sourced from the environment, there is no way to source them from the YAML configuration. This seems backwards. I would expect to only keep one or two NODE_ENV-esqe variables in an .env file. They would just define the configuration file's location and dotdrop's profile name, two things that likely won't be checked into source control but are easy to set up in a new installation. All of the rest of the configuration variables would be in dotdrop's source-controlled YAML configuration file where you can take advantage of profiles and inheritance. If you have a ~/bin driver shell script it can source this file and any virtualenvs needed to run dotdrop itself. The current design that pushes all variable state to a .env file keeps a large portion of your configuration outside of source control and duplicates work already done by dotdrop's profile system.

There is clearly a lot of effort put into dotdrop and many parts of it are polished. But at the same time I think it is clear that not as much thought has gone into the templating features of dotdrop. Templates are an important enough feature that I am willing to hold off until I can either write my own dotfile management or see if dotdrop will improve its feature set.

Lessons learned porting from SQL Server to SQLite

Submitted by gil on

After a sudden reduction in force at the day job I inherited a crufty old reporting system from a team of DBAs. We're a company full of Linux and a few legacy Solaris systems but the DBAs who built this thing almost 15 years ago must have insisted on SQL Server 2005 so I was the proud owner of one of the few Windows servers on our side of the business. After three months of wrangling with the report I was able to get it off of the Microsoft stack just before the Windows sysadmins decided it was time to pull the plug on this long forgotten and neglected Windows Server 2003 system. I chose Python and sqlite3 as the replacements for a mix of SQL Server queries and jobs and Visual Basic macros embedded in Excel templates for a bunch of reasons that aren't relevant here but I do have some notes on problems I ran into while moving everything over:

Collations

The default collation for SQL Server 2005 is something called SQL_Latin1_General_CP1_CI_AS. It is case insensitive. SQLite is case sensitive and the only way to change this is by declaring every text column as COLLATE NOCASE. Welcome to hell.

Clustered indexes

Some background information: in DBA speak a clustered index/table/column refers to the order of data on disk. If a table is clustered on an index or column it means that the underlying table on disk has its data in the collation order for that index or column and updates to the table will keep that order. SQL Server supports clustered indexes in a normal way. In SQLite there is no way to cluster on a given column. The underlying storage of the table does whatever it wants.

Unfortunately my reporting database relied heavily on SQL Server’s clustered indexes. Most of the data was in two tables with around 50 sparsely populated columns each, a single clustered index on the leading 7 columns or so and no primary keys or UNIQUE constraints. This sounds strange but the report was synthesizing data across multiple internal company databases whose data was populated by devices from many different vendors so it needed the flexibility while it was normalizing data from all of these sources. A typical query might have a WHERE clause that matched on the first 4 or 5 indexed columns and the remaining data would be read in a partial table scan. Thanks to the on-disk ordering provided by the clustering this was sequential, predictable I/O and SQL Server did a pretty good job with it, often beating or tying SQLite which was running on a modern i7 with an SSD.

The first, naive port over to SQLite had quite a few performance problems which I will get into shortly. The original database’s reliance on its single, giant clustered index thrashed the performance of virtually all queries queries across the entire run so I wound up rewriting many queries to use SQLite’s hidden rowid feature. Internally SQLite keeps a b-tree index to store and retrieve the physical rows on disk and the key to this index is exposed as the hidden rowid column. It is very fast to read and write queries keyed on the rowid and I made extensive use of it. As an example, here’s what a typical SQL Server query looked like:

UPDATE big_table
SET blade = tmp_table.blade, port = tmp_table.port
FROM big_table
INNER JOIN tmp_table
        ON cmts_name = tmp_table.deviceName
        AND snmp_index = tmp_table.IndexNum
        AND time_stamp = ?

This becomes two SQLite queries[1]:

SELECT blade, port, rowid
FROM big_table
INNER JOIN tmp_table
        ON cmts_name = tmp_table.deviceName
        AND snmp_index = tmp_table.IndexNum
        AND time_stamp = ?

and

UPDATE big_table
SET blade = ?, interface_port = ?
WHERE rowid = ?

Python object performance

Python's sqlite3 module has the ability to convert values to and from Python objects as they are read and written to the database. By default it ships with adapters for converting timestamps to the Python datetime class and converting arbitrary precision decimal types to Decimal objects. Both reading and writing adapters for both types benefitted from memoization decorators that cached the instantiation of those types. The increased memory usage was negligible for our data set because it had lots of identical values. Memoization successfully moved the bottleneck in some parts of the report such as loading data out of an Oracle database into SQLite from being limited on CPU usage in Python to being limited by the Oracle database's I/O speed.

One consequence of memoization and Python's reference types is that a single instance of a value will be used for every instance of the value. You must take care not to mutate that object in Python code or you will break every object and every future object that tries to reference that value. It's best to keep as much work in SQLite as possible as both a performance optimization and to minimize errors like this one.

The default adapter for the Python datetime class stores an ISO 8601 formatted string in the database. This string's lexicographical order gives sane results with sorts and inequalities but takes up lots of space on disk and prevents you from doing math on dates in queries. I replaced the default datetime adapter/converters with ones that used time.mktime to get UNIX timestamps out of a datetime and stored the resulting integer (I didn't have any fractional seconds in any timestamps). This let me replace the report's frequent usage of the DATEADD function with arithmetic on integer seconds in all but one case. For the one place where date math was required I implemented the function in Python, registered it as a function in SQLite and even got to take advantage of memoization on the Python side.

General performance issues

SQLite's query planner is not nearly as sophisticated as SQL Server's planner and most queries with large, multi-table joins had to be rewritten. The naive SQLite port of these queries would spin for hours and never complete. I had success with decomposing joins into a chain of smaller queries that would do a single join each and write their results to a temporary table, eventually ending with one last join to update the main table. The main data populating query in SQL Server joined five subquery tables onto a single large table in a ~100 line query. It was decomposed into four main temporary tables that held intermediate join results and several smaller temporary tables for the results of subquery processing which broke the giant query into manageable bits. You must take care to make sure that functions whose results depend on the order of arguments (such as coalesce) are kept in order across the smaller queries.

SQLite puts out a new release every few months. There's usually a few new features, minor performance optimizations and bug fixes in each release. Our report spends at least an hour and a half of its time in parts where SQLite is the bottleneck which is enough time to warrant keeping our own SQLite built locally and up to date. If you're on a Linux distribution that ships a few years old version of SQLite I would highly recommend you use something modern. Updating to a new version has always been painless, SQLite's code is well-tested and release management is conservative.

At some point I switched the project over to WAL logging. Although I no longer have the numbers I believe this was a win for us as it speeds up the initial bulk insert of data at the start of the report. Up until version 3.11 (released February 2016) WAL mode performed very poorly with large log and transaction sizes. Our logs for the bulk import are gigabytes in size requiring us to use the newer releases of SQLite and gave us another win from keeping SQLite up to date. The original design of the report carved its queries up into a series of about 40 high-level steps and I kept this design with the SQLite port. These steps gave us clean locations to commit the database which keeps the log size down and lets SQLite run its WAL checkpointing at regular intervals.

Database functions and features

SQL Server ships with tons of built-in functions and the original authors of the report made good use of them. I wrote a case-insensitive regular expression to match the functions and syntax that had to be changed and that helped a lot with fixing everything while porting the queries over. Here are some of the things that I had to change:

SUBSTRING

It's called substr in SQLite and there's no change in behavior.

LEN

It's called length in SQLite and there's no change in behavior. I'm kind of sad that SQLite was inconsistent with substr and length.

CHARINDEX

It's called instr in SQLite and the arguments are flipped. If you forget to flip the needle and haystack the query will still work but will return incorrect results. This was a huge pain.

RIGHT and LEFT

In SQL Server RIGHT(string, N) returns the rightmost N characters of a string. I replaced this with substr(string, -N) in SQLite. For LEFT, just use substr and keep the same N argument.

SELECT…INTO

This syntax doesn't exist in SQLite but it's not too hard to change it to INSERT INTO…SELECT.

CONVERT

SQL Server's CONVERT(type, value) is cast(value AS type) in SQLite.

ISNULL

This is just COALESCE with two values. Replace it with COALESCE in SQLite.

TOP 10

SQL Server doesn't have the normal LIMIT functionality yet (or at least it didn't in SQL Server 2005). Convert these to a LIMIT, it's easy to match in your regex.

INSERT

The INTO after INSERT is optional in SQL Server but required in SQLite. Doesn't hurt to throw insert\s+(?!into) into your regex to catch this.

+ (string concatenation)

Strings are concatenated with the SQL standard || in SQLite. There were enough string concatenations in the SQL Server code that it made sense to put + in my regex.

Temporary tables

SQL Server has a neat syntax for creating temporary tables: prepend the table name with a #. You can create temporary tables explicitly with it (CREATE TABLE #asdf) or implicitly (INSERT INTO #asdf SELECT …). SQLite requires all temporary tables to be explicitly declared with CREATE TEMPORARY TABLE asdf

. If you have any text fields don't forget to declare them as COLLATE NOCASE in the temporary definitions as well! I had # in my regex and that worked well to find all the temporary table declarations.

Numeric types

SQL Server lets you declare columns as a numeric type and choose a precision and scale. See the docs for a thorough explanation. The database will enforce the precision by rounding numbers if you insert them into a column with a smaller precision. SQLite supports a NUMERIC type that preserves precision but does not allow fine-grained control over rounding like SQL Server does. The rules for the NUMERIC types are documented here. If you are not familiar with SQLite's type affinities I strongly urge you to read that documentation as SQLite's type system is unlike the ones in any other relational database.

openpyxl

The finished product is an Excel spreadsheet. It has enough formatting to look nice but nothing insanely complex. I used the openpyxl library to write the spreadsheet and it got the job done. The library supports lots of XLSX features but is not totally feature complete: development is ongoing and there are frequent new releases. There has been lots of minor API changes as new features are added so be prepared to read source code and the documentation to figure out how to use the library. StackOverflow is often out of date. The openpyxl code is not fast, taking over 45 minutes to create a ~20 megabyte spreadsheet. In all fairness to the openpyxl authors I did not attempt to optimize this code, once my naive attempt was working correctly it was good enough for my needs. If you have the lxml library installed it'll be autodetected by openpyxl and give you a measurable but minor speedup.

Conclusion and recommendations

At the end of the day the project worked: SQLite was a capable replacement for the much more sophisticated SQL Server and the aging Windows server hardware could be decommissioned. The Python code was vastly more reliable and debuggable than the mess of SQL Server jobs and Excel macros. I was happy with SQLite's performance and flexibility in this exotic situation and I'd use it again. If I had to recommend anything to make it easier I'd say that SQLite should support setting collation across an entire database. It is very tedious to catch every single text column to make sure it's functioning correctly. I agree that the SQL Server default is braindead but needing a custom collation is not so exotic that it can't be supported. I also think it would be neat if SQLite (which supports loading libraries at runtime to extend the database) shipped with an optional library with compatible implementations of functions available in 3rd party databases.


1. SQLite does have the ability to use a SELECT in an UPDATE/DELETE although not with the exact UPDATE…FROM schema that SQL Server has. I don’t remember exactly what issues I ran into with it, some may have been performance/functionality and lack of full JOIN support. I also believe I had to rewrite queries to get an accurate count of how many rows we were mutating which was an important feature for us. At any rate I did make use of rowid in many places to optimize deletes and updates. And I swear that the SQLite documentation had a whole bunch of stuff on semi-joins (the EXISTS operator) but it looks they've ripped that out of the documentation sometime in the past few months and you can just use regular joins everywhere.

Understanding the Lightning Network: how it works and why it sucks

Submitted by gil on

Bitcoin engineers face a future where rising transaction fees price users out of using bitcoin for everyday commerce. There are a few solutions for lowering those fees and the latest, most hyped solution is the Lightning Network, a system built on a web of payment channels. I'll explain how payment channels work, how they can be put together to make the Lightning Network and show what this new economy looks like.

The payment channels that the Lightning Network is built on are a construction unique to Bitcoin. They're a way to coalesce a bunch of smaller transactions into a single large transfer and a solution to the prohibitive fees that each individual transaction might have if made independently. To open a payment channel you take cash on hand and spend it in a special kind of deposit transaction which opens the payment channel to the other party. It's useful to think of it as a deposit as it takes this cash and locks it up for a certain period of time where neither the sending party or receiving party can spend it. The payment channel also has an expiration date where the deposit is returned. When you want to pay the other party your software creates an updated version of the payment channel where instead of returning the entire deposit back to you at the end some of the balance is sent on to the other party and the remainder of that is sent back to you. You repeat this as many times as you want and when you get close to the expiration date the very last version of the transaction gets put into the Bitcoin network. You could have made a dozen transactions with that payment channel but at the end of the day you only had to put two transactions into the Bitcoin system and paid only two transaction fees.

I think Netflix is a great example to show how payment channels might be used in practice. With Netflix, you pay your $8 a month and you get full access to the entire Netflix library for the entire month. But if Netflix was built on payment channels instead of paying them $8 you'd take that money and lock it up in the deposit transaction that opens the payment channel. Later, when you want to watch a movie Netflix's software requests your Bitcoin software to create a new, updated payment channel transaction that sends maybe 50 cents on to Netflix for the movie and returns the remaining $7.50 back to you. Once Netflix has a copy of this updated transaction they can show you the movie. As the month goes on you repeat the same process and create a new, updated transaction for Netflix every time you want to watch a movie. At the end of the month the very last transaction is put into the Bitcoin system, the payment channel is closed and Netflix gets their money and you get anything left over from the deposit.

These payment channels reduce the number of Bitcoin transactions made reducing the total number of fees paid but they came at the cost of your liquidity and the time value of money. When you open the channel you have to have all of that money on hand in order to lock it up in the deposit. For an $8/month Netflix subscription this isn't a challenge for many but what if you were paying for groceries or gas with payment channels? You're locking up an entire month's worth of grocery money at the start of the month in order to save on transaction fees. You can't do that at all if you're living paycheck to paycheck and for everyone else you're quickly locking up all of your cash on hand in these payment channels to various vendors in hopes of saving money on fees. You can close a payment channel at any time to reclaim your money but you'll run up extra Bitcoin transaction fees when you do this and kill the efficiency of your payment channels. And finally these payment channels are supposed to enable micropayments, transactions from the furthest reaches of the demand curve. It does not make sense to open a payment channel to a merchant you might do business with once every one or even ten years for a few cents worth of business. Payment channels by themselves aren't an improvement over the status quo.

The Lightning Network works around these limitations. Instead of every participant opening channels to everyone else individuals open payment channels to central hubs. When a payment needs to make it across the graph a route is found and each payment channel along the way is updated. Here's an example network:

Lightning Network

Bob wants to pay $20 to Amazon. There is a $100 payment channel open between himself and hub 1, a $1,000,000 payment channel open between hub 1 and hub 2 and a $100 payment channel open between hub 2 and Amazon. Bob updates his payment channel to send $100 to hub 1, leave $22 with hub 1 at the closing of the channel and returns $78 back to himself. Hub 1 updates its payment channel to send $1,000,000 to hub 2, leave $21 with hub 2 at the closing of the payment channel and $999,979 back to itself. It keeps that $1 of Bob's original transfer as a fee. Hub 2 then updates its payment channel to Amazon to send $100 to Amazon, leave $20 with Amazon and return $80 back to itself, once again keeping $1 as a fee. The payment channels used by the Lightning Network are a bit more sophisticated then what I've explained here, they are actually bi-directional and have protections built into them to guarantee that everyone helps move the money along and can't steal any bitcoins. But this is the high level view of how the Lightning Network works: users only have to open a single payment channel to their hub and the rest of the payments get aggregated in giant payment channels between hubs that handle huge transaction volumes.

That's how the Lightning Network is supposed to work, at least on paper. Nobody's written any of this code yet, so who really knows how it'll play out. The system may look different or not work at all when they come around to building it. Execution is everything and the authors here haven't done it yet. I can't vouch for the security of this system. Auditing for security is something I have no practice with and I am just not qualified to review something as complex as this. And don't expect competent peer review for a while: the prose in the Lightning Network paper is awful (although much improved from the original version) and the only people with the knowledge and stomach to get through it right now are the Kool-Aid drinkers. And finally, even if it does work the community has to start using it: everyone in the Bitcoin economy has to switch to software that uses the Lightning Network which is a big change from how Bitcoin is used today both in user and software interfaces. Rising transaction fees could push people onto this network but it'll be a painful switch.

But should it become widely used what does this network look like? At one point Lightning Network engineers were using the name "hub" in the same way I did above but lately they're promoting a vision of a wider P2P network with more intermediaries and smaller payment channels between them. Unfortunately market pressures work against decentralization here and the model of a few, large hubs holding open massive payment channels is the future. Automated routing that finds the cheapest path across the market will reward large hubs that can create short paths across the network and service huge volumes and leave the smaller, lengthier chains without customers.

It's also slightly dishonest to call these hubs instead of banks. In the same way that the individuals using payment channels by themselves needed to lock up cash and manage their liquidity in order to create payment channels these "hubs" need to deal with getting access to huge amounts of cash that they can tie up to open their own massive payment channels. The name for an organization that makes its profit from carefully managing its investments and liquidity is a bank and that's exactly what these hubs are doing. And the only organizations that have the kind of cash (or access to the cash) to invest into a payment channel is a bank. Hopefully these hubs look like investment banks and get their cash from the same customers that investment banks have but there's not a whole lot stopping them from being retail banks capitalized by the deposits of ordinary people. Investing in a Lightning Network hub is low risk and low return. Your losses are limited to the cost of bitcoin transactions but your profit is the little bit of fees you make off of being a hop in the chain. Competitive pressure to keep prices down is high because anyone can spin up a node and nodes with smaller capitalization can still compete on lower fees and better connectivity. If you really need the cash you can close out the payment channel at any time so it's at least a pretty liquid investment. If the Lightning Network finds common use these will be attractive investments for retail banks. Now we've come full circle to something similar to our current system only with Bitcoin and the Lightning Network.

If the Lightning Network catches on the underlying Bitcoin network needs to be able to handle its traffic demands. The biggest debate right now in the Bitcoin world is over the future of the block size, the maximum amount of data that can be used to update the Bitcoin blockchain. On one side of the debate is the sensible, pragmatic engineers who want to keep the block size increasing with an eye towards future growth of the Bitconomy and future increases in computing power. On the other side is a bunch that wants to keep the network running at its current transaction rate for at least a few years. The constant size group (called "small blockists" by the larger Bitcoin community) have a bunch of motivations behind their decision I won't get into here. This is relevant to the Lightning Network as that same small blockist group heavily pushes Lightning Network as a workaround for small block sizes. Because the Lightning Network coalesces the transactions that need to be put on to the blockchain it lets you get more use out of that small block size.

Even though the small blockists are some of the biggest proponents of the Lightning Network because at its face it makes small blocks look like they can handle the network's traffic demands the Lightning Network itself requires large blocks! I didn't go into too much technical detail in this blog post but the Lightning Network has several systems that keep everyone participating honest. One of them is a special Breach Remedy transaction that keeps either party in a payment channel from reverting to older channel balances. If you try and revert back to the older version of the channel the opposite party can spend this Breach Remedy transaction which closes out the channel and gives all of the money in the channel to the party that didn't cheat. This is meant to be a deterrent to keep both parties honest but it only works if you can reliably use the Breach Remedy transaction. Blockchain congestion is a failure mode for the Lightning Network because they assume you can always get a transaction included should you need to do so. There are a few hacky workarounds in the Lightning Network paper for this but for successful implementation of the Lightning Network you'll need large blocks or possibly even unlimited blocks. Miners can still be profitable in a large block world - they can price discriminate against those 'million dollar' inter-hub payment channels and charge them larger fees. So even though the current LN boosters might be pushing small blocks they will eventually need to be large or even unlimited.

If this network works it's also a pretty good realization of the dream of Austrian economists. Bitcoin is a hard currency and with the Lightning Network it really beats out the incumbent hard currencies on ease of use and features. It may even be possible to capitalize Lightning Network payment channels with smart contracts that guarantee the funds from closed channels are returned to their investors. So not only do you have a hard currency that can be spent easily, securely and quickly but you've created 100% reserve banks in the Lightning Network hubs that can still earn a tiny bit of profit and can't be plundered by management. Austrians will love it! But what happens when the business cycle contracts? Austrians solve this problem by pretending that never happens. For the rest of us, though, it's an inevitable part of business and we need to know how the system works when that happens. The revenue from payment channels is proportional to the volume of transactions they handle. If that goes down the payment channel's yield goes down and they lose their attractiveness as an investment. If capital starts fleeing elsewhere and the number and size of the payment channels goes down the entire economy's velocity is brought down by higher Lightning Network fees competing over fewer payment channel space. And if it gets really bad it turns into another Great Depression as there is no central bank to add liquidity to the payment channel market. Everyone has to sit on their hands until everything else in the world tanks to the point where investing in payment channels becomes attractive again. You may not be able to spend your money on anything because the Lightning Network is non-functional or too pricey but you'll still have full access to your bitcoins whether they are in your 100% reserve bank or your personal bitcoin wallet. Is that a better system than what we've got now? It's interesting to think about and it rounds out a bunch of hard corners in the usual Austrian proposals.

Blog tags

You Can't Touch Mormon Jesus

Submitted by gil on

For the first time in Internet history, the lyrics:

Mormon Jesus
Mormon Jesus
Mormon Jesus

Long long (Mormon Jesus) long long
Long ago a spirit child on one of these planets was conceived
though an unidentified god and his goddess wife named Elohim
Elohim was conceived
This spirit child was later born to human parents near a mysterious star called Mormon Jesus
Mormons believe in Mormon Jesus
Through obedience to Mormon Jesus
He was to elevated to godhood as Mormon Jesus
Mormon teaching and death and resurrection (Mormon Jesus)

Endless sex, all right
The god of Mormonism and his wives
produced a billion sons,
Lucifer, the Devil and a billion tons of children, his sons
For the Mormon beat called the great heavenly being, meeting
To decide their destiny and to have sex with Elohim's eldest son, Lucifer and his brother Mormon Jesus

Elohim's son Mormon Jesus
Approve the proposal of the Mormon Jesus
Savior of the planet Earth would be Mormon Jesus

Early Mormon prophets (Mormon Jesus) taught that Elohim and one of his wives came to Adam to start to ride in him, who had sex with the virgin in order to provide Mormon Jesus with the Indians, Mary, Margaret and Mary Magdalene, (with) these wives at least three wives produced at least a billion Israelites.

The Jesus of Mormonism, Mormon Jesus
Mormon Jesus
Joseph Smith

Mormon time!

Blog tags

The latest in Twitter research

Submitted by gil on

Twitter recently fixed their API and made it return an accurate count of a tweet's retweets. Here are the top 25 @horse_ebooks (see previous Gil's LotD) tweets ranked by retweet popularity. This chart should magically update once a day.

Retweets Tweet
6639 Everything happens so much (source)
6084 Avoid situations (source)
4846 Crying is great exercise (source)
4248 We all agree, no one looks cool (source)
4101 SHORT OF BREATH? BREATH? BREATH? BREATH? BREATH? BREATH? COUGH COUGH COUGH COUGH COUGH COUGH TOO MUCH? SHORT OF BREATH? BREATH? BREATH? (source)
3672 Unfortunately, as you probably already know, people (source)
3329 Never go to bed (source)
3210 TO CREATE THE SQUARE SHAPE Build the structure. Shape your watermelon. Shape the young watermelon. (source)
3147 ORONGLY DGAGREE DISAGREE NO G G NO G G G G G G NO G G NEIEHER AGREE NOR DGAGREE O O O no O O no O O no O O no neither neither neither (source)
3010 Becoming a bounty hunter is not easy but I am here (source)
2962 Don t worry if you are not computer (source)
2730 You re not alone in your passion for tomatoes! (source)
2661 As you might know, I am a full time Internet (source)
2513 Who Else Wants To Become A Golf Ball (source)
2467 Don t feel stupid and doomed forever just because you failed on a science (source)
2434 Dear Reader,

You are reading (source)

2351 You constantly misplace your house (source)
2334 Believe me, there are people (source)
2311 I m going to outline 14 different ways that I ve found you (source)
2244 Realize Your Dream of Becoming a Professional Pencil Drawing (source)
2241 GLIMPSE AT MY LIFESTYLE (source)
2201 Fire Proof Your Butt and Always-ALWAYS (source)
2150 Your dog is not afraid of altitude at all! Your dog is a real acrobat as well as rock climber! Your dog is able to climb craggy rocks! (source)
2110 MISCELLANEOUS EAR, MISCELLANEOUS EAR, MISCELLANEOUS EAR, MISCELLANEOUS EAR, MISCELLANEOUS EAR, MISCELLANEOUS EAR, MISCELLANEOUS (source)
2097 Way to Internet (source)

2011 in Gilman music

Submitted by gil on

I've decided to put together a top 45 list out of some of the albums I've listened to in the past year. This isn't a list of top albums that came out in 2011, it's a list of my personal favorites that I first heard in 2011. I was able to get in one album on most nights in the spring but slacked quite a bit in the fall. If you like any one band on here I encourage you to check out the others.

Bonus drinking game: take a drink every time Stereolab is mentioned.

Honorable mentions

The Good

Bunnygrunt - "1000% Not Creepy" (Single, 2009) I firmly believe it is impossible to be creepy when listening to this song. Unfortunately all the Youtube videos are poor quality live recordings.
Panty and Stocking with Garterbelt - "D City Rock" (2010) NSFW. This almost made the list. "I get high being nasty."
Blonde Redhead - 23 (2007) I think this song is fantastic but the rest of the album comes up short.
The Frank Popp Ensemble - Hip Teens Don't Wear Blue Jeans (2005) This song is catchy.
Rebecca Black - Friday (2011) Single of the year.
50. Low - C'mon (2011) Low's newest album after a gap of a few years. This is the same old minimal Low but a bit catchier like the songs on The Great Destroyer. The music video for "Especially Me" tickles all of my fancies.
49. Pipas - A Cat Escaped (2002) Out of the handful of Pipas records I listened to over the year I liked this one the most. I can't say I've listened to it too much since though.
48. Warpaint - The Fool (2010) Warpaint's making good music. Unfortunately when I listen The Fool I think most of the songs go on far too long.
47. All Girl Summer Fun Band - Looking Into It (2008) The AGSFB lost a bandmate and some of their vocal harmony along with her. The result is an album a bit more minimal and reflective than their earlier works.
46. The Boo Radleys - Learning To Walk (1990) This was released between Ichabod and I and Everything's Alright Forever. Musically it bridges the gap from the lo-fi Ichabod to the shoegaze Everything.

The Bad

Modular - Fantasías De Un Robot Psicodélico (2009) They successfully copied Stereolab's Mars Audiac Quintet and played the moog just like Stereolab does. Unfortunately they forgot to make good music and filled the album with moog wanking.
Low - Long Division (1995) After the critical success of their first album (I Could Live In Hope) I think Low heard "What a beautiful voice Mimi has!" and decided to cut out everything that wasn't Mimi. This album is completely unenjoyable.
Grandaddy - The Sophtware Slump Deluxe Edition (2011) The deluxe edition appends a CD full of junk recorded around the same time. It gets your hopes up with "XD-Data-II" and wanders off after that.
Secret Shine - The Beginning And The End (2010) This was a bad release by a good band. For some history, this band broke up sometime in the mid-90s after putting out plenty of good shoegaze music and got back together in 2008. After the reunion they released another album (All of the Stars) that was pretty good which makes this one all the more disappointing.
Les 5-4-3-2-1 - "Bond Street" (1996) Japan destroys everything I love.

The List

45. Galaxie 500 - Today (1988)
>slowcore, shoegaze
I've listened to On Fire on and off for the past few years but I had never bothered to check out the rest of their discography. Part of my motivation for listening to a new album every day this year was to catch up on artist discographies. This Is Our Music shares the brooding feeling from On Fire yet it manages to lighten up its gloom a bit. Today is still suitable for snowstorm listening and snuggling. I might even enjoy it a bit more than On Fire. I've yet to listen to This Is Our Music but hopefully I can get around to that in 2012.


Samples:
Tugboat
44. Yuck - Yuck (2011)
>lo-fi, alternative rock, hipster bullshit
I've seen this album on a few 2011 album of the year lists and I've also read some arguments that it shouldn't be rated so well. The album's fuzzy 90s-inspired sound is totally unoriginal and meant to trigger a sense of familiarity and comfort among receptive listeners. The comforting lo-fi sounds draw some to the album (sometimes enough to put it onto an AOTY list) and turn others away because there's nothing new here. I caught on to Yuck's shenanigans on my first listen through and decried the album as hipster bullshit. However, I was a fan of that lovely lo-fi drone and a few replays later it's managed to land on this list.


Samples:
Get Away
43. Low - Secret Name (1999)
>slowcore, minimal, lo-fi
I Could Live In Hope, Things We Lost In The Fire and Secret Name sit together in a kind of trilogy of Low's most depressing and minimal albums. Secret Name isn't quite as lo-fi as I Could Live In Hope or as critically loved as either predecessor but it still hits the same sad notes. This album is a wonderful companion into a crushingly depressing world made of bleak winter months and finals weeks and deserves a seat at the table with all the other slowcore greats. You can jump in anywhere on this album, it's got solid songs throughout.


Samples:
I Remember
Weight of Water
42. Walter Wanderley - Batucada (1967)
>bossa nova, lounge, organ
I'm a huge fan of Walter. However, most of my music is acquired over the Internet and his rather large discography only has a few albums digitized off of vinyl. When a friend mentioned she had access to a copy of this album I was very excited. This is another solid album by the Bossa Nova organ master which calls for a relaxing listen with your alcoholic beverage of choice. Looking towards the future I did see an album of his that I've never heard before at the Antiquarium in the Old Market. If I can borrow a turntable I will definitely pick that one up in 2012.


Samples:
Batucada
41. Bongripper - Satan Worshipping Doom (2010)
>doom, sludge, instrumental
To be honest listening to this album was my very first introduction to doom metal. I've felt out a few bands beyond Bongripper but I know very little about doom. Hopefully I'll be getting in a few more doom albums in 2012. I'm still not a fan of screamed metal vocals so on Satan Worshipping Doom I enjoyed its total lack of vocals in addition to its heaviness.



Samples:
Satan

40. Boris - Attention Please (2011)
>noise pop?
Boris released three new albums this year: Attention Please, Heavy Rocks (sharing the exact same name of an earlier Boris album) and New Album. It's always been tricky to label Boris but up until this year it's been fair to say they've bounced between stoner rock and doom metal from album to album. With this year's releases Boris tossed out Heavy Rocks with their usual stoner metal sounds, Attention Please with this ethereal, ambient sound and New Album with what approaches J-Pop. It's very strange to describe anything that Boris, the kings of drone has released as J-Pop but here we are. Attention Please is the first Boris release with Wata on vocals and she's been able to contribute to a beautiful new sound on this album. Out of the three albums released this is the strongest and I welcome future Boris experimentation in this direction.


Samples:
Party Boy
39. Electrelane - Rock It To The Moon (2001)
>indie rock
This year I was totally swept up by Electrelane. At the start of the year No Shouts No Calls was one of the very first albums I listened to but it wasn't until the end of the year when I finally got around to filling out some more of their discography. I was under the mistaken assumption that Shouts was their only good album, but I now realize that Electrelane is pretty consistent and that they've been steadily improving on their sound. Rock It To The Moon prominently features Electrelane's droning organ that takes a back seat on later albums. This album is by no means bad; it has far more in common with the later albums than it doesn't. It's just not as refined as the others. It's still worth a listen when you're feeling like Electrelane. I highly recommend sitting through the discography chronologically to see how things progress.


Samples:
Blue Straggler
38. Alcest - Écailles De Lune (2010)
>shoegaze, mermaid boobs
I finally got around to listening to Alcest's follow-up to Souvenirs D'Un Autre Monde. Alcest decided to keep with the shoegazing and put out an OK record. Fans of shoegaze and everyone who liked the first album should give this a shot. I can't say I've listened to it too much though.


Samples:
Êcailles De Lune - Part 2
37. The Dandy Warhols - Thirteen Tales From Urban Bohemia (2000)
>alternative rock
I think I was introduced to The Dandy Warhols through a comparison to The Limiñanas. Now that I've got to listen to both bands I'm not entirely sure where the similarities exist but I'm glad I was introduced to this band anyway. I'm addicted to the song (and music video) for "Bohemian Like You" more than I'd like to admit. "Bohemian" is here to be the catchy single but the rest of the album is also good. The opening three tracks are straight up shoegaze and fit together into a dreamy trilogy about religious beliefs. "Sleep," "Solid" and "Big Indian" are satisfying alt rock songs. The rest of the album isn't bad, it's just not very memorable. Despite my love of this album and "Bohemian" I have yet to branch out to the rest of their discography, something I'll have to do in 2012.


Samples:
Nietzsche
36. Madder Rose - Panic On (1994)
>indie pop
This is a solid pop album and a forgotten 90s gem. I highly recommend it to any pop fans and encourage curious shoegazers to give it a try. Panic On's got a bit of noise to it and Mary Larson's voice is very dreamy. I was bored by this album on my first listen through so you might want to give it some time to sink in. I have no excuse for the album artwork though. What the hell is it supposed to convey? I think I see a smudge of rose madder in there which is kinda topical but on the whole I'm not getting it. Maybe that's why this album is so forgotten. I've listened to a few other releases by Madder Rose and Saint Low and can recommend Bring It Down for fans of this album. Unfortunately I've yet to listen to Hello June Fool and Tragic Magic. I'd like to be able to track them down in 2012 and hopefully they won't be as terrible as Saint Low.


Samples:
Sleep, Forever
35. Broken Bells - Broken Bells (2010)
>indie rock
Everyone's had a chance to listen to The High Road by now. If you decide to continue on and check out the rest of their album you'll find it's very solid and a relaxing listen. It's plenty accessible and I can't imagine anyone hating this.


Samples:
October
34. Stan Getz / João Gilberto – Getz / Gilberto #2 (1966)
>bossa nova
Sometime over the summer I learned about this album: a sequel to the classic Getz / Gilberto. It was like finding out you had a twin and nobody bothered to tell you. This album is a live recording done in Carnegie Hall and lives up to its ancestor. Stan Getz is just as good on the saxophone on this album. About halfway through the album Astrud Gilberto joins the group on stage and sings along for the rest of the recording. Unfortunately the live setting and some weird mixing makes the second half kind of boring. I'd still stay it's worth a listen for anyone who likes bossa nova.


Samples:
It Might as Well Be Spring
33. Saint Etienne - Foxbase Alpha (1991)
>synth pop, club pop
Oh man, this is such a cool album. For a while I had discounted this because I'm not a fan of synth pop but the house influences and cute vocals here made a great album. Be sure to give this a listen, you'll be grooving along for at least a little while.


Samples:
Spring
32. The Beatles - Abbey Road (1969)
>classic, rock
The following albums are better than Abbey Road:


Samples:
Come Together
31. Dear Nora - We'll Have A Time (2000)
>twee
Here's an album full of upbeat music with depressing lyrics. It's a bit lo-fi and has excellent female vocals and harmony. I think it's a pretty clever album overall.


Samples:
Everyone's The Same
30. Insta - Checklist For Love / Horn Rim Fury (2002)
>indie pop
Alison's Halo was a shoegaze group from the early 90s. They weren't popular at all but a tape (Eyedazzler 1992-1996) with bits of an album has survived. This tape is spectacular and made Alison's Halo one of my all-time favorite shoegaze bands. This summer I tracked down a few more singles by Alison's Halo and learned about Insta, the band started by both members after they shuttered Alison's Halo. Insta put out some singles I haven't been able to track down, one album (Checklist For Love) and one EP (Horn Rim Fury). Both albums are excellent pop music but the star of the show is the vocals of Catherine Cooper. In the Alison's Halo days her voice pushed their sound into incredibly dreamy territory. This dreaminess has been pulled back a bit with Insta to bring things back to Earth and give Insta some smoky romanticism. I wish I could link a YouTube but they're pretty obscure (under 5k plays on last.fm) and have no YouTube videos that I can see.
29. Yo La Tengo - Popular Songs (2009)
>post-rock
Yo La Tengo's still got it! I have a feeling the YLT fanclub passed on this album with a meh but the band is still moving forward in a good direction. This album holds its own against YLT at their best. If you liked I Am Not Afraid... and the steps it took away from the softer Yo La Tengo sound you'll like this album because it's a continuation in that direction.


Samples:
Here To Fall
28. Johnny Lytle - New And Groovy (1967)
>jazz, vibraphone
New And Groovy is one of those albums I filed away years ago intending to listen to it eventually. I dug it up while cleaning and enjoyed it immensely. This is an excellent jazz record which calls for a glass of whiskey and half an hour of reflection. Johnny Lytle is a vibraphone virtuoso and is backed by a very capable piano and band. Both the highs and lows of this album grab your heart and make you pay attention. I won't fault you for singing along to "The Shadow Of Your Smile" - I've probably done it a half dozen times now. I'm definitely looking forward to hunting down more Johnny Lytle records in 2012.


Samples:
Selim
27. Nirvana - Nevermind (1991)
>classic, grunge
It's impossible for anyone alive in the 90s to escape Nirvana or this album which makes it hard for me to say anything at all. Turns out it's a solid album all the way through. When I heard this year was the 20th anniversary of its release I decided to give it a spin because I hadn't given the entire album a fair listen. Give it a try if you've only heard the hits before.


Samples:
Smells Like Teen Spirit
26. Boris - Heavy Rocks (2002)
>stoner rock
This Heavy Rocks is the best of Boris' stoner rock albums. There's noisy guitars and heavy riffs on every track. Fans of wanky Boris droning should look elsewhere; this album is for people who enjoy having fun.


Samples:
Korosu
25. Low - A Lifetime of Temporary Relief (2004)
>slowcore, minimal
A Lifetime of Temporary Relief is not an album but a massive collection of rarities and B sides from Low's entire career. It's packed onto 3 CDs with around 80 minutes of music on each. Getting through all of this Low took me nearly a week in March and burned me out on the band until winter. If you are a fan of Low I highly recommend taking the time to get through this. Most of the songs are in the incredibly depressing, minimal Low style and a few of the demos add in some lo-fi noise to that mix. If you enjoyed their first album I Can Live In Hope you owe it to yourself to hear the two demo versions of "Lullaby" and "Cut." As far as I can tell they're from Low's very first demo tape. Both songs are caked in tape hiss and stretch out the already lengthy, minimal songs.


Samples:
Tomorrow One
24. Pinkshinyultrablast - Happy Songs For Happy Zombies (2009)
>shoegaze
Pinkshinyultrablast (stealing their name from an Astrobrite album) has only released this single EP so far. Just these four songs are enough to shove it up onto this list and produce some of the best noise-influenced shoegaze you'll ever get. This EP is absolutely worth the time for any shoegaze fan and will probably crawl its way into your heart as well.


Samples:
Blaster
23. The Moldy Peaches - The Moldy Peaches (2001)
>lo-fi, anti-folk
The Moldy Peaches is the fuzziest, most lo-fi album on this list and will instantly win over any lo-fi nuts on that note alone. However, this album doesn't just appeal to handfuls of lo-fi nerds and hipsters - some clever lyrics and heartfelt delivery gave it sticking power after "Anyone Else But You" was featured in the movie Juno. This album is a fun listen and you should give it a shot! I think some of the more romantic songs ("Lucky Number Nine," "Jorge Regula," "Nothing Came Out," "Anyone Else But You") deserve a listen. You never know when it might come in handy - be prepared.


Samples:
Steak For Chicken
22. Lacrosse - This Year Will Be For You And Me (2007)
>twee, boy-girl vocals
This album and Lacrosse's later album Bandages For The Heart are both catchy, upbeat twee pop. They're also similar enough to be balled up together in the same review. I do believe that this is the better album though so it gets placement on this chart. I've been listening to both albums for the entire fall semester - mindless pop and tax homework go hand in hand. I enjoy the album but I have hardly anything to say about them. The lyrics are kinda weird: they're like poetry written independently of the music and are actually quite depressing. I recently looked at the lyrics to My Stop and saw that the song's actually about suicide. If you're willing to put the strange lyrics out of mind this is a great album.


Samples:
So Sad
21. The Daisy Chain - Straight Or Lame (1967)
>psychedelic, lo-fi
The original pressing of this album was small and was mostly forgotten. However, I guess enough hipsters heard it and liked it to get a re-release in 2005 giving us the copy I have today. The organs and some of the vocal harmonies remind me of Stereolab so that's a plus. The album starts out with "I'll Come Runnin'" which sounds like any number of 60s girl group songs. Stereolab did draw a lot from 60s pop but this isn't the height of their similarity to The Groop. The waltzing, slightly dissonant organ in "Zzotto" departs from pop and turns toward Stereolab's brand of rock. The rest of the album returns to their 60s contemporary pop sound. All of this music put together produces an enjoyable album.


Samples:
Zzotto
20. Tim Gane & Sean O'Hagan - Copacabana (2010)
>bossa nova, lounge
Stereolab's never been shy about their lounge influences. I've heard Tim Gane is a huge record collector and is a fan of Brazilian lounge. Copacabana is Tim's chance to make straight up bossa nova and he nailed it! This is just a movie soundtrack so it lacks the unity of an album but I still found it very enjoyable. I'm not sure a full album done like this would turn out well so I'm happy with what we've got.


Samples:
Un Bar, Un Soir
19. Projekt A-Ko - Yoyodyne (2009)
>alternative rock, lo-fi
After releasing three albums the band Urusei Yatsura ran out of steam. Graham Kemp, one of the founding members, split for other projects and the band continued on under the name Projekt A-Ko. Yoyodyne is the only record released so far by the band. With this album they've gone to an even more lo-fi sound than they had on We Are Urusei Yatsura, the most lo-fi of the Yatsura albums. With Graham leaving Fergus picks up more of the vocals here and he's come up with a slightly more dreamy sound. Elaine's also singing backup on the record for the first time and it doesn't sound bad at all. "Supertriste Duxelle" is the most attention-grabbing song here with some nice guitar fuzz. "Scintilla," "Ichiro On Third" and "Here Comes New Challenger!" sound like they could have been on We Are Urusei Yatsura. If you enjoyed Urusei Yatsura and can get behind Fergus' new vocal style you'll find this album a refreshing new take on Yatsura.
18. Electrelane - The Power Out (2004)
>indie rock
Electrelane decided to change things up a bit on this album. Rock It To The Moon had a very consistent, droning sound which has been traded away here for some exuberantly excited indie rock. There's a lot of shouting on The Power Out - something new - but there's also a lot of similarities with the rest of their discography. The prominent crescendos from No Shouts... show up on "Oh Sombra!," "This Deed," "Gone Under Sea" and "Only One Thing Is Needed." The organ featured heavily on Rock It To The Moon can be heard dominating the songs "Love Builds Up" and "The Valleys." Electrelane also pulled in a choir for "The Valleys" which sounds fantastic and is a testament to their versatility. Anecdotally I love how this live recording of On Parade has the crowd doing the little squeal thing. This album is a bit more adventurous than Electrelane's other work and I think it rewards the listener well.


Samples:
Birds
17. Starflyer 59 - Gold (1995)
>shoegaze
For most of the spring semester I was able to listen to a new album each day and Gold was the first great album I heard during that period. This album isn't from the dream pop side of shoegaze but has more noise rock influences instead. The first half is very upbeat noise rock but after "When You Feel The Mess" things slow down and get a bit more reflective. The dreamy vocals persist from the first half of the album and fit perfectly into the second half making the whole mess come together. I listened to an extended re-release version which tacked on a few B-sides to the end. Out of those "La Vainqueur" is good enough to make the album. I thought this album was very catchy (I had it on repeat for most of February) and I think it's a good introduction to shoegaze outside of My Bloody Valentine and its clones. Anecdotally I was recently looking at the music video for "A Housewife Love Song" and it's incredibly boring. I'm shocked that someone could take something as awesome as spinning and make it uninteresting.


Samples:
A Housewife Love Song
16. Chelsea Wolfe - Ἀποκάλυψις (2011)
>gothic rock, lo-fi, slowcore, some bitch screaming in a garage
I've read that this album is part of a bigger revival: it's kin to witch house and the modern 80s synthpop inspired bands and 2012 is looking like it may contain an 80s revival. We'll have to see how that plays out. This album is meant to be haunting and achieves its goal. Chelsea Wolfe's heavily distorted voice is prominent in almost all of the tracks here and accomplishes most of the spookyness. The lo-fi music backing her for the entire album does the rest. There's also a soundscape track "To The Forests, Towards The Sea" which showcases how effectively her lo-fi backing can be spooky. I think this album has a lot more in common with slowcore than what anyone else is saying. I think slowcore fans may enjoy this album because of how depressing, minimal and slow this album can be, particularly on "Moses" and "Pale on Pale."


Samples:
Mer
15. Minimum Chips - Kitchen Tea Thankyou (2005)
>post-rock
Minimum Chips are a mostly unknown band from Australia. I think they've pretty much stopped making music and this is one of their last releases. They're not that derivative of Stereolab but the comparisons to Stereolab are going to follow them anyway. "Alaska," the first song on this album, introduces you to the band's droning vocals and organs and "Hong Kong," the last song on the album, drags you out the way you came in. "Know You Too Well" is their shot at a pop song and is a nice change of pace. "Marble Arch" and "Goodbye" (especially the former) sound like something Stereolab would write. Eventually you'll come to "Treats" which I think is the "Jenny Ondlione" of this album. You should absolutely give this song a shot - it's incredibly catchy. If you can figure out what the lyrics are please write back to me because I'd love to find out. Finally, "Trouble Free" is the kind of post-rock I think you'd see on Transient Random Sound-Bursts With Announcements. When confronted with such a massive, album-conquering song like "Treats" you've got to get a bit of post-rock wanking involved to wind things down. To extend the analogy, "Trouble Free's" companion on Transient Random would be "Analogue Rock." If you can get your hands on any Minimum Chips (acquiring some of their rare releases was a small triumph in UNIX wizardry for me) I'd recommend listening to it.
14. Tiger Trap - Tiger Trap (1993)
>twee, lo-fi
This album is the first and only release by Tiger Trap, Rose Melberg's first band. I'm not super familiar with her later projects (it's something I want to explore a bit in 2012) but out of what I've heard this is one of her best releases. The music here is straightforward twee. "Supercrush" and "Chester" are notable because they break away from the timid twee style and put on an epic feel. "For Sure," a vengeful breakup song, is the pinnacle of this album. Tiger Trap isn't very long but definitely is one of the best twee albums out there. If you can get into "Puzzle Pieces," the first song on the album, you'll probably find the album exciting and enjoyable but short.


Samples:
Puzzle Pieces (really bad Youtube quality)
13. Master Musicians of Bukkake - Totem One (2009)
>ritual folk
I had no idea "ritual folk" was a thing until I was introduced to The Masters. Given how much I've enjoyed Totem One this fall it's definitely something I'll be investigating in the new year. I can't help but feel like a 6000 year-old monster rising from the depths of the ocean to crush humanity when listening to "Schism Prism / Adamantios." This album is the first part of a trilogy and I got a chance to listen to the other two during the year. They feature a transition away from the heavier ritualistic sound on this album to a more humanistic sound. I don't disagree with their transition - their experimentation still sounds great - but it didn't bring me to enjoy the later albums nearly as much. I think other Bukkake lovers prefer the later albums putting me in the minority. I heard that they were playing with Boris on the west coast which sounds like an incredible show. I'd love to go to a Bukkake show but I have a feeling it would be a sausagefest on multiple levels.


Samples:
People Of The Drifting Houses
12. Boris - Akuma No Uta (2003)
>stoner rock
Akuma No Uta is heavier than Heavy Rocks and you can rock out to every song. I find it impossible to not headbang on "Naki Kyoku" even when working on accounting homework. Anecdotally I have yet to listen to anything by Nick Drake (Akuma's album artwork references his Bryter Layter) but I will hopefully turn that around in 2012.


Samples:
Furi
11. The Breeders - Last Splash (1993)
>alternative rock
I find it hard to imagine that anyone alive in the 90s could escape hearing "Cannonball." At some point in the year I heard good things about The Breeders in general and decided to check out this album. Turns out the entire thing is filled with excellent, noisy rock. "Drivin' On 9" is a random country song on the album and showcases Kim's voice, another strength of the album. After one listen I was hooked.


Samples:
Roi
10. Stan Getz - Getz Au Go Go (1964)
>bossa nova
Stan Getz's Getz / Gilberto is one of the greatest albums ever released. Unfortunately for Stan all of his other albums are always going to be ranked up against this high bar. This album features a great live performance by Getz and deserves a spot high up in the rankings of Stan Getz albums. Astrud Gilberto accompanies him again and does the vocals on "Corcavado" (but not as good as her husband on the first Getz / Gilberto), "It Might As Well Be Spring" (a great little lovestruck song), "Eu E Voce," "Only Trust Your Heart" (one of Astrud's best), "The Telephone Song," "One Note Samba" (a legendary performance) and "Here's That Rainy Day." For Stan Getz this album contains some of the best performances of his career. If only I could be there that night and see this performed live. I really recommend listening to "One Note Samba" if you get the chance but I couldn't find a suitable quality copy on Youtube.


Samples:
Corcovado (Quiet Nights of Quiet Stars)
9. The Limiñanas - The Limiñanas (2010)
>garage pop
I know there's a tradition of good pop music from France going back to the 60s but I don't know anything about it. However, this doesn't keep me from enjoying The Limiñanas. They've done everything right here and this is one of the most fun albums I've heard all year. I'm constantly getting the urge to jump up and call my friends to start a garage pop band when listening to it. The starter track "The Darkside" sets you up with the band's lo-fi sound and crisp female vocals. "Funeral Baby" is one of the high points of the album and also confuses me the most. The chorus is just the phrase "Funeral baby" repeated over and over. What on Earth could they be singing about that would make that an appropriate chorus? Well, I asked the band on Facebook and they said it was about a widow finding the perfect song for her lover's funeral. This answer still doesn't satisfy me. "Chocolate In My Milk" is twin to "Got Nothin' To Say" and got me to enjoy ukulele music. I used to read BoingBoing and after the millionth post about cute girls playing the music I've hated ukuleles until now. "Tigre du Bengale (inst.)" is incredibly catchy like the full "Tigre" and "Mountain." I think it's also worth mentioning that this band has an incredibly minimal sound. I was personally shocked to see how big the band was when watching them on YouTube. "Je suis une go-go girl" is a great song even if you're dying to know how the lyrics relate to being a go-go girl. The closer "Got Nothin' to Say" is one of those melancholy ending tracks. It fills its role beautifully and is one of the best tracks on the entire album. The Limiñanas is over far too quickly and I look forward to their future releases.


Samples:
The Darkside
8. Bunnygrunt - Jen-Fi (1998)
>cuddlecore, twee
I first listened to Bunnygrunt on a whim. They were tagged as "cuddlecore" on a website and my curiosity totally overcame me. As I understand it cuddlecore is twee pop but with punk influences. I don't think it really needs its own genre but it's definitely a fun label to use. I gave the album a listen but resigned that night thinking it wasn't that good. However, I came back the very next day with Bunnygrunt stuck in my head and was obsessed with them for the rest of the summer. The album as a whole is very short and is packed with incredibly short songs. At the end you're left wanting more but while listening to it you're amazed at how much Bunnygrunt can pack into a 2 minute song like "Wild Summer, Wow!" The girls in Bunnygrunt have a lot more vocal harmony on this album compared to the rest of their discography. However, that's not to say that I don't enjoy the songs where Matt sings along too like "Good Tiger, Bad Tiger" and "Names of Trees." Unfortunately the rest of the band's discography isn't nearly as good as this album.
7. Urusei Yatsura - We Are Urusei Yatsura (1996)
>alternative rock, noise rock
This is a great and underrated album. I hoped to put it higher in this list but the competition is stiff. If you take this album and split it into the two sides of the LP the first has all of the catchy Yatsura hits and the second has the slower, more reflective songs. I heard "Kewpies like Watermelon" from the first half was the most popular off this album and got some radio play in England. "Siamese" and "First Day on a New Planet" sound like they should be reversed - "First Day" is the better opening song. However, "Siamese" is one of those songs that's good but doesn't fit with the other songs on the album so you're kind of stuck putting it out by itself. The music video for "Phasers on Stun" is awesome and reflects the wild energy of the song. The music video doesn't play the dissonant "Sola Kola" (the second half of the song) so be sure to listen to the full album version. Although I loved Urusei Yatsura's sound from the first listen it took me a couple of album plays to get into the second half of the album. "Velvy Blood" and "Black Hole Love" help lower the energy level from the peaks of the first half of the album in addition to being great songs. "Plastic Ashtray", the best song on this album, is this wonderfully relaxed song covered with guitar fuzz. Its lyrics recall feel-good topics like future love interests, reminiscing about parties and good times with friends. The single version (also used in the music video) cranks up the noise even more. Finally, "Kernel" is the understated hero of this album. It took me a few listens but now whenever I listen to that song I sit at the edge of my seat eagerly expecting the second chorus. By the time you're done with the album you can't help but feel good about yourself, your life and your state.


Samples:
Plastic Ashtray
6. Electrelane - No Shouts No Calls (2007)
>post-rock
Electrelane's had small but consistent improvement from album to album and No Shouts wraps up this progression with a very polished finish. There isn't a bad song on this album and I find myself engrosed in the entire thing when listening to it. I've held off on comparing Electrelane to Stereolab so far because I personally don't see too many similarities. However, now that I'm sitting down and picking apart things with a critical eye I can understand why people would compare the vocals to Stereolab's Mary Hansen. Stereolab's krautrock influences were very heavy-handed. Electrelane shows some krautrock influence (especially on this album) but they're still not as obvious as on Transient Random for example. Finally, it's also worth noting that there are a few more tracks on this album with nonsense lyrics or no vocals than in their past releases, which helps create the dreamy feel throughout the album.


Samples:
Saturday
5. FireFriend - 999 to 666 ts street (2011)
>alternative rock, shoegaze, 2011 album of the year
There's nothing new or exciting on this album but that doesn't mean you won't have a great time listening to it. All of these noisy guitars and dreamy vocals have shown up in earlier times and different scenes. This album goes back and forth from the drowsy ("Blackbird," "Dropouts," "Higher Path") to the energetic ("Airport Scene," "Free Form Future"). The noisy guitars are a constant but never repetitive. I also appreciate how the band's able to take songs and stretch them out a bit without boring the listener or requiring endless crescendos. It's almost like Stereolab put out an alternative rock album! I didn't listen to many records released in 2011 but this is the best out of those few. This is my 2011 album of the year.


Samples:
Blackbird
Download the entire album for free
4. Boris - Pink (2005)
>noise rock
It's finally time to review Pink. I had always punted Boris away to the back of my mind and wasn't that motivated to check them out. During the fall semester I saw that they were playing in Omaha and I decided that this was an opportunity not to be missed. I started digging into their discography right away. Their live show was excellent and managed to fit together songs from throughout their history - something I personally thing is quite the feat because of their diversity. They do tour with a gong and you know shit's about to go down when Takeshi abandons his drum kit to wail away at the gong. Seeing Wata play live was also pretty cool. There's this huge disconnect from seeing this tiny little woman standing in front of you and the incredible sounds she makes with her guitar. Boris has always been hard to pigeonhole but this album definitely sits on the noise and stoner rock side of their discography. However, even within this album Boris has "Blackout." an incredibly heavy doom metal song meant to throw a bone to fans of that side of Boris. There's also "My Machine", "Farewell" and "Just Abandoned My-Self" at the end of the album which do the same thing for fans of Feedbacker and Flood. "Just Abandoned My-Self" deserves a special mention because it brings together the noise rock from the start of the album with some excellent droning. I feel this album deserves a wider audience than it gets and was made to be Boris' ambassador for bringing people over to the noisy side of rock. It certainly worked on me.


Samples:
Pink
3. Pink Floyd - Wish You Were Here (1975)
>classic, prog rock
What is this album doing here? I know I've listened to Wish You Were Here outside of 2011. However, when I went back to look at my records it looks like I was just listening to a few songs and hadn't given the entire album a fair listen until now. This album is an absolute classic and is completely worthy of all of its praise. I consider the album as a whole to be the greatest memorial tribute anyone could give to any other human. I think that both parts of "Shine On You Crazy Diamond" are a bit intimidating at first but after giving it a fair listen everyone can come around and enjoy them. "Welcome To The Machine" is an excellent song but after letting it sink in I feel it's probably the weakest song here. I don't mean that as any kind of slight, it reflects more on how amazing the rest of the album is. "Wish You Were Here" is a deeply moving and beautiful song and something everyone should play every now and then. Everyone owes it to themselves to listen to this album.


Samples:
Wish You Were Here
2. Le Futur Pompiste - Your Stories And Your Thoughts (2004)
>indie pop
Wish You Were Here is a hard album to follow. Le Futur Pompiste gets here by playing to my personal favorites: this album sounds like the pop songs off of Mars Audiac Quintet mixed in with some twee. The biggest draw here is Jessika Rapo's clear and very distinct voice (almost like Laetitia Sadier) and the constant organ, a novelty for many twee bands. The lyrics on this album are often depressing with "Pretend To Smile" and "Don't Let Go" explicitly so. That's the contrast Le Futur Pompiste is going for here: upbeat pop music paired with those depressing lyrics. For whatever reason I also think the bass is excellent on this album. "Seeds" also deserves a special mention. I always thought it was the odd one out on the album: not only does it sound totally different than the rest of the album but it's the last track and kind of hanging off the end. At some point in time I Googled the lyrics and found out it's about some weirdly phrased apocalyptic warnings. "Seeds" makes them closer to Stereolab than at any other point of the album with its forward-looking lyrics and repetitive, droning krautrock. Their self-titled followup isn't a terrible album and some of its songs ("Girls Of Those Days") aren't bad. However, it still doesn't hold up against Your Stories for reasons I'm unable to pin down. I listened to Your Stories And Your Thoughts so many times over the summer I feared I'd burn myself out on Le Futur Pompiste. Luckily they found their way into my body of study music instead.


Samples:
A Way To Exist
1. Swervedriver - Raise (1991)
>shoegaze, alternative rock
Raise is celebrating its 20th anniversary in 2011 along with another shoegaze classic, Loveless. Unfortunately Raise has been forgotten and left for the shoegaze fanatics but it's an excellent album. Both are distinctly shoegaze although they cover very different ground. Loveless has its trademark dreamy vocals and lyrics about drugs and sex - if you can understand them. Raise goes for a harder alternative rock sound and its lyrics are about escapism and acceptance - adolescent fantasies. Driving away from your problems with your friends at your side is the dominant theme here and is explicitly stated on "Pile-Up" and about half the album. The shoegaze wall of sound perfectly backs up these emotions and makes it excellent driving music. "Sci-Flyer" also deserves credit for its sneaky Kafka reference. "Rave Down" is another high point on this album and is also the most shoegazey song here. Unfortunately after this album Swervedriver moved away from shoegazing into alternative rock. I had no idea that Swervedriver released anything like this having only listened to their later albums. This album also took a bit of time to sink in with me but was definitely worth keeping around. I guess you could even argue that listening to Raise in a sterile, silent environment instead of a car on the open road takes away some of the charm. This album is one of the best shoegaze albums and gives originality to a genre filled with My Bloody Valentine clones.


Samples:
Sci-Flyer


Blog tags

Anonymous (not verified)

Sat, 08/09/2014 - 12:34pm

Le futuro pompiste madre a great álbum, one of muy favourites e ver, they had the inspiration that stereolab lost in the 2000...