HNHacker News
TopNewBestAskShowJobs

bquinlan

269 karma · joined January 5, 2014

submissionscomments
bquinlan··on The physics of airplane flight
That's awesome!

I'm not surprised about the angle-of-attack needing correction. The angle-of-attack is defined as the angle between the average chord (an imaginary line running from the leading edge of the wing to the trailing edge of the wing) and the relative wind. Since changing the flap position changes the position of the trailing edge, the angle-of-attack will also change.

bquinlan··on Minnesota middle school students 'seem happy' after cellphone ban
> IMO a teacher being paid $90k a year for 7 hours a day of work, > 10 months a year, should be working hard to improve.

I don't disagree that she should work to improve, but you are using $90K as if it were a lot of money. According to census data [1], the median household income in San Ramon is $173,519/year and the median rent is $2,557/month.

In San Ramon, you can get paid $65,000/year as an assistant manager at Starbucks without getting a 4 year degree plus teaching credentials.

Plus, how is she earning so much? The San Ramon teacher salary schedule is public: [2]

[1] https://www.census.gov/quickfacts/fact/table/sanramoncitycal...

[2] https://www.srvusd.net/documents/Employment/Employment-Resou...

bquinlan··on BART ridership is still down nearly 70% from pre-Covid levels
In my social circle there is a perception that the BART is increasingly unsafe and some people who previously used the BART to commute from East Bay to SF are now driving.

Their perception seems to be born out by the data:

From the Bay Area Rapid Transit Police Department [1]

Aggravated Assault (2019): 112

Aggravated Assault (2022): 114

Relative increase (2019 -> 2022) adjusted for ridership:

114/112/0.3 = 3.39x

[1] https://www.bart.gov/sites/default/files/docs/2023-01%20Mont...

bquinlan··on Perl Data Language: Scientific Computing with Perl
I think that the comment that you relied to meant that it is easier for scientists to collaborate using a single language rather than many. For some domains, Python has emerged as that single language. That doesn't mean that Python is the best language.
bquinlan··on Scalable, Resilient Brainfuck
Google App Engine originally used a custom containment strategy.

Back in the day, I was on the team that added Python 2.7 support to App Engine and we were experimenting with a different containment approach.

But Python is a complex language to support - you need to support WSGI, to support dynamic loading (for C extensions), a reasonably performant file system (Python calls `stat` about a billion times before actually importing a file), etc.

So our original runtime was actually Brainf#ck. So, at once point, if you had guessed that Google supported it, you could have written your (simple) webapp in Brainf#ck and Google would have scaled it up to hundreds of machines if needed ;-)

bquinlan··on TF-Coder, a tool that writes tricky TensorFlow expressions
Work for Google - have never worked on Tensorflow

I tried:

  inputs = {
      'matrix': [[10, 20, 30],
                 [5, 5, 10],
                 [2, 2, 1]]
  }
  output = [[85/10, 85/20, 85/30],
            [85/5, 85/5, 85/10],
            [85/2, 85/2, 85/1]]
And got:

  tf.cast(tf.divide(tf.reduce_sum(matrix), matrix), 
          tf.float32)
But now I realize that is pretty close to one of the examples. Did anyone try something complex?
bquinlan··on If founders treated their investors the same way they treated their employees
>I could be a cog in a giant corporate machine, or I can have a measurable impact where I work.

I think that point can support working for either a big company or a small company depending on what type of impact you are looking for.

I've worked for startups in the past and have had a huge impact on the startup but almost no impact on the outside world because the startups just weren't tackling very visible problems.

Now I work for Google and I have basically zero impact on Google i.e. basically nothing that I can do will ever move the dial in terms of Google's revenue, etc. But I've worked on several projects that have had a big impact outside of Google. For example, I was on a small team (3 people) that developed the Python 2.7 runtime for App Engine (this was a while ago) and I was on another small team that implemented the server-side infrastructure for the Google Home. I also developed the screensaver for Chromecast - which is a tiny tiny project - but still millions of people love it.

bquinlan··on Google interviewing process for software developer role in 2020
Bias alert: I work for Google.

I enjoyed the write-up but I have a small correction to make about "Frustrating moment #2. You can pass every interview with A grades and still not get a job, because a senior Googler decides that you're the wrong person to be hired."

The author is referring to hiring committees, whose job it is to take the feedback from every interview and make a hire/no-hire decision based on the blended results. I've done hundreds of interviews at Google and I've never seen universally positive interview feedback result in a no-hire decision.

