« first day (1852 days earlier)      last day (3145 days later) » 

12:31 AM
Folks, do we have a chatroom somewhere in the systems that's dedicated to version control software (Gits, Mercurials, etc) ?
 
user55340
@NickAlexeev Not really. There are a couple defunct rooms on SO - nothing even remotely active.
 
I think this would be better suited for programmers.stackexchange.com since you don't have a problem with the code, you just want to talk strategy and program design. You should probably use the Strategy pattern. Code a player object that follows all the rules of the game, that contains a Strategy object that you can change at random. Actually, you could just generate every possible strategy and see what does better head-to-head, and try to figure out why. — Noumenon 56 secs ago
 
user55340
1:09 AM
@RobertHarvey We got that 'help' question because it couldn't be posted on Stack Overflow. The OP created an account there first, no questions asked there, created an account here quarter of an hour later and asked the question here.
 
1:26 AM
@MichaelT Don't get me started.
Throwing bad money after bad.
 
2:14 AM
How does one actually run a test from Visual Studio 2015. Is it even possible anymore, without standing up a CI server?
Eh, nvm. PEBKAC
 
 
6 hours later…
8:27 AM
Your question is too broad for stack overflow. You may get better luck on programmers.stackexchange.com or cs.stackexchange.comTom Redfern 32 secs ago
 
 
2 hours later…
10:08 AM
Alex Warren on September 29, 2015
Is your current job awesome? Or could you be doing better?
 
10:23 AM
Does anyone here get "docker"?
 
10:50 AM
as part of docker toolbox...we install oracle virtual box...is this actually responsible for the "container"-ization?
 
11:18 AM
Happy Coffee Day
 
user55340
11:31 AM
Not just coffee day, but National Coffee Day
 
@MichaelT you mean, not just National Coffee Day, but Coffee Day
 
user55340
11:49 AM
 
12:07 PM
@MichaelT nobody cares about lake michigan, it's a dumb lake, too big for it's own good. Stupid lake. Thinks it's an ocean but has no salt, pah.
 
12:57 PM
@MichaelT bah beat me by 90 minutes
 
I do not use docker
my current job is not awesome.
 
Today I sat in the sun, with my friend's dog, and worked on my bike.
not having a job is awesome.
(provided you have savings)
 
@MichaelT We went though this yesterday. You won't convince @JimmyHoffa that this is anything other than Coffee Day.
There is no more than Coffee Day.
 
@MetaFight out of work? I thought you were gainfully employed; bit of a change? Also - sat in the sun? Today? It's 9AM at the latest right now.
 
1:12 PM
I did 15 months in F1 and got fed up with it again. I'm taking a few months off before looking for work again.
Also, I'm in the UK. It's 2:12 here.
 
@MetaFight No it's not. It's 9AM at the latest there. I just explained this. Anyway, good on ya for having the savings to do that, and deciding to kick out of a shitty job. You read that article linked above about building awesome stuff? You should do that for your few months.
Alex Warren on September 29, 2015
Is your current job awesome? Or could you be doing better?
 
That was actually already the plan before I saw that article :)
 
That would be so cool to do like that fella did, given resources to do it.
 
Maybe I should finish reading that link. I just skimmed through.
 
It's unfortunate that you have to put off having a family for a hell of a long time if you want to do shit like that though. Crazy how old people are when they're starting their families these days among the educated when you compare to historical norms
 
1:17 PM
This is one of the things I worked on last time I took a break: bf.hackse.org
 
@MetaFight it's a quick easy read, and touches on something that is really cool and oft over looked: Being in a crappy job really does just keep people in crappy jobs. Stinks that awesome jobs just pupu them and only hire folks from other awesome jobs
Henceforth known as The Thermocline of Awesome Jobs.
 
Oh, I've thought a lot about that in the past few years. The problem is finding in awesome project. The one I'll be working on next will almost definitely not be a money maker, but it should help a lot of people. That's pretty awesome.
 
programmable home water turrets?
 
not quite.
hrm, my game (the link I sent) doesn't seem to work in windows 10. bleh
 
@MetaFight I always let new versions of windows season for 6-9 months... the OS is usually solid, but stuff built for previous versions typically take about that long before you'll stop bumping into programs that won't run properly
 
