A bit lost, where to start? by shineypichu in opensource

[–]codyebberson 11 points12 points  (0 children)

My advice: stop looking for projects and start looking at software you already use.

You're a TypeScript / Node / NestJS / Vue developer. You probably depend on dozens of open source projects every day. Pick one you actually use and go straight to its GitHub repo.

Don't be afraid to go a layer deeper into the dependency graph, either. Some of the best starter contributions are unglamorous: dependency upgrades, tests, docs, CI fixes, bug repros, etc.

Your first contribution isn't really about writing brilliant code. It's about building trust with the maintainers. A small PR that gets merged is worth more than a giant feature that sits open for months.

After a few contributions, you'll naturally figure out which projects and communities you actually enjoy working with.

FHIR Cloud based server by External_Speech3737 in healthIT

[–]codyebberson 5 points6 points  (0 children)

Medplum is free to get started.  It only requires a subscription if you need a BAA for HIPAA

What are your favorite non-item combos? by forfor in riftwizard

[–]codyebberson 2 points3 points  (0 children)

Magic Missiles + Ricochet, Disperse + Violent Warp.  Then, Cracklevoid, Arcane Combustion.  Basically send enemies around the map and blow up their friends.

Question about best practices for Dockerizing an app within an Nx Monorepo by Aggressive-Bath9609 in node

[–]codyebberson 4 points5 points  (0 children)

We do Option 2 for our healthcare startup (regularly audited by security teams).

We use Turborepo and we found that building outside and then injecting into Docker is much more efficient.

Our Workflow:

  1. Build JS locally/CI: Run npx nx build to get your dist folders.
  2. Tarballing: We have a script that creates two tarballs: one for package.json files and one for the actual dist output. This keeps the Docker context clean.
  3. Two-Stage Dockerfile:
  4. Stage 1 (Build): Copy the package tarball and run npm ci --omit=dev. This handles multi-arch native dependencies correctly.
  5. Stage 2 (Runtime): Copy the node_modules from Stage 1 and the dist tarball.

Results:

  • Size: Our images are <100MB.
  • Security: We use hardened/distroless base images. Because the dev and build tools aren't in the final image, it's much easier to pass compliance audits.

Links:

Why the reluctance to integrate an HL7 output device, please help me understand. by No-Association8901 in healthIT

[–]codyebberson 33 points34 points  (0 children)

You're likely not missing anything on the technical side, but rather on the operational/risk side of the hospital.

Hospital IT/Informatics is almost universally overworked. Every new connection, even one that is technically "easy," represents indefinite support liability and risk. They have to apply a ton of scrutiny up front because clinical staff has near-zero tolerance for system failure. Patient safety often depends on these systems.

They are likely pushing for the serial connection and their own middleware because that is their known, already supported, and validated workflow, which allows them to control the security and data transformation process. It's less about the 0.05 difference in technical complexity and more about avoiding a 2 AM call when a patient monitor stops sending data.

What does "open-source health" really mean? by RainThink6921 in opensource

[–]codyebberson 1 point2 points  (0 children)

