« first day (1776 days earlier)      last day (1404 days later) » 
00:00 - 19:0019:00 - 00:00

12:01 AM
RELOAD!
[bruglesco/FleetCommand] 3 commits. 99 additions. 109 deletions.
[rubberduck-vba/Rubberduck] 1 opened issue. 3 issue comments.
[Zomis/minesweeper-server] 8 commits. 525 additions. 1150 deletions.
[Zomis/xploria-perms] 1 commit. 1 addition. 1 deletion.
[Minesweeper] Games Played: 152, Bombs Used: 112, Moves Performed: 20658, New Users: 17
 
 
1 hour later…
1:06 AM
TFW you wake up from a nap and realize you were dreaming about code the hole time.
 
1:57 AM
0
Q: Recursive File Search Using the Dir() Function

TinManThere are plenty of examples of using the FileSystemObject to recursively search for a file in subfolders. I thought that it would be interesting to write one using the Dir() function. I was wondering if there is a way to return the found file without using the extra FoundFile parameter? Fu...

 
2:28 AM
> Same again, though Excel had been open, mostly idle, for much longer. Please let me know if there's anything more helpful I can do next time.

Version 2.4.1.4627
OS: Microsoft Windows NT 10.0.17134.0, x64
Host Product: Microsoft Office x86
Host Version: 16.0.11425.20204
Host Executable: EXCEL.EXE

[DotNet RCW exception 20190417.txt](https://github.com/rubberduck-vba/Rubberduck/files/3087669/DotNet.RCW.exception.20190417.txt)
 
 
2 hours later…
4:04 AM
 
Mini star shower.
 
 
2 hours later…
6:36 AM
 
 
2 hours later…
8:38 AM
Anyone come across this: analystcave.com/excel-vba-multithreading-tool and have any thoughts?
 
9:26 AM
@Duga @this that one is sitting in your PR, IIRC
 
9:44 AM
Since the new report is on refresh, I think the cause is different.
I guess the project on declarations is generally stale after a reparse.
I will have to test.
However, I think to allow getting the project from a declaration in a clean way, project declarations need a reference to the projects provider.
Actually, not allowing to get the project from a declaration directly would be the cleanest solution.
 
10:48 AM
@Vogel612 Besides my PR only deals with commands - there are more subsystems that needs to be hooked up similarly.
@M.Doerner would this extension be a clean way of getting the project? All declarations would have a reference to a QMN. Making it a method rather than a property avoids holding reference to it until it's actually needed, though it shifts the responsibility to the caller.
 
11:04 AM
> Do you think it would be possible to highlight the function/sub/method? RD has so much more capability than the native explorer, it would be nice to keep the experience consistent.

I also understand that the update rate/overhead required to keep the explorer in sync at the function level might be too great. Especially if you have multiple codepanes and are actively clicking between them.

Don't know. Just furthering the idea a little.
 
11:46 AM
morning all. time for another git question:
I have set up one project, and git remote -v shows origin <URL> (fetch) and origin <URL> (push). When I set up another, distinct project, will I have an origin for both projects, each with their own <URL> or will this one be origin and the next one be project2origin?
i.e., is "origin" relative to the project directory I'm currently in (on my local machine), or is it "global" to my local git installation?
 
@this I think the extension method is not really a clean way. If a caller really wants the project, it should use the projects repository.
In particular, the CE already has a reference to the state and thus the projects provider.
 
My question really leads to whether I need to have all of my short names include info about the project (proj1master, proj1next, proj1branchA) or if simple names (master, next, branchA) are all it takes because they're unique within the project.
 
I have to do some research, but I think the CE does not necessarily need the project at all to refresh the references.
We should already cache them somewhere when we load them.
 
@M.Doerner Ok - IIRC, it was there for a case where the project provider was not available. I did consider whether it should be refactored to make use of it so that it would be accessible anywhere but never got around to it.
 
12:18 PM
> > Do you think it would be possible to highlight the function/sub/method?

Yup. Using the `SelectionChangedService` like Max suggested, we could even select treeview nodes for enum members and module variables if that's what's selected in the current code pane. I think it's a great idea!
 
@Duga There is one potential problem, though - if the module has been changed, and the parse tree is now stale, then selection will be in wrong place.
To avoid this, either we'll have to have background automatic parsing (!) or use VBIDE API to locate the element rather than relying on the cached selection in the declaration.
 
@this meh. better select what RD thinks is selected - tells the user they need to reparse. If everything looks and behaves like all is up to date, we'll have other kinds of problems.... no?
@FreeMan everything in a repository belongs to that repository
 
^^ that would almost be like the READY button being disabled when the parse is fresh, then enabling when I start editing.
 
I think it would make for a confusing user experience if they were allowed to select using stale data
 
@MathieuGuindon the more I thought about it and as I continued reading, that was the conclusion I was coming to. Thx for the confirmation
 
12:27 PM
@this but they already are
I mean if you navigate to a procedure with a stale tree, you don't necessarily end up at that procedure
 
@this I wouldn't say "confusing" as much as "irritating". RD would allow real-time syncing, etc. except that if I touch my keyboard, everything is out of sync & I have to reparse.
Everything's out of sync as soon as I type now, but it's not quite so obvious.
real-time parsing FTW!
 
IINM, a previous version of RD did that.
but that was taken out because it basically turned the IDE into a giant vat of molasses
 
realy??? I started with 1.22 (still have the install if you wanna borrow it :) ) and I don't remember that. Though I can see the molasses thing happening...
'course, I've forgotten a few things in my time.
 
