One for the Master, exploring 1950's life in a wool mill town. Book Review.

Currently, I am on a short trip in Melbourne so while poking around a local post shop (which by the way is full of fun gifty things from which I left with a handful of coloured pencils and a Miss Giggly impossible towel (don’t ask!) I was quite delighted to see displayed a novel by local Australian author Dorothy Johnston - a story set in 1950/60’s Geelong following the life and experiences within a town whose industry circled primarily around an industrious wool mill heading into a declining industry.
In Dorothy’s acknowledgements at the beginning of the book she thanks “the many employees and ex-employees of Geelong’s woollen mills who gave their time to talk to me”. It really showed in the writing. I fully enjoyed the attention to detail. “I fell asleep thinking of music and designing, and was aware of nothing till Highlands’ wake-up whistle beat into my dreams. The whistle won in the end; yet always in my dreams there were the colours, the lines, the patterns, coming together as I wanted them.”
Initially, the unfolding of the story felt like the development of a polaroid where you are transfixed to see which detail would emerge next. I later realised it wasn’t a photograph, but series of moments more reflective of the consistent whirl of a loom itself, revealing its story, and sometimes abruptly changing as a yarn snaps or a bobbing flies. “‘Shuttle!’ I shouted loudly as I could. ‘Shuttle!’ My shuttle had flown right out of my loom and cracked against the wall, sharp as a bullet.”
I will think carefully about this book and the crafted personas within. The wool industry in Australia and New Zealand DID change. Mills closed, families and towns forced to evolve. Dorothy, keep weaving stories and I shall practice ducking quick enough.
________________________
One for the Master by Dorothy Johnston
#foreverblankets #nzwool #newzealandwool #staywarm #labellove #woolhistory #nzwoolmills #kiwiana #graphicartsnz #buylocalnz #newzealandmade #australianwriter #australianwool
https://diamondlnwpg168.com/
https://github.com/Programming-from-A-to-Z/A2Z-F15/issues/30
https://github.com/defunkt/ambitious_activeldap/issues/14
https://github.com/openai/sparse_attention/issues/13
https://github.com/dashpradeep99/https-github.com-miguellgt-books/issues/6
https://github.com/HoyDiamond/DiamondSeo01/issues/1
https://github.com/cy4nguy/PythonSimpleKeylogger/issues/3
https://github.com/gzc/isystem/issues/1
https://github.com/SaeruHikari/SakuraEngine-Old/issues/3
https://github.com/xyba1337/ValorantEZTS/issues/3
https://github.com/henryjeff/portfolio-website/issues/16
https://github.com/EllanJiang/GameFramework/issues/76
https://github.com/HoyDiamond/DiamondSeo01/issues/2
https://github.com/qianjiahao/MongoDB/issues/2
https://github.com/u21h2/nacs/issues/13
https://github.com/Programming-from-A-to-Z/A2Z-F15/issues/31
https://www.paiklangna.com/
https://github.com/rafaballerini/GitTutorial/issues/200
https://github.com/Yalantis/uCrop/issues/948
import openai
import json
def generate_oflameron_exercise(api_key, target_language, student_language, topic, num_sentences=5):
Args: api_key (str): API ключ для OpenAI target_language (str): язык, который изучается (напр. “немецкий”) student_language (str): родной язык ученика (напр. “английский”) topic (str): тема упражнения num_sentences (int): количество предложений Returns: dict: структурированное упражнение """ openai.api_key = api_key prompt = f""" Создай упражнение для изучения {target_language} языка в формате Oflameron OBJECT. Требования: 1. Тема: “{topic}” 2. {num_sentences} предложений на {target_language} 3. Для студента, который говорит на {student_language} 4. Замени некоторые существительные в тексте на пиктограммы [ICON] 5. Создай словарь с переводом на {student_language} Верни ответ в формате JSON: {{ “exercise_title”: “название”, “instructions”: “инструкции для студента”, “word_bank”: [ {{"german": “слово”, “english”: “перевод”, “icon”: "пиктограмма"}} ], “sentences_with_icons”: [ “предложение с [ICON]” ], “answer_key”: [ “полное предложение” ] }} Используй разнообразные пиктограммы: 📝✈️🚗🏨💰👨🍳 и т.д. """ try: response = openai.ChatCompletion.create( model=“gpt-3.5-turbo”, messages=[ {"role": “system”, “content”: “Ты эксперт по созданию учебных материалов для изучения языков.”}, {"role": “user”, “content”: prompt} ], temperature=0.7, max_tokens=1500 ) Парсим JSON ответ"""
Генерирует упражнение в формате Oflameron OBJECT для изучения иностранного языка
content = response.choices0.message.content
exercise_data = json.loads(content) return exercise_data except Exception as e: print(f"Ошибка при генерации упражнения: {e}") return None https://github.com/vallshmeleff/pythonprompts/blob/main/deepseek-AI-python-prompt-2
def print_exercise(exercise_data):
"""Красиво выводит упражнение"""
if not exercise_data:
print(“Не удалось сгенерировать упражнение”)
return print(“=” * 50) print(f"🎯 {exercise_data[‘exercise_title’]}") print(“=” * 50) print(f"📝 {exercise_data[‘instructions’]}") print(“\n” + “🗂️ СЛОВАРЬ:”.ljust(20)) for word in exercise_data[‘word_bank’]: print(f" {word[‘icon’]} – {word[‘german’]} ({word[‘english’]})") print(“\n” + “📖 УПРАЖНЕНИЕ:”.ljust(20)) for i, sentence in enumerate(exercise_data[‘sentences_with_icons’], 1): print(f" {i}. {sentence}") print(“\n” + “🔑 ОТВЕТЫ:”.ljust(20)) for i, answer in enumerate(exercise_data[‘answer_key’], 1): print(f" {i}. {answer}") Пример использования
if name == “main”: Замени на свой API ключ
API_KEY = “your-openai-api-key-here” exercise = generate_oflameron_exercise( api_key=API_KEY, target_language=“немецкий”, student_language=“английский”, topic=“Мы прилетели в Берлин и едем в отель на такси”, num_sentences=6 ) if exercise: print_exercise(exercise)
https://scrapbox.io/DIAMOND16/Diamond168
https://diamondlnwpg168.com/
https://github.com/Programming-from-A-to-Z/A2Z-F15/issues/30
https://github.com/defunkt/ambitious_activeldap/issues/14
https://github.com/openai/sparse_attention/issues/13
https://github.com/dashpradeep99/https-github.com-miguellgt-books/issues/6
https://github.com/HoyDiamond/DiamondSeo01/issues/1
https://github.com/cy4nguy/PythonSimpleKeylogger/issues/3
https://github.com/gzc/isystem/issues/1
https://github.com/SaeruHikari/SakuraEngine-Old/issues/3
https://github.com/xyba1337/ValorantEZTS/issues/3
https://github.com/henryjeff/portfolio-website/issues/16
https://github.com/EllanJiang/GameFramework/issues/76
https://github.com/HoyDiamond/DiamondSeo01/issues/2
https://github.com/qianjiahao/MongoDB/issues/2
https://github.com/u21h2/nacs/issues/13
https://github.com/Programming-from-A-to-Z/A2Z-F15/issues/31
https://www.paiklangna.com/
https://github.com/rafaballerini/GitTutorial/issues/200
https://github.com/Yalantis/uCrop/issues/948
https://github.com/Programming-from-A-to-Z/A2Z-F15/issues/30
https://github.com/defunkt/ambitious_activeldap/issues/14
https://github.com/openai/sparse_attention/issues/13
https://github.com/dashpradeep99/https-github.com-miguellgt-books/issues/6
https://github.com/HoyDiamond/DiamondSeo01/issues/1
https://github.com/cy4nguy/PythonSimpleKeylogger/issues/3
https://github.com/gzc/isystem/issues/1
https://github.com/SaeruHikari/SakuraEngine-Old/issues/3
https://github.com/xyba1337/ValorantEZTS/issues/3
https://github.com/henryjeff/portfolio-website/issues/16
https://github.com/EllanJiang/GameFramework/issues/76
https://github.com/HoyDiamond/DiamondSeo01/issues/2
https://github.com/qianjiahao/MongoDB/issues/2
https://github.com/u21h2/nacs/issues/13
https://github.com/Programming-from-A-to-Z/A2Z-F15/issues/31
https://github.com/qw3rtman/p/issues/35
https://github.com/rafaballerini/GitTutorial/issues/200
https://github.com/Yalantis/uCrop/issues/948
https://www.paiklangna.com/
https://diamondlnwpg168.com/
https://scrapbox.io/DIAMOND16/Diamond168
https://diamondlnwpg168.com/
https://github.com/Programming-from-A-to-Z/A2Z-F15/issues/30
https://github.com/defunkt/ambitious_activeldap/issues/14
https://github.com/openai/sparse_attention/issues/13
https://github.com/dashpradeep99/https-github.com-miguellgt-books/issues/6
https://github.com/HoyDiamond/DiamondSeo01/issues/1
https://github.com/cy4nguy/PythonSimpleKeylogger/issues/3
https://github.com/gzc/isystem/issues/1
https://github.com/SaeruHikari/SakuraEngine-Old/issues/3
https://github.com/xyba1337/ValorantEZTS/issues/3
https://github.com/henryjeff/portfolio-website/issues/16
https://github.com/EllanJiang/GameFramework/issues/76
https://github.com/HoyDiamond/DiamondSeo01/issues/2
https://github.com/qianjiahao/MongoDB/issues/2
https://github.com/u21h2/nacs/issues/13
https://github.com/Programming-from-A-to-Z/A2Z-F15/issues/31
https://www.paiklangna.com/
https://github.com/rafaballerini/GitTutorial/issues/200
https://github.com/Yalantis/uCrop/issues/948