<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hardware &#8211; Naseef Chowdhury</title>
	<atom:link href="https://naseefchowdhury.me/category/hardware/feed/" rel="self" type="application/rss+xml" />
	<link>https://naseefchowdhury.me</link>
	<description></description>
	<lastBuildDate>Wed, 07 Aug 2024 03:57:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://naseefchowdhury.me/wp-content/uploads/2019/04/cropped-003-ads-32x32.png</url>
	<title>Hardware &#8211; Naseef Chowdhury</title>
	<link>https://naseefchowdhury.me</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Unlocking Real-Time Communication: A Guide to Basic PubSub Module in C++</title>
		<link>https://naseefchowdhury.me/2024/07/31/guide-to-basic-pubsub-module-in-c/</link>
					<comments>https://naseefchowdhury.me/2024/07/31/guide-to-basic-pubsub-module-in-c/#respond</comments>
		
		<dc:creator><![CDATA[Naseef Chowdhury]]></dc:creator>
		<pubDate>Wed, 31 Jul 2024 10:18:51 +0000</pubDate>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Information]]></category>
		<category><![CDATA[IT and Technology]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://naseefchowdhury.me/?p=3464</guid>

					<description><![CDATA[Real-time communication is the backbone of many modern applications, enabling seamless interaction and data exchange between different components. In C++ programming, implementing a PubSub (Publish-Subscribe) module is a powerful way to facilitate such communication. In this article, we’ll explore the fundamentals of a Basic PubSub module in C++, empowering developers to build efficient and scalable [&#8230;]]]></description>
										<content:encoded><![CDATA[<p id="8d21" class="pw-post-body-paragraph mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc gm bj" style="text-align: justify;" data-selectable-paragraph="">Real-time communication is the backbone of many modern applications, enabling seamless interaction and data exchange between different components. In <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://naseefchowdhury.me/2024/07/26/ip-tcp-programming-for-beginners-usi/">C++ programming</a></span>, implementing a PubSub (Publish-Subscribe) module is a powerful way to facilitate such communication. In this article, we’ll explore the fundamentals of a Basic PubSub module in C++, empowering developers to build efficient and scalable systems for real-time messaging. From understanding the core concepts to implementing a simple yet robust PubSub module, this guide will equip you with the<span style="color: #0000ff;"><a style="color: #0000ff;" href="https://naseefchowdhury.me/"> knowledge to harness the power of PubSub in your C++ projects</a></span>.</p>
<p style="text-align: justify;" data-selectable-paragraph="">&nbsp;</p>
<p id="4b2e" class="pw-post-body-paragraph mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc gm bj" style="text-align: justify;" data-selectable-paragraph=""><strong class="mh gu">Understanding PubSub</strong>: PubSub is a messaging pattern where publishers send messages to a central topic or channel, and subscribers receive messages based on their interest in specific topics. This decoupled architecture allows for flexible communication between components, making <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern" target="_blank" rel="noopener">PubSub</a></span> ideal for building scalable and loosely coupled systems.</p>
<p style="text-align: justify;" data-selectable-paragraph="">&nbsp;</p>
<p style="text-align: justify;" data-selectable-paragraph=""><img fetchpriority="high" decoding="async" class="alignnone" src="https://miro.medium.com/v2/resize:fit:1050/1*FVeNnxq4q29Ia52S6ODdyQ.png" alt="A Guide to Basic PubSub Module in C++" width="1050" height="314"></p>
<p style="text-align: justify;" data-selectable-paragraph="">&nbsp;</p>
<p id="7d42" class="pw-post-body-paragraph mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc gm bj" style="text-align: justify;" data-selectable-paragraph=""><strong class="mh gu">Key Components of a Basic PubSub Module:</strong></p>
<ol class="" style="text-align: justify;">
<li id="fc11" class="mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nv nw nx bj" data-selectable-paragraph=""><strong class="mh gu">Publisher</strong>: Responsible for publishing messages to specific topics or channels.</li>
<li id="cbe9" class="mf mg gt mh b mi ny mk ml mm nz mo mp mq oa ms mt mu ob mw mx my oc na nb nc nv nw nx bj" data-selectable-paragraph=""><strong class="mh gu">Subscriber</strong>: Listens for messages on topics of interest and receives them asynchronously.</li>
<li id="609d" class="mf mg gt mh b mi ny mk ml mm nz mo mp mq oa ms mt mu ob mw mx my oc na nb nc nv nw nx bj" data-selectable-paragraph=""><strong class="mh gu">Message Broker</strong>: Acts as an <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://naseefchowdhury.me/2024/07/11/negative-impact-of-large-language-models/">intermediary between publishers and subscribers</a></span>, routing messages to the appropriate subscribers based on topic subscriptions.</li>
</ol>
<p id="fb6b" class="pw-post-body-paragraph mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc gm bj" style="text-align: justify;" data-selectable-paragraph="">Implementing a Basic PubSub Module in C++: Let’s walk through a simple implementation of a PubSub module in <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://naseefchowdhury.me/2024/06/28/a-comprehensive-guide-to-gtest-automation/">C++</a></span>, focusing on the core functionalities of publishing and subscribing to topics.</p>
<table style="width: 100%; border-collapse: collapse; background-color: #faebeb; height: 717px;">
<tbody>
<tr style="height: 717px;">
<td style="width: 100%; height: 717px;"><span class="hljs-meta">#<span class="hljs-keyword">include</span> <span class="hljs-string">&lt;iostream&gt;</span></span><br />
<span class="hljs-meta">#<span class="hljs-keyword">include</span> <span class="hljs-string">&lt;unordered_map&gt;</span></span><br />
<span class="hljs-meta">#<span class="hljs-keyword">include</span> <span class="hljs-string">&lt;vector&gt;</span></span><br />
<span class="hljs-meta">#<span class="hljs-keyword">include</span> <span class="hljs-string">&lt;functional&gt;</span></span><span class="hljs-keyword">class</span> <span class="hljs-title.class">PubSub</span> {<br />
<span class="hljs-keyword">private</span>:<br />
std::unordered_map&lt;std::string, std::vector&lt;std::function&lt;<span class="hljs-type">void</span>(<span class="hljs-type">const</span> std::string&amp;)&gt;&gt;&gt; subscriptions;<br />
<span class="hljs-keyword">public</span>:<br />
<span class="hljs-function"><span class="hljs-type">void</span> <span class="hljs-title">publish</span><span class="hljs-params">(<span class="hljs-type">const</span> std::string&amp; topic, <span class="hljs-type">const</span> std::string&amp; message)</span> </span>{<br />
<span class="hljs-keyword">if</span> (subscriptions.<span class="hljs-built_in">find</span>(topic) != subscriptions.<span class="hljs-built_in">end</span>()) {<br />
<span class="hljs-keyword">for</span> (<span class="hljs-keyword">auto</span>&amp; subscriber : subscriptions[topic]) {<br />
<span class="hljs-built_in">subscriber</span>(message);<br />
}<br />
}<br />
}<br />
<span class="hljs-function"><span class="hljs-type">void</span> <span class="hljs-title">subscribe</span><span class="hljs-params">(<span class="hljs-type">const</span> std::string&amp; topic, std::function&lt;<span class="hljs-type">void</span>(<span class="hljs-type">const</span> std::string&amp;)&gt; callback)</span> </span>{<br />
subscriptions[topic].<span class="hljs-built_in">push_back</span>(callback);<br />
}<br />
};<br />
<span class="hljs-function"><span class="hljs-type">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{<br />
PubSub pubSub;<br />
<span class="hljs-comment">// Subscribe to &#8220;news&#8221; topic</span><br />
pubSub.<span class="hljs-built_in">subscribe</span>(<span class="hljs-string">&#8220;news&#8221;</span>, [](<span class="hljs-type">const</span> std::string&amp; message) {<br />
std::cout &lt;&lt; <span class="hljs-string">&#8220;Received news: &#8220;</span> &lt;&lt; message &lt;&lt; std::endl;<br />
});<br />
<span class="hljs-comment">// Publish a message to the &#8220;news&#8221; topic</span><br />
pubSub.<span class="hljs-built_in">publish</span>(<span class="hljs-string">&#8220;news&#8221;</span>, <span class="hljs-string">&#8220;Breaking: New feature released!&#8221;</span>);<br />
<span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br />
}</td>
</tr>
</tbody>
</table>
<p id="4a79" class="pw-post-body-paragraph mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc gm bj" style="text-align: justify;" data-selectable-paragraph="">A Basic PubSub module in C++ opens up a world of possibilities for real-time communication and event-driven architecture. By decoupling publishers from subscribers and leveraging topics for message routing, PubSub enables scalable and flexible communication between different components of your application. With the foundational knowledge and simple implementation provided in this guide, you’re well-equipped to integrate PubSub into your C++ projects and unlock the <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://naseefchowdhury.me/2024/07/18/transformative-large-language-models/">benefits of real-time messaging. </a></span></p>
<p class="pw-post-body-paragraph mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc gm bj" style="text-align: justify;" data-selectable-paragraph="">Whether you’re building chat applications, IoT systems, or event-driven architectures, PubSub in C++ empowers you to build efficient and responsive solutions that meet the demands of modern software development.</p>
<p id="574b" class="pw-post-body-paragraph mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc gm bj" style="text-align: justify;" data-selectable-paragraph=""><strong class="mh gu">References:</strong></p>
<ul class="" style="text-align: justify;">
<li id="0f98" class="mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc on nw nx bj" data-selectable-paragraph=""><a class="af oo" href="https://dashbird.io/knowledge-base/well-architected/pub-sub-messaging/" target="_blank" rel="noopener ugc nofollow">https://dashbird.io/knowledge-base/well-architected/pub-sub-messaging/</a></li>
</ul>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://naseefchowdhury.me/2024/07/31/guide-to-basic-pubsub-module-in-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The Negative Impact of Large Language Models on Software Developers (Naseef Chowdhury)</title>
		<link>https://naseefchowdhury.me/2024/07/11/negative-impact-of-large-language-models/</link>
					<comments>https://naseefchowdhury.me/2024/07/11/negative-impact-of-large-language-models/#comments</comments>
		
		<dc:creator><![CDATA[Naseef Chowdhury]]></dc:creator>
		<pubDate>Thu, 11 Jul 2024 08:44:38 +0000</pubDate>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Information]]></category>
		<category><![CDATA[IT and Technology]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[software developers]]></category>
		<category><![CDATA[software Development]]></category>
		<guid isPermaLink="false">https://naseefchowdhury.me/?p=3379</guid>

					<description><![CDATA[Large Language Models (LLMs) like GPT-4, Bard, and others have revolutionized various fields, including software development. While these AI-powered tools offer numerous benefits, they also bring along several negative impacts on software developers. This article explores these drawbacks, emphasizing how LLMs can potentially hinder development, affect job roles, and lead to ethical and practical challenges. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p id="655b" class="pw-post-body-paragraph mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc gm bj" data-selectable-paragraph="">Large Language Models (LLMs) like GPT-4, Bard, and others have revolutionized various fields, including software development. While these AI-powered tools offer numerous benefits, they also bring along several negative impacts on software developers. This article explores these drawbacks, emphasizing how LLMs can <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://naseefchowdhury.me/blogs/">potentially hinder development</a></span>, affect job roles, and lead to ethical and practical challenges.</p>
<h2 id="7bae" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Reduced Skill Development and Critical Thinking</h2>
<p id="3aa0" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">One of the most significant concerns with the increasing reliance on LLMs is the potential decline in developers’ critical thinking and problem-solving skills. LLMs can handle many routine tasks, such as code generation, debugging, and documentation, which developers traditionally perform by developers.</p>
<h2 id="6ef2" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Over-Reliance on AI</h2>
<p id="a7c2" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">Developers might become overly dependent on these tools, leading to a reduced understanding of the underlying principles and nuances of coding. This dependency can result in a workforce that cannot troubleshoot complex issues independently, relying instead on AI-generated solutions.</p>
<h2 id="232f" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Decline in Learning Opportunities</h2>
<p id="45ad" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">With LLMs taking over many coding tasks, developers, especially those at the entry-level, may miss out on crucial learning opportunities. Hands-on experience and solving real-world problems are essential for honing a developer’s skills. The reduced necessity to write and <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://naseefchowdhury.me/2024/06/28/the-negative-impact-of-large-language-models/">debug code manually can lead to a superficial understanding of software development.</a></span></p>
<h2 id="83a0" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Job Displacement and Role Changes</h2>
<p id="453f" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">The automation capabilities of LLMs pose a threat to traditional developer roles. Tasks that once required human intervention are now being handled by AI, leading to job displacement and a shift in job roles.</p>
<h2 id="b4b3" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Risk of Job Loss</h2>
<p id="f594" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">While AI can enhance productivity, it can also reduce the demand for certain types of developer roles. Routine coding tasks, code reviews, and even some aspects of project management can be automated, potentially leading to job losses.</p>
<h2 id="6ad7" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Evolution of Job Roles</h2>
<p id="de6a" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">The introduction of LLMs necessitates new skill sets and roles. Developers might need to transition into roles that focus on managing and refining AI tools, ensuring ethical use, and <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://naseefchowdhury.me/2024/06/28/a-comprehensive-guide-to-gtest-automation/">interpreting AI-generated outputs.</a></span> This shift requires additional training and adaptation, which can be challenging for the existing workforce.</p>
<p data-selectable-paragraph="">
<figure id="attachment_3382" aria-describedby="caption-attachment-3382" style="width: 435px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-3382 " src="https://naseefchowdhury.me/wp-content/uploads/2024/07/10798281_19362653-scaled.jpg" alt="Large Language Models" width="435" height="290" /><figcaption id="caption-attachment-3382" class="wp-caption-text"> </figcaption></figure>
<h2 id="a1e2" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Ethical and Practical Challenges</h2>
<p id="ef1d" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">The use of LLMs in software development is not without ethical and practical challenges. These concerns need to be addressed to ensure that AI tools are used responsibly.</p>
<h2 id="b0e9" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Bias and Fairness</h2>
<p id="a98d" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">LLMs are trained on vast datasets that may contain biases. When these models are used in software development, they can perpetuate existing biases, leading to unfair or discriminatory outcomes. Ensuring that AI tools produce fair and unbiased results is a significant challenge.</p>
<h2 id="6c66" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Transparency and Accountability</h2>
<p id="d9ee" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">The decision-making processes of LLMs are often opaque. This lack of transparency can lead to accountability issues when AI-generated code causes errors or security vulnerabilities. Developers and organizations must implement measures to maintain transparency and accountability in AI-driven <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://naseefchowdhury.me/">development processes</a></span>.</p>
<h2 id="cc06" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Security and Privacy</h2>
<p id="844f" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">Using LLMs involves processing potentially sensitive code and data. Ensuring the security and privacy of this information is paramount to prevent unauthorized access or data leaks. Robust security measures and ethical guidelines are necessary to protect sensitive information.</p>
<h2 id="8e0c" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">Conclusion</h2>
<p id="255f" class="pw-post-body-paragraph mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc gm bj" data-selectable-paragraph="">While Large Language Models have the potential to revolutionize software development, their negative impacts on developers cannot be ignored. Reduced skill development, job displacement, and ethical challenges are significant concerns that need to be addressed. By balancing the benefits of LLMs with their potential drawbacks, the software development community can ensure that AI tools enhance rather than hinder the development process.</p>
<p id="ab76" class="pw-post-body-paragraph mf mg gt mh b mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc gm bj" data-selectable-paragraph="">Developers and organizations must be proactive in addressing these challenges, fostering an environment where AI tools are used responsibly and ethically. This approach will ensure that the integration of LLMs into software development brings about positive change while mitigating the negative impacts on <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://naseefchowdhury.me/">developers.</a></span></p>
<h3 id="0dd3" class="nd ne gt be nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa bj">References</h3>
<ol class="">
<li id="08b9" class="mf mg gt mh b mi ob mk ml mm oc mo mp mq od ms mt mu oe mw mx my of na nb nc oy oz pa bj" data-selectable-paragraph=""><a class="af pb" href="https://www.geoffreylitt.com/2023/03/25/llm-end-user-programming.html" target="_blank" rel="noopener ugc nofollow">https://www.geoffreylitt.com/2023/03/25/llm-end-user-programming.html</a></li>
</ol>
<p data-selectable-paragraph="">
]]></content:encoded>
					
					<wfw:commentRss>https://naseefchowdhury.me/2024/07/11/negative-impact-of-large-language-models/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
