Rite Press Review

I love coffee. I love making coffee. Hand ground with a French grinder from the 40s or in my press-a-button Capresso I love fresh grounds. Kona? Yes, please. Deathwish – you know I’ll drink it. And I love the gadgets for brewing coffee even more.
I was skeptical about the AeroPress but I grew to rely on it as my daily coffee maker. The stainless filters have taken some getting used to but I won’t go back to paper. I have two French presses but I can’t use them. We have old pipes so I can’t wash grounds down the sink, and I don’t want to have to scrape grounds out of a glass carafe when there are other easier options. I have a hybrid of the French and AeroPress called the American press, which has this grounds-holding module with stainless filters on either end that is pressed through the hot water. Neat!

So I was super excited when I heard about the Rite Press. It’s a French Press style unit with a removable bottom; the idea being that cleaning a French Press is the worst part of using one, and I agree. So I super-earlybird pledged my $30 for a 1/2 liter in black and waited. Broad-strokes I think the Rite Press team over extended themselves and didn’t take into account that many of the Chinese factories that KS creators use are very unreliable, especially as production numbers increase in multiples of the expected order. They also made the mistake of offering the press on garbage kickstarter Indiegogo. Currently they’re experiencing a significant delay in 1L press production due to a filter manufacturer error, then changing to a new manufacturer. 1/2 L presses will suffer the same fate eventually, I’m not sure where they are on shipping these units.

But it did arrive and I have the unit to review. First the packaging is very nice. I did not have any issues with the powder coating; several commenters did. The steel button that is intended to attach the timer to the unit had fallen off and was inside the press when I opened it. I’m not sure that’s the worst thing as the timer is on the same side as the spout and the while thing seems like a silly idea. Perhaps if they had incorporated a handle it could go on the handle side. As it is, I’m not sad about it, but commenters are. The thermometer is … weird. I checked it against my CuisinArt PerfecTemp kettle and the needle didn’t get much past the third blue segment. My digital thermometer indicated the water was at 200F so I’m not sure what temp Rite Press thinks coffee should be brewed at. I don’t plan to really use it, but this was another place where the Rite team could have made better decisions.

When I unscrewed the bottom to clean it before using I had a little difficulty with the threads. That has resolved itself and I’ve since used it dozens of times without any leaking or other issues. Others are reporting poorly machines threads that make the bottom difficult to seat.

A pleasant surprise is the rubber sleeve that surrounds the middle of the unit. I believe when I pledged these were listed as vacuum sealed. That’s probably not the case as the carafe heats up quickly, so the sleeve is a nice compromise.

All in all it meets my expectations as a brewing device. Grounds go in, water goes in (and doesn’t leak out), the filter filters out the big chunks. The bottom is easy to remove and I can dump the grounds in the compost; very little of the grounds end up washed down the drain.

But can I recommend it? Not really. At $30 it was a good deal. $45 or $50 seems reasonable (having broken more than one glass carafe, this is a long-term savings for me). $60 is a bit much (and the site says the MSRP is $100), especially considering the QC issues they’ve been having. Consider that a 1L Bodum Brazil (which I have) is about $20. Want a “classic” style French Press with the metal bands? The Chambord Press is about $40 (replacement glass is roughly another $20).  If you want a stainless/metallic carafe they’re roughly $30.

If you have a Rite Press, or have one “on the way” I’d like to hear from you.

 

[N.b. there are some folks who complain that the piston doesn’t compress the grounds and that a watery, coffee-grounds mess spilled on the counter. It’s not an AeroPress and the French Presses I have don’t allow me to press all the way to the bottom so I’m not sure where this idea came from. Just like with a French Press, you may need to pour off the remaining brew before cleaning. ]

Advertisements
Rite Press Review

REPAIRING DOC MARTENS SOLES, PT 2

The very briefest of updates: I think it worked! I’ve made a point of wearing these as often as I can over the past month. I especially made a point to wear them on the few wet days we’ve had. So far, no leaks from walking in rain and the sole appears to still be welded together. Of course I’ll update if any of that changes, but so far, so good.

REPAIRING DOC MARTENS SOLES, PT 2

I Need REST (APIs)

I’ve found a few sites over the last few months that are fast and reliable when all I need is an endpoint of any ol’ data to practice AJAX and dynamic data loading. Several sites will return fake JSON data, however, some of the sample sets can return so much data that the browser can’t handle it. The following sites allow for the four main operations, GET, POST, PATCH and DELETE (or Create, Read, Update, Delete/Destroy).

