HNHacker News
TopNewBestAskShowJobs

remar

148 karma · joined June 19, 2014

submissionscomments
remar··on Fragmentation, MTU, MSS clamping and tunnels (2014)
> I'm still not entirely sure what was going on, but in Azure

FWIW, from someone who used to work on exactly this; neither did most of us :)

The org had fired^Wtold most of the network engineers to either interview for dev positions or leave. That left the rest of us with only dev experience to have to learn DC networking from scratch (without any mentors) while also building the infra to automate it, because, well software engineers should be able to learn network engineering overnight right?

I'll just say this, most of the devs I worked with had never coded before in a production environment, didn't know how to test their code (failing tests that would somehow pass in ways you'd think these were contest entries), and didn't even understand basic concepts in programming languages (I'm talking things like references vs values...).

On top of this, the tooling and infrastructure was so bad, even if you wanted to be productive you'd be fighting things like your build environment just randomly breaking after a git pull and having to reinstall visual studio or reformatting windows to fix it.

From what I've heard from people I still know on the inside, things haven't changed much (I'm very grateful for $MSFT though...)

remar··on Ask HN: In HN threads is it possible to prevent long URLs from being truncated?
Right, but I'd prefer not to have to do that if a comment cites multiple links that I want to queue for later.
remar··on Malloc Geiger Counter
This is one of my biggest pet-peeves. Whenever I have to help people debug performance issues with their machines it's almost always due to a bottleneck on their disk.

For my family members that have laptops with those shitty 5400rpm HDDs with 8MB read/write buffers - I can't blame them and just tell them to upgrade to an SSD. I've witnessed Windows update hogging 100% of the disk activity for 30+ minutes after reboot on these machines until they're actually usable...

But for my developer friends who I figure should know better, they never seem to think of looking into disk activity. It's almost always things like applications hanging/blocking on disk due to lots of different processes trying to read/write at the same time on an HDD or "small" RAM size causing constant thrashing on a disk due to memory being paged in and out of swap constantly.

remar··on Malloc Geiger Counter
I've been meaning to get around to basically plagiarizing this UI for a personal linux system monitoring tool.

I've tried a bunch of the popular linux disk/resource usage monitors but I find none are as flexible/nice to look at as Windows' Task Manager overview graphs and Resource Monitor. Any time I'm using a Windows system I will dedicate a monitor to just having Resource Monitor's disk usage tab open (although it can result in nontrivial CPU usage under certain disk access patterns).

remar··on American Academy of Sleep Medicine calls for elimination of daylight saving time
Very interesting, thanks for sharing!
remar··on American Academy of Sleep Medicine calls for elimination of daylight saving time
I suffer from this too (only formally diagnosed with sleep apnea though) and found that 0.5mg of melatonin about 20-40mins before I want to go to sleep has helped me align my sleep cycle to a 24hr schedule. I also get a consistent 8hrs registered on my CPAP so it doesn't seem to interfere with my sleep quality/duration either.

I buy melatonin that comes in 1mg pressed/powder pill form and just bite it to split it in half and toss the other half back in the bottle.

I've been doing this for 2 years now and have never had to change the dose. At one point I even considered seeing if .25mg would be sufficient but depending on the brand sometimes the pill crumbles up too much so I stick with .5mg. I've used Nature's Bounty and Webber Naturals and both brands seem to work the same for me.

I really wish I had figured this trick out a lot earlier in life as it would've saved me from missing out on a lot of opportunities in my career.

(more detail about my experimentation below)

Before I discovered this I tried everything from reducing screen time before bed, cranking up night mode in flux/redshift, abandoning coffee/caffeine entirely, working out earlier in the day instead of evenings, etc. _Nothing_ worked for me - my brain would remain wide awake and I would have to stay up until 5-7am before I even began to feel tired (where I would have to wake up between 10-11am for work).

I had even tried melatonin before too but it was a 3mg pill and it would produce very erratic results in my sleep quality. I'd sometimes wake up drenched in sweat or wake up feeling very groggy for hours so I figured melatonin just wasn't for me. It wasn't until I came across some advice on /r/n24 or /r/dspd to try .5-1mg of melatonin that I decided to try again (IIRC it was a post about how doses >=2mg can actually result in melatonin overdose and result in the types of symptoms I was observing - TBH I didn't really bother verifying that info and just figured I'd try .5mg and see what happened as I was desperate for a solution).

And for the record, with this approach I haven't had to make any other modifications to my daily routine. I continue to lift heavy in the evenings and drink 1-2 cups of drip/espresso every day.

The only situations I've noticed where this trick falls apart for me are:

1) if I ever try to push past that 20-40min period where I start to get drowsy, it results in me being awake again. This rarely ever happens and I usually just end up sleeping about an hour later. I make sure to take the melatonin just before I begin flossing+brushing and get in bed right after

2) for some reason drinking a can of coke/pepsi in the evening will keep me wired awake all night. I've had cups of coffee in the evening rarely which never had the same effect, but coke/pepsi will...

Anyway, just thought I'd share since this made a huge difference in my life - maybe worth trying/experimenting.

remar··on Being OK with not being extraordinary
Well, did you train at commercial gyms or powerlifting/weightlifting gyms? What if the lifters just happened to be on high volume blocks, or tapering for a meet whenever you visited?
remar··on But I was helping the compiler
Do you have a quick explanation or resource that explains why [1] is true?

Just curious as I've wanted to get better at being able to understanding assembly output by gcc/clang but don't think I've come across this advice explicitly before.

remar··on KeePassXC 2.6.1
I switched to KeePassXC because KeePassX had a bug where you could silently lose data if you made changes to the notes section of an entry and hit `Esc` without remembering to save.

KeePassX won't prompt you at all and silently drops all those changes, whereas KeePassXC will ask what to do.

KeePassXC also seems to immediately save changes upon adding new entries whereas KeePassX requires an explicit <ctrl-s>.

remar··on Linux 4.19
Can you provide more context re: "The recent reaction from Valve is telling, I think Gabe is fearful about the current state of affairs" ?
remar··on Linus Torvalds apologizes for his behavior, takes time off
From what I understood of OP's description of the process, it sounds a lot like the sort of awareness that's cultivated through long-term and consistent practice of meditation (implicitly or explicitly depending on the school of practice).

I noticed after a couple months of initially starting daily zazen practice (just 10-15 minutes every night), that I went from reacting in a way that was originally: event -> (usually 'extreme') reaction, to something more like: event -> stepping back/observing what would've originally been my reaction -> choosing to engage with it or not. After a year of practice, this new pattern of reacting basically became muscle memory and would happen _even when_ I sometimes wanted to strongly react to things (i.e. music/art/social situations with friends/etc ).

After about 4 or 5 years of consistent practice I caved into what I had even read was a common pitfall for most practitioners in thinking that I had "achieved" most of the "benefits" I could from meditation and just stopped practicing all together. It took about a year for most of these benefits to even start decaying, but after about that 2 year mark, my pattern of thought/reacting had almost entirely gone back to how it was before I had ever started practicing.

I'm thinking there has to be some happy medium where you have the ability to observe as well as engage, but I'm not sure what the original philosophies of the practice actually "advocate" for as I never really delved too deep into the literature on this.

I think this was actually one of the main reasons I stopped practicing, because I was wondering if my 'artistic side' was being 'dulled' by meditation. This is still a question I want answered and have been wondering if it may be worth doing a deeper dive into the literature/having a teacher guide me through the rest of this journey.

remar··on NYC Mesh – community-owned network to replace your current internet connection
Could you maybe elaborate on some examples you have in mind?

I'm strongly considering accepting a job offer for a company in NY since I'm starting to get bored of living in Seattle. I figure moving to NY would mean being surrounded by more people and having more opportunities to collaborate on projects like these.

remar··on Observations on the testing culture of test-driven development
Does Pivotal have a list of resources/references to help new hires ramp up on TDD practices and principles that you can share?

My current plan is to finish reading and working through the examples in 'Growing Object Oriented Software, Guided by Tests' as that seems to be a very highly recommended book.

remar··on Show HN: I made a tool that made me faster at Git
He's referring to the vi command sequence he would type to amend his command, i.e. OP has 'set -o vi' in his shellrc or 'set editing-mode vi' in his inputrc

    # x| = cursor is in insert mode, after char 'x'
    # |x| = cursor is in command mode, on char 'x'
    # (<keys>) = keystrokes entered resulting in prompt on next line

    $ git ci -m "<str>"|    (<CR>)
    $ |                     (<Esc>k)    # puts shell prompt into command mode (<Esc>) and cycles upwards to previous command (k)
    $ git ci -m "<str>|"|   (F-)        # from current position, reverse search (F) and stop on first occurence of '-'
    $ git ci |-|m "<str>"   (aa)        # cursor is on '-' char, append (a) 'a', i.e. transition into insert mode by advancing cursor after current char, then insert 'a' literally
    $ git ci -a|m "<str>"   (<CR>)      # execute command
    $ |
remar··on Ten Years of Vim
Most of the people I've talked to who gave up on trying to learn vim didn't even know vimtutor existed.
remar··on The health care toll today’s work culture exacts on employees
I agree, I've been dealing with the same issues myself for the past 3 years and have just now started to emerge from it and actually have the energy to reach out to others.

I've started the conversation with the peers that I know well at this point and have encouraged them to start looking after their own mental+physical health, seeking treatment/help, because frankly, no one in my org's management chain cares about the consequences they have on others' wellbeing.

What sort of frightens me is that the more I look around me the more I realize that a lot of people seem to be having issues with mental health and stress - some are just better at hiding it than others.

remar··on The health care toll today’s work culture exacts on employees
I always wonder what the life experiences and world view of someone like the person you're replying to, consists of.

The older I get, the more apparent it becomes that most of my peers and friends have lived extremely "privileged" lives solely based on the freedom of choice that they've had over certain aspects of life. In most cases the source of the privilege is a combination of well educated guardians and money.

I find when talking to these people, they can never seem to fathom why someone can't just simply "get out" of a situation like this, or don't seem to understand what it could possibly be about their upbringing that lets them see the world this way or gives them a certain advantage. A lot of them seem to just see this privilege as a scalar value that just corresponds to a net worth, rather than seeing it as this incredibly powerful resource that can seed safety, well-being, knowledge, personal skills, mental stability, ... the list goes on.

remar··on The health care toll today’s work culture exacts on employees
I can't speak for whether or not this behavior can be trained "out" but I can share what I have noticed and my own personal experiences.

On the part of people being trained, as I mentioned in another comment, I've seemed to notice that a lot of my Indian and Chinese coworkers, for probably cultural reasons, seem to have this sort of "respect the decisions of 'elders'" mentality and see it as extremely confrontational to disagree with decisions even if in their personal experience they know or have faith that it won't work.

My personal issue was always that I didn't actually know enough about my domain (distributed systems/"backend") to sometimes refute decisions that I had a gut feeling were bad (for example, never had seen anything like a proposed solution being done that way in the open source community or outside of our team -> red flags starting to go off), or that the people who were in my management chain or even more senior coworkers, would refuse to teach/mentor me or even point me toward the correct learning resources.

I ended up spending about 3 years of my free time outside of work learning as much as I could about these subjects (operating system internals, database engines, learning the network stack inside and out, distributed systems primitives, etc etc).

What did I find once I actually started questioning people based on this new knowledge I had? Not a lot of them actually knew what they were talking about. They either couldn't teach me because they themselves didn't know, or they were just afraid to say that they didn't know these things and didn't want to look "stupid".

Long story short, this was the "process" that personally made me extremely confident in being able to call people out on their bullshit since I actually had the means to defend myself objectively.

As a side note, going through this process of intense learning also made me realize that _most_ people don't know any of these things but like to talk as if they do, rather than just admit that they're not experts or unfamiliar with it...

remar··on The health care toll today’s work culture exacts on employees
I'm sure you're aware of this, but a lot of people just don't have the financial freedom to even begin thinking about a decision like this, or it ends up requiring a lot of energy to make that plan viable. And as you've probably experienced, energy is not exactly abundant after a day/week/month/etc in an environment like that...
remar··on The health care toll today’s work culture exacts on employees
I've had the chance to see the toll that a stressful environment (big tech company) can have on physical and mental health - I've experienced it personally and noticed it in others that I work with.

The part about a big tech company being a stressful environment isn't the thing that surprised me, but rather people's responses to how they react to either being on the receiving side of the stress, and management's failure to respond to this or even try to talk about it.

The thing that bugs me the most about the entire situation is that most of the stress that seems to exist, mostly exists because of people who have no idea what they're doing, make decisions they have no business making. Then you have engineers that either come from cultures that are high in agreeableness, or they've never been very assertive themselves and just accept these decisions, thinking it's a situation of "if I don't do this I'm going to get fired".

Most of the people I work with don't even consider the option of just taking an extended period of time off to prevent being burned out because they're basically tied to their employment due to work visas (you guessed it, Indian and Chinese workers) and a lot of them are trying to support family back home. So even leaving their job and taking extended time off isn't a viable option.

Don't even get me started on how I've seen people's physical and mental health completely deteriorate. I know lots of people in my organization that are extremely depressed and wouldn't even be the least bit surprised if I heard they ate a bullet tomorrow.

This whole industry has just motivated me to work to achieve financial independence/early retirement as soon as I can just so I never have to think about working with incompetent people in my life again, or at least, have the financial freedom to cut those relationships once they do arise. It sucks because I know I'll be working on tech related projects for the rest of my life, but I have to ignore the desire to work on things that will actually make a difference so that I can build up that nest egg to have the financial freedom and peace of mind to actually pursue it.

remar··on Is Loneliness a Health Epidemic?
I've never really understood how people seem to socialize between work sets. I've tried and it just completely kills my focus and momentum between sets.

I've noticed the people at my gym who seem to talk the most are the ones who don't really come to train, but to just casually exercise. They don't seem to be following a particular program, or even know what they're doing when it comes to performing certain lifts etc.

remar··on Productivity in 2017: analyzing 225 million hours of work time
Just want to piggy back off this and throw this out as a PSA: if you find you're constantly feeling tired even after making changes like improving sleep hygiene, exercising, etc, try getting a sleep study done.

I ended up being diagnosed with sleep apnea and once I started using a CPAP device and got used to sleeping with the mask on (took about 1-2 months), it was the difference between me being completely awake and having the energy to work on challenging things immediately after waking up vs feeling like a zombie for the first 3-4 hours every day.

I've never really had problems with "motivation" or discipline so I can't really speak on that, but getting this diagnosed and resolved has completely changed my attitude and capability for taking on new problems and not feeling "burnt out" all the time.

remar··on Welcome to Linux Journal 2.0
How exactly would an entity that makes such a claim, as in this case of "we don't log access", be able to allow external parties to verify this without handing over access to their infrastructure for manual inspection?

I've read a little about zero knowledge proofs, but don't really know much about the subject to know if it could be used to verify these sorts of claims.

remar··on Ask HN: How can I become a self-taught software engineer?
Would also suggest this route if you're the type of person who prefers a "bottom-up" style of learning, as in, starting from the absolute primitives and incrementally increasing your toolbox of knowledge with a combination of learning more primitives, and learning how to compose those primitives.

Learning basic computer organization (through nand2tetris - highly recommend this project!), while cultivating your intuition for what's possible in the world of data processing/manipulation (by learning algorithms and data structures, and the formal language of how to reason about complexity in this domain) will give you a huge advantage over the school of people who refuse to ever delve into the "implementation details" and just abstract everything away.

Learning the fundamentals of operating systems, networking, and database theory, IMO, also pays off immensely. I can't tell you how many thousands of engineering hours I've seen wasted because of engineers I've worked with who haven't taken the time to learn these primitives making horrible decisions in either "using the wrong tool for the job" or not even having the knowledge to reason about the feasibility of a proposed solution... and this is at a "big 4" company.

It's a lot harder to buy into "hype", or be sold on bullshit in this industry when you're able to decompose a system into its most fundamental elements and have the tools to reason about them.

remar··on Clang 5 in a Docker container for C++17
This is actually one case I've been thinking of using docker for, that is, having a development image for your project's build environment to provide a consistent base that has all the development libraries installed and doesn't require any fussing around with library versions.

I'm sure with certain languages/runtimes you can leverage the package/dependency manager to serve the same purpose, but I imagine having a docker image for this would mean everyone's using the same base OS with the same installed library versions. This way anyone who wants to contribute to your OSS project can clone the repo, run a simple command to initialize the dev environment, and start hacking right away.

As an aside, I completely agree with your sentiment about trying to learn about the actual tech rather than just being sold on some sales pitch targeted towards less tech-savvy crowds. The best "solution" I've found for this problem myself is to educate myself as much as I can on the fundamentals of the problem space and try to reason about that decision myself.

For example, I haven't done much of a deep dive into docker yet but have spent a lot of time trying to learn as much as I can about the fundamentals/primitives provided by operating systems and kernels. I feel this way I can always reference back to basics and make a better decision of whether something is gimick-y or not.

Lately I've been so frustrated with people selling these "solutions" yet not having any understanding of the how things work that I've spent the last 3 years trying to learn as much as I can about infrastructure primitives (TCP/IP + general networking theory, database theory + database engines, and OS/kernel internals). It takes a lot of time but I definitely think it's worth it since it's a lot harder to be "fooled" when you actually understand things from the bottom up, for some definition of "bottom". It also helps that I work in this space professionally, so the investment in learning these things literally pays off.

Anyway, that's the end of my rant : )

remar··on Modernize C++: Sink Functions
I had a similar conundrum when I was trying to learn modern C++ by writing a network stack. On one hand just wrapping my packet objects with a {shared,unique}_ptr meant that I could freely pass these objects through a pipeline and not worry about lifetime or accidentally freeing somewhere I shouldn't have.

Although it seems to me that most people seem to be proponents of actually sitting down and working out object ownership of your classes rather than just being lazy and using smart pointers everywhere.

I'm still experimenting with this approach, definitely slows me down right now but I imagine that's because I haven't done it enough. Not going to lie, coming from Java/C#, it's really convenient just being able to 'new' an object and not worry much about its lifetime.

remar··on Regression in Linux 4.14 – using bcache can destroy the file system
This sounds exactly like the sort of behavior that should be specified/committed in the form of a unit test.

That would've caused this code change to fail, unless I'm missing something.

remar··on Ultrafast single TCP packet audio/visual experience
Been years since I went through Beej's socket programming tutorial but I still recognize his code ;)
remar··on Ask HN: How to handle bookmarks so you can find them again?
My next side project will hopefully address this problem. The issue I run into is that I have multiple data sources for articles I want to read, but no single feed that I can push those data sources into to later consume and mark as processed/read.

My current strategy has just been to accumulate hundreds-thousands of tabs in my browsers and basically rely on firefox's "save tabs from last session" feature to keep history. Downsides are that these aren't synchronized across all my browser instances. But this allows me to quickly scroll through the tab set, pick a tab, consume it, and just close it to mark as complete.

I used to dump snapshots of my working tab set into a plaintext file so that I could track history, back it up, and retrieve them later by other means, e.g. ssh into my server from phone to retrieve a link (very high overhead). This doesn't scale too well when you want to mark an item as completed as removing a line of text in a file manually in a shell session from your phone isn't exactly "fluid".

My plan is to build a service that will be a storage backend to store feeds/queues of "things I need to do", whether it's articles I've been meaning to read or just simple TODO notes like "do xyz tonight". There will be a system to label/tag items under a specific category so that in the UI you're not just bombarded with a list of thousands of TODOs.

Features I've been considering having:

* allow user to specify multiple cloud storage backends for the data to be replicated across * have relatively simple storage format, motivation being that I should be able to view/modify data through plaintext interface like editing a file with vim if I want to * create firefox plugin that will use this same system to synchronize tabs, this would mean that as a side effect I would have this information available on all my systems and backed up as well * web UI to access all generic queues, e.g. items I've manually created as well as the queues storing my tabs

Sometimes I wonder if there's a term associated with how obsessive I am about not losing information...

remar··on Why I Don’t Talk to Google Recruiters
Here's the problem I have with interviewing, speaking as someone already at a big 4 company and has gone through this process already. I know exactly what types of things I need to prep for and even as someone who's competed in competitions like ICPC and TopCoder, I'm always worried that I'll get the type of interviewer who will just ask obscure questions and not go to the level of depth you mentioned when it comes to working with the interviewer to assess their problem solving skills vs just checking to see if they know the solution to some trick question - the kind that most people not knowing the solution beforehand would almost never be able to figure out within 30-60 minutes.

I'm planning on interviewing with Google in a few months just because of all the great things I've heard about their infrastructure and engineering culture, but due to these concerns I've budgeted to use my current vacation time just to get back into prepping the way I did when training for ICPC just so that I'll have confidence knowing that most interviewers probably have never studied algorithms at that level and that I'll have more confidence in not being potentially tripped up by these types of interviewers.

Most of my friends, even those at Google, have tried to convince me that this plan is overkill but I just can't get myself to leave the fate of my future into the hands of some random interviewer and then regret not doing this level of preparation if I get rejected...

Page 1 of 2Next →