- Move to a Python process for the LanguageLink client [fixes #1, presumably] - Finish a first rough draft of the booklet [fixes #4]
224 lines
6.0 KiB
Plaintext
224 lines
6.0 KiB
Plaintext
{
|
||
"__schema" : "4.1",
|
||
"__type" : "page",
|
||
"children" : {
|
||
"__type" : "snippets",
|
||
"items" : [
|
||
{
|
||
"__type" : "textSnippet",
|
||
"children" : {
|
||
"__type" : "snippets",
|
||
"items" : [ ]
|
||
},
|
||
"createEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"createTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:49:47.434396+02:00"
|
||
}
|
||
},
|
||
"editEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"editTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:50:11.430885+02:00"
|
||
}
|
||
},
|
||
"uid" : {
|
||
"__type" : "uid",
|
||
"uidString" : "YVM4u4+dDQC/eTezA8ExpA=="
|
||
},
|
||
"paragraphStyle" : {
|
||
"__type" : "textStyle"
|
||
},
|
||
"string" : "Building a LanguageLink client is easy, but not necessarily simple, since it involves writing a lot of mostly glue code."
|
||
},
|
||
{
|
||
"__type" : "textSnippet",
|
||
"children" : {
|
||
"__type" : "snippets",
|
||
"items" : [ ]
|
||
},
|
||
"createEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"createTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:50:15.711236+02:00"
|
||
}
|
||
},
|
||
"editEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"editTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:52:49.226165+02:00"
|
||
}
|
||
},
|
||
"uid" : {
|
||
"__type" : "uid",
|
||
"uidString" : "suJsv4+dDQC/h6EvA8ExpA=="
|
||
},
|
||
"paragraphStyle" : {
|
||
"__type" : "textStyle"
|
||
},
|
||
"string" : "As an entry-point, you will have to write a {{gtClass:LanguageLinkApplication}}. The (very spartan) one for Carp is {{gtClass:CarpApplication}}. Writing the application will give you a lay of the land, since it’s the central piece of infrastructure that holds on to all the rest."
|
||
},
|
||
{
|
||
"__type" : "textSnippet",
|
||
"children" : {
|
||
"__type" : "snippets",
|
||
"items" : [ ]
|
||
},
|
||
"createEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"createTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:52:50.001285+02:00"
|
||
}
|
||
},
|
||
"editEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"editTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:53:48.39118+02:00"
|
||
}
|
||
},
|
||
"uid" : {
|
||
"__type" : "uid",
|
||
"uidString" : "/4qmyI+dDQC/i6IPA8ExpA=="
|
||
},
|
||
"paragraphStyle" : {
|
||
"__type" : "textStyle"
|
||
},
|
||
"string" : "In the Carp application, I tried to use stock classes from LanguageLink wherever possible. Only when that didn’t work did I add classes. I also took inspiration from {{gtClass:JSLinkApplication}}, since it was there and seemed to provide rich functionality."
|
||
},
|
||
{
|
||
"__type" : "textSnippet",
|
||
"children" : {
|
||
"__type" : "snippets",
|
||
"items" : [ ]
|
||
},
|
||
"createEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"createTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:53:50.150304+02:00"
|
||
}
|
||
},
|
||
"editEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"editTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:57:15.031561+02:00"
|
||
}
|
||
},
|
||
"uid" : {
|
||
"__type" : "uid",
|
||
"uidString" : "hy01zI+dDQC/j6rJA8ExpA=="
|
||
},
|
||
"paragraphStyle" : {
|
||
"__type" : "textStyle"
|
||
},
|
||
"string" : "In total, all the classes that needed filling in were {{gtClass:CarpPostMortemDebugger}} (used in: {{gtMethod:CarpApplication>>debuggerClientFor:}}), {{gtClass:CarpExecutionHandler}} (used in {{gtMethod:CarpApplication>>#initializeHandlers}}), and all the classes in {{gtMethod:LanguageLinkSettings class>>carpDefaultSettings|expanded}} prefixed with `Carp`:"
|
||
},
|
||
{
|
||
"__type" : "textSnippet",
|
||
"children" : {
|
||
"__type" : "snippets",
|
||
"items" : [ ]
|
||
},
|
||
"createEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"createTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:57:33.45648+02:00"
|
||
}
|
||
},
|
||
"editEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"editTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:59:17.862655+02:00"
|
||
}
|
||
},
|
||
"uid" : {
|
||
"__type" : "uid",
|
||
"uidString" : "sPXB2I+dDQC/k6TTA8ExpA=="
|
||
},
|
||
"paragraphStyle" : {
|
||
"__type" : "textStyle"
|
||
},
|
||
"string" : "Implementing and understanding all of these classes might seem like a daunting task, and in many ways it is. But implementing most of these classes is simple and doesn’t at first require a thorough understanding of the system, at least that was the case for me. This means that you can just browse the existing implementors of any specific piece of infrastructure and “compare notes”. This approach got me f"
|
||
}
|
||
]
|
||
},
|
||
"createEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"createTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:49:04.110462+02:00"
|
||
}
|
||
},
|
||
"editEmail" : {
|
||
"__type" : "email",
|
||
"emailString" : "<unknown>"
|
||
},
|
||
"editTime" : {
|
||
"__type" : "time",
|
||
"time" : {
|
||
"__type" : "dateAndTime",
|
||
"dateAndTimeString" : "2022-06-11T17:49:04.110462+02:00"
|
||
}
|
||
},
|
||
"pageType" : {
|
||
"__type" : "namedPage",
|
||
"title" : "Building a LanguageLink client"
|
||
},
|
||
"uid" : {
|
||
"__type" : "uuid",
|
||
"uuid" : "3aab37bb-8f9d-0d00-bf78-07ff03c131a4"
|
||
}
|
||
} |