JSONPlaceHolder – this site is good if you’re trying to simulate a blog with comments. It can take a while for the response to come back but it’s been reliable.

ReqRes – All your basic CRUD operations but the data it returns is smaller. Good for user stores (and Pantone color sets).

Unfortunately those seem to be the only two that are geared toward this need. Two is a lot better than none, though.

When I worked on the Seattle Gun Violence Data Tracker we used data.seattle.gov which is part of a larger civic data project.

I found this amazing resource while searching for “sample REST API”: Public API Repo It doesn’t look like any of the APIs included will let users test all four of the core methods. But, this is the sort of site that will be useful for Python students the next time we get to the BeautifulSoup/data scraping section of class.

I Need REST (APIs)

Variables inside JavaScript Functions

“It doesn’t matter where I declare my variables, right? They just get hoisted….. right?”
~ what this developer had to be thinking right before they committed this code.
Not so fast. Let’s just do a simple test using the developer tools to see whether JavaScript hoists inside functions.

function testy(){
  if(testy===true){
    console.log("It's true! I'm testy!")
  } else { 
    console.log("I'm not testy today")
  }
  var testy = true
}

Before I go showing the answer, what do you think the console shows?

.

.

.

.

.

.

.

.

Screen Shot 2018-09-18 at 9.09.42 PM

 

So it looks like JavaScript does not hoist variable declarations inside of functions. Let’s double check that with a quick change.

function testy(){
  var testy = true
  if(testy===true){
    console.log("It's true! I'm testy!")
  } else {
    console.log("I'm not testy today")
  }
}

 

What happens this time? I won’t keep you in suspense like last time:

Screen Shot 2018-09-18 at 9.12.10 PM

 

And there you have it.

Variables inside JavaScript Functions

But Your Github….

Screen Shot 2018-09-14 at 12.10.57 PM

This is my github contribution chart as of today (github). Of the few recruiters who have looked at my account one of them said “it doesn’t look like you contribute much code”. As I’m heavily back into the job search process I thought I would take a moment to explain “gaps”.

  1. I don’t typically contribute tutorial code. I have occasionally done so. The Harvard CS50 class requires that I have github integration so I can submit assignments. Andrew Ward’s Complete React Training at Udemy requires updates to a github repo as he has us deploy to heroku. But for the most part I figure this is code that is a) not mine and b) readily available from the original tutorial.
  2. I did commit my solutions to the homework that was assigned while I was a teaching assistant at University of Washington for a Python class. These are my original solutions to the assignments which I used as a guide for helping students. I don’t consider them tutorial or code-along-project code.
  3. The large gray chunk in June and July represents tutorial-heavy study time as well as a couple weeks I took off to prepare for my significant other’s birthday (we rented a hall, it was catered and we had out-of-town guests; things needed managing).
  4. With my previous employer my team lead was in charge of squashing commits and merging with master branch. While my unmodified code was credited to my account he most often made subtle changes (and some not so subtle) before merging. As far as git is concerned those are his commits and it was a sticking point between him, our CTO and me.
  5. Most of my code experiments end up on Repl.it or Codepen. I don’t feel the need to also commit that code to version control.

So that’s it in a nutshell.  I do code daily as I’m working to master React and the ecosystem that surround that library, as well as improving my learning in Python. While I am learning a lot and improving every day, it’s not code I’m “proud” of nor does it demonstrate my capabilities, which is what I think git should be used for outside of its professional uses.

But Your Github….

Repairing Doc Martens soles, Pt 1

I didn’t think about making this a blog post before I started, so I “apologize” for not having before photos.

Here’s the story: I purchased a pair of 1461 Smooth shoes from the Doc Marten’s store in Seattle WA in 2016. NB: these are not “Made in England” and are not subject to their “For Life” guarantee, which they discontinued on April 1, 2018 [I wonder why…] These were assembled in Vietnam, though my previous Made in China 1461s (not purchased at a Doc Martens store) fell apart almost immediately and the sole was garbage).

I intended for these to develop some character, wear lines, scuffs, etc. which isn’t something I typically allow for my shoes. But I like Docs that look like they have a story, and I still intended to keep them cleaned (saddle soap) and black (Lincoln polish). It didn’t take long for that to come to an end as I realized one slightly-wet day that the sole had released from the welt and water was getting in. I figured that was more-or-less OK because I have stuff to fix shoes. The internet had some ideas but no one offered ideas that seemed like they actually knew; lots of anecdotal “evidence”. I decided to try my standbys.

