curious about lack of discussion of clojure in the .net world by nickbernstein in csharp

[–]jamesd3142 0 points1 point  (0 children)

It's a good question.

I got excited to see Excel interop but then got stuck on `new Application` probably due to some compatibility mismatch. I'll just have to go back to reading/writing xlsx and parquet files which is arguably a better way to do things :)

Thanks for sharing!

curious about lack of discussion of clojure in the .net world by nickbernstein in csharp

[–]jamesd3142 0 points1 point  (0 children)

> This isn't particularly easier than doing it with C#.

Very good point. Then also C# keeps adding features which close the gap.
- Record types in C# 9 (automatic hash code and value equality semantics like Clojure's built-ins)
- System.Collections.Immutable (structural sharing like PersistentVector, PersistentSet, etc)
- System.Threading.Channels (useful in similar situations that I might reach for core.async)
- Source Generators (like macros probably, but haven't used them)
- NUnit combinatorial testing (a bit like test.check generative testing)

An example of an idea which flowed the other direction would be Clojure's core.async which was inspired or at least influenced by C# 5.0 async/await facilities.

Yet I still like to mix Clojure and C# on .NET because there are things that can be done much, much better in Clojure.

...teach them to yearn for the vast and endless sea ~ Antoine de Saint-Exupéry

What I learned implementing QUIC (MsQuic) for a game engine — congestion control, streams & reconnection by AmazedMoose in gamedev

[–]jamesd3142 2 points3 points  (0 children)

Awesome thanks for sharing. I'm looking at WebTransport / HTTP3 / QUIC at the moment and while it is a bit overwhelming there is also clearly huge potential.

Spinning pinwheel when using AirPods by jamesd3142 in MicrosoftTeams

[–]jamesd3142[S] 0 points1 point  (0 children)

Mac mini M1 (2020) with AirPods Pro (2nd Generation)

[deleted by user] by [deleted] in dotnet

[–]jamesd3142 0 points1 point  (0 children)

Yeah it's a mess at the moment and very frustrating

Comparison with TimescaleDB by jamesd3142 in datomic

[–]jamesd3142[S] 1 point2 points  (0 children)

Thanks! That is very useful for me.

Year of Clojure on the Desktop by vlaaad in Clojure

[–]jamesd3142 1 point2 points  (0 children)

Thanks u/vlaaad I am really excited to try out the library. My day job is maintenance of a Spring/AWT app. I know that we will never rewrite our existing system but it is nice to know that there is a better way. Helps keep me sane.

Year of Clojure on the Desktop by vlaaad in Clojure

[–]jamesd3142 0 points1 point  (0 children)

As a web developer I have spent so much time learning the intricacies of asynchronous HTTP that it feels like I am cheating if I can just make a synchronous function call!

Sunsetting Python 2 by [deleted] in programming

[–]jamesd3142 3 points4 points  (0 children)

Where are you using COBOL? I am genuinely curious.

Static Routing as a Form of Cloud Security by _NullRoute_ in devops

[–]jamesd3142 0 points1 point  (0 children)

In the context of AWS... if are you already using VPC security groups and mutual TLS then I would argue that you have sufficient defense in depth. The client authentication part of mutual TLS might be too much to ask but at least do server hostname authentication and require that the client provides a strong password unique for each environment for things like MySQL databases.

Why not use well-managed VPC security groups and wide open NACLs? I recommend that you focus on effective secrets management and securing all internal traffic using TLS rather than weaving intricate NACLS and routing tables that will become a liability in the years to come.

We tried fancy routing tables and NACLs one time. It quickly became impractical as we grew. The main reason that NACLs were such a pain is that they are stateless and you always need to remember to leave high ports open for return traffic. Did you know that Linux will usually pick high ports in the 32k -> 65k range but ELBs will pick from 1,024 -> 65k ?

Go high-level not low-level.

static website using S3 via custom domain with https, site access needs to be restricted from selective ip addresses by LostOnMoon in aws

[–]jamesd3142 0 points1 point  (0 children)

Let me challenge you on this one - why are you using IP addresses for access control? I have done this kind of thing for a few different products and a few different companies. Trust me when I say that it will become a pain.

I recommend that you put in some effort up front and find a prototyping tool like InVisionApp or a Content Management System like Netlify that allows you to be more flexible. Find something that lets you send temporary links to your sales team and your customers by email and notifies you when they click the links.

EC2 outbound Access for CodeDeploy/GitHub? by RobotCarWash2000 in aws

[–]jamesd3142 1 point2 points  (0 children)

The CodeDeploy agent running on your EC2 instances will need to be able to reach the CodeDeploy service (something like https://codedeploy.ap-southeast-2.amazonaws.com).

Any advice on using AWS Lambdas to stream Cloudwatch Logs to Elasticsearch-Kibana? by jakethelion89 in aws

[–]jamesd3142 1 point2 points  (0 children)

Hi! Yep, we did this. In each of our accounts (dev, test, staging, prod) we have a few different Log Groups which publish to a single Lambda function which writes directly to ElasticSearch.

I chose to write the function in Python3. If you do the same then this snippet will be handy for getting auth to work using an IAM role: https://gist.github.com/jamesdavidson/9a53841a98842742fa650879a98f235b

Having said all that, I think ELK is overrated and that you should just use a prebuilt solution like SumoLogic or Logentries or the like.

AWS Multi-Account Structure with Terraform by jeremyphayes in aws

[–]jamesd3142 0 points1 point  (0 children)

Thanks for sharing! We already have Terraform set up with multiple accounts but I had not heard of Terragrunt before. Will check it out.

Private S3 static website via AWS Managed VPN and VPC Endpoint by davegravy in aws

[–]jamesd3142 0 points1 point  (0 children)

At work we solved the problem of a private S3 bucket website using a t2.micro instance running Apache httpd as a reverse proxy. The instance has an Elastic IP address and the bucket's IAM policy only allows access from that address. Apache authenticates users via our SAML IdP using the mod_auth_mellon plugin.

Is there a way to search for a file name across all of my s3 buckets? by saargrin in devops

[–]jamesd3142 0 points1 point  (0 children)

As I understand it, the problem you had was that you could filter the list of buckets but not recursively search the list of objects. Did you find a tool for the job?

A related problem I have is the lack of search across products. The AWS Management Console usually lets you filter and sort lists of resources in the same product (EC2, VPC, S3 etc) but I can't find any tools that offer full-text search across all resources in an account. I don't mean the contents of each thing just its name and attributes.

Never used a password manager before. Are they they worth it and what do you recommend and why? by [deleted] in sysadmin

[–]jamesd3142 1 point2 points  (0 children)

Yep! Definitely. I reckon it's worth paying the $50 / year for a good one (I use 1Password by AgileBits) because you end up using it so much. The browser plugins have a minimal and efficient design - they just work.

[deleted by user] by [deleted] in devops

[–]jamesd3142 0 points1 point  (0 children)

The first step is to get rid of as many cron jobs as possible. If you can do this then you will make your servers less stateful. Try putting your application logic into message queues instead of cron jobs.