« first day (1993 days earlier)      last day (1187 days later) » 
00:00 - 21:0021:00 - 23:00

12:00 AM
RELOAD!
[rubberduck-vba/Rubberduck] 3 commits. 3 opened issues. 4 issue comments. 1036 additions. 16 deletions.
[Minesweeper] Games Played: 119, Bombs Used: 79, Moves Performed: 16992, New Users: 17
 
12:12 AM
Never thought I'd say this but: The more I use code the less I like working with spreadsheets.
 
 
8 hours later…
8:31 AM
> You're right, he wasn't compiling.
I had not tried to do it before finding the error.
 
8:41 AM
Can anyone point me to a large (200K) VBA file (not a small number of very long strings)? I'm trying to stress-test the visualizer models and view-models against large parse trees.
@M.Doerner Care to elaborate?
@IvenBach I'm just wondering: by what logic did the author promote the project as working with "VB.Net, VBA and VBScript", but not C# or .NET languages in general?
 
9:18 AM
> You're right, he wasn't compiling.
I had not tried to do it before finding the error. My fault.
 
 
1 hour later…
10:26 AM
> Considering that the code did not compile, we're not expecting Rubberduck to resolve it correctly. Glad we could find the issue :)
 
 
2 hours later…
12:39 PM
The ongoing saga of weird stuff...
System Scheduler kicked off my scheduled job at 1am this morning, but somehow, the parameter didn't get passed in.
Several manual run attempts & it still wouldn't pass it in. (I log the passed parameter, I got nothing but NULL). Opened the Prod .accdb by hand, looked at the code, changed LogManager.Log DebugLevel, "Parameter(s): " & Command to LogManager.Log DebugLevel, "Parameter(s): " & Command$ (note the typed Command$) and it worked.
that was just the logging line, not the actual "take action if there a parameter here" line.
le sigh...
 
 
1:19 PM
The "new build" nag notification for dev builds is really nice, but frankly, I don't care about a French translation update. (no offense to you French speakers, oui, non, Ou es la WC? is the extent of my French).
Is it possible to get just one notification and if I chose not to install, I don't get notified until the next build is out?
(I know that's a horribly bad spelling - it's been ages since I took French in junior high school. Please forgive me!)
 
1:31 PM
@FreeMan So you want builds labeled as topical or core, and the ability to say yes or no to topical aspects?
 
@Cyril I think it's more a "don't remind me for this build again."
What we should do is a 3-way view. Install, Remind me Later, and Don't Remind me Again.
 
so like old windows KB updates: "which ones do you want to install?" then you do the checkboxes and it createes a library of KBs and preferences, e.g., to not install that one in the future (but leaves it in the box as greyed out and italicized... just in case)
 
Where the last option would set a flag in the settings "ignore build X" and only update if the new version doesn't match that.
Well, not so much as just a "don't prompt me to install new version X".
 
not sure if you all have different component installs to your updates, e.g., you list like notepadd++ does where "french" is a theme and doesn't need updated, but library references for python are core and should be installed
i'm following you, now, hosch
 
@Hosch250 Yeah, that. Hosch speaks FreeManish
 
1:37 PM
No, @Cyril - we don't really have a plugin system
 
@Cyril TBH, that wouldn't be a bad idea.
 
at least not yet. it's an idea that's been floating
 
It was considered at one point; I don't know what the thought on it is now.
 
I think it's more that it's best to wait until v3 or somethign like that
 
plugins actually got mentioned again yesterday, so I guess that means it's still back on the table
:)
 
1:38 PM
Mention ≠ Hold your breath
 
^
 
Case in point: Avalon
 
♫ and the wind whispers... Avalon ♫
You type faster, but mine was fancier.
 
look at laravel; "we'll get that unit test section updated soon" but only works for a few specific keywords
 
lol
 
2:08 PM
Huh, I just looked up through the roof window at work and saw the top of a cell tower.
It's kind of interesting from this perspective.
 
> **Rubberduck version information**
The info below can be copy-paste-completed from the first lines of Rubberduck's log or the About box:
```
Version 2.4.1.5200
OS: Microsoft Windows NT 10.0.17134.0, x64
Host Product: Microsoft Office 2016 x64
Host Version: 16.0.4873.1000
Host Executable: MSACCESS.EXE
```

**Description**
The `Copy to Clipboard` icon on the _Code Inspections_ window copies text to the clipboard, but it isn't the currently selected inspection, the current group of ins
 
