@enderland perhaps your manager who did learn it will rise to that level later in life and carry the lesson with him. Either way, if you hide the mistakes of folk doing work - they'll never get better at the work they do.
@LightnessRacesinOrbit eh, not the average employed american. Average working commuter drives 15 miles each way 5 days a week. 5 * 10 = 50 + (5 * 5) = 75 * 2 = 150 * 52 = 10 * 150 * 5 = 1500 * 5 = 5000 + (5 * 500) = 7500 per year just to and from work
@Ampt at Employer^^^ we had a screen in the middle of the cube farm hooked up to some little nothing machine someone setup with a little application that would flip between various countdowns. Usually it was since last release and to next release and since first go-live and since last downtime and stuff like that just random neat things, sometimes people would add countdowns for silly stuff though "Since last drunken outing" or "Until the end of the world" (mayan calendar date)
@Telastyn there is a rational partition you can construct based on queryable records for someone querying? If so I think I have a plausible solution.. Depending on the size of that group- would it be reasonable to load just that group into memory temporarily?
@Telastyn What you can do is come up with a cache-size-constraint and evict-on-add where you know you're missing records based on the querying user: They can see records 1400-1500, those aren't in the queryset, dequeue the last group and enqueue 1400-1500. Subsequence queries by that user will have cache-hits
that's based on having the concept of partitioning records to querying users (User A can see record group A), and then you cache groups of records as such.
User A tries to query, record group A is in the in-memory-cache, cache hit: It searches his record group based on his query info. User B tries to query, record group B is not in the in-memory cache and the in-memory cache is at it's size-limit for group-count. Evict record group A and add record group B. (eviction should be FIFO)
Ah distribution tricks it up a touch. You could use redis or some such..
@Telastyn that said, the "add to memory" process would be expensive but doable if you: Hash each searchable field as an each-character-hash. It would bloat like crazy which is why you'd want to only add groups of records at a time rather than all records. It may expose hash specifics but so long as all hashing is done internally - is that a sincere concern? It still protects the PHI per HIPAA
@Telastyn they do. You could do it in RDBMS: User comes into the query page, you immediately evict the oldest hashed record group from a hashed-query-structures section of the DB, and shuffle hashed versions of his queryable data into it.
Hash the column name along with the data and you wouldn't need to make it too complex: EntityTable(EntityId, FirstName, LastName) HashTable(Hash, EntityId) Hash <- SHA('FirstName' + entityTable.FirstName)
then when they query on "FirstName" it salts the hash the same.
So I just talked to my boss about the salary difference. Just gave me the "internal equity" line. Honestly, I don't care what everyone else makes, if they aren't monitoring their salary on their own and shopping around.
There shouldn't be internal equity. It's a dumb concept. People who work hard and take on more responsibilities and do things (like monitor their compensation) should get paid more than people who don't.
@Telastyn which is why it would be important to have some predictable set for a given user - hopefully a shared set so 8 users all come in and have the same set and you would have to add/evict less
you would need to do that to ween down the number of records you have to load there. Alternatively: Amortize it and juts except that HashTable will be stupidly huge, and just fill it the hell up. RDBMS can handle huge data sets when they're simply structured.
Also, my point is that I make less than the median salary...I think I far outperform the average software engineer of my age, experience, and company tenure.
I'm not an exceptional software engineer. But I think at least average, if not above average.
Well, I'm meeting with the HR partner for Engineering next. Don't know when.
Maybe HR can override the internal equity thing. Maybe this is how adjustments happen - one person complains, gets bumped up, and everyone goes for the ride.
@Telastyn do a query that finds the largest record (longest strings to be queried by summation of all of them), then generate a hash at every character length (or every 2 characters) and just see how much data you just created. 100 records? 1000 records? then multiple that by the average group-size and ponder how big the table will be.
@ThomasOwens I think you are about to talk into the bear's den. Do not have those types of conversations with HR unless you want to suddenly find yourself "lacking" in performance and somehow black marks show in your file before you get put on a PIP... do not mistake to think company's act based on what's best for their productivity. If they did; they wouldn't have that stupid rule to begin with.
@ThomasOwens visibility isn't what makes folk dangerous, it's invisibility. HR can do anything they want and nobody ever see's it. Regardless of all that; just start getting your hands into other opportunities before you go around risking your job
Then again, you're single without family so you get canned it won't be the end of the world
Fired on a PIP: Best of luck getting that raise then... You risk significantly less just moving the hell on, and you have wayyyy more to gain. (Even if you get a bump where you are, it wouldn't compare to what you can get moving)
@enderland This is the old code we now have to massage into working for another 8 months until the contract is up while they attempt to rebuild their whole site in drupal
there was a reason the redesign was also a rewrite from scratch
So, if I leave where I am now, how do I get a promotion? The next step up is something like a lead software engineer or software project manager or something. But all of those seem to want existing lead experience.
Do I just go for a lateral transfer out and then work on up?
@Ampt If they are underpaying me from market median because of "internal equity", yeah. Well, I'd like to stay in defense. But I should be making about 12k/year more than I am now.
@JimmyHoffa No, It's just that from where I'm sitting, he has more value to another government contracting company due to his experience in the field and any credentials he has
a lot of the hard engineering stuff he does now might not apply as much outside the bureaucracy that is our government
@Ampt It looks like to get the next level up position at BAE, Raytheon, MITRE, etc, I need 5+ years of team lead positions. Not sure if it's worth applying with 0.
@Ampt is true. Also for the type of stuff he wants to do (process) - Gov is going to be a better fit. They have more interesting things to do on that front as well as taking it seriously and just being overall more stable employers in a variety of ways
like, compare yourself to someone who worked at facebook as a manager for 5 years versus yourself - sure they have more managment experience, but you would be an overall better fit because you've been in that field before
@enderland Making at least $6k/year less than market median (although I disagree with some of the inputs we used when I ran the salary survey results with my boss) is unacceptable, that's for sure.
That's my dilemma. I really like my job, I don't like being underpaid. And I don't like this whole "I can't do anything because I need to maintain internal equity". I do more and better work than everyone else, I get paid more - that's how it works, right?
Ok, being completely honest here: Really, you have been hanging onto some just world fallacy far too long methinks.. this is really not even remotely close to reality.
@enderland haha who cares. You have to recognize when management does lots of stupid things, and employees take care of themselves and it hurts the employer- The employee has done the manager and employer a service. Consequences are the only things that teach companies, and they have so few of them despite doing terribly dumb things. Whenever my actions cause a company a consequence resultant from their own stupidity; I'm glad I had the opportunity to train them.
@Telastyn for some reason I feel like a quad-tree's geospatial facilities could help you efficiently query down to sections of records to do fewer hash or encryption comparisons and thus less hash or encryption operations executed overall (hashing or encrypting your query values rather than decrypting / hashing the values being queried against)
I can't pin point why that seems like it makes any sense.
@ThomasOwens do remember when discussing numbers and analysis with non-technical folk; they weigh data significantly less than you do vs. their gut sense / the cultural training they've received by their cohorts
So what do they value? I can point to my contributions. Like the other week, when like 8 people were debugging things for 2 days. I walked in, read the code, had a few hunches, Googled a few things, and found the answer.
We're used to using evidence in decision making - the vast majority of non-technical innumerate folk make their decisions based on first-hand experience significantly more. If you found a statistically backed analysis evidencing that your first-hand experiences were incorrect and the study seemed sound, you would try a different decision - most professional workers do not function in that way.
Snickers is a brand name chocolate bar made by Mars, Incorporated. Consisting of nougat topped with caramel and peanuts, enrobed in milk chocolate, Snickers has annual global sales of $2 billion.
In the United Kingdom, the Isle of Man, and Ireland, Snickers was sold under the brand name Marathon until 1990. Snickers brand Marathon energy bars have since been sold in some markets.
== History ==
In 1930 Mars introduced Snickers, named after the favorite horse of the Mars family. The Snickers candy bar consists of nougat, peanuts, and caramel with a chocolate coating. The bar was marketed under the...
@Telastyn you suck; totally sniped me this morning... that sort of problem is precisely the type of work I love to do and have been successful at in the past..
Performance-constrained data problems are the most interesting things to work on..
@ThomasOwens if I had my way I would live in a sea of single malt; I would have the ability to fly and my laser beam eyes would have finally developed.
@ThomasOwens honestly; I'm not particularly good at Haskell, just enamored of the benefits I can see in it and the thought processes surrounding it. Wish I was better but meh. Scala seems fineish, I just struggle with the sheer size of the language - it supports sooo many different things at the language level which I tend to fear means people will execute significantly more abuses with it by accident than if it was more minimal and focused.
@ThomasOwens it's honestly got one of the best success chances of newer stuff over enterprise options... Otherwise I'd say for "newer" stuff; go pick up Node.JS. Funner, more interesting and a cleaner clearer language scope
@Ampt right, C++ is as big if not bigger than Scala, Java is rather smaller, C# as well - though in both cases they're still a little richer than perhaps absolutely necessary. To be sure though, I don't see either as enormous languages full of sporadic feature sets... their features are fairly cohesive
You can write Java in Scala, you can write LISP in Scala, you can write Groovy in Scala... it's syntax is like every language got bolted together
That way, @JimmyHoffa is happy that someone else is doing Haskell (like things) and I'm happy because I can stay in my nice little JVM box that I adore so much.
user41796
@JimmyHoffa ?! C# along with the .NET framework is probably the largest language in use at the moment
@GlenH7 language - not framework. C# as a language hasn't an amazing amount of syntactic structures compared to most languages, and the pieces of it are all quite cohesive. The framework is handily one of the largest libraries in use, agreed there, no question.
@GlenH7 that was my point; languages that have large numbers of their features at the language level instead of through library support are code smell. C++ falls into this category, Scala too, honestly not a lot of languages do that though..
@ThomasOwens if you want a nice cohesive JVM language which is actually being adopted, Clojure is your answer. It's genuinely a solid language choice, and has had quite a good bit of adoption which only appears to be growing.
@GlenH7 she's just covering her tracks post-hoc, @AshleyNunn next time you disappear someone - create the alibi beforehand. It'll save on lawyers fees.
Adoption has been on the rise - seemed to be quite a lot of hype on it last year and I've seen a fair number of jobs posting for it - which is more than I can say for any other FP lang other than JS and Scala
@ThomasOwens Scala is FP capable - JS is FP first - I don't know ruby well enough to state but my understanding is it's more SmallTalk-OO than FP; and Python maybe? I think it's kind of a second-class citizen in Python like in C#
If we had a question and an answer for all the possible wild typos all JS programmers in the world have done in their life, this site would become the first realisation ever of the Library of Babel. — Muziettojust now
Do any of you guys work on interesting problems to program outside of work? I find it hard - usually, there's a significantly faster and easier non-code solution. My first instinct is to solve the problem and move on, and that usually involves no coding.
@ThomasOwens it depends on what interests you, I think one of your issues is you have more interest in solutions / end products than in problems necessarily
the main reason I decided programming was a good career path for me was that when I got really into programming around the age of 11-12, the reason I stopped was that I ran out of ideas for things to code, the actual desire to code stuff was there but I needed someone else to tell me what to make
for me I know what types of problems I find really sincerely interesting: State machines of various fashions. They're prevalent and easy to find so I like playing with different ways of solving them. I don't care to be finished with a solution or make something useful - that's not the point. The point for me is to play with the problem because I find it interesting.
@ThomasOwens it's why you've got a broader focus than code. I could construct different ways to handle asynchrony all day and not get bored, but I could care less if it helps anyone.
@Ixrec I'm with you there as well; it's hard I think for most of us to really find something we want to code. This is where SE is a lot of fun. The majority of the coding I do outside of work (what little I do - most professionals really don't do this much despite claims otherwise) is trying to solve other peoples interesting problems around SE; like the JS snippet I did the other day to optimize that sorting thing
I don't care the least bit about languages or design patterns or frameworks or any of that stuff, yet I have no shortage of stuff I could work on if I had the time
are there any "problems that need to be solved" out there which aren't specific to a particular business, or would have been solved were it not for annoying network effects/user inertia?
@JimmyHoffa Not just API design. Algorithm implementation, too. I have been thinking about modularity and plug/play kind of extensibility at some interface level.
I am a C++ developer, slowly getting into web development. I like LISP a lot but don't like AllegroCL and web-frameworks available for LISP. I am looking for more freedom and ability to do cool hacks on language level. I don't consider tabs as a crime against nature.
Which one is closer to LISP:...