HNHacker News
TopNewBestAskShowJobs

tomgs

209 karma · joined February 10, 2015

Engineer turned marketer, mostly for very technical startups.

@TomGranot pretty much everywhere else except here.

submissionscomments
tomgs··on A request for Pinboard old-timers
Also, on the same note(see highlighted yellow text):

https://idlewords.com/#archive:~:text=ceglowski.com-,Threat,...

tomgs··on Looking for More Debugger
Disclaimer (and a bit of context): I work for a company that builds a special type of debugger, aimed at debugging live applications in production.

As one would expect, we've spent an enormous amount of time thinking about debuggers, how they work from the inside and what they contribute to the general experience of developing software.

Debuggers are, for developers well-versed in working with them, priceless tools (see [1] for an example from this very thread). There's so, so much value in walking through a program not only in one's head (as well-put by pg at one time[2]), but by using a tool that enforces a more structured, "formal" process for program exploration. I use it when trying to understand how code I write actually looks like IRL, but also - and maybe more so - for understanding code OTHER PEOPLE wrote with better context than any piece of documentation or simply reading the code would ever give me.

But - as the article and some[3] of[4] the[5] comments[6] here point out - it has warts (quick plug - I recently wrote a blog post[7] that details my perspective on remote debuggers and how they can be better).

One thing that I didn't see mentioned in this thread or in the article, and is a real PITA, is performance. Debuggers are not built to deal with performance problems - or collection of temporal data, for that matter - at all.

Consider how one might go about debugging a real-life performance issue, especially in the context of modern applications - many threads, many hosts, many replicas of the same service, etc.

You probably have a tracer - something like Zipkin[8] or Jaeger[9] - that helps you to break apart latency issues in your endpoints. You also probably have a set of instrumented metrics (graphed inside your APM, perhaps) for quick observation when something is not reacting as fast as you expect it to. But sometimes they don't tell the full story - there's just too many possible edge cases.

Performance issues can be caused by data structures exploding in size, causing degraded performance and OOMs. They can be caused by one method, in a chain of dozens of different, inter-connected ones, that is especially slow. It can be related to non-optimized SQL queries (maybe hidden behind an ORM). It can be a weird code path - one the developer did not expect, and did not test for - that gets triggered by users with very specific characteristics.

Hard.

[1] https://news.ycombinator.com/item?id=25960923#unv_25960923:~......

[2] http://www.paulgraham.com/head.html

[3] https://news.ycombinator.com/item?id=25940064#unv_25957905:~...

[4] https://news.ycombinator.com/item?id=25940064#unv_25957481:~....

[5] https://news.ycombinator.com/item?id=25940064#unv_25957428:~....

[6] https://news.ycombinator.com/item?id=25940064#unv_25957481:~...

[7] https://lightrun.com/debugging/remote-debugging-re-examined-...

[8] https://zipkin.io/

[9] https://www.jaegertracing.io/

tomgs··on Terms of Service; Didn’t Read
Sidenote: This is how you properly deal with massive load on your site: https://imgur.com/a/zKMh5zg

The "checkout our twitter" thing is especially cool.

tomgs··on Ask HN: Show me your half baked project
I use https://www.monicahq.com/ mostly for this. Interesting, tracking.
tomgs··on Ask HN: Show me your half baked project
Just contemplating doc solutions for the open source repo I maintain (5K+ stars). Would be happy to use https://documentation.page/. Ping me at my email / twitter (details in my profile).
tomgs··on Ask HN: Where does one search development advice these days?
GitHub issues has been a godsend.

People don't often take the time to do detailed write-ups while investigating, but when they do... amazing. Fountains of knowledge hidden in closed issues.

Speaking of which - especially in the ops / systems side of things - if you're stuck on an issue, and you've got a gut feeling some repo will be a good source of truth for that issue, search for keywords in the open AND THE CLOSED issues of that repo. So. Much. Stuff.

tomgs··on Show HN: Write-Only Interface for Twitter
This is, by far, one of the best product marketing work I have seen in a while.

A write-only interface for Twitter.... you, dear sir or madam, have my clicks. All of my clicks.

tomgs··on Monica: Personal CRM. Remember everything about your friends, family and etc.
Yep, yep. Makes all the difference.

Liking to write helps a lot with keeping in touch.

tomgs··on Monica: Personal CRM. Remember everything about your friends, family and etc.
See https://news.ycombinator.com/item?id=25273716.
tomgs··on Monica: Personal CRM. Remember everything about your friends, family and etc.
There was this notion of a mobile app for a minute there - https://github.com/monicahq/chandler - which I think might've been super duper awesome, but open source is hard.