The problem is that most feedback is not universally positive (or negative). So the hiring committee has to dissect the feedback and try to figure out if the identified negatives are (1) credible and (2) sufficient to be disqualifying. That can be pretty difficult (especially if the feedback is contradictory) and why a committee does it rather than the recruiter or hiring manager.

bquinlan··on Show HN: Python package and CLI to generate stylistic word clouds
I created word cloud as a Valentine's Day gift this year:

- https://raw.githubusercontent.com/brianquinlan/word-cloud-va...

- https://github.com/brianquinlan/word-cloud-valentine/blob/ma...

My implementation (https://github.com/brianquinlan/word-cloud-valentine) is a lot less sophisticated than stylecloud but I think that I had a few interesting ideas about text extraction.

I used nltk to extract only nouns and to do word stemming (e.g. so that "time", "times" and "timing" are only counted as one word).

I also experimented a lot with various method of determining word size i.e. size proportional to frequency, size proportional to log(frequency), size proportional to sqrt(frequency).

bquinlan··on Shields.io: Quality metadata badges for open source projects
Nice! My approach is very similar except that I have width mappings for non-ASCII characters. Also, since DejaVu Sans (the font that shield.io, pybadges and healthchecks use) is heavily kerned, I have a table of kerning widths.

You can also opt to use precise text width measurements (important for Arabic, Chinese, etc.) but then you have to have the font file available on your system.

bquinlan··on Shields.io: Quality metadata badges for open source projects
I created an equivalent project for people who wanted to create the same style of badges from Python (or from the command line): https://github.com/google/pybadges

Python example:

  from pybadges import badge
  s = badge(left_text='coverage',
            right_text='23%', 
           right_color='red')
  # s is a string that contains the badge data as an svg image.
  print(s[:40]) # => <svg height="20" width="191.0" xmlns="ht

Command line example:

  python -m pybadges \
    --left-text="coverage" \
    --right-text="23%" \
    --right-color="red"
But there are lots more formatting options documented on the project page.
bquinlan··on Anyone else thinks that Whiteboard interview is just covered ageism?
I don't think this can be overstated. If you don't enjoy the interview process, you probably don't want to work there.

I disagree with this. The interview that I enjoyed the most was with founders who took me out for beer. We talked a bit about software but most of the discussion was small talk.

After a few months of working there, I realized that some of the people in the office didn't really have any qualifications except "liking beer" and it wasn't a professionally interesting place to work.

My least pleasant interview experience was with Google but I enjoy working there.

bquinlan··on Bullshit I had to go through while organizing a software conference
My dad has a friend who was a fish wholesaler. So, when he went to the docks to pick his own fish, he picked out two large coolers for me (I wouldn't know how to pick quality fish myself so that was a huge value-add).
bquinlan··on Bullshit I had to go through while organizing a software conference
They were Python conferences but they aren't being held anymore. You could check out PyCascades, which happened in Seattle this year.
bquinlan··on Bullshit I had to go through while organizing a software conference
I've been a co-convener for two Python conferences in Vancouver.

The conferences were small (<200 people) but I don't remember the organization being as stressful as the article describes.

For me, the key sources of stress were:

1. hoping that tickets and sponsorship would cover our costs (at some point you have to pay for your venue, flights for your keynotes, etc. and this happens before ticket sales open). I think that we lost a few hundred dollars on the first conference and donated a few hundred dollars to the Python Software Foundation on the second one.

2. the BBQ. For both years, I arranged a beach BBQ but didn't have enough budget to deal with contingencies in the event of rain (remember this is Vancouver so the chance definitely exists). My plan was to refund attendees if we canceled the BBQ but that would have been thousands of dollars out of my pocket and lots of disappointed people. Fortunately, it didn't rain in either years.

I would say that convening a conference in a city where you have lots of connections really helps. For example, I was able to buy salmon direct from the docks for the BBQ because I knew someone who was willing to help me. I also used my family as the chefs (https://photos.app.goo.gl/C6yNzqMnBG98GxE36).

What I do remember being hard was not the planning but going without sleep during the conference itself. As a convener, I had to be at the venue before any attendees arrived, had to leave after the last attendee left and then still had to deal with issues, etc. for the next day.

Still it was tonnes of fun!

bquinlan··on Why I quit a $500K job at Amazon to work for myself
The declining motivation with increasing scope really resonates with me. I often feel the same.

And I feel that his career trajectory is pretty typical - you start building cool stuff in a small team and you end up trying to coordinate large groups of people (who a typically the managers of the people who will build the cool stuff).

bquinlan··on Perl 11
If that is the scenario that you care about, then you can use profile guided optimization in statically compiled languages.

Clang has instructions on how to do so here: https://clang.llvm.org/docs/UsersManual.html#profile-guided-...

bquinlan··on Algorithms Implemented in Python
Also, the space and time complexity analysis is incorrect for Trie: https://github.com/TheAlgorithms/Python/blob/master/data_str...
bquinlan··on “There is, unfortunately, no such thing as a truly neutral stance on inclusion”
I'm a friend of Rafael and talked to him just before he announced that he was leaving LLVM.

I actually disagree with many of Rafael's political views but I think that some of the comments in this discussion are unfair. For example, one poster assumed that Rafael is a member of the right - he is actually a member of the BC Green Party, which is firmly on the left.

The LLVM code of conduct requires that people be welcoming to others of any religion. I don't want to share too much about Rafael's personal life but he has reasons why that requirement is problematic. Consider that some religious beliefs make women chattel that can be abused at the discretion of their "owners".

bquinlan··on “There is, unfortunately, no such thing as a truly neutral stance on inclusion”
I think that classifying Rafael as a member of the right would be a gross simplification. Rafael is actually a member of the BC Green Party (https://www.bcgreens.ca/), which I'd say is firmly on the left.
bquinlan··on Larry Page Deposition in Uber vs. Waymo
The disposition makes it look like Levandowski was very difficult to work with:

Q. "Anthony threatens to leave the team if he isn't the single leader." Do you see that.

A. Yeah

...

Q. Sebastian says:

"If he is the single leader, a good number of team members will leave." Do you see that?

...

There is more but copying and pasting from the source is really hard.

bquinlan··on South Australia teams with Tesla, Neoen to build world's biggest Li-ion battery
Isn't 129MWh of capacity a bit low for 100MW of peak discharge? That would provide 77 minutes of power at peak discharge. Does anyone have any insight into the rationale for this capacity?
bquinlan··on Canada's top court backs order for Google to remove firm's website from searches
I disagree that free speech is binary.

For example, I think that a country can be said to have free speech if it disallows people from promising to compensate someone in exchange for murder.

bquinlan··on Curl is C
Are you claiming that Module-2 is memory safe?

What about:

  MODULE Boom

  VAR Foo : POINTER TO INTEGER;

  BEGIN
    Foo^ = 123;
  END Boom.
bquinlan··on Acing the technical interview
I wanted to learn Rust but didn't have a good project in mind. So I solved a bunch of interview problems: https://github.com/brianquinlan/learn-rust

Solving those problems gave me a reason to touch lots of parts of the language and was also intellectually interesting. See, for example: https://github.com/brianquinlan/learn-rust/tree/master/i18n

bquinlan··on Bus Drivers Working in Silicon Valley Struggle to Afford Rent
100 Moffett, Mariposa Heights, and 1101 West are all four-story of greater condo complexes. There are probably others that I'm not aware of (I work in Mountain View but don't live there).
bquinlan··on Grokking Python 3’s str
You can iterate over Grapheme clusters using the standard library: https://doc.rust-lang.org/1.3.0/std/str/struct.Graphemes.htm...
bquinlan··on How Hash Algorithms Work (2007)
When I read that sentence, I assumed that the author meant that the computed hash for an input must be deterministic.

But she doubles-down on the uniqueness claim later:

Each hash is unique but always repeatable The word 'cat' will hash to something that no other word hashes too, but it will always hash to the same thing.

This is such a large misunderstanding of hashing (as well as being obviously impossible) that it is hard to trust the rest of the article.

bquinlan··on Lessons learned as a React contractor
It took me a while to find the license. To save others time: http://cx.codaxy.com/CxLicenseAgreement.pdf

I don't understand whether this license is reasonable or not (setting aside price) - which is a problem. Most developers will not hire a lawyer to parse the 7 pages of legalese.

bquinlan··on Rust and the Future of Systems Programming [video]
This might be too much like Project Euler but I started by solving some common interview problems using Rust.

Try solving the problems without looking at the solutions first: https://github.com/brianquinlan/learn-rust

Here is a rough rank of difficultly: https://github.com/brianquinlan/learn-rust#understandability

Page 1 of 2Next →