Shared posts

31 Oct 18:14

How I make stew

by Chris Allen

I think the first thing my mother taught me to cook was Kraft Mac-n-Cheese at age 9. Fortunately, I’ve been able to move past that since then. My repertoire is a bit limited but I like to think that by zeroing in on specific kinds of meals, I’m able to make them go a bit farther. A friend of mine asked how I do crockpot recipes and after stewing on it for awhile I thought I would write a post explaining my thought process.

So, first the reason I cook at home is usually to practice. I’m a bachelor and probably wouldn’t bother if cooking wasn’t necessary for me to either eat healthy or to entertain. The exception to “cooking-as-practice” are my stews. I usually make stews to eat healthier, avoid going out, and sometimes as part of a weight cut.

Another difference for stew from other kinds of food I make is that I’m more comfortable composing arbitrary ingredients in stews and knowing what I’ll get out of it. Most people, especially sedentary programmers, could benefit from eating less as well as eating healthier and I find stews help a lot with portion control. When I’m on a protein-sparing modified fast (PSMF) I’ll often make a single stew containing 1 or 2 pounds of meat for the whole week.

For equipment I use a fairly ordinary slow cooker that has an off, low, and high setting. The nice thing about my slow cooker is that the crock pot can be lifted out of the heating element so that I can easily store the food in the fridge. I don’t typically freeze my stews in gladware/tupperware as I’m fine eating the same thing for a week straight but people with families may want to store and alternate.

Now to the ingredients and process!

Meat and vegetables (and not much else)

Typically I’ll use a red meat (beef, pork, lamb, goat) and a complement of vegetables. Sometimes I’ll make stews with chicken but I typically don’t as I don’t feel they contribute as much flavor to the stew. A near constant in my stews is mushrooms as the umami (savoriness) they bring is vital for a good stew. Other common ingredients are carrots, celery, bell peppers, and tomatoes. Often recipes will call for stewed or crushed tomatoes. I will typically use tomato paste and water separately instead so that I can more finely control the tomatoey-ness.

Another thing is that stews often call for potatoes, I never use them or any other starchy ingredient as I do not need empty or low-fiber calories.

I stopped trying to replicate curries

One of the key things that improved my stews was not attempting to mimic things like curries which are very heavily laden with seasonings and instead focusing on getting the most out of my ingredients through browning. I still add seasoning (especially salt!) but it’s there to complement the ingredients, not to be the primary source of flavor.

They never really came out that well and the super-strong flavors meant that I tired of what I made much faster than if it was more subtle.

You have to bring out the flavor in your ingredients

Before you put them in the slow cooker. This is particularly vital for the meat and mushrooms, but it applies to vegetables depending on your preference. The trick here is to purge moisture and brown the ingredients in a skillet or pan before throwing them in the slow cooker. This will make all the difference in the quality of your stew, especially if you do a good job of this with the meat and mushrooms! Butter-browned mushrooms are manna from heaven when done right! They should taste good by themselves before being added to the stew.

I strongly recommend getting good at browning ingredients and learning to cook for moisture targets if this isn’t something you’re already comfortable with. I got much better at this by learning to cook Sichuan food from Fuchsia Dunlop’s Land of Plenty and it has improved everything I prepare. I also appreciate vegetables much more as a result.

Seasoning

Some common standard spices for stews:

  • Salt
  • Pepper
  • Paprika
  • Parsley
  • Thyme
  • Oregano
  • Basil
  • Rosemary
  • MSG (hate if you want, but it helps and works with the mushrooms and meat to make the stew fantastically savory)

I usually end up using more salt than any recipe I’m working off of calls for. I start low and add more salt in one hour intervals until I’m satisfied with my taste-test from the crockpot.

Composing ingredients, not functions

I mentally categorize ingredients by what flavor or texture component they bring to the stew. I’ll put a (B) next to ingredients that I feel should be browned.

Savory

  • Beef, pork, lamb, goat (B)

  • Mushrooms, usually baby bella because of the surface area to volume ratio and flavor (B)

  • Tomatoes, usually as a paste for flavor density. I am more likely to use tomato paste with a beef or lamb than I am pork or chicken.

Sweet

  • Carrots

  • Peas

  • Corn

I don’t typically use corn but it’s a solid option if you want it

  • Peppers

Bell peppers are typically neutral but others like chili peppers will taste a little sweet. I no longer try to make my stews spicy though.

  • Red cabbage

  • Onion (B)

It depends on the onion. Vidalia is going to be most sweet, red onion middling, yellow or white onion is going to be the most astringent.

Neutral

  • Celery

  • Bell peppers

You can brown bell peppers but I don’t think there’s much point when it’ll hit the texture I want just from slow cooking and I can’t tell much difference in the flavor.

Astringent or sulphuric

  • Onion (B)

I usually sautee some onions and also throw in some raw onions to get both sides of the onion flavor. Raw onions are more astringent, sauteed/browned onions are more savory and sweet as the sulphuric components denature in heat.

  • Garlic cloves (B)

Garlic is pretty much an always-ingredient in my stews along with onions and mushrooms. I strongly recommended learning to brown garlic cloves if you aren’t already in the practice of doing so as it does wonderful things for the flavor of garlic. You can sautee some of the ingredients you need to brown together. Don’t brown too many ingredients at once in the skillet as it will make it hard to purge moisture accurately for each ingredient and get the timing of the browning right.

  • White cabbage

  • Bok choy

