HNHacker News
TopNewBestAskShowJobs

wtroughton

43 karma · joined November 8, 2018

submissionscomments
wtroughton··on Vietnam bans unskippable ads
I'd make the case that turning their citizens into consumers like America has done could be considered a national security risk.
wtroughton··on How to start a school with your friends
Education does not operate in a vacuum. Many students are incentivized by the social accreditation of completing a program. Institutions need some way to qualify that teaching is actually being done. Whether it be an examination, a certification, or bringing a project to completion.
wtroughton··on My Time Working at Stripe
“A shared fiction in the world to help frame interactions between people”. You sir are a natural philosopher.

I think what’s universally important is to keep active and engaged in what we’re doing. Some of us have to tell fictions that what we’re doing has meaning, whilst others just know what brings meaning to their life.

wtroughton··on Why doesn't advice work?
Anyone else fall into the trap of procrastinating watching YouTube or pg’s essays for advice?
wtroughton··on The CIDR trie data structure
My internship project involved a tool to look up individual IP addresses as well as checking a range of address blocks. I ended up implementing the trie data structure, which performed well in terms of storage and run-time efficiency.

My initial approach was to store IP addresses into a hashmap but if the average query was to check address blocks like /24, then it'd turn out to be very poor data structure to search through.

wtroughton··on Testing a Formally Verified Compiler
A compiler is a theorem prover, sure, but compilers vary in terms of expressiveness of the propositions it is capable of proving (a Python interpreter would be a very weak theorem prover ;) )

Consider: is there an equivalent concept of Turing Completeness for compilers with respect to computational propositions?

wtroughton··on Writing well
Writing only becomes better when you go on a journey of identifying your own intentions, and confronting your own trepidation.

Thanks for writing this, I've been struggling to write about fallacies in software verification for over a month now.

I realized that I wasn't writing for myself, or even folks who are likely to agree (mathematicians, logicians) with my viewpoint. I was writing to convince and justify, instead of examine, teach, or tell.

wtroughton··on Programmers: Stop Calling Yourselves Engineers
I don't agree with many of the points made in the article in regards to certifications (formal methods aren't there yet as an industry), but I did want to touch on that fact that "software engineer" is an aspiration term and many of today's "best practices" are pseudoscience, not based on something that can be provable.
wtroughton··on Programmers: Stop Calling Yourselves Engineers
I also disagree with the author about certifications and the attempt to bridge similarities with other established engineering professions.

I think what it important in this discussion is the fact that "software engineer" right now is an aspirational term and that we don't use formal methods to verify software behavior, and instead rely on changing best practices.

Egineering implies a more rigorous process than most software really gets.

wtroughton··on The Heart of RISC-V Development Is Unmatched
> For debugging and monitoring, developers can access the console output of the board through the built-in microUSB type-B connector.

As a software developer who's interested in this but has no experience with low-level hardware interface, how does one debug with the microUSB connector? What displays the console output?

wtroughton··on Pandoc – A universal document converter
Probably overkill, but I use Pandoc to generate tailored resumes for roles and jobs I’m interested in.

I keep a list of all my skills, experience and education in a YAML file and have a LaTeX template that I clone when creating a new resume. Then it’s just a matter of replacing the template fields with YAML metadata and running Pandoc.

wtroughton··on Competition and Quarter-Life Crises
I agree wholeheartedly of doing something that you believe is valuable.

The process of figuring out what's valuable is different from person to person. Some people know from a young age. Others figure it out in college or post-education. My values have been shaped and refined over the course of high school, college, and work. The high level picture may not be clear, but I believe it's beneficial to hone in on what you find valuable and see where it takes you.

wtroughton··on Ask HN: Who is hiring? (October 2020)
Should engineers from new grads to senior levels apply under Principal Engineer listing?
wtroughton··on Having an alter ego can reduce anxiety, benefit confidence: research
Anyone familiar with Breaking Bad? Walter White goes under the alias of Heisenberg. When he’s Walter, he’s anxious and fearful. It’s such a contrast compared to the calm, calculated Heisenberg.

The writers did a phenomenal job of using an alter ego to slowly change the character from Mr. Chips to Scarface.

wtroughton··on Ask HN: Why does your company run corporate events?
Examples that I can think off the top of my head are 1) all-hands and 2) networking events.

