« first day (346 days earlier)      last day (2834 days later) » 

7:00 PM
@RubberDuck Me too.
 
and so History was written.
 
And so say we all.
 
You guys hear what happened in Indiana law recently?
 
No.
 
@Phrancis What's up?
 
7:02 PM
Government I think last month pushed a law that explicitly allowed for-profit businesses to discriminate against specific people (primarily gays, but could be applied to other things like race etc.)
Might have been in March
They got massive backlash
> After being “incensed” by the passage of an Indiana bill protecting religious freedom — then condemned by lesbian, gay, bisexual and transgender rights advocates for sanctioning anti-LGBT discrimination — Benioff tweeted that Salesforce.com would “dramatically reduce its investment in Indiana” and would cancel all company programs there. Other tech companies, such as Apple, also condemned the state law.
 
Oh wow... sometimes I wonder about 'muricah
 
Good man, CEO of Salesforce.com
 
There's hope for humanity after all
 
A little, yes.
 
Personally, I think a business should be allowed to discriminate based on a person's actions, but not something they cannot control, like race/birthdate/etc.
Like, maybe I don't want to sell to murderers - that was an action.
Race is uncontrollable, and therefore should have strict anti-discrimination laws.
 
7:07 PM
That gets very complicated very fast
 
Everything does :(
 
Doesn't it
 
Rubberduck is on the way to renaming interfaces properly.
I got the UI working right now.
 
Renaming?
 
I'm on that section.
 
7:08 PM
oh cool
 
I'm analyzing some of the debug data to figure out what I need to do.
 
But yeah the conservatives & Republicans here are in a panic because their opposition to LGBT equal rights is slipping away day after day
 
conservatives....
these things belong in a tin can IMO
 
^^ that
</political-rant>
 
yeah, enough ;)
ugh I think VS is about to crash on me
 
7:16 PM
Then press the Save command.
 
I'm debugging
 
I notice that usually works even when it is so locked you can't do anything else.
 
it's already saved
 
Oh.
 
GetClosestScopeDeclaration is ... ... I don't know a word for it.
 
7:17 PM
@Mat'sMug borked?
 
@Phrancis I think a lot of people misinterpreted that law and I actually completely support it.
 
ah, I rescued VS by killing the EXCEL.EXE process
 
@Mat'sMug I know that feeling...
 
No one has a right to force anyone to do business with anyone else.
The anti-discrimination laws were put in place to stop our government from discrimination.
 
tell that to insurance companies
 
7:18 PM
There are different ways to look at it
 
I mean, how would you feel if I came to you and said that you had to buy health insurance or you could go to jail?
Ohhhh..... wait a second......
@Phrancis There are. For me, it's about freedom of association, but perhaps I've read Atlas Shrugged once too many times.
 
@FreeMan IKR
 
For the record, I completely support equal rights. I've nothing against the LGBT community whatsoever.
 
Good ducky :)
 
@FreeMan hopeless is more like what I had in mind
 
7:23 PM
I understand the "libertarian" position on the aspect of doing business and freedom of association, but I think it starts to crumble when you put it in context of non-trivial business (i.e., not cake makers and wedding photographers)
 
@Mat'sMug that could work. Or, fail to work, as it were...
 
Yeah. We'll agree to disagree I suppose. I think the government has no right to turn anyone away, but a person should be free to associate (or not) with anyone they wish.
 
Fair enough :)
 
@Mat'sMug Quick interface question before it is complete:
 
at last! something on topic to chew on! yes!
;-)
 
7:28 PM
lol. Sorry.
 
Can a class which implements IClass1 which has a DoSomething() method have any name other than IClass1_DoSomething()?
 
Ducky is passionate about two things. Clean code and politics.
 
@Hosch250 nope
 
OK.
 
it's always going to be [NameOfInterfaceClass_NameOfMethod]
that's how Declarations finds them
 
7:29 PM
I was wondering if it would break any edge cases if I just examined the name of the interface implementation.
Because the _declarations.FindInterfaceImplementationMembers() returns them all.
 
are you reinventing a wheel?
yes, and then you can filter by scope or ComponentName
 
I am filtering by component name.
.Where(item => item.ComponentName.Contains(_view.Target.ComponentName))
 
should work - until there's 2 projects with a Class1
 
Hmm.
 
item.Project.Equals(_view.Target.Project) &&
^^ use reference equality on the Project
 