I would 100% use that over the desktop app if it was stable.

Re automated / scripted vs. manual - manual all the way. I keep on mentioning to folks this study I read years ago about teachers who had a student tracking system in their school.

The key point from the study was that the teachers who found the system useful are not the ones who got the most detailed or relevant reports, but the ones who actually INTERACTED with the tracking process. Some sort of "obligation" feeling or something drove them to look at the data and then utilize the learnings from it, IIRC.

If anyone remembers such a study I'd be happy to get a link to it.

tomgs··on Monica: Personal CRM. Remember everything about your friends, family and etc.
Then I have done my job as a member of Monica's community right. Happy to see you with us!

Re your question, see https://news.ycombinator.com/item?id=25283008.

tomgs··on Monica: Personal CRM. Remember everything about your friends, family and etc.
Ah, personal stacks. What a wonderful topic to spend a late night writing session on.

I am not really into self-hosting and homelabs, in the sense that I never got too deep into the proper architecture of it all and the "right" way of doing things. I find that when I'm creating tooling (or setting up tooling, for that matter) for myself, the only thing that matters is speed of setup and ease of use. Hosted is fine for many things if it's decoupled in a sensible way from your public identity or does not actually reveal anything that interesting about you, IMHO, but I assume that would be an unpopular opinion.

A corollary from this "proposition" is that I leave the world of software often. For things that I have yet to find proper software for, but are indeed great needs that I have in my day to day life, I find my ways.

Going back to your question, I'll admit the other two tools are a bit underwhelming.

I'm a religious nail biter, and the only thing that ever made me stop was jotting in a pad every time I want to bite. I usually keep a small pad (as in a mini-notebook) in my backpack and draw hashtags and lines in it when I'm seeing the habit return. I'm now going through something a bit difficult personally, and while I'm constantly biting right now I know that when it will really bother me I can pull up the pad and stop biting again. It's stupid, I know, but again - it works for me. I got the idea from a book, btw (https://en.wikipedia.org/wiki/The_Power_of_Habit).

The other one is the Hacker's Diet Online (https://www.fourmilab.ch/hackdiet/online/hdo.html) - it's a weight watching tool by the guy who built AutoCad. I lost ±24 pounds after reading his book (https://www.fourmilab.ch/hackdiet/) and have been tracking my weight ever since (±2 years).

One recurring thing in my stack, as you noticed, is tracking. I am an AVID tracker of many things, and generally speaking advise anyone who is in a loop over something to do the same.

It simply... works.

If anyone wants to talk personal tracking, it's not hard to find me on the internets (TomGranot in most places except here). I have a plethora of ideas & opinions on the subject.

tomgs··on Monica: Personal CRM. Remember everything about your friends, family and etc.
> Frankly, I don't need to know how he is doing every few months and I find it a bit awkward to make small talk any way.

There's a bit of secret sauce here that I tend to rely on to prevent myself from being considered "that guy".

First and foremost, I do this as much as possible via e-mail. Phone or WhatsApp is indeed too "personal" for these type of things (save for one person, an old boss of mine, who I have a scheduled zoom call with once a month. But that's just because he and I just like the chit-chat, it appears).

I write up a long-form message, something like 5-8 paragraphs with real news about myself and the things I've been up to, and ship that alongside the usual casual chit-chat.

It's surprisingly useful - I think this is the only context in which long-form e-mail is a good thing.

But then again, I grew up in an era where e-mail is the devil, and this was not always the case (or so they tell me).

tomgs··on Monica: Personal CRM. Remember everything about your friends, family and etc.
> Making a deliberate effort to maintain those relationships doesn't seem like its fake to me.

I actually think it's more genuine to care enough to write down to call somebody instead of letting it slip by you. Being determined to build the tooling to be good at something doesn't have to stay within the professional realm - it should extend to personal life as well.

tomgs··on Monica: Personal CRM. Remember everything about your friends, family and etc.
> Then forget to call and feel bad about forgetting.

This. I feel really, really guilty if I hear something great or awful happened to someone I used to be in touch with, but the relationship faded away into the flow of life.

Why wasn't I there? What? It's been 3 years since we last talked? How did that happen?

So, no to all that jazz. Enter Monica. :)

tomgs··on Monica: Personal CRM. Remember everything about your friends, family and etc.
> It’s like harping on people going to the gym and watching their diet for not being “naturally” fit.

Exactly. I have this thing that I'm not good at. I have this tool I use to be better at it. Everybody wins.

One might say that computers in general are tools for computational work, since people are not as good at crunching numbers in their head at a consistent, repetitive and deterministic fashion over time.

One might even be right. :)

