HNHacker News
TopNewBestAskShowJobs

phibz

480 karma · joined July 25, 2015

submissionscomments
phibz··on To hook diners, an invasive species of carp gets a new name
They look more like ROUS, Rodents Of Unusual Size, from The Princess Bride. At least that's what I thought when I first saw one.
phibz··on Fran Blanche: This Is Not Legal
The DMCA does not require YouTube to be involved in any part of the judgement. By just being the messenger YT is granted legal immunity for their part in spreading the alleged infringing work. The complaintent is the judge _by design_!

The law is broken and needs to change.

phibz··on Fran Blanche: This Is Not Legal
Not allowing the alleging party to judge the response to the claim would cut down on this sort of thing. But that's not part of the DMCA so YT won't do it. They just care about avoiding liability.
phibz··on Fran Blanche: This Is Not Legal
I believe they are DMCA claims. The exist because it grants youtube imunity in the process. Youtube had no incentive to get involved except for pissing off their content creators. If you can't counter claim/sue then get loud. Let your viewers know.

Edit: reading in another thread that perhaps this is content ID. Not that, that is any better.

phibz··on Soft deletion probably isn't worth it
I've definitely seen soft delete work in practice. A couple things: for small data sets you can implement the naive deleted_at you can hide the records from your users by forcing them to use a view. You can also handle updates on the view to prevent data conflicting with deleted data if you need to.

For foreign key constraints you can set the foreign key to null and orphan the records if the relation is deleted. You could also hard delete them in this case. It depend on your use case.

When the data volume grows or the ratio of soft deleted to normal records is high, you should consider another solution. One solution you suggested, moving the record to a deleted table is a fine one.

The other solution that I've used successfully is to journal your deletions in another table or system. For smaller volumes having an audit table Journaling the data and storing the pk, fkeys, and a serialized version of the record, json works great in postgres, works well. For large volumes or frequent deletions something like Kafka or PubSub work better.

You may very well find others interested in consuming your audit journal to track changes. Updates and even inserts fit great in the more general case.

phibz··on Ask HN: Is attitude more important than knowledge?
The two ideas of knowledge and attitude aren't mutually exclusive. And one isn't necessarily more important than the other. The context matters. But in the context of starting and running a successful business you need more than just skill or a good idea.

I find understanding people and effectively communicating essential skills in business. Also I think starting a business is different from running a successful established business, which is further different from running a large corporate entity. But in all of them you have to have a vision for where the company should go. Your idea should be something people need/want/don't realize they want. You have to be able to outline what's important and be able to get that out of others. You can't do it all yourself.

Though I don't think I'd call those interpersonal relationship skills "attitude".

phibz··on The new wave of React state management
You're probably going to seriously confuse someone familiar with the "actor pattern". Look it up.
phibz··on FBI: Stolen PII and deepfakes used to apply for remote tech jobs
The fact that stealing people's identity is relatively easy, and a major problem is tangential to my statement:

taking a job under someone else's identity is illegal in the US and claiming you were deep faked if caught isn't likely to work.

phibz··on FBI: Stolen PII and deepfakes used to apply for remote tech jobs
Taking a job in the US under someone else's name and social security number.
phibz··on FBI: Stolen PII and deepfakes used to apply for remote tech jobs
You verbally agreed on contract pay rate, payment frequency, schedule, assignment of works, how sensitive information will be handled, whether or not you can subcontract a portion of the work, who provides materials and work accommodations, and a bunch of other important details?

All without a written agreement? I'm surprised you could get people to work with you.

phibz··on FBI: Stolen PII and deepfakes used to apply for remote tech jobs
> I’m in the US. Ain’t got no contract for shit because companies don’t want to be committed to a deal with workers.

Your offer letter usually functions as an employment contract. The thing that spells out your start on a specific date, and we will pay you some amount in some given manner.

It really depends on your local labor laws, which vay from state to state.

phibz··on FBI: Stolen PII and deepfakes used to apply for remote tech jobs
You misinterpreted what I said.

Faking your identity in the US for a job is breaking several laws. Explaining this behavior by saying "I was deep faked" probably won't satisfy law enforcement or the IRS.

Taking multiple jobs under your legal identity isn't in and of itself illegal. But you may be in violation of your employment contract. Meaning it's probably, depends on local laws, not illegal but gives cause to terminate you and possibly be sued.

phibz··on An employee at EpicGames wants me to fill out this questionnaire to use my OSS
Wow who knew Red Shirt Jeff worked for Epic Games.
phibz··on FBI: Stolen PII and deepfakes used to apply for remote tech jobs
I can't see how this wouldn't get caught in the US without significantly more criminal activity on the person's part. If you're salaried then they're going to need an I9, meaning you need a tax ID number. So then are you going to open a bank account in this stolen identity's name or are you going to try and setup direct deposit without a name or just a routing number/account ID and hope tye name mismatch isnt caught?

What about the IRS and employment tax your employer pays going to the wrong tax ID that should be reported to you?

