←2012-11-11 2012-11-12 2012-11-13→ ↑2012 ↑all
00:18:51 -!- kmc has set topic: A button to touch, a dial to turn, a key to hold | Days turn to nights turn to weeks turn to paper into rocks into plastic | http://phantom-hoover.tumblr.com/ | http://codu.org/logs/_esoteric/.
00:38:06 <hagb4rd|outoford> into words into wind
00:38:21 -!- hagb4rd|outoford has changed nick to hagb4rd.
00:39:06 <hagb4rd> into fear
00:40:28 <elliott> thanks hagb4rd
00:40:40 <hagb4rd> you're welcome elliott
00:44:58 <Phantom_Hoover> should we really have my tumblr up there when it hasn't been updated in a month
00:45:26 <hagb4rd> of course
00:46:15 <kmc> thagb4rd
00:47:10 <hagb4rd> i mean of course we can change it
00:47:24 <hagb4rd> erm
00:47:26 <hagb4rd> yes
00:48:44 <hagb4rd> cookies?
00:58:45 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:05:15 <tswett> You know, it sure is weird that TINCSOATUDTNN.
01:05:49 <tswett> That's some heady shit.
01:06:47 <monqy> hi
01:06:48 <lambdabot> monqy: You have 1 new message. '/msg lambdabot @messages' to read it.
01:07:19 <monqy> elliott: you got me by way of sending me a message after i had already checked
01:07:50 <elliott> monqy: ;^)
01:11:06 <kmc> Showing results for TINY STUDENT
01:11:07 <kmc> No results found for TINCSOATUDTNN
01:11:13 <kmc> is that some kind of ioctl
01:11:16 <Bike> there is no such thing as a...?
01:11:23 <tswett> There is no computable set of axioms that uniquely defines the natural numbers.
01:11:49 <monqy> ok
01:13:23 -!- ztirf has quit (Quit: Nettalk6 - www.ntalk.de).
01:13:25 -!- Arc_Koen has quit (Quit: Arc_Koen).
01:18:33 -!- Arc_Koen has joined.
01:19:02 <elliott> tswett: would you like to tell us another 1000 times
01:19:08 <elliott> you could compete with Sgeo talking about clojure
01:20:36 <tswett> Sure.
01:20:39 <tswett> There is no computable set of axioms that uniquely defines the natural numbers.
01:20:58 <tswett> It's just, like...
01:21:01 <tswett> What's up with that?
01:21:06 <hagb4rd> lol
01:21:29 <hagb4rd> pardon..go on
01:21:57 <tswett> I don't really have anything else to say.
01:25:34 <monqy> what do they say, "if you don't have anything nice to say, don't say anything at all"
01:25:48 <monqy> how do you think the natural numbers feel about that
01:29:45 <hagb4rd> good tswett just keeps us aware of the wonders in this world
01:31:09 <tswett> I don't believe I've hurt the natural numbers' feelings by saying this about them.
01:40:55 <hagb4rd> guess nobody likes to be calculable at all
01:42:04 <tswett> But hm. How's this as a definition of the natural numbers...
01:42:50 <tswett> Zero is a natural number. Every natural number has a successor. The successors of distinct natural numbers are distinct. Zero is not the successor of any natural number. No natural numbers exist except as required by the preceding statements.
01:43:16 <tswett> That is not, of course, a set of axioms in first-order logic
01:45:35 <elliott> i'm having the strangest feeling of deja vu here tswett
01:46:30 <tswett> Oh?
01:46:39 <elliott> well
01:46:44 <elliott> it's almost as if you've said the exact same thing before
01:47:33 <tswett> I see.
01:47:41 <hagb4rd> it might be still true
01:48:22 <hagb4rd> but nevertheless.. what was this clojore thing? :p
01:48:34 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
01:49:03 <Sgeo> I'm not in the mood to Python after a day of Clojure
01:49:10 <Sgeo> But Pythoning is more important right now
01:49:47 <Sgeo> Or, I guess I could use another language as long as it runs on the server I have access too... unfortunately, the JVM doesn't work on it. And I'd rather use a language the other people in my group have a hope of understanding.
01:53:17 <kmc> python is fine
02:00:03 <elliott> looks like sgeo has the lead so far
02:01:56 <kmc> lead of?
02:02:13 <tswett> My "axioms" almost seem well-defined, but I wonder if they're actually meaningful within any system of logic.
02:02:27 <kmc> is there a contest to mention clojure the most times
02:03:03 <monqy> it's clojure vs natural numbers
02:03:12 <tswett> The contest is whether Sgeo can mention Clojure more times than I mention the fact that TINCSOATUDTNN.
02:03:25 <monqy> oh wow you abbreviated it
02:03:30 <Bike> you've established a cutesy nickname, that must give you extra points
02:03:48 <monqy> so that's what tincoastsutugjhgjgjlglj is
02:04:11 <tswett> It's pronounced "Tincture Sud Tune", of course.
02:04:19 <Bike> sgeo should get an I'd Rather Be Clojurin' bumper sticker to keep up, maybe
02:07:45 <tswett> Except no, I think it's actually pronounced "tiny student".
02:08:17 <elliott> <kmc> lead of?
02:08:21 <elliott> <elliott> tswett: would you like to tell us another 1000 times
02:08:21 <elliott> <elliott> you could compete with Sgeo talking about clojure
02:08:55 <tswett> But yes, what type of logic would that be? "No natural numbers exist except as required by the preceding statements." The naive way to do that would be to say something like, for all X, if the statement "the preceding statements imply that X exists" is not necessary, then X does not exist.
02:09:17 <tswett> Of course, "X exists" is not a meaningful predicate.
02:10:56 <Bike> isn't it just "the smallest set satisfying these axioms"
02:11:26 <tswett> Well, the problem I have with that is that now you have to define "set".
02:12:36 <Bike> You were talking about what natural numbers are anyway. What the set of natural numbers is.
02:13:04 <tswett> So? I can define a concept that happens to be a set without also defining the word "set".
02:13:43 <tswett> At least, I can try to.
02:14:12 <tswett> Really, we don't need to define the word "set". But, given a collection, it would be really nice to have a definition of a subset of that collection.
02:15:21 <tswett> Lessee, the thing that comes to mind is, "Subsets of a collection C are those things such that if C can be partitioned into two subsets D and E, then each subset of C corresponds to a pair (a subset of D, a subset of E)".
02:15:29 <tswett> No, that's pretty much useless.
02:15:49 <tswett> It doesn't say that the collection {x, y} has more than two subsets.
03:15:56 -!- Arc_Koen has quit (Quit: Arc_Koen).
03:25:51 <shachaf> lambdabot: @
03:25:51 <lambdabot> Maybe you meant: . ? @ activity activity-full admin all-dicts arr ask b52s babel bf bid botsnack brain bug check choice-add choose clear-messages compose devils dice dict dict-help djinn djinn-add
03:25:51 <lambdabot> djinn-clr djinn-del djinn-env djinn-names djinn-ver do docs dummy easton echo elements elite eval fact fact-cons fact-delete fact-set fact-snoc fact-update faq farber flush foldoc forget fortune
03:25:51 <lambdabot> fptools free freshname ft gazetteer get-shapr ghc girl19 google googleit gsite gwiki hackage help hitchcock hoogle hoogle+ id ignore index instances instances-importing irc-connect jargon join karma
03:25:51 <lambdabot> karma+ karma- karma-all keal kind learn leave let list listall listchans listmodules listservers localtime localtime-reply lojban map messages messages? more msg nazi-off nazi-on nixon oeis offline
03:25:51 <lambdabot> oldwiki palomer part paste ping pl pl-resume pointful pointless pointy poll-add poll-close poll-list poll-remove poll-result poll-show pretty print-notices protontorpedo purge-notices quit quote rc
03:25:53 <lambdabot> read reconnect remember repoint run shootout show slap smack source spell spell-all src tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc
03:25:55 <lambdabot> topic-tail topic-tell type undefine undo unlambda unmtl unpf unpl unpointless uptime url v vera version vote web1913 what where where+ wiki wn world02 yarr yhjulwwiefzojcbxybbruweejw yow
03:26:08 <Sgeo> Maybe I'll be able to focus while I eat?
03:29:38 <zzo38> I thought of a idea, to make a type system which instead of the logic is based on being fixed, you can define your own rules for them.
03:29:53 <zzo38> I don't know how it would work, though (I don't even know if it works at all).
03:44:50 <zzo38> Another idea is some type system based on regular expressions, with a few things added, and including replacements; the units here are constructors and containers though.
03:52:22 <zzo38> You could then add various kind of anchors and other operators, have containers attached to constructors be ordered or disordered, have a forbidding operator, laziness operator, allow types to share constructors, have one-way, have one-use, implicit type casting automatically works, etc
03:57:05 <zzo38> Another strange thing perhaps is, a constructor can be defined to be idempotent or to commute with another constructor, and you could have two types with the same constructor where it commutes in one type but in the other it doesn't commute, or is idempotent in one but not the other, etc
04:04:58 <kmc> controlling industrial cutting laser over X forwarding
04:05:01 <kmc> LIKE A BOSS
04:05:34 <shachaf> I thought you had a consumer cutting laser.
04:06:04 <kmc> ok fine
04:06:08 <kmc> doesn't sound as cool
04:06:22 <kmc> i will claim it's an industral laser because of the extreme user-unfriendliness of the control system
04:09:00 <zzo38> As well as defining addition of types at the type level, with this system you would also be able to define addition of values at the type level too.
04:28:40 -!- epicmonkey has joined.
04:36:18 -!- esowiki has joined.
04:36:22 -!- esowiki has joined.
04:36:22 -!- esowiki has joined.
04:36:58 -!- esowiki has joined.
04:37:02 -!- esowiki has joined.
04:37:02 -!- esowiki has joined.
04:37:38 -!- esowiki has joined.
04:37:42 -!- esowiki has joined.
04:37:42 -!- esowiki has joined.
04:38:18 -!- esowiki has joined.
04:38:22 -!- esowiki has joined.
04:38:22 -!- esowiki has joined.
04:38:58 -!- esowiki has joined.
04:39:02 -!- esowiki has joined.
04:39:02 -!- esowiki has joined.
04:39:38 -!- esowiki has joined.
04:39:42 -!- esowiki has joined.
04:39:42 -!- esowiki has joined.
04:40:18 -!- esowiki has joined.
04:40:22 -!- esowiki has joined.
04:40:22 -!- esowiki has joined.
04:40:58 -!- esowiki has joined.
04:41:02 -!- esowiki has joined.
04:41:03 -!- esowiki has joined.
04:41:38 -!- esowiki has joined.
04:41:42 -!- esowiki has joined.
04:41:43 -!- esowiki has joined.
04:42:18 -!- esowiki has joined.
04:42:22 -!- esowiki has joined.
04:42:23 -!- esowiki has joined.
04:42:58 -!- esowiki has joined.
04:43:02 -!- esowiki has joined.
04:43:03 -!- esowiki has joined.
04:43:38 -!- esowiki has joined.
04:43:42 -!- esowiki has joined.
04:43:43 -!- esowiki has joined.
04:44:08 -!- esowiki has joined.
04:44:09 -!- glogbot has joined.
04:44:09 -!- glogbackup has left.
04:44:11 -!- HackEgo has joined.
04:44:12 -!- esowiki has joined.
04:44:13 -!- esowiki has joined.
04:44:14 -!- EgoBot has joined.
04:45:25 -!- Gregor has joined.
04:57:43 -!- epicmonkey has quit (Ping timeout: 260 seconds).
05:04:30 <zzo38> The skill generator command is SKI and I have also added the lookup table command is LUT
05:05:44 <zzo38> I could implement a command for scaling the total of a list of numbers, which together with LUT could be used for implementing Goldilock's method.
05:16:23 <quintopia> yay zzo38
05:16:42 <quintopia> how hard would it be to make it 4e
05:21:59 <zzo38> I don't know. This SKI command is a command which is a part of FurryScript, and the options it supports should be sufficient for D&D3.5e and for Icosahedral RPG; maybe it is sufficient for 4e as well, and if not then you can tell me what options to add.
05:22:32 <elliott> comex: "I order ais523 to place a large notice on eir home page stating that eir cashing condition was inaccurate." <3
05:23:32 <shachaf> @context elliott
05:23:32 <lambdabot> Unknown command, try @list
05:24:15 <zzo38> Options at this point are: C=cost I=increase-cost M=max-value c=count d=dice r=removal-chance v=initial-value. In addition, you specify the number of skill points in total, and the skill names are allowed to contain templates.
05:24:37 <elliott> shachaf: agora
05:25:01 <Sgeo> shachaf, http://agoranomic.org/
05:25:08 <Sgeo> (Note: Page may be out of date)
05:26:25 <zzo38> The "C" option is used to implement cross-class skills in D&D3.5e; Icosahedral doesn't use class/cross-class skills. The "d" option makes something resembling the skill advancement in ADOM. The "c" option makes it more likely to select that skill, the "r" option makes it less likely the more it is selected, the "v" gives you skill ranks for free.
05:28:13 <zzo38> I forget how 4e skills work so if you know, then you might know if these options are sufficient for that purpose or not. Do you know?
05:36:50 <zzo38> But I do have some idea of additional options to add: mutually exclusive skills, skills spendable in other skills, multiple classes of skills, skills that lock or unlock other skills, priorities, skill levels, etc
05:45:15 <zzo38> quintopia: What do you think of this? Is it sufficient for what you are doing? If not, what would it need to make it sufficient for such purposes?
05:49:22 <quintopia> in general 4e is simpler than 3.5e
05:49:43 <quintopia> so if it uses templates, it should be possible just to modify the template to get it working for 4e
05:50:22 <zzo38> Yes I know. However it still does not answer my question completely. These "templates" are the same templates as the rest of FurryScript and may or may not be what you need.
05:51:10 <zzo38> What I mean is you can write a skill list with options specified, and the skill names can contain templates.
05:51:32 <zzo38> (These templates are separate from the options, and you can use both.)
05:52:47 <zzo38> I seem to remember that 4e still has class/cross-class skills but not skill ranks (Icosahedral RPG is the opposite; it has skill ranks but not class/cross-class skills).
05:54:34 <zzo38> But maybe I misremember it, or maybe I missed something.
05:55:25 <zzo38> Note that FurryScript has no skill list built-in; you still have to write the skill list yourself.
05:56:17 <zzo38> Do these answer any of your questions at all, or does it confuse you?
06:02:05 -!- nooga has joined.
06:06:16 <quintopia> everything about furryscript confusses me
06:13:23 <zzo38> Did you read the documentation (and source-codes if necessary)?
07:03:20 -!- ztirf has joined.
07:04:29 -!- FreeFull has quit.
07:10:13 -!- epicmonkey has joined.
07:25:05 -!- Nisstyre-laptop has quit (Remote host closed the connection).
07:36:23 -!- epicmonkey has quit (Ping timeout: 265 seconds).
07:36:48 -!- Bike has quit (Quit: good place to halt).
07:47:57 -!- augur has joined.
07:52:06 <quintopia> zzo38: i read it and read examples and still am confused
07:53:22 -!- Frooxius has quit (Ping timeout: 260 seconds).
07:53:42 <zzo38> quintopia: Explain what part you misunderstood?
07:54:29 <quintopia> zzo38: how the interpreter actually works. how to write my own scripts.
07:54:40 <quintopia> i gather it's some kind of stack machine
07:54:41 <quintopia> but
07:55:05 <quintopia> i don't quite understand how programs are organized and how execution order is determined and such
07:55:48 <zzo38> It is executed from beginning to end; blocks [] are subroutine blocks which do not execute until called
07:56:39 <zzo38> Any strings (not any other types) on the stack when the program ends is done implicitly run GEN on them and then is send each one to output. This is the only way to make the program to output anything (except for debugging commands).
08:20:59 -!- zzo38 has quit (Remote host closed the connection).
08:31:11 <Sgeo> elliott, monqy stuff
08:32:45 <monqy> hi Sgeo
08:35:13 <shachaf> hi monqy
08:35:16 <shachaf> "im the new Sgeo"
08:36:13 <monqy> hi Sgeo
08:37:35 <shachaf> monqy: Can I have a fortune?
08:38:10 <monqy> why do i have fortune installed
08:38:40 <monqy> eugh whatever
08:38:45 <monqy> is `fortune a thing
08:38:46 <monqy> `fortune
08:38:59 <HackEgo> ​.-. \ ||`7.V\/| \ / .--.| '-, \ _/ / _ <__ \ (_>( -.- \ /==\ \ '`. -(_/ //|==.|\ \ `> --', |--.|=\ \ _\V|/|/(/||==-|.=\ \ ->. _.-'-'|.==|.-'| \ _7__| u _u|==.|_.-|
08:39:04 <monqy> ok
08:39:58 <elliott> monqy: why wouldn't you have fortune installed. except for all the standard fortune sets being bad
08:40:13 <monqy> exactly
08:44:46 <fizzie> `run fortune -o # offend me, machine!
08:44:50 <HackEgo> Little Mary on the ice, \ Went out to have a frisk, \ Now wasn't little Mary nice, \ Her pretty *?
08:45:03 <coppro> ahahahahahahahahahahah
08:45:06 <coppro> monqy: update
08:45:09 <coppro> i have beaten sgeo
08:45:16 <coppro> elliott: also you i think
08:45:19 <monqy> what
08:45:35 <coppro> monqy: hs
08:45:37 <monqy> what
08:45:55 <coppro> homestuck
08:46:15 <monqy> what
08:46:19 <coppro> it has updated
08:46:22 <monqy> what
08:46:24 <coppro> sgeo normally informs people of this
08:46:30 <monqy> see the joke is
08:46:35 <monqy> sgeo beat you
08:46:39 <monqy> im sorry coppro
08:46:44 <coppro> bah
08:46:48 <coppro> :(
08:46:51 <coppro> I am ashamed
08:46:55 <coppro> but not really
08:46:57 <coppro> because I was doing other things
08:47:23 <coppro> I was taken by surprise by the second page though
08:48:08 -!- epicmonkey has joined.
08:48:09 <monqy> elliott: were you too ?
08:49:06 <elliott> monqy: is the joke that i haven't read homestuck in aeons
08:49:38 <coppro> I am not sure whether to expect a psyche
08:49:56 <monqy> elliott: that's like at least half the joke yeah
08:50:44 <coppro> I also love the thememing of the planets
08:51:01 <coppro> all dead, all noble
08:51:25 <monqy> Sgeo: what did you think ?
08:51:34 <coppro> though I think argon feels left out :(
08:51:48 <Sgeo> The second page was surprising
08:52:19 <coppro> yeah but what comes after?
08:52:22 <coppro> is it for reals?
08:52:47 <coppro> the music at LoTaK is fantastic
08:55:09 <monqy> elliott: you should see this, i hear it's surprising and fantastic
08:57:17 <coppro> I wonder if skaia itself counts as argon or something
09:01:21 -!- nooodl has joined.
09:04:49 <coppro> (since it's in the middle)
09:06:32 <Sgeo> I think some people are hoping it isn't for real, but I'm kind of hoping it is
09:06:42 <monqy> hi nooodl
09:06:48 <monqy> nooooooooooooooodl, sorry
09:10:47 -!- ztirf has quit (Ping timeout: 252 seconds).
09:13:24 -!- Phantom_Hoover has joined.
09:14:13 <ion> I couldn’t find the full BeagleBone pin information in a machine readable format anywhere, so i did it myself: https://github.com/ion1/beagle_bone_pins
09:21:10 -!- carado has joined.
09:29:56 -!- copumpkin has quit (Ping timeout: 248 seconds).
09:30:28 -!- copumpkin has joined.
09:41:40 -!- carado has quit (Ping timeout: 246 seconds).
09:56:41 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
10:15:19 -!- ztirf has joined.
10:18:36 -!- zzo38 has joined.
10:19:06 <zzo38> Do you know if GNU C allows a variable declaration to be an unnamed union?
10:20:28 <zzo38> And, if you have a question about FurryScript, please write it in details in the http://esolangs.org/wiki/User_talk:Zzo38/FurryScript
10:26:53 <fizzie> GNU C does allow unnamed unions as an extension in pre-C11 modes, yes, if I recall correctly.
10:27:21 <fizzie> Er, that is, allows unnamed union members.
10:27:34 <fizzie> I think anything will allow a tagless union variable declaration.
10:28:11 <fizzie> ("Unnamed" is perhaps a bit vague.)
10:29:16 <fizzie> If you mean the kinds of unnamed unions that are used as struct/union members, I don't think it allows that as a variable declaration.
10:30:37 <fizzie> In other words, struct s { union { int x; double y; }; }; is fine, as is union { int x; double y; } u; but not plain union { int x; double y; }; outside of a struct or an union declaration.
10:32:28 <zzo38> Are they going to change it so that it is allowed?
10:33:20 <zzo38> Does anyone else want such feature?
10:38:39 <fizzie> Sounds slightly unlikely. I suppose the desired semantics would be the same as union { int x; double y; } u; except allowing plain x and y as opposed to u.x and u.y in the scope where the declaration is visible?
10:39:10 <zzo38> Yes, so x and y have the same address, too.
10:45:18 <fizzie> It is possible that "they" think it would be potentially too surprising; as opposed to the variant where there is at least some explicit indication that the two variables are in an union.
10:47:58 -!- nooodl has quit (Ping timeout: 246 seconds).
10:51:36 <zzo38> It wouldn't seem too surprising to me, at least.
10:53:08 <zzo38> You could use macros in some cases, but such things lacks the scope, and macros cannot define other macros.
10:56:29 <zzo38> Actually I think declaring unnamed structures as variables should also be allowed in order to force them to be grouped together if the address is being used in such a way.
10:57:22 <fizzie> Personally I'm willing to just write the "foo." prefix in such a case.
10:57:57 <shachaf> ==fizzie
10:59:32 <zzo38> Yes that is one way, although it may fail with some uses of macros, and anyways it seem to me that it ought to be allowed, by how the others worked.
11:00:25 -!- impomatic has joined.
11:05:48 -!- nooga has quit (Read error: Connection reset by peer).
11:06:09 <fizzie> I suppose it depends on whether you see it as a feature of a struct/union declaration ("leaving out the name allows the members to bubble up to the enclosing scope") or as a feature of a struct/union *member* declaration ("leaving out the name pulls up the members to this scope"); the way it's specified is closer to the latter.
11:07:28 <fizzie> Incidentally, here's two C features I've never seen used "in the wild"; any spottings of these elsewhere? struct bf { int bf1 : 1; int : 0; int bf2 : 1; }; and int f(int n, int ary[*]); int f(int n, int ary[n]) { ... }
11:08:07 <zzo38> I have not seen it.
11:09:31 -!- monqy has quit (Quit: hello).
11:10:10 -!- nooga has joined.
11:10:19 <fizzie> Regarding the latter, it's funny that int f(int a, int not_a, int ary[a]); int f(int a, int nota, int ary[not_a]) { ... } is perfectly legal -- in a function declaration that's not a definition any non-constant sizes are taken as if "[*]" were written there instead.
11:10:33 <fizzie> s/nota/not_a/
11:15:04 <zzo38> Would my ^+| and ^-&~ operators be useful ever for hardware description?
11:18:57 <zzo38> I mean the ^+| acts like ^ or | or + but is undefined if the operands share any bits set; the ^-&~ is undefined if any bits set in right operand are clear in the left operand.
11:20:22 <fizzie> Are... are those the symbols for the operators?
11:21:13 <zzo38> They are symbols I made up because I don't know of the others. Probably ^-&~ is no good, maybe -&~^ is better?
11:21:53 <zzo38> At least in C; in other programming languages it might be OK.
11:22:48 <shachaf> zzo38: Do you use Control.Lens?
11:24:25 <zzo38> shachaf: No, not at this time. Maybe later, though, if I find to use it.
11:25:13 <zzo38> (Actually I think I am wrong about ^-&~ being no good, now that I think of it.)
11:26:15 <shachaf> zzo38: Do you like Bazaar?
11:28:04 -!- impomatic has quit (Quit: http://BASICcomic.com).
11:32:35 <FireFly> fizzie: I'm pretty sure the bitfields-in-struct thing is mentioned in K&R, but that's not exactly in the wild. Incidentally, "why aren't these used very often?" was my first thought when I read about them
11:33:18 <FireFly> It seems to me like a cleaner approach than using and/or to mask out bits in an int
11:33:51 <fizzie> FireFly: I've seen bitfields; what I haven't seen is the "int : 0;" part.
11:34:20 <FireFly> Aha
11:34:51 <fizzie> It "indicates that no further bit-field is to be packed into the unit in which the previous bit-field, if any, was placed."
11:36:09 <fizzie> 13:35 <fizzie> ,cc size_t size1 = sizeof (struct { int bf1 : 1; int bf2 : 1; }), size2 = sizeof (struct { int bf1 : 1; int : 0; int bf2 : 1; });
11:36:12 <fizzie> 13:36 <candide> fizzie: <no output: size1 = 4; size2 = 8>
11:47:46 <kmc> that's wacky
11:47:52 <kmc> what does [*] do?
11:51:00 <shachaf> kmc: Did you ever look at Control.Lens? "pretty nifty, if i do say so myself"
11:53:53 <shachaf> Especially Traversals and all that.
11:56:03 -!- carado has joined.
11:56:27 -!- ais523 has joined.
11:57:22 <fizzie> kmc: "If the size is * instead of being an expression, the array type is a variable length array of unspecified size, which can only be used in declarations or type names with function prototype scope [FOOTNOTE: Thus, * can only be used in function declarations that are not definitions (see 6.7.6.3).]; such arrays are nonetheless complete types."
12:10:38 -!- Phantom_Hoover has joined.
12:11:24 <ion> http://youtu.be/tqUvKO8ktJk
12:12:38 <fizzie> Such elegance.
12:23:10 <kmc> this differs from a[] because it's a VLA rather than a plain array?
12:24:08 <olsner> or not, because array arguments are always actually pointer arguments?
12:24:38 <fizzie> It differs because it's a VLA, yes.
12:27:14 <fizzie> Possibly it might not matter in the case I pasted, where the "array of type" is adjusted to "pointer of type", but it matters with a more complicated declarator.
12:31:35 <fizzie> E.g. you can write int f(int n, int a[n][n]) or equivalently int f(int n, int (*a)[n]) and a suitable prototype for f would be also int f(int n, int (*a)[*]); but having int f(int n, int (*a)[]) { ... } wouldn't work.
12:34:05 <fizzie> For one thing, as mentioned a[*] is a complete type while a[] is not.
12:34:44 <fizzie> 14:34 <fizzie> ,cc int f(int n, int a[][]);
12:34:44 <fizzie> 14:34 <candide> fizzie: error: array type has incomplete element type
12:34:44 <fizzie> 14:34 <fizzie> ,cc int f(int n, int a[*][*]);
12:34:44 <fizzie> 14:34 <candide> fizzie: Success (no output).
12:36:51 -!- ztirf has quit (Ping timeout: 252 seconds).
12:37:34 <fizzie> FWIW, I haven't seen the int f(int n[static 42]) { ... } form in the wild either.
12:39:16 <fizzie> ("If the keyword static also appears within the [ and ] of the array type derivation, then for each call to the function, the value of the corresponding actual argument shall provide access to the first element of an array with at least as many elements as specified by the size expression", but it's not like anyone would *check*.
12:43:20 <kmc> huh?
12:46:24 <fizzie> int f(int n[static 10]) { ... }; ... int a[8]; f(a); is undefined behaviour, unlike int f(int n[10]) { ... }; ... int a[8]; f(a); which is only UB if f actually tries to access anything past the end of a.
12:48:25 <fizzie> I'm not sure if anything anywhere will in fact do anything different there; but theoretically speaking the compiler could (in the first case) e.g. speculatively load 10 ints from where the argument points at, and you couldn't blame it for blowing up.
12:48:33 -!- Arc_Koen has joined.
12:58:51 -!- Lopt has joined.
13:00:37 -!- Lopt has left ("Verlassend").
13:01:07 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
13:02:50 -!- ztirf has joined.
13:04:24 -!- Phantom_Hoover has joined.
13:07:17 -!- ztirf has quit (Ping timeout: 252 seconds).
13:53:52 -!- augur has quit (Read error: Connection reset by peer).
13:54:13 -!- augur has joined.
13:59:14 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
14:07:36 -!- epicmonkey has quit (Ping timeout: 240 seconds).
14:19:13 -!- epicmonkey has joined.
14:43:21 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:48:52 -!- Jafet has joined.
15:00:36 -!- claplost has joined.
15:02:53 <claplost> :-D
15:03:06 -!- claplost has left.
15:06:28 -!- epicmonkey has quit (Ping timeout: 246 seconds).
15:06:30 -!- copumpkin has joined.
15:06:44 -!- atriq has joined.
15:08:02 <atriq> I always keep a roll of sticky tape in the pocket of my shorts
15:09:12 <atriq> #true-facts
15:19:47 -!- Phantom_Hoover has joined.
15:20:33 <fizzie> atriq: To prompt "is that your roll of sticky tape or are you just happy to see me" questions, I suppose?
15:21:20 <atriq> Because I only wear my shorts when cosplaying, and I only cosplay with Homestucks and some of these homestucks have really shoddy horns that need constant repairing
15:21:56 <fizzie> Piles of horns.
15:23:45 -!- Frooxius has joined.
15:27:09 <atriq> I now cannot stand the sound of clown horns
15:28:11 -!- FreeFull has joined.
15:39:37 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:40:22 -!- copumpkin has joined.
15:44:06 -!- ais523 has quit (Ping timeout: 240 seconds).
15:48:26 -!- nooodl has joined.
16:04:01 -!- augur has quit (Remote host closed the connection).
16:33:54 -!- elliott has quit (Ping timeout: 268 seconds).
16:37:10 -!- augur has joined.
16:37:15 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
16:46:24 <atriq> Why am I listening to Prodigy
16:46:27 <atriq> Who even are Prodigy
16:46:55 -!- carado has quit (Ping timeout: 246 seconds).
16:48:47 <atriq> Sgeo, did you do the update thingy
16:49:06 <Sgeo> atriq, oops, sorry I left you out
16:49:25 <atriq> I was offline most likely
16:49:35 <atriq> I saw it at about 11 this morning (GMT)
16:50:53 <coppro> by the way
16:51:03 <coppro> I love the phrase "what even is this?" and friends
16:51:10 <coppro> the grammatical structure is hilarious
16:51:38 <atriq> I can't
16:51:45 <atriq> I am literally unable
16:54:20 -!- Vorpal has joined.
16:55:19 <coppro> atriq: to do what?
16:55:51 <atriq> Demonstrate ungrammatical sentences, evidently
16:56:00 <atriq> Those are quite common on Tumblr
16:56:10 <coppro> I think you did it quite well
16:56:15 <coppro> also what even is tumblr
16:56:20 <coppro> I don't understand it
16:56:26 <atriq> It's an art-themed microblogging website
16:57:34 <atriq> It's like rich-text twitter with images, videos, sound, and no character limit
16:57:40 -!- Phantom_Hoover has joined.
16:57:57 <coppro> I know what it is, in theory
16:58:40 <atriq> In that case, your question is like asking "What even is reddit?" or "What even is 4chan?"
16:58:43 <atriq> It's a community
16:58:49 <atriq> Which can be weird
16:58:54 <atriq> And can be wonderful
16:59:01 <atriq> And can be wrong.
16:59:07 <atriq> So very very wrong.
16:59:21 <atriq> But then you see someone transmorphing a cat and it's all cool
17:03:14 <coppro> haha
17:17:48 <fizzie> Vorpal: "TI-84 Plus C Silver Edition", a TI-84+ with a 320x240x16bpp color screen: http://www.cemetech.net/news.php?id=539 (not much non-rumoury details).
17:26:35 -!- nooga has quit (Ping timeout: 255 seconds).
17:31:43 <Vorpal> fizzie, heh
17:33:28 <coppro> atriq: so act 6 act 4 eh
17:35:29 -!- Nisstyre-laptop has joined.
17:36:05 <atriq> Yeah
17:36:45 <atriq> Alpha kids' Sburb is survival horror
17:36:53 <atriq> And it's the twelth of April
17:38:03 <coppro> I like the planets
17:38:08 <coppro> all dead
17:38:20 <Vorpal> hm getting a PS3 controller working on windows appears non-trivial. It works out of the box on Linux. Heck it even works out of the box on my android phone in USB mode, and it is easy to get it to work in bluetooth mode
17:53:44 -!- atriq has quit (Quit: Leaving).
18:02:16 -!- ais523 has joined.
18:02:22 <fizzie> Vorpal: I use that thing.
18:02:34 <fizzie> Vorpal: The MotioninJoy driver.
18:02:45 <fizzie> Vorpal: It's an ad-riddled piece of ugly mess, but it works fine.
18:04:14 -!- Nisstyre-laptop has quit (Ping timeout: 240 seconds).
18:07:37 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
18:17:06 <Vorpal> fizzie, I'm looking at an alternative that seems a lot more basic
18:17:11 <Vorpal> fizzie, and no ads
18:17:21 <Vorpal> however there is a bit of mess with driver signing
18:17:53 <Vorpal> fizzie, will tell you if it works in a bit
18:18:18 <fizzie> I'm not sure I can be bothered to switch since it works just fine; though admittedly I feel a bit queasy, having it on my system.
18:18:34 <fizzie> It does a rather passable xbox360 emulation for the PS3 controller, which is nice.
18:19:02 <Vorpal> the one I'm testing has a japanese only page, though there is an English readme
18:19:25 <fizzie> Bastion IIRC only worked for a x360 pad; and Sonic Generations has this random malfunction when it comes to any pads that aren't used via XInput aka. anything not a x360.
18:19:35 <fizzie> But the MotioninJoy emulation has so far been fine.
18:19:51 <Vorpal> it looks like malware to me, that is the issue
18:20:12 <Vorpal> anyway I played an snes emulator on my android phone with this thing now, in bluetooth mode even. Works fine.
18:20:47 <fizzie> It works over bluetooth with the N900 just fine, too; I don't recall if I needed to install anything.
18:20:52 <Vorpal> also why does this use miniusb rather than microusb
18:21:15 <fizzie> I have absolutely no idea; my cable is from an old digital camera that also used miniusb.
18:21:28 <Vorpal> I had a mini-usb cable from my bank login thingy
18:21:42 <fizzie> It has one of those large bulky things they sometimes put to cables that presumably do something to rf interference or something.
18:21:49 <Vorpal> hah
18:21:52 <fizzie> You know, the kind of cylindrical things.
18:21:55 <Vorpal> yeah
18:21:57 <Vorpal> ferrite cores?
18:22:07 <fizzie> Something like that, right.
18:22:14 <fizzie> It's in the mini-usb end, it looks real stupid hanging there.
18:22:27 <Vorpal> heh
18:22:35 <Vorpal> my camera have that too
18:22:50 <Vorpal> but it is optional, only required for the remote control mode according to the manual
18:23:05 <Vorpal> my camera uses a custom connector on that end of the cable though
18:23:20 <fizzie> The current camera I have has a custom connector too.
18:23:22 <Vorpal> also windows is being slow after boot as usual
18:24:00 <fizzie> The miniusb was from some 1600x1200 pocket-camera bought a decade ago.
18:24:17 <Vorpal> heh
18:25:50 <fizzie> Back in... uh, school grades 7-9, I was helping with the PageMakering of the school newspaper; they had a quite early digital camera there.
18:26:02 <fizzie> I forget the resolution, but it recorder on 3.5" floppies of all things.
18:27:11 <fizzie> http://en.wikipedia.org/wiki/Sony_Mavica -- I'm pretty sure it was that Mavica MVC-FD5 shown there, or a close relative.
18:27:35 <kmc> fizzie: hum, my gcc rejects "void f(int a[*]);"
18:28:08 <fizzie> kmc: With -std=c99?
18:28:12 <kmc> yeah
18:28:18 <kmc> oh nm
18:28:21 <kmc> i'm being dumb
18:28:40 <kmc> yeah, it works
18:29:41 <fizzie> I think it really doesn't have a difference for that "top-level array" case, since the "'array of T' is adjusted to 'pointer to T'" rule takes effect no matter whether it was a VLA or not.
18:31:37 -!- Nisstyre-laptop has joined.
18:31:58 -!- carado has joined.
18:32:46 <Vorpal> hrrm
18:33:03 <fizzie> Apparently the MVC-FD5 had an impressive 640x480 resolution too.
18:34:03 -!- nooga has joined.
18:34:05 -!- Bike has joined.
18:35:34 <Vorpal> fizzie, speaking of ferrite cores, I have a power cable with one of those on
18:35:40 <Vorpal> it is for an external HDD enclosure
18:35:57 <kmc> fizzie: but it matters for a[3][*] ?
18:36:14 <fizzie> kmc: Right; you couldn't have a type a[3][], after all.
18:36:33 <fizzie> (Array element type can't be incomplete.)
18:36:55 <fizzie> Vorpal: The power cable from the transformer to the laptop has one at the transformer end.
18:37:11 <kmc> mm, because it has to know how big it is
18:37:15 <fizzie> I mean, this laptop; not some generic "the laptop".
18:37:55 <Vorpal> fizzie, I think the hdd one has the core on the HDD end
18:38:18 <fizzie> I wonder if that matters. (Am no electroman.)
18:38:51 <kmc> so a float[4][5] is 20 contiguous floats... but a float[4][*] is four pointers to separate VLAs?
18:38:56 <Vorpal> fizzie, hm I think windows is ignoring the boot flags I set...
18:39:03 -!- nooga_ has joined.
18:39:07 <Vorpal> in fact bcdedit appears screwy on this computer
18:39:14 -!- nooga has quit (Ping timeout: 252 seconds).
18:39:19 <Vorpal> I have to explicitly give it the path to the bcd file for it to find it
18:39:38 <Vorpal> very strange
18:39:51 <fizzie> kmc: float[4][*] is a variably modified type, but it's still 4*(something) contiguous floats, and the actual function definition needs to have an actual expression there to specify (something).
18:40:15 <kmc> ah i see
18:40:26 <kmc> can that depend on previous parameters?
18:40:29 <fizzie> Yes.
18:40:35 <kmc> int f(int n, float a[4][n])
18:40:38 <kmc> wow dependent types
18:41:37 <fizzie> There are more restrictions for variably modified types than for regular types; can't have them at file scope and so on.
18:42:36 <fizzie> They also make it possible for sizeof expressions to have side effects, something that wasn't possible earlier.
18:42:49 <kmc> yikes
18:42:53 <kmc> which effects are those?
18:42:59 <Vorpal> which language?
18:43:15 <fizzie> C. Well, C99 and later.
18:43:16 <Deewiant> sizeof(int[printf("foo\n")]) and/or the like
18:43:27 <fizzie> sizeof (int[i++]) too.
18:43:35 <Vorpal> ah
18:43:48 <kmc> ok, sure
18:44:02 <kmc> but is it possible for the effects to be not define as part of the sizeof expression
18:44:30 -!- atriq has joined.
18:44:37 <fizzie> Probably not; once you do int f[foo("bar")]; I don't think "sizeof f" is allowed to re-evaluate foo("bar").
18:44:46 <fizzie> There's also a rule that the side effects can happen, but don't need to happen, if their result is not needed for computing the result of the sizeof.
18:45:06 <kmc> apparently you can also do void f(double a[restrict][5])
18:45:22 <fizzie> The qualifiers-in-[] is kind of funny-looking, yes.
18:45:22 <kmc> which means that a is passed by restricted pointer, I guess
18:46:35 <fizzie> But anyway sizeof (int (*)[i++]) is allowed but not required to increment i, since even though it's a variably modified type, the size of the array is not relevant for computing the size of the pointer.
18:46:42 <kmc> mm
18:47:40 <Vorpal> hm I think windows is getting either lagged by interrupts or IO for the period 2 to 3 minutes after boot. I had this issue for some time
18:47:53 <Vorpal> but never managed to pull up process explorer before during that period
18:48:10 <kmc> i feel like int a[static 5] was probably added for some super specific reason
18:48:15 <fizzie> 20:48 <fizzie> ,cc int i = 1, j = 1; size_t s = sizeof (int[i++]), t = sizeof (int (*)[j++]);
18:48:18 <fizzie> 20:48 <candide> fizzie: <no output: i = 2; j = 1; s = 4; t = 8>
18:51:19 <kmc> the alternative syntax of "double (* restrict a)[5]" also looks pretty weird
18:51:39 -!- nooga_ has quit (Ping timeout: 260 seconds).
18:53:58 <fizzie> In C99, the use of the static keyword in: [... double a[static 10], double b[static 10] ...] guarantees that both the pointers a and b provide access to the first element of an array containing at least ten elements. The static keyword also guarantees that the pointer is not NULL and points to an object of the appropriate effective type. It does not, however, guarantee that a and b point to ...
18:54:04 <fizzie> ... unique, non-overlapping objects. The restrict keyword is used for that purpose as in: [... double a[static restrict 10] ...] -- This is information that an optimizer can use, for example, to unroll the loop and reorder the loads and stores of the elements referenced through a and b."
18:54:09 <fizzie> Is all that the rationale says about it.
18:54:28 <fizzie> Loading elements "in advance" is also what I sort of thought of.
18:55:18 <fizzie> Though I suppose regular static analysis should also show that the code is going to load those ten elements in any case, in which case it'd be also legal.
18:56:18 <fizzie> Okay, the example is void fadd(double a[static restrict 10], const double b[static restrict 10]) { int i; for (i = 0; i < 10; i++) { if (a[i] < 0.0) return; a[i] += b[i]; } return; }
18:56:19 <Vorpal> fizzie, wait, what does the static keyword do in that position?
18:56:57 <fizzie> I guess in that case without static you couldn't preload all the elements, just in case a didn't have that many elements but there was a -1.0 before it ended.
18:57:10 <fizzie> Vorpal: "If the keyword static also appears within the [ and ] of the array type derivation, then for each call to the function, the value of the corresponding actual argument shall provide access to the first element of an array with at least as many elements as specified by the size expression."
18:57:26 * Vorpal tries to parse that
18:58:21 <Vorpal> fizzie, so it means you say it must be at least that size?
18:58:24 <Vorpal> hm
18:58:25 <fizzie> Yes.
18:58:28 <fizzie> Without static it would be legal to do double a[5] = {1, 2, 3, 4, -1}; double b[10] = {1, 2, 3, 4}; fadd(a, b); since the function actually only accesses up to a[4] and b[3].
18:58:45 <Vorpal> does GCC do anything with this info btw?
18:58:48 <fizzie> But then the optimizer couldn't assume there are always at least 10 elements and reorder the accesses.
18:58:52 <fizzie> I have no idea.
18:59:02 <fizzie> Perhaps I'll try the example they give in the rationale. :p
18:59:13 <Vorpal> hm
19:00:39 <fizzie> Hrm, it seems to generate identical code with or without static. :/
19:01:13 <kmc> i can imagine it being useful e.g. with vector instructions that load a bunch of data at once
19:01:15 <fizzie> The loop is fully unrolled, but there's that a[i] < 0 test before each access.
19:01:38 <fizzie> Yeah, this could've been vectorized, probably.
19:02:02 <Vorpal> dammit, I can't get the driver signing check disabling to work
19:02:11 <Vorpal> oh well I guess I will have to use that crazy thing
19:02:13 <fizzie> Though you'd also need to guarantee 16-byte alignment somehow for movapd to be legal.
19:02:23 <Vorpal> fizzie, to what degree do you actually have to deal with the ads and such?
19:03:19 <fizzie> Vorpal: Not much. The settings page has some ads at bottom and left, which you'll need to see when twiddling them.
19:03:29 <fizzie> Changing it from PS3 mode to Xbox360 emulation, for example.
19:03:38 <fizzie> But it's not going to splatter them all over the screen or anything.
19:04:02 <fizzie> It also installs a permanent tray icon for the settings.
19:04:15 <fizzie> (Possibly that's configurable; I haven't bothered since it ends up in the hidden tray icons.)
19:04:18 <Vorpal> fizzie, permanent?
19:04:19 <Vorpal> ouch
19:04:25 <Vorpal> fizzie, anything else?
19:04:29 -!- hagb4rd has quit (Quit: hagb4rd).
19:04:31 <kmc> c99 still doesn't have alignment qualifiers does it?
19:04:38 <fizzie> It's there even without the controller connected; it's that permanent.
19:04:39 <kmc> but maybe c11 does?
19:04:47 <Vorpal> stupid
19:05:13 <Deewiant> C11 does
19:05:17 <fizzie> kmc: C11 has some alignment specifiers, yes.
19:05:35 <fizzie> alignment-specifier: _Alignas ( type-name ) | _Alignas ( constant-expression ).
19:06:44 <fizzie> So you can have int32_t _Alignas (16) sse_friendly_array[8]; or something, perhaps.
19:07:03 <kmc> the famous king Alignas
19:07:23 <fizzie> Or int _Alignas (int) x; for the Deparment of Redundancy Department use case.
19:07:33 <kmc> int _Alignas(char)
19:08:11 <fizzie> _Alignas (type) is equivalent to _Alignas (_Alignof (type)).
19:09:23 <fizzie> And of course void *aligned_alloc(size_t alignment, size_t size); is there for the dynamic folks.
19:15:06 <fizzie> Have to say that C11 _Generic(x, int: fooi, double: foof)(x) is slightly prettier than the existing GCC workaround __builtin_choose_expr(__builtin_types_compatible_p(__typeof__(x), int), fooi, foof)(x) -- okay, the whole idea is a bit iffy, but still.
19:16:13 <Deewiant> They should just put full-on C++ templates in
19:17:22 <fizzie> Type-generic math library!
19:18:08 <fizzie> It even does complexities.
19:18:58 -!- Nisstyre-laptop has quit (Quit: Leaving).
19:23:42 <Vorpal> fizzie, it doesn't appear "motioninjoy" exports all axes to the OS?
19:23:55 <Vorpal> I mean the sixaxis stuff and what not
19:25:24 <fizzie> Vorpal: The tilts should be there, in PS3 mode.
19:25:45 <Vorpal> okay it seems it overlaps some axies then
19:25:48 <zzo38> The way they improve C are much difference to the ways I think they should be done.
19:26:03 <fizzie> Vorpal: left-right tilt as Rz and front-back tilt as Slider by default, apparently.
19:26:04 <Vorpal> fizzie, it doesn't track L2 and R2 separately either it appears
19:26:28 <Vorpal> fizzie, front-back seems to default to Rx for me
19:26:32 <Vorpal> which seems weird
19:26:49 <fizzie> That should be right-stick x, according to this list. Unless I've customized these options.
19:26:57 <kmc> fizzie: so is there any reason to use [*] in your prototype, rather than just using the full size expression?
19:26:58 <Vorpal> fizzie, yeah it is that as well
19:27:04 <Vorpal> fizzie, basically I have overlap
19:27:15 <kmc> maybe the size expression depends on stuff local to the file where the function is defined
19:27:17 <fizzie> And right, L2/R2 seem to go by default into z+ z-, I don't know how that works.
19:27:20 <zzo38> Some things I think GNU are going the better job, such as zero-length arrays, long long in C89, and some (but not all) of their other ideas.
19:27:28 <Vorpal> fizzie, yeah
19:27:33 <fizzie> Maybe the custom profile thing could be used to make it more sensible.
19:27:38 <Vorpal> fizzie, should be a separate axis for each?
19:27:38 -!- carado has quit (Remote host closed the connection).
19:27:47 <fizzie> Sounds like it'd make more sense, yes.
19:28:06 <Vorpal> I presume windows supports that, since it handles my flight joystick just fine
19:28:08 -!- augur has quit (Remote host closed the connection).
19:28:16 <Vorpal> and that shows up as 11 axes and 30+ buttons
19:28:33 <fizzie> Vorpal: Yeah, it could just be a deficiency in the driver.
19:28:39 <fizzie> (I haven't ever used the tilts for anything.)
19:28:43 <Vorpal> right
19:29:00 <Vorpal> I would like separate axes for the triggers though
19:29:47 <fizzie> Vorpal: The custom profile axis-dropdown has a "Dial" that doesn't seem to be used for anything in PS3 mode, you could use that for the other trigger.
19:29:55 <Vorpal> yeah
19:30:13 <Vorpal> fizzie, linux reports the pressure from each of the buttons too in jstest
19:30:21 <Vorpal> seems to be mapped to digital values here
19:30:34 <Vorpal> Axes: 0: 0 1: 0 2: 0 3: 0 4:-32767 5:-32767 6:-32767 7:-32767 8:-32767 9:-32767 10:-32767 11:-32767 12:-32767 13:-32767 14:-32767 15:-32767 16:-32767 17:-32767 18:-32767 19:-32767 20:-32767 21:-32767 22:-32767 23:-32767 24:-32767 25:-32767 26:-32767 27:-32767 Buttons: 0:off 1:off 2:off 3:off 4:off 5:off 6:off 7:off 8:off 9:off 10:off 11:off 12:off 13:off 14:off 15:off
19:30:34 <Vorpal> 16:off 17:off 18:off
19:30:50 <Vorpal> does everything have an analogue sensor on this thing?
19:30:57 <Vorpal> apart from start and select
19:31:08 <fizzie> Vorpal: Yeah, I don't quite know how that work. The custom-profile dropdowns let you select either a button or a pressure-sensitive button, but I don't know how they appear.
19:31:11 <Vorpal> and the logo
19:31:16 <Vorpal> hm
19:31:21 <fizzie> I don't think R3 and L3 have pressure-sensitivity either.
19:31:39 <fizzie> But that's about it for the exceptions.
19:31:45 <Vorpal> fizzie, actually where is the L3/R3?
19:31:54 <fizzie> Clicking down the left or right stick.
19:32:04 <Vorpal> ah
19:32:05 <Vorpal> yeah
19:32:10 <Vorpal> they sound digital
19:32:30 <Vorpal> fizzie, but yeah this thing exports too few axes
19:33:34 <zzo38> Why don't they just use MIDI?
19:33:39 <Vorpal> -_-
19:34:27 <fizzie> Vorpal: It might be partially so that Windows games don't get all confused. But I agree that the custom mode should let you just have N axes, one for each pressure-sensitive button if you like.
19:35:59 <Vorpal> also why does the controller only work with the USB3 port under windows...?
19:36:00 <Vorpal> lol
19:36:19 <Vorpal> it was the only free one so I used that, now I tried to move it but it won't work there
19:36:35 <Vorpal> oh well
19:36:38 <fizzie> There's some kind of a thing when it comes to changing ports.
19:37:09 <fizzie> You may need to jump through an extra hoop, rerun something or whatnot.
19:38:01 <fizzie> kmc: You could argue that it's better to use foo[*] since that's how it is interpreted, and if you try to use foo[3*legubniate(n,i,read_pin("G1"))+(zorked((struct p){1,2})?4:8)] in the header file for documentationary reasons, it'll just get out of sync and mislead, since nothing checks. But it's a rather weak justification. Well, except maybe if the expression really looks like *that*.
19:38:48 <fizzie> Still, I'd prefer (int n, foo[n][n]) over (int n, foo[*][*]).
19:39:06 -!- nortti has quit (Ping timeout: 240 seconds).
19:39:13 -!- nortti has joined.
19:39:58 <kmc> yeah
19:40:07 <fizzie> People who prefer [*] will probably also advocate not putting parameter names in prototypes.
19:40:12 <kmc> i think the "using a static function to compute the size" case is compelling, though
19:40:30 <fizzie> (Since int f(int, int, int, int, int, int) is clearly superior.)
19:40:37 -!- nooga has joined.
19:45:31 -!- Nisstyre has joined.
19:56:20 <soundnfury> fizzie: yeah, but everything's an int, so you don't need the prototype at all because the compiler can guess it!
19:56:30 <soundnfury> (assuming you're some kind of pre-ANSI freakazoid)
20:00:02 <zzo38> Maybe you want to use [*] or [n] in the prototype to affect optimization at the caller?
20:04:23 -!- rapido has joined.
20:05:13 <fizzie> That sounds unlikely, since the standard says you must treat [n] in a prototype as if it were replaced by [*], and can't e.g. assume it will be [n] for the function definition.
20:05:56 -!- monqy has joined.
20:14:59 <zzo38> Why is it allowed then? Does it have something to do with macros?
20:16:40 <zzo38> Which do you think is better (if either; maybe you think both are horrible), OkCupid or Internet Quiz Engine? They have many similar features but also differences; each has some things the other lacks.
20:17:19 <olsner> have you been discussing this continuously for the last 7 hours?
20:17:46 <zzo38> No. But, have you been? I doubt it.
20:19:02 <zzo38> How to I stop the mouse wheel from moving?
20:19:18 <fizzie> I don't know why the non-[*] version is allowed; but it could be just for people who think it's clearer code that way, like the mentioned parameter names for functions that are also kind of ignored.
20:19:19 <olsner> just stop spinning it
20:19:30 <zzo38> But sometimes I accidentally touch it.
20:20:06 <zzo38> fizzie: Perhaps for automatic documentation generators?
20:20:29 <zzo38> Although use with macros could be another reason.
20:27:34 <Sgeo> I think I'm about to have a long running Python script communicate with a PHP script
20:27:36 <Sgeo> God help me
20:28:04 <olsner> better than only having a PHP script, I guess
20:28:50 <atriq> Clearly the obvious solution is to use C# as an intermediary
20:29:02 <Sgeo> Or maybe I could figure out web.py and hope it works on the machine in question
20:29:27 <Sgeo> Actually, that might not even work, I can't use AJAX to communicate with a different server than the page is hosted from, right?
20:29:34 <zzo38> FILE SELECTION = SINGLE PLAYER | CUSTOM DATA | RENTAL | RANDOM | RANDOM RENTAL | DUPLICATE RANDOM | DUPLICATE RANDOM RENTAL | DRAFT | BALANCED MARSEILLAIS DRAFT | AUCTION | RENTAL AUCTION
20:35:29 -!- epicmonkey has joined.
20:37:26 <fizzie> Oh, right, of course: you need [*] in order to have prototypes with no parameter names, since you can't say [n] if you don't name n.
20:37:46 <fizzie> "A function prototype can have parameters that have variable length array types (§6.7.5.2) using a special syntax as in int minimum(int, int[*][*]); This is consistent with other C prototypes where the name of the parameter need not be specified." (C99 Rationale.)
20:38:13 <zzo38> fizzie: O, yes, otherwise n might be a constant, I guess; that part makes sense at least.
20:38:34 <Vorpal> fizzie, heh
20:39:58 <fizzie> Apparently there was also "considerable debate" about the lexical ordering rules, because currently you can write void f(double a[*][*], int n); void f(a, n) int n; double a[n][n]; { ... } using the "old-style" function definition, but you can't write a modern definition with a parameter type list, because void f(double a[n][n], int n) is erroneous.
20:40:36 <fizzie> In the end they decided extending the scope of that n to the start of the parameter list would have not been in the "Spirit of C", and they left it as it is.
20:41:12 <fizzie> "This is an unforeseen side effect of Standard C prototype syntax."
20:41:58 <fizzie> They also give the workaround: void f(double *ap, int n) { double (*a)[n] = (double (*)[n])ap; ... }
20:42:29 <fizzie> (Then you can go ahead and use a[1][2] just like the old-style definition.)
21:07:34 -!- augur has joined.
21:17:03 <zzo38> What option do you want for pokemon battle game?
21:17:36 <Arc_Koen> are you talking about an actual game, or that pokemon battle programming language idea?
21:18:32 <zzo38> No, I mean hypothetically an actual game.
21:18:58 <zzo38> I wrote a list of various idea of options which can be available.
21:19:05 <Arc_Koen> in that case, I think cool weather features could be fun
21:19:15 <zzo38> Yes, I agree; what weather features?
21:19:24 <Arc_Koen> I... don't really know
21:19:37 <Arc_Koen> something more than just "it's gonna rain for the next five turns" though
21:19:48 <Arc_Koen> maybe with temperature
21:19:49 <zzo38> I mean rule options.
21:20:05 <Arc_Koen> and humidity
21:21:05 <zzo38> I have options for time controls, team restrictions, finance, backgammon doubling cube, bag items, and various others.
21:21:39 <Arc_Koen> oh, cool
21:22:08 <Arc_Koen> the backgammon doubling cube should be a universal feature that every computer game should allow
21:22:31 <zzo38> I don't think it would work with every game
21:22:41 <Arc_Koen> no, probably not
21:25:36 <zzo38> http://zzo38computer.org/textfile/miscellaneous/pokemon_rule.txt
21:27:02 <FireFly> WHY ALL UPPERCASE?
21:27:36 <zzo38> Because I want to. Only the comments will be not all uppercase.
21:28:31 <atriq> "BANNED POKEMON [POKEMON]"?
21:28:59 <atriq> Or [BLACKLIST | WHITELIST] [POKEMON]
21:29:31 <zzo38> That may be done using "SPECIES DATABASE" rule.
21:29:50 <ais523> <Arc_Koen> in that case, I think cool weather features could be fun ← oh no you don't DARE
21:29:53 <ais523> rage rage rage
21:30:04 <ais523> seriously please no
21:30:07 <Arc_Koen> what?
21:30:28 <ais523> Arc_Koen: I'm a competitive Pokémon player
21:30:29 <zzo38> I can list weather anyways but you would be able to turn it off if you don't want weather, anyways.
21:30:34 <ais523> and weather has completely ruined the metagame
21:30:46 <Arc_Koen> don't tell me you've secretly been working on a nintendo ds pokemon game with barometer included
21:30:50 <Arc_Koen> oh, right
21:31:02 <ais523> nah, but I mean the existing weather conditions (especially rain) are completely broken
21:31:09 <ais523> because they made them too good and too easy to set up
21:31:11 <Arc_Koen> thing is, if you make up your own pokemon game, I don't think metagame matters that much
21:31:13 <ais523> and it's lead to the game being no fun as a result
21:31:21 <Arc_Koen> unless you are very good at advertising
21:31:23 <zzo38> ais523: Yes, so you would turn off the weather entirely in the server option if you want to.
21:31:36 <ais523> zzo38: yes, in fact some people play with that rule (it's called Clear Skies)
21:31:41 <ais523> but the problem is, the default settings are more popular
21:31:46 <ais523> if you have ten thousand different sets of options
21:31:49 <ais523> nobody will be able to find a game
21:32:56 <ais523> imagine chess where each player has their own personal rules for both sides of the board
21:32:58 <ais523> no games would ever happen
21:33:18 <Arc_Koen> weeeeeeeell
21:33:36 <zzo38> I think chess variants actually has a game which is like that.
21:33:53 <Arc_Koen> haha
21:34:08 <zzo38> But that is not relevant anyways. It would be the separate program, which the setting are configured by server, and it may have presets, too.
21:34:21 <Arc_Koen> you just gave me an idea for a chess variant
21:34:42 <Arc_Koen> something stratego-like: you don't know what rules your opponent is playing by
21:34:50 -!- augur has quit (Remote host closed the connection).
21:35:15 <Arc_Koen> you can see where his pieces are but not what pieces they are, so you "learn" about his rules and pieces by watching his moves
21:35:35 <zzo38> Arc_Koen: Perhaps, Chess with Different Armies, but you don't know what army has been selected by your opponent but you can narrow the possibilities?
21:35:38 <Bike> i'm pretty sure I saw that game somewhere actually
21:35:49 <Bike> it was more like stratego, a cold war themed game
21:35:49 <Arc_Koen> something like that
21:36:06 <Bike> and it came with a book where you could note down what you understood about the enemy forces
21:36:20 <nooodl> ais523: i keep forgetting you're a competitive pokémon player but that's actually neat
21:36:23 <Arc_Koen> pieces placement should be somewhat arbitrary, otherwise you could narrow it down too much
21:36:23 <Bike> because one of their pieces is a "spy" that can move in weird ways while pretending to be something else
21:36:54 <Arc_Koen> for instance you shouldn't be able to know that all his pieces are shogi-like just because you've identified one gold general
21:36:59 <zzo38> Arc_Koen: Yes it could be made like that, I guess.
21:37:10 <Bike> Arc_Koen: http://boardgamegeek.com/boardgame/2961/confusion-espionage-and-deception-in-the-cold-war found it.
21:37:18 <Arc_Koen> thank you
21:37:44 <Bike> there's a review on youtube where the guy explains most of it.
21:39:19 <zzo38> ais523: If you don't like weather, so if there is a rule option to disable weather, but what other rule option would you prefer? Is backgammon doubling cube OK?
21:39:30 <Arc_Koen> yes yes it is
21:39:37 <Arc_Koen> backgammon doubling cube is ALWAYS ok
21:39:49 <Arc_Koen> though I'm not sure what it would mean here
21:39:51 -!- augur has joined.
21:40:06 <Arc_Koen> how do you count points? the number of pokemon that have been taken out?
21:40:25 <zzo38> Arc_Koen: Battles won per match.
21:40:54 <zzo38> However, since ais523 is Pokemon player, I ask them too.
21:41:15 <Arc_Koen> "Your Blissey has used all its Rests and doesn't have much health left... quitte ou double?"
21:41:33 <Arc_Koen> "OK, quitte." *shoot blissey in the back*
21:53:28 <ais523> zzo38: the tiebreakers normally used are Pokémon remaining, total HP remaining
21:54:08 <ais523> the most obvious way to use the doubling cube, though, would be to give 1 point for a win, 0 for a loss, first to 7
21:54:11 <ais523> with the doubling cube doubling as normal
21:54:22 <ais523> oh, and you can't use it if you're 5-6 down
21:54:29 <ais523> I think this is the normal tournament backgammon rules
21:54:54 <zzo38> Yes, that is the "MATCH POINTS" option, set it to 7. To disallow use when a player has 6 points, you can enable doubling cube with Crawford rule.
21:54:56 <ais523> and it works in any 2-player zero-sum game where "win", "loss", possibly "draw" are the only outcomes
21:55:08 <ais523> zzo38: yep, I'm saying that that's the sensible way to use doubling cube with Pokémon
21:55:31 <ais523> Arc_Koen: also Blissey never runs Rest, it has Softboiled and Aromatherapy
21:55:42 <Arc_Koen> softboiled, right
21:55:44 <ais523> like, it wouldn't be an /awful/ user of Rest, but it has better
21:55:56 <zzo38> Another rule is ties stand, which is my preference. I have, however, added the other options too.
21:56:24 <Arc_Koen> hmmmm what about doubling Rest with Sleep talk
21:56:27 <Arc_Koen> or something
21:56:28 <ais523> there's quite a complicated set of tiebreaks in Pokémon, that are used in single elimination tournaments
21:56:33 <ais523> self-KO clause used to be really important, though
21:56:46 * Arc_Koen doesn't like tie breakers
21:56:50 <ais523> Arc_Koen: that was good on some mons in gen 4
21:57:10 <ais523> Arc_Koen: well the most important is that if you use a self-destructing move when there's 1 mon each, or destiny bond (which is similar), you lose
21:57:16 <Arc_Koen> yeah well I don't really want to know about gen 5
21:57:28 <Arc_Koen> three of the legendary pokemons look like Zelda characters
21:57:50 <Arc_Koen> I know, I don't like that particular tie breaker either
21:58:14 <ais523> self-ko clause makes a big difference and is pretty important
21:58:34 <Arc_Koen> and I don't see anything wrong with ties
21:58:39 <ais523> otherwise things like custap wobbuffet (which isn't currently legal because there's no way to get the custap berry) would be really good
21:58:44 <Arc_Koen> I think they should be part of the game
21:58:47 <ais523> even more than they are anyway, I think
21:58:58 <zzo38> Actually it is my preference for both that and Pokemon card, where the attacker loses and if not due to an attack then ties stand.
21:59:00 <ais523> well it's more that it can be quite easy to force a tie even when you're clearly losing
21:59:05 <Arc_Koen> not familiar with english names for berries, sorry
21:59:19 <ais523> Arc_Koen: the one that makes you always act first if on low health
21:59:25 <Arc_Koen> oh, right
21:59:47 <Arc_Koen> what do you mean there's no way to get the custap berry, then?
22:00:00 <ais523> I mean that there's no way to get the custap berry
22:00:05 <Arc_Koen> ok
22:00:16 <ais523> what else could I mean?
22:00:38 <Arc_Koen> ais523: well it's more that it can be quite easy to force a tie even when you're clearly losing << which basically means you are not that clearly losing
22:01:58 <Arc_Koen> I haven't played competitive pokemon nearly enough to really have an opinion on this, but the same argument could be used against stalemate in chess, or against any other form of tie in any other game
22:04:11 <ais523> well in chess, leaving your opponent an opportunity to stalemate themselves is considered a mistake
22:07:54 <zzo38> Unless the alternative makes your opponent win.
22:09:21 <Arc_Koen> I'm just saying that "clearly winning" depends on the rules, and "this rule is unfair because it allows for a tie in a situation where I was clearly winning" doesn't really make any sense in itself
22:17:29 -!- epicmonkey has quit (Ping timeout: 265 seconds).
22:18:34 -!- nooga has quit (Ping timeout: 260 seconds).
22:19:34 <FireFly> zzo38: is there a tie-breaking rule in the TCG? is that a somewhat new addition?
22:22:35 -!- Vorpal has quit (Ping timeout: 260 seconds).
22:29:23 -!- atriq has quit (Quit: food).
22:33:06 -!- rapido has quit (Quit: rapido).
22:34:00 <ion> Gold plated optical. http://dx.com/p/gold-plated-digital-audio-optical-fiber-toslink-cable-black-150cm-135805?item=35
22:34:35 <Arc_Koen> ais523: I haven't read the whole discussion yet so please excuse me if I say soething that has already been said, but I disagree with your iota-based example at http://esolangs.org/wiki/User_talk:Smjg
22:35:00 <Arc_Koen> in my sense it was implied that turing-completeness was related to the means of output
22:35:31 <Arc_Koen> and the language you describe is clearly not turing-complete regarding the " output
22:36:02 <Arc_Koen> (because all iota programs are semantically equivalent with regards to that output)
22:37:07 <Arc_Koen> oh, that's what Oerjan answered
22:41:59 -!- atriq has joined.
22:44:01 <kmc> wow, the local brick & mortar computer store has really got their act together wrt hobby electronics
22:44:18 <kmc> they have a bunch of different sorts of arduinos, robot parts, raspberry pi kit, tools, etc
22:44:25 <kmc> i bought a servo
22:46:38 <Arc_Koen> atriq: I was thinking about a joke language that would be an extension to deadfish and that you might like
22:47:07 <atriq> Go on?
22:47:11 <Arc_Koen> first it is to be noted that it's way more computationally powerful that deadfish, because instead of a single accumulator it has A WHOLE STACK
22:47:21 <Arc_Koen> for that reason it would be called Homestack
22:47:28 <monqy> what
22:47:30 <atriq> Pun on the comic?
22:47:36 <Arc_Koen> the stack can only host up to four elements
22:47:47 <Arc_Koen> trying to push a fifth result in the bottom element being discarded
22:48:05 <monqy> what's the joke
22:48:17 <Arc_Koen> there's no joke
22:48:21 <nooodl> hi
22:48:44 <kmc> "punchline? there is no punchline"
22:49:10 <nooodl> i believe that, keeping with the theme of people being bad at inventing names for derivative languages, it should be called a) "DeadStack" or b) "StackFish"
22:49:17 <Arc_Koen> yeah I learned that way of telling jokes from my father
22:49:35 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:49:49 <atriq> Stackfishdeadbrain
22:49:51 <nooodl> i recommend the latter because of the semi clever "stockfish" pun
22:50:00 <monqy> well if it's a joke language
22:50:04 <monqy> :{
22:50:07 <atriq> Fishstacks
22:50:31 <ion> Do you like fishsticks?
22:50:47 <atriq> No, I'm not a gay fish
22:50:49 <nooodl> Fishstacks is better
22:51:49 <nooodl> you should write a spec for this language in 30 seconds
22:52:00 <Arc_Koen> that's not a lot
22:52:05 <nooodl> GO
22:52:20 <Arc_Koen> seeing as how I'm a wikitable-freak I'd have to save the 20 last seconds for format
22:52:36 <monqy> if you set a timer and whatever you write in 30 seconds specifies your language, probably it'd be bad and nobody would understand it
22:52:44 <Arc_Koen> ok
22:52:52 <Arc_Koen> now I need to find a timer
22:55:00 <Arc_Koen> oh
22:55:14 <Arc_Koen> my phone had a timer but I set it to 30 minutes instead
22:55:22 <Arc_Koen> apparently it doesn't have seconds
22:55:33 <monqy> maybe the extra time will improve the quality of your specification
22:55:56 <Arc_Koen> fishstacks is a deadfish derivative based on a stack the stack can only hold four elements when a fifth element is pushed the bottom element is kicked out and eventually printed out to the screen. The name was originally meant to be Hpmestack but it was suggested that DeafStack or StackFish would be a better name as it is a derivative but eventually atriq came up with Fishstakc the commands are i increment d decrement p push a ne
22:55:57 <Arc_Koen> square top element.
22:56:11 <kmc> perhaps bonghits will fix your language specification
22:56:44 <Arc_Koen> DeafStack "because it has no input"
22:57:22 <monqy> i';m glad that now i can use this language to write a program?
22:57:57 <zzo38> FireFly: In Pokemon Card, I think the standard tiebreaking rule is that if one player win one way, other player win two ways, the player winning two ways wins, otherwise you play the duel with the same decks but only one side card each. My rule is that number of ways you win and so on is irrelevant; attacker loses otherwise the tie stands.
22:58:11 <Arc_Koen> yes, you can
22:58:34 <Arc_Koen> though the fact that I did not think about including a pop function during those extended 30 seconds is regrettable
22:59:36 <zzo38> FireFly: What do you prefer for tiebreaking rule? Another rule I use with Pokemon Card is overmate.
22:59:49 <Arc_Koen> what's overmate?
23:00:20 <FireFly> zzo38: Hm, I didn't know about the "winning in more ways" thing, but I'm familiar with the single-prize-card tiebreaking match thing
23:01:33 <nooodl> what was happening at "a ne\nsquare top element"
23:02:02 <zzo38> Overmate is my own rule. Normally you have overmate 0, and then add 1 for each extra side card you would pick up but you can't, add 1 if opponent's draw pile is empty, add 1 if your draw pile is empty, and add 1 if you won in two ways.
23:02:43 <zzo38> It is an extra score you earn.
23:02:47 <Arc_Koen> nooodl: I just had a weird déjà-vu feeling when you said that
23:02:47 -!- Phantom_Hoover has joined.
23:03:21 <Arc_Koen> but if the question was sincere I said "p push a new 0 s square top element"
23:03:31 <zzo38> FireFly: What I mentioned was the older rules; I don't know what the new rules say about such things.
23:03:48 <FireFly> Yeah, I haven't played in ages either
23:03:56 <nooodl> so because you forgot about "pop", p is really just "set the accumulator to zero"
23:04:36 <Arc_Koen> no, it's slightly more *cough* subtle that that
23:04:38 <zzo38> I know some things about the newer rules, and actually I prefer the older rules. I also invented additional rules which are only available in Limited.
23:05:25 <nooodl> oh i guess you have to p once at the start of your program at least
23:06:49 <Arc_Koen> well and the print function is different
23:07:28 <Arc_Koen> so when "setting the accumulator to 0" you're actually putting the previous accumulator in the output queue
23:07:50 <Arc_Koen> (did I say "stack" before? :D)
23:08:13 <nooodl> now you have to call is
23:08:21 <nooodl> "DequeFish"....
23:13:13 -!- nooga has joined.
23:20:00 -!- nooga has quit (*.net *.split).
23:20:00 -!- zzo38 has quit (*.net *.split).
23:20:00 -!- myndzi has quit (*.net *.split).
23:20:01 -!- Sanky has quit (*.net *.split).
23:20:01 -!- kmc has quit (*.net *.split).
23:23:06 <Arc_Koen> hey nooodl, do you have a user account on the wiki so that I can give you the credits you deserve?
23:23:14 <nooodl> no :(
23:24:01 <Arc_Koen> oh hey my timer just rang
23:29:19 -!- nooga has joined.
23:29:19 -!- zzo38 has joined.
23:29:19 -!- myndzi has joined.
23:29:19 -!- Sanky has joined.
23:29:19 -!- kmc has joined.
23:35:45 <nooodl> i'm guessing this should work? http://pastie.org/5368841
23:35:59 <nooodl> it's kind of smart ass-y
23:37:53 <monqy> what if you get accum up to anything above 16 then square it
23:38:16 <nooodl> that's
23:38:21 <nooodl> "the classic deadfish issue"
23:38:25 <monqy> oh
23:38:37 <monqy> how classic⇧
23:38:39 <nooodl> http://esolangs.org/wiki/User:Nooodl
23:38:55 <monqy> Heading text
23:40:18 <nooodl> monqy: you should write something on my user page
23:40:31 <nooodl> (not user talk. user)
23:40:32 <monqy> but what do i write
23:40:54 <nooodl> something about heading text clearly
23:41:24 -!- copumpkin has joined.
23:42:00 <monqy> ok i wrote something
23:42:04 <monqy> refresh your userpage
23:42:07 <monqy> and be amazed???
23:42:21 <nooodl> good edit
23:42:39 <nooodl> good edit message
23:44:41 <nooodl> http://esolangs.org/w/index.php?title=User:Monqy&action=history http://esolangs.org/w/index.php?title=User:Nooodl&action=history
23:46:59 <Arc_Koen> nooodl: I'm not sure your implementation works properly with output, but I have never seen that language before so I can't really tell
23:50:34 -!- nooodl has quit (Ping timeout: 246 seconds).
←2012-11-11 2012-11-12 2012-11-13→ ↑2012 ↑all