Since now is a time when all things feel possible in #Bangladesh, here is another idea for the @whitehouse and @StateDept to consider. How about bringing @PeaceCorps back to the country? Not only will that provide another way to help the country rebuild, it would also strengthen people-people ties and expand the constituency for Bangladesh in the U.S.
Security concerns can be managed through the way in which the program is designed. It won’t happen overnight but I cannot think of a better place to have Peace Corps volunteers. What do you think @USAID_BD and @usembassydhaka ?
I think most bloat in modern apps stems from the development on high-end machines, which masks inefficiencies in code.
Sadly modern IDEs and dev tooling require high dev machines as they too take lot of resources.
it’s a double bind.
Yes ICQ was running smoothly on my Win98
I personally find it better to create a temp table, bulk load that temp table and after that insert them to main table.
Temp table technique allows me to validate and preprocess data before it hits main table.
**Pro Tip**: Bulk Loading in PostgreSQL for Faster Data Insertion.
If you need to insert bulk amount of data then you should consider using Bulk Loading in PostgreSQL instead of single or multiline SQL inserts.
@ebenezerDN everything comes to play when you are developing a database engine which most of the self taught web developers doesn't have. Another example If anyone want to switch to machine learning it will be much easier for a cs graduate.
@ebenezerDN Frameworks etc. For example If they need to create a custom database engine, they will just fail in that cause algorithm , data structure, problem solving skill, os in depth knowledge, parsing, ast, jit, memory structure, cpu cycle knowledge etc...
"Dumb" guy wants to become a software engineer.
Buys a coding book, builds apps and shares them on GitHub. Lands a developer job.
Smart guy wants to become a software engineer.
4 years in college cramming algorithms and debating why only degree holders should be called Software ‘Engineers’
GitHub? 0 repositories. Portfolio? Empty. Still wondering why recruiters aren't calling.
its fascinating to know how jit (just in time) compilers work (e.g. v8 in node). The code section in the process is read only so you can’t just add more code after compilation.
so jit generates machine code at runtime, placing it on the heap instead and then marks the area in memory as executable (cpu won’t execute instructions in any memory location to protect against buffer overflow), finally have a function pointer point to that address and invoke. and everything just work (through the stack). the jit code lives in the code section.
this is as oppose to interpreting byte code with a virtual machine like python. doing translations essentially
this code is this
this code is that
oh this is a + so execute this code
once you know how the os/process execute thing you appreciate the low level details.
i love this stuff. I still new to this area. Now I want to know how hot reloading works in erlang. because we know you can’t change code at runtime
@hnasr It goes back to interpreter because interpreter can execute simple operations faster than jit compilers as it has to go through native code generation process.
@hnasr Jit compilers are used only to improve performance of the heavyweight operations or for those functions which are called repeatedly. It goes through a code generation process and creates the native code and then caches it and executes it. After that it jumps back to interpreter.
Not a #golang specific tip, but people often give the advice "the best way to get better at any programming language is to write more programs". This is true at the start, but as you begin to get more comfortable with the language, the best way to improve is to read lots of other people's code too.
Every week for 30 minutes I will find a repo on Github and just read it. I tend to start with the entry point (usually main.go) and look for interesting patterns and ideas to see what I can learn from them.
Here are some of my favourites:
- github.com/google/exposur…. This was reference server co-authored by Apple and Google during Covid. The way they use the logger inspired the way I have logged ever since. It also looks very similar to Slog that just got released.
- github.com/matryer/xbar by @matryer. This one is really interesting as its just a completely different way to use go.
- github.com/ardanlabs/serv… by @ardanlabs . The ardan Labs folk run a whole course on how to write this service but kindly make it open source and free. It has examples of tracing, logging, profiling and much more. A really great place to learn.
- github.com/charmbracelet/… yields incredibly beautiful TUIs, and does some interesting things with Go to achieve it.
- github.com/Humpheh/goboy a Frigging gameboy emulator written in Go!
Which repos have you learnt a bunch from?
What repos should I read in the next few weeks? Feel free to share your own :)
Some @PostgreSQL footguns:
- default configuration
- long transactions mixed with OLTP workload
- repmgr (and other HA tools not based on consensus algorithms)
- LISTEN/NOTIFY
- "pg_dump is a utility for backing up a PostgreSQL database" says the official doc
- moving/copying PGDATA and ignoring glibc version change
- hot_standby_feedback on/off dilemma
- partitioning of tables having high number of indexes and receiving QPS >> 1k
- "setting statement_timeout in postgresql.conf is not recommended because it would affect all sessions" says the official doc
- using replication slots w/o setting max_slot_wal_keep_size
- relying only on statement_timeout & idle_in_transaction_session_timeout and thinking it's enough (lack of transaction_timeout)
- data types "money", "enum", "timestamp" (3 different cases)
- int4 PK
- massive DELETE
- attempts to use transactional version of DDL (e.g., CREATE INDEX) under heavy loads
- subtransactions
- DDL under load without lock_timeout
Welcome pg_later, a new Postgres extension that allows you to initiate a query or task and check the result later.
It should be helpful for maintenance tasks and long-running DDL/DML queries.
Give it a try 🤜tembo.io/blog/introduci…
🎁 Giving Away 100 System Design + ML System Design Books + Newsletter Deep Dive Content 🎁
To celebrate our upcoming 1-year YouTube channel anniversary, we will be giving away:
🔹 10 signed physical books (vol. 1 + vol. 2 + ML system design; winners get all 3)
🔹 90 1-year subscriptions to the ByteByteGo online course. The course includes content for two system design books (vol. 1 and 2), vol. 3 (coming out in 2023), and an ML system design book.
🔹 10 1-year subscriptions to the ByteByteGo paid newsletter content.
🔹 Shipping is on us. If you live outside the US, you will receive a 1-year subscription to our online course.
𝐇𝐨𝐰 𝐭𝐨 𝐩𝐚𝐫𝐭𝐢𝐜𝐢𝐩𝐚𝐭𝐞:
✅ Follow me on Twitter
✅ Like & Retweet
✅ Subscribe to our free weekly newsletter: bit.ly/42Ex9oZ If you have already signed up, please enter your email again to be eligible.
⏰ The giveaway ends in 72 hours.
#systemdesign#coding#giveaway
.