Why Use Assertion

And, what is the difference between raising normal errors and assertions? Basically:

Raising ErrorAssertion
Raise ValueError('Input not in range [1, 10]')assert 1 <= v <= 10
Intended for usersIntended for developers
Happens when user action is illegalHappens when code contains bug
To signal to user to take a different course of actionTo easily find where code starts to error
Cannot and should not be disabledCan be disabled during compilation,
therefore should not be used in logics like data validation

Fun Projects

Kindle Clippings Processor

The online service that I used to use for processing kindle clippings,, released a new version this week. And lo and behold, everything useful is behind a paywall.

I only needed it for processing My Clippings.txt to export it into Evernote, and it’s just file processing of standard format txt, so I thought I’d just whip up a simple version for my own use.

Initially I had planned to write a script for it, like the ruby one I did for cleaning up the mess of record files in kindle, after you delete books. But on second thought, it would be nice if other non-technical people can use it easily too. So, here it is:

On upload of a clippings file, it will have your highlights grouped by book title and sorted by location and timestamp.


Error with css-loader

Error message looks like this:

var api = require("!./node_modules/_style-loader@1.2.1@style-loader/dist/runtime/injectStylesIntoStyleTag.js");

If you’re using Storybook, or multiple webpack configs of dev/prod, or simply multiple rules… Either way, this error means you’ve specified rules for CSS more than once.

For example, Storybook already has a set of default rules for various file types, and CSS is one of them, so you cannot specify custom CSS rules again.