HN user

tomlogic

31 karma
Posts1
Comments24
View on HN

This is an important lesson. Anytime you're onboarding a new user/employee, your documentation will benefit by getting that person's feedback. What's incorrect? Where there any steps that weren't clear? Or missing steps? Is there information that's outdated?

I've even gone as far as forcing the developers to answer questions by incorporating new information into the documentation. If you start having out-of-band communication (email, chats, in-person conversations) between the newbie and the team, there's a strong chance that extra information will never find its way back into the documentation.

It's not the case with GoDaddy. I just had a hosting client run into this a few weeks ago -- someone they know had registered their domain for them long ago, and they didn't have the GoDaddy login. I tried to help out when their domain expired and spoke to GoDaddy support. They do not provide any way to renew domain without logging into the account that owns the domain. They were fortunately able to get in touch with the person who originally registered it, so that person could renew it and work on transferring it to an account controlled by the true "domain owner".

I personally don't see a security issue with allowing anyone to renew any domain. It's not like you can change WHOIS information or the authoritative name servers -- you're just paying to continue with the existing ownership/configuration.

MicroPython 6 years ago

Digi International embedded it into some of their XBee wireless radios (802.15.4-based and Cellular models) to allow customers to run an on-device application without compromising any certifications for the radio portion of the firmware. Easier than needing to design hardware with an additional host processor and work out the serial communications between that host and the radio module.

While MicroPython was designed to be "bare iron", it wasn't overly difficult to port it to run as a separate task inside the XBee firmware, and connect it up with internals for I/O and file system access. These are ARM Cortex products with firmware sizes in the area of 500KB to 700KB.

I thought the same thing. No one is going to buy a 5MB hard drive in 1979 that only stores the equivalent of 5 floppy disks.

Check your math. It was 70,000 tapes over 30 years. At $5/tape that would be $11,666/year or just under $1000/month.

The movie trailer mentioned the multiple homes she owned, so she definitely had money. Being a Communist organizer shouldn't imply that someone lacks resources.

A real-world example of this technique shows up in ColorDMD, an LCD to replace DMD displays used in pinball machines from the early 90's until just recently. Most of the displays were 128x32 with 4 (and later 16) brightness levels.

ColorDMD first had artists create color overlays for the images and animations, and then emulated the display with colored dots instead of the red/orange color from the original DMD.

A later firmware release included upscaling, with some impressive results. This thread on Pinside (a pinball discussion site) shows some examples from the game "The Simpsons Pinball Party". I've linked directly to a comment that shows an original rendered DMD frame along with colorized versions with and without upscaling.

https://pinside.com/pinball/forum/topic/colordmd-unveils-new...

This. I recently worked on updating an embedded TLS implementation from TLS 1.0 to TLS 1.2. I was told that it didn't need to implement TLS 1.0 or TLS 1.1, but once deployed we found a lot of non-HTTPS servers still using TLS 1.0. In particular, Microsoft's Hotmail/MSN SMTP servers and multiple RADIUS servers on WPA/WPA2 Enterprise networks. It now allows for client connections to TLS 1.0 servers, but will only serve TLS 1.2 itself.

If over 50% of the domains out there are in the .com namespace, why will creating more gTLDs change that? If the 14 gTLDs created in the past 28 years haven't gained traction, what makes you think .lol or .youtube will?!

It's been interesting to see Daisey's position change over the course of this incident. It seems that he's slowly coming to terms with the fact that he lied in his story. Listening to him in the This American Life podcast last weekend, it was almost as if he had started believing the things he's been saying in his performance.

I still think he's an entertaining storyteller, and he's brought attention to a real problem. It can only help him if he's more honest with himself and his audience moving forward.

IIRC, their streaming costs were based on number of subscribers. With this plan, they ensure that only people who actually use unlimited streaming (and are therefore willing to pay for it) will be included in that subscriber count.

Regarding your security statement, I didn't get that from the packet capture. The Mac is sending an ARP request for the IP addresses of the DHCP servers of networks it's been on recently. An attacker would need to know the correct MAC address to respond with -- the Mac is not sending that out in the request.

If the ARP comes back with the cached MAC address for that network, the Mac continues using the valid DHCP lease it was given. It sends a DHCP request to renew that lease, and I assume would reconfigure the interface if the request fails and discovery has to start over.

From my recollection of the DHCP RFC, if a server hands you a lease for one week, you're allowed to use that address for a week, even if you go offline for 3 days in the middle. In practice, this may not be the case.

Maybe not. If you're at that level, consider reading "The Standard C Library" by Plauger. I used it as a reference for updating a non-compliant library to be mostly compliant. I gained a better understanding of why the standard C library is the way it is, and learned how to implement all of it.

The snprintf idea is a real-world example of something I worked on as part of a larger project. I took over maintenance of a poorly-written code base and cleaned up all sorts of problems. sprintf -> snprintf requires you to look through the code to figure out how big the buffer is, update the API to include new functions with buffer size parameters, determine whether buffers are large enough in the first place, etc. Something that can be dull, but can't be automated.

Pick an open source project that you like and use. Look for open bug reports (easy to do on SourceForge projects) and then dive into the code to fix the underlying problem.

Or, take an existing project and read through the code looking for bugs. In C code, using sprintf() instead of snprintf() is generally a bad idea (due to potential buffer overflows). You could go through an entire code base and replace sprintf calls with snprintf with the appropriate buffer size parameter.

If there's a project that provides a library of routines, you can write unit tests to verify that they work as documented.

Find a project that's poorly documented, and write up documentation for it. If you document an undocumented API, you'll have to read through code to figure out what it will do. You may find that certain conditions are undefined (e.g., what happens if I pass NULL or a negative value here?). You'll be reading other people's code, learning how it works, and contributing to the overall project.