« first day (78 days earlier)      last day (4935 days later) » 

5:03 PM
@Popular @Radp @TimS Would you guys mind explaining a little? (Re: this)
 
26 mins ago, by radp
@MarkC 1. http://chat.meta.stackoverflow.com/transcript/message/248762#248762
 
All I got was "it gives you freedom" (obviously), but not what you need that freedom for.
 
@MarkC What do you mean by "separating the system utilities?
The fact that each one is a separate binary?
 
this is my last attempt
 
Yes
@Radp I'm sorry, your sentence is not clear to me. "If I don't like ... because --- I can do that"
 
5:05 PM
Because the UNIX philosophy has always been "Small programs that do one thing well". These small things are then hooked together via IO channels
Also, there's no such thing, really, as the "system utilities". I suppose those that POSIX defines as available might be them
but UNIX predates POSIX by a long time
If you've got two programs, one that lists files, and one that removes them, why would you have one giant binary with them both in?
If you need to update your rm, you need to replace your ls? Why?
The question really needs to be "Why should disparate functionality be in the same program", rather than "Why shouldn't it"
The "separate functionality => separate programs" seems kinda obvious to me. Not to you?
 
@Adam, it was just a word to describe what I was talking about. @Radp In plain English, your sentence translates to "If I don't like [something], I can do that."
 
@MarkC Why do you persist in asking this here instead of on Programmers SE?
 
@PopularDemand because it really belongs on SuperUser
 
@radp "Why was this implementation choice made" isn't really SU material.
 
Because we were talking about it earlier and because I only got a reaction and an unintelligible answer, as far I could tell.
@Adam That's an argument with assumptions and rhetoric.
 
5:09 PM
@MarkC I admit that, at first, I didn't think you were seriously asking.
 
My answer means "if I don't like one bit of the system I can replace it. If you junk everything together I can't as easily"
 
What assumptions did I make? The UNIX designers have said that was one of their guiding philosophies
 
What kind of answer are you expecting, exactly?
 
but, you know, we have this nifty Q&A system right here
 
If you want a technical reason, then remember that UNIX dates from the period when 1meg was a lot of memory, and 1 gigabyte hard disks were an insane pipe dream
a giant monolithic program wouldn't even load let alone run
 
5:11 PM
Just some concrete examples instead of "design philosophy" and the one I hate (for any question), the rhetorical, explanation-void "Why shouldn't you?"
 
superuser.com/questions/ask?tags=os-agnostic+command-line
 
Well, it is a design philosophy. These days, there's no technical reason you couldn't do it. You could concat all the utilities into bash builtins
 
@Adam yes, but since then how much space do your critical executables really need?
 
You asked "Why can't we put A, B and C together?" You were answered "So we can upgrade, replace them separately"
There's absolutely no rhetoric at hand
 
Sorry, I didn't quit mean "design philosophy" didn't mean anything, its just that the alternative is getting dismissed without consideration for when it would be useful (keeping all the critical functions in one place and being able to load them into memory).
 
5:14 PM
But then A) They'd no longer be separately updatable B) They'd no longer have separate filesystem entries and associated permissions C) They'd have a shared address space, so a vulnrability in one could have knock on effects in others D) You can add new programs "at will", as you invent them E) The working space of bash would be huge if you had every commonly used unix utility as a built in F) You don't need to worry that launching "touch" will spin up a new 70 meg process
3
 
@MarkC There is one place with all the critical functions. It's called the kernel.
 
Do I need to continue through Z, ZZ, ZZZ?
 
What did you think, that the command prompt had the source code for handing deletions in FAT32, NTFS etc. and that Windows Explorer had them in a separate place or something?
 
All those benefits and more are free with separate processes - you inherit the whole OS process separation model, and all that entails for deployment
What benefits do you get by rolling everything together?
 
@radp I'm not advocating one over the other, but if the size is small, replacing the bundle shouldn't be a problem, and (my blood sugar is dropping, where is my train of thought)
 
5:16 PM
@MarkC What do you mean loading them into memory? You don't load processes into memory?
 
Oh, and Linux users seem to love the self-torture of building their own binaries
 
@MarkC maybe you should rebuild your train of thought and reformulate better the question on superuser.com
@MarkC there's little self-torture in running make
 
Noone on Linux really builds their own code. The most 99.99% of users do is install a .deb
0.005% of people run "make; make install" on something they untar'd
the rest might actually have to consider that "make" invokes a compiler
 
nevermind some projects don't need compiling at all
Python ftw!
 
I wasn't talking about code, I just meant packing various items into a custom unit.
@AdamWright The reasons he gave up there are good, though
 
