<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Jady Pamella on Medium]]></title>
        <description><![CDATA[Stories by Jady Pamella on Medium]]></description>
        <link>https://medium.com/@jadypamella?source=rss-a5e0d0d09126------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*SM30L4wIjxPollO4AFFgUw.jpeg</url>
            <title>Stories by Jady Pamella on Medium</title>
            <link>https://medium.com/@jadypamella?source=rss-a5e0d0d09126------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 09 Jun 2026 18:22:11 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@jadypamella/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Quantum Computing: What’s the Fuss About]]></title>
            <link>https://medium.com/@jadypamella/quantum-computing-whats-the-fuss-about-116c62fc3dca?source=rss-a5e0d0d09126------2</link>
            <guid isPermaLink="false">https://medium.com/p/116c62fc3dca</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[emerging-technology]]></category>
            <category><![CDATA[future-of-technology]]></category>
            <category><![CDATA[quantum-programming]]></category>
            <category><![CDATA[quantum-computing]]></category>
            <dc:creator><![CDATA[Jady Pamella]]></dc:creator>
            <pubDate>Tue, 10 Feb 2026 01:22:19 GMT</pubDate>
            <atom:updated>2026-02-10T01:22:19.009Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aEODf03IbKy9BVmi_JBzuw.png" /></figure><p>For a long time, quantum computing sounded like one of those topics people mention to sound futuristic: Qubits. Superposition. Entanglement. Big words, big promises, very little intuition.</p><p>Before taking a Quantum Programming course at my master in Stockholm University, I kept coming back to two simple questions:</p><ol><li>What is all the fuss about?</li><li>And more importantly, what does quantum programming actually mean?</li></ol><p>This article is my attempt to answer those questions in a concrete way, based on what finally clicked for me during the course. It is written for curious beginners, engineers, and anyone who wants a mental model that goes beyond buzzwords.</p><h3>From “Faster Computers” to “Shaping Probabilities”</h3><p>One of the first misconceptions I had was thinking that quantum programming meant writing code for faster computers. It does not.</p><p>Quantum programming is about designing quantum circuits that control qubits so that the physics of superposition, interference, and entanglement pushes probability toward the right answer. There is no free speedup.</p><p>You earn it by carefully structuring the circuit so that, when you finally measure the system, the probability distribution favors the outcome you want.</p><h3>Qubits and Superposition: Not Both Answers at Once</h3><p>A classical bit is either 0 or 1.</p><p>A qubit can exist in a combination of both, but that description becomes misleading if taken too literally. When you measure a qubit, you always get a definite 0 or 1.</p><p>The real power is not in “having both answers”. It is in interference.</p><p>Quantum algorithms use interference to amplify the probability of desirable outcomes and suppress the rest. Superposition is the starting point, not the end goal.</p><h3>Measurement Is Not Reading Memory</h3><p>This was one of the most counterintuitive lessons for me.</p><p>In classical computing, reading memory does not change its content. In quantum computing, measurement fundamentally alters the system.</p><p>Measurement is not observation. It is sampling.</p><p>You are sampling an outcome from a probability distribution that you have deliberately engineered through gates and interference.</p><p>Once you measure, the quantum state collapses. There is no going back.</p><h3>Entanglement: One System, Not Many Parts</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/717/1*RtywqpIx7p9E7JqN6V56HQ.png" /><figcaption>Example of a three-quibit entangled state.</figcaption></figure><p>Entanglement is often described as mysterious, but thinking of entangled qubits as separate objects misses the point.</p><p>Entangled qubits behave like one system.</p><p>Measuring one qubit immediately gives you information about the other, regardless of distance. Many quantum protocols rely on entanglement as a computational and informational resource.</p><p>Measuring one qubit gives you information about the other, regardless of distance, though this does not enable faster-than-light communication.</p><h3>Gates and Circuits: Programming with Reversible Operations</h3><p>Quantum programs are built from unitary gates, which are reversible operations.</p><p>Some of the most common gates I learned and used were:</p><ul><li>H (Hadamard), to create superposition</li><li>X and Z, quantum analogs of classical bit flips and phase flips</li><li>Controlled gates like CNOT, essential for entanglement</li></ul><p>Unlike classical code, a single misplaced gate can completely change the final probability distribution. Debugging becomes less about syntax and more about reasoning through linear algebra and phase.</p><p>It is precise, unforgiving, and unexpectedly elegant.</p><h3>Algorithms That Changed My Intuition</h3><p>Several algorithms helped solidify these concepts.</p><p><strong>Grover’s Search:</strong> Often summarized as a quadratic speedup, Grover’s algorithm is really about amplitude amplification. Each iteration uses an oracle and a diffusion operator to gradually push probability mass toward the correct solution.</p><p><strong>Bernstein–Vazirani: </strong>A clean example of extracting global structure efficiently. It also taught me why problem framing and oracle design matter so much in quantum algorithms.</p><p><strong>Quantum Fourier Transform (QFT):</strong> QFT forced me to think in terms of phase, not just probability. It feels familiar to classical Fourier transforms, but the circuit-based implementation changes how you reason about it.</p><h3>The Reality of Today’s Quantum Hardware</h3><p>The course also removed any remaining illusions.</p><ul><li>Noise is the default</li><li>Shots matter because results are statistical</li><li>Circuit depth matters because each additional gate introduces error</li><li>Simulators and real hardware can behave very differently</li></ul><p>Quantum computing today is powerful, but fragile. Understanding its limitations is as important as understanding its potential.</p><h3>Will Quantum Computing Break All Cryptography?</h3><p>This is one of the first questions people ask when quantum computing comes up.</p><p>Will quantum programming make today’s security keys useless? Will it break all cryptography? Are we close to that moment?</p><p>The honest answer is no, not in the dramatic way it is often portrayed.</p><p>Quantum computing does not threaten all cryptography. It threatens specific cryptographic assumptions.</p><h3>What Is Actually at Risk</h3><p>Some public key cryptographic systems rely on mathematical problems such as:</p><ul><li>Factoring large integers, as used in RSA</li><li>Discrete logarithms, as used in elliptic curve cryptography and Diffie-Hellman</li></ul><p>A sufficiently large and fault-tolerant quantum computer running algorithms like Shor’s could solve these problems efficiently.</p><p>The key phrase here is <em>sufficiently large and fault-tolerant</em>.</p><h3>What Is Not at Risk</h3><p>Symmetric cryptography, such as AES, is not broken in the same way.</p><p>Quantum algorithms like Grover’s offer a quadratic speedup for brute force search, but this does not collapse security. It simply reduces the effective key strength.</p><p>In practice, this is handled by increasing key sizes. AES 256, for example, is still considered safe even in a quantum-aware world.</p><h3>Are We Close to a Cryptographic Collapse?</h3><p>No. We are very far from it.</p><p>Breaking real world cryptographic keys would require:</p><ul><li>Millions of high-quality physical qubits</li><li>Large-scale quantum error correction</li><li>Extremely low noise and long coherence times</li><li>Stable execution of very deep circuits</li></ul><p>Current quantum hardware is orders of magnitude away from that reality.</p><h3>Why Is This Taken So Seriously Then?</h3><p>Because security planning works on long timelines.</p><p>Some data must remain secure for decades. This creates a real concern known as <em>harvest now, decrypt later</em>, where data is collected today and decrypted in the future.</p><p>That is why the cryptography community is already migrating toward post-quantum cryptography, based on mathematical problems for which no efficient quantum algorithms are known.</p><p>This transition is already happening.</p><h3>What is next?</h3><p>Quantum is a hot topic in the technology world today, alongside AI and robotics. I cannot wait to explore the intersections between all of them. What about you?</p><p>For those who want to learn more, the best path combines theory with hands-on practice. I have left a few references next.</p><h3>References</h3><ul><li>Nielsen, M. A., &amp; Chuang, I. L. (2010). <em>Quantum Computation and Quantum Information</em>. Cambridge University Press.</li><li>IBM Quantum. <em>IBM Quantum Experience Documentation</em>. Available at: <a href="https://quantum.ibm.com/">https://quantum.ibm.com/</a></li><li>Qiskit Documentation. <a href="https://qiskit.org/documentation/">https://qiskit.org/documentation/</a></li><li>IBM Quantum. (n.d.). <em>IBM Quantum Learning: Courses</em>. Available at: <a href="https://quantum.cloud.ibm.com/learning/en/courses">https://quantum.cloud.ibm.com/learning/en/courses</a></li><li>Preskill, J. (2018). <em>Quantum Computing in the NISQ era and beyond</em>. Quantum, 2, 79. <a href="https://doi.org/10.22331/q-2018-08-06-79">https://doi.org/10.22331/q-2018-08-06-79</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=116c62fc3dca" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[BrandLens: Brand Sentiment Analysis Using BERT]]></title>
            <link>https://medium.com/@jadypamella/brandlens-brand-sentiment-analysis-using-bert-020064c2c0b9?source=rss-a5e0d0d09126------2</link>
            <guid isPermaLink="false">https://medium.com/p/020064c2c0b9</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[nlp]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[bert]]></category>
            <dc:creator><![CDATA[Jady Pamella]]></dc:creator>
            <pubDate>Sun, 15 Jun 2025 13:25:10 GMT</pubDate>
            <atom:updated>2025-06-15T13:25:10.963Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1010/1*Q2nujvIpcPMl8hiKFgMkhg.png" /><figcaption>Sesame Workshop</figcaption></figure><h3>Introduction</h3><p>Understanding how people perceive a brand is essential for businesses in today’s digital and highly connected world. Public sentiment reflects trust, reputation, and customer experience, factors that directly influence a brand’s market performance. Natural Language Processing (NLP) provides tools to analyze these sentiments automatically and at scale.</p><p>As part of the NLP course at Stockholm University, our team developed BrandLens, a system designed to classify public sentiment about brands using two different approaches: a classical machine learning model (Logistic Regression) and a transformer-based deep learning model (BERT). This article summarizes our methodology, results, and reflections from the project.</p><h3>Objective</h3><p>The goal of BrandLens is to build an AI-powered NLP system capable of classifying brand-related public opinions into positive, neutral, or negative categories. The system leverages data from the <a href="https://www.kaggle.com/datasets/crowdflower/twitter-airline-sentiment">Twitter US Airline Sentiment dataset</a>, with over 14,000 manually labeled tweets related to U.S. airline companies.</p><p>In addition to developing the sentiment analysis pipeline, we sought to compare the performance of two contrasting approaches: Logistic Regression with TF-IDF vectorization and BERT fine-tuned on the same dataset.</p><h3>Methodology</h3><p>To ensure fair comparison, both models were trained and evaluated using the same train/test split and identical preprocessing steps.</p><h4>Logistic Regression Pipeline</h4><ul><li>Text vectorization using TF-IDF (max 5000 features)</li><li>Model trained using scikit-learn</li><li>Evaluation through precision, recall, F1-score, and accuracy</li></ul><h4>BERT Pipeline</h4><ul><li>Tokenization using the cardiffnlp/twitter-roberta-base-sentiment tokenizer</li><li>Fine-tuning via Hugging Face Trainer API (1 epoch, reduced batch size)</li><li>Sentiment output mapped to the same label schema</li></ul><p>Additionally, we implemented:</p><ul><li>Named Entity Recognition (NER) with SpaCy</li><li>Keyword extraction with NLTK</li><li>Model prediction analysis for selected example tweets</li></ul><h3>Results</h3><p>Both models were evaluated based on classification metrics and qualitative predictions. Below is a summary of the results:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*tbc3QKW0O7igmarv" /><figcaption>Figure 1: Model Performance Comparison</figcaption></figure><p>As seen in the chart, BERT outperformed Logistic Regression in all metrics. It showed particularly strong improvements in identifying positive and neutral sentiments, which tend to be more difficult to classify due to language subtlety.</p><p>It becomes clear why BERT laid the foundation for the large language models (LLMs) that dominate the field today, such as RoBERTa, ALBERT, T5, GPT-4, and Claude.</p><h3>Qualitative Predictions</h3><p>To validate the models, we tested three real-world-style tweets:</p><p>Tweet 1: “I love how Delta treats its passengers!”</p><ul><li>Logistic Regression → <em>Neutral</em></li><li>BERT → <em>Positive</em> (Confidence: 0.98)</li></ul><p>Tweet 2: “Worst experience ever with United Airlines.”</p><ul><li>Logistic Regression → <em>Negative</em></li><li>BERT → <em>Negative</em> (Confidence: 0.99)</li></ul><p>Tweet 3: “Flight was delayed but I finally made it.”</p><ul><li>Logistic Regression → <em>Negative</em></li><li>BERT → <em>Negative</em> (Confidence: 0.88)</li></ul><p>These examples demonstrate BERT’s superior ability to capture emotional tone, context, and nuance in informal text such as tweets.</p><h3>Challenges</h3><p>Despite the promising results, several challenges were encountered:</p><ul><li>Data imbalance, with significantly fewer positive samples compared to negative ones</li><li>Detection of sarcasm and irony, which often mislead models</li><li>Ambiguity in neutral statements, which can contain mixed tones</li><li>Social media noise, including abbreviations, emojis, and inconsistent grammar</li></ul><h3>Future Work</h3><p>BrandLens has the potential to evolve beyond tweet analysis. Future extensions may include:</p><ul><li>Integration with real-time streaming APIs for live brand monitoring</li><li>Support for multilingual classification across global markets</li><li>Development of a dashboard interface for business stakeholders</li><li>Improved handling of sarcasm, humor, and emotional shifts in text</li><li>Exploration of zero-shot or few-shot classification with larger models like GPT-4 or DeBERTa</li></ul><h3>Conclusion</h3><p>The BrandLens project showcased the power of NLP in extracting structured insights from unstructured text. Our comparative approach highlighted how classical models provide quick and interpretable results, while modern transformer architectures like BERT offer superior accuracy and context understanding. BrandLens stands as a scalable framework for brand sentiment monitoring that can be adapted to broader business and research applications.</p><h3>References</h3><ul><li>Bird, S., Klein, E., &amp; Loper, E. (2009). Natural Language Processing with Python. O’Reilly Media.</li><li>Devlin, J., Chang, M. W., Lee, K., &amp; Toutanova, K. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv preprint arXiv:1810.04805.</li><li>Vaswani, A. et al. (2017). Attention is All You Need. Advances in Neural Information Processing Systems. Crowdflower. Twitter US Airline Sentiment Dataset. Available at: <a href="https://www.kaggle.com/datasets/crowdflower/twitter-airline-sentiment">https://www.kaggle.com/datasets/crowdflower/twitter-airline-sentiment</a></li><li>Wolf, T. et al. (2020). Transformers: State-of-the-Art Natural Language Processing. arXiv:1910.03771.</li><li>SpaCy Documentation. <a href="https://spacy.io/">https://spacy.io/</a></li><li>NLTK Documentation. <a href="https://www.nltk.org/">https://www.nltk.org/</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=020064c2c0b9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What do you need to know about Erlang]]></title>
            <link>https://medium.com/@jadypamella/what-do-you-need-to-know-about-erlang-1ea40df675e0?source=rss-a5e0d0d09126------2</link>
            <guid isPermaLink="false">https://medium.com/p/1ea40df675e0</guid>
            <category><![CDATA[scalability]]></category>
            <category><![CDATA[concurrent-programming]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[actor-model]]></category>
            <category><![CDATA[erlang]]></category>
            <dc:creator><![CDATA[Jady Pamella]]></dc:creator>
            <pubDate>Mon, 17 Mar 2025 13:19:49 GMT</pubDate>
            <atom:updated>2025-03-17T13:19:49.343Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*z4KdTz2zvXlDeJ2qv5QOFg.png" /></figure><p>Concurrent and distributed computing has become essential in our digital age. Modern systems must handle multiple tasks simultaneously in an efficient and secure way without compromising data integrity or system performance. In this context, the actor model emerges as a powerful approach to structuring concurrent systems, and the Erlang language stands out as a robust implementation of this model.</p><p>Erlang is a functional language developed in the 1980s by Joe Armstrong at <a href="https://www.linkedin.com/company/ericsson/">Ericsson</a>. It was designed to create fault-tolerant and highly concurrent systems. The language naturally implements the actor model, where each Erlang process can be considered an actor.</p><h3>The Actor Model</h3><p>Created by Carl Hewitt and later refined by Gul Agha, the actor model is a paradigm for concurrent computing where actors are the fundamental units of execution. These actors are independent and communicate exclusively through message passing, ensuring a high level of encapsulation and eliminating the need for locks to synchronize state.</p><p>Key features of the actor model:</p><ul><li>Total encapsulation: Each actor has its own state, which can only be modified through received messages.</li><li>No locks required: Since actors process one message at a time, there is no competition over internal state.</li><li>Asynchronous communication: Messages are sent without requiring an immediate response, promoting a continuous flow of execution.</li><li>Scalability: Actor-based systems can scale horizontally by distributing workload across multiple machines.</li></ul><h3>Erlang and the Actor Model</h3><p>With the goal of implementing the Actor Model, Erlang has this key characteristics:</p><ul><li>Lightweight and isolated processes: Unlike traditional threads, Erlang processes are extremely lightweight and independent.</li><li>Efficient message passing: Communication between processes occurs through asynchronous messages with no shared memory.</li><li>Robust fault tolerance mechanisms: The “Let it crash” philosophy allows processes to fail and be restarted without affecting overall system stability.</li></ul><h3>Real-World Applications</h3><p>Erlang’s adoption has grown exponentially in applications requiring high availability and massive concurrency. Some companies and systems using Erlang include:</p><ul><li>WhatsApp: Handles millions of simultaneous connections with low latency Erlang Solutions.</li><li>Facebook Chat: Ensures efficient and scalable communication Facebook Engineering.</li><li>RabbitMQ: One of the most popular messaging systems, built on Erlang.</li><li>Amazon SimpleDB: A distributed database service from Amazon Web Services.</li></ul><h3>How to Compile and Run an Erlang Program</h3><p>It is very easy to execute an Erlang program, although its functional syntax can be a little scary in the beginning. To write and run a simple Erlang program, follow these steps:</p><p>1. Install Erlang from <a href="https://www.erlang.org/downloads">https://www.erlang.org/downloads</a>.</p><p>2. Create a file named hello.erl with the following content:</p><pre>-module(hello).<br>-export([start/0]).<br><br>start() -&gt;<br>    io:format(&quot;Hello, Erlang!~n&quot;).</pre><p>3. Open the Erlang shell by running erl in your terminal.</p><p>4. Compile the module:</p><pre>c(hello).</pre><p>5. Run the function:</p><pre>hello:start().</pre><p>This will print “Hello, Erlang!” to the console:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/565/0*d_3ZkxEVjjb2Gq6r" /></figure><h3>Ok, it looks simple somehow. Where is the catch?</h3><p>Erlang makes concurrency easy, but it has a steep learning curve due to its functional paradigm and unique syntax. Developers accustomed to imperative languages like Python might struggle initially with pattern matching, immutability, and recursion, which replace traditional loops and variable assignments. Additionally, debugging can be challenging in highly distributed systems where processes communicate asynchronously.</p><h3>Main Differences Between Erlang and Python</h3><p>✅ Paradigm</p><ul><li>Erlang: Functional, with an emphasis on concurrency.</li><li>Python: Multi-paradigm (object-oriented, procedural, and functional).</li></ul><p>✅ Concurrency Model</p><ul><li>Erlang: Actor model with lightweight processes.</li><li>Python: Threads and multiprocessing, limited by the Global Interpreter Lock (GIL).</li></ul><p>✅ State Management</p><ul><li>Erlang: Immutable data, no shared state.</li><li>Python: Mutable state, object-oriented approach.</li></ul><p>✅ Error Handling</p><ul><li>Erlang: “Let it crash” philosophy, with supervisor processes.</li><li>Python: Traditional try-except exception handling.</li></ul><p>✅ Performance</p><ul><li>Erlang: Optimized for concurrent and distributed systems.</li><li>Python: Better suited for single-threaded applications and general scripting.</li></ul><p>✅ Use Cases</p><ul><li>Erlang: Telecom, messaging systems, real-time applications.</li><li>Python: Web development, data science, automation.</li></ul><h3>Conclusion</h3><p>The actor model and the Erlang language provide powerful solutions to the challenges of concurrent and distributed programming. Developers can create more resilient, scalable, and efficient systems by adopting this paradigm. With the growing demand for distributed applications, Erlang remains a relevant and innovative choice for modern architectures.</p><p>Have you ever worked with concurrent programming? What was your approach?</p><h3>References</h3><ul><li>Agha, G. A. (1985). Actors: A model of concurrent computation in distributed systems. Massachusetts Institute of Technology. <a href="https://dspace.mit.edu/handle/1721.1/6952">Link</a></li><li>Armstrong, J. (2007). Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf. <a href="https://dl.acm.org/doi/10.5555/1403889">Link</a></li><li>Erlang Solutions. (2016). How WhatsApp Scaled with Erlang. <a href="https://www.erlang-solutions.com/blog/20-years-of-open-source-erlang-openerlang-interview-with-anton-lavrik-from-whatsapp/">Link</a></li><li>Facebook Engineering. (2010). The Architecture of Facebook Chat. <a href="https://www.facebook.com/notes/facebook-engineering/the-architecture-of-facebook-chat/14218138919/">Link</a></li><li>Hamilton, J. (2007). Amazon SimpleDB: A Highly Available, Scalable, and Flexible Data Store. <a href="https://web.archive.org/web/20110623221347/http://www.satine.org/archives/2007/12/13/amazon-simpledb/">Link</a></li><li>Hewitt, C., Bishop, P., &amp; Steiger, R. (1973). A universal modular actor formalism for artificial intelligence. Proceedings of the 3rd International Joint Conference on Artificial Intelligence. <a href="https://dl.acm.org/doi/10.5555/1624775.1624804">Link</a></li><li>Videla, A., &amp; Williams, J. (2012). RabbitMQ in Action: Distributed Messaging for Everyone. Manning Publications. <a href="https://www.manning.com/books/rabbitmq-in-action">Link</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1ea40df675e0" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>