

[

  {
    "title": "Building a home server I can rebuild - Proxmox, an iGPU and local AI",
    "url": "https://virtualdump.net/tech/2026-09-16-home-server-i-can-rebuild/",
    "date": "September 16, 2026",
    "collection": "tech",
    "categories": "Engineering",
    "tags": "Home Lab, Proxmox, Self-Hosting, AI",
    "excerpt": "I finally stopped renting a server and put one on my own desk. A small Beelink mini PC, Proxmox on top, and everything I actually use running in containers on it - a local chat model, a media library, a few tool services. The interesting part is not that it...",
    "body": "I finally stopped renting a server and put one on my own desk. A small Beelink mini PC, Proxmox on top, and everything I actually use running in containers on it - a local chat model, a media library, a few tool services. The interesting part is not that it works. The interesting part is that it is written down well enough that I could wipe the box tomorrow and have it back the same evening. That, and the fact that my “local AI” tops out at 24 tokens per second, which I want to talk about honestly rather than pretend otherwise.We techies love owning our stack. :sweat_smile: Infrastructure as a code, CV as a code, blog as a code - and at some point you look at your monthly cloud bill and think, why is my always-on box in someone else’s datacentre? So let’s get cracking.Why a mini PC and not a real server ?Here it is, next to the router, which gives you the scale better than any spec sheet:  I very nearly bought a proper tower with a discrete GPU, and I’m glad I didn’t. The thing about a home server is that the specs are only half the decision. The other half is that it has to live in your home, run all the time, and not annoy you. Four things decided it:It’s cheap. Not cheap in absolute terms, but cheap against the alternative. A tower with a GPU that would genuinely beat this at inference costs several times as much before you’ve bought a case, a PSU or the drives.It’s quiet. This sits in a living space, not a rack in a basement. It’s on 24/7. A server you can hear is a server you resent, and a resented server gets unplugged. Even with the iGPU pinned to its top clock - which I’d normally expect to be the thing that makes a small box audible - I can’t hear it from the sofa.The TDP is small. The processor is a 65 W part, and the box idles well below that. Something that never turns off is a power bill rather than a purchase, so the number that matters is watts over a year, not peak performance. A desktop with a discrete GPU can sit at idle drawing what this thing pulls flat out.It takes no space. One shelf, one power brick, one network cable. No rack, no noise enclosure, no rethinking where furniture goes.And honestly, one more: I wanted to find out whether an integrated GPU could do this at all. That turned out to be the most interesting part of the whole build, and about two thirds of this article.What I gave upBeing straight about it, because these are real:  The RAM is soldered. 24 GB is 24 GB forever. That’s not a limit I can spend my way out of later.  There’s no upgrade path for the GPU. No slot, no card, no future where I drop something faster in.  The memory bandwidth is the ceiling on everything, and it’s the reason the benchmark section below lands where it does.That first point is also why the rest of this article leans so hard on the setup being reproducible. The box is disposable, so the build instructions have to outlive it.Oh, and see that pinhole on the front panel, next to the power button? Remember it. It comes up later, and ..."
  },

  {
    "title": "The Rise of Self-Hosted AI: Taking Control in the Age of Intelligent Agents",
    "url": "https://virtualdump.net/tech/2024-08-15-the-rise-of-self-hosted-ai-taking-control-in-the-age-of-intelligent-agents/",
    "date": "August 15, 2024",
    "collection": "tech",
    "categories": "Engineering",
    "tags": "AI, Self-Hosting, Open Source",
    "excerpt": "The artificial intelligence revolution is undeniably upon us, permeating every facet of our digital lives. From sophisticated chatbots to powerful predictive analytics, AI promises unprecedented efficiency and innovation. However, this rapid advancement, la...",
    "body": "The artificial intelligence revolution is undeniably upon us, permeating every facet of our digital lives. From sophisticated chatbots to powerful predictive analytics, AI promises unprecedented efficiency and innovation. However, this rapid advancement, largely driven by a few tech giants, has also brought forth pressing concerns regarding data privacy, security, vendor lock-in, and a general lack of control over the very intelligence we are coming to rely on. In this evolving landscape, a significant and empowering trend is emerging: the rise of self-hosted AI. Businesses and individuals are increasingly seeking to take back control, deploying AI solutions within their own infrastructure, heralding a new era of autonomy in the age of intelligent agents.Why Self-Hosted AI? The Driving ForcesThis shift is not merely a niche preference but a strategic imperative for many. Several key factors are fueling the adoption of self-hosted AI:  Enhanced Data Privacy and Security: This is paramount. Entrusting sensitive corporate data or personal information to third-party AI providers creates inherent risks. Data breaches, unauthorized access, and opaque data usage policies are significant concerns. Self-hosting allows organizations and individuals to keep their data within their own secure perimeters, under their direct control, ensuring compliance with stringent data protection regulations like GDPR or HIPAA. As reported by Help Net Security in discussions around platforms like Nextcloud Hub, there’s a strong push against Big Tech’s AI dominance by emphasizing this crucial privacy aspect.  Greater Customization and Control: Off-the-shelf AI solutions, while convenient, often lack the flexibility to be tailored to specific business needs or workflows. Self-hosting provides granular control over the AI models, the data they are trained on, and the infrastructure they run on. This allows for fine-tuning models for specific tasks, integrating them deeply with existing systems, and iterating rapidly without vendor constraints.  Cost-Effectiveness and Avoiding Vendor Lock-in: While initial setup costs for self-hosted AI might seem higher, the long-term economic benefits can be substantial. Subscription fees for cloud-based AI services can escalate quickly, especially with heavy usage. Self-hosting can lead to a lower total cost of ownership and, crucially, avoids vendor lock-in, providing the freedom to switch or modify solutions as needs evolve.  Algorithmic Transparency and Reduced Bias: When using proprietary AI models, understanding their inner workings or potential biases can be challenging. Self-hosting, especially with open-source models, can offer greater transparency, allowing organizations to inspect, audit, and modify algorithms to mitigate bias and ensure fairness.  Independence and Resilience: Relying on external AI providers means dependency on their uptime, policy changes, or even their continued existence. Self-hosting offers operational ind..."
  },

  {
    "title": "Objects Falling From the Sky: From Space Threats to Unexplained Debris",
    "url": "https://virtualdump.net/misc/2024-06-10-objects-falling-from-the-sky-from-space-threats-to-unexplained-debris/",
    "date": "June 10, 2024",
    "collection": "misc",
    "categories": "Science",
    "tags": "Astronomy, Space",
    "excerpt": "The vast expanse above us isn’t always empty. From orbiting satellites and distant asteroids to mundane airborne objects, things occasionally descend towards Earth. Recent news highlights a variety of incidents and discoveries involving such celestial or at...",
    "body": "The vast expanse above us isn’t always empty. From orbiting satellites and distant asteroids to mundane airborne objects, things occasionally descend towards Earth. Recent news highlights a variety of incidents and discoveries involving such celestial or atmospheric visitors, prompting questions about tracking, safety, and scientific understanding.The Specter of Uncontrolled Space ObjectsOne recurring theme in recent headlines is the concern over objects originating from space that are no longer under control. These can range from defunct satellites and spent rocket stages – often referred to as space junk – to natural celestial bodies like asteroids or comets on trajectories that intersect Earth’s orbit.A particularly alarming report from PennLive.com and the Times of India highlights the impending crash-landing of a 1,000 lb (approximately 450 kg) object, described as ‘uncontrolled’. While such objects often burn up during reentry, larger or more durable pieces can survive the fiery plunge and reach the surface. Scientists and space agencies around the world continuously track potentially hazardous objects, both natural and artificial, employing sophisticated radar and optical telescopes to predict trajectories and potential impact sites. The tracking of space debris is a critical aspect of maintaining safe space operations and mitigating risks to people and property on Earth.Unidentified Falling Objects Closer to HomeBeyond objects falling from orbit, reports of unidentified or unexpected items falling from the sky closer to the ground also capture public attention. These incidents, though often less dramatic than a potential asteroid impact, can cause damage and spark investigations.Two recent examples illustrate this phenomenon:  In Portland, Maine, a 35-pound object believed to be from an airplane struck a car. Fortunately, no one was injured in this particular incident, but it serves as a stark reminder that objects detaching from aircraft at altitude can pose a significant threat to anything below. Such events trigger investigations by aviation authorities to determine the source of the object and prevent future occurrences.  Similarly, an object described as ‘missile-like’ or simply ‘falling from the sky’ was reported to have landed in Magnolia, New Jersey, causing damage to a local auto shop. The nature and origin of this object were not immediately clear, leading to speculation and investigation. Such incidents highlight the challenge of identifying debris when the source is unknown or unconventional.These occurrences underscore that falling objects are not solely a concern from deep space but can originate from within Earth’s atmosphere as well, whether from malfunctioning aircraft, drones, or other airborne activities.Discoveries in the DistanceWhile some news focuses on objects approaching Earth, other reports detail discoveries of objects already out in the vastness of the solar system or beyond. NASA, for instance, recently con..."
  },

  {
    "title": "The Evolving Landscape of Computational Object Interaction: From Robotic Sensing to AI-Powered Detection and Data Management",
    "url": "https://virtualdump.net/tech/2024-05-24-the-evolving-landscape-of-computational-object-interaction-from-robotic-sensing-to-ai-powered-detection-and-data-management/",
    "date": "May 24, 2024",
    "collection": "tech",
    "categories": "Science",
    "tags": "AI, Robotics, Computer Vision",
    "excerpt": "IntroductionThe term “object” carries diverse meanings across technological domains, from tangible items manipulated by robots to abstract data structures in software. In recent years, a convergence of advancements in robotics, artificial intelligence (AI),...",
    "body": "IntroductionThe term “object” carries diverse meanings across technological domains, from tangible items manipulated by robots to abstract data structures in software. In recent years, a convergence of advancements in robotics, artificial intelligence (AI), and data management has dramatically reshaped how machines perceive, interact with, and manage information about objects. This evolution is not just incremental; it represents a fundamental shift towards creating systems that can understand and operate within complex, object-rich environments with unprecedented sophistication. This article delves into the key breakthroughs driving this transformation, exploring innovations in robotic object identification, the power of AI in object detection and tracking, advancements in digital object representation, and new paradigms for managing the vast amounts of data these objects generate.Robotic Object Identification: Beyond VisualsWhile visual recognition has long been a staple of robotics, new frontiers are opening up in how robots understand objects through physical interaction. Researchers at MIT have developed systems that enable robots to discern an object’s properties - such as material, shape, and even hidden features - through tactile sensing and handling (MIT News, #1). This \"joint effort in object identification,\" as highlighted by Hackster.io (Hackster.io, #2), emphasizes that true object understanding for robots often requires more than just cameras; it necessitates a multi-modal approach incorporating touch and manipulation. This allows robots to build richer, more nuanced models of the objects they encounter, crucial for tasks in manufacturing, logistics, and human-robot collaboration.AI-Powered Object Detection and Tracking: Seeing the UnseenArtificial intelligence, particularly deep learning algorithms, has revolutionized the field of object detection and tracking. These systems can identify and locate objects within images or video streams with remarkable accuracy.  Environmental Monitoring: Transformer models are being deployed for real-time detection of floating objects in rivers (Nature, #18), while other research focuses on efficient underwater object detection using feature enhancement and attention mechanisms (Nature, #44). These applications are vital for pollution control, ecological studies, and maritime safety.  Remote Sensing and Beyond: In remote sensing, specialized AI models like SED-YOLO are designed for multi-scale attention to detect small objects from aerial or satellite imagery (Nature, #38). Further enhancements using metaheuristic optimizers for YOLOv7 and YOLOv8 are pushing the boundaries of detection accuracy (Nature, #47).  Precision and Control: For dynamic scenarios, optimal fuzzy-PID controllers are being developed for robust object tracking (Nature, #20), and methods for enhancing object pose estimation for RGB images in cluttered scenes are improving how systems understand object orientation and positio..."
  },

  {
    "title": "Quantum Entanglement's New Frontiers: From Reality-Bending Chips to Extra Dimensions of Time",
    "url": "https://virtualdump.net/tech/2024-05-23-quantum-entanglements-new-frontiers-from-reality-bending-chips-to-extra-dimensions-of-time/",
    "date": "May 23, 2024",
    "collection": "tech",
    "categories": "Science",
    "tags": "Quantum Computing, Physics",
    "excerpt": "The Quantum Dance: A Universe of Interconnected PossibilitiesQuantum entanglement, a phenomenon Albert Einstein famously dubbed “spooky action at a distance,” continues to be one of the most fascinating and perplexing aspects of quantum mechanics. Imagine t...",
    "body": "The Quantum Dance: A Universe of Interconnected PossibilitiesQuantum entanglement, a phenomenon Albert Einstein famously dubbed “spooky action at a distance,” continues to be one of the most fascinating and perplexing aspects of quantum mechanics. Imagine two particles, linked in such a profound way that measuring a property of one instantaneously influences the property of the other, regardless of the distance separating them – whether it’s a few nanometers or light-years. This isn’t science fiction; it’s a fundamental feature of our universe, and recent breakthroughs are pushing the boundaries of what we thought we knew, opening doors to revolutionary technologies and even new conceptions of reality itself.For decades, entanglement was a subject mostly confined to theoretical discussions and highly specialized laboratory experiments. However, the tide is turning. Scientists and engineers are not only deepening their understanding of its intricacies but are also harnessing its power. From the development of powerful quantum computers and unhackable communication networks to probing the very fabric of spacetime, entanglement is at the heart of a scientific revolution. This post delves into some of the most exciting recent developments: Cisco’s groundbreaking ‘Entanglement Chip,’ the discovery of entirely new forms of entanglement, and mind-bending theoretical explorations that connect entanglement to the possibility of extra time dimensions. Join us as we explore these frontiers where science fiction meets cutting-edge reality.Cisco’s Quantum Leap: The ‘Entanglement Chip’ Forging New ConnectionsOne of the biggest hurdles in realizing the potential of quantum computing is the ability to create, control, and maintain entanglement between a large number of quantum bits, or qubits. Qubits are the fundamental building blocks of quantum computers, and their ability to exist in multiple states at once (superposition) and to be entangled is what gives quantum computers their projected immense power. However, qubits are notoriously fragile, and maintaining their delicate entangled states in a scalable way is a monumental engineering challenge.Enter Cisco, a giant traditionally known for networking the classical internet. Recognizing the critical role of connectivity in the quantum realm, Cisco has reportedly made significant strides with the development of an ‘Entanglement Chip’ (Source 1 - General Information). While specific details of proprietary technology are often closely guarded, the implications of such a chip are profound.This chip is likely designed to address several key challenges:  Scalability: Current quantum processors often struggle to entangle a large number of stable qubits. A dedicated chip could provide the architecture needed to manage and link more qubits efficiently, paving the way for more powerful quantum computers.  Stability and Coherence: Entanglement is easily disrupted by environmental noise (decoherence). An entanglement ..."
  },

  {
    "title": "The Future is Now: Groundbreaking Advances in AI and Robotics",
    "url": "https://virtualdump.net/tech/2024-05-21-the-future-is-now-groundbreaking-advances-in-ai-and-robotics/",
    "date": "May 21, 2024",
    "collection": "tech",
    "categories": "Science",
    "tags": "AI, Robotics",
    "excerpt": "The dawn of a new technological epoch is upon us, characterized by an unprecedented surge in Artificial Intelligence (AI) and robotics. These twin pillars of innovation are no longer confined to the realm of science fiction; they are actively and rapidly re...",
    "body": "The dawn of a new technological epoch is upon us, characterized by an unprecedented surge in Artificial Intelligence (AI) and robotics. These twin pillars of innovation are no longer confined to the realm of science fiction; they are actively and rapidly reshaping industries, transforming daily life, and redefining what’s possible. We are witnessing a period of accelerated innovation where the lines between human and machine capabilities are becoming increasingly blurred, driven by breakthroughs in machine learning, computer vision, and sophisticated hardware. From warehouses bustling with autonomous systems to operating rooms guided by AI precision, the future is unfolding before our very eyes, promising a world of enhanced efficiency, novel capabilities, and solutions to some of our most pressing challenges. This isn’t just an incremental improvement; it’s a paradigm shift, and the pace is only quickening.Key Themes and AdvancementsThe current wave of AI and robotics innovation is multifaceted, touching nearly every aspect of technology and industry. Several key themes highlight the direction and impact of these advancements.Smarter, More Capable Robots: Beyond Automation to InteractionFor years, robots were primarily associated with repetitive, pre-programmed tasks in controlled environments. Today, they are evolving into more intelligent, adaptable, and interactive collaborators. A significant leap is the development of robots with enhanced sensory capabilities. For instance, Amazon’s ‘Vulcan’ robot, as reported by About Amazon, May 2025, is gaining a sophisticated sense of touch. This allows it to handle a wider variety of items with human-like dexterity, a crucial development for complex manipulation tasks in logistics and beyond. This ability to “feel” and respond to tactile feedback opens up new frontiers for robotic applications, moving them closer to performing tasks that once required human finesse.The pursuit of more human-like interaction is further evidenced by the showcase of advanced androids and robotic assistants at events like CES 2025. As highlighted by Live Science, Jan 2025, these new-generation robots are not just about performing tasks but also about interacting with humans in more natural and intuitive ways. They feature improved natural language processing, facial recognition, and even the ability to display and interpret emotions. These robotic assistants are envisioned for roles in companionship, customer service, healthcare support, and education, heralding an era where robots become integrated partners in our daily lives.  The Power of AI Platforms: Accelerating DevelopmentThe rapid evolution of robots, particularly humanoid robots, is being significantly propelled by advancements in AI platforms and specialized hardware. NVIDIA, for example, has been at the forefront with its announcements of new AI superchips and open AI/simulation tools, as noted by Design Engineering Magazine, Jan 2025 and the NVIDIA Blog, Jan..."
  },

  {
    "title": "Quantum Entanglement: Spooky Connections and Revolutionary Power",
    "url": "https://virtualdump.net/tech/2024-03-15-quantum-entanglement-spooky-connections-and-revolutionary-power/",
    "date": "March 15, 2024",
    "collection": "tech",
    "categories": "Science",
    "tags": "Quantum Computing, Physics",
    "excerpt": "Introduction: The “Spooky” Heart of Quantum MechanicsAlbert Einstein famously, and skeptically, referred to it as “spooky action at a distance.” The phenomenon in question is quantum entanglement, one of the most perplexing and fascinating aspects of quantu...",
    "body": "Introduction: The “Spooky” Heart of Quantum MechanicsAlbert Einstein famously, and skeptically, referred to it as “spooky action at a distance.” The phenomenon in question is quantum entanglement, one of the most perplexing and fascinating aspects of quantum mechanics. It describes a situation where two or more quantum particles become linked in such a profound way that their individual states remain undetermined until measured, yet their fates are inextricably intertwined, regardless of the physical distance separating them. This interconnectedness, which defies classical intuition, has evolved from a philosophical puzzle into a cornerstone of modern physics and a vital resource for emerging technologies. This article delves into the nature of quantum entanglement, its historical context, its mind-bending implications, and its transformative potential.What is Quantum Entanglement?At its core, entanglement signifies a deep correlation between quantum particles that cannot be explained by classical physics. Imagine you have two special coins. If you flip them, and one lands heads, the other instantly lands tails, and vice-versa – every single time. Before you look, you don’t know the outcome for either coin, but you know their relationship. Entanglement is far more subtle and profound than this classical analogy suggests. In the quantum realm, the properties of these particles (like spin, polarization, or momentum) are not just unknown before measurement; they are genuinely undecided, existing in a haze of multiple possibilities called a superposition.When particles are entangled, their combined state is described by a single quantum wavefunction that cannot be broken down into separate descriptions for each particle. For instance, consider two electrons whose spins are entangled. If they are prepared in a state where their total spin must be zero, then if one electron is measured to have its spin pointing “up” along a certain axis, the other electron, no matter how far away, will instantly be found to have its spin pointing “down” along that same axis. Conversely, if the first is spin-down, the second is spin-up. Crucially, before the measurement, neither electron had a definite spin orientation; the act of measuring one instantaneously defines the state of the other.This immediate correlation across space is what makes entanglement so counter-intuitive. It’s not that the particles secretly “agreed” on their states beforehand, like a pair of gloves separated into two boxes where opening one box reveals the handedness of the glove in the other. As we’ll see, experiments have largely ruled out such “hidden information” theories.The EPR Paradox: A Challenge to Quantum CompletenessIn 1935, Albert Einstein, Boris Podolsky, and Nathan Rosen (EPR) published a seminal paper, “Can Quantum-Mechanical Description of Physical Reality Be Considered Complete?” (Physical Review - note: this is the actual historic link’s journal). They used a thought experime..."
  },

  {
    "title": "3I/ATLAS: An Interstellar Enigma at the Crossroads of Science and Wonder",
    "url": "https://virtualdump.net/misc/2023-10-27-3iatlas-an-interstellar-enigma-at-the-crossroads-of-science-and-wonder/",
    "date": "October 27, 2023",
    "collection": "misc",
    "categories": "Science",
    "tags": "Astronomy, Space",
    "excerpt": "The cosmos occasionally sends us gifts – or perhaps, simply visitors – that challenge our understanding and ignite our imagination. One such recent arrival, the interstellar comet 3I/ATLAS, has become a focal point of intense scientific interest and vibrant...",
    "body": "The cosmos occasionally sends us gifts – or perhaps, simply visitors – that challenge our understanding and ignite our imagination. One such recent arrival, the interstellar comet 3I/ATLAS, has become a focal point of intense scientific interest and vibrant public speculation. Unlike any comet originating from our solar system’s distant Oort cloud, 3I/ATLAS hails from beyond the gravitational embrace of our Sun, offering a tantalizing glimpse into the chemistry and mechanics of other star systems. Its journey through our celestial neighborhood is not merely an astronomical event; it’s a profound narrative unfolding, blending rigorous scientific inquiry with a sense of cosmic wonder and intriguing, sometimes controversial, hypotheses.Key Scientific Observations: Unveiling an Alien VisitorSince its discovery, 3I/ATLAS has been under the relentless gaze of Earth’s most powerful instruments. Scientists are meticulously tracking its trajectory and analyzing its composition, hoping to unlock secrets from another stellar abode.A Close Encounter with Our Sun:3I/ATLAS is slated for its closest approach to the Sun, or perihelion, around October 29-30, 2025. While this event will bring it closest to our star, it’s crucial to note that the comet will not be visible to the naked eye. Instead, a sophisticated array of instruments, including advanced ground-based telescopes and orbiting spacecraft, are poised to capture every nuance of its passage. This intense observation period represents a unique, fleeting opportunity to gather unprecedented data.Unusual Composition and Behavior:Among the most significant scientific revelations about 3I/ATLAS are the surprising discoveries made by instruments such as NASA’s James Webb Space Telescope. Researchers have detected the presence of nickel, a relatively rare element in comets, alongside a complex array of organic compounds and significant amounts of water vapor. The detection of nickel is particularly intriguing, as it suggests a different formation environment or evolutionary path compared to typical solar system comets. These compositional insights provide vital clues about the conditions prevalent in its home star system.Beyond its chemical makeup, 3I/ATLAS has exhibited unusual speed and trajectory changes that have piqued astronomers’ interest. While cometary trajectories are often influenced by outgassing, the observed deviations have led to in-depth modeling and scrutiny, hinting at complex internal dynamics or external influences.An Unprecedented Spacecraft Intercept Opportunity:Perhaps one of the most remarkable aspects of 3I/ATLAS’s visit is the unprecedented possibility of two spacecraft potentially passing directly through its tail. Such an encounter, if it materializes, would be a first for an interstellar object, offering an unparalleled chance to directly sample particles and gases from an extrasolar body. Missions like these could provide direct evidence of its composition, going beyond spectrosc..."
  },

  {
    "title": "A Quantum Leap Towards Reliability: Microsoft's Breakthrough in Error-Corrected Qubits",
    "url": "https://virtualdump.net/tech/2023-10-27-a-quantum-leap-towards-reliability-microsofts-breakthrough-in-error-corrected-qubits/",
    "date": "October 27, 2023",
    "collection": "tech",
    "categories": "Science",
    "tags": "Quantum Computing, Research",
    "excerpt": "Quantum computing has long been hailed as the next frontier in computational power, promising to tackle problems currently intractable for even the most powerful supercomputers. From designing new materials and drugs to optimizing complex logistical network...",
    "body": "Quantum computing has long been hailed as the next frontier in computational power, promising to tackle problems currently intractable for even the most powerful supercomputers. From designing new materials and drugs to optimizing complex logistical networks and breaking modern encryption, the potential applications are transformative. However, a formidable hurdle has consistently stood in the way of realizing this promise: the inherent fragility and error-proneness of quantum bits, or qubits.Unlike classical bits, which exist in a definitive state of 0 or 1, qubits leverage the peculiar phenomena of quantum mechanics, such as superposition (being 0 and 1 simultaneously) and entanglement (being interconnected regardless of distance). While these properties enable exponential computational power, they also make qubits extraordinarily susceptible to environmental disturbances, leading to rapid loss of their delicate quantum states – a phenomenon known as decoherence. This inherent instability results in a high error rate, meaning that as quantum computations grow more complex and involve more qubits, the accumulated errors quickly render the results unreliable.The Quantum Conundrum: Battling DecoherenceFor years, researchers have been grappling with the challenge of quantum errors. Every interaction a qubit has with its environment – even minuscule vibrations, stray electromagnetic fields, or thermal fluctuations – can cause it to lose its quantum coherence, flipping its state prematurely or corrupting its entangled relationships. This high error rate necessitates extensive error correction, often requiring hundreds or even thousands of physical qubits to encode just one “logical” (error-corrected) qubit. This massive overhead is a significant barrier to building truly scalable and fault-tolerant quantum computers.Previous efforts in quantum computing have focused on increasing the raw number of physical qubits. Companies like IBM and Google have made impressive strides in scaling up qubit counts, demonstrating chips with dozens or even over a hundred qubits. Yet, without robust error correction, these machines, while powerful for certain niche problems, remain “noisy intermediate-scale quantum” (NISQ) devices. Their limited coherence times and high error rates restrict the complexity and duration of computations they can reliably perform. The true breakthrough required was not merely more qubits, but reliable qubits.Microsoft’s Breakthrough: Topological Qubits and Majorana FermionsEnter Microsoft, which has taken a radically different approach to error correction, recently announcing a monumental step forward. In collaboration with the University of Sydney, Microsoft scientists have demonstrated a method that reduces the error rate in quantum computations by an astonishing 1,000 times. This achievement isn’t just about tweaking existing error correction schemes; it’s about fundamentally changing the type of qubit used.Microsoft’s innovation lie..."
  },

  {
    "title": "Where to start when the DB is the bottleneck",
    "url": "https://virtualdump.net/tech/2020-06-16-debug-database-performance-issues/",
    "date": "June 16, 2020",
    "collection": "tech",
    "categories": "Engineering",
    "tags": "Databases, Performance, Debugging",
    "excerpt": "Debugging is one of the disciplines any developer should master. Yes, it’s not straight forward as writing code. True, there’s no hard and fast way of doing so. But with proper tools, You will get used to it. It’s even harder to debug when an issue has no f...",
    "body": "Debugging is one of the disciplines any developer should master. Yes, it’s not straight forward as writing code. True, there’s no hard and fast way of doing so. But with proper tools, You will get used to it. It’s even harder to debug when an issue has no functional impact. One such case is performance. For every performance issue, there are two solutions,  Short-cut - Increase resources  The right way - Diagnose the issue and fixYou can blindly increase the resources and can get the desired performance in most of the cases. Doing that will solve the problem sometime but not for long.Recently I had to debug a performance issue related to a service. When I pick up the ticket, initial analysis was already done. Conclusion of it was, database is the bottleneck. There’s nothing much to continue on. At this point service only consumes the writer endpoint of the database for all read and write queries. A suggestion was to separate the load to reader and writer DB endpoints. I guess that could solve the issue. But the real question is why does DB has slowed down? It was a Postgres AWS aurora DB with db.r4.large instance type. And the load was not that high to queue on the DB. According to DB monitoring, some queries even took more than 1 min to resolve. This has propagated to the service and ecs tasks starts to fail due to CPU maxing out.After going around the problem for some time, I’ve decided to attack the issue in four steps. My target was to reduce the issue little bit so that I can have time to look for a proper solution,  Check if we can reduce the load  Go deep into DB query execution and improve  Separate load to reader and writer  As final resort increase DB resourcesWith the initial analysis, I’ve noticed that read queries have the most contribution to the load. So the first target was to find a way to reduce this. We were able to find few places where we fetch data more than we want and immediately push the changes to production, reducing them. Did it work? Yes, it did for 2-3 days. Again on a peak day at peak time, same thing happened.I had to look for a permanent solution, despite everyone suggesting to go for a larger instance or utilize read replica. In an event like that best tool comes to help is DB query plan analysis.In order to understand what it is you need to know how a database engine works. It’s not that simple as I’m going to explain but you can separate the process to below steps in that order,  Parse the query  Validate  Optimize the query  Query Execution    In above process, optimization step is where performance impact lies. Once the query is optimized, RDBMS engine creates a Query plan showing the path of how it will execute the query. Analysing this is the best way to find the bottleneck. Every RDBMS has a command to get the query plan. In Postgres, you can use EXPLAIN ANALYZE to do that.In a query plan, what you have to look for are,  Index usage - does the query go through indexes and time took  Sequential scan - th..."
  },

  {
    "title": "Fiverr - Gateway to Freelancing",
    "url": "https://virtualdump.net/education/2020-06-13-Start-with-fiverr/",
    "date": "June 13, 2020",
    "collection": "education",
    "categories": "Career",
    "tags": "Freelancing, Fiverr, Career",
    "excerpt": "Main reason why fiverr has become the gateway for freelancing is, it’s really easy to start working on fiverr. To be honest it didn’t took 30 mins for me to create my first account and the gig. (Of course it didn’t work out :satisfied: ) I heard about Fiver...",
    "body": "Main reason why fiverr has become the gateway for freelancing is, it’s really easy to start working on fiverr. To be honest it didn’t took 30 mins for me to create my first account and the gig. (Of course it didn’t work out :satisfied: ) I heard about Fiverr in 2013, I think. Just to try out I did create a account and post a gig but never followed it up. In 2016 I’ve heard about local developers,who earn big bucks with fiverr. So as anyone would do, I dust it up my old account and try to find ways to bring up my gig. Before start talking about that, let’s go over the basics.These are few pointers you should remember when you create a fiverr account.  Start with a account      Does the account name matter - actually I dunno for sure, but I don’t think soo. I’ve seen weird names. It’s better if you can brainstorm a cool name.        It’s not a bad thing to brag about yourself a bit - talk about yourself a bit in account description and make it a good pitch.        Payment method - If you are eligible for paypal, go for it but I’ve never used that. But My opinion is Payoneer bank transfer is the best.        Most of all keep fiverr as the gateway to freelancing but please don’t rely on it much, will tell you later why. :expressionless:        Add a good dp, if it’s professional better.        Do few skill tests when you have time.  Next create a gigOkay then let’s start creating your gig.      before everything open an incognito tab and search fiverr for what you do and open up few top gigs that caught your eye.        Go through them and find what you like most in them, Now what you gonna do is add em all in one gig        Go for a simple name but attractive one        If this is your first gig, start from $5 package and add few other packages for like $20, $30        Create a consolidated description with all the things you’ve learnt from other gigs        Most of all add few eye catching photos, If you can create them by yourself that’s good.        When adding tags, add the most common tags you found from other top gigs.  These pointers will help you to create a good gig. But is that enough ? Oooh noo. You gotta do soo much more. Now you have to bring your gig to people.How to bring the gig up?      First thing you have to do is, stay online and be patient. You will have to keep your account online 24/7. Use a auto refresh plugin and set the time for more than 5 minutes.        You can share your gig with friends and can collect few favourites. That help a bit. But there are some buggers who will report your gig. Take a risk, go to a larger crowd.There are few gig promotion fb pages where you can do this.        Send proposals to buyer requests, If you were able to get one and add a review to the account that’s very helpful        Most of all, it won’t happen in a day. So don’t loose your faith, give it a time.  Next thing to talk about is what to do and not to do when working with buyersWhat to do and not to do?Always remember, Fiverr custom..."
  },

  {
    "title": "Reduce your cloud infrastructure costs by using Scheduled Tasks on AWS by Damian Perera",
    "url": "https://virtualdump.net/tech/2020-06-13-aws-scheduled-tasks/",
    "date": "June 13, 2020",
    "collection": "tech",
    "categories": "Engineering",
    "tags": "AWS, Cloud, Cost Optimization, DevOps",
    "excerpt": "ECS allows you to deploy and run containers on a fully-managed orchestration service (similar to Kubernetes). While the most common use case of ECS (as far as I know) is to continuously run services on containers, there could be some architectural designs t...",
    "body": "ECS allows you to deploy and run containers on a fully-managed orchestration service (similar to Kubernetes). While the most common use case of ECS (as far as I know) is to continuously run services on containers, there could be some architectural designs that require some services to only run periodically.  One way to achieve this would be to add a cron job to the Dockerfile of the container in order to start the service periodically (while running the cron daemon in the foreground). The drawback of this would be that you would have a container with a service that needs to run only x minutes per day but would be continuously reserving (and therefore being billed for) the resources of an ECS instance.  While this certainly is easy and would not require you to change your deployment code, the infrastructure cost that you would incur alone would outweigh any perceived drawbacks of switching over to a Scheduled Task.But why should I switch over to a Scheduled Task?The beauty of this method is that it will spin up the container when you need it to (based on a cron or rate expression) and automatically destroy itself once the service ends its main process.Here are a few scenarios where you might consider using an ECS Scheduled Task over a normal ECS Task:      Extract, Transform, Load (ETL) services that periodically fetch data from services or databases with varying execution times.        Application health monitoring services that periodically execute integration tests to make sure that mission-critical systems and associated third-party services are behaving as expected, again with varying execution times.        Scheduled services with an execution time greater than 15 minutes, which cannot be accommodated within the time restrictions of a serverless offering such as on AWS Lambda.  So how does a Scheduled Task work?Basically what happens is that the responsibility of starting a container is delegated from ECS to CloudWatch, while ECS continues to manage the container over its lifecycle once it has started.  A Scheduled Task uses EventBridge (a serverless pub/sub service leveraging the CloudWatch Events API) to create an event rule on CloudWatch which then waits to be triggered by an associated cron or rate expression after which the target ECS task is invoked.Note that the relevant service needs to exit its main process once it completes its execution in order to allow the AWS ECS Container Agent to gracefully shut it down.Enough reading, start deploying!The following is a ready-to-deploy template that can be used to create a Scheduled Task using CloudFormation and assumes (as in most scenarios) that you already have the following resources in place:      An ECS cluster        A container repository (e.g. ECR or Docker Hub)        An IAM role with a policy that grants permission to the CloudWatch Events API to run tasks on ECS  {  \"Description\": \"AWS CloudFormation Boilerplate Template for an ECS Scheduled Task\",  \"Parameters\": {    \"Tag\": { ..."
  },

  {
    "title": "How to run nginx with ssl enabled inside docker",
    "url": "https://virtualdump.net/tech/2020-06-08-nginx-docker-container-with-ssl/",
    "date": "June 8, 2020",
    "collection": "tech",
    "categories": "Engineering",
    "tags": "Docker, Nginx, SSL, DevOps",
    "excerpt": "Lets deploy a nginx server in docker with SSL enabled port. Before we try to work with nginx, first of all lets create a self signed certificate. SSL (Secure Socket Layer ) enable us to communicate with web servers, websites securely. In SSL a certificate i...",
    "body": "Lets deploy a nginx server in docker with SSL enabled port. Before we try to work with nginx, first of all lets create a self signed certificate. SSL (Secure Socket Layer ) enable us to communicate with web servers, websites securely. In SSL a certificate is used to verify the authenticity of a website. To enable SSL lets create a self signed certificate for our purpose.  In linux it is easy to create a self signed certificate using openssl. What you have to do is, just run the below commands and provide data for the questions prompt.sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout &lt;path&gt;/&lt;key_name&gt;.key -out &lt;path&gt;/&lt;certificate_name&gt;.crtOnce you correctly give the data necessary and a path and a name, key will be created.Lets start with nginx, First lets see what we wants to get up and running a nginx server with SSL. First we need a,1. Dockerfile for the image2. SSL certificate and the key3. Nginx config fileWe can create a dockerfile for a customized container like below, but just for now I’m going to use the nginx latest base image. We can skip that part and can create a container from the nginx base image. So don’t worry about the dockerfile in this exercise.FROM nginx:latest//addd all you want hereNow you have the certificate file and the key that we created before. Create a folder private,ssl,log and config. We are going to map these locations with respective locations in the nginx container. Then copy the certificate file to ssl folder and key file to private folder. We will make these locations volumes in the run command.Then lets create nginx config file to enable ssl for a server. Create a nginx.conf file in config folder and include these lines.events {  worker_connections  1024;  ## Default: 1024}http{\tserver {\t    listen 443;\t    ssl on;\t    server_name mydomain.com www.mydomain.com;\t    ssl_certificate    /etc/ssl/certs/nginx.crt;\t    ssl_certificate_key    /etc/ssl/private/nginx.key;\t    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;\t    ssl_prefer_server_ciphers on;\t    ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;\t\tlocation / {            try_files $uri $uri/ /index.html;\t\t}\t\terror_page 404 /404.html;\t\terror_page 500 502 503 504 /50x.html;\t\tlocation = /50x.html {\t\t      root /usr/share/nginx/html;\t\t}\t\t\t    \t}\tserver {\t     listen 80 default_server;\t\t ##listen [::]:7070 default_server ipv6only=off;\t\t root /usr/share/nginx/html;\t\t index index.php index.html index.htm;\t\t server_name example.com;\t\t}}Nginx config file has basic two blocks. We define our servers in http block. In default settings nginx listen on port 80 and 443. What we are going to do is enable ssl for port 443. within http block there are two server block. We have two server blocks for port 80 and 443. In 443 block we have enabled the ssl and provided the paths to certificate file and the key.In the locations, we can define where should the request go according to the url. Here lets create index.html file and send all request to it. Ano..."
  },

  {
    "title": "Behavior Driven Testing in Enterprise Applications by Damian Perera",
    "url": "https://virtualdump.net/tech/2020-06-08-behavior-driven-testing/",
    "date": "June 8, 2020",
    "collection": "tech",
    "categories": "Engineering",
    "tags": "Testing, BDD, Software Design",
    "excerpt": "I work in a software organization where change is frequent, to say the least. As a developer and part of a larger team building an e-commerce platform, we’ve more or less adapted to frequent changes in project management, development methodologies, testing ...",
    "body": "I work in a software organization where change is frequent, to say the least. As a developer and part of a larger team building an e-commerce platform, we’ve more or less adapted to frequent changes in project management, development methodologies, testing ideologies and of course now (given the current global pandemic), remote collaboration. This behavior-driven test strategy was developed within our team as a way to reduce bug leakages in mission-critical systems as our organization grew to include off-shore development teams (with product owners representing different customer interests) - and in order to ensure that the quality of the systems would not be affected by evolving engineering philosophies over the years.  BackgroundWhen working with an enterprise application powered by microservices you can end up with a lot of sub-systems designed to handle different parts of a user’s experience.  In an e-commerce setting these microservices might be scoped to manage users, orders, payment processing, product recommendations, product search, etc. leading to a lot of moving parts under the hood. Depending on the design of the system, each microservice might consume a bunch of others based on a predefined flow to complete a user action.An example would be a user wanting to know the delivery ETA of an order while in the order details page. In order to generate an ETA for the delivery (as per the diagram above), the delivery microservice would need to fetch the order stored with the order management service, cross-check its location with the warehouse and logistics services, fetch driver information and estimate a delivery time depending on a GPS marker. That’s four different sub-systems working in unison to populate a label on the user’s screen with the delivery information of an order.The ProblemAs and when your product grows, so will the requirements of your target users and in extension the demands of your product owner. This is when our software organization started to expand and grow, breaking off into smaller specialized business units (or verticals) focused on developing a part of a user experience like tracking the delivery of an order rather than taking tickets from a common project backlog in a round-robin manner.When you have teams working on different aspects of a customer’s experience you tend to get new features that require changes across many sub-systems - and having many developers building multiple features across the entire stack at the same time is a really big risk if you don’t have a proper test suite.  In a unit test suite, the problem with mocking every dependency is that if you change a method’s functionality, and other methods in its call hierarchy have already mocked it, you won’t know if any functionality different to your own has been broken. This becomes a significant problem for developers (both new and old alike) since it’s difficult to comprehend the entire affected scope of a changeset.You might end up breaking a..."
  },

  {
    "title": " Where i go to download a movie, tv show or a game",
    "url": "https://virtualdump.net/misc/2020-03-09-my-way-of-downloading-stuff/",
    "date": "March 9, 2020",
    "collection": "misc",
    "categories": "Personal",
    "tags": "Movies, TV Shows, Tools",
    "excerpt": "We all want something to do when we are free. Some used to do productive things like reading a book, workout, write stuff etc. But others like me, wants some way to pass the time. Best way to do so is to watch a movie or a TV show or else play a game. Here ...",
    "body": "We all want something to do when we are free. Some used to do productive things like reading a book, workout, write stuff etc. But others like me, wants some way to pass the time. Best way to do so is to watch a movie or a TV show or else play a game. Here i’m gonna add some places where i prefer for finding them.Movies and TV showsMost reliable way to download anything is torrents.  I know you already know that but where to find good torrents is the question. I myself prefer 1337x and KickAss which are pretty decent.  There are other good sites too, but these were here for long time and still going strong. Next thing to discuss is which method to download.  Use a torrent client such as utorrent, bittorrent  Use a paid online torrent client like seedr  Use your own torrent clientFrom above options what i prefer is the first option where you have much control. Reason for preferring is the fact we can seed the torrents otherwise whole concept of file sharing would fail. But there are drawbacks. It’s really hard to download a torrent which is old or don’t have that much seeders. Sometimes speed can be terrible. In such cases using a online torrent client would be better. Downloads will be much faster. But all the paid services only provide limited file sizes for free tier. In seedr you can go upto 5GB as i remember with the referrals. That’s a decent storage to download a movie but not for a complete tv show though.  Don’t worry you can have private online torrent client for yourself.  If you have your own server, you can use https://github.com/jpillora/cloud-torrent to create your own torrent client and get all the benefits of a paid service for free ( except for server charges :grin: ) It’s pretty easy to deploy is you are gonna do it via docker.What else other than torrents ? Why not direct downloads. It’s pretty fast but kinda frustrating with the ads though. Anyhow lets see few good sites with direct links.  pahe.me  psarips.oneThese are the two sites which i prefer. Direct download sites don’t update as quick as torrents but the wait can be worth. Not only that those links won’t expire or slow down like torrents. But issues is the layer of ads that you have to get thorough to reach the real link. But sometimes it’s the only way as for some movies and tv shows torrents are completely dead. From direct downloads, what i prefer is the MEGA downloads. It’s pretty fast and speed is consistent. From above two sites, you can find almost any movie that you wanna watch and i can guarantee, quality is pretty good. Not only the file size is pretty small too.GamesWith the games issue is the file size. If you prefer torrents, resiliency is there as it won’t fail in middle of the download. But the time you have to wait till it download is too much. :grimacing: So personally i prefer direct downloads for games. Another thing that we want to think about is the ripper. There are so many good game rippers. My personal favourite is FItGirl. Another thing that..."
  },

  {
    "title": "CI with Travis",
    "url": "https://virtualdump.net/tech/2020-02-08-ci-with-travis/",
    "date": "February 8, 2020",
    "collection": "tech",
    "categories": "Engineering",
    "tags": "CI/CD, Travis CI, Automation",
    "excerpt": "Travis CI is a hosted CI server which is highly integrated with GitHub. It is really easy to enable Travis for a GitHub project. Hope you all familiar with the Continuous integration. Travis is free for your public repositories. Lets set play with Travis li...",
    "body": "Travis CI is a hosted CI server which is highly integrated with GitHub. It is really easy to enable Travis for a GitHub project. Hope you all familiar with the Continuous integration. Travis is free for your public repositories. Lets set play with Travis little bit.  What you should have first is a public Repo in GitHub. Then Go to https://travis-ci.org and login using GitHub. Then Travis will display all the public repos you have. Then enable Travis for the repository you want. Now all is set. For each and every commit, travis will build the project now.For this article I will be working with a docker image and will run unit tests using codeception. You can see the project here,https://github.com/Thulana/CICD_ApacheMysqlIn this project, I have created a docker image with apache and mysql. What I’m trying to do is, for each commit travis will create the docker container and check if mysql and apache is up and running.First thing you want to configure travis is .travis.yml file. This file should be there in the root path of your project.language: phpinstall:  - docker run -d --name $containername $imagename  - docker exec $containername service apache2 restart script:  - php codecept.phar run unitbefore-script:env:  # global will stay the same across all matrix possibilities (will not create additional combinations to run)  global:    - imagename=apacheimage    - containername=apachemysqlnotifications: # set notification options  email:    recipients:      - thulanakannangara@gmail.com    # change is when the repo status goes from pass to fail or vice versa    on_success: always    on_failure: alwaysservices:  - dockerbefore_install:  - php --version  - docker build -t $imagename .  - sudo apt-get update  - composer self-updateThis is the travis.yml file I have created for my project. Here I have selected the language as PHP because I use Codeception for unit testing the container.Service tag is used to enable services in the travis virtual machine. Here I enable docker, as I use docker to build and run the image. Before install I check for php version and then build the docker image using the imagename provided in env variables. Then run apt-get update to update apt bundle.Other than that we can even specify type of the Operating system, version and so many other things to customise the build environment. Then the notifications can bet configured. Here I have added 2 email accounts for notification on both failure and success of a build.We can define environment variables too. Here I have define two env. variables for image and container name. Both these variables are in global scope. It is important when we work with multiple parallel build.Then In the install step I run the docker image. Once its done, I start the apache2 service by logging into the container. Then In the script step, I run the build command. Here what I do is executing unit tests using codeception. Here I use codecept.phar file as it is easy to work with.Now all is set here..."
  },

  {
    "title": "CV as a code & CI/CD for your CV",
    "url": "https://virtualdump.net/tech/2020-01-25-resume-as-a-code/",
    "date": "January 25, 2020",
    "collection": "tech",
    "categories": "Engineering",
    "tags": "CI/CD, Automation, Travis CI",
    "excerpt": "I know we are used to keep our CV (resume) in WORD format or in pdf. Most of us techies won’t do the same. We love to keep everything as a code ( I mean literally everything :sweat_smile: ) Infrastructure as a code, platform as a code, service as a code, ne...",
    "body": "I know we are used to keep our CV (resume) in WORD format or in pdf. Most of us techies won’t do the same. We love to keep everything as a code ( I mean literally everything :sweat_smile: ) Infrastructure as a code, platform as a code, service as a code, network as a code, why not your CV as a code ?So let’s keep our CV as a code and discuss little bit why it is kinda easy and useful,  Version Control the CV ( this is pretty cool :wink:)  Automated Building process  Wide range of freedom for customization  LaTeX backgroundOne of the perks of keeping something as a code is the version control capability. We can go back to any edit that we did in ease.  As an example, when you need a customized CV, create a new branch from the base branch and crack on. Not only that you can automate the building process so that you don’t need to worry about that. Yeah it’s pretty easy to customize and do whatever you want. If u can’t find something, write it yourself and share so others don’t have to. That’s the beauty of keeping something as a code, let’s get cracking.If we are going to keep the CV as a code, first question is which language should i use to code? LaTeX is not so much a language but it’s pretty close. LaTeX is a document preparing system where you can write in plain text and format using markups. So anyone can use LaTeX as it uses plain text, and you can import stuff and write functions and much more too.Where to start ?First you have to come up wit your CV right? So best place to start is by using a template. You can find so many good templates here. overleaf templates Overleaf comes with a good latex editor too. Don’t forget to create a account there and check it out. What you have to do is download the source of the template and create a git repository for it. You can either use a online latex editor such as overleaf or you can download a latex editor for your computer. Search for it there are plenty. I’m not here to teach you how to create your CV so let’s move on to building your CV.How to build ?Just as a normal programming language, you have to compile the latex code in order to get the formatted CV. I’m gonna explain here how you can do it in a linux based system.In ubuntu you can install Tex Live, which you can use to compile LaTeX documents. TeX Live is a TeX distribution to get up and running with the TeX document production system.sudo apt-get install texlive-fullAfter installation you can use xelatex command like below to compile your cv.xelatex &lt;tex file&gt;  Ex : xelatex cv.texAs we are going to automate this, writing the command over and over again not gonna work, let’s create a MAKE file. keep the make file inside your project. Sample make file will looks like below.# The name of the main .tex file to build.  # Other files can be included into this one.  DOCUMENT = cvOUTPUT = .PDF = $(OUTPUT)/$(DOCUMENT).pdf  LATEX_FLAGS = -halt-on-error -output-directory $(OUTPUT)/LATEX = xelatexPDFVIEWER = xdg-open  # File Types (for depend..."
  },

  {
    "title": "How to create your own blog with zero cost - Story of virtualdump",
    "url": "https://virtualdump.net/tech/2020-01-16-story-of-virtualdump/",
    "date": "January 16, 2020",
    "collection": "tech",
    "categories": "Engineering",
    "tags": "Jekyll, GitHub Pages, Blogging",
    "excerpt": "Who won’t like your own blog in your own domain. But to do all this, you needs to spent few bucks. If not you can go with a popular blogging site like Medium.  But every techie would love their own space. So, here is the story of  Virtual DumpWhat you will ...",
    "body": "Who won’t like your own blog in your own domain. But to do all this, you needs to spent few bucks. If not you can go with a popular blogging site like Medium.  But every techie would love their own space. So, here is the story of  Virtual DumpWhat you will need,  GitHub account -  Sign up  FreeNom account - Sign up  Cloud-flare account - Sign up  Precious time of yours :stuck_out_tongue_winking_eye:FYI this is a high level walk-through about how to get it up and running, i will share all the resources, you have to do it your own. Add a little touch of yours to it, don’t do what everyone does.First things First, lets get your blog up and running locally before we move into deploying etc.Build your static siteI’m gonna use GitHub pages to make my static website. You can build your site from ground up by doing everything manually by writing HTML, CSS and JavaScript. But it will take forever, You don’t need that. One of the first principles of programming is Code Re-usability.  Which means, you don’t need to write something which is already there. Just use the damn thing. So lets talk about the frameworks you can use with GitHub pages.There are so many static site generators but there is one which is backed by GitHub itself, jekyll. It uses cool templating  language Liquid which will gonna make your life so much easier. There is two approaches you can take,  Build the site with a fresh jekyll project - Good approach, lot to learn  Be a smuch like me and use a free jekyll theme and customize - Easy thoughSo I’m gonna go with the shortcut here.  Here is a good collection of themes http://jekyllthemes.org where you can choose one for yourself.  I went with mmistakes . Thanks Michael Rose for this cool theme. So lemme clear up, why using a theme is really easy.  No needs to do the ground work such as headers, footers and page configurations as they are already done.  No needs to worry about Facebook commenting, post sharing, Google analytics, google adsense, basically most of the config stuff that will take days to implement.So what you have to do is clone such repo and configure as you want. Yes, you will need sometime to familiar with jekyll and it’s commands. If you don’t know something, it’s all here https://jekyllrb.com/docs/. Else search for it. :grin: Once you are done, you have to push it to github. Before do that log on to GitHub and create a GitHub page repository.  You can learn how to do that here https://pages.github.com/. It’s same as creating a usual GitHub repository. Only difference is repository name should be in the format of username.github.io. Once you have done that inside your local website folder, change the git remote origin like this,`git remote set-url origin git@github.com:USERNAME/REPOSITORY.git`Once you have done that commit all the changes and push to the origin. Then go to http://username.github.io/ and you will see that your static site is up and running.  :satisfied:Let’s move on to next phase.Add a Cool domainAs we a..."
  },

  {
    "title": "MySQL - write a search query with dynamic parameters",
    "url": "https://virtualdump.net/tech/2020-01-13-write-search-query-with-dynamic-parameters/",
    "date": "January 13, 2020",
    "collection": "tech",
    "categories": "Engineering",
    "tags": "MySQL, Databases, SQL",
    "excerpt": "Hey guys,You would probably think now, what the hell I know this. Yes this is simple, let me show something worth reading for.Lets take an example, I have  table named Bill with below attributes.  What if you want to search this table using ID, YEAR and CON...",
    "body": "Hey guys,You would probably think now, what the hell I know this. Yes this is simple, let me show something worth reading for.Lets take an example, I have  table named Bill with below attributes.  What if you want to search this table using ID, YEAR and CONNECTIONID. What will be your approach?? If i send year = 2016 and connectionId=C001 it should give all the bills in 2016 with connection id C001 and with any ID, as we didn’t specify it. we can do this like this.SELECT * FROM Bill WHERE year = 2016  and connectionId=C001 ;If we use this how can we search with bill ID. This is not working. Even with 3 parameters we can find 7 different searching criteria. if parameters are A ,B, and C  A  B  C  AB  AC  BC  ABCOne approach is we identify if parameters are null before hand and switch through all the combinations and define query for each one.if( connectionID != null and Id = null and year = null){           SELECT * FROM Bill WHERE  connectionId = ? ;}else if(connectionID = null and Id != null and year = null){            SELECT * FROM Bill WHERE id = ? ;}......................................This is waste of time. Then what we do?? Actually we can write all these in one line. Here is how we do this.Step 1 :First we define a convention. which is, if one parameter carries null value then we replace it with a negative integer. ( No matter the type of field we can store negative integer and convert it to integer. )Step 2 :Then write the sql query like this.billID, connectionID and year (underlined) are the variables with the search parameters. They are defined under the above convention. Question marks will be filled out when preparing the statement to stop SQL Injection. (i think you already know this)SELECT * FROM  Bill WHERE (\"+billID+\"&lt;0 or id=?) and (\"+connectionID+\"&lt;0 or  connectionID=?) and (\"+year+\"&lt;0 or year=?) ;Lets see how it works,if one parameter is null ( billID = null ) it carries negative value ( billID = -1) then that condition will be satisfied ( (-1&lt; 0 or id=?)= true). So the search will not use that parameter in search. if parameter is not null  ( billID != null ) then it carries a positive value  ( billID = 123). So the part of the condition will be not be true. ((123 &lt; 0) false ) So condition will only be true if other part is satisfied (id = ?). This is what we wanted right ?Hope this helps thanks !!!!!!!!!!!!!!!"
  }

]
