« first day (153 days earlier)      last day (4851 days later) » 

12:00 AM
I still have nightmares about that boss in Doom 2...
 
@Pollyanna Indeed... I learned much as a young coder reading through the Objective-C source of the Doom level editor on fanfold paper.
 
I still have nightmares about George Romero
 
@DanGrossman Playing the cyberdemon and spider mastermind against each other was a thrill like no other.
 
@Shog9 Great source code == geek porn
 
12:02 AM
"oh baby... shift those registers some more..."
 
@Pollyanna fanfold == yards of fold-out
 
</bad-pun-of-the-day>
 
I had it in my head for the longest time that iD was named after the ObjC datatype...
 
I learned absolutely nothing typing games from magazines into my C64
 
@mootinator Really? I learned to type very quickly. But then, my little compy didn't have a way to save to tape.
 
12:03 AM
@mootinator You should've added cheats as you punched.
 
I was only about 6 at the time.
 
"But... I was told the ternary operator would bring about a reign of darkne - oh... wait... oh, my, Mr. Carmack, how *elegant!*" swoon
 
He finally gets it...
 
Codewarrior would make a much better game than it did an IDE, I've always maintained.
 
1
Q: Feature Request: set user privileges on Meta Stack Overflow based on combined rep across sites

Laurence Gonsalves Possible Duplicate: Why not merge reputation across SO, SF, and SU? Meta Stack Overflow is really the “National Capital”, as mentioned in this bit from the New Per-Site Metas blog post: Meta Stack Overflow will serve as the “National Capital” where we process feedback not just for ...

 
12:06 AM
@TheNeedsMoarJqueryException GAH!!! Just when I made a NY Resolution to STAR oy's ... /facepalm
 
@mootinator HAHA, I learned C/C++ on CodeWarrior
@drachenstern Well, good, we should balance each other out well and balance will be restored to the universe
@drachenstern Or should I say: Oy!
2
 
Feature Request: Automatically star any message containing "oy" so nobody feels compelled to do it themselves.
Right, that wouldn't stop anyone.
 
@TheNeedsMoarJqueryException ;) ★
 
@Shog9 He's pretty persistent. At least he's not like the hundreds before him that suggest one change, then storm off in protest when they find people opposed to the idea. oy. (when in rome...)
 
@mootinator I'll bet if you ask nicely @TimStone will ad this to the Userscript...
 
12:09 AM
@TheNeedsMoarJqueryException /autooy enable
5
 
I'm not sure if I've ever starred an "oy" post, so not likely. :P
 
@TheNeedsMoarJqueryException are we assuming holding control of the US will now fall to @TimStone instead of @RebeccaChernoff ?
 
It's not like she's disappeared, lmao.
 
If so, then I'll take his position as #3 on the project, and I'll add it to the code ;)
 
0
Q: Feature Request: set user privileges on Meta Stack Overflow based on combined rep across sites

Laurence Gonsalves Possible Duplicate: Why not merge reputation across SO, SF, and SU? Meta Stack Overflow is really the “National Capital”, as mentioned in this bit from the New Per-Site Metas blog post: Meta Stack Overflow will serve as the “National Capital” where we process feedback not just for ...

Please join me in reopening the question -- if it's a dupe, it's not of that one.
 
12:10 AM
@TimStone no but I have this brilliant idea on how to make people feel better about it ;)
 
35 secs ago, by Tim Stone
It's not like she's disappeared, lmao.
 
@drachenstern No, I'm actually expecting the chat UserScript to be merged into /trunk when @balpha isn't looking :-)
 
@RebeccaChernoff I mean, if anything, you'll be here even more ;)
 
@TheNeedsMoarJqueryException bwahahahaha, not happening anytime soon
 
@RebeccaChernoff OH... MY... GOD... like Zypher she has become OMNIPOTENT!
 
12:10 AM
Also it must have some merit if chat.SE privs are based on combined rep.
At least, they're looking into it.
 
I also expect StackFlair to secretly replace SOFlair XD
 
@TheNeedsMoarJqueryException That would make things so much easier..I have to crawl back up the caller tree right now to prevent cross-room notifications! Ridiculous. :P
 
@TimStone Really? That's hideous
I'm glad I'm writing the XMPP bridge, it doesn't need any dirty hacks like that!
Oh wait. I made the source public...
 
