« first day (1334 days earlier)      last day (3954 days later) » 

00:53
this is what I wanted 10k for... programmers.stackexchange.com/a/237263/35276
 
5 hours later…
05:56
What sort of businesses and business applications would want to host websites on Azure OS?
 
7 hours later…
12:32
I just wrote an email and did the following capitalization.... "this is FROM" <-- you know you've been doing too much SQL when...
@MichaelT part of me hopes I get laid off and get some severance. I think.... that's not a good attitude?
@JimmyHoffa many people aren't capable of synchronous communication, let alont working remotely
@MichaelT if you keep your skills even remotely good and have any level of interviewing skill, it is pretty easy to get a good position (especially if you have the attitude of interviewing THEM rather than exclusively being interviewed)
 
2 hours later…
14:15
Unfortunate fact business people rarely understand about deadlines: You can't buy time. He can be willing to break all the banks, but money doesn't make a project complete faster, it just makes him feel better; not the same thing. — Jimmy Hoffa 25 secs ago
14:36
2
Q: How should I handle exception that *should* never be thrown?

elimirksWhat is the best way to handle errors that shouldn't ever happen? My current way to do this is to throw an exception if the 'thing that shouldn't happen' does happen, like so: /* * Restoring from a saved state. This shouldn't be * null unless someone in the future doesn't set it properly, in...

I could speak at length diatribing a rant answer there, but instead voted primarily opinion closure because it's just like tabs vs spaces, there may be logical arguments on each side but that doesn't mean any choice can be claimed as the authoritatively correct one, all are equally correct.
I'm inclined to think this will only generate debate and opinion, even logical criticism of each possibility doesn't change the fact that the criticisms on any answer to this question will be just as valid as each answer; there can be no authoritative answer here. It's like asking what language is best, you can make logical arguments to and fro but you cannot make an authoritative answer (unless your answer is Haskell) — Jimmy Hoffa 30 secs ago
@mister_rampage no, the bigger picture is quite simple: Your director saw dollar signs and decided "Great, I'll just demand my guys break their backs if need be and we'll rake it in.", given the fact that what is being asked for can't be done on time, you can logically predict what will come next: It will reach near the deadline, you and your colleagues will be busting ass and won't get it done, in that situation you may know best how your client or director will react. Usually the director will just try to save face apologizing while trying to still get the money, clients are unpredictable — Jimmy Hoffa 3 mins ago
@mister_rampage when trying to predict and account for their actions, keep in mind: Both your director and this client have actively and openly committed to do something which they have both been told clearly cannot be done by the experts who would actually do it. So you should assume neither of them to be particularly bright, keep your predictions to what inexperienced idiots would do. — Jimmy Hoffa 40 secs ago
...I don't assume money-driven managers are dumb as rocks, nope, not at all...
 
1 hour later…
user55340
16:05
An example of a community auto-protect: programmers.stackexchange.com/questions/237364/… - note the time of the protect = time of Luaan's answer. Furthermore, there are two deleted answers with rep of 1 and 101.
user41796
@MichaelT I don't understand how that thing blew up the way it did
user55340
Stack Overflow / Super user types - its a question they'd answer.
user41796
@MichaelT "Oooooh, looky! There's one within our league!"
user41796
<sigh>
user41796
@MichaelT - sorry to hear about the job loss. Are your local prospects looking pretty good though?
user55340
16:11
Three other tech companies in the area, all hiring... though one of them is a client of my former employer.
user55340
(and thats without trying to find where the cray people went)
user41796
I'd call that pretty good then. You have two decent shots without running into any conflict of interest issues.
user55340
The client is a big company with lots of arms to it... so even if it comes to that one I've still have the ability to stay out of conflict of interest.
user55340
Its more a "if I apply there and they look at the resume the question is 'why were you let go from the previous place that is one of our subcontractors'?" and that would get an answer of "talk to Jim" which leads to other messes.
user41796
@MichaelT And in some cases, if you left on good terms, then former company doesn't get upset to see you at a supplier. They figure it gets the vendor closer to understanding what they need.
user41796
16:19
oh, ooops. I was indexing your job history incorrectly. Former === immediately former.
user55340
@GlenH7 There's former and former^2
Woah. UML has like...changed.
user55340
former^2 would scream bloody murder if I applied at one of their suppliers.
user41796
@MichaelT Just got that... :-) Not the quickest these days with this sinus infection that won't quit.
user41796
@MichaelT oh really? That's pretty extremely short-sighted of them.
user55340
16:21
Former^2 (hmm... mabe I should switch to git notation)... has very strong anti-conflict of interest policies in place.
Oh. Guess it hasn't changed too much. No new diagram types since 2.0.
I got worried there.
user55340
Employer^, and Employer^^...
user41796
@ThomasOwens The shift from (1 || 1.1) to 2 was pretty radical, yes. But I thought it had settled down at v2
user41796
@MichaelT - sounds like you still have decent options to consider while being able to remain local. Can't argue with that.
It is up to 2.4.1 with a 2.5 beta.
user55340
16:24
@GlenH7 The owner's nephew of Employer^^ who was being groomed to take over the company was fired because he accepted wedding gifts from people who worked for him in the part of the company he ran.
It's mostly minor revisions and clarifications.
2.5 is producing a single specification document, for the purists out there.
user41796
@ThomasOwens I kind of stopped following UML progress once I stopped working for the really big, international consultancy (tm).
@MichaelT some with blue blood have evaded darwinian competition long enough they're still living by feudal rules
user55340
@JimmyHoffa When it comes to conflict of interest with outside vendors, Employer^^ is scrupulously honest. Its posted in every conference room that employes may not accept gifts from a vendor. The company lives by its policies being followed strictly... and thats one of them.
user55340
That said, it would have been an interesting thing if the nephew rose within the company.
user55340
16:28
> “He’s the only one that wants it, but he’s not capable,” says a former high-ranking executive. Former Employer^^ executives describe Charlie as “a computer geek” and “a nice guy” who lacks the business and people skills to run the company.
user41796
@MichaelT Never a good sign when there isn't any competition for the top slots.
user55340
@GlenH7 "He's the only one (in the family) that wants it..."
user41796
ah, that's an important qualifier
user55340
(Son) Paul just wants to drive race cars. The daughter (forgot her name) was never into the family business.
user41796
I yanked that previous one as I didn't think it fair to ruminate about that company without evidence of the rumors.
user55340
16:52
I've got an expired close vote on programmers.stackexchange.com/questions/48973/… if anyone else wants to toss that back into the queue.
user41796
@MichaelT I would, but my vote has expired too
user41796
I'd flag and point out it's an off-topic resource request. We'll just pretend to ignore who asked the question.
close vote applied
user55340
@amon Thank you.
user55340
There are numerous times I wish that expired close votes would expire so I could recast them.
17:04
But you do see my point, right? Anyone who is fixated on Moore's law, or whether it will still be valid 5 years from now, has taken their eye off the ball. I daresay that those who rely on the law to get their bloated software and websites to work properly have also taken their eye off the ball. — Robert Harvey 2 mins ago
Need a hammer and ice pick. :D
user41796
@RobertHarvey <cue scientist> It's not a freaking law as it's never been proven to be true. It's not even a theory from that point of view. It's only a hypothesis that has managed to hold up for a fairly significant period of time. </rant>
True that.
user41796
And he never meant it to be a Law. It was an observation he made, and he thought it would be useful to share with others.
@GlenH7 But Moore's Observation just sounds so lame.
user41796
<sniped> But at least I managed to choke off the expected retort.
17:07
@JimmyHoffa: How the hell do you accidentally implement a monad transformer stack?
@ThomasOwens Can we override that duplicate closing and just close as Primarily Opinion-Based? Like hell I'm going to endorse another botched duplicate closing.
user41796
@RobertHarvey I'd be fine with that too. Either way the Q needs to be closed.
user55340
Would it be stalkerish to try to plot Eric's activity on P.SE? Anecdotally, I think I see him more often here than before.
user41796
@MichaelT That would be my observation as well. And I think it depends upon how far you take the plot that would determine if it's stalkerish.
user55340
Actually, go MSO to poke at the high rep stalkers - meta.stackoverflow.com/questions/252756/… (and others) where people are looking at answering and voting patterns of 20k+ users.
user41796
17:16
@MichaelT I'd call that pretty cool and not stalkerish since they are looking at the aggregate of a fairly large sample of users.
user41796
oh, just got to the part where the top 12 are called out
user55340
I'd have to go dig into the one where they called out the 1337 high rep users who didn't down vote with a data.se query.
@RobertHarvey well, I was making some compositional APIs with continuations which naturally as I generalized it formed into a Cont monad, and all the composition was doing Maybe monad style fault bubbling, so as I was generalizing it to carry both a value and a success/failure result the composition required me to interleave the two composition logics I was working on
user55340
@RobertHarvey Did you see that bit about what languages to learn this weekend?
user41796
17:21
And here I was thinking that was a Gilligan's Island reference. :-(
user55340
yesterday, by MichaelT
Haskell. Well... you'd need to ask a haskeller about that. It could be good. It could expand your mind. It could also cause your mind to explode and then someone will have to clean the monads and Zygohistomorphic prepromorphisms off of the screen. That could get messy. If you survive haskell, you will think different.
Seem to remember seeing a question like that. Or was that the day before? Or the day before that? Or...
@RobertHarvey it is kind of funny to be honest. When you're modeling and implementing some CRUD stuff without really thinking you start creating repository like classes I suspect, no? I find myself creating bits and pieces of monad stuff without intending to create a formal monad... in a way the Expression's are like the Cont monad to begin with, especially when you use them like I am...
One of these days when I'm more versed in pure functionalism, we'll have a real discussion about that. Is your code in a repository somewhere, so I can study it?
@RobertHarvey nah, proprietary; you can see a snippet of it in my post from the other day
2
A: Expression Lambda error "Argument types do not match"

Jimmy HoffaI resolved this! The problem was the IfThenElse expression neither does an implicit return like a Block does, nor does it allow an explicit return using an Expression.Return (at least not as far as I could tell, unless I was doing them wrong), the solution was to change the code so the IfThenElse...

that's like bind for the maybe monad in a way
or rather, like kleisli
if you call the monad M a b = Expression<Func<a,b>> then you can see that functions signature is M a b -> M b c -> M a c which is a representation of kleisli, and the decoration between the M a b and M b c is to handle null returns silently so it acts like Maybe in carrying errors forward and not executing the rest of the steps composed
user55340
18:30
@GlenH7 that 'insert' question is one that really wants to know about databases and indexes and such.
user41796
@MichaelT oh? I saw it as more of a filesystem thing
user41796
But it's similar reasoning between the two domains.
user41796
0
A: Why can we not insert into files? (I neither mean append, nor over-write)

GlenH7The "problem" boils down to how files are written out to the storage medium in a byte by byte fashion. In it's most basic representation, a file is nothing more than a series of bytes written out to the disk (aka storage medium). So your original string looks like: Address Value 0x00 `a` ...

user41796
I thought Killian was close to addressing it, but he got too tangled up in worrying about the blocks. A simple string like that isn't likely to span a block.
user55340
@GlenH7 If I had a structure of block sized units with how much space is in each of them, I could insert by only modifying two blocks and the index.
user41796
18:38
@MichaelT Agreed, blocks allow for quite a bit more manipulation which is why I tried to keep my answer focused at the byte level.
user55340
Then there are also file like things (they call 'em "streams" now days) which work with the abstraction of the file / file handle, but aren't blocks on a disk. Like a serial port with data on the other side, or something from the network...
user41796
That's what I love about Unix. Everything is a file.
user41796
19:30
Oh hey! Now that you answered my question, I'm going to fundamentally change it with an edit.
user55340
Revert it - it invalidates all the answers on there. Suggest that the question that he's really asking be asked on SuperUser or the like.
user41796
Done, and good suggestion.
user41796
20:13
@MichaelT - Hell hath apparently frozen over. The US is getting chip-and-pin technology with credit cards. Granted, it's a limited set of cards (Target's REDcard) but it's something I hadn't expected to see in the US for quite a while. theregister.co.uk/2014/04/29/…
user55340
IIRC, Visa is going to require all card readers be NFC within a few years. Its not something that can move fast, but I've seen hints of it other places.
user41796
That would be awesome. I'd love for the big four CC companies to require it.
20:30
ugh
chip and pin = fail
I personally am not a fan of attempts by banks to absolve themselves of all responsibility and leave customers empty handed in combating fraud
user41796
@whatsisname I wasn't aware of the credit card companies trying to absolve themselves by using chip & pin. Rather they were trying to make fraud harder to accomplish.
that's pretty much how it went in Europe until 2009
Chip and PIN is the brand name adopted by the banking industries in the United Kingdom and Ireland for the rollout of the EMV smart card payment system for credit, debit and ATM cards. The word "chip" refers to a computer chip embedded in the smartcard; the word PIN refers to a personal identification number that must be supplied by the customer. "Chip and PIN" is also used in a generic sense to mean any EMV smart card technology which relies on an embedded chip and a PIN. History Until the introduction of Chip and PIN, all face-to-face credit or debit card transactions used a magn...
the banks said "Our chip and pin is flawless, it must have been you, not fraud, so say goodbye to your money, not our problem"
user41796
@whatsisname US companies have been pretty good about seeing implementation flaws from over the pond and adjusting accordingly. Not to say they wouldn't necessarily try...
user55340
20:51
(side bit: it warms my heart when I see my meta resources linked in comments by non-chat regulars)
user55340
21:55
> This would be really easy with something like an Option monad.
user55340
Jimmy?
user55340
> Unfortunately, Java doesn't have those. In Scala, I'd use the Try type to find the first successful solution.
user55340
Nope... its Amon.
@MichaelT Option = imperative peoples attempt at labeling the Maybe
user55340
3
A: alternatives to nested try-catches for fallbacks

amonThis would be really easy with something like an Option monad. Unfortunately, Java doesn't have those. In Scala, I'd use the Try type to find the first successful solution. In my functional-programming mindset, I'd set up a list of callbacks representing the various possible sources, and loop th...

21:56
@MichaelT yeah, it's kind of a homage
everyone calls Maybe the Option, except Haskell :P
@amon pretty certain Maybe came first, whether from Haskell or MLs before it
according to Wikipedia, SML uses 'a option = NONE | SOME of 'a.
@amon why didn't you make your example fluent though? that's the nicest part about monads; the resulting api allowing you to effortlessly string together a sequence with .bind(bla).bind(bla).bind(bla) granted without lambdas you have to use an encapsulating class that owns each implementation, but that isn't altogether tricky
@amon interesting, perhaps it was option first... seems strange, most of Haskell's lexicon draws upon older concepts from maths or MLs, I guess Maybe was just somebody's random choice perhaps
user55340
@RobertHarvey ^^ see? Even Jimmy says 'bla' 'bla' 'bla'. I'm waiting for the Ginger monad. It would explain why there's never any IO on Gillagian's Island.
@JimmyHoffa I though of that, but using the dumbest thing possible (List + loops) can be showcased with less code. It's still a massive improvement in flexibility.
user55340
22:04
Woo Woo!
user55340
3
A: Notify users of possible reviews on toolbar

Anna LearAs of a few minutes ago, we are replacing the pending suggested edit count in the top bar with the number of pending reviews for diamond moderators and folks with the "moderation tools" privilege (i.e. 10k users on graduated sites and whatever that level's at on betas): We are excluding the Cl...

@amon it is a massive improvement, but it's not a ton of code to do fluently either... all you need is something like:
public class OptionalRepoResult<T>
{
    public T Result { get; set; }
    public OptionalRepoResult<T>(T result) { Result = result; }
    public OptionalRepoResult<T> TryThisFirst(int someId) {
        return Result == null ? new OptionalRepoResult<T>(null) ?  new OptionalRepoResult<T>(DoSomeRetrieveyWork(id));
    }
    public OptionalRepoResult<T> TryThisNext(int someId) {
        return Result == null ? new OptionalRepoResult<T>(null) ?  new OptionalRepoResult<T>(DoSomeRetrieveyWork(id));
    }
then the use is simple someRepoReturnsOptionalResult.TryThis(someId).TryThisFirst(someId).TryThisNext(‌​someId);
someRepoReturnsOptionalResult.TryAnythingOnce();
@JimmyHoffa But now I have IDs, which the question didn't sport. So I'll still end up using callbacks somewhere.
plus that doesn't require any advanced features at all, doesn't require lists or any real state to be carried around, just some simple checking
@amon what? yes it did...
also what do you mean you have ids? each method just takes an id, just like in his example
Element e = return repository.getElement(x);
if (e == null) {
    e = repository.getSimilarElement(x);
}
if (e == null) {
    e = repository.getParentElement(x);
}
if (e == null) {
    throw new IllegalArgumentException();
}
return e;
I presume x is some id
22:10
/me should have read the question more closely
and the id's are only parameters, they're all function local so not risky
rather my example relies on nulls, instead of a null check it should be using try/catch to decide the failover
anyway, why don't you post your improved code as an alternate answer? Just make sure to lowerCase your method names etc.
@amon because I'm exhausted and don't care enough heh, maybe I'll jigger it together another time.
@amon was only curious why you didn't give that way a shot considering you're referring to something monadic, fluent APIs naturally flow from monads..
+1 anyway, it is a good implementation and like you said, far better than what he had
well, the next time I'll be sure to shove full-blown monads down the throat of an unsuspecting victim, rather than just reverting to veiled threats of the M-word. If that's what you want ;-)
@amon ;P in reality people understand fluent API code just fine, no need to use scary words when simple code can speak for itself
I believe my half-hearted example shows that you can show implementations of that stuff with very plain-written code
22:17
Most fluent API's could probably be avoided with judicious use of constructors, unless you're writing something like jQuery.
Or linq.
@RobertHarvey why would you avoid a fluent API?
LINQ has a fluent API, fluent APIs are great; people of all levels tend to find them very easy to use and work with
People sometimes use them because they think they can write.code().in.Plain().English with them, but they're more a parlor trick in that regard, and don't really add any useful value.
@RobertHarvey You don't think that in LINQ doing .Select(...).Where(...).OrderBy(...).ToDictionary(...) aids in the future reading and maintenance of the code?
There was a really horrible question regarding fluent APIs a while ago. Basically: why whould I use a real programming language if I can abuse fluent APIs.
-2
Q: Method naming advice required

bali182My question will be about how do you think it would be fit to name some methods in a fluent interface. Let me try to demonstrate the problem. Consider this relation tree: A person can have dogs and cats, and a dog can have bones. Pretty simple. What i'm trying to do is create a domain specif...

Would you rather it be LINQ.OrderBy(LINQ.Where(LINQ.Select(someCollection, func), func), SortOrder.Descending);
22:21
They've built up a functional pipeline with it. That's fine. Nothing wrong with that at all.
But consider this anti-pattern:
var someObject = new Whatever();
someObject.Azimuth.Is(40).and.Elevation.Is(100).
versus
var someObject = new Whatever(azimuth: 100, elevation: 40);
What's wrong with the first example?
(other than it is a wordy little bastard, and you're never quite sure what's going on under the hood?)
@RobertHarvey just because someone designed a stupid fluent API doesn't mean they're not good. A fluent API should - like any other API - not allow you to enter invalid states. I would presume someObject.Azimuth(40) would be invalid without all .Elevation(100) which makes not only the .and.elevation.is a bunch of hogwash, but also makes the API just bad by allowing improper states
fluent APIs are best for actions - like you said, data pipelines, you should string together actions
like StringBuilder's .Append("this").Append("or").Append("that") - append is an action, select is an action - aggregate is an action, toarray is an action etc
user55340
The effect of that 'put the reviews in the menu bar':
user55340
where is poorly named- should be filter which is an action, but they decided to go with where to be more SQL like
user55340
Not sure what site that was on... but that screen shot was taken about 18 minutes after it was implemented.
user55340
22:29
(actually, given the tabs, looks Stack Overflowish)
user55340
@gnat that review count has gone down by ~20 since it was added.
23:02
@JimmyHoffa Bingo.
user55340
23:40
user55340
Cover letter is optional.
user55340
(gotta remember to rev the programming experience numbers)
user55340
23:56
Project idea: Checkstyle for resumes. Take an rtf file and make sure everything is proper and consistent ("March 1997-August 1997" vs "January 1997 - March 1997") - note the spaces there.
user55340
Alternatively, make an xsd for a resume, and create a generator for rtf (or pdf) from the xml.

« first day (1334 days earlier)      last day (3954 days later) »