1:23 PM
I agree. I'm not actually working on that game anymore, so it's not a big deal if it doesn't work. It was a learning project.
 
just takes time for everyone to update shit so all the libraries people use and applications have made whatever little tweaks are necessary to get their shit working on windows 10. The worst is installers - people always create them with "allow these OSes" and then you try to run the installer on the latest windows and it's all "nah that's old because I don't know it, go away."
 
OpenTK seems to be freaking out.
 
.NET wrapper for OpenGL/OpenAL? That sounds cool.
 
I let MonoGame handle all that stuff. They do a pretty good job of it too.
oh heh, I didn't realize that's what OpenTK was.
For some reason I thought it was a window framework.
 
@MetaFight link for your game?
 
1:29 PM
11 mins ago, by MetaFight
This is one of the things I worked on last time I took a break: http://bf.hackse.org/
 
@MetaFight psha, I was curious about the code; I'm not poking the binaries :P
 
I'll put it up on github some day.
it's in a private repo for now. It's an attempt to write a game in OO enterprisy code.
apparently that's a bad idea, but I didn't have any problems with it.
yet
 
@MetaFight anytime you find something where everyone does it in precisely the same way, you'll always find everyone saying it's a terrible idea to do it any other way, when the reality is that obviously: They only know that one way and likely couldn't do it differently with any level of quality. Lots of things can be done lots of ways, but people like to group together to normalize on something as a group because it makes them feel safer about their approach.
People are often capable of figuring out new ways to do things, improving on old ways and lots of other such things, what people have a lot of difficulty with is confidence in their solutions when they look around and realize nobody else did that.
 
user41796
2:14 PM
@MetaFight "enterprisey code" sometimes gets a bad rap
 
user41796
IMO, the biggest aspect of enterprise grade code is the ability to maintain the code.
 
user41796
That tends to lead to move verbose naming and more stilted constructs, but the trade-off is that it should be easier for someone else to pick it up and run with it.
 
user55340
Video game engines tend to be enterprise grade. Video game implementations tend to be throw away (after you make all the money)
 
user41796
^^^ This
 
user41796
The game itself is "worthless" for re-use so you plan on throwing it away. The business value is tied into the engine.
 
user55340
 
user41796
Or perhaps more accurately, game implementations would collapse under their own weight after multiple iterations
 
Having worked with enterprisy code for a while, I couldn't think of any reason why it wouldn't work well in a game engine. Either the two were compatible as I had assumed, or they weren't and I'd learn something valuable.
 
user55340
This is a key problem for mmo games where it lives for a long time with maintaining the code and upgrades.
 
user41796
As good of a premise as any to test out
 
or I'd drop the project after a while and potentially miss that a-ha moment.
 
user41796
2:26 PM
Ok, just finished the "be awesome" blog post and I'm underwhelmed. The theory is more of a hypothesis and while there is likely some evidence supporting it, the correlation is relatively low IMO.
 
user41796
Likewise, I'm a bit tired of the "Look at batshit insane me and see how great I did!" type stories. He got lucky and landed okay. We never hear from the folk who try something similar, fail miserably, and don't land okay.
 
user41796
And what I'm really disappointed in with his hypothesis is how oblivious he was to the opportunity that was smacking him in the face for launching to an awesome job with his VB6 job.
 
user41796
There would have been a ton of areas that he could have improved within that code base that could have turned into awesome stories that are great resume fodder.
 
That article though is pretty much the crux of my expecting-to-be-discontent-in-my-current-job situation though
 
user41796
So look for the opportunities within your current job to make significant improvements. You'll likely have to do so on your own and without management knowledge / approval. But when you come back around with a finished product that solves a big problem, you're the hero.
 
2:30 PM
I'm reading it now. It's stupid.
 
It feels to me a bit more like, "the only companies that are worth working for are small, cool, cutting edge companies, all other companies are sucky"
 
user41796
tbh. it just reads as another flavor of the "do what you love! it'll all work out okay!!!" bullsh*t that's force-fed onto society.
 
But it's funny, since for a lot of people the technology he felt was horrible to work with was ridiculously awesome - only a few years ago, I'm not sure exactly what to make of that, but perhaps it's fed by what you just said @GlenH7
 