@Hosch250 is bored at work...
 
@Hosch250 which type of cell tower? i feel like extenders are more interesting than the initial tower, as they have (typically) 10 additional transistors and an additional dual-power source as opposed to the digi-plate (dual power source with one large transistor and a rotational cuff, though the cuff alone is cool as hell, inside)
that crap is always quite fascinating (my son has been keen on construction, trains, etc., for some time so we look at a significant amount of books on the topics)
 
2:24 PM
Not sure.
One of those big ones with a metal triangle on top with lots of big white rods sticking up.
I can't keep up with my Manning books anymore, LOL. They keep giving me free ones.
I got 2 free ones last weekend for reviewing a couple projects for them.
And a free one today for signing up for their daily deal email.
Their December count down thing is going to happen again, and I may or may not get one there (got one last year, but not with the Halloween one this year).
 
2:37 PM
All in all, I have 4 unread books, 1 half-read book, and 1 unread written, but canceled, book (the author wrote it and they decided to not publish it, but put it up for free on their website).
2 of the unread books were part of an Angular pack, so I probably won't read them for a while. I read the other 2 in the pack, which were all I need for a while.
 
2:50 PM
We need a "free library" system so we can all borrow @Hosch250's unread books! ;)
 
Sorry...
 
:D
 
The T&C says that if I share them, I lose my license to them.
 
oof...
 
I share my physical books with my coworkers who are interested (I've yet to find one who'll take me up), but the ebooks are for me only.
 
2:51 PM
the best laid plans of mice and men...
 