7:33 PM
OK.
foreach (var interfaceImplentation in _declarations.FindInterfaceImplementationMembers().Where(item => item.Project.Equals(_view.Target.Project) && item.IdentifierName.Contains(_view.Target.ComponentName)))
 
that should be fail-safe
 
It works too :)
Also, I should hope something that long is fail-safe.
206 characters is a bit much for one line.
 
var members = _declarations.FindInterfaceImplementationMembers().Where(item => item.Project.Equals(_view.Target.Project) && item.IdentifierName.Contains(_view.Target.ComponentName));
foreach (var member in members) { ... }
 
You are attempting to do your Next statements within an If...Then statement. You have to have the End If before the Next - you can't cross scope. You also have 3 Next and only 2 For. You're going to have to rework that from the top down. I'm not even sure what the point of having the If statement in this block of code is. — FreeMan 2 mins ago
 
7:41 PM
[retailcoder/Rubberduck] Hosch250 pushed commit 53040c65 to next: Works on interface members
[retailcoder/Rubberduck] Hosch250 pushed commit 034d2223 to next: Clean up interface code/remove bug
\[[**retailcoder/Rubberduck**](https://github.com/retailcoder/Rubberduck)\] [**Hosch250**](https://github.com/Hosch250) pushed commit [**3a348c63**](https://github.com/retailcoder/Rubberduck/commit/3a348c636590df7366468992cafaa5dfaa7ef237) to [**next**](https://github.com/retailcoder/Rubberduck/tree/next): Merge pull request #512 from Hosch250/next

Works on interface members
 
@FreeMan eh, somebody learned haha!
 
Note that this would have been evident if you properly indented your code. — RubberDuck 19 secs ago
 
Time to refactor the reorder.
 
@RubberDuck soon this will be "[indented your code](http://www.rubberduck-vba.com/features.html)" ;)
 
So, is that implemented awaiting release?
 
7:44 PM
@Mat'sMug you funny guy...
 
It isn't indenting my code.
 
@Hosch250 No. Not really. Someone donated their VB6 code to do it though.
We just need to port it to VB.Net and hook it into the project.
 
it's not. We have the Smart Indenter VB6 source code waiting to be imported .. that^^
 
I don't know if I have time to take my dog on a walk before the rain comes, but I'm going to try!
See you.
 
later!
 
7:46 PM
Is it possible to have the indentation amount defined by the user? I prefer my indents to be only 2 spaces instead of 4.
 
GAHAGAGHALGHJALDJFKALJDF can they just send me the stupid meeting invite already?!
 
Maybe it's because I'm old and grew up programming in 80 columns, but I don't like wasting so much on white space...
 
@FreeMan totally
we may not implement all options in the first release though
 
@FreeMan I grew up programming on an 80 character one line display...
 
feels much love!
@RubberDuck Good Lord! How old are you???
:)
 
7:48 PM
Kids today have no idea how good they have it.
 
truth
 
30 =)
 
young 'un
 
=;)-
That's not a mohawk btw, I'm just bald on the sides...
3
 
I didn't learn to program by flipping switches on the front of the box, but I could have
 
7:50 PM
Yeah, I'm not quite that old, but I did learn about gates via one of those plug-in circuit boards.
 
We had that in physics class too!
 
Is that an Arduino Breadboard?
 
@skiwi that's JAVA
...ok not quite
 
lol this screenshot is also pretty nice (not mine)
 
7:55 PM
I would exit the workbench
 
So buggy even their errors have errors!
3
 
I'm surprised it doesn't say SNAP at the top
 
@skiwi Did you take a picture of your screen with your phone, email the picture to yourself, then post it?
 
@FreeMan I don't know, not my picture!
 
@skiwi Whew!
 
7:57 PM
 
@Phrancis OH SNAP!
 
IKR
 
I once worked with some people who reported errors to me by taking a screen shots of the error, pasting the screen shot into Word, embedded the Word document in Excel, then attaching the spreadsheet to an email.
2
yes, really.
 
Hey that sounds almost like our workflow
 
lol
 
7:59 PM
@FreeMan wat
 
I informed them it would be easier on all involved if they just simply embedded the screen cap in the email.
They ignored my suggestion.
 
<facepalm/>
 
<facedesk />
 
Get orders in Excel, print the spreadsheet, enter the orders, print a screenshot of the entry confirmation, scan the print and save it in an Outlook folder.
 
yup. That's what you get when you "off-shore"
 
8:00 PM
@Phrancis you gotta be kidding
 
Nope.
 