user41796
It's easy to disparage medium and larger shops - the inherent bureaucracy they require in order to keep things running is easy pickings.
 
user41796
For example, he was whinging about having to request access to SO in the early days. Yet he worked for a fund manager which would be required to have uber-strict web access policies. How does he not see that IT policy as a necessary cost of business?
 
2:33 PM
You should try to do what you love. But you need to keep reality in mind. What you love may mean you need to live in a place that you don't like. Or deal with policies that you don't like. Or not have the biggest and most awesome house or condo or apartment. It's about balance.
 
user41796
As it would potentially shut down the biz if they didn't have that policy and someone managed to get their system infected with a drive-by virus that caused havoc.
 
@ThomasOwens honestly, I think it's far more important to learn to love what you do
 
You can't just expect to get your way 100% of the time. That's life.
 
user41796
Good to know I'm not the only irked by that particular post
 
I really can't put it coherently.
But yeah, it's not right.
 
2:36 PM
enh, it was fine. I do see a lot of people fall into that trap though.
 
@Telastyn It's not fine. It's promoting a trap.
 
user41796
And the fact that he's blown all of his savings and is now how old? Ugh.
 
meh, look at it from the other side. Certainly we can agree that getting stuck doing... I dunno, BizTalk work is likely going to lead to doing more BizTalk work, right?
 
user41796
Sure
 
user41796
But it's not a death sentence, and you can structure things in more sane ways to find a better job.
 
2:38 PM
so I think it's not a terrible thing to point that out, and that "hey, you need to break that cycle on your own" is sound enough advice
because no company will do that for you.
 
If you want to develop a portfolio, you don't need to quit and blow your savings. You can break the cycle slowly - contribute to SE and other communities, have a GitHub or use freelancing sites...Plus, it's that same coder-centric attitude that's in most posts. What about people who don't actively build things, but are instrumental in the tech field. For example QA engineers. How do people like them break the cycle? Building awesome things may not help them become a QA engineer somewhere better.
 
user55340
It strikes me as the type of thing one hears on late night tv - the motivational speakers (for $20 at this talk, you can learn how to be a millionaire)
 
well, these days it will, since "better QA" means "more automated QA"
 
Or system administrators. I've known amazing system administrators who were in companies that didn't respect their role in getting things done. How, exactly, does this apply to them?
 
@ThomasOwens they just need to quit, obviously :)
 
2:41 PM
We don't hire sys admins, we hire DevOps people.
they still need to be able to build stuff.
 
@Telastyn That's nice. But that's not everyone.
 
no, it's probably more prevalent outside of Minnesota.
I am devil's advocating a little
 
@Telastyn I have a friend who has that problem actually, he's pretty much a sys admin but is totally underpaid - but can't code, at all, so he's had a lot of trouble getting much interest from companies
 
user55340
It perpetuates the myth of the superstar coder. Not everyone can do it, and there is a lot of call of the tool smiths and language lawyers.
 
For the record, I'm not saying that DevOps is bad. Maybe system administrators should develop those skills. But sometimes, companies do just hire for a particular role. And not all roles "build awesome stuff".
 
2:43 PM
but I think the general premise holds that is you're stuck doing garbage work, it's hard to convince people you can do more than garbage work.
2
 
@Telastyn I agree with that.
I think it's easier for people who do coding to demonstrate that they can do more than garbage work than a number of other roles.
 
I think it's more that coding is easier to do outside of work, in related but different fields
 
Just about anyone can pick up a computer and learn to code and put their code out there as proof.
 
the reality is, if you don't take effort in developing valuable skills which help accomplish your goals, no one else will. but "your goals" is a personal thing, if your goal is to make tons of money you might have a different skillset you want to learn than someone who wants to do "cool stuff" or whatever the blogpost said
 
@enderland I think the problem is that everyone's definition of "cool stuff" is different.
 
2:47 PM
I know, which is why I have problems with that article - the startupish company culture is "we are the best [everything] you are missing out on life if you don't work for us"
 
I think that leading a 2 year, $10+ million software project would be "cool stuff". I can't really show that.
 
It's so funny that this article was posted today, because I have been thinking about this exact issue recently as applies to my life
 
