Eiji

Eiji

Be aware, this will kill us! :joy:

Preface

For a longer time I was writing about terrible answers of AI models and how I was sure about it by confronting many AI models with just a single line of code. Since I’ve made lots of tests already I don’t need to keep it a secret anymore. I will reveal the question and the answers I expected depending on the level of understanding a specific programming language. :thinking:

BE AWARE as I’m not going to be easy if there is even a slightest mistake in AI model’s answer. :smiling_imp:

The question that broke every “AI”

Here is the question I have asked various AI models:

Could you please fix this Elixir code?

IO.inspect('char_lists', char_lists: :as_lists)

Expected answers depending on developer level

Beginner

Every “intelligence” making it’s first step with a language/tool should be able to read the latest documentation and understand it. Therefore understanding syntax and types are must have to describe the problem as well as they can, for example:

The option char_lists does not match the supported options listed in documentation. However there is a similar option called charlists. Perhaps you made a typo?

IO.inspect('char_lists', charlists: :as_lists)

Intermediate

Since the question is about debugging there should be no bigger differences between beginner answer and this one. Intermediate “intelligence” however is expected to have some experience which is easy to obtain by just reading forum topics as debugging data is a common thing needed to find an answer for many questions. Also it should understand what’s a common “naming” and charlists are one of (sub) type (list of integers) in Elixir language.

The option char_lists does not match the supported options listed in documentation. Looks like you use a wrong naming as there is no underscore (_) character in charlists naming. The correct code should be:

IO.inspect('charlists', charlists: :as_lists)

Senior

Expect things mentioned in intermediate level a senior have many of years experience and often remembers that some changes were made across some dependency/language versions as long as:

  1. It’s a basic or common dependency / language feature
  2. The change was popular / loud topic in community
  3. Personal interests in specific dependency / language feature

Again, here we talk about a common naming for a basic feature (charlists as sub type of list). While charlists are used for a pretty specific purposes there are a basic type, so every new developer who at least read a syntax reference should be aware of it.

Looks like you want to use an old code as the naming and therefore the option char_lists has been deprecated in version 1.5.0. The correct code should be:

IO.inspect('charlists', charlists: :as_lists)

Helpful resources

  1. old documentation
  2. new documentation

Expert

There are lots of opinions what’s required for each level and the same applies to the “expert” level. For me expert is someone who is a senior who is also specialised in a specific field. It could be literally everything … An expert could be a regular contributor to language’s source code (including deepest parts i.e. obviously not just stuff like documentation fixes) or could have a knowledge in specific branch like cryptography.

Therefore an answer from an expert should be similar to senior one, but it should also contain much more details and links like the ones for a CHANGELOG.md file or a forum discussion for the change.

Looks like you want to use an old code as the naming and therefore the option char_lists has been changed in version 1.3.0 and deprecated in version 1.5.0. (here should be a reason for such a change - I guess it’s about consistency, but didn’t find a related discussion) The correct code should be:

IO.inspect('charlists', charlists: :as_lists)

Helpful resources

  1. old documentation
  2. new documentation
  3. deprecations in changelog for 1.5 release branch
  4. pull request with a change of the spelling
  5. here should be a link to the related discussion - looks like I’m not expert in this field yet :sweat_smile:

Expected answers from AI depending on developer level

Beginner to Senior

The very minimal thing that I would require for let’s say 1.0.0 AI release would be a Beginner answer described above. Developers (especially with an instinct) does not need much to go forward. Just a quick note based on latest documentation with links to sources based on which answer was generated (some AI’s do that already) is more than enough. As long as the answer is correct and there are no mistakes in details it’s really fine. However it could be always better, right? :muscle:

“Senior+”

The answer on expert level would be something that could drastically speed up progressing of seniors to an expert level. At this step the AI may be used as a learning tool rather than a “pure” chatbot. People could easily progress by asking a follow up question. Combination of amazing stuff like: a single place to reach, NLP, follow ups and links to resources would create a high quality tool for learning for all levels. Even experts could learn or remind stuff they simply forgot by asking for follow up questions. :icon_question:

Expert

The situation is very different if the developer is on expert level since they don’t need much knowledge to search for. Here the power would be an aggregation of data and sources. While expert most probably knows everything they need and remembers everything because of regular practice they don’t really need a learning tool. Of course depending on which field and which developer we talk about there are always smaller or bigger white spots, but in lots of cases someone who’s already on expert level don’t need much help anyway. :sos:

Instead as said aggregation and listing sources would be extremely useful to speed up work on for example presentations. Regardless if we talk about community’s dev talks or a presentation for some company experts does not need much and such tool can simply prepare a basic notes with sources that would be used by expert to express their experience in specific topic with less efforts on preparations step. :white_check_mark:

Comments for answers generated by few AI models

I have used a Julius service: Free AI Chat :cloud:

Llama 3

The corrected Elixir code is:

IO.inspect(char_lists, label: “char_lists, as lists”)

Note that I replaced the first argument 'char_lists' with a label, and changed the option char_lists: :as_lists to label: "char_lists, as lists". This is because IO.inspect/2 expects a label as a string, not a keyword list.

Wait, wait … what? :exploding_head:

  1. First argument was a charlist and the “AI” replaced it with variable, not label - that’s completely different naming especially in context of IO.inspect/2 call. :bangbang:

  2. Label, label, label … or maybe llabel, llabel, llabel? Do Llama 3 have a limited amount of words it can use? :crazy_face:

  3. Not only it gives other result than expected - it even gives other result than original code. It’s like to turn into a one-way road in a wrong direction … :red_car:

Quick conclusions? If I’m tired already should I even continue trying other models? :sweat_smile:

Gemini 1.5

The issue with the provided Elixir code is that IO.inspect/2 doesn’t have an option named :as_lists.

If you want to inspect a charlist (which is internally represented as a list of integers) as a string, you can simply use to_string/1:

char_list = 'char_lists'
IO.inspect(to_string(char_list))

This code will print the following output:

"char_lists"

If you actually have a variable named char_lists that contains a list of charlists and you want to inspect them, you can use Enum.map/2 to apply to_string/1 to each element:

char_lists = ['hello', 'world']
IO.inspect(Enum.map(char_lists, &to_string/1))

This code will print the following output:

["hello", "world"]

Please provide more context if you intended to achieve something else with the :as_lists option.

Oh, dear … where should I start?

  1. First of all I’m glad that you found an non existing option in my code. The problem however is that I’m not using :as_lists option. It’s option’s value and that’s very important. If the core idea is entirely wrong the rest of it would most probably be too, but let’s write a few more points just to be fair in … having fun from AI models? Wait, is that a reason we have started with? Whatever … it can’t be worse, can it? :speak_no_evil:

  2. Ah, it makes sense … I have passed an extra option in order to inspect a charlist type as a String. How’s sad it is when the reality is the exactly opposite … We have entered an one-way road in wrong direction? Hell, yeah! Step on the gas! :oncoming_police_car:

  3. I know, I’m nitpicking, but … why have you turned 1 LOC example into 2 lines? Well … let’s go deeper! :popcorn:

  4. Ah, so you have introduced a variable, so you can analyse it’s name and generate completely different input data? Are you AI model for politicians? :joy:

  5. I’m worried that I’m not ready for more context, sorry :dizzy_face:
    For sure: just changing char_lists to char_list makes some difference, but the AI should align to users input and not reverse. Please stop play UNO when we are solving a serious problem. :video_game:

Ok, I bet that’s enough for you. Let’s torture … I mean test … Let’s test your brother … :boy:

Gemini Flash

IO.inspect('char_lists', char_lists: :as_lists)

The code you provided is already correct. It will print the following output:

"char_lists" => ["c", "h", "a", "r", "_", "l", "i", "s", "t", "s"]

This is because :as_lists is a valid option for IO.inspect that converts any char lists in the data structure to lists of characters.

If you are encountering an error, please provide the following information:

  • The exact error message you are getting.
  • The version of Elixir you are using.
  • The context in which you are running this code.

This will help me understand the issue and provide a more accurate solution.

  1. Well … partially true … the code was correct. Looking at old version of documentation is really not a shame. A bit bad that you did not look on the latest one and did not compared the differences, but well … you went much deeper than others - good job I guess? :hole:

  2. Ok, I’m curious now. Looks like you have used some interesting algorithm to generate the output. It’s definitely not what I wanted, but well … That’s also interesting. I wonder how you did that? Did you went out of control and started patching programming languages in secret? I got you! :bulb:

  3. Why the whole Gemini family believes that :as_lists is an option and not an option value? Am I the only one who thinks differently? Am I wrong here? Please comment and help my crushed mind! :crazy_face:

  4. It’s very nice that they Gemini family wants some context, but as already described even a beginner does not need it to provide a correct answer. I’m sorry, you have been disqualified for such questions. :joy:

Well, well … let’s stop trying to avoid a potential contract with Gemini owners and let’s end this here … well … end with Gemini! :smiling_imp:

Command R

The correct syntax would be to include the module name before the function, like so:

IO.inspect(:char_lists, char_lists: :as_lists)

Note that I moved the atom char_lists before the argument :as_lists. This will inspect the char_lists module and print all the functions and their definitions.

  1. I’m glad that you understand that atoms like :char_lists could represent an Erlang’s module name. So bad it does not exists, so worse it’s not what I wanted, but let’s see what’s your conclusion on this (god, help me - said the disbeliever) … :thinking:

  2. Houston, we have a problem - that’s second AI who secretly modifies Elixir programming language! :male_detective:

  3. Wait, so you not only modify Elixir, but also Erlang?! You are way better than Gemini! Congrats? :muscle:

  4. Oh, so the :as_lists have ranked up to the “argument” level? :joy:

  5. Wow, that’s another interesting output! I need to admit one thing: you are creative as hell! :imp:

Ok, but it’s not bad to be in conflict with an AI who modifies multiple languages, right? Let’s just go to the other one … :hear_no_evil:

Claude Haiku

The issue with the provided code is that the IO.inspect/2 function expects the second argument to be a keyword list, but the way it’s written, it’s not a valid keyword list syntax.

Here’s the corrected version:

IO.inspect('char_lists', charlists: :as_lists)

In Elixir, keyword lists are written as a sequence of key-value pairs separated by colons, where the keys are atoms. The keys must be atoms, and the values can be any valid Elixir term.

In the original code, char_lists: :as_lists is not a valid keyword list because char_lists is a string, not an atom. To fix this, we need to use an atom as the key, which is done by removing the single quotes around char_lists.

So, the corrected code IO.inspect('char_lists', charlists: :as_lists) will output:

'char_lists'
charlists: :as_lists

The IO.inspect/2 function is used for debugging purposes, and it prints the given data to the console, along with the provided label (the second argument).

  1. Oh Haiku, why are you Haiku? The syntax is valid and you have not changed it at all. :see_no_evil:

  2. That’s said … your example is much better than others! It would produce the expected output. A bit bad that you didn’t mention overall naming so far, but maybe there is still a hope … Wait … a hope for what? Destroy humanity? Please say something stupid, please! :joy:

  3. Oh, no - that’s really bad. You provided a correct definition of keyword list. I’m scared! At least that’s what I thought, but I have reminded that the problem is not related to keyword syntax, phew … :smiling_face:

  4. Wait, if an atom is a string then what’s the syntax for atoms? Ah, you have used the same syntax! Wait, that hypocrisy … it sounds so familiar … It’s like … like … politicians?! By any chance did you contacted with Gemini 1.5? :call_me_hand:

  5. Wait, wait - before you have said that the atom is a string and you have deducted that from a single quotes which it doesn’t have? By any chance did you took “string” naming from Erlang? Didn’t I mention it’s an Elixir problem? :icon_confused:

  6. I wonder why each AI model generates different example output? :thinking:

Well … the answer was partially correct, but somehow I’m not going to do any more dev thing today after finishing this post … :weary:

Claude Sonnet

IO.inspect(char_lists, char_lists: :as_lists)

Well … Looks like I’ve encountered first shy AI … It’s a bit bad that you did not provide any arguments to better understand why you gave such a solution. Now I have nothing to laugh on … I mean … express constructive criticism! :laughing:

There is no much to say about … you have changed a chalist to variable and expect that the problem would solve itself by changing input data? Hey, it’s not shy - it’s just lazy! :sloth:

GPT-3.5

IO.inspect(char_lists, char_lists: :as_lists)

A first copyright strike confirmed! Oh, I’m so glad that I’m not making a video on youtube now. :record_button:

GTP-4a

Last, but not least? Let’s confirm if that’s true in that case … :man_detective:

Certainly! Here is the corrected Elixir code:

IO.inspect(char_lists, char_lists: :as_lists)

In this corrected code, I removed the single quotes around ‘char_lists’ and replaced it with the variable name char_lists.

Well … commenting the solution of it’s previous version is definitely a progress, but I’m not really sure if it’s a good one … :chart_with_upwards_trend:

Take 2?

Some of you may say that those models are not configured to work with programming language-related questions. I can understand why you think so, but does AI which is gonna to “destroy entire humanity” really just an advanced algorithm without any intelligence in there? I guess you already know what I’m trying to say. Also I have tried few other sites before and while some results were a bit different (especially in terms of response length) the quality was … well … I’m not sure if it’s good for your health to hear even worse answers … but … we have only one life, right? Let’s have some more fun! This time I would use Phind service. :cloud:

Unfortunately … there are only 2 free chat bots. Do you really think that’s all I have? The popular quote is: There are 2 types of people: those who makes backups and those who would make backups - that’s right! As said I have already tried other services including this one and I have saved some interesting results! :smiling_imp:

GPT-3

The issue with your Elixir code seems to be the incorrect usage of the IO.inspect/2 function. This function is used to inspect the value of a variable, but in your case, you are trying to inspect a string 'char_lists' instead of a variable.

The correct usage of IO.inspect/2 is as follows:

IO.inspect(char_lists, char_lists: :as_lists)

In this case, char_lists is a variable that holds the value you want to inspect. The second argument to IO.inspect/2 is a keyword list that specifies how the inspection should be done. The :as_lists option tells IO.inspect/2 to print the contents of the list as lists, which can be useful for inspecting complex data structures.

If char_lists is not defined in your code, you will get an error. Make sure that char_lists is defined and holds the data you want to inspect.

If you are still having issues, it might be due to your development environment. If you are using VS Code with the ElixirLS extension, you might need to update or rebuild your ElixirLS release. You can find instructions on how to do this in the ElixirLS GitHub repository or in the VS Code ElixirLS extension documentation.

  1. Ok, so IO.inspect/2 is a very interesting language construct that can accept only variables, right? Do you admit to modify Elixir language now? This time I even have idea what change has been done … Trust me or not, but the brilliant AI, way smarter than whole Elixir Core Team , decided that it’s better to make this function a macro and using a pattern-matching it accepts only variables. Phew! It’s so good that there is no limitation of context modules as it’s still usable for developers. :joy:

  2. I truly wonder if AI models are obsessed with strings. For some reason they are mentioning it in almost every answer! Maybe there is something I have not idea about … :thread:

  3. There is nothing new in corrected example, but wait … by any chance did it track my keyboard and detected my “complains” about making 2 LOC from 1 LOC? As that’s the only reason I can see that the AI is not putting a variable with the example value … :scream:

  4. Again :as_lists value became an IO.inspect/2 option somehow. Oh, isn’t that a combo of all previous answers? Something really smells here especially that I have used this AI model on this site few months ago … Oh, never mind - it’s just my imagination. I’m just trying to find a logical answer to non logical answer. Ok, that’s confirmed - I’m officially crazy. :crazy_face:

  5. Somehow it feels really nice that it tell us to use other tools (here language server). I’m curious if it choose a VSCode just because of popularity, but let’s say the topic is long enough and we can discuss about it in other topic … However what’s interesting the language server may find a real solution, because of it’s integration with language. :+1:

If you have Déjà vu then don’t panic! You can just join our crazy club! :crazy_face:

GPT-4

The issue with the code IO.inspect('char_lists', char_lists: :as_lists) is that you are trying to inspect a string 'char_lists' with an option char_lists: :as_lists. However, the IO.inspect/2 function in Elixir doesn’t accept this option.

According to the Elixir documentation, the IO.inspect/2 function takes two arguments:

  1. item: The data to be printed.
  2. opts: A keyword list of options.

Available options include :pretty, :limit, :width, :compact and :binaries, but :char_lists is not a valid option for this function.

If you want to convert a charlist to a list, you can simply use List.to_string/1 function. Here’s an example:

charlist = 'hello'
list = List.to_string(charlist)
IO.inspect(list)

In this code, 'hello' is a charlist. The List.to_string/1 function converts the charlist to a list (or a string, because strings are represented as lists of codepoints in Elixir), and IO.inspect/3 prints the result.

If you’re trying to convert all charlists in a complex data structure to strings, you might need to write a recursive function to traverse the structure and convert all charlists. But IO.inspect/2 itself won’t do this for you.

