• Thursday

    • Private work.
    • GitHub Universe Keynote: https://www.youtube.com/watch?v=NrQkdDVupQE
      • Of course MS, same OpenAI umbrella.
      • Focusing mostly on AI pair programming with Copilot, coming December.
      • Plugs into github itself too; eg asking chatgpt to write a PR summary for you.
      • Automatic scans for security reviews, plaintext passwords.
      • Regex assistant.
      • You can train copilot on your company’s private data. Copilot Enterprise. Example: if you have an internal service to do something, copilot can suggest that instead of a public solution. Example: explain code XYZ to me.
      • Copilot Workspaces. For every issue filed on github, it will analyze it (and the repo, and the internet) and propose a solution and PR the fix.
    • Copilot.
      • Unistalled tabnine and installed copilot (+chat, +labs) for vscode. Signed up for individual ($100/yr, 1mo free trial). Labs requires an extra term agreement (free).
      • Autocompletion is great. Has multiple suggestions you can scroll through (alt and a bracket, left or right)
      • ctrl-i for (editor-inline) copilot chat. Ask it to create all sorts of code. Instead of inline, you can have a full chat window open in the sidebar (basically chatgpt in ide).
      • You can also just write comments and tab through the autocompletions to generative code step by step.
      • The Labs sidebar has 4 features.
        • Explain highlighted code.
        • Translate highlighted code (to another language).
        • Generate tests for highlighted code (only available in js/ts for now).
        • And a bunch of “brushes” – add docstrings, add types, chunk into smaller functions, clean, make readable, more.
      • After 1 day of use – this is extremely helpful in speeding up development times. Especially for less-familiar areas, like my tsx sbsc translation.
    • NYT definitely uses wordpress for their site. After looking it up, so does Forbes, CNN, many more.
    • Updated iCUE.
    • Can’t simply fetch() in useEffect to an address with a CORS policy that hasn’t whitelisted your requested origin (like localhost for testing -> sbsc). Must set the response headers on the server itself (not a clientside fix, obv). Postman doesn’t hit these errors bc it’s just sending the request. Browsers enforce CORS policies (and requests submitted from apps running within them). Exception: the navigation bar doesn’t enforce CORS. These are considered basic requests, unlike XMLHttpRequest/AJAX/FetchAPI.
    • Remember server components can’t useState or useEffect.
    • Monthly water change AND biweekly maintenance. Replaced trident reagent A.
      • You can’t fill the sump all the way up to the top of the white divider. It will overflow when the main pump is off.
    • The AWS vscode plugin allows you to interface with all your aws resources. You can modify files in s3, invoke lambdas, check cloudwatch logs, more.
    • Omegle was forced to shut down (mostly child abuse).
    • Updated vscode.
    • Mint is being shut down.
      • Moving to Credit Karma.
      • Another product under the Intuit umbrella.
      • Not sure why. Mint is such a popular aggregator.
    • Disputed the “undeliverable” charges on the prime card. Amzn hadn’t issued a refund, and the charges are still posted to the account.
    • Amplify.
      • Amplify has been costing the privateer site less than a cent per month (low traffic, no big changes to rebuild).
      • There’s Amplify Studio and Amplify Hosting. The latter is for hosting the frontend, which I need. Studio is huge:
        • Assists with building the fronted. Library of UI elements.
        • Defines data model.
        • Storage.
        • Managers users / authentication.
        • Analytics.
        • API definition (REST and GraphQL).
      • Amplify automatically creates a CF dist and DNS records to front your app.
      • While Studio is basically the IDE for the full stack; you can also use the console, `amplify-cli`.
      • You can’t migrate an amplify app across regions (easily).
    • Supercontest.
      • Worked on Amplify all day today.
      • Dumb refresher. In the early years, my sbsc site was basically SSR. Flask would get the requests and respond with the rendered templates. But you can just as easily deploy a static site (SPA or otherwise, it’s just a collection of html/css/js files) to s3/cloudfront. Nowadays, Amplify supports SSR via next.
      • Currently using flask-user, and migrating to aws-cognito, but I could also move to flask-jwt-extended. You just make a /login route, take the un/pw, use the jwt lib to create a token from it, then return the token to the user. Subsequent async requests from your client app to the server can use the jwt.
      • Versioning.
        • This was entirely too difficult for such a commonly used modern stack of amplify+next. You can’t use node 20, which is LTS.
        • At first (node 20, npm 10, next 14). Ran into too many issues with the default build image, pkg overrides, GLIBC_2.27 not found, etc.
        • Switched to (node 18, npm 9, next 14). Still facing issues.
        • So just used the build image public.ecr.aws/docker/library/node:20. Build passed, failed on deploy (for the hosting env, not backend).
        • Found this: https://github.com/aws-amplify/amplify-hosting/issues/3773#issuecomment-1783092708. The fix lies on the amplify side. As of 2 weeks ago, amplify only supports node 16 (!!).
        • Then it looks like the devs added support for node 18 (which is compatible with next 14) last week. Node 20 is still not supported.
        • Honestly considering moving to vercel purely to avoid this.
        • Eventually got it working with node 18. Can’t add package overrides (since still missing glibc in amazon linux 2), so set custom build image to public.ecr.aws/docker/library/node:18.
      • Next obv ships with ts, eslint, tailwind.
      • Yep, Amplify has UI components (and cognito integration) to replace everything from flask-user.
      • https://aws-amplify.github.io/amplify-js/api/classes/authclass.html