i mean, there are free libraries in your area (if you're in the states and most of europe) lol. i remember getting free journal articles (elsevier, pubmed, etc.) because they were required to provide login to all libraries
 
they don't have a loan system?
 
yeah, ebooks I can see that - too easy for them to be "loaned" and never returned
 
someone once loaned me a e-book, which gave me a time-limited access
 
didn't realize they weren't all dead-tree editions
 
2:52 PM
and for the ebook, pdf the whole thing... that typically isn't against Terms as it allows you to review the document while offline. after that it may or may not make it to other devices in or outside of your control
 
What's the difference between these two inspections?
 
alright, i've got "hospitality" training for the next couple hours... enjoy your fun
 
@Cyril Enjoy, LOL.
 
(I can type up the text if necessary - this is how I discovered teh copy to clipboard isn't working properly)
 
2:54 PM
The indexed one is different than the plain-old one.
IMO, they should have the same severity.
 
we had that discussion. They are different because one is more idiomatic than other
e.g. Collection("Key").Value is generally idiomatic
 
They're both "default member accesses" but one is indexed, the other isn't. Otherwise, same issue?
 
but Collection = "bar" wouldn't be
since that would translate into Collection.Item = "bar" which would make no sense
(not the best example)
The point being, the implicit default value that isn't indexed is most likely a code smell
and thus gets a warning whereas a default indexed member access is only informational
 
so in this case, .ActiveConnection = connect should really be .ActiveConnection.ConnectionString = connect because it's implicitly doing that for me and I should make it explicit.
because .ConnectionString is the default member of .ActiveConnection.
 
Exactly
 
2:59 PM
OK.
 
btw -- is connect a string?
If it's an ADODB.Connection, then you actually want Set .ActiveConnection = connect
otherwise, you are actually doing .ActiveConnection.ConnectionString = connect.ConnectionString
 
ha, no, it is Set connect = New ADODB.Connection, so yeah, I want to add the Set, not specify the .ConnectionString property
does this mean there's an error in the inspection?
 
yeah.... ADO is wunderbar
 
no... it could have reported a missing Set or the missing default member access.
 
did you get any other inspection?
I think you should get both
 
3:01 PM
not on this line.
 
ping @M.Doerner - not sure if that is expected to have two inspections or not. I know that is a particularly hard & ambiguous case.
 
Either fix will work, right? Either Set one object to another, or explicitly specify the default members on both sides of the =.
 
Yes
 
though... if I Set then close the connection does that close both connections?
 
I'm pretty sure that you should have had gotten SuspiciousLetAssignment
there's only one connection (you're just referencing it) and it'll close, so all referenced pointers becomes useless
 
3:06 PM
so I probably want to explicitly assign the default .ConnectionString in that case. Though, I don't close the connection in this case, so I should be good to go.
I'll need to think about each instance where this is flagged.
Darn Rubberduck! Making me think about my code!!
 
If I recall correctly, Connection.ConnectionString can actually take a Connection object.
This member is some kind of hack.
 
Ok I thought it'd be taking the ConnectionString implicitly on the RHS and assigning to the same on the LHS.
 
I vaguely remember that we made some experiments and the results made us think that it cannot be a transfer of the connection string alone.
 
3:21 PM
so it has multiple default members based on what it's passed. Awesome!
(it's "overloaded" as can be done in many non-VBA languages)
 
No, it has only one.
But it takes a Variant.
 
then determines what to actually assign based on the actual type passed in?
 
If you take a Variant, you can inspect the type and act accordingly.
 
hrm... This doesn't work:
 
This is similar to the situation with Range.Item.
 
3:25 PM
.ActiveConnection.ConnectionString = connect.ConnectionString yields RTE 91
 
I guess that proves Max's point.
makes sense, since you must Set the ActiveConnection to something
providing a string on the RHS means that it'll create a connection implicitly for you.
 
Set .ActiveConnection = connect, however works fine
 
But you did a member access on the .ActiveConnection, which is still uninitalized, so of course you get RTE 91
 
You get the error, because ActiveConnection is Notging.
 
.ActiveConnection = connect.ConnectionString yields "Invalid Authorization specification"
 
3:27 PM
that wouldn't be surprising if you had Persist Security Info=false (and I hope you do!)
since password is now gone
 
    Set populateCommand = New ADODB.Command
    With populateCommand
      .ActiveConnection = connect.ConnectionString
 
FWIW, I'd just Set .ActiveConnection = connect
making new connections w/ same connection strings feels wrong to me.
 
  If connect Is Nothing Then
    Set connect = New ADODB.Connection
    connect.Open CStr(TempVars.Item("constring").Value)
  End If
run that ^ once for this activity
connect is a module-scope global. ducks
I do have a '@TODO to fix it!!
@this does seem to be the way to go. Makes the background majik less background-majiky...
and then, in the same module there's this:
    cnection.Open CStr(TempVars.Item("constring").Value)
    Dim updateCommand As ADODB.Command
    Set updateCommand = New ADODB.Command
    With updateCommand
      Set .ActiveConnection = cnection
so I'm not even remotely consistent in how I do it... :(
fixin' 'em as I go...
 
as I said, ADO is wunderbar
it does encourage bad coding practices
 
and I've taken every bit of encouragement it's given me!
 
Kaz
3:54 PM
Currently writing what could well be my first code of 2019 ^^
I've missed this view:
Also, Monking
 
@Kaz Was going to ask how you could miss it. Then I realized I'd probably miss VS with all its flaws if I quit coding too.
 
Kaz
4:11 PM
Very first line. I might be a bit rusty...
 
LOL
    Dim updateCommand As ADODB.Command
    Set updateCommand = New ADODB.Command
    With updateCommand
        Dim insertRS As ADODB.Recordset
        Set insertRS = .Execute(recChanged)
  End With
 
@this About MS certifications... I hear the pass/fail cutoff is 70%? Is there any penalty for getting a lower grade?
 
Gives a Variable 'insertRS' is not used inspection result which is (3/4 of the way through writing up an issue) actually valid.
 
@Hosch250 nope. You either pass or you fail.
 
OK, nice.
 
4:26 PM
Also, note that it can vary. I think I had an exam that had 80% cutoff?
 
However... There's no need to "use" insertRS other than as a way to get the query executed.
 
Makes sense.
 
what's the "proper" way of dealing with that, simply '@Ignore the inspection?
 
but yes, 70 is the usual
 
Is there a way to see what it is?
And how long the exam is?
 
4:28 PM
@FreeMan you're not actually reading the recordset? Just .Execute....
@Hosch250 you'll be immediately told after you finish the exam whether you passed or not
and you'll be given a summary of how you did in each subject area with a bar chart that gives you an approixmation of how well you did in an area.
 
I'm probably way overthinking the whole process again.
Sounds basically like Robert Half's exam.
I'll just reread C# In Depth again, and I'll probably ace it.
 
@Hosch250 I think that varies. 1 hour or 2 hours?
 
Coworker said one of his was 2, but he's heard the other one he needs to take is 2.5.
 
The most brutal part about the test, however is that you may have sections in the test and you can only be in the section only exactly once and cannot return to it once you leave it.
 
@this yup. Just using it to insert. the recChanged parameter tells me how many rows were inserted
 
4:31 PM
@this Yeah, just like the Robert Half one.
 
For example, in some of my advanced SQL exams, we might have a section about a scenario or 2, before we go into the section with all usual MC questions.
 
@this yeesh.
 
the scenario are usually allotted something like 15 or 30 minutes no, that's not right. I only have one time allotment for entire test. I just don't know where I am.
so I have to make super duper sure I'm confident with a scenario section before I leave because there's no returning. In end, I always end up with extra time left over, which gives me opportunity to review the current section (usually the biggest one) at my leisure. but not for the prior sections.
@FreeMan then you don't even need the recordset. Just .Execute recChanged, done.
 
Do I need to go somewhere to take it, or do they do proctored online exams?
 
you can do online now but I'd rather go to a test center
the online is quite invasive detailed.
 
4:37 PM
LOL.
 
basically you must use a webcam, sweep the entire room, show that you have nothing on your person blah blah
and if someone enters the room, you flunk automatically
 
LOL.
 
@this that is correct. No idea why I had it in there... :/
 
Better not try to take it at home. I bet they have a test center at the MS building not far from here.
 
Yeah, kind of sucky. I can see why you might want it if the nearest center is 4-6 hours away but I doubt that's the case.
 
4:38 PM
We can almost see it from work.
If you go around the corner, you can.
 
I'm sure you'll find several test centers either there or near your home. Not worried.
 
@Hosch250 look into Microsoft Press cert prep books (that's how I learned .net btw). they're red, 2 to 2.5 inch thick, and come with a companion CD with exam simulations. don't bother trying the cert if you don't score 80+ on the sim
 
We have one of those at work, actually.
Currently, though, they are green, and less than 1" thick.
 
woah
they're not just green, they're green
 
never actually had such book for my exams.
I do have few but for other exams that I didn't take (and won't)
mainly used MeasureUp
 
4:50 PM
Not 100% sure I want to spend $100 on the practice exam, then another $150 or so on the test...
 
in my experience, reading the books and doing the cert prep is more than enough
 
Work will reimburse me for the test up to twice.
 
I have no certs whatsoever
 
OTOH, I probably know enough C# already even without re-reading C# In Depth to ace the thing.
 
Double duck checking here: Code Explorer>Context Menu>Sync Project> (Update Components | Replace Contents) from files. Update just replaces the chosen file whereas Replace wipes everything but what is explicitly chosen?
 
4:53 PM
@Hosch250 don't fool yourself: certs cover obscure parts of the framework and language that you haven't used before, and will likely never use in the future
back when the books were red there was a whole important part about CAS (now deprecated)
 
@MathieuGuindon Hence why I'm re-reading the book.
I don't know my C# 7 stuff well enough.
But async/await and enumerables are practically a walk in the park now.
And that's the stuff they really went into on the "practice" exam I found online that appears to be an old version of it stolen from somewhere.
 
All your talk of reading and learning coding gives me envy.
 
@IvenBach Spare time at work FTW.
Contracts prevent me from working on pet projects.
So, I read tech-related books, and my bosses haven't cared.
 
I had that for a while. Relished it too being able to learn.
 
The most annoying thing is it takes so much time to actually process the information. I can read the book faster than I can learn the stuff.
 
4:58 PM
Reading the words on the page is easy. Translating that into comprehension though...
 
Right now, I'm learning F# and general Azure tooling, brushing up on C#, and trying to remember my Angular stuff. And I still can't process the information fast enough to keep up with my reading.
I switch topics when my brain gets full of one of them.
 
Reading != Understanding. I'm on Ch6 if C# 3rd edition with iterators. Slow mud-filled slog for me.
 
@Hosch250 I think I'm going to order myself one of those green books. C# 3.5 has been a little while
 
@MathieuGuindon There was no 3.5.
That was .NET 3.5.
 
@MathieuGuindon in our case it's more to attain / maintain partner status
 
5:01 PM
@Hosch250 yeah, whatever. I used to know this lol
 
@this Same here. ILM is gold partner status.
 
@this makes sense
 
I think they are aware of some shortcomings w/ certs. I personally don't put too much stock in the certs when interviewing a potential candidate. I've interviewed a Microsoft trainer with more certs than I have and he bombed it.
 
certs just prove you could pass an exam
 
^
and I've seen people approach it as an exercise in rote memorization.
e.g. no real learning happened
 
5:04 PM
exactly
 
6:00 PM
looking at the PR page, I think 11/22 or 11/23 is going to be our v2.5.0 release date. right?
 
6:12 PM
woah it's 20th already? Yea, i guess so....
why does time keep flying away, anyway?!?
don't forget we still have to get some bug fixes merged
 
What's the reason behind not updating the Foo.docclsmodules? Is it because the worksheet itself would have to be beleted?
 
we can't import a worksheet module
 
Is there anything I can do about the code behind it has?
 
yes, overwrite it
and lose any attributes it has
 
Doesn't work when I do.
 
6:16 PM
and hulk smash it
@IvenBach What do you mean exactly?
 
document modules belong to the host app. we can't create or delete them, the host app must do it.
 
and if the OM doesn't give you a way, you're SOL
 
and because they're documents, they're much more than just code
and there's no way anyone is going to have the whole document under SC
well, they could, but that's pretty useless
 
Code Explorer>Context Menu>Sync Project>Replace Contents from Files... doesn't replace any worksheet code modules.
 
it can't
 
6:19 PM
Mkay. Confirming that was/is the case.
 
don't put valuable code in document modules' code-behind
 
Yes, there is also the matter that xlsx A's Sheet1 isn't same as xlsx B's Sheet1
@MathieuGuindon I may have misunderstood, though. I thought Max special cased that to write to code behind?
 
I get the fact it can't create the document module. Wasn't expecting nothing to occur for the doccls files.
 
haven't tested it, but I'd also be expecting it to overwrite the code-behind
(and warn if any attributes are being nuked)
 
^ It's not. That's specifically why I'm asking.
 
6:22 PM
you do have the doccls file, right?
 
wait, it's exporting them, but not reimporting them?
 
and you do have the document w/ same code name, right?
@MathieuGuindon It should
 
My source WB I exported. The code files are there. When I (Update | Replace) the foo.BAS and bar.CLS files are (updated | replaced) respectively. Any bazz.DOCCLS are not.
 
what's the component name in the .doccls? the VBA project needs a component by that same name
hm, is this exception a user-facing message?
 
Choosing update I get the following dialog:
I'm expecting that because there is no Sheet29 in the WB to which I'm importing the files.
 
6:30 PM
yes
it wants to replace the contents of a module that is nowhere
 
Choosing replace displays the dialog Replace Project Component from Files. Nothing else and it replaces the modules. The DOCCLS modules are unmodified.
 
guessing your Sheet29.doccls is being silently ignored
 
I'd expect to get the same message for replace then.
 
without the "aborted" part
rather, "file will be ignored" or something
 
If I choose update and select the Sheet36.doccls which I want imported nothing is done.
 
6:32 PM
and the .doccls file has a VB_Name attribute with value "Sheet36" and there's a Sheet36 component in your project?
 
It was exported witout the VB_Name attribute.
 
ok, so there's a Sheet36 component in your project?
 
There is a Sheet36 in the WB I want to import into, yes.
 
I'm fine with the warning about Sheet29 not existing.
But the apparent no-operation for doccls caught me off guard.
 
6:34 PM
I think that's a bug
 
Mkay. Proceeding to open ticket.
 
@MathieuGuindon You owe my monitor some new pixels.
 
7:03 PM
This is a bowl full of WTF berries... My MVCE for a simple 3 sheet WB works flawlessly.
Going back to the suspect WB there's times where it does import correctly with a single doccls and others where it wont.
 
Might be due to the exception.
If Mat's correct that the loop throws, you might not even get to that particular doccls
 
I know it's not importing everything. That's what I'm thinking.
Only a portion of the .bas and .cls files are importing. None of .doccls are importing. Could be the order it happens to import is causing the issue.
 
^
 
But it's odd that I tried to add a singular .bas file and it wouldn't import. Did other testing and now that .bas file imports just fine.
 
7:16 PM
@this fereal??
 
Getting consistent behavior with the ordering on File Explorer. IE If it's sorted by file name vs file type. Must think this through to describe correctly.
 
8:10 PM
 
@Feeds 'bout dang time!
@this congrats, you can now kick-mute trolls
 
Like me :D
I mean, trolls like me, not have the power like me :)
As far as that goes, I'd trust all the regulars here as room owners, but we only need so many. Feel free to add anyone else you want.
 
^ says the guy who kept throwing sides of beef at yesterdays troll... :)
 