I don’t have as much experience with bok choy and am uncertain whether it should be browned or not but it’s been a nice replacement for white cabbage in the past.

  • Broccoli

Confess I do not care for broccoli much and so rarely use it but I think broccoli would be improved by cooking in butter before addition to the crockpot.

  • Cauliflower

Sister to broccoli.

  • Artichoke

No strong opinions here, it’s been good when I’ve used it. Similar to asparagus.

  • Asparagus (B)

I will often roast asparagus on the grill in olive oil, salt, and pepper and it’s lovely. You can do similar in the pan before adding to a crockpot.

  • Turnip

I used turnip in my most recent stew and thought it added a nice edge to the stew. Only (downside?) is that the turnips will retain their fibrous texture even after a good slow cook so if you want them to disintegrate you may need to cook separately. This may be necessary if you have children you don’t want detecting the presence of vegetables. Downside to doing so may be less fiber content in the stew.

Side note on “astringent”

Pre-modern Europeans used garlic as an antibiotic for wounds.

Citrus/acidic

I don’t do as much of these as I’m typically going for a balance of sweet/astringent/savory in my stews but they’re an option if it’s something you want. I won’t listen them out as I don’t have as much experience with them in stews but these are going to be your fruits, berries, and some varieties of nuts. I’ve considered roasting walnuts for addition to a stew but haven’t tried it yet.

Oils and fats

Typically when I make a stew I’m trying to make it “fatty” without it developing a grotesque top layer of fat on top when it settles in the fridge. To that end, I’ve started using slightly leaner meats than the 70/30 I used to use, more like 80/20 or 85/15. The browning purges some fat as well. To complement the meat fats, I’ll sometimes add button to the stew while it’s slow cooking. I’ll taste to determine whether or not it needs more fat.

Bones (not the rapper)

The last stew I made was with beef rib. I should’ve separated the beef from the bones before putting them in the crockpot. I ended up having to do this after it was mostly done slow cooking. I thought the slow cooking would break down the connective tissue between the bone and protein but it did not.

That said, bones, especially if they have some marrow in them, are excellent for stews and worth getting ahold of if you can. Goat can be good for this as the meat often comes on the bone with some good marrow.

An example recipe

This is from memory what my last stew was, I’ll try to link tweets describing it as well. It was a modified version of this low carb beef stew recipe.

  • Beef rib, browned

  • Mushrooms (baby bella) I browned them in a little bit of butter and some worcestershire (wurster-shur) sauce. Note the color.

  • Tomato paste

  • Beef stock. If you want a very strong flavor, use beef consomme.

  • Some added water. Not a lot, I don’t care much how thick the stew gets for the most part as long as everything gets cooked properly and the texture is right. I’ll often heat water with my electric kettle and pour it over reheated stew that doesn’t have enough liquid. Tastes great, not watery/bland.

  • Salt, oregano, thyme, fresh ground black pepper, paprika, garlic powder

  • Raw onion, minced (I use a fork to mince) garlic cloves

  • Carrots, turnips, bell peppers.

I didn’t add any xanthan gum, it was plenty thick at the end. I only had a 1 and a half, maybe 2 pounds of beef rib in the crockpot.

Coda

I hope this helps some of y’all in making tasty, healthy food! I really like stews and think they’re a wonderfully adaptable and accessible way to make food.

I know this site is a bit of a disaster zone, but if you like my writing or think you could learn something useful from me, please take a look at the Haskell book I've been writing. There's a free sample available too!

Posted on October 29, 2017

31 Oct 18:14

"Like a dyslexic, the translator has to have not one but ten words on hand in her own language for..."

“Like a dyslexic, the translator has to have not one but ten words on hand in her own language for every word in the original language.”

- Benjamin Moser, cited by Scott Esposito in Passionate Acolytes: An Interview with Benjamin Moser
31 Oct 18:09

The Best 4K TV on a Budget

by Chris Heinonen
The Best 4K TV on a Budget

After spending 120 hours testing TVs in 2017 and 2018, we think the TCL 5-Series, available in screen sizes from 43 to 65 inches, is the best budget TV, striking the right balance between performance, ease of use, and affordability. It delivers a good-looking image with a great native contrast, it has our favorite streaming platform built in, and it includes features like Dolby Vision and wide color gamut support that are less common in the budget category.

31 Oct 18:09

Ya(cht) gotta love the Web

by Doc Searls

A giant yacht was anchored just outside the harbor in Santa Barbara for much of this past week:

Among its impressive features (though not especially visible in this, my shitty photo) is the helicopter on one of the aft decks.

I wanted to know exactly what this thing was, so I watched local media for clues, which did not forthcome.

But it didn’t matter, because we have the Web. And search engines. So I did an image search for super yacht helicopter pad and found an exact image match with this Robb Report on the Pegasus VIII, which is a charter vessel for hire at many links. Says this one,

The 255.91ft /78m Custom motor yacht ‘Pegasus VIII’ was built in 2003 by Royal Denship and last refitted in 2011. This luxury vessel’s sophisticated exterior design and engineering are the work of Espen Oeino. Previously named Pegasus V her luxurious interior is designed by Zuretti and her exterior styling is by Espen Oeino.

ACCOMMODATION

Pegasus VIII’s interior layout sleeps up to 12 guests in 6 rooms, including a master suite, 2 VIP staterooms, 2 double cabins and 1 twin cabin. She is also capable of carrying up to 24 crew onboard to ensure a relaxed luxury yacht experience. Timeless styling, beautiful furnishings and sumptuous seating feature throughout to create an elegant and comfortable atmosphere.

