12:04 AM
1

Inspired by this comment... Thanks to users Step Hen, Wheat-Wizard, and Dennis for helping my solidify the specification of this challenge before posting it! This is the Cops' thread. For the Robber's thread, go here In this challenge, you are tasked with running some code that makes it so t...

0

Inspired by this comment... Thanks to users Step Hen, Wheat-Wizard, and Dennis for helping my solidify the specification of this challenge before posting it! This is the Robber's thread! For the Cops' thread, go here In this challenge, you are tasked with running some code that makes it so t...

7 hours ago, by DJMcMayhem
I'm working on the socratic badge, so I'll post the cop at 23:50 UTC, and the robber at 0:00 UTC. XD
Jul 14 at 16:12, by Wheat Wizard
@DJMcMayhem Tell me when you post your CNR, I've been thinking about it and I'm really excited for it now.
@WheatWizard posted!

0

Introduction Classically, booleans are one bit; true or false, 1 or 0. Leading zeros would just be redundant. For example, 001 means the same as 00001 or just 1. The 32-bit boolean Given a truthy/falsey value, output the equivalent 32-bit boolean as a string. (Or as a number if for some reason...

12:32 AM
@cairdcoinheringaahing The little arrow to the left of this chat message is a link to the message it replies to. You can see which message my previous one was a reply to in the same way.

'cause except for pyth; 05ab1e, cquents, matl and ohm are behind on votes

@totallyhuman Do jelly answers on average have more/better explanations?

13

I'm honestly surprised that this hasn't been done already. If you can find an existing thread, by all means mark this as a duplicate or let me know. Input Your input is in the form of any positive integer greater than or equal to 1. Output You must output the sum of all integers between and i...

they all have good explanations
and husk is 1 byte (albeit slightly late)

@totallyhuman Maybe posting 3 minutes earlier makes all the difference...

maybe
but hey i'm not complaining i got 140 rep from that question
i'm planning on trying brainfuck but division is a pain...
maybe generating the range might be easier..?
NVM

12:55 AM
I uh, accidentally solved the challenge.
`+++++[[->+>+<<]>>[-<<+>>]<<->[->>+<<]<]>>>.`
@totallyhuman

Oh welp there go my upvotes
Nice job though

I was just trying to make it generate a range, and due to a mistake, somewhere, it solved the challenge instead.

That's way golfier than I would've ended up with lol
@ATaco happens all the time, is natural

#WelcomeToBrainfuck

I need a challenge that is simple but will get me 20 upvotes a day for the next year. Any ideas?

1:04 AM
If I had one, I wouldn't tell you

Thought about how it worked, further golfed. `,[[->+>+<<]>[-<+>]<-]>>.`

I'll be posting it as an answer to reap the Upgoats.

The Brainfuck is shorter than Bash.

1:11 AM
0

You must create one program that interprets as many languages as possible Input You will take language name, code, input. These may be taken in any reasonable format, and in an order of your choice. Output The output of the given code when run with the given input in the given language. Rule...

Well that was fast

Wait for NMP
:P

@totallyhuman Why?
Hehe double ontonda

On the question :P
It wasn't me

You can always fix it

I'm not a big fan either

1:20 AM
Same here but removing my sandbox posts

-2

You must create one program that interprets as many languages as possible Input You will take language name, code, input. These may be taken in any reasonable format, and in an order of your choice. Output The output of the given code when run with the given input in the given language. Rule...

@Christopher Damn, I was gonna do 1 Byte 1 Language.

@ATaco Cry me a river. Tired of negative votes on all my posts

You don't gotta post em
Abandoning bad questions is a good idea
Especially when you agree

Idc i post em if i want to

1:25 AM
/shrug then you should get used to the downvotes

¯\_(ツ)_/¯ i have

`assert(cake.have ^ cake.eat)`

@ATaco what should I have done with my question?

I have no idea, I suck at writing questions.

I believe you said sandbox it. :P

1:27 AM
I saw, and I saw that the sandbox wasn't positive in favour of posting it.
Which should have been a good warning sign.

I post lots of things in the sandbox, and I end up deleting quite a few of them. I don't see that as a bad thing - it just helps me filter my ideas.

I don't sandbox anything, post it and monkey patch it as it goes, it works out usually.

I sandbox and monkey patch
still does not work :P

I possibly go too far the other way. I've had posts in the sandbox for years before posting...

I think what i do works only because I have a few ideals I stick to when writing challenges.

1:32 AM
Brainbrain brainfuck fuckfuck
Somebody complete the cycle

@totallyhuman you missed a fuckbrain

No Chameleon Challenges: Make the challenge entirely about solving a problem, everything else should be as forgiving as possible.
No Unobservable Conditions: A challenge should be defined entirely by what goes into it and what comes out of it. What happens inside isn't the challenges problem (Except for Restricted Source, In some cases...)
K.I.S.S: Keep it Simple Stupid; You should know what needs to be done exactly after the first paragraph, everything else should be for clarification and convenience, not specifics.

@totallyhuman I hope you're not trying to trick someone else into getting kicked :P

1:38 AM
I was afraid I'd get kicked for that

so what other things could I make for a koth

@DJMcMayhem notice me dj senpai lol

@ConorO'Brien Sorry, bad timing. I'll get to it within the hour probably

oh ok thx

2:01 AM
i still have the emoji button tacoscript 😂

Hey can someone check if this is valid? I've never done CnR before so I don't know if this is allowed.

@HyperNeutrino that seems completely fine to me :P

yay lol

omg that's amazing XD

^^

2:05 AM
what is

oh yay people liked it :D

its so ingenious, and @WheatWizard thought it was doing a really good job stopping you :P

lol
I wonder why it took me so long to do it

he could avoid it by making a new one to delete that function :P

2:06 AM
I thought of it and I'm like "nah that won't work"
@ConorO'Brien yeah but too late :3 lol

@ConorO'Brien yup that's what I was thinking
but the damage is done :P
@HyperNeutrino now crack my obscure esolang :P

He'd also have to remember `os.sys` because `sys` is pretty much the same thing as `os.sys`

@DJMcMayhem I'll assume it's ok that the first have a syntax error, since wheat wizard's is like that

@StepHen will look into it lol

@ConorO'Brien uh it's not supposed to...

2:07 AM
```  File ".code.tio", line 5

^
SyntaxError: invalid syntax```
from wheat wizard's own cnr, approved by the Dj himself
:P

@ConorO'Brien `This code is not allowed to crash or exit.`

therefore wheat wizard's submission is invalid

my first try involved looking through `dir(everything)`, `dir()`, `dir(dir)`, `dir(())`, `dir([])`, `dir(`[]`)`, etc, but none of that made any sense.

@ConorO'Brien I agree, unless it runs without error in some environment I don't know about

@ConorO'Brien Yes, that's true. I'll address that on the post I'm an hour or so

2:09 AM
uh oh D: hopefully I don't have to delete my solution. I mean, he could just delete the last line and change `4` to `3` and then I remove the first line of my solution

Really terrible timing tbh

rip
don't pressure yourself

First snippet being allowed to error out really changes the challenge imo
Since you can almost make it "make the second snippet do this and actually run"

@DJMcMayhem Should I delete my Jelly cop-side post?

@HyperNeutrino Wait til it all gets clarified

2:12 AM
k

I still can't get over how perfect some of the Interstellar music is

@HyperNeutrino If you want to. You could also let it get cracked

Alright. It shouldn't take too long; I mean, the solution is literally staring you in the face once you see the crack (unless someone else figures out another cool solution)

@HyperNeutrino Why? It doesn't error out when you run just the first snippet (I believe)

I already wrote the crack :P

2:14 AM
:o
@StepHen because I'm restricting the code to have no newlines
@DJMcMayhem will you post it? lol

@HyperNeutrino Do newlines make it really easy to crack?

yes. If newlines are allowed, the solution is literally `\n+`
the newline just turns my snippet into another link and then it's ignored unless you call it lol

@HyperNeutrino And there's no way for you to easily prevent that?

nope
Well, actually, yes. Let me go fix that. I can just remove newlines from the source code lol

@DJMcMayhem Code has to match a hash? That cries loophole

2:20 AM
Actually, still can't fix that. If you put a newline there, it won't remove it because it won't run the code to remove it
There is literally no way, easy or not, that I can prevent someone from just sticking a newline after it and not running any of my breaking code.
So if my restriction is not allowed, then this challenge excludes Jelly completely.
I bet Jon Skeet would be able to make a way other than just banning it though. And Dennis.
Just saw this answer. Perfect language for rep bait. Well done, @StepHen, well done. :P

@HyperNeutrino Yeah well, it took my four hours to make the original (look at the edit history), then EngineerToast cut my bytecount in half with actual golfed code. Thanks though, I spent an weekend afternoon on that :P

ah :P But yeah, it's pretty amazing regardless :P
Also, 4 hours? Amateur (/s). I spent 10 hours on this one :P (lol)

@HyperNeutrino Python error messages are nowhere close to as hard to debug as Taxi error messages :P I spent most of that time getting it working and writing my own `sqrt` function. The actual problem was fairly trivial.

ah yes true lol

2:29 AM
I'd rather spend lots of time writing a solution to a hard problem than writing a solution to an easy problem that is hard because of platform choice

you want a hard problem? Look at mine :)

