« first day (1896 days earlier)      last day (1284 days later) » 

12:00 AM
RELOAD!
[rubberduck-vba/Rubberduck] 2 issue comments.
[Minesweeper] Games Played: 124, Bombs Used: 77, Moves Performed: 16503, New Users: 8
 
12:12 AM
basically what you see on the ITypeInfo is what you can know about a given type.
a number of VB attributes are actually flags of various kinds
but I'm thinking Ext, being a string has to come from GetDocumentation at least.
 
thats still quick though iiuc?
 
Comintern said that parsing a whole ComProject takes fraction of second
that's the whole thing
 
12:27 AM
nice :)
 
 
2 hours later…
2:00 AM
[rubberduck-vba/Rubberduck] retailcoder pushed 20 commits to next (only showing some of them below)
Remove property

Replaced conditional property that would change with explicit properties.
Forgot to remove when `UnignoreTestLabel` and `IgnoreTestLabel` replaced it.
[rubberduck-vba/Rubberduck] IvenBach pushed commit 8f707a9f to next: Simplify properties
[rubberduck-vba/Rubberduck] IvenBach pushed commit 86dbaf54 to next: Create individual commands
[rubberduck-vba/Rubberduck] IvenBach pushed commit 0eb10708 to next: Add comment explaining why
[rubberduck-vba/Rubberduck] IvenBach pushed commit db8dbb1e to next: Merge remote-tracking branch 'upstream/next' into Issue2964_TestExplorerDisableTestViaContextMenu
[rubberduck-vba/Rubberduck] IvenBach pushed commit 06288a12 to next: Move resource strings
[rubberduck-vba/Rubberduck] IvenBach pushed commit 0249c5cd to next: Remove multiple annotations
[rubberduck-vba/Rubberduck] IvenBach pushed commit 35aac915 to next: Use method overload
[rubberduck-vba/Rubberduck] IvenBach pushed commit 9b5eedff to next: Inject dependencies
Merge pull request #5064 from IvenBach/Issue2964_TestExplorerDisableTestViaContextMenu

Add menu item to Test Explorer context menu allowing Ignore/Unignore of unit test
 
2:56 AM
[rubberduck-vba/Rubberduck] build for commit 4f4e2eb1 on unknown branch: AppVeyor build succeeded
> **Justification**
I've written unit tests for code in my Personal Macro Workbook (PMW). When running tests I resort to running only the code in the workbook I'm working on by running each test group (grouped by location). Toggling all my PMW unit tests off to avoid testing them would speed up my development time.

**Description**
As issue title states: Add command to allow ignoring/unignore unit tests as a group

**Additional context**
My last comment in #5064 for selected tests would n
 
3:19 AM
[rubberduck-vba/Rubberduck] retailcoder pushed 40 commits to next (only showing some of them below)
[rubberduck-vba/Rubberduck] bclothier pushed commit aac38eda to next: Further abstract out all parameters from concretes into abstracts to enable full composition of the types within the namespace. Also fix a missing dispose in the ITypeInfoVBEExte
[rubberduck-vba/Rubberduck] bclothier pushed commit 22cf25e0 to next: Create tracing classes for the ITypeLib and ITypeInfo
[rubberduck-vba/Rubberduck] bclothier pushed commit c72b8a6a to next: Introduce the TypeApiFactory to encapsulate the creation of the ITypeLibWrapper & ITypeInfoWrapper, making it easy to get them traced with appropriate flags. Redirect all the new
[rubberduck-vba/Rubberduck] bclothier pushed commit 110a79bc to next: Fill in some holes from testing and further abstract out the container. Have tracer support the internal interfaces, too.
[rubberduck-vba/Rubberduck] bclothier pushed commit 42e87472 to next: Avoid a NRE when alternate type info is not used.
[rubberduck-vba/Rubberduck] bclothier pushed commit cec08592 to next: Fix AV by preventing access to non-constant VARDESC for external consumers. Introduce TypeInfoConstantsCollection to provide a collection of constants and remapping of the index
[rubberduck-vba/Rubberduck] bclothier pushed commit ddea7b27 to next: Merge branch 'next' of github.com/rubberduck-vba/Rubberduck into typelibs-api-refactor
[rubberduck-vba/Rubberduck] bclothier pushed commit f606675a to next: Final run through of documentation updates.
[rubberduck-vba/Rubberduck] web-flow pushed commit 4f4e2eb1 to next: Merge branch 'next' into typelibs-api-refactor
Merge pull request #4706 from WaynePhillipsEA/typelibs-api-refactor

Typelibs API big refactor and improvements
 
 
2 hours later…
5:25 AM
 
6:16 AM
To make the a bit more precise which attributes we do not recover: we only loose attributes of renamed members.
 
6:49 AM
@M.Doerner I’ll borrow your wiki insight to construct a visual guide at some stage down the track later...
 
7:59 AM
-1
Q: File not responding due to large range of rows

Miriam ListI have this code that is supposed to compare two excel sheets. The code is working fine for small caparisons. I did a test run with 7 rows and 2 columns. The code itself works as fallows, it compares the two sheets and copies the differences into a new workbook. However, the code should be impl...

 
 
4 hours later…
holy hell. I have to be working with SQL where the author can't make up the mind on formatting.
some commas are leading, others are trailing. There are AS in some places, but not, and indentation is essentially random
How the hell do they live with themselves?
 
@this Have you had a look at what Access does to SQL queries?
You start to simply use an online indenter.
 
That's why I hand-type my queries. I also rarely do anything complex in Access queries; preferring to do it as much as I can in T-SQL.
I also use Poor man's t-sql formatter, which makes it even worse for the author - if they don't want to go the trouble of formatting, at least hit the ctrl + K or whatever the shortcut they choose.
 
2:05 PM
@MathieuGuindon Sounds like fun!
@this ooohh.. velly, velly nice!
Do you write much TSQL in VS? Enough to bother with the extension there?
Is quite lovely in SSMS...
 
Nice variety of tools that it works with, I was just a bit thrown by the VS option.
 
@ticker "have a message box run code" ...scary thoughts
 
O_O
 
2:24 PM
I don't really. I mainly use SSMS
I think VS is mainly for database projects which I've tried to use but with mixed results.
 
@M.Doerner between Access and MySQL Workbench, I'm torn and can't decide which is the worst (best?) at mangling SQL
 
@this AS = ??
 
@IvenBach an optional keyword to denote an alias
select foo as bar
 
e.g. the author did....
 
or select bar=foo, equivalent to select foo bar
 
2:29 PM
:derp:
 
@IvenBach Not everything is an acronym...
:-)
 
lol
@mansellan Alias Specifier
2
 
FROM dbo.someTable t INNER JOIN otherTable AS o ON t.id = o.id LEFT JOIN dbo.yetOtherTable y ON t.id = y.id
 
I don’t SQL much.
 
LOL
as programming languages go, SQL has the least consistency among people in formatting.
AND THAT ANNOYS ME TO NO END
people happily argue about brace placement in their favorite programming language but throw all that out of the window as soon as they write SQL. WTF?
 
2:31 PM
But I may have to shortly. Getting a new ERP to replace BillQuick. I already know requests is “We got this new system and yeah... Nobody really knows how to use it yet so look into that for us. Once you learn how to use it you can teach us mkay? Thanks a bunch Iven”
 
@ticker embedding OLE objects through VBA damages the file
 
@MathieuGuindon I think he mispelt "brain" for "file"
 
What are OLE objects? Object Linking Embedding?
 
No. Brain damage.
(seriously, yes. A relic of 90s.)
 
I’ve read it but still don’t know what it is.
 
2:34 PM
do you remember a time where you could embed Excel spreadsheet in a Word document?
or maybe in a PowerPoint slide?
and that if you edited the Excel spreadsheet, the changes showed up in those automatically?
That's all driven by OLE.
 
Embedded OLE objects have a tendency to corrupt things... does it work correctly if you embed it manually? What version of Excel are you embedding a Word 97-2003 document into? — Mathieu Guindon 8 secs ago
 
@MathieuGuindon I'd say I'd prefer Workbench over Access. At least the last time I checked, it doesn't lose all the tabs & returns and add a bajillion parentheses.
 
it... does.... maybe I haven't found (or bothered to look for) the settings to prevent it, but it definitely screws up all indentation, adds a ton of parentheses, and OMG THOSE DAMN BACKTICKS
 