5:18 PM
cool, I was kinda starting to think you were trolling around :)
 
There are lots of little questions that need balancing, though, like "Why would you want to update your rm in the first place?" (and, nitpick, if you're going to do that kind of thing, you're going to be writing your own code, which Adam just talked about)
No, I wasn't trying to stir up anything, but it's hard to be satisfied when you are assuming I know something I don't or the reason has some hidden assumption
 
Not necessarily. I might update my "perl" because a new perl has a bugfix I need
Or, more likely, my sysadmin will
 
and suddenly, the 2500 students using the system will get it for free, without having to reboot the system and recreate everyone's shell
 
Right, but I was talking about "critical" things that actually let you use your computer
 
5:21 PM
For UNIX these days, perl is critical ;)
 
So it seems you're misunderstanding what I'm saying and making silly(ier) than it is
 
@MarkC welcome to the wonderful world of file permissions ;)
 
But the same argument goes for anything. a new version of ls, rm. Who defines what critical is?
 
where you don't have universal write access
 
Okay, so what might a new version of list or remove need?
 
5:22 PM
which seems you are implying
 
OH come on, off the top of your head, a good reason--40 years of Unix, good grief
 
You can see the latest GNU coreutil updates at pixelbeat.org/patches/coreutils/inbox_aug_2010.html
that's just for the last couple of months
 
there's no better example of what one could possibly want to change than what actually needed to be changed
 
@radp's list is better
 
Well I was looking at that, but a lot of it is jargon that you'd have to know to understand it in the first place
I'll look at the latest one
 
5:25 PM
maybe you need to understand a system before you can criticize it
2
 
I was asking a question, and I kept getting "why not, it's the best way" type of answers, except your first which was totally unclear.
And when I tried to dig a little deeper to find out the cases those choices were based, I think people were reacting some
 
Well, i think you've got a lot of material to go on now :)
 
I don't think it must always be the right choice, and that seemed to be the unspoken message for a while.
 
in other news
0
Q: Vote to timeout

radpPlease allow us to vote to timeout a room if the discussion starts degenerating or otherwise going off-topic. Unfortunately this is a mods only feature and mods aren't always around. I think six votes in five minutes should be enough.

 
Well, @radp, please point out the criticism... :\
"What are good reasons to have a Start Menu?"
"Why are you criticizing Windows?"
 
5:29 PM
@MarkC are you really asking people why they're not doing things the best way, for subjective values of best?
 
Also, you're asking it on what's effectively a programming forum
And the question is similar to "Why do I need functions? I could just write all my code in one giant main.c file!"
Which I assume most people know would be silly, which is why I am/was confused
 
@Radp I'm not sure what you mean.
(continued from above)
That's not at all what I meant, and there are numerous horror stories about the utilities and frozen systems, so I wanted to find out the specific reasons, that's all.
@Adam That's not a fair analogy, and that's the kind of misinterpretation I've been fighting the whole time.
 
@MarkC I still don't know what kind of answers you were expecting, everything we've told you doesn't appeal you
 
It seems a reasonable analogy to me
 
That's not true. You guys ignored me until the third time I asked, and I was asking because (as Popular already explained) he thought I was joking, and your answer was unclear to me.
 
5:31 PM
@MarkC I give up.
See you later.
 
:\ Okay, see you later
 
@MarkC Your question was unclear and your followup convinced me -- for a time -- that you were trolling.
 
Troll bait, baby
@Adam The reason I asked was because there were many stories about locking/moving/deleting the little files that actually let you move, copy, and so on. I wasn't sure where the problem was, so I asked for some reasons. Tim noted that the problem is usually running as root when you shouldn't, though.
So it started to seem like a Unix-user-spite-fest instead of helping a non-expert to understand the reasons it went that way.
And I'm sorry, I guess I was a little reactive myslef.
Thanks for the help @Popular, @Adam, @Radp
 
@YiJiang, @MichaelMrozek, new rule! Make sure you edit the readme file if you're changing something that affects command syntax. Like say, adding a parameter to /transcript, or adding a /profile command...
 
@rchern Okay. Hmmm.. rules... makes it sound like we're playing Simon Says or something
 
5:39 PM
Interesting, I went to undo my vote on an answer, and it pulled up the latest score for that answer before telling me the post had been deleted.
@YiJiang ln -s Simon rchern
 
@PopularDemand Look at the ajax request that does that, then see if you could modify it to get the votes of dead questions
 
@YiJiang, well, i don't really have any other rules. but a readme isn't going to be any good if it isn't current
 
@rchern You just make it sound so much like a children's game!
 
o:
 
