« first day (431 days earlier)      last day (3587 days later) » 

7:00 AM
@skiwi they use backticks for table names, not sure about aliases? Pretty sure you can just use normal quotes for those
but you don't need the backticks if your table names don't have weird characters and aren't reserved words
 
well, it got a little longer...
0
A: How to generate valid number of combinations basis on the rules?

Vogel612Your code is very hard to understand. As I mentioned in a comment, I needed roundabout 2 hours to unwrap it, and that was just for understanding. In that process I renamed a big part of your variables, so: here goes the review, be prepared Naming: Overall the naming quality of this code is betw...

 
@chillworld did you come up with an answer?
 
MySQL: USE sakila; SELECT actor`.actor_id AS 'Actor Id';`
^^ works stupid in chat due to backticks
 
lol
 
@DaggNabbit of course, I did submit it to in the correct way
 
7:02 AM
@chillworld bisection?
 
@DaggNabbit no :)
answer with me is 7 days
 
> These are horrible too. What is in your Map map? You comment there "tracking status in one map, output in the other". This is not a comment, it's a name! your map is better off with statusTrackingMap.
@Vogel612 ^^ this
 
@chillworld how did you post it, SubmitAnswerToTheKing in console?
 
@DaggNabbit indeed
needed int string string string
 
@Phrancis I personally like that one better:
> So here is your lesson for all eternity, and if it wasn't you who committed this crime, then slap that person with a boulder!
 
7:06 AM
i think there should be a way to do it instantly without weighing them
like get a magnet that is just strong enough to hold a normal cannonball, and see which cannonball is too heavy to stick to it
 
@DaggNabbit Was thinking about that to but nowhere is said that the sword is sligtly other color of metal
 
@DaggNabbit there are no magnets @ work
 
@DaggNabbit it's good found the originality of the riddle no?
(did not solicitate for a job there btw)
 
oh it's lighter, not heavier
so it would be even easier
get a magnet which is just weak enough not to hold a normal cannonball
pass it over all the cannonballs, the one that sticks to it is the king's steel
 
@chillworld originality?? there's like thousands of that sort..
 
7:10 AM
@DaggNabbit did magnet's already exist that time? :p The riddle yes, but also how you have to submit it? This is the first one I came across
 
@chillworld hmm, wonder when magnets were discovered
 
Hmm small question...
int pos = 0;
while (pos < key.length()) {
    if (Character.toLowerCase(key.charAt(pos)) != Character.toLowerCase(field.charAt(pos))) {
        return null;
    }
    pos++;
}
vs
IntPredicate characterMatches =
        pos -> ((Character.toLowerCase(key.charAt(pos)) != Character.toLowerCase(field.charAt(pos))));
int pos;
for (pos = 0; pos < key.length(); pos++) {
    if (characterMatches.test(pos)) {
        return null;
    }
}
Does the split make it any clearer?
 
@chillworld wikipedia says:
> Ancient people learned about magnetism from lodestones, naturally magnetized pieces of iron ore. They are naturally created magnets, which attract pieces of iron. The word magnet in Greek meant "stone from Magnesia",[1] a part of ancient Greece where lodestones were found. Lodestones suspended so they could turn were the first magnetic compasses. The earliest known surviving descriptions of magnets and their properties are from Greece, India, and China around 2500 years ago.
so I'd say it's a valid answer =p
 
@DaggNabbit yep valid it is ;)
 
@chillworld what was your answer?
 
7:17 AM
@DaggNabbit divide it in always 3 parts with the same number of cannon-balls.
weigh two, take the lightest one.
 
why 3?
 
if they are same weigth, the third contains the sword
if else, one is lighter
repeat with smaller number of cannonballs.
takes 7 days.
 
wouldn't it be faster to weigh 2 piles and the lightest one has the cannonball?
 
then divide 2,187 by 2 and get a whole number of it...
 
@Vogel612 so throw a rock in one pile that weighs the same as a cannonball
 
7:20 AM
SubmitANswerToKing(7,"Exponent of basenumber 3 rounded up","name","email");
 
also it's reducing the number of eligible cannonballs 1.5 times faster when you divide by 3 instead of 2.
 
@Vogel612 hmm that's true
 
2187 / 3 = 729
2188 / 2 = 1094
 
1094
but i see what you mean, 2187 is a perfect cube, not a perfect square
 