Pegasus VIII’s impressive leisure and entertainment facilities make her the ideal charter yacht for socialising and entertaining with family and friends.

PERFORMANCE

She is built with Steel hull and Aluminium / GRP superstructure. This custom displacement w/ bulbous bow yacht is equipped with an ultra-modern stabilization system which reduces roll motion effect and results in a smoother more enjoyable cruising experience. She features ‘at anchor stabilisers’ which work at zero speed to increase onboard comfort at anchor and on rough waters. With a cruising speed of 13 knots, a maximum speed of 145 knots† and a range of 7,000nm from her 435,700litre fuel tanks, she is the perfect combination of performance and luxury.

INTERIOR DESIGN

The Party deck features a Salon with a raised dancing area and a Jacuzzi on the exterior deck.

AMENITIES

At anchor Stabilizers , Gym, Jacuzzi (on deck), Helicopter Landing Pad, Swimming Pool, Movie Theatre, Beach Club, Childrens Playroom, Dance Floor, Swimming Platform, Air Conditioning, Dip Pool, Underwater Lights, Massage Room, Piano, Air Conditioning, Stabilizers at Anchor, WiFi connection on board, Deck Jacuzzi, Gym/exercise equipment

SPECIAL FEATURES

Drydock for custom tender which can be flooded when tender is out to form a 12m swimming pool with underwater lighting and steps.

Nice to know a little of what’s up for the .0001% of us.

† I believe there is a missing decimal here. The world’s fastest yacht clocks in at 70 knots.

31 Oct 18:09

"Content and language form a certain unity in the original, like a fruit in its skin."

“Content and language form a certain unity in the original, like a fruit in its skin.”

- | Walter Benjamin
31 Oct 18:09

A scene from “The Lobster.” Mr. Farrell said he hadn’t a clue...



A scene from “The Lobster.” Mr. Farrell said he hadn’t a clue what he was doing in that film.

(via Colin Farrell and the Art of the Small Comeback - The New York Times)

31 Oct 18:09

My part in the battle for Open (universities)

files/images/15294323060_7621ded5df.jpg

Martin Weller, The Ed Techie, Nov 01, 2017


Icon

I didn't get a chance to see Martin Weller at ICDE last week but I'm still able to enjoy his throughts from the cconference in this post. It's a nice rethinking of his role in the promotion of open, and of large institutions like the Open University in the open learning ecosystem. Some of the thingss he sees as important: reclaiming the history of 'open' (it has, indeed, been appropriated and commodified); redefining what is meant by an 'open university'; advocating for use (as oppozsed to production) of OER; and examining hypotheses around OU course production. 

[Link] [Comment]
31 Oct 18:09

The 3 foundations of Lean UX

files/images/ospedale_maggiore_milan_three_windows_carved_with_relief_wellcome_v0030913_crop-d373ceaaf690ce8042587b7653b3f1b9.jpg

Josh Seiden, Jeff Gothelf, O'Reilly, Nov 01, 2017


Icon