@FreeMan Hey, he won't go hungry, anyway.
 
no, no he won't! :D
 
8:25 PM
@FreeMan only helps to kick them before you get into defense mode ~_*
 
> **Rubberduck version information**
Version 2.4.1.20898
OS: Microsoft Windows NT 10.0.18362.0, x64
Host Product: Microsoft Office 2013 x86
Host Version: 15.0.5023.1000
Host Executable: EXCEL.EXE

**Description**
When choosing Code Explorer>Context Menu>Sync Project>Replace contents from files... if there is a missing document the replace proceeds up until the missing document is encountered.

**To Reproduce**
Steps to reproduce the behavior:
1. Have a workbook with 3 sheets named Sh
 
How do you tell who's a room owner or not?
:derp: I need to pay attention to what's in front of me sometimes...
 
@IvenBach Italic name.
 
@Hosch250 here i thought that meant you were idle
 
@Hosch250 wow... I never noticed the subtle difference!
 
8:30 PM
@Hosch250 aka fancypant Edwardian script wannabe.
 
@Hosch250 Mug's name isn't italicized. That's caused by godhood moderator?
 
Yes, mods aren't considered room owners.
 
mod user names show up in blue
 
@FreeMan Subtlety isn't my strong suite either.
 
8:31 PM
Neither be #Words...
 
