I have been using LanguageTool[1] for years as "an open source alternative to [old school] Grammarly". It doesn't do that fancy "make this text more professional" AI stuff like this or Grammarly can now do, but they offer a self-hosted version so you don't need to send everything you write to OpenAI. If all you want is a better spelling/grammar checker, I highly recommend it.
I’ve learned to deal with this kind of employee. The root cause is often insecurity so that’s what needs to be dealt with. Everything else may be a red herring.
1. Active listen to everything they say, even if it’s their unique perception of things. Do not challenge them, repeat what they said sometimes to make them feel smart, laugh at all the jokes, make them feel heard. You can acknowledge what they say and still not agree with them. Say “that must feel hard”, “that sounds disappointing”, “I can see you’re putting in a lot of effort” — acknowledge the feelings and generally true things (most people put effort into their work), not the minute facts if you think they could be wrong.
2. Give them a lot of praise and thanks, but be genuine. Don't make up praise, just turn up the positive feedback and turn down the negative. Basically, give this person 10% of the most important negative feedback only and 90% of the most important positive feedback.
3. Give them autonomy and trust. Take them off the critical path so they don’t have any real deadlines if you are worried about their performance, there is always backlog. Give them a simple project and trust them completely with the execution. Have 1:1s sometimes to give very very gentle guidance - “what do you think about X?” “What are some alternatives to Y?” “I read this article about Z, why don’t you have a look?”
4. Be friendly to them. Communicate a lot and informally, don’t be formal or involve many people in the communication. Focus on the frequency of the communication. There are some other tips in a book about building professional friendships called The Like Switch.
5. Increase bus factor, these people sometimes still leave unexpectedly. Someone might say something about them publicly or privately, or there will be some perceived slight against them and they will feel victimized.
6. Over time, you can gradually bring such a person back to the critical path and show them “the way” of being secure in the workplace by example.
7. Don’t talk negatively about this person behind their back, even if you usually share your work frustrations with work friends and even the small stuff (“X never washes his mug in the sink, I’m constantly washing up after him” — not even benign remarks like that). If it comes out, that will undo all of your hard work building up this employee. If it doesn’t, but other people learn about this person’s traits, then they might say something and that could turn into a significant problem, even leading to this person leaving because of a perceived slight.
Also, protect yourself. Speak to your own manager (but only them) about this person candidly when you are asked. Say that they tend to view themselves as a victim and they’re not very responsive to feedback, but that you are taking steps A, B, C and D, and that hopefully you’re seeing progress, like that they are less timid with you, they have fewer conflicts in the team, etc. Such a person may go to your manager and stir things up if they feel like they’re victimized by you. While it may be true that this person is victimized by basically everyone from time to time, some headaches can still come to you. So make sure your manager can back you up. The truth and a little bit of time is the best antidote to this type of person if they mean harm to you.
Anyways, they are not bad people, they just slipped into the victim mentality or maybe were raised that way. You can help them rebuild their self-esteem and stop seeing themselves as a victim if you must or want to. It’s probably the most challenging employee to manage though, so expect turbulence. But sometimes we don’t choose who we manage, and also, this person probably has many other great qualities which may make them very successful if they can overcome the victimhood.
This works in my own practice, but it’s definitely a delicate situation.
If "Atomic Habits" doesn't sit with you (I found the endless anecdotes about the author's high school baseball career detracting) I recommend "Four Thousand Weeks: Time Management for Mortals" - it's slightly less targeted to fans of Ryan Holiday/Tim Ferris and slightly more targeted to productivity hack tooling reformed/burnt-out individuals.
I launched https://app.scholars.io to get latest research from arxiv on specific topics I’m interested in so I can filter out ones that I’m not interested. Hopefully it will help someone find research activities other than LLM.
Bombing a million people to death gets different international response than bombing their infrastructure and then opps they starved to death, what a tragedy.
I'm glad this worked for you, but I don't think that you understand OP's central argument about the penalties imposed by the substantial ergonomic mismatch between ADHD "smart" and the conventional species, and may not have as strong a sense of what being on the inside of this condition feels like.
ADHD wiring essentially forces every task to be derived from a set of fundamental axioms about why the task must e done, why it must work the way it does, with an almost proof-like causal chain working all the way back to first principles, in order to simply remeber it in a stable way. Being interested in a subject can benefit you only in so far as it will provide you with motivation to build out a vast knowledge graph scaffold around the set of tasks that need to be done, in order to not feel like you are kicking a dead whale up the beach every time you have to start doing one of them.
But if you are presented with a subject where there is no time to do this, or the type of subject where it is actually not possible and only the muscle memory of rote memorization will power you through it, it doesn't matter how much it subjectively appeals to or interests you. You are going to be at the back of the pack despite your best efforts.
Attempts to give you help will only frustrate your (very likely memorization-gifted) tutors and mentors: they don't understand what's going on, so you merely look stupid, unmotivated or both. However, if you had enough runaway, they would find that not only you would catch up to wherever everyone else was (in one third of the time it took you,) but after another third share of prep time you would move from the bottom decile to the top, with gains still compounding. But this occasion almost never presents itself, because you're typically flushed out of the cycle long before you build enough inertia in the domain to show what you're capable of.
One can go almost sick with envy over the way neurotypically smart people are almkst unaware of how easily and quickly they retain multiple arbitrary lists of "how" steps in processes, even when these are largely self-contained and unconnected to any other chain of reasoning, and just get shit done without having to know how the entire superstructure is put together.
You'll be almost comically bad at (and find little pleasure in) all board games (except the most popular ones you've had years of exposure to), if you have not had time to master them ADHD style - even if you genuinely enjoy board games in principle. Whereas peers in your same nerd adjacent circle seem to reach competence or even mastery of any example in this genre of bureaucracy-as-a-sport within a few plays. Performing on stage, if there are more than a handful of lines to memorize, is utterly out of the question. Even if you love acting or theater, it's just not for you.
My own testament to this paradox is not from board games, but incredibly demoralizong experience trying to learn the piano (as an adult no less), something I had more than ample interest in and motivation to learn, but which in the initial stages presented almost insurmountable obstacles when it came to simply memorizing the basics of sight reading, scales, and the learner's songbook. skills that I watched 7 and 8 year olds, teens and even fellow adult learners, acquire in weeks but took me well over a year to reach parity. Since my job and self-image werent riding on being at the top of the class, I was able to keep with it accordimg to my own pace. And although I probably still wouldn't get hired even for a gig in the local shopping mall, my ability to improvise and stylize outside the set pieces I had received my basic training on inexorably began to surpass most of that cohort who had lapped me several times over back when we were just doing the rote basics.
I have a very specific (and pretty easy) strategy for this when I join a new org. Technically you could do this at any time, but you generally have a "grace window" when you're new where people are happy to go out of their way to meet you and teach you.
First, meet 1 on 1 with every member of your immediate team. This of course serves as a "get to know you" meet, but your real goal is to get them to explain their work to you. Have them go into as much detail as time allows on whatever they're currently working on. Ask followup questions that start with "why" on everything. Have them show you their part(s) of the product, have them share as many docs as they're willing to (for you to read async later), etc.
Put aside whatever ego you may have, and just get into a beginner's/learning mindset. Ask all the stupid questions.
Then, at the end, ask them who else they're working with from other teams. Put those names on a list, and rinse and repeat with them. This way you'll start local to your role and work your way outward in the company. Eventually you'll find people that are doing nothing particularly relevant to you and you can decide to stop.
If it's a larger company, this is also where you establish your understanding of the org chart and who does what in it, and also makes you known to a ton of folks who may want or need to work with you in the future - which is invaluable in and of itself.
This is the classic "money is time, time is money" conundrum. A teenager doesn't have the money to buy a fancy car or computer but they have the time to tweak and experiment to get the most out of it. Meanwhile an adult has the money but not the time, assuming they have a full time job, kids, etc. So they're willing to spend the money to get products that work and would rather spend their limited time with their family instead.
In my teens I had a group of friends who loved to tinker, from hackintoshes to custom ROMs to homelabbing to electronics repair. Now I'm like the only one left who does this stuff :(
The past few years have been a really wild journey for me that have led me to lean heavily into text and writing things down, like everything, all the time.
Here are a bunch of things I've learned in no specific order.
* Writing engages the pre-frontal cortex and suppresses activity in the amygdala. Net psychological effect of this is you become more rational, more methodical, more relaxed, less anxious/fearful
* Cognitive behavioral therapy has the best evidence for efficacy among the "talk therapies," and it's pretty much just a framework for writing down your negative assumptions and analyzing them, this helps you figure out which ones are correct and which ones aren't
* Certain software tools are essentially just environments which lower the friction of working with text buffers, emacs is probably the purest example of this philosophy, any code editor is an example, so are the 'second brain' apps like Obsidian or logseq, arguably a terminal is also an example
* Things we write when transformed to the correct format can change the outside world, e.g. you wrote down a piece of information and then later formatted it as an email or a blog post or as some code which you deployed and now the world outside is closer to what you want it to be, these transformations are potentially macros that you've written in text and versioned somewhere.
It's a radically different approach to thinking and computing than the mental model most people are walking around with in their head. Thinking as writing and writing as execution. Everything starts in the brain, write it down and loosely organize it, over time transform it into your work products, communication with others etc. We are simply moving thoughts down the pipeline from brain to reality, all through the same process, same simple set of tools etc. It is very very powerful for producing high quality ideas and outcomes in my experience.
Umm... Like, pretty clearly H2 wasn't meant to be the Holy Grail? Not sure where you're getting that from. (Though as an aside, it feels like you've now backtracked from "H2 is a failure that's worse than H1" through "H2 was a marginal improvement" to "H2 wasn't the holy grail".)
It didn't need to be the Holy Grail to be worth creating. It just needed to be better than H1 was, or better than what H1 could be evolved to with the same amount of effort. And likewise, it's totally possible for H2 to be better than H1 while also H3 is better than H2.
You appear to be confused by the idea that somebody would ever create something other than the absolute best possible thing. Why create H2 first, rather than just jump straight to H3?
One obvious reason is that H2 is far less complex than H3 thanks to piggybacking on TCP as the transport mechanism. The downside is that you then have to deal with all the problems of TCP as well. At the time, there would have been a lot of optimism about eliminating those problems by evolving TCP. An extension for connection migration, an extension for 0-RTT connection setup, an extension for useful out of order data delivery, etc.
It was only a bit later that it became clear just how ossified TCP was. Up until then, one could have told a story about how Microsoft controlled the primary client operating system, and were not really motivated to implement the RFCs in a timely manner, and that's why the feature rollouts were taking a decade. In the 2010s, it became clear that evolution was impossible even when all the coordination and motivation was there. See TCP Fast Open for a practical example.
So around 2015-ish you see big tech companies switch to UDP-based protocols just so that they can actually do protocol evolution.
The other plausible reason is that it's going to be far easier to get the initial work for making H2 funded, since the scope is more limited. And once you show the real-world gains (which, again, would have been there since H2 is better than H1), you then have the credibility to get funding for a more ambitious project.
I think this is where things diverge depending on what troubles the ADHD brings you. It's kinda like debugging a program except the program is your brain - and yeah in the UK it's medication only by default, had to sort out the CBT side of things myself when I realised the meds were helping but not quite doing enough alone.
I originally went for help with low confidence which expanded out to digging into and addressing self-esteem, confidence, social anxiety, procrastination, and perfectionism.
If I'd taken one general thing from it though it's "do I have evidence or is this an assumption?" - if I have no evidence (that I'm terrible at my job, I did bad, that guy hates me, etc) then I should reevaluate if it's even accurate before doing anything with the thought
Writing things down when things go wrong was a big part of it too - what's the situation, what led to the situation, is it possible to view the situation in a better light, if not how can I fix the situation, if I can't fix things myself is there anyone that can help me with this situation rather than wallowing in it. That sort of thing.
As I say I imagine it'll differ from person to person so other people may have an entirely different experience with it, I'm not sure. Definitely worked for my systems/coding flavoured brain though, really was like debugging faults in a program. Figure out the underlying issue, try a fix, did it work? y/n? If no, try another fix. If yes, work on the next problem.
There's a lot of high-paying tech jobs that can be playing into ADHD (and other not neuro typical brains) strengths and focus thats more like running 42 1km "sprints" than mostly consistent pace 42km marathon.
Things that come to mind are data science/analysis, debugging and fixing outages (finalizing follow up RFO might be hardest part ), security/hacking (hopefully white hat)...
And basically whatever else one personally finds interesting to dig into deep and/or wide.
In all serious contexts — not kids arguing on Reddit — the concept of UBI is just an adjustment of tax brackets such that people below a certain threshold pay negative tax. This is offset by higher taxes in the super rich.
It’s basically saying that Bezos does not work one million times harder than the staff working in his warehouses. Staff that are literally starving in many cases.
Hey, author of https://luna-park.app here! (I was wondering where the spike in visits came from ^^'... Thanks a lot for mentioning me!).
Luna Park was indeed a npm package that you could integrate to allow users to build their own logic using visual scripting. In the end, I pivoted, and Luna Park is now a visual scripting wrapper around the Vue.js framework, allowing people to build modern webapps without code. (I also made https://roller-coaster.app to create endpoints using the visual scripting system of Luna Park)
In any case, that's super cool to see people building awesome tools like yours in the visual programming space :) ! I love how Flyde show you what node is running, and the way it executes logic is really interesting!
The characteristic pattern: In authoritarian states, more influential internet service providers are predominantly state-owned, whereas in democracies they are largely privatized.
This is basically irrelevant as long as there are only a small number of gigantic providers. If the shareholders disagree with the government, the company will do what the government wants.
This all played out with crystal clarity over two decades ago, when the CEO of Qwest (then one of the five largest carriers) refused to spy for the NSA. So they threw the CEO in prison and drove the company to the edge of bankruptcy (it no longer exists).
That was the last time a "privately owned" telecom giant ever said "no" to the NSA.
> much of the work is repetitive, but it comes with its edge cases that we need to look out for
Then don't use AI for it.
Bluntly.
This is a poor use-case; it doesn't matter what model you use, you'll get a disappointing result.
These are the domains where using AI coding currently shines:
1) You're approaching a new well established domain (eg. building an android app in kotlin), and you already know how to build things / apps, but not specifically that exact domain.
Example: How do I do X but for an android app in kotlin?
2) You're building out a generic scaffold for a project and need some tedious (but generic) work done.
3) You have a standard, but specific question regarding your code, and although related Q/A answers exist, nothing seems to specifically target the issue you're having.
Example: My nginx configuration is giving me [SPECIFIC ERROR] for [CONFIG FILE]. What's wrong and how can I fix it?
The domains where it does not work are:
1) You have some generic code with domain/company/whatever specific edge cases.
The edge cases, broadly speaking, no matter how well documented, will not be handled well by the model.
Edge cases are exactly that; edge cases; the common medium of 'how to x' does not cover edge cases; the edge cases will not be covered and the results will require you to review and complete them manually.
2) You have some specific piece of code you want to refactor 'to solve xxx', but the code is not covered well by tests.
LLMs struggle to refactor existing code, and the difficulty is proportional to the code length. There are technical reasons for this (mainly randomizing token weights), but tldr; it's basically a crap shot.
Might work. Might not. If you have no tests who knows? You have to manually verify both the new functionality and the old functionality, but maybe it helps a bit, at scale, for trivial problems.
3) You're doing something obscure or using a new library / new version of the library.
The LLM will have no context for this, and will generate rubbish / old deprecated content.
Obscure requirements have an unfortunate tendency to mimic the few training examples that exist, and may generate verbatim copies, depending on the model you use.
...
So. Concrete advice:
1) sigh~
> a friend of mine came and suggested that I use Retrieval-Augmented Generation (RAG), I have yet to try it, with a setup Langchain + Ollama.
Ignore this advice. RAG and langchain are not the solutions you are looking for.
2) Use a normal coding assistant like copilot.
This is the most effective way to use AI right now.
There are some frameworks that let you use open source models if you don't want to use openAI.
3) Do not attempt to bulk generate code.
AI coding isn't at that level. Right now, the tooling is primitive, and large scale coherent code generation is... not impossible, but it is difficult (see below).
You will be more effective using an existing proven path that uses 'copilot' style helpers.
However...
...if you do want to pursue code generation, here's a broad blueprint to follow:
- decompose your task into steps
- decompose you steps in functions
- generate or write tests and function definitions
- generate an api specification (eg. .d.ts file) for your function definitions
- for each function definition, generate the code for the function passing the api specification in as the context. eg. "Given functions x, y, z with the specs... ; generate an implementation of q that does ...".
- repeated generate multiple outputs for the above until you get one that passes the tests you wrote.
This approach broadly scales to reasonably complex problems, so long as you partition your problem into module sized chunks.
I personally like to put something like "you're building a library/package to do xxx" or "as a one file header" as a top level in the prompt, as it seems to link into the 'this should be isolated and a package' style of output.
However, I will caveat this with two points:
1) You generate a lot of code this way, and that's expensive if you use a charge-per-completion API.
2) The results are not always coherent and functions tend to (depending on the model, eg. 7B mistral) inline implementations for 'trivial' functions instead of using functions (eg. if you define Vector::add, the model will 50/50 just go a = new Vector(a.x + b.x, a.y + b.y)).
I've found that the current models other than GPT4 are prone to incoherence as the problem size scales.
7B models, specifically, perform significantly worse than larger models.
> True P2P networks don't scale, because every node has to store an (accurate if partial) representation of the whole network
Former LimeWire dev here... which P2P networks use a fully meshed topology? LimeWire and other Gnutella clients just have a random mesh with a fixed number of (ultra)peers. If the network gets too large, then your constrained broadcast queries hit their hop count before reaching the edge of the network, but that seems fine.
Last I checked, Freenet used a variation on a random mesh.
Kademlia's routing tables take O(log(N)) space and traffic per-peer to maintain (so O(N log(N)) for global total network space and traffic). Same for Chord (though, twice as much traffic due to not using a symmetric distance metric like XOR).
There are plenty of "True" (non-centralized) P2P networks that aren't fully meshed.
Israel launched what it said was a preemptive strike [0] against Egypt, destroying virtually the entire Egyptian air force on the ground. Lacking air cover, Egyptian ground forces in the Sinai peninsula retreated, but were destroyed by the Israeli air force on the roads.
Not having a clear picture of what was going on [1], the Jordanians and Syrians entered the war on Egypt's side, only to suffer a similar fate as Egypt.
Israel ended up conquering the Sinai peninsula, East Jerusalem and the West Bank, and the Golan Heights.
It's hotly debated whether the war really was a preemptive strike to head off an impending Arab invasion, or whether it was a war of aggression by Israel.
In any case, as a consequence of the war, millions of Palestinians came under Israeli rule. The Israelis were faced with a conundrum: they wanted to keep the land (especially the West Bank and East Jerusalem), but they didn't want millions more Arab citizens, who would shift the demographic balance, ending Israel as a Jewish state. That's why Israel has kept the Palestinians in limbo for more than half a century. They live under Israeli control, but they aren't Israeli citizens.
0. Israel initially claimed that it had been attacked first, but it soon admitted that it had attacked first.
1. Egyptian propaganda in the first hours claimed that Egypt had scored major victories.
It's not mentioned in the paper but this month OpenChat 3.5 released the first 7b model that achieves results comparable to ChatGPT in March 2023 [1]. Only 8k context window, but personally I've been very impressed with it so far. On the chatbot arena leaderboard it ranks above Llama-2-70b-chat [2].
In many ways open source LLMs are actually leading the industry, especially in terms of parameter efficiency and shipping useful models that consumers can run on their own hardware.
The quickest way to do a lot of bridges is this Ansible playbook: https://github.com/spantaleev/matrix-docker-ansible-deploy. I set up Discord, Telegram, Facebook, Instagtam, Slack, IRC without too much trouble. Though if you need a bridge not directly supported you'd be better off doing it manually'
- create a simple html template using simple.css [0]
- write markdown files
- wrap pandoc [1] in a simple bash script to manually convert markdown to html
- and that's it.
By minimalist, I mean: no script, no component, no database, no react, no SEO.
The result is a minimalist website that you write in markdown.
It's very limited compared to full-featured frameworks, but it can do the job for a simple website.
Here is mine: [2] (I'm not a web developer at all).
[0] https://github.com/kevquirk/simple.css
[1] https://pandoc.org/
[2] https://remipch.github.io/