< 1236124905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[If one extend slightly the syntax for gerunds, DIAL can be implemented < 1236124905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as: < 1236124906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PLEASE ABSTAIN FROM EVERYTHING EXCEPT COMING FROM + ANSWERING < 1236124909 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WHILE REINSTATING THEM ]] < 1236124910 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :more literate than cobol < 1236129110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1236129120 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :night really (failed to sleep first) < 1236140643 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1236149793 0 :calamari!n=calamari@ip70-171-213-254.tc.ph.cox.net JOIN :#esoteric < 1236152881 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :Does anyone know of any unicode characters other than eszet where the toUpper() or toLower() cannot be reversed? < 1236152900 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :(ie changing case twice returns you to a different codepoint) < 1236152922 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :(Unicode counts as an esolang right? :P) < 1236152990 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's scary reading the logs, fizzie is such a me. < 1236153028 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what does eszet do when you change it twice? < 1236153054 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ß uppercased is SS. < 1236153059 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And SS lowercased is just ss. < 1236153079 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ligatures have similar behaviour. < 1236153091 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Just look at the list in http://www.unicode.org/Public/3.2-Update/SpecialCasing-3.2.0.txt for all special-cased things. < 1236153286 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Of course for all uppercase characters x, toLower(toUpper(x)) "returns" to a different codepoint, but I suppose that wasn't the question. < 1236153334 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Actually http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt is a better link, since it's version 5.1.0 instead of 3.2.0. < 1236153367 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It does not seem to be very much different. < 1236153450 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmph, god it's hard searching the logs based on remembering a topic. < 1236153468 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :should probably make a better searcher program < 1236153471 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :one that understands < 1236153486 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, what especially "you" I did in the logs this time? < 1236153507 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you said something about not seeing a reason to make mistakes < 1236153521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it may have been a joke, but i'm pretty sure i've said the exact same line. < 1236153583 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there was also some other one, but by then i may just have been looking for similarities sub...erconsciously. < 1236153599 0 :clog!unknown@unknown.invalid QUIT :ended < 1236153600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1236153658 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I seem to have been writing no-uppercase-at-the-beginning-of-sentences as late as 2004. < 1236153735 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :your style has actually changed a lot, while i see oklisms in both the old and the new fizzie, you're not always very *fizzie* in the backlogs. < 1236153751 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this i cannot give examples of. < 1236153816 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I don't recognize myself in 1990s-age logs (of other channels) at all. < 1236153845 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway what i was searching the logs for is i remember once correcting an error of ehird's, and for some reason he just wouldn't admit he was wrong even though i clearly couldn't go on with my life without him admitting it. but maybe he did admit it then, or maybe i just imagined this, because i couldn't find it. < 1236153870 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It is not trivial to write a regexp to match that. < 1236153886 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :indeed not, also i don't even use a regexp. < 1236153899 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just search for a string < 1236153908 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Maybe you could graph ehird- and oklopol-densities over time, and look only at spots where those have noticeable peaks simultaneously. < 1236153927 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah there will only be like 2-3 of those per day. < 1236153945 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1236153946 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but I like graphs. < 1236153958 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe like dialog densities < 1236153966 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but < 1236153978 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there was also oerjan or someone there, it was very spread out... < 1236154015 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway i should probably start my readings ~> < 1236154287 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Yes, but I like graphs. <<< i like the good kind of graphs < 1236155608 0 :tombom!i=tombom@wikipedia/Tombomp JOIN :#esoteric < 1236157265 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1236159872 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236162151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Yes, but I like graphs. <-- :D < 1236162349 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Since it's been such a while after my last graph-drawing, here's a messy one of channel activity over the whole year 2008: http://zem.fi/~fis/esoteric-2008.png < 1236162377 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what is the scale? < 1236162386 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Who knows. :p < 1236162405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what is the gap with 0 activity in the beginning? < 1236162449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh and what app did you use to draw this? < 1236162453 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, the Y axis is "number of lines over three consecutive days", with each X-axis pixel stepping the window start time by 8 hours; and the nicknames are ordered by total line-counts. < 1236162462 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's a custom Perl script with GD.pm, again. < 1236162467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1236162471 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's why there's no grid. :p < 1236162486 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, btw, that interactive fungot browser thingy... what was the url now again? < 1236162487 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: here's a problem: you're modifying a global packages.scm; i never considered tic-tac-toe a game < 1236162491 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Gap is in my logs, I probably again forgot to "/connect freenode", since I don't have it on automagically. < 1236162513 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It was at http://zem.fi/~fis/fungot.html but I haven't continued the commentation, and the source might be a bit old. < 1236162513 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: hi evoli. < 1236162520 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236162520 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fungot: I'm not evoli. < 1236162521 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: so should i waste time on irc" ( ircnet) < 1236162528 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :who is evoli? < 1236162554 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Someone on #scheme. < 1236162563 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1236162572 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fungot, I prefer if you spent your time in here < 1236162572 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but decided not to bother u for this one < 1236162581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :. < 1236162585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :good < 1236162590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I gess < 1236162593 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :guess* < 1236162649 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Uh... actually it seems that the source is current (since it's fetched with a xmlhttprequest-style ajaxy thing from fungot.b98.txt) but the syntax highlighting doesn't match it. :p < 1236162649 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: dating advice? mzscheme? gambit? sisc? < 1236162671 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fungot: Are you sure those things have to do with dating? < 1236162671 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: i found on the net." this is a public forum < 1236162689 0 :Slereah_!n=butt@ANantes-259-1-13-129.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1236163283 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236163775 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and here's the same thing as relative activities: http://zem.fi/~fis/esoteric-2008-r.png -- about the only clear thing in it is the ehird/tusho nickname-switcheroo. < 1236164580 0 :oklopol!n=nnscript@a91-153-121-248.elisa-laajakaista.fi JOIN :#esoteric < 1236166828 0 :psygnisfive!unknown@unknown.invalid QUIT :"Leaving..." < 1236170585 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1236171039 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay enigma pack 3, level 46 was a fun, nontrivial puzzle < 1236171084 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well okay it was kinda trivial after i familiarized myself with the concept of moving bricks, but it took me a while to get there < 1236171091 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so yeah, enigma++ < 1236171183 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION finds it interesting to see what oklopol sees and doesn't see as hard < 1236171228 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well more interesting than hard, took me three attempts, and on the first one i just tried something at random < 1236171279 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :on the second i rationalized the beginning but took a few chances on intuition and failed < 1236171620 0 :FireFly!n=FireFly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1236171768 0 :Mony!n=Harmony@AToulouse-258-1-96-133.w90-60.abo.wanadoo.fr JOIN :#esoteric < 1236171836 0 :Mony!unknown@unknown.invalid PRIVMSG #esoteric :plop < 1236171843 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1236172041 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Intuition: just say no. < 1236172097 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's a pretty useless thing < 1236173757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :10:25 fizzie: Since it's been such a while after my last graph-drawing, here's a messy one of channel activity over the whole year 2008: http://zem.fi/~fis/esoteric-2008.png < 1236173762 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i like it < 1236173775 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, mine is kind of skewed since I say things in multiple lines. < 1236173778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :08:05 fizzie: Maybe you could graph ehird- and oklopol-densities over time, and look only at spots where those have noticeable peaks simultaneously. < 1236173779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :08:05 oklopol: yeah there will only be like 2-3 of those per day. < 1236173780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1236173795 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :10:49 fizzie: Oh, and here's the same thing as relative activities: http://zem.fi/~fis/esoteric-2008-r.png -- about the only clear thing in it is the ehird/tusho nickname-switcheroo. < 1236173799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tha's a lot of oklopol < 1236173818 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty < 1236173842 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm actually surprised how high "others" is < 1236173861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, it has the peaks, prolly from when new people arrive < 1236173864 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or asiekierka < 1236173873 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION would like to see a smoothed version of the first graph < 1236173879 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe with weekly moving averages < 1236174225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Dan Bernstein awards $1,000 for a security hole discovered in djbdns -- its first in almost a decade!" < 1236174226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :woah < 1236174232 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he actually awarded it < 1236174233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :djb++ < 1236174265 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, aparently there was a security hole in qmail that was discovered a while back that he didn't award for < 1236174274 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it only manifested on computers with at least 56GB of RAM < 1236174329 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, well, that makes sense < 1236174336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this bug is one that can actually be exploited < 1236175837 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think that activity graph might be better if it also showed how much talk actually happened < 1236175852 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also how's that a lot of oklopol, it's much more of everyone else < 1236175872 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well maybe more than you'd've thought, but i don't see how that's an interesting observation :P < 1236175888 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION mentions level 46 again < 1236175902 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes back to his bookings -> < 1236176565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: want a challenge? try the Experimental set, "Impossible?" < 1236176584 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I've done that one, it's easy < 1236176591 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wut :D < 1236176597 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there wasn't anything special about it IIRC < 1236176602 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sure there is < 1236176602 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AFAICT, it's unfinished < 1236176604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's impossible < 1236176609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523 < 1236176610 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how did I not notice? < 1236176613 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi AnMaster < 1236176669 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : it's impossible <-- no, but you have to guess very luckily < 1236176707 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure I remember finding a magic wand on that level, which makes it trivial < 1236176720 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, maybe there's a hidden wand somewhere that you can only obtain in the first few seconds < 1236176772 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1236176777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you're thinking of Impultest < 1236176777 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but as AnMaster mentions, it's clearly possible if you get to the corner oxyds before the bolders do and they happen to be the right colour < 1236176777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just finished it < 1236176807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yep, you need to get to the one in the top right corner quickly < 1236176819 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and then you must get it correctly on the next block < 1236176822 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :after that: trivial < 1236176845 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you actually get two tries, you can hit a block on your way to the corner oxyd < 1236176851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, true < 1236176888 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not interested in puzzles that require dexterity or any kind of guesswork, and usually not ones that require exploring either, unless they happen to be fun for some reason, but a good puzzle will always be nicer anyway. < 1236176925 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i love exploring concepts, like how something moves, but i don't like searching the level for information, or physically exploring large areas < 1236176986 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well. i guess i just like to solve the things in my brain and not in the game. < 1236177303 0 :jix!n=jix@dyndsl-095-033-091-159.ewe-ip-backbone.de JOIN :#esoteric < 1236177451 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :What game is this about? ;o < 1236177473 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's basically a generic puzzle game < 1236177485 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which can emulate most of the others as long as you flavour them as involving marbles < 1236177494 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: "Great minds" and so on; I actually did weekly averages before you mentioned them. http://zem.fi/~fis/esoteric-2008-smooth.png < 1236177516 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it has dexterity-based, speed-based, knowledge-based, intelligence-based, and patience-based puzzles < 1236177524 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol seems to like the intelligence-based ones best < 1236177554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I'm basically the loudest person on average, then, if you discount AnMaster's 5 billion "Deewiant: boring thing about befunge" per day. < 1236177562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That matches my intuitive experience. :P < 1236177586 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Does this game have a name? < 1236177595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :FireFly: Enigma < 1236177607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.nongnu.org/enigma/ < 1236177615 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1236177663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: try the microban levels < 1236177693 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1236177697 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :I recognize this game < 1236177704 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :I think I've played it before < 1236177707 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pretty much everyone here does, somehow < 1236177835 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it seems me and psygnisfive take turns being on top < 1236177840 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm he isn't here < 1236177841 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nm < 1236177844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*groan* < 1236177885 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1236177904 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :microban < 1236177915 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe at some point i will < 1236178218 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Occasional visitors are more visible in other graphs. http://zem.fi/~fis/test.png has 2009 January (day-long windows, X-scale 1 hour per pixel, relative percentages of activity) and the fluxo invasion is very visible. < 1236178265 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Flexo, not fluxo. Anyway. < 1236178283 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A grid would be nice too. And some labels. < 1236178289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And a pony yo < 1236178343 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :who's flexo < 1236178344 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1236178350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a german guy < 1236178685 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Statistics are interesting < 1236178788 0 :BeholdMyGlory!n=arvid@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1236178812 0 :M0ny!n=Harmony@AToulouse-258-1-80-194.w90-60.abo.wanadoo.fr JOIN :#esoteric < 1236178972 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, we're certainly putting the ATTIC back in the stATisTICs. < 1236179210 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :We're putting the TITS back in staTIsTicS! < 1236179237 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I didn't want to be rude. < 1236179263 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(There are 23 women and 15 men in a conference. The women's cup sizes are: (etc). The men weight: (etc). How many tits are there?) < 1236179288 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If I only do the cumulative-activity-thingamajick but not the normalization inherent in the relative-activity-thing, the flexo invasion loses prominence: http://zem.fi/~fis/test2.png < 1236179358 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :... wtfbbq? < 1236179415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :activity graph. < 1236179719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :HOLY SHIT < 1236179721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : * (del) (cur) 16:29, 22 September 2006 . . Tom Duff (Talk | contribs) . . 513×385 (10,841 bytes) (The output of a sample EXPLOR program.) < 1236179724 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :--esolangs wiki < 1236179728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Tom Duff. < 1236179734 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :who is he? < 1236179740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ... Duff's Device. < 1236179746 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, wow < 1236179756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also wrote Unix10/Plan9's "rc" shell < 1236179761 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Not the same Tom Duff :P < 1236179775 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: no, it is < 1236179778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/User:Tom_Duff < 1236179784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :My wikipedia bio links to tom duff on wikipedia < 1236179812 0 :Mony!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236179815 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :*snaps* < 1236179830 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Was that your spine? < 1236179853 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's a godawful picture of him :P < 1236179858 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Or at least, I sure hope it is :P < 1236179862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Evil Tom Duff < 1236179876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, programmers aren't known for their beauty < 1236179881 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"Your femur is broken." "Broken as in 'not functioning properly'?" "Broken as in, 'there are 2 smaller femurs where you used to have one.'" "Hmm, 2 femurs. Will this give me super powers?" "If you consider the ability to writhe in pain a super power, then yes." < 1236179883 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does he have a beard? < 1236179887 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, the 'snap' just reminded me. < 1236179889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no < 1236179892 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's how we can tell if duff's device will stay popular < 1236179898 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as he doesn't, presumably it's falling out of fashion < 1236179907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think it never got into fashion < 1236179913 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, exactly < 1236179936 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: his favicon looks better http://www.tomduff.com/index.html < 1236179945 0 :Judofyr!n=Judofyr@c349BBF51.dhcp.bluecom.no JOIN :#esoteric < 1236179957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Sure. Here's a moderately recent picture of me sitting unshaven in my office scowling at my son, who was playing with the camera. At least I combed my hair. Do whatever you want with it. Tom Duff (talk) 05:53, 16 January 2008 (UTC) " < 1236179959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-talk:tom duff < 1236180082 0 :ais523!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1236180092 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1236180104 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wb me < 1236180114 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Firefox 3 /added/ support for Gopher :P < 1236180117 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's weird :P < 1236180128 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(Full support that is) < 1236180131 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IT CANNOT COMPETE WITH VONKEROR < 1236180134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or sth < 1236180323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So, I've thought up some definitions for IO-complete. < 1236180362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I-complete: The program can, at its will, accept linear text input from the user and then use that text to modify its internal state with complete differentiation of all characters in the alphabet. < 1236180368 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: does it do client-BF? < 1236180369 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :No? < 1236180375 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then it doesn't have full support < 1236180386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :O-complete: The program can, at its will, output linear text combined in any arbitrary way from its internal state. < 1236180388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Thoughts? < 1236180413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the usual definition is that it can produce any output that's a Turing-computable (or substitute other computational class here) function of its input < 1236180426 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in other words, that its input -> output processing computational class is the same as the computational class of the lang as a whole < 1236180429 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That doesn't handle interactive programs ala BF < 1236180444 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does it have to? < 1236180446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm basically trying to define the set of languages that, to the user, are indistinguishable from BF. < 1236180449 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1236180461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is basically the standard model with just stdin/stdout < 1236180465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We use "BF-complete" for that, I'd like to formalize the definitions < 1236180479 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in that case, you need to change it to cumulative input -> cumulative output, and allow the program to produce output before all the input is read < 1236180491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but I've already said some definitions < 1236180498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm just wondering if they're any good < 1236181125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder what lazy apl would be like < 1236181195 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :apart from awesome < 1236181749 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh look, Eric Schmidt slams Twitter with no more than a vague idea what it is. < 1236181801 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hm, no. Just a bad headline. < 1236181907 0 :dbc!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236182024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://imgur.com/3US8K.png Uhhh... < 1236182264 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1236182613 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :hey ehird < 1236182618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hello. < 1236182668 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1236182673 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is not ehird but says hi anyway < 1236182677 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :also, 'againt the wall' < 1236182682 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :was that intentional? :p < 1236182685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no idea < 1236182691 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not even sure if it was in the original proposal or not < 1236182694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes. also, you want ##nomic or /msg < 1236182707 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :no, this is ##nomic < 1236182716 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you're mistaken. < 1236182720 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :since ehird isn't in the other nomic channel < 1236182729 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm sure everyone else will appreciate that. < 1236182731 0 :ehird!unknown@unknown.invalid PART #esoteric :? < 1236182747 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :hehehe < 1236182760 0 :ehird!n=ehird@208.78.103.223 JOIN :#esoteric < 1236182851 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: but Wooble isn't an op here... < 1236183128 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :oh, is that the problem? < 1236183136 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I thought e was just being a jerk < 1236183145 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can we keep #esoteric to vaguely esoteric topics? < 1236183155 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you're trying to direct messages to me, IRC has a facility for that < 1236183177 0 :Hiato!n=1@dsl-245-24-250.telkomadsl.co.za JOIN :#esoteric < 1236183177 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :at the moment, I'm trying to direct messges to ehird and ais523 < 1236183184 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :as well as anyone else who is interested in nomic < 1236183189 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :IRC has a facility for that, too, but freenode blocks it < 1236183191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's a channel for that < 1236183198 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :which one? < 1236183200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see, people join channels they want traffic to do with < 1236183203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and leave ones they don't < 1236183204 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the syntax is /msg ehird,ais523 This is a message to send to two people < 1236183209 0 :Hiato1!n=1@dsl-245-24-250.telkomadsl.co.za JOIN :#esoteric < 1236183214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :generally, disrespecting this choice leads to people ignoring you < 1236183214 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[16:13] <-> ehird,comex> test < 1236183215 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[16:13] [407] PRIVMSG Too many recipients. Only 1 processed < 1236183224 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: except you're ehird < 1236183232 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, if you want to continue to be able to direct messages at me, I'll take the same course of action < 1236183234 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :and generally overreact to things < 1236183237 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you keep doing this < 1236183250 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: you want to talk to me, you play by my rules. simple enough < 1236183250 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ah well, i can just ignore you < 1236183274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that would solve both problems < 1236183274 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: why are you playing nomic if you don't want to talk about nomic? < 1236183288 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :who said I don't want to talk about nomic? I don't want to talk about nomic in irc in ##nomic. < 1236183297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Email me or something. Or use /msg. < 1236183308 0 :comexk!unknown@unknown.invalid PART #esoteric :? < 1236183320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :How will I deal with this loss. < 1236183478 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : ais523, should I put up something following the same implementation in C but that is sane < 1236183494 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think that may be a violation of the spirit of Deadfish. Or not. < 1236183560 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : Agh, I ran into GreyKnight -again- < 1236183576 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sure it's the same person? it's a fairly obvious nick... < 1236183604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :relatively < 1236183613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well,. < 1236183614 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not so much now. < 1236183621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: quite, though. < 1236183622 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course running into people on Agora, esolang and wikipedia isn't unheard of from before. < 1236183626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because it has information about his kilt. < 1236183637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't recall how I know he has a kilt from other sources < 1236183638 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but I do < 1236183665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, apparently he's a christian who has vowed, among other things, to "Refrain from cutting the hair on one's head". < 1236183667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :go figure. < 1236183692 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, christians don't have do vow that AFAIK, but presumably there's nothing to stop them vowing that if they want to < 1236183696 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1236183706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: part of the nazirite vow, apparently < 1236183709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :although that's a jewish thng < 1236183710 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*thing < 1236183720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is a good excuse to avoid cutting your head if you're a teen, I suppose < 1236183733 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what a sikh thing to do < 1236183861 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, hm ok < 1236183868 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : how does Deadfish behave on EOF? < 1236183887 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think there may be some bug there too... < 1236184170 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : and ais523, ihope (iirc), oerjan, everyone < 1236184185 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the rumors of my adminhood are _still_ exaggerated < 1236184210 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :me and keymaker are the only Esolang admins who are active with admin work, IIRC < 1236184218 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and we're only active with it when there's actual admin work to do < 1236184219 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# (diff) (hist) . . Esolang:Community Portal‎; 19:18 . . (+9) . . Zzo38 (Talk | contribs) (tunes.org logs are now listed in descending order of date) < 1236184223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :clever guy, my idea is indeed good. < 1236184223 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is nearly all cleaning up spam < 1236184232 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even tho I stole it from #concatenative < 1236184232 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and blocking the people responsible < 1236184250 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or more likely the zombies responsible < 1236184259 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Brains... < 1236184269 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a responsible zombie. Oh wait. < 1236184276 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^bf ,[.,]!This may not be a good channel to take brains into < 1236184276 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :This may not be a good channel to take brains into < 1236184280 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I had a sort-of-unique idea, based on INTERCAL and Forte. < 1236184284 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes? < 1236184296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Basically, it's all redefining language constructs. < 1236184307 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :clever < 1236184311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So, to terminate a loop, for instance, you change the loop end command into a nop. < 1236184313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Things like that. < 1236184317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And the whole language is based around that one operation. < 1236184341 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's how I normally terminate short loops in INTERCAL nowadays too, but your language would presumably go much further < 1236184355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1236184404 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I'm trying to figure out how to have actual computation if all you can do is remap constructs... < 1236184429 0 :Hiato!unknown@unknown.invalid QUIT :Connection timed out < 1236184437 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you may be able to use the constructs as a minsky machine < 1236184443 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Don't do "jump to the next line." < 1236184449 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Don't do "Don't do "jump to the next line."" < 1236184450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you need a nop then < 1236184457 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Remove a copy of Don't do from the preceding line < 1236184467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :10 goto 20 -> nop 20 ... < 1236184471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you need goto and nop there < 1236184476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's two more non-swap primitives < 1236184482 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1236184484 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i want to bake the computation into the swapping, somehow < 1236184489 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, nop is easily represented by 0 commands < 1236184496 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just replace a command with nothing < 1236184502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236184502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1236184509 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that might be a little hard to reverse, but I'm sure there's a way < 1236184523 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as for goto, you need some way not to fall off the end of the program < 1236184524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then with one more operator: "current remapped value of" < 1236184526 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we could do: < 1236184571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^10;^20/.^20;stuff. < 1236184575 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ is the current value of < 1236184579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :on its own in a statement, does nothing < 1236184581 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so we use it as line numbers < 1236184585 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what about ///? < 1236184588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :. is statement terminator, ; is subexpression terminator < 1236184589 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :your language is reminding me of that < 1236184595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :problem is, it just cancels out the ^20 < 1236184596 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not the stuff < 1236184599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so: < 1236184612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^10;[^20;?]/.^20;stuff. < 1236184619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erases the ^20 line < 1236184621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :more spacious: < 1236184630 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^10; [^20; ?] / . < 1236184632 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^20; stuff. < 1236184648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pretty sure that's tc. < 1236184668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the RHS of / is evaluated ofc < 1236184721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^10; [20;?] / ^[10;?]. < 1236184721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^20. < 1236184724 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think that's an imnp < 1236184725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :imp < 1236184726 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not sure < 1236184728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236184730 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1236184733 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can't use ? in a [] ofc < 1236184873 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : He's not here, but I'm sure that message will find him eventually. < 1236184881 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :LIES < 1236184929 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I forgot what I was doing. :( < 1236184939 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : Area-preserving affine transformations preserve both of these. < 1236184966 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Hey! < 1236184970 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what they do not preserve, however, are rectangles not aligned with the ellipse axes < 1236184988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What was I doing, ais523? < 1236184993 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :area-preserving affine transformations are rotations, reflections, translations, enlargements in one direction combined with an equal contraction in the other direction, shears... < 1236184999 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and lots of others, I expect < 1236185006 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: inventing an INTERCAL/Forte hybrid < 1236185021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No, no, I lost interest in that about half way through and returned to my previous doings, which was X. < 1236185023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What is X? < 1236185040 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you were discussing GreyKnight before that < 1236185063 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: but those are trivial to enlarge. < 1236185075 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :So we can ignore those. < 1236185079 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :kerlo: they are? < 1236185093 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Yes. Just rotate and enlarge them. < 1236185106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yeah, well, I didn't actually tell this channel. < 1236185108 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um no... < 1236185118 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: how am I meant to guess, then? < 1236185128 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I find it likely that those are the only area-preserving affine transformations. < 1236185129 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Telepathy. < 1236185139 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry, I'm fresh out of floating eye corpses < 1236185160 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :kerlo: well, combinations of those are clearly also area-preserving affine transformations < 1236185162 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you cannot rotate in an ellipse < 1236185199 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you have to change into a circle first, which destroys rectangles < 1236185245 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course i find it unlikely that a largest rectangle would _not_ be aligned with the axes, but it needs proof < 1236185536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gcc -E $* < 1236185540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pop quiz: Spot the fuck up. < 1236185606 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :something to do with quoting? < 1236185619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Nope, gcc will ignore non-.c files as "linker input" < 1236185635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :KICK ASS OR WHAT?!?!? < 1236185664 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's fixable < 1236185664 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :-x c < 1236185673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm just doing /usr/bin/cpp -no-traditional-cpp $* < 1236185720 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :-x c is a nice trick to know anyway < 1236185738 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :* ais523 glares at paste.eso-std.org < 1236185750 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait, eso-std.org exists again? < 1236185785 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WAIT WHAT THE FUCK, /usr/bin/cpp is a SHELL SCRIPT < 1236185788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that-is-not-right < 1236185792 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# Transitional front end to CCCP to make it behave like (Reiser) CCP: < 1236185793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# specifies -traditional < 1236185794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# doesn't search gcc-include < 1236185796 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# < 1236185798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# Copyright (c) 1990 The Regents of the University of California. < 1236185800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# All rights reserved. < 1236185803 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm apparently not < 1236185804 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ha ha ha ha ha ha ha ha ha ha ha ha what the flying fck < 1236185805 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*fuck < 1236185813 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: That's not right, is it. < 1236185852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Something* has shat all over my /usr/bin/cpp, methinks. < 1236185877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...nope, that's /Developer/usr/bin/cpp < 1236185891 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: they're trying to make it a killer app, i see < 1236185954 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is expecting bodily harm just about now < 1236185958 0 :ais523_!n=ais523@147.188.254.121 JOIN :#esoteric < 1236185967 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you can do whatever you want in an ellipse. < 1236185990 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :If you have a rectangle in an ellipse and their axes are aligned, that rectangle's corners do not all lie on the ellipse. < 1236185993 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION swats kerlo -----### < 1236185998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#!/bin/sh < 1236185998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# apple's cpp is broken... < 1236185999 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# Update 2009-03-04: FUCK YOU APPLE PIECES OF SHIT < 1236186002 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The evolution of a file header. < 1236186018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It works now. How unexpected. < 1236186032 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :It's easy enough to rotate a rectangle such that its two corners remain on the ellipse; you just have to scale it at the same time. < 1236186040 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :kerlo: by aligned i mean simply in direction < 1236186071 0 :ais523!unknown@unknown.invalid QUIT :Nick collision from services. < 1236186074 0 :ais523_!unknown@unknown.invalid NICK :ais523 < 1236186123 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Me too. < 1236186123 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :kerlo: while preserving area? < 1236186153 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :kerlo: oh wait you were missing a "not" < 1236186158 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or so i think < 1236186179 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Not while preserving area, no. < 1236186208 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :What I'm saying is that the biggest rectangle you can fit in an ellipse is aligne with the ellipse. < 1236186222 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :kerlo: needs proof < 1236186270 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well clearly that's the beautiful answer you'd expect. < 1236186289 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so why prove it and risk ruining it < 1236186293 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Suppose you have a rectangle that is in an ellipse and not aligned with the ellipse. It is possible to rotate the rectangle so that it is aligned with the elipse; upon doing so, it will be possible to make the rectangle bigger while remaining in the ellipse. Contradiction. Q.E.D. < 1236186302 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1236186305 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where's the proof :D < 1236186329 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :kerlo: it's the remaining in the ellipse part that needs some proof < 1236186366 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :You prove it, then. :-P < 1236186372 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :too lazy :D < 1236186380 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: adding enough formality will prove anything. < 1236186394 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kerlo: um, unwrap definitions and you'll probably have it directly < 1236186413 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :That's nice. < 1236186428 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i am assuming it would require some length calculations or something < 1236186450 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically you calculate the expression of the rectangle's area and find the zero of the derivative, prolly. < 1236186480 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and by that expression i mean f(x) : angle -> area < 1236186491 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :which may not be hard, but rather diminishes the elegance of transforming to a circle afterwards < 1236186511 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i have no idea about context, i just found kerlo's statement funny :P < 1236186517 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and now i need to go do a shoppe! < 1236186542 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: just don't get caught < 1236186598 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :onion rings! < 1236186601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!!! < 1236186602 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1236186633 0 :ais523!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1236186639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :How do you trap overflow on x86? < 1236186647 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :when onion rings, don't answer < 1236186697 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1236186701 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523 < 1236186705 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't suppose you would know: < 1236186706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :How do you trap overflow on x86? < 1236186714 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't know offhand < 1236186725 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but based on my experiences of x86, I'd guess "with difficulty" < 1236186725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can you even do it? < 1236187166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder how to allocate huge things (1gb) on the stack with alloca < 1236187178 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably you can't, is the stack that big? < 1236187203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i guess not. < 1236187224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wow, my malloc() returns surprisingly clean results. like 0x200000 < 1236187302 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: is there any way to expand the stack? < 1236187307 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :depends on the OS < 1236187321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsd < 1236187323 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you need to map in more memory in the address space it expands into < 1236187333 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I don't know whether that's possible or not on BSD < 1236187335 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nor how < 1236187343 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... are you working on that INTERCAL VM? < 1236187351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it sounds like it, based on what you're saying < 1236187351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not right now < 1236187444 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : Tom Duff. < 1236187459 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :he did quite a bit on the wiki on esolang history iirc < 1236187498 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :writing about pre-INTERCAL esolangs, IIRC < 1236187904 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so, how do you do it in linux? < 1236187927 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't know that either < 1236187931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1236188696 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm synchronicity < 1236188708 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: itym coincidence < 1236188712 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Grey Knight is on wp Did you Know < 1236188718 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whatev < 1236188731 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*knight < 1236188737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ha < 1236188768 0 :ais523!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1236188887 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh and the third one is about broken femurs, which were _also_ mentioned in the channel logs today :D < 1236188919 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1236188944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"The first time I saw a program written in Forth, I thought the developer was just making up the language as he went along. Then I discovered that he was." < 1236188949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : — reddit < 1236188955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1236189002 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that would apply to any language suitable for DSELs... < 1236189003 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :( http://www.reddit.com/r/programming/comments/8210z/forth_is_a_program_that_interfaces_keyboards_with/ ) < 1236189014 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er, EDSL? < 1236189021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ESDLs < 1236189022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but no < 1236189023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :forth is more fluid < 1236189024 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :same difference < 1236189032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can't get rid of lisp's parentheses, but you can turn forth into anything < 1236189051 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :sure you can get rid of lisp's parentheses < 1236189058 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not in r5rs. < 1236189059 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(interpret-my-language "................................................") < 1236189065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is not extending the language. < 1236189067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's not embedded. < 1236189113 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's embedded in a sense, you could call stuff from the outer scope from in there < 1236189121 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, it's really not. < 1236189126 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm the french term would have LSD in it, i'm sure < 1236189205 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Is there a sensible and generally accepted definition for what exactly a DSEL is anyway < 1236189229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :your put lol < 1236189271 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: er? < 1236189283 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I meant to say your butt lol. < 1236189286 0 :ais523!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1236189309 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1236189364 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ESDL gives all sorts of other meanings < 1236189377 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i meant EDSL < 1236189404 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh that actually gives a hit < 1236189406 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :DSEL is a buzzword < 1236189424 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although there are still other meanings < 1236189430 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it means, "I'm too cool for things like OOP but I still want my own acronyms" < 1236189478 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh DSEL is also defined < 1236189508 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ITCFTLOBISWMOA? < 1236189513 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's short for "acronym we cannot decide on the ordering of" < 1236189527 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AWCDOTOO sounds interesting, actually < 1236189551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what language-specific embedded domains are < 1236189614 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bah the french term for domain specific language is "Langage dédié" < 1236189646 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :clearly someone censored the s part < 1236190115 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1236190196 0 :jix_!n=jix@dyndsl-095-033-089-111.ewe-ip-backbone.de JOIN :#esoteric < 1236190385 0 :M0ny!unknown@unknown.invalid QUIT :"Quit" < 1236190519 0 :ais523!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1236190992 0 :jix!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236191933 0 :jix_!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1236192175 0 :jix!n=jix@dyndsl-095-033-034-036.ewe-ip-backbone.de JOIN :#esoteric < 1236193521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hi Deewiant < 1236193547 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yello < 1236193552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1236193578 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, see the comments I made directed at you during the past few weeks but that you never responded to < 1236193598 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :there was nothing worth responding to :-P < 1236193606 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yay, cfunge almost runs on BSD, or something < 1236193608 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :what should I say to that < 1236193820 0 :ais523!n=ais523@92-236-187-64.cable.ubr08.king.blueyonder.co.uk JOIN :#esoteric < 1236193906 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :FILE lacks a way to truncate files: yes, it does, complain to mike if you feel something should be done < 1236193917 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :nothing else, I guess < 1236194330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://drplokta.livejournal.com/109267.html < 1236194332 0 :jix_!n=jix@dyndsl-095-033-121-061.ewe-ip-backbone.de JOIN :#esoteric < 1236195190 0 :jix!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1236195756 0 :olsner!n=salparot@h-60-96.A163.priv.bahnhof.se JOIN :#esoteric < 1236196238 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so! < 1236196241 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm writing a Forth in JS. < 1236196248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Badly suited, you say? Quite so my good chap! < 1236196300 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :badly suited for forth, forsooth < 1236196356 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523 did a lot of interpreters in JS, I imagine he'd like it < 1236196386 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's because JS is a good lang for quick throwaway programs that you can easily show to other people < 1236196391 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :most people have a JS interp on them < 1236196401 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, it's by far my favourite lang for programming in on public terminals < 1236196410 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION picks his nose and pulls out a JS interp < 1236196447 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :'snot what you think, honestly < 1236196488 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1236196506 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i blame picasso < 1236196771 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :ACTION likes JS < 1236196798 0 :jix!n=jix@dyndsl-095-033-123-007.ewe-ip-backbone.de JOIN :#esoteric < 1236196890 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236196910 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION likes swatting FireFly -----### < 1236196918 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :ACTION dislikes swatters < 1236196938 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Is that a swat I see, or what? < 1236196946 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION confuses FireFly by making a JS swatter < 1236196952 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1236196971 0 :jix_!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1236197198 0 :jix!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1236197249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236197257 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how big should my stack/heap/dictionary be, I wonder. < 1236197266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, return stack can be smaller than data stack < 1236197272 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i onl yhave 64mb to work with here < 1236197284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dictionary will probably be tiny, let's say 5MB < 1236197285 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :why not more < 1236197294 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: you can't allocate too much with JS < 1236197296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it just fails silently < 1236197309 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Surely that depends on your interpreter < 1236197313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, duh < 1236197316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm running it in a browser < 1236197330 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Ah, that'd explain it now wouldn't it :-P < 1236197337 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Consider not doing so < 1236197352 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, that's the whole point < 1236197362 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Okay, fine then < 1236197516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dictionary 8MB < 1236197517 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :return stack 8MB < 1236197518 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data stack 16MB < 1236197520 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heap 32MB < 1236197522 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :seems reasonable to me < 1236197703 0 :clog!unknown@unknown.invalid QUIT :^C < 1236197703 0 :clog!unknown@unknown.invalid QUIT :ended < 1236197714 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1236197714 0 :clog!i=nef@bespin.org JOIN :#esoteric < 1236197721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... clog just got ^C'd? < 1236197723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wtf bbq < 1236197729 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nef is ALIVE?! < 1236197747 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Should he be dead? < 1236197764 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I haven't heard anything about him later than 2004 < 1236197817 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :20:16 ehird: I was starting to think clog was running totally autonomously there for a few years ... < 1236197817 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :20:16 nef: it was < 1236198042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and he's offline again < 1236198045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*poof* < 1236198388 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :which channel was that < 1236199271 0 :Hiato1!unknown@unknown.invalid QUIT :Connection timed out < 1236200243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: /mag < 1236200246 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/msg < 1236200787 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Grah, nul-terminated strings are so stupid. < 1236200894 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a bit too granular < 1236201066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :was that a pun < 1236201081 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, do you think it was groanular? < 1236201143 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'Nantero built a functioning carbon nanotube memory prototype 10 GB (10 × 230 bytes) array in 2004." < 1236201146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why did nobody tell me about this < 1236201151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i want one, now < 1236201354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236201363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why is memory measured in bytes if you address words with it < 1236201365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's just ridiculous. < 1236201470 0 :oerjan!unknown@unknown.invalid QUIT :"The time travelers said we should try to delay ehird finding it out as long as possible" < 1236201486 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : no seriously, maybe ais523 knows. < 1236201516 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's for advertising / comparison purpose < 1236201526 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :people doing that sort of thing use inappropriate units just because of inertia < 1236201532 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if everyone's using units, so do you < 1236201535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mm < 1236201542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i just, stupidly, did this: < 1236201544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :var mm = new Array(8388608); // 8MB < 1236201547 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :spot the bug < 1236201574 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... did you get the number wrong? < 1236201582 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or are arrays not declared like that < 1236201586 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, my javascript's got rusty < 1236201595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: memory is an array of words < 1236201601 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :8388608 is 8MB measured in _bytes_ < 1236201605 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1236201614 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, javascript arrays auto-extend anyway < 1236201623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, but in this case I'm trying to pre-allocate the whole heap < 1236201624 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so the bug won't be noticeable except in making things slightly less efficient < 1236201626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and that -over- allocates < 1236201639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :new Array(4194304) // this is correct < 1236201677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err, no < 1236201682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2097152 < 1236201683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ofc < 1236201933 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's not like we can know your word size here. < 1236201942 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a VM < 1236201946 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so 32-bit, so 4 bytes < 1236201994 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't think "VM" implies "32-bit". < 1236202021 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I know it doesn't! < 1236202028 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION writes a 31-bit Subleq interpreter < 1236202086 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I mean < 1236202089 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"your word size" < 1236202091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I control the word size < 1236202104 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, and we can't know what you control it to. < 1236202106 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The "so" in 32-bit is still misplaced < 1236202137 0 :tombom!unknown@unknown.invalid QUIT :Client Quit < 1236202218 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :I think C would be a very appropriate language for a Subleq interpreter. < 1236202239 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No, Forth. < 1236202257 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :All you do is allocate a chunk of memory and then use pointers. < 1236202264 0 :jix!n=jix@dyndsl-095-033-098-197.ewe-ip-backbone.de JOIN :#esoteric < 1236202267 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Forth cuts out the allocation step. < 1236202356 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Bonus: Let the Subleq programs refer to the locations of C functions, the stack, and so on. < 1236202375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Forth gives you that for free. < 1236202402 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Is there anything Forth can't do? < 1236202516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kerlo: Make you toast. < 1236202532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But, yeah, if you just use @ and ! you get the native machine/Forth memory. < 1236203071 0 :atrapado!n=abx@cm40083.red83-165.mundo-r.com JOIN :#esoteric < 1236203137 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :' < 1236203337 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh, turns out that incredibly terrible fail of mine was 87.5 percent :P < 1236203360 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: lol < 1236203370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: still angry about it? :P < 1236203452 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how could i not be angry about having 3 out of 41 ppl get a better score than me! < 1236203474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :87% would still count as 5/5 though right < 1236203514 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think so. < 1236203717 0 :jix!unknown@unknown.invalid QUIT :"..." < 1236205637 0 :comexk!n=comex@teklinks.org JOIN :#esoteric < 1236205666 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :So, anyone know how I can find out the CPU cache size and whether all my code will fit into it? < 1236205725 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it'll be on the datasheet for processors, which you should be able to get from the manufacturer, most give them away free < 1236205736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: are you optimizing Bayes? < 1236205738 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure if there's a way to work it out from the OS itself < 1236205771 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :not some embedded system, a nice big core 2 :p < 1236205781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what are you trying to do < 1236205796 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :you see, I got an assignment in java class to make a Morse Code translator as efficient as possible < 1236205809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm, the whole JVM would have to fit into the cache, then < 1236205814 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :after I decided I couldn't make it fast enough in java, I used JNI to implement it in C < 1236205827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I suspect you'll get deducted marks for that... < 1236205832 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :hey, it's java < 1236205832 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1236205835 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"as efficient as possible" is something you shouldn't say within range of an esoprogrammer < 1236205841 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523: except that's what I mean < 1236205852 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :though I don't want to write it in assembly (and I doubt I would gain much from that) < 1236205854 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comexk: is there any way to do Java with inline asm? < 1236205859 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's definitely no standard or sane way < 1236205863 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but surely there must be some way < 1236205863 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: he's using JNI < 1236205865 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :actually, there is a standard and a sane way < 1236205868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's just C<->Java interface < 1236205871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he's writing it in C < 1236205872 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236205873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then binding it to java < 1236205876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and claiming it's java < 1236205885 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I thought he was writing in java and compiling to C, and claiming it was java < 1236205887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thus getting his answer marked as wrong... < 1236205925 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :naah < 1236205933 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :any sane grader will mark it correct < 1236205934 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'s what I would do < 1236205947 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :it can be called from a java class just like any java code < 1236205948 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ANYWAY < 1236205949 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :don't care < 1236205951 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :did they state which java implementation had to be used? < 1236205952 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I want to optimize the c < 1236205965 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :using gcj rather than the jvm should save you a lot of time if you write the code to be properly optimisable < 1236205968 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"How can you optimize this Python application?" "I rewrote it all in C then bound the main to python, so now it looks like this: app.main()" < 1236205971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Uh, no." < 1236205972 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and only do things that translate easily into C < 1236205979 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ever heard of cython? < 1236205992 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: considering I told you about cython... < 1236205995 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plus, cython isn't python < 1236205996 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523: really, it compiles to native code? < 1236206000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its an extension of python < 1236206002 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: point < 1236206006 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I used it recently < 1236206009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comexk: yep < 1236206012 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :the native python MutableString implementation is hellslow < 1236206025 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I'm using JNI because I want efficiency. That's that. < 1236206025 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1236206040 0 :oklopol!n=nnscript@a91-153-121-248.elisa-laajakaista.fi JOIN :#esoteric < 1236206043 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :...because it allocates a new string every time your string is modified < 1236206085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: so use a list < 1236206099 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: and have a PyObject for every character in the string!? < 1236206108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why are you using python < 1236206110 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :naah, that was a perfect use case for Cython, which worked pretty well < 1236206110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just code it all in C < 1236206116 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :massive speed increase < 1236206123 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :as in, 20 minutes --> 20 seconds < 1236206130 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :(it used mutalestrings a lot) < 1236206134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you're writing in python and want a speed increase, start by rewriting the python interpreter because it's a shit naive bytecode interpreter < 1236206147 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: good point, people do that, too bad nob ody's actually made a good python interpreter < 1236206158 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :although 20 seconds is with psyco.full() < 1236206165 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :but the code isn't optimized for speed < 1236206169 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :the python is fairly naive < 1236206177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :python itself does not lend itself to efficiency < 1236206193 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :yeah, but you can, e.g., not create massive amounts of objects < 1236206217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you want to write in a HLL and get blazing efficiency, i'd use Scheme + Stalin < 1236206239 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :In a number of tests it has outperformed hand-written C, sometimes by a considerable margin. < 1236206242 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236206252 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :well < 1236206252 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.org/407681 < 1236206253 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or rather Ponzi, which would be like stalin without the huge limitations but I haven't written it yet. < 1236206264 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :tell me how that can be improved < 1236206266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: that's not optimized! < 1236206268 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :use a lookup table < 1236206292 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what would that do < 1236206298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :be fast. < 1236206303 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :lookup table of what? < 1236206304 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :hashes? < 1236206309 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :that would be slower < 1236206313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1236206313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :listen < 1236206321 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ACTION listens < 1236206322 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: key them by integers: a machine word can store 4 characters on a 32 bit machine < 1236206324 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :presumably because the Scheme programs are written better than the C-by-hand would be < 1236206331 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can actually do that < 1236206336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and compare them natively < 1236206341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with no overhead < 1236206347 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :hey, that's a good idea < 1236206349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lemme find the article showing how < 1236206364 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :forgot about that -_- < 1236206380 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comexk: the binary if/else if thing is slow in practice because modern processors are really quite bad at jumps compared to everything else < 1236206390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: http://www.stdlib.net/~colmmacc/2009/03/01/optimising-strlen/ < 1236206394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see "Method 4: word-wise checks" < 1236206397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the glibc code it links to < 1236206408 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :from that, you should be able to make an insanely fast lookup table version < 1236206410 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I've sen hellishly complex implementations of, say, memcpy < 1236206442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, on some processors, the best known memcpy implementation in asm is duff's device and copying 4 or 8 bytes at a time < 1236206444 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is pretty complex < 1236206456 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523: on ARM I've seen < 1236206462 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :first, try to use load multiple instructions to copy like 8 bytes at a time < 1236206465 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :then copy words < 1236206466 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :then copy bytes < 1236206469 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1236206475 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :and I had to disassemb le the function and see what it did < 1236206477 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1236206511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but yah, lookup table (nest them if you have keys longer than 4 bytes on 32-bit or 8 on 64-bit, ofc) of word-sized chunks of the string < 1236206513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :== insanely fast < 1236206521 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I don't know, are you sure that's faster? you'd have to check every combination linearly < 1236206526 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err, no < 1236206528 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean lookup table < 1236206529 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lookup table < 1236206544 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :luckily, all morse code characters fit in 32 bits < 1236206544 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :but < 1236206552 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: a hash table, but indexed with machine words < 1236206554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not hashes < 1236206557 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :though that runs into endian issues < 1236206557 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: also, mayhaps operate on java Strings, not char* < 1236206565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to avoid the conversion overhead < 1236206612 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: are you sure a hash table with only 26 entries would be faster than branching? < 1236206627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not hash table < 1236206631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you're not running any hash functions < 1236206632 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :not hash table < 1236206634 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1236206639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you're indexing on *((int *)str) < 1236206644 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :but that requires memory loads < 1236206650 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :doing it directly as in the pastie doesn't < 1236206655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: processors are terrible at branching. < 1236206660 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, yours accesses memory < 1236206663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s[0], s[1], s[2], ... < 1236206668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :at least this does one access < 1236206670 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yours does tons < 1236206712 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: only as many as necessary, but I meant you would have to access the table from memory < 1236206723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :store it as a constant, static array < 1236206727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then it'll go into the object file < 1236206731 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't make it not memory... < 1236206752 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comexk: a memory load on a bit of memory that was in cache anyway is really quite fast < 1236206771 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so the well-known trick is to store your lookup table in the same bit of memory in the program that's running < 1236206785 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can do that by using inline asm for dat commands < 1236206809 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what I'm suggesting is your method but slightly more insane, it's a special case of your method < 1236206814 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :that and casting bytes to ints limit me to i386 but that's okay I guess < 1236206824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, but I'd try mine first < 1236206825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then go to asm < 1236206826 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :it makes me nervous, since this is supposed to be portable java < 1236206835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: you failed by doing it in C anyway < 1236206838 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :but I guess there could be a pure c fallback < 1236206838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, you can be portable. < 1236206841 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: c is portable < 1236206843 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: endian < 1236206844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what's not portable about *((int*)s) < 1236206844 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, dat commands are relatively portable between architectures < 1236206850 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: endian < 1236206856 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: so, in you lookup table do < 1236206864 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*((int*)".-.-") < 1236206867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of 3485783457345 < 1236206872 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(in the literal) < 1236206872 0 :atrapado!unknown@unknown.invalid QUIT :"Abandonando" < 1236206877 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :does that actually work? < 1236206882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why not < 1236206901 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: you'll probably have to nest the tables < 1236206907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since there are morse code patterns longer than 4 bytes, right? < 1236206922 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :no < 1236206926 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1236206930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then that'll work fine < 1236206932 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :as I said, it's well suited for that < 1236206935 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :although 64-bit processors < 1236206944 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :only problem is that < 1236206947 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :what if you have < 1236206949 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the longest morse code pattern is 5 dots+dashes < 1236206954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: agh < 1236206956 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523: really? which one < 1236206956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :one off < 1236206960 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comexk: 5 < 1236206968 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :letters only. < 1236206974 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but notice that a dot/dash needn't store an entire byte < 1236206993 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :but there is a problem with a lookup table < 1236207001 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :if your letter is E < 1236207003 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :you might have < 1236207005 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :". --" < 1236207007 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :". . " < 1236207009 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :". .." < 1236207010 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1236207021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: well, you know the string length ,right? < 1236207024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a java String < 1236207028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so getting the length is O(1) < 1236207035 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :yes, but there are multiple letters < 1236207035 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then, just do < 1236207037 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :separated by spaces < 1236207038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(>>4)<<4 < 1236207043 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or w/e < 1236207047 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you get 0s instead of the rest < 1236207048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :before lookup < 1236207052 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: but some patterns are 4 characters < 1236207057 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: and? < 1236207069 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :so length has nothing to do with it < 1236207071 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I have to find the space < 1236207081 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :but I'm doing that anyway < 1236207082 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :so fine < 1236207083 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I'll do that < 1236207100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1236207101 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :other thing is < 1236207106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you find the space then there's no reason to do this < 1236207106 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I'm doing a binary search, aren't I? < 1236207112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because that's inefficient < 1236207117 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :*((char *) is portable but they wouldn't be in order in a different endian < 1236207124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s/char/int/ < 1236207127 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird:? < 1236207130 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1236207134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and that's why you don't put any endian-specific constants in < 1236207138 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't think you "get" this < 1236207146 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: the idea would be to have it pre-sorted < 1236207155 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :so I don't have to go through the table linearly < 1236207168 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've written efficient morse decoders before < 1236207171 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :well, let's try it < 1236207184 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the trick is to start with 1, and double every character you encounter, adding one if it's a dash not a dot < 1236207184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: ... < 1236207187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there is no table < 1236207189 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just an array < 1236207195 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and use the total as an index into an array that retrieves your character < 1236207201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you calculate all the values in words for the dotdashes < 1236207206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then modulo them all 26 < 1236207210 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and store them in an array, without the key < 1236207214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just the value < 1236207223 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what do you mean by "value" here? < 1236207234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the resulting letter < 1236207247 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: hmm? < 1236207252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like, static const char foo[] = "ZCBAFU..."; < 1236207257 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :my value might be very big, I can't have the _word_ as an index < 1236207270 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :yeah, and then I have another array of the words < 1236207282 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523's suggestion might be faster < 1236207284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do you know what a word is < 1236207284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x_x < 1236207297 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: four bytes, or two bytes sometimes < 1236207303 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :or eight sometimes :p < 1236207310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm really starting to doubt you actually understand the algorithm I'm trying to explain < 1236207315 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: < 1236207322 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: < 1236207328 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :u32[] keys < 1236207330 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :char[] values < 1236207334 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :look up in keys, use the index into values < 1236207340 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :if that's not it, you're not explaining clearly enough < 1236207341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... < 1236207343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fuck no. < 1236207354 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :then be clearer < 1236207357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :damn, I just wasted like 15 minutes attempting to explain that. have fun < 1236207384 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I don't think you know what you're talking about < 1236207401 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :remind me not to try and help you again < 1236207445 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :*sigh* < 1236207466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so hey, anyone want help that can understand english & technical terms and doesn't tell me I don't know what i'm talking about when they don't understand? < 1236207477 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: sure < 1236207485 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :excellent. how can I help you today. < 1236207530 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Я буду играть на прослушивании в следующий вторник, как мне лучше подготовится? < 1236207535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1236207552 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if the question was, "are you fat?", no. < 1236207568 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ah, nice < 1236207641 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1236207690 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1236207808 0 :Slereah!n=butt@ANantes-259-1-105-125.w92-139.abo.wanadoo.fr JOIN :#esoteric < 1236207999 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :so ais523, what were you saying about inline data? < 1236208011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it depended on my idea. < 1236208014 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which you've rejected < 1236208020 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :if so, I support your idea < 1236208029 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I merely think you failed to explain it clearly < 1236208032 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, the idea's you have an array with the possible translations < 1236208040 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a char array, probably < 1236208042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: you know how a hash table works? < 1236208049 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you work out a mathematical value from each dot-dash string < 1236208052 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's an array, where [hash%size] < 1236208054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is the value < 1236208056 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now, do the same < 1236208059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but with < 1236208060 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: this is not exactly a hash table < 1236208064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i know < 1236208066 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :definitely you don't want %26 < 1236208068 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm explaining it to him < 1236208071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, yes you do... < 1236208074 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you don't want %anything, in fact, you want a perfect hash < 1236208074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :otherwise your array is huge < 1236208077 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :no you don't, because you will have duplicates < 1236208079 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: 64 bytes? < 1236208079 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is perfect < 1236208081 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :however, I tested and %59 works < 1236208082 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't call that huge < 1236208086 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, fine < 1236208088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that isn't what i meant < 1236208100 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comexk: dividing by 59 is rather slow on a modern computer compared to other operations, apart from jumps < 1236208115 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523: really? so I would be better off with an evener number? < 1236208116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :use >> < 1236208120 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :power of 2 < 1236208133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the thing is < 1236208135 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not a perfect hash < 1236208136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not a hash < 1236208142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's the literal char data interpreted as a word < 1236208164 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it is a hash, per the definition of hash, it's just that it's a hash that doesn't contain a modulo interpretation whereas most do < 1236208168 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: oh, I wasn't doing it like that < 1236208174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's the whole idea < 1236208177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you skip the hashing step < 1236208180 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and just do *((int*)s) < 1236208185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's the whole key to why it's so fast < 1236208188 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was unrolled-looping over each character in the input < 1236208197 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :oh god unrolled < 1236208198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that's entirely missing the point < 1236208199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :add, shift, add, shift, etc < 1236208204 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that is different from your method < 1236208206 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that's not what I'm doing < 1236208207 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it may be faster < 1236208207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*((int*)s) reduces it to one memory read < 1236208220 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :5 adds and 4 shifts is 9 memory reads not 1, I agree < 1236208228 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on the other hand, I think 9 reads are faster than 1 integer divid < 1236208229 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yeah, so I have an int corresponding to four bytes, and unique codes correspond to unique values < 1236208230 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*divide < 1236208233 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: now what < 1236208235 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, but not >> < 1236208243 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, that's the trick < 1236208247 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you don't do a <<= 1; < 1236208248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so (*((int*)s))>>foo < 1236208249 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you do a += a; < 1236208252 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and a will be in a register < 1236208256 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's a one-cycle instruction < 1236208265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how does that help moduloing it < 1236208273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we're trying to fit it into a non-huge table < 1236208274 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you don't modulo, the numbers this way never end up more than 64 < 1236208276 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :problem is, I can't modulo by a power of two because then it'll just depend on the first bytesish < 1236208279 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you just have a 64-element table < 1236208286 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523: is that really faster than one modulo? < 1236208292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, does it use the (int*)s trick? < 1236208296 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: no < 1236208298 0 :Judofyr!unknown@unknown.invalid QUIT :Remote closed the connection < 1236208299 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it should < 1236208306 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why? that would make the numbers much too large < 1236208311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm relatively certain (75%) it'd be faster < 1236208316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so reduce them < 1236208319 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1236208322 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you preferred, you could use the int* trick then /multiply/ by a large number < 1236208323 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :is that faster than a single modulo? < 1236208327 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :maybe I can use a multiplication trick < 1236208330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ah, that'd be best < 1236208330 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that shifted all the bits to the bottom end of the number < 1236208338 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think repeated addition on bits may still be faster < 1236208338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(*(int*)s)<