Recent submissions

Comment · 5 years ago
Have you considered using ssh command's ProxyCommand option? It allows you to replace the TCP transport with communication over stdin/stdout.

It could help you replace the TUN with something more cross platform, and possibly with less overhead. You can pass in the hostname using %h, so you can even have virtual DNS.

Comment · 6 years ago
That's what I've been doing since I was 12 years old :)

My first "programming" experience was with mIRC scripts. I even wrote an IRC client using mIRC sockets at some point, and a dummy webserver / SMTP client. When you do things the wrong way, you pick up a lot of new skills. I learned to "reverse engineer" (my implementations were trivial, not fully fledged) protocols with a proxy/sniffer pretty early :)

From there, the first use case I had for every new language I wanted to learn was write an IRC bot. I had written one in VB6, VB.NET, Python and even C/C++ at some point.

It's funny to see this comment on HN, as this has been my mantra for a while now. On top of string manipulation and networking, another important piece it teaches you about a language is using data structures and manipulating data. IRC client is super stateful. For example, it needs to maintain the list of channels you're in, the list of users in those channels, their op/voice status, etc.

Highly recommended as a project for picking up a new language.

Comment · 8 years ago
What’s written on the SIM card is called ICCID. For some carriers, you can convert from IMSI to ICCID and vice versa, because they chose this convention.
Comment · 8 years ago
Different antenna perhaps?
Comment · 8 years ago
Wasn't familiar with the term.

Thanks!

Comment · 8 years ago
So they should’ve added new tags for layout, instead of table,tr,td,th ?

Much like yield vs await in Python3 asyncio.

In the Python 2.7 days, people used generator functions to implement async in Python. When Python3 first came out, you couldn’t do both generator and async in the same function. I assume it’s because they used the same mechanism internally.

I think it was Python 3.5 which added support for async generators.

Comment · 8 years ago
I don’t write client side browser code these days any more, but when I did back in the 2000s, I remember people bashing using tables for layout, and how everyone should switch to CSS.

From quick googling of what CSS Grid Layout is, seems to be like we’re back to using tables, we just offload it to the style sheet.

Comment · 8 years ago
That's cool. Didn't know that bitcoin does this. It sounds like a much better approach.

I guess you can fine tune how complex you want this to be by changing the number of zeros you require.

A friend suggested something else - make the client bruteforce a short RSA key (of say, 100 bits)

Comment · 8 years ago
I have an interesting idea.

How about make the login process more resource intensive on the browser side, by running some intensive javascript code before sending it to the server?

The trick would be to make this much more intensive on the client side (say 1s of CPU time), while keeping this relatively easy for the server (say 1ms). We're trying to waste their resources, not ours.

One way I can think of:

1. server sends a random seed to the client

2. client calculates 1000 hashes based an random numbers generated from the seed, something like hash(rand() + password) and sends them to the server

3. server picks a one of those and validates it. In case the hash isn't valid, you'll respond with an invalid password, so the client won't be able to distinguish between a failed authentication because of hash validation or because of a wrong password.

Comment · 8 years ago
For the 0days, probably.

But even the integration is impressive.

Comment · 8 years ago
I want to second this. The things I wrote throughout my career that I'm most proud of aren't very complex.

I find it very satisfying to understand a problem so well, up to the point you can find a simple and elegant solution to it. It makes the solution easier to reason about with other team members, and easier for the team to maintain it later. I see this as making your domain expertise available as a framework for the other team members.

This is my idea of sophistication in the software development world.

Comment · 8 years ago
I wonder how many people worked on this, and for how long
Comment · 8 years ago
Apple should allow to do this in Software. Make the lockdown mentioned in the link happen immediately when USB is disconnected, forcing you to retype the PIN every time.

Could be a cool feature for the privacy concerned crowd.

Comment · 8 years ago
Nope. The company was shut down

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton