←2012-01-25 2012-01-26 2012-01-27→ ↑2012 ↑all
00:01:20 -!- calamari has joined.
00:07:13 -!- augur has joined.
00:31:12 -!- cheater has joined.
00:32:44 -!- NihilistDandy has joined.
00:39:03 -!- lambdabot has joined.
00:39:19 <oerjan> yay
00:39:25 <oerjan> @hoogle Maybe a -> m a
00:39:25 <lambdabot> Data.Monoid First :: Maybe a -> First a
00:39:25 <lambdabot> Data.Monoid Last :: Maybe a -> Last a
00:39:27 <lambdabot> Data.Maybe maybeToList :: Maybe a -> [a]
00:39:38 <oerjan> @hoogle+
00:39:39 <lambdabot> Data.Maybe fromJust :: Maybe a -> a
00:39:39 <lambdabot> Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a
00:39:39 <lambdabot> Data.Maybe fromMaybe :: a -> Maybe a -> a
00:39:54 <oerjan> @hoogle+
00:39:55 <lambdabot> Data.Generics.Aliases unGM :: GenericM' m -> forall a. Data a => a -> m a
00:39:55 <lambdabot> Data.Foldable toList :: Foldable t => t a -> [a]
00:39:55 <lambdabot> Data.Maybe catMaybes :: [Maybe a] -> [a]
00:40:51 <ion> What are you looking for?
00:40:51 <oerjan> @hoogle (Foldable t, MonadPlus m) => t a -> m a
00:40:52 <lambdabot> Data.Foldable toList :: Foldable t => t a -> [a]
00:40:52 <lambdabot> Data.Foldable find :: Foldable t => (a -> Bool) -> t a -> Maybe a
00:40:52 <lambdabot> Data.Foldable foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
00:41:14 <NihilistDandy> Ha. Hoogle+
00:41:20 <oerjan> @hoogle+
00:41:21 <lambdabot> Data.Foldable foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
00:41:21 <lambdabot> Data.Foldable maximumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
00:41:21 <lambdabot> Data.Foldable minimumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
00:42:17 <oerjan> ion: maybe mzero return, essentially
00:42:18 <oerjan> except with a shorter name
00:44:58 -!- calamari has quit (Quit: Leaving).
00:45:41 -!- augur has quit (Remote host closed the connection).
01:05:29 -!- oerjan has quit (Quit: Goof night).
01:07:16 -!- ais523 has quit (Remote host closed the connection).
01:10:37 -!- augur has joined.
01:13:49 -!- augur has quit (Remote host closed the connection).
01:16:37 -!- augur has joined.
01:16:42 -!- augur has quit (Remote host closed the connection).
01:18:48 -!- pir^2 has quit (Quit: ∅).
01:23:33 -!- DCliche has joined.
01:24:22 -!- augur has joined.
01:25:56 -!- augur has quit (Remote host closed the connection).
01:27:04 -!- Klisz has quit (Ping timeout: 248 seconds).
01:29:03 <Sgeo> kallisti, arpboat
01:30:34 <kallisti> thunklankles
01:42:10 -!- augur has joined.
01:46:38 -!- augur has quit (Ping timeout: 245 seconds).
01:57:26 -!- mtve has joined.
02:03:58 -!- NihilistDandy has quit (Quit: Textual IRC Client: http://www.textualapp.com/).
02:09:54 -!- pikhq_ has joined.
02:10:11 -!- pikhq has quit (Ping timeout: 248 seconds).
02:12:45 -!- augur has joined.
02:13:45 -!- augur has quit (Remote host closed the connection).
02:17:33 -!- DCliche has quit (Quit: SLEEP, GLORIOUS SLEEP).
02:19:35 -!- pikhq_ has quit (Ping timeout: 252 seconds).
02:19:36 -!- pikhq has joined.
02:27:04 -!- Klisz has joined.
02:39:03 <kallisti> Gregor: what do you use to draw graphics with websplat?
02:39:14 -!- Klisz has quit (Ping timeout: 240 seconds).
02:42:03 -!- Jafet has joined.
02:50:14 -!- _0x5f375a86 has joined.
03:17:15 -!- azaq23 has joined.
03:17:27 -!- azaq23 has quit (Max SendQ exceeded).
03:17:57 -!- azaq23 has joined.
03:57:15 -!- augur has joined.
03:58:19 -!- augur has quit (Remote host closed the connection).
03:58:44 -!- augur has joined.
05:32:15 <kallisti> perl 6 regex is so good.
05:35:26 <kallisti> it actually builds a tree instead of a flat list...
05:35:29 <kallisti> with capture groups
05:35:41 <kallisti> so you can actually, uh, parse things.
06:06:25 <pikhq> Oh, so Perl 6 *embraces* the TC-ness of Perl regex
06:09:25 <kallisti> kind of
06:09:33 <kallisti> it basically just completely overhauls the syntax
06:09:41 <kallisti> and allows you to split up a regex into... named identifiers
06:09:51 <kallisti> so it's more like actually defining a grammar.
06:10:17 <kallisti> also it has "grammars" which are essentially regex classes, so you can inherit rules from other grammars.
06:12:11 <kallisti> it adds many more options to make it handle case, spaces, and unicode marks better.
06:12:13 <pikhq> The thing is, Perl 5 regex was already capable of parsing things.
06:12:22 <kallisti> yes but not as well I imagine.
06:12:27 <pikhq> Just not sanely.
06:12:34 <kallisti> I meant that now you can actually get a syntax tree
06:12:40 <pikhq> Yes.
06:12:51 <pikhq> Perl 5 regex was perfectly TC. :)
06:13:24 <kallisti> the entire perl 6 gammar is defined as a grammar in perl 6.
06:14:42 <kallisti> this means you can subclass. I imagine if perl 6 uses source filters then you can plug in your overriden grammar at compile-time and redefine the language syntax. but I'm not sure if source filters still exist.
06:15:35 <kallisti> so I think if a) Perl 6 ever solidifes b) it has a decently efficient implementation
06:15:51 <kallisti> then perl will once again be the language of choice for text processing.
06:16:25 <kallisti> it even handles Unicode sanely. you can check string length by bytes, codepoints, or graphemes. There is no "length"
06:18:30 <kallisti> also: implicit lazy evaluation of lists, explicit lazy evaluation of anything else.
06:23:48 <pikhq> Also monads.
06:23:56 <kallisti> oh?
06:23:57 <kallisti> okay.
06:24:07 <pikhq> I seem to recall the Pugs devs getting it snuck in.
06:24:27 <pikhq> (Pugs being an early Perl 6 implementation, in Haskell.)
06:24:50 <pikhq> (it may not even really work anymore; I mean, jeeze, it was written for *Hugs*)
06:30:48 <kallisti> well it would be pretty simple to implement in perl anyway
06:31:02 <kallisti> *Perl 6
06:31:04 -!- azaq23 has quit (Remote host closed the connection).
06:31:10 <pikhq> Also pretty pointless.
06:31:44 <pikhq> A lot of the power of monads in Haskell, IME, is the type discipline preventing you from making certain errors.
06:52:46 <kallisti> yes
06:53:19 <kallisti> another benefit is generality between many methods of computation.
06:54:30 <kallisti> hmmm, what's a project I could apply Bayesian inference to?
06:56:07 <pikhq> Spam filtering.
06:56:11 <pikhq> </uncreative>
06:56:39 <kallisti> does a bayesian filter use a bayesian inference?
06:56:43 <kallisti> I guess that would, uh, make sense.
06:56:56 <pikhq> Yes, that's all they do.
06:57:05 <pikhq> Fairly naive implementation, but nevertheless.
06:57:09 <kallisti> but I've learned not to associative things together because they're named after the same person.
06:58:17 <pikhq> A Bayesian filter bsically just classes a message as spam or not spam by performing Bayesian inference on each unique word in the message, eventually getting you the probability the message is spam given the words it contains.'
06:58:31 <kallisti> I answered a request for a programming job recently that wanted to create a program that assists diagnosis via "inductive reasoning" with "prolog"
06:58:47 <kallisti> to what extent either of those things will be used depends on what happens.
06:58:48 <pikhq> Generally, the initial prior is 0.5, instead of the prior actually matching to real-world spam rates, 0.8.
06:59:02 <kallisti> ah
06:59:07 <kallisti> well that's safer, at least.
06:59:17 <kallisti> better to have /some/ spam than lose important messages.
06:59:49 <pikhq> You could get the same effect by simply setting your threshold high enough.
07:00:01 <kallisti> ah true
07:00:01 <pikhq> Say, consider it spam if there's a 0.99 probability of being spam.
07:00:08 <pikhq> Oddly enough, this technique was first devised by Paul Graham. Yes, that Paul Graham.
07:00:08 <kallisti> that's a good threshold
07:00:15 <kallisti> hm a more sophisticated method could analyze grams in the message.
07:00:39 <pikhq> Yeah, that's done by a few of them.
07:01:02 <pikhq> Not really *necessary*, though. Even the naive classification works rather well, particularly if you feed it headers.
07:04:08 <kallisti> hmm, a hybrid approach of sorts could be good. instead of analyzing the probability of a gram triggering a spam message you could look at each individual word but then scale it upwards when it appears in frequently occuring grams.
07:04:13 <kallisti> not sure what the exact math would look like.
07:04:48 <kallisti> well, I doubt that's necessary either
07:05:01 <kallisti> but I could see a gram based filter missing things a word based filter might catch.
07:07:02 <pikhq> Who says you need to only look at grams?
07:07:11 <kallisti> no one.
07:07:22 <pikhq> You can just keep throwing information at Bayes until it sticks. :)
07:07:37 <kallisti> I wonder what gmail's bayesian filter does.
07:08:20 <pikhq> The only particularly notable thing I recall hearing about it (there's probably more, but I'm not aware of it) is they OCR images.
07:12:50 <kallisti> I wonder if legitimate businesses in third world countries have difficulty emailing people.
07:13:36 <kallisti> lol one of the subjects is "My second time of writing you" almost as though the spam filter will be like "oh okay, eveything is fine then"
07:14:07 <pikhq> If you're updating on headers, not very likely.
07:14:59 <pikhq> You can get things like P(~spam|FROM: legit_business@thirdworld.com)=0.99999
07:15:00 <pikhq> :)
07:18:12 <kallisti> another good idea would be to compile data on what is not spam and then balance the probability of the bayesian inference with that.
07:19:24 <pikhq> What you usually do is train on a *email* corpus.
07:19:44 <pikhq> If you're really clever, constantly update your database on the end-user's personal email corpus.
07:24:07 <Sgeo> kallisti, arpbogot
07:25:44 <pikhq> "Emacs might be the only program in the world that would see a performance improvement from rewriting in CL."
07:25:47 <pikhq> XD
07:49:35 -!- monqy has quit (Quit: hello).
08:02:56 -!- GreaseMonkey has quit (Quit: The Other Game).
08:38:23 -!- Frooxius_ has joined.
08:41:06 -!- Frooxius has quit (Ping timeout: 252 seconds).
08:41:20 -!- Frooxius_ has changed nick to Frooxius.
08:49:12 -!- ais523 has joined.
09:30:58 -!- augur has quit (Ping timeout: 252 seconds).
10:07:20 -!- itidus20 has joined.
11:51:03 -!- oerjan has joined.
12:09:52 <oerjan> <kallisti> I wonder if legitimate businesses in third world countries have difficulty emailing people. <-- http://www.irregularwebcomic.net/comic.php?current=72
12:19:01 -!- cswords__ has quit (Read error: Connection reset by peer).
12:19:49 <ais523> you know how silly Yahoo! Answers can get? What about Microsoft Answers? http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/windows-calculator-gives-wrong-answer/c94c2aa5-03a0-42f7-82ee-899800355613
12:20:13 <ais523> the accepted answer is only vaguely useful; the first non-accepted answer is really ridiculously bad
12:56:15 <oerjan> why is the channel +t
12:57:04 -!- ChanServ has set channel mode: +o ais523.
12:57:11 -!- ais523 has set channel mode: -t.
12:57:17 -!- ais523 has set channel mode: -o ais523.
12:57:19 <ais523> it isn't
12:57:39 <oerjan> 16:06:35: -!- kornbluth.freenode.net changed the modes of #esoteric: +t
12:58:09 <oerjan> it was after a big netsplit, i guess something went awry
12:58:13 -!- oerjan has set topic: Now open for Vampires | Take a trip to see our Castles | Get your esoblood here! | New edition of glorious optators' biography to use crimson ink | Based on the power of immortality! | Why is the spotted marsh elliott never seen in daylight? | http://codu.org/logs/_esoteric/.
12:58:37 <ais523> bleh, "spotted marsh elliott spotted in other marsh" was both informative and hilarious
12:58:57 <oerjan> O KAY
12:59:35 -!- oerjan has set topic: Now open for Vampires | Take a trip to see our Castles | Get your esoblood here! | New edition of glorious optators' biography to use crimson ink | Based on the power of immortality! | Spotted marsh elliott spotted in other marsh | http://codu.org/logs/_esoteric/.
13:00:38 <oerjan> (_very_ slightly inspired by current iwc poll)
13:03:31 <itidus20> not very _slightly_
13:03:51 <oerjan> _those_ _may_ be _synonyms_
13:38:28 -!- Sgeo has quit (Ping timeout: 240 seconds).
13:38:59 -!- Sgeo has joined.
14:28:38 -!- derdon has joined.
14:49:38 -!- ais523 has quit (Ping timeout: 245 seconds).
14:50:51 -!- oerjan has quit (Quit: leaving).
15:16:44 -!- Ngevd has joined.
15:16:57 <Ngevd> Hello
15:26:37 -!- Ngevd has quit (Read error: Connection reset by peer).
15:27:45 -!- Ngevd has joined.
15:32:36 -!- Taneb has joined.
15:35:16 -!- Ngevd has quit (Ping timeout: 252 seconds).
15:36:04 -!- Taneb has quit (Read error: Connection reset by peer).
15:36:25 -!- Taneb has joined.
15:48:26 -!- Taneb has quit (Read error: Connection reset by peer).
15:49:32 -!- Taneb has joined.
15:51:03 -!- azaq23 has joined.
15:51:12 -!- azaq23 has quit (Max SendQ exceeded).
15:51:37 -!- azaq23 has joined.
15:55:54 -!- Taneb has quit (Read error: Connection reset by peer).
16:12:59 -!- derdon_ has joined.
16:16:19 -!- derdon has quit (Ping timeout: 260 seconds).
16:44:24 -!- pikhq_ has joined.
16:44:25 -!- pikhq has quit (Ping timeout: 248 seconds).
16:48:44 -!- Phantom_Hoover has joined.
17:01:55 -!- ais523 has joined.
17:24:03 <fizzie> Funky, one of the C11 additions is a standard _Noreturn keyword (and <stdnoreturn.h> which defines 'noreturn' as that) to do what GCC function attribute ((noreturn)) does.
17:25:20 <fizzie> longjmp, abort, exit, _Exit, quick_exit and thrd_exit have also gotten _Noreturn's in their declarations.
17:25:29 <Gregor> I love the hideously ugly new keywords.
17:25:50 <fizzie> The "ugly + a deuglification header" is kind of what they do.
17:27:20 <ais523> bleh, you know what's bizarre and annoying? GPU scheduler bugs
17:37:59 <oklofok> http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/windows-calculator-gives-wrong-answer/c94c2aa5-03a0-42f7-82ee-899800355613 well this is obviously a joke that everyone's in on
17:41:23 <ais523> quite possibly the thread became troll-dominated after a while
17:44:27 <oklofok> no one even says "you people are retarded" or "troll", i don't get it
18:23:08 -!- ais523_ has joined.
18:23:23 -!- ais523 has quit (Disconnected by services).
18:23:25 -!- ais523_ has changed nick to ais523.
18:23:46 <Phantom_Hoover> Floating-point bug or what?
18:23:46 <lambdabot> Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them.
18:26:48 <oklofok> i suppose.
18:27:30 <oklofok> sqrt 4 is rounded 2 in the calculator but when you subtract 2, it's just a very small number.
18:28:49 <ais523> oklofok: the point is that it rounds in the wrong direction
18:29:08 <oklofok> ?
18:29:19 <oklofok> it should round 2 to 1?
18:29:20 <oklofok> or what
18:29:43 <ais523> it should round sqrt(4) to 2 exactly, as it's the closest float to the true sqrt of 4
18:29:50 <ais523> it shouldn't output 2-and-a-bit
18:30:13 <oklofok> for what value of "should"? squares should have exact square roots?
18:30:36 <oklofok> or everything should square root to best floating point approximation possible?
18:31:07 <ais523> oklofok: everything should square root to the nearest floating point to the true value
18:31:13 <ais523> all maths coprocessors can do that nowadays
18:32:02 <oklofok> so the calculator should use the square root operator of the maths coprocessor?
18:32:47 <oklofok> i don't get how that value is any worse than 0
18:33:39 <ais523> oklofok: because it shows that the rounding was done incorrectly
18:33:51 <ais523> 1/3*3-1 not being 0 I'm OK with
18:34:00 <ais523> but, say, 1/4*4-1 not being 0 I wouldn't be OK with
18:34:16 <oklofok> well that's silly
18:34:23 <ais523> because 0.25 can be represented exactly as a float, or a decimal, or pretty much all other reasonable internal representations
18:34:59 -!- _0x5f375a86 has changed nick to pir^2.
18:35:03 <oklofok> so your opinion is it's important that the windows calculator shows that it uses binary internally
18:35:42 <ais523> oklofok: well, maybe not for 0.25
18:35:50 <ais523> but I do think it's important that it can correctly represent integers
18:35:52 <ais523> which sqrt(4) is
18:36:43 <oklofok> soooooo you think squares should have exact square roots? sounds useless.
18:37:00 <ais523> I think all numbers should have maximally accurate square roots
18:37:11 <ais523> and that the maximally accurate representation of 2 should be 2
18:37:43 <oklofok> okay, that i can live with.
18:38:09 <oklofok> i still don't see how you can claim that's a bug with a straight face. of course it's slightly amusing.
18:38:27 <oklofok> actually
18:38:37 <oklofok> i suppose he claimed it with an amused face
18:38:47 <oklofok> no it was :s
18:38:59 <oklofok> still pretty far from straight :D
18:51:45 -!- pir^2 has quit (Quit: bye).
19:01:06 <Gregor> (I am making a conscious choice not to respond to the last line in the obvious way)
19:01:39 <oklofok> why would you respond to someone leaving, they won't see you anyway
19:01:45 <Gregor> ...
19:01:46 <oklofok> erm
19:01:46 <oklofok> it
19:01:47 <Gregor> >_<
19:02:10 <oklofok> you know that looks a bit like this limit set i saw just the other day
19:07:08 -!- augur has joined.
19:14:21 -!- azaq23 has quit (Quit: Leaving.).
19:23:46 -!- monqy has joined.
19:33:43 -!- Frooxius has quit (Quit: ChatZilla 0.9.88-rdmsoft [XULRunner 1.9.0.17/2009122204]).
19:40:53 -!- Frooxius has joined.
19:47:56 <fizzie> oklofok: Also did you hear you're the capital of Finland.
19:48:21 <oklofok> i am?
19:48:32 <fizzie> oklofok: According to ais523, at least.
19:49:21 <ais523> fizzie: no, I immediately realised that the capital of finland wasn't "oklopol" after it was my first thought on the subject
19:49:34 -!- oklofok has changed nick to oklopol.
19:49:35 <ais523> but it's still worrying that it was the first option I considered, rather than, say, Helsinki
19:49:36 <fizzie> oklofok: http://codu.org/logs/log/_esoteric/2012-01-25#224322ais523
19:49:54 <oklopol> yep noticed
19:50:06 <oklopol> i would make a great capital
19:50:24 <fizzie> Also I always just manually type those anchors, I never remember that you can just click on the nickname.
19:58:27 -!- sebbu2 has joined.
19:58:27 -!- sebbu2 has quit (Changing host).
19:58:28 -!- sebbu2 has joined.
20:01:48 -!- sebbu has quit (Ping timeout: 240 seconds).
20:06:15 <Sgeo> ...Google apparently thinks I'm into clothes
20:15:37 -!- FireFly has quit (Changing host).
20:18:30 -!- augur has quit (Remote host closed the connection).
20:23:38 -!- oerjan has joined.
20:27:04 -!- Ngevd has joined.
20:27:26 <Ngevd> Hello!
20:27:47 <ais523> that's a very enthusiastic hello
20:28:04 <Ngevd> I've got Fruit Pastilles
20:28:08 <oklopol> i hate humans
20:28:11 <Ngevd> :)
20:28:20 <oklopol> wish i had fruit pastilles
20:29:30 <fizzie> Fruit pustules.
20:33:20 <oklopol> fruit postulates
20:33:36 <oerjan> <Sgeo> ...Google apparently thinks I'm into clothes <-- i think that's a natural assumption. unless you're like oklopol and go naked all the time.
20:34:10 <fizzie> Fruit apostles.
20:34:22 <Ngevd> I wish I had fruit pastilles
20:34:42 <fizzie> Fruit, past illest.
20:34:44 <oklopol> fur root apostles
20:37:50 <oklopol> fur root pause tools
20:39:25 <ais523> hmm, our latest spambot is trying to persuade us that writing a dream you've had down causes it to become true
20:39:29 <ais523> I'm, umm, not sure I believe it
20:39:35 <Ngevd> fur root paws jewels
20:40:42 <oklopol> four route paw schedules
20:40:54 <fizzie> How do you have a dream down? ...oh, *write down*! Never mind.
20:42:32 <oerjan> writing a dream you've had down the garden path
20:43:32 <Ngevd> The true path to success
20:47:13 <fizzie> Cat Face, he's got a big cat's face, he's got the body of a cat and the face of a cat, and he flies through the air, 'cause he's got a cat face, Cat Face.
20:47:16 <fizzie> Sorry, I'v just got that song stuck in my head, thought writing it down the metaphorical garden path might help.
20:48:05 <oklopol> last night a jumped in the air and got stuck there
20:48:07 <oklopol> couldn't get down
20:48:26 <oklopol> and i had this 5 meter long metal rod and at the other and was a bmx bike
20:48:51 <oklopol> and i tried to turn the rod so that when i eventually landed i'd safely land on the bike (wut) but i couldn't move it
20:53:19 <fizzie> "The scene quickly switches to a small, red map of Norway, with text on the side stating that Norway's population is crab, that it has no tigers or lions, and that its main export is tree. Below this more text declares that "TREE<LIONS==KENYA WINS". It also claims that Norway should be called Snoreway. A new map replaces it shortly afterward,
20:53:25 <fizzie> showing the African continent with certain countries colored in and a protruding Kenya. The 3D Kenya moves up and down with the music as an orange dotted line extending from it shows, according to text at the side, the line to ensure the best coverage if Kenya were to urinate all over Norway physically, as well as metaphorically (however, as noted, this is a rare occurrence)."
20:53:31 <fizzie> I... is this really encyclopedic? I mean, sure, that's what happens, but...
20:55:19 <oerjan> that's a lie. our main export is oil, which as everyone knows is made from dinosaurs, thus we win.
20:55:41 <fizzie> You Snorewegian.
21:02:21 -!- Taneb has joined.
21:02:21 -!- Ngevd has quit (Read error: Connection reset by peer).
21:03:04 -!- Taneb has changed nick to Ngevd.
21:23:00 -!- derdon_ has quit (Remote host closed the connection).
21:23:25 -!- derdon has joined.
21:28:01 -!- derdon has quit (Ping timeout: 252 seconds).
21:31:07 -!- augur has joined.
21:39:50 -!- pikhq has joined.
21:39:56 -!- pikhq_ has quit (Ping timeout: 252 seconds).
22:18:37 -!- yours_truly has joined.
22:19:15 -!- Nisstyre has quit (Ping timeout: 240 seconds).
22:22:18 -!- yours_truly has quit (Client Quit).
22:23:19 -!- Ngevd has quit (Quit: Goodbye).
22:26:38 -!- Nisstyre has joined.
22:30:04 -!- jix has quit (Remote host closed the connection).
22:48:37 -!- jix has joined.
23:14:55 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
23:16:11 -!- ais523 has quit (Remote host closed the connection).
23:20:07 -!- augur has quit (Remote host closed the connection).
23:58:01 -!- oerjan has quit (Quit: Good night).
←2012-01-25 2012-01-26 2012-01-27→ ↑2012 ↑all