@random ~ I summon thee to the chatroom :p
 
Marc and his out-of-scope functions, pah!
 
12:14 AM
@TimStone You'd hate trying to hack my code, I do that more and more these days
is this link supposed to work though? ;-)
 
@drachenstern It took y'all about three hours to drag me in here, so don't hold your breath - those notifications aren't all that noticeable.
 
@TheNeedsMoarJqueryException It does, if your browser isn't being silly and thinking that's a userscript link.
 
@Shog9 oh I figured you just showed up of your own accord. Additionally, how active are you on MSO?
 
@TimStone Chrome was, so I switched to Safari which seems to think the page is a .gif of a loading indicator...
@drachenstern Very active
 
...Which Chrome apparently can't figure out. @RebeccaChernoff I thought you said it worked now?
 
12:15 AM
@drachenstern Today? Quite active. Normally? Only disturbingly active.
 
We can summon people?
 
@TheNeedsMoarJqueryException did I ask the question the wrong way round? Why did it take 3 hours for him to notice the dot?
 
@TheNeedsMoarJqueryException That's stupid:
 
@Shog9 I see I need to rephrase my thought process
 
@mootinator if you have goat's blood. Lots of goats blood.
 
12:16 AM
if (localStorage['chat-multiroom-disable'] != 'true' || source && (source = source.caller) && (source = source.arguments) && (source = source[0]) && (room_id == -1 || source.room_id == room_id)) {
 
@Shog9 thanks for stealing it! :p
 
Speak to us O @JohnCarmack
gets a goat from the freezer.
 
@drachenstern I crave it...
 
@mootinator you gotta have the Book of the Dead^WDeleted Posts
 
@TimStone Not sure what's up, thanks
@TimStone I'm impressed, that's a very clever hack
I'll have to remember that in my book of hackery
 
12:17 AM
@TheNeedsMoarJqueryException I'm surprised that replacing window.webkitNotifications.createNotification() worked (in a previous line) actually, but whatever.
My notifications disappear on their own, which is all that I care about. :P
...I also don't get five of them.
 
Dec 29 '10 at 21:42, by The Unhandled Exception
@TimStone really @Tim? So @Tim you're saying that every @TimStone shows a message like, "@TimStone you were mentioned?" Don't you think that's a bug @Tim? I'd think one @Tim notifcation is @Tim enough@Tim wouldn't you @Tim agree @Tim? @Tim? @Tim are you there? @TIM!!! ANSWER!!! @TimStone @Tim @TimStone...??
 
I do not have the patience for poker today.
 
@TheNeedsMoarJqueryException One notification, now auto-hid ;)
 
@TimStone It's okay, we can still auto-annoy you in the good ole ways. Editing still causes multiple beeps, does it not? Hm? Well?
 
@radp I'd feel lonely if you didn't.
It's hard to hear them over my music anyway ;)
 
12:20 AM
@radp only if you have the sound turned on. I do not.
 
But it does.
 
@radp it does!!!!!!!!!
 
youtube.com/watch?v=UIV8G2UCyGc <-- relevant to your poking interests.
 
@TimStone really?
 
Really.
 
12:20 AM
@TheNeedsMoarJqueryException thingadongdongly!
 
I'm back.
 
@radp gorgeous was best
about 8 firetrucks just screamed into my neighborhood... I'm a little scared...
 
As long as you aren't on fire...
 
@TheNeedsMoarJqueryException Have you checked your microwave?
 
their sirens drowned out @radp 's notifications...
 
12:22 AM
Which I'll assume you aren't, otherwise you might need to push chat down on your priority list.
 
@TheNeedsMoarJqueryException note to self: if mute button breaks, set house on fire
 
@TheN :/
 
@TimStone Oh that's what the smell was!
Achem. Sorry, welcome back @Moshe
 
Nite.
 
@radp - nite.
 
12:24 AM
Leaving already @radp? Have a good one.
 
@TheNeedsMoarJqueryException - Thanks.
 
@TheNeedsMoarJqueryException Yeah merely 0124.
 
LOL. Sleep well.
 
Now, how do I go about replacing all of the instances of text in a page using Javascript?
 
@Moshe using a live handler is what @RebeccaChernoff said
 
12:25 AM
For my userscript, that is.
 
@Moshe Damn, foiled again
 
have you looked at her code?
@TheNeedsMoarJqueryException no no no, we already got past that
 