You scored 0 points at README. Try again?
 
5:44 PM
@radp /read me
Oh wait! Erm... erm... cat README!
 
we should make /help pull the readme hehe
 
@rchern Does github have a JSONP API?
Or do we have to, say, use Yahoo YQL?
 
i was just thinking about doing a $.get and doing a showNotification, ha!
though i guess we'd want the markdown-formatted version, not the raw
 
@rchern Wouldn't that show you the most up-to-date readme, which might cover more than your current version of the userscript provides? :P
 
hmm
 
5:49 PM
@rchern XSS, remember?
 
chrome auto-updates extensions right? does it do the same for basic userscripts?
 
@TimStone Just have the script parse the readme and look for the version number or something
 
@rchern that's an awesome idea!
well, not that particular idea.
 
if it auto-updates then version matching isn't an issue
well, does firefox auto-update?
meh.
 
what's the fully qualified name for showNotification again?
 
5:50 PM
Hey, does anyone here know where to hooks into showdown.js is?
 
@rchern Chrome doesn't; GM doesn't out of the box, but it can be hacked in.
 
@rchern Not sure, don't think so
 
@radp, all my code is in an inner scope to avoid conflicts
 
@rchern you mean showNotification is a method of yours and not one exposed by chat?
oh well.
 
You know, these guys have written some pretty funky functions into the global scope
Wonder if we could use them
 
5:55 PM
@radp correct. i'm not sure if there is one in the chat, though the minification seems to change the function names. you could look through the code or ask @balpha
 
I'm looking at Notifier indeed
 
yeah, you'd have to create a new instance of that
 
Looks like a constructor
 
I'm just struggling to understand what parameter it is it needs.
 
none
 
5:56 PM
@rchern Hey, I found a permalink function, which can be useful
 
as you see, the parameter is optional
 
@balpha it seemed to construct a dummy object in that case however
anyway, Notifier().notify("foo") is a no-op here :)
 
Notifier().notify("Hello!") works fine for me
 
ya know, ever since i asked about bee-alpha vs balfah
Oct 15 at 20:57, by Shog9
pictures balpha, enraged, trashing the server room with a 2x4 yelling "bal-FAH? bal-FAH?!!"
i've started thinking of you as balfah instead of bee-alpha |:
 
don't worry, I'm not even consistent myself in the way I imagine my username pronounced
 
5:58 PM
@radp, note that Notifier().notify("hello!") does not do something similar to what my showNotification does.
 
Erm.. hangon.. I can't seem to get rid of that notification I've created
 
Works on my machine!
 
Yep, it also worked after a refresh here
 
what have you done!? It's now taking up valuable screen real estate on my precious browser
 
@YiJiang I'm planning on wasting more of it =}
it should be a simple, more interesting code change than suppressing idle updates.
 
6:00 PM
@radp, are you forking my branch?
 
@rchern nope, I'm not.
 
just checking
it doesn't seem that you can get rid of that notification without the mouse >_<
 
@rchern I have everything I need in a different repo, you see :)
 
@rchern I can't seem to get rid of the notifications event with a mouse
 
@radp o:
@YiJiang heh
 
6:02 PM
Hmmm.. these obfuscated functions are like red unlabeled buttons on a dashboard - just inviting me to push them...
 
@rchern I always thought you were asking about which syllable got the emphasis. "bal' fah" vs. "bal fah'"
 
Ah ha! I found the markdown function. Will need this soon...
 
hehe, no. whether it was all one "balpha" together, or whether the b was separate
@YiJiang, is it callable or in an inner scope?
 
@rchern It's in the global scope, so it should work. Let me test it
>>> markdownMini('*Hello **world** Yes* THis is a `bit` of code`');
"<i>Hello <b>world</b> Yes</i> THis is a <code>bit</code> of code`"
Yup. Although I see a <b> there, which means the next SO dev that walks in here will get it...
 
?
 
6:09 PM
@rchern I've been using <b> tags as lethal weapons.
 
markdownMini probably wouldn't be able to handle the readme though
 
@rchern No it won't. The list in particular
You can try loading a copy of showdown.js from the main site though
11 hours ago, by Yi Jiang
You see here: a - a blessed +2 dmg giant bold tag
              b - Aiden Bell's headless corpse
I think scrapping the rendered or raw version from the github page should be enough
 
just pull the url and strip out $(".blob") maybe
 
@rchern Eh... XSS...
 
oh right haha
 
6:18 PM
Not sure what you're doing -- but be aware that markdownMini (the js version) isn't exactly coded for safety
since it's only used for stuff the user enters themselves
 
i think we'd be better off using github's api. of course, i don't know what the api does, i just know it exists
 