@MathieuGuindon am I making it up?
 
12:43 PM
@this no you're right, it was attempted... although, I don't think it ever released
 
ah ok
anyway, I really don't think real-time parsing is feasible until we can reduce the granularity level to the procedure level rather than the module level.
We have the '@IgnoreModule attribute -- but in my case, I have a number of projects that has same modules that are not necessarily mine that get imported - would it make sense for RD to provide a blacklist (or whitelist) of module names to ignore?
 
1:16 PM
when I git branch <name> that creates a branch on my remote. I then git checkout <name> - it's at that point that it actually copies the files from master to my local directory so I can start working on them, right?
 
1:45 PM
@FreeMan remotes are configured on a repository basis, the global git config doesn't know about remotes
@FreeMan hang on... no.
All git commands except for pull, push and fetch are local.
So git branch creates a local branch, git checkout moves your index (aka. Working Tree) to that branch or commit
 
I've created a network directory, switched to that directory, did git init there, dumped all my code and did git commit -a -m 'message'. That's my "GitHub" version that I'll use as my most current production code.
From here on out, I should never touch that network location by hand, right?
 
And master is just convention for naming the primary branch. It might as well be called next
 
^I'll stick with convention.
 
Umm... yes.
You could have used a bare repository, but then you'd have needed to initialize it from a 'client repo'
 
Now, I need to go to my local HD directory where my source is and if I do git checkout master I'll get all that code pulled to my local HD. That is where I do my branching, editing, committing, etc.
When I've reached a point where I'm ready to "release" code for a fix or a new feature, I git push it to master which updates the code on the network.
 
1:52 PM
FWIW - git checkout -b foo is a shortcut for git branch && git checkout
 