what?
that must be something new. Admittedly I haven't worked with Workbench for so long but last time I did, it was OK-ish WRT formatting.
(and I don't remember going out of my way to change the setting)
 
2:59 PM
@this that reminds of the dude that drew recursive functions in powerpoint by embedding OLE objects into one another
 
T.T
 
@this Yep, I've actually done that.
And the best worst part is the Word doc updates when you update the Excel doc.
You can create a table in Excel and paste it into Word.
And then you think you're done. Everything looks good.
And then you delete the table from the Excel doc to create a new one, and it disappears from the word doc!
 
OLE is definitely an idea where it was too clever for its own good.
I'm sure it got lot of "ooh"s and "aah"s when it was first demonstrated
but in practice, "wtf"s skyrocketed
@Vogel612 I love how that guy wore the shirt with shirt in a shirt in a shirt. Complements the presentation nicely.
 
Day off and reading me some of my unit testing book I just got.
 
3:15 PM
@Vogel612 Now I want to do the Koch snowflake...
 
3:53 PM
@23fc9a62-56de-47fb-97b4-737890 that might be a bit hard, actually..
 
much easier to write some VBA code to just draw it :D
 
interesting. I think I've found a bug in the VBA implementation of the spec for ForEach loops
> When the <for-each-statement> has finished executing, the value of <bound-variable-expression> is the data value of the last element in <collection>.
^ that is not true
#DontHoldYourBreathForAFix
rather, that is only true if the loop does NOT run to completion
 
if the loop completes, the <bound-variable-expression> is Nothing
 
3:57 PM
That might actually technically not be a bug.
 
and that is how I met your mother found what was wrong with this guy
1
Q: How to fix run-time error 1004 Method Range of object global failed

Claire SpriggsHi I am trying to run this code and it has worked before on other projects so I do not understand why it is not working on this code. I have tried looking to see if I have missed stuff from previous code but I don't think I am Sub DepolPotential() DataSheet.Activate Dim DepolPotent...

 
should be easy to fix. Spec is just a piece of paper.... right?
;-)
 
Except for arrays, the enumerator is implementation specific.
 
yeah that's also mentioned in the spec
 
It can choose to always include a Nothing at the end.
 
3:58 PM
Public Sub Test()
    Dim c As Collection
    Set c = New Collection
    c.Add New Collection 'any object will do
    Dim o As Object
    For Each o In c
        'Exit For
    Next
    Debug.Print o Is Nothing
End Sub
 
Hm, just thinking about ist, it should actually return it as the last element then.
So, it is not to spec.
 
FWIW, someone also claimed that the Access.Controls will skip members in a For Each enumeration
 
@this that's implementation-dependent though
 
Yep
 
When achieving half your goals is enough to ship...
 
4:03 PM
now I'm tempted to open an issue for an inspection flagging For Each loop control variables being used/recycled outside the loop body, but that would bring the number of open issues back in the 800's :)
 
@MathieuGuindon then close another issue. ;-)
 
ha!
gah, work laptop is logged out of GH
 
FWIW, would this be a bad thing?
For x In y
 ...
Next

For x In z
  ...
Next
(this might raise the question of whether the method is doing too much, though)
 
That has a guaranteed assignment on the second loop.
 
Yerp.
 
4:06 PM
Yes and in this case, the variable has no other use besides being an iterator. If it was used somewhere other than an iterator, then I agree that is a big code smell.
 
Have you had a look at that travesty from yesterday?
 
Sorry, which travesty? I must have been wearing my peril-sensitive sunglasses.
3
 
the SO post linked above?
@this yes
@this yes
 
Conditional bailout in a For Each loop and checking at the end to see whether it ran to completion (check for Nothing), then unsing that value to poulate another collection to run a For Each over to conditioally bail out again and use the result to make a new collection to run over in the first loop until both loops run to the end.
 
until both loops run to the end maintainer's brain explodes
 
4:11 PM
This is the worst spaghetti I have ever seen in so few lines of code.
 
@M.Doerner :barf:
 
@MathieuGuindon as I said, wearing my peril-sensitive sunglasses. ;-)
 
IKR?
@M.Doerner and not a single GoTo jump!
 
And the only reason it works at all is because it uses the undocumented behaviour that the For Each loop assigns Nothing for Ranges if it runs to completion.
 
it's also the reason it fails with error 1004 :)
 
4:14 PM
I guess the behaviour would be so much cleaner just using a function.
 