tomgs··on Monica: Personal CRM. Remember everything about your friends, family and etc.
I have to mention that this is one of the top 3 tools in my personal stack. See some comments below regarding various things I saw in this thread.

Stability: Been running it for 2+ years now (or is it 3+ already?), no problems whatsoever. I update when the mood strikes - never had to roll back because something wasn't working.

Why: As someone who considers himself terrible at remembering things, this little piece of software made all the difference re keeping up with people. The e-mail notifications is a killer feature - so simple, yet I've never done it before in my personal inbox.

I think the fact that it's an external service and not inside your inbox matters from a UX perspective. I have this other place where I define the logic, and then receive it in the screen I look at every morning.

Originally came to know of the project years back through https://sive.rs/hundreds, and while he's a bit better (a lot better) at it than I am, I can confidently say I've stayed in touch with dozens of people thanks to Monica. His notion of "ranked lists" also makes sense, at least to me, as a mental framework for managing personal contacts.

Shameless plug (for the creators!): I 100% recommend Monica, have contributed to it, and am a big big supporter of https://github.com/djaiss (Regis), https://github.com/asbiin (Alexis), et al.

They're actively working on something new now, so if that helps them somehow - link incoming:

https://www.officelife.io/

A personal comment: There's a (repeating) notion in this thread that keeping up with people is somehow linked to how much you care about them. I care deeply about many people I meet, personally, but I don't think the two are necessarily correlated.

Example: Say I met someone years ago at school, and I thought she was pretty cool. I added her to Monica and I reach out to her once in a while to see what's up. We talk about work, exchange some personal stories, and go our separate ways. I might not think about her for months at a time, but then - quite intentionally - I think about her when the email notification comes up. It makes me happy that this person is somehow in my life.

Is that impersonal? Is it wrong in some way? It's my own very, very private way of keeping people in my life. I don't see it as not genuine or fake.

If it works, right?

tomgs··on The most simplistic protocol in the world is not 'Hello, World ' but DISCARD
Original: https://netty.io/wiki/user-guide-for-4.x.html#writing-a-disc...
tomgs··on Nand2Tetris Hack assembler implemented in Rust
Oh! Sweet. Actually only saw the LinkedIn and sent you a request there. Will also send an email.
tomgs··on Nand2Tetris Hack assembler implemented in Rust
He's indeed interested in seeing your implementation - how can he reach you without disclosing his private address here?
tomgs··on Nand2Tetris Hack assembler implemented in Rust
Sent him an email. Let's see what he says.
tomgs··on Nand2Tetris Hack assembler implemented in Rust
Same as shayas above - took his class in school. Some impressions from talking to him and working with him in his coding bootcamp:

1. He is a very, very funny dude.

2. He has no tolerance for bullshit, and will be very quick to shut you up if you are making no sense.

3. Having said that, he is VERY nice, and always points you in the correct direction, even if you are deeply mistaken.

4. He was one of the first people to push for Java in CS schools in Israel, when he was the founding dean at the IDC [0]. This might seem like a weird thing to mention, but in hindsight it cemented the use of modern programming languages in academic curriculums here, which is not a small feat.

5. He has a deep appreciation for the application of Computer Science in the wild, the likes of which I have not seen in many CS professors. He seems like a coder by heart, and that's why - I think - Nand2Tetris speaks to many of us: It is a very theoretical book, presented in a maker-y type fashion: build, build, build. Love it.

[0] https://www.idc.ac.il/en/pages/home.aspx

P.S. If you have some way of assisting the bootcamp (financially or otherwise), drop them a line over at info@wecode.org.il. Donation of services will probably also be appreciated, if possible.

tomgs··on Nand2Tetris Hack assembler implemented in Rust
I was also a student of Prof. Schocken's in person, as well as part of the tech crew for a non-profit coding bootcamp he set up[0].

While I agree that posting this publicly is less than appreciated, he is VERY enthusiastic about seeing implementations in interesting programming languages, as far as I can remember from my class (last year). I sent him a link to the original repo, which will now be dead.

Would you be interested in forwarding a private link of some sort? I could forward it over.

[0] https://wecode.org.il/

tomgs··on Show HN: Board Engine to run your own/companies Job Board
Poorly phrased tagline: boardengine.io can be the engine for your Job Board or the service, where we handler your Job Board for you: "All Inclusive"

"handler" -> "handle" "All Inclusive" -> kind of out of the loop

Consider rephrasing the tagline to something more succinct.

Other than that looks good!

tomgs··on Ask HN: What was your best passive income in 2016?
Pretty sure you're right. Or was there some hidden sarcasm we've both missed there?
← PreviousPage 3 of 3