<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vinuri Piyathilake</title>
    <description>The latest articles on DEV Community by Vinuri Piyathilake (@vinuri_s).</description>
    <link>https://dev.to/vinuri_s</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F350309%2F18c493d7-3751-47ee-9878-d3d13902dddf.jpeg</url>
      <title>DEV Community: Vinuri Piyathilake</title>
      <link>https://dev.to/vinuri_s</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vinuri_s"/>
    <language>en</language>
    <item>
      <title>DSP#1. What is Digital Signal Processing ?</title>
      <dc:creator>Vinuri Piyathilake</dc:creator>
      <pubDate>Mon, 11 Oct 2021 18:18:40 +0000</pubDate>
      <link>https://dev.to/vinuri_s/dsp-1-what-is-digital-signal-processing-2pm</link>
      <guid>https://dev.to/vinuri_s/dsp-1-what-is-digital-signal-processing-2pm</guid>
      <description>&lt;p&gt;Hey folks👋 &lt;br&gt;
So, recently I started working as a research intern in an interesting project at my university (I'll let you know more about this project in a separate blog post 😉). The project is closely related to the domain of digital signal processing, and  I thought of sharing the knowledge on DSP I'm gaining while working,  through a series of blog posts. This is the first post in the series, and I'll try my best to make it clear to readers from any field. So here we go💁‍♀️&lt;/p&gt;

&lt;p&gt;You're probably aware that the mobile phones, computer equipment, and all the other digital electronics we use in our daily lives transmit digital signals. Thus, Digital Signal Processing is all about these digital signals, which are a special form of data that differentiates it from other fields of computer science. It is the mathematics, the algorithms, and the techniques used to manipulate these signals. It takes real-world signals like voice, audio, video, temperature, pressure, or position that have been digitized and then mathematically process them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Digital signal processing (DSP) is the process of analyzing and modifying a signal to optimize or improve its efficiency or performance. It involves applying various mathematical and computational algorithms to analog and digital signals to produce a signal that's of higher quality than the original signal.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With all of these definitions, you may assume that digital signal processing is heavily reliant on mathematical stuff and is extremely difficult to learn. Yes, it is heavily based on mathematics, but we need this level of detailed mathematics only to grasp the theoretical consequences of the work. The majority of practical DSP techniques can be learned and applied without the usual constraints of extensive mathematics and theory, which will be discussed in the upcoming posts.&lt;/p&gt;

&lt;p&gt;Now that we have a fundamental understanding of what digital signal processing is, let's have a look at it's evolution. Digital Signal Processing emerged in the 1960s and 1970s, around the era that digital computers were invented. Due to the high cost of computers at the time, DSP was confined to a few important applications in the areas of radar and sonar, oil exploration, space exploration, and medical imaging. With the revolution of personal computers in the 1980s and 1990s, DSP started to be applied in the commercial marketplace including mobile phones, compact disc players etc. However, it is currently being utilized in a wide range of sectors, including space, medical, commercial, telephone, military, scientific, industrial, and so on, sparking a technological breakthrough.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BwHGANgj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://www.dspguide.com/graphics/F_1_1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BwHGANgj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://www.dspguide.com/graphics/F_1_1.gif" alt="Alt text of image"&gt;&lt;/a&gt;&lt;a href="https://www.dspguide.com/graphics/F_1_1.gif"&gt;Uses of DSP in Various Sectors&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The image above depicts some of the uses of DSP in various sectors. If you're a  closely related person to an IT or computer science field, you may well aware that DSP is used in image processing, audio processing and telecommunications etc.&lt;/p&gt;

&lt;p&gt;Okay, now we got a basic background knowledge of DSP as beginners. Last but not least, there is another important aspect that you should be aware of. DSP  is a highly interdisciplinary field. It is dependent on technical studies in many adjacent fields, and we cannot precisely identify the boundaries between them as sometimes they overlap. Some of those areas you will need to study together include Communication Theory, Numerical Analysis, Probability and Statistics, and Digital Electronics etc.&lt;/p&gt;

&lt;p&gt;I hope this post has helped you with some knowledge into Digital Signal Processing. Your feedback is highly appreciated. Let's catch up soon with the upcoming posts in the series. Keep reading💜&lt;/p&gt;

</description>
      <category>digitalsignalprocessing</category>
      <category>dsp</category>
      <category>internshipdiaries</category>
      <category>intro</category>
    </item>
    <item>
      <title>Distributed Systems</title>
      <dc:creator>Vinuri Piyathilake</dc:creator>
      <pubDate>Fri, 02 Jul 2021 04:56:28 +0000</pubDate>
      <link>https://dev.to/vinuri_s/distributed-systems-1la5</link>
      <guid>https://dev.to/vinuri_s/distributed-systems-1la5</guid>
      <description>&lt;p&gt;Have you ever thought of how Facebook stores and serves thousands of petabytes of user data, which includes photos, videos, likes, and so on? This question has a solution in &lt;b&gt;distributed systems&lt;/b&gt;. Now you may be wondering what a distributed system is. Don’t worry 🙂 Through this blog post, I’ll cover the majority of the aspects of distributed systems briefly, including their characteristics, drawbacks, and advantages. First, let’s take a quick look at the evolution of distributed systems.&lt;/p&gt;

&lt;p&gt;In the 1950s and 1960s, operating systems only supported &lt;b&gt;single process computing&lt;/b&gt;. A single computer could only do one task at a time. If we need to complete multiple tasks simultaneously, we will need multiple computers running in parallel. Then came time-sharing, which was enabled by multitasking operating systems. In the late 1980s, with the availability of powerful desktop computers that can be interconnected through very fast networks, centralized multi-processor parallel architectures have been progressively replaced by distributed system architectures.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;So, What is a Distributed System&lt;/b&gt; 🤔&lt;/p&gt;

&lt;p&gt;A distributed system is composed of &lt;b&gt;nodes&lt;/b&gt; (computers, mobile devices, etc.) that are linked together by &lt;b&gt;communication links&lt;/b&gt; (cables, Wi-Fi, etc.). The system components have been distributed over these various computers/nodes. Each node has adequate computational power to collaborate on a task. The aggregate of the decisions of the individual nodes determines the final behaviour of the system. Users have equal access to data and can enable user privileges as necessary.&lt;/p&gt;

&lt;p&gt;Distributed systems have more than one component on more than one host. A &lt;b&gt;host&lt;/b&gt; is a computer that hosts some parts of a distributed system. Therefore, a distributed system can be defined as a "&lt;b&gt;collection of autonomous hosts that are connected over a computer network&lt;/b&gt;".&lt;/p&gt;

&lt;p&gt;Following are the common characteristics of a distributed system 👇&lt;/p&gt;

&lt;p&gt;✓ Consensus protocols are used by machines to agree on the same values/ transactions/ commands etc.&lt;br&gt;
✓ Every node maintains its own time/clock.&lt;br&gt;
✓ Nodes fail independently without having a significant impact on the overall system.&lt;br&gt;
✓ Multiple autonomous components.&lt;br&gt;
✓ It is possible to use the components solely. ( Components are not shared by all users) ✓ Parallel processes have been executed in distributed systems. (Software runs in concurrent processes on different processors)&lt;br&gt;
✓ Multiple points of failure.&lt;br&gt;
✓ Multiple points of control.&lt;br&gt;
✓ Resources may not be accessible.&lt;/p&gt;

&lt;p&gt;Now that we’ve gained a general idea of what a distributed system is, let’s look at its advantages and drawbacks.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Advantages of Distributed Systems&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;▪ In a distributed system, there is no central point of failure. Even if a node fails or is removed from the system, the system can still function. The fault tolerance is quite high.&lt;br&gt;
▪ Since each node has considerable processing power, the workload could be divided among multiple machines. This lowers the overloading of a single machine.&lt;br&gt;
▪ It enables multiple users to access a shared database while minimizing resource constraints.&lt;br&gt;
▪ Distributed systems can be scaled both horizontally and vertically.&lt;br&gt;
▪ We can easily add or remove nodes from a distributed system without harming overall system performance.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Disadvantages of Distributed Systems&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;▪ Distributed systems do not share a common memory or a common clock.&lt;br&gt;
▪ Absence of a common (global) clock: No concept of global time.&lt;br&gt;
It’s difficult to reason about the temporal ordering of events.&lt;br&gt;
▪ It’s difficult to design and debug algorithms in a distributed system.&lt;br&gt;
▪ Information / data may be lost in the network system due to the absence of a central server.&lt;br&gt;
▪ Troubleshooting and diagnostics are more difficult based on the distribution across multiple servers.&lt;/p&gt;

&lt;p&gt;As a conclusion, the chart below will show you how a distributed system differs from a centralized system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jEYJI0zn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nmu4xrw3k643ahngkxua.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jEYJI0zn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nmu4xrw3k643ahngkxua.JPG" alt="Comparison between Distributed and Centralized Systems"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope this blog post has given you some knowledge into distributed systems. Your feedback is mostly appreciated. Keep reading for more posts like this 💜&lt;/p&gt;

&lt;p&gt;&lt;b&gt;References&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;[1] P. Felber, The CORBA object group service: a service approach to object groups in CORBA.&lt;br&gt;
[2] W. Emmerich, Engineering distributed objects. Chichester: John Wiley &amp;amp; Sons, 2000.&lt;br&gt;
[3] C. Britton and P. Bye, IT Architectures and Middleware: Strategies for Building Large, Integrated Systems, Second Edition. Addison-Wesley Professional, 2004.&lt;/p&gt;

</description>
      <category>middlewarearchitecture</category>
      <category>distributedsystems</category>
      <category>centralizedsystems</category>
    </item>
    <item>
      <title>What is Machine Learning?</title>
      <dc:creator>Vinuri Piyathilake</dc:creator>
      <pubDate>Sun, 15 Mar 2020 04:44:34 +0000</pubDate>
      <link>https://dev.to/vinuri_s/what-is-machine-learning-35o5</link>
      <guid>https://dev.to/vinuri_s/what-is-machine-learning-35o5</guid>
      <description>&lt;p&gt;Machine learning is a method of data analysis that automates analytical model building. It is a branch of artificial intelligence based on the idea that systems can learn from data, identify patterns and make decisions with minimal human intervention.&lt;/p&gt;

&lt;p&gt;Why is Machine Learning important?&lt;/p&gt;

&lt;p&gt;The iterative aspect of Machine Learning is important because as models are exposed to new data, they are able to independently adapt. They learn from previous computations to produce reliable, repeatable decisions and results.&lt;/p&gt;

&lt;p&gt;What’s required to create good machine learning systems?&lt;/p&gt;

&lt;p&gt;-Data preparation capabilities.&lt;br&gt;
-Algorithms-basic and advanced.&lt;br&gt;
-Automation and iterative processes.&lt;br&gt;
-Scalability.&lt;br&gt;
-Ensemble modelling.&lt;/p&gt;

&lt;p&gt;What is a machine learning model?&lt;/p&gt;

&lt;p&gt;A Machine Learning Model can be a mathematical representation of a real-world process. The learning algorithm finds patterns in the training data such that the input parameters correspond to the target. The output of the training process is a machine learning model which you can then use to make predictions.&lt;/p&gt;

&lt;p&gt;What is a machine learning algorithm?&lt;/p&gt;

&lt;p&gt;Machine learning algorithms build a mathematical model based on sample data, known as “training data”, in order to make predictions or decisions without being explicitly programmed to perform the task.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>machinelearningmodel</category>
    </item>
  </channel>
</rss>