I trimmed the OP's code down, and concluded that what they really meant to do was iterate N2:N[last] once. can't be 100% sure though.
such a mind-bending spaghetti
 
@this Change the spec, bug is fixed!
 
@FreeMan see, that's the thing. I think the spec is supposed to be descriptive, not prescriptive.
I'm pretty sure they didn't have the specs when they made VBA.
 
> I honestly think the real solution is to take a step back and re-assess exactly what this loop means to be doing, scrap the old code, and rewrite it from scratch. Anything else would add complexity to an already incredibly hard-to-follow piece of code.
@this huh
 
I assume that because of the release history.
 
4:17 PM
in the golden age of waterfall, a spec written after the fact?
 
how do you explain the WTFs of VBA, then?
 
alcohol
 
last time I checked, alcohol is not conductive to writing specifications of any kind.
 
Seattle then :)
 
LOL
I'm sure Joel did have some specs back then but then they cowboyed it up a bit
after all, one major problem with the waterfall was that the product rarely resembled the specifications.
 
4:22 PM
Oh, I think it actually resembled it rather often to some degree, but after one million change requests with according spec updates.
 
The weird thing is that on line, we only have 0.9 as the earliest version available back in 2008
you'd think the version would be higher if there were that many changes.
 
we don't get do see v0.8.489985
 
which would be so weird. :)
considering that the rest of version bumps up at least hundredth but no more.
 
Double duck checking. NuGet packages should always be ignored? Meaning they should never go into source control.
 
4:37 PM
Yeah, you'd have references to them in your csproj file
That should be all you need.
 
mkay.
 
Hm, I found a false negative for my new inspection.
For some reason, I do not get a result when assigning a funtion return value.
Oh, I am so dumb.
 
that feeling when you can move and rename an access app without worrying about breaking everyones crap
 
@Feeds my, my, my, you're quick on the draw, feeds!
Why, I daresay you're the fastest draw in the west.
 
[rubberduck-vba/Rubberduck] build for commit 0ba0c90c on unknown branch: AppVeyor build succeeded
[rubberduck-vba/Rubberduck] bclothier pushed 27 commits to next (only showing some of them below)
Reorder alternatives in annotationArgList in grammar

Previously the options without explicit parentheses were preferred and matched to expressions with parentheses consuming them as part or the argument.
[rubberduck-vba/Rubberduck] MDoerner pushed commit 02cad444 to next: Fix resolution of default member and array accesses on dictionary access expressions
[rubberduck-vba/Rubberduck] MDoerner pushed commit c5ab99e6 to next: Clarify todos and add comments
[rubberduck-vba/Rubberduck] MDoerner pushed commit 426dc00c to next: Fix named argument resolution on default member accesses
[rubberduck-vba/Rubberduck] MDoerner pushed commit 7a7f2e7c to next: Set Severity of SetAssignmentWithIncompatibleObjectTypeInspection to Error
[rubberduck-vba/Rubberduck] MDoerner pushed commit 8668b13e to next: Unignore tests passing now
[rubberduck-vba/Rubberduck] MDoerner pushed commit 56165d1c to next: Merge branch 'next' into IncompatibleObjectTypeInspection
[rubberduck-vba/Rubberduck] MDoerner pushed commit 2fe9ab92 to next: Fix comments
Remove restriction to variables on SetAssignmentWithIncompatibleObjectTypeInspection

Also changes the way the set assignments are obtained to increase performance when libraries are referenced.
Merge pull request #5003 from MDoerner/IncompatibleObjectTypeInspection

SetAssignmentWithIncompatibleObjectTypeInspection
 
6:58 PM
Thank @Comintern for the CE search! Just saved me a ton of time!
 
IIRC it was @23fc9a62-56de-47fb-97b4-737890
just thank @rubberduck-vba/devs :)
 
Yeah, it was me, but IIRC, Iven tweaked it later.
It's been refined since the original version.
 
7:14 PM
oh. sorry...
Thanks @all for RD and all its features!!!
plays CYA
 
7:33 PM
Don't update to 16.2.2.
It keeps locking up on me.
16.2.1 was good.
 
hi @Cyril!
 
@MathieuGuindon hey! wasn't able to find this link, but now we're here...
 
:)
quick! hit Ctrl+D!
 
now my bookmark bar is longer than my screen is wide by 1 link ='/
side note, was thinking of redownloading RD when my company "upgrades" us to win10... not that excited, but i figure that'll be easier to maintain than having a folder of macros in individual files
 
