Feed

A consolidated stream of my writing and activity, powered by RSS/Atom.

RSS

Latest Items

  • The Son of Man: An [incomplete] AI short story I wrote in 2004
    Blog·

    I recently rediscovered a short story in my old files archive that I wrote, though never finished, around 2004, when I was a high school teenager. It’s a story about the advent of artificial intelligence. Re-reading this text in 2026 feels oddly early, perhaps even a bit haunting. While I remain an AI optimist, I liked the fact that the story doesn't necessarily try to predict the future; instead, it tries to understand something more fundamental: the origins of intelligence. That focus seems to have aged better than other blunt technological prophecies of the time. By the early 2000s, my love for Sci-Fi was already cemented by the likes of Isaac Asimov and generational films like The Matrix and Minority Report. I hadn't yet discovered contemporary authors like Dan Simmons, Iain M. Banks, Liu Cixin, or especially qntm, whose short story Lena later captivated me with its documentary, technical style and quiet speculative weight. In a rather ironic twist, I decided to use modern LLMs to slightly rework the prose and flow style of this old draft. Specifically, I "qntm-fied" it to make the reading more pleasurable, keeping the ideas intact but stripping away the teenage flourishes for something more clinical and precise. I’m keeping the original version as-is for posterity. You can also see the versioned iterations by ChatGPT & Gemini. The following is the iteration I liked the most, one I surely hope to finish...

    Continue reading...
    Also shared to:Bluesky
  • The greatest pastel color scheme of all-time
    Blog·

    I craved pastel-based colorchemes for my Arch Linux TUIs before the likes of Catppuccin

    (the proof is in the pudding)

    old_battle_station

    In a recent spike of nostalgic-fueled excitement, I impulsively bought xoria256.com domain and planned for world domination afterwards. I still love Xoria256 but I am not that sure anymore.

  • Made AI-gen a Podcast a while ago
    Blog·

    Last year I was playing around with Google's NotebookLM and ended up creating a podcast episode by feeding it with Naval's content, pluse using other Gen AI tools for the assets (intro music, sfx, images...)

    Head over to /pop-podcast

  • Modularize a long/complex SQL query in Ruby
    Gists·
    def my_big_ish_report
    my_long_query = ```sql
    SELECT a,b,c FROM ... AS q_a
    JOIN (
    SELECT ... ' Sub-query 1
    WHERE client_id = 'foobar'
    ) sq_1 ON q_a.fkey_id = sq_1.id
    INNER JOIN (
    SELECT x,y,z FROM ... ' Sub-query 2
    JOIN (
    SELECT ... ' Sub-query 1 ' Sas as Sub-query 1 above ^
    WHERE client_id = 'foobar'
    )
    )
    ...etc...
    ```
    results = ActiveRecord::Execute::SQL(my_long_query)
    # ...
    ...
    Continue reading...
  • Export base meta data from Airtable
    Gists·
    const fda = ( fields ) => {
    let data = []
    for(const f of fields ){
    data.push(fd(f))
    }
    return data
    }
    const fd = ( field ) => {
    let data = {
    id: field.id, name: field.name, type: field.type, isComputed: field.isComputed, options:field.options, description: field.description
    }
    return data
    }
    let tables = []
    for (const table of base.tables ){
    let views = []
    ...
    Continue reading...
  • Cover Letter - Ben Orozco - benoror.com
    Gists·

    Hi, my name is Ben Orozco. I am a Computer Science Engineer specialized in Full Stack web development, passionate on making and launching software products, leading engineering teams and leveraging technology to tackle big real-world problems. Portfolio: https://benoror.com/portfolio

    I am passionate of full stack development (APIs, backend, DevOps, front-end, UI/UX) for the past 9+ years, mainly in Ruby on Rails, Node.js, Elixir and Javascipt frameworks (React, Angular, Ember).

    I am ready for my next career challenge! Some fun projects I have been part of that might be relevant:

    • Helped planning, architecture design and hands-on programming of a full AuthN/AuthZ identity provider based on OAuth2/OpenID standards, to support SSO (Single Sign-on) and User Management across many EdTech applications.

    • Launched a Node.js Tax/Invoicing lambda micro-service in record time that ended up replacing a big chunk of a Java monolith codebase and serving 1000's or requests per minute by relying on minimal footprint and horizontal auto-scaling. Developed using TDD and ~90% code coverage. Open sourced it here: https://github.com/benoror/taxi-driver

    • Designed & developed an insurance claims management MVP system built on top of an Elixir API (Phoenix, Ecto, Guardian auth, Inquisitor JSONAPI, ExVCR tests) using Test-driven Development, Domain-driven Design (bounded contexts) and JavaScript (Ember.js) for the frontend

    • Planning, architecture and development of several other micro-services in Elixir, Java & Ruby to support diverse workflows like billing, invoicing, inventory management and data catalogs

    • Experience implementing payments gateways such as Stripe, Conekta and PayPal for subscription-based SaaS software written in Ruby on Rails and Node.js

    • Built a cost accounting, finance and sales tool for a family business (construction company) on top of Airtable and JAMStack (Javascript, APIs & Markup)

    • Recently wrote a fully-tested web scraper in a couple of days...

    Continue reading...
  • Latency numbers every programmer should know
    Gists·

    latency.markdown

    Latency numbers every programmer should know

    L1 cache reference ......................... 0.5 ns
    Branch mispredict ............................ 5 ns
    L2 cache reference ........................... 7 ns
    Mutex lock/unlock ........................... 25 ns
    Main memory reference ...................... 100 ns             
    Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
    Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
    SSD random read ........................ 150,000 ns  = 150 µs
    Read 1 MB sequentially from memory ..... 250,000 ns  = 250 µs
    Round trip within same datacenter ...... 500,000 ns  = 0.5 ms
    Read 1 MB sequentially from SSD* ..... 1,000,000 ns  =   1 ms
    Disk seek ........................... 10,000,000 ns  =  10 ms
    Read 1 MB sequentially from disk .... 20,000,000 ns  =  20 ms
    Send packet CA->Netherlands->CA .... 150,000,000 ns  = 150 ms
    

    Assuming ~1GB/sec SSD

    Visual representation of latencies

    Visual chart provided by ayshen

    Data by Jeff Dean

    Originally by Peter Norvig


    latency_humanized.markdown

    Lets multiply all these durations by a billion:

    Magnitudes:

    Minute:

    L1 cache reference                  0.5 s         One heart beat (0.5 s)
    Branch mispredict                   5 s           Yawn
    L2 cache reference                  7 s           Long yawn
    Mutex lock/unlock                   25 s          Making a coffee
    

    Hour:

    Main memory reference               100 s         Brushing your teeth
    Compress 1K bytes with Zippy        50 min        One episode of a TV show (including ad breaks)
    

    Day:

    Send 2K bytes over 1 Gbps network   5.5 hr        From lunch to end of work day
    

    Week

    SSD random read                     1.7 days      A normal weekend
    Read...
    
    Continue reading...
  • Rails Model XOR Validation for "Custom" fields
    Gists·

    XOR Validation

    validate :disease_or_custom_disease
    
    #...
    
    private
    def disease_or_custom_disease
      custom_disease.blank? ^ disease_id.blank?
    end
    
  • From Ember to React — Part 2: Top-Level component concerns
    Medium·

    From Ember to React — Part 2: Top-Level component concernsIn Part 1 of “From Ember to React” series I introduced a pattern to re-use data fetched in a Top-Level component into his children. Then I started to realize that I could make use of this pattern to bring even more ideas from Ember into React! Here are a couple I used lately: Loading IndicatorSometimes we want to show a “Loading indicator” to let the users know when a request is being processed. As suggested by this post, logic and markup should be placed on a top-level component to be reused by subsequent components. As before, I remembered a handy Ember feature called Loading / Error Substates already baked into the framework itself. Turns out our previous “High-order Component & Wrapper”-pattern is a perfect place to replicate this pattern, as we don’t need to repeat the loader in every single component: https://medium.com/media/ec2fac98ca4ed538bc899a4295fce611/hrefThis way we can re-use the Loader logic in children components in case we need to hit another remote API: https://medium.com/media/af3f5c7ef9f387213194403a39f00991/hrefError HandlingWe can apply a similar pattern for error handling, in this case I would use...

    Continue reading...

Generated at Nov 9, 2026, 5:02 PM

❯
Try:""