My first real-world Nice experience: impressions and proposals
"Yauheni Akhotnikau" <[email protected]> Sun, 03 Feb 2008 14:57:26 +0300
| Newsgroups | gmane.comp.lang.nice.general |
|---|---|
| Organization | Intervale |
| Message-ID | <[email protected]> |
SGkhCgpJ4oCZdmUgZG9uZSBteSBmaXJzdCBOaWNlIHByb2dyYW0gd2hpY2ggcGVyZm9ybXMgcmVh bC13b3JsZCB0YXNrLiBJdCBpcyBhICAKcXVpY2sgYW5kIGRpcnR5IHByb2dyYW0gd3JpdHRlbiBm b3Igc29sdmluZyBvbmUgb2YgdW5leHBlY3RlZCBwcm9ibGVtIGluICAKbXkgd29yay4gVGhlIHBy b2dyYW0gcmVhZHMgbG9nIG9mIFNNUFAgZGF0YSBleGNoYW5nZXMgZnJvbSB0aGUgc3RhbmRhcmQg IAppbnB1dCwgc2VhcmNoZXMgbG9nIHJlY29yZHMgZm9yIFNNUyBleGNoYW5nZXMsIGFuYWx5emVz IFNNUyBib2RpZXMgYW5kICAKZGV0ZWN0cyBiYWQgbWVzc2FnZSBib2RpZXMuIEkgaW1wbGVtZW50 ZWQgdGhlIHNhbWUgdGFzayBzb21lIHRpbWUgYWdvIGluIEQgIAoxLjAgKHdpdGggVGFuZ28gbGli cmFyeSkgYW5kIEVpZmZlbCAod2l0aCBFaWZmZWxTdHVkaW8gNi4wKS4gU28gaXQgaXMgIAppbnRl cmVzdGluZyB0byBjb21wYXJlIHNvbHV0aW9ucyBvbiBkaWZmZXJlbnQgbGFuZ3VhZ2VzLiBNeSBO aWNlICAKaW1wbGVtZW50YXRpb24gY291bGQgYmUgZm91bmQgaGVyZTogIApodHRwOi8vZWFvMTk3 Lm5hcm9kLnJ1L2JldHRlcl9sYW5ndWFnZS90ZXN0X3Rhc2tzL2RlY29kZV83Yml0X2JvZGllcy9k ZWNvZGVfN2JpdF9ib2RpZXMubmljZS5odG1sCgpIZXJlIEkgd2FudCB0byB0ZWxsIGFib3V0IHNv bWUgbXkgaW1wcmVzc2lvbnMgYW5kIG1ha2Ugc29tZSBwcm9wb3NhbHMgZm9yICAKTmljZSBsYW5n dWFnZSBhbmQgaXRzIHN0YW5kYXJkIGxpYnJhcnkuCgpGaXJzdCBvZiBhbGwgSSB3YW50IHRvIGV4 cHJlc3MgbXkgYWRtaXJhdGlvbiBhYm91dCBEYW5pZWwgQm9ubmlvdCBhbmQgIApvdGhlcnMgTmlj ZeKAmXMgY29udHJpYnV0b3LigJlzIHdvcmsg4oCTIHlvdeKAmXZlIG1hZGUgdmVyeSBhdHRyYWN0 aXZlIGFuZCB1c2FibGUgIApsYW5ndWFnZSEgVGhhbmtzIGZvciB5b3VyIGVmZm9ydHMhCgpNeSBO aWNlIHNvbHV0aW9uIGlzIHZlcnkgc2ltaWxhciB0byBE4oCZcyBvbmUuIFRoZXNlIGxhbmd1YWdl cyBwcm9wb3NlICAKc2ltaWxhciBzZXQgb2YgZmVhdHVyZXMgZm9yIHVzZXIuIEQgbGFuZ3VhZ2Ug aXMgbW9yZSBhY3RpdmVseSBkZXZlbG9wZWQgIApub3cgYW5kIGhhcyBiaWdnZXIgY29tbXVuaXR5 IHRoYW4gTmljZS4gSG93ZXZlciBOaWNlIGlzIG1vcmUgYXR0cmFjdGl2ZSAgCmZvciBtZSBiZWNh dXNlIGl0IG9mZmVycyBzb21lIGZlYXR1cmVzIHdoaWNoIEkgbWlzcyBpbiBEIChmb3IgZXhhbXBs ZSwgIApvcHRpb24gdHlwZXMsIG11bHRpIG1ldGhvZHMpIGFuZCBwcm92aWRlcyBhY2Nlc3MgdG8g bGFyZ2Ugc2V0IG9mIEphdmEgIApsaWJyYXJpZXMuIFNvIEkgY2FuIHNheSB0aGF0IE5pY2UgaXMg bW9yZSBhdHRyYWN0aXZlIGxhbmd1YWdlIGZvciBldmVyeSAgCmRheSBwcm9ncmFtbWluZyBmb3Ig bWUgdGhhbiBELgoKSG93ZXZlciB0aGVyZSBhcmUgc29tZSBzbWFsbCBkcmF3YmFja3Mgd2hpY2gg SeKAmXZlIG1ldCBkdXJpbmcgZGV2ZWxvcG1lbnQuCgo9IERyYXdiYWNrcyA9Cgo9PSBOaWNlIGNv bXBpbGVy4oCZcyBlcnJvciByZXBvcnRpbmcgPT0KCkF0IGZpcnN0IGl0IGlzIGVycm9yIHJlcG9y dGluZyBvZiB0aGUgTmljZSBjb21waWxlci4gSSB1c2UgVklNIGVkaXRvciBhbmQgIApydW4gY29t cGlsYXRpb24gZnJvbSBpdC4gQnV0LCB1bmZvcnR1bmF0ZWx5IFZJTSBkb2VzbuKAmXQgdW5kZXJz dGFuZCBmb3JtYXQgIApvZiBOaWNlIGNvbXBpbGVyIGVycm9yIG1lc3NhZ2VzIGV2ZW4gd2l0aCDi gJgtLWVkaXRvcuKAmCBhcmd1bWVudC4gU28gSSB0aGluayAgCml0IGlzIGdvb2QgdG8gaGF2ZSB5 ZXQgYW5vdGhlciBmb3JtYXQgb2Ygc3VjaCBtZXNzYWdlcyBpbiB0aGUgZm9ybToKCjxmaWxlPjo8 bGluZT46PGNvbHVtbj46IDxlcnJvciBkZXNjcmlwdGlvbj4KCkZvciBleGFtcGxlOgoKdGVzdC9t YWluLm5pY2U6MToxOiB1bmRlZmluZWQgc3ltYm9sIFgKClN1Y2ggZm9ybWF0IGlzIGFscmVhZHkg c3VwcG9ydGVkIGJ5IHNldmVyYWwgbGFuZ3VhZ2VzL2NvbXBpbGVycy90b29scyAgCihlLmcuIEMv QysrLCBELCBSdWJ5KSBhbmQgYmVjYXVzZSBvZiB0aGF0IG1hbnkgZWRpdG9ycyBhbHJlYWR5IGhh dmUgIApzdXBwb3J0IG9mIHRoYXQgZm9ybWF0LgpBbmQgTmljZSBjb21waWxlciBzaG91bGRu4oCZ dCB0ZWxsIGFueXRoaW5nIGV4Y2VwdCBlcnJvcnMvd2FybmluZyBpbiB0aGlzICAKbW9kZSwgaS5l LiBubyBlcnJvcnMvd2FybmluZ3Mg4oCTIG5vIG91dHB1dC4KCj09IEFuIGFic2VuY2Ugb2Ygc3dp dGNoIHN0YXRlbWVudCA9PQoKVGhlIG5leHQgaXMgYW4gYWJzZW5jZSBvZiBzd2l0Y2ggc3RhdGVt ZW50IGluIHRoZSBsYW5ndWFnZS4gSSBrbm93IHRoYXQgIAp2YWx1ZSBkaXNwYXRjaCBtZWNoYW5p c20gYWxsb3dzIHdyaXRlIGNvZGUgd2hpY2ggaWxsdW1pbmF0ZXMgbmVlZCBvZiAgCnN3aXRjaC4g QnV0IHNvbWV0aW1lcyBzd2l0Y2ggcmVxdWlyZXMgbXVjaCBsZXNzIGNvZGluZywgdGhhbiB1c2lu ZyAgCm92ZXJsb2FkZWQgbWV0aG9kcy4gRm9yIGV4YW1wbGUgSSBuZWVkZWQgdG8gcGFyc2UgZXNj YXBlIHNlcXVlbmNlcyBpbiBhICAKc3RyaW5nLiBXaXRoIHN3aXRjaCBzdWNoIG9wZXJhdGlvbiBy ZXF1aXJlcyBzaW1wbGUgYW5kIG9idmlvdXMgc3dpdGNoOgoKaWYoIOKAmFxc4oCZID09IGMgKQog ICBzd2l0Y2goIGxpbmVbIGkgKyAxIF0gKSB7CiAgICAgY2FzZSDigJhy4oCZIDogLy8g4oCYXHLi gJkgcHJvY2Vzc2luZwogICAgIGNhc2Ug4oCYdOKAmSA6IC8vIOKAmFx04oCZIHByb2Nlc3NpbmcK ICAgICDigKYKICAgICBjYXNlIOKAmHjigJk6IC8vIOKAmFx4WFjigJkgcHJvY2Vzc2luZy4KICAg fQoKQnV0IHdpdGhvdXQgc3dpdGNoIEkgbmVlZCB0byB3cml0ZSBzb21lIHRvcC1sZXZlbCBvdmVy bG9hZGVkIG1ldGhvZHMgZm9yICAKZWFjaCBraW5kIG9mIGVzY2FwZSBzZXF1ZW5jZToKClNvbWVS ZXRUeXBlIG9uQ2hhcihjdXJyZW50X2NoYXIsIGxpbmUsIGluZGV4KSB7IOKApiB9Cm9uQ2hhcigg 4oCYcuKAmSwgbGluZSwgaW5kZXgpIHsg4oCmIH0Kb25DaGFyKCDigJh04oCZLCBsaW5lLCBpbmRl eCkgeyDigKYgfQrigKYKb25DaGFyKCDigJh44oCZLCBsaW5lLCBpbmRleCkgeyDigKYgfQrigKYK aWYoIOKAmFxc4oCZID09IGMgKQogICDigKYgPSBvbkNoYXIoIGxpbmVbaSArIDFdLCBsaW5lLCBp KzEpOwoKb3Igd3JpdGUgc2VxdWVuY2Ugb2YgaWYtZWxzZS1pZiBzdGF0ZW1lbnRzOgoKaWYoIOKA mFxc4oCZID09IGMgKSB7CiAgIGxldCBuZXh0ID0gbGluZVtpKzFdOwogICBpZigg4oCYcuKAmSA9 PSBuZXh0ICkg4oCmCiAgIGVsc2UgaWYoIOKAmHTigJkgPT0gbmV4dCApIOKApgrigKYKfQoKSSB0 aGluayB0aGF0IHN1cHBvcnQgb2YgdmFsdWUgZGlzcGF0Y2ggZm9yIGxvY2FsIGZ1bmN0aW9ucyBj b3VsZCBoZWxwICAKdGhlcmUsIGJlY2F1c2UgaWYgYWxsb3dzIHRvIHdyaXRlIGxlc3MgY29kZSB0 aGVuIGluIHRoZSBjYXNlIG9mIHRvcC1sZXZlbCAgCm92ZXJsb2FkZWQgbWV0aG9kczoKCmlmKCDi gJhcXOKAmSA9PSBjICkgewogICB2b2lkIG9uQ2hhciggY2hhciBjaCApIHsg4oCmIH0KICAgb25D aGFyKCDigJhy4oCZICkgeyDigKYgfQogICBvbkNoYXIoIOKAmHTigJkgKSB7IOKApiB9CiAgIOKA pgogICBvbkNoYXIoIGxpbmVbaSsxXSApOwp9Cgo9PSBFcnJvciByZXBvcnRpbmcgaW4gZ2V0b3B0 IGxpYnJhcnkgPT0KClRoZSBuZXh0IGlzIGEgZXJyb3IgcmVwb3J0aW5nIGluIG5pY2UuZ2V0b3B0 IGxpYnJhcnkuIFdoZW4gIApuaWNlLmdldG9wdC5wYXJzZSBmaW5kcyB1bmtub3duIG9wdGlvbiBp dCBwcmludHMgZXJyb3IgbWVzc2FnZXMgb24gdGhlICAKc3RhbmRhcmQgZXJyb3Igc3RyZWFtIGFu ZCBjb250aW51ZXMgYXJndW1lbnQgcGFyc2luZy4gQnV0IHN1Y2ggYXBwcm9hY2ggIApub3QgYWx3 YXlzIGRlc2lyYWJsZS4gSSB0aGluayBpdCBpcyBuZWNlc3NhcnkgdG8gaGF2ZSBtb2RlIGluIHdo aWNoICAKbmljZS5nZXRvcHQucGFyc2UgcmFpc2VzIGV4Y2VwdGlvbiBvbiB1bmtub3duIG9wdGlv bi4KCj09IE5vIHNvdXJjZSBmaWxlIG5hbWUvbGluZSBudW1iZXIgaW4gdGhlIGV4Y2VwdGlvbiBz dGFjayB0cmFjZSA9PQoKSSB1c2UgTmljZSAwLjkuMTMgdW5kZXIgV2luZG93cyBhbmQgb24gZXhj ZXB0aW9uIEkgaGF2ZSB0aGF0OgoKamF2YS5sYW5nLkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2Vw dGlvbjogMAogICAgICAgICBhdCB0MS5mdW4ubWFpbihVbmtub3duIFNvdXJjZSkKICAgICAgICAg YXQgdDEuZGlzcGF0Y2gubWFpbihVbmtub3duIFNvdXJjZSkKCmZvciB0aGUgcHJvZ3JhbToKCnZv aWQgbWFpbiggU3RyaW5nW10gYXJncyApCiAgIHsKICAgICB0cnkKICAgICAgIHsKICAgICAgICAg cHJpbnRsbiggYXJnc1sgYXJncy5sZW5ndGggXSApOwogICAgICAgfQogICAgIGNhdGNoKCBFeGNl cHRpb24geCApCiAgICAgICB7CiAgICAgICAgIHgucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICB9 CiAgIH0KCk1heSBiZSBpdCBpcyBhIGJ1Zz8KCj0gU29tZSBwcm9wb3NhbHMgPQoKPT0gQSBraW5k IG9mIFJ1YnkvU21hbGxUYWxr4oCZcyBjb2RlIGJsb2NrcyBpbiBOaWNlID09CgpOaWNlIGFscmVh ZHkgaGFzIHN5bnRheCBzdWdhciBmb3IgbWV0aG9kcyB3aXRoICgpLT52b2lkIGFzIGxhc3QgYXJn dW1lbnQ6Cgp2b2lkIGYoICgpLT4gdm9pZCBhY3Rpb24gKSB7IOKApjsgYWN0aW9uKCk7IOKApiB9 CmYoKSB7IGJsYS1ibGEtYmxhIH0KCkFuZCBtYXkgYmUgTmljZSBjb3VsZCBzdXBwb3J0IHN1Y2gg c3VnYXIgZm9yIG90aGVyIHR5cGVzIG9mIGxhbWJkYXMuIEZvciAgCmV4YW1wbGU6Cgp2b2lkIGco IChBLCBCLCBDKS0+IHZvaWQgYWN0aW9uICkgewogICDigKY7CiAgIGFjdGlvbiggcDEsIHAyLCBw MiApOwogICDigKYKfQpnKCkgeyB8YSwgYiwgY3wKICAg4oCmCn0KCndoZXJlIGEsIGIgYW5kIGMg d2lsbCBoYXZlIHR5cGVzIEEsIEIgYW5kIEMuCkl0IGNvdWxkIGFsbG93IHdyaXRpbmcgbGVzcyBj b2RlLiBGb3IgZXhhbXBsZSwgSSBjcmVhdGVkIGhlbHBlciBmdW5jdGlvbgoKU3RyaW5nIGZvcm1h dEhlbHBlciggUHJpbnRTdHJlYW0gPT4gdm9pZCBwcmludEFjdGlvbiApIHsKICAg4oCmIGxldCBw cyA9IG5ldyBQcmludFN0cmVhbSgg4oCmICk74oCmCiAgIHByaW50QWN0aW9uKCBwcyApOwogICDi gKYgcmV0dXJuIOKApgp9Cgp3aGljaCB3YXMgdXNlZCBsaWtlIHRoaXM6Cgpmb3JtYXRIZWxwZXIo IFByaW50U3RyZWFtIHByaW50ZXIgPT4geyDigKYgc29tZSBhY3Rpb25zIOKApiB9ICk7CgpSZXBl YXRpbmcg4oCcUHJpbnRTdHJlYW0gcHJpbnRlciA9PuKAnSBvbiBldmVyeSBmb3JtYXRIZWxwZXIg aW52b2NhdGlvbiB3YXMgYSAgCmJvcmluZyB0YXNrLiBTbyB0aGUgZm9ybToKCmZvcm1hdEhlbHBl cigpIHsgfHByaW50ZXJ8IOKApnNvbWUgYWN0aW9uc+KApn0KCmxvb2tzIG1vcmUgYXR0cmFjdGl2 ZS4KCj09IFJhbmdlcyBpbiB0aGUgZm9ybSBbbG93LGhpZ2gpID09CgpBRkFJSywgTmljZSBwcm92 aWRlcyBSYW5nZSBvbmx5IGluIHRoZSBmb3JtIFtsb3csIGhpZ2hdIChlYWNoIGxpbWl0ICAKaW5j bHVkZWQpLiBCZWNhdXNlIG9mIHRoYXQgc29tZXRpbWVzIEkgbmVlZCB0byB3cml0ZToKCmZvcigg aSA6IDAuLihhcnJheS5sZW5ndGgtMSkgKSDigKYKCkkgdGhpbmsgaXQgd291bGQgYmUgdXNlZnVs IGlmIHRoZXJlIHdvdWxkIGJlIFJhbmdlcyBpbiB0aGUgZm9ybSBbbG93LCAgCmhpZ2gpIChleGNs dWRpbmcgdXBwZXIgbGltaXQpLiBMaWtlIGluIFJ1YnkgYOKApmAgb3BlcmF0b3IgY291bGQgY3Jl YXRlIHN1Y2ggIApSYW5nZToKCmZvciggaSA6IDDigKZhcnJheS5sZW5ndGggKSDigKYKCj09IEhl bHBlciBtZXRob2QgZWFjaExpbmUgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkgPT0KClRoZSBzdGFu ZGFyZCBsaWJyYXJ5IGNvbnRhaW5zIHJlYWRMaW5lIG1ldGhvZC4gQW5kIEkga25vdyBmcm9tIFJ1 YnkgdGhhdCAgCnN1Y2ggZWFjaExpbmUgY291bGQgYmUgdmVyeSB1c2VmdWwgc29tZXRpbWVzOgoK dm9pZCBlYWNoTGluZSAoIElucHV0U3RyZWFtIGZyb20sIFN0cmluZy0+dm9pZCBhY3Rpb24gKQog ICB7CiAgICAgbGV0IHJlYWRlciA9IG5ldyBCdWZmZXJlZFJlYWRlciggbmV3IElucHV0U3RyZWFt UmVhZGVyKCBmcm9tICkgKTsKICAgICB2YXIgbGluZSA9IHJlYWRMaW5lKCByZWFkZXIgKTsKICAg ICB3aGlsZSggbGluZSAhPSBudWxsICkKICAgICAgIHsKICAgICAgICAgYWN0aW9uKCBsaW5lICk7 CiAgICAgICAgIGxpbmUgPSByZWFkTGluZSggcmVhZGVyICk7CiAgICAgICB9CiAgIH0KCj09IEhl bHBlciBtZXRob2Qgc3ByaW50ZiBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSA9PQoKU29tZXRpbWVz IGl0IGlzIG5lY2Vzc2FyeSB0byBjcmVhdGUgZGVzY3JpcHRpb24gb2Ygc29tZXRoaW5nIGluIHRo ZSAgCnByb2dyYW0gKGZvciBleGFtcGxlIGJlZm9yZSByYWlzaW5nIGV4Y2VwdGlvbikuIEluIHRo YXQgY2FzZSB0aGUgZm9sbG93aW5nICAKc3ByaW50ZiBtZXRob2QgY291bGQgaGVscDoKClN0cmlu ZyBzcHJpbnRmKCBTdHJpbmcgZm9ybWF0U3RyaW5nLCBPYmplY3RbXSBhcmdzICkKICAgewogICAg IGxldCBidWZmZXIgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CiAgICAgbGV0IHByaW50 ZXIgPSBuZXcgUHJpbnRTdHJlYW0oIGJ1ZmZlciApOwogICAgIHByaW50ZXIucHJpbnRmKCBmb3Jt YXRTdHJpbmcsIGFyZ3MgKTsKICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CiAgIH0KCkV4 YW1wbGUgb2YgdXNhZ2U6Cgp0aHJvdyBuZXcgSWxsZWdhbFZhbHVlKCBzcHJpbnRmKCDigJx2YWx1 ZSDigJglZOKAmSBpcyBvdXQgcmFuZ2UgWyVkLCVkXeKAnSwgIApbIHZhbHVlLCBsb3csIGhpZ2gg XSApICk7CgoKLS0KVGhhdOKAmXMgYWxsIG5vdy4gVGhhbmtzIGZvciBwYXRpZW5jZS4KSeKAmWxs IGludmVzdGlnYXRlIE5pY2UgbGFuZ3VhZ2UgZnVydGhlci4KCgotLSAKUmVnYXJkcywKWWF1aGVu aSBBa2hvdG5pa2F1ClNlbmlvciBQcm9ncmFtbWVyCkludGVydmFsZQplLW1haWw6ZWFvMTk3QGlu dGVydmFsZS5ydSA8bWFpbHRvOmVhbzE5N0BpbnRlcnZhbGUucnU+CgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ClRoaXMgU0YubmV0IGVtYWlsIGlzIHNwb25zb3JlZCBieTogTWljcm9zb2Z0CkRlZnkgYWxsIGNo YWxsZW5nZXMuIE1pY3Jvc29mdChSKSBWaXN1YWwgU3R1ZGlvIDIwMDguCmh0dHA6Ly9jbGsuYXRk bXQuY29tL01SVC9nby92c2UwMTIwMDAwMDcwbXJ0L2RpcmVjdC8wMS8KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmljZS1pbmZvIG1haWxpbmcgbGlzdApO aWNlLWluZm9AbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2Uu bmV0L2xpc3RzL2xpc3RpbmZvL25pY2UtaW5mbwo=