in The 2nd Monitor, 23 mins ago, by kleinfreund
After entering login credentials I get a constant blue screen where the cursor blinks in a low frequency.
in The 2nd Monitor, 11 mins ago, by Mast
Blue screen at Ubuntu?
 
BSOD <sup>Ubuntu Edition</sup>?
well... that didn't work right... :(
 
LOL!
 
8:07 PM
I'm beginning to think the whole resolution approach is wrong.
terribly wrong
and fucking unmaintainable
I need a cigarette
 
lol
 
this feels like a better start:
    public class IdentifierResolver
    {
        private readonly Declarations _declarations;

        public IdentifierResolver(Declarations declarations)
        {
            _declarations = declarations;
        }

        public Declaration Resolve(string identifier, string currentScope, QualifiedModuleName qualifiedParent)
        {

        }
    }
simple things should be simple.
how complicated can resolving VBA identifiers be anyway?
ugh.. here we go
        public Declaration Resolve(string identifierUsage, string currentScope, QualifiedModuleName qualifiedParent)
        {
            var identifiers = identifierUsage.Split('.');
            if (identifiers.Length == 1)
            {

            }
            else
            {

            }
        }
 
8:22 PM
@Mat'sMug are you really asking that question?
 
nah
just trying to convince myself that I can rewrite this shit in 30 minutes
you know, with a whole different approach. one that doesn't involve checking the context types and all that crap
the problem with the IsInScope approach is that it doesn't prioritize scopes
well it tries
ugh
 
8:39 PM
@RubberDuck I learned about gates from Wiki, and I learned the electrical circuits behind them in a class last fall.
 
9:04 PM
ooh shiny
        var referencedProjects = qualifiedParent.Project.References.Cast<Reference>()
            .Where(reference => !reference.BuiltIn && !reference.IsBroken)
            .Select(reference =>
                reference.VBE.VBProjects.Cast<VBProject>()
                .SingleOrDefault(vbp => vbp.FileName == reference.FullPath))
            .ToList();
 