@drachenstern - Nope. Have not.
 
Oh that's right, we were talking about calling setTimeout in a loop
 
@TheNeedsMoarJqueryException really he just needs to execute $(newElement > span.deleted).html('(redacted)'); on new elements being added
 
12:26 AM
Where is that link? searches for jQuery, gets too many results
 
@Moshe you're using jQuery I assume?
 
@TheNeedsMoarJqueryException you got it, but she said with the .live handler
 
Actually I wonder if using livequery ends up being more expensive...Hmm.
makes mental note
 
12:27 AM
@drachenstern - thanks.
 
jup ~ Don't thank me, thank her ;)
 
@TheNeedsMoarJqueryException - Thank you for the protoype link.
 
Also, I wonder if her script is already loaded if you need to include it in your script?
 
@RebeccaChernoff - Thank you.
 
> "In antiquity, Romans mixed acetic acid in lead pots, resulting in a drink called 'sugar of lead'. Drinking it resulted in lead poisoning."
 
12:28 AM
@Moshe looking for source code, sec
 
well I guess jQuery won't double include something like that huh?
 
Doubt it would, dunno.
 
@DanGrossman they also created nice little batteries using acid and lead pots
 
@drachenstern not if y'all are still using the "inject into page script" technique.
 
@Shog9 They're using userscripts is all I know atm
I keep telling myself I'm gonna join in the fun, and I never do
 
12:29 AM
<script src="http://stackflair.com/jquery.livequery.js"></script>
points
 
userscripts are (or should be...) isolated from one another, but most of the time you can make your life easier by just injecting your script directly into the page and accessing it directly (along with anything else that's been loaded).
 
@TimStone - Thank you.
 
@TimStone what, exactly, are you pointing to?
 
probably a better way to do that than hosting it on stackflair hrm
 
@RebeccaChernoff - Yea, github, maybe?
 
12:30 AM
@RebeccaChernoff embedding it?
 
registerCallback: function() {
    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
  },

  execute: function() {
    this.callback(this);
  },

  stop: function() {
    if (!this.timer) return;
    clearInterval(this.timer);
    this.timer = null;
  },

  onTimerEvent: function() {
    if (!this.currentlyExecuting) {
      try {
        this.currentlyExecuting = true;
        this.execute();
      } finally {
        this.currentlyExecuting = false;
      }
    }
  }
@Moshe ^^
 
@RebeccaChernoff I'm not sure that we actually need livequery at all, but I'm going to finish work before looking into that.
 
@JoshsSocks is that the livequery? ~ It does look like all @Moshe needs to implement
 
eh, @LaurenceGonsalves, welcome
 
@drachenstern That's Prototype's PeriodicalExecuter
 
12:32 AM
@JoshsSocks oh, ok, there you go
 
You'd say, var pe = new PeriodicalExecuter(someFunction, someNumberOfSeconds);
 
@LaurenceGonsalves don't be afraid, we really don't bite
 
And then it will call someFunction() every someNumberOfSeconds making sure not to run it more than once concurrently
 
even if we do act like one big family of fratkids ;)
 
@drachenstern Actually the socks do, but...
 
12:33 AM
@TimStone shhhh ;)
zomg, he's gonna have the wrong idea about us before he says hello
 
So that's all I need?
 
@TimStone I try to, but I lack teeth.
 
dang, I thought the OB would show post counts like the profee proper does
 
Right, cotton gnaw then or something.
 
12:34 AM
@Moshe that and goat blood. You really can't forget the goat blood.
 
oh wait, that's the meta profee
 
@Shog9 It really is the cornerstone of the whole process.
 
okay
 
That's dumb... why does the chat.mso/profee OB show the MSO/profee deets?
if I wanted to OB the MSO/profee deets, I woulda OBd MSO/profee
 
struggles to parse what @drachenstern just wrote, gives up and opens beer
 
12:35 AM
Hahahaha
 
@Shog9 it's how I woulda said it out loud ;)
damn, I just realized, I have no wine OR beer at the house ...
 
@drachenstern Sounds like you've already had a few beers then ;-)
 
@TheNeedsMoarJqueryException I merely believe in efficient communication of ideas ;)
 
@drachenstern "profee deets" meets this description? ;-)
 
@TheNeedsMoarJqueryException it might :|
 