wtf, why can't I access getElementById
oh, right, it's in document
var user;
$.each(document.getElementById("active-user").classList, function(class){
  var candidates = class.match(/[0-9]+/);
  if(candidates.length)
    user = toInt(candidates[0]);
});
there must be a better way...
 
@radp What would happen if I ran that here?
 
@jjnguy user should be set to 2598?
once I figure out the syntax error
 
@radp I really need to learn javascript/jquery
 
6:31 PM
Missing closing parenthesis?
:P
 
@TimStone there's another error :) TypeError: Object 0 has no method 'match'
$.each(document.getElementById("active-user").classList, function(sigh, class){
  var candidates = class.match(/[0-9]+/);
  if(candidates != null)
    user = candidates[0];
});
anyway, there must be a better way.
I'm not even sure how you would refactor that into a function...
 
@radp Eh... whatca doin' there?
 
@YiJiang attempting to get the current user's id from a chat page.
I'm extracting it from the class name of #active-user.
 
(Hm, I've always read "balpha" as it's spelled.)
 
@radp ('#active-user').attr('class').split(' ')[1].substring(5); should do
 
6:36 PM
@radp What is #active-user?
 
@TimStone Your gravatar, beside #input
 
Ah
In that case
$('#active-user').data('user')? :P
 
@TimStone Hehe.. well spotted... wonder how I'd missed that
 
@TimStone wow... thanks (and wtf?)
 
@radp Do you have FireQuery?
 
6:39 PM
@YiJiang nope. I'm using Chrome.
 
@radp Ah well, then you won't see stuff like:
 
@radp No problem, heh. :) An ID is also attached to each user icon on the right, in case you have any use for them.
 
@TimStone oh, I do :-}
 
wonders what @radp is doing
 
@rchern He's trying to revive bouncy!
 
6:45 PM
@YiJiang I'm leaving that to you :P
 
Zombie bouncy!
 
o:
 
I can't push to GitHub right now, so let me introduce SO Live! Chat Edition!
Now actually useful!
 
requests a feature list (;
 
It shows a notification message every time a reputation change is detected.
At least, I hope it does.
 
6:47 PM
the notification that requires a mouse?
):
uninstalls (;
 
Hmmm... interesting... chat actually also have drafts
 
@rchern feel free :) when you'll write something that has Esc dismissing the notification I'll gladly integrate it
 
requires a mouse?
 
@rchern I've noticed that using /switch and /join will leave those commands behind in the drafts
 
@YiJiang It does?
How do I access one of these chat drafts?
 
6:50 PM
@PopularDemand look at the localStorage object
 
@YiJiang What localStorage object?
 
@PopularDemand window.localStorage, if you're so inclined
The HTML5 offline storage object
 
@YiJiang I'm not sure how to look at an HTML5 object. What tool should I be using?
 
leave it behind? hm?
 
@PopularDemand Eh... your console. Javascript console.
 
6:52 PM
i just did a /switch but i don't see it
@PopularDemand, what browser?
 
@rchern FF 3.6
 
@rchern Weird. Happens to me all the time
@PopularDemand You've got Firebug?
 
@YiJiang, what's the key?
 
@YiJiang Yep.
But nothing matched on "localstorage."
 
capital S
 
6:54 PM
window.localStorage["chat:draft:89"] where 89 is the room id
 
local**S**torage
 
Argh, I had the capital S in Firebug and typoed it here in chat.
 
chat:draft:89: ""
 
@rchern Yeah, not sure how frequently it saves
 
on page leave
 
6:55 PM
if only there was a chat dev around that we could ask
blah, you ruined it @balpha ):
 
@rchern You can inspect the localStorage object to see all of the rooms
 
@YiJiang, yes, they're all the empty string.
 
it's pretty much just so we don't need the "this will lose your unsent message; continue?" message
 
@rchern Hmm... I'll try switching and see what I get
 
Which Firebug tab?
 
6:56 PM
console
 
@rchern Empty?
 
HA! i just typed localhost instead of localStorage ):
 
> 127.0.0.1
SyntaxError: Unexpected number
 
Oh, this is a feature of your custom script?
 
6:58 PM
>>> localhost
ReferenceError: localhost is not defined { message="localhost is not defined", more...}
 
@PopularDemand, localStorage is a browser thing.
fires up Firefox
 
@balpha, why does it show the you must have 20 blah blah blah when i'm already isgned in
 
@rchern I don't understand why I'm not seeing anything here. I've never used this Firebug tab before, so I probably just don't know where to look?
 

« first day (78 days earlier)      last day (4935 days later) »