He who laughs last...
-
@ben_lubar said in He who laughs last...:
ok now parse the value
intofrom JSON and put it in the data variableFTFY.
-
@dkf said in He who laughs last...:
Does the JIT engine know that that must be true?
Yes, by definition.Good thing I checked. While the DOM spec says that it's a defaults-to-empty string, the property is configurable, so its getter could be replaced with any arbitrary function. Since configuring DOM nodes is exceedingly rare in practice, most JS engines make the optimization anyway and just revert to slow mode when that constraint doesn't hold.
-
My Boss has so completely mishandled this project, I am astonished. He has no idea what's done, what remains to be done, what works, what doesn't.
He asks me to make an importer, I work overtime on Friday to make it happen, turns out it already exists.
He asks me to make sure a crucial 3rd party integration, on which the entire product depends, is up to snuff. I look around, can't find the code anywhere. Boss: "Ah right, we actually never finished that because we never got the account working."
Did I mention he handed over the project to the client over the weekend?
This has got to be the biggest clusterfuck I was ever involved with. And I've seen quite a few.
-
@cartman82 said in He who laughs last...:
My Boss has so completely mishandled this project, I am astonished. He has no idea what's done, what remains to be done, what works, what doesn't.
He asks me to make an importer, I work overtime on Friday to make it happen, turns out it already exists.
He asks me to make sure a crucial 3rd party integration, on which the entire product depends, is up to snuff. I look around, can't find the code anywhere. Boss: "Ah right, we actually never finished that because we never got the account working."
Did I mention he handed over the project to the client over the weekend?
This has got to be the biggest clusterfuck I was ever involved with. And I've seen quite a few.
How long before you get blamed for this one?
-
@twelvebaud said in He who laughs last...:
@dkf said in He who laughs last...:
Does the JIT engine know that that must be true?
Yes, by definition.Good thing I checked. While the DOM spec says that it's a defaults-to-empty string, the property is configurable, so its getter could be replaced with any arbitrary function. Since configuring DOM nodes is exceedingly rare in practice, most JS engines make the optimization anyway and just revert to slow mode when that constraint doesn't hold.That's how most JavaScript JIT stuff works, because the entire language is set up as its own memory hacking library.
-
Oh, goodie. There's now a part-time "fixer" brought in to try and whip this pile of crap into a working order. Again no mettle, because, according to Boss, "he should be more normal than the last guy". Always the optimist, my boss.
The important part is, I am thankfully off the project. At least for now.
-
Time to remind everyone of the old saying: “He who laughs last… didn't get the joke.”
-
@dkf said in He who laughs last...:
“He who laughs last… didn't get the joke.”
-
@cartman82 said in He who laughs last...:
Oh, goodie. There's now a part-time
"fixer"scapegoat brought in to try and whip this pile of crap into a working order.
-
Wow, the new guy gave the code a quick glance, and he's like "The code looks fine, it's the pattern I am familiar with. I can work with this".
He is now planning the feature list with Boss, all full of enthusiasm. I hope I stay in this skype group, so I can watch as his spirit gets crushed once he starts digging.
-
@cartman82 get it in writing
-
@cartman82 said in He who laughs last...:
The important part is, I am thankfully off the project. At least for now.
Of course, that doesn't mean you can't still be blamed.
-
@pie_flavor said in He who laughs last...:
@cartman82 get it in writing
@hardwaregeek said in He who laughs last...:
Of course, that doesn't mean you can't still be blamed.
You guys are always giving these advises that would be perfectly valid in a corporate setting (and in fact, which I do when dealing with CEO and their ilk), but that are totally misplaced in the situation with my Boss.
He is the sole owner of the company. There is no point in getting a paper trail, since there is no one above him to leverage it against. There is no one to "blame me" to. This kind of relationship comes with its own upsides and downsides, but it definitely requires a different handling than dealing with a bureaucracy.
-
@cartman82 Didn't know. Keep a careful record anyway. When he complains about delays, you'll have a big ol' document to send him in response. Maybe he'll at least wise up a little bit.
-
@pie_flavor said in He who laughs last...:
@cartman82 Didn't know. Keep a careful record anyway. When he complains about delays, you'll have a big ol' document to send him in response. Maybe he'll at least wise up a little bit.
That's definitely a good advice, which I unfortunately don't follow.
Boss has a tendency to ask me for estimate in terms of work hours, which he then immediately converts into a release date. This date then slips as more and more ad-hoc works, meetings etc. gets piled on my schedule. Then he is all surprised when we break the deadline.
I mean, he's understanding and all, but I'd still like to have something to show in terms of where my hours went (of course, I want to make my own program for tracking this instead of using something off shelf, but that's typical for me...).
-
@cartman82 Just tell him every time, 'This will add work-hours. The new date is x.'
-
@pie_flavor said in He who laughs last...:
@cartman82 Just tell him every time, 'This will add work-hours. The new date is x.'
I do sometimes, but it's all he-said she-said. Also these extra obligations keep dripping in, I can't push the release date every time I get an email.
-
@cartman82 said in He who laughs last...:
@pie_flavor said in He who laughs last...:
@cartman82 Just tell him every time, 'This will add work-hours. The new date is x.'
I do sometimes, but it's all he-said she-said. Also these extra obligations keep dripping in, I can't push the release date every time I get an email.
It's not he-said she-said if you record it in a file. And pad the release date initially with time set aside for new things the boss wants, and state that you're doing so, and then when he does, this, say 'This will add work-hours. I'll document that it does so. We've used up x amount of the padding and have x remaining.' And then switch to deadline-pushing once you run out, etc.
Bottom line is, don't tell him everything's fine and put out the fires when he's not looking. If he can directly see what his actions are causing, with proof, he'll see things differently.
-
@pie_flavor said in He who laughs last...:
It's not he-said she-said if you record it in a file. And pad the release date initially with time set aside for new things the boss wants, and state that you're doing so, and then when he does, this, say 'This will add work-hours. I'll document that it does so. We've used up x amount of the padding and have x remaining.' And then switch to deadline-pushing once you run out, etc.
Bottom line is, don't tell him everything's fine and put out the fires when he's not looking. If he can directly see what his actions are causing, with proof, he'll see things differently.
Yes, agreed. Normally, there is no point where I can say "last 3 emails, quick questions and interruptions were fine, but THIS one is breaking the camel's back". It's kind of boiling the frog, it creeps up on you. You are doing something all day long, but at the end of the day, the feature you're supposed to be working on is no further along than it was in the morning.
I def need to start recording it. Just as soon as I make my own time tracking software :)
-
@cartman82 said in He who laughs last...:
I unfortunately don't follow.
The hallmark sign of true good advice
-
@cartman82 said in He who laughs last...:
I def need to start recording it. Just as soon as I make my own time tracking software :)
No. You needed to start recording it back then. Don't wait. Don't fuck about writing software. Grab something, even if it's just a spreadsheet(1) or a text file(2), and record stuff. Put free time tracking software into the search engine of your choice, and use whatever appears at the head of the list. No matter how bad it is, it will be better than NOT recording this stuff and suffering the consequences.
(1) Yes, I realise that doing it in a spreadsheet is dangerously close to fucking about writing software.
(2) No, not really just a text file. It makes extracting summary information harder than you'll need it to be. But even then, it's still better than not recording this stuff and suffering the consequences.
-
@steve_the_cynic said in He who laughs last...:
No. You needed to start recording it back then. Don't wait. Don't fuck about writing software. Grab something, even if it's just a spreadsheet(1) or a text file(2), and record stuff. Put free time tracking software into the search engine of your choice, and use whatever appears at the head of the list. No matter how bad it is, it will be better than NOT recording this stuff and suffering the consequences.
(1) Yes, I realise that doing it in a spreadsheet is dangerously close to fucking about writing software.
(2) No, not really just a text file. It makes extracting summary information harder than you'll need it to be. But even then, it's still better than not recording this stuff and suffering the consequences.See the problem is, input has to be SUPER EASY, otherwise I'll just not do it. Spreadsheets and all the software I've seen so far are too fiddly. I am not disciplined enough to keep at it. I'll just "forget" to enter it, delay it for later, "oh, I'll do it at end of day". Then just stop doing it altogether.
It needs to be literally one or two clicks to mark a switch to a new task. Ideally, something that lives in context menu or notification area, or maybe even a floating thing that's always on. Otherwise, it's no use.
If you have some software like that, recommend it. I really have enough unfinished and TODO projects on my plate already.
-
@cartman82 said in He who laughs last...:
Just as soon as I make my own time tracking software
No.
Do not make your own or you'll spend ages doing that rather than what you should. It's hard to do well (Really! I mean it!) so use someone else's crappy version and ignore the displacement work that will make you behinder.
We use a system called Innate Resource Manager, and it is crap, particularly if you're switching tasks frequently. But I can do my weekly timesheet in a few seconds — that's much better than previous “solutions” I've suffered through — and it's all online and easy for management too. It helps that as a practical measure I only track by half-days (and I'm assigned to projects on a long-term basis too).
-
@dkf said in He who laughs last...:
We use a system called Innate Resource Manager, and it is crap, particularly if you're switching tasks frequently. But I can do my weekly timesheet in a few seconds — that's much better than previous “solutions” I've suffered through — and it's all online and easy for management too. It helps that as a practical measure I only track by half-days (and I'm assigned to projects on a long-term basis too).
Hah, weekly. Half-days.
I have so many context switches, I hardly remember what I did yesterday. That's why I need something super SUPER simple, that I can use all the time, hour by hour. Otherwise, it's no use.
-
@cartman82 Something I discovered by accident: http://arbtt.nomeata.de/
No idea how well it works, but it claims to require zero user interaction.
-
@cartman82 said in He who laughs last...:
@dkf said in He who laughs last...:
We use a system called Innate Resource Manager, and it is crap, particularly if you're switching tasks frequently. But I can do my weekly timesheet in a few seconds — that's much better than previous “solutions” I've suffered through — and it's all online and easy for management too. It helps that as a practical measure I only track by half-days (and I'm assigned to projects on a long-term basis too).
Hah, weekly. Half-days.
I have so many context switches, I hardly remember what I did yesterday. That's why I need something super SUPER simple, that I can use all the time, hour by hour. Otherwise, it's no use.
Calendar manager (Outlook, Lightning-in-thunderbird, etc.)? Just create a specific calendar for recording what you did rather than pre-booking appointments / meetings /etc.
Maybe plain text files are the answer. Detect context switch, Alt+Tab to the editor, add an entry, save, Alt+Tab to your next piece of work. The files will get big fairly rapidly, but that's sort of the point.
And keeping logs on slices of dried tree puree works as well. (Context switch, note time, write log entry, etc.)
In either case, don't forget to annotate 20 minutes per context switch for recovering from the context switch.
And for God's sake think about telling your boss that you have so many context switches it's making it hard to keep track of what you're doing.
-
@cartman82 I always use ManicTime.
It basically logs whatever you're doing, including the program and document you have open or website you're visiting at the moment.
You define a couple of rules to categorize these documents, files and websites and can easily export reports afterwards.
-
@grendel said in He who laughs last...:
ManicTime
I stopped using that because to much time showed up as a chrome tab
-
@exercism-1 said in He who laughs last...:
@cartman82 Something I discovered by accident: http://arbtt.nomeata.de/
No idea how well it works, but it claims to require zero user interaction.It occurs to me that it won't be able to log "human" metadata, that is, things like which project you are working on. Sure, it can log that you worked in the browser, but what were you looking at? (Hmm. Looks like it can, with the cooperation of the browser, help with that.) What project were you looking at it for? (This last one is @cartman82 's problem, after all.)
-
@steve_the_cynic said in He who laughs last...:
@exercism-1 said in He who laughs last...:
@cartman82 Something I discovered by accident: http://arbtt.nomeata.de/
No idea how well it works, but it claims to require zero user interaction.It occurs to me that it won't be able to log "human" metadata, that is, things like which project you are working on. Sure, it can log that you worked in the browser, but what were you looking at? (Hmm. Looks like it can, with the cooperation of the browser, help with that.) What project were you looking at it for? (This last one is @cartman82 's problem, after all.)
I've used RescueTime before and it logs that level of detail in the background, the name of documents 'EnterpriseControllerFactoryFactory.cs' and each tab 'what.thedailywtf.com/topic/24323/he-who-laughs-last/79'.
Very handy for figuring out what is actually billable hours and what is when you went off on some tangent in StackOverflow.Think you have to go for the paid version to get that though.
-
@pie_flavor
Or at least you can clutch that document all the way to the unemployment office, secure in the knowledge that you have documentary evidence that you were RIGHT.
-
@cartman82 A previous manager of mine liked receiving weekly updates of what I spent time on.
-
@cartman82 said in He who laughs last...:
Just as soon as I make my own time tracking software
You don't need to make any; I keep a Sublime Text window open with time tracking.txt and enter my stuff in there. But I do it kind of roughly, like "1h PROJ-113 some quick issue"
-
@dkf said in He who laughs last...:
We use a system called
InnateInmate Resource ManagerThat's how I read this initially
-
-
@cursorkeys said in He who laughs last...:
@steve_the_cynic said in He who laughs last...:
@exercism-1 said in He who laughs last...:
@cartman82 Something I discovered by accident: http://arbtt.nomeata.de/
No idea how well it works, but it claims to require zero user interaction.It occurs to me that it won't be able to log "human" metadata, that is, things like which project you are working on. Sure, it can log that you worked in the browser, but what were you looking at? (Hmm. Looks like it can, with the cooperation of the browser, help with that.) What project were you looking at it for? (This last one is @cartman82 's problem, after all.)
I've used RescueTime before and it logs that level of detail in the background, the name of documents 'EnterpriseControllerFactoryFactory.cs' and each tab 'what.thedailywtf.com/topic/24323/he-who-laughs-last/79'.
Very handy for figuring out what is actually billable hours and what is when you went off on some tangent in StackOverflow.Think you have to go for the paid version to get that though.
To be sure, it's better like that than Eclipse / Vstudio / Firefox / Edge, but you still have to infer the project that you were working on, which might not in some cases be possible. (If I work on a chunk of code shared between multiple projects, or a file whose name occurs in many projects' code bases, which of those projects was I working on?)
-
@steve_the_cynic said in He who laughs last...:
If I work on a chunk of code shared between multiple projects, or a file whose name occurs in many projects' code bases, which of those projects was I working on?
It's simple. If it's shared between, say, 10 projects and you spent an hour working on it, you bill an hour to each of the 10 projects. 10 hours billed for 1 hour worked. Cha-ching!
-
@hardwaregeek
And then you run down to the pub and join @PJH for some networking for your other 7 hours!
-
@izzion said in He who laughs last...:
@hardwaregeek
And then you run down to the pub and join @PJH for some networking for your other 7 hours!More than that at the moment. As of... one hour ago, I'm off work until the 8th. (The occasional email notwithstanding. )
-
@cartman82 said in He who laughs last...:
That's why I need something super SUPER simple, that I can use all the time, hour by hour. Otherwise, it's no use.
Make a commit of what you've been working on every time you switch tasks. In the first line, use some code to distinguish the project the commit is for.
Then have your mettle candidates pull the commit logs and parse the code and commit date. The time difference between the commits is how long you spent in each task. Have them output a table with your weekly schedule.
Bam, I just solved all your problems.
-
@cartman82 said in He who laughs last...:
That's why I need something super SUPER simple, that I can use all the time, hour by hour.
-
@timebandit said in He who laughs last...:
@cartman82 said in He who laughs last...:
That's why I need something super SUPER simple, that I can use all the time, hour by hour.
It’s not only super simple, it’s also hideous. Is that supposed to be an added benefit?
-
@steve_the_cynic said in He who laughs last...:
@cartman82 said in He who laughs last...:
@cartman82 Oh and his re-hydration code is a buggy copy-pasta.
How "safe" is JSON.parse()? Or is the JSON sanitised somewhere along the way? Or is that more or less the point?
It's the successor to the old way, eval() which is indisputably unsafe in so many horrifyingly imaginable ways.
-
@kt_ said in He who laughs last...:
Is that supposed to be an added benefit?
Yes, no fancy graphics to distract you
-
@heterodox said in He who laughs last...:
@gwowen said in He who laughs last...:
I feel this kind of anecdote deserves its own "Peter Principle" / "Brooks Law" type of aphorism.
"Any sufficiently talented developer will eventually get transferred to a doomed project, in a last-ditch attempt to save it. This will fail."
Well, not always
I don't read it to say that it'll always fail. If it doesn't fail, then the adage simply hasn't come true -- yet.
it turns out in my experience that that's the worst case scenario. If you get transferred to a doomed project and somehow manage to save it, burning your candle at both ends to do so, you will be expected to pull off similar miracles for the rest of your career.
At which point, his prediction had proven to be true.
-
@timebandit said in He who laughs last...:
@kt_ said in He who laughs last...:
Is that supposed to be an added benefit?
Yes, no fancy graphics to distract you
So aesthetic design distracts you?
The Linux way is a strange one!
-
@the_quiet_one said in He who laughs last...:
@steve_the_cynic said in He who laughs last...:
@cartman82 said in He who laughs last...:
@cartman82 Oh and his re-hydration code is a buggy copy-pasta.
How "safe" is JSON.parse()? Or is the JSON sanitised somewhere along the way? Or is that more or less the point?
It's the successor to the old way, eval() which is indisputably unsafe in so many horrifyingly imaginable ways.
OK, but that doesn't mean it's safe, just that it's less dangerous, maybe.
-
@kt_ said in He who laughs last...:
@timebandit said in He who laughs last...:
@cartman82 said in He who laughs last...:
That's why I need something super SUPER simple, that I can use all the time, hour by hour.
It’s not only super simple, it’s also hideous. Is that supposed to be an added benefit?
What's hideous about it?
-
-
@jaloopa said in He who laughs last...:
@boomzilla said in He who laughs last...:
What's hideous about it?
It boots too fast
True. Even on a spinning drive, Linux was always snappier than Windows.