3,439 karma · joined July 30, 2013
Instead of making the first class installable extensions plugins create a primitive called modes that encapsulate groups of plugins with extra configurations so that instead of having to pick every plugins for our setup we just pick the most popular javascript or ruby etc. mode and then add a couple of our own plugins on top.
Add some system that suggests hotkeys based on usage. If I hit l 20 times instead of just hitting f’ to get to the end of the line show a popup. Gamify the key maps and suggest key maps and features even from my plugins.
Instead of having a package manager for your editor just use homebrew and integrate it deeply into the editor.
The idea of Rails 8 is to move away from trend following and try to reject some of the ideas that have become popular in the industry (like being afraid to touch a Linux server or implementing your own auth). Really though provoking stuff.
Deciding what parts of your workflow to automate is whats important.
From personal experience and from the popularity of rstudio, jupyter etc. the evidence points in the other direction.
It’s because when you start out you just need to learn what code looks like, how does it run (do all the lines execute at once or sequentially), that you have these boxes that can hold values etc.
The idea that wanting to become better at using something is pearl clutching is frankly why everything has become so mediocre.
Well in modern software we stand on the shoulders of many many giants, you have to start somewhere. Some things you may never need to learn (like say learning git at a deep level when learning the concept of add, commit, rebase, pull, push, cherry pick and reset are enough even if you use a GUI to do it) and some thins you might invest in over time (like learning things about your OS so you can optimize performance).
The way you use automation effectively is to automate the things you don’t want to learn about and work on the things you do want to learn about. If you’re a backend dev who wants to learn how to write an API in Actix go ahead and copy paste some ChatGPT code, you just need to learn the shape of the API and the language first. If you’re a rust dev who wants to learn how Actix works don’t just copy and paste the code, get ChatGPT to give you a tutorial and then your write your API and use the docs yourself.
For example if you are a frontend developer doing typescript in React you could learn how React’s renderer works or how typescript’s type system works or how the browser’s event listeners work. Over time you accumulate this knowledge through the projects you work on and the things you debug in prod. Or you can purposefully learn it through projects and studying. We also build up mental models of the way our product and it’s dependencies work.
The reason a coworker might appear to be 10x or 100x more productive than you is because they are able to predict things about the system and arrive at solution faster. Why are they able to do that? It’s not because they use vim or type at 200 wpm. It’s because they have a mental of the way the system works that might be more refined than your own.
To learn effectively you need to challenge your knowledge regularly, elaborate on that knowledge and regularly practice retrieval.
Building things solely relying on AI is not effective for learning (if that is your goal) because you aren’t challenging your own knowledge/mental model, retrieving prior knowledge or elaborating on your existing knowledge.
LLMs are just a faster and more wrong version of the copy-paste stackoverflow workflow it’s just now you don’t even need to ask the right question to find the answer.
You have to teach students and new engineers to never commit a piece of code they don’t understand. If you stop at “I don’t know why this works” then you will never be able to get out of the famous multi hour debug loop that you get into with LLMs or similarly the multi day build debugging loop that everyone has been through.
The real thing that LLMs do that is bad for learning is that you don’t need to ask it the right question to find your answer. This is good if you already know the subject but if you don’t know the subject you’re not getting that reinforcement in your short term memory and you will find things you learned through LLMs are not retained as long as if you did more of it yourself.
On the other hand for newer programmers you want to focus less on the tools, installation and workflow and more on just getting them programming. In that situation the batteries included environments like RStudio would be preferred.
Another practical thing to think about is how much you and your TAs want to wrestle with installation issues vs just giving them a web based notebook environment like Colab.
The good part is you can get the minimum viable product of every feature up every time. The bad part is when you run into bugs you can’t debug it yourself because you haven’t built up the mental model of how the system works since you’re just copying and pasting. The more unique your problem gets (once you’re out the hello world zone of problems) the worse the AI is at helping you. The first few times you run into a simple debugging and the AI figures it out for you it’s pretty cool but the frequent times the AI gets stuck in a loop and you spend hours feeding it debug output after debug output and it still being broken makes you hate this workflow.
So yes it does help you rapidly build the features but at the same time there’s an immense amount of additional work needed to maintain and debug the system. Also the code is generally very poorly structured and architected.
So yea impressive stuff at a surface level and great for speeding up your ability to get started on a task. But really bad to rely on it (at this point) for anything of greater complexity than the basic quick start tutorial of your library of choice (in my experience).
The advantage is this lets you see what something would look like in a few minutes without needing to learn the thing (saves you 2.5 hours) the disadvantage is when you try to add new features or build a new site you haven’t learned anything. The 2.5 hours is an investment in the skill.
Another interesting thing to point out is how the UI pattern is off in your example. Do you see how “selected” category is in the same multi selection as the actual menu items whereas the normal UI pattern would be to have a Cart or something on the page. This is the issue that I have been running into with these Generative UI approaches is this stuff happens constantly and in very strange ways.
I found that for anything above hello world complexity the snippets produced by these tools take more time and have lower quality than if you just learned the tool yourself (which you can use AI for) and did it yourself.
I did manage to get interesting results when I turned it into a few shot prompt with a lot more RAG. So maybe more specialized versions of these tools can produce better results than generalist versions.
A good manager coaches their engineers on how to package (one pager, demo, talking to partners etc.) and present their ideas to get buy-in from leadership, these types of managers are the ones hackers like.
A bad manager is one who gives a dismissive “talk to a PM” answer, who doesn’t coach through the politics/process of the company and simply dismisses your ideas outright. If you hear this type of answer it gives the impression of those “just do your job and keep your head down” sort of workplaces with management that’s bad for growth.
It’s like in school every TA uses the same rubric yet they all grade differently.
- “Can you tell me about the last time an IC on your team turned an idea into a feature/product? What was the process?”
This can pinpoint whether the manager has a record of helping their directs get their own ideas into the product.
- “Tell me about the challenges you ran into in your last major migration, how did you decide what technical debt falls below the line?”
All migrations end up being late due to unknown unknowns, but you probably want to learn a little bit about how they managed the situation and how they decided to cut scope to still meet the new deadline. Or you could go with something like “tell me about the first 6 months of your most recent hire.”
The “6 months have gone by, what’s different?” Is just a bad question. If what you’re trying to figure out is how you’ll transition from onboarding to full team member why not just ask about that directly?
Also if you wanna social engineer the interview with this type of strategy, you probably should ask questions that are less focused on what they will do for you and more focused on how you can impact the organization.
There’s also a few amazing first person videos from space walks on the ISS: https://youtu.be/AmrrSfiMxGA
The footage from Artemis is gonna be incredible.
Also highly recommend this “are we going?” Talk on engineering issues in Artemis: https://youtu.be/OoJsPvmFixU Which is where I learned about this report from NASA called “What Made Apollo a Success”: https://ntrs.nasa.gov/api/citations/19720005243/downloads/19...
I worked on a small team at a government contractor that never used version control and deployments were an rsync from the lead engineer’s laptop to the cloud, this was in 2020.
There’s a lot of industries like bioinformatics or journalism where there’s people who are adept at writing code but who are not doing software engineering.
Whatever you decide to call these two things anyone who has onboarded a new grad/intern has observed this distinction because its a different skill set.
In my experience in data engineering, it’s very unlikely you can exceed 500mb/s throughput of your business logic as most libraries you’re using are not optimized to that degree (SIMD etc.). That being said I think it’s a good technique to try out.
I’m trying to think of other applications this could be useful for. Maybe video workflows?
> How does ArcticDB differ from Apache Parquet?¶
> Both ArcticDB and Parquet enable the storage of columnar data without requiring additional infrastructure.
> ArcticDB however uses a custom storage format that means it offers the following functionality over Parquet:
> Versioned modifications ("time travel") - ArcticDB is bitemporal. > Timeseries indexes. ArcticDB is a timeseries database and as such is optimised for slicing and dicing timeseries data containing billions of rows. > Data discovery - ArcticDB is built for teams. Data is structured into libraries and symbols rather than raw filepaths. > Support for streaming data. ArcticDB is a fully functional streaming/tick database, enabling the storage of both batch and streaming data. > Support for "dynamic schemas" - ArcticDB supports datasets with changing schemas (column sets) over time. > Support for automatic data deduplication.
The other answer I was looking for was why not kdb since this is a hedge fund.
So you might have an internal service that has passed a minimal security bar that you can only establish an https connection with if you have a valid SSO token.
I don’t think it is advisable to directly expose your Grafana to the public internet where you can hit it with dictionary attacks.
I have been using it so that my agents aren’t specific to a particular model or api.
Like others have said many other providers already have function calling and json schema for structure outputs.