like purple velvet, but stronger
 
Then your name should be Blue && Italicized.
 
@IvenBach now, that's just overdoing it. You'll be having us wearing big wigs and stuffed shirts.
 
@IvenBach no, because mod privs vastly override RO privs
 
8:32 PM
There's no consistency then...
 
IOW every mod "owns" every room :)
 
@MathieuGuindon hmm funny, I'm RO, yet I can write? O_o
;-)
 
swoosh
 
Us lowly plebs don't know this stuff.
 
read-only
 
8:33 PM
@MathieuGuindon well i'm glad they pander to the colorblind... ='/
 
@this oooooooh
yeah no RO=RoomOwner :)
 
hence the ruined joke.
 
^
 
that said, didn't expect to see Canadian politics on SO today
Side note, "People's Party" has 0 elected officials. Might want to reconsider what "popular" stands for ;-) — Mathieu Guindon 6 mins ago
ooh, Joe McDaid has followed @rubberduckvba back, finally!
 
they didn't specify which "people"
 
8:35 PM
#ProTip: Be wary of anyone using words like "People", "Republic*" or "Democrat*"
What we need is: A Person Party.
 
@this be wary of anyone making generalizations and divisive statements*
 
@Cyril Be wary of anyone who's cautioning others to be wary.
 
@this be wary
 