12:37 AM
@TheNeedsMoarJqueryException - So all I need is that code, yes?
 
@TheNeedsMoarJqueryException I guess it's a little more descriptive than my waving of hands, at least.
 
@Moshe not quite
but its definitely a start
 
@drachenstern - Figured.
 
@Moshe The full code is a class
 
But what is wrong with using the interval?
 
12:38 AM
I'd personally just embed livequery, been wanting to do that with the userscript
But that's because I know livequery.
 
@Moshe I'm not sure... the code I sent uses setInterval also
 
you'll just keep scanning the entire tree for things that don't need to be changed, and possibly force updating them, that was my only thought. But there's not necessarily a bad thing about that
 
@drachenstern Why not just remember where you left off at?
 
I can see I need to go home tonight and fireup a javascript editor and play around for a few minutes before I can say if there's a better way than a timer
 
@Moshe What were you pinging me about?
 
12:39 AM
keep a pointer to the last element you were on and search from there
 
@TheNeedsMoarJqueryException Use setTimeout. setTimeout is classy. You can adjust intervals based on load...
 
@TheNeedsMoarJqueryException how would you do that on new insertions into the DOM? Using jQuery?
 
@drachenstern Scanning the entire tree repeatedly makes the browser sad. :(
 
@YiJiang - Dunno.
 
@TimStone depends on how big the tree is and how often you scan it
 
12:39 AM
2 hours ago, by Moshe
@RebeccaChernoff , @YiJiang - How do you do efficient replacements in your scripts?
What do you mean by replacement?
 
@drachenstern monkey-patch jQuery to detect modifications.
 
@Shog9 Ah, ok, yes. I would agree, I was copypasting Prototype's source
 
@Shog9 I don't know that the browsers tell you when the DOM changes do they? That's all you need, is to hook that particular event
 
@Shog9 DOMNodeInserted events are supported in Firefox and Chome, which should be enough
 
@YiJiang I'm writing a userscript to replace "removed" with "redacted"
 
12:40 AM
livequery uses a timeout too, but the abstraction is good. I just worry about what I need to worry about. shrugs
@Moshe, research it a bit. (:
 
@drachenstern I'd use setTimeout/setInterval, in an object which remember the last post it saw
 
@Moshe Oh, simple enough
 
@YiJiang you would ignore a whole segment of the market??? (ok, they wouldn't use the userscript anyways ;) )
@TheNeedsMoarJqueryException I'ld prefer to just hook DomNodeInserted myself, but I'm not the one writing the code ;)
 
Hang on, let me get you the relevant bit of code
 
However, I might write code that replaces all the smileys here with actual gifs
 
12:41 AM
Thank you, @YiJiang
 
just because I could
 
Plus, livequery would be better for someone who isn't sure what they're doing.
 
@drachenstern I just read @YiJiang 's message talking about that and it's new to me
 
</two cents>
 
@RebeccaChernoff Indeed.
 
12:42 AM
That's a better way of doing it, for sure @YiJiang and @drachenstern
 
@RebeccaChernoff indeed. Hence my point of him using a library to start
 
Im really confused
 
@RebeccaChernoff You went from "I know livequery" to "livequery would be better for someone who isn't sure what they're doing" :)
 
hence my insistence on jQuery, till he learns the basic underlyings
 
@TheNeedsMoarJqueryException The only problem is that DOMNodeInserted is actually deprecated
 
12:42 AM
@MichaelMrozek I don't see the discrepancy
@YiJiang GAH!!!!
@YiJiang do they recommend a followup?
 
I have an idea. Someone should write a userscript which abstracts chat events and creates an object which event handlers can be attached to
 
You're all saying not to use setInterval directly, but to use it indirectly instead?
 
@drachenstern The only comment left in the specs is that they're redrafting those events
 
I am more worried about the "hook" into the page updates.
 
@Moshe What do you mean by that?
 
12:43 AM
@TheNeedsMoarJqueryException Hahah
 
@YiJiang Excellent. I would suggest combining this with setTimeout to prevent unnecessary load.
 
Ok, does anyone else notice that when they start typing @Michael and hit tab, it goes straight to @MichaelPetrotta and doesn't show @MichaelMrozek as an option? But then if you try it again it works? I always forget to pay attention to when I stop typing the name and move to tab.
 
@Moshe no, they're saying to abstract the details of the loop
 
I'm tempted to create such an object myself, right now. WHich is bad, I have work I should be doing!!
 
@RebeccaChernoff I don't replicate that behavior
 
12:44 AM
But I think I type Michael and then hit tab.
 
@RebeccaChernoff This has been frustrating me to no end recently
 
@drachenstern - It's a simple one line userscript. Abstract it to where?
 
@RebeccaChernoff No, but I could see there being special code that allows you to ignore @MichaelMrozek
 
You're staff now @RebeccaChernoff. Please fix it
;-)
 