What didn’t work: I scrubbed out the seam with an emery board then rubbing alcohol. First I tried Shoe-Goo, which I’ve had good luck with. Nope. I cleaned the opening again and tried E-6000. Still nothing. I even tried PVC cement (because Doc’s soles are reportedly a PVC material) and I might as well have done nothing.

So they became shoes for dry days only. Which means they were forgotten for several months and didn’t get into regular rotation. I’ve worn them for less than 30 total days, and almost all of those days have been dry.

Today I decided I needed to try to repair them. I went back to the internet and the advice was “if you don’t have a hot knife to weld the rubber sole and welt, they’ll never stick together.” Well I am a blacksmith so this is right up my alley. The photo shows all of the equipment I used: a MAPP torch (propane would be fine), a hacksaw blade and my trusty bathroom fan that I use to vent fumes away from me toward the open door.

CAUTION: This process involves burning plastic. There will be lots of smoke and it smells dangerous. You must have good ventilation. Ideally you will have a fan to pull the fumes away from you, and a place like a garage or shed where people can be out of the building while it degasses.

20180902_144750

The process is simple: clean the opening and gently try to pull it open wider. If the seam is weak, now’s the time to figure that out. My sole was detached almost the entire length of the instep. Use your non-dominant hand to open the seam (I put my thumb against the shoe and used my fingers to spread the seam).

Light the torch, heat the blade and insert it in one end of the seam. Let the seam slightly close around the blade. Pull the blade an inch or so along the opening. Remove the blade then pinch the seam closed. Repeat. Do this quickly and fearlessly – a little finger skin is a small price to pay for functional shoes! (Kidding, you do have to work quickly but be safe about it. I don’t think gloves will help here because this requires a fair amount of dexterity). I kept a wood block handy to rest the blade and to scrape off the rubber as it built up.

The end result is not quite a thing of beauty and I haven’t had a chance to wear them. I promised my girlfriend I would throw them away then had a change of heart because that’s super wasteful- look at these things! They look good from above, but the sides are a bit of a mess (the sole did not tear cleanly away from the welt, so that didn’t help the overall aesthetic). However, when I try to pull the seam apart it feels firmly stuck. I will update this when it rains and let you all know how well this worked.

20180902_15042320180902_150453

Repairing Doc Martens soles, Pt 1

Foundations of Programming: Python Class is in the Books

Last night we had project presentations for the Foundations of Python class I TA’d at University of Washington. To a person I was extremely impressed with their projects and the progress they made.

Overall the class was made up of people who had little to no coding experience. Some of these folks had never used their terminal before. Others had experience with R, SQL and GIS programs, but used them to solve specific problems rather than code out programs that were reusable.

I don’t remember all of the projects but these are those that stuck with me:

  • A neuroscientist who used Jupyter Notebooks to track comparative mortality due to Alzheimer’s Disease using CDC data
  • An applied math PhD candidate who plotted the collaborative-ness of various email and document networks in her department
  • One student used BeautifulSoup to scrape articles for information about cheese prices, then made a local data store that the user can update with their own findings. He did not call the data store ‘cheese_cellar’ – missed opportunity there.
  • A security specialist for a financial institution made a suite for determining if credit card numbers had been compromised. He wrote a script to generate fake, semi-randomized 24-character “credit card numbers” and “compromised credit card numbers” like those on the dark web. His final script then compared the two lists and outputted a “compromised” list and a second list of the remaining numbers. The cardholders on the first list would be contacted and security would try to find a common merchant that could be the source of the breach. He said security could use this second list to contact the issuers of those cards and the organizations could collectively trace the origin of the data breach. Very impressive for someone whose previous experience was in BASIC.
  • A project manager automated a task wherein she has to normalize file names every month for her org’s data processing group. Typically this task took three or more hours and now takes seconds. She even accounted for unique files names that didn’t fit the pattern of 95% of the files she has to rename. I referenced Automate the Boring Stuff with Python and she replied “that was my inspo for this project… that and not having to do this by hand anymore”.

My takeaways from the class are several. First I’m impressed with how accessible Python is, not just to write but in the suite of tools that are available. For most students the biggest hurdle was learning how to read HTML so they could figure out which elements to target with BeautifulSoup. I admire the creativity of the folks who weren’t solving a work problem, and I’m awed by the amount of work that the work-problem-solvers were able to automate.

If you’re interested in Python programming, I highly recommend the text for this course, Python Programming for Absolute Beginners. The style is approachable and I didn’t find the pace overwhelming. If you make a Python project, let me know in the comments!

Foundations of Programming: Python Class is in the Books