:o
I don't know C to begin with lol
@StepHen yeah true. that's why I only like Jelly for the challenge. It's shorter, but usually a lot harder except when the challenge is really trivial lol

tfw you know this is going to be a good cnr :D

I knew it would be good when asked DJ 10+ questions about it this morning :)

is there a koth/codechallenge based on 2d sideview racing?

2:40 AM
@HyperNeutrino Oh, that's why TIO's Taxi usage was so high today...

@Dennis you have language usage diagnostics?

@Dennis Sowwy

@DJMcMayhem Eh, you didn't have to delete your answer. You were the first to crack it.
@ConorO'Brien Not really. But since TIO made it on Hacker News, we've had some... issues and I've been keeping a closer eye on the servers than usual.

oh ok

2:42 AM
@Dennis Yeah, but I want to see your solution
And I don't mind anyway

It's just an if statement instead of the newline. Not out of this world.

@DJMcMayhem `non-native integers` someone's tired or on mobile

Dammit
@StepHen The latter

@WheatWizard and make sure you account for `os.sys` like @HyperNeutrino said (if you have)

wait are you supposed to patch cracks?

2:53 AM
@totallyhuman not really

Aaargh, there's so many questions people have, and I don't have time to answer all of them on my phone this is stressing me out! :/

@DJMcMayhem Ok
@StepHen What is meant by that?