(then, because it's VBA, I still have to import all the code into Excel or Access because PITA).
 
and FWIW x2, I would not generally check out master.
 
@this thx. I do have that shortcut noted, but doing it the long hand way helps me to remember what the short hand way is actually doing.
 
:+1:
 
Git checkout is a local command
@FreeMan no
 
1:53 PM
@this Eh, if you are the only one working on it, it doesn't really matter.
 
OK. I think... ok... I thought I had it...
 
@Hosch250 IDK. It makes for a messy history if you don't keep your feature development branched.
 
@this I find it makes for messier history with the merges, and one person can only work on one feature at at time.
If I start working on multiple features, I do start branching.
But most of the time, I just get one feature done at a time.
Meeting time, BBIAB.
 
ah, see, I tend to start more than one features in parallel
 
> Continuing to think this through a little bit... what would happen during parsing (my other ticket!)?

Assume you could populate the code explorer with all the projects/modules super-quick so people could at least navigate around while the parsing finishes. RD would have to know to only highlight the module, not look for the function, etc. I assume this would just be choosing the closest node in a tree, but it's still part of the consideration.

I dont want this to slow down the ability t
 
1:58 PM
Oh, well, yeah, then you should branch.
 
@Duga good question
 
2:16 PM
> Would it be possible to pre-parse the first xx lines to catch folder annotations?? That way the base tree structure would not have to change as more detail was discovered.

I just dont like the idea of watching a sudden switch from PE to CE... understanding of course that it may be too complicated to something other...
 
@Hosch250 there will be (eventually) 2 of us, and I want to create right habits from the start, but (interrupted by phone call) for now, I'm going to pretend I'm the only one in the universe. (Bwahahahaha!!!)
@Vogel612 can you clarify please.
 
2:37 PM
> I do not want to spoil the enthusiasm here, but I have my concerns with selecting the member. The primary problem I see is that once the user starts to edit the module, we have no idea where members start and end until the next reparse.
 
@Duga very, very good point
ugh it's a tough call
2 hours ago, by Mathieu Guindon
@this meh. better select what RD thinks is selected - tells the user they need to reparse. If everything looks and behaves like all is up to date, we'll have other kinds of problems.... no?
 
> @MDoerner you're right (@bclothier brought it up in chat earlier) - member-level is a bit of a can of worms with regards to stale parse trees.
 
pre-coffee: "just go with the flow"
post-coffee: "damn can of worms"
2
 
> FWIW, a stopgap solution would be to allow selection of procedures, which can be trivially found using VBIDE API. The declaration level variables and other elements would have to be ignored (placing the user at the top of the declarations section).

The ideal solution likely requires reducing the granularity of the parsing level from module to procedure which may enable real-time parsing, which is not possible until we solve other problems (e.g. creating our custom code panes).
 
I wonder if it'd be much easier if we just hooked the VBIDE hooks and made our darned IDE from scratch.
Alt + F11 => opens VSC with RD extension, something.
 
2:54 PM
> If we really consider going to a selection on the member level, can this please be a separate enhancement issue?
 
3:13 PM
@this HHCIB?
 
@FreeMan Actually not that hard with WPF, TBH.
 
@this ^ sounds like we have a volunteer!!
;)
 
I'll certainly volunteer if you cough up the dough so I can do it full-time.
:P
 
while having our own IDE mean we won't have to fight with the VBIDE's dumb behaviors, we may end up fighting with host trying to work with the VBIDE. Then there's the debugging thingee....
#ChooseYourPoison
 
3:18 PM
Our custom codepane is most likely the best compromise. But yeah, someone should win a lottery so we can pay Hosch to do it.
:p
 
As far as it goes, does RD even need the host for anything? We're basically working on the editor.
We could make an editor and leave debugging to the main IDE.
 
we aren't 100% host agnostic. We should be but there are times where we touch host's OM.
 
Hmmm.
Well, pure editor would screw unit tests.
 
See, a custom codepane would be more seamless -- just switch back to normal codepane when in break mode, as opposed to switching between 2 editors.
 
Yeah.
Well, I'm not promising anything, but I might look into making a dockable control hosting a WPF tab container with each tab containing an Avalon control.
 
3:20 PM
I think I just talked myself out of a custom IDE - custom codepane would easily provide all the functionality we'd get from a custom IDE anyway.
3
That alone would be a huge boon.
 
3:57 PM
@MathieuGuindon I now stand a good chance at remembering this time. Feels like I've read that or similar information before.
 
4:09 PM
man...
when i see code like this...
LotQty = IIf(IsEmptyString(DLookup("[Quantity]", "dbo_Labeling_Trace_ReadyForLabeling", "LotNumber = '" & Me.txtLotNumber & "'")), 0, DLookup("[Quantity]", "dbo_Labeling_Trace_ReadyForLabeling", "LotNumber = '" & Me.txtLotNumber & "'"))
i just wanna tell the engineer who wrote it to stop writing crap code
Y U dlookup TWICE for the same value
 
because it fills them with POWER when they write BIG code like that?
 
no, its because hes lazy
he doesnt care if the code is good or readable or editable
just as long as it provides the end result hes lookin for
but thats because programming is a side thing to what he really does, engineering of high voltage diodes and diochips
 
copy paste coding.
 
4:32 PM
Looking at old VBA code I reviewed 2 years ago makes me sad now seeing how much I missed the first time around.
 
@IvenBach It should really make you joyful thinking how much you've learned.
 
Fully understanding the code and what I can change makes a large difference too.
@Hosch250 The balance scale tips slightly in favor of positive.
 
I just ran across some code in a project that wasn't mine - it was obviously copied from an example and modified.
The most sad thing was that the example was particularly awful to start with
Of course, the author had no idea that it was doing all kind of wrong things
 
4:50 PM
:barf: missing 4 lines of code took an excessive amount of time to debug an example...
 
FYI, chat might go down later today.
 
