Back to "المعلومات الاستخباراتية - الجزء 1: الفلسفة"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

C# Privacy Product Segmentation

المعلومات الاستخباراتية - الجزء 1: الفلسفة

Wednesday, 24 December 2025

ما هذا هذا

هذه السلسلة تبني نظاماً تجارياً إلكترونياً عاملاً يثبت أنه يمكنك الحصول على معلومات متطوره عن العملاء دون حفظ معلومات شخصية.

‹ ماذا نبني ؟ كيف تعمل ؟ › |--------------|--------------| تجزئة تجزئة السيمادنة □ تجمُّع تَجَمُّع تَجَمُّع تَجَمُّع مصالح متشابهة إشارات الدورة، لا النبذات الدائمة □ الشفافية الكاملة: يرى المستعملون توقيعات مصلحتهم ويعدلونها صفر من العنصر الثاني من المشروع / أنماط سلوكية، لا هويات

(أ) مشروع العينة (بدولارات الولايات المتحدة)Mostlylucid.SegmentCommerce) تنفيذ كامل وعملي يمكنك تشغيله محلياً.

أولاً-

  • الجزء الأول (هذه المادة): الفلسفة - لماذا تتغلب الشفافية على عدم الشفافية
  • الجزء الأول: توليد بيانات عن العينة الاصطناعية محليا
  • الجزء الثاني:: موجزات الجلسات والإشارات وتعاريف الأجزاء
  • الجزء الثالث (جاء): نمط صندوق الخروج، ورتب الوظائف، والشفافية

الفرز الوَزَّال

وتعرض الصناعة الطابع الشخصي كخيار ثنائي:

(أ) الخيار ألف: الخيار المُصَدَّد ولكنه غير مُنحاز

  • جمع الكثير من الإشارات (مفيدة حقاً)
  • إعداد النبذات الدائمة المُحسّنة لاستهداف
  • التتبع عبر الموقع، وهويات الطرف الثالث، وفي كثير من الأحيان، بصمات الأصابع
  • لا يمكن للمستعملين أن يفتشوا أو يتحكموا
  • النتيجة: التلاعب السلوكي والقيمة الإعلانية، لا قيمة العميل

الخيار باء: الخصوصية - الاعتبار ولكن دون

  • لا تتبع على الإطلاق
  • المحتوى النوعي لكل فرد
  • لا شخصية، لا توصيات
  • النتيجة: تجربة المستخدم الرديئة، المشاركة المنخفضة

هذا هو a افتراضي افتراضيهناك بنية معمارية مفقودة

شخصية بدون هوية

ما إذا كان بإمكان العملاء:

  • هل ترى ما يهمهم من توقيعات في الوقت الحقيقي؟
  • هل تفهم بالضبط لماذا يرون توصيات محددة؟
  • تعديل أجزائها بضوابط بسيطة؟
  • يثقون بالنظام لأنهم يستطيعون تفتيشه؟

هذا ليس نظرياً سنبنيه

البصيرة الأساسية

لست بحاجة إلى أن تعرف من شخص ما هو بما في ذلك ما هم مهتمون به الآن.

flowchart LR
    A[Identity] --> B[Permanent profile]
    B --> C[Recommendations]

    S[Session token] --> T[Interest signals]
    T --> U[Session signature]
    U --> C
    U --> D[Fades naturally]

    U --> P[Anonymous profile]
    P --> X[Unmasked identity]

    style B stroke:#c92a2a,stroke-width:4px
    style U stroke:#1971c2,stroke-width:4px
    style P stroke:#2f9e44,stroke-width:4px
    style D stroke:#868e96,stroke-width:2px
    style X stroke:#868e96,stroke-width:2px

توقيع على مصلحة مثل:

"yoga • sustainability • minimalism • wellness • organic"

يخبرك بكل شيء تحتاجه من أجل شخصيتك دون أن تخبرك بأي شيء عن هوية الشخص

ويمكنها أن تعيش في دورة واحدة، أو أن تستمر بوصفها الهوية أن المستخدم يمكن إعادة ضبطه أو تصديره.