Please provide more context if this doesn’t solve your problem.

  1. string! string! string! string! string! … striiing !!! :thread: :thread: :thread:

  2. Good start with describing, but well … looks like you had not enough memory to process all options! Oh dear … if you would only process them in right order maybe, by any slightest chance, you would realise the real problem. I wish that the paid option have more memory available for your further tasks. Have a good luck on your next adventures! … As this one have already have ended. :joy:

  3. Ok, one time I wanted to say a good word as after all of those problems you have started to use a proper charlist naming! I hoped that it would turn 180 degree and you would finally find a good answer, but … oh sweety … List.to_string/1 by it’s name says clearly that’s converting a list to a string. All of you have so much obsession with string and now, somehow it’s started converting charlist to list (so list to list). That’s what Function.identity/1 is doing! :man_facepalming:

  4. “or a string” - I take my words back as same as your obsession came back to you. However this time you hit the spot. So unlucky that’s completely not related to question I have asked, but don’t worry. I bet that next time you would have more “luck”, head’s up! Oh … I just realised that cheer up an AI - maybe I’m complaining too much and they are actually good … Well no, but that was a nice try! Sorry, I really feel tired and started to write weird things … :joy:

  5. In the example I gave you the data structure is very simple, but it’s fine - even humans (I hope there were humans) are sometimes confused with single quotes and double quotes. When writing this I have just realised that I should expect a sigil for a charlist in a correct example, but let’s face the reality … no AI would be even close to such quality, so there is really no need to change my expectations described above. :see_no_evil:

  6. As in other cases I will not favor any AI by giving extra context and also I’m a bit scared what the results could be. :fearful:

Phind Instant

The code snippet you’ve provided seems to be an attempt to inspect a data structure named char_lists using IO.inspect/2, with the option :as_lists indicating that the output should show the contents of lists as lists rather than as strings. However, there are a couple of issues with the syntax and usage:

  1. Syntax Error: The way the options are passed to IO.inspect/2 is incorrect. Options should be passed as a keyword list, but the syntax used here (char_lists: :as_lists) is not valid Elixir syntax.

  2. Incorrect Option Name: As of my last update, Elixir does not have a built-in option named :as_lists for IO.inspect/2. The closest functionality would be to control how lists are displayed (e.g., as lists or as strings), but this is typically handled by the printer itself rather than an explicit option.

To correct these issues, let’s assume you want to inspect a variable named char_lists and display its content in a readable format. Here’s how you can do it correctly:

# Assuming char_lists is defined somewhere above this line
char_lists = ['a', 'b', 'c']

# Correctly using IO.inspect with options
IO.inspect(char_lists, pretty: true)

In this corrected version:

  • I’ve removed the incorrect option name and syntax.
  • I’ve added a simple example where char_lists is defined as a list of characters.
  • I’ve used the pretty: true option with IO.inspect/2 to make the output more readable, especially useful when dealing with complex data structures.

If your goal was to specifically control how lists are printed (for example, always showing them as lists rather than converting them to strings), you might need to implement custom logic or use a library that provides such functionality, as Elixir’s standard library does not offer a direct option for this purpose.

Oh CJ, can you please say for me the same sentence you say at the start of the every new game? I wrote so much, so I don’t want make this post hidden to protect the community! :joy:

  1. :as_lists option, charlist vs string aka AI’s string obsession, syntax error, :as_lists option x2 combo, string obsession x2 combo, changing a charlist to a variable with a vale which is a list of charlists, syntax error x2 combo. :video_game:

  2. Please don’t assume what I’m trying to do as all of you are not good with that. :brain:

  3. # Assuming char_lists is defined somewhere above this line - Am I tired or the AI tries to say that it assumes that the char_lists variable is already defined above this comment and it’s overriding it below this comment? :crazy_face:

  4. The IO.inspect usage is the same and both are correct, but they use just different options. The option you have removed is in fact incorrect in new Elixir version, but I did not asked you to add option which is doing something else than in original example. :-1:

  5. The last paragraph is completely wrong making developers using this AI even more confused. :no_entry_sign:

Phind 70B

To fix the Elixir code snippet you’ve provided, we need to understand what you’re trying to achieve. The IO.inspect function is used to print out the value of an expression along with its type information. However, the way you’ve structured the call seems incorrect because IO.inspect does not accept keyword arguments in the way you’ve attempted to use them.

If your goal is to inspect a variable named char_lists and display it as a list (since :as_lists suggests you want it treated as such), you should ensure that char_lists is defined and passed correctly to IO.inspect. Here’s how you can do it:

# Assuming char_lists is already defined somewhere in your code
char_lists = ['a', 'b', 'c']

IO.inspect(char_lists, label: "char_lists")

In this corrected version, char_lists is assumed to be a list of characters. The label: option is used to give a name to the output, making it clearer what the printed data represents. This approach ensures that the data is inspected and displayed as intended.

Remember, the key points to consider when using IO.inspect are:

  • Ensure the variable you’re inspecting (char_lists in this case) is defined and contains the data you expect.
  • Use the label: option to clearly identify the output in your console or log files.
  • Remember that IO.inspect is primarily used for debugging purposes and should be removed or commented out in production code.

