/dev/jcheng
  • About
  • Articles
  • Pages
  • Reviews
  • Tags
GitHub

Articles

February 11, 2023

Use GPT-3 To Build A Code Translator

Once you know a programming language well, the process for learning a new language is not very hard. It is just time consuming. You need to read the documentation for basic syntax and flow control, get familiar with its idioms, memorize core parts of the standard libraries, and learn its tool chains. What can we do to speed up the learning process? One thing we can do is provide great examples in the documentation. Can we do better? What if you have working examples for every problem you encountered? What if you can describe your intents in a familiar language and see how it should look in a new language? As it turns out, GPT-3 is really good at this task.

read more
January 8, 2023

Using GPT-3 to write code

Writing code with ChatGPT.

In the aftermath of ChatGPT’s debut, the Internet is abuzz with GPT’s ability to write code. I used it to write code yesterday, and this is what I thought.

I wanted to create a command line program to interact with APIs from OpenAI and AI21. The design is a single program with subcommands for each company’s APIs:

Usage: /bin/foo_to_be_named <command>

A tool to interact with various LLM models from the CLI

Flags:
  -h, --help                                     Show context-sensitive help.
      --conf-file="llmcli.conf"    file with api keys, created with http://localhost:8080/v1/p/tools

Commands:
  openai create-completion
  openai create-edit
  ai21 complete

Run "/bin/foo_to_be_named <command> --help" for more information on a command.

I like to use Kong as the framework for command line parsing and I wanted to know how to use its subcommand features. Being too lazy to read the documentation, I asked ChatGPT to write me a short program using sub-commands. This is the example it came back with:

read more
January 2, 2023

OpenAI and ChatGPT

I had two weeks off at the end of 2022. Telesign closed its operations on the last week of 2022 to give employees well-deserved time off for a year of hardwork and I took another week off in addition to that. Like many technologists, I became captivated by OpenAI’s release of ChatGPT in 2022, and I spent a lot of the last two weeks exploring what OpenAI has to offer.

ChatGPT is a chatbot developed by OpenAI. It has been widely recognized for its impressive capabilities, such as imitating human writing, transforming plain English into code, and making glaringly stupid mistakes. The underlying technology of ChatGPT is a machine learning model known as GPT-3. This model is designed to predict how a human might continue a previous piece of text. For example, given what I’ve written so far, GPT-3 predicted what the rest of this blog post will look like:

read more
July 9, 2022

Book Review: Turn The Ship Around

My notes from Turn the Ship Around! A True Story of Turning Followers into Leaders.

  • Early in the book, Marquet tells a story of having failed to empower officers under his command. The story of being unable to “empower” stuck with me. It reminded me of experiences, earlier in my career, of failing to empower people reporting into me.
  • On empowerment, Marquet said “Empowerment is not how I want to be managed.” and “Empowering others feel manipulative. I believe people are empowered by nature.” This is often how I felt about empowerment.
    • If not empowerment, then what? While he doesn’t mention this specifically, the way I interpreted his leadership style throughout the book is that he applied the Situational Leadership style.
  • Marquet tells a story of being reprimanded after coming up with a brilliant ruse to sink an enemy submarine (during practice). The moral of that story is that a great plan which is too complex for others to execute is, in fact, a bad plan.
    • tldr; KISS
  • His story of being assigned to Santa Fe, of feeling dejected and finding the motivation to carry through is very inspiring. It is also a good example of how to be a good leader – his commander applied great leadership skills to help Marquet through it.
    • On being told he’d have the full support of his command officer to succeed, then being told… “But, I don’t think it’s a good idea if you ask for A, B, and C” gave me a new perspective on “support.”
    • One view of support is that “I trust you to do this” and “I think you are the best person for this job.”
    • There are good ways (better than I have been doing) to communicate “these are the limitations to what we can provide to you.”
  • Watch out for signs of low morale! People avoiding mistakes, meeting the minimum requirements, and “do whatever they tell me to do.”
  • In chapter 13, Marquet tells a story of giving more responsibility to department heads too soon. In chapter 17, he talks about the importance of training in order for delegation to succeed. It feels like these two points should’ve been tied together more closely. Though I’m really just nitpicking now.