في وقت مبكر، أبسط طريقة للحفاظ على هذا الملف مستقراً بدون الدخول وضع علامة- نُفذت في 1 1 خ ع - خ ع - خ ع - خ ع - خ ع - خ ع - خ م (ب) و(ب) و(ب) و(ب) و(ب) و(ب) و(ب) و(ب) و(ب)

في قاعدة الشفرة الحالية (في قاعدة الشفرة الحالية)Mostlylucid.SegmentCommerceالمتصفح يُثبتُ a بصمة « ششش » شش (لا إشارات خام مرسلة، لا وجود محلات محلية، لا تتبع الكعكة) وتوقعه إلى /api/fingerprintالـ خادم ثم مُكَسَ ماسِكَس وَهٰذَا ٱلْمَشَاكِلُ لَا تَسْتَفِيدُ مِنْ هٰذِهِ ٱلْمَقَالَةِ ٱلْمَسِيحِيَّةِ ، وَتَرْبِطُهُ بِٱلْمَقَالَةِ ٱلْمُقَدَّسَةِ ٱلْمُقَدَّسَةِ .

نحن ما زلنا نستخدم (أ) دورة ما قبل ما قبل حالة الدورة القصيرة الأجل (النظرات والعربات والأحداث، وما إلى ذلك)، ولكننا نفعل ذلك غير في وقت لاحق من السلسلة يمكننا الارتقاء إلى نمط الهوية المسجلة الدخول (أعلى درجة من الثقة) دون تغيير بقية التصميم التجزئي.

flowchart TB
    A[Session only]
    B[Fingerprint mode]
    C[Cookie mode]
    D[Identity mode]

    A -->|no persistence| A
    B -->|hash in browser| E[/api/fingerprint/]
    E -->|HMAC on server| F[PersistentProfile key]

    A -. upgrade .-> B
    B -. optional upgrade .-> D
    C -. optional upgrade .-> D

    style A stroke:#868e96,stroke-width:2px
    style B stroke:#1971c2,stroke-width:3px
    style C stroke:#fab005,stroke-width:3px
    style D stroke:#2f9e44,stroke-width:3px
    style F stroke:#1971c2,stroke-width:3px

لا يجب أن يعني الثبات الهوية. لا يزال التوصيف منفصلاً ما لم يختار المستخدم صراحة أن "يحجب" عنه.

مقارنة مع التنميط التقليدي:

Name: John Smith
Email: [email protected]
Age: 34
Location: Seattle
Purchase history: [284 items tracked forever]
Browsing history: [Cross-site tracking across 47 domains]

الدالة الأولى تعطيك ** تقديم توصيات أفضل** مع مع المجموع صفرالثاني يغزّي الخصوصية ولا يزال يخطئ (تذكر أن شراء دفعة واحدة لا يزال يطارد طعامك بعد ستة أشهر؟).

المشكلة التي نحن بصددها

لقد خضتِ تجربة الإختلال بنفسكِ:

ما هي الخبرات التي اكتسبها المستعملون فيما يلي:

  • "الشعور بالغرابة"
  • "لماذا أرى هذا؟"
  • "لماذا لا يذهب هذا بعيدا؟"
  • "نظرت إلى تلك المرة كهدية لشخص آخر" "توقف عن عرض منتجات الأطفال عليّ"

ما لا يحصلون عليه:

  • نموذج عقلي لكيفية عمله
  • (أ) احساس السيطرة
  • الوظائف الاستئمانية الاستئمانية

ما تقوله الصناعة:

  • "الاستخدامات لن تفهم الخوارزمية على أي حال"
  • "الشفافية تسيء إلى معدلات التحويل"
  • "الحصانة والفردية غير متوافقين"
  • الخوارزمية معقدة جداً لشرحها

ولا تزال هذه المطالبات قائمة لأنها تتماشى مع الحوافز التجارية، لا مع الواقع التقني.

لماذا التقنية الكبيرة لا تفسر إيقاعهم

انها ليست تلك التي جوجل، الأمازون، ميتا، أو تيك تاك لا يمكن اشرح كيف تعمل نظم توصياتهم. انها بالتأكيد تستطيع. الخوارزميات ليست سحرية انها الرياضيات، الاحصائيات، وتعلم الآلات التي يمكن تفسيرها بالانجليزية البسيطة.