Oh right. This makes sense @TimStone.
 
12:44 AM
@Moshe To a 200-line, pseudo-class-based framework
 
Case solved \o/
 
@Moshe that was the point they were making about the use of livequery. My point was why scan the DOM for no reason.
 
@TimStone ...I'm sorry, I was being serious :-)
 
@Shog9 - Yep.
 
@RebeccaChernoff That would explain people constantly mis-completing my name as @MichaelMeyers
 
12:45 AM
@Shog9 Enterprise FizzBuzz anyone?
 
@TheNeedsMoarJqueryException Well, it's a bit silly. I mean, at that point they might as well just give us an API. :P
 
@MichaelMrozek never had it happen with him though. Only Petrotta.
 
@TimStone I think @RebeccaChernoff will fight for our cause here! \o/
2
 
@RebeccaChernoff I can't repro this..
 
FizzBuzz!
 
12:46 AM
Hmm...
 
document.getElementById('chat').addEventListener('DOMNodeInserted', function(evt){
	if(evt.target.nodeType === 1){
		if(evt.target.id.match(/message-\d+/) && evt.target.querySelectorAll('.deleted').length){
			evt.target.querySelectorAll('.deleted')[0].innerHTML = '(redacted)';
		}
	}
}, false);
 
\o/
 
Ok folks, off to the house I go, which entails walking the dogs and fixing dinner, so I suppose I'll be back in about 300 messages from now. At least I can pretend to scroll to this message ;)
 
G'bye :P
 
@drachenstern cya
 
12:46 AM
@drachenstern catch ya later
 
@YiJiang - What does that do?
 
You people and your distractions... shakes head and tries to remember what he was doing
 
@TheNeedsMoarJqueryException OK. I'm on it! Object coming right up.
 
@Moshe What you were asking me about
 
@TimStone - distracts @TimStone
 
12:47 AM
@drachenstern If you'd fix the dogs and walk the dinner, you'd be back quicker. hands drach a pliers
3
 
Can I use that code as is?
 
@Moshe Should work, not tested
@mootinator Psshttt... too easy
 
ok
 
@YiJiang :'(
 
@Moshe Let us know if that works
 
12:53 AM
erm, hang on
 
Almost done @Moshe and @TheNeedsMoarJqueryException
 
It works, but it doesn't replace the ones that already exist on the page.
So.. I need to make a change, which I might be able to do on my own.
 
@Moshe Yeah, for that you can loop through all existing ones when the page loads
 
@YiJiang - Yep, my thoughts.
 
12:54 AM
If I can figure out how.
 
Just use querySelectorAll, for the sake of your sanity
 
Mine will also not ude deprecated functions
 
@TheNeedsMoarJqueryException - Will it be dependent on any other libraries?
 
ude?
heh
 
12:55 AM
@Moshe Nope
 
cool
 
Mine is a Chat object which you can do: Chat.on('messagePosted',function(message){...
 
btw, I find my git commit messages humorous.
 
@Moshe You should see my svn commit messages XD
 
var chat = document.getElementById('chat'),
	deleted = chat.querySelectorAll('.deleted');

chat.addEventListener('DOMNodeInserted', function(evt){
	if(evt.target.nodeType === 1){
		if(evt.target.id.match(/message-\d+/) && evt.target.querySelectorAll('.deleted').length){
			evt.target.querySelectorAll('.deleted')[0].innerHTML = '(redacted)';
		}
	}
}, false);

for(var i = 0; i < deleted; i++) {
	deleted[i].innerHTML = '(redacted)';
}
If you want to replace existing messages too
 
12:59 AM
Damn, beat me to it @YiJiang
 
I do want to, @YiJiang.
 
bugtesting mine
 
Again, not tested, but should work
 

« first day (153 days earlier)      last day (4851 days later) »