HNHacker News
TopNewBestAskShowJobs

philipbjorge

238 karma · joined May 13, 2012

Staff Engineer @ Thoughtful http://www.philipbjorge.com
submissionscomments
philipbjorge··on Rule of Thumb: Anything that looks fancy is not worth you time
Keep an eye out for the "Jump to Recipe" button found on most sites. (It's still terrible UX IMO, but figured I'd share the above tip as it's saved me some frustration)
philipbjorge··on Ask HN: What would you do for developer experience
My context has been startups with engineering teams of 15-60 engineers.

In general, I've found CI/CD templates, IAC templates and app templates to be an anti-pattern. It goes to the heart of scalable vs replicable.

> Put simply: something replicable can be copy-pasted (with variations as needed) to grow impact linearly in relation to effort and cost. Something scalable can create impact at a rate that increases faster than the rate at which your effort and costs increase.

In the contexts I've worked in, templates enabled us to rapidly grow and expand our business and technology in unmaintainable ways.

We scaled to 100 services, but our revenue and headcount didn't scale linearly to support the services over time.

---

In general, I lean towards solutions that facilitate distributing and updating templates over solutions that facilitate copying/pasting templates.

- Kubernetes this meant a common Helm service chart for the organization -- Now we could distribute and update kubernetes manifests to the org - CICD this meant building plugins that we distributed to teams - Application templates I've historically moved folks back into monoliths but the microservice chassis pattern looks like a solution here -- https://microservices.io/patterns/microservice-chassis.html

Your calculus might look different depending on your internal capabilities and resources. Good luck!

philipbjorge··on In Defense of Simple Architectures (2022)
Recently I worked on a project that was using synchronous IO in an async framework -- That tanked performance immediately and effectively meant that the application could service one request at a time while subsequent requests started queuing.

(Agreed that synchronous IO can serve hundreds of requests per second with the right threading model)

philipbjorge··on RavenDB 6.0.2 (A Jepsen Report)
We used RavenDB 2-4 at Leafly.

Won't go into battle scars here, but this report does not surprise me. We're much happier with Postgres and Elasticsearch.

philipbjorge··on Creating a search engine with PostgreSQL
What makes most operational sense is going to depend on your context.

From my vantage point, you’re both right in the appropriate context.

philipbjorge··on SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a Postgres Queue
We were comfortably supporting millions of jobs per day as a Postgres queue (using select for update skip locked semantics) at a previous role.

Scaled much, much further than I would’ve guessed at the time when I called it a short-term solution :) — now I have much more confidence in Postgres ;)

philipbjorge··on Two thought experiments to evaluate automated stablecoins
Can you share some resources where I can learn about this? Thanks
philipbjorge··on Frum – Fast and modern Ruby version manager written in Rust
I've seen this difference myself and done some profiling on it in the past with asdf.

I also know that Sam Saffron has mentioned the shim latency a bit before as well with other tools.

> We stopped benching on rbenv based systems, everyone moved to chruby or rvm cause the shims rbenv adds introduce significant delays on boot.

https://discuss.rubyonrails.org/t/why-is-rails-boot-so-slow-...

philipbjorge··on Ask HN: Who wants to be hired? (December 2019)
Location: Seattle, WA

Remote: Remote is not required, but I do have experience with it and like it

Willing to relocate: No

Technologies: Ruby, Python, Node, Java, C#, Elasticsearch, RDBMS, Kubernetes, AWS

Resume/CV: https://drive.google.com/file/d/1Nmzh_lXISLDnB0FjNubBeeTtngG...

Email: philip@philipbjorge.com

I'm a passionate full stack software developer with operations experience who can bounce between creating, extending, and operating deployment pipelines, cloud infrastructure, web services, and native and web apps.

philipbjorge··on What Is The Morning Writing Effect?
It links to Amazon Kindle. I believe this is the link that their app spits out.

https://urlex.org/ can expand these for you.

philipbjorge··on Police told to avoid looking at recent iPhones to avoid lockouts
On iPhone X, you can hold the power button and volume up for 5 seconds and it will lock the phone, disable Face ID, and force entering your passcode to unlock.
philipbjorge··on Ask HN: Why is everyone so obsessed with serverless?
AWS pushes it really hard :).

Many of my coworkers got extremely excited about it right after re:invent...

philipbjorge··on A Message to Our Customers about iPhone Batteries and Performance
Spontaneous shutdowns at 20-30% battery was a feature of my Nexus 6P.

http://www.androidpolice.com/2016/12/20/some-nexus-6ps-have-...

