←2007-03-24 2007-03-25 2007-03-26→ ↑2007 ↑all
00:02:48 * SimonRC goes to bed
00:18:36 -!- nazgjunk has quit ("sleep, gah").
00:20:20 -!- sebbu2 has quit ("@+").
00:47:20 <bsmntbombdood> ok
00:47:25 <bsmntbombdood> lemme type this up
00:49:08 <SevenInchBread> DO SO
00:51:45 <bsmntbombdood> http://pastebin.ca/408613
00:54:40 <SevenInchBread> wassat?
00:54:54 <bsmntbombdood> a language
00:55:09 <bsmntbombdood> functional object oriented and stack based
00:55:51 <SevenInchBread> well... I think it's silly to say "only some people are capable of programming"...
00:57:07 <SevenInchBread> it could be a. the teacher, b. the language, c. the alignment of the planets
00:58:14 <SevenInchBread> and if there are certain aptitudes that make it possible to learn how to program - I certaintly have none of the stereotypical programming qualities.
00:59:26 <SevenInchBread> neat, detail-oriented, good concentration, organized. ....I'm the polar opposite of that.
00:59:44 <bsmntbombdood> um, no.
01:04:04 <bsmntbombdood> http://bsmntbombdood.mooo.com/FOOS.txt
01:10:33 <SevenInchBread> bsmntbombdood, your explainations fall too much into the trap of describing the implementation.
01:10:42 <SevenInchBread> ...too formal
01:10:43 <GregorR> Those are so utterly not the qualities of a programmer.
01:10:58 <SevenInchBread> I didn't think so.
01:11:17 <GregorR> The one quality you need to be a good programmer is the ability to grasp abstraction without losing perspective of the concrete.
01:11:30 <GregorR> Well, that's the one quality you need to be capable of programming at all.
01:11:46 <GregorR> I won't say that's all that's necessary to be a "good" programmer :P
01:19:27 <SevenInchBread> so you need to be able to fly while looking at the pavement?
01:23:04 <SevenInchBread> ...sounds like THE POWER TO MAKE AWESOME METAPHORS.
01:23:07 <SevenInchBread> ...as I have just done.
01:23:17 * SevenInchBread is now the most coincidental emperor of hackerdom.
01:26:01 <GregorR> It's just too bad that you have not an effing clue what "abstraction" means.
01:27:03 <SevenInchBread> pfft, oh no you didn't.
01:28:01 <SevenInchBread> abstraction - the process of putting buttons on machines?
01:32:51 <bsmntbombdood> SevenInchBread: i have no other way of describing it...
01:33:04 <SevenInchBread> abstraction?
01:33:36 <bsmntbombdood> so, do you think my concept is workable?
01:34:27 <SevenInchBread> It works... your explainations are just confusing for someone trying to understand how it works.
01:35:25 <bsmntbombdood> there's an object where the builtin methods are stored
01:35:50 <bsmntbombdood> there's an inheritance mechanism
01:36:06 <bsmntbombdood> there's a code/function object
01:36:18 <bsmntbombdood> classes and objects are built on top of these
01:39:00 <SevenInchBread> ...well, it's workable I suppose.
01:39:09 <bsmntbombdood> kinda smalltalkish
01:40:06 <SevenInchBread> considered going prototype?
01:40:28 <bsmntbombdood> I still have to figure out a lot of stuff
01:40:32 <SevenInchBread> a distinction between classes and objects might not be a good idea for something like this.
01:41:01 <SevenInchBread> you could just have "objects that you can make copies of and add shit too"
01:41:21 <bsmntbombdood> there is no distinction
01:43:00 <SevenInchBread> well... there are classes and objects... even if thoses classes are objects, there's still a distinction - unless I'm misunderstanding how this works.
01:43:10 <bsmntbombdood> you are misunderstanding
01:43:12 <SevenInchBread> SmallTalk has a distinction.
01:44:05 <SevenInchBread> In Smalltalk, all classes are objects - but not all objects are classes.
01:44:30 <bsmntbombdood> a "class" is just an object that has a method that creates another object
01:44:39 <bsmntbombdood> from the %inherit method
01:45:37 <GregorR> This is called "prototype-based object orientation"
01:45:38 <GregorR> FYI
01:46:29 <bsmntbombdood> %inherit might be a bad name
01:46:45 <SevenInchBread> ah okay... yeah, then that's prototype.
01:47:27 <bsmntbombdood> @'foo [foo code] @object %inherit add-method done
01:47:29 <SevenInchBread> ...using a slightly different way to creating new objects than most prototype languages... but the basic idea is still the same.
01:47:37 <bsmntbombdood> @ pushes the builtins object
01:47:52 <bsmntbombdood> ' sends the builtin object the ' message
01:48:52 <SevenInchBread> hmmm... ah... I think I got it.
01:49:50 <bsmntbombdood> this puts the "quoter" object on the stack
01:50:03 <bsmntbombdood> that gets sent a "foo" message
01:50:19 <bsmntbombdood> the quoter object responds by putting the symbol foo on the stack
01:50:53 <SevenInchBread> hmmm....
01:51:01 <bsmntbombdood> [foo code] pushes a code object on
01:51:12 <bsmntbombdood> @ pushes the builtins object
01:51:34 <bsmntbombdood> object is sent to it, builtins object responds by pushing the base object
01:51:54 <bsmntbombdood> the base object is sent %inherit
01:52:13 <bsmntbombdood> responds by pushing an object that accepts and stores message handlers (methods)
01:52:36 * SevenInchBread waits quietly.
01:52:50 <bsmntbombdood> add-method is sent to that object, adding a message for the symbol "foo" handled by the code [foo code]
01:53:03 <bsmntbombdood> done is sent the the object, turning it into a class
01:53:14 <bsmntbombdood> s/the the/to the/
01:53:58 <SevenInchBread> |foo| := (object conceived |foo| := (code)) -- in Sophia
01:54:47 <bsmntbombdood> @'foo [foo code] @object %inherit add-method done init foo
01:55:04 <bsmntbombdood> would be a long winded way of executing [foo code]
01:55:47 <SevenInchBread> from there that previous line you would add "foo foo"
01:56:48 <SevenInchBread> ...there are semantic differences though... the () represent functions...
01:56:56 <SevenInchBread> so it's lazy...
02:02:26 <bsmntbombdood> ideas, people!
02:45:36 -!- ShadowHntr has joined.
03:29:48 -!- Mica69 has joined.
03:30:09 -!- Mica69 has left (?).
03:45:14 <SevenInchBread> hmmm... I'm making a weird Orkish concurrent language.
03:53:04 -!- wooby has joined.
05:58:08 -!- LeaLeaLea has joined.
05:58:28 <LeaLeaLea> Seveninchbread
05:58:46 <LeaLeaLea> SEVENINCHBREAD ??
05:58:54 <LeaLeaLea> hdcbaifgweyfrgygf
05:58:55 <bsmntbombdood> heh
05:58:58 <LeaLeaLea> Good day, sirs.
05:59:00 -!- LeaLeaLea has quit (Client Quit).
06:20:38 -!- RodgerTheGreat has quit.
07:56:23 -!- maverickbna has joined.
07:56:44 -!- maverickbna has quit (Read error: 104 (Connection reset by peer)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:13:13 -!- ShadowHntr has quit (Read error: 110 (Connection timed out)).
08:25:32 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)).
08:30:33 -!- sekhmet has joined.
08:36:44 -!- oerjan has joined.
09:44:43 <SevenInchBread> ...hmmm... you know... Perl isn't all that bad.
09:44:45 <SevenInchBread> It's kind of fun.
10:15:38 -!- sebbu has joined.
11:35:06 -!- jix has joined.
11:44:14 -!- Sgeo has quit (Remote closed the connection).
12:32:51 -!- oerjan has quit ("leaving").
13:08:29 -!- sekhmet has quit (zelazny.freenode.net irc.freenode.net).
13:08:29 -!- oklopol has quit (zelazny.freenode.net irc.freenode.net).
13:08:29 -!- SimonRC has quit (zelazny.freenode.net irc.freenode.net).
13:08:38 -!- sekhmet has joined.
13:08:38 -!- oklopol has joined.
13:08:38 -!- SimonRC has joined.
13:27:39 <SimonRC> hmf
14:44:06 -!- ivan` has joined.
14:46:39 -!- ivan` has changed nick to ludios.
15:00:25 -!- ludios has quit ("Coyote finally caught me").
16:22:04 -!- RodgerTheGreat has joined.
16:22:59 <RodgerTheGreat> 'morning, everyone
16:23:28 -!- jix__ has joined.
16:32:54 -!- jix has quit (Read error: 110 (Connection timed out)).
16:54:14 -!- SevenInchBread has quit ("haaaaaaaaaa").
16:58:21 -!- jix__ has changed nick to jix.
17:05:52 <oklopol> mrng
17:06:18 <RodgerTheGreat> hws t gng?
17:08:25 <oklopol> plng btz www.bts2.nt... addktv fr sch a trvl gm
17:08:36 <oklopol> whooops i forgot vowels!
17:39:43 -!- SevenInchBread has joined.
17:55:05 -!- sebbu2 has joined.
18:13:31 -!- sebbu has quit (Connection timed out).
19:41:27 -!- UnrelatedToQaz has joined.
19:42:25 -!- UnrelatedToQaz has left (?).
19:57:33 <SevenInchBread> ...alright.
19:58:11 <SevenInchBread> I need to compile a list of all Unicode characters... and sort out the ones that are "symbolic" and those are "alphabetic".
19:58:31 <SevenInchBread> ...basically, the ones that work like !@#$%^&*() and the ones that work like letters.
19:58:40 <SevenInchBread> ...including all the combined forms.
20:03:40 <RodgerTheGreat> that sounds like a rather nontrivial task
20:04:08 <RodgerTheGreat> a list of 256X256 characters, some of which don't exits...
20:04:24 <RodgerTheGreat> *exist
20:07:26 <oklopol> it indeed does.
20:27:28 -!- nazgjunk has joined.
20:28:05 -!- nazgjunk has quit (Client Quit).
20:28:23 -!- nazgjunk has joined.
20:37:44 <SevenInchBread> ...believe it or not... I've not included ideas that I like from PERL into Sophia. Yes... the apocalypse is nigh.
20:38:12 <SimonRC> SevenInchBread: actually, the unicode people have already decided for you and any library that supports unicode properly should have a function to find out.
20:39:51 -!- wooby has quit.
20:40:05 <SevenInchBread> oh... well cool...
20:40:32 <SevenInchBread> later I'll need a way to distinguish punctuation-type glyphs from letter-like glyphs...
20:40:38 <SevenInchBread> and spaces.
20:46:23 <SimonRC> that also exists
20:46:28 <RodgerTheGreat> hey, feesh: http://www.nonlogic.org/dump/images/1174851872-chainbrain.png
20:46:34 <RodgerTheGreat> finally got around to inking it
20:49:45 <RodgerTheGreat> whoops, wrong window
20:51:43 <RodgerTheGreat> it's an idea for a CD cover for a band a friend of mine is in called "Chainsaw Brainsaw", if anyone's wondering
20:52:33 <SevenInchBread> ...typical keyboards need more unicode symbols on them...
20:52:58 <SevenInchBread> we could use a lot of them in programming... there's only so many funny-looking characters you can use in ASCII before you run out.
20:54:12 <RodgerTheGreat> I don't really want any more unicode symbols unless I get more *keys*. It's time consuming enough coding in languages with excessive punctuation like perl
20:56:23 <SevenInchBread> well, that's what I meant.
20:56:27 <SevenInchBread> more... keys.
20:56:59 <RodgerTheGreat> oh. Then in that case, I wholeheartedly agree.
20:57:15 <SevenInchBread> you could even digitize the whole labelling of symbols... using lights to label each key. So then you could set up your own keyboard layout.
20:57:18 <RodgerTheGreat> plus, more keys = more interesting emoticons
20:57:39 <RodgerTheGreat> SevenInchBread: sounds like the fabled "optimus" keyboard
20:57:49 <SevenInchBread> ...plus, I want a huge organ-sized keyboard... so I look more technical.
20:58:23 <RodgerTheGreat> I like the idea of two "tiers" of keyboards, like they show operators using in "The Matrix"
20:58:54 <SevenInchBread> or... if you just had like... switched. You could switch out certain layouts.
20:58:59 <RodgerTheGreat> these additions might make coding with a laptop suck
20:58:59 <SevenInchBread> switched - switches
20:59:34 <SevenInchBread> ...I wonder where you could some of these weird keyboards.
21:00:26 <RodgerTheGreat> I have a German keyboard a friend of mine got for me when he was on vacation, but it's PS2, and I have a mac.
21:00:43 <RodgerTheGreat> macintosh: EVERYTHING, and I mean everything is USB
21:00:45 <SimonRC> more types of brackets would be good
21:00:58 <SimonRC> RodgerTheGreat: monitor? :-P
21:01:21 <RodgerTheGreat> actually, my monitor plugs into my USB port...
21:01:34 <RodgerTheGreat> it *also* plugs into DVI and Firewire
21:01:44 <SevenInchBread> There are the << and >> unicode symbols... although those kinds of brackets can be done with just double angle brackets
21:01:46 <RodgerTheGreat> the cable coming out of this thing is a beast
21:02:00 <SimonRC> heh
21:02:38 <SevenInchBread> well... inverted question marks and exclaimation points could be used for brackets.
21:02:47 <RodgerTheGreat> I've zip-tied together the six cables that I have to plug into my laptop to "dock" it at my desk into a huge umbilical
21:03:06 <RodgerTheGreat> power, ethernet, mini-DVI, usb, firewire, audio
21:03:12 <SimonRC> The proper symbols for and, or, not, xor, union, intersection, exponent, etc would be good too.
21:03:21 <SimonRC> alas, it is time for me to go again.
21:03:24 <RodgerTheGreat> and then USB and firewire go directly to various hubs and such
21:03:47 <RodgerTheGreat> SimonRC: like ¬ for not and so on?
21:05:09 * SevenInchBread demands a huge multi-tiered, digitally-labeled keyboard.
21:05:13 <SevenInchBread> ...with pedals.
21:05:52 <RodgerTheGreat> ooh, that would be fun
21:06:03 -!- nazgjunk has quit ("switching to kde").
21:06:10 <RodgerTheGreat> pedals for alt, shift, control and so on would be fun
21:06:27 <SevenInchBread> yeah, there's a whole slew of Unicode math operators that could be put on keyboards... it would take forever before you exhaussted your repetoir of single-character operators.
21:06:42 <SevenInchBread> well... I'm sitting on my bed... so my feet aren't in a position for pedal-mashing.
21:07:10 * RodgerTheGreat is sitting at a desk
21:11:07 -!- nazgjunk has joined.
21:13:56 <oklopol> wtf... php's serialize("osososo") returns s:7:"osososo";
21:17:57 <oklopol> what i'd like even more than more keys in a keyboard would be to lose the "ergonomic" fact that keys are not directly on top of each other
21:18:08 <oklopol> yes not diagonally positioned either
21:18:16 <oklopol> the are pretty randomly dispersed there...
21:18:28 <oklopol> but then again, if you ask me, everything sucks
21:23:45 <RodgerTheGreat> the pattern for a keyboard actually does make a fair amount of sense considering where the joints are in your hands
21:24:48 <oklopol> i have different joints in my left and right hand?
21:24:58 <oklopol> i'm not a mutant you know
21:25:23 <RodgerTheGreat> your hands are mirror images of one another
21:25:28 <oklopol> indeed
21:25:41 <oklopol> now why isn't the keyboard symmetric then?
21:26:45 <RodgerTheGreat> because not having any keys vertically aligned makes it easier to create mechanical linkages that swing a type-block into position on an ink-impregnated tape, and re-learning typing sucks
21:27:01 <RodgerTheGreat> it is just that simple
21:27:15 <oklopol> you can type on this keyboard, though it doesn't feel natural... but when playing the beepiano... oh the pain
21:27:55 <RodgerTheGreat> the what?
21:27:58 <oklopol> i don't agree to either of those but i understand many would
21:28:17 <oklopol> www.vjn.fi/s/beepiano.py
21:28:26 <RodgerTheGreat> oh, that thing
21:28:38 <oklopol> ya
21:29:34 * oklopol is getting pretty good at it
21:30:16 <RodgerTheGreat> I never learned to play a normal piano, so it doesn't seem that unnatural when I use something like "Musical Typing"
21:30:34 <oklopol> musical typing?
21:31:06 <RodgerTheGreat> it's what they call it when you map the keyboard to musical notes in software like Garageband or FLStudio
21:31:23 <oklopol> oki
21:31:57 <oklopol> i've only seen that done in 2 ways, one is note name -> tone, the other is the piano keyboard emulated on the keyboard
21:32:04 <oklopol> they are both idiotic
21:32:11 <oklopol> and make it impossible to enjoy playing
21:32:11 <RodgerTheGreat> I really want to learn how to use a proper tracker application
21:32:21 <oklopol> in windows it's easy
21:32:27 <oklopol> oh
21:32:27 <oklopol> use?
21:32:30 <RodgerTheGreat> then you can type musical notes in hex
21:32:34 <oklopol> hmm
21:33:02 <oklopol> beepiano uses the layout of the accordion... quite natural since it is the exact same layout
21:33:26 <oklopol> except of course the layout of the keyboard is, as i said, pretty random
21:33:39 <oklopol> the accordion of course has a more natural alignment of keys
21:34:28 <oklopol> plus, rather than having more keys i'd like to have a better key layout... qwerty makes no sence
21:34:41 <oklopol> *sense
21:35:41 <oklopol> i asked whether there are any better layouts than qwerty for sale in the shop where i bought my laptop... the salesman had no idea what i meant
21:35:58 <RodgerTheGreat> I fail to see how "making sense" matters in a keyboard layout. Any layout is ultimately arbitrary, and using the keyboard is simply a factor of memorizing the finger movements for each character and groups of characters
21:36:01 <oklopol> when i explained he said he'd never heard there could be anything else
21:37:23 <RodgerTheGreat> Qwerty is superior to any alternative purely because it is an accepted standard and by learning it you can type on over 99% of keyboards in existence. Using an alternative renders your typing skills useless when faced with an unknown layout or somebody else's keyboard.
21:37:38 <RodgerTheGreat> not to mention that alternatives are usually harder to find...
21:38:17 <oklopol> well, once again that's something i don't care about, i'd just like to have a better keyboard :\
21:39:07 <RodgerTheGreat> I'm a great deal more interested in the feel of the keyboard- firmness, key travel, etc, than the letters on the keys
21:39:22 <oklopol> plus the human brain can adapt more than one keyboard layout easily
21:39:32 <oklopol> *to
21:40:10 <RodgerTheGreat> typing on a keyboard from the 70's is awesome, because the keys are big, have cupped surfaces, and they move like half an inch
21:41:25 <oklopol> that's another thing i must disagree :P everybody always says "this keyboard sucks... my keyboard is soooo much better" or something... i can feel the difference of course... but you get used to a new feel in 5 secs :\
21:41:35 <oklopol> *with
21:42:54 <RodgerTheGreat> a good feel is determined by something you want to be using for 8 hours at a time, not five seconds
21:43:26 <RodgerTheGreat> do you feel a two-by-four is as comfortable to sit on for that period as an overstuffed couch?
21:44:27 <oklopol> well... i sleep on 2 mattresses... but i feel just as good sleeping on the floor... maybe it's just me
21:44:45 -!- ShadowHntr has joined.
21:45:20 <oklopol> okay, i'll rephrase my initial opinion: i hate qwerty because i'm different.
21:45:52 <RodgerTheGreat> ok
21:45:59 <RodgerTheGreat> that is a significantly more valid criticism
21:46:07 <oklopol> :)
21:47:02 <oklopol> i used to sleep on the floor actually, since it's easier to get up that way, but my mother told me repeatedly i should sleep on a bed, so it's become a habit
21:47:09 <oklopol> but i've never seen any use for beds
21:48:26 <oklopol> i'll continue programming now, though php sucks real bad :<
21:48:41 <RodgerTheGreat> I dislike sleeping on the floor less because it's hard and more because it provides inadequate lumbar support. My back always hurts afterwards
21:49:00 <oklopol> yeah, it does if you're not used to it
21:49:04 <RodgerTheGreat> perhaps if it was curved properly, it'd be comfortable
21:49:25 <oklopol> but people who've started sleeping on the floor say they feel much better
21:50:00 <oklopol> and i've got to agree, since after a few nights it does feel a lot more natural
21:50:44 <oklopol> RodgerTheGreat was it you who said php is useful of smth?
21:50:49 <oklopol> i have a lot of problems :)
21:51:06 <RodgerTheGreat> I use PHP occasionally. I might be able to help
21:51:37 <RodgerTheGreat> my main languages are Java, PHP, and BASIC, actually (which doesn't make me too popular here sometimes. ;))
21:51:56 <RodgerTheGreat> I'm getting pretty handy with Javascript, though
21:52:03 <SevenInchBread> hmmm....
21:52:10 <oklopol> those are the 3 most hated languages probably :P
21:52:15 <RodgerTheGreat> yeah
21:52:21 <SevenInchBread> so.... here's an idea for parallel computations... like...
21:52:30 <oklopol> among people who haven't used them at least
21:52:31 <SevenInchBread> say you have a function like....
21:52:51 <RodgerTheGreat> but I hate C/C++ with a unique passion, so it all fits in
21:53:23 <RodgerTheGreat> my three least favorite languages are, in order, ruby, C, and C++
21:53:33 <SevenInchBread> func(x, y, z) := (2 + x) - (y +( z-2))
21:53:43 <oklopol> javascript also... i once tried something with javascript... this guy saw me open a javascript page and literally started screaming javascript is evil
21:53:51 <RodgerTheGreat> yeah
21:53:52 <SevenInchBread> couldn't you split off a few quick threads and chomp away at this function in non-linear bits?
21:54:08 <RodgerTheGreat> SevenInchBread: seems like that could work
21:54:11 <RodgerTheGreat> clever
21:54:24 <oklopol> which is weird, since i hear it's a pretty decent language, java with classes made optional (right?)
21:54:48 <SevenInchBread> even if parts at the beginning of the function are required before later parts can be computed... you can use the concept of message queues and futures to represent data dependences.
21:54:49 <RodgerTheGreat> oklopol: the interesting thing is, most people that honestly try those languages either don't mind them or at least find some aspects they like
21:54:55 <RodgerTheGreat> oklopol: that's pretty much it
21:55:09 <oklopol> SevenInchBread i think oerjan or someone told you that a few days ago
21:55:25 <SevenInchBread> -snicker- must have missed it then.
21:55:43 <oklopol> that things in parens can be split into different threads with thread per paren basically
21:55:51 <SevenInchBread> ....I'm just... now sure how the interpreter would logically split the threads...
21:55:56 <SevenInchBread> aah.
21:56:02 <oklopol> that's how
21:56:37 <oklopol> though of course not literally parens, but pieces that parens and precedence separate from the whole
21:57:02 <SevenInchBread> the "parens" of the parse tree. ;)
21:57:11 <RodgerTheGreat> anyway, what was this PHP thing you were having difficulty with?
21:57:15 <oklopol> well... yes :P
21:57:31 <oklopol> RodgerTheGreat i'm trying to use serialize
21:57:39 <oklopol> it sucks, for one, but that's not the problem
21:57:47 <SevenInchBread> so... each expression could pre-emptively evaluate to liek a future thing to the surrounding threads... which will collect computations for when its thread finishes... sounds fun.
21:57:49 <oklopol> since i can convert to my own good function later
21:58:09 <oklopol> yeah, i like the idcea
21:58:19 <oklopol> now when you make that explicit somehow
21:58:34 <oklopol> and... somehow allow the programmer to do... something with it
21:58:36 <SevenInchBread> ...should incorporate it into Sophia somehow... along with the Actor model.
21:59:06 <oklopol> RodgerTheGreat the problem is it does not work yet... i can show you the non working part
21:59:17 <SevenInchBread> message-passing makes it somewhat simple... you just use futures that collect message names.
22:00:29 <RodgerTheGreat> oh, since we're on the topic of language semantics, this is a partially finished language specification for a creation of mine. I call it "bullet" for now, and it's intended to be an alternative for C. http://www.nonlogic.org/dump/text/1174856252.html
22:00:41 <oklopol> http://www.vjn.fi/pb/p626232154.txt <<<
22:00:51 <RodgerTheGreat> It's more of a "serious" language than an esolang, but this channel seems like a good place to talk about it
22:00:54 <oklopol> $compiled_program is an array
22:00:59 <oklopol> the parsed program
22:01:00 * RodgerTheGreat reads oklopol's PHP...
22:01:10 * oklopol reads RodgerTheGreats link
22:01:21 <RodgerTheGreat> oh, god. flat-file I/O sucks in PHP
22:01:45 <RodgerTheGreat> I literally spent 6 hours debugging a 30 line program yesterday
22:02:38 <oklopol> yeah... the fact files are flat makes it suck in a lot of places
22:03:05 -!- sebbu has joined.
22:03:37 <oklopol> but, serialize seems to create an alphanumeric string with " and : in it (which sucks), and that should be easy to output in a flie
22:03:39 <oklopol> *file
22:04:23 <oklopol> that is quite a beautiful language i must admit
22:04:24 <RodgerTheGreat> hm
22:04:34 <RodgerTheGreat> really? It looks nice?
22:04:44 <oklopol> yeah :)
22:04:49 <RodgerTheGreat> thanks!
22:05:08 <RodgerTheGreat> there are still a lot of things to be done, like control structures and the like
22:05:13 <oklopol> somehow seems a consistent language layout on the first glance
22:05:44 <oklopol> do subdiv[val1:a val2:b] to [subresult:sub divresult:div]
22:05:47 <oklopol> explain, please
22:05:59 <oklopol> ah
22:06:05 <oklopol> i got it
22:06:06 <RodgerTheGreat> the design philosophy is creating a language that can be compiled pretty easily and that is designed so that programming errors are either hard to make or easy for the compiler to catch
22:06:31 <RodgerTheGreat> yeah, the to [] block specifies what variables to "unload" a function's returned values to
22:06:51 <oklopol> subfunctions, lambdas?
22:07:13 <RodgerTheGreat> you mean function calls on a function's return values?
22:07:25 <oklopol> mm no
22:07:42 <RodgerTheGreat> I'm not sure what you mean, then
22:08:19 <oklopol> i mean, def a[][def b[]returns[double:c][c=0.0];print:stdio[b[]]]
22:08:41 <oklopol> in case ';' can be used like that and nl's are optional
22:09:57 <RodgerTheGreat> I'm not sure what that's useful for aside from adding some form of function scoping. newlines or : act as an expression terminator like ; does in a normal curly-bracket language
22:10:33 <oklopol> _list_=[1 2 3 4 5]; _doubled_=map[def[double:a]returns[double:ret][ret=a*2] _list_]
22:10:35 <RodgerTheGreat> however, I don't see any reason that would otherwise be invalid
22:11:06 <oklopol> functions sans names, lambdas, exist?
22:11:27 <oklopol> (that's probable not a good explanation of a lambda though :))
22:11:32 <oklopol> *probably
22:11:41 <RodgerTheGreat> this isn't an object-oriented language, however, so a function can't be manipulated as a list element
22:11:41 <oklopol> s/explanation/definition
22:11:57 <RodgerTheGreat> and functions must be assigned a name, so no lambdas
22:12:03 <oklopol> okay, pointers?
22:12:08 <RodgerTheGreat> both of those can make compilation quite complex
22:12:34 <oklopol> _list_=[1 2 3 4 5]; def dbl[double:a]returns[double:ret][ret=a*2]; _doubled_=map[&dbl _list_];
22:12:53 <oklopol> that is very easy to compile
22:12:58 <RodgerTheGreat> pointers will probably exist, but I don't want to make their use a main feature of the language- they have a tendency to create unreadable code
22:13:23 <oklopol> well, i love list operations with lambdas :)
22:13:27 <RodgerTheGreat> heh
22:13:34 <oklopol> but, indeed i don't know whether it's that readable
22:13:45 <RodgerTheGreat> what do you think about the structure of strings and arrays?
22:13:57 <oklopol> i just like to do everything creatively... so... maybe i use that as an obfuscation feature more like :P
22:14:13 <RodgerTheGreat> I think 1-indexed arrays make algorithms a lot clearer and might help avoid off-by-one errors
22:15:08 <oklopol> do you have def dbl[double:x]returns[double:ret][ret=2*x] main[][print:stdio dbl 5.0] ? because [] kinda seems like a list everywhere
22:15:17 <oklopol> ah but yeah, a value is not [value]
22:15:23 <oklopol> so... forget what i asked
22:16:01 <oklopol> hmm... well, indexing is often errorprone anyway
22:16:07 <oklopol> but i don't like 1-indexing
22:16:34 <RodgerTheGreat> in most cases, a [] set indicates a series of elements or expressions of unknown length, but since this is a compiled language the "lists" cannot be manipulated at runtime
22:16:42 <RodgerTheGreat> any particular reason?
22:16:51 <oklopol> actually, can't think of any
22:16:53 <oklopol> :)
22:16:57 <oklopol> maybe habit then
22:17:28 <oklopol> but for god's sake don't make dim smth(-3 to 50) as integer :P
22:17:42 <oklopol> (if that's the basic array syntax)
22:18:16 <oklopol> strings and arrays, hmm, i gotta read a bit
22:18:35 <RodgerTheGreat> my main project at the moment is the creation of something that can do what structs do, and fleshing out a vague idea I had for "algorithm prefabs" that you can plug code into like parameters to save coding time
22:18:52 <oklopol> hmm
22:18:59 <oklopol> i'm a bit dense, can you elaborate?
22:19:22 <oklopol> you have structs in the lang?
22:19:42 <RodgerTheGreat> not yet
22:19:58 <oklopol> arrays are 1-indexed. for example, an array of size 10 has cells 1 through 10.
22:19:58 <oklopol> cell 0 always contains the size of the array, not counting cell 0.
22:20:06 <oklopol> i was actually going to suggest you do that
22:20:11 <oklopol> if using 1-indexing
22:20:17 <RodgerTheGreat> but I need something *like* them to discourage rampant use of pointers and to make manipulating data easier
22:20:22 <RodgerTheGreat> yeah
22:21:14 <oklopol> you might do pass by pointer like most "clean" langs
22:21:22 <oklopol> java for one
22:21:23 <RodgerTheGreat> possibly
22:21:46 <RodgerTheGreat> java's "references" are a lot safer than pointers, because you can't do math on them
22:21:49 <oklopol> or then... you could make it default to copy... but not really copy, just ensure no mutation is done
22:22:19 <oklopol> somehow make pass by pointer, but make the programmer tell if he really wants to use the same object
22:22:23 -!- sebbu2 has quit (Connection timed out).
22:22:25 <oklopol> not object... but thing
22:22:33 <RodgerTheGreat> I'm still thinking about it
22:22:50 <RodgerTheGreat> pointers are very powerful and very destructive. I need to fit them carefully into the language
22:23:14 <oklopol> well, you want them to be verrry explicit when used if aiming for usability
22:23:52 <RodgerTheGreat> yes
22:24:04 <oklopol> "\"algorithm prefabs\" that you can plug code into like parameters to save coding time" something like a macro?
22:24:12 <oklopol> or something completely different?
22:24:32 <RodgerTheGreat> I don't know yet
22:24:39 <RodgerTheGreat> it's still a subject of thought
22:24:54 <oklopol> btw did you see my problem in the code? unserializing doesn't work, since i don't think i mentioned what the problem is :D
22:25:28 <oklopol> http://www.vjn.fi/pb/p626232154.txt
22:25:33 <oklopol> the first echo prints Array
22:25:41 <oklopol> the last one does not
22:25:49 <oklopol> eh
22:25:52 <oklopol> actually
22:26:23 <oklopol> the last one should try to echo a data structure... i don't think that code makes sence : )
22:26:29 <RodgerTheGreat> I'll take another look at it in a bit- I need to grab some food
22:26:34 <oklopol> kay
22:29:50 <oklopol> okay... as i well know, fgets() does not read the whole file but until the first nl
22:30:35 <oklopol> that's my problem, unserialize fails because it is given a broken string to unserialize
22:31:07 <oklopol> but... now how do i read a whole file?
22:31:10 <oklopol> hmm
22:31:29 <oklopol> i'm using file_get_contents on the line above... i think my problem's solved :P
22:33:03 <oklopol> workz.
22:34:39 <SevenInchBread> you could use a higher level version of a pointerisms.
22:34:58 <oklopol> www.bots2.net is a nice game, but something i really dislike about it is that it discourages using scripts, so i'm making my own game in which you MUST use a script
22:35:48 <oklopol> it's an online game where you can create a bot by submitting a piece of code that determines how your bot fights and what kind of stuff it like to use
22:36:18 <SevenInchBread> well... if everything is a pointer to its data... the only other reason I could think of using pointers is to alter out-of-scope variables.
22:36:33 <SevenInchBread> which you could do with a symbol construct.
22:36:38 <oklopol> the bots automatically fight according to the tactics you code for them, tactics including both the actual fighting situation tactics and off-fight equipment buying etc
22:37:00 <oklopol> symbol construct?
22:37:50 <SevenInchBread> have a datatype that literally represents a variable.
22:38:00 <oklopol> the only thing you can do in the game is check how well your bot is doing and read details about it's fights... and if you find something you can improve, you either code a new bot or change the code for the old one
22:38:12 <oklopol> ah
22:38:30 <oklopol> so pretty much a java-style pointer only made explicit
22:38:43 <oklopol> OR a c++ reference
22:38:51 <SevenInchBread> so... if you wanted a swap function that swaps the values of two variables... you could pass it symbols. swap(<x>, <y>) --assuming <> is the syntax for denoting a symbol.
22:40:37 <SevenInchBread> but... Java/C-like semantics are a little weird to me... so my ideas might not match up with the model of computation there. I mostly familiar with "scripting" languages and how they work.
22:41:18 <oklopol> yeah, and you might have template[<a>];def swap[symbol[<a>]:a symbol[<a>]:b][<a> temp=a;a=b;b=temp]
22:42:21 <oklopol> "yeah, and you might have" might be a bit out of place, i wrote that code for too long :)
22:42:39 <oklopol> well, it's not that much
22:43:18 <oklopol> except, i use <> for use of templates and the symbol thingie quite mixedly :P
22:43:25 <oklopol> so... it kinda suxxored
22:45:31 <SevenInchBread> so... basically my concept of a variable is something like an entry in a hash table...
22:45:45 <oklopol> i know
22:45:49 <SevenInchBread> exept... in this case... you have a way to conceptually refer to "that name in the hash table"... so you can pass it around as data and alter it.
22:46:06 <oklopol> you find it obvious you can access the name of a variable, probable
22:46:09 <oklopol> *probably
22:46:25 <oklopol> i've just recently adapted to that
22:47:25 <oklopol> and duck typing... was very hard to understand the logic first
22:47:31 <SevenInchBread> in most languages I've delt with... it's hard to directly pass an out-of-scope variable to a function for it to alter... mainly because it's not terribly useful.
22:47:46 <SevenInchBread> -snicker- static typing still confounds me to this day.
22:47:54 <SevenInchBread> duck typing just... makes sense to me.
22:47:56 <oklopol> since i did not understand why two variables with the same name should have anything in common in separate scopes
22:48:10 <oklopol> but, when you thing in hash tables, it does make sence
22:48:27 <SevenInchBread> I have no clue how compilers represent variables...
22:48:51 <SevenInchBread> and a lot of restrictions brought about by static typing make no sense to me...
22:48:54 <oklopol> well, assign a number for each variable
22:49:08 <oklopol> the name of a variable is not an essential part of it
22:49:16 <oklopol> well, it is in scripting langs
22:49:36 <oklopol> but it's certainly not in a theoretical sence
22:49:39 <oklopol> *sense
22:49:53 <SevenInchBread> hmmm... does the number contain information about its type?
22:50:10 <oklopol> it might
22:50:30 <oklopol> to enable dynamic typing you have to
22:51:24 <oklopol> but, the name is just a mnemonic for the programmer, which is why there is no similarity between two 'a' variables if in different contexts
22:51:25 <SevenInchBread> makes sense... the only purpose compilation serves is to make things quicker... and a common trend is that using the properties of binary to do calculations gives you tremendous speed ups.
22:52:38 <oklopol> well, not just compilation in it's normal meaning
22:53:12 <SevenInchBread> with duck typing, the name is pretty much everything...
22:53:15 <oklopol> i'd not save the name of a var anywhere even if just making a parse tree
22:53:43 <SevenInchBread> computations are blind to any concept of type... unless they specifically go about plundering the data structure to find its type.
22:55:10 <oklopol> well, duck typing can be done without names in the parsed form, you just have to ensure vars with the same name get the same index number if you represent an object as a list of it's fields
22:55:43 <SevenInchBread> most of the safety static typing gives you seems.... unessecary.
22:55:53 <oklopol> unnecessary
22:55:57 <oklopol> but you're getting closer :)
22:56:10 <SevenInchBread> ...
22:56:20 <SevenInchBread> yeah, TYPO LOL
22:56:21 <oklopol> i've seen you say nessicary many times :D
22:56:30 <SevenInchBread> -nod- habits.
22:56:31 <oklopol> nessecary is in-between
22:56:35 <nazgjunk> "unessecary" is one beautiful piece of typo
22:56:41 <SevenInchBread> I've been catching myself more with that one...
22:57:09 <oklopol> i have caught you 2 times with nessicary, so i don't have that much proof :)
22:58:49 -!- GregorR has changed nick to _D6Gregor1RFeZi.
22:58:59 <SevenInchBread> ...I have a hard time seeing myself using a static typed language soon... maybe Haskell - I like its type system.
22:59:02 <oklopol> ...but to reply to what you actually said, static typing is not the exact opposite of duck typing :P
22:59:22 <SevenInchBread> it's... half the opposite of it. :)
22:59:23 <oklopol> well
22:59:30 <oklopol> my terminology might be wrong
22:59:34 <oklopol> it's often wrong :<
22:59:40 <SevenInchBread> duck typing basically means dynamic typing and strong typing.
22:59:45 <oklopol> ah
22:59:55 <SevenInchBread> so... it's half the opposite.
22:59:58 <SevenInchBread> :)
23:00:09 <oklopol> hmm, why strong typing?
23:00:33 <oklopol> i'd say it's a bit different from any of those concepts
23:01:07 <oklopol> hmm... i'm actually not exactly sure what's what
23:01:18 <oklopol> curse this brain of mine
23:02:31 <SevenInchBread> duck typing determines what can happen solely what something can do.
23:02:37 <SevenInchBread> http://en.wikipedia.org/wiki/Duck_test
23:02:47 <SevenInchBread> *on
23:04:06 <oklopol> well, i liked your analogy of a hash table better
23:04:34 <oklopol> but, i know what duck typing is, but i confused weak/strong and static/dynamic typing
23:05:02 <oklopol> duck typing however i think is something different
23:05:45 <oklopol> you can have weak typing with duck typing, and you can have strong typing with duck typing
23:05:47 <SevenInchBread> I think weak typing means the type is based mostly on how its stored in the computer. So, in weak typing, an ASCII character and a short integer are effectively the same thing.
23:06:22 <oklopol> nah
23:06:44 <SevenInchBread> or at least, something similar to that.
23:06:47 <oklopol> in weak typing you store the type, since the same var can carry any value
23:06:57 <oklopol> at different parts of the program
23:07:09 <oklopol> *any type of a value
23:08:27 <SevenInchBread> ah... basically the type system is... heh... strong.
23:08:42 <SevenInchBread> it doesn't impose artifical restrictions?
23:08:50 <SevenInchBread> bah *isn't
23:09:12 <oklopol> hmmm, you might describe it like that
23:10:24 <oklopol> strong typing usually just means you type 'MY VARIABLE is an integer and it's value is 5' instead of 'MY VARIABLE has the integer value 5'
23:11:27 <SevenInchBread> the difference between static and dynamic typing is generally more straightforeward.
23:13:15 <oklopol> yes, it's whether you resolve types at runtime or not
23:14:13 <oklopol> static typing disables function a {return 0 if (param==0) else return "non zero :<<"}
23:14:26 <SevenInchBread> ...my biases exposure to scripting languages makes it seem weird that anything should trip an error before being ran - aside from syntax errors. :P
23:15:03 <SevenInchBread> *biased
23:15:33 <oklopol> well... you might wanna redefine 'syntax error' in the dict in your head then :)
23:17:05 <SevenInchBread> hmmm... would incompatable types constitute as a syntax error in static typing?
23:17:29 <oklopol> you mean can there be implicit conversions?
23:17:38 <oklopol> "4"+1
23:17:42 <oklopol> and the like
23:17:43 <oklopol> ?
23:17:51 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
23:18:25 <oklopol> but... no they wouldn't, i said wrong there :)
23:19:03 <oklopol> syntax error of course can't be anything that depends on something defined 500 lines above in the code
23:19:16 <SevenInchBread> ah... alright.
23:19:32 <SevenInchBread> yeah, there can be implicit conversions.
23:19:36 <SevenInchBread> ...I think.
23:19:38 <oklopol> yes
23:20:27 <oklopol> string s = get_string(); int i = get_int(); print s + i; even would be perfectly legal
23:20:34 <oklopol> *might
23:21:02 <oklopol> BUT, it's known at compile-time whether an integer can be added to a string
23:24:03 <SevenInchBread> Perl is pretty liberal about type conversitions...
23:24:40 <SevenInchBread> but that's a result of very little operator overloading - most operators do a very specific thing.
23:26:14 <oklopol> all i know about perl is that it's pretty awesome :)
23:30:02 <SevenInchBread> Perl is... humble.
23:30:25 <SevenInchBread> It doesn't push an ideology on you.
23:31:30 <oklopol> from what i've heard it's a language where you can expect someone who knows it not to know the whole language, but only a subset of it
23:31:44 <oklopol> which is nice, because you can... suprise people :)
23:33:46 <SevenInchBread> I can't think of any uniform idea that Perl has about itself... Scheme is EVERYTHING IS DATA AND ALL SHALL BE THE LIST AND ALL SHALL BE CONSISTENT, Smalltalk is EVERYTHING IS AN OBJECT AND ALL THE LANGUAGE FEATURES SHALL BE EXPRESSED ENTIRELY IN THIS WAY WITH NO EXCEPTIONS, Python is THERE IS ONLY ONE WAY TO DO THINGS AND THAT WAY SHOULD MAKE SENSE AND EVERYHING SHALL BE EASY TO READ.
23:33:49 <SevenInchBread> ...lots of caps.
23:35:03 <SevenInchBread> I guess Perl's unifying creed is that nothing is unified.
23:35:08 <oklopol> some dislike them, i don't see any need to have two different caps
23:35:14 <oklopol> hehe :)
23:35:30 <SevenInchBread> I wish there were three cases.
23:35:39 <SevenInchBread> ..and one of them was really squiggly.
23:36:08 <oklopol> python actually isn't exactly "one way to do things"
23:36:24 <oklopol> but "there is always the one obvious way to do things"
23:36:47 <oklopol> i make about 10 redundant lambdas per function
23:37:19 <oklopol> they make the code less readable, but whaddyagonnado when they feel so good :\
23:37:35 <oklopol> mmmmmh i gotta make a few lambdas right now
23:38:08 <SevenInchBread> although Python is my most heavily used language... I rarely agree with any of the scripture.
23:38:42 <SevenInchBread> There's rarely one obvious way to do things, otherwise we'd all use the same language, and there would be no such thing as "new ideas".
23:39:03 <oklopol> pretty sexy, lambda a,b,c:lambda i:a(b(c(i)))
23:39:17 <SevenInchBread> -nod- I like munging up Python just because I can..
23:40:31 <oklopol> it's one of the few languages i can just have fun with... create random functions full of lambdas and... see them do what i meant them to do :D
23:40:50 <oklopol> with type safety you have to know what you're doing.... so you can decide that on the fly
23:41:19 <SevenInchBread> yeah... duck typing has tons of uses in my experience. I use it all the time to play around with the basics.
23:41:58 <SevenInchBread> like... overriding the basic semantics - file-like objects, iterators and the like.
23:42:33 <oklopol> my python version does not allow a lot of the fun stuff... i couldn't get 2.4 or 2.5 to work
23:42:50 <oklopol> but... maybe someone installs me linux some sunny day :)
23:43:07 <SevenInchBread> hmmm... right now I need a language that's faster than Python, fun to play with, and easy to set up on Windows.
23:43:16 <SevenInchBread> as I want to make some serious language implementations...
23:43:38 <SevenInchBread> usually the answer is C for language implementations... but I don't really want to deal with C.
23:43:53 <oklopol> well, if you compile, you can use anything
23:43:59 <oklopol> but i suppose you won't
23:44:14 <SevenInchBread> doubt it...
23:44:29 <SevenInchBread> Sohpia is far too... dynamic to be static. :P
23:44:33 <oklopol> so... a script language running a script language... quite ridiculous
23:44:34 <SevenInchBread> *ph
23:44:49 <oklopol> compilation does not mean static typing
23:44:56 <oklopol> i don't know what you meant
23:44:59 <SevenInchBread> yeah... that's why I don't want a "serious" language that I plan on using to be in something like Python.
23:45:29 <SevenInchBread> ah... bleh - I sort of associate compilation with static typing... heh, habits.
23:45:47 <SevenInchBread> Lisp is compiled (for the most part) but is dynamic
23:45:53 <SevenInchBread> Common Lisp anyways.
23:45:53 <oklopol> well, they have a sort of a connection
23:45:59 <oklopol> but
23:46:15 <oklopol> hmm
23:46:29 <SevenInchBread> heh... I'm nowhere near familiar enough with C to attempt transforming a language into it.
23:46:31 <oklopol> well, you know the connection.
23:47:10 -!- Figs has joined.
23:47:11 <SevenInchBread> ...or I could go with a C-read VM or something... but it just seems pointlessly convuluted.
23:47:28 <Figs> Wow, this exists :P
23:47:45 <SevenInchBread> GOOD DAY SIR
23:47:51 <oklopol> do it in python, without inner functions or lambdas, and give it to me for python -> c conversion
23:47:55 <SevenInchBread> AND WELCOME TO THE LAND OF MOST CURIOUSITY.
23:48:01 <oklopol> i've done a lot of vb -> c at least :)
23:48:14 <Figs> Hello.
23:48:18 <oklopol> Hello.
23:49:07 <SevenInchBread> I could use a decently fast compiled language that suits my likings and write an interpreter in it...
23:49:29 <SevenInchBread> maybe... Common Lisp? I plan on making use of concurrency so maybe Erlang.
23:49:47 <Figs> what's going on?
23:49:59 <SevenInchBread> toiling with language implementations...
23:50:13 <Figs> same here
23:50:23 <Figs> what type of language ;)
23:50:37 <SevenInchBread> hmmm... kind of OO-ish... but not annoyingly so.
23:50:45 <oklopol> you go first, Figs
23:51:36 <Figs> I'm working on a language that will be very easy to extend by adding, for example, new qualifiers to object types, etc. using meta programming
23:52:10 <Figs> input code will be output in C++
23:52:23 <Figs> I'm working on parsers right now
23:52:34 <Figs> (got bored and hit StumbleUpon and found this ;p)
23:52:39 <Figs> http://esoteric.voxelperfect.net/wiki/IRP
23:52:42 <oklopol> :P
23:56:35 <oklopol> we had #irp for that for a while but it died quite quickly :D
23:56:58 <Figs> ah :P
23:57:10 <Figs> "With his beard in the mailbox" O_o
23:57:21 <Figs> stumbleupon gives me some weird shit sometimes
←2007-03-24 2007-03-25 2007-03-26→ ↑2007 ↑all