gowan's comments

gowan | 4 years ago | on: Google employees who work from home could lose money

i like how the us military makes cost of living adjustments. you have your base pay determined my your rank which is not adjusted by where you live. in addition to that you get a housing stipend (BAH and BAS) that is adjusted by where you live. if i remember correctly the housing stipend is before tax.

google is essentially forcing a pay cut to your base salary in addition to the portion of your salary you use for housing.

gowan | 4 years ago | on: Red delicious apples weren’t always horrible

imo the granny smith is the all time worse apple. always taste like a green apple (not trying to be ironic) and usually has a thick skin. just plain terrible might as well pick any apple variety before it is ripe.

if you want a good green apple buy a newtown pippin.

gowan | 4 years ago | on: Red delicious apples weren’t always horrible

the problem with golden delicious is that you need to eat them within 3 days of when they are picked. a good golden should have a thin skin, be sweet, and crisp.

i think part of the problem is that farmers pick them to early so your usually getting an green golden that has rotted a bit to turn yellow.

gowan | 8 years ago | on: Ask HN: What did you work on in 2017?

open source stuff i've done:

* release ghostdriver 2.0.0 [1]. this is the implementation of the webdriver protocol for phantomjs. unfortunately phantomjs 2.5 was never released :(

* create chrominator [2] a high level api for chrome remote debugger. now defunct... use puppeteer

* created chromedriver-proxy [3] to help me extend chromdriver without having to recompile the c++ project. it also handles pooling browsers. the coolest extension i've built so far is recording video on headless chrome. still a work in progress but has proven stable for the real world test suite i support.

[1] https://github.com/detro/ghostdriver/releases/tag/2.0.0

[2] https://github.com/jesg/chrominator

[3] https://github.com/ZipRecruiter/chromedriver-proxy

gowan | 8 years ago | on: Consistent Selenium Testing in Python

you should skip this post. it is full of anti-patterns.

anti-patterns

(1) implicit wait. this will create subtle differences in behavior between drivers. it will also create long pauses when you test for negative conditions.

(2) clear. selenium has built in support for clear[1]. in addition to clear you can send the null key[2] if you want to clear the input midway through a sequence of characters.

(3) time wait. this does not make any sense to me. seems like a clever way to add time.sleep.

[1] https://www.w3.org/TR/webdriver/#element-clear

[2] https://www.w3.org/TR/webdriver/#element-send-keys

gowan | 8 years ago | on: Show HN: Chromeless – Headless Chrome Automation on AWS Lambda

shamless plug: i've also written a high level api on top of the chrome remote debugger chrominator [1]

similar idea. chrominator use promises instead of a fluent api. it also follows the selenium w3c spec where possible. it does cool stuff with evaluate and evaluateAsync where it resolves the remote object to something usable.

to be fair there are a few other projects i know about that wrap chrome remote debugger with a high level api:

* autogcd [2]

* ghostjs [3]

[1] https://github.com/jesg/chrominator

[2] https://github.com/wirepair/autogcd

[3] https://github.com/KevinGrandon/ghostjs

gowan | 9 years ago | on: Selenium IDE alternatives for UI regression testing

> Selenium IDE makes you handle timeouts manually which is a major inconvenience.

you can set the implicit wait setting. this will work in most cases but will make the tests slow when you need to test negative conditions. the behavior around implicit wait varies by driver implementation which can be annoying. in general it's better to use explicit waits.

> Selenium IDE only works with Firefox and may not work for sites or web apps that have slightly different DOM structure in Chrome, Safari, and IE.

selenium ide has webdriver playback[1]. if you don't like that you can generate webdriver scripts in c#, java, python, or ruby and run them against selenium server.

[1] http://blog.reallysimplethoughts.com/2013/02/18/webdriver-pl...

gowan | 9 years ago | on: PhantomJS 2.5.0 beta

i built chromium headless_shell for ubuntu 16 in the last 3 months to compare it to my phantomjs 2.1.1 build (cookie patch and ghostdriver selenium 2.53 patch). i was disappointed in what chromium headless_shell had to offer.

good: slightly faster on javascript heavy pages, full dowload and upload support, selenium support for alerts/popups

bad: slower startup, slower average performance, no mobile support, no screenshot support, takes at least 2x cpu and memory compared to phantomjs

for me phantomjs/ghostdriver is faster than chromedriver. plus chromedriver has an annoying click "feature"[1] that can break selenium tests.

[1] https://sites.google.com/a/chromium.org/chromedriver/help/cl...

page 1