corrected ;9
 
7:21 AM
@DaggNabbit @Vogel612 is correct here
 
this also works with non-perfect cubes.
 
1094 / 2 = 547, you run into it there
@Vogel612 wouldn't you eventually hit a fractional number?
 
@DaggNabbit I already added the Rock..
 
add another one ;)
plenty of rocks in the kingdom I'm sure
 
Actually yes, but you just need to make sure, that the two parts you weigh, have the same amount of cannonballs.
everything else is in the third.
 
7:23 AM
true, true
 
and if that one is smaller or bigger by one, so be it
1000 / 3 = 333,3 --> 333, 333, 334
 
but with the /3, you are weighing 2 piles, with /2 you are only weighing one
 
continue ;)
 
@rolfl I'm considering rewriting the code to only handle HTTP requests, as I don't think I'll encounter other ones anyhow... That would also allow me to actually store a mapping of key -> value
 
@Vogel612 i think it would need 14 days, not 7
with /3
with /2 and adding rocks, it would need 12 days
 
7:27 AM
2187 / 3 = 729
729 / 3 = 243
243 / 3 = 81
81 / 3 = 27
27 / 3 = 9
9 / 3 = 3
3 / 3 = 1
finished.
 
^ but in each one of those steps you are weighing two piles
and a single measurement takes a day
 
@DaggNabbit and what about it?
 
so it's two days for each step, not 1
 
to keep it simple:
weighing pile1 & pile2
if(pile1<pile2){
    chose(pile1)
}
if(pile1 == pile2){
   chose(pile3)
}
if(pile2<pile1){
   chose(pile2);
}
 
yes but weighing pile1 & pile2 takes two days :p
 
7:29 AM
@DaggNabbit no.
you weigh once
one weighing includes 2 weights.
 
its a balanced scale @DaggNabbit pile1 left, pile2 right
 
you need to weight the two piles separately to see which weighs more
ohhhh
a balanced scale, that makes sense
 
well they didn't say what kind of scale it was :p
 
what did you think? they weight that against how many rocks you need?
 
7:31 AM
idk, maybe it's a digital scale :p
 
or use a digital scale for up to 20tons?
 
yeah lol
 
"Header fields can be extended over multiple lines by preceding each extra line with at least one SP or HT" SP = space, but what does HT mean?
 
when they shoot with cannonballs smelted from Iron?
 
but seriously there are non-balanced scales with counterweights
they should say if it's a balanced scale or not
 
7:32 AM
INSERT INTO (Bed) VALUES (Phrancis);
 
@Phrancis night
 
'night @all
 
night P
 
night @Phrancis
@Phrancis TRUNCATE TABLE (Bed);
 
@skiwi DROP TABLE (Bed) --Sleep is for the weak
 
7:34 AM
any idea how you can see what class a proxy class is created from?
java.lang.ClassCastException: $Proxy64 cannot be cast to oracle.jdbc.OracleConnection
 
Much fun in the future...
"Note that the major and minor numbers MUST be treated as separate integers and that each MAY be incremented higher than a single digit. Thus, HTTP/2.4 is a lower version than HTTP/2.13, which in turn is lower than HTTP/12.3. Leading zeros MUST be ignored by recipients and MUST NOT be sent. "
 
@skiwi ignore it, you only need to worry about 1.0 and 1.1
 
@DaggNabbit And 2.0
 
are you planning to support 2.0?
 
7:37 AM
I'll need to in some distant future
 
\o
@skiwi worry about it after you add 1.1 support (chunked) ;)
 
Meanwhile I'll worry about my stomach
 
♪♫ dun dun duuuuuuun ♪♫
the second rikudo approaches
 
If I could just somewhere verify that an HTTP request always has one general field indicating version and url, and then only header key/value fields...
 
@skiwi It's called the specs
And I'm pretty sure it's correct.
You could try asking rdlowery in the PHP room on Stack Overflow, he's pretty fluent with the HTTP specs.
 
7:46 AM
Reading the specs (still atm), if it's in there then I agree
Problem is that right now I only got an example following those 'rules', and haven't found it in the spec yet
 
8:05 AM
@skiwi it does, but it's not a header field, it's the first line of the request
that's what i was asking you about earlier, didn't see where you were reading that line
the first line has http method, resource path, and version info
 
