From: Dave Burt Date: 2006-07-03T23:23:46+09:00 Subject: Re: [QUIZ] Sending Ruby code vs. provding URLs --------------040003010707040608020100 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Jupp wrote: > My opinion is that one should post the code. You have made a number of good points in support of that opinion. I've attached the code I linked to (or tried to link to) earlier to this mail. Cheers, Dave --------------040003010707040608020100 Content-Type: application/binary; name="weak_hash.rb" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="weak_hash.rb" IyBXZWFrSGFzaA0KIw0KIyBBIEhhc2ggdGhhdCBhbGxvd3MgaXRzIHZhbHVlcyB0byBiZSBn YXJiYWdlLWNvbGxlY3RlZC4NCiMNCiMgT3JpZ2luYWwgY29kZSBieSBNYXVyaWNpbyBGZXJu YW5kZXo6DQojICAgaHR0cDovL2VpZ2VuY2xhc3Mub3JnL2hpa2kucmI/Y21kPXZpZXcmcD13 ZWFraGFzaCthbmQrd2Vha3JlZg0KIw0KIyBNb2RpZmllZCBzbGlnaHRseSBieSBEYXZlIEJ1 cnQsIDMgSnVseSAyMDA2DQoNCmNsYXNzIFdlYWtIYXNoDQogIGF0dHJfcmVhZGVyIDpjYWNo ZQ0KICBkZWYgaW5pdGlhbGl6ZSggY2FjaGUgPSBIYXNoLm5ldyApDQogICAgQGNhY2hlID0g Y2FjaGUNCiAgICBAa2V5X21hcCA9IHt9DQogICAgQHJldl9jYWNoZSA9IEhhc2gubmV3e3xo LGt8IGhba10gPSB7fX0NCiAgZW5kDQoNCiAgZGVmIFtdKCBrZXkgKQ0KICAgIHZhbHVlX2lk ID0gQGNhY2hlW2tleV0NCiAgICBPYmplY3RTcGFjZS5faWQycmVmKHZhbHVlX2lkKSB1bmxl c3MgdmFsdWVfaWQubmlsPw0KICBlbmQNCg0KICBkZWYgW109KCBrZXksIHZhbHVlICkNCiAg ICBjYXNlIGtleQ0KICAgIHdoZW4gRml4bnVtLCBTeW1ib2wsIHRydWUsIGZhbHNlLCBuaWws IEJpZ251bQ0KICAgICAga2V5MiA9IGtleQ0KICAgIGVsc2UNCiAgICAgIGtleTIgPSBrZXku ZHVwDQogICAgZW5kDQogICAgQHJldl9jYWNoZVt2YWx1ZS5vYmplY3RfaWRdW2tleTJdID0g dHJ1ZQ0KICAgIEBjYWNoZVtrZXkyXSA9IHZhbHVlLm9iamVjdF9pZA0KICAgIEBrZXlfbWFw W2tleS5vYmplY3RfaWRdID0ga2V5Mg0KDQogICAgT2JqZWN0U3BhY2UuZGVmaW5lX2ZpbmFs aXplcih2YWx1ZSwgbWV0aG9kKDpyZWNsYWltX3ZhbHVlKSkNCiAgICBPYmplY3RTcGFjZS5k ZWZpbmVfZmluYWxpemVyKGtleSwgbWV0aG9kKDpyZWNsYWltX2tleSkpDQogIGVuZA0KDQog IHByaXZhdGUNCiAgICBkZWYgcmVjbGFpbV92YWx1ZSh2YWx1ZV9pZCkNCiAgICAgIGlmIEBy ZXZfY2FjaGUuaGFzX2tleT8gdmFsdWVfaWQNCiAgICAgICAgQHJldl9jYWNoZVt2YWx1ZV9p ZF0uZWFjaF9rZXl7fGtleXwgQGNhY2hlLmRlbGV0ZSBrZXl9DQogICAgICAgIEByZXZfY2Fj aGUuZGVsZXRlIHZhbHVlX2lkDQogICAgICBlbmQNCiAgICBlbmQNCiAgICBkZWYgcmVjbGFp bV9rZXkoa2V5X2lkKQ0KICAgICAgaWYgQGtleV9tYXAuaGFzX2tleT8ga2V5X2lkDQogICAg ICAgIEBjYWNoZS5kZWxldGUgQGtleV9tYXBba2V5X2lkXQ0KICAgICAgZW5kDQogICAgZW5k DQplbmQNCg== --------------040003010707040608020100 Content-Type: application/binary; name="fixed_width_int.rb" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fixed_width_int.rb" Iw0KIyBDLVN0eWxlIEludHMNCiMNCiMgQSByZXNwb25zZSB0byBSdWJ5IFF1aXogIzg1IFty dWJ5LXRhbGs6MTk5NzIzXQ0KIw0KIyBGaXhlZFdpZHRoSW50IGlzIHRoZSBwYXJlbnQgY2xh c3Mgb2YgYW4gYXJiaXRyYXJ5IHNldCBvZiBjLXN0eWxlIGludGVnZXINCiMgY2xhc3Nlcy4g VGhlc2Ugc3ViY2xhc3NlcyBhcmUgYWNjZXNzZWQgbGlrZSBzbzoNCiMNCiMgICBVSW50MzIg PSBGaXhlZFdpZHRoSW50LnR5cGUoOnVuc2lnbmVkLCAzMikNCiMNCiMgVGhlc2UgY2xhc3Nl cyB3aWxsIGdpdmUgdXAgaW5zdGFuY2VzIGxpa2Ugc286DQojDQojICAgbiA9IFVJbnQzMi5n ZXQoNDIpICAjPT4gIzxVSW50MzIgNDI+DQojDQojIEFsdGVybmF0aXZlbHksIHlvdSBjYW4g Y29udmVydCBmcm9tIG90aGVyIE51bWVyaWMgdHlwZXM6DQojDQojICAgeCA9IDI1NS50b19m aXhlZF93aWR0aF9pbnQoOnVuc2lnbmVkLCAzMikgICM9PiAjPFVJbnQzMiAyNTU+DQojDQoj IE92ZXJmbG93cyBhcmUgaWdub3JlZC4NCiMNCiMgQXV0aG9yOiBkYXZlIGF0IGJ1cnQuaWQu YXUNCiMgQ3JlYXRlZDogMiBKdWwgMjAwNg0KIyBMYXN0IG1vZGlmaWVkOiAzIEp1bCAyMDA2 DQojDQoNCnJlcXVpcmUgJ3dlYWtfaGFzaCcNCg0KY2xhc3MgRml4ZWRXaWR0aEludCA8IE51 bWVyaWMNCg0KICBERUZBVUxUX1NJR05FRCA9IDpzaWduZWQNCiAgREVGQVVMVF9TSVpFID0g MzENCg0KICBhdHRyX2FjY2Vzc29yIDp2YWx1ZQ0KICBhbGlhc19tZXRob2QgOnRvX2ludCwg OnZhbHVlDQogIGFsaWFzX21ldGhvZCA6dG9faSwgOnZhbHVlDQoNCiAgZGVmIGluaXRpYWxp emUNCiAgICByYWlzZSBUeXBlRXJyb3IsICJDYW4ndCBpbnN0YW50aWF0ZSBhYnN0cmFjdCBi YXNlIGNsYXNzICN7c2VsZi5jbGFzc30iDQogIGVuZA0KDQogIGNsYXNzIDw8IHNlbGYNCg0K ICAgIGRlZiB0eXBlKHNpZ25lZCA9IERFRkFVTFRfU0lHTkVELCBzaXplID0gREVGQVVMVF9T SVpFKQ0KDQogICAgICBzaWduZWQgPSBjYXNlIHNpZ25lZA0KICAgICAgICAgICAgICAgd2hl biA6c2lnbmVkLCB0cnVlOiB0cnVlDQogICAgICAgICAgICAgICB3aGVuIDp1bnNpZ25lZCwg ZmFsc2U6IGZhbHNlDQogICAgICAgICAgICAgICBlbHNlIHJhaXNlIEFyZ3VtZW50RXhjZXB0 aW9uLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgOnNpZ25lZCwgOnVu c2lnbmVkLCB0cnVlIG9yIGZhbHNlIg0KICAgICAgICAgICAgICAgZW5kDQoNCiAgICAgIHNp emUgPSBzaXplLnRvX2ludA0KICAgICAgcmFpc2UgUmFuZ2VFcnJvciwgInNpemUgbXVzdCBi ZSBncmVhdGVyIHRoYW4gemVybyIgaWYgc2l6ZSA8PSAwDQoNCiAgICAgIEB0eXBlcyB8fD0g e30NCiAgICAgIEB0eXBlc1tbc2lnbmVkLCBzaXplXV0gfHw9IENsYXNzLm5ldyhzZWxmKSBk bw0KDQogICAgICAgIEBzaWduZWQsIEBzaXplID0gc2lnbmVkLCBzaXplDQoNCiAgICAgICAg ZGVmIGluaXRpYWxpemUodmFsdWUpDQoNCiAgICAgICAgICAjIHRydW5jYXRlIGV4Y2VzcyBi aXRzIHVzaW5nIGEgbWFzaw0KICAgICAgICAgIEB2YWx1ZSA9IHZhbHVlICYgKCgxIDw8IHNl bGYuY2xhc3Muc2l6ZSkgLSAxKQ0KDQogICAgICAgICAgIyBhIHNpZ25lZCB3aG9zZSBoaWdo IGJpdCBpcyBzZXQgaXMgbmVnYXRpdmUNCiAgICAgICAgICBpZiBzZWxmLmNsYXNzLnNpZ25l ZD8gJiYgQHZhbHVlID49ICgxIDw8IChzZWxmLmNsYXNzLnNpemUgLSAxKSkNCiAgICAgICAg ICAgIEB2YWx1ZSAtPSAoMSA8PCBzZWxmLmNsYXNzLnNpemUpIA0KICAgICAgICAgIGVuZA0K ICAgICAgICBlbmQNCg0KICAgICAgICBjbGFzcyA8PCBzZWxmICAjIGNsYXNzIG1ldGhvZHMg b2YgRml4ZWRXaWR0aEludCdzIHN1YmNsYXNzZXMNCg0KICAgICAgICAgIGRlZiBzaWduZWQ/ KCkgQHNpZ25lZCBlbmQNCiAgICAgICAgICBkZWYgc2l6ZSgpIEBzaXplIGVuZA0KDQogICAg ICAgICAgZGVmIGdldCh2YWx1ZSA9IDApDQogICAgICAgICAgICBAaW5zdGFuY2VzIHx8PSBX ZWFrSGFzaC5uZXcNCiAgICAgICAgICAgIEBpbnN0YW5jZXNbdmFsdWVdIHx8PSBuZXcodmFs dWUpDQogICAgICAgICAgZW5kDQoNCiAgICAgICAgICBkZWYgaW5zcGVjdA0KICAgICAgICAg ICAgaWYgIW5hbWUgfHwgbmFtZS5lbXB0eT8NCiAgICAgICAgICAgICAgIiM8I3tzdXBlcmNs YXNzLm5hbWV9ICN7c2lnbmVkbmVzc30gI3tzaXplfS1iaXQ+Ig0KICAgICAgICAgICAgZWxz ZQ0KICAgICAgICAgICAgICBuYW1lDQogICAgICAgICAgICBlbmQNCiAgICAgICAgICBlbmQN Cg0KICAgICAgICAgIHByaXZhdGUNCiAgICAgICAgICAgIGRlZiBzaWduZWRuZXNzDQogICAg ICAgICAgICAgIHNpZ25lZD8gPyAnc2lnbmVkJyA6ICd1bnNpZ25lZCcNCiAgICAgICAgICAg IGVuZA0KICAgICAgICBlbmQNCiAgICAgIGVuZA0KICAgIGVuZA0KDQogICAgcHJpdmF0ZSA6 bmV3DQogICAgZGVmIGdldChzaWduZWQgPSBERUZBVUxUX1NJR05FRCwgc2l6ZSA9IERFRkFV TFRfU0laRSwgdmFsdWUgPSAwKQ0KICAgICAgRml4ZWRXaWR0aEludC50eXBlKHNpZ25lZCwg c2l6ZSkuZ2V0KHZhbHVlKQ0KICAgIGVuZA0KICBlbmQNCg0KICBkZWYgY29lcmNlKG90aGVy KQ0KICAgIFtzZWxmLmNsYXNzLmdldChvdGhlciksIHNlbGZdDQogIGVuZA0KDQogIGRlZiBp bnNwZWN0DQogICAgIiM8I3tzZWxmLmNsYXNzLmluc3BlY3R9ICNAdmFsdWU+Ig0KICBlbmQN CiAgZGVmIHRvX3MNCiAgICBAdmFsdWUudG9fcw0KICBlbmQNCg0KICBkZWYgPT0ob3RoZXIp DQogICAgb3RoZXIgPT0gdG9faQ0KICBlbmQNCiAgZGVmIDw9PihvdGhlcikNCiAgICBvdGhl ciA8PT4gdG9faQ0KICBlbmQNCg0KICAjIGRlbGVnYXRlIGluc3RhbmNlIG1ldGhvZHMgdG8g dW5kZXJseWluZyBpbnRlZ2VyIHZhbHVlDQogIGRlZiBtZXRob2RfbWlzc2luZyhtZXRoLCAq YXJncykNCiAgICB1bmxlc3MgQHZhbHVlLnJlc3BvbmRfdG8/IG1ldGgNCiAgICAgIHJhaXNl IE5hbWVFcnJvciwgInVuZGVmaW5lZCBtZXRob2QgYCN7bWV0aH0nIGZvciAje3NlbGZ9OiN7 c2VsZi5jbGFzc30iDQogICAgZW5kDQogICAgcmVzdWx0ID0gQHZhbHVlLnNlbmQobWV0aCwg KmFyZ3MubWFwIHt8YXJnfA0KICAgICAgYXJnLmNsYXNzID09IHNlbGYuY2xhc3MgPyBhcmcu dG9faSA6IGFyZyB9KQ0KICAgIGNhc2UgcmVzdWx0DQogICAgd2hlbiBJbnRlZ2VyDQogICAg ICBzZWxmLmNsYXNzLmdldChyZXN1bHQpDQogICAgd2hlbiBFbnVtZXJhYmxlICMgZS5nLiBk aXZtb2QNCiAgICAgIHJlc3VsdC5tYXAgZG8gfGVsZW1lbnR8DQogICAgICAgIGVsZW1lbnQu a2luZF9vZj8oSW50ZWdlcikgPyBzZWxmLmNsYXNzLmdldChlbGVtZW50KSA6IGVsZW1lbnQN CiAgICAgIGVuZA0KICAgIGVsc2UNCiAgICAgIHJlc3VsdA0KICAgIGVuZA0KICBlbmQNCmVu ZA0KDQpjbGFzcyBOdW1lcmljDQogIGRlZiB0b19maXhlZF93aWR0aF9pbnQoc2lnbmVkID0g Rml4ZWRXaWR0aEludDo6REVGQVVMVF9TSUdORUQsDQogICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZSA9IEZpeGVkV2lkdGhJbnQ6OkRFRkFVTFRfU0laRSkNCiAgICBGaXhlZFdpZHRo SW50LnR5cGUoc2lnbmVkLCBzaXplKS5nZXQodG9faSkNCiAgZW5kDQplbmQNCg0KIyBib251 cyBtb2R1bGVzIGZvciBjb21wYXRpYmlsaXR5IHdpdGggZXhhbXBsZXMgaW4gdGhlIHF1aXoN Cm1vZHVsZSBTaWduZWRGaXhlZFdpZHRoSW50DQogIGRlZiBzZWxmLm5ldyh2YWx1ZSwgc2l6 ZSkNCiAgICBGaXhlZFdpZHRoSW50LnR5cGUoOnNpZ25lZCwgc2l6ZSkuZ2V0KHZhbHVlKS5l eHRlbmQoc2VsZikNCiAgZW5kDQplbmQNCm1vZHVsZSBVbnNpZ25lZEZpeGVkV2lkdGhJbnQN CiAgZGVmIHNlbGYubmV3KHZhbHVlLCBzaXplKQ0KICAgIEZpeGVkV2lkdGhJbnQudHlwZSg6 dW5zaWduZWQsIHNpemUpLmdldCh2YWx1ZSkuZXh0ZW5kKHNlbGYpDQogIGVuZA0KZW5kDQoj IGFuZCBhIGNvdXBsZSBtb3JlIGNsYXNzZXMgdG8gc3VpdCBTYW5kZXIgTGFuZCdzIHRlc3Qg Y2FzZXMNClNpZ25lZEZXSSA9IFNpZ25lZEZpeGVkV2lkdGhJbnQNClVuc2lnbmVkRldJID0g VW5zaWduZWRGaXhlZFdpZHRoSW50DQoNCmlmICQwID09IF9fRklMRV9fDQoNCiAgVUludDMy ID0gRml4ZWRXaWR0aEludC50eXBlKDp1bnNpZ25lZCwgMzIpICAjIGRlZmluZSBhIG5ldyBp bnRlZ2VyIHR5cGUNCiAgaSA9IFVJbnQzMi5nZXQoNDIpICAgICAgICAgICAgICAgICAgICAg ICAgICAjIGdldCBpbnN0YW5jZSBvZiB0aGUgdHlwZQ0KICBpID09IDQyICM9PiB0cnVlDQoN CiAgaiA9IEZpeGVkV2lkdGhJbnQuZ2V0KDp1bnNpZ25lZCwgMzIsIDg2KSAgIyBubyBleHBs aWNpdCB0eXBlIHVzZWQgaW4gdGhlIGNhbGwNCiAgai5raW5kX29mPyBVSW50MzIgIz0+IHRy dWUgICAgICAgICAgICAgICAgIyBidXQgdGhlIHJlc3VsdCdzIHR5cGUgaXMgdGhlIHNhbWUN Cg0KICBrID0gVW5zaWduZWRGaXhlZFdpZHRoSW50Lm5ldygweEZGMDBGRjAwLCAzMikgIyBx dWl6IGNvbXBhdGlibGUgc3ludGF4DQogIGsua2luZF9vZj8gVW5zaWduZWRGaXhlZFdpZHRo SW50ICM9PiB0cnVlDQogIGsua2luZF9vZj8gVUludDMyICM9PiB0cnVlDQoNCmVuZA0K --------------040003010707040608020100--