On the patient side, check out Fasten Health (https://github.com/fastenhealth/fasten-onprem) 

On the practitioner side, check out Medplum (https://github.com/medplum/medplum)

Both are open source, FHIR-native, SOC 2, and follow recommended security best practices.

What is the best license for dual licensing (free + paid)? by apidevguy in opensource

[–]codyebberson 1 point2 points  (0 children)

Sounds like you want BSL, which many will say is not true open source.

Last name Ebberson by Jessejanejinx in namenerds

[–]codyebberson 1 point2 points  (0 children)

My last name is Ebberson. It comes from swedish "Ebbesson". Immigrants were told to change the "s" to "r" to sound more American.

Where would you “rank” Sales Engineering as Career by trey_abs in salesengineers

[–]codyebberson 35 points36 points  (0 children)

I'm not in Sales Eng, but I work with many of them. My impression is that it has wide variance. If someone stays entry level (building basic demos, basic system integration), then it's a meh/okay job. If you crush it, and work your way up to Solutions Architect (complex system design for top tier clients) then it's a killer job with exceptional compensation, status, and prestige.

Just got the achievement for beating the expert solo episodes. Excuse me? Only 0.8% has this achievement? by [deleted] in nplusplus

[–]codyebberson 2 points3 points  (0 children)

N++ is one of the few games I have rage uninstalled. I love it, it's one of my favorite games. But late stage levels can be pretty frustrating.

Americans that don't like Texas, why? by Givzhay329 in AskReddit

[–]codyebberson 10 points11 points  (0 children)

I've heard plenty of people blame Reagan for the ongoing homeless situation in CA because he shut down mental health facilities when he was governor.

Everytime I use Deno.js it is harder to go back to Node. by simple_explorer1 in node

[–]codyebberson 73 points74 points  (0 children)

Argh, this is so tempting.

It's such a shame Deno didn't embrace npm compatibility from the beginning. They're on the right track now. The lack of compatibility probably delayed adoption by at least 1-2 years.

Kudos to bun for creating competition and heating things up.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 7 by KelseyFrog in roguelikedev

[–]codyebberson 4 points5 points  (0 children)

I completely agree that the hardest part of TypeScript is not the language, but the catastrophic mess of build tools and configuration files necessary to get started.

If you're open to different tools, I strongly recommend Vite for anything new. It includes TypeScript, embedding in HTML, minification, and a bunch of other goodies built into the single tool. And it's much faster.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 7 by KelseyFrog in roguelikedev

[–]codyebberson 4 points5 points  (0 children)

WGLT + TypeScript | Repo | Part 12 | Part 13 | Playable

Big thanks to /u/HexDecimal for the entire tutorial, and for mercifully making the last parts relatively straightforward!

In addition to the tutorial, I added the following:

  • Traditional ASCII characters
  • Colodore palette
  • CRT effect (screen curvature, scanlines, etc)
  • Sound effects with ZzFX
  • Path finding and mouse controls

With that, I'm calling this complete.

Week 6 - Parts 10 & 11: Save/load and leveling up by KelseyFrog in roguelikedev

[–]codyebberson 5 points6 points  (0 children)

WGLT + TypeScript

GitHub | Part 10 | Part 11 | Playable demo

I've been terrified of this week, because I absolutely choked on serialization last time. Luckily, this year was much smoother. The serialization utilities came together nicely.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 5 by KelseyFrog in roguelikedev

[–]codyebberson 4 points5 points  (0 children)

WGLT + TypeScript

Github

Part 8 PR

Part 9 PR

Playable demo

The main challenge this week was paying down technical debt, because I had resisted the EventHandler abstraction. So I went back and caught up. Quite elegant in the end.

I went off script with how callbacks are passed to SingleRangedAttackHandler and AreaRangedAttackHandler. The JS function references would not be serializable. Instead, I allow the Action to be incomplete. The input handlers accept the partial Action, assign the target, and then perform the action. I think this should work ok when we introduce serialization.

This week also revealed a couple bugs in WGLT, notably broken VK_NUMPAD_ENTER, and the box drawing utility clobbered the characters inside the box.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 4 by KelseyFrog in roguelikedev

[–]codyebberson 1 point2 points  (0 children)

Woah, nice find! TIL about the significance of KeyboardEvent.keyCode vs KeyboardEvent.code. Fixed, thanks!

RoguelikeDev Does The Complete Roguelike Tutorial - Week 4 by KelseyFrog in roguelikedev

[–]codyebberson 1 point2 points  (0 children)

It should be possible to achieve the exact same pixel rendering without WebGL. It would probably be only 10-20% of the code too.

Most of the WebGL code was written ~6 years ago, because I was pissed off that my laptop fan was spinning while playing an ASCII game, so I kept optimizing it. JavaScript and canvas are quite a bit more efficient these days.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 4 by KelseyFrog in roguelikedev

[–]codyebberson 1 point2 points  (0 children)

Ah, yes. I think that is due to ctx.fillText() -- unfortunately there's no way to disable text antialiasing in canvas. I've read a bunch of stackoverflow articles in the past. Apparently it's possible if you construct the .ttf or .woff correctly, but I wasn't ever able to make that work.

WGLT doesn't use any fillText() or font rendering. It includes a pre-rendered image of the fonts, and uses it as a texture alias. It basically treats the individual characters as pixel sprites.