5:11 PM
@FreeMan sorry I was writing from the train on my way to a date :)
The clarification was the message before the reply (because flaky mobile connection)
 
5:24 PM
@Vogel612 well, don't let my gitlessness interrupt your date, that's far more important!!!
 
5:47 PM
I want to save my file in PRN and my code is working awesome but the problem is once you convert the output prn then convert into notepad all the data i have put in my excel came into some other language it like ---- (ƒÑ}q’ne”:½ŒA¯[÷ &QâÐÄ6–ö'o?“Cº@É.¡............ — RISHABH SINGH 9 mins ago
"it's working awesome"
except it's not
 
Hmm, should the # of references for module count any references to procedure within?
because if I select a module, the status bar show it having 0 references. yet if I select a procedure in that same module, it shows 4 references, 1 from another module.
If that was all it was, I would expect the references to be 1 for the whole module, no?
 
I think it's like R#'s reference to a class in C#.
 
that wouldn't work - it's not possible to reference a module directly. The only time you can reference one is in a fully qualified call --- Module1.Foo is kosher; Set m = Module1 isn't.
 
Just because there's a reference to a function, it doesn't count as a reference to the class. There's probably a new Foo() or Foo. or using static Foo somewhere that does get counted, though.
Hmm.
Might need to be tweaked.
Anyway, can you (try to) help me with a DB thing I'm fighting?
 
Yes I think it should be - otherwise, it looks weird and confusing. I was trying to find dead code.
Sure.
 
6:00 PM
Let's say I have an admin page that allows you to define the structure of an XLSX or CSV. Like, you can say which columns it will have and which data type the column data will be (decimal or string, for now).
You can define any structure you like.
 
@MathieuGuindon le sigh...
 
Then you upload a file with N rows, and a parser takes those rows and sticks them in a DB.
How would you go about working with this data?
In your code, you know nothing about the data structure.
You don't have tables set up in a DB.
I'm thinking I need to go no-SQL (this is a new system).
But then, how would I query that table and work with it in my C#?
It's for filter/sort only.
Basically, someone wants to see/filter/sort Excel files on the website.
(FWIW, we have this already, but I don't like this solution, and am working on trying to potentially find a neater one.)
 
I assume you're using system catalog views to provide a list of columns to select from, no?
 
Ummm, probably not, since 1) I've not heard of those, and 2) this system is 100% dynamic. We can't set up views for each one.
 
Hmm. I think you definitely should be.
 
6:06 PM
Yeah, I know you are a huge fan of views.
 
@FreeMan no. le sigh:
One last thing i have used your code it is working a fine(ws.SaveAs Filename:="D:\birla soft\" & ws.Name & ".prn", FileFormat:=xlTextPrinter) but it gives output like this (...sheet1,...sheet2) I do not want (...) these dots in the starting i just want and keep it simple like (sheet1) (sheet2) & so on. — RISHABH SINGH 1 min ago
 
are views or tables in a certain schema?
or have a certain naming convention?
 
Yes, and no, but I want it to be no and no.
So, here's how we currently do it (slightly simplified).
We have a table entry for each file structure definition. Let's call it a "suite".
We then have multiple "groups" for a "suite" (names changed at least somewhat to protect the guilty).
Each "group" has the same file structure as a "suite", but a different name.
So, each file requires a "group name" column.
Then, when we upload a file, we create an "update" record, and an "entry" record for each row in the file.
That "entry" record just says "here is a row".
 
"Help I copy-pasta'd your code without bothering to read anything, and now it's full of placeholders"
 
Then, we have "descriptor" (string) or "metric" (decimal) values for each cell in the file.
So, we have one table of all the string values for all entries in our system, and another table for all decimal values.
What I'd like is for each "suite" to become its own table.
Then, each "group" and "update" would be in a table.
The result would look something like:
| GroupId | UpdateId | MyStringValue1 | MyStringValue2 | MyDecimalValue |
 
6:14 PM
what I am not following is where you map a given "cell" back to a specific column in a specific table in your databse.
 
OK, I kind of left that bit out.
So, say we have a suite like this:
| Id | Name |
Then we have a group:
| Id | Name | SuiteId |
And an update:
| Id | Name | GroupId |
And then we have our column definitions:
| Id | MetricName |
| Id | DescriptorName |
Then we have an entry:
| Id | UpdateId |
Then we have our cells:
| Id | MetricId | Value |
| Id | DescriptorId | Value |
 
I'm assuming that MetricName and DescriptorName refers to an actual column in a table.
in which the case that's your driving table.
 
Yes, those are the actual names of the columns in the file we are uploading.
 
wait wait, we want name of the database's columns, not the file
 
No, those are the DB columns.
 
6:17 PM
Ok, good.
and does that include the schema/table?
 
The names in those columns map to the column names in the file.
So, Suite is like the parent. One per file structure.
We can actually ignore group--that's just kind of a top-level filter.
Update is a file, and entry is a row.
 
next question - are those metric/description supplied by users or is it restricted to what you allow?
 
Metric and Descriptor define the column structure.
MetricValue and DescriptorValue are the data from the file.
@this They are defined by users.
Everything is 100% dynamic.
 
so they can just type in a column? what if that doesn't exist in your database?
 
Then we add a new entry to Metric.
Like, we'd add a new entry: | newid() | SuiteId (FK) | MyNewColumnName |
Where SuiteId is pulled from the suite they are working in, and newid() represents a new ID.
 
6:21 PM
and that alters the database table?!?
 
No, it adds a new row to it...
 
back up. You're using an EAV model? The schema isn't defined as columns but as a rows?
I'm trying to see how you translate the users' selection into a column in a database table.
 
We don't.
The schema is fixed.
 
So you do have to do the translation to some specific column in a database table.
 
Each column in the file translates to a row in either Metric or Descriptor. Each row translates to an Entry.
Each cell translates to a MetricValue or DescriptorValue, which have FK ids to Metric or Descriptor and Entry.
 
6:23 PM
ah, I see now. This does sound like an EAV, since a column in file ends up as a row in either Metric/Descriptor
 
Yes.
The row contains a description of the column structure, but not the data.
 
In which case, you need to do unpivot the input.
 
@MathieuGuindon Bwahahahahahahahahahahahaaaa... deep breath ahahahahhhahahahahahahahahah. /sad
 
OK, that might work.
 
You can either do this at the SQL level or at the application level.
 
6:24 PM
@MathieuGuindon oops, forgot I was talking to the French speaking guy... ;)
 
I'm more inclined to do this at the application level; no sense in burdening the server with work that can be done at client side.
 
Too slow client-side.
We can have up to 30k rows so far, and only growing.
 
remind me - web or rich client?
 
Web client.
We paginate the results.
 
so it'd be on the web server
 
6:26 PM
I think I'll do it in SQL.
 
not sure doing 30K worth of unpivoting on SQL database will be faster but you can always test
 
Hmm, OK.
FWIW, this'll be a lightly-used microservice DB.
 
you can try and use the UNPIVOT command
 
And the clients are still running IE 8.
 
whee
2
 
6:27 PM
So, I think it'll be faster on DB.
So, I'm fine with one row per column--it makes it easy to do the UI then too.
Just a List<List<T>>.
 
@Hosch250 :shoots the messenger:
 
Where the parent list is a row, and the child list contains the column data.
So, I can pivot/unpivot the data for the proper querying, then pivot/unpivot it back for sending to the server.
But really, @this, what I was thinking is, how would you redo this?
I'm adding this to my prototype that I've mentioned (the one they said to keep working on...).
And breaking changes isn't an issue.
 
The basic problem is that you're using an EAV model. EAV model is what you must work with for a relational database, and frankly it doesn't really scale that well.
Since the schema is meant to be dynamic, I'm more inclined to either farm it out to a schemaless data store or at least stuff it as a XML? JSON? column in the relational database.
I also would question whether they really need a dynamic schema.
 
1) Yes, I'm considering that.
I suppose I'll end up pivoting it anyway so I can work with it in C#.
2) Yes, we really do need a dynamic schema.
Multiple clients use it, and they don't all have the same columns of data.
And it's too much work to build a new system for each client. Been there, done that.
 