وهي تختار ألا تفعل ذلك لأن الشفافية من شأنها أن تقوض الافتراضات الاقتصادية التي تقوم عليها هذه النظم.

المشكلة الهيكلية

القضية الأساسية ليست تعقيدات تقنية بل أن هذه النظم تحقق أفضل النتائج المختلفة مما يفترضه المستخدمون.

ولا تكمن المشكلة في جمع الإشارات لجعل منتج أكثر فائدة، بل تكمن المشكلة في إعادة توجيه تلك الإشارات نفسها لأغراض الاستهداف والتلاعب السلوكي.

التّطوّل غالباً ما يتعارض مع قيمة المستخدم. أيّد المواضع يدفع ما تراه. السلوك السلوكيّ يُبقيك تتحرّك.

ومن شأن الشفافية أن تجعل هذه النزاعات أمراً بديهياً، ومن ثم يصبح التعتيم سمة، لا قيداً.

التحفيز التجاري لعزلة

وهناك أسباب تجارية وتجارية واسعة النطاق لتجنب الشفافية:

1 - نظام جمع البيانات

  • عمليات التتبع عبر المواقع، وعمليات شراء سمسار البيانات، والاستنتاجات السلوكية
  • المدى الكامل سيصدم معظم المستخدمين

2- تحقيق الأهداف المستهدفة

  • النظم التي تُحسَّن إلى المشاركة غالباً ما تؤدي إلى السخط
  • الإيرادات التي كثيرا ما تتضارب مع قيمة المستخدم
  • التطابق بين الأهداف المعلنة والأهداف الفعلية

3 - السمات البارزة

  • بيانات متراكمة على مر السنين دون انحلال طبيعي
  • إجراءات المعاملة كأفضليات دائمة
  • عدم التمييز بين الفضول والالتزام

"إنه أمر معقد جداً" "مُستعَد" "مُعَدّ"

عندما يتم الضغط عليها، تختبئ بيج تيك وراء: "الخوارزمية معقدة جدا للمستخدمين العاديين لفهم."

هذا التأطير مضلل. المستخدمون يفهمون بالفعل:

  • أسعار الفائدة وشروط القرض (الرياضيات المركبة)
  • الأوسمة (المجموعات الإحصائية)
  • التنبؤات بطقس الطقس (نماذج احتمالية)
  • الدرجات الائتمانية (خواريات متعددة العوامل)

ويمكنهم فهم التوصيات أيضاً - إذا اختارت الشركات شرحها.

التعقيد ليس الحاجز بل التعرض

الحل : تجزئة شفافة

ويبدأ بناء نظام للاستخبارات الخاصة بالزبائن ذي الرقم الصفري من مبدأ أساسي واحد: ينبغي أن يفهم المستخدمون ما يحدث ولماذا.

أنت لا تحتاج إلى ورقة بيضاء. تحتاج إلى نموذج عقلي إنجليزي بسيط يمكن للمستخدمين أن يستوعبوه خلال ثلاثين ثانية.

ما هو الجزء؟ (بالمصطلحات البشرية)

هذا ما لا يجب قوله:

"مجموعة مشتقة من التأسيس في فضاء ناقل عالي الأبعاد، مشتقة من درجات التشابه عبر المتجهات..."

هذا هو ما يعمل:

نحن نجمع المنتجات والمصالح في أجزاء صغيرة متداخلة مستندة على كيفية تفاعل الناس معها. من المحتمل أن تكون في عشرات الأجزاء في آن واحد - وهي تتغير باستمرار بناء على ما تفعله فعلا.

3 - ثلاثة مفاهيم رئيسية للتبليغ:

  1. (ج) أن تكون عناصر مُسْكَبَة - هم لَيسوا فئاتَ تُحْجَزُ إلى
  2. أنت في العديد في وقت واحد - الاهتمام بمعدات المشي لا يمنعك من الاهتمام بالطبخ
  3. يتغيرون عبر الزمن - مصالح الشهر الماضي لا تُعرّفُك إلى الأبد