I suspect, if you are in the tech industry where there is already a lot of talk about autonomy and ownership, you like already understand the theme of this book. If you believe that people need to be led or that a great personality is needed to inspire others, then you should check this out; It will offer you a useful counter perspective.

read more
June 19, 2022

Book review - Bitch: On the Female of the Species

Bitch is a book from zoologist Lucy Cooke on correcting misunderstandings and cultural biases in our biological science. She explains, via animal studies, how existing notions of sex, male/female roles, and “what is natural” have been incomplete, if not incorrect.

In Bitch, Lucy goes through the behaviors of lemurs, meerkats, hyenas, moles, orcas, elephants, bonobos, termites, birds and fish to challenge conventional wisdom on nature and the roles of male and females. This alone makes for an engrossing read. I cannot help but to be delighted by learning brand new things about nature and animals. It brings me back to being a child again. What makes things better is her amusing way with words. (I am jealous.) Some choice phrases from the book:

read more
May 17, 2022

Optimisim

This is a story from Neil DeGrasse Tyson’s StarTalk podcast. He talked about being on Brian Cox’s show and discussing the futures of space travel. Neil was saying that chemical rocket engines are not going to cut it and we need to look into things like wormholes and warp drives. Then Brian cuts in and explains that wormholes are fundamentally unstable and they won’t work.

Brian was absolutely correct, but that was not the point. The point was about what the audience said. Cox’s audience said to them, “That’s why the Americans discover everything! They are always so optimistic!” (Cox is a British phycisit and Neil is an American physicist).

read more
October 17, 2021

Interpreter in Go - 4

In Chapter 1.3 of [Ball’s Writing an Interpreter in Go][1], we encounter one design decision of his Monkey programming language. Here, the lexer has a NextToken() method that looks like this:

func (l *Lexer) NextToken() token.Token {
    var tok token.Token

    switch l.ch {
// [...]
    default:
        if isLetter(l.ch) {
            tok.Literal = l.readIdentifier()
            return tok
        } else {
            tok = newToken(token.ILLEGAL, l.ch)
        }
    }
// [...]
}

This means the lexer itself does not do backtracking. The meaning of a character at any point cannot be ambiguous. You cannot say, for example, that ‘+’ is the ‘plus’ token unless it is in the middle of a variable name. I don’t know many programming languages that support such behavior – so it is probably an acceptable design decision. You know what they say, “Keep it Simple, Smartypants”. I’m not sure if there are other notable constraints introduced by the design at this point, but it is something that tickles my overly analytical brain.

read more
September 14, 2021

Staff Plus Live 2021

Staff Plus Live 2021 was a virtual conference held by LeadDev.com on Sept 14, 2021. I believe this is their first conference aimed at Staff+ Engineers. Loosely defined, Staff+ are high-impacting engineers whose success is felt across the company. In other words, these are engineers who creates high leverage. I was able to attend this year’s conference and learned a lot from it. I started this post to write down what resonated with me before I forget about them.

read more
August 29, 2021

Post of the Week 2021-08-29

Just the act of measuring something can change outcomes. I love the reference to Jespen.

https://danluu.com/why-benchmark/

read more
August 22, 2021

Interpreter in Go - 3

A lexer takes the source code, a sequence of characters, and group them into tokens. e.g., it makes the first decision on how to process the strings 100-10, -100-10, and -100--100 into groups. I’m going to call this grouping “tokenization” even though I may be misusing the term.

Tokenizing source code is hard. How should -100--100 be tokenized? Should it be a literal -100 followed by the minus token, followed by another -100?

read more
  • ««
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
  • »»
© /dev/jcheng 2026
GitHub