Wrinkled Laser Printer Paper (HP Laserjet 4000/4050)

Troubleshooting laser printer issues

My laser printer was working just fine, until I had to print important papers and bam, the right side was systematically hopelessly mangled and the ink not properly stabilized there.

What to check

If your laser printer munches paper or the ink smears, it may be the fuser. So check:

  • The rollers (they’re at different locations front and back, some are plastic and slippery and a lot have grippy rubber on them to help guide the paper.
  • The fuser assembly (the teflon sleeve may be defective, have bad electrical contact or torn)

Looking online for help on the problem, every web site and HP document points out at checking for rollers jamming etc. Even though that’s a thing to check, the fuser unit is really an item that needs to be checked too. And these online helps fail to mention that.

I randomly noticed a my printer spit out a piece of brown plastic. At first I thought something got stuck, so I need to figure out how to get in there and open the path to remove the debris that’s obstructing the paper. Turns out it’s the fuser falling apart.

The fuser is made of a glass heating head, against which a roller presses, but that roller has a loose teflon sleeve around it that kinda floats there. In my case the teflon sleeve had dislodged and was slowly wandering to one side, where it was getting chewed and cut by the roller assembly. On the other side the lack of the sleeve caused the paper to jumble up and the ink to not bake properly.

Accessing the fuser

We all know how to replace the ink cartridge, but the fuser is embedded in there deep. So how do you get to it?

Well it’s also a maintenance part,  so access to it should not require you to disassemble the whole printer. Find the obvious screws to remove… or find the service manual. To find them, unclip plastic covers until you find something that looks like an access to the center or rear portion of the printer. For my HP printer I had to unclip the back plastic covers under the rear paper feeder, and expose two screws protruding by 1/2″. then I could wiggle out the metal assembly of the fuser.

An OEM repair kit will be the whole assembly, plus all the rollers of the machine, which usually are changed  at the same time. If you buy a refurb’d head it might not come with those.

An alternative is to buy a rebuild kit OR just the teflon sleeve, if that’s what failed. There’s a lot of those and only a few of the offers on ebay are for the actual HP manufactured fuser, since for most old printers they’re discontinued.

To access the teflon sleeve you’ll have to figure out how to unscrew and unclip some parts to pull the roller with the teflon. It will likely be 2 to 4 screws, maybe remove a cog, and unclip a couple of power connectors to the said roller. It may be a bit intimidating but it’s actually pretty easy. Use gloves o not leave fingerprints. It’s a 15mn job.

The teflon sleeve is bad if:

  • It’s torn
  • It’s not there (it’s a loose brown sleeve around the roller above the glass heating element)
  • It has baked ink on it (teflon’s worn and starts to stick)

I should have taken photos…

Toner issues

Your laser printer ink cartridge could be bad: it’s empty or its roller catching the ink is dirty or failing. That I don’t cover here. If the print fades, you can try to pull your cartridge and rock it side to side to even out the leftover toner.

House investment and taxes

To reduce your tax penalty you can use Prop 60 to limit your property taxes when changing homes. You can also look into 1030 exchanges to defer income tax on property gains when changing house, this has the added benefit of resetting your house deprecation schedule.

California property tax

Under California Proposition 13, property tax is assessed as 1% of the sale price (plus local tax often 0.25%?), and adjusted up max 2% yearly inflation. Major improvements are added to the assessed value but don’t trigger a full re-appraisal of the property.

In California Proposition 60 allows you to exchange your house with another of same or lower value and keep your property tax bill unchanged.


  • Conversion can be done only once!
  • Must be 55 or older
  • buy and sale must be within +/- 2 years.
  • House value restrictions:
    Note personal property is not counted (washer fridge hot tub…) so list it in the sale contract, and get advice from a pro. The house price must be market value based on county assessor, which might not match the actual sale price.

    • If you buy before you sell, the new house value must be <= 100% of old house
    • If you buy 0~1 year after you sell <= 105%
    • If you buy 1~2 years after you sell <= 110%
  • Houses must usually be in the same county
    • Proposition 90: Some counties may allow incoming transfers from other counties: Alameda, El Dorado, Los Angeles, Orange, San Diego, San Mateo, Santa Clara and Ventura. Do inquire about limitations and rules.
  • Resources

Federal Income tax


A 1031 exchange (like-kind or starker) is a way to defer taxes on a non-personal real-estate investment (aka not a primary house) and grow it tax deferred. The tax can also become long term capital gain.

  • 1031 exchanges can be done repeatedly
  • must hold property 2 years
  • like-kind is lax (apartment or land can be exchanged)
  • taxed
    • any profit cash out (boot) is taxed
    • any drop in liability (lowered mortgage loan debt) is taxed
    • deprecation recapture: when selling a building to buy land, the building, sale above deprecated value. deprecation is taxed as a gain
  • Primary house may be converted to investment then qualify for 1031
  • starker exchanges (buy after sale) are allowed with a 3-rd party escrow holding the funds
    • 45 days from close date to choose up to 3 target properties (or more if sum of their valuation is less than 200% of the property sold, or their value is 95% or more)
    • 180 days from close date to close on new property
    • Reverse exchanges (buy before sell)  are possible with similar limits
  •  Resources

Primary residence and vacation homes

If you lived 2 of the last 5 years in your residence you can shield up to 500K in profits rom taxes on the sale.

A trick is to buy a vacation home, converting it to a rental (rented more than 6 month of the year), then do a 1031 exchange for another property, and converting it to a primary residence, and later sell it with the 500K shield. The 1031 exchange is only valid if after the exchange you follow the safe harbor rules

  • the dwelling is rented out at least 14 days every year for 2 years at fair price
  • you don’t use it more than 14 days or 10% of the year

And you can get the 500K shield only if you wait 5 years from the 1031 exchange

I believe there’s a way to avoid getting the boot for deprecation, but a 1031 exchange resets the deprecation.

Working with Acrylic


I am building a pretty large infinity mirror out of acrylic, and I learned a few things I will keep track of here.

Acrylic treatment

  • Avoid using alcohol on plexiglass/acrylic. If it was heat treated it will react violently and crack. Otherwise it may dull anyways.
  • You can flame treat to remove scratches but it’s hard to do and doesn’t work that well. My experiments with MAP gas did also create tiny bubbles and warping. It’s best used for edges to make them transparent.
  • There is some heat treatment that uses a blue flame to de-oxydize the air, but not melt the surface. You run the flame over the surface without melting it. The goal is to change the surface tension of acrylic so it bonds better. This is used for mirroring, in particular if you do gilding.
  • polish: I tried headlight polish and it did not really accomplish anything much.

The photo below is the end result of that project exposed at a convention center, with the acrylic case and acrylic insides, done as one way mirrors.

2020-01-21 14.29.42


  • Superglue is meh: you can pull metal+acrylic bonds appart

Rust-Oleum Mirror spray paint

You can use that spray to paint the back of a piece of plexiglass, and turn it into a mirror. Ideally, you spray it 5 times with very light coats at a foot away. Once that’s even (look through) you paint over with a dark paint to finish the mirror.

It looks like Rust-Oleum Mirror effect is the better one to get a true mirror effect ($9 at home depot for the right one vs $12 for the left one at amazon). The alternative is the Krylon Looking Glass spray which seems to give a cracked look according to youtube reviews, but I suspect it’s also dependent on temperature/conditions during application. However it does look dull on the promo material, not mirror.

Using a heat fan seems to help a lot to diffuse the paint evenly as it dries.

I have tried and failed to paint properly. I was doing this on winter a rainy cold day, and it didn’t work – it pooled 😦 as it dried refusing to spread evenly. The heat treatment above helped a lot but not enough for me to trust doing this on my final art pieces. I have friends who used it successfully on acrylic too, but in dry summer.

Note: I did not try heat treating the acrylic surface to prime it to receive the paint. Maybe I should next time!

Mirror window tinting

Mirror window tinting allows making 2-way mirrors, which is what you want when making infinity mirrors. I used Gila Daytime Privacy Mirror Window Film.

To do a regular mirror, you can spray paint the back in black/grey, to block the light coming from the back side. It won’t be quite as bright as a full mirror and will let through a little bit of the back color you used. I use black so it makes it look like a dark mirror (I’m using about 85% reflective mirror so I loose 15% of the reflection this way). You can only really tell when comparing to another mirror.

The difficulty I find is applying the film without any bubbles. That’s proven nearly impossible for me to do. I use soap water on the acrylic surface, apply the mylar and squeegee the water out. I wet the top for lubrication, and use a sponge to push the air out followed by a credit card.

Note: It would be more reflective to glue mylar, but I didn’t do so, one issue would be to find the a spray glue that leaves the mylar 100 taught. These window tint films have a sticky side you apply with soapy water so there isn’t that problem. Also they’re designed to lay perfectly flat so the end result mirror is not too bad, unlike mylar. Note that I tried mylar and the reflections were not satisfactory.

Note: A lot of water, slightly soapy (preferably not bubbly water) might work better.

The end result was not that bad, flaws are not noticeable on a 3ft project, unless you look for flaws, which are everywhere in what I did.

Arduino SerialMenu library

Screen Shot 2019-11-14 at 3.37.41 AM

As I prototype code on the Arduino, I find it useful to do I/O with the Serial console to control my program and trace the state of my program.

I realized after 2 iterations of the current animatronics project I’m doing, that I was rewriting custom menus every time to input values and control PWM motors, so I decided to write a library that basically allows me to write menus in seconds. It abstracts the support for it and optimizes the memory footprint for me automatically.

With the library, coding menus is way cleaner, concise and much more efficient code, especially if I use PROGMEM which the library supports (a menu entry only used 5 bytes!).

If you find a use for it, like it or think of things to change, please leave a comment.

Download from GitHub

Announcement posted on Arduino forum

Example: Demo1

This small example uses a menu with 5 choices to do some math:

  • The menu is declared as a single array of 5 objects with 4 fields.
  • The code only needs 3 lines: load(), show() and run().
  • The menu allows multi-tasking, i.e. the call to run() returns after a few cycles when there is no Serial console activity. It does not wait for user input to return.
  • There is a built-in heartbeat by default that allows you to see the micro-controller code didn’t crash or hang.
// Load the menu library
#include <SerialMenu.hpp>
const SerialMenu& menu = SerialMenu::get();
// Declare some variables and code
float f = 0;
uint16_t x = 0;
uint16_t y = 0;

void doMath(uint16_t a, float b)
  Serial.println(random(x) * f + y);

// Declare your menu and what it does
const SerialMenuEntry mainMenu[] = {
 {"update X",  false, 'x',
  [](){ x = menu.getNumber<uint16_t>("Input x:"); } },
 {"update F",  false, 'f',
  [](){ f = menu.getNumber<float>("Input f:"); } },
 {"show Y",    false, 'y', [](){ Serial.println(y); } },
 {"do math =",  false, '=', [](){ doMath(x, f); } },
 {"show menu", false,  'z', [](){ menu.show(); } }
constexpr uint8_t mainMenuSize = GET_MENU_SIZE(mainMenu);

// Declare normal Arduino main code loop
void setup() {
  // Install your menu and show it
  menu.load(mainMenu, mainMenuSize);

void loop() {
  menu.run(100); // This does all the menu work!

  // Your code updates y at every iteration and waits 1/10th second



Incentive Stock Options (ISO) and their Alternate Minimum Tax (AMT) implications

The tax and investment information I discuss may NOT be correct. It cannot be considered tax advice and if you read or use this article you accept to release me from all liability on any financial decision you make using this information. Use this only as food for thought to start your own research on the topic. I am not a Tax specialist and in fact I am just trying to figure it out myself: Talk to a CPA or tax advisor if you are in this situation and need valid advice.

If you work for a startup, ISOs are a great compensation leverage system (provided the company does IPO, which is rare). However there are gotcha’s to watch out for. I try to recap some of my findings about how to navigate tax implications, forms 83(b) and 83(i) and optimizing for AMT.
You must pay attention to what you are doing because the IRS could shave money you don’t have!

agriculture animals baby blur
Photo by Trinity Kubassek on Pexels.com

ISO tax advantage when selling

If you receive ISOs and exercise them after a year to get shares of the company, and that you hold not the shares for a year, then you’ve achieved qualified dispositions, and your profit is taxed as long term capital gain (usually 15%) instead of as income.

  • Income < $39,375: $0
  • Income < $434,550: 15%
  • Otherwise: 20%

That’s cool, however that’s not the whole story… AMT can kick in when you exercise the ISOs to buy the shares, yet you have no profit to pay for it, and it can sting! AMT kicks in if you have to hold the stock for a year or more from the time you exercise the options. If you exercise the options and sell in the same fiscal year, you don’t owe AMT but also you certainly won’t get long term capital gains either.

Screen Shot 2019-09-19 at 10.37.15 AM


ISOs trigger AMT taxation

An ISO unlike a NSO has a preferential tax treatment, in which your gains, if they realize via qualifying events, become long term capital gains taxable (up to 20%) instead of regular taxable income (up to 37%). However exercising options can trigger 26% AMT taxes before you pocket profits.

  • An ISO has an exercise price per share, or grant price or exercise price. It is the amount you must pay your company to exercise the ISO and convert it to a share of the company. It is set when the options are given to you by the board of directors  on your grant date.

For example a a sign on bonus, you get $10K worth of options, 10000 options each at a strike price of $1 at the time of the grant date. This means once vested you must pay $10K to exercise them all, i.e. to convert all the options into shares or stock of the company.

  • At the time you exercise the ISO to buy a share, the company share has a fair market value, usually set by the board of directors using best accounting practices and external audit companies, or by the stock market if it is publicly traded.

The gotcha with ISOs is taxes you owe, in particular it can trigger the 26% AMT tax. Let’s say the company’s fair market value is $10 when you exercise the option a year later. You bought an option for $1 but the stock is worth $9 more. For regular taxes it doesn’t matter, but for AMT, the $9 “profits” are considered as regular income, even if the stock can’t be sold. You owe 26% of that to the IRS, or up to $2.34 per option converted to stock. There’s a $71,700 AMT exemption so assuming $0 other income, you could buy 885 shares without triggering the 26% AMT. See the graph I made below to figure out the effective tax rate accounting for the exemption.

If the company folds and the stock share value falls to zero, you’ve lost $1 plus $2.34 AMT taxes in capital gains that you need to recover from your taxes.

It gets complicated and expensive. Apparently you can only recover AMT tax through an AMT deduction by reducing the amount of AMT tax you owe. It’s not clear to me when you sell the stock if you’re taxed 20% long term capital gains on those $9 as regular income on top of having paid AMT a prior year. More on that if I figure that out.

Side-stepping AMT with early purchase

It seems one solution is to file form 83(b) preferably as soon as you’re granted your stock options when you join your company, or otherwise before they vest, and keep a proof you sent that to the IRS in a timely manner. As you do you also write a check to your company to buy exercise the ISOs by anticipation before they mature. The form tells the IRS your intent to buy the options and locks in their fair market price on the day you pay for them. This means you can have $0 liability in AMT tax if you buy them when the fair market value is equal to the exercise price you declared in that form. I actually don’t know for certain if this is always doable for ISOs. Your company may not allow it. See these blog posts (1) and (2). However you’ve made a big gamble early on.
There’s further complication with state AMT. See (3) for California.

  • When the company goes public, and if you’ve held the options for a year+ and the stock for a year+, aka 2 years total (see holding period requirements under IRC Section 422 ), then when you sell you will only owe long term capital gains. Note that there usually is also a 6 month blackout period after IPO where you can’t sell.

For example, your sell your stock and pocket $21.
If you meet all criteria for Qualifying Disposition, you should pay 20% long term capital gains on your $20 profit, or $4. Since you already paid AMT I believe you should actually pay $1.48.
If you don’t meet all of them, it is a Disqualifying Disposition. You pay income tax (up to 39.6%) on the $9 profits from the exercise of the option, and capital gains (20%) on the $11 from selling the stock. That’s $3.56+$2.2 = $5.76. Since you paid AMT, that’s $3.24 more.
The difference in this scenario is 9% more taxes on the profits. This becomes smaller if the stock jumps to $100 because the portion from exercising the option ($9 profit) is smaller than the portion from selling the stock ($90 profit). You pay $9*(0.396-0.2) = $1.764 more for a $99 profit, or an extra 1.8% more taxes since now you pay almost $20 tax per stock sold.

Delaying AMT payment

NSO conversion: I believe it may be possible to convert ISOs to NSOs simply by having a non-qualifying event. This means you pay regular income tax on the profit when you exercise the option (FMV – exercise price). However your company may have set up an NSO escrow account.If so, now you can file form 83(i) and delay that tax payment up to 5 years. If you expect the value to shoot through the roof and an IPO within 5 years, it might be a great compromise. You still benefit from long term capital gains when selling the stock (sell price – FMV).

Exercising by flirting with AMT

Figuring out AMT limits/triggers: You can use TurboTax and gradually increase the number of options exercised until the tax owed changes. You should exercise as many ISOs without triggering the AMT as possible. Do a simulation early on to know the limit. This scenario is optimal and should be taken advantage of!

For example, let’s say you’re making bank, and your income is $300K, and it’s effectively taxed at 26.7% (or $80K of taxes owed). Your effective AMT is 19.8% so it doesn’t trigger. If you exercise ISOs, your AMT liability for each is (fair market value – strike price), and your AMT income its $300K + $ISO. So you could realize $80K of those ISOs. Assuming a fair market value of $10 for $1 strike price, you’re taxed on $9/share, so you could buy 8888 shares (8888*9 = $80K) without paying more taxes via AMT. You’re taxed the highest of:

  • 26.7% income tax on $300K = $80,190
  • 21% AMT on $380K = $80,142

Note: You also paid $8,888 to your company to buy the shares. And remember, you have not yet sold any shares.

General computation:

I plotted the effective Federal income tax and AMT taxes to simplify calculations. Once you know your taxable income (bottom value), you can find how much income tax you pay (blue dot). You can now slide horizontal to the right to the red dot, and look at the bottom what income would cause the same AMT tax.

Screen Shot 2019-09-19 at 3.27.28 AM

Formulas for the graph, where A4 is the income declared.

Income tax without any exemptions

=round(( if(A4<=9700, A4*1/10, 0) + if(and(A4>9700, A4<=39475), (A4-9700) * 12/100 + 970, 0) + if(and(A4>39475, A4<=84200), (A4-39475) * 22/100 + 4543, 0) + if(and(A4>84200, A4<=160725), (A4-84200) * 24/100 + 14382.5 , 0) + if(and(A4>160725, A4<=204100), (A4-160725) * 32/100 + 32748.5, 0) + if(and(A4>204100, A4<=510300), (A4-204100) * 35/100 + 46628.5 , 0) + if( A4>510300, (A4-510300) * 37/100 + 153798.5, 0) )/A4*100, 2)

26% AMT including standard exemption (I did not bother handling the 28% case)

=round(if(A4>71700, (A4 - 71700 + if(A4>510300, (A4-510300)/4, 0)) * 0.26, 0)/A4*100, 2)

Recovering AMT when selling the shares?

There’s a wikihow entry on how to reclaim the AMT you paid when you exercised the ISOs, at the time you sell the stock.

In a nutshell, when filing your taxes, for ISOs you will file form 6251. I suspect line 11 will report the extra AMT owed regarding specifically the ISOs? If so collect all those forms for the years you paid AMT for exercising ISOs, and on the year you sell the stock, file form 8801 to claim the credit, to reduce the tax liability on the stock sale.

What if the shares drop below the ISO exercise’s fair market value?

If the stock drops and you can’t fully recover the AMT credit on the stock sales profit, you will have overpaid taxes via AMT and can’t recover it.

What you can probably do however is claim the cost basis of the stock to be the value you declared for AMT, since you got taxed on the ISO fair market value and not the grant price, and claim the loss against your other stock profits. A CPA should know…

One way to mitigate your risk if you can trade the stock, is to exercise your ISOs in January, which gives you the whole tax year to decide if you should sell to get short term or long term capital gains. If you see the stock drop you can sell early. If ISO exercise and stock sale is done the same year you do not need to declare the ISO event for AMT as the transaction is complete.

Note: If I understand right, you also likely want to sell a portion of the stock after IPO to make profits equal to the AMT, so you clear your tax liability.

Secondary market alternatives

You are likely not allowed to trade your options nor your stock with your contract agreement, except on liquidity events.

Your company may have a tender offer aka a liquidity event usually when it does a new round of funding. The liquidity event will allow you to sell back your vested options or shares of the company. This may be done at the valuation of the preferred shares, which is higher than the fair market value of your shares (think 2X). There may be limits, like a max dollar amount the company will buy overall (and your order gets prioritized and prorated), or a cap you’re allowed to sell (for example X% of your vested options/stock). Tax rules apply for short and long term. If you sell options it can be done cashless (aka I believe the tax bill is held on the proceeds of the sale).

However there are a couple of outside alternatives I’ve been told of:

Right of first refusal direct sales. You may find a buyer interested in the stock, and negotiate a price with them. You can submit your transaction offer to the board of directors of the company, and they can decide to approve the transfer of shares, or refuse and instead buy back the shares from you at the proposed price in the contract. This may be a lengthy process. Furthermore, this transaction may need board approval and the board may block it altogether, neither buying the shares nor allowing you to sell them.

You may be allowed to do forward purchase agreement contract, where you agree with a third party to transfer your stock to them after you have a liquidity event (aka IPO+6month). It means you stay as the registered owner and voter for the stock until the contract resolves. Normally you don’t owe the buyer anything else but that stock IF and WHEN the liquidity event happens. In order for this to happen, you need to provide information proving you own the options or stock, and that they’re not already tied, and they need to know the wording of the grant to do a legal review. These contracts are often bought by hedge funds or set up by financial advisors contacting you if the company is on their radar (for example via LinkedIn or other place where you mention working for that company). The intermediaries making this happen will get a cut of course, but will likely give your take home price. Note that these companies legally verify the transaction but may not represent you in a fiduciary fashion, so it might need to be verified by a CPA and/or a lawyer.

Some names: Elevation Private Markets, or the Forge GlobalEquityZen, SharesPost trading platforms, or SilverEdgeFinancial, PreIpoSwap. You can sign up and see what the street values your company at if you initiate orders. This is a good way to see if the deal you’re offered is a low-ball.
Not related crowdfunding: SeedInvestStartEngine, Pre-IPO.

You may also be offered loans backed by the stock. The loaner will propose money upfront (for example to pay your AMT bill), in return for a portion of the stocks  ac compensation when you have your liquidity event. I’ve seen offers where they take 15% to 20% of the stock as interest. This means: at the liquidity event you must (1) refund the loan and (2) give up on top of  that 15% to 20% of your stock. To me this seems a much worse deal, especially if the company is doing well and IPOs.

Some names: Employee Capital Partners, ESO Fund

Tax wise I’m told a forward contract is not a taxable event, and the tax is due on the liquidity event when the transaction is finalized:

  • IRS publication (I have not read it)
  • precedents
    • IRS approved open transaction treatment for a variable prepaid forward contract • Rev. Rul. 2003-7, IRB 2003-5, 1
    • Borrower in contract is not treated as having sold property, i.e. no tax implications in year 1 • Lucas v. North Tex. Lumber, SCt, 2 ustc ¶484, 281 US 11 (1930)
    • Variable forward contract is treated as open transaction until settled • Virginia Iron Coal & Coke Co., 37 BTA 195, Dec. 9930 (1938)
    • Does not constitute a constructive sale – Estate of McKelvey v. Commissioner, 148 T.C. No. 13 (April 19, 2017)


Figuring the impact of ISO taxes and AMT becomes time critical for end of year tax estimations, and even more if you leave your company, as you will need to decide if you exercise your rights to buy options within a short time window. It can become a very difficult decision that weighs the costs of purchase, taxes, and chances of success of the company. Being wise when you join might save your skin.

I have to thank Snowflake Computing and it’s founding engineers for having to look into this complicated tax issue. Hopefully it turns out to be a really a good problem to have :).

Resources I used

IRS section 83.
IRS 83(b) guidance.
IRS 83(i) guidance.
AMT tax rates (26% or 28%, $71,700 exemption in 2019).
wordpress blog on interest vs dividend vs capital gains.
Forbes 2019 income and capital gains tax rate


Please feel free to comment, correct, criticize, confirm.

Ramblings on House Sound Deadening

Soundproofing a house is a challenge and not readily supported by standard construction techniques, nor is clear information available at your local Home Depot or Lowes. I’d like to take care of airplane noise, so I’ve decided here to keep track of products and techniques.

These are ramblings, and likely a lot of stuff will be incorrect, do not trust this entry.

For windows

Home Depot doesn’t seem to offer anything, but Lowes seems to offer custom windows where you can select the material and thickness of the different panes. For sound abattement, a standard way is to use triple pane as double pane doesn’t help as much.

Consider a window as a speaker system be and try to imagine how to make it transmit sound the best to find why windows don’t block sound well.

Single pane: If you push with your hand it is solid and flexes, in fact think of it as a speaker membrane, it will amplify and carry the sound that is vibrated on it. Because it has mass, it requires energy to move it but when it moves it transmits well. So it will transmit some frequencies well and others not so well. It’s a filter.

Double pane: For the sound to propagate, it needs to hit the first pane which vibrates and then hit the second pane which vibrates. If both panes have the same properties, they will transmit/block the same sounds. The air sandwiched will transmit the sound waves to the second pane. In subwoofer construction, I think that’s how passive drivers work. The passive subwoofer is just a membrane, and it vibrates the lower frequencies by being pushed by the air pressure generated by the main sub inside the cabinet.
To reduce sound, we can put a thick sturdy pane that doesn’t flex, like a thick shockproof safety panel. It is heavier so it will filter more sounds. Couple it to a regular thinner glass pane, and the wavelength that the thick panel passes might be frequencies the thinner panel filters out, and vice versa. So though it might not be rated for sound using 2 glass panes of different thickness could provide home security and soundproofing.

Triple pane  use air gaps of different sizes (1/4″ to 1/2″ and a much bigger gap of a couple inches). The reason is that frequencies that the first baffle lets through should not be the same as the second one, causing them to be lost. This would be great if these windows didn’t take all the space and became so impractical to use for opening and closing.

For walls and ceilings

Sound deadening and absorption

As it goes through the sound is absorbed. Against a beam it will also absorb/deaden the vibrations carried by that beam.


Sound deadening

Applied to a beam or wall its mass will prevent it from carrying and re-transmitting vibrations. It’s used in cars to deaden the metal sheets the car is made of.

Mass loaded vinyl (expensive)

Green Glue is used as a ‘deadening’ compound

Suspension mounts to prevent sound transmission

Once something carries sound it will transmit it to something else it’s connected to. Suspensions and flexible glues can prevent some of the sound to propagate by giving them independent suspensions.


Spectre and Meltdown exploits

I’m trying to grok how these guys work. The white papers are posted by Google Project Zero.

General idea of what’s going on

The attacks are done by triggering speculative execution of code on out of bounds data, to access data you’re not allowed to run, and by using cache latency to detect if a condition about the out-of-bounds data is true or not. All good CPUs allow out of order speculative execution of code, and once the CPU knows if the code was ok to run it commits the results as having run, else it discards the results as if they were never computed in the first place. However the results don’t matter, what matters is that running the code may anyways have changed what’s loaded in the cache or removed. In other words it can make future accesses to data slower or faster. Timing these differences is what’s used by the attacks.

  • Flush cache so that load_something_slow() is slow
  • Run speculatively your code, such as:
    if (unknown_condition) { if (array[x] == y) load_something_slow(); }

    • array[x] == y can be run speculatively by the CPU because it tries to issue instructions past the unknown_condition just in case it saves time to already know the result.
    • Because it is speculative, the CPU will verify if that code needed to run, and if not will dispose of the result so the application never sees it was tried.
    • However the speculative execution was not invisible. It can change the time it takes for the program to run, in particular it may have been forced to do a slow memory I/O that you can time.
    • If the code was fast, the condition went one way, if it is slow, it went another way. In other words, if you monitor the time you can tell what the value you wanted to read is.
    • You have detected a data value from a side channel aka a byproduct of a physical property of the CPU.
    • You have accessed data indirectly via a covert channel, aka a hidden indirect means of communication.


I see 3 levels of risk:

  • sandboxed code spies on the program running it
    For example: javascript user code accesses information stored in the browser
    Property: the sandboxed code is run in the same virtual address space as the program
    How: the sandbox code can use speculative execution to access any data in the program. If the bounds are checked to avoid out of bounds access, it can still trick the CPU speculative execution to do the out of bound access.
  • program spies on OS
    For example: a user program tries to read passwords typed by other users
    Property: the program escapes its user virtual address space and is able to read information in inaccessible kernel address space.
    How: some kernel pages are mapped into user space (like the sys call table I would assume, and possibly other I/O pages). The same approach is done as above, but somehow you force the OS to run code and monitor its performance.
    Bigger deal: This breaks the ring isolation. The OS is in ring0, which is allowed to run privileged code. Your app runs in ring3, which is allowed only to mess with itself, or ask the OS permission to mess with other things via controlled system calls.
  • program spies on another program
    For example: your web browser runs code that accesses your 1password data
    How: I’m not sure, but I assume it uses libraries that are shared between programs. In that case it might find existing code to run with good timing properties, and hack the state of the caches or BTB to get infos. It might work with the BTB if it uses physical addresses to map the branch results because you could trigger a flush of a branch target to make it slow when it runs on the victim program.
    Even bigger deal: if that works is that it breaks Virtual Memory isolation. Both programs run ring 3, but they don’t know about each other because their data and code is in a different, unrelated virtual address space. The OS maps those virtual addresses to physical memory location as needed. For shared libraries, the same physical memory is mapped into the virtual address spaces of the programs.


Meltdown in a nutshell:

It allows a program to read any data from the kernel or any other process!

The issue is that modern Ones map their kernel address space into the address spaces of all their processes for convenience. The user process itself can’t normally access anything because the kernel addresses can only be accessed while in ring-0 privilege, and any attempt would trigger a fault.

Reading kernel data: By using speculative execution, the malicious user program set a physical state in the memory hierarchy, for example loading a cache line, based on a comparison of the value in any kernel address with any value of its choosing, without triggering a fault. It can then time the performance of accessing that part of the memory hierarchy, and get a true/false response to the comparison it performed, hence figure out its value.

Reading other processes data: Physical memory is limited and Linux and other Ones basically map all the physical address space in the kernel’s virtual address space (the virtual address space is pretty much infinite 2^64 bits so it’s cheap to cut out a fe gigabytes). This means the kernel actually holds all the user program data currently in memory in its virtual address space, hence the malicious program can access all the data of the kernel or any application, if it is held in memory. That includes all passwords in clear!

KAISER patch: The patch being applied to Linux and other Ones is basically to NOT map the kernel address space in the user address space, since ring-0/ring-3 protection does not protect against speculative execution access to ring-0 addresses. The fix is not 100% effective because the kernel must map some parts in user space, like the interrupt table or the sys call page I would say, but that’s only kilobytes and none of the other user’s data. The risk left is that these addresses left contain enough information to devise other attacks via other means.

Spectre idk.

SQ11 Mini DV manual


An attempt to decrypt the manual of this device from chinglish:


  • Power button
  • Mode button
  • LED red/blue


  • Red flashing: charge done
  • Red on: charging
  • Red+blue flashing: Protection shutdown mode or SD card missing


  • Power -> standby
    • Mode-> 720P O -Mode-> 1080P -Mode-> 12MPix O ->
    • 720p: Power-> *** Record -Power-> standby
      • Long-Press-Power -> IR off **
    • 1080p: Power-> *** Record -Power-> standby
    • 3Sec-Mode-> *** Motion Record
    • 12MPix: Power-> * Photo -Power-> standby
    • Long-Press-Power -> IR on **
    • 6Sec-Power -> off


  • 720p: Press Power, standby mode, blue LED is on.
    • Press Power, blue LED flashes 3 times. Video will save in 5min segments. Press Power again to go back in standby.
  • 1080p: Press Power, standby mode, blue LED is on. Press Mode, purple(red and blue), LED stay on, 1080p standby mode.
    • Press Power, blue light turns off, red light blinks. Video will save in 5min segments. Press Power again to go back in standby.
  • 12Mpix: Press Power, standby mode, blue LED is on. Long-press Mode, for 2 red LED blinks.
    • Press Power or Mode, red LED blinks for each photo.
  • Infrared on: Press Power, standby mode, blue LED is on. Long-press Power for 2 red LED blinks.
  • Infrared off: Press Power, standby mode, blue LED is on, enter any recording mode. Long-press Power for 2 red LED blinks.
  • 720p Motion detection: Press Power, standby mode, blue LED is on.
    •  Long-press Mode, for 3 seconds. Red LED flashes. Blue light on motion detect, Purple flash while recording. Press any button to stop
  • 1080p Motion detection:
    • same


IBM Model M PS/2 keyboard to USB conversion

I’m glad to see that a simple eBay purchase allowed me to revive my old IBM keyboard from 1984. Online the fan sites indicate the need to hack the wire with an expensive ($25 ~ $50) bulky adapter because of the logic levels and the power consumption of these old keyboards.

I’m on a MacBook Pro 8.2 (2011) – one of those I restored, on Lion, and the adapter works like a charm. I’m just missing the command/windows key.

Want yours? On eBay look for “PS/2 Male to USB Female Converter Adapter Adaptor For MOUSE KEYBOARD PS2” $1 !

To be honest the more I look the more I’m impressed with the diversity of stuff coming out of China. Drones, 3D printers, robots, mechanical hands.

FYI I also tried this simpler $0.75 connector below, but it doesn’t work:


Apple Macbook Failures and Fixes

Last update: Jan 6, 2019

For some reason I have now have a bunch of apple products, and more than half is messed up. So here’s a few things I’ve come across trying to RCA what’s going on…

Known issues I encountered and fixed…

Macbook Pro (specifically 2011)

  • Broken Video card, MacBook Pro 8,2 2011, 4 core i7: Known issues with video card overheating and going bad (screen with stripes, refuses to boot). Since there’s a built-in Intel video card and the Radeon HD 6750M, you get video when the intel runs but it goes bad when you get to high res. Also the default thermal paste used is terrible.
    • Force the internal Intel video card (try at the EFI level)
    • Reheating/Reballing is “not recommended”, but a fix can be done reheating at 150C/5min. The reason it’s not recommended is mostly that the video card is expected to overheat again and die some time after the repair.
    • Reballing Fix (2017): I did the reheating: I pulled the board out, removed the heat sink, removed the old hardened thermal paste, dusted the chips, boards, case, fans etc. at the same time. I put the bare board on a metal tray after removing the heat sinks and used a heat gun to heat the CPU and video chip for 7 minutes. For temp control, I just used a bit of solder in a cup next to the board and saw it melt and ball. I cleaned and put everything back together with fresh thermal paste.
      Since the worry is overheating I used the best thermal paste I found on the market, Grizzly Conductonaut. It’s hard to apply but the macbook heat sink is copper and compatible. The CPU and video cards barely reach 40-50C so they should not fail anymore.
      Amazing! The screen went back to normal and I have no issues so far. I’ve even loaded Kev’sdeep sea html 5 3D demo to check the temperature, and it stabilized around 75C, and 20fps for my 2.3GHz CPU. The 2GHz CPU does 9fps.
    • Reballing Update Jan 2019: My video card went bad again, and in general the laptop often acted sluggish. I did the Bump Pad re-balling again with the heat gun. This time I peaked at about 170C on the surface of the video card for 3 or 4 minutes (using a temperature laser gun to check). This I suspect this re-flows the bump pads from the IC to the pins of the chip since I’ve only heated the top of the chip, not the BGA pads because those require 350C to melt.
      The video card is alive again AND the laptop now seems to function full speed, GeekBench is close to the top scores for the memory type I have both CPU and video card compute. I noticed the conductonaut paste had crystalized and had some hard balls I had to scrape off to reapply. This makes me worry of its quality/stability long term. CPU temp is a decent 55-60C now and can reach 3GHz on Intel CPU gadget when I push it from 1~1.5GHz idle. Note that now opening the laptop only takes 10mn. Only the 1st time is daunting.
    • Warning: Taking appart a macbook pro requires being careful to remove connectors. Use a youtube video first time. I actually broke the keyboard and trackpad connectors by accident ($10). I should have watched a video on how to take it appart first. You may also want to get spare case screws ($5), as the star T4 screws strip way too easily.
  • Non genuine battery: They seem to cause headaches so return it asap if it fails booting and testing right (run AHT with OPT-D-power and GeekBench & Intel PowerGadget), or just get a good used genuine battery.
    • AHT 4xxx/4/40000005 error: The battery will throw a AHT error, and may or not prevent charging. The error doesn’t seem to be an issue for me. It charges etc. but AHT still has that warning
    • kernel_task CPU problem: The macbook may feel super sluggish, and maybe the fan kicks in. This seems to be related to sensor issues with the battery. You should try a few times to see if this goes away.:
      • first try to reset your NVRAM (opt-cmd-P-R at boot)
      • then SMT (ctl-shift-opt-power, starting machine turned off AND plugged into a charger). The SMT reset did for me ♥.
    • Intel SpeedStep bug: There are many posts about this issue and no real solution, except this one: Rhys Oxenhams explaining the issue. It seems a new battery ma cause MacOS to trigger Intel SpeedStep to under clock the CPU when there’s potential for overheating which shows up as kernel_task CPU usage shooting from 2% to %750 when looking at all processes in Activity Monitor (Menu: View – All processes), or at ps on a terminal (sort by cpu with “o cpu [enter]”).
    • Note you can also look at other tweaks like maxing out your GPU.
  • Upgrading to High Sierra: It’s become hard to do from Lion. In order to do so you need to go via an install of Yosemite. It’s actually not necessarily available in the Apple store for you unless you have a direct link! If that fails check macDrug. Note that 2011 can’t upgrade past High Sierra.
  • LaunchPad: The old keyboard have the Dashboardand new keyboards have  the LaunchPad mapped to F4. Of course there’s F4 and fn-F4 and you can’t easily remap the F4 behavior. The fix is to install FunctionFlip which toggles those function and alt-function commands key by key. Install it and flip the F4 key. Now you still have to map the AppLauncher to F4 and you’re done (System Preferences – Keyboard – Shortcuts – Launchpad & Dock – Show Launchpad –  fn-F4)

Cinema Display 27″

  • Intermittent screen shut off or not coming on linked to faulty Mini DisplayPort wire.
    On newer models (which only have power and miniDisplay cables), it is possible to plug in a separate Mini DisplayPort in the back, since there are usb and mini display ports there. I must try the secondary DisplayPort cable.
    Unfortunately I also have an older model (usb, power and mini display cable and no ports in the back). i could try to replace the combo wire ($70 cable on ebay, make sure it’s the right one, the cheap $20 one doesn’t have USB and is not for this display and might be compatible with the new display). 

Macbook Air

  • Water damage creeps up fast on macbook air, and can destroy the SSD too.
    I need to revisit this to see if I can fix the macbook. Repair is $750.
    Update Jan 2019: See HD recovery, I got my data back! I may also post pics of the damage and recovery attempt.

All MacBooks

  • Hard drive recovery (Jan 2019). I had a MacBook Air that was destroyed and thought the drive was too. When I tried to load it on another Mac it failed, as well as when putting it on a PC. Well not true. I retried again, but this time I booted the laptop in safe mode and was able to get onto the drive and recover my data. Good to know!
  • Flaky Wifi: Not quite figured it out, but my macs seem to stay on the wifi but the web browsers loose connectivity and I have to turn off/on the wifi. This is with Comcast Motorola DOCSYS v3 and macbook pro, macbook air of multiple generations OS X El Capitan to High Sierra.
    I don’t know if it’s just some DNS bug or something. One thing could be some wifi power save.

Macbook boot options

  • D-Power or Option-D-Power: The Apple Hardware Test (AHT) is built-in most macbooks. It will scan the hardware and report error codes.
  • Command-R-Power or Command-Option-R-Power: Recovery mode allows you to re-image the macbook

    Also in terminal: “csrutil disable/enable” to allow editing /System plist files (ls -lO /System to see if you’re allowed to write them)

  • Shift-Control-Option-Power: Resets the System Management Controller (SMC)
  • Command-Option-P-R-Power: Reset the parameter random access memory (PRAM or NVRAM). When holding keys wait for the second beep.
  • Shift-Power: Safe-mode boot, skips some boot items to help troubleshoot software issues
  • Command-V-Power: Verbose safe mode boot, lists on screen what is done during boot
  • Command-S-Power: Boot single user mode command line
  • Option-Power: Startup Manager, to choose boot device (Option-N-Power boot on network, Option-C-Power boot on removable device)

In MacOS

  • System Information(Profiler)>Power
  • Activity Monitor

Great resources