\[[**retailcoder/Rubberduck**](https://github.com/retailcoder/Rubberduck)\] [**Hosch250**](https://github.com/Hosch250) pushed commit [**c2445f44**](https://github.com/retailcoder/Rubberduck/commit/c2445f444fe31895de249ec1442a3533d57dda96) to [**next**](https://github.com/retailcoder/Rubberduck/tree/next): Merge pull request #513 from Hosch250/next

Refactor signature adjustment
 
Damn, this is scarier than actual Russian roulette. At least with the real thing you don't have to deal with the consequences. — Manos Dilaverakis Nov 11 '09 at 16:22
 
I think I have something worth trying
        public Declaration Resolve(string identifierUsage, string currentScope, QualifiedModuleName qualifiedParent)
        {
            var identifiers = identifierUsage.Split('.');
            Declaration result = null;
            QualifiedModuleName parentModuleName = qualifiedParent;

            for (var i = 0; i < identifiers.Length; i++)
            {
                var identifier = identifiers[i];
                var isLeaf = (i == identifiers.Length - 1);

                result = identifier == Tokens.Me
 
9:16 PM
Try it then.
 
Note for OS/X users, the barrel is completely loaded. — Evert Aug 15 '09 at 22:08
@Hosch250 I just need to figure out how to pass the identifierUsage string now.
and if it works, well, it's a thousand times simpler than what I have now, and it handles inter-project references.
 
Russian roulette sounds scary.
I would never try it.
Climbing mountains or visiting the north pole, sure, but not Russian roulette.
 
@Hosch250 It's more stupid than scary, IMO
 
Both.
 
@ticker how many tags can one fit in a title?
ah, changing strategy. returning void and spawning events instead of returning a Declaration.
this way I can react (i.e. add references) to Foo, Bar and Baz as they're being resolved in Call Foo.Bar.Baz
looks pretty damn clean
        public void Resolve(string identifierUsage, string currentScope)
        {
            var identifiers = identifierUsage.Split('.');
            var parentModuleName = _qualifiedParent;

            for (var i = 0; i < identifiers.Length; i++)
            {
                var identifier = identifiers[i];
                var isLeaf = (i == identifiers.Length - 1);

                var result = identifier == Tokens.Me
                    ? Resolve(_declarations[_qualifiedParent.ComponentName], _qualifiedParent)
 
9:31 PM
The trouble with getting projects this far is it can be hard to make one of the core things cleaner without busting all the rest of the code, as I learned with my previous app.
Especially when you don't use interfaces.
 
IdentifierReferenceListener has exactly 1 usage in the code...
 
Fine by me!
I didn't mean anything in particular, really, just an observation.
Like, it would be really hard at this point to remove ANTLR.
Or would it?
It almost seems like RD is an extension of ANTLR.
 
removing ANTLR is out of the question
 
Lol.
 
6
Q: Rubberduck VBA Parser, Episode V: The ANTLR Strikes Back

Mat's MugI changed my mind. I don't want to implement 200-some Node classes. Instead, I'll be working directly with the ANTLR generated classes, to implement the Rubberduck code inspections, unit test method discovery, the "Code Explorer" tree view, and everything else Rubberduck might need a parse tree f...

it was an all though-out design decision ;-)
 
9:40 PM
\[[**retailcoder/Rubberduck**](https://github.com/retailcoder/Rubberduck)\] [**Hosch250**](https://github.com/Hosch250) pushed commit [**f7122250**](https://github.com/retailcoder/Rubberduck/commit/f71222502cda283a15848b51ce60d211bc504d1a) to [**next**](https://github.com/retailcoder/Rubberduck/tree/next): Merge pull request #2 from retailcoder/next

Next
 
I'm not sure how many times I've committed today, but its a lot.
 
[retailcoder/Rubberduck] Hosch250 pushed commit 55c6d440 to next: Redo letter signature adjustment
\[[**retailcoder/Rubberduck**](https://github.com/retailcoder/Rubberduck)\] [**Hosch250**](https://github.com/Hosch250) pushed commit [**a199af5a**](https://github.com/retailcoder/Rubberduck/commit/a199af5a20e62182bfca38a7d6b5c5752cf62be0) to [**next**](https://github.com/retailcoder/Rubberduck/tree/next): Merge pull request #514 from Hosch250/next

Redo letter signature adjustment
 
@Hosch250 the parts of it they you're diving into, yes. Other parts don't or barely touch it.
 
I like refactoring.
 
@RubberDuck huh?
ParseException
 
9:46 PM
Bug caught.
In drag/drop, it doesn't remove/insert, it swaps the value dragged and the value dropped on.
 
401
A: What is your best programmer joke?

James Curranchar*lie; double time, me= !0XFACE, not; int rested, get, out; main(ly, die) char ly, **die ;{ signed char lotte, dear; (char)lotte--; for(get= !me;; not){ 1 - out & out ;lie;{ char lotte, my= dear, **let= !!me *!not+ ++die; (char*)(lie= ...

That is hilarious
    get - !out;

    if (not--)

    goto hell;

        exit( (char)lotte);}
 
[retailcoder/Rubberduck] Hosch250 pushed commit 2e42d872 to next: Fix drag/drop bug, refactor reordering calls
\[[**retailcoder/Rubberduck**](https://github.com/retailcoder/Rubberduck)\] [**Hosch250**](https://github.com/Hosch250) pushed commit [**8dffb010**](https://github.com/retailcoder/Rubberduck/commit/8dffb0104b4e8e85ee4e4ae17b5ea22f7dba6d22) to [**next**](https://github.com/retailcoder/Rubberduck/tree/next): Merge pull request #515 from Hosch250/next

Fix drag/drop bug, refactor reordering calls
 
10:12 PM
Hmm, caught a bug.
Fixed the bug.
 
R#erize? lol
 
[retailcoder/Rubberduck] Hosch250 pushed commit 1f25bc95 to next: Fix bug when reordering interface implementations
\[[**retailcoder/Rubberduck**](https://github.com/retailcoder/Rubberduck)\] [**Hosch250**](https://github.com/Hosch250) pushed commit [**90b2deb5**](https://github.com/retailcoder/Rubberduck/commit/90b2deb5728b7ada02fc1e47ad93e30f155a612e) to [**next**](https://github.com/retailcoder/Rubberduck/tree/next): Merge pull request #516 from Hosch250/next

Fix bug and R#erize code
 
in Duga's Playground, 20 mins ago, by Duga
The time is 2015-05-18T22:00:00Z and @Duga is alive
OK, just one more thing to do for reordering parameters, AFAIK.
That is to allow the user to click anywhere to rename.
Oh, and the paramarray thingy.
 
10:32 PM
@Hosch250 I'd leverage the fact that VBA scopes can only be procedure-level; i.e. locate the target based on the Scope of the Declaration you're dealing with
Just a hint ;-)
 
You mean, keep going up the scope until I hit a type I can reorder?
I was thinking I would go up the parent, maybe.
Hmm, I can't go up the parent.
There is no parent to go up to for declaration types.
So now, let's see...
 
say you click on a parameter of method Module1.DoSomething: the Declaration for it will be scoped to Module1.DoSomething
 
Yes.
 
if you click on the method name, the Declaration for it will also be scoped to Module1.DoSomething
if your target is anything inside the procedure, the scope is also Module1.DoSomething
 
So, I can see the scope and all, but I'm not sure, hmm, I bet given that, I can dig the parent item out of _declarations.
1,188 commits
 
10:42 PM
wow
 
That is for Next.
Am I over committing?
 
no such thing
 
I'd rather "over commit" than under commit.
 
@Hosch250 of course - what I'm saying is that you can easily dig up that parent using the Scope
 
Yup.
I was thinking I would have to walk up the tree to the parent, but it didn't have a parent item.
 
10:44 PM
via Context you can
but it's more complicated
 
Nah, I've got it, I think.
 
if you're on an ArgContext, the parent is the ArgsListContext, so you'll want Parent.Parent
if you're inside the procedure, ....good luck.
 
Yeah, I'm using the scope.
Is there a simple way to get a substring with everything past a final character of unknown position?
Something tells me regex could do it, but Linq would be better if possible.
NVM, I've got it.
 
11:01 PM
not sure what you asked there, but great!
ugh. it's ..more complicated than what I had (of course). I need the find the Context the identifier is for :(
 
It is working!
It works if you click a variable name in the signature or in the body.
 
well done!
 
However, it has 1 caveat.
It doesn't work if you right-click on a keyword, like ByVal.
 
[retailcoder/Rubberduck] Hosch250 pushed commit 2afdbc46 to next: Reorder parameters from inside scope
\[[**retailcoder/Rubberduck**](https://github.com/retailcoder/Rubberduck)\] [**Hosch250**](https://github.com/Hosch250) pushed commit [**003d7429**](https://github.com/retailcoder/Rubberduck/commit/003d742932b54ba719132bf89811d0a4f7b36ab4) to [**next**](https://github.com/retailcoder/Rubberduck/tree/next): Merge pull request #517 from Hosch250/next

Reorder parameters from inside scope
 
11:16 PM
Doing the paramarray now.
 
@Hosch250 hmm... maybe using the context wasn't a bad idea for things in the signature then..
 
I'll work on it again later, I have a feeling this bit isn't quite done.
@Mat'sMug Quick question - how many ParamArrays can a method have?
 
OK.
 
and it has to be the last parameter
 
11:24 PM
I know that.
Now, one more question.
What are the rules about paramarrays and optional parameters?
Do the optional parameters come before the non-optional paramarray?
Are they not allowed to mix unless the paramarray is optional?
They can't exactly come after the paramarray.
 
ParamArray cannot be Optional
 
OK.
So, can a paramarray and optional parameters mix?
Or if you have one, is the other outlawed?
 
won't compile
 
Yeah, they won't mix.
Stupid me, I just tried it.
 
either you have optional parameters, or you have a ParamArray
 
11:27 PM
Next time, I'll try something that simple before asking.
 
lol
take this method from my List class:
Public Sub Add(ParamArray Values())
it allows you to do this:
 
I have an example built.
 
Dim myList As New List
myList.Add 1, 2, 3, 4, 5, 6
 
Yes, I know.
Thanks, anyway.
 
11:29 PM
Done.
 
[retailcoder/Rubberduck] Hosch250 pushed commit 3eac30b5 to next: Supports paramarrays
\[[**retailcoder/Rubberduck**](https://github.com/retailcoder/Rubberduck)\] [**Hosch250**](https://github.com/Hosch250) pushed commit [**8ca80e27**](https://github.com/retailcoder/Rubberduck/commit/8ca80e2700d85080c3222806a9ce1638da1706ac) to [**next**](https://github.com/retailcoder/Rubberduck/tree/next): Merge pull request #518 from Hosch250/next

Supports paramarrays
 
oh wow
 
I'm no expert, but that doesn't look good...
 
well that explains something doesn't it?
 
11:30 PM
testing out ye olde CrashPlan backups, then starting to shop for a shiny new SSD
 
@FreeMan last time I had HDD issues and ignored them, I fried my box.
 
If ya gotta replace, might as well upgrade.
#amiright?
 
#DamnRight
 
@Mat'sMug the whole box? CPU, MoBo, everything?
yikes!
 
well, no. but it wouldn't boot and I wouldn't buy a new HDD, so my Win 8.1 box has been collecting dust ever since.
 
11:32 PM
oh...
 
Pity.
 
suppose I could invest in a Win8.1 license from somewhere, too...
 
Want to send it to me to try my hand at fixing it.
@FreeMan DON'T.
 
@Hosch250 lol...
@Hosch250 eh? why no?
 
Wait for Win10 - Windows 7 users get it for free in the first year, and it RTM's in July.
 
11:33 PM
@RubberDuck do you know of a way to find ParserRuleContext children that have a specific known text? like, would that be what I'd need a Visitor for?
 
@Hosch250 fair enough.
that's their way of getting out of the "we had to support XP for 13 years and don't want to do it again" situation.
btw... ye olde restore is going to the spare drive spinnin' away in this box.
It needs to be migrated to ye olde server.
 
Possibly @Mat'sMug. More likely, you would need to know the types of children you'd want to visit.
 
@Mat'sMug Trying out the .Parent thing to loop up the tree - is there a way to convert a Parent from a ParserRuleContext.Parent to a Declaration?
 
@RubberDuck that's the thing. I don't care about the type (and I don't know it) - but I know what its text is and I want to get that child
@Hosch250 no
 
I'd have to get in front of my ide...
 
11:39 PM
Bother.
 
well you could try to find a declaration that has a Context that reference-equals that Parent
 
There are a few different Visit and VisitChild methods.
 
OK.
 
basically I have a way to resolve everything very cleanly, but then I'm losing the Context along the way - I can pass it the "parent" context and work from there, but then whenever I encounter an... hey wait a minute.
...
that'll be an AmbiguousIdentifierContext in all but one case.
        public void Resolve(string identifierUsage, string currentScope, ParserRuleContext context, bool isAssignmentTarget = false, bool hasExplicitLetStatement = false)
        {
            var identifiers = identifierUsage.Split('.');
            var parentModuleName = _qualifiedParent;

            for (var i = 0; i < identifiers.Length; i++)
            {
                var identifier = identifiers[i];

                var isLeaf = (i == identifiers.Length - 1);

                var result = identifier == Tokens.Me
^^ the context will not be the one I need here :(
 
I think it's possible that a visitor is called for here, but I can't say I know enough about what you're doing to say.
 
11:50 PM
once again, I'm no expert, but this doesn't look good:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     POSR-K   001   001   051    NOW  68478
  2 Throughput_Performance  -OS--K   252   252   000    -    0
  3 Spin_Up_Time            PO---K   083   074   025    -    5229
  4 Start_Stop_Count        -O--CK   100   100   000    -    53
  5 Reallocated_Sector_Ct   PO--CK   252   252   010    -    0
  7 Seek_Error_Rate         -OSR-K   252   252   051    -    0
  8 Seek_Time_Performance   --S--K   252   252   015    -    0
lifetime power-on hours is only 15,209. 633 days.
I find it hard to believe that this drive's only been running for 2 years, though. that can't be right. Either that or my memory is really failing me.
Error 58753 [0] occurred at disk power-on lifetime: 15209 hours (633 days + 17 hours)
 
It would be a lot longer than two years if the computer was asleep have the time.
 
58753 errors!!!
@Hosch250 I leave it up 24/7.
too impatient to wait for it to boot...
 
So, if that number is active time running, you could have the drive running 4 years.
@FreeMan Me too - but I put the computer to sleep each night (by shutting it).
The default sleep time is after 15-20 minutes of inactivity, I think.
 
desktop machine. Torrent client running. it's spinning 24/7.
all things considered, I don't replace too many failed HDDs.
 
I'm not looking forward to replacing mine.
 
11:56 PM
4 desktops, 1 server (12 drives, 20TB) - things actually run pretty smoothly.
most of the time
 
I've had my computer almost three years.
And I have a big SSD cache built in, and I hear those are hard on HDD's because they wind up/down more.
 
yeah, that time frame sorta makes sense, now that I think about it. Bought this for the eldest son his Sr. year of HS, but he never really used it because he had his phone. Then we got him a laptop when he went into the Army, so I acquired the machine when mine died.
I guess 2 years is about right.
 
How's he doing?
 
Shhh.... don't tell the wife there's a drive sitting in the old machine, this is an excuse to UPGRADE!
doing great. deploys in about 6 weeks, though. We're not really looking forward to that... :/
@Hosch250 thanks for asking.
 

« first day (346 days earlier)      last day (2834 days later) »