graph TB
    User[Anonymous user] --> Action1[Views yoga mat]
    Action1 --> Sig1[Signature updated]

    Sig1 --> Action2[Views cookbook]
    Action2 --> Sig2[Signature updated]

    Sig2 --> Action3[Hides product]
    Action3 --> Sig3[Signature updated]

    Sig3 --> Sig4[Decays over time]
    Sig4 --> Sig5[Fades without reinforcement]

    Sig3 --> Segment1[Segment: wellness]
    Sig4 --> Segment2[Segment: general]
    Sig5 --> Segment3[Segment: cold start]

    style Sig3 stroke:#1971c2,stroke-width:4px
    style Segment1 stroke:#2f9e44,stroke-width:3px
    style Segment2 stroke:#fab005,stroke-width:3px
    style Segment3 stroke:#868e96,stroke-width:2px

هذا التأليف يميّز نظامك على الفور من المرعب "نظرت إلى هذه المرة، الآن سنعرضها عليك إلى الأبد" هذا أقرب إلى كيفية تصرف الناس في الواقع من "ملامح" ساكنة من أي وقت مضى.

ما هي الاشارات في الواقع

تعني الشفافية أن تكون محددة حول ماهية الإجراءات التي تؤثر على التقسيم - وإلى متى. جدول بسيط يفعل العجائب هنا:

□ الإجراء □ محور قوة الإشارة في الاشارات □ مدة العقد □ ملحوظات □ |--------|----------------|----------|-------| □ انقرة/رؤية واحدة □ ضعف □ الدقائق — الساعات □ الفضول ، لا الالتزام □ • وجهات نظر متعددة على مر الزمن "أنا مهتم" □ احفظ/أحفظ/العلامة علامة □ قوي □ أسابيع + □ إشارة عمدية □ □ "لا صلة لها بالموضوع" / / أخفي ● احترم الإشارة □ لا يوجد تعزيزات تتلاشى الفائدة بشكل طبيعي

هذا الجدول وحده يحول تجربة المستخدم من "خوارزمية غامضة" إلى "نظام عادل يمكنني التأثير عليه".

مُميِّز التفريق

وهذا هو أكبر فرق وحيد بين التقسيم والتنميط.

هنا حيث تشعّق قسمة 0-PII: ما لم يُفَدَّ.

"مشاهدة واحدة في وقت متأخر من الليل لن تتبعك لأسابيع. إذا لم تستمر في التعامل مع شيء ما، نحن نفترض أنك قد مضيت قدما."

نظم التتبع التقليدية تبني ملامح دائمة. كل عمل يتراكم إلى الأبد، يخلق صورة مشوهة بشكل متزايد لمن أنت.

فالنظام القائم على الاضمحلال يختلف اختلافاً جوهرياً:

  • المسائل المتعلقة بنشاط ما قبل النشاط القديم أكثر من النشاط القديم
  • فضول لمرة واحدة لا يصبح جزءاً من "هويتك"
  • النظام يتأقلم بشكل طبيعي مع تغير مصالحك

لا تحتاج إلى تفسير دالة التداعي الأسي أو حسابات نصف العمر. المستخدمون بحاجة إلى الطمأنينة، وليس الرياضيات.

الوكالة: تظهر الشركة توقيعها

هنا ما يميّز هذا النهج: يمكن للزبائن أن يروا ويكيفوا توقيعات مصالحهم الخاصة.

تخيل واجهة بسيطة تظهر:

Your Current Interests (this session)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌱 Sustainable Products     ████████░░ 80%
🧘 Yoga & Wellness          ███████░░░ 70%
📚 Minimalism              █████░░░░░ 50%
🏃 Athletic Gear           ████░░░░░░ 40%
🌿 Organic Foods           ███░░░░░░░ 30%

[Remove] [Adjust] [Add Interest]

These fade over time unless you keep engaging.
Last updated: 2 minutes ago