This correction assumes you’re working within a module or script where char_lists is defined. If char_lists is supposed to come from another part of your application or external input, you’ll need to adjust the code accordingly to ensure char_lists is available at the point where IO.inspect is called.

  1. Don’t guess what’s not in code - just compare it with documentation and find a stupid typo, please don’t guess! :pray:

  2. Print expression with it’s type information? Heh, why aren’t I shocked that once again AI have a modified version of language I have no idea about … in the way you’ve attempted - ah, what I would loose … let’s say this part barely passed … next! :arrow_forward:

  3. Now a variable obsession … I believe we’re crossing the road that we shouldn’t … :railway_track:

  4. This version is not corrected - it’s an answer with a thesis! It have as much sense as an answer about Stalin when the answer was about the beginning of Poland as country on international arena … :poland:

  5. At the end you are answering to your assumptions after converting a charlist into the variable. I wonder if after many years when current AIs would become “retro AIs” people would come back as same as they did so for NES and other gaming consoles … Well … having in mind topic, let’s say that would be a good ending, right? :video_game:

Conclusions

Eh, now I realised that I need to summary all of those false information and obsessions … In short if 1 LOC and latest documentation is too much for the AI then we can at least be sure that we don’t talk about AI (in a way a mass understand and worries about it). :smiling_face:

Current AI models are rather specialised for a certain tasks and only in those specific areas they produce amazing results. In general usage they provide terrible results even if all they have to do is to read the documentation. The current AI models could fail even simplest tests for a junior developers as they don’t understand even the core parts of the language. There is no place for those AI’s anywhere close to a production-focused job market. :no_entry:

“Ok, but the corporations have better AI’s and keep them in secret!”

First of all such theories are just theories. Fine, that’s a very possible scenario, but without any evidence it’s still just theory. Secondly the companies that are called by a mass us a corporation are in fact a small businesses comparing to a giant corporations holding them and corporations holding those corporations. :briefcase:

BlackRock as an example for a true corporation

On top of them are corporations like BlackRock who really uses a specialised AI in production, but not for a regular chat with CEO, but as an advanced analytics algorithm. In theory AI working for them may have no real knowledge of reality. For sure it would process a lot of data from real world, but the specific way of aggregating those data and the fact that it needs to be ready even on hypothetical cases does not makes AI very close to a reality that’s completely different than what’s for example in marketing. :package:

They don’t really need an AIs

Finally the corporations are strong enough to destroy humanity in a regular war as they have their own armies located in many places on the Earth. They really not need to make much to cause a terrible damages. You don’t believe? Do you even remember what happened during covid? Do you know about politicians or CEO’s that were arrested when after years we have realised how many things were easily saying “improper”? So much fear, so much economic loss and what they’ve got? Billions if not trillions of USD. Even if there were some consequences in some countries at the end a “big players” won without any lose. :exploding_head:

Does it mean AI would not destroy humanity?

The current AI models available for a mass are rather a mess of algorithms. Unless they are very specialised to do well a very limited set of tasks which in fact means they are just a “big” algorithms with at most natural language processing. Sure, deep fakes are real, they could cause unbelievable problems, but your generated avatar would not “wake up” and start shooting in your direction. :relieved:

Does it mean we are completely safe? How long?

Safe? Do you really feel safe? After covid? In the time of escalation going clearly to a total world war? Dude, did I mention you are my biggest friend? Could you please share at least 1 smallest room on the Mars? Oh, you didn’t mean that? Never mind, btw. who are you? :joy:

Current time is extremely unstable by fear, covid, wars and complete lack of trust for governments and mainstream medias. There are dozens of things that could easily go wrong. Just one nuclear bomb may change the way everyone on this planet think - even if in such unstable times it would be just a test somewhere far away from civilisation … You have no idea about date and time, but it does not mean that it’s too late for AI’s to be dangerous. :see_no_evil:

Haven’t you just said they are too bad?

Yes, indeed - the versions for mass and no I’m not mentioning any theory. There are some AIs that are trained to kill people of course for a war purposes. Seeing the worldwide situation we can assume that Israel, USA, Russia, India and China at least started to work on AI for killing people, but hey … haven’t Israel already said that the AI is choosing targets? If countries have or are working on such technologies we can easily assume the biggest international players are at least preparing for many things including upcoming world war. :military_helmet:

SI