3:28 AM
@DJMcMayhem Just to check: byte count doesn't matter to robbers, yes?

Yes

curses himself for using yes in the question and is now confused

Hahaha
Byte count doesn't matter

Sweet, that means I can make my crack pretty.
7
Thanks.

Although it's weird that byte count doesn't matter to robbers, but it does in the safe snippet

3:34 AM
Not that weird. The cop pays a price for having a complicated solution. Whether the robber's solution is simple or complicated doesn't really matter.

That's a good way of putting it

Does anyone know a way I could prevent imports in python? I want to patch HyperNeutrino's crack

I don't know of a way

Or a better way I could break the language than setting the recursion limit low.

3:36 AM
8

I'm writing an application where users can enter a python script and execute it in a sandbox. I need a way to prevent the exec'ed code from importing certain modules, so malicious code won't be as much of a problem. Is there a way to do this in Python?

@DJMcMayhem Hopefully its fixed now, I've disabled imports from os and sys

Anonymous
4:14 AM
@Dennis Out-of-context quote for the day

CMC: Given an int array `a`, increment the first, fifth, ninth, etc element, decrement the third, seventh, eleven, etc element. E.g. `0,0,0,0,0,0,0,0,0,0` -> `1,0,-1,0,1,0,-1,0,1,0`

@Phoenix Jelly, 5 bytes: `Jı*Ċ+`

@LeakyNun how does it work?
iirc Jelly uses `_` for decrementing and it isn't present there.

```Jı*Ċ+ z
J     [1 2 ... len(z)]
ı*   [i**1 i**2 ... i**len(z)]
Ċ  [1 0 -1 0 ...]
+ [z[1]+1 z[2]+0 ...]```
@Phoenix it uses `’`