I was reading it though, but not explicitely doing anything with it there
 
the http method and resource path you'll probably need if you're going to do anything useful with the request
 
I know
 
then i'm not sure why you're looking for a header field with that info, but maybe i'm missing your point
afaik "host" is the only required field, and that's only in 1.1
 
It's technically non-working code, but I think I'd like to make an exception:
7
Q: Find the peak stock price for each company from CSV data

NagriDuring the hiring process, a company gave me this test: Q) Consider Share prices for a N number of companies given for each month since year 1990 in a CSV file. Format of the file is as below with first line as header. Year,Month,Company A, Company B,Company C, .............Company N 1990,...

Consider it pro bono work for Code Review.
 
8:12 AM
@DaggNabbit I want to be able to store the data in a key/value mapping, but that first field was throwing me off
 
@skiwi but that's the thing, it's not a field. It needs its own special properties
request.method, request.path, request.version or similar
 
I know
But if it is the only special thing, then I can turn the rest of the fields in a key/header mapping
But if those special lines can appear anywhere, then it would get messy
 
i'm not even sure what that thing's called, i read and reread the spec looking for a name for it and never came up with anything
no, they cant
there's that thing, header fields, and the body
 
Then I know how I can read it
 
Monking all
 
8:45 AM
0
A: Building SQL from multiple combinations of query parameters

PhrancisAs @200_success suggested, don't use the keyword BETWEEN in SQL, the result set can be unpredictable due to it, especially with DATE or DATETIME data. Mathematical operators > < = are better. You could significantly simplify your SQL-related code by not concatenating it with your Javascript cod...

 
0
Q: Stack implementation using only one queue in C

vaibhavWe start with an empty queue. For the push operation we simply insert the value to be pushed into the queue. The pop operation needs some manipulation. When we need to pop from the stack (simulated with a queue), first we get the number of elements in the queue, say n, and remove (n-1) elements f...

 
Monking @all
 
@AlexL No problem. Always a pleasure (to get a few up-votes)
 
9:06 AM
@Vogel612 @DaggNabbit what context is that? It looks interesting. CR question somewhere?
Monking @Nobody
@skiwi and @Phrancis To use backticks in chat, you can either use \` or `\``
 
monking @Nobody
 