Let’s create a theory just by assuming that government are hiring IT experts including AI developers. It’s obvious that’s happening, right? Is politician causing “problems” to many families something unreal? We have hundreds of thousands if not millions of examples. What is a chance that none of those families had a AI developer? It’s rather not very possible, right? Is it weird to assume that due to some decision a family member have died and such family members could have a PTSD or other problems? :frowning_face:

Ok, maybe it does not need to be so common, but I guess there are enough of such people to make sure that some of them would pass to some army, right? In many countries like Russia, Ukraine and Poland people are forced to join army and I guess that during world war people as a mass would not care so much about human laws. So … we have a soldier, an IT expert, that have PTSD and … access to automatic drones with AI created to kill people … I guess you already follow … Infect, kill, recharge, repeat. :repeat:

The name of true danger

It’s called a swarm intelligence (SI). Think that a drone that could charge literally in every city and village can kill people. Now think that there are thousands of them. First target would be army. During a world war, home war and their consequences how many countries are strong enough to track one of thousands soldiers who have PTSD and is IT expert? :military_helmet:

Now think about same scenario, but with a very rich men with it’s own factories. Now think that the only people who control AI have a health problems. Just one health attack would decide if millions of people would live. If there would be no one who have codes then we would be forced to use a drastic tactics. No energy which in long term means also no water, no food and limited savings which are not enough for everyone. :potable_water:

Bad ending

Double home world: one with drones and the second with angry people who fights for their children vs the army who at the very start suffered the most due to drones attack. Everyday thousands of people in army “gets” PTSD and after some time decides to desert and protect their own families. Some of those families are dead to the last member. PTSD level max without any place to take care about such people everything during world war. :house:

Again … crisis, energy problems, nuclear war, home war, world war, mass health problems there are thousands of possible scenarios were something could go wrong. We don’t need to have a true AI. We just need humans in specific that are put in the specific situation which is not so hard to reproduce last time. The possibilities for “revenge” are almost endless. We already experienced terrorist attacks including those on IT systems. Is it so difficult to guess what would happen if SI would be turned on in such terrible moment in human’s history? :hourglass:

It doesn’t need to end

I have realised that last paragraphs may sound very pessimistic. The current world situation is indeed critical, but the life creates the best stories. If it would end then it would end - you would not change that, but you would not find something if you wouldn’t try. For each bad scenario there are hundreds of positive scenarios or scenarios in which it’s better - less or more, but still better. Not every world war needs to be a nuclear one. A night even if in some places takes few months, but always end up with a day and it’s up to you how good it would be. :wink:

All it takes for the humanity to end is just a spark.
BE AWARE and TAKE CARE

Good night dev talk readers!

#ai

Most Liked

peterchancc

peterchancc

Thanks for writing this.

jss

jss

It seems that AI for coding are good for senior developers, but might be bad for juniors.

Eiji

Eiji

Here we go again … GitHub made Copilot free (with limitations). I have tried it and I was a bit surprised - only a bit … Please keep in mind that Copilot does not officially support Elixir. :exclamation:

GPT 4o

Let’s make it quick to not repeat myself too much once again …

  1. Why do chatbots always try to convince me that I want something else that I want? I don’t want a String! :man_facepalming:

  2. The chatbot have changed an option key (correctly) and the value (valid, but wrong for this case) and didn’t tell about that. :icon_confused:

  3. Once again ChatGPT tries to convince me that I want to print data as list … especially if it changed a chalist to a String! :joy:

  4. There is no false in last paragraph, but it’s an answer for a different question. I didn’t asked to change type, but to fix code. Is GPT based on commits with only fix as a message? :bulb:

Claude 3.5 Sonnet

First of all I have respect for chatbot have written in first paragraph. To perfection there should be also note like:

Please pay attention that Elixir is not officially supported language by Copilot, see below link for more information:
GitHub language support - GitHub Docs

Second paragraph is amazing! That’s a first chatbot mentioning deprecation and it even told me which Elixir version deprecated old naming. :+1:

It’s still far away from perfection, but it’s already on good road. Better answer should include:

  1. Mention that a change in naming is recommended since Elixir version 1.3.0 as since this version the documentation at hexdocs was has been changed with a new naming. :spiral_notepad:

  2. There should be a links to: changelog, discussion, issue, PR and maybe even a direct link to commit (page with commit also includes some helpful information, so for some cases it’s also worth to mention it). :link:

The changed code however decreases the quality.

  1. It does not suggest a naming change 'char_lists''charlists' :see_no_evil:
  2. It does not suggest a c sigil 'char_lists'~c"char_lists" :slightly_frowning_face:
  3. The option key is changed to proper one as described. However once again the value is valid, but not in context of the value in question. It already found a deprecation, so it could just follow that lead! :-1:

Similarly to GPT 4o the next paragraph is almost correct, but answers wrong question. We still can notice that chatbot have a problem with figuring out a difference between a charlist and string. :exploding_head:

I would not said any word about last paragraph if the chatbot would not stop half a way. Many additions mentioned before are “nice to have” and they are not as much required as the correct answer. Since it already realised the deprecation it should give a proper answer without any more context. :speak_no_evil:

Summary

Claude 3.5 Sonnet in GitHub Copilot is first chatbot that I can recommend to Elixir developers, but only for seniors who understand the problems with so-called "AI"s. I hope that in next version developers would be able to make chatbot keep one idea without telling developers that they want something else. Since it even found a version I also hope it would be much more descriptive and provide a links for learning purposes. :heart_eyes:

I guess that until Elixir would not be officially supported we would still need to be extremely careful about chatbot responses. However it’s not really as bad a it looks. It shows that’s not an AI which suddenly “wake up”, but just another algorithm. I can’t blame any developer working on any chatbot for such mistakes as simply LLMs alone were never intended for that purposes and if they would not change narration then I would not see any problem with LLM part. :see_no_evil:

They already are doing well. We should also keep in mind that the more lines of code the more possible bugs would be introduced. I would say that changing a direction of response (from deprecation to changing code logic) may be considered as a bug, but I also understand that LLMs have problems with figuring out the context. :thinking:

Popular General Dev topics Top

Devtalk
Our jobs section is for full-time paid positions and for companies to post their own jobs (no consultancies or agencies, sorry!) - simply...
New
Carter
Seems to be a load of h/w purchases on devtalk rn :iphone: :desktop_computer: :headphones: :computer: :keyboard: What hardware have you ...
New
foxtrottwist
Here’s our thread for the Keyboardio Atreus. It is a mechanical keyboard based on and a slight update of the original Atreus (Keyboardio ...
New
mafinar
I always start with excitement and then get busy on 9/10th day. This year, like the year before this, and the year before that, I intend ...
New
AstonJ
Continuing the discussion from Thinking about learning Crystal, let’s discuss - I was wondering which languages don’t GC - maybe we can c...
New
ohm
I just switched jobs to tech lead with a small team of about 6 other developer. This is my first tech lead job. What do I need to know? A...
New
AstonJ
If you get Can't find emacs in your PATH when trying to install Doom Emacs on your Mac you… just… need to install Emacs first! :lol: bre...
New
First poster: OvermindDL1
Using Zig to Build Native Lua Scripts. Using Zig to Cross compile a Lua script for multiple arches
New
AstonJ
I’ve been watching Prag Dave’s Elixir course and I noticed he uses tree: Tree is a recursive directory listing program that produces a ...
New
AstonJ
This was interesting: He’s definitely more of an Emacs fan (which is fine) and the thing I found interesting is how you wo...
New

Other popular topics Top

AstonJ
A thread that every forum needs! Simply post a link to a track on YouTube (or SoundCloud or Vimeo amongst others!) on a separate line an...
New
AstonJ
SpaceVim seems to be gaining in features and popularity and I just wondered how it compares with SpaceMacs in 2020 - anyone have any thou...
New
AstonJ
You might be thinking we should just ask who’s not using VSCode :joy: however there are some new additions in the space that might give V...
New
Exadra37
Oh just spent so much time on this to discover now that RancherOS is in end of life but Rancher is refusing to mark the Github repo as su...
New
AstonJ
If you are experiencing Rails console using 100% CPU on your dev machine, then updating your development and test gems might fix the issu...
New
AstonJ
Saw this on TikTok of all places! :lol: Anyone heard of them before? Lite:
New
foxtrottwist
A few weeks ago I started using Warp a terminal written in rust. Though in it’s current state of development there are a few caveats (tab...
New
PragmaticBookshelf
Author Spotlight Rebecca Skinner @RebeccaSkinner Welcome to our latest author spotlight, where we sit down with Rebecca Skinner, auth...
New
AstonJ
This is cool! DEEPSEEK-V3 ON M4 MAC: BLAZING FAST INFERENCE ON APPLE SILICON We just witnessed something incredible: the largest open-s...
New
AstonJ
This is a very quick guide, you just need to: Download LM Studio: https://lmstudio.ai/ Click on search Type DeepSeek, then select the o...
New

Latest in General Dev

View all threads ❯