philipbjorge··on Big web app? Compile it
I have used them and didn't know this was how they were implemented. Very cool.

Thanks for dropping the knowledge.

philipbjorge··on Big web app? Compile it
The title seems irrelevant.

With the exception of frameworks like Ocsigen/Eliom[0] and Dart[1] (Eliom being the closest thing to what the presentation hints about), I've never seen any production web apps that have been compiled from languages like Ruby, Python or C (I don't consider desktop applications like Banana Bread a web app). Lack of frameworks and best practices for DOM manipulation seem to be roadblocks.

The presentation didn't list any examples of web apps written in other languages, so I'm forced to conclude that if I have a big web app, compiling it is not the most sensible option.

[0] http://ocsigen.org/overview/eliomapplications [1] http://www.dartlang.org

philipbjorge··on In 8 months at Microsoft, I learned these things
Any chance you could shoot me an email through the contact form on my website? I have some questions.
philipbjorge··on Ask HN: What is your prefered language for OS independant developement?
A slightly hackish proof of concept IDE I built called Turbo Impress is built off the same technologies that Light Table is using.

https://github.com/philipbjorge/Turbo-Impress

Specifically, I use the Node Webkit project which is an app runtime built on top of Chromium and Node.js. A pretty neat way to get effectively free cross-platform support on Windows, OSX, and Linux.

https://github.com/rogerwang/node-webkit

I'm not sure how Sublime is getting their cross platform support. I've been interested in it for a while though, so I hope someone chimes in.

philipbjorge··on Lulu: An App No One Should Accept
From onlulu.com's FAQ: "Lulu Dude is a separate app we created for the boys because we do not let them into the original Lulu.

Guys don’t see what the girls see. We let them select their relationship status and profile picture and we encourage them to get their “fan base” to review them.

Lulu Dude is also a place for guys to get self-improvement tips. Think of Lulu Dude as Cosmo for guys."

philipbjorge··on Show HN: Forbidden Fruit – Patch built-in Python objects
It's a dirty hack - therefore, fun.
philipbjorge··on EditREPL - Open Vim from within the Python REPL
And this is why I post code online - to find out the right way to do things. PYTHONSTARTUP is exactly 100% what I was looking for, but didn't know existed.
philipbjorge··on EditREPL - Open Vim from within the Python REPL
This is awesome (I still have a lot to learn about bash) and effectively what my module does.

Just so others know, you have to put bash in vi mode and press Esc before v (otherwise it's ctrl+x ctrl+e).

set -o vi

philipbjorge··on EditREPL - Open Vim from within the Python REPL
Mine's not interpreter agnostic because I had to mess with the stack frames to insert variables into the global context.

But yours is able to do that because your importing a top-level edit function while I was pretty set on dynamically creating a vim() method and not having to import a function (just a module).

I love how yours lists the globals though! I might just have to bite that feature :).

philipbjorge··on EditREPL - Open Vim from within the Python REPL
This is awesome! I really should learn iPython one of these days...
philipbjorge··on EditREPL - Open Vim from within the Python REPL
I think this is different because I'm full on opening an instance of vim. (I didn't know about GNU Readline though and it looks awesome - I'll definitely try and work it into a project at some point).
philipbjorge··on Adding Empty Set Literals to Python
Thanks and will do!

I just added a 1 second timeout that puts a default font on if the webfont hasn't loaded. Just tested with ghostery and it should be good to go.

philipbjorge··on Adding Empty Set Literals to Python
I just wish someone could find the old discussions...

The main argument I could see against empty set literals was how wrong it felt adding it to the grammar. Even adding 3 lines of code for the feature, felt like it was just creating chaos in a zen-like codebase.

philipbjorge··on Adding Empty Set Literals to Python
I didn't think to do {,} which I like. s{} looks weird to me, but I couldn't tell you why.
philipbjorge··on Adding Empty Set Literals to Python
I originally implemented it that way and had that exact same issue (it's one of the revisions on github). Similarly, {/} would also be a problem.
philipbjorge··on Google Glass
What's interesting is that you can already do this at concerts with your existing smartphone [1].

Not to mention people already take plenty of pictures at bars.

[1] http://www.makeuseof.com/tag/stream-live-video-smartphone/

philipbjorge··on Kirby
Kirby is very cool. I tried it out by converting my old blog to run with Kirby (I was using wok a static site generator). Kirby was a really nice blend of the things I like about static site generators with easy to integrate features like pagination, tag clouds, etc.

All that being said, I went with wordpress myself because it was braindead simple, full-featured, and easily extendable.

← PreviousPage 2 of 3Next →