The Official Status Thread
-
-
This. It may be defendable to put the derived value in a column if it's expensive to compute, but probably it's just taking up extra disk (and tanking your insert performance, if per-row triggers in postgres are as slow as in oracle).
SELECT is hotter than INSERT in my case. Usually, it's only one insert during the lifetime of table and that's it.
If I used views, I'd probably have to go materialized, which is overkill.
-
One INSERT over the lifetime, and the table is autogenerated? Why isn't the trigger code in the application then?
Whether the derived value should be materialized (manually or MV) depends on how expensive it is to compute - realize that if it's not stored then the SELECT will have less data to move around too, at the cost of CPU.
-
Except, since these are auto-generated tables,
Why?
Many reasons that I can't get into without doxing the project, which boss doesn't like.
Speaking in generalities, if you can partition your data based on some value in such a way so that partitions don't need to "speak" with each other too much, you get free scaling without NoSQL. Classic example: create a set of tables for each customer.
And if you do that, you need to use auto-generated tables and functions to access them.
It's a pain sometimes, but if your data can support it, IMO it pays off.
-
One INSERT over the lifetime, and the table is autogenerated? Why isn't the trigger code in the application then?
Whether the derived value should be materialized (manually or MV) depends on how expensive it is to compute - realize that if it's not stored then the SELECT will have less data to move around too, at the cost of CPU.
Why can't application pregenerate the data and send it in?
Multiple applications. Less pain to do it consistently in one place.Why can't application just generate the data on its own end?
The data is sometimes used internally inside database, in WHERE conditions and such.
-
Many reasons that I can't get into without doxing the project,
Any good ones?
Because that sounds nasty and completely unnecessary.
Speaking in generalities, if you can partition your data based on some value in such a way so that partitions don't need to "speak" with each other too much, you get free scaling without NoSQL. Classic example: create a set of tables for each customer.
It's a lot easier to put your schema in Model (or whatever the Postgres equivalent is, assuming it even has one) and just create a new database for each client.
I implemented a web analytics system like that, and it worked great. It was all up in AWS so the web app just kept a quick look-up table in SimpleDB listing which client was on which server. Adding a new client was simply creating a new database named after their "client key", adding a SimpleDB record, then adding the client key to the JS file you shipped to the client's web dev.
I never really liked mixing different clients in the same DB anyway. (Unless you're like blog software, and you have a million "clients" and each one only has like 20k of data.) I don't even like them on the same server, but that's usually unavoidable.
-
It's a lot easier to put your schema in Model (or whatever the Postgres equivalent is, assuming it even has one) and just create a new database for each client.
I implemented a web analytics system like that, and it worked great. It was all up in AWS so the web app just kept a quick look-up table in SimpleDB listing which client was on which server. Adding a new client was simply creating a new database named after their "client key", adding a SimpleDB record, then adding the client key to the JS file you shipped to the client's web dev.
I never really liked mixing different clients in the same DB anyway. (Unless you're like blog software, and you have a million "clients" and each one only has like 20k of data.) I don't even like them on the same server, but that's usually unavoidable.
If it were clients, I'd do it that way. My use case is more like resources users can create / delete at will.
-
My use case is more like resources users can create / delete at will.
I still think you're doing it bad/wrong.
If you were using a better DBMS, you'd be able to partition your databases however you like across as many servers as you'd like without crapping all over your schema. (And for all I know, maybe you can in Postgres.)
-
-
In fact it's so bad and wrong that we need to coin a new word to describe it: badong.
From now on, you should dedicate yourself to doing the opposite of badong. Gnodab!
-
"Gnodab software design, for dummies" - Blakeyrat
-
I don't blame people from not recognizing movie quotes when they're from really really really fucking stupid movies.
Strangely, Urban Dictionary's definition of "gnodab" doesn't even mention the movie it's from... probably for the best.
-
Strangely, Urban Dictionary's definition of "gnodab" doesn't even mention the movie it's from... probably for the best.
It mentions this: http://www.imdb.com/title/tt0240468/
-
Status: Crap. Can I afford myself a rather large refactor... tonight? It's not mission critical if I don't finish... but still... But it's going to make things sooo much better...
Damn it! I'm motivated, but...
Fuck it, I don't have to wake up early I guess.
cracks knuckles
-
Things like that never work out. The more you like the idea, the more difficult it gets when you get into thick of things.
-
Well, it's not like I have to change the whole paradigm or anything. Most of the code is reusable, just need to separate some data binding bits into multiple chunks. And I can clean up some extra cruft while I'm at it.
On the other hand, the other option is a very dirty hack that exposes the underlying data structure too much. It's not that I don't like it, it's a veritable WTF if I do it that way.
-
Conference calls: really started at 31.
They started for me at age 23-24. One, maybe two per week at that point. Now it is getting to the point that a lot of the time I have one day a week completely full of them.
-
http://www.wikibound.info/w/images/8/80/Jeff_sprite.png
OI! earthbound/mother is pure gold! don't insult it!
:gekker growl yip gekker:
I love those games. i wonder if i can find the cartridge anymore?
-
-
It's not my fault that that's his canonical name.
hmm.... point.
I mainly commented because i finally got one of your game references without having to google it first
-
Status: In a snarky mood, probably because of all the difficulty I'm having rebuilding this PowerEdge R410. Some belgium idiot decided to throw away the discs that come with it when we bought it.
-
Status: Well, this is moving along fine, but taking a bit long... grumble...
-
?
-
?
So many ways to interpret that, not all of them nice...
I'm going to go with "throw me a bone?" and answer: "Refactoring stuff".
-
-
Well then, I'm still fine with interpretation then.
And woah, that was a loud one. Or am I the only one who heard that rush of air?
Also, the fact that I am hungry and eating right now isn't helping
-
I sold 18 carts to a new topic: Drooling over old, rare video game carts
-
Status: talking with a Git fan at my workplace.
I mentioned I use Visual Studio as my Git client; he suggested that instead of doing that I should set VS as Git's default text editor and then also set VS as Git's merge tool.
I replied:
Me: That just seems to be a more convoluted way of doing what I'm already doing.
Him: eh, not really. I’m saying instead of clicking buttons and hoping the plugin team at visual studio was able to figure out your intentions, run the commands yourself
?????
Ok, now I don't just officially not get Git, I also don't get people who do get Git.
-
They want total control, the likes of which most of us spurn, since we do our work in languages other than assembler.
No, I don't care how the iteration is done.
Select<T>
will iterate as it needs to and transform things. I don't need two lists and afor
loop and an iterative integer namedi
to do transform a group of objects.
-
Can you make sense of what he's saying?
Like, does he honestly think the Visual Studio button labeled "pull" does something different than the Git command "pull"? Because that seems to be the surface meaning.
-
He does not trust any other being to utilize Holy Git correctly, and assumes that you want to build some kind of script that you know all the details of to implement your entire workflow exactly the way you like it.
Which is very much the C-only open source way, but not something I (or presumably you) consider to be sane. He'd probably accept it if he had the source to the plugin to tweak.
-
Status:
-
One, maybe two per week at that point.
I can't even remember a week with that few. Most days are at least that, let alone weeks.
-
Yeah. At that point I was working construction and starting a new division in another state. IT seems to have a lot more conference calls. At this rate of growth, I will need a phone implanted in my skull.
Today, by 12pm, my cell was down to <50% battery. Normal days, without conference calls, I could go 1.5 days.
-
Status: Analysing performance data
-
jeeez, it's like you don't know that visual studio is from micro$oft. they surely do something evil to your git commands.
micro$oft is bad, and OSS is good. always!
-
-
[OSS fanatic head explosion]
-
I love how Microsoft's only contribution to the project is adding "and Windows Server" to the title of the readme.
-
i missed that
it's Brillant!
docker works with windows? TIL
-
Status: i was writing a post, and it banished while i was replying to ben, in another tab. well, fuck it, i'm going to bed
-
-
Status: Pizza ordered, beer in the fridge. I wonder if these two things will go together...
-
Status: Elderberry juice...
-
-
@Onyx said:
Elderberry juice...
Get back with me after it has fermented. ;-)
I think I'll just leave this here…
-
You assume there will be any left sitting around long enough
-
Elderberry wine is one of the few "country wines" that I actually like. I would be making sure that some of it fermented.
I would also be making sure I had some Tylenol as I always end up with a headache when I drink (too much) of it.
-
Honestly, I don't know if this would be any good now if I left it be. I never made elderberry wine, but I'd assume that you'd leave out all the lemon that's in it right now...
-
Status: Managed to screw up my digestion with something. It's hard to concentrate next to this damned rumbling...
Filed under: TMI