Typepad सेवा बंद होने और डोमेन ट्रांसफर की जानकारी
(ttimo.typepad.com)- Typepad बंद होने के कारण मौजूदा ब्लॉग संचालकों को लॉगिन और फ़ाइल एक्सेस बंद होने की स्थिति में डोमेन और कंटेंट ट्रांसफर करना है या नहीं, यह खुद तय और व्यवस्थित करना होगा
- सेवा समाप्ति की तारीख 30 सितंबर 2025 है, और इसके बाद अकाउंट लॉगिन की सुविधा अब उपलब्ध नहीं होगी
- जिन ग्राहकों ने सेवा समाप्ति के बाद की अवधि तक वार्षिक शुल्क चुकाया था, उन्हें प्रोरेटेड रिफंड जारी किया गया है; अगर रिफंड विवरण में नहीं दिख रहा है, तो बैंक से पुष्टि करनी होगी
- सभी ब्लॉग डेटा हटाए जाने वाले हैं, और व्यक्तिगत जानकारी से जुड़े प्रश्नों के अलावा एक्सेस बढ़ाने या रिकवरी का कोई रास्ता उपलब्ध नहीं कराया जाएगा
- Typepad Domains में रजिस्टर्ड डोमेन 27 अक्टूबर 2025 को Reseller Club में ट्रांसफर किए जाएंगे, और नए प्लेटफ़ॉर्म से जोड़ने के लिए मौजूदा Typepad CNAME को हटाना होगा
सेवा समाप्ति के बाद अकाउंट और डेटा का प्रबंधन
- Typepad की सेवा समाप्ति की तारीख 30 सितंबर 2025 है
- समाप्ति की तारीख के बाद उपयोगकर्ता अपने अकाउंट में लॉगिन नहीं कर सकेंगे
- जिन ग्राहकों ने समाप्ति की तारीख के बाद की अवधि तक वार्षिक सेवा शुल्क दिया था, उन्हें प्रोरेटेड रिफंड जारी किया गया है
- अगर स्टेटमेंट में रिफंड दिखाई न दे, तो बैंक से संपर्क करना होगा
- अगर वैध क्रेडिट कार्ड रजिस्टर्ड नहीं था, तो संभव है रिफंड प्रोसेस न हुआ हो
- सेवा बंद होने के बाद फ़ाइल एक्सेस बंद हो जाएगी, और कोई अलग एक्सटेंशन भी उपलब्ध नहीं कराया जाएगा
- सभी ब्लॉग डेटा हटाए जाने वाले हैं, और व्यक्तिगत जानकारी से जुड़े प्रश्न privacy@newfold.com पर भेजने होंगे
Typepad Domains ट्रांसफर और नए ब्लॉग से कनेक्शन
- Typepad Domains, LogicBoxes का एक reseller है, और Typepad Domains में रजिस्टर्ड सभी डोमेन 27 अक्टूबर 2025 को LogicBoxes के दूसरे पार्टनर Reseller Club में ट्रांसफर कर दिए जाएंगे
- संबंधित उपयोगकर्ताओं को Reseller Club से आगे की जानकारी वाला ईमेल मिलेगा
- LogicBoxes से डोमेन को कहीं और ट्रांसफर करने की ज़रूरत नहीं है; इसके बाद भी Reseller Club के ज़रिए उन्हें मैनेज किया जा सकेगा
- अगर डोमेन को किसी नई ब्लॉग सेवा या प्लेटफ़ॉर्म से जोड़ना है, तो मौजूदा Typepad की ओर इशारा करने वाला CNAME record हटाना होगा और नई सेवा की आवश्यकताओं के अनुसार सेट करना होगा
- 27 अक्टूबर 2025 से पहले Typepad Domains में लॉगिन करके सेटिंग बदलें
- 27 अक्टूबर 2025 के बाद Reseller Club में लॉगिन करके सेटिंग बदलें
- अगर Typepad Domains के बजाय कोई दूसरा registrar इस्तेमाल कर रहे हैं, तब भी उसी registrar में Typepad की ओर इशारा करने वाला CNAME record हटाकर उसे नई ब्लॉग सेवा या प्लेटफ़ॉर्म की ओर सेट करना होगा
- किसी खास ब्लॉग को ढूंढने वाले पाठकों को यह जानने के लिए कि ब्लॉग दोबारा कहाँ प्रकाशित हुआ है, संबंधित ब्लॉगर से सीधे संपर्क करना होगा
- अतिरिक्त प्रश्न Network Solutions के फोन या चैट के जरिए पूछे जा सकते हैं
1 टिप्पणियां
Hacker News की राय
एक patch समीक्षा में है: https://inbox.sourceware.org/libc-alpha/cover.1722193092.git...
यह https://issues.redhat.com/browse/RHEL-42410 की वजह से शुरू हुआ था, और RHEL 9 में किसी वजह से कम दिखाई देने वाली graphics stack stability की समस्या थी
कम-से-कम पहला patch, यानी getenv thread-safety fix, glibc 2.41 में जाने की उम्मीद है, और backport भी काफ़ी सुरक्षित लग रहा है
setenv को संभालना अपेक्षाकृत आसान है, क्योंकि glibc पहले से ही environment variable strings को कभी free नहीं करता; मुश्किल हिस्सा concurrent unsetenv है
snapshot approach के बिना, getenv असल में set की गई environment variable value लौटाने के बजाय null pointer लौटा सकता है
getenv में lock लगाना नहीं चाहता, क्योंकि setenv के बिना इस्तेमाल होने वाला getenv बहुत लंबे समय से async-signal-safe माना जाता रहा है, और lock जोड़ने से applications टूटने की संभावना काफ़ी है
environ handling को ठीक करना vfork+execve की वजह से memory leak से बचने के लिए जटिल है, इसलिए यह थोड़ा ज़्यादा विवादित है, लेकिन ये अतिरिक्त fixes graphics stack stability के लिए कम अहम हैं
अगर length बहुत बढ़ जाए, तो setenv चलाने वाला thread नया hashmap बना सकता है, और पुराने pointer को नए pointer से atomically replace कर सकता है
दो threads एक साथ rehash न करें, इसके लिए current rehash चल रहा है या नहीं यह बताने वाला atomic flag इस्तेमाल किया जा सकता है
इस बीच अगर कोई दूसरा thread setenv call करे, तो अतिरिक्त variables list में जुड़ जाएँगे, और बाद में setenv call होने पर process हो जाएँगे
अगर काफ़ी सारे threads तेज़ी से setenv call करें तो list अनंत तक बढ़ सकती है, लेकिन setenv अक्सर call नहीं होता, इसलिए pointer atomic replacement की simplicity valuable लगती है
दशकों पुरानी पैरों तले बिछी बारूदी सुरंग जैसी चीज़ है, निराशाजनक
आजकल Linux पर Steam इतनी अच्छी तरह चलती है, इसके लिए सच में आभारी हूँ
हमारे लिए इस हकीकत को बनाने में पर्दे के पीछे जो मेहनत लगती है, उसे मैं हल्के में नहीं लेता
मैं उसी के आधार पर gaming tower बनाना चाहता हूँ
Bazzite से compromise कर सकता हूँ, लेकिन सच कहूँ तो SteamOS ही चाहता हूँ
लगता है boot के समय सभी environment variables पढ़ लेना और setenv का कभी इस्तेमाल न करना best practice नहीं है क्या
setenv का एकमात्र meaningful use नया process launch करते समय है, और उस मामले में भी current environ को clone करके नया environ बनाना और नई values update करना ज़्यादा सही लगता है
getenv/setenv को inter-process communication messaging mechanism की तरह इस्तेमाल करना, Linux में ऐतिहासिक रूप से thread-safe न होने की समस्या के अलावा hidden memory leak की संभावना जैसे कई और मुद्दों को न्योता देता है
लेख में जब macOS को thread-safe कहा गया है, तो लगता है ऐसी बातों को ignore किया गया है
Java बताए गए तरीके से करता है, लेकिन getenv() चाहने वाली library का इस्तेमाल करने वाले JNI code में फिर भी समस्या आती है
असली सवाल यह है: क्या सच में ऐसा कोई case है जहाँ एक thread में
setenvcall किया जाए, और आप चाहते हों कि वह बदलाव पहले से मौजूद दूसरे threads पर भी लागू हो?फिर भी GLIBC dangerous functions को काफ़ी अच्छे से document करता है, इसलिए खुद locking या copying जोड़ना संभव है
ऐसे programs ज़रूर होंगे जो उम्मीद करते हैं कि setenv environ array को बदलता है, और शायद वे इसे posix_spawn/execve को pass होने वाले opaque pointer की तरह ही treat नहीं करते
per-thread setenv करने के लिए per-thread environ variable भी चाहिए होगा
लेकिन यह POSIX से ठीक से मेल नहीं खाता, क्योंकि environ header में declared नहीं होता और programmer को source में खुद
extern char **environ;declaration लिखना होता हैयह declaration environ के thread-local variable होने के साथ compatible नहीं है
लेख में भी Steam client की ongoing problem के रूप में इसी हिस्से को cover किया गया है
मेरे case में worker threads सभी run queue में सो रहे होते हैं इसलिए समस्या नहीं बनती, लेकिन तकनीकी रूप से यह वही situation है जहाँ एक thread में environment variable set करके पहले से चल रहे दूसरे thread में उसे पढ़ना चाहता हूँ
पता नहीं किस threading library में shared memory या message passing नहीं है
शायद यह मुख्यतः ऐसी situation में होता है जहाँ main process HTTPS_PROXY जैसे variables बदलता है, और दूसरे thread में TCP socket खोलने से पहले उस variable को check करने वाली library चलती है
संदर्भ के लिए, Mac पर मेमोरी leak कराने का फैसला असल में करीब 26 साल पहले FreeBSD तक जाता है: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=5604
OSX ने इसे विरासत में लिया, और Windows का setenv भी लाइसेंस की वजह से BSD lineage का हो सकता है, इसमें हैरानी नहीं
26 साल पहले भी पता था कि यह API टूटा हुआ है, लेकिन buggy programs को और ज्यादा तोड़ देने वाली inertia की वजह से इसे ठीक नहीं किया गया
अपने ही process के environment variables बदलने की जरूरत शायद ही पड़नी चाहिए
child process के लिए सही exec function इस्तेमाल कर सकते हैं, और बाकी मामलों में global variable बदलकर यह उम्मीद करने के बजाय कि दूर पड़ा code उसे फिर से पढ़ेगा और सही तरह handle करेगा, साफ़ API call करनी चाहिए
मौजूदा API के हिसाब से यह सही है, लेकिन API में बहुत छोटा सा बदलाव करने पर यह संभव हो जाता है
getenv() return करने से पहले value को
strdup()कर दे, और programmer इस्तेमाल के बाद memory free करे, इतना काफी हैअगर लगे कि value बदल सकती है, तो programmer को getenv() फिर से call करना होगा, लेकिन यह एक reasonable trade-off लगता है
यह बदलाव पुराने programs में हर बार getenv() call के बाद
free()न करने पर memory leak कराएगा, लेकिन मौजूदा version भी memory leak करता है, इसलिए यह कोई निर्णायक समस्या नहीं लगतीbonus के तौर पर नया version
strdup()को mutex से wrap कर सकता है और setenv() side पर भी वैसा ही करके इसे thread-safe बना सकता हैसहकर्मी ने setenv को “सबसे खराब Linux API” कहा, लेकिन क्या setenv सचमुच Linux API है?
इसे Linux ने define नहीं किया, यह POSIX में है, और Linux kernel ने भी इसे implement नहीं किया; यह पूरा user space में है
लगता है मूल लेखक और उनके सहकर्मी Valve में Steam support करते हैं, इसलिए संदर्भ यही है
उस सहकर्मी ने इसे सबसे खराब इसलिए नहीं कहा कि POSIX spec ऐसी है
POSIX सिर्फ इतना कहता है कि इस function का thread-safe होना जरूरी नहीं है; वह इसे thread-safe बनाने से रोकता नहीं
समस्या glibc के concrete implementation में है, जो वह C library है जिसे Valve द्वारा Steam support की जाने वाली सभी Linux distributions इस्तेमाल करती हैं, और वे distributions सब “Linux” के तहत grouped हैं
अगर libc चाहे तो इसे thread-safe बना सकती है
Go जैसी languages इस capability को internally implement करती हैं, इसलिए उन पर यह constraint नहीं है
POSIX document खुद भी इस limitation को ध्यान में रखता है: “The setenv() function need not be thread-safe.”
Linux पर nethack और chess खेलते हुए बड़ा होने के नाते, Steam का अस्तित्व ही मेरे लिए हैरानी की बात है
लेकिन Steam client सच में अजीब है
कई महीनों तक ठीक चलता है, फिर अचानक games start नहीं होते या कुछ और काम नहीं करता, और फिर सब files delete करने या reinstall जैसे अजीब काम करने पड़ते हैं ताकि फिर चले
इसका कोई logic नहीं बनता, और Steam client सड़ता हुआ लगता है
यह अलग-अलग design principles का मिला-जुला खिचड़ी है, और नए features बस बिल्कुल अलग UI और UX के साथ ऊपर से जोड़ दिए जाते हैं
client का ज्यादातर हिस्सा webview है, जो slow और bugs से भरा है, और internally बहुत पुराने और unsafe Chromium version का इस्तेमाल करता है
launcher अब भी 32-bit program है
हालांकि दुख की बात यह है कि दूसरे launchers इससे भी खराब हैं
उल्टा, जब से सिर्फ Linux इस्तेमाल करने लगा हूं, तब से ऐसे मामले कम झेलने पड़े हैं
Steam client और Linux programming, दोनों की झलक देने वाली वाकई दिलचस्प सामग्री है
समझता हूं कि हर release के लिए detailed release notes लिखना मुश्किल है, लेकिन यह काम जानने के बाद “कई आम crashes ठीक किए” कहना जबरदस्त understatement है
“अगर glibc में इस समस्या को हल किया जा सकता है, तो functionality में trade-off की जरूरत पड़ सकती है, या यह ‘असंभव’ POSIX spec से थोड़ा हटने वाला opt-in mechanism हो सकता है। अगर कोई reasonable proposal दे सके, तो long term में इसे आगे बढ़ाया जा सकता है” वाला हिस्सा — सच में उम्मीद है कि वे ऐसा करें
सच में जानना चाहता हूं कि setenv(3) इतना ज्यादा क्यों इस्तेमाल होता है
मेरे दिमाग में इसका मुख्य use case exec(3) जैसी चीज call करने से पहले environment variables set करना है, लेकिन यहां मामला वैसा नहीं लगता
लेख में कहा गया है कि child processes start करते समय वे exevpe इस्तेमाल करते हैं, तो setenv(3) का इस्तेमाल किस चीज़ के लिए बचता है, यह उत्सुकता है
nm -Dसे setenv/unsetenv/putenv के इस्तेमाल की जांच की जा सकती है, और मेरे~/.cargo/bin/*को मोटे तौर पर देखने पर भी ऐसे बहुत सारे programs दिखते हैं जो इन्हें इस्तेमाल करते हैंहो सकता है वे single-threaded हों, लेकिन कौन guarantee दे सकता है कि आगे भी हमेशा ऐसे ही रहेंगे
सोचने पर, symbol list से pthread_create भी detect किया जा सकता है
ऐसे symbols से call tree तक trace करने वाला static binary analysis तरीका भी हो तो दिलचस्प होगा
हालांकि
**environइस्तेमाल हो रहा है या नहीं, यह जांचने का कोई तरीका नहीं दिखता। compiler इसे किसी भी चीज़ में बदल सकता है