And to write what I just wrote above you need to write: `\\``
And to write that you need to write... umm... nevermind.
 
9:27 AM
@SimonAndréForsberg royalsatwork.nl/riddle
 
@Mat'sMug Have you been breaking Mugs again? 675 Simons on the wall.
@DaggNabbit Ah, I recognize that problem. I believe it's the same as with "find the heaviest ball among 12 balls", just with 2187 instead of 12.
 
sounds like a classical binary search problem
 
@Nobody I think it's better to work with thirds actually. At least in beginning. See above link.
The king's sword seems to always be lighter though.
 
@SimonAndréForsberg: We actually know that the searched one is lighter
the parting into 3 is only needed if we don't know if the searched one is lighter or heavier
 
@SimonAndréForsberg yeah, I thought it was a bisection problem at first and wondered why the number was a cube instead of a square. Wasn't thinking of the scale as being a balancing scale though, that makes all the difference
 
9:35 AM
Yes. But it might still be good to use the a == b approach and then you know that the one you are looking for is not in a or b.
 
if it was just a normal scale that gave a measurement I think bisection would be faster
because to get a == b you need 2 measurements
 
Actually, there is no explanation how the scale works
 
no, there isn't, so the answer would have to be a 2 part answer
 
@SimonAndréForsberg lol you also busy with the riddle?
 
and also they don't say how many cannonballs there are, just that there are at least 7^3
> In preparation for battle, no less than 2,187 cannonballs have been produced
but there could be more
 
9:38 AM
@DaggNabbit I think what they mean is that there are exactly 2187 cannonballs
 
I think it is just some fancy wording to fit into the setting
 
"no less than" does not mean "exactly" =/
could just be fancy wording but they should say exactly what they mean in a puzzle like this
 
it does not make sense to give only a lower bound and then ask for the time your algorithm would need (or they would want to know how long you need at least)
 
well you could answer n^-3
 
Neither is grammatically (assuming we accept the modern usage of 'less' with count nouns in circumstances like this) or logically incorrect. However, I'd only expect to come across 'I found not less than five parcels at my doorstep.' in a maths problem. It's not idiomatic English. 'I found no less than five parcels at my doorstep.' means 'I found five – five – parcels at my doorstep.' 'No less than' is an emphasiser rather than a quantifier here. — Edwin Ashworth May 20 at 8:35
 
9:42 AM
yeah, but this is a math problem
 
n^-3? what is n? and why -3?
 
so when you see wording like that you assume it might have importance
 
well if it was me really standing there. The first thing I do is going to the blacksmith's home and collect the kings sword. He would recognize a good sword and never melt that :)
 
n is the number of cannonballs
 
and n^-3 is 1 / (n^3)
 
9:43 AM
n^-3 == cube root of n
oh yeah
 
@DaggNabbit It is a math problem written with less than ideal English.
 
the cube root is n^(1/3)
 
n ^ 1/3
yeah that's what i meant :p
 
but even then I would not see how you get to n^(1/3)
if you are bisecting you get to log_2 n
or log_3 n for trisecting
 
idk, i guess my math is rusty
i thought it was cube root of n
lol @chillworld
 
9:45 AM
I shut up :)
doing 5 things at same time => never good
 
@Nobody right, i had it backwards... it's solving for 3 = n^1/x
is that the same as log3(n)?
 
@DaggNabbit No
Wait
I dunno XD
 
lol i don't either
I just started from 3^7 = 2187 and worked backwards
anyway i still like my magnet solution, much faster than splitting the balls into piles and weighing them all
 
@DaggNabbit: x = log_b a <=> b^x = a
so log_3(n)=x means 3^x = n
 
10:01 AM
Please stop uploading the game highlights to Pornhub... Our public humiliation category is full. #BrazilvsGermany
lol
 
and 3 = n^(1/x) can be transformed (be taking both sides to the power of x) to 3^x = n
which can be transformed (by taking log_3) to x = log_3 n
@DaggNabbit so yes, it is the same (although I find the notation a bit contrived :)
 
@SimonAndréForsberg Nice
 
It's a good thing that no more goals were scored yesterday, otherwise they would have to switch to double or long instead of int.
3
 
@Jamal Any specific reason for code?
 
@Nobody yeah 3^x = n is a better way to express it
 
10:08 AM
if (pos == 0 && (currentHeader.charAt(pos) == ' ' || currentHeader.charAt(pos) == '\t')) {
The \t is a tab, right?
 
^ yes
 
Good good
Now to find a Map in Java that remembers insertion order
 
wait, i think so... idk if Java only supports that for strings and not character literals
not clear from their docs
 
@skiwi LinkedHashMap
 
@SimonAndréForsberg I was a bit thrown off by "normally preserves insertion order", any clue about it?
@DaggNabbit Character literals for sure I think ('\n') also works
 
10:17 AM
@skiwi Nope, no clue what they mean about that
 
10:44 AM
0
Q: Prime factor in reverse order

vaibhav#include<stdio.h> int main(){ int numberGiven,num=2,i=0,stack[100] = {0},top=-1; // get the number from user printf("Enter the number : "); scanf("%d",&numberGiven); while(numberGiven >= num){ // check for prime-ness of number for(i=num/2;i>1;i--){ ...

 
11:06 AM
 
@skiwi Enjoy it while it lasts.
 
@SimonAndréForsberg I'll enjoy the star while it lasts, thanks
 
@Mat'sMug Santa missed a spot though. I'm 4 rep from 18K!
 
OCD vote incoming...
 
11:19 AM
Would I be correct in removing the blocks of code that aren't working from this question: codereview.stackexchange.com/questions/56527/…
He says "Snippet A when it wasn't working" then "Snippet A now that it works". The first snippet isn't really relevant is it? In his source code, the first snippet wouldn't exist.
 
At least also comment on why you remove it.
 
Yay, found a valid use of ifPresent on Optional<T>
message.getHeaderValue("Host").ifPresent(host -> {
    if (host.contains(":")) {
        String[] hostParts = host.split(":");
        address = InetAddress.getByName(hostParts[0]);
        try {
            port = Integer.parseInt(hostParts[1]);
        } catch (NumberFormatException ex) {
            //ignore
            //TODO do not ignore
        }
    }
});
Ugh, but address must be final or effectively final...
 
Incoming SFQ!
 
SFQ`?
 