Here's why I question the idea of dynamic schema -- if it's dynamic, then you will end up doing a bunch of metadata stuff just to work with their data.
The way I see it, it's simpler to set up a mapping system to a fixed schema than to create a dynamic schema that let them store whatever and leaving it up to you to figure what's the hell what.
 
6:36 PM
You mean, like we already do?
 
no, you're using an EAV. You're basically let them store literally anything.
which has no meaning to you.
 
Oh, like set up a table for them to store it in, and just map their files to it?
 
Yes.
 
Yeah, well, we can't do that. They can have unlimited columns.
 
You surely don't care about ALL of their data, do you?
 
6:37 PM
Yes, we do.
We are literally implementing a very basic version of Excel on our website.
 
and how do you consume the data without programming for it? That's what I don't follow.
 
Filter and sort and show the columns they upload so everyone can see the data in a controlled manner.
@this We use our EAV and the FK's to get data for rows/columns/files.
All we do is filter/sort and display.
 
Do they get to write expressions (or formulas), too?
 
Nope.
The only other thing they can do is if a value matches another (string) or is in a range (decimal), they can provide a color and it will show up in that color. And only admins can do that.
 
I wonder if it would be less programming just to buy a license to Excel Online and just use it to render the data.
 
6:40 PM
Well, one other thing they do when they define the file structure is for each column, if it matches or is in a range (like the highlighting thing), they get a payout.
So, if your data matches a certain set, you can get points to buy things with.
 
