« first day (1698 days earlier)      last day (1482 days later) » 

4:03 PM
ugh. so close, yet so far.
 
yeah cesium shows up on youtube
but not francium
 
@Comintern does anything strike you as wrong here?
        private string _vendorFilter;
        public string VendorFilter
        {
            get { return _vendorFilter; }
            set
            {
                if (_vendorFilter != value)
                {
                    _vendorFilter = value;
                    _vendors.Refresh();
                    OnPropertyChanged();
                }
            }
        }

        private ICollectionView _vendors;
        public ICollectionView Vendors
        {
            get { return _vendors; }
 
appearantly francium is pretty radioactive
so if you reacted it with water it would spew a lot of radioactive material all over the place
 
Apparently it's pretty expensive too.
> Only a few atoms of francium have been produced commercially, so if you wanted to produce 100 grams of francium, you could expect to pay a few billion U.S. dollars for it.
Let's go throw that in a lake.
 
xD
 
4:04 PM
the VendorFilter setter is being invoked as I type in the SuggestionBox control, but the ...oh wait
#rubberducked
 
gets a telescope to watch it from a couple miles out
 
You shouldn't need OnPropertyChanged(); in the Vendors setter.
 
no, still not working
 
Pretty sure that breaks the binding and re-loads the entire thing.
 
<DataGridTemplateColumn Header="Vendor">
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <local:SuggestionBox Text="{Binding VendorFilter, UpdateSourceTrigger=PropertyChanged}"
                                    ItemsSource="{Binding Vendors}"
                                    ItemTemplate="{StaticResource CodeNameDropdownTemplate}">
            </local:SuggestionBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
oh, idiot
 
4:07 PM
Are you re-creating the ICollectionView anywhere?
 
not as bad as mixing up selenium and cesium
 
@Comintern the idea is to load it once in the MainWindowViewModel, then pass a reference to it to every FabricViewModel in FabricsViewModel.Items
i.e. I have this in the MainWindowViewModel:
 
Then _vendors.Filter can just go in the ctor (or where-ever it is you're creating the ICollectionView).
 
        Styles = CollectionViewSource.GetDefaultView(searchItems.AvailableStyles());
        Vendors = CollectionViewSource.GetDefaultView(searchItems.AvailableVendors());
        Items = CollectionViewSource.GetDefaultView(searchItems.AvailableItems());
hm
 
If the delegate isn't changing, you only need to set it once.
 
4:10 PM
dang this is all kinds of tangled
 
Every time I've used an ICollectionView now, it only needed an auto-property.
Any changes to the underlying ObservableCollection get events forwarded, so the only time you should need to fire OnPropertyChanged() is when the backing collection is completely replaced.
And you shouldn't ever have to do that either - you can just clear the backing collection and add the new items in so you don't have to mess around with the setup of the view at all.
 
aye. I think I'll only need one of the three collections to actually update at one point
I'll start by getting them to load nicely once though
 
I'm assuming that the Available* are returning ObservableCollections?
 
IReadOnlyList<ICodeName>
needs to be observable?
 
You're binding on the ICodeName items?
 
4:24 PM
ItemTemplate="{StaticResource CodeNameDropdownTemplate}"
yeah
<DataTemplate x:Key="CodeNameDropdownTemplate">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="75" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <TextBlock Grid.Column="0" Text="{Binding Code}"
                   Foreground="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}" />
        <TextBlock Grid.Column="1" Text="{Binding Name}" />
    </Grid>
</DataTemplate>
 
I think one-way binding might work, but I'm not sure.
I'd copy them to backing observables
 
this damned SuggestionBox has been the bane of my existence for two weeks now :/
yeah I'm making them observables now
worked nicely with a single-record edit screen paradigm... much more complicated to get working as a combobox grid column
 
A Suggestion Box seems like it would be a self perpetuating feature request device.
 
:shudders:
 
4:28 PM
it's the best name I could find for an editable combobox that essentially works like google's autocompleted search box
minus the creepy AI stuff
 
Nice. So it's doing individual filters on each column?
I.e. the union of all filters?
 
row
no, no
basically I have a grid that lists fabrics
one of the columns is the vendor
it worked fine with a combobox, but it's not great UX
users want to type the (partial) name or (part of the) code of a vendor, and pick from a filtered list
 
Gotcha.
 
seems to me that it's best to have a edit button and jump out to a modal dialog to edit that.
 
in-place edit is the simplest for the user though
 
4:32 PM
Modal dialogs are obnoxious.
 
sure, it's cool to be able to edit it right there but to my thinking, that only makes it more hard to manage, especially if there needs to be validations or whatnots aroundt eh edits.
 
validation is the easy part :)
 
It sounds like the IntelliSense list.
 
pretty much
<ComboBox x:Class="MyApp.View.Controls.SuggestionBox"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
          xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
          xmlns:local="clr-namespace:MyApp.Views.Controls"
          IsEditable="True"
          mc:Ignorable="d"
          MinWidth="75"
          d:DesignHeight="18" d:DesignWidth="150">
^ steal away
 
4:35 PM
renaming a bunch of variables in a big project is painful. :(
 
too many globals?
 
no. they are all local variables in a single procedure.
~3-5 seconds of waiting between each rename.
 
Parsing or inspecting?
 
only that module should get reparsed then, no?
@this how long for doing it manually?
 
4:37 PM
Don't forget to estimate the debugging time if you're doing it manually. :-D
 
^
i just don't trust myself.
 
@Comintern Just tested and still same failing errors.
 
Ctrl+H would be 3-5 seconds per variable too, unless you'd cowboy it
 
@Comintern should be just parsing
 
@IvenBach Can you drop your build output in a text file and pastebin (or something) it here?
 
4:38 PM
do inspections get aborted on reparse now?
@Duga huh, now it's that repo that's 5 stars ahead
 
not sure if they do. I would hope so? Otherwise inspections going to get messed up in middle of a new parsing run.
 
I thought they did - checking.
 
@Comintern do I need the observable persisted at instance level though? like, if I'm lazy can I just inline them?
        Styles = CollectionViewSource.GetDefaultView(new ObservableCollection<Style>(availableStyles));
        Vendors = CollectionViewSource.GetDefaultView(new ObservableCollection<ICodeName>(availableVendors));
        Items = CollectionViewSource.GetDefaultView(new ObservableCollection<ComponentItem>(availableItems));
 
@this It throws on cancellation. A bunch of these: token.ThrowIfCancellationRequested();
 
4:42 PM
cool
 
@MathieuGuindon That should work, but I'm not sure how that behaves on tear-down. I'd be afraid of leaking the binding.
That might just be an over-abundance of caution though.
 
makes sense
thinking again, seems it's only the vendors I can afford to load once
 
@Comintern I'm starting to think it's not an issue with the RD codebase but a stray cosmic ray that altered a bit on my HDD.
 
which is why I suggested to pour coffee on your computer and then tell your boss you need a new one.
:\
 
lol
@this tried that, it only got me a half-working new keyboard though
 
4:49 PM
FWIW - this is the first error:
12>C:\Users\ivenbach\source\repos\Rubberduck\Rubberduck.Core\UI\About\AboutCont‌​rol.xaml(9,14): error MC2000: Unknown build error, 'Could not load file or assembly 'file:///C:\Users\ivenbach\source\repos\Rubberduck\Rubberduck.Core\obj\Debug\net‌​46\Rubberduck.Core.dll' or one of its dependencies. The system cannot find the file specified. Line 9 Position 14.'
@MathieuGuindon the problem was that you spilled it on keyboard, not on the motherboard. They be two different things, ya know?
Oh, and make sure to spill it sideway, not on the top.
 
duly noted
 
so that it goes in the vent
:D
 
@this Why would it be trying to load Rubberduck.Core.dll while it's compiling Rubberduck.Core.dll?
Thread 12 is the Project: Rubberduck.Core thread.
 
Duck check: using bash I'm showing one file modified Rubberduck.Resources./RubberduckUI.resx. The extra period before / is odd. I've tried get checkout -- Foo but it fails. Any suggestions?
 
isn't it because it's compiling XAML via its .g.cs?
do you actually see a / in the filesystem?
i want to say that this is not legal...
 
4:54 PM
Right, but it shouldn't do that unless the first build step succeeds, right?
 
i'm not sure but I thought it starts w/ the temporary project
which is why we see this output core_tmp_flkjdlfjd.csproj somewhere else when it succeeds
 
hkzz2tyf.tmp_proj in this case I think.
 
yeah
That would be the 2nd pass, I think.
I think to see really waht's going on, @IvenBach needs to bump up his MSBuild output
 
I'd have to agree.
 
I think the output was for Minimal (the default)
don't have VS in front of me ATM, but think needs to e one or two higher than Minimal
Errors? Warnings?
 
4:59 PM
Whereagain in VS do I up it to 11?
 
Diagnostic is what we want.
 
that's not the most verbose, is it?
 
Tools -> Options -> Projects and Solutions -> Build and Run -> MSBuild project build output verbosity
 
we definitely don't want Trace
that'd make the log so ridiculously tall that it'd stretch the way to the moon and back.
 
It goes Quiet - Minimal - Normal - Detailed - Diagnostic
Detailed then?
 
5:01 PM
Diagnostic?
 
We could see if that would fit on pastebin :-P
 
Diagnostic = It appears ducky ate 32 kernels of corn last night.
 
let's go w / Detailed
 
I really wish you could set that per project.
 
oh that remidns me
@IvenBach build the Ruberduck.Core project ONLY
don't build the solution.
I don't want all that crapload from other projects.
 
5:03 PM
@this Now you tell me.
2
 
IKR? I'm very good at this kind of stuff.
 
Without yalls help I'd still be adrift in the ocean of uncertainty. This ponds a whole lot quieter and nicer.
 
Who says we aren't uncertain too?
 
You have the skills to figure things out. I'm just starting on that route.
Line 1246 is where first failure is stated.
 
Wow path glob logging and all. Good call on not doing Diagnostic.
 
5:07 PM
IKR?
FYI on line 985 we see XAML compiling
then we generate BAML and g.cs at ~ line 1100
 
What are the contents of \Rubberduck\Rubberduck.Core\bin\Debug\net46 after that build run?
 
and the 2nd pass starts at 1156
 
I'm thinking it's missing an external assembly.
 
so I guess we now know that it's failing as part of the 2nd pass in the XAML compilation. Which also explains why we end up with the temporary project (which is a result of the 1st pass XAML compilation).... right?
 
@IvenBach Are any of these files missing?
 Directory of E:\Rubberduck\Rubberduck.Core\bin\Debug\net46

01/29/2019  11:12 AM    <DIR>          .
01/29/2019  11:12 AM    <DIR>          ..
07/11/2017  08:41 PM           207,872 Antlr4.Runtime.dll
01/17/2019  02:37 PM    <DIR>          cs
01/17/2019  02:37 PM    <DIR>          de
04/20/2018  02:06 AM            52,224 EasyHook.dll
01/29/2019  11:12 AM                 0 files.txt
01/17/2019  02:37 PM    <DIR>          fr
01/17/2017  11:20 PM            66,048 GongSolutions.Wpf.DragDrop.dll
05/26/2018  09:40 PM           126,976 HtmlAgilityPack.dll
Ignore files.txt - that got created with the shell piping.
Mainly concerned with .dll extensions.
@this Yeah, that was my thought too. That's why I'm curious if the referenced .dlls are showing up in the build directory.
 
5:15 PM
@Comintern Anything within the net46 directory is not there.
 
Oh hell, they're going to a temp directory.
 
what? they're blank?
 
^
All respective net46 drives are empty.
Only the ones that fail if memory is correct.
 
look in %TEMPDIR%
do you see anything that suggests that it might be debris from the build?
 
don't have that directory
 
5:19 PM
%TEMP%?
I always get it wrong
if you see too much files, blank out the directory and build the RD.Core project only
 
End If
   End If
      End If
        End If
          End If
            End If
              End If
> Achievement unlocked: inverse indenter
 
There's a couple folders that get created.
 
does it correspond to the contents of the net46 that ComIntern listed above?
@MathieuGuindon MCVE or it didn't happen. :D
 
0
Q: How to stop certain rows from printing if one single cell is blank

C MigI am trying to create a macro to print the active sheet. There is always data on page 1,2,3,6 so I have selected "" for the cell and have a cell selected that will never have data in it so they will always print. For pages 4 & 5 I only want them to print if there is something in one specific cell...

 
5:23 PM
Oh, I was thinking you somehow got a negative number through the SmartIndenter. Whew!
 
@this Nothing that immediately jumps out at me.
 
This code doesn't compile - you've got an extra End If in there. — Comintern 20 secs ago
Indenter FTW.
 
5:41 PM
@IvenBach I'd check to make sure all of these files exist too:
	Line 515: 1>            HintPath = '..\libs\Infralution.Localization.Wpf.dll'
	Line 551: 1>            HintPath = 'C:\Users\cpaustell\.nuget\packages\antlr4.runtime\4.6.4\lib\net45\Antlr4.Runtime.dll'
	Line 554: 1>            HintPath = 'C:\Users\cpaustell\.nuget\packages\avalonedit\5.0.4\lib\Net40\ICSharpCode.AvalonEdit.dll'
	Line 557: 1>            HintPath = 'C:\Users\cpaustell\.nuget\packages\easyhook\2.7.6684\lib\net40\EasyHook.dll'
	Line 560: 1>            HintPath = 'C:\Users\cpaustell\.nuget\packages\gong-wpf-dragdrop\1.1.0\lib\net46\GongSolutions.Wpf.DragDrop.dll'
The ..\libs one is relative to \Rubberduck\Rubberduck.Core, so that one would be in \Rubberduck\libs
 
@Comintern Checked every singe file, they all exist.
 
5:57 PM
the thing that annoys me is that this is the very first error as we start to compile the 2nd pass:
1> C:\Users\cpaustell\source\repos\Rubberduck\Rubberduck.Core\UI\About\AboutControl‌​.xaml(9,14): error MC2000: Unknown build error, 'Could not load file or assembly 'file:///C:\Users\cpaustell\source\repos\Rubberduck\Rubberduck.Core\obj\Debug\ne‌​t46\Rubberduck.Core.dll' or one of its dependencies. The system cannot find the file specified. Line 9 Position 14.'
it's saying it can't find the Core.dll?
(that's line 1193, BTW)
 
Yes. The reason it has to be there is that there's a dependency on the controls from the code generated from the xaml files.
And any other static resources - the log is mainly complaining about converters.
 
right but converters are from the Core.dll, right?
 
Yep.
 
IOW, we need it built in order to get XAML compiled.
Shouldn't we be looking at the tmp_xkldfdlkfjd_ instead?
 
Right. That's why the compile is 2 steps. It's probably also why I always have to cancel the build and restart it when I make xaml changes.
 
6:01 PM
and you haven't had to do that anymore since the deployment PR went out, right?
 
I thought the .g.cs files were generated into the obj folder.
 
@Duga is it just me here? I mean, it looks like the two components need to use the same input code.
 
@this I have, but it's only because I haven't sync'd the branch I'm working in.
 
OK, I'm not sure if the changes in the build actually does anything - I didn't deal with XAML specifically in that PR
 
@MathieuGuindon That's my take too. I probably would have chained the assignments: var inputCodeWithRecovery = inputCodeWithoutRecovery =
 
6:08 PM
that, I wouldn't have ;-)
 
C habit.
 
that would be messed up in VBA.
thanks to its conflating the equality operator with the assignment operator.
 
You can chain assignments in C#?
 
not sure. never tried that.
 
yes. an assignment always yields the assigned value.
 
6:16 PM
but can a clown override the assignment?
 
not that I know of
 
I hope not. That would make for a confusing AF code to see foo = bar = "abc" and have it come out "def"
 
> C:\Users\cpaustell\source\repos\Rubberduck\Rubberduck.Core\UI\About\AboutControl‌​.xaml(9,14): error MC2000: Unknown build error, 'Could not load file or assembly 'file:///C:\Users\cpaustell\source\repos\Rubberduck\Rubberduck.Core\obj\Debug\ne‌​t46\Rubberduck.Core.dll' or one of its dependencies. The system cannot find the file specified. Line 9 Position 14.'
Hmmm.
2
Q: Build error MC1000 'Object reference doen't set to instance of an

DemarschI've tried to build my WPF project from VS 2012 but at some point it gave me error with message like this: Unknown build error. Object reference does not set to an instance of an object. However next time I tried to build it everything was fine. So I continued to write code and build and ag...

 
@IvenBach The reason to do it in C is that it usually avoids a stack push if you're compiling without optimizations.
 
6:20 PM
@this I can do that.
 
yeech
 
IKR?
 
join a obfuscated c# code contest?
 
public string Value { get { return _value; } set { _value = "DEF"; /* mwahaha */ } }
 
No, although that works too.
 
6:21 PM
wait, that's a property. I'm talking about overloading the assignment operator
 
for some values of "works"
 
@this If you overload the assignment operator, it would overload on both of them though.
 
52
Q: Overloading assignment operator in C#

Carson MyersI know the = operator can't be overloaded, but there must be a way to do what I want here: I'm just creating classes to represent quantitative units, since I'm doing a bit of physics. Apparently I can't just inherit from a primitive, but I want my classes to behave exactly like primitives -- I j...

 
I suppose you could make the overload return some random string...
 
back to my point -- yeech
 
6:22 PM
> then creating an implicit conversion operator
Yep, precisely.
 
Kids, don't do it at home.
 
Actually, know what, kids. Don't do it anywhere!
@Hosch250 we don't have a EventSetter anywhere, right?
 
I think it's more likely that it can't instantiate the converters.
 
@MathieuGuindon "Foo|" and Shift+Enter yielding the linebreak is sexy. TYVM!
 
6:30 PM
wondering if he needs to try out the <AlwaysCompileMarkupFilesInSeparateDomain>true</AlwaysCompileMarkupFilesInSepar‌​ateDomain>
that's from Hosch's first link
 
That could be. I'm not sure why that would be specific to the build machine though.
 
because it came off the short bus?
 
LOL
 
not 100% sure where that property goes, though.
my random guess would be this line
 
ugh. now having closure issues.
 
6:36 PM
so line 15 is where @IvenBach might want to try the setting out, both for true and false to see if it does anything fo rhim.
@MathieuGuindon put the handle on the side farthest from the hinges. That'll close it more easily.
 
@IvenBach :) now try Ctrl+Enter!
wait that's not Shift+Enter, it's just Enter while inside a string ilteral
 
@this lol
it'll open more easily, too.
Speaking of difficult to open... My garage door was frozen shut this AM. Had to break out the heat gun and salt to get it to open. It's only supposed to be colder tomorrow.
 
@MathieuGuindon Can you have it work on multiple enters "Foo" & _ CRLF "Bar|" entering doesn't add another line continuation character.
 
@IvenBach check your AC settings
 
@this It's really just any malformed WPF could cause it.
 
6:40 PM
@IvenBach 'cause you've got broken syntax
 
And yes, I'm pretty sure we have a couple.
@FreeMan LOL.
 
@FreeMan Whereat?
 
"Foo" & _ vbCrLf & "Bar|" should absolutely yield another _ & "|"
 
The one benefit of parking outside.
And the one benefit of long commutes is it charges your battery.
 
"Foo" & _
"Bar|"
Yields
 
6:41 PM
@Hosch250 the advantage was that I was inside the garage where the wind wasn't blowing while I was doing that. Of course, it helps that I have a heat gun & lots of extension cords, too.
 
"Foo" & _
"Bar
"
 
@IvenBach it's configurable
 
^
#WorksForMe
last time I tried...
 
You don't have to unmelt the garage, though, if you don't need to open it.
 
6:42 PM
nothing changed with AC since 2.3.1 though, so, should still work
 
Wait, are you in MN, @FreeMan?
I thought you were in CA...
 
and yes, a very small default value is intentional -- I didn't want to default it to the maximum 20
 
@MathieuGuindon AHA! Found it.
@MathieuGuindon Elsewise "Why does RD linebreak forever" would be the new SO question.
 
the VBE won't let you add more continuations beyond 20
 
Ctrl+Enter is nice.
 
6:46 PM
@Hosch250 Nope, I'm in IN. @IvenBach (among others, I think) are in CA
 
@IvenBach now make one too many and hit backspace
 
:sparkly-eyes: OOOoooOOOoooh!
 
@Hosch250 I've de-iced a car with about 1.5" of ice on it. Outside the garage. In an ice storm. With the wind blowing. I'll take Melting the garage door from the garage floor for $1000, Alex. Any. Day. Of. The. Week.
 
All your autocompletion are belong to duck.
2
 
ok, closure problem intensifies. wtf is going on.
    private Func<string> _filterFunc => () => VendorFilter;
                _vendors.Filter = e =>
                {
                    var entity = (ICodeName)e;
                    var filter = _filterFunc();
                    return string.IsNullOrEmpty(filter) || entity.Code.Contains(filter) || entity.Name.Contains(filter);
                };
^ breakpoint on return, filter is null and I've no idea how that's possible
 
6:50 PM
@MathieuGuindon :
 
@FreeMan I'd work from home.
@FreeMan I've got a position for him on the SWAT team :P
 
@Hosch250 I was in college w/my girlfriend visiting her parents for Christmas. In 1992. We didn't have "work from home" as an option...
actually, would have been more like '89. we were married in '90...
 
LOL.
 
shhhhh... don't tell my wife I had a girlfriend in 1992.
 
@FreeMan I have a way to make you feel old, I think
 
6:53 PM
GET OFF MY LAWN!
 
@FreeMan huh... You got the same bulging vein as mug does. What a coincidence.
 
lol
 
@MathieuGuindon Does the closure not have access to the private member? You could just put a Filter(string) function on the ICodeName interface if that's the view model.
 
I'm starting to think it's a threading problem... the next thing up the call stack is the VendorFilter setter; in break mode _vendorFilter is null, but if I break in the setter (just after _vendors.Refresh();) then I can see it has the expected value.
the good news is that typing in the SuggestionBox runs the VendorFilter setter
hmm hold on a minute
nope
@Comintern trying that now
 
7:04 PM
@IvenBach did you try that suggestion? chat.stackexchange.com/transcript/message/48766520#48766520
 
@this Not yet. On my ToDo list. I'll report back when I try it.
 
ugh. not helping, problem is with getting the string value to feed it
well it does look cleaner though
                _vendors.Filter = e => (e as IFilterable)?.IsIncluded(_vendorFilter) ?? true;
 
Put a FilterString property on the IFilterable interface and just bind to it instead of passing a parameter?
 
that's awkward, but it might just work
actually, not that awkward.... it makes every row have its own filter... which is pretty much it
 
reading the text of this one makes my brain hurt:
-1
Q: how do i compare two ranges of data then copy and paste range that doesnt match

rubberduckiegodthis site has been very helpful in getting my code to work and i am almost done but i am struggling in returning values of a range if a condition is not met. basically if the compared value if it doesnt match to copy the it plus the five cells to the right and paste in next available line in Outp...

 
7:12 PM
"to copy the it"?
I'd suggest using an indenter. You don't indent code just because it looks nicer (it does) - you indent code because it makes the control flow obvious when you're looking at it. — Comintern 28 secs ago
It's "Indent your code and you'll see what's wrong" day on SO apparently.
 
ok it's just not cooperating and I've no idea why and I need to get lunch before I go unconscious
 
7:30 PM
@Comintern you're so nice about it. Of course, this was posted by "rubberduckisgod" the user...
maybe consider suing him for besmirching the good name of Rubberduck?
:)
 
*rubberduckie
 
meh. close enough
 
7:46 PM
Rubberduck, IE is god?
Um, ok.
 
@FreeMan IE as in "id est" or as in "Internet Explorer"?
 
Homo ecce qui est rubberduck?
 
or just a diminuitive?
 
If it were, that's a strange use preceding god.
 
@this Latinam RESX file agis?
 
7:52 PM
Nope. That, plus few more words is the extent of my Latin.
 
please no
 
But, but, that'd make ducky look smart!
 
on the other hand... you might be able to get a few good latin.se questions out of it
 
I can see Mat's first post on latin.se: Vivifica Latinam velis? Interpretari et anatis!
and get few good laughs, I suppose. Backtranslation does not suggest that this is a high quality translation.
 
I'd put the question word first
 
7:57 PM
My English input was "Want to revive Latin? Translate the ducky!"
 
@Comintern ummm... yes!
 
@this wondering where the et came from...
 
IKR?
 
Velis vivificare Latinam? Anatis interpretari!
 
so if I input "Translate the duck", I get "Anas transferendum"
 
7:58 PM
google translate kinda messes up the multiple possible translations in the first sentence
also verbs usually go to the end...
 
"Do you want to revive Latin?" => "Non vis vivifica Latina?"
 

« first day (1698 days earlier)      last day (1482 days later) »