How to use SheetJS XLSX with Angular 4 Typescript in the browser

It took me a while to figure this out, so I’ll share my code here.

You will need the `file-saver` and `xlsx` npm packages.

There are two important parts:

1. Make sure you specify the `meta` section in systemjs or else it won’t load `XLSX.utils`

2. Use the correct `XLSX.write` parameters, otherwise you will get `nodebuffer is not supported by this browser`

heroku npm install not updating because of cache

Wasted a frustrating hour trying to figure out why `npm install` and `npm install foobar` would not update my package.

Finally found this:

Their caching is very rigid. Even if `npm install` runs and it tells you the package is updated, it won’t update. The cache will just replace itself. Even deleting the entire node_modules directory via `heroku run bash` did not work

heroku config:set NODE_MODULES_CACHE=false
$ git commit -am ‘disable node_modules cache’ –allow-empty
$ git push heroku master

Running the above finally did the trick.

How to run angular 4 karma tests on circleci

Here is what I had to add to my circle.yml

version: 6.10.1

- npm run-script test:once

1) Setting node version is important on CircleCI otherwise you’ll get a bunch of peer dependencies errors.
2) Karma is set up to run tests continuously, which is not good on CircleCI.

How to access the RQM (Rational Quality Manager) API with Basic Authorization

To make a GET request to an RQM server you need to set four HEADER values

Accept: application/xml
Content-Type: application/rdf+xml
OSLC-Core-Version: 2.0
Authorization: Basic BASICAUTHTOKEN

The generate the BASICAUTHTOKEN, perform the following operation [credit]

String userpass = username + ":" + password;
String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());

The endpoint will look something like this

Here is the cURL version of my Postman

curl -X GET -H "Accept: application/xml" -H "Content-Type: application/rdf+xml" -H "OSLC-Core-Version: 2.0" -H "Authorization: Basic BASICAUTHTOKEN" -H "Cache-Control: no-cache" ""

Bosch EL-51253 Power Max 30 Amp Electric Vehicle Charging station wall installation

I had a very difficult time finding installation examples for theĀ Bosch EL-51253 Power Max, so I want to add this image to the collection for future references:

My house was pre-wired with 8 gauge wire to a 40amp breaker. The wires comes out at an electric box, so to run the flexible conduit into the charger, they had to put in a plate with some fancy connectors. This is what it looks like



Oval clocks: realtors treat house images like online dating profile pictures

I’ve seen using Redfin and Zillow to look for houses. It seems that realtors like to lie about the size of the houses they are selling. It’s like someone taking a deceptive pictures to use in an online dating website.

This has led to a rather funny item you always see in houses: oval clocks.

The result of them stretching the pictures to make rooms look bigger.



Finding doctors and dentists for medi-cal and denti-cal

One of the things that really irks me is when well to-do people say shit like: “Poor people get free healthcare, why should I work. I should just quit my job and go on welfare so I can get free shit too”.

It pisses me off because I’ve had experience looking for doctors and dentists that accepts medi-cal and denti-cal insurance.

It’s a terrible experience because the list of providersĀ is always short and most are in the ghettos. On top of that, if you google the people on that list, half of them will be 1-star on yelp.

It’s not fun or easy to be living in poverty. Your choices are always limited, which forces you into a cycle of endless headaches and problems.

What it’s like to have a baby with acid reflux

Our newborn girl has a condition known as Gastroesophageal Reflux Disease (GERD), or simply known as “acid reflux”.

This is how our days play out.

1. We feed her
2. Hold her for 30 minutes to prevent reflux
3. Doesn’t work, she vomits
4. We clean her
5. She’s hungry because she didn’t keep her food down
6. We feed her again.
7. She vomits again.
8. We clean her again.
9. She’s hungry, but now she’s too tired to eat.
10. She sleeps for maybe 30 minutes…
11. The acid reflux wakes her up
12. She vomits yet again.
13. Go back to step 1

This hour long cycle is endless. There are many days when we are up 24-hours to play out this endless cycle.

People who don’t understand this problem thinks we are just stupid parents.

“All baby spit up” they say.
“You have to burp your baby” they say.
“Just put your baby down and let her sleep” they say.

Blah blah blah blah blah…

I will gladly accept that I am a stupid parent, and wear a dunce cap and a t-shirt that says I am stupid idiot, if it means my baby can be properly fed and can sleep more than an hour without waking up crying in pain.

The naivety of youth

There is a common perception that young people are naive and that’s why they are so vocal about politics, social injustice, etc…

But as I’ve grown older, I’ve realized that it’s not because the youth are naive, it’s because as you grow older, you realize people just don’t care. So you stop voicing your opinions.

I think this is a problem. Political apathy should not be a badge of honor. We should engage and challenge each other.

My letter to my congressman regarding the Syrian refugee bill

I have never written to any politician before, but I saw this an as opportunity to speak up.

From what I know, my congressman, John Garamendi, is a pretty cool guy. He seems very progressive, and focused on serving his district. However, his support of HR 4038, the Syrian Refugee Bill, is very disappointing.

Here is what he wrote about it:

Here is my response:

Message Subject: H.R. 4038
Message Text:
Dear Congressman Garamendi,

I once met you at the airport and I crassly told you that you “haven’t done anything to piss me off”. I apologize for my rudeness on that day, but today I am writing to let you know that I am very unhappy with your support of H.R. 4038. I read your statement about it, and I think your reasons are completely bogus.

You know for damn sure that the Republicans put on this vote to play on the fears of their constituents, and their actions are motivated by deceit. You supporting this resolution is an affirmation of their deceit, and giving in to their fear mongering. If you really wanted “an opportunity to assure the American public that we are thoroughly vetting refugees”, then you should stand up and shout down those spreading misinformation and lies, not give them an endorsement for their deviousness.

As an immigrant/refugee, from Vietnam, myself, I know that I would be very hurt if politicians used my struggle for a better life as a hateful political gesture.


I do want to add that my objection to Congressman’s Garamendi vote is not because I think I know how to better handle the refugee crisis, or that I have any special understanding of how to mitigate security threats.

I simply object to the fact that he is participating in political theatre with the Republican Party.