2007-08-15 Swhack IRC Log

00:00:41 *** bjoern_ (n=bjoern@dslb-084-056-246-054.pools.arcor-ip.net) has joined #swhack
00:25:32 <kpreid> is there a 32-bit floating-point number which can't be represented as a 64-bit one?
00:27:40 <Arnia> http://en.wikipedia.org/wiki/User:Hanger65/Upper_Peninsula_War
00:43:21 <radii> kpreid: I think every IEEE 32-bit flaot is representable as a IEEE 64-bit float, because the formats are basically identical except for the number of bits available.
00:45:04 <radii> http://en.wikipedia.org/wiki/IEEE_754 is pretty informative.
00:52:01 *** tonybaloney (n=Tony@c-71-232-94-208.hsd1.ma.comcast.net) has joined #swhack
01:00:19 *** littledan (n=littleda@pool-96-233-18-115.bstnma.east.verizon.net) has joined #swhack
01:06:08 <kpreid> Hmm...
01:07:32 *** l7 has quit ("Lost terminal")
01:17:19 *** l7 (n=l7@evil-wire.org) has joined #swhack
01:32:49 <radii> kpreid: depending on how your platform defines the various NaNs it might be that some of them have no equivalents.
01:33:26 <kpreid> the platform in question is Java.
01:43:11 <perigrin> no no Java is always write once run anywhere ... can't be that it has platform incompatibilities.
01:51:20 *** l7_ (n=l7@evil-wire.org) has joined #swhack
01:56:50 *** alienbrain has quit (Remote closed the connection)
02:08:29 *** JibberJim has quit (Read error: 104 (Connection reset by peer))
02:08:47 *** tonybaloney has quit (Read error: 104 (Connection reset by peer))
02:09:45 * Mike_L got a job offer to write web apps in Maryland :D :D :D
02:15:37 <perigrin> this is something to dance about?
02:15:45 <Mike_L> it is
02:15:54 <Mike_L> I was dancing earlier, but am now under control
02:15:58 <perigrin> an offer to write web apps on the Moon ... I could see the dancing ...
02:16:01 *** jetscreamer (n=jetscrea@unaffiliated/jetscreamer) has joined #swhack
02:16:30 <Mike_L> they flew me Chicago -> Maryland for the interview
02:16:46 <Mike_L> and I guess it went OK :P
02:17:20 <Mike_L> but the salary is a little less than I had hoped for and I'm not sure how to ask for more
02:18:52 <Mike_L> and Amazon is offerring to interview me on the phone
02:24:42 * Mike_L explodes from excitement
02:26:55 *** stelt has quit (Read error: 110 (Connection timed out))
02:29:31 <Arnia> web apps? dancing? now a job to be a category theorist I could see as exciting
02:35:46 <Mike_L> Arnia: well, I'm not a category theorist yet
02:36:46 <bjoern_> all the more reason to dance about a job as category theorist.
02:43:29 *** littledan has quit ()
02:43:43 <Mike_L> but alas, I have no job prospects for category theorist
02:58:33 *** bpt (n=bpt@adsl-227-105-133.rmo.bellsouth.net) has joined #swhack
03:00:18 *** jetscreamer has quit ()
03:03:23 *** l7_ has quit ("Lost terminal")
03:06:48 *** |cripto3000| (n=cripto30@host-84-220-170-247.cust-adsl.tiscali.it) has joined #swhack
03:07:23 <bjoern_> .thesaurus incoming
03:07:25 <phenny> incoming synonyms: admission, appearance, beginning, bow, coming out*, entrance, entree, first step*, graduating, graduation, inauguration, incoming, initiation, introduction, launching, opener, presentation
03:07:37 <bjoern_> .thesaurus enter
03:07:39 <phenny> enter synonyms: access, arrive, barge in*, blow in*, break in, breeze in*, burst in, bust in*, butt in*, come, come in, crack, crawl, creep, crowd in*, drive in, drop in, fall into, gain entree, get in, go in, horn
03:07:43 <phenny> enter synonyms: in*, immigrate, infiltrate, ingress, insert, insinuate, introduce, intrude, invade, jump in, make way, move in, pass into, penetrate, pierce, pile in, pop in*, probe, rush in, slip, sneak, work in,
03:07:50 <bjoern_> .thesaurus entry
03:07:53 <phenny> entry synonyms: access, approach, avenue, door, doorway, entrance, foyer, gate, hall, ingress, ingression, inlet, lobby, opening, passage, passageway, portal, threshold, vestibule
03:07:58 <bjoern_> .thesaurus exit
03:08:01 <phenny> exit synonyms: avenue, door, egress, fire escape, gate, hole, opening, outlet, passage out, vent
03:08:36 <bjoern_> .thesaurus leave
03:08:38 <phenny> leave synonyms: OK, allowance, assent, authorization, concession, consent, dispensation, freedom, go-ahead*, green light*, liberty, permit, sanction, sufferance, tolerance
03:08:56 <bjoern_> .thesaurus successor
03:08:58 <phenny> successor synonyms: almsman, assignee, charity case, devisee, donee, grantee, heir, heiress, inheritor, legatee, payee, pensioner, possessor, receiver, recipient, stipendiary, successor
03:10:46 <bjoern_> If programmers controlled spoken languages, much more related words would have equal length.
03:11:09 <bjoern_> hmm many...
03:12:55 <perigrin> and the more commonly used words would be shorter
03:13:09 <perigrin> in both syllables and character count
03:14:39 *** perigrin has quit ("Leaving")
03:17:42 <Arnia> I'm reminded of speedtalk... oh and the foolishness of engineering natural languages
03:17:51 * Arnia glowers at the French
03:27:42 <Mike_L> http://www.theprodukkt.com/kkrieger <--- first-person shooter game with shadows, 5+ enemy types, 5 weapons, bump mapping, one large level, in 96 KB
03:28:04 <bjoern_> .wik .kkrieger
03:28:05 <phenny> ".kkrieger (from Krieger, German for warrior) is a first-person shooter computer game created by the German demogroup .theprodukkt (a former subdivision of Farbrausch) and won first place in the 96k game competition at Breakpoint in April 2004." - http://en.wikipedia.org/wiki/.kkrieger
03:28:30 *** dulanov (n=dulanov@ppp91-76-23-141.pppoe.mtu-net.ru) has joined #swhack
03:30:58 <bjoern_> .gc "what are your critix"
03:31:01 <phenny> "what are your critix": 2
03:31:16 <Mike_L> .gc "what are your citrix"
03:31:18 <phenny> "what are your citrix": 2
03:34:37 *** l7 has quit ("Lost terminal")
03:42:35 *** jetscreamer (n=jetscrea@unaffiliated/jetscreamer) has joined #swhack
03:44:14 *** l7 (n=l7@evil-wire.org) has joined #swhack
04:01:15 *** mah has quit (Nick collision from services.)
04:04:23 *** mah_ (n=marcel@p548544C0.dip.t-dialin.net) has joined #swhack
04:04:41 * bjoern_ watches http://www.pouet.net/prod.php?which=30244 - stunned
04:04:58 <bjoern_> I wonder why I didn't get to watch the breakpoint demos when they were released, hmm...
04:05:13 *** mah_ is now known as mah
04:05:29 <bjoern_> whoa and I missed Assembly 2007!
04:07:28 * bjoern_ downloads ftp://ftp.scene.org/pub/parties/2007/assembly07/browser_demo/
04:09:13 <bjoern_> "suhero" is unhealthy and ... terrible!
04:10:48 <bjoern_> 100101100 isn't too bad and somewhat funny
04:11:31 <bjoern_> I don't have .dcr software installed for finding_numbers_3
04:12:36 <bjoern_> music in pastel_penetration does not work in opera here
04:12:50 <bjoern_> hmm it's using svg apparently!
04:14:34 <bjoern_> well maybe it's okay for a first demo
04:16:33 <bjoern_> "adhdtv" is quite good
04:18:03 <bjoern_> very good effects for a browser demo
04:19:02 <bjoern_> the effect summary at the end is a bit overdone though
04:19:51 <Mike_L> bjoern_: what's a browser demo?
04:20:19 <bjoern_> a demo that runs inside the browser rather than as platform application
04:20:23 <bjoern_> .wik demoscene
04:20:26 <phenny> "The demoscene is a computer art subculture that specializes itself on producing demos, non-interactive audio-visual presentations, which are run real-time on a computer." - http://en.wikipedia.org/wiki/Demoscene
04:20:50 <Mike_L> so they run via flash?
04:21:12 <bjoern_> flash, html, svg, javascript, macromedia director, other plugins, ...
04:21:34 <bjoern_> "continuum" seems nice but runs a bit too slow on my hardware
04:21:56 <Mike_L> ok
04:22:10 <Arnia> processing, etc. too
04:23:32 <Mike_L> so why are they zip files? Shouldn't they run from the site?
04:25:34 <bjoern_> Well the purpose of ftp.scene.org is to facilitate easy downloading
04:26:52 <bjoern_> I am not too impressed by "oral_tentacle"
04:27:13 <bjoern_> "pangea_ultima" has decent effects so far
04:28:19 <bjoern_> hmm "pixtures" requires Silverlight which I haven't installed here
04:34:08 <bjoern_> I think I like http://pouet.net/prod.php?which=18329 and http://pouet.net/prod.php?which=13039 better than the ones this year...
04:37:33 <Mike_L> it's stupid to require someone to download the file, unzip it, and then open the appropriate html file
04:38:08 <Mike_L> also, depending on the user's browser, the local file might run in a more privileged environment than one from a remote server
04:50:33 *** jetscreamer has quit ()
05:31:49 *** l7 has quit ("Lost terminal")
05:34:16 *** l7 (n=l7@evil-wire.org) has joined #swhack
05:38:09 <bjoern_> .weather EDFM
05:38:12 <phenny> EDFM at 7:20 (05:20Z): Clear ☼, 21℃, 1009mb, Light breeze 9km/h (5kt) (↑)
05:38:23 <est> .weather SFO
05:38:33 <bjoern_> you have to use the ICAO code
05:38:39 <bjoern_> @wunder SFO
05:38:41 <supybot> bjoern_: The current temperature in San Francisco, California is 57.2°F (9:56 PM PDT on August 14, 2007). Conditions: Scattered Clouds. Humidity: 83%. Dew Point: 51.8°F. Pressure: 29.93 in 1013 hPa (Rising).
05:38:45 <bjoern_> or another bot
05:38:49 <est> :)
06:20:35 *** JibberJim (n=jim@colbert-ext.lid.theveniceproject.com) has joined #swhack
07:18:58 <sbp> yo
07:19:00 <phenny> sbp: 14 Aug 21:48Z <d8uv> tell sbp http://en.wikipedia.org/wiki/Wikipedia:Unusual_articles
07:19:05 <phenny> sbp: 14 Aug 22:19Z <tav> ask sbp what happened to phenny in #esp ?
07:19:06 <sbp> ... IN A ROBOT
07:20:29 *** l7_ (n=l7@evil-wire.org) has joined #swhack
07:21:00 *** idickinson (n=ijd@82-133-64-253.dyn.gotadsl.co.uk) has joined #swhack
07:22:58 <bjoern_> Yeah, I'm still laughing about it...
07:23:04 * bjoern_ giggles
07:24:10 <sbp> .weather EGLL
07:24:11 <sbp> lovely day out
07:24:13 <phenny> EGLL at 7:50 (06:50Z): Cover Unknown, ?, ?mb, Moderate breeze 15kt (↑)
07:24:17 <sbp> see?!
07:24:28 <bjoern_> I do!
07:26:25 <sbp> .weather EGLL
07:26:29 <phenny> EGLL at 8:20 (07:20Z): Scattered, 18℃, 995mb, Light Rain, Moderate breeze 13kt (↑)
07:26:33 <sbp> winz
07:27:12 <sbp> (though we can't be certain I fixed it since it changed, I'm fairly confident I have)
07:27:22 <bjoern_> WHAT ARE YOUR CRITIX!?!
07:27:50 <sbp> my critics are bjoern_, laplink, d8uv. all the regular faces
07:28:31 *** libby (n=libby@colbert-ext.lid.theveniceproject.com) has joined #swhack
07:28:32 <bjoern_> MORONS
07:31:28 <sbp> their CRITIXINGS are made from lemon sherbert
07:33:38 <bjoern_> .w bare
07:33:40 <phenny> bare v. 1: Lay bare
07:33:43 <phenny> bare a. 1: Completely unclothed
07:33:47 <phenny> bare a. 2: Lacking in amplitude or quantity.
07:34:36 <bjoern_> .g extraordinary
07:34:38 <phenny> bjoern_: http://en.wikipedia.org/wiki/Extraordinary_rendition
07:35:08 <bjoern_> .wik Googlepedia
07:35:10 <phenny> "Googlepedia is a free software extension to the Web browser, Mozilla Firefox, that displays relevant articles from the free Web-based encyclopedia, Wikipedia, on Google search engine results pages." - http://en.wikipedia.org/wiki/Googlepedia
07:35:15 <bjoern_> NOT GOOD NAME !
07:35:51 <bjoern_> "Turns internal Wikipedia links into Google search links"!?!
07:37:53 *** l7 has quit ("Lost terminal")
07:38:38 <sbp> "In 2001, Orbital Development invoiced NASA for having landed a probe on asteroid Eros, and a legal battle ensues."
07:38:39 <sbp> - http://en.wikipedia.org/wiki/Extraterrestrial_real_estate
07:39:09 <bjoern_> THIS ARTICLE HAS MULTIPLE ISSUES!
07:39:41 <bjoern_> "Ownership of empty space can be thought of as a different issue to that of land ownership on extra-terrestrial bodies, because of its emptiness, the difficulty of defining its bounds, and the difficulty of keeping anything within it."
07:39:42 <sbp> scrollable multiple issues, too!
07:40:54 *** l7 (n=l7@evil-wire.org) has joined #swhack
07:40:54 <Monty> But what does l7 have to do with the price of fish?
07:40:56 <phenny> Hush there, Monty.
07:40:57 <Monty> "caaarlo
07:41:00 <sbp> MOON
07:41:01 *** l7 has quit (Client Quit)
07:41:05 <bjoern_> "
07:41:26 <sbp> .calc 3.793×107 km² in acres
07:41:29 <phenny> sbp: Sorry, no result.
07:41:30 <sbp> oh, bitch
07:41:36 <sbp> .calc 3.793×10**7 km² in acres
07:41:39 <phenny> sbp: Sorry, no result.
07:41:42 <sbp> oh, bitch
07:41:45 <bjoern_> LOL UNICODE
07:41:48 <sbp> .calc 3.793×10**7 km square in acres
07:41:51 <phenny> sbp: Sorry, no result.
07:41:59 <sbp> oh, bitch
07:42:06 <sbp> .calc 3.793×10**7 square km in acres
07:42:09 <phenny> 3.79300 × (10 ** 7) (square km) = 9.37270712e9 acres
07:42:48 <sbp> .calc 9.37270712e9 acres / 5 billion
07:42:50 <phenny> (9.37270712e9 acres) / 5 billion = 7 586 m2
07:42:56 <sbp> .calc 9.37270712e9 acres / 5 billion IN ACRES
07:42:59 <phenny> sbp: Sorry, no result.
07:43:03 <sbp> oh, bitch
07:43:11 <sbp> .calc 9.37270712e9 / 5 billion
07:43:14 <phenny> 9.37270712e9 / 5 billion = 1.87454142
07:43:25 <sbp> alright. 1.87 moon acres for me, please!
07:43:44 <bjoern_> .calc 9.37270712e9 / 5 billion acres
07:43:47 <phenny> (9.37270712e9/5 billion) acres = 7 586 m2
07:43:57 <bjoern_> hmm
07:44:26 <bjoern_> .calc 5 m2 in cm2
07:44:29 <phenny> bjoern_: Sorry, no result.
07:44:43 * laplink critiques sbp…
07:44:46 *** l7 (n=l7@evil-wire.org) has joined #swhack
07:45:05 <laplink> What am I critic'ing you about again?
07:45:05 <sbp> hypercritiqueal
07:45:21 <bjoern_> hypercritiquealality
07:45:26 <laplink> ah
07:45:37 <sbp> just anything, really
07:45:46 <sbp> I want my moon acres
07:45:52 <laplink> Your fat, stupid, and nobody likes you!
07:45:53 <bjoern_> GO GET THEM
07:46:10 <sbp> my fat, stupid, and nobody likes me? that's cool
07:46:23 <sbp> though I don't like it if it's fat, stupid, and nobody
07:46:23 *** l7__ (n=l7@evil-wire.org) has joined #swhack
07:46:24 <bjoern_> BUT DARE YOU NOT CROSS MY VAST EMPTY SPACE SURROUNDING IT
07:46:44 <sbp> bjoern_: those are empty documents, no?
07:46:52 <bjoern_> THATS A SECRET
07:46:53 <sbp> serialised into (non-white)space
07:46:54 <sbp> hehe
07:47:12 <bjoern_> .gc "classified empty documents"
07:47:15 <phenny> "classified empty documents": 0
07:47:16 <sbp> the CIA might extraterroristialise you now for making me divulge it
07:47:31 <sbp> wow, a treble-pun
07:48:57 <bjoern_> "Marina Bai (born 1965) is a Russian astrologer who sued NASA in July, 2005 for US$300-310 million. She claimed that the Deep Impact NASA probe that crashed into the Tempel 1 comet will interfere with her astrology work because the comet would no longer be the same, claiming it "ruins the natural balance of forces in the universe"."
07:49:24 <bjoern_> If Yoda filed a lawsuit every time he senses a perturbance in the force...
07:51:17 <sbp> she is not, at least, claiming to be Yoda
07:51:48 <bjoern_> claim to be Yoda, she does not?
07:51:49 <sbp> did she win the case?
07:51:56 <sbp> shouldn't she give it to all of us, if she wins?
07:51:59 <bjoern_> Wikipedia does not say
07:52:10 <bjoern_> .wik Marina Bai
07:52:13 <phenny> "Marina Bai (born 1965) is a Russian astrologer who sued NASA in July, 2005 for US$300-310 million." - http://en.wikipedia.org/wiki/Marina_Bai
07:52:22 <sbp> .calc ($310million / 5billion) USD in GBP
07:52:25 <phenny> sbp: Sorry, no result.
07:52:30 <sbp> OH BITCH
07:52:37 <sbp> .calc (310million / 5billion) USD in GBP
07:52:38 <phenny> (310 million / 5 billion) * U.S. dollar = 0.0307250112 British pounds
07:52:46 <Arnia> We all get thruppence!
07:52:47 <sbp> I demand my moon acres and my 3p!
07:52:50 <sbp> hehe
07:52:58 <sbp> 'ello!
07:53:06 <Arnia> hey
07:54:02 <Arnia> I just started writing a paper with the title 'Towards a Grand Unified Semantics' before realising just how ridiculous it is to try and write a paper like that
07:54:05 <bjoern_> .g win32 IceWeasel
07:54:07 <phenny> bjoern_: http://www.geticeweasel.org/useragent/
07:54:28 <Arnia> Well, I've been writing it for more than a week or at least the broad outline
07:54:35 <Arnia> The scope kind of ran away with me
07:55:21 <bjoern_> IE considers http://www.geticeweasel.org/ to be utf-7 encoded...
07:55:48 <bjoern_> hmm http://www.geticeweasel.org/mosaic/
07:56:25 <sbp> GUS
07:56:46 <sbp> <Arnia> I started out considering Yadda Yadda in perl6, see...
07:57:31 <bjoern_> .gc "exploded source tree"
07:57:35 <phenny> "exploded source tree": 1,320
07:57:41 <Arnia> :p
07:59:11 <bjoern_> GUS is Gravis Ultra Sound.
07:59:16 <bjoern_> Everybody knows that.
07:59:43 *** l7_ has quit ("Lost terminal")
08:00:30 * Arnia tries to think of a way of writing this report and fails
08:00:41 <Arnia> Just have to talk it through with William
08:02:10 *** schepers has quit ("Trillian (http://www.ceruleanstudios.com")
08:03:06 <sbp> .wik GUS
08:03:09 <phenny> "Gravis Ultrasound — a sound card for PCs" - http://en.wikipedia.org/wiki/GUS
08:07:59 <sbp> he's right, you know
08:08:20 <Arnia> indeed
08:10:01 <sbp> http://en.wikipedia.org/wiki/Cardrona_Bra_Fence
08:10:31 <bjoern_> So you are taking the unusual articles tour?
08:10:49 *** schepers (n=schepers@cpe-069-134-123-228.nc.res.rr.com) has joined #swhack
08:11:29 <sbp> yeah
08:11:37 <sbp> cf. d8uv's note to me
08:12:05 * bjoern_ took it yesterday, as it was linked from the article you told d8uv about...
08:14:28 <bjoern_> hmm Alexander crossed the 5000 lines of code mark...
08:18:58 <sbp> awesome: http://en.wikipedia.org/wiki/Tree_That_Owns_Itself
08:19:02 <sbp> yeah, I figured you did
08:23:14 *** l7__ has quit ("Lost terminal")
08:29:48 <sbp> "Number systems in which 0.999… is strictly less than 1 can be constructed, but only outside the standard real number system which is used in elementary mathematics." - http://en.wikipedia.org/wiki/0.999...
08:37:12 <sbp> "In meteorology, −0 can be used to indicate a temperature which is below zero (Fahrenheit or Celsius, depending on which scale is in use), which is often important for statistical reasons, but is not low enough to be rounded to −1. An example of such a temperature is −0.2 degrees; this cannot be listed as zero degrees, because temperatures of zero degrees are obviously not considered below zero." - http://en.wikipedia.org/wiki/%E2%88%920_%28number%29
08:39:26 *** dulanov has quit (Remote closed the connection)
08:40:06 <Arnia> .g surreal numbers
08:40:08 <phenny> Arnia: http://en.wikipedia.org/wiki/Surreal_number
08:42:09 <sbp> ooh at http://en.wikipedia.org/wiki/Markovian_parallax_denigrate
08:43:18 <bjoern_> From: Susan_Lindauer@WORF.UWSP.EDU (Chris Brokerage)
08:43:59 <sbp> 'Dick Assman himself, who took all this ribbing good-naturedly, pronounces his name "uzman".'
08:44:00 <sbp> - http://en.wikipedia.org/wiki/Dick_Assman
08:58:49 * bjoern_ wonders what happens if you add the smallest number > 0 to the largest number < 1 ...
08:59:25 <bjoern_> ... IN A ROBOT.
08:59:56 <bjoern_> Monty, stats
08:59:58 <Monty> I have a vocabulary of 3632 words, 21 reminders pending, 61 outstanding welcome messages, seen 13234 different nicks and I was born on Wed May 02 09:23:13 BST 2007
09:05:51 <laplink> .gc "IN A ROBOT"
09:05:54 <phenny> "IN A ROBOT": 169,000
09:06:47 <bjoern_> @google "IN A ROBOT"
09:06:49 <supybot> bjoern_: Search took 0.10 seconds: 'Mighty Mouse' robot frees stuck radiation source: <http://www.sandia.gov/news-center/news-releases/2005/manuf-tech-robotics/mm-robot.html>; The A. L. I. C. E. Artificial Intelligence Foundation - chatbot ...: <http://www.alicebot.org/>; In a Wired South Korea, Robots Will Feel Right at Home - New York ...: (1 more message)
09:07:35 <sbp> http://en.wikipedia.org/wiki/Ann_Hodges
09:07:54 <laplink> Wikidiving?
09:08:13 <bjoern_> "The United States Air Force sent a helicopter to take the meteorite"
09:08:18 <bjoern_> thieves!
09:08:53 <sbp> lisppaste2: pointer?
09:08:56 <sbp> PLEASE
09:09:04 <sbp> lisppaste2: url?
09:09:04 <lisppaste2> To use the lisppaste bot, visit http://paste.lisp.org/new/swhack and enter your paste.
09:09:32 <lisppaste2> bjoern_ pasted "oh not lisppaste2 chatting again" at http://paste.lisp.org/display/46167
09:10:52 <lisppaste2> Monty annotated #46167 with "... IN A ROBOT" at http://paste.lisp.org/display/46167#1
09:10:53 <Monty> What does that suggest to you ?
09:12:35 <sbp> !
09:16:09 <sbp> http://en.wikipedia.org/wiki/Erotic_art_in_Pompeii_and_Herculaneum
09:16:31 <bjoern_> with pix
09:16:57 <bjoern_> http://en.wikipedia.org/wiki/Image:PompeiiBrickII.jpg ...
09:29:34 <bjoern_> @wunder Heidelberg
09:29:38 <supybot> bjoern_: Temperature: 79.7°F / 26.5°C | Humidity: 62% | Pressure: 29.77in / 1008.0hPa | Conditions: Clear | Wind Direction: SW | Wind Speed: 6.0mph / 9.7km/h | Updated: 11:03 AM CEST; Chance of Rain. High:84 ° F. / 29 ° C.; Chance of Rain. Low:69 ° F. / 21 ° C.; Chance of Rain. High:71 ° F. / 22 ° C.; Scattered Clouds. Low:55 ° F. / 13 ° C.; Chance of Rain. High:69 ° F. / 21 ° C.; Scattered Clouds. Low:53 ° F. (1 more message)
09:30:05 <sbp> @title http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=pubmed&dopt=Abstract&list_uids=8108024
09:30:09 <supybot> sbp: The photic sneeze reflex as a risk factor to comba...[Mil Med. 1993] - PubMed Result
09:30:18 <sbp> (combat pilots)
09:30:36 <bjoern_> .web http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=pubmed&dopt=Abstract&list_uids=8108024
09:30:38 <phenny> bjoern_: ""
09:30:54 <bjoern_> thanks phenny
09:30:55 <sbp> http://en.wikipedia.org/wiki/Pykrete is awesome
09:30:56 <phenny> You're welcome.
09:32:22 *** karamba38 has quit (Remote closed the connection)
09:32:59 <bjoern_> "The bullet ricochetted off the block, grazing the trouser leg of Admiral Ernest King and ending up in the wall. The Admiral was impressed by Mountbatten's unorthodox demonstration. [citation needed]"
09:33:49 <sbp> phenny: tell crschmidt http://en.wikipedia.org/wiki/Schmidt_Sting_Pain_Index
09:33:51 <phenny> sbp: I'll pass that on when crschmidt is around.
09:33:53 <sbp> hehe
09:34:34 <bjoern_> "Sweat bee - ... A tiny spark has singed a single hair on your arm"
09:35:08 <sbp> .wik Mary Tofts
09:35:11 <phenny> "Mary Tofts (born c. 1701) was a maidservant from Godalming, England, who in 1726 became the subject of considerable controversy when she hoaxed doctors into believing that she had given birth to at least sixteen rabbits." - http://en.wikipedia.org/wiki/Mary_Tofts
09:35:35 <bjoern_> ...
09:36:29 *** libby has quit (Connection reset by peer)
09:37:34 <sbp> it gets even better
09:37:35 <sbp> [[[
09:37:36 <sbp> Lord Hervey told Henry Fox that:
09:37:36 <sbp> Every creature in town, both men and women, have been to see and feel her: the perpetual emotions, noises and rumblings in her Belly are something prodigious; all the eminent physicians, surgeons and man-midwives in London are there Day and Night to watch her next production.[4]
09:37:36 <sbp> Sir Richard Manningham eventually exposed the birthings as a hoax after a porter admitted smuggling a rabbit into Mary's chamber. Tofts was forced to admit on 7 December 1726 that she had manually inserted dead rabbits into her vagina and then allowed them to be removed as if she were giving birth.
09:37:40 <sbp> ]]]
09:37:53 *** sbp changed the topic to: ""Tofts was forced to admit on 7 December 1726 that she had manually inserted dead rabbits into her vagina and then allowed them to be removed as if she were giving birth.""
09:38:06 <sbp> WE FORCE YOU TO ADMIT THIS
09:43:20 <bjoern_> ... IN A ROBOT.
09:44:46 <sbp> :-)
09:44:51 *** chris2 (n=chris@p5B16C218.dip0.t-ipconnect.de) has joined #swhack
09:44:51 <Monty> But what does chris2 have to do with the price of fish?
09:44:54 <phenny> Hush there, Monty.
09:44:54 <Monty> :s
09:46:07 <chris2> dead rabbits, price of fish, what kind of sicko channel is this turning into? :-P
09:46:33 <laplink> Turning into?
09:47:14 <laplink> Did you think we were joking about the rotting corpse that once was your potential political career?
09:47:35 <bjoern_> We now have two weather bots.
09:47:55 <bjoern_> .gc unicode-infested
09:47:57 <phenny> unicode-infested: 1
09:48:12 <laplink> And anyone knows just one such is enough to garner very uncomfortable questions from The Sun…
09:49:22 * laplink obsesses over the anyone/everyone useage for a bit…
09:49:58 * laplink tries to explain it away as a .no-ism…
09:50:05 * laplink fails…
09:52:26 <bjoern_> .gc allones
09:52:28 <phenny> allones: 278,000
09:52:34 *** libby (n=libby@colbert-ext.lid.theveniceproject.com) has joined #swhack
09:52:39 <bjoern_> there. solution.
09:56:54 <sbp> http://en.wikipedia.org/wiki/Granfalloon
09:57:49 *** dulanov (n=dulanov@mail.festo.ru) has joined #swhack
10:01:22 <deltab> sbp: wow, what a coincidence; I discovered this two days ago: http://ineradicablestain.com/toy.html
10:01:34 *** trotek has quit (Connection timed out)
10:01:52 <deltab> nice punctuational pun
10:04:24 <sbp> oh man. yes indeed
10:04:40 <sbp> did you do the join the dots?
10:04:52 <sbp> [[[
10:04:52 <sbp> Lakatos claimed that he was actually expounding Popper's ideas, which had themselves developed over time. He contrasted Popper0, the crude falsificationist, who existed only in the minds of critics and followers who had not understood Popper's writings, Popper1, the author of what Popper actually wrote, and Popper2, who was supposed to be Popper as reinterpreted by his pupil Lakatos, though many commentators believe that Popper2 just is Lakatos.
10:04:57 <sbp> ]]] - http://en.wikipedia.org/wiki/Imre_Lakatos
10:09:15 <deltab> sbp: yes; it depicts both coney and cunny
10:12:00 <deltab> Arnia: Desperately Seeking Subsumption
10:12:35 *** trotek (n=tro@pwned.biz) has joined #swhack
10:14:15 <sbp> well put
10:28:13 *** dulanov has quit (Remote closed the connection)
10:29:31 <sbp> wow, "The /Nature/ controversy" in http://en.wikipedia.org/wiki/Water_memory is interesting
10:29:56 <bjoern_> "U.S. to Expand Domestic Use Of Spy Satellites" - http://online.wsj.com/article/SB118714764716998275.html
10:30:21 <bjoern_> You'd wonder why they didn't do that since long ago. Oh, right, it's forbidden...
10:40:53 *** dulanov (n=dulanov@mail.festo.ru) has joined #swhack
10:41:22 *** dulanov has quit (Remote closed the connection)
10:42:20 *** moeffju[ZzZz] is now known as moeffju
10:49:19 *** tav_ has quit ()
11:00:48 <sbp> hmm: http://serc.carleton.edu/microbelife/topics/nanobes/index.html
11:07:00 <bjoern_> "Nasdaq is set to launch tomorrow what its executives are calling one of the most significant developments on Wall Street in decades -- a private stock market for super-wealthy investors." - http://www.washingtonpost.com/wp-dyn/content/article/2007/08/13/AR2007081301170.html
11:08:48 <bjoern_> "The boom in private money has become so important to the financial system that major investment banks, including Goldman Sachs, Merrill Lynch, Lehman Brothers and Citigroup are setting up rival private stock markets of their own. But none will be as large as Portal, which will list the shares of about 500 firms on its first day of trading."
11:10:40 <bjoern_> @title http://www.reuters.com/article/newsOne/idUST13970120070815
11:10:41 <supybot> bjoern_: Biker fails to notice missing leg | U.S. | Reuters
11:12:52 *** stelt (n=chatzill@195-241-210-86.dsl.ip.tiscali.nl) has joined #swhack
11:14:49 <bjoern_> "The United States has decided to designate Iran's Revolutionary Guard Corps, the country's 125,000-strong elite military branch, as a "specially designated global terrorist," according to U.S. officials, a move that allows Washington to target the group's business operations and finances." -- http://www.washingtonpost.com/wp-dyn/content/article/2007/08/14/AR2007081401662_pf.html
11:15:10 *** danja_ (n=danja@host182-220-static.104-80-b.business.telecomitalia.it) has joined #swhack
11:15:35 <Arnia> global?
11:16:47 <bjoern_> Well yes, they are on the globe, like most of you filthy humans.
11:17:44 * Arnia sniffs
11:17:48 <Arnia> Yeah, need a shower
11:17:49 <Arnia> brb
11:19:18 <bjoern_> If you feel dirty every time the U.S... well have you considered becoming a merman?
11:21:55 <Arnia> I'd have to get one of those plastic waterproof versions of the books I read
11:23:53 <bjoern_> @internet whois 132.185.240.120
11:23:54 <supybot> bjoern_: Error: <domain> must be a domain, not a hostname.
11:23:58 <bjoern_> pfft
11:24:03 <sbp> HAHAHA PWNED
11:24:15 <sbp> @supybot--
11:25:53 <bjoern_> It should just use whois.bofh.de as host; it'll relay the query to the right server...
11:28:45 <sbp> "Xianxingzhe A Chinese robot, according to the Japanese, that will save its country from corporate capitalism with its crotch cannon."
11:31:22 <sbp> [[[
11:31:22 <sbp> The Livermore-Pleasanton Fire Department welcomes visitors to come and see the bulb, but makes no guarantee that officers will be on duty to let them in; if officers are unavailable, visitors are encouraged to simply view it through the window.
11:31:31 <sbp> ]]] - http://en.wikipedia.org/wiki/Centennial_Light
11:33:52 <sbp> http://en.wikipedia.org/wiki/Knork
11:35:50 <bjoern_> .g "A Chinese robot, according to the Japanese, that will"
11:35:55 <phenny> bjoern_: http://www.grupthink.com/topic/index.php5?id=364&page=4
11:49:30 <sbp> wow: http://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html
11:51:05 <bjoern_> That's proof that finding the shortest path != finding the shortest talk.
11:51:54 <bjoern_> .cp impl
11:51:57 <phenny> 2EA6: CJK RADICAL SIMPLIFIED HALF TREE TRUNK (⺦)
11:52:00 <phenny> 2EB0: CJK RADICAL C-SIMPLIFIED SILK (⺰)
11:52:04 <phenny> 2EC5: CJK RADICAL C-SIMPLIFIED SEE (⻅) [...]
11:52:21 <bjoern_> Help! I'm trapped in a SIMPLIFIED HALF TREE TRUNK!
11:53:02 <bjoern_> .cp ^2EF1
11:53:04 <phenny> 2EF1: CJK RADICAL TURTLE (⻱)
11:53:12 <sbp> the radical turtle
11:53:20 <bjoern_> ... IN A ROBOT.
11:54:14 <bjoern_> .cp ^(03e0|20ac)
11:54:24 <phenny> 03E0: GREEK LETTER SAMPI (Ϡ)
11:54:25 <phenny> 20AC: EURO SIGN (€)
11:55:11 <sbp> hehe. you've spent 5000 lines on Alexander
11:55:22 <sbp> [[[
11:55:23 <sbp> it is only a small step to measuring "programmer productivity" in terms of "number of lines of code produced per month". This is a very costly measuring unit because it encourages the writing of insipid code, but today I am less interested in how foolish a unit it is from even a pure business point of view. My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom
11:55:23 <sbp> is so foolish as to book that count on the wrong side of the ledger.
11:55:31 <sbp> ]]] - the awesome article I just linked
11:55:32 <sbp> READ IT
11:55:40 <sbp> (yes, you!)
11:57:21 <sbp> "(The effort of using machines to mimic the human mind has always struck me as rather silly: I'd rather use them to mimic something better.)"
11:57:42 <bjoern_> .swhackcount sbp
11:57:44 <bjoern_> .swhackcount bjoern_
11:58:21 <phenny> bjoern_: 271,164 words
11:58:21 <phenny> sbp: 2,149,998 words
11:58:28 <sbp> woo
11:58:39 <sbp> .swhackcount sbp
11:58:44 <phenny> sbp: 2,150,005 words
11:58:48 <sbp> hehe
11:59:02 <bjoern_> good World Wide Chatting is not programming.
11:59:03 <sbp> .swhackcount sbp
11:59:03 <bjoern_> OR IS IT!
11:59:08 <phenny> sbp: 2,150,012 words
11:59:21 <sbp> seems to be going up oddly quickly
11:59:28 <bjoern_> .swhackcount bjoern_
11:59:30 <bjoern_> foo
11:59:31 <bjoern_> .swhackcount bjoern_
11:59:32 <phenny> bjoern_: 271,182 words
11:59:35 <phenny> bjoern_: 271,189 words
12:00:05 <bjoern_> Oddly, not just your stats...
12:00:41 * bjoern_ 'd guess it's counting the date stamp...
12:01:38 <sbp> proobably
12:06:54 *** Talliesin has quit ("Leaving.")
12:09:02 <xower> Use vs. Mention?
12:09:15 <xower> .swhackcount xover
12:09:16 <phenny> xover: 164,217 words
12:09:18 <xower> .swhackcount xower
12:09:19 <phenny> xower: 960 words
12:09:24 <xower> .swhackcount laplink
12:09:25 <phenny> laplink: 19,295 words
12:09:38 <xower> .swhackcount laplink
12:09:41 <phenny> laplink: 19,295 words
12:10:04 <xower> .swhackcount xover
12:10:09 <phenny> xover: 164,217 words
12:10:24 <xower> Hmm, no, unless the delay is greater then I would expect.
12:10:27 <xower> .swhackcount laplink
12:10:31 <phenny> laplink: 19,295 words
12:10:40 <xower> ...which it may well be.
12:10:59 <xower> Oh, hey, no. That pesky 'w'.
12:11:07 <xower> .swhackcount xower
12:11:31 <phenny> xower: 1,008 words
12:11:36 <xower> .swhackcount xower
12:11:39 <phenny> xower: 1,012 words
12:12:42 <xower> Two words.
12:12:45 <xower> .swhackcount xower
12:12:50 <phenny> xower: 1,020 words
12:13:21 <xower> Three words then?
12:13:25 <xower> .swhackcount xower
12:13:26 <phenny> xower: 1,029 words
12:14:00 <xower> Hmm. Gets two extra words per line then. So timestamp plus the nick seems probable.
12:31:11 * sbp investigates
12:34:24 <sbp> .swhackcount sbp
12:34:27 <phenny> sbp: 1,691,516 words
12:34:30 <sbp> .swhackcount sbp
12:34:33 <phenny> sbp: 1,691,518 words
12:34:52 <sbp> strimmed out the timestamp and nickname with sed -r
12:36:01 <sbp> any programming-by-contract people about?
12:36:02 <sbp> Arnia? kpreid?
12:37:14 <kpreid> wha?
12:37:32 <kpreid> I don't yet grok the notion
12:37:54 <kpreid> I mean, I don't know exactly what such people mean by "contract". I have a vague idea though
12:38:03 <kpreid> and I oughta look at it
12:39:25 *** JibberJim has quit (Read error: 104 (Connection reset by peer))
12:40:31 *** mah has quit (Nick collision from services.)
12:40:55 <sbp> right. I was just chatting about the idea with Dave Pawson
12:41:08 <sbp> having read Dijkstra's article about provability and the importance of provability
12:41:17 <sbp> and programming-by-contract is linked with provability...
12:41:26 <sbp> but it seems wrong to me. take http://www.wayforward.net/pycontract/
12:41:43 <sbp> that shows pre- and post- conditions for a sort(...) function
12:41:57 <sbp> now, if they're complete then they should form a complete test suite for the sort(...) function...
12:42:08 <sbp> but that doesn't *prove* that the sort function works for all inputs
12:42:17 <sbp> it merely tests that it worked, when you give it some particular input
12:42:41 <bjoern_> How would you expect a machine to prove another machine functions correctly?
12:42:48 <bjoern_> .wik Halting problem
12:42:49 <phenny> "Alan Turing proved in 1936 that a general algorithm to solve the halting problem for all possible program-input pairs cannot exist." - http://en.wikipedia.org/wiki/Halting_problem
12:43:04 <sbp> which seems bafflingly silly. I mean, as something that spots whether sort(...) is broken or not that's great. real swell. but it doesn't seem to be have any bearing on provability
12:43:37 *** mah_ (n=marcel@p548553B4.dip.t-dialin.net) has joined #swhack
12:44:17 <sbp> bjoern_: well my impression was that there are formal systems and you can create proofs in them, and that Dijkstra was drawing not just an analogy with proofs but saying that programming languages should effectively be proofs
12:44:26 *** mah_ is now known as mah
12:44:58 * bjoern_ ponders that discussion might be a bit too abstract and goes back to his graph algorithms
12:45:02 <sbp> I was thinking that perhaps programming-by-contract was an example of some kind of method/construct/idea/whatever that matches with that
12:45:22 <sbp> bjoern_: well the idea I'm aiming at is the program that doesn't need tests
12:45:39 <sbp> because you've proved that it works for all inputs
12:45:47 <sbp> under all conditions, etc.
12:46:23 <sbp> presumably on the trivial level this is quite easy
12:46:34 <bjoern_> .wik Formal methods
12:46:35 <phenny> "In computer science and software engineering, formal methods are mathematically-based techniques for the specification, development and verification of software and hardware systems.[1] The use of formal methods for software and hardware design is motivated by the [...]" - http://en.wikipedia.org/wiki/Formal_methods
12:47:06 <sbp> ooh, thanks
12:47:14 *** JibberJim (n=jim@colbert-ext.lid.theveniceproject.com) has joined #swhack
12:47:20 <kpreid> sbp: again, I know about zilch, but it sounds like the single point of trouble is that you think contracts imply provability
12:47:35 <kpreid> sbp: so, discard that assumption and I see nothing to complain about :)
12:48:28 <bjoern_> .wik Design by contract
12:48:28 <phenny> "Design by contract, DBC or Programming by contract is a methodology for designing computer software." - http://en.wikipedia.org/wiki/Design_by_contract
12:48:28 <bjoern_> might also help
12:49:10 <bjoern_> They are related in some sense, but they don't have that strong a relationship, I would say.
12:51:14 <sbp> "Axiomatic semantics, in which the meaning of the system is expressed in terms of preconditions and postconditions which are true before and after the system performs a task, respectively. Proponents note the connection to classical logic; critics note that such semantics never really describe what a system does (merely what is true before and afterwards)."
12:51:19 <sbp> - exactly what I was saying
12:51:34 <sbp> kpreid: I don't think that contracts imply provability. that was my issue
12:51:51 <kpreid> I'm sorry, I don't understand that
12:52:04 <kpreid> your issue is that you think they should?
12:52:15 <sbp> kpreid: I had seen contracts mentioned in regards to provability, though not explicitly, and when I looked into the nature of contracts it seemed to me that they had nothing whatsoever to do with provability
12:52:23 <sbp> and now both you and Wikipedia justify my concern
12:52:43 <kpreid> I'd like to point out again that I don't know anything about the subject.
12:52:55 <sbp> nope, if you and Wikipedia say it then it must be true
12:53:26 <sbp> post: assertedby(__return__, kpreid) && assertedby(__return__, Wikipedia)
12:53:29 <kpreid> hee
12:54:48 <bjoern_> Well if you take your http://www.wayforward.net/pycontract/ example, you should not look as the post conditions as test code,
12:55:11 <bjoern_> but rather as input to whatever system you'd ask to prove the correctness of the implementation.
12:55:28 <kpreid> hmmmm
12:55:31 <bjoern_> if you can show that the postconditions are met regardless of the input, you have proven the implementation's correctness.
12:55:34 <kpreid> that's interesting
12:55:46 <kpreid> the contract is not the *proof*, but the *goal*
12:56:09 <kpreid> one thing I should learn more about is proof-carrying code
12:56:16 <kpreid> why? because it would go great with E
12:56:48 *** DrBacchus (n=rbowen@apache/committer/rbowen) has joined #swhack
12:56:56 <sbp> I'm wrestling basically with Dijkstra's point that programs should be taught and based on proofs. the question I have is how that maps to high-level programming languages... perhaps it wasn't as much of a concern when he wrote it in 1988 because there were no high-level programming languages? :-)
12:57:09 <sbp> there, utility trumps provability
12:57:36 <sbp> we don't give a shit if things break from time to time. something working 99% of the time is better than something unwritten that works 100% of the time
12:58:01 <kpreid> I don't think "high-level" is unamenable to proof
12:58:15 <sbp> well, that's my underlying question. is it?
12:58:36 <kpreid> given the right language, it ought to be moreso, because you can abstract and prove the components independently. ...right?
12:58:39 <sbp> it would be nice to prove that emacs is never going to crash and take my work with it
12:58:46 * kpreid really ought to dig into this
12:59:03 <kpreid> sbp: if you write emacs in a memory-safe language, that's a proof (by construction)
12:59:04 <sbp> yeah, I think I was thinking along those same lines
12:59:09 <kpreid> er, that's not right
12:59:22 *** Talliesin (n=Talliesi@83.70.80.115) has joined #swhack
12:59:25 <kpreid> proof-by-construction is where you demonstrate Xes exist by showing an X
12:59:30 <kpreid> (I think)
12:59:47 <sbp> my thought process was: perl6 seems to be abstracting stuff out into components like parrot, trying to make all programming languages dialect of one particular form of bytecode, so perhaps as things are getting in some sense more generalised and better understood then they can also be more formalised?
12:59:51 <bjoern_> Well, one way to put it might be to say that contract and implementation are equivalent. the implementation behaves correctly "if and only if" pre/post conditions hold.
13:00:12 <kpreid> what I mean is: if you use a memory-safe language, the program can't "crash" in that sense because it is made out of compositions of components that can't crash
13:00:17 <sbp> I don't think so. I mean in memory safe languages you can do os.remove() and stuff no?
13:00:21 <kpreid> then of course we have high-level errors...
13:00:24 <sbp> you can assign an empty string to a buffer
13:00:35 <kpreid> right. it's a narrow definition of crash
13:00:42 <sbp> ah, I guess these are what you call high-level errors. yeah
13:00:47 <sbp> well I'm less concerned about the low-level errors
13:00:56 <sbp> I mean, my power supply could get interrupted
13:00:58 <kpreid> so...I don't think *anyone* knows how to solve *that* problem -- yet
13:01:09 <sbp> the problem of high-level errors, you mean?
13:01:21 <sbp> high-level errors are the ones I have more power over
13:01:35 <sbp> I can write an editor, but I can't rewrite my OS
13:01:38 <bjoern_> like COSMIC RADITION
13:01:49 <sbp> yeah. cosmic rays flipping bits is hard to guard against
13:02:12 <bjoern_> well if they are not HIGH LEVEL than I don't know what is!
13:02:22 <sbp> oh. hehe
13:02:30 <sbp> you and your directional conceits!
13:02:40 <sbp> Ptolemy is the one who made north be up
13:02:42 <sbp> no one else
13:02:48 <sbp> what's to say the sky isn't down?
13:02:48 <sbp> eh? eh?
13:03:23 <bjoern_> How can the sky fall down on us if it's down already!?!
13:03:29 <kpreid> sbp: well, ECC memory :)
13:03:38 <sbp> who said it could fall down? Ptolemy again?
13:03:59 * bjoern_ GRABS for this Thomas Paine QUOTE COLLECTION
13:04:12 <sbp> ooh, ECC memory. hadn't heard of that
13:04:34 <sbp> it's all a Ptolemaic-Painean conspiracy with you, isn't it?
13:06:30 <bjoern_> Only one of them can be trusted. Here is why:
13:06:32 <bjoern_> .wik Ptolemäus
13:06:32 <phenny> "Claudius Ptolemaeus (Greek: Κλαύδιος Πτολεμαῖος; ca. 90 – ca. 168 AD), known in English as Ptolemy, was an Alexandrian mathematician, geographer, astronomer, and astrologer in Roman Egypt." - http://en.wikipedia.org/wiki/Ptolemäus
13:07:13 <bjoern_> Evil people lack umlauts in their names.
13:07:19 <sbp> ah!
13:07:27 <sbp> is an etymological fada enough?
13:07:56 <bjoern_> I shall ask the UMLAUTUNGEHEUR when I next see them.
13:08:54 * bjoern_ wonders whether google is broken or he got the name wrong
13:09:28 <bjoern_> unwik has the umlaut monster, hmm
13:10:16 <bjoern_> .swhack Umlautungeheuer
13:10:28 <phenny> bjoern_: http://swhack.com/logs/2006-10-08#T09-42-51
13:10:34 <bjoern_> AH! Missing E
13:10:55 <bjoern_> ZOMG
13:11:07 <bjoern_> now, where was I ...
13:12:21 <bjoern_> ooh they now have a series on Freaky German Stuff
13:13:27 <bjoern_> "Varying geography"
13:14:54 <bjoern_> http://uncyclopedia.org/wiki/German_grammar#Verbs_and_Sentence_Structure
13:20:17 <sbp> kpreid: http://inamidst.com/whits/2007/08#provability
13:20:46 <kpreid> hmm...
13:20:54 <kpreid> .wn niggle
13:20:56 <phenny> niggle v. 1: Worry unnecessarily or excessively
13:20:58 <phenny> niggle v. 2: Argue over petty things.
13:21:03 <sbp> "Verbs go where you basically want them to go in a sentence."
13:21:09 <kpreid> not a noun?
13:21:15 <kpreid> okay, I have a petty thing
13:21:20 <sbp> so in German that'd be "Go verbs where you go basically want them to in a sentence."?
13:21:25 *** deltab has quit (Read error: 110 (Connection timed out))
13:21:31 <kpreid> given a choice, I'd rather be “Kevin Reid”
13:21:46 <kpreid> kpreid is a usernameism which stuck
13:22:01 <sbp> not petty at all. fixed
13:22:09 * bjoern_ was pondering the refernces to Mannheim...
13:22:16 <kpreid> call me kpreid or Kevin Reid, but not K.P.Reid
13:22:31 <sbp> FIXED
13:22:42 <kpreid> I should clarify: I don't dislike 'kpreid'.
13:22:58 <sbp> so...
13:23:02 <sbp> kpreid = like
13:23:06 <sbp> Kevin Reid = like
13:23:10 <sbp> K.P. Reid = dislike
13:23:11 <sbp> ?
13:23:18 <bjoern_> A key point though is that you dont really want to know what a system does, so long as it does what you want it to.
13:23:31 <kpreid> also, who's Dave Pawson?
13:23:34 <kpreid> yes
13:23:44 <sbp> bjoern_: yeah. if you're proving *the wrong thing*, then you're fucked
13:24:01 <sbp> but that's even more high-level than what I'm considering here. I'll bet there are approaches for it though
13:24:05 <sbp> especially in fields like HCI etc.
13:24:11 <sbp> kpreid: a guy I know from my WAI days
13:24:15 <sbp> he was in WAI PF with me
13:24:35 <sbp> and subsequently he seems to have taken a shine to various RDF matters
13:24:35 <sbp> so I still chat with him about those things, and others
13:24:43 *** dulanov (n=dulanov@mail.festo.ru) has joined #swhack
13:24:58 <kpreid> also, my point about not proofs, but goals, didn't get in there :)
13:25:30 <sbp> I will add that to a subsequent post
13:25:50 <bjoern_> I'd much rather say, pre: re is a regex; post: re2 is the shortest regex accepting the same language as re...
13:25:54 <kpreid> I just think that "it's not connected" is, well, false
13:26:10 <kpreid> now that I understand what is meant by contract
13:26:42 <kpreid> it is true that the contract is not a proof; but it is a formal specification of *something to prove*
13:31:31 <bjoern_> "Britain's worst-performing train company has hired a poet to soothe the tempers of its frustrated customers." - http://www.timesonline.co.uk/tol/news/uk/article2253768.ece
13:31:45 <sbp> alright, http://inamidst.com/whits/2007/08#N151324 is the followup
13:32:10 <sbp> I'll modify it to contain the something to prove point
13:32:23 <kpreid> that's what I mean by goal
13:32:34 <kpreid> I'm not certain that's the absolutely correct bit
13:32:42 <kpreid> that which the proof is of
13:32:54 <kpreid> what you set out to prove
13:33:05 <sbp> uploaded the modification
13:33:21 <sbp> (I added: 'In other words, he says, "it is true that the contract is not a proof; but it is a formal specification of something to prove". So it's something which is useful to the act of proof, just in an orthogonal direction.')
13:33:45 <sbp> changing it's to programming-by-contract is...
13:33:48 <kpreid> then, if you write something else, can you prove *its* contract/desired-properties using what has been proven about the components
13:36:14 <sbp> .gc "Яцѕѕіаи Gгаммаг"
13:36:17 <phenny> "Яцѕѕіаи Gгаммаг": 3
13:36:42 <sbp> "German Grammar from by raping a dog the key can NOT be found from"
13:37:00 *** mah has quit (Remote closed the connection)
13:40:28 <sbp> hmm, thinking about the editor example is actually kinda productive
13:40:46 <sbp> a subset of being error free w.r.t. an editor is that it doesn't lose my data
13:41:06 <sbp> and by "lose my data", I mean the original file that it's editing and any changes I make to that file within the editor itself
13:41:11 <bjoern_> Well as far "They merely test the sort(...) function every time you feed it some input." goes, you have to read the code as *saying* something rather than doing something. "Given x, f(x) = y". It specifies what it means for the function to work correctly. If you don't specify that, it's not meaningful to prove the actual implementation correct or incorrect.
13:41:31 <sbp> bjoern_: yeah, but it doesn't actually do that at all
13:41:46 <sbp> it doesn't guarantee that the code in the sort(...) function satisfies those constraints
13:42:03 <sbp> in kpreid's parlance, it doesn't guarantee that the goals are met
13:42:13 <sbp> because, well, it's not a proof. it just facilitates the making of a proof
13:42:44 <kpreid> re "any changes" ...
13:42:49 <kpreid> that bleeds into UI
13:42:50 <sbp> so this corresponds to Level 0 in http://en.wikipedia.org/wiki/Formal_methods
13:42:56 <sbp> which is the crappiest of the formal methods
13:43:14 <sbp> kpreid: how so?
13:43:50 <kpreid> sbp: if typing control-spacebar is "close file without saving", well, then, the editor did what you asked it to do
13:44:07 <sbp> aha. aye
13:44:12 <kpreid> though...
13:44:22 <sbp> cf. the evils of Command+Q
13:44:30 <kpreid> so what you want is an editor with a proof that it *retains* all changes up to a certain point
13:44:31 <sbp> which I remember discussing on #swig a while ago
13:44:41 <bjoern_> .gc "George Wanker"
13:44:43 <kpreid> that is, it does not throw out undo data just because you closed the window
13:44:44 <phenny> "George Wanker": 2,730
13:44:44 <sbp> exactly
13:44:48 <kpreid> ...or the application
13:45:02 <sbp> that's what I was thinking. every time you use it, it backs up your input file and stores every single change that you make as well to disc immediately
13:45:09 <kpreid> cue editor undo unified with revision control discussion
13:45:23 <sbp> now, all you need to do is prove that the revision control works
13:45:59 <sbp> which might be quite trivial, if you think about the case of backing up the file
13:46:05 <sbp> because that might be a single instruction
13:46:27 <kpreid> ah, but what happens when the revision counter exceeds the allowable file name length?
13:46:40 <sbp> heh, heh
13:46:48 <sbp> low-level problem
13:46:52 <sbp> can't rewrite the OS
13:47:17 <sbp> that's what I mean. you've eliminated all bugs in the domain for which you're responsible
13:47:55 <sbp> if I write an editor, I want to believe that everything that I am responsible for is bug free
13:48:17 <sbp> inasmuch as I come up with the requirements, however. one of my biggest of which is preserving information...
13:48:22 <kpreid> ah, but if you use a buggy library?
13:48:31 <sbp> hmm, I guess that's a grey area
13:48:41 <kpreid> hmm
13:48:59 <sbp> depends how easy it is to find out that it's buggy
13:49:04 <kpreid> Ideal World sez: library comes with a proof of desired properties. so your editor won't run with the new version which lost one of them
13:49:09 <sbp> if I have to read every single line of code, that's not really feasible
13:49:21 <sbp> ooh, that'd be nice
13:50:30 <sbp> I tend to think that code like emacs, python, etc. is so bulletproof because it's popular
13:50:38 <sbp> and hence has a huge amount of *realistic* testing
13:51:28 *** mah_ (n=marcel@p54855EB3.dip.t-dialin.net) has joined #swhack
13:51:37 <sbp> so the kinds of behaviours that emacs has been subjected to exactly models the usage of emacs, because it *is* the usage of emacs. millions of people will have opened a simple file in emacs, so we're quite confident that that works
13:52:13 <sbp> whereas only a few people may have tried out arcane-wacky-odd-function in it, so we can be less sure that works. overall the reliability of the code is proportional to the amount of users
13:52:15 *** mah_ is now known as mah
13:52:21 <bjoern_> Perl is bulletproof because you can simply run all cpan module's test code in reasonable time to tell any relevant adverse effect of a change...
13:52:23 <sbp> moreover, it's a *perceived* reliability, which is quite important
13:52:27 <kpreid> re "Meeting your requirements is irrelevant if your requirements happen to be wrong or useless in the first place. This is, I suppose, an even higher-level form of bug,"
13:52:37 <bjoern_> ... IN A ROBOT. cf. cpan test bots.
13:52:53 <kpreid> I think this is in fact similar to most, if not "bugs", then software revision
13:53:29 <kpreid> what you wrote it to do turns out not to be what needs to be done
13:53:41 <kpreid> we just call it a bug when the what-needs-to-be-done is an "oh, duh, of course" sort of thing rather than "the requirements changed AGAIN?!"
13:53:56 <sbp> heh, yeah
13:54:05 <sbp> so it's more like a parabug perhaps
13:54:16 <kpreid> so, in the ideal contract&proof&whatever world,
13:55:14 <kpreid> these things are detected early because the subcomponent's proven properties turn out to be inadequate to prove the supercomponent's desired properties
13:55:24 <kpreid> (or, even, the contrary is proven)
13:55:33 <sbp> modular proof!
13:56:17 <kpreid> I thought I'd gotten that idea out before
13:56:54 <kpreid> now, Thing I Don't Understand:
13:57:22 <kpreid> from what I've heard, efforts at proof of practical programs have failed 'because the programs are too large'
13:57:50 <kpreid> i.e. implying that modularity is not feasible or not adequate
13:58:25 <sbp> hmm. I'd not heard of that
13:58:32 <kpreid> one possibility is that the proofs were being applied to systems without sufficiently robust modularity
13:58:52 <kpreid> e.g. memory-unsafe languages
14:05:01 <sbp> do you have any specific examples? maybe we could work it out
14:05:09 <kpreid> no
14:05:29 * kpreid [citation needed]
14:05:32 <sbp> hehe
14:05:55 <kpreid> this is all Stuff I've Vaguely Picked Up
14:06:00 *** alienbrain (n=alienbra@drupal.org/user/19220/view) has joined #swhack
14:06:35 <sbp> by the way, cf. http://inamidst.com/topic/bugfree
14:06:41 <kpreid> oh and I saw this on LtU recently and the remark below the quote caught my interest, so I plan to read it ...sometime: http://lambda-the-ultimate.org/node/2390
14:06:44 *** littledan (n=littleda@pool-96-233-18-115.bstnma.east.verizon.net) has joined #swhack
14:06:44 <sbp> especially my editor-derived code example therein
14:07:11 <sbp> ooh
14:08:07 <sbp> doesn't make sense to me
14:08:10 <sbp> I guess I'd need to read it
14:09:05 <sbp> woah
14:09:10 <sbp> I just thought of a Python evilism
14:09:13 <sbp> man, this is a great one
14:09:17 <sbp> let's see if I can program it...
14:10:12 *** kpreid has quit ()
14:10:45 *** kpreid (n=kpreid@cpe-24-59-154-165.twcny.res.rr.com) has joined #swhack
14:10:52 <sbp> ahaha, it works
14:10:54 <sbp> [[[
14:10:55 <sbp> >>> class Something(tuple):
14:10:55 <sbp> ... def test((p, q, r), s):
14:10:55 <sbp> ... print p, q, r, s
14:10:55 <sbp> ...
14:11:01 <sbp> >>> something = Something(['a', 'b', 'c'])
14:11:01 <sbp> >>> something.test('arg')
14:11:01 <sbp> a b c arg
14:11:02 <sbp> >>>
14:11:04 <sbp> ]]]
14:11:07 <sbp> eeevil
14:11:22 <sbp> so, for example
14:11:27 <sbp> say you have self.length and self.data
14:11:35 <sbp> and you're always freaking referring to them
14:11:44 <sbp> well you could make your self object be a subclass of a tuple
14:11:51 <sbp> and assign length to [0] and data to [1]
14:12:09 <sbp> then you could do def method((length, data)): ...
14:12:23 <sbp> in fact, I guess you could make the object itself be [0]
14:12:25 <sbp> so it'd be (self, length, data)
14:12:38 <sbp> it's basically a more compact way of writing length, data = self.length, self.data
14:12:39 <bjoern_> .g CPAN SuperPython
14:12:41 <phenny> bjoern_: http://search.cpan.org/dist/SuperPython/
14:12:45 <kpreid> sure that it has to be a subclass of tuple?
14:12:55 <sbp> not entirely sure, no
14:12:58 <kpreid> in particular, could it just be something supporting indexing?
14:13:26 <sbp> yeah. it worked with list too
14:13:49 <jsled> .pc '
14:13:50 *** stelt has quit (Read error: 104 (Connection reset by peer))
14:13:52 <phenny> 0027: APOSTROPHE (')
14:13:59 <jsled> .pc ´
14:14:01 <phenny> 00B4: ACUTE ACCENT (´)
14:14:12 <bjoern_> .gc precessor
14:14:14 <phenny> precessor: 26,400
14:14:53 <kpreid> .gc "data precession"
14:14:56 <phenny> "data precession": 546
14:16:47 <jsled> .cp ^0092
14:16:49 <phenny> 0092: <control> - PRIVATE USE TWO (’)
14:17:42 <jsled> .cp ^005C
14:17:44 <phenny> 005C: REVERSE SOLIDUS (\)
14:21:34 <bjoern_> .cp general
14:21:36 <phenny> Sorry, no results found for 'general'.
14:22:07 <bjoern_> .cp (.)\1\1\1
14:22:07 <phenny> 0000: <control> - NULL
14:22:08 <phenny> 0001: <control> - START OF HEADING ()
14:22:09 <phenny> 0002: <control> - START OF TEXT () [...]
14:22:15 <bjoern_> hmm
14:25:33 *** perigrin (n=perigrin@c-24-118-172-252.hsd1.mn.comcast.net) has joined #swhack
14:27:04 *** littledan has quit ()
14:34:25 <sbp> .cp ^(.)\1\1\1
14:34:26 <phenny> 0000: <control> - NULL
14:34:27 <phenny> 1111: HANGUL CHOSEONG PHIEUPH (ᄑ)
14:34:28 <phenny> 2222: SPHERICAL ANGLE (∢) [...]
14:35:30 <sbp> .unicode comet
14:35:33 <phenny> U+2604 COMET (☄)
14:35:40 <sbp> ∢-------------------☄
14:35:44 <sbp> astronomy in a nutshell
14:37:29 <est> comet is great in identifiers!
14:37:46 <bjoern_> .cp ^[^;]+;[^;]*(.)\1\1\1
14:37:49 <phenny> Sorry, no results found for r'^[^;]+;[^;]*(.)\1\1\1'.
14:37:55 <bjoern_> .cp ^[^;]+;[^;]*(.)\1\1
14:37:57 <phenny> 0929: DEVANAGARI LETTER NNNA (ऩ)
14:38:00 <phenny> 0934: DEVANAGARI LETTER LLLA (ऴ)
14:38:04 <phenny> 095C: DEVANAGARI LETTER DDDHA (ड़) [...]
14:46:46 <bjoern_> lisppaste2: url?
14:46:46 <lisppaste2> To use the lisppaste bot, visit http://paste.lisp.org/new/swhack and enter your paste.
14:47:20 <lisppaste2> bjoern_ pasted "Look how it lines up perfectly!" at http://paste.lisp.org/display/46179
14:48:00 *** jetscreamer (n=jetscrea@unaffiliated/jetscreamer) has joined #swhack
14:49:33 <sbp> ooh
14:50:07 <est> that's beautiful man
14:54:12 <sbp> hmm
14:54:19 <sbp> is there a way to monitor a file for reads?
14:54:23 <sbp> must be, surely
14:54:27 <sbp> catch: in python
14:54:58 <bjoern_> you mean reads from some other process?
14:55:42 <bjoern_> I know my win32 kernel allows you to do it...
14:55:57 <sbp> hmm: http://www.voidspace.org.uk/python/pathutils.html#file-locking
14:56:29 <bjoern_> A lock is not a monitor...
14:56:38 <sbp> okay. my usecase is this:
14:56:44 <sbp> * editor opens a file
14:57:01 <sbp> * changes are made to the file in the editor
14:57:19 <sbp> * these changes aren't written to the disc until...
14:57:25 <sbp> * someone tries to access the file
14:57:37 <sbp> * the OS(?) doesn't allow this until the editor writes those changes
14:57:59 <sbp> * (but nor does this block the thing trying to read the file; the writing merely takes place as part of the reading process, conceptually)
14:58:26 <sbp> functionally speaking, this is autosave after every character
14:58:44 <sbp> but it doesn't (necessarily) include writing to the disc at any unnecessary point
14:59:09 <sbp> the only two necessary points are: 1) when some other process tries to read the file from disc, and 2) when the editor exits
14:59:31 <bjoern_> Why would you want the OS block the access?
15:00:20 <sbp> my goal is for the other process reading the file to not be able to read the contents of the file until the editor has written its buffered changes to that file
15:00:28 <sbp> I want that to be transparent to the process reading the file
15:00:35 <sbp> so I presume that'd have to take place at the OS level
15:01:01 <bjoern_> Let me rephrase: why would the user want the editor/os to behave this way?
15:01:14 <sbp> because then you would never have to save the file
15:01:42 <sbp> it would always be effectively saved, after every single change to the content
15:01:55 * bjoern_ wonders about using mmap
15:01:59 <sbp> there would be no need for a save function; the concept would cease to exist
15:02:06 <bjoern_> .wik mmap
15:02:09 <phenny> "In computing, mmap is a POSIX-compliant Unix system call that maps files or devices into memory." - http://en.wikipedia.org/wiki/Mmap
15:02:15 * sbp reads
15:02:17 <jsled> hmm. In some cases, saving can take some non-trivial amount of time.
15:02:30 <laplink> «Blessed are the meek for they make easy targets.»
15:02:40 <jsled> Also, I guess the OS would need to allow/establish a callback into the app to force a save operation.
15:04:35 <sbp> jsled: I was thinking along the lines of "editor tags the file as 'needing resolution'; external process asks to read; OS sees that it's tagged as 'needing resolution'; OS emits some signal that the file has had a read requested (SIG to the editor? another tag of the file?); editor sees that signal and performs the necessary write; editor either removes the 'requires resolution' tag or sends some kind of signal to the OS..."
15:06:18 * bjoern_ does not think editors should have exclusive-read locks on files, or change them without an explicit request to do that...
15:07:00 <sbp> why not?
15:07:09 * laplink hates apps that modify files on disk without user intervention…
15:07:09 <sbp> it's on the understanding that the user requests that
15:07:34 <sbp> laplink: such as what? how does that apply here?
15:07:51 <bjoern_> As for "tell me if somebody wants to read this (open) file", I don't think that's a feature you'll find implemented in a ready-to-use manner in python...
15:08:10 <bjoern_> I very frequently open files from multiple applications at the same time
15:08:19 <sbp> I don't care about ready-to-use, only feasible-to-use
15:08:21 <bjoern_> relying on the applications retaining the old state
15:08:40 <sbp> well they wouldn't update after a read, of course
15:08:49 <sbp> only if they re-read the file whilst you were using it
15:09:11 <sbp> I don't see the problem, conceptually
15:09:38 <sbp> basically you're delaying the pressing of Ctrl+S until someone else actually requests the file
15:09:38 <sbp> that's all
15:09:49 <bjoern_> I don't mean open in many, change in one; I mean open in one, change without saving, open in another application
15:10:11 <sbp> so all you're saying is that sometimes you don't want autosave
15:10:15 <sbp> which is fine; this is merely an option
15:10:29 <sbp> but personally, 99% of the time autosave would be great
15:10:44 <sbp> but not this crappy every-ten characters shit that most autosaves give you
15:11:05 <sbp> I want real autosave. everything I do is, conceptually, exactly as it is on the filesystem
15:11:12 <sbp> when I make a change, I make a change
15:11:26 <sbp> almost as if I'm editing the file raw on the hard drive, rather than in a buffer in an editor...
15:12:00 <bjoern_> you see, you have the buffer because doing it directly on disk is very expensive.
15:12:15 <sbp> yeah, exactly
15:12:19 <sbp> hence my method outlined above
15:12:50 <sbp> do you see?
15:12:58 <bjoern_> what happens if you open the file twice in the editor?
15:14:10 <bjoern_> or if some process reads it while you are making changes?
15:14:12 <sbp> so, open $FILE, make changes, then open $FILE again?
15:14:28 <sbp> then it gets the changes. I've told you how it works
15:14:35 <sbp> was my description incomplete?
15:14:35 <bjoern_> think two instances of notepad with the same file
15:15:08 <sbp> think of it as editing the file directly on the disc, because that is conceptually what is happening
15:15:10 <sbp> and that is the intent
15:15:27 <bjoern_> initially the file is empty. then you type 'a' in window 1, and 'b' in window 2. now process 3 reads the file. what does it see?
15:15:45 <sbp> 'b'
15:15:58 <jsled> sounds like fun.
15:16:00 <jsled> :)
15:16:04 <bjoern_> but than notepad 1 is not autosaving!
15:16:08 <bjoern_> then
15:16:17 <sbp> yes it is
15:16:22 <sbp> it's saving the file after every change
15:16:59 <sbp> jsled: initially the file is empty. then you type 'a' in window 1 and press save, and 'b' in window 2 and press ave. now process 3 reads the file. what does it see?
15:17:30 <bjoern_> right
15:17:42 <jsled> An error from window2 as soon as you try to save, and process 3 sees 'a'. ;)
15:17:53 <jsled> LIKE EMACS DOES>
15:18:33 <sbp> that's with an emacs-only lock though
15:18:40 <sbp> imagine window1 is emacs and window2 is vi
15:18:42 <jsled> that's true.
15:19:01 <jsled> I'm thinking about the gnucash case, where (unfortuantely) saving can take a lot of time, and needs to traverse and marshal the whole object graph.
15:19:30 <sbp> oh? you're editing some object that requires a slow and costly serialisation?
15:19:40 <jsled> Let alone dealing with editing operations that aren't yet complete.
15:19:53 <sbp> I'm only thinking about editing ordinary text files
15:19:58 <jsled> And might even be inconsistent.
15:20:15 <sbp> by which I mean small files whose contents map onto unicode strings
15:20:38 <sbp> of the kind I deal with in their dozens every day
15:21:25 <bjoern_> Well I would give http://docs.python.org/lib/module-mmap.html a shot
15:21:32 <sbp> yeah, I've been looking at that...
15:22:26 <sbp> I don't think it helps though
15:22:38 <sbp> it doesn't do any kind of monitoring or anything
15:22:49 <sbp> you'd need to do a .flush() after every change
15:23:04 <sbp> which is just a write to the disc. which is what I'm trying to avoid
15:23:48 <est> what's the matter with writing to the disk on every keystroke?
15:23:57 <sbp> est: I was just about to say that actually
15:23:59 * Arnia proves the badger
15:24:09 <sbp> I haven't tested it yet, but it doesn't seem feasible
15:24:16 <sbp> the requirement is that it has to keep up with my typing speed, of course
15:24:29 <sbp> if it noticably degrades the typing experience, then it's not worth it
15:24:49 <sbp> but disc writes for small files... gotta be on the order of milliseconds?
15:24:52 <sbp> let's see!
15:24:54 <est> sbp: well..as fast as it can..in background
15:25:29 <bjoern_> If you are not worried about crashes, lost power, etc. you should just mount a ramdisk.
15:25:31 <est> it should just log the diffs..with total vc integration
15:26:58 <est> ..and scoped change sets: character, autosave, save, checkpoint, commit, version, etc
15:27:41 <Arnia> est: it should be an STM filesystem too :p
15:28:00 <est> Arnia: good point
15:28:12 <sbp> >>> import time
15:28:12 <sbp> >>> def test(length, tests):
15:28:12 <sbp> ... f = open('speedtest', 'wb')
15:28:12 <sbp> ... string = '*' * length
15:28:12 <sbp> ... t = time.clock()
15:28:12 <sbp> ... for i in xrange(tests):
15:28:15 <sbp> ... f.write(string)
15:28:17 <sbp> ... print time.clock() - t
15:28:18 <sbp> ...
15:28:22 <sbp> >>> test(100, 100000)
15:28:23 <sbp> 0.18
15:28:55 <crschmidt> of course, you don't have any way of knowing if that actually went to the disk.
15:28:57 <phenny> crschmidt: 09:33Z <sbp> tell crschmidt http://en.wikipedia.org/wiki/Schmidt_Sting_Pain_Index
15:29:01 <sbp> >>> test(1000, 100000)
15:29:01 <sbp> 1.51
15:29:01 <sbp> >>> test(10000, 10000)
15:29:01 <sbp> 1.42
15:29:17 <sbp> crschmidt: what, the f.write?
15:29:27 <est> yeah
15:29:32 <sbp> really?
15:29:37 <sbp> hmm
15:29:42 <est> need like os.fsync(f.fileno())
15:30:00 <est> ..though even that..
15:30:01 <sbp> f.write doesn't do that automatically?
15:30:07 <est> no
15:30:08 <sbp> kinda a raw deal
15:30:32 <est> yeah..you should use "raw" files..write at the block level :)
15:30:35 <sbp> and yes, agreed that some kind of a palimpsest file would be best
15:30:49 <crschmidt> the idea is that the OS will make sure it gets to disk as quickly as makes senes
15:30:53 <crschmidt> sense*
15:31:26 <sbp> [[[
15:31:27 <sbp> fdatasync( fd)
15:31:27 <sbp> Force write of file with filedescriptor fd to disk. Does not force update of metadata. Availability: Unix.
15:31:35 <sbp> ]]] - http://docs.python.org/lib/os-fd-ops.html
15:33:24 <est> "For applications that require tighter guarantess about the integrity of
15:33:25 <est> their data, MacOS X provides the F_FULLFSYNC fcntl."
15:42:13 <sbp> [[[
15:42:13 <sbp> I don’t think we can rule out F_FULLFSYNC just yet. On my (admittedly slow) iMac G4, I can do 22 one-byte writes followed by an F_FULLFSYNC per second, for a total of 22 bytes/second! (Removing the F_FULLFSYNCs gives me 220 KB/sec). I admit that example is contrived, but the point is that F_FULLFSYNC could be a bottleneck even with a very low data rate, depending on how your transactions come in.
15:42:20 <sbp> ]]] - http://ridiculousfish.com/blog/?p=17
15:44:34 <sbp> weird:
15:44:35 <sbp> >>> os.open('speedtest', os.O_WRONLY | os.O_CREAT)
15:44:37 <sbp> 10
15:44:37 <sbp> >>> os.fdopen(10)
15:44:37 <sbp> Traceback (most recent call last):
15:44:37 <sbp> File "<stdin>", line 1, in <module>
15:44:37 <sbp> OSError: [Errno 22] Invalid argument
15:44:39 <sbp> >>>
15:47:57 <sbp> weird:
15:48:00 <sbp> >>> os.fdatasync(f.fileno())
15:48:00 <sbp> Traceback (most recent call last):
15:48:00 <sbp> File "<stdin>", line 1, in <module>
15:48:00 <sbp> AttributeError: 'module' object has no attribute 'fdatasync'
15:48:26 <sbp> oh, Unix only
15:48:56 <sbp> os.fsync works. wonder why there are two?
15:48:59 <sbp> anyway...
15:50:36 <sbp> >>> def test(length, tests):
15:50:36 <sbp> ... f = open('speedtest', 'wb')
15:50:38 <sbp> ... fd = f.fileno()
15:50:38 <sbp> ... string = '*' * length
15:50:38 <sbp> ... t = time.clock()
15:50:38 <sbp> ... for i in xrange(tests):
15:50:39 <sbp> ... f.write(string)
15:50:42 <sbp> ... os.fsync(fd)
15:50:43 <sbp> ... print time.clock() - t
15:50:46 <sbp> ...
15:50:47 <sbp> >>> test(100, 10000)
15:50:49 <sbp> 0.13
15:50:51 <sbp> >>>
15:50:53 <sbp> it does indeed appear to be a bit slower
15:50:57 <sbp> now, let's think of some realistic parameters...
15:51:04 <sbp> file of 100KB
15:51:17 <sbp> and let's say write every twentieth of a second
15:51:26 <sbp> .calc 100KB in bytes
15:51:28 <phenny> 100 kilobytes = 102 400 bytes
15:51:43 <sbp> so we want 20 of length 102400 to not exceed a second
15:52:02 <sbp> >>> test(20, 102400)
15:52:02 <sbp> 0.83
15:52:02 <sbp> >>>
15:52:07 <sbp> looking good!
15:54:11 *** chris2 has quit ("Leaving")
15:54:57 * perigrin wonders if the python and perl will seep into the brain of the sleeping infant beside him.
15:55:04 <Jabberwock> who rang?
15:55:15 <perigrin> he seems disturbed by your having to call os.fsync()
15:55:17 <Jabberwock> phenny: any messages?
15:55:27 <sbp> .swhack sbp.*Jabberwock
15:55:30 <phenny> sbp: http://swhack.com/logs/2007-08-13#T16-32-54
15:55:43 <sbp> Jabberwock: see http://swhack.com/logs/2007-08-11#T16-35-02
15:56:00 <sbp> yo perigrin!
15:56:09 * perigrin waves.
15:56:23 <sbp> os.fsync() disturbs me too
15:56:30 <sbp> I think that f.write should do it automatically
15:56:37 <sbp> or there should at least be an option to make it do that...
15:56:44 <perigrin> $|++ *cough*
15:57:01 <Jabberwock> sbp: I forget why I told him to ask that here
15:57:03 <sbp> hmm, line noise. must be perl?
15:57:11 <sbp> Jabberwock: nefariousness, it appears
15:57:14 <Jabberwock> maybe ruby vs python
15:57:15 <sbp> I mean, it says in the logs
15:57:17 <perigrin> which actually doesn't unbuffer but does cause perl to basically do that :)
15:57:27 <sbp> you say that we're a bunch of pythonheads
15:57:40 <Jabberwock> sbp: Pure nefariousness as is my demeanor :D
15:57:40 <sbp> so you sent him in to watch us get all aggro
15:57:52 <sbp> only when he did come in, we were like "er, we dunno. we don't care"
15:57:56 <sbp> which is hilarious
15:57:58 <Jabberwock> ha! I know you better than that.
15:58:15 <sbp> you do *now*. you apparently didn't back then? :-)
15:58:35 <sbp> I'm glad the context was logged. it's a lot funnier with it!
15:58:40 <Jabberwock> I was being silly :P
15:58:53 <Jabberwock> There aren't any drupal coders in here?
15:59:00 <sbp> maybe, but you also told him not to let on that it was you who sent him in
15:59:06 <sbp> yup, Morbus
15:59:07 <perigrin> sbp, I can't help it that perl has warped my fragile little brain ... seven years employment in the language will do that.
15:59:13 <Jabberwock> I figured there were, and that it would be entertaining to have him ask about a 'drupal killer' in rails in here
15:59:16 <Jabberwock> ah ok.
15:59:27 <sbp> also I think we'd been pissin' on Ruby some days before
15:59:29 <Morbus> a drupal killer in rails has been talked about for a long time.
15:59:35 <Morbus> i haven't seen anything come of it.
15:59:48 <sbp> gotta relieve yerself somewhere
15:59:51 <Morbus> rails is a great tech demo, but i haven't seen anything useful or application-like built yet.
15:59:51 <Jabberwock> Everyone is busy making cheesy podcasts
16:00:01 <Jabberwock> hairflix.com is gonna be rails
16:00:11 <Jabberwock> pretty cool site, and will be much cooler
16:00:11 <bjoern_> pfft, ascenders.
16:00:18 <sbp> hehe
16:00:44 <Jabberwock> Morbus: basecamp is pretty useful to a lot of people
16:01:01 <Morbus> sure, i've used it before. didn't know it was rails though.
16:01:04 <Jabberwock> I'm not too fond of it's UI. Kind of unintuitive like flickr..
16:01:15 <Jabberwock> Lots of hidden features you don't know about unless you mou