HNHacker News
TopNewBestAskShowJobs

kkirsche

576 karma · joined November 3, 2014

Hey!

My name is Kevin, and I am a cybersecurity developer and penetration tester for an ISP, developing tools such as DDoS Mitigation solutions, security evaluation tooling, vulnerability management tools, and much more. I enjoy building complex projects comprised of front end, back end, and various integrations, as it pushes me to stretch my design, programming, and architecture skills.

The thoughts and opinions I express on Hacker News are my own, and I look forward to having great discussions with the community.

submissionscomments
kkirsche··on Netflix Should Sell Ads
If they bring ads to the platform I will never again subscribe and I will say if anyone in my family wants it they can purchase it but I won’t support it. I’m sick of being nickel and fined by every company for every ounce of revenue.
kkirsche··on Postgres Container Apps (beta)
To help others who also don’t know all of the terms: 1. FDW: foreign data wrappers

https://wiki.postgresql.org/wiki/Foreign_data_wrappers

2. PL/Python: language-specific procedural language

https://www.postgresql.org/docs/10/plpython.html

Essentially, this (as I understand it) is highlighting the ways that Postgres can expose data from outside of its default table structure context via these types of functions.

kkirsche··on The Code Review Pyramid
This is scary to read. We use code reviews for changes and we’ve found that our more junior team members can bring a point of view our more senior team members can’t and vice versa. It’s one of the best parts of working in code for me.

With that said, code reviews only work, in my experience, if team members are strong communicators. Understanding each other, empathizing with issues, and being collaborative rather than tearing people down is critical.

Code reviews are a “we” activity not a “your” and “my” activity.

kkirsche··on Who's Attacking My Server?
That depends on the machine you are using. Tools like mass scan to locate open ssh ports and then testing them doesn’t need to take long if you have a beefy machine and pipe to the internet.
kkirsche··on Linux Sysops Handbook
I was really shocked to see kali Linux, a penetration testing distribution, mentioned on this. I wouldn’t normally include it in handbooks like this as it can be dangerous to encourage daily-driving a distro like that if they don’t fully understand the risks. Maybe I’d recommend ParrotOS instead :/
kkirsche··on Ask HN: How do you implement audit trail for a product?
Temporal tables where possible or insert only structures with a deleted “state” representation
kkirsche··on Include diagrams in your Markdown files with Mermaid
Is GitHub supporting the author of mermaid? They explicitly have asked for help managing the volume of requests on the mermaid website
kkirsche··on Spongebob-CLI – Watch classic spongebob from the terminal
If, like me, you forget where to split the command and arguments, shlex.split in the standard library can split the raw string for you.
kkirsche··on A collection of stuff about security
Check out the port swigger academy online and hackthebox as locations to learn. Offensive Security’s proving grounds also has good content.
kkirsche··on Coral, a Cobra fork with nearly all its features, but only 4 dependencies
This looks amazing. Viper was something I’ve always removed from my projects as they’re simple tools usually where configuration files don’t make sense, so I really appreciate you sharing this. Excited to see where it goes!
kkirsche··on Ask HN: Would you start new project in Java?
Not by choice. The JVM is an engineering marvel, but the developer experience for most use cases doesn’t justify its use, e.g. dependency management, JVM tuning, boilerplate (if javas bugs you), etc. I’ve found other cross-compilable languages, like Go and Rust, fit my need when I need to distribute the app and various interpreted or compiled languages work when we operate the software during its maintenance and feature development phases.
kkirsche··on Apple removes Python 2.7 in macOS 12.3 beta
Yay! Glad to see this rather than the Red Hat approach of continuing to support dead versions (yes, I know that enterprises value stability blah blah blah)
kkirsche··on Ask HN: Alternative to Google Translate?
Mate is a paid product on iOS and macOS at least which is good. Apple also has the built in translate app in iOS 15 and I believe the latest macOS (though I could be wrong on macOS)
kkirsche··on Write shitty code
I don’t disagree, but I encounter a fair number of individuals, especially self-taught developers, without exposure to them.

While it’s fine to feel sorry that they weren’t exposed to it, I wouldn’t personally say I feel sorry as I find it hinders people’s willingness to ask for help. Invite questions don’t make people feel bad for not knowing something you or I may think is obvious. We all were beginners at some point.