It's to measure whether an employee gets a prize, right?
 
Yes.
 
OK, so that's the only thing you actually do with their data
the rest are just for display purposes, basically.... correct?
 
At least, as far as I'm aware.
And yes.
I've complained more than once that we should just use Excel Online, but no.
 
OK, now that is making more sense - In my mind, the relational data model really only need the data for which your business is concerned with
In this case, it's the metrics that contributes to a payout
the rest, you really really don't care about.
 
6:43 PM
Well, that is dynamic too.
We just check it when we pull a cell from the table--if cell data matches X, then payout.
Oh, and they can update the data.
 
I suspected that would be the case but in end, it's still something you need to evaluate or aggregate or whatever.
 
They provide a file that overwrites the data in our system.
 
That is different from data that are just simply stored.
for those data that has no purposes to your end, you should just stuff it in a XML? JSON? column and be done with it.
 
So, we need to overwrite/add/delete data one way or another.
But yeah, that's what I'm thinking.
 
That makes your schema much more simpler, and you don't have to deal with EAV-ness of it.
you only need to extract the metrics you actually need to measure, set up an expression that you can evaluate, and store it in your schema (as proper columns in a proper database table)
that gives you a proper indexing system and thus much better querying performance
 
6:45 PM
So, this is about what I was thinking.
 
then when you run the report, you just read the big ol' blob of XML? JSON? and render hte display accordingly.
 
However, my primary question is, how do I deserialize the XML/JSON into an object my C# can read reasonably?
 
everyone get their "dynamic" model and you get a simple data model.
well, you are taking the file from them, no?
You can just serialize it using C#, store it as-is
 
Hmmmm.
 
then when it's time to deserialize, it's in the form you need, no?
 
6:47 PM
Well, we convert it to an HTML table.
So, not quite.
 
You might need to do some transformation, but that is something you can do at the serialization time.
Right, that's where the transformation comes in.
 
I think I know what I can do.
 
but that's not a database concern. That's an application concern.
 
I can store it as XML, then query it for rows/columns and convert it into a nested list.
Then, I can just iterate one list and have my rows, and iterate the list inside each list entry and have my column data.
 
Yeah. that'd be one way. And it should be fairly fast enough now that it's just a blob
since you must consume them all anyway
while your database can give you fast query for the data that you do evaluate/aggregate. That's why you want to keep the data for evaluation separate from "display-only" data.
 
6:50 PM
OK, thanks.
 
yw! good luck w/ the prototype!
 
Oh, that's right, I forgot to mention it.
We do aggregate the data based on timespans too.
 
that needs to be extracted, definitely
 
So, we grab all updates within a certain timestamp and sum/average/first/last the data.
On a column by column basis.
So, we can see individual upload data (provided monthly from most clients) or yearly data.
But, Mongo and the like have aggregation--and I'm looking at Azure's Cloud DB thing, where it's a no-SQL DB that you query with SQL.
So that would work awesome.
 
CosmosDB
 
6:57 PM
Yes.
 
yeah heard a talk about it - it does sound awesome on the paper
 
Funny thing. One of our architects was looking into it, then says "not good enough".
I look into it, and lots of big companies are using it.
 
esp that it allow for mutliple schema - haven't found a good use case just yet
 
I think he said "not good enough" because EF doesn't support it yet.
 
Please don't use EF, even if it supports it
 
6:58 PM
LOL, I'm using it.
I like Linq-to-SQL too much.
 
Ok - I'm just soured on the fact that it does far too much and hides too much.
 
00:00 - 19:0019:00 - 00:00

« first day (1776 days earlier)      last day (1404 days later) »