Simon Forsberg Question, of course :)
 
11:31 AM
@nhgrif Is that there because he wants you to review his changes though?
 
shouldn't it be SAFQ / AlmostZombie then?
or ZomisQ?
 
@skiwi I love those comments.
@Vogel612 I don't go by the nickname of Zomis on CR and I found that SAFQ didn't have the same ring to it.
 
@SimonAndréForsberg What's so special about them? ;)
 
//ignore
//TODO do not ignore
3
@skiwi Why not just have the TODO comment there? //ignore is like you want to ignore it on purpose. But then the TODO comment contradicts that.
 
This code can feel special now.
 
11:34 AM
0
Q: Splitting two lists into OnlyA, Both, and OnlyB

Simon André ForsbergThis is a part of my Minesweeper analyzer code that didn't fit into the last question. This code uses FieldGroup which extends ArrayList because I am using some more data than just the elements themselves. I am mostly wondering: Can any simplifications be made in the split method? Even though t...

 
Psst @SimonAndréForsberg Either<A, B>
Or doesn't that work?
 
@skiwi Either<A, B> huh?
 
    onlyA: Elements that exists in A but not in B
    both: Elements that exists in both A and B
    onlyB: Elements that exists in A but not in B
But then I read the "both" part
 
0
Q: ASP.NET HttpRuntime.Cache cache manager class

RegforI am making code review of class, which manages caching logic. Caching logic uses ASP.NET webforms HttpRuntime.Cache. I know class, that is posted below, is pretty big. That's why I've additionally posted it to gist - https://gist.github.com/Rkregfor/0c4d96a831a012c09eac Class itself: public c...

 
11:44 AM
@skiwi An Either<A, B> class wouldn't be useful as all lists and elements are of the same type.
 
Using two sockets in one application is confusing
 
@skiwi Not at all.
 
You send to the output, and read from the input.
That keeps confusing me all the time.
 
well @skiwi if you keep naming them socketOne and socketTwo how are you going to keep them separate..
 
@All - Monking!
 
11:49 AM
Monking @rolfl
 
@Vogel612 @skiwi Don't tell me that they are actually named that?
Monking @rolfl
 
Monking @rolfl
 
0
Q: Create albums out of songs

DavlogI have made a method which returns a list of all songs on my device. Now I want to get a list of albums out of these songs. What I basically do is go through every song I have in my list, check if its album is already in the list and if not I create a new album. This method will take some time...

 
@SimonAndréForsberg Luckily not
@rolfl Monkinking
In theory this code should work now
 
@skiwi What's so confusing about sending to the output and reading from the input? Isn't that how it always has been done?
 
11:50 AM
@skiwi but that textArea and textField instead of output and input was confusing as heckl
 
@skiwi Keyword:
 
Triple ping!
@SimonAndréForsberg It's always confusing me
I usually read from the output
even though the output (of the other program) technically is input to my program
 
@skiwi Wuut? How do you do that?
@skiwi Exactly. You need to think about your program.
 
Maybe I should start by actually sending the first line of the http header
 
@AlexL - there is a search option on SEDE: data.stackexchange.com/codereview/query/80895/most-edited-posts
 
11:53 AM
Don't be concerned about how other programs do it. Just because other programs write to the input (of your program), doesn't mean that your program should do so as well.
 