I'm sure in some situations it'd work (1099, physical paycheck, lax process), but it seems like you're just setting yourself up to have to break more laws.

You'd be better off just using your own name and keeping a low profile online.

At least then you'd probably only be in violation of your employment contract.

It's stuff like this that's going to make providing recent bank statements and tax records a more common requirement for hire. :-(

phibz··on SQLite or PostgreSQL? It's Complicated
In postgres there usually no good reason to use varchar unless you specifically want to enforce size limits. If you don't care use TEXT, the performance is the same.
phibz··on Ask HN: Having trouble getting senior applicants, wondering what to do about it
> Take-home technical assignment (~4h) or similar at candidate's choosing

Can you determine I know what I'm talking about and can do the work without doing a 4h unpaid hoop? You should be able to ask probing questions and pretty quickly have a rough idea of if I've worked with this stuff or not.

phibz··on How to Make Rust Leak Memory (Also: How to Make It Stop)
Any idea why Ben hasn't posted in a while?
phibz··on How to Make Rust Leak Memory (Also: How to Make It Stop)
I've heard this called "buffer bloat" to distinguish it from an actual memory leak.
phibz··on Skip the exit interview when you leave your job
A long time ago in a career far, far away:

I talked in an exit interview. I got exactly what I wanted but eventually regretted it.

I was tasked with building a data warehouse to replace our existing reporting process: a multi-day run access database.

I was young, excitable, and very talented. I was a sponge. It was easier to do things by myself than explain how a star schema worked to others, although I tried.

As the project proved successful and the team grew, I desperately wanted more responsibility and leadership. I had built the whole thing from the inception. But my boss and bosses manager, the VP of Engineering, didn't trust me. They lied, constantly moved the goal post, asked for ridiculous hours, expected me to work most weekends, and kept promising you'll be leading this team soon just hang in there.

Things degenerated to the point where the VP of Engineering was actively trying to fire me, but the COO and CEO wouldn't let him. The project was too high value and I built most of it. I know this because he taunted me with it. On two different occasions they tried to hire a replacement. "New guy is your peer. He's not your boss." Later I learned the new guy was told the opposite.

Still throughout the turmoil I had made friends with a many of my coworkers. I became especially close with the IT Director. At one time he out ranked the VP of Engineering and was his mentor. They still talked, but werent close like they used to be. The IT Director also became a kind of mentor to me. He was the first to prod me to leave.

And despite the toxic work environment our data warehouse had become a cornerstone of the companies business. We expanded from fixing a single long running report to being the database of record for all analytics in the company.

Still my title and salary remained the same as when I started the project.

Fed up, I finally got my resume together and found a new job. I had several documented incidents of their misbehavior. Eg anonymously, falsely accusing me of harassment. Or threatening to withhold pay for hours already worked unless some goal was met.

I laid it all out in my exit interview. Especially focusing on the things that could have had legal standing. The VP of HR soaked it all in, nodded and asked probing questions.

A few months went by. I met up with my old coworkers for lunch. They began to tell me how everything changed after I left. The CxOs became hyper focused on the team. HR started sitting in on meetings and executives would randomly show up to stand ups. But most revealing is they shared that the decision had been made by the COO to replace the VP of Engineering. Another VP had been hired and was quietly attending all meetings. The existing VP of Engineering had no idea he was training his replacement.

I was still in touch with the IT Director. I knew he still talked with the VP of Engineering on occasion. I shared with him, "You know that new guy? I have it on good authority that the COO hired him to replace the VP of Engineering." "How do you know" he asked? "I had lunch with most of my old coworkers and they said so."

I was being manipulate and hoping to cause drama. I wanted to cause the VP of Engineering as much grief as possible. No simple "you're fired" for him. This would be messy.

And I got exactly what I wanted. It caused chaos. The COOs plan for a quiet transition had been ruined. Multiple shouting matches ensued. The drama was so bad that the new guy replacement quit.

But what I hadn't considered was the fall out. Multiple of my coworkers really liked the new guy and were hoping he would fix things. After the new guy quit the VP of Engineering decided that switching to PHP from RoR for the front end would fix things. He fired many of my old coworkers.

They were furious with me. They didn't know how but they knew I was to blame. I burned multiple good references, professional acquaintances, and friends.

But most costly was my friendship with the IT Director. It ended our friendship.

I eventually tried to apologize. A few of them accepted my apology but for most the damage had been done.

It REALLY wasn't worth it.

What I really needed was an older more mature adult to guide me. I needed to learn healthy boundaries, how to communicate better, how to LISTEN, and think before I act. These are the skills that I needed and many "engineers" need to improve.

Be secure in yourself. You are enough. You don't need anyone to tell you that.

phibz··on Absolute truths I unlearned as junior developer (2019)
I agree quantity isn't the solution if communication quality is poor.

Communication is more than just talking at people. It's about having healthy boundaries, positive conflict resolution styles, being able to reach a decision quickly and explain it clearly and concisely to others. It'd about anticipating blockers and clearing them, streamlining process to keep things moving, being accountable and presenting security in yourself and your actions even if you might doubt them. But most of all its about listening and letting the team do their jobs.

phibz··on Absolute truths I unlearned as junior developer (2019)
You can't be a coach and a player. It doesn't work. Having technical skills and being able to make or weigh in on big picture decisions is great. But you have to trust your team to do their job, even if it isn't exactly how you would do it. Does it meet the business need? Does it make sense strategically. Is your team staying unblocked? Are you being reactive or proactive? Are your team members growing and improving?
phibz··on Absolute truths I unlearned as junior developer (2019)
I see people get tech debt wrong. I've heard it called sorts of things. My current team thinks it's easy tasks, 1 pointers. I've seen it called sysadmin work that isn't business focused.

In my opinion tech debt is the result of a choice. Tech debt is the remainder of a solution modulo good enough. You choose to do something you consider less than perfect with the understanding that you're just delaying some of the work until later. That left over work is Tech debt.

For example, we need to implement auth on our web app, but let's hard code the permissions and do RBAC later. That's hard and not really valuable with such a limited feature set. RBAC in your web app is therefore Tech debt.

phibz··on The curse of strong typing
Yeah the pacing on this one is a bit slow, especially if you already know these things.
phibz··on We're choosing Rust, and not Go, C++, or Node.js (Feb 2022)
Why does synergy need nodejs and electron for configuration? This seems overkill for something so simple.

Good luck with your rewrite but can we have a return to the simplicity of synergy 1?

phibz··on Ask HN: What to do about ‘Good at programming Bad at Leetcode’
As an engineer who learned programming prior to the proliferation of coding tests, my struggle has been with my own ego. "How dare they use some simple test to judge me and ignore my body of work." This has gotten me a few times. Especially when I wasn't expecting a coding test. Adjusting my attitude and getting more okay with the idea that some companies will want to screen with this sort of thing, has helped. I also felt more empowered by recognizing that I can always decline an unreasonabpe test and that doesn't always mean I will be excluded from consideration. Like most things in life, it's easier if you practice. Focus on good communication skills, and sell yourself the best way you can.
phibz··on Ask HN: Any other self taught devs terrified of interviewing these days?
I'm self taught first programming 36 years ago. I have some college experience in a computer engineering program but I did not graduate.

My experience has been that once someone is a few years in to the industry, their degree or lack of one is largely unimportant. Schools and especially boot camps simply cannot compare with hard earned experience.

I'm never dishonest about my school experience although I do not mention it unless I'm asked about it or someone assumes I have a degree.

Interviews are largely about connecting with the interviewer and getting them to like you, consider you as someone they would want to work with.

Focus on what you have done, how you solve problems, how you work with others. Are you up front when you don't know something? Can you consider another's viewpoint and even change your mind? What is your reaction to making a mistake? Confidence and security in one's self go a long way here. Let your curiosity be infectious.

Interviews are an inexact science and there are plenty of bad or even abusive companies out there. Take your time and try not to take rejection personally.

Try to keep in eye out for what your next move will be. You'll likely learn more and earn more through some job hopping every 2 to 3 years. That's okay.

Practice, practice, practice! Code in your free time. Work on an open source project. Find an itch, scratch it and share the results.

phibz··on ‘Disabled’ is not a bad word. Stop telling people with disabilities it is
My reaction to "differently able" as a disabled person is to think: changing what you call it doesn't change my disability and certainly doesnt change how I feel about myself. If anything it seems lazy and pandering.

I can't do many things that most others can. That's just how it is and I have accepted that. I work with what I have, just like we all do.

Calling it something you consider less offensive doesn't obviate you from treating me with respect and decency. If you want to know something about my disability ask. Be polite and respectful, Understand the appropriateness of the situation and don't obsess on my differences.

When we first met I didn't ask, "wow why are you so ugly?" So maybe asking "why do you limp?" Shouldn't be your first question.

Compassion isn't avoiding offending me, or offending your own feelings.

Compassion is about understanding, hey they can't do some things many of us can or need to do them differently. But they're a person and deserve to be treated like one just like anyone else.

This isn't hard.

phibz··on Zq: An easier and faster alternative to jq
I think of

echo '1 2 3' | jq ....

as creating three separate json documents, each with a single number as their top level "document" , body, or content.

So of course you can't sum them. They are fed as separate documents to the jq pipeline as if you processed three separate jq commands.

Perhaps by stateless you mean no mutuable global state? But it certainly maintains state from the location in the input document to the output of each selector/functor.

IMO it helps if you have a background in some of the concepts of functional programming.

phibz··on Infinite Mac
Out of this World seems to play at full speed on my Samsung Galaxy S20 Ultra. Very cool.
phibz··on Launch HN: Litebulb (YC W22) – Automating the coding interview
> unfortunately going to be 0, simply because there's no way to test for functionality, performance, event logs, if it doesn't compile.

You could always have someone look at their work. Or better yet walk through it with them to try and ascertain their thinking. This is what I do with my team, multiple times week, in my actual job. Seems better than immediately excluding them

← PreviousPage 4 of 8Next →