hehe.. I have them (bookmarks) in a folder hierarchy :)
 
7:48 PM
was actually about to add a folder to the bar and drop both SO and this chat into it
 
RD hasn't green-released since April IIRC, but a long-standing PR was merged this week and unlocks so many possibilities I'm thinking the v2.4 cycle is coming to an end
 
got'cha
 
like, soon we'll be able to populate the Code Explorer without even parsing
 
And the test explorer :)
 
and the mocking framework
 
7:52 PM
I should totally come back and do doc comments.
 
oh, yes!!
 
Anyway, TTYL. Taking off now.
 
later!
 
you know, i had a to look REALLY close to tell who was who based off picture icon @MathieuGuindon and @23fc9a62-56de-47fb-97b4-737890
 
@KySoto I really need to cut that hair don't I
 
8:01 PM
thanks for the info, mat; hoping the code explorer, specifically that aspect to redownload RD, will make things easier since i'll have to redo my general set-up (losing my high-contract IDE, which is aweful)
 
xD
 
@MathieuGuindon more that you guys need a bit less red. This isn't a communist meeting place.... right?
 
@this ask Comintern about that...
 
@FreeMan You're making my point.... He has been.... purged.
 
8:10 PM
Do not pull the trigger on the next release too soon. I think I have an idea how to resolve parameterless default member accesses properly and reign in the ObjectVariableNotSetInspection.
 
@this He? He who? I don't know any "he"... furtively looks over shoulder...
 
@this so it's full on 1984 now?
 
I'm thinking v2.5 would be good to go once we actually leverage the typelib api, so... there'd be a few v2.4.x pre-releases to go still
 
If you push 2.5 out now, that means that the jump to 2.6 might only be a month or two instead of six!
right?
 
of course! we always do monthly releases!
 
8:16 PM
@Vogel612 I don't recall 1984 doing any purges. It seems to be more of good ol' Joe's thing, I guess?
@MathieuGuindon I do agree - might be good to settle on what we want to have in v2.5, though.
 
@this I've only read it in German, so I don't know the words used for people getting disappeared
 
Whew! Just a temporary glitch in the matrix...
2019-08-15 16:15:40.2734;ERROR-2.4.1.4819;Rubberduck.UI.Inspections.InspectionResultsViewModel;System.Runtime.InteropServices.COMException (0x80020010): Invalid callee. (Exception from HRESULT: 0x80020010 (DISP_E_BADCALLEE))
   at Microsoft.Vbe.Interop._CodePane.get_CodeModule()
   at Rubberduck.VBEditor.SafeComWrappers.VBA.CodePane.get_CodeModule() in C:\projects\rubberduck\Rubberduck.VBEditor.VBA\SafeComWrappers\VB\CodePane.cs:line 28
   at Rubberduck.VBEditor.SafeComWrappers.VBA.CodePane.get_QualifiedModuleName() in C:\projects\rubberduck\Rubberduck.VBEditor.VBA\SafeComWrappers\VB\CodePa
 
I don't recall them using the term "purge" - and the way I remember it, they were always "re-educated"
 
was generated when trying to IgnoreOnce an inspection. Closed Access and reopened and it's working just fin now.
 
I'm looking forward to 2.5 also :)
 
8:18 PM
and once re-educated they resume their brainwashed life somewhere else, IIRC.
Where in the case of the great purge, the disappearance was considerably more.... permanent
@FreeMan that's a new HRESULT
I'm pretty sure that's not one of HRESULTs we handle. Probably be good to catch that. I'd open an issue for it.
hmmm i wonder if that's related to the security fiasco....
1
Q: How to use late binding to invoke method with ByRef parameters