I'm looking at the new CnR challenge and I'm thinking about posting a submission. Is it valid for the 2nd snippet to exit abnormally (I can fix it, but I'm curious)?

Anonymous
4:34 AM
@Phoenix Actually, 11 bytes: `;r⌠╦½*C≈⌡M¥`

Anonymous
Equivalent Python 2 code: `from math import*;print[n+int(cos(pi/2*i))for i,n in enumerate(input())]`

@Mego Thank you for noticing this. >_>

Hey @Phoenix I kind of wrote a thing that makes installing tacoscripts easier.

Anonymous

I feel safe in answering just about anything in the C&R because RProgN2 is a very poorly known language

4:49 AM
@Justin Found the answer. Yes it is valid

< insert Zelda character >

@Justin Yes, that's valid

Would it be valid to restrict the language to, say, standard c++ (no extensions)?

What do you mean? No includes?
Freaking autocorrect man

@Justin except the problem being that there'd have to be non-standard behavior / undefined behavior, but I want to, e.g. say you can't use `__attribute__` and other gcc extensions

5:01 AM
Usually we don't like language-specific challenges

@JanDvorak I know, but I'm talking about for an answer for the CnR challenge

@Justin I don't see why not

Languages are implementations, not specifications.

Ty
Poll: Do you most often use `:x` or `:wq` to save and exit vim?

5:10 AM
`:q!`

I use :wq

I don't save.

._.

I don't exit vim

@ATaco no teamspirit.js?

5:12 AM
For two reasons, yes.
Firstly, it only appears in TNB, which makes implementing it along side a bunch of the others a pain. Secondly, it's not good.
The Projects page is also back up.

Neat

@Phoenix I usually use `ctrl-s <Space>q`
Custom key-bindings ftw!

When handling chat spam flags, what does "valid" vs "invalid" mean? 1: The flag is valid/invalid. 2: The message is valid/invalid

Okay, time to make a meta post about the ambiguity

5:38 AM
Dang I can't get my idea for the CnR problem to work. I wanted to make it so you had to use something obscure from the standard, but it turns out that you can simply use something pretty obvious. Maybe I should just post it

6:15 AM
0

Simple challenge: try to output the following text in as few bytes as you can: the answer toli fetheuniv ersea nde ver ything the ans wer tol ife the uni ver sean dev ery thin gth ean swer tolifetheuni ...

2 hours later…
8:02 AM
why on earth does R need 32 bytes to store `TRUE`...

8:30 AM
Has anybody written something to compress Jelly numbers?
Never mind, I found one.

@Challenger5 where?

There's a script written in Jelly to do it.
There's a TIO link on the "tips for golfing in Jelly" page.

oh ok

8:50 AM
Also, is there a way to set an item in an array?

@Challenger5 there's a quick for operation on specific indices

Ah, that's probably what I wanted. Thanks!

9:02 AM
my code solved PE#73 in 1.6 sec! \o/ \o/

hey I had an idea for a koth based on a game type in worms
infinite prods and infinite teleports with 1 health worms
basically I would make a simplified version of this
also there were some turrets and mines

9:18 AM
Are there any languages optimized for writing interpreters?

I think?

@Challenger5 what interpreter do you want to write?

I want to write a program that will take an interpreter written in that language as input
Maybe some sort of rewriting system would work.
Ooh, maybe ShapeScript

the word "and" isn't in Jelly dictionary O_o @Dennis
2

what language should I use for my koth?
I mean I only program python but my last python koth didn't work out great

10:00 AM
That doesn't necessarily have to do with the language...

10:12 AM
yeah but tbh its a contributing factor

What other scoring format do languages use other than bytes? I know piet uses codels, is there anything else?

scratch tends to use blocks

@Cowsquack Will you be considering adding any other types to Carrot? For example, booleans?
@Cowsquack Or the ability to test for (truthy/falsey)ness?

10:36 AM
@DestructibleLemon scratch is not scored by blocks anymore
Minecraft is scored by blytes
Oh hey I got bronze number badge

11:15 AM
@LeakyNun the word "AND" is

@EriktheOutgolfer O_o

then you can do "AND", " AND", "aND" and " aND"
of course I don't really know whether any one of them is going to be useful...except maybe from the second one

What's the point of a git commit message?
How is this going to help anyone? :p

I think it's just for checkpoints or something?
like, mnemonic stuff

0

favorite I have website and phpBB forum. I need a programmed script like this: it is like a genetic calculator. should have DB with tables and I add predefined inputs about the mutation of the male and the female and the result of the breeding of each couple. the main page has drop-down selec...

11:25 AM

@BetaDecay So that when you want to find when you implemented something or when a bug comes back and you want to remember how you fixed it last time, it doesn't take an hour of grepping through numeric commits :P

@StepHen I see...

my rep is exactly at 3999

HNQ is so broken

it's based on a curve
lower traffic sites have higher chances of hitting hnq

11:38 AM
@totallyhuman I know what the algorithm is, it's just crazy how much we get up there compared to every other site

1. be a low traffic site with questions that instantly get loads of answers
2. ???
3. profit!
4

Just curious, is anyone aware of a language whose name starts with `[` and ends with `]`?

we constantly get to hnq but they still won't give us a design
4

@Sp3000 Has that been used on PPCG?
We also have the highest a to q ratio, by > 2x

11:55 AM
codegolf.stackexchange.com/a/58851 - I want to say it's been used in more places but frankly I don't remember whether I've used it on site yet

Is there a language where every program is a self interpreter
If not do we want one
I want one, I really want an 'original' esolang

no it wouldn't satisfy language requirements

Oh
Anyone have an original esolang idea

Ey 4k
I now can vtd :D

12:22 PM
-4

We are working on a NB-IoT project that uses a GSM/GPRS module. This module supports IPv4, UDP and CoAP protocols. We want to monitor the data, which is coming from NB-IoT module, on Azure IoT Hub. But, Azure IoT Hub only supports AMQP, MQTT and HTTP protocols. On the other hand, Azure IoT Hub pr...

I love seeing questions that are already deep in the negatives by the time they hit here

RE: the sandbox (as I've just been reading over the latest meta post about it). Is it possible to timelock new questions so they can't be answered within that limit?

4

Simple challenge: try to output the following text in as few bytes as you can: the answer toli fetheuniv ersea nde ver ything the ans wer tol ife the uni ver sean dev ery thin gth ean swer tolifetheuni ...

Should I hammer it open?
cc @muddyfish

Somebody else hammered it open

Arnauld did.

12:38 PM
I don't see how anyone could say that was a dupe in the first place.
Of that one at least

KC challenges regularly get closed as a dupe of Rickroll

If it's not closed as a dupe of the rickroll at least once, it's not a KC challenge.
8

@Okx Dang. Neither of my two KC challenges were dupe-closed. Does that mean I'm doing it wrong?

Yes.

12:48 PM
Nice

What page of sandbox should my unvoted post reach before it's eligible for being posted anyways?

@JanDvorak You can post it whenever, but I'd suggest sticking it in chat a couple times, make people look at it

post it here so we can take a look at it?

And wait for a week

OK. Hold on...
0

Compute the antipode of a point on curve code-golf ascii-art A curve is a set of points on a square grid such that each point has exactly two neighbors in the four-neighbor neighborhood and the points form a single connected component. That is, the graph induced by the points on a grid graph is...

12:51 PM
@JanDvorak I wouldn't worry about what page it's on - it's best to sort by active rather than votes. If it goes a week without getting upvotes but there isn't anything specified that you need to improve, just posting it in here usually helps (like you have...).

scribbles down "1 week -> chat" Thanks

We really really really need a way to see how many people have looked over a Sandbox post, like question views
Should we start putting a comment on each new Sandbox post that says "upvote this if you saw this"?

@TheLethalCoder A boolean stack existed in the earliest version of Carrot, but I have since removed it. If you see the TODO-list in the oldest issue in Carrot's GH repo, you can see that `stackBool` is a planned feature. But now, I am thinking of whether or not I should use the stack float instead for simplicity (in which case it would be `0` for false and `1` for true).

One more benefit of using questions as sandbox

@StepHen no

12:53 PM
@JanDvorak You know what, we just need a `codegolf.sandbox.stackexchange.com` site
Meta is not the place for Sandbox questions, but Sandboxed challenges make so much more sense as questions

@TheLethalCoder (and yes, equality testing is again a planned feature) Now what do you think would be better, having a separate stack type for booleans, or using stackFloat for that instead?

@Cowsquack Floats as bools seems fine too. If you're doing that though, would empty strings, arrays and regexes also be false with other's true? Or would you just be going for only floats as ints.

fourth level domain, really?

@Cowsquack I think floats as bools is fine really.

@JanDvorak Meta is `codegolf.meta.stackexchange.com`
Maybe we can get a separate Sandbox site for a graduation present

12:57 PM
I think the separate site idea got shot down when it was proposed.
By us, not the stack exchange team I mean anyway

12

I'm Grace Note, a Community Manager at Stack Exchange. Originally, I was writing this answer explaining the mechanical issues with this idea. I won't bore with details, though, but in the long run, migration (and especially chain migration) is pretty messy and this would be a mess to implement. ...

@StepHen I know what you mean, but personally if I've taken the time to read a sandbox post, I've probably left a comment, and if I haven't, I haven't seen the views comment either.

Thanks for the review

You're welcome. The week guideline is just a rough estimate, by the way. Some people say a few days. It's just so that several people have a chance to see it, since the sandbox isn't viewed as much as main.

What are the chances of someone noticing once my question is on the third page of sandbox?

1:02 PM
@JanDvorak There are a few good souls who browse past the first page of active on Sandbox

Nice

@StepHen Hadn't seen that but I meant in one of the more recent meta posts about the sandbox

@TheLethalCoder Only floats as bools for now, but many of these subtler things, like falsey vs truthy strings, will have to be tested out in the wild in PPCG after I finish the rewrite

@JanDvorak Certainly slimmer... If in doubt, post it in here. Unless it's excessive, the number of days shouldn't really matter too much so just judge it for yourself

1:04 PM
Thanks

@JanDvorak This reminds me of realising how old the article I was reading was when it started referring to "weblogs" and "The Wikipedia"

:-D

@JanDvorak Then you try to search for something obscure from two decades ago and have to go to the fourth page to find it

If you need to visit the second page of Google to get your result ... your time is better spent improving the search query

0

Problem Build an octal calculator that can do the following operations: Add (+) Subtract (-) Multiply (*) Divide (/) Check is prime So given input a b c a being a number in octal b being an operator (+, -, *, /) not is prime c being a number in octal Output the expression evaluated as ab...

1:10 PM
@Cowsquack Yeah sounds better than just adding for the sake of it.

@JanDvorak brb, making a webring sandbox

DansGame

@JanDvorak Wait, Google doesn't magically know exactly what I want, even when I use a bad query?

Well... sometimes
Sometimes Google knows what you want better than you do, even. Want a new fridge? You do now.

@JanDvorak Well... Jon Skeet does work at Google, after all.

1:26 PM
@Riker QED :D

0

I need to call my friends but the buttons of my cordless phone are not working properly. The only buttons I can press are [Up], [Down] and [Call]. [Up] and [Down] can be used to navigate in my recent calls and [Call] can be used to call the selected name. My phone has a list that holds N recent c...

@Riker yep, anything you find odd? :)
(except that I've never seen two girls riding bikes with guns on their back.)
But right, the weapons probably do not have anything to do with the crime rate. The large part of those weapons are service wepons.

@DestructibleLemon what happened to the spaceship circle koth?

And I agree that a good social security + mandatory insurances have a big influces as well as the fact that everything is very densely populated, so e.g. police etc arrive very quickly when you need them. And even if you consider e.g. all the burglaries/thefts only a few of them are actually armed in comparision to other contries, so there is much less a "stand your ground"- than a "reduce possibility of any harm and let the pros do their job" mentality.

0

Count to 15 with Words! Using the following list(s) of words: https://github.com/first20hours/google-10000-english Print 1 word from each unique length all the way up to 15, here's a valid example: a an and hand hands handle handles abandons abandoned understand outstanding newfoundland under...

1:36 PM
@flawr Plus the benefit of being a smaller, relatively well-off country that can actually afford and regulate said benefits and regulations easily

@EriktheOutgolfer yes?

@NewSandboxedPosts This looks like a really interesting challenge.

Yeah. Challenges where you not only golf your code but golf your output are interesting.
5
Like 5 favorite letters.

1:52 PM
Speaking of that, someone want to give codegolf.stackexchange.com/q/132725/39242 a last reopen vote?

Jul 30 '16 at 19:21, by Lynn
Oh, it’s the ENABLE word list
( @MagicOctopusUrn that probably won't be free of expletives, but it's a very full list)

@trichoplax Interesting. First I've heard of ENABLE

@AdmBorkBork Sorry for the random ping - I mixed up your avatar with MagicOctopusUrn

I get that a lot

I thought that word list might be useful for the challenge
@StepHen thanks for picking up on my mistake - I wouldn't have noticed it without your intervention