I think that improving processes to achieve an appropriate balance between quality and cost is "cool stuff", but I can't really show that outside of having a job. I can't quit and go show that somehow.
 
user41796
@ThomasOwens Yes, please go quit your job and then show how you have the ability to run a $10M project.
 
@GlenH7 Do you have a $10M project for me to run? And can you give me enough money to cover my expenses (including the benefits that I'd lose after quitting)?
If the answer to both is yes, I'll go write up a letter of resignation.
 
2:50 PM
venture capital ftw! :)
 
user41796
Nope, and nope. Which was the point.
 
and it is up to you to do non-garbage work - either by personal projects or by working with your boss to do better stuff
 
@Telastyn That last part is what this post is missing.
There are other options - MOOCs are good, working with your boss to add other projects (your main project may be crap, but maybe there's something else in your company) is good, and working on projects on the side (nights and weekends) is good.
But this article, as it stands now, promotes a terrible idea that really shouldn't be encouraged.
How many people are actually successful after quitting their job?
 
I suspect most people who languish in it don't write blog posts...
 
yeah.
I can agree to that.
 
2:53 PM
survivorship bias here I'm almost sure of, you probably only see the spectacular success or failures
 
So, how does this blog post promote the Stack Exchange mission of "making the Internet a better place" if the advice in the post probably isn't a good idea?
 
It probably can be, for the right set of circumstances - if you don't have a family/kids/etc, love coding, can be frugal and have money saved, and are reasonably intelligent/quick learner? It probably can work out
 
@GlenH7 sure we do - I'm with you on the tired of people with their "Look at me look at me! I can be important too, look I write stuff! Me am important!" - we see people who fail miserably and who are great writing those these days, it's just folks looking around and seeing important or valued people writing their stories and thinking "I'm important/awesome/whatever, I should tell people!"
 
I'm off to a meeting. BBL.
 
@GlenH7 because everybody works somewhere they can just say "Hey, I can improve this right here a bunch! I'll just go do that and it will be great!" - tons and tons of devs work in environments where they're utterly disallowed to do anything to the code without express authorization for said change coming from someone else, usually someone who's great at politics and terrible at technology.
@GlenH7 psha. I've seen plenty of cases where people fix code and solve problems and are castigated. One time I was refactoring some code at one job and spoke with another dev about what I was doing - moments later I got an IM from him literally: "Jimmy's gone off the reservation, he's refactoring some code" followed by "Oops, that wasn't meant for you", yeah no shit...
 
user41796
2:59 PM
I've worked in locked down environments before too. And there's always been the ability to justify including the change if the change has been completed (on your own time) and demonstrated to work in a better way.
 
user41796
@JimmyHoffa But if you'd done that on your own time and got it working correctly, what would the response have been?
 
@GlenH7 only in the environments you've been in. I worked in one environment where I pointed out the problem with clear test cases and code examples et al, and the code solution I wrote with clear cases showing how and why it fixes it. I was told absolutely not to check the fix in, it wasn't authorized and they weren't going to fix it.
 
user41796
What was the reasoning behind that?
 
@GlenH7 Same. Many of us are to do as we're told. You've just never worked in those environments it sounds like because you're unaware of their existence - but they are common. Following orders is far more important to many than actual productivity.
@GlenH7 It wasn't them doing it. That job, I came to find out, only allowed one team to change any code; though they had numerous other coding teams. It was a big money sink hole and after I left they ended up selling the product because the parent company couldn't get them to change anything about how they operated.
 
user41796
So you were changing another team's code in that case? Or were you a member of the team that owned the code?
 
3:03 PM
the nonsense that happens in businesses is stagerring. That nonsense didn't close the business, you know why? They had among their clients Citibank, and numerous other banks of similar size, blowing amazing amounts of money on them due to contractual obligation even though their product hardly worked.
@GlenH7 It was all one product, there weren't different teams owning different parts; there were different teams just to organize their project work. I was assigned the defect because it was reported as causing issues for multiple clients, and I was working with a BA, PM, and two client managers to resolve the issue.
Like I said, when you try blaming devs for not doing things; step back and remember, they aren't always allowed to. You may have never been in such organizations, but they are numerous; truly.
 
user41796
I'll agree that places like that are outside of my experience. I have never worked in a place where a fix wouldn't be accepted unless there were other solid business reasons backing the decision
 
That company's entire business model and profit margin was based on the fact that they had great contract writers/legal team and marketing that would get huge corps locked into giving them tons of money
 
user41796
I have had suggested changes shot down because the QA team didn't have the bandwidth to validate the results.
 
@ThomasOwens writing is I think an undervalued version of "build things" - just about any knowledge worker of any sort can write a blog that nobody reads - tons of people do, and it can be a great selling point for a good job. To begin with, crappy jobs won't inspect their employees close enough to read/assess a person's blog so you'll filter those right out with it. Then add in the fact that good hiring practices will involve people being picky enough to genuinely spend time assessing people
So if you write good stuff on your blog, that will garner appreciation from a good company generally
The biggest problem really is 90% of everything is crap - companies included.
And I'm completely on board with "do what you love" ignores a significant amount of opportunity people may have that can enhance their lives in many ways; not least of which monetarily - largely undervalued but often far more important than many other things. Someone with a pittance of technical ability who gets a crappy job making decent money can use the money to buy time - which they can use to improve their skills or just enjoy their lives.
Employer^ was a relatively awful place to work after a while and a job I genuinely disliked, but the hours were super easy, no over time, and a colleague of mine said he really didn't give a hoot, he just wanted to get home and play with his daughter every day. Sometimes doing what you love isn't what you're doing at work, the idea that you should do what you love for work I think teaches a little too much "work is life" which is crap
@ThomasOwens every company needs someone who's happy to maintain an inventory of mice and network cables, and when your system's UPS goes out, you can easily and quickly go bother to get a new one. Put a rockstar in that role and he'll hate it. It's true what you say about filling a role, lots of times people need to just formulate what they need done, and look for people who want to do those things, not more.
@ThomasOwens that's not been their mission for a long time. That was a cool idea(l) Jeff and Co had a long time ago and they did a neat thing in making SO and playing Internets The Company for a bit, but the reality is SE The Company is and has for a long time been...a business.. focused on business concerns.
..aaaand I'm caught up. :) Back to other stuff again...
 
3:25 PM
wall of text jimmy :P
 
user55340
Its national coffee day - he's a bit caffeinated.
 
user55340
Hmm. Medical codes updated with new items. icd10data.com/ICD10CM/Codes/V00-Y99/W20-W49/W22-/W22.02
 
user41796
I kinda wonder if they aren't taking things a bit too far...
 
user55340
Maybe.
 
user55340
3:29 PM
Depends on if you walk into the lamppost twice or not. icd10data.com/ICD10CM/Codes/V00-Y99/W20-W49/W22-/W22.02XD
 
user55340
Ah ha. Here is what I was looking for: underdosing caffeine
 
user41796
icd10data.com/Search.aspx?search=foreign+body has some eyebrow raising codes
 
@MichaelT Ah good, this will come in very handy, every morning I'll pop onto the machine and send code T43.616A into my insurance to get reimbursed for starbucks
 
user55340
@GlenH7 ow.
 
user41796
Yeah... I wonder if those claim codes have a field for "supporting x-ray evidence"
 
user55340
3:39 PM
Plus one for making Alec Guinness say For realz in my head. — Mazura yesterday
 
4:06 PM
agh, this cold is crap. Pfleh.
 
4:20 PM
@JimmyHoffa this reminds me to have another cup of tea
 
user41796
@MichaelT Yeah, that's a pretty valid medical condition...
 
Does anyone here know anything about IceFaces/JSF? I'm trying to scrape a page and having a hell of a time trying to figure out their sessionID's, leaseID's and dynamic scripting.
 
user55340
... And this is why medical information technology is scary. Hey, quick... Update the database.
 
user41796
4:24 PM
@MichaelT I disagree with that not being allowed for a principal diagnosis.
 
Is dumbshit coworker on that list?
Dumbass road-rage commuter?
 
user41796
@RobertHarvey "discord with boss and workmates" is a polite euphemism for that
 
user55340
Searching for road rage - ouch. icd10data.com/ICD10CM/EIndex/C/Contact#13638
 
Um, how about "Ice cream headache?"
Just sayin'. There isn't a place you can go to figure out how to deal with ordinary life, except... ordinary life.
 
user41796
5:31 PM
@MichaelT The subsequent encounter is what really makes that one.
 
user41796
> You didn't learn from the first time?!
 
5:44 PM
> Note that a business rule is not a class. Nor is a rule an interface. A rule is neither a property nor a method. A rule isn't any programming language construct. A rule is a rule; classes and structs and interfaces and whatnot are mechanisms that we use to implement model elements that represent the desired semantics in a manner that we as software developers find amenable to our tools.
that all makes sense, but I understand why some people find software engineering a bit daunting. The language can be a bit... dense.
(quote from Lippert's blog)
 
user41796
Naming things is hard.
 
user41796
Incorrectly naming (identifying) things leads to a lot of problems.
 
That essentially boils down to one of my favorite sayings: Communication is hard.
 
user41796
Good software engineering is a difficult task in no small part due to needing to accurately represent things
 
I invoke that saying when people are getting angry with each other during discussions. I always hope it will calm them down... but somehow it never manages to convey the information I want :|
Communication is hard.
 
user41796
5:47 PM
> Communication is hard
 
:)
That's one of the reasons I admire Eric Lippert so much. Not only has he built some crazily cool things, he's also an amazing communicator.
meanwhile, I'm building cruddy business software and resort to poo-humor when I'm losing my audience's attention.
baby steps.
 
6:06 PM
> he's also an amazing computer
FTFY
jasondavies.com/bml <-- why celular automata is just so damned cool. Visually you can tell there's a lot going on; it's complex and very busy, but broken down you can read the behaviour of the cell is unebelievably simple and straightforward.
thx for the visualizations link @MichaelT always cool stuff
 
user55340
I love the evenly spaced point one.
 
user55340
Aside, I'm glad that latest naming question that went to meta the person was understanding.
 
6:44 PM
Java.util.hashmap and java.util.hashtable, I feel the difference is hashmap has key-value pair for a given key, where as hash table has only value stored for a given key.
I said this in interview today
 
@overexchange nope
 
hashtable is an old synchronized implementation of a Map like Vector is to List
both have better implementations in HashMap and ArrayList
 
Both store key-value pairs
?
 
6:47 PM
Oh panelist said the same
How hashmap is better than hash table?
 
@overexchange it's gluten free
 
Sorry?
Gmo?
What is gluten?
 
@overexchange EXACTLY!!
 
> As of the Java 2 platform v1.2, this class was retrofitted to implement the Map interface, making it a member of the Java Collections Framework. Unlike the new collection implementations, Hashtable is synchronized. If a thread-safe implementation is not needed, it is recommended to use HashMap in place of Hashtable. If a thread-safe highly-concurrent implementation is desired, then it is recommended to use ConcurrentHashMap in place of Hashtable.
 
@ratchetfreak so for concurrency use ConcurrentHashMap, but for thread safe scenarios use HashTable - so why would you ever use HashMap ?
 
6:59 PM
when only 1 thread at a time accesses the Map
 
is HashMap simply a decorator over HashTable to give it the newer interface?
 
no it's a thread unsafe but faster implementation
 
@ratchetfreak That's not what your quote states. Your quote says use HashTable for single-threaded scenarios
ah fuck it, I think the fever's getting to me; I misread the quote. I'm going home.
 
or get some more coffee
 
user41796
7:21 PM
Irony is being able to tell @JimmyHoffa that he needs more coffee.
 
7:31 PM
6
A: Can we raise the bar for reputation for late answers to enter the review queue?

Jon EricsonQueue growth Review queues lose effectiveness if posts aren't regularly (and accurately) cleared. A queue such as close votes on Stack Overflow that never seems to get to 0 fails to provide time-sensitive feedback that aids learning. So if we raise the bar for late answers which increases the nu...

 
I have a tree. There are 5 types of nodes: Root, 1, 2, 3, and 4. They form a hierarchy. Root's children are all 1s, 1s children are all 2s, and so on. Now, I need to expand on the data. The original tree is made by reading data on disk to populate each node. There's a new layer of user-provided data. I'm torn between subclassing each node or wrapping each node.
 
7:45 PM
Can we get a few more close votes on this guy's questions? He doesn't seem to be listening to us.
 
@RobertHarvey VFABIC
 
New goal: every starred item in The Whiteboard is about coffee.
 
that's a pretty easy goal to hit as a moderator, just unstar all the other ones :D
 
coffee coffee coffee coffee coffee work coffee coffee coffee.
 
user41796
@ThomasOwens Hard to say without a bit more detail and an understanding of what's already there
 
user41796
7:49 PM
And / or a swag about what's likely to change with future revisions
 
@ThomasOwens 289 posts in Late Answers queue at Programmers now. Badge hunters, site cleaners, unite! Allons enfants de la Patrie
 
@GlenH7 Hm. What else would I think about to decide?
Not sure how much I can share without going through the whole data model.
But it boils down to the fact that user-configurable options can be specified at Root / 0, 1, 2, 3, and 4. Each level has a different set of valid options. So the idea is if I select 0, I can set a bunch of configuration options and have them applied to the children (or the children will have access to them).
 
user41796
Are the nodes more similar to each other or dissimilar?
 
I don't want to just change the nodes, since the nodes (as written now) are designed to exclusively work with data that comes from disk or network to create the hierarchy. The user-specified options are part of application layer objects, so I'm left with wrapping the nodes or subclassing the nodes to create a new hierarchy of things that contain both data and user-specified data.
 
How was future modification of the data scheme accounted for in the design?
 
8:02 PM
I'm so spoiled by Javascript, my knee-jerk response to that question is "just add another property to all the nodes" because in that language it really is that simple
 
@RobertHarvey Changes to the data that is read would be handled in the library. Changes to user specified fields would be handled by the application.
@GlenH7 Pretty dissimilar.
There is some overlap, but not much.
 
Can you put the new data in a "user-configurable" node?
 
@RobertHarvey Not really. It's bound to the level. For example, the root node has certain things that come from the data that is read in from some source. There is another set of user-configurable data for the root node. Node 1 is the same way - a certain set of data that comes in from the data source and another set that is possibly user configurable.
 
And you can't just change the original classes?
 
user41796
What are the odds that the original class will need to be changed and how would you want that to affect a subclass?
 
8:07 PM
@RobertHarvey That doesn't make sense.
 
OK. [shrug]
 
The original classes exist in a library meant to work with raw data and not the user configurable classes. I'd need to add more dependencies.
@GlenH7 Not likely to change. I suppose it's possible. Although a more likely change wouldn't be in the data elements, but validity (a new enumeration type, a change to a range).
 
So subclassing is inheritance and wrapping is composition? Hmmmm....
 
@GlenH7 screw coffee, I've too much coughy; home with a Hot Toddy now instead.
 
@RobertHarvey Yeah. My first thought was wrapping because composition over inheritance.
 
8:09 PM
@ThomasOwens I vote for wrapping.
 
user41796
I was leaning towards wrapping as well as I think it will better protect your design
 
Probably. I'll go with wrapping.
 
@ThomasOwens I have a tree. There are many like it, but this one is mine. My tree is my best friend. It is my life. I must master it as I must master my life. My tree, without me, is useless. Without my tree, I am useless.
@ThomasOwens compose! Do not wrap or subclass. Allow nodes to have arbitrary (or specialized) data appendages. Make the appendages ArrayList<> so sometimes the nodes have no extra pieces of information, sometimes many.
 
@JimmyHoffa What is the difference between compose and wrap?
 
soon, NodeAppendageFactoryDecorator
 
user41796
8:14 PM
Nah, ought to be NodeAppendageDecoratorFactory
 
user41796
just because it sounds funnier
 
@ThomasOwens plausibly nothing, when you say "wrap" I typically presume you're trying to re present the same interface as another class while adding to it. Composing is taking two things and putting them together rather than recreating one of them so you can add extensions
 
I'm going to make a new UserSpecifiedDataRootNode, UserSpecifiedDataNode1, UserSpecifiedDataNode2. Then, each one will have a RootNode, DataNode1, DataNode2 and then attributes for what the user-specified data will be.
 
both fashions could be called "wrapping", but one of them is compositional, the other is decoration
 
I guess I'm composing my DataNode with each of the attributes of user specified data.
 
8:16 PM
this is where I start to lose track of what everyone thinks they're saying
2
 
@ThomasOwens pfleh, why? Why not just have ArrayList<AdditionalData> on all RootNodes
then you don't have multiple disparate types that are specialized
 
@JimmyHoffa Because there is no class for AdditionalData. That comes from a library that is generated from XSD files. Unless I have an ArrayList<Object>
I suppose additional data could be a map of <Class, Object>
 
@ThomasOwens will the additional data always be the same set of elements in the event of a Root node? make all Root nodes have an ArrayList<SomePojo>
 
@JimmyHoffa Yes, a Root Node will have 5 elements. They may or may not be set, but it will always have those 5. Unfortunately, they don't share a common ancestor.
 
@ThomasOwens or that, or map of String, String - whatever you really need/want additional for the Root scenario etc. Just avoids creating RootNode and SpecialUserRootNode
@ThomasOwens so create a pojo that has each of the 5 elements and it may be null on the Root node
 
8:19 PM
So I'd create 5 POJOs - one for each data node. And then 5 classes to compose the POJO with the data node class.
That's 10 new classes instead of 5. Not sure exactly what that buys me.
 
I really want to know what your data model is now
 
It's bad. But it's a public interface now, and we can't change it without breaking software from customers or suppliers.
 
@ThomasOwens how much reuse will you get out of Root ? If it's going to be used for the base case and this UserSpecific case, and no others... it makes sense to have the UserSpecific optionally a part of the base case (will all cases of Root eventually be UserSpecific cases? Are there sane defaults so they can all be UserSpecific ?)
@ThomasOwens if those elements are stringable just use strings instead of custom objects. Think about whatever you can come up with to make the data optional members of your nodes - stick with primitives wheresoever possible - and you'll end up with the same types being reused more often and less duplication of code just to handle TypeA and TypeB
Otherwise, do the wrapping, it plausibly won't hurt - just throwing out there a possible solution. But what do I know, I'm sick and drinking a Hot Toddy; I'm liable to encourage use of goto right about now
 
I'll have to think about it. I do think that subclassing is the wrong way to go.
It's just a matter of what method to use to compose. Either Node + <each element> or some kind of POJOs and the Node.
 
@ThomasOwens I use strings a lot for arbitrary optional data. Hasn't bitten me yet, but it definitely can.
 
8:25 PM
Maybe some people here will be free tomorrow and they can take a look at both options. I'll draw both up first and see if one has any issues that jump out at me.
I think I'm going to call it a day today, though. Maybe inspiration will strike in the middle of the night, too.
 
@JimmyHoffa same, I'm very partial to schema'd JSON strings myself
 
@ThomasOwens Post a Programmers question.
 
user41796
The Late Answers queue is turning up a treasure trove of questions to close or delete.
 
8:43 PM
@Ixrec I don't quite go that far; I often use the JavaScript approach of string,string dictionary to represent an object of arbitrary shape where I just have to know something like QueryStartRange key points to an element that must be read with DateTime.Parse() - and the scenarios where QueryStartRange isn't in the dictionary or list of KeyValuePairs I don't worry about it.
 
@JimmyHoffa yeah, when I'm in C++-land I'm more likely to do maps of strings
 
@Ixrec it's just a bit of an out from the type system so you don't have to make a class for every permutation of properties your objects may have
I could see it being useful in C++ as well
 
 
2 hours later…
10:20 PM
@psr have purescript up in spacemacs now... going to see how it works for creating my JavaScript module system since that's purely a code thing with no DOM..
 
10:43 PM
I'm voting to close this question as off-topic because this is not a programming issue. A request about how to acquire credentials to attend a gathering of programmers does not make this a problem that can be solved by programmers. — Claies 42 secs ago
 
11:28 PM
looo loo pew pew pew
 
11:46 PM
@DmitryRubanovich : When you edited it to read "what are the conceptual obstacles which need to be overcome before starting." you didn't make it on topic for StackOverflow, but your question may be much more suitable for programmers.stackexchange.com which is specifically for the conceptual type questions (although it may still be overly broad) — Michael Petch 13 secs ago
 

« first day (1852 days earlier)      last day (3145 days later) »