Reading this post made me wonder what the foundations of 'lean learning' would be (no doubt soome will 'invent' it; it's easy enough to follow the template set out in this article). The three foundations are; user experience design; design thinking; and agile software development. It reflects a focus on outcomes, not preroduct, and a development method based on conversation and collaboration rather than planning and documentation. "Lean UX values making over analysis. There is more value in creating the first version of an idea than spending half a day debating its merits in a conference room."

[Link] [Comment]
31 Oct 18:09

Fact checkers use this method to spot sketchy info

files/images/magnifying.PNG

Carrie Spector, Futurity, Nov 01, 2017


Icon

This post summarizes a Stanford History Education Group (SHEG) report suggesting that fact-checkers more reliably assess article than professional hostorians and Stanford students. The assumptions going in were absurd: "“Historians sleuth for a living... Evaluating sources is absolutely essential to their professional practice. And Stanford students are our digital future. We expected them to be experts.” Anyhow, the fact-checkers used this one weird trick: checking other sources. "The fact checkers read laterally, meaning they would quickly scan a website in question but then open a series of additional browser tabs, seeking context and perspective from other sites. In contrast, the authors write, historians and students read vertically, meaning they would stay within the original website in question to evaluate its reliability." 

[Link] [Comment]
31 Oct 18:09

CC and ME

files/images/original-open-ed-mooc.jpg

Helen DeWaard, Five Flames 4 Learning, Nov 01, 2017


Icon

Helen DeWaard writes, "After viewing the conversations between David Wiley and George Siemens for the #OpenEdMOOC (Week 2 Part 1Part 2 and Part 3) it becomes clear as mud that copyright and Creative Commons licensing has an impact on my work as an educator." I don't think that was the intend of the course (though I confess that the result of my own conversations withDavid Wiley has also been to leave things clear as mud). DeWaard writes, "I’ve crafted a video (AKGTC and CC) to encourage teachers and students to use and apply CC attribution and licensing to their creative works." Fair enough, though I'm not a fan of littering my work with advertisements for Creative Commons. Doug Peterson responds with thoughts about his own approach to licensing. He also points to a case of overzealous enforcement.

[Link] [Comment]
31 Oct 18:09

The Three Fundamental Moments of Podcast's Crazy Rise

files/images/Podcasting.jpg

Nicholas Quah, Wired, Nov 01, 2017


Icon

Doc Searls is quite right to complain about this article in Wired ostensibly about the history of podcasting. It fails, as he notes, to mention Adam Curry aand Dave Winer, and seems to get the relation between "podcast" and "RSS feed" backwards  - a podcast is an RSS feed (one that contains references to MP3s as enclosurfes), so it doesn't make sense to talk about "the first mainstream podcast to have an RSS feed". My own contribution, 2003's Ed Radio, has even been excised from the Wikipedia page, but I've long since gotten used to that. I am enjoying the renaissance of podcasting, but wish professional magazine writers would preserve some semblance of accuracy in reporting.

[Link] [Comment]
31 Oct 18:08

Funko Isn’t Lying About These SAGA Funko Pop Figures

by Eric Diaz

Aside from The Walking Dead, one of the biggest hits to ever come out of Image Comics is Brian K. Vaughan and Fiona Staples‘ fan favorite series Saga. First published by Skybound Entertainment back in 2012, and still going strong today, Saga is the epic sci-fi/fantasy story of Alana and Marko, two lovers from long-warring alien races, as they flee authorities from both sides of a massive galactic war. Traveling with their newborn daughter, Hazel, the pair encounter astonishing aliens, fearsome bounty hunters and a host of allies and enemies alike as they try and keep their new family safe.

Now the characters from Saga are the latest comic book icons to join the Funko family. Starting in February 2018, Saga fans will be be able to pick up Pop! vinyl figures of characters such as Lying Cat, Alana, Marko, Prince Robot IV, and The Will.

Fans will be able to purchase a bloody version of The Will as a chase variant, a rarity of 1-in-6. Also, Izabel the ghostly babysitter will be available as a Hot Topic exclusive, and Lying Cat will have two different variants — a bloody version, available at your local comic book shop and a pink version, available only at Barnes & Noble stores.

Saga is one of the wildest and most inventive comic book series of the 21st century, proving that Runaways and Y: The Last Man’s Brian K. Vaughan was anything but two-hit wonder. With the series quickly approaching its 50th issue, Saga fans will want to celebrate their love for all things Alana and Marko with these adorable Pop! figures. You can check out the entire Saga wave one below in our gallery.

Are you as stoked as we are to see the characters of Saga get their own adorable Pop! figures? Be sure to let us know in the comments.

Images: Funko

See more Funko toys!

 

31 Oct 18:08

BIBIBOP Asian Grill [Flickr]

by vanderwal

vanderwal posted a photo:

BIBIBOP Asian Grill

I'm at BIBIBOP Asian Grill! 4sq.com/2rAjSM8

31 Oct 18:08

The importance of compression when learning maths

files/images/6992705091_d4b1aacf34.jpg

Maggie Hos-McGrane, Tech Transformation, Nov 01, 2017


Icon

This reads to me like pseudoscience. "The process of compression happens because the brain is a highly complex organ with many things to control, and it can focus on only a few uncompressed ideas at one time." Yet it comes, apparently, from Jo Boaler, a Professor of Mathematics Education at Stanford University. Maggie Hos-McGrane expands on the thoeory: "The brain can only compress concepts and not rules - hence students who learn the rules have to struggle to hold onto them - they are unable to be compressed, organized and filed away for later use." This doesn't make sense to me. The brain is not a computer. I'm open to the possibility that I'm wrong here, but I really doubt it.

[Link] [Comment]
31 Oct 18:08

What Is Success and Failure in Schooling?

files/images/success.jpg

Larry Cuban, Nov 01, 2017


Icon

Three part series (part one, part two, part three) that ought to be called "What are success and failure in learning?" The first part looks at different definitoons of success and failure in business and the military. You can skip this part. The second part talks about "success" in hospitals (about which I don't think Americans are in a position to judge) and begins the discussion of schools. It comes together in the third part. "If only policymakers, practitioners, and parents agreed upon what 'success' and 'failure' mean for schooling," he writes. This is in my view the single reason why most education reserach is futile. There are different points of division: what counts as success accordubg to left or right; measures of success applied to all or some (usually lower-class) schools; and the changing mission of tax-supported schools. 

[Link] [Comment]
31 Oct 17:58

Reasons to be blogging ... 1 2 3....

files/images/pants-1255847_1280.jpg

Steve Wheeler, Learning With es, Nov 01, 2017


Icon

This is a short set of five reasons why regular blogging is a good professional practice. I can attest to them. When I'm blogging I'm at my best - it forces me to keep current and focus my thoughts. I'm less concerned about cultivating community than Wheeler mostly because I want people to create and join their own communities. 

[Link] [Comment]
31 Oct 17:54

Constructive pedagogy

by Julie Moronuki

I mentioned the other day on Twitter that I have had a new idea for a Haskell beginner’s book.

There were a lot of things that bothered me during the writing of Haskell book, itches I didn’t get to scratch. I’m a person with a need to understand things, so I kept reading and pursuing those curiosities down a lot of winding garden paths until I felt I had reached better understanding.

I came around to the belief that a lot of the confusion I was having was related to just a couple of issues, and that most of those come about from the understandable urge to make Haskell seem normal to people who know other programming languages. We start doing things with strings and lists right off the bat (despite the fact that many of the Prelude functions for lists are partial functions and thus unsafe, which seems contradictory to our desire to get people to use Haskell because it’s safer and more correct). We have people write fibonacci and factorial functions to understand recursion; we then get into map and folds and other standard library functions that have recursion built in.

From that foundation, then we go on to teach Functor by saying fmap is a generalization of map – which seems (to me at least) to imply a recursive nature to fmap that isn’t there, that makes people think about containers (like lists) when they think and talk about functors.

All of this is actually a lot of novelty – potential infinities, nonstrictness and bottom, typeclasses, algebraic operations with odd names like functors, and … why do we even want to generalize this thing, what does that give us? And we tend to present all this together, as if typeclasses were just a regular way of doing things and didn’t need their own justification.

And I think in that urge to make Haskell not seem like a radical novelty (although there are languages more radical than Haskell), we try to pretend that thinking about abstractions and infinities is the normal way people think.

So, what I wanted to do is separate some novelties from other novelties and take them one by one. You can learn what a functor is without learning about map or about typeclasses. Then later you can combine an understanding of typeclasses and an understanding of functors and see what a Functor typeclass constraint, for example, on a function buys us.

One of the things we like about Haskell is the ability to destructure a problem into relatively small portions that we can reason about individually and then compose them predictably into a larger program. Yet we (and I do mean to include myself) don’t usually teach Haskell that way; we teach by refinement rather than construction.

Anyway, so I had an idea for how to do this as a book, or perhaps a series of short books, that would motivate and explain the novelties of Haskell somewhat independently from other novelties. I do not know if this is a good idea or if it will be broadly appealing to other people, but I do know I’ve learned a ton just thinking about it and writing an outline of how to do it.

And I did manage to sell Chris Martin on the idea and now we’re starting to structure this into a series of video courses (which may, if it goes well, turn into the book(s) I originally envisioned).

31 Oct 17:53

Twitter Favorites: [Lesley_NOPE] Even mystical assassins fall asleep on the TTC. Don’t judge.

FrankenSleeve @Lesley_NOPE
Even mystical assassins fall asleep on the TTC. Don’t judge.
31 Oct 17:53

Learning a craft

by Chris Corrigan

In his book Sea Room Adam Nicholson describes meeting John MacAuly, a Hebridean boat builder who has just built a boat for him to sail across the Minch to the Shiants. 

“And do you think I’ll make a good sailor of her”

“If you had another life,” John said. 

“Ah yes,” I said reeling a little. “I suppose one needs to know these things instinctively.”

“No,” he said. “You need to be entirely conscious of what you are doing and why you are doing it.”

31 Oct 17:53

A tutorial on packaging up your Python code for PyPI

by Brett Cannon

On Wednesday, October 25th, I gave a workshop at PyLadies Vancouver on how to package up your code and put it up on PyPI. Since this workshop came about by request, I figured others out there who couldn't attend might be interested in the same information. (The official documentation for packaging in Python can always be found at packaging.python.org.)

Building versus installing

To start, I want to make clear exactly what I mean when I say I'm going to talk about "packaging up" your code. Unfortunately the term "package" is an overloaded term in Python as it means both a noun for a namespace that you put modules into as well as the verb of bundling up some code for easy distribution; in this post I'm going to be talking about the latter. Now I will focus on the use-case of putting code up on PyPI, but the tools outlined and general guidelines laid out below can also apply to private distribution of library code.

I also want to be clear that I'm saying "library code" on purpose as this isn't about distributing an application. For instance, this post is not for talking about how to deploy to the cloud using a requirements.txt file or shipping a self-contained zip file using zipapp for a CLI app. Put another way, I'm talking about the things pip will install for you when you are creating your app.

Build artifacts

There are two file formats that library code can come in for distribution: wheels and sdists. A wheel is a specially-formated zip file whose contents are pre-built, including extension modules. What this means is that if pip can install the appropriate wheel for your Python interpreter and platform then all it really has to do is unzip the wheel file and copy the files to the right location; no compilation required (which makes installation really fast)! It also means that pip can just cache the wheel for later use since everything is ready to go for installation on your machine. And this support for pre-built wheels on PyPI extends even to Linux thanks to the manylinux project, so that the three major operating systems are covered.

But there is a drawback to wheels when extension modules are involved and you're the one providing the wheels: you can end up needing to make a lot of wheels to cover the majority of platforms and Python verions people use. For instance, if you look at the download files for numpy you will notice they were nice enough to provide 22 different wheels. These cover different combinations of Python version, ABI support, OS, and CPU architecture. But there is always a possibility you will be on a platform that doesn't have a wheel available or as a package maintainer you may not have a way to provide a wheel for a certain platform (e.g. Alpine Linux is not compatible with manylinux wheels).

For those situations where a wheel isn't available, you can turn to a source distribution (a.k.a sdist). An sdist has no real specification, but basically it's a .tar.gz file which contains all the files necessary to build a wheel (note to Windows users: I know it's a slight pain that the format is usually .tar.gz and not .zip, but don't forget you can always use python3 -m tarfile to work with a .tar.gz file). What this means is that if pip can't find a wheel that works for you, it can grab the sdist instead and build a custom wheel just for you.

How to package up/build your code today

When it comes to packaging up your library code into wheels and an sdist, whether there are extension modules in your code determine what the best build tool is for you to use.

Pure Python code

If your library only contains pure Python code, then you should use Flit. While people have traditionally used setuptools for this, it's typically overkill when all you're doing is packaging up a bunch of .py files. Flit does a good job of leaning on practices you are probably already doing (e.g. keeping your source code in version control, providing a docstring for your package), thus minimizing how much you need to provide in a Flit-specific manner.

Because Flit is so straight-forward to use, there really isn't any magical bit of advice I have to provide for using it beyond make sure to read the documentation on the flit.ini file as it has more fields than shown in the simple example on the documentation home page.

Extension modules

If your library happens to contain at least one extension module, then Flit won't work for you as a build tool. In this instance you will want to use setuptools. You can follow the current tutorial on packaging.python.org. The one piece of advice I have is don't forget that you will probably want 3 files in the end for your packaging configuration:

  1. setup.py
  2. setup.cfg
  3. MANIFEST.in

If you want to be a bit more adventurous, enscons is another build tool for extension modules that relies on SCons. This has a perk of using a more general build tool to drive building extension modules, which leads to benefits like only rebuilding when source files have changed.

What the (near) future holds

At this point I should admit that my earlier definition an sdist was woefully under-specified. When I said an sdist "contains all the files necessary to build a wheel" what I should have mentioned is that implies there's a setup.py file included in the sdist. This is because setuptools has long been the de-facto build tool for the Python community, leading to pip and other tools to run python setup.py bdist_wheel to build a wheel from an sdist (by injecting setuptools the wheel package). This isn't much of a specification, though, as it implicitly means you're expecting things to operate however setuptools decided things should operate.

To decouple the Python packaging ecosystem from setuptools, two PEPs have been written and accepted. PEP 518 defines a pyproject.toml file which lets package maintainers specify what build tool(s) they depend on (it also allows build tools to store configuraiton information in the pyproject.toml file as well). PEP 517 provides a way to specify how to execute the build tool. Combined, these PEPs let a package specify how they want to be built, making setuptools no longer be the de-facto/only build tool people use and opening the ecosystem up to put alternative build tools like Flit on equal footing.

At this point both PEPs are waiting to be implemented by various tools. The work has begun, though, so hopefully it won't be too long into the future when being able to choose the right build tool for your project will be possible.

31 Oct 17:53

5 Lessons from Implementing Personal Learning

Matt Doyle, Education Week, Oct 31, 2017


I'm thinking this is "personalized learning" because although efforts are made to accommodate the individual, all students still learn the same lessons and are expected to achieve the same outcomes. That said, here are the five lessons (excerpted and quoted):

  • learn more about who an individual student is today 
  • design "personal on-ramps" to content
  • a unique construct can be created that best fits each student's needs
  • creation of a culture of student agency at every level
  • use a variety of intervention tools early and continuously

What strikes me about this approach is how labour-intensive it is. Sure, this can be accomplished if you remove a lot of the traditional overhead in teaching, from doing the paperwork to delivering instruction to marking tests. But the bulk of the individualization is still being done by hand by the teacher.

[Link] [Comment]
31 Oct 17:53

NewsBlur Blurblog: I haven't experienced imposter syndrome, and maybe you haven't either

sillygwailo shared this story from Rachel Smith.

I haven't experienced imposter syndrome, and maybe you haven't either

In the course of my day at work I will often wonder the next bug is the bug that will finish me. I am acutely aware of and could instantly list for you 15 things about the CodePen codebase that I should probably know more about to do a better job of my role. Sometimes people write in questions about Vue.js, and I feel bad about not being able to answer them straight away because I’ve never really used it. The second conference I gave a talk at I wondered how the hell I was sharing a stage with Chris Coyier.

I have never felt like an “imposter”.
I have always deserved to be here, I’ve worked hard.
I don’t suffer from a “syndrome”.
Identifying the gaps in my knowledge and being aware of what I don’t know is part of my vocation.

In recent years it’s become trendy to discuss how we all apparently suffer from this imposter syndrome - an inability to internalize their accomplishments and a persistent fear of being exposed as a “fraud”.

I take two issues with this:

  • it minimizes the impact that this experience has on people that really do suffer from it.
  • we’re labelling what should be considered positive personality traits - humility, an acceptance that we can’t be right all the time, a desire to know more, as a “syndrome” that we need to “deal with”, “get over” or “get past”.

If you really can not recognize and internalize your achievements, and you do spend your days gripped by the fear that you will be found out as a fraud, if this is causing you problems in your life and career because your fears and irrational beliefs are holding you back from what is obvious to other people, then you’re suffering from a real debilitating problem. If this sounds like you I would suggest getting some professional help or at least talking to someone about how you can minimize these self-limiting beliefs. Despite what you may read, please know you aren’t alone, but we definitely aren’t all suffering in this manner, and there’s no reason for you to have to suffer either.

When I see my wildly successful, senior developer peers talk publicly about how they deal with imposter syndrome I can see the intent behind it. They want to be approachable, relatable: "internet famous senior devs - they’re just like us!”. I agree that it is important to highlight the ways in which we are all the same because it drives the message home that any dev (given they have the time and access) could achieve the same level of success. I just really wish we could do this without labelling normal and healthy moments of self doubt with “imposter syndrome”.

Of course we all have worries that we aren’t equipped to do our job on any given day, and we’re aware we don’t know as much about a topic as the next dev. Just think about what you would be like if you didn’t, you’d be an arrogant asshole, have huge blindspots, and would probably be a nightmare to work with! If I could nominate one common trait of the most accomplished developers I know, it would be their constant awareness of the “gap” in their knowledge and willingness to work towards closing it. Do these people doubt themselves? have moments questioning whether they deserve to be where they are? Of course they do! It is a key part to being a humble, likable, open-minded developer. They aren’t “suffering” from a “syndrome”.

I kind of wish we could talk about how we all experience:

  • humility’s advantage
  • the beginner’s mindset
  • the motivation that comes from self doubt

They aren’t nearly as sexy sounding as imposter syndrome, but at least we wouldn’t be labelling normal and healthy feelings like they are some sort of psychological affliction!

If you’re a new developer and you’re worried about suffering from this so called syndrome (but you’re not crippled by fear, see above) please know:

  • it’s going to be okay
  • you are normal!
  • worries about not being good enough are natural, we all have them, and they keep us on task and aware of what we might need to learn next
  • as you grow in experience, you will close the gaps in knowledge, you will spend less of the day worrying about what you don’t know, and it will feel great.
  • You will never know everything. The self doubt will never go away, but staying humble is the key to growth, and one day you’ll feel more comfortable with these uncomfortable feelings 😃

Love, Rachel - “A successful Senior developer - She’s just like you!"

31 Oct 17:52

NewsBlur Blurblog: I need you to be better

sillygwailo shared this story from Ruhee Dewji.

Originally posted on Facebook, October 16th, 2017

Congratulations, everyone: we’ve once again placed the entire burden of patriarchal culture on the people who routinely experience the worst of it. With this “me too” campaign, this “speak up if you’ve experienced sexual harassment or assault” tidal wave, as if none of us have ever spoken up before, we force victims to relive these awful moments again and again while men go “Omg wow I had NO IDEA!” Listen—if you had no idea, you’re very wilfully ignorant. We are telling you. We’ve been telling you every day and you have not listened. If you need all of Facebook to tell you this is happening before you consider believing us, you are not an ally. And no, I don’t think your nicely worded statuses about how you believe us and are sorry are particularly helpful unless you follow that declaration with real action.

Listen to me. Every man reading this: You have shitty friends. You have probably been shitty. I don’t want to hear about how you’re a nice guy. Nice guys do shitty things too. I am in constant proximity to men who have been predatory or derogatory towards others or to myself. I am friends with them, I am in bands with them, I see them every day, I watch them proclaim themselves feminist. Some of them are reading this status thinking that they sure are glad THEY’RE not one of those men.

YOU, men of my Facebook friends list, men surrounding me in my everyday life: you have laughed when someone said something demeaning to me. You have stood idly by as I got catcalled. You have looked at me skeptically when I describe what it’s like to walk on the streets alone at night. You have made awful comments about other women and told me I couldn’t take a joke when I finally spoke up. You have rolled your eyes and commented about “excessive political correctness” when I angrily say that your joke was shitty. I have been in a room full of men discussing why Jian Ghomeshi might be an okay guy; I have been in a room full of men discussing why putting on shows involving women is good because people want someone to look at. None of you spoke up about it. None of you even said “Hey, maybe don’t say that.” Forgive me if I don’t think that your nice sentence or two is helping, because I’ve seen so many of you have the chance to act on those nice sentiments, and none of you did. Instead I watched you laugh and clink glasses while I stayed silent, debating whether speaking up this time would make me “the bitch who can’t take a joke,” or whether the men I didn’t know very well would become violent if I said anything.

I’m tired of this. Yes, me too. Yes, we’ve all been harassed or assaulted. Yes. You should know that. I don’t need your heart reaction. I need you to tell your shitty friends to stop being so fucking shitty. I need you to stop making jokes about how our friend who got harassed at a show was probably asking for it because she’s so friendly, and I need you to stop freely touching all your non-male friends when you’re hanging out with them like you’re entitled to their bodies, and I need you to be better. I need you to make other men better. I need you to require less labour from your friends who are not men and I need you to go out there and do the hard job of speaking up against your bros. Watch your friends when you’re hanging out. Watch. When your dude friend makes a stupid comment and your non-dude friend kind of clams up, or frowns and then tries to rearrange their face into a normal expression, or exhales a little and says nothing? Yeah, there’s your chance. Fucking do something this time. We’re exhausted. Just believe us for once.

(My language is probably woefully insufficient here and please tell me if I have fucked it up. Also, people of all genders are impacted negatively by the patriarchy, men too. I just can’t speak on a personal level about many of those things, and would never want to pretend to speak for everyone else. What I’m ranting about applies to many people: cis women, trans folks, non-binary folks, and many more.)

Posting this is terrifying, especially on an unfiltered friends list. Imagining how angry people (men) might get is terrifying. Knowing I might lose a friend because they are defensive is shitty. But here you are reading it and here I am, always afraid, because that’s how so many of us have to live.

31 Oct 17:30

NewsBlur Blurblog: Erik Eriksson announces bid for mayor of Courtenay

sillygwailo shared this story from decafnation.

The 2018 municipal election campaign got a jump start this week when Courtenay Councillor Erik Eriksson told Decafnation that he’s running for mayor.

Eriksson is the first Comox Valley candidate to formally announce his campaign.

While most incumbents and potential newcomers are still mulling the pros and cons of committing to a four-year term that won’t end until 2023, Eriksson said he couldn’t wait to start building support.

Eriksson said it wasn’t his intention to contest incumbent Mayor Larry Jangula for the mayor’s chair, but he also couldn’t wait for Jangula to finally decide if he’s retiring or seeking another term. Jangula has hinted at stepping down next year.

“I just had to get my campaign started,” Eriksson said. “It takes time to put together a successful support team for the mayor’s office.”

Voters go to the polls on Oct. 20 next year. The official nomination period for candidates begins on Sept. 3, 2018 and runs for 10 days.

Eriksson, who begins his sixth year on Courtenay City Council in 2018, is running on a simple platform: building partnerships.

He believes people who live in the region’s three municipalities and three unincorporated regional districts have common goals, and that by working together they can be more effective.

Eriksson isn’t using the “A-word” (amalgamation) because that’s a long and complicated process, which Valley voters have rejected in the past. But he believes there’s ample space for municipalities, the regional district, K’omoks First Nation and CFB Comox to share more services.

It’s one of his best skills, he believes, to resolve problems by helping people to find a common purpose.

“It’s amazing how effective you can be if you just talk … and discover that common ground,” he said.

Eriksson points to his support for the Committee to End Homelessness, the Community Health Network, the Food Bank and the Courtenay Youth Music Centre  as examples.

If elected, Eriksson would apply those skills to bring the council together.

And he’s motivated by a single purpose, “to make things better for people who don’t have it so good,” he said.

Some candidates like to work on building campaigns privately, and announce at the last minute. But Eriksson didn’t hesitate to publicly announce his candidacy early.

“It’s going to take time to show voters all the ways we can work better through partnerships. I want to use the credibility I’ve built to champion this cause,” he said.

 

31 Oct 17:30

Blogs I read

by Tom MacWright

I still write a blog! And I read blogs too: though many other medias have arrived and many already peaked and burned out, blogging is still a unique chance to read the writing of subject matter experts, written in an environment of near-total freedom, and on your own terms, using the RSS reader you like - I use Feedly, with any level of privacy. I’m planning on eventually switching to a desktop RSS reader to free myself from even needing an intermediary. Unlike Twitter and most new networks, the blogs you read are your own business. Whether you liked or didn’t like a blog post, or even whether you read one - there’s no social pressure to give any indication. There’s no gamification, and almost no ‘metrics’ in the modern marketing audience-analysis sense.

Visual

  • Typewolf’s Site of the Day always includes a nice screenshot of some website using some interesting font. It keeps me aware of where design is going in its many niches.

News

  • PressThink is the best media criticism on the Internet - it’s incredibly thought-through and painfully accurate.
  • Bellingcat is deep news and extraordinarily detailed descriptions of how that news came to be, with internet research, image analysis, and context clues.

Technical

People

  • tecznotes Mike Migurski’s very long-running blog is sporadically updated, but his projects, which currently have a lot to do with gerrymandering and maps, are always fascinating.
  • Zach Holman has a very candid writing style and an interesting viewpoint on the tech industry, having written frankly about, for instance, getting fired from GitHub.
  • Quinn Norton’s writing has always captivated me. I subscribe to her Medium blog via RSS.
  • Aaron Straup Cope’s blog, though infrequently updated, is always poetically written and pithy.

You can follow all these as a collection on Feedly or you can download them as an OPML file and load them into any blog reader software. Yep, that’s right - there’s a standard for sharing lists of blog subscriptions, just like there are standards for reading blogs. The early web was good at that kind of thing in a way that the new web isn’t.


  • Thanks to Rebecca Williams for suggesting this topic.
  • This illustration’s style is totally cribbed from 37signals. I’m trying to get comfortable with drawing cartoon people.
31 Oct 17:21

Anaconda 5.0

by Rui Carmo

Anaconda has been my default for all non-web stuff for quite a while (but usually installed via pyenv, since I often need to switch runtimes). And they now integrate with Microsoft Open R and MRAN, which means data scientists can have their cake and eat it too.

31 Oct 17:21

"We must never regard as ‘normal’ the regular and casual undermining of our democratic norms and..."

“We must never regard as ‘normal’ the regular and casual undermining of our democratic norms and ideals. We must never meekly accept the daily sundering of our country — the personal attacks, the threats against principles, freedoms and institutions, the flagrant disregard for truth or decency, the reckless provocations, most often for the pettiest and most personal reasons, reasons having nothing whatsoever to do with the fortunes of the people that we have all been elected to serve.”

-

| Jeff Flake, Address to the US Senate, 2017-10-24

We must never regard as ‘normal’ the regular and casual undermining of our democratic norms and ideals. 

31 Oct 17:21

"Life is a curve, not a straight line."

“Life is a curve, not a straight line.”

- | Roger Cohen, If All Else Fails
31 Oct 17:21

"It is time to recognize that the American political process and marketplace for ideas are under..."

“It is time to recognize that the American political process and marketplace for ideas are under attack, and that reinvigorating the First Amendment is vital. First, it is an imperative that law enforcement and lawmakers do more to protect journalists and other public speakers from harassment and threats. Cyberstalking is a crime. And as the Supreme Court has made clear, threats of violence are not protected speech. A country where speaking one’s mind always results in death threats is not a country that can be said to be truly free.”

-

| Tim Wu, How Twitter Killed the First Amendment

A country where speaking one’s mind always results in death threats is not a country that can be said to be truly free.

31 Oct 17:20

The playbook for reimagining Higher Education

files/images/1_8c-R4tj2wvLeETE5EZPzZw.jpeg

Patrick Brothers, Medium, Oct 31, 2017


Icon

This article tells us very little about this new initiative. Minerva is a startup 'university'. The "curriculum focuses on 'practical knowledge'. It "uses a novel technology platform to deliver small seminars in real time; and it offers a hybrid residential model where students live together, rotating through seven cities around the world (San Francisco, Seoul, Hyderabad, Berlin, Buenos Aires, London, Taipei)." The post describes a just-launched book about the initiative, which is unfortunately not open access. But to me, the really interesting thing isn't in the article at all: the book is co-edited by Stephen M. Kosslyn, yes, that Stephen Kosslyn, the cognitive psychologist who wrote the book on mental imagery, and much more besides. So maybe there's something to this project after all.

[Link] [Comment]