ويتيح هذا المستوى من الشفافية للمستعملين ما يلي:

  • الواجهة"لهذا السبب أرى هذه التوصيات"
  • وحدة من وحدة"في الواقع، أنا لست مهتمة في العتاد الرياضي بعد الآن" [[هـ
  • الوظائف الاستئمانية الاستئمانية"النظام يريني ما يعرفه" "ودعني أصححه"
  • الوكالة"أستطيع تشكيل تجربتي بدون إنشاء حساب"

مقارنة هذا بالنظم التقليدية حيث يكون لديك لا توجد اي فكرة ما هو الوصف الذي بنوه عنك لا توجد طريقة (ج) تفتيشها، لا توجد سيطرة الى تعديله.

الضوابط التي تبني الثقة

وحتى مع الحد الأدنى من التنفيذ، يمكنك أن تعرض قدرات لا تكاد توجد نظم للتجارة الإلكترونية توفر ما يلي:

وسائل النقل الأساسية:

  • "اصلاح هذا البند" o قمع فوري للقمع الفوري + إشارة سالبة إلى ذلك الجزء
  • "غير ذات صلة" (أ) تغذية مرتدة سلبية صريحة تعدل قوة القطاع
  • "أرني لماذا" ظرِس العروض التي أطلق فيها المصلحة هذه التوصية

الضوابط المسبقة (للآخر لاحقاً):

  • "أنا أبحث عن هدية" (طريقة مؤقتة لا تؤثر على توقيعك)
  • نظرة إلى منحنى الانحلال في الوقت الحقيقي
  • أفضليات معدل الخصوبة: "تذكر مصالحي للأيام/الأسابيع/الدورات فقط"
  • صدِّر توقيعك: تنزيل مُول اهتمامك الحالي كJSON

البصيرة الرئيسية: هذه ليست مجرد ميزات إنها عدد مرات الاستقبال"هذا النظام يستجيب لكِ، أنتِ لا تخضعين له"

الخصوصية من خلال الشفافية

وتبقي النظم التقليدية الخوارزميات غير معتمة لتجنب كشف نطاق جمع البيانات، والاستدلال السلوكي، وكيفية تحويل تلك المعلومات إلى نقود (الاستهداف، والنقد، والإسناد).

يمكننا أن نكون واضحين لأن هناك لا شيء يُخفى للإختباء:

  • لا توجد بيانات شخصية مخزنة (لا يمكن تسريب ما لا تملكه)
  • عدم إجراء أي عملية تتبع عبر الموقع (من منظور الدورة فقط)
  • لا توجد بيانات نمطية دائمة (Descay حسب التصميم)
  • لا صلة هوية (المصالح السرية، لا الهوية)
  • لا توجد مبيعات للبيانات (لا يوجد شيء للبيع)
  • لا يوجد إعلان عن الاستهداف (لا توجد ملامح إلى الهدف)

عندما يفحص المستخدمون توقيع اهتمامهم، يرون مفاهيم واضحة للدلالة: "sustainable products • yoga • minimalism" بدلاً من الاستنباطات الديمغرافية أو التنبؤات السلوكية.

هذه الشفافية ليست فقط أخلاقية. إنها ميزة تنافسية لأنه يمكنك أن تقول ما لا يمكن للمنافسين أن يقولوه:

"إليكم بالضبط كيف تعمل توصياتنا، تفقدوها، تحكموا بها، ثقوا بها."

لِمَ تُحَوِّلُ حَسَبَاتٍ مُحَسَّنَ مِنْشَاةِ الشفافية

عندما تستطيع شرح خوارزميتك بشكل مفتوح، يمكنك بناء خصائص تُستهدف الأنظمة المُحركة BAR BAR BAR BAR BAR:

دالات الشفافية

1 - حساب الفائدة الحقيقية في الوقت الحقيقي

  • المجلد الحالي
  • حدِّثه حيًا كما يتصفح
  • لا يمكن أن تفعل هذا إذا كانت خوارفك تعتمد على التتبع

2-

  • "اسحب هذه الفائدة بنسبة 50%"
  • "أنا أبحث عن هدية" (سياق مؤقت)
  • لا يمكن أن أعرض هذا إذا كنت تصنيف للمعلنين

٣- الايضــاحــات التوصيــات

  • "أنت ترى هذا لأنك نظرت إلى X"
  • "هذا جاء من اهتمامك بالعيش المستدام"
  • لا أستطيع أن أشرح إذا كان السبب الحقيقي هو "مبالغ إضافية مدفوعة للعمود"

4 - مراجعة الحسابات

  • يمكن للمستعملين التحقق من أن النظام عادل
  • لا يوجد تمييز أو تحيز مخفيان
  • لا يمكن السماح بالتفت التفتيش إذا كنت تفعل الاستهداف الديموغرافي

نقل البيانات

  • صدِّر توقيعك كـ JJSON
  • استوردها في جلسة جديدة
  • لا يمكن عرض هذا إذا كنت تتبع الهوية عبر المواقع

الميزات المُسْغات

إشعار ما هي التقنية الكبيرة لا يمكن دون أن تعترف بممارساتها:

  • "انظر لماذا ترى هذا الإعلان" (الإجابة الصادقة هي غالباً الاستهداف الجزئي)

  • "عدّل ملفك" (صعبة إذا كان التوصيف مبنياً من الاستدلال التعتيمي)

  • "التحقق من صحة خواروصيتنا عادلة" (يصعب مراجعة الحسابات إذا كان هدف التعظيم هو المشاركة)

  • "تصدر بياناتك" (غير مريح متى يوجد ملف طويل العمر)

                                    • (أ) أن يكون منقوساً ومكشوفاً لأن الشفافية من شأنها أن تعرض المراقبة.

بمجرد أن يتم شرح التجزيء بشكل واضح، يمكنك الطبقة من الميزات التي يثق بها المركب:

  • **** "المساعدة في الإيقاع بأجزاءك" (لا تتلاعب)
  • التصويت/الرجوع "يصبح "قوام الجزء المناسب" (السيطرة الصريحة)
  • **** "هذا جاء من الجزء العاشر" (منطق قابل للتتبع)
  • هذا (لا يكون غامضاً)
  • الوظائف الاستئمانية الاستئمانية مع مرور الوقت

أنتِ لا تبنين سمات في عزلة أنتِ تخلقين ألف - النظام المتماسك حيث كل قطعة تعزز مستخدمي النموذج العقلي لديهم بالفعل - ويمكن التحقق منها.

استعراض تقني تقني

الجزء الثاني يغطي التنفيذ الكامل وها هو الهيكل في لمحة:

موجات من طراز Ti 2

flowchart LR
    Session[Session Profile<br/>in-memory only] -->|high intent| Persistent[Persistent Profile<br/>database]
    Session -->|expires| Gone[Lost forever]
    
    style Session stroke:#1971c2,stroke-width:3px
    style Persistent stroke:#2f9e44,stroke-width:3px
    style Gone stroke:#868e96,stroke-width:2px
  • الجلسةفي الذاكرة فقط، جمع الإشارات أثناء الزيارة، لم تتمكّن من الحصول على قاعدة البيانات.
  • موجزات ثابتة: فقط عندما يظهر المستخدمون نية عالية (كارت إضافة، مشتريات) لا يزال صفر PII - فقط أنماط سلوكية

فُزِزِزِزِي عناصر ليس

"الأجزاء ليست "داخلاً أو خارجاً" عدد الأعضاء مَع سِتَيْن (صفر-1):

(ي) نبذة عن أخصائي تقني مُهنِجِر مُجَاهَزَة مُهَنْرِنْدِنْرِنْرِنْدَرَنْرِنْدَنْرِقْرَطْرَة |---------|-----------------|----------------|----------------| □ □ لا □ لا □ لا □ لا □ لا □ لا □ لا □ □ باء □ لا □ لا □ لا □ لا □ لا □ لا □ □ جيم □ 0.95 □ □ □ □ □ □ □ □ □ □ □ □

و كل تقييم هو الرتبة-يمكن للمستخدمين أن يروا بالضبط سبب وجودهم في جزء

& إشارة الشششش

لا يمكن أن تتلاشى المصالح ما لم يُقدَّم ما يلي:

Day 0: View product → Signal: 1.0
Day 7: No activity → Signal: 0.5  
Day 14: No activity → Signal: 0.25
Day 21: → Effectively gone

هذا واحد في وقت متأخر من الليل المتصفح لا يحدد لك إلى الأبد.

ما هو التالي

الجزء الأول: توليد بيانات العينات التركيبية محلياً (أولاما + كومفي أوي)

الجزء الثاني:: موجزات الجلسات والإشارات وتعاريف الأجزاء - التنفيذ الكامل

الجزء الثالث (جاء): نمط صندوق الخروج، ورتب الوظائف، والشفافية


وعندما تُبنى الشخصية من عملية بدلاً من الهوية، تتوقف الخصوصية عن كونها قيداً - فإنها تصبح ملكاً للنظام.

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.