These tend to be formulaic from my experience, they consist of a catering plates full of finger foods like sandwiches, cheese, chips, cookies.

wtroughton··on Ask HN: Why does your company run corporate events?
When I worked at Amazon, our team decided to have a theme for each sprint consisting of breakfast items.

Product launches & demos were small celebrations at the end of the sprint. So one sprint was Croissant Week, another may be Donut Week, and the scrum master would be responsible for bringing in breakfast at Demo Day.

We'd get breakfast from a local bakery or cafe, and because our team was 10-12 people, there wasn't a need for a large delivery.

wtroughton··on Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
100% agree that in object-oriented programming, only the object itself should care about its internal state. The object should know about its behaviors and what state changes are actually valid.

In Java, many projects overuse getters and setters. Getters and setters break encapsulation. More so public setters since they allow any piece of code anywhere can change the value of an object's internal state at any time.

Consider a class Person. A person has a name, SSN, salary. Let's assume name and SSN cannot be changed. What about salary? We don't have to add a setSalary() method. Instead, we should have something like: public void acceptNewJob(Job newJob) { salary = newJob.getSalary(); }

wtroughton··on Ask HN: What project/startup ideas do you have that you're unsure about?
Tech courses targetting recruiters.

I'm interested in this as a beneficiary not as a direct participant. I wonder if recruiters would be interested in a course like this?

wtroughton··on Formally Specifying UIs (2018)
Thinking of interfaces as state machines can be valuable.

An area that I think about a lot is how effective are companies at spreading useful information to the people who can best utilize that information. Internal tools are interfaces to information. Wikis, mailing lists, code repositories, Q&A boards, chat rooms are all different interfaces that I commonly search through for useful bits. A formal spec would help us quantify how effective our company is at spreading information. What information is commonly rewritten, what pages are hard to get to, which internal tool does a page of documentation belong to, etc.

wtroughton··on Sequel Pro – Open source macOS native MySQL GUI client
I love SequelPro but I've been thinking about switching to TablePlus from SequelPro for quite some time since SequelPro isn't available on Windows / Linux.

Do you know how TablePlus clients compare on Windows and Mac? Been wondering since they're both built natively instead of using cross platform development like Electron.

wtroughton··on Ask HN: How do you keep track of your creative thoughts?
I also use Things and Quiver (note taking) for 2 weeks now and it has grown on me.

I use to write creative thoughts in a text document or Notes on iOS. I never revisited these notes. The most important thing is having a dedicated system that you revisit daily to revise and refine the ideas / tasks.

That meant that the system I used needed to meet these criteria:

1. Accessability: I do my planning throughout the day, in bed, on the train, at work, etc. A physical notebook doesn’t work for me because there was too much friction in getting a notebook and pen out while in bed or on the subway.

2. Synchronization: Working on Mac / iOS. Thorough notes are taken on a laptop while on-the-go notes are needed for quick scribbles.

3. Indexing: Having a proper file system to organize and categorize thoughts. I’ve found that Things works good enough for 90% of notes. For other uses, I supplement it with Quiver for code related notes or food recipes.

4. Thoroughness: Having ability to write quick one-line notes or in-depth notes that sufficiently captures my thought is important.

wtroughton··on Please do not attempt to simplify this code
This. The code base should be the authoritative source of the behavior of the system. The comments should be the authoritative source of what is expected of the system.
wtroughton··on Code2vec: learning distributed representations of code
I wonder the model is trained purely on the AST or if there are other inputs / metadata from Github that the model uses for prediction.
wtroughton··on Code2vec: learning distributed representations of code
This is a really cool demo. For common patterns like get, contains, ends with, etc, this could be helpful in code representation without having to go into the details.
wtroughton··on Margin Notes: Automatic code documentation with recorded examples from runtime
I'm surprised that there isn't more adoption of tools like this to help developers understand code.

Even for statically typed languages like Java, I find the existing tools lacking in helping me understand the code thoroughly. I mostly rely on the IDE to navigate code which I then mentally jot down the behavior of the code segment. Writing code this way is way too error-prone, and unfortunately testing isn't foolproof either.

It isn't until something breaks that we really begin to learn the nuances of the system...

wtroughton··on Ask HN: Do you like to see “Back to top” buttons on websites?
I use Vimium plugin to navigate web pages. gg brings to the top of the page whereas Ctrl + G brings me to the bottom.