AdamI have a COM component that I want to call using late-binding from VB.NET (using the painful Primary Interop Assembly - PIA method) My IDL signature for the COM method looks like: HRESULT Send([in]BSTR bstrRequestData, [out]VARIANT *pvbstrResponseData, [out]VARIANT *pv...

> 0x80020010 | DISP_E_BADCALLEE | Invalid callee.
Descriptive as always, @MSFT!
 
Might be related to the August update, which is known to have broken VBA code that had been working for years without problems. That said... IMO inlining the OnAction like this feels like a hack anyway, puts executable code in a string literal (no compile-time validation), and simply feels downright lazy. What's wrong with setting OnAction to an actual procedure that can be easily debugged and extended? — Mathieu Guindon 3 mins ago
@this if that were the case, wouldn't restarting Access have no effect?
 
True but it also might be a matter of just calling it at right wrong time.
 
> **Rubberduck version information**
Version 2.4.1.4819
OS: Microsoft Windows NT 10.0.15063.0, x64
Host Product: Microsoft Office 2016 x64
Host Version: 16.0.4873.1000
Host Executable: MSACCESS.EXE


**Description**
Access had been open a while (>24 hours), and I got this error:
```
2019-08-15 16:15:40.2734;ERROR-2.4.1.4819;Rubberduck.UI.Inspections.InspectionResultsViewModel;System.Runtime.InteropServices.COMException (0x80020010): Invalid callee. (Exception from HRESULT: 0x80020010
 
@this your command is my wish...
 
just don't call me Buttercup.
 
8:32 PM
I don't believe in ROUSs
 
9:15 PM
TFW you discover RD annotations
omg I've been wasting so much time. But no longer! Thank you!!!! — ArcherBird 6 mins ago
 
FWIW, that should be made into another template(s?) Create Interface + Class API
hmm and if we had '@Interface("Class1") RD could automatically refresh the interface to conform to the Class1's public members. No need to manually refactor....
#LaysDownThePipe
 
@MathieuGuindon that's not 100% accurate
there is some COM support within .NET core
and judging from what I see, the gaps are mainly because "we don't have enough time to close it" rather than "we aren't doing it, period"
I think we'll be on .NET FX for a good while at least.
 
9:34 PM
@this that's encouraging. still, confusing af
 
Oh, definitely.
Microsoft is consistently.... Microsoft.
 
9:54 PM
Hadn't until now
tks
TTGH
 
@M.Doerner / @MathieuGuindon I'm wondering about the old issue regarding the InvokeShutdown. From what I see, we only actually use the Dispatcher in the Extension and Setting.
I'm thinking that if we use an alternate approach, we wouldn't even need to invoke shutdown since we never use it. I thought UiDispatcher used it internally but it does not look like it's the case.
Thoughts?
 
10:54 PM
What's the old issue abt InvokeShutdown again?
 
Judging from this blog's section about DefaultThreadCurrentCulture, it should be possible to not have to touch Dispatcher, which means we don't then need to shutdown it.
 
Hm. If we don't need it, I think it should die.
worth a shot anyway
 
That's what I'm thinking. KISS + YAGNI
 
11:12 PM
.net core will be ready for RD before RD needs .net core... net fx will be around for a few years yet, theyll have com sorted by then.
they can't afford to not support com properly, too much of windows is built on it.
 
Remember how fun COM interop was in .NET 2.0?
 
shudders
 
I think that's what core will go through for a while.
 
maybe... till now core has been the newcomer. v3 is where it goes mainstream and net fx starts towards obselesence.
 
typically, it'll be two versions until something get obsolete.
so in theory we have until v5 for them to get COM interop all right.
OOOORRRR they might say, aw screw it, and write a new OS
 
11:21 PM
at work we're gonna start retargetting as soon as v3 goes GA
 
what's your motivation?
 
just that its where the innovation is going to be. our company lives or dies by gaining small edges on the market.
 
sounds awfully risky to me
 
meh, if one of our products doesnt take well to it it'll stay on net fx. but otherwise we roll forward.
some of our services are already core 2.2, its been fine.
 
yeah - it's just that I don't like the idea of constantly bumping versions just to win one more customer. I'm basically gambling on the provider to not screw up
For that reason, I stay a version behind. #BeltsAndSuspenders
 
11:26 PM
ah, our company is its own customer, we take on the markets.
(sports betting)
 
cool
so you don't have a horde of angry customers when your software glitch
it's only a horde of angry employees.
;-)
 
yep :)
i get to play with all the shiny new things :-)
 
that does sound like fun, to be fair.
 
11:41 PM
tbf, we still struggle with legacy code like everyone else (not enough hours...). but nobody baulks at bringing in a new framework if it solves a problem. It's refreshing after many years in banking :-)
 
I am sure. Banks are the most beltiest'n'suspenderiest there is.
 
heh, yep. that was my life...
 

« first day (1896 days earlier)      last day (1284 days later) »