<?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>IBlog</title>
	<atom:link href="https://himanshu.trivedi.me/feed/" rel="self" type="application/rss+xml" />
	<link>https://himanshu.trivedi.me</link>
	<description></description>
	<lastBuildDate>Mon, 24 May 2021 04:45:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.6.16</generator>
	<item>
		<title>Scale out workload using Azure HDInsight</title>
		<link>https://himanshu.trivedi.me/architecture/scale-out-workload-using-azure-hdinsight/</link>
		
		<dc:creator><![CDATA[Himanshu]]></dc:creator>
		<pubDate>Tue, 09 Feb 2021 07:17:59 +0000</pubDate>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[cloud]]></category>
		<guid isPermaLink="false">http://himanshu.trivedi.me/?p=486</guid>

					<description><![CDATA[Scale is one of the reasons why organizations go for cloud computing, regardless of their size &#8211; enterprise or startup and whether it is for scale up or for scale out. For the uninitiated, simply put Scale Up is to add more power to single machine and Scale Out is to distribute the computing workload [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cover has-background-dim" style="background-image:url(https://himanshu.trivedi.me/wp-content/uploads/2021/02/methi.jpg);min-height:120px;background-position:78% 33%"><div class="wp-block-cover__inner-container">
<p class="has-text-align-center has-large-font-size">Scale out workload using Azure HDInsight</p>
</div></div>



<p>Scale is one of the reasons why organizations go for cloud computing, regardless of their size &#8211; enterprise or startup and whether it is for scale up or for scale out. For the uninitiated, simply put <strong><u>Scale Up</u></strong> is to add more power to single machine and <strong><u>Scale Out</u></strong> is to distribute the computing workload across multiple computers. Scale out enables the possibility of scaling to a level that is not possible with scale up. Scale out gives you virtually infinite scale.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container">
<p>Using the arsenal of Azure services, nice varieties of architectural patterns are possible for scaling out for large workload. Azure Functions, App Services, Azure Kubernetes clusters, HDInsight cluster, Azure synapse, Virtual Machine scale set are the most commonly used Azure services for scaling out depending on the kind of workload. We recently solved a large data processing workload using Azure HDInsight.</p>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container"></div></div>



<p>We used Azure HDInsight for a healthcare client that has datasets with multiple years of patient treatment data (anonymized) across multiple entire health systems. The processing itself was complex and entailed many transformations and computations. The end result was to submit the analyzed information to CMS (Center for Medicare and Medicaid Services) in a condensed and auditable manner. We designed our solution exactly for this high-demand situation. We used Apache Spark on an Azure HDInsight cluster. Azure HDInsight is a platform that makes it possible to easily create cluster of computers with preconfigured open source frameworks like Apache Spark, Apache HBase, Apache Kafka. Since we used Apache Spark; we loaded up the processing code and raw data into the cluster to complete big data processing. We spawned a cluster of about 40 computers working together. Effectively, this meant we ‘created’ a huge computer with about 2.5 terabytes of RAM (that’s right, it’s not typo, terabytes not gigabytes and RAM not disk storage!), about 325 processor core equating to about 650 virtual cores and about 16 terabytes of disk space, working together for a single large workload. Using this design and scale, we could complete the workload in about 8 hours that otherwise would have taken about 2-3 weeks to complete. Finally, we just needed this temporarily so we could tear the entire infra down after we were done thus keeping our infrastructure cost optimal.</p>



<figure class="wp-block-image"><img alt=""/></figure>



<p>While it sounds cliched but there is a lot of truth to the statement <em>“Cloud computing is a big game changer”</em>! There are several situations where having access to large computing resources can be a great competitive advantage. Thanks to AWS, Azure and other cloud providers, this can be done at a fraction of capex however your software architecture needs to support it. </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>configuration or constant</title>
		<link>https://himanshu.trivedi.me/uncategorized/configuration-or-constant/</link>
		
		<dc:creator><![CDATA[Himanshu]]></dc:creator>
		<pubDate>Thu, 24 Sep 2020 05:05:14 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://himanshu.trivedi.me/?p=480</guid>

					<description><![CDATA[Should I put this in configuration or in constant! I was reviewing code of third-party software. One piece specifically stuck to my head, configuration entry for number of milliseconds in an hour! Don&#8217;t think it&#8217;s worth multiple paragraph, truth of the life like number of milliseconds is not good candidate for configuration entry. A nice [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Should I put this in configuration or in constant! I was reviewing code of third-party software. One piece specifically stuck to my head, configuration entry for number of milliseconds in an hour! </p>



<p>Don&#8217;t think it&#8217;s worth multiple paragraph, truth of the life like number of milliseconds is not good candidate for configuration entry. A nice good name and keep it constant! Even if it&#8217;s not too much effort to make it configurable. </p>



<p>Agree?  </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>IR Software Remote Control</title>
		<link>https://himanshu.trivedi.me/electronics/ir-control/</link>
		
		<dc:creator><![CDATA[Himanshu]]></dc:creator>
		<pubDate>Sun, 02 Aug 2020 06:51:08 +0000</pubDate>
				<category><![CDATA[electronics]]></category>
		<guid isPermaLink="false">http://himanshu.trivedi.me/?p=421</guid>

					<description><![CDATA[This weekend, I reopened my boxes hosting electronic components with target to assess and validate couple of ideas that I had to build alternate interface to my TV, alternate to TV remote. During discovery phase or say &#8220;feasibility study&#8221; of idea, i found 2 useful resources. Arduino-IRremote LIRC &#8211; Linux Infrared Remote Control Arduino IR [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>This weekend, I reopened my boxes hosting electronic components with target to assess and validate couple of ideas that I had to build alternate interface to my TV, alternate to TV remote. </p>



<p></p>



<p>During discovery phase or say &#8220;feasibility study&#8221; of idea, i found 2 useful resources. </p>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><img loading="lazy" src="http://himanshu.trivedi.me/wp-content/uploads/2020/08/lego-remote-car.jpg" alt="" class="wp-image-426" width="335" height="137" srcset="https://himanshu.trivedi.me/wp-content/uploads/2020/08/lego-remote-car.jpg 965w, https://himanshu.trivedi.me/wp-content/uploads/2020/08/lego-remote-car-300x123.jpg 300w, https://himanshu.trivedi.me/wp-content/uploads/2020/08/lego-remote-car-768x314.jpg 768w" sizes="(max-width: 335px) 100vw, 335px" /></figure></div>



<ul><li><strong><a href="https://github.com/z3t0/Arduino-IRremote">Arduino-IRremote</a></strong></li><li><a href="https://www.lirc.org/"><strong>LIRC &#8211; Linux Infrared Remote Control</strong></a></li></ul>



<p>Arduino IR Remote is great library to work with proprietary protocol of different manufacturers, include one that I was looking for &#8211; Sony. </p>



<p>LIRC is great repository for referring codes to send to electronics device for several operation, including TV, but not limited to only TV.</p>



<p>Below is intermediate code that accepts number on serial, and depending upon entered number, sends IR signal to my TV. </p>



<div class="wp-block-group"><div class="wp-block-group__inner-container">
<pre class="wp-block-code indent"><code>#include &lt;IRremote.h>
//https://github.com/z3t0/Arduino-IRremote/issues/580
//http://lirc.sourceforge.net/remotes/sony/RM-ED035

IRsend irsend;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // send an intro:
  Serial.println("\n\nString toInt():");
  Serial.println();
}

void sendCommand(unsigned long signalValue){
  for (int i = 0; i &lt; 3; i++) {  // sends code 3 times
    irsend.sendSony(signalValue, 12);
    delay(20);
  }
  delay(200);
}

void onOff() { sendCommand(0xA90); }
void input() { sendCommand(0xA50); }

void volumnUp() { sendCommand(0x490); }
void volumnDown() {  sendCommand(0xC90); }
void mute() { sendCommand(0x290); }

void priorProgram() { sendCommand(0x890); }
void nextProgram() { sendCommand(0x90); }

void homeKey() { sendCommand(0x070); }
void okay() {  sendCommand(0xA70); }
void upKey() { sendCommand(0x2F0); }
void downKey() { sendCommand(0xAF0); }
void leftKey() { sendCommand(0x2D0); }
void rightKey() { sendCommand(0xCD0); }
void exitKey() { sendCommand(0xC70); }
void infoKey() { sendCommand(0x5D0); }

void one() { sendCommand(0x010); }
void two() {  sendCommand(0x810); }
void three() { sendCommand(0x410); }
void four() { sendCommand(0xC10); }
void five() { sendCommand(0x210); }
void six() { sendCommand(0xA10); }
void seven() { sendCommand(0x610); }
void eight() {  sendCommand(0xE10); }
void nine() { sendCommand(0x110); }
void zero() { sendCommand(0x910); }

void audio() { sendCommand(0xE90); }

String inString = "";    // string to hold input
void loop() {
  // Read serial input:
  while (Serial.available() > 0) {
    int inChar = Serial.read();
    if (isDigit(inChar)) {
      // convert the incoming byte to a char and add it to the string:
      inString += (char)inChar;
    }
    // if you get a newline, print the string, then the string's value:
    if (inChar == '\n') {
      Serial.print("Value:");
      Serial.println(inString.toInt());
      switch (inString.toInt()){
        case 1:
          onOff();
          break;
        case 2:
          input();
          break;
        case 3:
          volumnUp();
          break;
        case 4:
          volumnDown();
          break;
        case 5:
          mute();
          break;
        case 6:
          priorProgram();
          break;
        case 7:
          nextProgram();
          break;
        case 8:
          homeKey();
          break;
        case 9:
          okay();
          break;
        case 10:        
          upKey();
          break;
        case 11:
          downKey();
          break;
        case 12:
          leftKey();
          break;
        case 13:
          rightKey();
          break;
        case 14:
          exitKey();
          break;
        case 15:
          infoKey();
          break;
        case 16:
          audio();
          break;        
      }
      inString = "";
    }
  }
}</code></pre>
</div></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Microservices is more than just an architecture</title>
		<link>https://himanshu.trivedi.me/software-engineering/microservices-not-just-architecture-culture/</link>
		
		<dc:creator><![CDATA[Himanshu]]></dc:creator>
		<pubDate>Sun, 03 Jun 2018 08:38:00 +0000</pubDate>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[random thoughts]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">http://himanshu.trivedi.me/?p=314</guid>

					<description><![CDATA[DevOps is culture and not methodology! For the scope of this post, I do not plan to defend or say against the statement. But will be brave to claim that practice and patterns by which software teams (also organizations) are built/organized, it certainly does impact the culture of the team and individuals in the team. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>DevOps is culture and not methodology! For the scope of this post, I do not plan to defend or say against the statement. But will be brave to claim that practice and patterns by which software teams (also organizations) are built/organized, it certainly does impact the culture of the team and individuals in the team. </p>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><img loading="lazy" src="http://himanshu.trivedi.me/wp-content/uploads/2020/08/people-team-relation-1024x683.jpg" alt="" class="wp-image-436" width="353" height="235" srcset="https://himanshu.trivedi.me/wp-content/uploads/2020/08/people-team-relation-1024x683.jpg 1024w, https://himanshu.trivedi.me/wp-content/uploads/2020/08/people-team-relation-300x200.jpg 300w, https://himanshu.trivedi.me/wp-content/uploads/2020/08/people-team-relation-768x512.jpg 768w, https://himanshu.trivedi.me/wp-content/uploads/2020/08/people-team-relation-1536x1024.jpg 1536w, https://himanshu.trivedi.me/wp-content/uploads/2020/08/people-team-relation-2048x1365.jpg 2048w" sizes="(max-width: 353px) 100vw, 353px" /></figure></div>



<p>Also, weather given practice would work for team or not also depends upon prevailing culture of the team.</p>



<p>Those agreeing to above two, and have pass-through adoption of Microservices in their software architecture, would likely to agree that making people accountable or have them convinced to take ownership of  either a software service or any other area is easier than the teams having hard time adopting to Microservices architecture. </p>



<p>Those individuals and teams who understands Microservices architecture well, more likely to say <em>&#8220;yes&#8221; </em>for the question <em>&#8220;Can you please own this&#8221;</em>. </p>



<p>And I strongly believe that in this equation it&#8217;s not only a=b but also b=a. That is, if individual understand importance of taking ownership, she likely would understand and adopt Microservices easier than others. </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>World of Serverless Applications</title>
		<link>https://himanshu.trivedi.me/architecture/world-serverless-applications/</link>
		
		<dc:creator><![CDATA[Himanshu]]></dc:creator>
		<pubDate>Fri, 16 Dec 2016 09:18:47 +0000</pubDate>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[cloud]]></category>
		<guid isPermaLink="false">http://himanshu.trivedi.me/?p=337</guid>

					<description><![CDATA[I still remember that night of year 1998. Me and my friend sat with a bunch floppies to install&#160;Novel Netware&#160;Server on a hardware physically sizing to about same as home refrigerator. And at next day morning we had server ready, giving us ability to share&#160;files among a bunch of PCs, and user management. The word [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image is-style-default"><img src="https://d3eobaew5e10a9.cloudfront.net/architecture-business-cabinet-325229.jpg" alt=""/></figure>



<p>I still remember that night of year 1998. Me and my friend sat with a bunch floppies to install&nbsp;Novel Netware&nbsp;Server on a hardware physically sizing to about same as home refrigerator. And at next day morning we had server ready, giving us ability to share&nbsp;files among a bunch of PCs, and user management. The word “Server” would mean real big thing in those days. Exaggerated analogy could be &#8220;In those stone age days!&#8221; Lot of things changed in those stone age days v/s now, and today we are talking about Serverless architecture.</p>



<p>Serverless architecture really seems promising to me. It is new paradigm, and once developer toolset and frameworks matures around it, we would be going to new exciting world! Obviously Serverless architecture does not literally mean that there wouldn&#8217;t be any server, from that perspective the name is miss-leading. What in nutshell means is software engineer, and deployment team&nbsp;wouldn&#8217;t need to do provisioning of the software that solves business problem. Health&nbsp;monitoring software will take care of it, and that too depending upon load. Scalability needs starting from running on &#8216;No server&#8217; to &#8216;N server&#8217; will depend upon the load at a point of time. It all started when AWS one more time proving themselves to be&nbsp;leader in the area of cloud innovation, by introducing AWS Lambda in their offerings back in end of 2014. And recently Microsoft also published similar service in their Azure offering, called <em>Azure Functions.</em> Google&#8217;s GCP is also following &nbsp;the lead and has offering with name <em>Cloud Function.</em></p>



<p>Serverless architecture is Microservices and Scalability on steroid!</p>



<p>This are couple of scenarios that I think it fits best:</p>



<ul><li>Startups can be most benefited with Severless architecture. In the beginning there will low usage, and hence less revenue, and hence need to have lessor cost on infrastructure&nbsp;and when the startup grows to large scale, the solution would react and scale to increased load automatically, and so would infrastructure cost. All of this without doing any code change, if Architected right in the beginning.</li><li>Another scenario could be of IoT web service endpoint to which devices connects to push or pull the data. Number of connected devices would drive the infrastructure cost dynamically.</li><li>Blogs and Content Management sites.&nbsp;Hey, this is big opportunity!&nbsp;There are many organizations in the world who do not want to have hassle of maintaining servers, do not want to spend a lot on infrastructure. But wants to have lightweight online presence. They will be greatly helped by having platform on which they pay by number of request coming to their site instead of fix hardware cost. What do you say? If you reach their before me, consider giving me credit for the idea :).</li></ul>



<p>While all looks bright around Serverless architecture, here are few suggestions from my exploration:</p>



<ul><li>Use coding framework&nbsp;that is light weight on it&#8217;s boot-up time. This will avoid having long request time after cold boot, I&#8217;m using node.js</li><li>While better toolsets for developers becoming ready and available for general community, consider using tools like&nbsp;<a href="https://www.npmjs.com/package/serverless">Serverless</a> package available on npm registry provided by <a href="https://serverless.com/">Serverless.com</a>. It works very well while working with AWS Lambda. It not only does the deployment of code on AWS Labda but also sets up HTTP endpoint in API gateway if event of Labda is configured to be HTTP endpoint.&nbsp;And everything works very seamlessly. Serverless package can be used even if your solution is not built in node.js</li><li>Never try to do lot of things together in one Lambda/Function. Break down time consuming work into multiple chunk of work-items and utilize AWS Simple Queue Service (SQS), or Azure Queues.</li><li>Do good enough logging, as that would be your savior to debug any issue.</li></ul>



<p>Here is quick simple example. Let&#8217;s first go through requirements: Application allows user to create, view, edit and archive notes</p>



<ul><li>User can add notes. Application records the note along with date-time when it was posted</li><li>While adding or editing notes, user can do formatting.&nbsp;Supported formatting would be making text bold, italic, and underline</li><li>User can&nbsp;view list of notes order by date-time it was posted in descending order</li><li>User can archive note. On archival note would be filtered out from the list of notes</li><li>User can review list of notes that are archived</li></ul>



<p>Here is how it is structured:</p>



<figure class="wp-block-image"><a href="http://himanshu.trivedi.me/wp-content/uploads/2016/12/serverless-201612.png" rel="attachment wp-att-349"><img loading="lazy" width="749" height="369" src="http://himanshu.trivedi.me/wp-content/uploads/2016/12/serverless-201612.png" alt="serverless-201612" class="wp-image-349" title="indent"/></a></figure>



<p>I&#8217;m in process of enhancing this example application with more features and in the process will end up using more of AWS services.</p>



<ul><li>Authentication and Authorization,</li><li>Storing more structure along with note, like author, tagging the note, sharing the note with other subscribers.</li><li>Searching note</li><li>Attachments</li><li>Notification on shared note change</li></ul>



<p>And to support these features will use DynamoDB, Simple Email Service (SES), Simple Notification Service (SNS) and Simple Queue Service (SQS), and more.</p>



<p>Eager to see unfolding of new ways of building and deploying software!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Edge is giving priority to content</title>
		<link>https://himanshu.trivedi.me/uncategorized/edge-giving-priority-content/</link>
		
		<dc:creator><![CDATA[Himanshu]]></dc:creator>
		<pubDate>Thu, 10 Sep 2015 06:41:12 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://himanshu.trivedi.me/?p=302</guid>

					<description><![CDATA[I&#8217;m on Windows 10, Yeah! Today, I notice that when I press Alt+D in Microsoft Edge while having one JIRA issue open in the tab, instead of cursor moving to address bar, dashboards menu opens up in JIRA! When I&#8217;m editing this post in WordPress and press ALT+D, del html tag gets inserted in text [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;m on Windows 10, Yeah!</p>
<p>Today, I notice that when I press Alt+D in <a href="http://windows.microsoft.com/en-us/windows-10/getstarted-get-to-know-microsoft-edge">Microsoft Edge</a> while having one JIRA issue open in the tab, instead of cursor moving to address bar, dashboards menu opens up in JIRA! When I&#8217;m editing this post in WordPress and press ALT+D, <em>del </em> html tag gets inserted in text area! However when I&#8217;m on <a href="http://windows.microsoft.com/en-us/windows-10/getstarted-get-to-know-microsoft-edge">Microsoft Edge</a> page, it goes to address bar.</p>
<p>Giving priority to content rather than browser, I liked that idea. This will help having more web applications supporting keyboard shortcuts, and users can be more efficient in using applications.</p>
<p><em>I liked it!</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Code refactoring is important</title>
		<link>https://himanshu.trivedi.me/software-engineering/view-software-code-refactoring/</link>
		
		<dc:creator><![CDATA[Himanshu]]></dc:creator>
		<pubDate>Wed, 03 Jun 2015 04:23:24 +0000</pubDate>
				<category><![CDATA[random thoughts]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">http://himanshu.trivedi.me/?p=247</guid>

					<description><![CDATA[One great mind have said it well that &#8220;Change is the only constant in the life&#8221; What is the difference between hardware and software? One aspect suggests that &#8220;Hardware is likely to have mechanical parts that are subjected to wear and tear,&#160;and&#160;will need maintenance and replacement to extend continues service. While software do not have [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>One great mind have said it well that <em>&#8220;Change is the only constant in the life&#8221;</em></p>



<p>What is the difference between hardware and software? One aspect suggests that <em>&#8220;Hardware is likely to have mechanical parts that are subjected to wear and tear,&nbsp;and&nbsp;will need maintenance and replacement to extend continues service. While software do not have any mechanical parts and it is not subject to wear and tear.&#8221;&nbsp;</em></p>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><img loading="lazy" src="https://lh3.googleusercontent.com/maU7KuydLPgJ44pxqfdSMsXVf-KEDAaEwjLKVTextYScSXLVWSAvGRk09J6DvT9LYzZbpcoxPhTZYcTOGblXcdByzv43QIDxbaw-zUURxbB6-SAZOBHLDZaXfQru0oUxQjF_i2AZLKwxxRD6QGpIQ4b4MYMTR4PYePVkVmX0ZhavXh1Fpl9AjbHMS6VCMLVAaL21YtxOAY3XB0uzudZRqpkHPVxF5VEs3vI7tF6H6tP64cYlxW9CN9gR9Bveggp1BheQOmOFICAzxVmNXQ8iiH6Pe2B0GEMM_bD7R8Sq0On8LnftbS9FMR_ggXTyu598K-NUNxD9wjKYs7wnx8E2fCEB5kzeqmGSg1fxTwMOSCsSqXL5WzZ9omufNkpMXqmSCi-9YJWd0vuUmgY6kL-tjIyavzEoETmOEOi-Qob8KHL9_hJyi18AEgxZWLH-919vct9jPYq84a650WOddHEzAQJA5q2Rp8OKm4jzYDwVaQOdBE_LbybDKviYIdOBdkw6Lwsq6F-ASRaCIJ8wkKREOZ80ifhFYPcYtehl2Whm5yFjxgi1OdW6lQG85KaIqWMwFgvP3F18b5KfoRoRQkvwmJCPTBoJ5YwN43Zoi5_tzhOSY8L_FPuK5NFkIa1hyyB_M4Xh-OV8TgF9c8EzJXWtq5QuG2UruxDGacdP5kKFYQUYEuvshlZgUuUa_LDEaQ=w348-h618-no?authuser=0" alt="" width="234" height="416"/></figure></div>



<p>If we live in static world, this would be true, but unfortunately or rather fortunately we don&#8217;t live in static world. Like many other things, software or the environment within with it gets used changes. Change in the way business operates that uses the software i.e. requirement change, enhancements to support extended business needs, change in environment within which software was assumed to run, or any other assumption within which software was built proves to be wrong, these are some of the example why software needs regular maintenance.</p>



<p>In science <em>entropy</em> is well used word for explaining gradual decline in disorder. It is bound to happen, over the period of time till equilibrium is achieved. If I draw the analogy, well engineered code at one point is <em>order state. </em>In changing world demand towards software changes, and  it will be inevitable to have the situation in life cycle of the software that it would go towards disordered state. I have accepted this to be fact until proven wrong, and based of I would suggest business that depends on the software that put effort and money to bring the software back to ordered state, otherwise one is bound to pay higher cost down the line. Do talk to engineering team to understand accumulated disorder, and prioritize it in the backlog. Earlier it is done better it is.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SQL Server selecting from literal values</title>
		<link>https://himanshu.trivedi.me/sql-server/sql-server-selecting-constant-values/</link>
		
		<dc:creator><![CDATA[Himanshu]]></dc:creator>
		<pubDate>Wed, 27 May 2015 06:10:30 +0000</pubDate>
				<category><![CDATA[sql server]]></category>
		<guid isPermaLink="false">http://blog.objectpattern.com/?p=218</guid>

					<description><![CDATA[I didn&#8217;t knew it as possible to do this in SQL Server: select * from (values (1, 2), (3, 4), (5, 6)) AS Numbers (Odds, Evens) Parking it here for my later reference. Can be handy to insert couple of rows into some meta tables like: declare @external_internal_state_map table (external_state_code varchar(6), internal_state_code varchar(6)) insert into [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I didn&#8217;t knew it as possible to do this in SQL Server:</p>
<p style="padding-left: 2em; font-family: monospace; font-size: 15px;">select * from (values (1, 2), (3, 4), (5, 6)) AS Numbers (Odds, Evens)</p>
<p>Parking it here for my later reference. Can be handy to insert couple of rows into some meta tables like:</p>
<p style="padding-left: 2em; font-family: monospace; font-size: 15px;">declare @external_internal_state_map table (external_state_code varchar(6), internal_state_code varchar(6))<br />
insert into @external_internal_state_map (external_state_code, internal_state_code) values<br />
(&#8216;EXT1&#8217;, &#8216;INT1&#8217;), (&#8216;EXT2&#8217;, &#8216;INT2&#8217;), (&#8216;EXT3&#8217;, &#8216;INT3&#8217;)<br />
select * from @external_internal_state_map</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Shorten the path by mapping drive letter pointing to folder</title>
		<link>https://himanshu.trivedi.me/uncategorized/shorten-the-path-by-mapping-drive-letter-pointing-to-folder/</link>
		
		<dc:creator><![CDATA[Himanshu]]></dc:creator>
		<pubDate>Tue, 27 May 2014 07:29:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://himanshu.trivedi.me/?p=232</guid>

					<description><![CDATA[While working on a project, I noticed that Visual Studio was failing while doing compilation, and reason for failure was path was becoming too long. There is subst command in MS Windows allowed me to setup a driver letter that points to physical folder to overcome the situation. Ref: https://technet.microsoft.com/en-in/library/bb491006.aspx]]></description>
										<content:encoded><![CDATA[<p>While working on a project, I noticed that Visual Studio was failing while doing compilation, and reason for failure was path was becoming too long.</p>
<p>There is <code>subst</code> command in MS Windows allowed me to setup a driver letter that points to physical folder to overcome the situation. </p>
<p>Ref: <a title="https://technet.microsoft.com/en-in/library/bb491006.aspx" href="https://technet.microsoft.com/en-in/library/bb491006.aspx">https://technet.microsoft.com/en-in/library/bb491006.aspx</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mathematics Reloaded</title>
		<link>https://himanshu.trivedi.me/electronics/mathematics-reloaded/</link>
		
		<dc:creator><![CDATA[Himanshu]]></dc:creator>
		<pubDate>Wed, 15 Aug 2012 06:52:01 +0000</pubDate>
				<category><![CDATA[electronics]]></category>
		<category><![CDATA[mathematics]]></category>
		<category><![CDATA[resistance]]></category>
		<category><![CDATA[voltage]]></category>
		<guid isPermaLink="false">http://blog.objectpattern.com/?p=178</guid>

					<description><![CDATA[I got stuck in one puzzle of electronics. Was understanding resistance of electron flow, current, and voltage by little different experiments. In one of them, I had created a very basic circuit that was starting from +v end of 1.5v battery (showing 1.4v on multimeter without resistance), 470k resister and multimeter into the circuit ending [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I got stuck in one puzzle of electronics. Was understanding resistance of electron flow, current, and voltage by little different experiments. In one of them, I had created a very basic circuit that was starting from +v end of 1.5v battery (showing 1.4v on multimeter without resistance), 470k resister and multimeter into the circuit ending at –v end of the battery. On multimeter, I noticed 0.95v.&#160; 470k resister was the cause for the drop of voltage and it was dropping voltage by 0.45v (1.4v – 0.95v = 0.45v).</p>
<p>I thought of using one more 470k resister expecting it to drop further 0.45v and confirm that voltage drops&#160; to 0.5v after second 470k resister. My reasoning was: 1.4v – 0.45v – 0.45v = 0.5v. But to my surprise I was seeing 0.71v on multimeter! Multimeter wasn’t in agreement of my mathematics, but I wasn’t fully convinced with multimeter’s mathematics. All I was thinking is “Why” second resister was not dropping the voltage as equally as the first.</p>
<p>After further thinking and learning on <a href="http://en.wikipedia.org/wiki/Ohm%27s_law">V=IR</a>, I notice very simple and basic property in numerical series in which next number is created by adding 1 to the predecessor viz. 1, 2, 3, 4, …n. And that simple and basic property is: 2 is double of 1 but 3 isn’t double of 2. Further, weight of 3 is 50% more than 2, but weight of 4 is not 50% more than 3.</p>
<p>Of course it’s obvious but it wasn’t so obvious to me before this experiment!</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