Progress
Exception in thread "Thread-3" java.io.UncheckedIOException: java.net.MalformedURLException: no protocol: 200
Oh... HTTP response headers are different than request ones :(
Flippin' great.
 
@rolfl What's up with this row in that query? 2011-01-21 18:08:20 unknown Other 21
 
@skiwi remove that ' they aren't parsed in tags
 
This feels ugly... Though it should work and also work slow as hell
new Thread(() -> {
    uncheckIOException(() -> {
        InputStream inputStream = fromSocket.getInputStream();
        OutputStream outputStream = socket.getOutputStream();
        while (true) {
            int b = inputStream.read();
            if (b == -1) {
                break;
            }
            outputStream.write(b);
        }
    });
}).start();
 
@SimonAndréForsberg - that happens to be this: codereview.stackexchange.com/help/on-topic
 
12:05 PM
It is important to take your break;s.
 
@rolfl So that is actually stored as a question? Interesting.
 
@SimonAndréForsberg not a question, but a post.
the type is neither question nor answer.
 
PostTypeId=7 .... q's ar 1, and A's are 2
 
7 = WikiPlaceholder
 
Monking all!
 
12:08 PM
1	Question
2	Answer
3	Wiki
4	TagWikiExcerpt
5	TagWiki
6	ModeratorNomination
7	WikiPlaceholder
8	PrivilegeWiki
 
@ckuhn203 New picture!
 
Hey @ckuhn203
 
@skiwi Yeah. I figured as often as I come into chat and rubber duck my problems, it was appropriate.
2
Hey @CodeX! How are you?
 
@Vogel612 Alright, thanks.
 
0
Q: Loading datawarehouse with dynamic sql

TristanFor a datawarehousing project I ran into the following: custom fields that users can create, modify and delete, that should be loaded into the datawarehouse as they are when the ETL happens. On the profiling part of the area in the database that holds this data I discovered that theses fields a...

0
Q: Strange LINQ Join behaviour

AntonI've got a table in database for allocation and a view for containers. I'm using EF and LINQ to get data. One allocation can be related to one or more entries in containers view. If i use T-SQL everything is OK but when I use EF and LINQ results are always different, row count is the same but f...

0
Q: Python script which fetches amzon product details using its API

aviThis is a script which takes an amazon url as input, takes out ASIN/ISBN from url, uses amazon python api to fetch details. For this task, I looked many amazon URLs and I observed following things: ASIN/ISBN is always present in an amazon URL ASIN/ISBN can be present anywhere in the URL ASIN ...

 
12:18 PM
@ckuhn203 Im good thanks! :)
 
Create own proxy server: [&#10004;]
 
I think you're right to question the use of cursors. Thank you for including the table definitions. Great first question! Welcome to CR! Feel free to drop by chat and meet the regulars. — ckuhn203 22 secs ago
 
Finally! Solved the utf-8 vs UTF-8 issue
Had to create my own proxy server and insert this line:
message.getHeaderKeyValues().computeIfPresent("content-type", (key, value) -> value.replaceAll("utf-8", "UTF-8"));
@SimonAndréForsberg I'm failing to see why you need to extend ArrayList
 
@ckuhn203 thanks for the invite :)
 
@skiwi I know I could use composition over inheritance. I just need to add some more information (particularly, a double for the probabilities)
 
12:28 PM
@Tristan No problem!
 
@SimonAndréForsberg By reading your question I had the impression initially that it was all about that custom class extending arraylist...
 
I'm at work right now, but I'll definitely try to take a look at your question sometime today.
 
welcome @Tristan
 
And you only want to store the double? I have a feeling you're not using the right tool there.
 
@skiwi The question would essentially be the same if I were using ArrayList directly
@skiwi No, I want to store both the double and the elements of the collection.
 
12:30 PM
So create a simple record class that stores the list and the double? No need for inheritance there
 
The splitting lists part is done before the probabilities themselves are calculated. Given the rules a + b + c + d = 2 and c + d + e = 1, it is splitted into (a + b) + (c + d) = 2 and (c + d) + (e) = 1.
@skiwi As I said, I know that I could use composition over inheritance. I don't think it is that wrong to use inheritance in this case though. Now I only have to create one object (FieldGroup) instead of two (record object and ArrayList)
And I can more easily use the inherited methods removeAll and retainAll, and also the Collections.disjoint method.
 
ok
Funny...
I'm checking my phone to see how the weather is at 5pm, then I realise I'm not with my bike
private static final int DEFAULT_HTTP_PORT = 80; Is this magic number magical enough such that it doesn't need to be a magic number?
 
@skiwi I would use it as a constant like that. Some HTTP requests are made across other ports.
 
But in here I mean it like the real default, the one that supposedly never changes
It's not an application setting
 
@skiwi . But even though it's not an application setting, it is easier to make it an application setting if a private static final int exists for it already.
 
12:42 PM
Hello everybody!
 
Hello @Anton!
 
12:58 PM
10
Q: Homemade particle accelerator

George SmyridisWatching a documentary, I heard Michio Kaku telling that when he was young, he built a home-made particle accelerator. What I would like to know is if I, myself can do so? And how?

How... why would you even think about building a homemade particle accelerator?
 

« first day (431 days earlier)      last day (3587 days later) »