PPC is basically a "soft-ish Trump" party. Obviously this party won exactly 0 ridings.
 
@MathieuGuindon They should rethink the name. TBH, from the name alone, I think left-wing pinkos.
 
8:38 PM
nah, definitely right-wing nuts
 
@this i'm with you on the pinkos part, but could throw left/right depending on your continent
 
our left-wing pinkos go by "Quebec Solidaire" :)
 
and it's common up there? "People" => "rightwing"?
 
blâmer les québécois
 
meh. they were "Quebec Solitaire" for a very long time, with a single elected rep
 
8:39 PM
^ most important canadian sentiment this side of terry fox being amazing
 
I like how WEXIT thinks they have anything like Qc's claim to independence. Proof of just how ignorant of History our Canadian rednecks are.
 
What's the W for?
 
not even sure what some of what you wrote means, mat
 
Oh, LOL.
So, BC and YT or something?
 
8:42 PM
apparently some of Alberta wants out now
 
@this ba-da-boom tish!
 
I think it's AL+SK
 
OK.
Wouldn't that be Central Exit?
 
^
 
Whatever :).
 
8:42 PM
they always struggled with identity :)
 
the new American Pakistan
 
Anyway, I'm more a fan of the circle political grid. Left/right and moderate/radical.
So left/right moderates are closer to each other than they are to left/right radicals, etc.
 
haven't seen that one. I saw the one that has it as a diamond, with moderates in center
 
Finally just 45 minutes before TTQW...
 
8:59 PM
@MathieuGuindon Alabama and Siesta Key (Florida)?
 
00:00 - 21:0021:00 - 23:00

« first day (1993 days earlier)      last day (1187 days later) »