kkirsche··on Write shitty code
My interpretation of the actual post is less, write “bad” code, but more don’t let code quality prevent you from trying something. The former presentation of it though I can’t agree with while the latter I do.

I feel code quality is important, not because of future state and optimization but a strong architecture will facilitate other engineers learning, which is critical. For example, not all engineers have learned design patterns like the strategy design pattern or observer, etc (see https://refactoring.guru/design-patterns/catalog for great examples) where a little guidance can save them a lot of pain.

With that said, I understand we all bring different skills to the table. Some people love making every linter pass while others could care less and some actively hate it. This is fine, we just need to respect each other enough to try to build on each other’s strengths and support each other where we’re weaker.

TLDR: Rather than saying it’s fine to write “bad” code, say don’t let code quality intimidate you, and be willing to try. You can always refactor later and you’ll learn as you go.

kkirsche··on Gunicorn
100% this. I started off working with uwsgi and I had problem after problem while gunicorn has always been rock solid for me.

In hindsight I wonder if it’s just experience in the experience that has led to this differing experience or if the products are actually meaningfully different in their configuration and behavior that this is consistent for others.

Thanks for sharing, this made me feel better that I had so many issues with alternatives.

kkirsche··on Problems once solved by a metaclass can be solved by __init_subclass__
Even using Python regularly I haven’t run into a need for meta classes. I’m sure there is a valid reason, but what is it?
kkirsche··on Tools to Download Netflix / Disney / Apple TV Content
Content Decryption Modules (CDM) are used to decrypt Encrypted Media Extensions (EME)
kkirsche··on What is the best resource for learning to lead a software team?
I found “The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change” by Camille Fournier to be very useful.
kkirsche··on Exa - A Modern Replacement for ls
Both exa and lsd[1] are amazing ls replacements. I personally stuck with lsd as it was easier to alias to ls but great work by exa.

1. https://github.com/Peltoche/lsd

kkirsche··on Ask HN: Are there any good “coding for kids” books?
I’d recommend https://nostarch.com/catalog/kids
kkirsche··on Box – Python dictionary with dot notation
If you don’t mind the heavier weight / newer version requirements, dataclasses from the standard lib also seem to solve this problem.
kkirsche··on How I learned to stop worrying and push to master
I think you are describing build-time feature flags or feature toggles. Similarly, this type of thing can be managed at runtime via integrations or implementing a database backed version yourself.
kkirsche··on The Data Classes Decorator
Isn’t that the allow_mutation parameter of the field function?

https://pydantic-docs.helpmanual.io/usage/schema/#field-cust...

kkirsche··on The future of Python build systems and Gentoo
I don’t know how I feel about this. As a developer, I say good, I’m glad this impacts them. Many distributions cut apart and really break many aspects of Python such as breaking out pip and one off packages like virtual environment, often removing them from the standard library.

On the other hand, python’s packaging system is such a mess, I’m not sure the alternative / replacement is actually better. I wish the ecosystem could do better here and had an easy way for people who want to help improve this to do so.

kkirsche··on Arch Packages You Might Want to Install
Not parent but, simpler configuration, more focused tool (that can be both good and bad), if you compile it’s faster as less dependencies, etc. Honestly, all depends on your use case and what you know (Simple all depends on where you’re coming from)
kkirsche··on Announcing TypeScript 4.5
As someone who moves between languages, I wish typescript’s type system would have a chat with python’s cause Python has made some weird choices and created a lot of unnecessary arguments about the purpose of typing
kkirsche··on Sysexits – preferable exit codes for programs
Many but not all are also in Python:

https://docs.python.org/3/library/os.html#os.EX_OK

I put together an enumeration to make it cross platform:

https://gist.github.com/kkirsche/2adb8c94794048ec30736b8fe5f...

kkirsche··on macOS Monterey
It’s ok it doesn’t work for you. But for some of us it provides isolation between various aspects of our life.
kkirsche··on The FBI's internal guide for getting data from AT&T, T-Mobile, Verizon
Your point? Most customers in the marketplace are averse to change across any service. It’s not uncommon for users to stay with single providers due to momentum.
← PreviousPage 3 of 10Next →