Django error: Reverse for 'some-name' with arguments '(1,)' and keyword arguments '{}' not found. 0 pattern(s) tried: []

A nice feature of the URL matching rules is that even if you have named arguments in the url(), like so:

 url(r'^items/(?P<pk>[0-9]+)/$', ItemDetailView.as_view(), name='item_detail'),

the system will accept a positional parameter, like so:

{% url 'item_detail' %}

I was thinking that it was going to be particular about named parameters, and I was searching for information about passing named parameters to url, but it wasn't necessary. Once again, misdirected by an error message.

DIY Fixing ic! Berlin glasses if you sat or stepped on them

So, when I had some money, I blew it on these "designer" ic! Berlin frames. They look really high tech and cool, and they allegedly avoid damage by having these hinges that pop apart under pressure.

Here's a video of how it's supposed to work:

Here's another one:

Too bad the ones I got don't actually pop apart under pressure. I'll explain how to fix them in this blog post.

def fn(arg1,x=arg2,y=10,*args,**kwargs): GO PYTHON!

def fn(arg1,x=arg2,y=10,*args,**kwargs):

That's kind of ugly, but the design is elegant. With that declaration, the function supports positional arguments, required named arguments, optional arguments, an arbitrary number of additional unnamed arguments, and additional arbitrary named arguments.

It allows function calls to be simpler and more readable than they would be without this flexibility.

Metro PCS contract, and an opt-out letter to preserve your right to a court trial.

I was getting an annoying update of the Metro PCS contract, and ended up reading it. Attached is a marked-up contract with interesting parts highlighted. The plain contract is available on their website - this is highlighted as a kind of commentary.

The most irritating part is where the company forces you into arbitration, and then into relinquishing a trial by jury. While I'm not that opposed to arbitration, it is not nice to give up the right to be seen in court.

A CSV Reader for UTF-8 Files

I was using the Places to CSV plugin to dump my website visit logs, and needed to ingest this data. The problem was, the fields were in UTF-8... but when I tried to decode each line from str to unicode, the csv library wouldn't do its magic. The fix was to let the csv.reader read in the data as str (no encoding, just bytes), and then decode each field as utf-8, returning a unicode string. These unicode strings were returned as a list, just like csv.reader does.

Python Operator Overloading

I was reading up on Django F() and Q(). I didn't know Python had operator overloading. They call it magic methods.

Magic Methods on Rafe Kettler

There's a pretty good tutorial at Treehouse.

But... a few memories of arguments about operator overloading surfaced, so I had to think about why Java rejected adding the feature to Java.

Are Doctests in Django 1.8 Failing to Run?

I don't know what's up, but I ran some old examples, and it looks like doctests aren't running when I do the " test" (or the one with a settings file).

Django Database Testing Unmanaged Tables with Migrations

The answer is here: Models inside tests - Django 1.7 issue.

The problem is that you have some tables that are not managed by Django. (They get called "legacy", but in my case, they weren't legacy but data imported from another system.)

CORS, Angular JS, and, together, didn't let me login twice.

Things were going well with a re-architecting and re-factoring of a service to use Angular's awesome $request, and Django REST Frameworks' awesome ModelViewSet generics. As usual, when things are chugging along, you come across a weird bug that just sucks you in for a while. The bug I hit today involved CORS, AngularJS, and Parse (we're using Parse for part of our backend).

The symptom was that, if I logged in once, then logged out, I could not log in again. I could reach the server, but it wouldn't let me do the exact same thing I'd done just 30 seconds before.

Adding Custom Fields to a Database Table

I was watching and OpenERP/Odoo video, and the demo showed custom fields being added.

My first thought was, "uh, I hope it's not implemented as a generalized database system written using a database as its platform."

I guess I could go read the code.

Then I started to think about using a NoSQL database to achieve that flexibility. NoSQL is schemaless, so being able to add fields is simple and not ugly. The tradeoff is that it's not relational - a huge tradeoff.

Python Cheatsheet

When I shift languages, I sometimes make cheatsheets to speed up the transition to the new keywords and syntax. There's only so much shelf space in the brain. This is one I made for Python.

Recreate a Dropped Table in Django Migrations

This is a somewhat embarrassing story, but one that's common enough that you can find it online: I dropped a table, and needed to recreate it, and I'm using those (grr) Django migrations.

The right way out of this mistake is to recover from a backup. But let's suppose I didn't have a recent backup of my development database... because I didn't.

Log Everything: Send Shell Commands to Syslog

This is an article on security, but I started to record all my commands to syslog so I can track what I'm doing, when, and for how long, more or less. Then I record this on my calendar to see if I'm staying focused on work, or getting distracted. It's a nice blog post.

Bash History to Syslog

Edit: so I implemented it on my computer, but changed it slightly:

# log all my commands
function log2syslog
     declare command
     command=$(fc -ln -0)

Not Hating on HATEOAS

There's been some loving and some hating on HATEOAS (which I don't know how to pronounce), but I'm starting to get it. See: REST Cookbook, Timeless, and PayPal's API.

The core idea is, in addition to the data, you send over some information about the possible URLs you can use as a next step.

Promises, promises (in Javascript)

This is a short explanation of what promises are, and how they work.

You're probably familiar with callbacks, where you pass a function as an argument to another function, like this:

   f( function b() {...});

When f does something, usually taking some time, it runs b.

Promises are just callbacks with a little more structure.

There's a library called Q that's influencing frameworks like Angular. Q's most visible quality is that it uses a differen syntax:

Syndicate content